The Hewlett-Packard Linux Imaging and Printing project (HPLIP) provides a unified solution to print, scan, fax and configure HP single and multi-function devices which works with many Linux distributions. The goal of this project is to provide "radically simple" printing, faxing, scanning, and device management to consumer and small business desktop Linux users. This project is based on open source software and uses GPL compatible licenses.
HPLIP is designed to work with the CUPS spooler system. HPLIP is comprised of several major components; filters, backends, PPD files and tools. A CUPS/HPLIP system provides bi-di communication which is necessary for full HPLIP support.
The following figure is an overview of the CUPS/HPLIP system with major components highlighted.
Application converts data into PostScript/PDF format and send to the CUPS framework. CUPS calls GhostScript to translate the PostScript/PDF input in to the cups raster format and HPLIP filter “hpcups” translate cups raster format in to the printer’s language. Finally the backend “hp” sends the data to the printer.
HPLIP PostScript Finishing Filter (hpps) implements special functionalities like, Job storage (Secure Printing), Job Accounting and Born On Date (BOD) features on specific capable printers.
The filter hpcupsfax is used to support send-fax functionality. The Fax functionality is also implemented similar to CUPS printer spool queue and print path.
HPLIP provides a SANE backend libsane-hpaio to support scan functionality through the use of xsane (SANE) application. Both flatbed and ADF scanning is supported via xsane/sane applications. hp-scan is the sane based scan utility for HPLIP.
HPLIP provides two CUPS backends which support bi-di printing connectivity, namely,“hp” for printing and “hpfax” for sending fax. HPLIP supports connectivity over USB and network (JetDirect and wireless).
The "hp" CUPS backend supports printing via USB and network connectivity. The "hp" backend can be used in place of the normal backends provided by CUPS. The "hp" backend provides in-bound print job status. Job status is sent to CUPS via stderr "ERROR:" and "INFO:" messages and to the HP Device Manager. The “hpfax” backend works the same way as “hp” backend, but is used for sending faxes.
MUlti-point transport Driver or HPMUD represents the I/O layer for HPLIP. HPMUD does not depend on Linux specific libusb extensions. This means any UNIX/Linux derivative that supports libusb may work with HPLIP. A public HPLIP "C" API is exposed through hpmud. See hpmud.h for documentation. A python wrapper for hpmud, called hpmudext, is also available.
D-BUS is used for inter-process notification between different HPLIP processes.
HPLIP provides a number of tools which provide various functionalities. A few of the tools are listed below. Please check HPLIP Tools for information on all the tools.
hp-sendfax is used to access the fax features of supported devices. hp-sendfax can be invoked either by running hp-toolbox or run hp-sendfax from the command line. PC fax send is supported, but not PC fax receive. PC fax send will appear as a CUPS printer spool queue.
HP Device Manager (Toolbox) provides access to device settings and administrative tools such as status, tools and supplies levels. Out-of-bound printer status is available in the HP Device Manager. For example, ink levels for most inkjets can be viewed in the device manager. Also pen alignment can be performed from the device manager.
HPLIP System Tray provides up to date status of the device. User can hide/show the status message accordingly. Also provides an option to check HPLIP updates and displays currently installed version.
‘hp-check’ is a powerful HPLIP tool that helps the user to check certain problems in using HPLIP successfully like Missing dependencies, HPLIP components versions, Device queues, Permissions etc.
Log Capture tool helps the user to capture HPLIP log files. User can collect logs by running ‘hp-logcapture’ command for any issue in print/scan/fax functionality.
User can upgrade to latest version of hplip by running ‘hp-upgrade’ command and to uninstall complete HPLIP package run ‘hp-uninstall’. Print/Fax queues can be analyzed by running ‘hp-diagnose-queues’ command or by clicking on “Diagnose Queues” from toolbox.