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.
Note
Development versions of BLFS may not build or run some packages
properly if LFS or dependencies have been updated since the most
recent stable versions of the books.
Package Information
-
Download (HTTP): https://poppler.freedesktop.org/poppler-24.12.0.tar.xz
-
Download MD5 sum: 5afb55bfa03ca9a4d0c2d9783eef54f2
-
Download size: 1.8 MB
-
Estimated disk space required: 101 MB (with Qt6 library and
tests)
-
Estimated build time: 1.3 SBU (with parallelism=4, tests, and
Qt6 library)
Additional Downloads
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.1, Fontconfig-2.15.0,
and GLib-2.82.2 (with GObject Introspection)
Recommended
Boost-1.86.0, Cairo-1.18.2, GPGME-1.24.1, Little CMS-2.16, libjpeg-turbo-3.0.1,
libpng-1.6.44, libtiff-4.7.0, nss-3.107,
OpenJPEG-2.5.2, and Qt-6.8.1 (required for PDF
support in okular-24.08.3)
Optional
cURL-8.11.0, gdk-pixbuf-2.42.12, git-2.47.1 (for downloading test
files), GTK-Doc-1.34.0 and GTK+-3.24.43
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-24.12.0 &&
cp -vr ../glib/reference/html /usr/share/doc/poppler-24.12.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.1 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-24.12.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
|