我是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)
答案 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)