Определение принтеров по умолчанию на уровне документа

Некоторые программы по каждому документу запоминают, какой принтер вы в последний раз использовали при работе с этим документом. Например, InDesign и QuarkXPress запоминают, какой принтер использовался для печати того или иного документа; если вы переключитесь с одного документа на другой, принтер, предназначенный для печати этого документа, также изменится.

Word, к сожалению, не имеет такой возможности. Вместо этого Word отслеживает принтеры для каждого сеанса. Другими словами, когда вы запускаете Word, он предполагает, что вы хотите печатать на принтере Windows по умолчанию. Если вы позже переключитесь на другой принтер, этот принтер останется выбранным до тех пор, пока вы специально не внесете изменения. Когда вы выходите из сеанса Word и перезапускаете позже, выбранный принтер снова возвращается к принтеру по умолчанию.

Есть несколько способов обойти этот недостаток. Один из них – определить различные настраиваемые кнопки принтера (по одной для каждого из ваших принтеров), а затем просто использовать их для печати различных документов по желанию. Если вы хотите, чтобы Word запомнил, какой принтер использовался, то единственный вариант – создать макрос, который сделает это за вас. Однако этот подход нетривиален. По этой причине в этом совете будут обсуждаться только общие принципы написания такого макроса вместо представления фактического кода макроса.

Простым способом реализации такой макросистемы было бы определение макроса. специальное настраиваемое свойство документа, а затем используйте содержимое этого свойства для хранения имени принтера, который последний раз использовался для документа. Свойство документа можно установить с помощью макроса AutoClose, который вызывается всякий раз, когда вы закрываете документ.

После того, как настраиваемое свойство документа установлено, макрос может считывать значение и сбрасывать принтер всякий раз, когда вы готов к печати. Если свойство документа не установлено или если для него задан принтер, который недоступен, тогда он может просто использовать принтер Windows по умолчанию.

Уловка во всем этом, конечно же, заключается в том, чтобы определить, когда должен выполняться макрос, переключающий принтер. Его можно было поместить в один из макросов Auto (например, AutoOpen), но это не решило бы проблему полностью. Например, если вы открываете два документа одновременно, принтер останется установленным на принтер, указанный в последнем открытом документе.

Более полезным решением может быть простое использование макросов для переопределения команда печати, используемая в Word. Когда вы выбрали печать документа, макрос представит стандартное диалоговое окно «Печать», но выбранный принтер будет изменен на тот принтер, который хранится в настраиваемом свойстве документа. Недостаток этого подхода такой же, как и изначальная сильная сторона – принтер не меняют до фактической печати. Word использует выбранный драйвер принтера для управления своим WYSIWYG-дисплеем. Другими словами, выбранный драйвер принтера определяет, как информация отображается на экране.. Если драйвер принтера изменяется непосредственно перед печатью, то то, что печатается, может не совпадать с тем, что отображается на экране.

Лучшим решением было бы привязать макрос настройки принтера к событию, которое запускается всякий раз, когда документ получил фокус (когда документ был выбран). К сожалению, такое событие недоступно для объектов документа в VBA. (Что очень любопытно, поскольку такой объект есть в реализации VBA в Excel.)

Результатом всего этого является то, что полное решение потребует изменения нескольких различных встроенных команд Word. Какие команды? Это действительно зависит от того, как вы используете Word. Например, если вы обычно просматриваете Предварительный просмотр перед печатью, вам нужно изменить команду Предварительный просмотр, чтобы она изменяла драйвер принтера. Вы выбираете команду «Печать» прямо на экране предварительного просмотра? Если да, то вам нужно будет внести изменения в эту команду.

Оцените статью
Frestage.ru
Добавить комментарий