Skip to main content

A Python binding for libpoppler-qt5 that aims for completeness and for being actively maintained.

Created and maintained by Wilbert Berendsen <wbsoft@xs4all.nl>, with help of other contributors, especially where it concerns supporting many platforms and build systems. Thanks for everyone’s help!

Homepage: https://pypi.python.org/pypi/python-poppler-qt5/

Usage:

import popplerqt5
d = popplerqt5.Poppler.Document.load('file.pdf')

Documentation

The Python API closely follows the Poppler Qt5 C++ interface library API, documented at https://poppler.freedesktop.org/api/qt5/ .

Note: Releases of PyQt5 < 5.4 currently do not support the QtXml module, all methods that use the QDomDocument, QDomElement and QDomNode types are disabled. This concerns the Document::toc() method and some constructors and the store() methods in the Annotation subclasses. So, using PyQt5 >= 5.4 is recommended.

Wherever the C++ API requires QList, QSet or QLinkedList, any Python sequence can be used. API calls that return QList, QSet or QLinkedList all return Python lists.

There are a few other differences:

Poppler::Document::getPdfVersion(int *major, int *minor) can simply be called as d.getPdfVersion(), (where d is a Poppler::Document instance); it will return a tuple of two integers (major, minor).

Poppler::Document has __len__ and __getitem__ methods, corresponding to numPages() and page(int num).

Poppler::FontIterator (returned by Poppler::Document::newFontIterator) is also a Python iterable (e.g. has __iter__() and __next__() methods). So although you can use:

it = document.newFontIterator()
while it.hasNext():
    fonts = it.next()  # list of FontInfo objects
    ...

you can also use the more Pythonic:

for fonts in document.newFontIterator():
    ...

In addition to the Poppler namespace, there are two toplevel module functions:

popplerqt5.version()

returns the version of the python-poppler-qt5 package as a tuple of ints, e.g. (0, 18, 2).

popplerqt5.poppler_version()

returns the version of the linked Poppler-Qt5 library as a tuple of ints, e.g. (0, 24, 5).

This is determined at build time. If at build time the Poppler-Qt5 version could not be determined and was not specified, an empty tuple might be returned.

Metadata

Release files for python-poppler-qt5 21.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-poppler-qt5 21.3.0
File Size Uploaded
python-poppler-qt5-21.3.0.tar.gz 28.6 kB Details

Release files / python-poppler-qt5-21.3.0.tar.gz

Download URL python-poppler-qt5-21.3.0.tar.gz
Size 28.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b477e8841f0ea0e09fdab6f2f305cf38df977d9e142e5693a374605d75dd6fe0
BLAKE2b-256 checksum
How to use checksums
2935cf515357cd968a99e404da6dddc2c292b5ced40b808b6ec3c86623b612e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.4

Release history Release notifications | RSS feed

This release

21.3.0 This release

1 release file

21.1.0

1 release file

0.75.0

1 release file

0.74.0

1 release file

0.24.2

1 release file

0.24.1

1 release file

0.24.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page