SiriBen 2021-03-17 11:03 采纳率: 25%
浏览 273

python3 pywin32print模块调用系统打印机出现中文乱码

import win32print
import win32api
import win32ui
import win32con
import sys


def send_to_printer(title, txt):
    print(title)
    print(txt)
    INCH = 1440
    hDC = win32ui.CreateDC()
    hDC.CreatePrinterDC(win32print.GetDefaultPrinter())
    hDC.StartDoc(title)
    hDC.StartPage()
    hDC.SetMapMode(win32con.MM_TWIPS)
    ulc_x = 1000
    ulc_y = 1000
    lrc_x = 16000
    lrc_y = 11000
    hDC.DrawText(txt, (0, INCH * -1, INCH * 8, INCH * -2), win32con.DT_LEFT)
    hDC.EndPage()
    hDC.EndDoc()
def hello():
    text = u'text doc-测试标题'
    content = u'TEST HELLO  WORLD! CORSS FIREWALL, WE TOUCH THE WORLD!这是一条测试打印'
    send_to_printer(text, content)

if __name__ == '__main__':
    hello()

就这么一段简单的代码 ,确实能实现调用打印机并且打印出字符串,但问题是如果是中文就是乱码,可以我在控制台打印出来是正常的中文。求大神帮助

  • 写回答

1条回答 默认 最新

  • qq_19130532 2022-05-02 20:05
    关注

    我也碰到了同样的问题,楼主后来有没有解决?

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大