Poppler (software)

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Poppler
Poppler logotype.svg
Developer(s) freedesktop.org
Initial release March 4, 2005; 19 years ago (2005-03-04)[nb 1]
Stable release 0.38.0 / November 16, 2015; 9 years ago (2015-11-16)[1]
Written in C++
Operating system Linux, Unix, BSD, Windows
Type Library
License GPLv2 or GPLv3[2]
Website poppler.freedesktop.org

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,[3] 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:[4] to provide PDF rendering functionality as a shared library for centralizing maintenance effort, and to go beyond the goals of Xpdf, and integrate with functionality provided by modern operating systems.

As of the version 0.18 release in 2011, the poppler library represents a complete implementation of ISO 32000-1,[3] the PDF format standard, and is the first major free PDF library to support its forms (only Acroforms but not full XFA forms[5][6]) and annotations features.[3]

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

The name Poppler comes from the animated series Futurama episode The Problem with Popplers.[7]

Applications

Numerous free software applications use Poppler to render PDF documents.[8]

Application GUI widgets
Evince GTK+
FlaxPDF FLTK
KPDF Qt
LibreOffice 4.2 GTK+[9]
Inkscape GTK+
Okular Qt
pdftotext, pdftohtml, etc. none
TeXworks Qt
TeXstudio Qt
Xournal GTK+
VPDF MUI

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.[10] Bindings exist for Glib, Qt3, and Qt4, that provide interfaces to the Poppler backends, although the Qt3 and Qt4 bindings support only the Splash backend. There is a patchset available to add support for the Cairo backend to the Qt4 bindings,[11] but the Poppler project does not currently wish to integrate the feature into the library proper.[12]

Some characteristics of the back-ends include:

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.[13]

Example:

pdftotext file.pdf - | grep string

Poppler partially supports interactive documents using JavaScript,[14] annotations, and Acroforms. It does not support rendering of full XFA forms.[5]

poppler-utils

poppler-utils is a collection of tools builds on poppler library API, to manage PDF and extract contents.
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 infos 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 PDF

See also

Notes

  1. This file-modification date appears on the version 0.1.1 tarball, the "first real release", according to Poppler's release history.[1]

References

  1. 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. 3.0 3.1 3.2 Lua error in package.lua at line 80: module 'strict' not found.
  4. 4.0 4.1 Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. 7.0 7.1 Lua error in package.lua at line 80: module 'strict' not found.
  8. 8.0 8.1 8.2 Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  • Albert Astals Cid (29 August 2005) The Poppler Library, presentation at the 2005 KDE conference

External links