【问题标题】:Using python to print (non-default networked printer)使用python打印(非默认联网打印机)
【发布时间】:2021-03-01 09:52:27
【问题描述】:

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

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 行,但是我添加它,它不接受它。有什么方法可以获取可用的打印机列表或以这种方式指定网络打印机的一些语法?

【问题讨论】:

    标签: python winapi printing


    【解决方案1】:

    您可以使用wmi 模块。

    • pip install wmi
    import wmi
    
    c = wmi.WMI()
    print(c.Win32_PrinterShare)
    

    这将为您提供有关已连接网络打印机的信息。 这是 microsoft C++ win32 文档,但由于 wmi 是所有这些类的包装器,因此您无论如何都可以获得有价值的信息。

    例如,您可以print(c.Win32_Printer.DeviceId),如果至少有一个已连接,则返回打印机 ID,否则返回无。

    您现在应该在此处阅读可以使用的可用方法和类:win32 info

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 2017-07-12
      • 2014-05-27
      相关资源
      最近更新 更多