本文主要是介绍Python使用win32print实现打印机控制(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近因为项目需要,需要对打印机进行控制和管理,除了常规的打印页面设置,还需要对打印机状态进行监控,如忙、空闲、缺纸、缺墨等问题。
用Java的print api搞了好久,结果不尽人意。改投python的win32print api门下。
1、引入包
import win32print
import win32ui
import win32con
2、获取打印机
#获取默认打印机printername = win32print.GetDefaultPrinter()#设置权限PRINTER_DEFAULTS = {"DesiredAccess": win32print.PRINTER_ALL_ACCESS}#按照指定名称获取打印机pHandle = win32print.OpenPrinter("Panasonic KX-MB1678 GDI", PRINTER_DEFAULTS)pHandle = win32print.OpenPrinter(printername, PRINTER_DEFAULTS)printerscl=win32print.GetPrinter(pHandle, 2)#此处返回值存在问题:getprinter里面传入1 返回一个元组,传入2返回一个字典
3、返回打印机属性和参数
以返回字典类型为例
for it in printerscl:print(it + ':' + str(printerscl[it]))print(type(printerscl[it]))# if str(it)=='pDevMode':# for itp in printerscl[it]:# print(itp + ':' + str(printerscl[it][itp]))# if str(it)=='pDevMode':# for n in dir(printerscl[it]):# print(n,getattr(printerscl[it],n))# if str(it)=='pSecurityDescriptor':# for its in printerscl[it]:# print(its + ':' + str(printerscl[it][its]))if str(it)=='pSecurityDescriptor':for n in dir(printerscl[it]):print(n,getattr(printerscl[it],n))win32print.ClosePrinter(pHandle)
返回值
可以看到倒数第三项存在一个status参数。
这篇关于Python使用win32print实现打印机控制(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!