Вывод документа на печать с изменением настроек страницы

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 3
Joined: Thu Aug 28, 2014 2:39 pm

Вывод документа на печать с изменением настроек страницы

Post by mag1982 »

Доброго времени суток!
У меня такая задача.
Использую программу AkelPad как средство автоматического вывода на печать текстовых документов.
Документы/файлы открываю и отправляю на печать с использованием ключа командной строки /p. При этом программа остается невидимой, использую метод /Show(0).
В большинстве случаев проблем не возникает. И все работает отлично.
Но, недавно появились документы, в которых печатаемый текст не помещается на страницу имеющую формат "Книжная". Для этих документов перед отправкой на печать нужно изменить параметры страницы с "Книжная" на "Альбомная".
Пожалуйста, подскажите, как я могу выполнить эту операцию?
Буду признателен за любую помощь.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

mag1982
Если после /p добавить /Command(4107), то будет появляться диалог настроек печати.

Offline
Posts: 3
Joined: Thu Aug 28, 2014 2:39 pm

Post by mag1982 »

Добрый день, спасибо за ответ.
К сожалению, такой вариант меня не устраивает, т.к. печать документа должны выполняться без участия человека. Нужна автоматическая настройка на формат листа "Альбомный". После выполненной настройки - необходимо отправить документ на печать.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

mag1982
Тогда можно вместо "/p /Command(4107)" в параметрах передать скрипт, который будет выполнять и соответствующую настройку печати и саму печать.
/Call("Scripts::Main", 1, "name_of_script.js", "")

Содержимое скрипта для разных принтеров будет скорее всего различным, поэтому записывать его нужно "на месте". Проще всего использовать Macros-плагин и экспорт в js.
У меня на виртуальном принтере (Bullzip PDF Printer) получилось вот так:

Code: Select all

var WshShell=new ActiveXObject("WScript.shell");
WshShell.SendKeys("^p{TAB}{TAB}{ENTER}{DOWN}{TAB}{TAB}{TAB}{TAB}{ENTER}{ENTER}");
Пояснения:
^p - вызов диалога печати
{TAB}{TAB}{ENTER} - переход на кнопку "Настройка" и ее нажатие
{DOWN} - перевод ориентации в режим "Альбомная"
{TAB}{TAB}{TAB}{TAB}{ENTER} - переход на кнопку "OK" и ее нажатие
{ENTER} - нажатие кнопки "Печать"

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

mag1982
С разрабатываемой версией 4.9.0 + PrintOrientation.js:

Code: Select all

::Print landscape
start AkelPad.exe /Show(0) /Call("Scripts::Main", 2, "PrintOrientation.js", `-Orientation=2`) /p "1.txt" /p "2.txt" /quit

Offline
Posts: 3
Joined: Thu Aug 28, 2014 2:39 pm

Post by mag1982 »

Добрый день!
Господа, спасибо за помощь!)
С версией 4.9.0. и скриптом PrintOrientation.js все отлично отработало.
Post Reply