def set_print_preference(device_name=None): # 更改打印机首选项设置 # https://cloud.tencent.com/developer/ask/sof/1515323/answer/2070398 # https://www.cnblogs.com/cfld/p/16159080.html # http://timgolden.me.uk/pywin32-docs/PyDEVMODE.html # https://xyy15926.github.io/categories/Python/Pywin32 # https://www.php1.cn/detail/win32print_SheZh_25df7a0c.html import win32api, win32con printaccess = {"DesiredAccess": win32print.PRINTER_ALL_ACCESS} # 获取最高权限 try: # 获取指定打印机句柄 handle = win32print.OpenPrinter(device_name, printaccess) #关闭打印机 win32print.ClosePrinter(handle) # 获取指定打印机句柄 handle = win32print.OpenPrinter(device_name, printaccess) properties = win32print.GetPrinter(handle, 2) devmode = properties['pDevMode'] print('devmode:', devmode) devmode.FormName = "test1" # 打印机首选项中,页面设置的名称 devmode.PaperSize = 0 # 纸号 默认0 则PaperLength,PaperWidth有效 或者设置 win32con.DMPAPER_B5 表示纸号为B5 devmode.PaperLength = 150 # devmode.PaperWidth = 250 devmode.Copies = 1 #要打印的份数 # devmode.Scale = 0 #缩放 devmode.Duplex = win32con.DMDUP_SIMPLEX # 单面 devmode.Orientation = win32con.DMORIENT_LANDSCAPE # 横向打印 properties['pDevMode'] = devmode win32print.SetPrinter(handle, 2, properties, 0) # 检查默认设置是否成功 print(win32print.GetPrinter(handle, 2)['pDevMode'].PaperWidth) print(win32print.GetPrinter(handle, 2)['pDevMode'].PaperLength) except Exception as first: print(f'first:{first}')
更改打印机首选项设置
最新推荐文章于 2023-09-11 16:30:29 发布