Как распечатать PDF или файлы Постскриптума к принтеру непосредственно из командной строки

Я могу распечатать с Inkscape на мой принтер настроенной сети CUPS очень хорошо. Я хотел бы сделать то же непосредственно из командной строки оболочки, как дано https://unix.stackexchange.com/a/12002/21372 ответ. Но когда я пробую это в своей системе Ubuntu, после того, как я преобразую файлы SVG или в PDF или в использование Постскриптума Inkscape, отправляя ее в lpr дает ошибку, показанную ниже на передней панели принтера (ксерокс 6180MFP):

photo of my front panel error

Команды, которые я пытаюсь использовать:

inkscape --without-gui --export-pdf=test_file.pdf test_file.svg
pdftops test_file.pdf test_file.ps
lpr -P Xerox-6180MFP-D -l test_file.ps

Что я должен сделать к своей конфигурации CUPS для включения его? Что является Inkscape, делающим негласно для успешной печати к принтеру, который я не могу сделать от lpr командная строка?

Для ссылки вот суть моего текущего конфигурационного файла CUPS: https://gist.github.com/bgoodr/6f8b47df40244fed6290a6a199e72c52

Вывод lpstat -t:

scheduler is running
no system default destination
device for Xerox-6180MFP-D: socket://192.168.1.20
device for Xerox-6180MFP-D/double-sided: socket://192.168.1.20
device for Xerox-6180MFP-D/single-sided: socket://192.168.1.20
Xerox-6180MFP-D accepting requests since Sat 04 Mar 2017 05:36:44 PM PST
Xerox-6180MFP-D/double-sided accepting requests since Sat 04 Mar 2017 05:36:44 PM PST
Xerox-6180MFP-D/single-sided accepting requests since Sat 04 Mar 2017 05:36:44 PM PST
printer Xerox-6180MFP-D is idle.  enabled since Sat 04 Mar 2017 05:36:44 PM PST
printer Xerox-6180MFP-D/double-sided is idle.  enabled since Sat 04 Mar 2017 05:36:44 PM PST
printer Xerox-6180MFP-D/single-sided is idle.  enabled since Sat 04 Mar 2017 05:36:44 PM PST

Снимок экрана моей страницы принтера в http://localhost:631/printers/Xerox-6180MFP-D

screenshot of CUPS page

РЕДАКТИРОВАНИЕ № 1

В ответ на комментарий в том, Как распечатать PDF или файлы Постскриптума к принтеру непосредственно из командной строки:

Вот сценарий, я раньше выполнял lpr и с и без -l опция (показанный ниже без него):

cd /tmp
qrencode -v 1 -t svg -o some_small_text.qrcode.svg -l L "some small text"
inkscape --without-gui --export-pdf=some_small_text.qrcode.pdf some_small_text.qrcode.svg
# setsid evince some_small_text.qrcode.pdf >/dev/null 2>&1 &
pdftops some_small_text.qrcode.pdf some_small_text.qrcode.ps
lpr -P Xerox-6180MFP-D some_small_text.qrcode.ps

Вот суть файла Постскриптума, сгенерированного от вышеупомянутого вызова до qrencode:

https://gist.github.com/bgoodr/8411fe6815522490857765e3c28eaad8

"Ошибка" Лотка Загрузки приводит меня полагать, что я должен указать еще некоторые вещи к команде lpr или изменить некоторые опции. Так или иначе Inkscape может передать свои потребности от диалогового окна печати, с которым он требует, чтобы я взаимодействовал, и случается так, что я требую копировать от lpr командная строка.

РЕДАКТИРОВАНИЕ № 2

Я работал lpr без опций и добрался:

$ echo stuff | lpr
lpr: Error - no default destination available.

РЕДАКТИРОВАНИЕ № 3

Я частично решил загадку где "Лоток Загрузки 1 (MPT)... 76x127-миллиметровая" ошибка на передней панели принтера прибывает из. Когда я открыл GUI Inkscape и исследовал свойства на .svg файле, сгенерированном qrencode команда, показанная выше, я вижу:

Document properties on original .svg file

Заметьте ширину и высоту. Когда я пытался распечатать то использование GUI, я получил тот же "Лоток Загрузки 1 (MPT)... 76x127-миллиметровая" ошибка! Так, я затем выбрал "американскую Букву" из раздела Page Size и затем попытался распечатать его к принтеру, и это работало без помехи.

Так, по-видимому, что происходит, то, что принтер видит это маленькое (по ширине и высота) файл постскриптума и предполагает, что это должно выбрать лоток конверта 3 x 5 дюймов. Я обосновываю, что от рассмотрения страницы 69 из http://download.support.xerox.com/pub/docs/6180MFP/userdocs/any-os/en/user_guide_en.pdf, который имеет:

User Guide From 6180MFP User Guide Page 69

Таким образом, я немного ближе к ответу на свой исходный вопрос. Мне сейчас нужен способ смочь выбрать Paper Source или изменить размер из командной строки. Я посмотрел на inkscape страница справочника, и это не очевидно, какие опции - те, я должен играть с. Или возможно это - imagemagick/convert тип операции.

4
задан 13 April 2017 в 15:37

1 ответ

Это - то, что я должен был сделать:

cd /tmp
qrencode -v 1 -t svg -o some_small_text.qrcode.svg -l L "some small text"
sed 's%<svg width="[^"]*" height="[^"]*" viewBox="[^"]*"%<svg width="8.5in" height="11in" viewBox="0 0 203.94463 263.92834"%g' < some_small_text.qrcode.svg > some_small_text.qrcode.us-letter.svg
inkscape --without-gui --export-pdf=some_small_text.qrcode.us-letter.pdf some_small_text.qrcode.us-letter.svg
lpr -P Xerox-6180MFP-D some_small_text.qrcode.us-letter.pdf

ключ - то, что я должен был измениться width, height, и viewBox атрибуты svg элемент для совпадения с тем, что Inkscape делает при выборе американской Буквы. Значения, используемые для эти viewBox, остаются тайной мне. После того как я сделал это, затем получающийся PDF при отправке в принтер угодил принтеру.

Это не точно, что я хотел, с тех пор в этом подходе, я должен использовать sed для изменения атрибутов. Я нашел бы способ использовать Inkscape, чтобы сделать это на svg непосредственно. Я действительно вижу, что Inkscape имеет -verb опция и глагол, названный DialogDocumentProperties в http://how-to.wikia.com/wiki/How_to_use_Inkscape_in_commandline_mode/List_of_verbs , но не очевидно, как на самом деле выбрать "американскую Букву" размер с помощью той опции.

1
ответ дан 1 December 2019 в 10:35

Другие вопросы по тегам:

Похожие вопросы: