Я могу распечатать с Inkscape на мой принтер настроенной сети CUPS очень хорошо. Я хотел бы сделать то же непосредственно из командной строки оболочки, как дано https://unix.stackexchange.com/a/12002/21372 ответ. Но когда я пробую это в своей системе Ubuntu, после того, как я преобразую файлы SVG или в PDF или в использование Постскриптума Inkscape, отправляя ее в lpr
дает ошибку, показанную ниже на передней панели принтера (ксерокс 6180MFP):
Команды, которые я пытаюсь использовать:
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
В ответ на комментарий в том, Как распечатать 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
командная строка.
Я работал lpr
без опций и добрался:
$ echo stuff | lpr
lpr: Error - no default destination available.
Я частично решил загадку где "Лоток Загрузки 1 (MPT)... 76x127-миллиметровая" ошибка на передней панели принтера прибывает из. Когда я открыл GUI Inkscape и исследовал свойства на .svg файле, сгенерированном qrencode
команда, показанная выше, я вижу:
Заметьте ширину и высоту. Когда я пытался распечатать то использование 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, который имеет:
Таким образом, я немного ближе к ответу на свой исходный вопрос. Мне сейчас нужен способ смочь выбрать Paper Source или изменить размер из командной строки. Я посмотрел на inkscape
страница справочника, и это не очевидно, какие опции - те, я должен играть с. Или возможно это - imagemagick/convert тип операции.
Это - то, что я должен был сделать:
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 , но не очевидно, как на самом деле выбрать "американскую Букву" размер с помощью той опции.