使用python打印(非默认联网打印机)

时间:2021-03-01 09:52:27

标签: python winapi printing

我有一些代码可以为联网标签打印机生成标签:

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 行,但是无论我添加它,它都不接受它。有没有办法获得可用打印机的列表或通过这种方式指定网络打印机的一些语法?

1 个答案:

答案 0 :(得分:0)

您可以使用 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

相关问题