Page 1 of 1

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

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

Posted: Thu Aug 28, 2014 7:38 pm
by opk44
mag1982
Если после /p добавить /Command(4107), то будет появляться диалог настроек печати.

Posted: Fri Aug 29, 2014 7:10 am
by mag1982
Добрый день, спасибо за ответ.
К сожалению, такой вариант меня не устраивает, т.к. печать документа должны выполняться без участия человека. Нужна автоматическая настройка на формат листа "Альбомный". После выполненной настройки - необходимо отправить документ на печать.

Posted: Fri Aug 29, 2014 8:12 am
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} - нажатие кнопки "Печать"

Posted: Fri Aug 29, 2014 2:25 pm
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

Posted: Sat Aug 30, 2014 9:22 am
by mag1982
Добрый день!
Господа, спасибо за помощь!)
С версией 4.9.0. и скриптом PrintOrientation.js все отлично отработало.