我用C#开发了一个Windows服务。现在我正在寻找一种方法,它可以将特定文件(可以是TIFF,PDF,HTML,MHT或文本)打印到特定的打印机。问题是,当我使用Process和print作为动词时,我该如何设置特定的打印机?是否也可以在Windows服务中使用Process? - 它不应该显示一个窗口。
答案 0 :(得分:2)
" Printto"动词需要打印机名称的参数。有关详细信息,请参阅this sample in MSDN。
答案 1 :(得分:2)
我认为这种提议的方法可能会失败。使用shell动词进行打印将调用关联的应用程序来执行打印。对于其中许多文件类型,这将导致显示的UI将在服务中失败。
您提及的所有文件类型都可以直接从您的服务打印而无需借助其他应用程序。它需要更多编码,但我相信它是服务最可行的解决方案。
或者,您可以从在交互式桌面上运行的标准应用程序执行此操作。这应该工作正常,我认为你将控制运行此代码的机器的硬件和软件配置。否则使用shell动词将是一个非常脆弱和脆弱的方法 - 谁知道随机客户的机器上有什么文件关联?!
答案 2 :(得分:0)
请注意,如果是PDF,则无人值守打印PDF会违反Adobe EULA。假设.pdf扩展名与Adobe PDF Reader(或此场景中的打印机......)相关联。
答案 3 :(得分:0)
如何通过服务处理打印存在安全性。如果您使用Windows帐户运行,则该服务可以不使用UI进行打印。我在具有专用用户帐户的服务器上有打印服务,它每天要打印1000个文件。到80多种不同的网络打印机。
您的服务必须具备以下条件: