Michael R Sweet, el autor del sistema de impresión CUPS, ha presentado la versión 1.2 de PAPPL, un marco para el desarrollo de aplicaciones de impresión basadas en el protocolo IPP Everywhere, recomendado para su uso en lugar de controladores tradicionales para impresoras. 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.
Entre los cambios en la nueva versión:
- Se ha añadido soporte completo para la localización. Se han propuesto conjuntos de localización básicos para los idiomas inglés, francés, alemán, italiano, japonés y español.
- Se ha mejorado el soporte para la plataforma macOS. Se ha asegurado la integración con el menú global superior de macOS. Se ha añadido la posibilidad de ejecutar aplicaciones de salida de impresión en modo servidores.
- Se ha añadido soporte para la interpolación al imprimir imágenes JPEG o al utilizar la función papplJobFilterImage con la suavización activada.
- Se han implementado funcionalidades adicionales del protocolo IPP (Protocolo de Impresión de Internet) y se han añadido nuevas API: papplDeviceGetSupplies para determinar los niveles de tinta y tóner, papplSystemAddEvent/papplSubscriptionXxx para manejar notificaciones IPP, papplSystemGet/SetMaxClients para limitar el número de clientes. En las funciones papplPrinterDisable y papplPrinterEnable se ha añadido soporte para el atributo IPP 'printer-is-accepting-jobs'.
- Se ha añadido la posibilidad de definir tamaños de página personalizados en milímetros.
- Se ha añadido soporte para las bibliotecas OpenSSL y LibreSSL.
- Se ha actualizado el código de USB Gadget, utilizado para crear dispositivos USB cliente y simular dispositivos USB por software.
- Se ha asegurado la vinculación del directorio del spool de impresión al usuario aplicable por defecto.
- Se ha mejorado la compatibilidad con la biblioteca libcups3.
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).
Fuente: opennet.ru
