Poppler (software)

Poppler is a free software utility library for rendering Portable Document Format (PDF) documents. Its development is supported by freedesktop.org. It is commonly used on Linux systems, and is used by the PDF viewers of the open source GNOME and KDE desktop environments.

The project was started by Kristian Høgsberg with two goals: to provide PDF rendering functionality as a shared library, to centralize maintenance effort and to go beyond the goals of Xpdf, and to integrate with functionality provided by modern operating systems.

By the version 0.18 release in 2011, the poppler library represented a complete implementation of ISO 32000-1, the PDF format standard, and was the first major free PDF library to support its forms (only Acroforms but not full XFA forms) and annotations features.

Poppler is a fork of Xpdf-3.0, a PDF file viewer developed by Derek Noonburg of Glyph and Cog, LLC.

The name Poppler comes from the animated series Futurama episode "The Problem with Popplers."

Applications
Notable free software applications using Poppler to render PDF documents include:

Features
Poppler can use two back-ends for drawing PDF documents, Cairo and Splash. Its features may depend on which back-end it employs. A third back-end based on Qt4's painting framework "Arthur", is available, but is incomplete and no longer under active development. Bindings exist for Glib and Qt5, that provide interfaces to the Poppler backends, although the Qt5 bindings support only the Splash and Arthur backends. There is a patchset available to add support for the Cairo backend to the Qt5 bindings, but the Poppler project does not currently wish to integrate the feature into the library proper.

Some characteristics of the back-ends include:
 Cairo: Anti-aliasing of vector graphics, and transparent objects.
 Cairo does not smooth bitmap images such as scanned documents.
 Cairo does not depend on the X Window System, so Poppler can run on other platforms like Wayland, Windows or macOS.
 Splash: Supports minification filtering of bitmaps.

Poppler comes with a text-rendering back-end as well, which can be invoked from the command line utility pdftotext. It is useful for searching for strings in PDFs from the command line, using the utility grep, for instance.

Example:
pdftotext file.pdf - | grep string

Poppler partially supports annotations and Acroforms. It does not support JavaScript nor the rendering of full XFA forms.

poppler-utils
poppler-utils is a collection of command-line utilities built on Poppler's library API, to manage PDF and extract contents:
 pdfattach – add a new embedded file (attachment) to an existing PDF
 pdfdetach – extract embedded documents from a PDF
 pdffonts – lists the fonts used in a PDF
 pdfimages – extract all embedded images at native resolution from a PDF
 pdfinfo – list all information of a PDF
 pdfseparate – extract single pages from a PDF
 pdftocairo – convert single pages from a PDF to vector or bitmap formats using cairo
 pdftohtml – convert PDF to HTML format retaining formatting
 pdftoppm – convert a PDF page to a bitmap
 pdftops – convert PDF to printable PS format
 pdftotext – extract all text from PDF
 pdfunite – merges several PDFs

See also

 List of PDF software
 iText – another open source PDF library

Notes

References

 Albert Astals Cid (29 August 2005) The Poppler Library, presentation at the 2005 KDE conference

External links
 
 Qt Quarterly: Poppler: Displaying PDF Files with Qt
 Poppler Utils 0.68.0 compiled for x86 Windows

C++ libraries
Free PDF readers
Free software programmed in C++
Freedesktop.org
Freedesktop.org libraries
GNOME libraries
Software that uses Cairo (graphics)