File: README.rst

package info (click to toggle)
python-poppler-qt5 21.3.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 280 kB
  • sloc: python: 424; makefile: 11
file content (74 lines) | stat: -rw-r--r-- 2,483 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
==================
python-poppler-qt5
==================

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.