Я пишу часть программного обеспечения, которое поддерживает несколько принтеров. Чтобы проверить это, мне нужно добавить несколько принтеров на мой сервер CUPS. Как я могу это сделать?
Я хочу добавить несколько поддельных принтеров, которые будут отправлять задания напрямую в / dev / null. Таким образом, я могу просматривать список «выполненных заданий» в интерфейсе CUPS и наблюдать, использует ли мое программное обеспечение правильный принтер для каждого задания.
Ответы:
Одним из решений является установка cups-pdf . Он добавляет виртуальный принтер, который пишет файлы PDF. В Интернете есть несколько учебных пособий о том, как установить и настроить его; так как я использую Gentoo, я прочитал Gentoo-wiki , в котором также упоминается Sabayon wiki .
Виртуальный принтер cups-pdf имеет файл конфигурации
/etc/cups/cups-pdf.conf
, и по умолчанию все файлы PDF записываются в него/var/spool/cups-pdf/${USER}
.(Примечание: в Ubuntu он пишет в ~ / PDF /)
Однако есть несколько ограничений:
Поскольку существует только один файл конфигурации, несколько принтеров PDF будут сохранены в одном каталоге.
Невозможно распечатать «сырые» данные (используя, например,
lpr -o raw
). Даже отправка файла PDF в виде необработанного задания не будет работать. Необработанные задания на печать создадут пустой файл PDF с пустой страницей.Даже с этими ограничениями, он отлично работает для моих нужд.
Сноска: если пользователь использует Gnome или печатает через приложение GTK +, то в диалоговом окне печати уже есть псевдопринтер «Печать в файл». Таким образом, почему пользователь все еще хочет добавить виртуальный принтер PDF? Вот несколько причин:
источник
Форум Кубков имеет более полный / точный ответ на этот вопрос.
Ответ заключается в том, что URI устройства должен быть установлен в файл: / dev / null
Итак, в моей настройке Ubuntu:
Который работает для меня отлично.
Я снова искал форум кубков и нашел это:
Настройка принтера Null командной строки в форуме Кубки
В вашем cupsd.conf:
Настройка принтера
Тестирование принтера
источник
Вы можете создать принтер для вывода с
/dev/null
помощьюlpadmin
:Это будет записано в
/etc/cups/printers.conf
, но вы также можете просмотреть принтеры сlpstat
:Обратите внимание, что вам может потребоваться включить FileDevice в /etc/cups/cupsd.conf на старых дистрибутивах Linux .
Чтобы сделать ваш новый принтер по умолчанию, используйте
lpoptions
:источник
lpadmin -x myprinter
или веб-интерфейс.Одним из лучших решений является использование
ippserver
. Это приходит сCUPSv2.2.2
и выше. В качестве альтернативы вы можете получить проект здесь: примеры реализации IPP .Согласно описанию на странице руководства :
Чтобы использовать его, все, что вам нужно сделать, это запустить
ippserver "My cool printer"
, и он создаст виртуальный принтер с именемMy cool printer
для вас. Он работает как веб-сервер и прослушивает определенные порты.Если вам нужно несколько принтеров, вы можете запустить сервер на нескольких портах, используя
ippserver "My other cool printer" -p 8888
.Вы даже можете предоставить атрибуты принтера, используя файл атрибутов. Например, ваш принтер по умолчанию поддерживает печать высокого качества, вы можете добавить следующий атрибут в файл атрибутов:
и запустить сервер, используя:
Ссылки:
источник
Взято с http://inai.de/linux/adm_virtualprinter :
источник