将虚拟打印机的输出重定向到 Python 脚本
Redirecting the output of a virtual printer to a Python script
我的意图是实现以下场景:
A Windows 或 Linux 用户发出打印文档的命令(使用 Ctrl+P)并在可用列表中查看虚拟打印机(虚拟打印机)打印机
用户选择打印机并给出打印命令
虚拟打印机不会实际打印,而是自动将文件连同选定的纸张尺寸、格式等发送到 python 脚本作为输入 [可选地在转换后PDF].
Python 脚本将文件上传到云端或一些远程存储,可以在需要时从那里检索文件并稍后在物理打印机上打印。
我已经在 Whosebug 上提到了一个类似的现有问题的答案,并查找了 CUPS 和 CUPS-PDF。 CUPS_PDF 是一台虚拟打印机,因此它满足我的一个条件,但它不允许我处理发送来打印的文件。我可以监视放置转换后的 PDF 的目录,并在每次目录更改时调用 python 脚本,但这远非理想的解决方案。
我尝试使用 win32 API 以 FILE 打印机的形式在 Windows 中创建类似的东西,但它又不让我处理要打印的文件。
我也偶然发现了 Tea4CUPS,它是 CUPS 打印机的一种可编程后端,但我不太确定如何利用它。我遇到的另一种选择是使用 Windows Driver Kit (WDK) 编写虚拟打印机驱动程序,但这似乎过于复杂,特别是考虑到我需要虚拟打印机来重定向要打印的文件到我的 python 脚本。
如何实现我想要的场景?虽然我有 Python 经验,但在此之前我从未使用过虚拟打印机。
使用RedMon。它是一个开源 windows 打印机端口,可将所有打印机输出重定向到特定程序(例如 python 脚本)。
以下程序最多适用于 windows 10 个 2015 年发布的版本:
- 使用安装程序下载并安装 RedMon 软件。
- 在设备和打印机下,运行 "Add Printer" 向导作为管理员(或使用 win32 API)
- 使用 postscript 驱动程序添加打印机(我个人更喜欢安装 Xerox Global Print Driver PS,但其他 PS 驱动程序已经安装)并创建一个新的 "Redirected Port."
- 您可以配置 "Configure Port" 下的选项以将输出定向到您的脚本。
我的意图是实现以下场景:
A Windows 或 Linux 用户发出打印文档的命令(使用 Ctrl+P)并在可用列表中查看虚拟打印机(虚拟打印机)打印机
用户选择打印机并给出打印命令
虚拟打印机不会实际打印,而是自动将文件连同选定的纸张尺寸、格式等发送到 python 脚本作为输入 [可选地在转换后PDF].
Python 脚本将文件上传到云端或一些远程存储,可以在需要时从那里检索文件并稍后在物理打印机上打印。
我已经在 Whosebug 上提到了一个类似的现有问题的答案,并查找了 CUPS 和 CUPS-PDF。 CUPS_PDF 是一台虚拟打印机,因此它满足我的一个条件,但它不允许我处理发送来打印的文件。我可以监视放置转换后的 PDF 的目录,并在每次目录更改时调用 python 脚本,但这远非理想的解决方案。
我尝试使用 win32 API 以 FILE 打印机的形式在 Windows 中创建类似的东西,但它又不让我处理要打印的文件。
我也偶然发现了 Tea4CUPS,它是 CUPS 打印机的一种可编程后端,但我不太确定如何利用它。我遇到的另一种选择是使用 Windows Driver Kit (WDK) 编写虚拟打印机驱动程序,但这似乎过于复杂,特别是考虑到我需要虚拟打印机来重定向要打印的文件到我的 python 脚本。
如何实现我想要的场景?虽然我有 Python 经验,但在此之前我从未使用过虚拟打印机。
使用RedMon。它是一个开源 windows 打印机端口,可将所有打印机输出重定向到特定程序(例如 python 脚本)。
以下程序最多适用于 windows 10 个 2015 年发布的版本:
- 使用安装程序下载并安装 RedMon 软件。
- 在设备和打印机下,运行 "Add Printer" 向导作为管理员(或使用 win32 API)
- 使用 postscript 驱动程序添加打印机(我个人更喜欢安装 Xerox Global Print Driver PS,但其他 PS 驱动程序已经安装)并创建一个新的 "Redirected Port."
- 您可以配置 "Configure Port" 下的选项以将输出定向到您的脚本。