What is PAPPL ?
PAPPL is a user-friendly tool for creating Printer Applications, which are modern replacements for traditional printer drivers. It’s built using the C programming language and can work with any kind of printer, whether it’s used on a desktop, server, or an embedded system.
Key features of PAPPL include:
-
Multi-Threaded Server: PAPPL has a built-in server that handles HTTP and IPP (Internet Printing Protocol) requests. This allows both local users and network clients to interact with the printer application. Users can submit print jobs, check printer status, and manage printer settings.
-
Driver Interface: PAPPL provides an easy-to-use interface for creating printer drivers, especially for those already familiar with CUPS Raster drivers. It supports both raster (bitmap) and vector (line-based) graphics printing, though vector printing requires more coding effort.
-
Automatic Format Support: PAPPL can automatically handle printing of common file types like JPEG, PNG, and various raster formats. It supports printers connected via USB and network (AppSocket/JetDirect) connections. For other file formats, developers can create custom “filter” callbacks to enable support.
In summary, PAPPL simplifies the development of printer applications by offering a comprehensive framework that handles many common tasks, allowing developers to focus on the specific needs of their printers.
If you want to check out what PAPPL is you should check out this PAPPL Programmer’s Manual
What Scanning Integration Aims to Acheive
This project aims to add scanning support to the PAPPL backend. The scanning support is based on the MOPRIA Scan Specifications and uses eSCL for configuring scan support.
These are some benefits to the Ecosystem this project aims on achieving:
-
Distribution-independent scanner drivers: Scanner drivers can be packaged in Snaps, making them installable on any distro that supports snaps.
-
Modular scanning architecture: Scanning frontends (e.g., simple-scan) can be packaged separately from scanner drivers, reducing dependencies and increasing flexibility.
-
Containerised scanner applications: Scanner applications can be packaged in OCI containers (e.g., Docker, ROCKs, podman), enabling easy deployment and management.
-
Future-proof scanning infrastructure: eSCL and/or IPP scanning can potentially replace SANE, providing a standardised infrastructure for scanning that is not tied to a specific distro or architecture.
-
Retro-fitting legacy scanners: SANE can be relegated to retro-fitting Scanner Applications, ensuring continued support for legacy scanners.
-
Standardised scanning infrastructure: A common infrastructure for scanning can be established, benefiting the entire ecosystem and making it easier to develop and maintain scanning applications.