Cups-pdf
Cups-pdf позволяет осуществлять печать в файл pdf-формата с любых приложений операционной среды и рабочих станций локальной сети.
Установка
Пакет есть в дистрибутиве поставки (хранилище) debian.
Для установки пакета:
- в командной строке выполняем # apt-get install cups-pdf
- или используем графическое средство synaptic
Печать в Linux
Для осуществления вывода формы для печати в pdf-файл из приложения linux выбираем принтер PDF и осуществляем печать. По умолчанию файл сохраняется в домашний каталог пользователя ~/PDF. Для указания иного пути необходимо отредактировать файл /etc/cups/cups-pdf.conf.
Печать в Windows
Предположим в локальной сети есть linux-сервер с установленной программой cups-pdf и печать в linux настроена.
Для осуществления вывода формы для печати в pdf-файл из приложения windows через сетевой принтер PDF
- запускаем мастер установки принтера windows и осуществляем установку принтера как обычно для сетевых принтеров
- выбираем драйвер принтера Generic/MS Publisher Color Printer
- для осуществления печати выбираем принтер PDF и осуществляем печать
Файл сохраняется в домашний каталог ~/PDF пользователя под чьим именем осуществляется samba-регистрация на рабочей станции с установленной программой cups-pdf.
Литература
Справочная информация
- 01.02.2011: Cups-pdf: создание статьи в википедии на примере debian squeeze amd64
Установка виртуального PDF принтера в Linux
В Linux вы можете использовать пакет cups-pdf для реализации виртуального PDF принтера. Что такое PDF-принтер? Это виртуальное устройство, которое добавляется в систему как обычный принтер и при отправке документа на печать генерирует из него pdf-файл.
Проверьте, что в вашем дистрибутиве Linux установлена подсистема печати CUPS (Common UNIX Printing System):
Проверьте, что на компьютере слушается порт TCP/631 и служба cups запущена:
$ sudo systemctl status cups
Теперь можно установить пакет cups-pdf:
Перезапустите систему печати:
$ sudo service cups restart
Выведите список установленных принтеров и какой принтер назначен по-умолчанию:
CUPS-PDF (Virtual PDF Printer)
Выведите список установленных принтеров и какой принтер назначен по-умолчанию:
CUPS-PDF (Virtual PDF Printer) system default destination: PDF device for PDF: cups-pdf:/
Если принтер отключен, его можно включить:
Можно вручную создать новый 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 $/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
Или вы можете отправить файл на печать так:
Виртуальный PDF-Printer на CUPS-PDF
Что делать, если необходимо распечатать документ, а принтера нет? В решении этого вопроса частично поможет сохранение документа в формате PDF, который в последствии можно распечатать в том месте, где есть настоящий принтер. Впрочем, возможно и виртуального принтера вам будет достаточно.
На личном опыте, я сталкивался с такими ситуациями, когда информацию отображаемую на дисплее не удаётся сохранить либо без потери вида, либо вообще, можно только распечатать. В такие моменты, данное решение становится «палочкой выручалочкой».
Для реализации виртуального принтера, нужна Linux машина, в нашем случае на Debian или Ubuntu. Сперва проверьте наличие подсистемы печати CUPS — без «капса» никуда. У него кстати есть веб-интерфейс: http://localhost:631/ где можно произвести некоторые настройки.
А теперь, устанавливаем пакет «cups-pdf»:
root@linux:~# apt-get install cups-pdf
Перезагружаем подсистему печати:
root@linux:~# /etc/init.d/cups restart
Проверяем список принтеров и что установлено по умолчанию:
В большинстве случаев, это всё, готово. Теперь можно отправлять на печать любые документы и не только.
user@linux:~$ echo "текст для печати" | lp -d PDF
По необходимости можно указывать параметры:
user@linux:~$ lp -d PDF (имя принтера) -o landscape (ориентация) -o scaling=75 (масштаб) -o media=A4 (размер листа) -n 2 (кол-во) имя_файла
Принты будут появляться в папке PDF находящейся в каталоге пользователя. При желании можно изменить настройки, они здесь: /etc/cups/cups-pdf.conf
Автор: Илья Балдуев
Специалист ИТ, веб программист, фотограф, блоггер. Добрый, но злопамятный. Верный, но не Хатико. Честный, не всегда. Упрямый, но ленивый.
Installing Virtual PDF Printer on Linux
On Linux, you can use the cups-pdf package to implement a virtual PDF printer. What is a PDF printer? This is a virtual device that is added to the system as a regular printer and when a document is sent for printing, it generates a PDF file from it.
Verify that the Common UNIX Printing System (CUPS) printing subsystem is installed on your Linux host. Check if the computer is listening on port TCP/631 and that the cups service is up and running:
$ sudo netstat -tupnl $ sudo systemctl status cups
You can now install the cups-pdf package:
Restart the cups print service:
$ sudo service cups restart
List installed printers and show which printer is assigned as the default device:
CUPS-PDF (Virtual PDF Printer)
system default destination: PDF
device for PDF: cups-pdf:/
If the printer is disabled, you can enable it:
You can manually create a new virtual PDF printer in CUPS with the command:
$ sudo lpadmin -p cups-pdf -v cups-pdf:/ -E -P /usr/share/ppd/cups-pdf/CUPS-PDF_opt.ppd
If a virtual printer appears in the list, you can send any documents to it and save the result as a PDF file. By default, files in the name-job_N.pdf format are saved to the user’s ~/PDF directory.
You can change the directory path for the PDF files in the /etc/cups/cups-pdf.conf configuration file ( Out $/PDF ).
You can manage the virtual PDF printer’s settings and print queue through the CUPS web interface.
In your browser, navigate to the http://yourcupshost:631/printers
Select the Generic CUPS-PDF Printer (w/ options)
Here you can change the print settings (page size, output resolution), share the printer, clear the print queue, etc.
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
You can print to PDF from any application or directly from the Linux console. For example, to save the console output to a PDF file, simply pipe it to lpr (the default printer is used to print).
$ cat /etc/cups/cups-pdf.conf | lpr
Or, you can send the text file to be printed to PDF in the following way:
I’d like to do this on a server that listens on 9100 for raw print jobs and have them go to that printer. Any idea on how to accomplish this? I’ve been googling for hours.