【发布时间】:2015-03-09 12:24:26
【问题描述】:
我想使用 python 将文本文件打印到本地打印机(名称:“XP-58”,类型:热敏 pos 打印机,操作系统:windows 8.1)。 最好的方法是什么? 我找到了this,但我找不到办法。 最佳解决方案是这样的:
- 当前打印机 = X
- tempprinter = "XP-58"
- 打开文件“test.txt”
- 打印到临时打印机
- 将打印机设置为当前打印机
额外:您认为可以打印条形码吗? (不同的字体?)
我尝试使用上面链接中的原始打印,将其更改为函数,但我的打印机上没有任何内容。这是我的代码
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)
但是什么也没发生??我做错了什么?
【问题讨论】:
-
打印基础设施在系统和平台之间差异很大。您的链接指示 Windows,因此我已根据该链接标记了您的问题;但请随时使用有关您的平台和环境的详细信息更新您的问题。
-
完成。我忘了提。对不起