Python在Linux上直接打印字节串到打印机

时间:2018-06-15 10:15:05

标签: python linux printing reportlab

可以使用

打印临时文件
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且状态为已保留。

1 个答案:

答案 0 :(得分:0)

我猜您错过了lpr.communicate()来电,请与以下内容进行比较: Understanding Popen.communicate