Introduction to Poppler

The Poppler package contains a PDF rendering library and command line tools used to manipulate PDF files. This is useful for providing PDF rendering functionality as a shared library.

This package is known to build and work properly using an LFS 12.1 platform.

Package Information

  • Download (HTTP): https://poppler.freedesktop.org/poppler-24.02.0.tar.xz

  • Download MD5 sum: a02d3b32e956bef66a5108fcaabe1c63

  • Download size: 1.8 MB

  • Estimated disk space required: 79 MB (with Qt5 library; add 13 MB for tests)

  • Estimated build time: 0.9 SBU (with parallelism=4 and Qt5 library; add 2.7 SBU for tests)

Additional Downloads

Poppler Encoding Data

The additional package consists of encoding files for use with Poppler. The encoding files are optional and Poppler will automatically read them if they are present. When installed, they enable Poppler to render CJK and Cyrillic properly.

Poppler Dependencies


CMake-3.28.3, Fontconfig-2.15.0, and gobject-introspection-1.78.1



cURL-8.6.0, gdk-pixbuf-2.42.10, git-2.44.0 (for downloading test files), GTK-Doc-1.33.2, GTK+-3.24.41, and Qt-6.6.2

Installation of Poppler

Install Poppler by running the following commands:

mkdir build                         &&
cd    build                         &&

cmake  -DCMAKE_BUILD_TYPE=Release   \
       -DTESTDATADIR=$PWD/testfiles \
       -DENABLE_QT6=OFF             \
       ..                           &&

In order to run the test suite, some testcases are needed and can be obtained only from a git repository. The command to download them is: git clone --depth 1 https://gitlab.freedesktop.org/poppler/test.git testfiles. Then issue: LC_ALL=en_US.UTF-8 make test. One test, check_qt5_signature_basics, is known to fail.

Now, as the root user:

make install

To install the documentation, run the following commands as root:

install -v -m755 -d           /usr/share/doc/poppler-24.02.0 &&
cp -vr ../glib/reference/html /usr/share/doc/poppler-24.02.0

Poppler Data

If you downloaded the additional encoding data package, install it by issuing the following commands:

tar -xf ../../poppler-data-0.4.12.tar.gz &&
cd poppler-data-0.4.12

Now, as the root user:

make prefix=/usr install

Command Explanations

-DCMAKE_BUILD_TYPE=Release: This switch is used to apply a higher level of compiler optimizations.

-DTESTDATADIR=$PWD/testfiles: Tells the test programs where the auxiliary files are located.

-DENABLE_QT6=OFF: This switch is needed to prevent an error when Qt6 is not installed. Remove it if you have installed Qt-6.6.2.

-DENABLE_UNSTABLE_API_ABI_HEADERS=ON: Installs some old Xpdf headers required by certain programs.

-DENABLE_GTK_DOC=ON: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.

-DENABLE_QT5=OFF: Use this parameter if (Qt-5.15.12 or qt-alternate-5.15.12) is not installed.

-DENABLE_BOOST=OFF: Use this parameter if you have not installed boost (the Splash backend for Qt5 recommends boost).

-DENABLE_NSS3=OFF: Use this parameter if you have not installed nss.

-DENABLE_GPGME=OFF: Use this parameter if you have not installed gpgme.

-DENABLE_LIBTIFF=OFF: Use this parameter if you have not installed libtiff.

LC_ALL=en_US.UTF-8 make test: Runs the test suite. The environment variable LC_ALL=en_US.UTF-8 is only needed if the default locale does not include UTF-8.


Installed Programs: pdfattach, pdfdetach, pdffonts, pdfimages, pdfinfo, pdfseparate, pdfsig, pdftocairo, pdftohtml, pdftoppm, pdftops, pdftotext, and pdfunite
Installed Libraries: libpoppler.so, libpoppler-cpp.so, libpoppler-glib.so, libpoppler-qt5.so, and (optionally) libpoppler-qt6.so
Installed Directories: /usr/include/poppler, /usr/share/poppler, and /usr/share/doc/poppler-24.02.0

Short Descriptions


adds a new embedded file to an existing PDF file


lists or extracts embedded files from PDF files


lists the fonts used in a PDF file along with various information for each font


saves images from a PDF file as PPM, PBM, or JPEG files


prints the contents of the 'Info' dictionary (plus some other useful information) from a PDF file


extracts single pages from a PDF file


verifies the digital signatures in a PDF document


converts a PDF file to one of several formats (PNG, JPEG, PDF, PS, EPS, SVG) using the cairo output device of the poppler library


converts a PDF file to HTML


converts PDF files to PBM, PGM and PPM formats


converts PDF files to Postscript format


converts PDF files to plain text


merges several PDF files, in the order of their occurrence on the command line, to one PDF output file


contains the API functions to render PDF files


is a C++ backend for rendering PDF files


is a wrapper library used to interface the PDF rendering functions with GTK+


is a wrapper library used to interface the PDF rendering functions with Qt5


is a wrapper library used to interface the PDF rendering functions with Qt6