如何将文件打印到特定的打印机

本文关键字:打印机 打印 文件 | 更新日期: 2023-09-27 18:06:07

我用c#开发了一个windows服务。现在我正在寻找一种方法,它可以打印一个特定的文件(可以是TIFF, PDF, HTML, MHT或文本)到一个特定的打印机。问题是,当我使用Process并将print作为动词时,如何设置特定的打印机?使用进程的方式在Windows服务中也可能吗?-不应该显示窗口

如何将文件打印到特定的打印机

在我看来,这个提议的方法可能会失败。使用shell动词进行打印将调用相关的应用程序来执行打印。对于这些文件类型中的许多,这将导致UI被显示,这将在服务中失败。

您提到的所有文件类型都可以直接从您的服务中打印,而无需求助于其他应用程序。这将需要更多的编码,但我相信这是最可行的服务解决方案。

或者,你也可以在交互式桌面上运行的标准应用程序中执行此操作。这应该可以正常工作,我假定您将控制运行此代码的机器的硬件和软件配置。否则,使用shell动词将是一种非常脆弱的方法——谁知道随机客户的机器上有什么文件关联呢?!

"Printto"谓词需要一个参数作为打印机名称。有关详细信息,请参阅MSDN中的此示例。

请注意,在无人看管的情况下打印PDF违反了Adobe EULA。假设。PDF扩展名与Adobe PDF Reader(或本场景中的打印机…)相关联。

有关于如何通过服务处理打印的安全性。如果你在windows账户下运行,那么该服务可以在没有UI的情况下打印。我在服务器上有一个专用用户帐户的打印服务,它每天打印1000个文件。超过80个不同的联网打印机。
您的服务必须具备以下内容:

  1. 它必须作为标准的windows用户运行
  2. 必须能够访问要打印的文件可以保存的文件结构。无论你打印的是什么,都必须以文件的形式存储,并将文件发送给打印机,不要忘记进行文件清理。
  3. 必须连接打印机,就像您要连接打印机打印电子邮件一样
  4. 当从打印机切换到打印机时,在发送打印作业之前,您必须每次重新设置默认打印机
  5. Telerik和windows word Interop都可以打印。