PAPPL is a simple C-based framework/library for developing CUPS Printer Applications, which are the recommended replacement for printer drivers. It was specifically developed to support LPrint and a future Gutenprint Printer Application but is sufficiently general purpose to support any kind of printer or driver that can be used on desktops, servers, and in embedded environments.
PAPPL supports JPEG, PNG, PWG Raster, Apple Raster, and “raw” printing to printers connected via USB and network (AppSocket/JetDirect) connections. PAPPL provides an embedded IPP Everywhere™ service that provides access to printers locally or on your whole network.
PAPPL is licensed under the Apache License Version 2.0 with an exception to allow linking against GPL2/LGPL2 software (like older versions of CUPS), so it can be used freely in any project you’d like. If you want to support the development of this framework financially, please consider sponsoring me through Github. I am also available to do consulting and/or development through my company Lakeside Robotics (https://www.lakesiderobotics.ca).
PAPPL requires Microsoft® Windows® 10 or higher or a POSIX-compliant host
operating system such as Linux®, macOS®, QNX®, or VxWorks®. On Windows, the
provided project files require Visual Studio 2019 or higher. For POSIX hosts,
a “make” utility that supports the
include directive (like GNU make), a
C99-compatible C compiler such as GCC or Clang, and the “pkg-config” utility
are required along with the following support libraries:
Most development happens on a Mac, with testing on various Linux distributions, Windows 10, and a Raspberry Pi Zero W to ensure that memory and CPU requirements remain low.
Documentation can be found in the “doc” and “man” directories.
The OpenPrinting group has written a tutorial showing how to migrate the
rastertohp driver from CUPS to a Printer Application using PAPPL, which can
be used as a recipe for migrating any CUPS driver. This example is available
in the hp-printer-app project and is also discussed in the PAPPL
The OpenPrinting group is also developing a PostScript printer application using PAPPL to support the many otherwise unsupported PostScript and Ghostscript-based printers.
PAPPL is Copyright © 2019-2021 by Michael R Sweet.
This software is licensed under the Apache License Version 2.0 with an (optional) exception to allow linking against GPL2/LGPL2 software (like older versions of CUPS). See the files “LICENSE” and “NOTICE” for more information.
This software is based loosely on the “ippeveprinter.c” code from CUPS.
PAPPL v1.1.0 December 15, 2021
PAPPL v1.1rc1 November 22, 2021
PAPPL v1.1b3 November 04, 2021
PAPPL v1.1b2 September 24, 2021
PAPPL v1.1b1 August 31, 2021
PAPPL v1.0.3 April 21, 2021
PAPPL v1.0.2 February 20, 2021
PAPPL v1.0.1 January 12, 2021
PAPPL v1.0.0 December 11, 2020
PAPPL v1.0rc1 November 30, 2020
PAPPL v1.0b1 November 11, 2020
Announcing PAPPL, A Printer Application Framework March 23, 2020