我想在C#中构建一个Windows服务,它监听MSMQ队列以获取传入的打印命令消息。消息引用PDF文档并包含目标打印机的名称(可能还有一些其他元数据,如要打印的副本数)。该服务应该获取PDF并将其打印在目标打印机上。
问题:是否可以从Windows服务在打印机上打印任意PDF?
补充:
实施不应依赖于Acrobat Reader或任何其他" GUI工具"。 Windows服务运行无头。此外,我希望避免在可能的情况下为每个打印作业启动单独的过程。
答案 0 :(得分:1)
我使用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();