我使用来自this question的代码打印到热EPSON TM-T82打印机但是当我使用tkinter
和mainloop()
python进行修改时,我不会直接打印我的数据,直到我关闭布局GUI 。我希望这个脚本可以在不关闭布局GUI的情况下打印出我的数据。
这是我的代码:
import subprocess
from Tkinter import *
class tes_print:
def __init__(self):
self.printData()
def printData(self):
data = " MY TEXT "
lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE, shell=True)
lpr.stdin.write(data)
root = Tk()
app2 = tes_print()
root.mainloop()
答案 0 :(得分:0)
您正在体验缓冲。 write
将写入一个缓冲区,该缓冲区实际上并未传递给lpr
,直到它填满或您明确刷新它。
正在运行lpr.communicate()
会将其刷新并允许lpr
运行完成。
lpr = subprocess.Popen(['lpr'], stdin=subprocess.PIPE)
stdout, stderr = lpr.communicate(input=data)