gpt4 book ai didi

c# - 以编程方式 "hello world"ASP.NET MVC 中的默认服务器端打印机

转载 作者:太空狗 更新时间:2023-10-29 20:08:01 30 4
gpt4 key购买 nike

我已经安装了打印机并在 Intranet 服务器上工作,我想以编程方式将“hello world”发送到该默认打印机。这似乎是最简单的事情,但我已经用谷歌搜索了几个小时但没有成功。 (注意:我正在运行 Windows 7 的部署机器上开发 asp.net mvc)

我试图从 VB 翻译一个例子 here进入 C#,但它说“没有安装打印机”。

public void TestPrint()
{
var x = new PrintDocument();
x.PrintPage += new PrintPageEventHandler(PrintPage);
x.Print();
}
private void PrintPage(Object sender, PrintPageEventArgs e)
{
var textToPrint = "Hello world";
var printFont = new Font("Courier New", 12);
var leftMargin = e.MarginBounds.Left;
var topMargin = e.MarginBounds.Top;
e.Graphics.DrawString(textToPrint, printFont, Brushes.Black, leftMargin, topMargin);
}

我还尝试了来自 MSDN here 的片段但它说它无法识别打印机名称。

public void TestPrint(string msg)
{
var server = new LocalPrintServer();
var queue = LocalPrintServer.GetDefaultPrintQueue();

// Call AddJob
var job = queue.AddJob();

// Write a Byte buffer to the JobStream and close the stream
var stream = job.JobStream;
var buffer = UnicodeEncoding.Unicode.GetBytes(msg);
stream.Write(buffer, 0, buffer.Length);
stream.Close();
}

最佳答案

在 .NET 中在服务器端打印“hello world”

  1. 共享打印机
  2. 创建一个PrintDocument对象
  3. 按名称引用打印机
  4. 添加提供内容的方法
  5. 打印

代码

using System.Drawing;
using System.Drawing.Printing;

public void Print()
{
var doc = new PrintDocument();
doc.PrinterSettings.PrinterName = "\\\\deployment-machine-name\\share-name";
doc.PrintPage += new PrintPageEventHandler(ProvideContent);
doc.Print();
}
public void ProvideContent(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawString(
"Hello world",
new Font("Arial", 12),
Brushes.Black,
e.MarginBounds.Left,
e.MarginBounds.Top);
}

关于c# - 以编程方式 "hello world"ASP.NET MVC 中的默认服务器端打印机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12229823/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com