Python 在 Linux 上将字节字符串直接打印到打印机
Python printing bytes string directly to printer on Linux
可以使用
打印临时文件
subprocess.run(["lp", "-d", "<printer>", tmp])
但是是否可以打印表示 ReportLab 生成的 pdf 的字节字符串?
buffer = BytesIO()
c = canvas.Canvas(buffer)
c.drawString(100, 100, "Hello World")
c.showPage()
c.save()
pdf = buffer.getvalue()
lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE)
lpr.stdin.write(pdf)
buffer.close()
此代码启动打印作业,但大小为 0k
,状态为已保留。
我猜你错过了一个 lpr.communicate()
电话,比较一下:
Understanding Popen.communicate
可以使用
打印临时文件subprocess.run(["lp", "-d", "<printer>", tmp])
但是是否可以打印表示 ReportLab 生成的 pdf 的字节字符串?
buffer = BytesIO()
c = canvas.Canvas(buffer)
c.drawString(100, 100, "Hello World")
c.showPage()
c.save()
pdf = buffer.getvalue()
lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE)
lpr.stdin.write(pdf)
buffer.close()
此代码启动打印作业,但大小为 0k
,状态为已保留。
我猜你错过了一个 lpr.communicate()
电话,比较一下:
Understanding Popen.communicate