|
|
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожалуйста, можно ли программно из VBA задать такие настройки принтера, как двухсторонняя печать в виде буклета (драйвер принтера поддерживает, HP LaserJet 1300)? Или хотя бы как вызвать диалог настройки параметров печати из VBA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 10:56:20 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 11:19:47 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
Метод Document.PrintOut позволяет напечатать документ с заданными свойствами принтера, в том числе и в режиме двухсторонней печати. Диалог печати, также как и другие диалоги Office'а, можно вызвать через коллекцию Application.Dialogs. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 11:48:38 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
Запись макроса при вызове диалога по Ctrl+P элементарно ничего не записывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 12:07:30 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
Не знаю о каком document.PrintOut шла речь, но в Excel он оъявлен так: PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName). И никак не задашь буклет и т.п. Application.Dialogs(xlDialogPrinterSetup).Show вызывает нужный диалог, но если принтеров несколько, то сначала выбираешь принтер, потом жмёшь кнопку "Установка". И для дубового пользователя это никак не приемлемо. Судя по всему, программно задать печать буклетом не выйдет :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 12:18:22 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
itsme8Запись макроса при вызове диалога по Ctrl+P элементарно ничего не записывает. А вы какие настройки хотите записать рекордером - те, что устанавливаются непосредственно в диалоге "ПЕчать", или те, что устанавливаются в диалоге настройки принтера (кнопка "Свойства" окна "ПЕчать")? Если последнее, то дело это бестолковое - драйвер принтера же не является компонентом Microsoft Office. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 12:19:00 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
itsme8Не знаю о каком document.PrintOut шла речь, но в Excel он оъявлен так: PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName). И никак не задашь буклет и т.п. А вы разве где-нибудь уточнили, какое приложение Office и какой версии вас интересует? К примеру, в Word'е, да еще и версии 2002 параметров гораздо больше :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 12:22:28 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
Виноват, сообщаю: Excel 2003 :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 12:23:20 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
Да я знаю, что настройки Printer Document Properties являются компонентом конкретного драйвера принтера. Поэтому и спросил, можно ли вообще в VBA программно их задать. Я пробовал это сделать для начала в С++, но тоже не знаю, как обратиться к дополнительным возможностям драйвера, которых нет в структуре DEVMODE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 12:28:18 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
itsme8Я пробовал это сделать для начала в С++, но тоже не знаю, как обратиться к дополнительным возможностям драйвера, которых нет в структуре DEVMODE. В С++ я реализовывал подобную задачу. Мне нужно было запоминать настройки печати для моей программы, и печатать с ними, не делая их настройками принтера по умолчанию (по умолчанию принтер был настроен на экономичную печать, и только из моей проги на этом принтере должно было печататься в наивысшем качестве). Структура DEVMODE содержит общую часть и driver-dependent часть. Естественно, мы не сможем в этой второй части получить доступ к конкретным настройкам, поскольку для каждого драйвера они будут свои. Поэтому я программно вызывал диалог настройки принтера, а затем просто сохранял полную структуру DEVMODE как некие двоичные данные. Перед запуском печати документа я проверял, есть ли у меня сохраненные настройки для данного драйвера, и если есть - загружал сохраненную DEVMODE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 12:39:58 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
Вот только когда я это сделал, а делал я это в C++ Builder и Delphi, то обнаружилась такая фишка - многие генераторы отчетов перед печатью сбрасывают DEVMODE в настройки принтера по умолчанию. Чтобы решить эту проблему в FastReports, пришлось немного подправить и перекомпилить его исходники. Это я все к тому, что даже если из VBA и достучаться до DEVMODE, то скорее всего при запуске документа на печать все настройки сбросятся и мучения окажутся напрасными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 12:44:31 |
|
||
|
Управление настройками принтера из VBA
|
|||
|---|---|---|---|
|
#18+
Да, из VBA маловероятно, что получится. Пусть даже будет правильно изменённый DEVMOD. Но его нужно применить к выбранному принтеру через дескриптор. А как получить дескриптор, через который Excel будет печатать, это уже никак, по-моему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 13:56:22 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=308&tid=2183999]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 299ms |

| 0 / 0 |
