2

我的意图是实现以下场景:

  • Windows 或 Linux 用户发出打印文档的命令(使用 Ctrl+P)并在可用打印机列表中查看虚拟打印机(虚拟打印机)

  • 用户选择打印机并给出打印命令

  • 虚拟打印机不会实际打印,而是自动将文件连同选定的纸张大小、格式等一起发送到 python 脚本作为输入[可选地在将其转换为 PDF 之后]。

  • Python 脚本将文件上传到云或某个远程存储,稍后可以在需要时在物理打印机上检索和打印文件。

我已经参考了 StackOverflow 上类似现有问题的答案,并查找了 CUPS 和 CUPS-PDF。CUPS_PDF 是一台虚拟打印机,因此满足我的一个标准,但它不允许我处理发送用于打印的文件。我可以监视放置转换后的 PDF 的目录,并在每次目录更改时调用 python 脚本,但这远非理想的解决方案。

我尝试通过使用 FILE 打印机形式的 win32 API 在 Windows 中创建类似的东西,但它再次不允许我处理要打印的文件。

我还偶然发现了 Tea4CUPS,它是一种 CUPS 打印机的可编程后端,但我不确定如何利用它。我遇到的另一种选择是使用 Windows 驱动程序工具包 (WDK) 编写虚拟打印机驱动程序,但这似乎过于复杂,尤其是考虑到我需要虚拟打印机将要打印的文件重定向到我的 python 脚本这一事实。

我怎样才能实现我想要的场景?虽然我有 Python 经验,但在此之前我从未使用过虚拟打印机。

4

1 回答 1

1

使用RedMon。它是一个开源的 windows 打印机端口,可以简单地将所有打印机输出重定向到特定程序(例如 python 脚本)。

以下过程适用于 2015 年发布的 Windows 10:

  1. 使用安装程序下载并安装 RedMon 软件。
  2. 在设备和打印机下,以管理员身份运行“添加打印机”向导(或使用 win32 API)
  3. 使用 postscript 驱动程序添加打印机(我个人更喜欢安装 Xerox Global Print Driver PS,但已经安装了其他 PS 驱动程序)并创建一个新的“重定向端口”。
  4. 您可以配置“配置端口”下的选项以将输出定向到您的脚本。
于 2016-07-24T20:57:29.103 回答