Тонкая настройка ghostscript для преобразования PDF в PS - PullRequest
2 голосов
/ 30 июля 2010

У меня есть программа, которая генерирует PDF в качестве вывода.Если я отправляю этот файл на принтер с помощью программы просмотра Adobe, он печатается именно так, как нужно.В частности, приложение печатает этикетки, и существует требование, чтобы использовался каждый последний пиксель на странице, то есть без полей.

Я хотел бы попробовать автоматизировать этот процесс.GhostScript казался логичным выбором.Я использовал командные строки

gs -dBATCH -dNOPAUSE -sDEVICE=psmono -sOutputFile=A4_300.xxx -sPAPERSIZE=a4 A4_Print.pdf

... или в качестве альтернативы

gs -dBATCH -dNOPAUSE -sDEVICE=ljetplus -sOutputFile=A4_300.xxx -sPAPERSIZE=a4 A4_Print.pdf

Я могу отправить выходной файл A4_300.xxx на принтер через LPR, и он почти печатает хорошо, но со всех сторон пропущено около 6-8 мм, т. Е. Имеется обязательное поле, и текст, который должен быть напечатан в этой области, фактически обрезается.

Размер бумаги долженбыть a4, и это работает правильно.Но как мне организовать вывод на всю страницу?

Устройство вывода - это «своего рода лазерный принтер HP»;Я не видел физического устройства.Аналогичный принтер, с которым я тестировал, мог обрабатывать вывод как для «psmono» (который создавал PostScript), так и для «ljetplus» (двоичный, но для печати).

Любой совет, пожалуйста?

1 Ответ

2 голосов
/ 30 июля 2010

Прежде всего: вы уверены, что ваш принтер физически способен печатать от края до края? Какая модель принтера это?

Вполне возможно, что сам принтер обеспечивает "пропуская 6-8 мм со всех сторон" . Так как вы видите поле "область фактически обрезается" , это означает, что принтер действительно получает полное изображение, но обрезает изображение до того, что в ключевых словах *ImageableArea в PPD-принтерах PostScript для принтера появляется (PS Printer Description файлы).

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

  • ... с помощью некоторой полусекретной настройки в меню передней панели (если ваш принтер имеет что-то подобное) или ...
  • ... путем доступа к веб-панели конфигурации принтера из браузера вашего компьютера (если это поддерживается вашим принтером) или ...
  • ... путем входа в принтер через telnet, rsh, ssh или msh (в зависимости от вашего принтера, чтобы разрешить это).

Фактическая процедура установки этого зависит от модели вашего принтера. Это должно быть описано в руководстве к принтеру.

Если вам не повезло, устройство просто не поддерживает печать без полей. Тогда купите или найдите модель, которая делает то, что вы хотите; -)


Обновление: Я пропустил ваше заявление "Если я отправлю этот файл на принтер с помощью средства просмотра Adobe, он будет напечатан точно так, как требуется". От На этом я заключаю, что ваш принтер действительно должен поддерживать печать без полей.

Если ваш клиент LPR использует какую-либо форму PPD (как в случае печати через CUPS, например), то ознакомьтесь с моими советами об изменении PPD (что также работает для систем Windows) здесь:

Скорее всего, вам не нужно точно настраивать вывод Ghostscript; это хорошо, как показывают обрезанные распечатки.

Скорее всего, вам нужно настроить свой клиент LPR, чтобы его "драйвер" не уничтожил то, что вы хотите отправить на принтер.

...