В Linux вы можете использовать пакет cups-pdf для реализации виртуального PDF принтера. Что такое PDF-принтер? Это виртуальное устройство, которое добавляется в систему как обычный принтер и при отправке документа на печать генерирует из него pdf-файл.
Проверьте, что в вашем дистрибутиве Linux установлена подсистема печати CUPS (Common UNIX Printing System):
$ sudo netstat -tupnl
Проверьте, что на компьютере слушается порт TCP/631 и служба cups запущена:
$ sudo systemctl status cups
Теперь можно установить пакет cups-pdf:
- В Ubuntu/Debian:
$ sudo apt install cups-pdf
- В RHEL/Fedora/CentOS:
# yum install cups-pdf
Перезапустите систему печати:
$ sudo service cups restart
Выведите список установленных принтеров и какой принтер назначен по-умолчанию:
$ sudo lpstat -p –d
CUPS-PDF (Virtual PDF Printer)
Выведите список установленных принтеров и какой принтер назначен по-умолчанию:
$ sudo lpstat -p –d
CUPS-PDF (Virtual PDF Printer) system default destination: PDF device for PDF: cups-pdf:/
Если принтер отключен, его можно включить:
$ cupsenable ИМЯ_ПРИНТЕРА
Можно вручную создать новый PDF принтер в CUPS с помощью команды:
$ sudo lpadmin -p cups-pdf -v cups-pdf:/ -E -P /usr/share/ppd/cups-pdf/CUPS-PDF_opt.ppd
Если в списке появился виртуальный принтер, вы можете отправлять на него любые документы и сохранять результат в PDF файл. По умолчанию файлы в формате name-job_N.pdf сохраняются в каталог пользователя ~/PDF (Out ${HOME}/PDF
).
Вы можете изменить путь к каталогу в конфигурационном файле /etc/cups/cups-pdf.conf.
Вы можете управлять настройками и очередью печати на виртуальном PDF принтере через веб интерфейс CUPS.
Перейдите в браузере на http://yourcupshost:631/printers
Выберите очередь PDF для принтера Generic CUPS-PDF Printer (w/ options)
Здесь вы можете изменить настройки печати (page size, output resolution), открыть к нему общий доступ, очистить очередь печати и т.д.
Description: PDF Location: Driver: Generic CUPS-PDF Printer (w/ options) (color) Connection: cups-pdf:/ Defaults: job-sheets=none, none media=iso_a4_210x297mm sides=one-sided
Вы можете отправить на печать в PDF файл из любого приложения или прямо из консоли Linux. Например, чтобы сохранить содержимое conf файла в PDF, просто отправьте его через пайплайн на lpr (для печати будет использоваться принтер по-умолчанию).
$ cat /etc/cups/cups-pdf.conf | lpr
Или вы можете отправить файл на печать так:
$ lp -d PDF testfile.txt