能否从Windows服务中打印PDF文档?

本文关键字:打印 PDF 文档 服务 Windows | 更新日期: 2023-09-27 18:07:14

我想在c#中构建一个Windows Service,它侦听传入打印命令消息的MSMQ队列。消息引用PDF文档,并包含目标打印机的名称(可能还有一些其他元数据,如要打印的副本数量)。服务应该挑选PDF并在目标打印机上打印它。

问题:有可能从Windows服务在打印机上打印任意PDF文件吗?

补充:

实现不应该依赖于Acrobat Reader或任何其他"GUI工具"。Windows服务无头运行。此外,我想避免在可能的情况下为每个打印作业启动一个单独的进程。

能否从Windows服务中打印PDF文档?

我使用的是Spire.PDF库。免费版每个文件限制为10页。不依赖UI或Acrobat

https://www.nuget.org/packages/Spire.PDF/

   PdfDocument pdfdocument = new PdfDocument();
   pdfdocument.LoadFromFile(path);
   pdfdocument.PrinterName = printername;
   pdfdocument.PrintDocument.PrinterSettings.Copies = copiesNumber;
   pdfdocument.PrintDocument.Print();
   pdfdocument.Dispose();