如何解决在python中重置打印机的USB端口
我正在使用 tkinter 模块构建桌面信息亭 python 应用程序。它的功能之一是打印 matplotlib 图形。我正在使用 ghostscript 打印 PDF。问题是当有人在其他端口重新连接打印机时。打印机设置中的端口未更新。我成功地使用 win32print api 更新了端口。但问题是打印机仍然不打印文件。深入挖掘后,我意识到每次更改端口时打印机都需要进行初始握手。
我们如何在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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。