Каков самый простой способ (в python) для печати на удаленном сервере или принтере IPP/CUPS?

У меня есть файл postscript, и я хочу, чтобы он был напечатан на устройстве с поддержкой IPP (или на сервере CUPS). Каков минимальный код и зависимости, с которыми я мог бы это сделать.

Использование LPR или libcups дает мне много кросс-платформенных зависимостей. Итак, мой первый подход состоял в том, чтобы реализовать минимальное подмножество IPP (протокол, используемый чашками и многими современными принтерами), поскольку «это всего лишь расширенный HTTP». Но, к сожалению, клиент IPP представляет собой намного больше кода, чем несколько строк, и до сих пор я не нашел реализации клиента IPP, предназначенной только для печати, а не для управления сервером печати.

Я бы предпочел решение на Python, но также был бы доволен чем-то на другом динамическом языке.


person max    schedule 19.08.2009    source источник


Ответы (3)


вам нужно добавить удаленный принтер в CUPS:

lpadmin -p printername -E -v //IPADDRESS/spool -m driver.ppd

где driver.ppd — драйвер для печати

PS: это также может работать для программного доступа, если принтер установлен ранее.

person dusoft    schedule 19.08.2009
comment
Очевидно, что для этого требуется работающая локальная установка чашек, чего я предпочитаю избегать, особенно в Windows. - person max; 20.08.2009
comment
также проверьте этот (старый) учебник: owlfish.com/thoughts/ winipp-cups-2003-07-20.html - person dusoft; 20.08.2009

pycups — отличный инструмент; вот пример некоторого кода, который его использует, включая настройку некоторых параметров, таких как подгонка к странице https://sourceforge.net/p/coils/coils-code/ci/master/tree/coils/логика/рабочийпроцесс/действия/doc/ipp_print.py#l58

Существует также код для использования протокола LPR. https://sourceforge.net/p/coils/coils-code/ci/master/tree/coils/logic/workflow/actions/doc/lpr_print.py

Связь напрямую с сервером печати намного лучше, чем использование инструмента командной строки, зависящего от платформы.

person Adam Tauno Williams    schedule 31.05.2018

На github доступна оболочка Python для CUPS ipptool:

Эта библиотека Python также выглядит многообещающе:

Вы также можете проверить этот ответ.

person IPP Nerd    schedule 28.01.2015