Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Управление настройками принтера из VBA / 12 сообщений из 12, страница 1 из 1
02.11.2006, 10:56:20
    #34099931
itsme8
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
Подскажите, пожалуйста, можно ли программно из VBA задать такие настройки принтера, как двухсторонняя печать в виде буклета (драйвер принтера поддерживает, HP LaserJet 1300)? Или хотя бы как вызвать диалог настройки параметров печати из VBA.
...
Рейтинг: 0 / 0
02.11.2006, 11:19:47
    #34100042
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
По-моему, это элементарно можно узнать записью макроса.

...
Рейтинг: 0 / 0
02.11.2006, 11:48:38
    #34100183
A.K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
Метод Document.PrintOut позволяет напечатать документ с заданными свойствами принтера, в том числе и в режиме двухсторонней печати.

Диалог печати, также как и другие диалоги Office'а, можно вызвать через коллекцию Application.Dialogs.
...
Рейтинг: 0 / 0
02.11.2006, 12:07:30
    #34100280
itsme8
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
Запись макроса при вызове диалога по Ctrl+P элементарно ничего не записывает.
...
Рейтинг: 0 / 0
02.11.2006, 12:18:22
    #34100339
itsme8
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
Не знаю о каком document.PrintOut шла речь, но в Excel он оъявлен так: PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName). И никак не задашь буклет и т.п.

Application.Dialogs(xlDialogPrinterSetup).Show вызывает нужный диалог, но если принтеров несколько, то сначала выбираешь принтер, потом жмёшь кнопку "Установка". И для дубового пользователя это никак не приемлемо.

Судя по всему, программно задать печать буклетом не выйдет :-(
...
Рейтинг: 0 / 0
02.11.2006, 12:19:00
    #34100342
A.K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
itsme8Запись макроса при вызове диалога по Ctrl+P элементарно ничего не записывает.
А вы какие настройки хотите записать рекордером - те, что устанавливаются непосредственно в диалоге "ПЕчать", или те, что устанавливаются в диалоге настройки принтера (кнопка "Свойства" окна "ПЕчать")? Если последнее, то дело это бестолковое - драйвер принтера же не является компонентом Microsoft Office.
...
Рейтинг: 0 / 0
02.11.2006, 12:22:28
    #34100360
A.K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
itsme8Не знаю о каком document.PrintOut шла речь, но в Excel он оъявлен так: PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName). И никак не задашь буклет и т.п.
А вы разве где-нибудь уточнили, какое приложение Office и какой версии вас интересует?
К примеру, в Word'е, да еще и версии 2002 параметров гораздо больше :-)
...
Рейтинг: 0 / 0
02.11.2006, 12:23:20
    #34100365
itsme8
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
Виноват, сообщаю: Excel 2003 :-)
...
Рейтинг: 0 / 0
02.11.2006, 12:28:18
    #34100391
itsme8
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
Да я знаю, что настройки Printer Document Properties являются компонентом конкретного драйвера принтера. Поэтому и спросил, можно ли вообще в VBA программно их задать. Я пробовал это сделать для начала в С++, но тоже не знаю, как обратиться к дополнительным возможностям драйвера, которых нет в структуре DEVMODE.
...
Рейтинг: 0 / 0
02.11.2006, 12:39:58
    #34100464
A.K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
itsme8Я пробовал это сделать для начала в С++, но тоже не знаю, как обратиться к дополнительным возможностям драйвера, которых нет в структуре DEVMODE.

В С++ я реализовывал подобную задачу. Мне нужно было запоминать настройки печати для моей программы, и печатать с ними, не делая их настройками принтера по умолчанию (по умолчанию принтер был настроен на экономичную печать, и только из моей проги на этом принтере должно было печататься в наивысшем качестве).
Структура DEVMODE содержит общую часть и driver-dependent часть. Естественно, мы не сможем в этой второй части получить доступ к конкретным настройкам, поскольку для каждого драйвера они будут свои. Поэтому я программно вызывал диалог настройки принтера, а затем просто сохранял полную структуру DEVMODE как некие двоичные данные. Перед запуском печати документа я проверял, есть ли у меня сохраненные настройки для данного драйвера, и если есть - загружал сохраненную DEVMODE.
...
Рейтинг: 0 / 0
02.11.2006, 12:44:31
    #34100485
A.K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
Вот только когда я это сделал, а делал я это в C++ Builder и Delphi, то обнаружилась такая фишка - многие генераторы отчетов перед печатью сбрасывают DEVMODE в настройки принтера по умолчанию. Чтобы решить эту проблему в FastReports, пришлось немного подправить и перекомпилить его исходники.
Это я все к тому, что даже если из VBA и достучаться до DEVMODE, то скорее всего при запуске документа на печать все настройки сбросятся и мучения окажутся напрасными.
...
Рейтинг: 0 / 0
02.11.2006, 13:56:22
    #34100855
itsme8
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление настройками принтера из VBA
Да, из VBA маловероятно, что получится. Пусть даже будет правильно изменённый DEVMOD. Но его нужно применить к выбранному принтеру через дескриптор. А как получить дескриптор, через который Excel будет печатать, это уже никак, по-моему.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Управление настройками принтера из VBA / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]