获取打印机状态,脱机或者在线

# 返回获取所有打印机名称信息
import win32print
print_names = []
printers = win32print.EnumPrinters(2)
for printer in printers:
    print_names.append(printer[2])

def get_printer_status(device_name=None):
    # 获取打印机状态 device_name打印机名称
    try:
        handle = win32print.OpenPrinter(device_name)
    except:
        return '未获取'
    properties = win32print.GetPrinter(handle, 2)
    attributes = properties['Attributes']
    status = '脱机' if (attributes & 0x00000400) >> 10 > 0 else '在线'
    return status

# 设置默认打印机
def set_default_printer(device_name):
    #获取默认打印机的名称 device_name 打印机名称
    default_printer_handle = win32print.GetDefaultPrinter()
    # 判断是否默认打印机
    if default_printer_handle != device_name:
        # 设置默认打印机
        win32print.SetDefaultPrinter(device_name)
from win32con import DC_PAPERNAMES,DC_PAPERSIZE
# 打印机首选项页面设置的名称
pagenames = win32print.DeviceCapabilities(device_name, 'LPT1', DC_PAPERNAMES)
# 打印机首选项页面设置的尺寸
pagesizes = win32print.DeviceCapabilities(device_name, 'LPT1', DC_PAPERSIZE)
for k, v in zip(pagenames, pagesizes):
    value = f'{v["x"]}毫米 x {v["y"]}毫米'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值