如何使用python更改打印机首选项设置

时间:2019-10-24 21:51:00

标签: python pywin32

我是python的新手,想更改打印机首选项设置。我正在使用win32print库,需要根据要求更改链接http://timgolden.me.uk/pywin32-docs/PyDEVMODE.html上给出的PyDEVMODE对象属性。但是在创建对象时遇到了问题。

我已经尝试过此-Python win32print changing advanced printer options

获取错误“未定义名称'pDevModeObj'”

PRINTER_DEFAULTS = {"DesiredAccess":win32print.PRINTER_ALL_ACCESS}  
pHandle = win32print.OpenPrinter('300LN1', PRINTER_DEFAULTS)  
properties = win32print.GetPrinter(pHandle, 2)  
pDevModeObj.Orientation = 2  
properties["pDevMode"]=pDevModeObj   
win32print.SetPrinter(pHandle,2,properties,0)

1 个答案:

答案 0 :(得分:0)

此代码显然会给出错误。

在创建pDevModeObj之前使用它。 即使在下一行中,您也不会为pDevModeObj分配值,而是为pDevModeObj分配变量properties["pDevMode"],这在Python中不起作用。

您现有解决方案的解决方法是:

PRINTER_DEFAULTS = {"DesiredAccess":win32print.PRINTER_ALL_ACCESS}  
pHandle = win32print.OpenPrinter('300LN1', PRINTER_DEFAULTS)  
properties = win32print.GetPrinter(pHandle, 2)
pDevModeObj = properties["pDevMode"]
pDevModeObj.Orientation = 2  
win32print.SetPrinter(pHandle,2,properties,0)
win32print.ClosePrinter(pHandle)