我试图实现的是用win32print打印一个文件,这样我就可以 通知用户实际正在打印的作业
使用print
函数将文件名打印到标准输出就足够了
我从here中提取了这段代码来说明这个问题
from win32 import win32print
import subprocess
printer_name = win32print.GetDefaultPrinter()
print("Printer: %s" % (printer_name))
hPrinter = win32print.OpenPrinter(printer_name)
try:
hJob = win32print.StartDocPrinter(hPrinter, 1, ("test of raw data", None, "RAW"))
try:
f = open("test2.ps", "r")
win32print.StartPagePrinter(hPrinter)
win32print.WritePrinter(hPrinter, bytes(f.read(), "utf-8"))
win32print.EndPagePrinter(hPrinter)
finally:
win32print.EndDocPrinter(hPrinter)
finally:
print("Printing: %s" % (hJob))
win32print.ClosePrinter(hPrinter)
您将如何通知用户正在打印的内容(检测是否开始新作业)
Here是状态代码
例如,0x00000400表示打印机正在打印。我找不到怎样才能把这份工作打印出来
如果要打印处于打印状态的作业的文档名称。 您可以尝试以下示例:
更新:
要在打印时获取文档名,可以使用^{} 和^{}
在} 。
你可以参考this answer
FindFirstPrinterChangeNotification
中设置^{相关问题 更多 >
编程相关推荐