Michael R Sweet, autor del sistema de impresión CUPS, presentó la versión 1.3 de PAPPL, un marco para el desarrollo de aplicaciones de impresión basadas en el protocolo IPP Everywhere, que se recomienda usar en lugar de los controladores de impresora tradicionales. El código del marco está escrito en C y se distribuye bajo la licencia Apache 2.0 con una excepción que permite la vinculación con código bajo las licencias GPLv2 y LGPLv2.
El marco PAPPL fue diseñado originalmente para apoyar el sistema de impresión LPrint y los controladores Gutenprint, pero puede ser utilizado para implementar soporte para cualquier impresora y controlador al imprimir en sistemas de escritorio, servidor y embebidos. Se espera que PAPPL ayude a acelerar la adopción de la tecnología IPP Everywhere en lugar de controladores clásicos y simplifique el soporte de otros programas basados en IPP, como AirPrint y Mopria.
PAPPL incluye una implementación integrada del protocolo IPP Everywhere, que proporciona medios para acceder a impresoras localmente o a través de la red y manejar las solicitudes de impresión. IPP Everywhere funciona en modo sin controlador («driverless») y, a diferencia de los controladores PPD, no requiere la creación de archivos de configuración estáticos. Se admite la interacción con impresoras tanto directamente a través de una conexión local de impresora por USB, como mediante acceso a la red a través de los protocolos AppSocket y JetDirect. Los datos pueden enviarse a la impresora en formatos JPEG, PNG, PWG Raster, Apple Raster y «raw».
PAPPL se puede compilar para sistemas operativos compatibles con POSIX, incluyendo Linux, macOS, QNX y VxWorks. Entre las dependencias se destacan Avahi (para soporte mDNS/DNS-SD), CUPS, GNU TLS, JPEGLIB, LIBPNG, LIBPAM (para autenticación) y ZLIB. Basado en PAPPL, el proyecto OpenPrinting está desarrollando una aplicación universal PostScript Printer Application, que puede trabajar tanto con impresoras modernas compatibles con IPP (se utiliza PAPPL), que soportan PostScript y Ghostscript, como con impresoras antiguas para las que existen controladores PPD (se utilizan filtros cups-filters y libppd).
Entre los cambios en la nueva versión:
- Se ha añadido la posibilidad de pausar y reanudar trabajos de impresión.
- Se ha añadido un registro de depuración para las operaciones de control de dispositivos.
- Se ha añadido soporte para escalar imágenes PNG utilizando la información de resolución incorporada.
- Se ha proporcionado la posibilidad de mostrar un banner localizado en la parte superior de las páginas web con información sobre la impresora y el sistema.
- Se ha añadido una API para gestionar la ejecución de tareas periódicas.
- Se ha implementado la posibilidad de configurar la red a través de llamadas de retorno.
- Se ha añadido una API para limitar el tamaño máximo de las imágenes JPEG y PNG.
- Se ha añadido soporte para compilación en Clang/GCC en el modo ThreadSanitizer (-enable-tsanitizer).
- En el campo de entrada de la contraseña para Wi-Fi se ha añadido un botón para mostrar la contraseña.
Fuente: opennet.ru
