#### Beyond Linux® From Scratch (System V Edition) - Version 12.3

### Chapter 10. Graphics and Font Libraries

- Prev

  Pixman-0.44.2

- Next

  Potrace-1.16

- Up
- Home

# Poppler-25.02.0

## 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.3 platform.

### Package Information

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

- Download MD5 sum: feae5e0715ed7738fcb4220730a3ff4c

- Download size: 1.9 MB

- Estimated disk space required: 77 MB (with Qt6 library and tests)

- Estimated build time: 1.0 SBU (with parallelism=4, tests, and Qt6 library)

### Additional Downloads

Poppler Encoding Data

- Download (HTTP): https://poppler.freedesktop.org/poppler-data-0.4.12.tar.gz

- Download MD5 sum: 67ee4a40aa830b1f6e2560ce5f6471ba

- Download size: 4.3 MB

- Estimated disk space required: 26 MB

- Estimated build time: less than 0.1 SBU

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

#### Required

CMake-3.31.5, Fontconfig-2.16.0, and GLib-2.82.5 (with GObject Introspection)

#### Recommended

Boost-1.87.0, Cairo-1.18.2, GPGME-1.24.2, Little CMS-2.17, libjpeg-turbo-3.0.1, libpng-1.6.46, libtiff-4.7.0, nss-3.108, OpenJPEG-2.5.3, and Qt-6.8.2 (required for PDF support in okular-24.12.2)

#### Optional

cURL-8.12.1, gdk-pixbuf-2.42.12, git-2.48.1 (for downloading test files), GTK-Doc-1.34.0 and GTK-3.24.48

## Installation of Poppler

Now, install Poppler by running the following commands:

    mkdir build                         &&
    cd    build                         &&

    cmake -D CMAKE_BUILD_TYPE=Release   \
          -D CMAKE_INSTALL_PREFIX=/usr  \
          -D TESTDATADIR=$PWD/testfiles \
          -D ENABLE_QT5=OFF             \
          -D ENABLE_UNSTABLE_API_ABI_HEADERS=ON \
          -G Ninja ..                   &&
    ninja

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 ninja test.

Now, as the `root` user:

    ninja install

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

    install -v -m755 -d           /usr/share/doc/poppler-25.02.0 &&
    cp -vr ../glib/reference/html /usr/share/doc/poppler-25.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

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

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

`-D ENABLE_QT5=OFF`: This switch is needed to prevent an error when Qt5 is not installed.

`-D ENABLE_UNSTABLE_API_ABI_HEADERS=ON`: Installs some old Xpdf headers required by certain programs.

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

`-D ENABLE_QT6=OFF`: Use this parameter if Qt-6.8.2 is not installed.

`-D ENABLE_BOOST=OFF`: Use this parameter if you have not installed boost (the Splash backend for Qt6 recommends boost).

`-D ENABLE_NSS3=OFF`: Use this parameter if you have not installed nss.

`-D ENABLE_GPGME=OFF`: Use this parameter if you have not installed gpgme.

`-D ENABLE_LIBTIFF=OFF`: Use this parameter if you have not installed libtiff.

LC_ALL=en_US.UTF-8 ninja 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.

## Contents

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, and (optionally) libpoppler-qt6.so
Installed Directories: /usr/include/poppler, /usr/share/poppler, and /usr/share/doc/poppler-25.02.0

### Short Descriptions

pdfattach | adds a new embedded file to an existing PDF file
pdfdetach | lists or extracts embedded files from PDF files
pdffonts | lists the fonts used in a PDF file along with various information for each font
pdfimages | saves images from a PDF file as PPM, PBM, or JPEG files
pdfinfo | prints the contents of the 'Info' dictionary (plus some other useful information) from a PDF file
pdfseparate | extracts single pages from a PDF file
pdfsig | verifies the digital signatures in a PDF document
pdftocairo | converts a PDF file to one of several formats (PNG, JPEG, PDF, PS, EPS, SVG) using the cairo output device of the poppler library
pdftohtml | converts a PDF file to HTML
pdftoppm | converts PDF files to PBM, PGM and PPM formats
pdftops | converts PDF files to Postscript format
pdftotext | converts PDF files to plain text
pdfunite | merges several PDF files, in the order of their occurrence on the command line, to one PDF output file
`libpoppler.so` | contains the API functions to render PDF files
`libpoppler-cpp.so` | is a C++ backend for rendering PDF files
`libpoppler-glib.so` | is a wrapper library used to interface the PDF rendering functions with GTK+
`libpoppler-qt6.so` | is a wrapper library used to interface the PDF rendering functions with Qt6

- Prev

  Pixman-0.44.2

- Next

  Potrace-1.16

- Up
- Home