python - 使用python打印(非默认联网打印机)
问题描述
我有一些代码可以为联网标签打印机生成标签:
import win32ui
dc = win32ui.CreateDC()
dc.CreatePrinterDC()
dc.StartDoc('Label Document')
dc.StartPage()
fontdata = {'height':80}
font = win32ui.CreateFont(fontdata)
dc.SelectObject(font)
dc.TextOut(0,10,'Sample: 3174')
dc.TextOut(0,90,'Date:26/02/21')
dc.TextOut(0,180,'sample_name')
dc.EndPage()
dc.EndDoc()
这很好用,并在默认情况下打印到标签打印机,但将来我想为此指定不同的打印机。我尝试将打印机的名称添加到 CreatePrinterDC 行,但是我添加它,它不接受它。有没有办法获得可用的打印机列表或以这种方式指定网络打印机的一些语法?
解决方案
您可以使用该wmi
模块。
pip install wmi
import wmi
c = wmi.WMI()
print(c.Win32_PrinterShare)
这将为您提供有关已连接网络打印机的信息。这是 microsoft C++ win32 文档,但由于wmi是所有这些类的包装器,因此无论如何您都可以获得有价值的信息。
例如,print(c.Win32_Printer.DeviceId)
如果至少连接了一个,您可以并且将返回打印机 ID,否则将返回 None。
您现在应该在此处阅读可以使用的可用方法和类:win32 info
推荐阅读
- mysql - 尝试使用 CASE 过滤来自查询的结果
- c#-4.0 - 单例延迟加载模式存储会话对象的最佳实践
- asp.net-core - 在 Razor 页面中,在没有 UI 的情况下运行操作的推荐方法是什么
- c++ - 从余额数组中提取金额的函数
- python - 如何在 Tensorflow 中比较或测量模型的实际大小?
- c# - SignalR、WebAPI、Winforms 或替代方案
- excel - 禁用excel VBA组合框/列表框中的一个选项?
- python - 与行号一致
- javascript - 带有轨道“行星”的 CSS 同心圆
- python - 给定一个长字符串,在字典中找到匹配的字符串