Этот репозиторий содержит приложение принтера для печати на принтерах HP и Apollo, поддерживаемых пакетом драйверов HP HPLIP.
Он использует PAPPL для поддержки печати IPP из нескольких операционных систем. Кроме того, он использует ресурсы cups-filters 2.x (функции фильтра в libcupsfilters, libppd) и pappl-retrofit (инкапсуляция классических драйверов CUPS в приложениях принтера). Эта работа (или теперь код pappl-retrofit) получена из приложения hp-printer-app.
Сам драйвер принтера и программное обеспечение для связи с аппаратным обеспечением принтера взяты из пакета драйверов HPLIP (HP Linux Imaging and Printing), а также информации о поддерживаемых моделях принтеров и их возможностях.
Ваш вклад приветствуется. Пожалуйста, публикуйте проблемы и запросы на извлечение.
Примечание. HPLIP активно поддерживается HP, они постоянно добавляют новейшие модели принтеров и адаптируют программное обеспечение к новым средам и дистрибутивам Linux. Поэтому было бы правильно, если бы HP превратила HPLIP в приложение для принтера или хотя бы предложила бы его в качестве альтернативы классическому драйверу CUPS/SANE. В частности, им следует создать собственное приложение принтера, что означает, что оно не использует PPD, фильтры CUPS и серверные части CUPS внутри себя. Также их утилиты необходимо сделать независимыми от CUPS.
Для принтеров PostScript вы также можете использовать приложение принтера PostScript, особенно если оно уже установлено для какого-либо принтера PostScript, отличного от HP.
Также проверьте, является ли ваш принтер IPP-принтером без драйверов (AirPrint, Mopria, IPP Everywhere, Wi-Fi Direct Print, печать с телефонов), поскольку в этом случае вам вообще не нужно какое-либо приложение принтера. Большинство современных принтеров HP, даже самые дешевые модели, являются IPP-принтерами без драйверов. Даже принтеры, поддерживающие только USB, могут быть IPP без драйверов, и вы, как правило, можете использовать IPP без драйверов через USB, сначала попробуйте ipp-usb для этих случаев.
Приложение принтера, предоставляющее драйвер принтера hpcups
и все файлы PPD принтера HPLIP, поддерживающее печать на большинстве принтеров HP и Apollo. Это позволяет легко печатать в высоком качестве, в том числе фотографии на фотобумаге. Также включен фильтр hpps
CUPS для печати с помощью PIN-кода на принтерах PostScript.
Принтеры также обнаруживаются с помощью HPLIP. Для USB-принтеров используется серверная часть hp
CUPS, а для сетевых принтеров — утилита hp-probe
(инкапсулированная в сценарий, работающая как серверная часть CUPS).
Связь с принтерами осуществляется через серверную часть hp
CUPS, поэтому (по крайней мере, в случае USB) используется пакетный протокол IEEE-1284.4 (протокол 7/1/3 для USB), а не простой потоковый протокол (например, стандартный). Использование бэкэндов CUPS и PAPPL). Таким образом, можно будет печатать и сканировать одновременно или, по крайней мере, проверять состояние принтера во время печати. Не все принтеры поддерживают этот протокол, в противном случае используется стандартный протокол потоковой передачи. Также поддерживаются любые другие специальные функции, требующие серверной части hp
. На странице веб-интерфейса «Добавить принтер» в разделе «Устройства» выберите записи «HPLIP (HP)».
Обратите внимание, что серверная часть hp
не обеспечивает двунаправленный доступ к принтеру. Если у вас есть принтер PostScript и вы предпочитаете поддержку удаленного запроса конфигурации аксессуаров принтера вместо одновременной печати и сканирования, также доступны стандартные серверные части CUPS для USB и сетевых принтеров.
Если у вас необычная конфигурация системы или персональный брандмауэр, серверные части HP, возможно, не обнаружат ваш принтер. Также в этой ситуации могут быть полезны стандартные серверные части, в том числе полностью ручная запись «Сетевой принтер» в сочетании с полем имени хоста/IP.
Использование CUPS вместо стандартных серверных частей PAPPL позволяет найти обходные пути для USB-принтеров с проблемами совместимости (и их можно редактировать), а вывод можно отправлять на принтер через IPP, IPPS (зашифрованный!) и LPD в дополнение к сокету ( обычно порт 9100). Серверную часть SNMP можно настроить (сообщество, область адресов).
Входные данные PWG Raster, Apple Raster или изображения, предназначенные для печати на принтере, отличном от PostScript, не преобразуются в PostScript или PDF, они только преобразуются/масштабируются до требуемого цветового пространства и разрешения, а затем передаются в драйвер hpcups
.
При печати на принтерах, не поддерживающих PostScript, входные данные PDF и PostScript преобразуются в растровые данные с помощью Ghostscript. Ghostscript также используется для преобразования PDF в PostScript для принтеров PostScript.
Информация о том, какие модели принтеров поддерживаются и каковы их возможности, основана на файлах PPD, включенных в HPLIP. Они упакованы в Snap в виде сжатого архива.
Стандартные атрибуты IPP задания сопоставляются с наиболее подходящими для них настройками параметров драйвера, поэтому пользователи могут печатать с любого типа клиента (например, телефона или устройства IoT), который поддерживает только стандартные атрибуты IPP и не может получить параметры PPD. Лотки, размеры носителей, типы носителей и дуплекс можно легко сопоставить, но когда дело доходит до цвета и качества, все становится сложнее, поскольку соответствующие параметры сильно различаются в файлах PPD. Здесь мы используем алгоритм, который автоматически (кто хочет вручную отредактировать около 3000 файлов PPD для заданий) находит правильный набор настроек параметров для каждой комбинации print-color-mode
( color
/ monochrome
), print-quality
( draft
/ normal
/ high
) и print-content-optimize
( auto
/ photo
/ graphics
/ text
/ text-and-graphics
) в PPD текущего принтера. Таким образом, у вас есть легкий доступ к полному качеству или скорости вашего принтера без необходимости иметь дело с настройками параметров для конкретного принтера (исходные параметры по-прежнему доступны через интерфейс веб-администратора).
Привязка приложения принтера HPLIP берет исходный код HPLIP из репозитория пакетов Debian, а не напрямую из HP, поскольку пакет Debian содержит около 80 исправлений, исправляющих ошибки, о которых сообщается в HP, но исправления не принимаются в исходной версии. Таким образом, пользователи Snap должны получить тот же опыт надежности и качества, что и пакет Debian.
Поддержка загрузки фирменного плагина HPLIP через дополнительную страницу в веб-интерфейсе. Это добавляет поддержку некоторых лазерных принтеров, которым требуется загрузка встроенного ПО при каждом включении или которые используют определенные собственные форматы данных печати. Это работает как в Snap, так и в классической установке приложения принтера (необходимо запускать от имени пользователя root, иначе только проверка статуса плагина).
Поддержка сканирования на многофункциональных принтерах HP. для этого требуется поддержка сканирования в PAPPL (которая достигла хорошего прогресса в GSoC 2021).
Тестовая страница PDF, например, созданная с помощью фильтра Bannertopdf.
Удобочитаемые строки для параметров поставщика (требуется поддержка со стороны PAPPL: проблема № 58: поддержка локализации)
Интернационализация/локализация (требуется поддержка со стороны PAPPL: проблема № 58: поддержка локализации)
Проверка уровня чернил SNMP с помощью функции ps_status() (требуется поддержка PAPPL: проблема № 83: CUPS выполняет опросы уровня чернил IPP и SNMP через серверные части, PAPPL должен иметь функции для этого)
Варианты сборки фильтров-чашек, для сборки без libqpdf и/или без libppd, первый позволит создать Snap этого приложения принтера без загрузки и сборки QPDF.
Чтобы просто запустить и использовать это приложение принтера, просто установите его из Snap Store:
sudo snap install --edge hplip-printer-app
Затем следуйте инструкциям ниже для его настройки.
Чтобы собрать Snap самостоятельно, в главном каталоге этого репозитория запустите
snapcraft snap
Это приведет к загрузке всех необходимых пакетов и созданию приложения принтера HPLIP. Обратите внимание, что PAPPL (предстоящая версия 1.0) и cups-filters (предстоящая версия 2.0) извлекаются непосредственно из своих репозиториев GIT, поскольку соответствующих выпусков пока нет. Это также может привести к тому, что это приложение принтера внезапно больше не будет собираться.
Чтобы установить полученный Snap-запуск
sudo snap install --dangerous hplip-printer-app_1.0_amd64.snap
Приложение принтера будет автоматически запущено как демон сервера.
Войдите в веб-интерфейс
http://localhost:8000/
Используйте веб-интерфейс для добавления принтера. Укажите имя, выберите обнаруженный принтер, затем выберите марку и модель. Также установите установленные аксессуары, загруженные носители и параметры по умолчанию. Если принтер является принтером PostScript, конфигурация дополнительных устройств и параметры по умолчанию также часто могут быть запрошены с принтера.
Если в записи вашего принтера в веб-интерфейсе есть пометка «требуется фирменный плагин», вам необходимо установить плагин HP. Для этого нажмите кнопку «Плагин» в записи о принтере или кнопку «Установить собственный плагин» в разделе «Другие настройки» на первой странице веб-интерфейса и следуйте инструкциям на экране.
Затем распечатайте файлы PDF, PostScript, JPEG, Apple Raster или PWG Raster с помощью
hplip-printer-app FILE
или печатайте с помощью CUPS, CUPS (а также с просмотром чашек) обнаруживает и обрабатывает принтеры, настроенные с помощью этого приложения принтера, как принтеры IPP без драйверов (IPP Everywhere и AirPrint).
Видеть
hplip-printer-app --help
для получения дополнительных возможностей.
Используйте аргумент «-o log-level=debug» для подробного протоколирования в окне терминала.
Вы можете добавить файлы в /var/snap/hplip-printer-app/common/usb/
для получения дополнительных правил совместимости с USB. Редактируйте существующие файлы только для быстрых тестов, так как они заменяются при каждом обновлении Snap (для введения новых правил).
Вы можете отредактировать файл /var/snap/hplip-printer-app/common/cups/snmp.conf
для настройки обнаружения сетевых принтеров SNMP.
Вы также можете выполнить «быструю» сборку без привязки и установки PAPPL, cups-filters 2.x и pappl-retrofit в вашу систему. Вам нужен каталог с последним снимком GIT PAPPL, последним снимком GIT cups-filters и последним снимком GIT pappl-retrofit (основные ветки каждого). Все они должны быть скомпилированы ( ./autogen.sh; ./configure; make
), установка не требуется. Также установите заголовочные файлы всех необходимых библиотек (это должна сделать установка «libcups2-dev»).
В каталоге с hplip-printer-app.c запустите командную строку
gcc -o hplip-printer-app hplip-printer-app.c $PAPPL_SRC/pappl/libpappl.a $CUPS_FILTERS_SRC/.libs/libppd.a $CUPS_FILTERS_SRC/.libs/libcupsfilters.a $PAPPL_RETROFIT_SRC/.libs/libpappl-retrofit.a -ldl -lpthread -lppd -lcups -lavahi-common -lavahi-client -lgnutls -ljpeg -lpng16 -ltiff -lz -lm -lusb-1.0 -lpam -lqpdf -lstdc++ -I. -I$PAPPL_SRC/pappl -I$CUPS_FILTERS_SRC/ppd -I$CUPS_FILTERS_SRC/cupsfilters -I$PAPPL_RETROFIT_SRC/pappl/retrofit -L$CUPS_FILTERS_SRC/.libs/ -L$PAPPL_RETROFIT_SRC/.libs/
Существует также Makefile, но для него в вашей системе должны быть установлены PAPPL, cups-filters 2.x и pappl-retrofit.
Бегать
./hplip-printer-app --help
При запуске версии без привязки по умолчанию файлы PPD ищутся в
/usr/share/ppd/
/usr/lib/cups/driver/
/var/lib/hplip-printer-app/ppd/
Вместо этого вы можете установить переменную среды PPD_PATHS
для поиска в других местах:
PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
Просто поместите в переменную список любого количества путей, разделенных двоеточиями. Рекомендуется создать сценарий-оболочку.
Обратите внимание, что рассматриваются только файлы PPD для драйвера hpcups
HPLIP, остальные файлы PPD игнорируются.
Принтеры обнаруживаются только через серверную часть hp
HPLIP (USB) или утилиту hp-probe
HPLIP (сеть). Для последнего включен скрипт-оболочка с именем HP
, который позволяет использовать утилиту как серверную часть CUPS (только в режиме обнаружения). В частности, из-за этого обнаруживаются только принтеры HP и Apollo. Принтеры других производителей не поддерживаются.
Задания фильтруются через hpcups
и отправляются на принтер через серверную часть hp
(как по USB, так и по сети).
Стандартные (не HPLIP) серверные части, представленные в качестве альтернативы в этом Приложении для принтера, являются серверными модулями CUPS, а не PAPPL. Это означает, что для USB-принтеров используются обходные пути USB CUPS для решения проблем совместимости, сетевые принтеры также могут использоваться с IPP, IPPS и Протоколы LPD и обнаружение принтеров SNMP настраиваются.
Правила USB Quirk в /usr/share/cups/usb
и файле /etc/cups/snmp.conf
можно при необходимости редактировать.
Убедитесь, что у вас установлен HPLIP и, если вы хотите использовать стандартные бэкэнды, CUPS (по крайней мере, его бэкэнды).
Вам также понадобится Ghostscript для печати заданий PDF или PostScript.
Для доступа к тестовой странице testpage.ps
используйте переменную среды TESTPAGE_DIR:
TESTPAGE_DIR=`pwd` PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
или для собственного создания тестовой страницы (PostScript, PDF, PNG, JPEG, Apple Raster, PWG Raster):
TESTPAGE=/path/to/my/testpage/my_testpage.ps PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
Приложение принтера HPLIP защищено авторскими правами © Тилля Камппетера, 2020.
Он создан на основе приложения принтера HP PCL, первой рабочей модели приложения растрового принтера, использующей PAPPL. Он доступен здесь:
https://github.com/michaelrsweet/hp-printer-app
Приложение принтера HP PCL защищено авторскими правами © Michael R Sweet, 2019-2020.
Это программное обеспечение лицензируется по лицензии Apache версии 2.0, за исключением возможности связывания с программным обеспечением GPL2/LGPL2 (например, более старыми версиями CUPS). Дополнительную информацию смотрите в файлах «ЛИЦЕНЗИЯ» и «УВЕДОМЛЕНИЕ».