30.06.2022

Доступен PAPPL 1.2, фреймворк для организации вывода на печать

Майкл Свит (Michael R Sweet), автор системы печати CUPS, представил выпуск PAPPL 1.2, фреймворка для разработки приложений для печати на базе протокола IPP Everywhere, которые рекомендуется использовать вместо традиционных драйверов для принтеров. Код фреймворка написан на языке Си и распространяется под лицензией Apache 2.0 с исключением, разрешающим связывание с кодом под лицензиями GPLv2 и LGPLv2.

Среди изменений в новой версии:

  • Добавлена полная поддержка локализации. Базовые наборы локализации предложены для английского, французского, немецкого, итальянского, японского и испанского языков.
  • Улучшена поддержка платформы macOS. Обеспечена интеграция с верхним глобальным меню macOS. Добавлена возможность выполнения приложений вывода на печать в режиме сервера.
  • Добавлена поддержка интерполяции при выводе на печать JPEG-изображений или при использовании функции papplJobFilterImage с включённым сглаживанием.
  • Реализованы дополнительные возможности протокола IPP (Internet Printing Protocol) и добавлены новые API: papplDeviceGetSupplies для определения уровня чернил и тонера, papplSystemAddEvent/papplSubscriptionXxx для обработки IPP-уведомлений, papplSystemGet/SetMaxClients для ограничения числа клиентов. В функциях papplPrinterDisable и papplPrinterEnable добавлена поддержка IPP-атрибута «printer-is-accepting-jobs».
  • Добавлена возможность задания собственных размеров листов в миллиметрах.
  • Добавлена поддержка библиотек OpenSSL и LibreSSL.
  • Обновлён код USB Gadget, используемый для создания клиентских USB-устройств и программной симуляции USB-устройств.
  • Обеспечена привязка к пользователю каталога со спулом печати, применяемым по умолчанию.
  • Улучшена совместимость с библиотекой libcups3.

Фреймворк PAPPL был изначально разработан для поддержки системы печати LPrint и драйверов Gutenprint, но может быть использован для реализации поддержки любых принтеров и драйверов при выводе на печать на настольных, серверных и встраиваемых системах. Предполагается, что PAPPL сможет способствовать ускорению продвижения технологии IPP Everywhere вместо классических драйверов и упрощению поддержки других программ на основе IPP, таких как AirPrint и Mopria.

PAPPL включает встроенную реализацию протокола IPP Everywhere, предоставляющего средства для доступа к принтерам локально или по сети и обработки запросов по выводу на печать. IPP Everywhere работает в бездрайверном режиме («driverless») и в отличие от драйверов PPD не требует создания статических файлов конфигурации. Поддерживается взаимодействие с принтерами как напрямую через локальное подключение принтера по USB, так и обращение по сети при помощи протоколов AppSocket и JetDirect. Данные могут отправляться на принтер в форматах JPEG, PNG, PWG Raster, Apple Raster и «raw».

PAPPL может быть собран для POSIX-совместимых ОС, включая Linux, macOS, QNX и VxWorks. Из зависимостей отмечается Avahi (для поддержки mDNS/DNS-SD), CUPS, GNU TLS, JPEGLIB, LIBPNG, LIBPAM (для аутентификации) и ZLIB. На базе PAPPL проектом OpenPrinting развивается универсальное приложение PostScript Printer Application, способное работать как с современными IPP-совместимыми принтерами (используется PAPPL), поддерживающими PostScript и Ghostscript, так и со старыми принтерами, для которых имеются драйверы PPD (применяются фильтры cups-filters и libppd).

Источник.