tl;dr:如何从.NET Core 3.1 Windows服务打印PDF文件?
我创建了一个简单的打印池BackgroundService
类,作为Windows服务运行,并通过Web API监视打印队列,工作得很愉快。
但是,当我开始编写实际的打印代码时,发现了一个小问题,即似乎.NET Core不允许从BackgroundService
类打印文档。
System.Printing的文档也似乎暗示了这一点。
不支持在Windows服务或ASP.NET应用程序或服务中使用System.Printing命名空间中的类。尝试从其中一个应用程序类型中使用这些类可能会产生意想不到的问题,例如降低服务性能和运行时异常。
System.Drawing.Printing的文档也有类似的说明,指出它对于Windows服务也不能可靠地工作。
从BackgroundService
Windows服务打印是不好的吗?是否有明显的替代方案,我的(简短)谷歌搜索未能找到?打印要求应该很简单,我有PDF字节数组数据,只需要以某种方式将其发送到打印机即可。
我意识到我可以像将池转换为Console应用程序一样,然后从计划任务中运行它,但Windows服务模型似乎更简单,只需安装并忘记即可(它将被放置在仓库旁边的PC上)
非常感谢任何有帮助的建议。