用Python将文本文件打印到特定打印机

2024-09-28 22:21:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在本地打印机上打印一个文本文件(名称:“XP-58”,类型:thermal pos printer,op)系统:windows 8.1)使用python。 最好的办法是什么? 我找到了this,但我找不到办法。 最佳解决方案如下:

  1. 当前打印机=X
  2. tempprinter=“XP-58”
  3. 打开文件“测试.txt““
  4. 打印到临时打印机
  5. 将打印机设置为当前打印机

另外一个问题:你认为可以打印条形码吗?(不同字体?)在

我试图使用上面链接中的原始打印,将其更改为函数,但我的打印机上没有任何内容。这是我的密码

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)

但什么也没发生??我做错什么了?在


Tags: textnameimporttxtdatarawsys打印机
1条回答
网友
1楼 · 发布于 2024-09-28 22:21:19

要通过后台打印程序API将文本发送到打印机,您需要使用TEXT模式而不是RAW

hJob = win32print.StartDocPrinter (hPrinter, 1, ("Test text document", None, "TEXT"))

RAW模式适用于打印机可以直接处理的数据,如PCL或Postscript。TEXT模式将导致后台处理程序在发送到打印机之前使用打印机能够理解的语言生成假脱机文件。在

相关问题 更多 >