Фреймворк 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).
Среди изменений в новой версии:
- Добавлена возможность удержания и возобновления выполнения работ по выводу на печать.
- Добавлено ведение отладочного лога для операций управления устройствами.
- Добавлена поддержка масштабирования PNG-изображений, используя встроенную информацию о разрешении.
- Предоставлена возможность вывода локализированного баннера в верхней части web-страниц со сведениями о принтере и системе.
- Добавлен API для управления запуском периодически выполняемых задач.
- Реализована возможность настройки сети через callback-вызовы.
- Добавлен API для ограничения максимального размера изображений JPEG и PNG.
- Добавлена поддержка сборки в Clang/GCC в режиме ThreadSanitizer (-enable-tsanitizer).
- В поле для ввода пароля для Wi-Fi добавлена кнопка для отображения пароля.
Источник: http://www.opennet.ru/opennews/art.shtml?num=58251