【问题标题】:How to create a virtual printer?如何创建虚拟打印机?
【发布时间】:2020-09-08 14:06:18
【问题描述】:

我将首先指出我可以使用 python、c/c++、c#、ruby 和 js 编写代码。因此,如果我需要编写代码,这不是问题。我只需要帮助指向正确的方向。

我想知道是否有办法在 windows 或 linux 上创建虚拟打印机。在我工作的地方,有一个软件可以创建报告并在供应商的远程计算机上生成报告。然后供应商使用 IP 将打印作业发送到用户的本地打印机。我希望能够创建一个虚拟打印机,而是将打印作业保存为网络上某个地方的 pdf,以便我们的用户在需要时获取和打印。

【问题讨论】:

  • 在 Linux 中,您可以使用 cups 将输出路由到您选择的程序。在 Windows 中,这将更加困难。

标签: linux windows printing driver


【解决方案1】:

如果他们将打印作业发送到网络打印机,则需要一台计算机代替打印机使用的 IP 地址。我有带有 socat 的 ghostscript 设置为在端口 9100 上侦听 postscript 文件。然后可以将其转换为 pdf 并保存文件。这会根据时间生成一个文件名,因为没有文件名发送到端口 9100。这应该会生成一个包含按时间排序的 pdf 文件的目录。我没有在端口 515 上尝试过这个,所以这取决于它们如何通过网络发送,因为 515 端口具有 LPD 协议,而 9100 只是一个原始套接字。

#!/bin/sh
socat TCP4-LISTEN:9100,reuseaddr,bind=localhost SYSTEM:'gs -dQUIET -dNOPROMPT -dBATCH -sDEVICE=pdfwrite -sOutputFile=/tmp/\"$(date -Is)\".pdf -'

编辑:我只是在本地机器上使用它或用于测试,所以删除 bind=localhost 以监听网络 IP 地址

【讨论】:

    猜你喜欢
    • 2012-06-11
    • 2010-11-04
    • 2013-07-12
    • 2017-08-13
    • 2021-04-05
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    相关资源
    最近更新 更多