Michael R Sweet, l'auteur du système d'impression CUPS, a présenté la version PAPPL 1.2, un cadre pour le développement d'applications d'impression basées sur le protocole IPP Everywhere, recommandé à la place des pilotes d'imprimante traditionnels. Le code du cadre est écrit en C et est distribué sous la licence Apache 2.0 avec une exception autorisant la liaison avec du code sous licences GPLv2 et LGPLv2.
Parmi les changements dans la nouvelle version :
- Un support complet pour la localisation a été ajouté. Des ensembles de localisation de base sont proposés pour les langues anglaise, française, allemande, italienne, japonaise et espagnole.
- La prise en charge de la plateforme macOS a été améliorée. L'intégration avec le menu global supérieur de macOS a été réalisée. La possibilité d'exécuter des applications d'impression en mode a été ajoutée. de serveurs.
- Le support de l'interpolation lors de l'impression d'images JPEG ou de l'utilisation de la fonction papplJobFilterImage avec l'antialiasing activé a été ajouté.
- Des fonctionnalités supplémentaires du protocole IPP (Internet Printing Protocol) ont été mises en œuvre et de nouvelles API ont été ajoutées : papplDeviceGetSupplies pour déterminer le niveau d'encre et de toner, papplSystemAddEvent/papplSubscriptionXxx pour gérer les notifications IPP, papplSystemGet/SetMaxClients pour limiter le nombre de clients. Les fonctions papplPrinterDisable et papplPrinterEnable ont ajouté la prise en charge de l'attribut IPP « printer-is-accepting-jobs ».
- La possibilité de définir des tailles de feuilles personnalisées en millimètres a été ajoutée.
- Le support pour les bibliothèques OpenSSL et LibreSSL a été ajouté.
- Le code USB Gadget, utilisé pour créer des périphériques USB clients et simuler des périphériques USB par logiciel, a été mis à jour.
- Un lien avec l'utilisateur du répertoire de spool d'impression par défaut a été mis en place.
- La compatibilité avec la bibliothèque libcups3 a été améliorée.
Le framework PAPPL a été initialement développé pour prendre en charge le système d'impression LPrint et les pilotes Gutenprint, mais peut être utilisé pour implémenter la prise en charge de tout type d'imprimantes et de pilotes pour l'impression sur des systèmes de bureau, serveurs et embarqués. On s'attend à ce que PAPPL puisse accélérer l'adoption de la technologie IPP Everywhere plutôt que des pilotes classiques et simplifier la prise en charge d'autres programmes basés sur IPP, tels qu'AirPrint et Mopria.
PAPPL inclut une implémentation intégrée du protocole IPP Everywhere, fournissant des moyens d'accès aux imprimantes localement ou à travers le réseau et de traitement des demandes d'impression. IPP Everywhere fonctionne en mode sans pilote (« driverless ») et contrairement aux pilotes PPD, il ne nécessite pas la création de fichiers de configuration statiques. La communication avec les imprimantes est prise en charge à la fois directement via une connexion USB à l'imprimante et à distance en utilisant les protocoles AppSocket et JetDirect. Les données peuvent être envoyées à l'imprimante dans les formats JPEG, PNG, PWG Raster, Apple Raster et « raw ».
PAPPL peut être compilé pour les systèmes d'exploitation compatibles POSIX, y compris Linux, macOS, QNX et VxWorks. En ce qui concerne les dépendances, on note Avahi (pour le support mDNS/DNS-SD), CUPS, GNU TLS, JPEGLIB, LIBPNG, LIBPAM (pour l'authentification) et ZLIB. Sur la base de PAPPL, le projet OpenPrinting développe une application universelle d'impression PostScript, capable de fonctionner à la fois avec des imprimantes modernes compatibles IPP (utilisant PAPPL), prenant en charge PostScript et Ghostscript, ainsi qu'avec des imprimantes anciennes pour lesquelles des pilotes PPD sont disponibles (des filtres cups-filters et libppd sont utilisés).
Source : opennet.ru
