Что такое «Печать в файл» и можно ли его использовать из командной строки?

12

Когда вы выбираете «Печать в файл» в диалоговом окне печати Gnome (не cups-pdf):

печать в файл

... какая команда выполняется? (Меня интересует вариант постскриптума, как на картинке)

С другой стороны - возможно, нет командного вызова; может быть, это gtk_print_operation_set_export_filenameиз нового Gtk + Printing API ?

В любом случае - есть ли способ для меня использовать этот конкретный код из командной строки (не pdf2psи тому подобное)? Скажем, используя lpr«print to file» для файла postscript - как если бы я использовал диалоговое окно выше?

sdaau
источник
3
AFAIK, это особенность подсистемы, используемой некоторыми приложениями GNOME и GTK + для печати материалов (некоторые из них используют Cairo). lprвзаимодействует cupsнапрямую, опция печати в файл полностью обходит сервер печати. он, вероятно, не вызывает команду, он просто вызывает функцию рендеринга cairo другим способом, поэтому генерирует вывод pdf, postscript или svg в файл.
njsg
Ах, так это каирский бэкэнд! Любые идеи, если доступна сопоставимая командная строка, которая может вызывать эту функцию рендеринга так же, как диалоговое окно печати? Большое спасибо за комментарий, @njsg - ура!
sdaau
3
Там может быть какой-то инструмент командной строки cairo (я действительно не знаю), но я думаю, что это немного сложно, так как многие приложения используют cairo для печати своих собственных документов, и именно это приложение способно понять формат файла. , Каир не сможет читать произвольные форматы файлов. Самое близкое, что вы можете получить, - это проверить, есть ли в программе с диалоговым окном какая-либо опция командной строки для печати файла без открытия графического интерфейса.
njsg
Спасибо за объяснение, что @njsg - приведенный выше скриншот был взят из evinceдиалога печати; к сожалению, я не вижу никаких переключателей командной строки, evinceкоторые могли бы сделать что-то вроде этого ... Ура!
sdaau
Это просто соглашение пользовательского интерфейса, каждая программа в принципе может делать то, что они хотят, когда выбран «Печать в файл».
vonbrand

Ответы:

4

Вы можете использовать cups-pdfпакет как решение, независимое от gnome. После установки пакета добавьте PDF-принтер, используя веб-интерфейс cups, http://localhost:631как описано здесьОбщие» для производителя принтера, CUPS-PDF в качестве драйвера ).

Для вашего удобства измените выходной каталог с параметром Outв /etc/cups/cups-pdf.conf, как, ${HOME}или что вы хотите. Затем сделайте, как предложено @ Noam, чтобы распечатать в файл.

Дж. Кацвинкель
источник
2
lpr -P "Print_to_PDF" file_to_print

Чтобы получить список настроенных принтеров, запустите lpstat -p -d.

Ноам Кремень
источник
ммм, -P «Print_to_PDF» дает мне эту ошибку «lpr: принтер или класс не существует».
Обри
0

Вы также можете использовать команду lp printing для печати файла на принтер по умолчанию (или только) в системе:

lp filename

или к определенному принтеру

lp -d printer filename
Андрей Симонов
источник
0

Print-to-file отправляет документ не на принтер, а в PDF-документ.

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

Используйте инструмент cupsfilter. Это эффективно преобразовывает документ. По умолчанию он конвертируется в pdf.

$ cupsfilter inputfilename > outputfilename.pdf

Как описано здесь .

markling
источник