我使用“进程”在 C# 应用程序中打印 pdf 文件。但我无法获得打印状态。我发现可以使用 System.management 和 System.printing 与打印机/队列交互。我做了很多试验 n 错误使用这两个命名空间,但无法打印文件。关于如何使用这些命名空间将 pdf 文档打印到打印机的任何示例?
问问题
6924 次
3 回答
2
于 2013-11-22T11:04:00.117 回答
0
如果您有WPF
应用程序,请使用System.Printing
.
这是代码:
var file = File.ReadAllBytes(pdfFilePath);
var printQueue = LocalPrintServer.GetDefaultPrintQueue();
using (var job = printQueue.AddJob())
using (var stream = job.JobStream)
{
stream.Write(file, 0, file.Length);
}
现在,这个命名空间必须与WPF
应用程序一起使用。它不能很好地与ASP.NET
or一起使用Windows Service
。它不应该与 一起使用Windows Forms
,因为它有System.Drawing.Printing
。使用上述代码打印 PDF 时我没有任何问题,但我很清楚为什么它对其他人不起作用。
我应该提到您必须有一台支持直接打印的打印机,因为您将信息直接发送到打印机。根据我的经验,这适用于 Brother HL 系列和夏普企业打印机。我希望这也适用于其他东西,例如 Excel 文档,但事实并非如此。幸运的是,这些很容易以其他方式打印。
于 2014-12-11T17:58:28.183 回答
0
此问题已在此处得到解答如何将文件文档发送到打印机并进行打印?.
您无法使用标准方法打印 pdf,因为它需要先渲染,您可以使用 Ghostscript、Adobe Acrobat 或其他工具。
编辑:约翰更快
于 2013-11-22T11:06:33.873 回答