从Python打印到标准打印机?

是否有合理的标准和跨平台的方式来打印文本(甚至是PS / PDF)到系统定义的打印机?

假设CPython在这里,不像使用Jython和Java打印API那样聪明。

不幸的是,在所有平台上都没有使用Python进行打印的标准方法。 所以你需要编写自己的包装函数来打印。

您需要检测您的程序正在运行的操作系统 ,然后:

对于Linux –

import subprocess lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE) lpr.stdin.write(your_data_here) 

对于Windows: http : //timgolden.me.uk/python/win32_how_do_i/print.html

更多资源:

用python的win32print模块打印PDF文档?

如何在Python 3(跨平台)中打印到操作系统的默认打印机?

这只在Windows上进行过testing:

您可以执行以下操作:

 import os os.startfile("C:/Users/TestFile.txt", "print") 

这将在其默认开启器中启动该文件,其中动词“print”将打印到默认打印机。只需要标准库附带的os模块

要打印到networking上的任何打印机,您可以将PJL / PCL打印作业直接发送到端口9100上的networking打印机。

请看下面的链接应该给一个好的开始:

http://frank.zinepal.com/printing-directly-to-a-network-printer

此外,如果有一种方法可以调用Windows cmd,则可以使用FTP将打印页面打印在9100上。下面的链接应该会给出详细信息,我已经将这种方法用于惠普打印机,但是我相信它可以用于其他打印机。

http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpj06165

你可以试试wx库。 这是一个跨平台的UI库。 在这里你可以find打印教程: http : //wiki.wxpython.org/Printing