我想使用python将文本文件打印到本地打印机(名称:“XP-58”,类型:热pos打印机,操作系统:windows 8.1)。 最好的方法是什么? 我找到了this,但我无法找到办法。 最佳解决方案是这样的:
额外:您认为打印条形码是否可行? (不同的字体?)
我尝试使用上面链接中的原始打印件,将其更改为功能但我的打印机上没有任何内容。这是我的代码
import os, sys
import win32print
printer_name = win32print.GetDefaultPrinter ()
hPrinter = win32print.OpenPrinter (printer_name)
def prn_txt(text):
if sys.version_info >= (3,):
raw_data = bytes (text, "utf-8")
else:
raw_data = text
try:
hJob = win32print.StartDocPrinter (hPrinter, 1, ("test of raw data", None, "RAW"))
try:
win32print.StartPagePrinter (hPrinter)
win32print.WritePrinter (hPrinter, raw_data)
win32print.EndPagePrinter (hPrinter)
finally:
win32print.EndDocPrinter (hPrinter)
finally:
win32print.ClosePrinter (hPrinter)
txt = "blabla"
print prn_txt(txt)
但没有任何反应?我做错了什么?
答案 0 :(得分:0)
要通过打印后台处理程序API将文本发送到打印机,您需要使用TEXT
模式而不是RAW
:
hJob = win32print.StartDocPrinter (hPrinter, 1, ("Test text document", None, "TEXT"))
RAW
模式适用于打印机可以直接处理PCL或Postscript等数据的情况。 TEXT
模式将使假脱机程序使用打印机在将其发送到打印机之前理解的语言生成假脱机文件。