PostScript не будет скреплять две страницы вместе на Konica Minolta - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь отправить простой PostScript на принтер Konica Minolta C364 с финишером для сшивания.Я могу напечатать пару страниц и сшить их, если сделаю это, напечатав, скажем, файл PDF напрямую и выбрав соответствующие настройки в пользовательском интерфейсе печати.Однако я не могу сделать то же самое с помощью команд PostScript.

Я пробовал множество различных команд, добавляя их как в начало, так и в конец файла .ps, начиная с простой.:

<< /Staple 3 >>

Затем попробуйте некоторые дополнительные опции:

<< /Staple 3  /StapleDetails << /Type 17 /Position 17 >> >> setpagedevice
or    
<</Staple 3 /StapleDetails <</Type 1 /StapleLocation(SinglePortrait)>> >> setpagedevice

А затем еще несколько предложений, таких как:

<</BindingLocation (LongEdge) >> setpagedevice 
<</Collate true /Rotate false /Jog 0>> setpagedevice 
<</Staple 2 /StapleDetails <</Type 5 /Position (1PLU)>> >> setpagedevice

Ни одно из них не имеет никакого эффекта - документ получаетнапечатано, но сшивание не выполняется.

Использую ли я неправильные команды или мне чего-то не хватает?

Я также пытался найти простой готовый файл .ps вИнтернет, в котором есть те же команды, но я не смог их найти.Множество разных предложений на разных форумах и сайтах, но ничего из того, что я пробовал, пока не принесло успеха, поэтому любые предложения приветствуются.Спасибо!

РЕДАКТИРОВАТЬ: Вот ссылка на образец .ps файла, который я использую: https://www9.zippyshare.com/v/QW6w7yHl/file.html

К сожалению, я должен сделать это по ссылке, так как кодслишком длинный, ~ 11 тыс. строк.

РЕДАКТИРОВАТЬ 2: После сохранения PostScript в файл вместо отправки его на принтер я смог просмотреть сгенерированный код и извлечь следующие строки, которые выполняют сшиваниеесли добавлено поверх файла:

@PJL COMMENT
@PJL SET ORIENTATION = PORTRAIT
@PJL SET BINDING = LEFT
@PJL SET FINISH = LEFT1POINT
@PJL SET EDGEMATCHING = FINISH
@PJL ENTER LANGUAGE = POSTSCRIPT

Надеемся, что они будут добавлены к ответу ниже!

1 Ответ

0 голосов
/ 12 сентября 2018

Действия, зависящие от устройства (такие как сшивание, а также дуплекс, Tumble, Collate и т. Д.), Как ожидается, будут управляться на уровне языка 2 или 3 с помощью вызова setpagedevice.

Некоторые функции, зависящие от устройства (например,Дуплекс) четко определены в спецификации, другие менее четко определены, и производители могут создавать собственные пары ключ / значение, которые полностью не определены.То, как работает оператор setpagedevice, будет игнорировать все, что он не понимает.

Так что я бы ожидал:

<< /Staple 3 >>

Ничего не делать.Это просто создает словарь с ключом / скобой и значением 3, а затем просто оставляет этот операнд в стеке операндов, где он будет оставаться до конца задания.

Другие ваши примеры передаютсловарь для setpagedevice, так что они могут что-то сделать, хотя Collate и BindingLocation не будут влиять на сшивание!Обратите внимание, что отправка их в конце программы PostScript не принесет ничего полезного, потому что к тому времени программа будет завершена, и страницы будут напечатаны.

Также возможно, что она будет помещена в началоПрограмма PostScript также не будет иметь никакого эффекта, поскольку возможно, что содержимое программы начинается с сброса устройства до его состояния по умолчанию.Если это так, то вам нужно вставить вызов setpagedevice в программу в соответствующем месте.Если программа совместима с DSC, то есть определенное место, куда вы можете ее поместить, если нет, то, честно говоря, все ставки выключены.Но большинство программ PostScript совместимы с DSC.

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

Лучший способ выяснить это, как правило, выбрать «печать в файл» и распечатать документ с настройкой, которая, как вы знаете, включит сшивание (предварительно опробовав его при необходимости).Как только вы это сделаете, вы можете открыть полученный файл в текстовом редакторе и просмотреть его для установки сшивания.

К сожалению, панель управления принтера может выполнять все виды операций, и может даже не контролироватьпринтер через PostScript.Вы уверены, что этим можно управлять через PostScript?Вы пытались связаться с производителем и обратиться в его службу поддержки?

Если вы можете захватить программу, как указано выше (в идеале, когда печатный контент максимально прост, чтобы уменьшить размер и сложность), опубликуйте его в открытом доступе.URL где-нибудь, а затем поместите URL здесь.Я посмотрю на это.Если бы вы могли опубликовать программу PostScript, которую вы также хотите изменить, тогда я скажу вам, куда вставить код в эту программу.

Если вы не можете захватить программу PostScript, то я не могу думать оВ любом случае, если не попросить производителя принтера найти способ сделать это.

[EDIT]

Программа PostScript является выводом устройства Ghostscript ps2write, поэтому я подозреваю, что вы нене использую pdf2ps. exe , но вместо этого используем pdf2ps.bat, скрипт командной оболочки, который вызывает Ghostscript.Вы также используете более старую версию Ghostscript (9.20).Из соображений безопасности вам следует обновить версию до 9.25 (она должна быть произведена в ближайшие пару дней).

Но я все еще не знаю, какова правильная настройка для вашего сшивания.Как я уже отмечал выше, если вы можете печатать на принтере из вашей операционной системы и заставить его активировать сшивание, то вы можете захватить PostScript и извлечь оттуда соответствующую часть.

Но без этого нетвсе, что я могу вам сказать.

В соответствии с запросом приведен код PJL (не PostScript) из исходного вопроса, который, очевидно, работает для добавления сшивания):

@PJL COMMENT
@PJL SET ORIENTATION = PORTRAIT
@PJL SET BINDING = LEFT
@PJL SET FINISH = LEFT1POINT
@PJL SET EDGEMATCHING = FINISH
@PJL ENTER LANGUAGE = POSTSCRIPT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...