glfs/general/graphlib/poppler.xml
Xi Ruoyao c0bc0a9eac
Update to glib-2.80.0 and gobject-introspection-1.80.0
Merge gobject-introspection into glib page to better handle a circular
dependency between these two packages.
2024-03-10 23:41:04 +08:00

543 lines
17 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY poppler-download-http "https://poppler.freedesktop.org/poppler-&poppler-version;.tar.xz">
<!ENTITY poppler-download-ftp " ">
<!ENTITY poppler-md5sum "2d50c3c8e0011d1fa14572c744cd33bb">
<!ENTITY poppler-size "1.8 MB">
<!ENTITY poppler-buildsize "81 MB (with Qt6 library; add 13 MB for tests)">
<!ENTITY poppler-time "0.9 SBU (with parallelism=4 and Qt5 library; add 2.7 SBU for tests)">
<!-- Time increase might be due to git.freedesktop.org -->
<!ENTITY poppler-data-version "0.4.12">
<!ENTITY poppler-data-download-http "https://poppler.freedesktop.org/poppler-data-&poppler-data-version;.tar.gz">
<!ENTITY poppler-data-md5sum "67ee4a40aa830b1f6e2560ce5f6471ba">
<!ENTITY poppler-data-size "4.3 MB">
<!ENTITY poppler-data-buildsize "26 MB">
<!ENTITY poppler-data-time "less than 0.1 SBU">
]>
<sect1 id="poppler" xreflabel="Poppler-&poppler-version;">
<?dbhtml filename="poppler.html"?>
<title>Poppler-&poppler-version;</title>
<indexterm zone="poppler">
<primary sortas="a-Poppler">Poppler</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Poppler</title>
<para>
The <application>Poppler</application> 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.
</para>
&lfs121_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&poppler-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&poppler-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &poppler-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &poppler-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &poppler-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &poppler-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<title>Poppler Encoding Data</title>
<listitem>
<para>
Download (HTTP): <ulink url="&poppler-data-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &poppler-data-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &poppler-data-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &poppler-data-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &poppler-data-time;
</para>
</listitem>
</itemizedlist>
<para>
The additional package consists of encoding files for use with
<application>Poppler</application>. The encoding files are optional and
<application>Poppler</application> will automatically read them if they
are present. When installed, they enable
<application>Poppler</application> to render CJK and Cyrillic properly.
</para>
<bridgehead renderas="sect3">Poppler Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="cmake"/>,
<xref linkend="fontconfig"/>, and
&gobject-introspection;
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="boost"/>,
<xref linkend="cairo"/>,
<xref linkend="gpgme"/>,
<xref linkend="lcms2"/>,
<xref linkend="libjpeg"/>,
<xref linkend="libpng"/>,
<xref linkend="libtiff"/>,
<xref linkend="nss"/>,
<xref linkend="openjpeg2"/>, and
&qt5-deps;
(required for PDF support in <xref role="nodep" linkend="okular"/>)
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="curl"/>,
<xref linkend="gdk-pixbuf"/>,
<xref linkend="git"/> (for downloading test files),
<xref linkend="gtk-doc"/>,
<xref linkend="gtk3"/>, and
<xref linkend="qt6"/>
<!-- Nothing really uses this yet, but it will be used in KDE 6 -->
</para>
</sect2>
<sect2 role="installation">
<title>Installation of Poppler</title>
<para>
Install <application>Poppler</application> by running the following
commands:
</para>
<screen><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DTESTDATADIR=$PWD/testfiles \
-DENABLE_QT6=OFF \
-DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
.. &amp;&amp;
make</userinput></screen>
<para>
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:
<command>git clone --depth 1 https://gitlab.freedesktop.org/poppler/test.git testfiles</command>.
Then issue: <command>LC_ALL=en_US.UTF-8 make test</command>.
One test, check_qt5_signature_basics, is known to fail.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
<para>
To install the documentation, run the following commands as
<systemitem class="username">root</systemitem>:
</para>
<screen role="root"><userinput>install -v -m755 -d /usr/share/doc/poppler-&poppler-version; &amp;&amp;
cp -vr ../glib/reference/html /usr/share/doc/poppler-&poppler-version;</userinput></screen>
<!-- ==== Poppler Data ====== -->
<bridgehead renderas="sect3">Poppler Data</bridgehead>
<para>
If you downloaded the additional encoding data package, install it by
issuing the following commands:
</para>
<screen><userinput>tar -xf ../../poppler-data-&poppler-data-version;.tar.gz &amp;&amp;
cd poppler-data-&poppler-data-version;</userinput></screen>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make prefix=/usr install</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch is used
to apply a higher level of compiler optimizations.
</para>
<para>
<parameter>-DTESTDATADIR=$PWD/testfiles</parameter>: Tells the test
programs where the auxiliary files are located.
</para>
<para>
<parameter>-DENABLE_QT6=OFF</parameter>: This switch is needed to
prevent an error when Qt6 is not installed. Remove it if you
have installed <xref linkend="qt6" role="nodep"/>.
</para>
<para>
<parameter>-DENABLE_UNSTABLE_API_ABI_HEADERS=ON</parameter>: Installs some old
<application>Xpdf</application> headers required by certain programs.
<!--(e.g. <application>Inkscape</application>).-->
</para>
<para>
<option>-DENABLE_GTK_DOC=ON</option>: Use this parameter if
GTK-Doc <!--and Pygments--> is installed and you wish to rebuild and
install the API documentation.
</para>
<para>
<option>-DENABLE_QT5=OFF</option>: Use this parameter if
&qt5-deps; is not installed.
</para>
<para>
<option>-DENABLE_BOOST=OFF</option>: Use this parameter if you have
not installed <application>boost</application> (the Splash backend for
Qt5 recommends boost).
</para>
<para>
<option>-DENABLE_NSS3=OFF</option>: Use this parameter if you have
not installed <application>nss</application>.
</para>
<para>
<option>-DENABLE_GPGME=OFF</option>: Use this parameter if you have
not installed <application>gpgme</application>.
</para>
<para>
<option>-DENABLE_LIBTIFF=OFF</option>: Use this parameter if you have
not installed <application>libtiff</application>.
</para>
<para>
<command>LC_ALL=en_US.UTF-8 make test</command>: 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.
</para>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
pdfattach, pdfdetach, pdffonts, pdfimages, pdfinfo, pdfseparate,
pdfsig, pdftocairo, pdftohtml, pdftoppm, pdftops, pdftotext, and
pdfunite
</seg>
<seg>
libpoppler.so,
libpoppler-cpp.so,
libpoppler-glib.so,
libpoppler-qt5.so, and
(optionally) libpoppler-qt6.so
</seg>
<seg>
/usr/include/poppler,
/usr/share/poppler, and
/usr/share/doc/poppler-&poppler-version;
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="pdfattach">
<term><command>pdfattach</command></term>
<listitem>
<para>
adds a new embedded file to an existing PDF file
</para>
<indexterm zone="poppler pdfattach">
<primary sortas="b-pdfattach">pdfattach</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdfdetach">
<term><command>pdfdetach</command></term>
<listitem>
<para>
lists or extracts embedded files from PDF files
</para>
<indexterm zone="poppler pdfdetach">
<primary sortas="b-pdfdetach">pdfdetach</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdffonts">
<term><command>pdffonts</command></term>
<listitem>
<para>
lists the fonts used in a PDF file along with various information
for each font
</para>
<indexterm zone="poppler pdffonts">
<primary sortas="b-pdffonts">pdffonts</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdfimages">
<term><command>pdfimages</command></term>
<listitem>
<para>
saves images from a PDF file as PPM, PBM, or JPEG files
</para>
<indexterm zone="poppler pdfimages">
<primary sortas="b-pdfimages">pdfimages</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdfinfo">
<term><command>pdfinfo</command></term>
<listitem>
<para>
prints the contents of the 'Info' dictionary (plus some other useful
information) from a PDF file
</para>
<indexterm zone="poppler pdfinfo">
<primary sortas="b-pdfinfo">pdfinfo</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdfseparate">
<term><command>pdfseparate</command></term>
<listitem>
<para>
extracts single pages from a PDF file
</para>
<indexterm zone="poppler pdfseparate">
<primary sortas="b-pdseparate">pdfseparate</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdfsig">
<term><command>pdfsig</command></term>
<listitem>
<para>
verifies the digital signatures in a PDF document
</para>
<indexterm zone="poppler pdfsig">
<primary sortas="b-pdseparate">pdfsig</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdftocairo">
<term><command>pdftocairo</command></term>
<listitem>
<para>
converts a PDF file to one of several formats (PNG, JPEG, PDF, PS,
EPS, SVG) using the cairo output device of the poppler library
</para>
<indexterm zone="poppler pdftocairo">
<primary sortas="b-pdftocairo">pdftocairo</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdftohtml">
<term><command>pdftohtml</command></term>
<listitem>
<para>
converts a PDF file to HTML
</para>
<indexterm zone="poppler pdftohtml">
<primary sortas="b-pdftohtml">pdftohtml</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdftoppm">
<term><command>pdftoppm</command></term>
<listitem>
<para>
converts PDF files to PBM, PGM and PPM formats
</para>
<indexterm zone="poppler pdftoppm">
<primary sortas="b-pdftoppm">pdftoppm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdftops">
<term><command>pdftops</command></term>
<listitem>
<para>
converts PDF files to Postscript format
</para>
<indexterm zone="poppler pdftops">
<primary sortas="b-pdftops">pdftops</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdftotext">
<term><command>pdftotext</command></term>
<listitem>
<para>
converts PDF files to plain text
</para>
<indexterm zone="poppler pdftotext">
<primary sortas="b-pdftotext">pdftotext</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdfunite">
<term><command>pdfunite</command></term>
<listitem>
<para>
merges several PDF files, in the order of their occurrence on the
command line, to one PDF output file
</para>
<indexterm zone="poppler pdfunite">
<primary sortas="b-pdfunite">pdfunite</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libpoppler">
<term><filename class="libraryfile">libpoppler.so</filename></term>
<listitem>
<para>
contains the API functions to render PDF files
</para>
<indexterm zone="poppler libpoppler">
<primary sortas="c-libpoppler">libpoppler.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libpoppler-cpp">
<term><filename class="libraryfile">libpoppler-cpp.so</filename></term>
<listitem>
<para>
is a C++ backend for rendering PDF files
</para>
<indexterm zone="poppler libpoppler-cpp">
<primary sortas="c-libpoppler-cpp">libpoppler-cpp.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libpoppler-glib">
<term><filename class="libraryfile">libpoppler-glib.so</filename></term>
<listitem>
<para>
is a wrapper library used to interface the PDF rendering functions
with <application>GTK+</application>
</para>
<indexterm zone="poppler libpoppler-glib">
<primary sortas="c-libpoppler-glib">libpoppler-glib.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libpoppler-qt5">
<term><filename class="libraryfile">libpoppler-qt5.so</filename></term>
<listitem>
<para>
is a wrapper library used to interface the PDF rendering functions
with <application>Qt</application>5
</para>
<indexterm zone="poppler libpoppler-qt5">
<primary sortas="c-libpoppler-qt5">libpoppler-qt5.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libpoppler-qt6">
<term><filename class="libraryfile">libpoppler-qt6.so</filename></term>
<listitem>
<para>
is a wrapper library used to interface the PDF rendering functions
with <application>Qt</application>6
</para>
<indexterm zone="poppler libpoppler-qt6">
<primary sortas="c-libpoppler-qt6">libpoppler-qt6.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>