Назад | Перейти на главную страницу

Какие аргументы LPR мне нужны для печати изображения размером 1400x800 пикселей на этикетке 4x6?

Это сводит меня с ума. UPS отправляет нашей системе изображение транспортной этикетки в формате GIF размером 1400x800, которое должно хорошо умещаться на странице 4x6.

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

Мы используем Eltron / Zebra 2844 с сетевым адаптером и печатаем с нашего сервера Ubuntu 8.04 с использованием CUPS. Мы используем правильные драйверы, и тестовые страницы печатаются правильно.

Независимо от того, что я пытаюсь, он настаивает на печати этикеток UPS на 6 страницах, с небольшим количеством этикеток на каждой странице или слишком маленьким.

Я перепробовал миллиард различных настроек LPR, большинство из них производят мусор. Самое близкое, что я получил, это:

    lpr -P Eltron2844 -o natural-scaling=55 -o page-right=0 -o page-left=0 -o landscape -o media="4x6" ./1ZY437560399620027.gif

но это приводит к тому, что изображение на странице становится слишком маленьким. Это примерно на дюйм короче, и с обеих сторон есть поля 1/2 дюйма. Если я увеличу масштаб до 56, изображение разорвется на две страницы и раздавится.

Любые идеи?

Вы пробовали конвертировать gif в файл postscript? Если у вас есть imagemagick, вы можете использовать:

convert 1ZY437560399620027.gif 1ZY437560399620027.ps

и распечатать это? Вы также можете использовать печать в файл в gimp или других.

Я предполагаю, что проблема в том, что lpr проходит через вспомогательное приложение, которое создает поля, с которыми у вас проблемы.

Удачи,
Жуан Мигель Невеш

Я предполагаю, что PPD вашего драйвера принтера (посмотрите на /etc/cups/ppd/[printername].ppd) имеет определение для *ImageableArea это не позволяет печатать без полей.

Если ваше оборудование действительно поддерживает печать от края до края (или если оно допускает меньшие поля, чем определено в PPD), вы можете попробовать отредактировать PPD. См. Здесь несколько советов о манипуляциях с PPD в отношении ключевых слов. *PageSize, *PageRegion, *PaperDimension и *ImageableArea: https://stackoverflow.com/questions/1028891/whats-the-easiest-way-to-add-custom-page-sizes-to-a-ppd.

Я предлагаю ...

  1. ... исследуйте ваш PPD и
  2. ... установить значения для *ImageableArea определения носителя 4x6 на значение, которое означает печать без полей.

Я предполагаю, что вам следует использовать такую ​​строку, как *ImageableArea 4x6/4x6in: "0 0 288 432" (если ваша линия PaperDimension *PaperDimension 4x6/4x6in: "288 432").

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

  • ... если оборудование принтера действительно поддерживает печать без полей,
  • ... или если оборудование просто обрезает напечатанное изображение до реальных поддерживаемых значений.

Обладая этими знаниями, вы сможете настроить PPD на *ImageableArea это более близко к тому, что поддерживает оборудование.


(Для числовых значений PPD в указанных размерах: 72 pt == 1 дюйм. Таким образом, 288x432pt == 4x6in)

800 x 1400 на 4x6 преобразуется в 200 dpi x 233,33333 dpi, поэтому вы не получите изображение, полностью заполняющее этикетку.

Если вы используете 200 dpi, то длинная сторона на 1 дюйм больше для этикетки, при условии, что вы сохраняете то же соотношение сторон.

Если вы используете 233,333 dpi, тогда более короткая сторона будет примерно на 0,58 дюйма короче.

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