张chong 2020-04-30 14:17 采纳率: 0%
浏览 896

为什么 python 调用 win32print 获取打印机状态失败?

想设计一个程序让打印机在有纸的情况下的自动打印特定文档,检测到没纸停止打印,检测再次有纸再次打印。调用win32print库返回的结果一直是{'pServerName': None, 'pPrinterName': 'Pantum P2500 Series', 'pShareName': '', 'pPortName': 'USB002', 'pDriverName': 'Pantum P2500 Series', 'pComment': None, 'pLocation': None, 'pDevMode': , 'pSepFile': None, 'pPrintProcessor': 'winprint', 'pDatatype': 'RAW', 'pParameters': None, 'pSecurityDescriptor': , 'Attributes': 2624, 'Priority': 1, 'DefaultPriority': 0, 'StartTime': 0, 'UntilTime': 0, 'Status': 0, 'cJobs': 1, 'AveragePPM': 0}

换了两种型号的打印机都是 'Status': 0 均未能检测出打印机当前的状态。请热心的大佬帮我看看问题出在哪里?

import win32print
import win32ui
import win32con


INCH = 1440
# 实例化
hDC = win32ui.CreateDC()
# 获取打印机句柄
hDC.CreatePrinterDC(win32print.GetDefaultPrinter())
# 设置打印位置
ulc_x = 200  # 左上X
ulc_y = -200  # 左上Y
lrc_x = 11350  # 右下X
lrc_y = -11350  # 右下Y
# # 开始打印
hDC.StartDoc("add page")
    # 获取打印机状态
hPrinter = win32print.OpenPrinter('Pantum P2500 Series')
dic = win32print.GetPrinter(hPrinter, 2)

for i in range(1, 3):
    hDC.StartPage()
    hDC.SetMapMode(win32con.MM_TWIPS)
    hDC.DrawText(str(i), (ulc_x, ulc_y, lrc_x, lrc_y), win32con.DT_RIGHT)
    hDC.EndPage()


print(dic)
win32print.AbortPrinter(hPrinter)
hDC.EndDoc()

输出

{'pServerName': None, 'pPrinterName': 'Pantum P2500 Series', 'pShareName': '', 'pPortName': 'USB002', 'pDriverName': 'Pantum P2500 Series', 'pComment': None, 'pLocation': None, 'pDevMode': <PyDEVMODEW object at 0x012E37E0>, 'pSepFile': None, 'pPrintProcessor': 'winprint', 'pDatatype': 'RAW', 'pParameters': None, 'pSecurityDescriptor': <PySECURITY_DESCRIPTOR object at 0x012D9FE0>, 'Attributes': 2624, 'Priority': 1, 'DefaultPriority': 0, 'StartTime': 0, 'UntilTime': 0, 'Status': 0, 'cJobs': 1, 'AveragePPM': 0}
Traceback (most recent call last):
  File "c:\Users\Administrator.DESKTOP-BCUJV93\Desktop\code-learning\页码打印\win32printer学习.py", line 30, in <module>
    win32print.AbortPrinter(hPrinter)
pywintypes.error: (3003, 'AbortPrinter', '未发送 StartDocPrinter 调用。')
  • 写回答

3条回答 默认 最新

  • 『忘却』 2021-04-16 10:42
    关注

    兄弟,这个问题你有解决了么,可以留个联系方式么

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器