Можно ли программно управлять опцией «Повернуть на 180 градусов» в настройках драйвера принтера HP с помощью VBA? - PullRequest
0 голосов
/ 13 ноября 2008

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

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

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

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

Ответы [ 2 ]

1 голос
/ 22 февраля 2009

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 in word. Если вы используете Excel или любой другой офисный продукт, он не будет работать.

1 голос
/ 13 ноября 2008

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

Объект принтера: справочник по языку 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)

)
...