Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将虚拟打印机的输出重定向到Python脚本_Python_Linux_Windows_Cups_Virtual Printer - Fatal编程技术网

将虚拟打印机的输出重定向到Python脚本

将虚拟打印机的输出重定向到Python脚本,python,linux,windows,cups,virtual-printer,Python,Linux,Windows,Cups,Virtual Printer,我的意图是实现以下场景: Windows或Linux用户发出打印文档的命令(使用Ctrl+p)并在可用打印机列表中查看虚拟打印机(虚拟打印机) 用户选择打印机并发出打印命令 虚拟打印机不会实际打印,而是自动将文件连同选定的纸张大小、格式等一起发送到python脚本作为输入[在将其转换为PDF后可选] Python脚本将文件上传到云或某个远程存储中,在需要时可以从中检索并在物理打印机上打印 我已经参考了关于StackOverflow的一个类似问题的答案,并查阅了CUPS和CUPS-PDF。CU

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

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

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

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

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

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

我尝试在Windows中以文件打印机的形式使用win32 API创建类似的东西,但它同样不允许我处理要打印的文件

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

我如何实现我想要的情景?虽然我有Python的经验,但在此之前我从未使用过虚拟打印机。

使用。它是一个开源的windows打印机端口,只需将所有打印机输出重定向到特定程序(如python脚本)

以下程序在2015年发布的windows 10之前有效:

  • 使用安装程序下载并安装RedMon软件
  • 在“设备和打印机”下,以管理员身份运行“添加打印机”向导(或使用win32 API)
  • 使用postscript驱动程序添加打印机(我个人更喜欢安装Xerox全局打印驱动程序PS,但其他PS驱动程序已经安装)并创建一个新的“重定向端口”
  • 您可以在“配置端口”下配置选项,将输出定向到脚本

  • 巧合的是,我使用了同样的方法。基于Redmon的虚拟打印机绝对是满足我需求的简单实现。但愿这个答案能早点来。无论如何,谢谢你。