Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.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_Printing_Cpython - Fatal编程技术网

从Python打印到标准打印机?

从Python打印到标准打印机?,python,printing,cpython,Python,Printing,Cpython,是否有一种合理的标准和跨平台方式将文本(甚至PS/PDF)打印到系统定义的打印机上 假设这里没有像使用Jython和.那样聪明的东西,不幸的是,没有在所有平台上使用Python打印的标准方法。因此,您需要编写自己的包装函数来打印 您需要确认您的程序正在运行,然后: 对于Linux- import subprocess lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE) lpr.stdin.write(your_data_h

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


假设这里没有像使用Jython和.

那样聪明的东西,不幸的是,没有在所有平台上使用Python打印的标准方法。因此,您需要编写自己的包装函数来打印

您需要确认您的程序正在运行,然后:

对于Linux-

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

更多资源:


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

请查看下面的链接,这应该是一个良好的开端:

此外,如果有办法调用Windows cmd,您可以使用FTP put在9100上打印页面。下面的链接应该会给你详细的信息,我已经在HP打印机上使用过这种方法,但我相信它也适用于其他打印机


这仅在Windows上测试过:

您可以执行以下操作:

import os

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

这将使用动词“print”在其默认打开程序中启动文件,该动词将打印到您的默认打印机。仅需要标准库附带的
os
模块,您可以尝试wx库。它是一个跨平台的UI库。您可以在此处找到打印教程:

我发现这是一个更好的解决方案,至少在处理web应用程序时是这样。其思想是:将HTML页面转换为PDF文档,并通过将其发送到打印机

尽管gsprint已不再处于开发阶段,但它的工作非常非常好。您可以在其他几个选项中选择打印机、页面方向和大小


我使用Chrome的无头浏览器Puppeter将网页转换为PDF。但是您需要传入会话cookie来维护凭据。

假设Java打印可以做到这一点,另一个“聪明”的解决方案是JPype(一种让cpython和jvm相互通信/运行代码的方法),这是非常有希望的!我不再使用python+打印,但是如果打印可以通过wxpython跨平台工作,我会接受这个答案。根据这个答案,它只在Windows上工作。你知道有什么方法可以自定义打印以横向模式打印吗?谢谢你的回答!我将您的答案与@AnujGupta的答案结合使用。Linux或Mac选项使用相同的操作系统模块:导入OS OS.system(“lpr-P printer_name file_name.txt”),其中“printer_name”表示打印机的名称,“file_name.txt”表示将要打印的文件的名称。我很喜欢这个,但它不是跨平台的:(好的,你可以在Linux中使用CUPS系统。如果我没记错的话,如果你想在商业上使用这个系统,你需要一个商业许可证,这不是免费的。如果你是一家大公司,我想这不是问题,但对像我这样的小公司来说可能会很烦人。@ShanerM13,我刚刚查过这个。它使用了,这意味着它基本上是免费的感谢您的回答!我将您的答案与@user3444876的答案结合使用。