hp-printer-app A Generic PCL Printer Application

Version Apache 2.0

hp-printer-app implements printing for a variety of common PCL printers connected via network or USB. Features include:

  • A single executable handles spooling, status, and server functionality.
  • Multiple printer support.
  • Each printer implements an IPP Everywhere™ print service and is compatible with the driverless printing support in Android™, Chrome OS™, iOS®, Linux®, macOS®, and Windows® 10/11 clients.
  • Each printer can directly print “raw”, Apple/PWG Raster, and/or PNG files.
  • Each printer automatically recovers from out-of-media, power loss, and disconnected/bad cable issues.


hp-printer-app depends on:

  • A POSIX-compliant “make” program (both GNU and BSD make are known to work),
  • A C99 compiler (both Clang and GCC are known to work),
  • PAPPL 1.1 or later.
  • CUPS 2.2 or later (for libcups).

Supported Printers

The following printers are currently supported:

  • HP LaserJet printers with PCL 5 language support
  • Most HP DeskJet, OfficeJet, and Photosmart printers
  • Laser printers with PCL 5 support from Canon, IBM, Lexmark, Kyocera, Ricoh, Xerox, etc.


Through PAPPL, hp-printer-app implements PWG 5100.14-2013: IPP Everywhere™ for each printer, and has a partial implementation of PWG 5100.22-2019: IPP System Service v1.0 for managing the print queues and default printer.

The HP Printer Application is Copyright © 2019-2022 by Michael R Sweet.

This software is licensed under the Apache License Version 2.0. See the files “LICENSE” and “NOTICE” for more information.


HP Printer Application v1.2.0 May 15, 2022