我正在使用tkinter模块构建桌面信息亭python应用程序。其功能之一是打印matplotlib图形。我正在使用ghostscript打印PDF。问题是当有人在其他端口重新连接打印机时。打印机设置中的端口未更新。我成功地使用win32printapi更新了端口。但问题是打印机仍然无法打印文档。深入挖掘后,我意识到打印机需要在每次端口更改时进行初始握手
如何在python中重置USB端口
这是更新打印机端口的代码
import win32com.client
import win32print
import sys
import os
if getattr(sys, 'frozen', False):
application_path = sys._MEIPASS
else:
application_path = os.path.dirname(os.path.abspath(__file__))
PRINTER_DEFAULTS = {"DesiredAccess":win32print.PRINTER_ALL_ACCESS}
myprinter = win32print.OpenPrinter(win32print.GetDefaultPrinter(), PRINTER_DEFAULTS)
wmi = win32com.client.GetObject ("winmgmts:")
for usb in wmi.InstancesOf ("Win32_USBHub"):
if usb.DeviceID.find("USBPRINT") >= 0:
printerPort = usb.DeviceID.split("&")
printerPort = printerPort[len(printerPort)-1]
attributes = win32print.GetPrinter(myprinter, 5)
attributes['pPortName'] = printerPort
win32print.SetPrinter(myprinter, 5, attributes, 0)
目前没有回答
相关问题 更多 >
编程相关推荐