Можно ли программно управлять параметром «Повернуть на 180 градусов» в настройках драйвера принтера HP с помощью VBA?

Я пытаюсь включить и выключить параметр «Повернуть на 180 градусов» для принтера HP Laserjet (4200/4350) с помощью модуля двусторонней печати.

У бизнеса есть требование «печатать на обеих сторонах», для максимального контроля я хотел бы иметь возможность манипулировать во время печати (с помощью макросов печати), включена ли двусторонняя печать для каждого из различных типов документа. бизнес работает с.

Я могу управлять назначением лотков, порядком печати и включать и выключать двустороннюю печать. Однако не могу понять, как управлять опцией вращения (включать и выключать).

Доступны какие-либо решения, кроме одеяла - включить эту опцию на сервере печати для всех документов/пользователей?


person David Pike    schedule 13.11.2008    source источник
comment
Это действительно плохой знак, когда бизнес решает, что он должен начать печатать что-то двустороннее.   -  person BIBD    schedule 13.11.2008
comment
CodeSlave: Я так не думаю. Фактически, принудительная двусторонняя печать для определенных документов, вероятно, приведет к экономии средств, в зависимости от размера компании.   -  person Thomas Owens    schedule 13.11.2008
comment
Почему экономить бумагу плохо?   -  person Toby Allen    schedule 25.02.2009


Ответы (2)


Возможно, опцией двусторонней печати HP можно управлять из:

Объект принтера: Access 2003 Справочник по языку VBA (http://msdn.microsoft.com/en-us/library/aa223133(office.11).aspx)

Более конкретно:

Свойство дуплекса (http://msdn.microsoft.com/en-us/library/aa195860(office.11).aspx)

person Fionnuala    schedule 13.11.2008

COM-интерфейс - это то, что вам нужно. Ниже приведен код Python для смены лотка: VB выполняет те же основные шаги.

import win32print
PRINTER_DEFAULTS = {"DesiredAccess":win32print.PRINTER_ALL_ACCESS}
pHandle = win32print.OpenPrinter('PRINTERNAME', PRINTER_DEFAULTS)
properties = win32print.GetPrinter(pHandle, 2) #get the properties
pDevModeObj = properties["pDevMode"] #get the devmode
pDevModeObj.DefaultSource = tray_three #change some sort of setting... this case is the tray
properties["pDevMode"]=pDevModeObj #write the devmode back to properties
win32print.SetPrinter(pHandle,2,properties,0) #save the properties to the printer

Конечно, можно, наверное, просто изменить настройки принтера через vba в word. Если вы используете Excel или любой другой офисный продукт, он не будет работать.

person jle    schedule 22.02.2009