PyMuPDF 1.22.3__tar.gz → 1.23.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/PKG-INFO +67 -17
- PyMuPDF-1.22.3/PyMuPDF.egg-info/PKG-INFO → PyMuPDF-1.23.0rc1/README.md +58 -35
- PyMuPDF-1.23.0rc1/READMErb.md +6 -0
- PyMuPDF-1.23.0rc1/changes.txt +1820 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/_config.h +1 -1
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/fitz.i +141 -47
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-annot.i +61 -67
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-defines.i +3 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-devices.i +91 -41
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-fields.i +92 -58
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-other.i +16 -21
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-pdfinfo.i +18 -2
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-python.i +77 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-select.i +2 -1
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-stext.i +2 -2
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/utils.py +19 -15
- PyMuPDF-1.23.0rc1/fitz/version.i +6 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/mupdf.tgz +0 -0
- PyMuPDF-1.23.0rc1/pipcl.py +1992 -0
- PyMuPDF-1.23.0rc1/pyproject.toml +7 -0
- PyMuPDF-1.23.0rc1/pytest.ini +3 -0
- PyMuPDF-1.23.0rc1/scripts/gh_release.py +354 -0
- PyMuPDF-1.22.3/setup.py → PyMuPDF-1.23.0rc1/setup-old.py +7 -11
- PyMuPDF-1.23.0rc1/setup.py +1136 -0
- PyMuPDF-1.23.0rc1/src/__init__.py +21522 -0
- PyMuPDF-1.23.0rc1/src/__main__.py +1136 -0
- PyMuPDF-1.23.0rc1/src/extra.i +4278 -0
- PyMuPDF-1.23.0rc1/src/fitz.py +1 -0
- PyMuPDF-1.23.0rc1/src/utils.py +5544 -0
- PyMuPDF-1.23.0rc1/tests/resources/full_toc.txt +48 -0
- PyMuPDF-1.23.0rc1/tests/resources/full_toc2.txt +48 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/symbols.txt +68 -82
- PyMuPDF-1.23.0rc1/tests/resources/test-2462.pdf +0 -0
- PyMuPDF-1.23.0rc1/tests/resources/test_2533.pdf +0 -0
- PyMuPDF-1.23.0rc1/tests/run_compound.py +88 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_docs_samples.py +12 -2
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_drawings.py +35 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_general.py +93 -6
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_insertpdf.py +10 -0
- PyMuPDF-1.23.0rc1/tests/test_textextract.py +73 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_toc.py +10 -3
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_widgets.py +42 -0
- PyMuPDF-1.23.0rc1/valgrind.supp +17 -0
- PyMuPDF-1.23.0rc1/wdev.py +321 -0
- PyMuPDF-1.22.3/PyMuPDF.egg-info/SOURCES.txt +0 -96
- PyMuPDF-1.22.3/PyMuPDF.egg-info/dependency_links.txt +0 -1
- PyMuPDF-1.22.3/PyMuPDF.egg-info/top_level.txt +0 -1
- PyMuPDF-1.22.3/README.md +0 -99
- PyMuPDF-1.22.3/fitz/version.i +0 -6
- PyMuPDF-1.22.3/pyproject.toml +0 -3
- PyMuPDF-1.22.3/setup.cfg +0 -4
- PyMuPDF-1.22.3/tests/resources/full_toc.txt +0 -1
- PyMuPDF-1.22.3/tests/test_textextract.py +0 -28
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/COPYING +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/MANIFEST.in +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/__init__.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/__main__.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-convert.i +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-fileobj.i +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-geo-c.i +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-geo-py.i +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-globals.i +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-pixmap.i +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-portfolio.i +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/fitz/helper-xobject.i +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/README.md +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/001003ED.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/1.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/2.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/3.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/4.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/Bezier.epub +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/PragmaticaC.otf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/bug1945.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/bug1971.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/circular-toc.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/github_sample.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/has-bad-fonts.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/image-file1.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/img-transparent.png +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/joined.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/metadata.txt +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/nur-ruhig.jpg +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/quad-calc-0.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/simple_toc.txt +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/symbol-list.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/test-2333.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/test2093.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/test2182.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/test2238.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/test_1645_expected.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/test_1645_expected_1.22.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/test_1824.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/test_2108.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/test_2270.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/type3font.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/v110-changes.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/resources/widgettest.pdf +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_annots.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_badfonts.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_crypting.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_embeddedfiles.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_extractimage.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_font.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_geometry.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_imagebbox.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_insertimage.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_linequad.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_metadata.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_nonpdf.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_object_manipulation.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_optional_content.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_pagedelete.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_pagelabels.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_pixmap.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_showpdfpage.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_story.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_textbox.py +0 -0
- {PyMuPDF-1.22.3 → PyMuPDF-1.23.0rc1}/tests/test_textsearch.py +0 -0
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PyMuPDF
|
|
3
|
-
Version: 1.
|
|
4
|
-
Summary: Python bindings for the PDF toolkit and renderer MuPDF
|
|
5
|
-
|
|
3
|
+
Version: 1.23.0rc1
|
|
4
|
+
Summary: Rebased Python bindings for the PDF toolkit and renderer MuPDF
|
|
5
|
+
Description-Content-Type: text/markdown
|
|
6
6
|
Author: Artifex
|
|
7
7
|
Author-email: support@artifex.com
|
|
8
8
|
License: GNU AFFERO GPL 3.0
|
|
9
|
-
Project-URL: Documentation, https://pymupdf.readthedocs.io/
|
|
10
|
-
Project-URL: Source, https://github.com/pymupdf/pymupdf
|
|
11
|
-
Project-URL: Tracker, https://github.com/pymupdf/PyMuPDF/issues
|
|
12
|
-
Project-URL: Changelog, https://pymupdf.readthedocs.io/en/latest/changes.html
|
|
13
9
|
Classifier: Development Status :: 5 - Production/Stable
|
|
14
10
|
Classifier: Intended Audience :: Developers
|
|
15
11
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -17,21 +13,25 @@ Classifier: Operating System :: MacOS
|
|
|
17
13
|
Classifier: Operating System :: Microsoft :: Windows
|
|
18
14
|
Classifier: Operating System :: POSIX :: Linux
|
|
19
15
|
Classifier: Programming Language :: C
|
|
16
|
+
Classifier: Programming Language :: C++
|
|
20
17
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
21
18
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
22
19
|
Classifier: Topic :: Utilities
|
|
23
20
|
Classifier: Topic :: Multimedia :: Graphics
|
|
24
21
|
Classifier: Topic :: Software Development :: Libraries
|
|
25
|
-
Requires-Python: >=3.
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
Requires-Python: >=3.8
|
|
23
|
+
Project-URL: Documentation, https://pymupdf.readthedocs.io/
|
|
24
|
+
Project-URL: Source, https://github.com/pymupdf/pymupdf
|
|
25
|
+
Project-URL: Tracker, https://github.com/pymupdf/PyMuPDF/issues
|
|
26
|
+
Project-URL: Changelog, https://pymupdf.readthedocs.io/en/latest/changes.html
|
|
28
27
|
|
|
29
|
-
# PyMuPDF 1.
|
|
28
|
+
# PyMuPDF 1.23.0rc1
|
|
30
29
|
|
|
31
30
|

|
|
32
31
|
|
|
33
32
|
|
|
34
|
-
Release date:
|
|
33
|
+
Release date: August 10, 2023
|
|
34
|
+
|
|
35
35
|
|
|
36
36
|
On **[PyPI](https://pypi.org/project/PyMuPDF)** since August 2016: [](https://pepy.tech/project/pymupdf)
|
|
37
37
|
|
|
@@ -42,9 +42,9 @@ On **[PyPI](https://pypi.org/project/PyMuPDF)** since August 2016: [![Downloads]
|
|
|
42
42
|
|
|
43
43
|
PyMuPDF adds Python bindings and abstractions to [MuPDF](https://mupdf.com/), a lightweight PDF, XPS, and eBook viewer, renderer, and toolkit. Both PyMuPDF and MuPDF are maintained and developed by Artifex Software, Inc.
|
|
44
44
|
|
|
45
|
-
MuPDF can access files in PDF, XPS, OpenXPS, CBZ, EPUB and FB2 (eBooks) formats, and it is known for its top performance and exceptional rendering quality.
|
|
45
|
+
MuPDF can access files in PDF, XPS, OpenXPS, CBZ, EPUB, MOBI and FB2 (eBooks) formats, and it is known for its top performance and exceptional rendering quality.
|
|
46
46
|
|
|
47
|
-
With PyMuPDF you can access files with extensions like `.pdf`, `.xps`, `.oxps`, `.cbz`, `.fb2` or `.epub`. In addition, about 10 popular image formats can also be handled like documents: `.png`, `.jpg`, `.bmp`, `.tiff`, etc.
|
|
47
|
+
With PyMuPDF you can access files with extensions like `.pdf`, `.xps`, `.oxps`, `.cbz`, `.fb2`, `.mobi` or `.epub`. In addition, about 10 popular image formats can also be handled like documents: `.png`, `.jpg`, `.bmp`, `.tiff`, `.svg` etc.
|
|
48
48
|
|
|
49
49
|
# Usage
|
|
50
50
|
For all supported document types (i.e. **_including images_**) you can
|
|
@@ -94,9 +94,9 @@ The latest changelog can be viewed [here](https://pymupdf.readthedocs.io/en/late
|
|
|
94
94
|
|
|
95
95
|
# Installation
|
|
96
96
|
|
|
97
|
-
PyMuPDF **requires Python 3.
|
|
97
|
+
PyMuPDF **requires Python 3.8 or later**.
|
|
98
98
|
|
|
99
|
-
For versions 3.
|
|
99
|
+
For versions 3.8 and up, Python wheels exist for **Windows** (32bit and 64bit), **Linux** (64bit, Intel and ARM) and **Mac OSX** (64bit, Intel only), so it can be installed from [PyPI](https://pypi.org/search/?q=pymupdf) in the usual way. To ensure pip support for the latest wheel platform tags, we strongly recommend to always upgrade pip first.
|
|
100
100
|
|
|
101
101
|
python -m pip install --upgrade pip
|
|
102
102
|
python -m pip install --upgrade pymupdf
|
|
@@ -113,11 +113,61 @@ Older wheels - also with support for older Python versions - can be found [here]
|
|
|
113
113
|
|
|
114
114
|
> **Note:** If `pip` cannot find a wheel that is compatible with your platform, it will automatically build and install from source using the PyMuPDF sdist; this requires only that SWIG is installed on your system.
|
|
115
115
|
|
|
116
|
+
|
|
117
|
+
# Alternative 'rebased' implementation.
|
|
118
|
+
|
|
119
|
+
A new implementation of PyMuPDF is available as module `fitz_new`.
|
|
120
|
+
|
|
121
|
+
*
|
|
122
|
+
Uses the [MuPDF C++ and Python
|
|
123
|
+
APIs](https://mupdf.readthedocs.io/en/latest/language-bindings.html)
|
|
124
|
+
instead of the MuPDF C API.
|
|
125
|
+
|
|
126
|
+
* Use as a drop-in replace with: `import fitz_new as fitz`
|
|
127
|
+
|
|
128
|
+
## Benefits
|
|
129
|
+
|
|
130
|
+
* Access to the underlying MuPDF Python API.
|
|
131
|
+
|
|
132
|
+
The MuPDF Python API is available as `fitz_new.mupdf` - this is not possible
|
|
133
|
+
with native PyMuPDF, and can give useful flexibility to the user.
|
|
134
|
+
|
|
135
|
+
* Simplified implementation.
|
|
136
|
+
|
|
137
|
+
The underlying MuPDF C++/Python APIs' automated reference counting, automatic
|
|
138
|
+
contexts, and native C++ and Python exceptions, make the implementation
|
|
139
|
+
simpler than classic PyMuPDF.
|
|
140
|
+
|
|
141
|
+
This also simplifies development of new PyMuPDF functionality.
|
|
142
|
+
|
|
143
|
+
* Optional tracing of MuPDF C function calls using environment variables.
|
|
144
|
+
|
|
145
|
+
This is a feature of the MuPDF C++ and Python APIs, which can be
|
|
146
|
+
very useful during development and when reporting bugs. See:
|
|
147
|
+
<https://mupdf.readthedocs.io/en/latest/language-bindings.html#environmental-variables>
|
|
148
|
+
|
|
149
|
+
* Possible future support for multithreaded use.
|
|
150
|
+
|
|
151
|
+
Classic PyMuPDF is explicitly single-threaded, but the MuPDF C++/Python APIs
|
|
152
|
+
have automated per-thread contexts.
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
## Known issues
|
|
156
|
+
|
|
157
|
+
*
|
|
158
|
+
`import fitz_new` is known to fail with a SEGV on Windows with Python-3.10.
|
|
159
|
+
|
|
160
|
+
# Secondary wheel `PyMuPDFb`
|
|
161
|
+
|
|
162
|
+
Installation of PyMuPDF with pip will automatically install a second
|
|
163
|
+
wheel called `PyMuPDFb` containing Python-independent libraries.
|
|
164
|
+
|
|
165
|
+
|
|
116
166
|
# License and Copyright
|
|
117
167
|
|
|
118
168
|
PyMuPDF and MuPDF are available under both, open-source AGPL and commercial license agreements.
|
|
119
169
|
|
|
120
|
-
Please read the full text of the [AGPL license agreement](https://www.gnu.org/licenses/agpl-3.0.html) (which is also included here in file COPYING) to ensure that your use case complies with the guidelines of this license. If you determine you cannot meet the requirements of the AGPL, please contact [Artifex](https://artifex.com/contact/) for more information regarding a commercial license.
|
|
170
|
+
Please read the full text of the [AGPL license agreement](https://www.gnu.org/licenses/agpl-3.0.html) (which is also included here in file COPYING) to ensure that your use case complies with the guidelines of this license. If you determine you cannot meet the requirements of the AGPL, please contact [Artifex](https://artifex.com/contact/pymupdf-inquiry.php) for more information regarding a commercial license.
|
|
121
171
|
|
|
122
172
|
Artifex is the exclusive commercial licensing agent for MuPDF.
|
|
123
173
|
|
|
@@ -1,37 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
Name: PyMuPDF
|
|
3
|
-
Version: 1.22.3
|
|
4
|
-
Summary: Python bindings for the PDF toolkit and renderer MuPDF
|
|
5
|
-
Home-page: https://github.com/pymupdf/PyMuPDF
|
|
6
|
-
Author: Artifex
|
|
7
|
-
Author-email: support@artifex.com
|
|
8
|
-
License: GNU AFFERO GPL 3.0
|
|
9
|
-
Project-URL: Documentation, https://pymupdf.readthedocs.io/
|
|
10
|
-
Project-URL: Source, https://github.com/pymupdf/pymupdf
|
|
11
|
-
Project-URL: Tracker, https://github.com/pymupdf/PyMuPDF/issues
|
|
12
|
-
Project-URL: Changelog, https://pymupdf.readthedocs.io/en/latest/changes.html
|
|
13
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
-
Classifier: Intended Audience :: Developers
|
|
15
|
-
Classifier: Intended Audience :: Information Technology
|
|
16
|
-
Classifier: Operating System :: MacOS
|
|
17
|
-
Classifier: Operating System :: Microsoft :: Windows
|
|
18
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
19
|
-
Classifier: Programming Language :: C
|
|
20
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
21
|
-
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
22
|
-
Classifier: Topic :: Utilities
|
|
23
|
-
Classifier: Topic :: Multimedia :: Graphics
|
|
24
|
-
Classifier: Topic :: Software Development :: Libraries
|
|
25
|
-
Requires-Python: >=3.7
|
|
26
|
-
Description-Content-Type: text/markdown
|
|
27
|
-
License-File: COPYING
|
|
28
|
-
|
|
29
|
-
# PyMuPDF 1.22.3
|
|
1
|
+
# PyMuPDF 1.23.0rc1
|
|
30
2
|
|
|
31
3
|

|
|
32
4
|
|
|
33
5
|
|
|
34
|
-
Release date:
|
|
6
|
+
Release date: August 10, 2023
|
|
7
|
+
|
|
35
8
|
|
|
36
9
|
On **[PyPI](https://pypi.org/project/PyMuPDF)** since August 2016: [](https://pepy.tech/project/pymupdf)
|
|
37
10
|
|
|
@@ -42,9 +15,9 @@ On **[PyPI](https://pypi.org/project/PyMuPDF)** since August 2016: [![Downloads]
|
|
|
42
15
|
|
|
43
16
|
PyMuPDF adds Python bindings and abstractions to [MuPDF](https://mupdf.com/), a lightweight PDF, XPS, and eBook viewer, renderer, and toolkit. Both PyMuPDF and MuPDF are maintained and developed by Artifex Software, Inc.
|
|
44
17
|
|
|
45
|
-
MuPDF can access files in PDF, XPS, OpenXPS, CBZ, EPUB and FB2 (eBooks) formats, and it is known for its top performance and exceptional rendering quality.
|
|
18
|
+
MuPDF can access files in PDF, XPS, OpenXPS, CBZ, EPUB, MOBI and FB2 (eBooks) formats, and it is known for its top performance and exceptional rendering quality.
|
|
46
19
|
|
|
47
|
-
With PyMuPDF you can access files with extensions like `.pdf`, `.xps`, `.oxps`, `.cbz`, `.fb2` or `.epub`. In addition, about 10 popular image formats can also be handled like documents: `.png`, `.jpg`, `.bmp`, `.tiff`, etc.
|
|
20
|
+
With PyMuPDF you can access files with extensions like `.pdf`, `.xps`, `.oxps`, `.cbz`, `.fb2`, `.mobi` or `.epub`. In addition, about 10 popular image formats can also be handled like documents: `.png`, `.jpg`, `.bmp`, `.tiff`, `.svg` etc.
|
|
48
21
|
|
|
49
22
|
# Usage
|
|
50
23
|
For all supported document types (i.e. **_including images_**) you can
|
|
@@ -94,9 +67,9 @@ The latest changelog can be viewed [here](https://pymupdf.readthedocs.io/en/late
|
|
|
94
67
|
|
|
95
68
|
# Installation
|
|
96
69
|
|
|
97
|
-
PyMuPDF **requires Python 3.
|
|
70
|
+
PyMuPDF **requires Python 3.8 or later**.
|
|
98
71
|
|
|
99
|
-
For versions 3.
|
|
72
|
+
For versions 3.8 and up, Python wheels exist for **Windows** (32bit and 64bit), **Linux** (64bit, Intel and ARM) and **Mac OSX** (64bit, Intel only), so it can be installed from [PyPI](https://pypi.org/search/?q=pymupdf) in the usual way. To ensure pip support for the latest wheel platform tags, we strongly recommend to always upgrade pip first.
|
|
100
73
|
|
|
101
74
|
python -m pip install --upgrade pip
|
|
102
75
|
python -m pip install --upgrade pymupdf
|
|
@@ -113,11 +86,61 @@ Older wheels - also with support for older Python versions - can be found [here]
|
|
|
113
86
|
|
|
114
87
|
> **Note:** If `pip` cannot find a wheel that is compatible with your platform, it will automatically build and install from source using the PyMuPDF sdist; this requires only that SWIG is installed on your system.
|
|
115
88
|
|
|
89
|
+
|
|
90
|
+
# Alternative 'rebased' implementation.
|
|
91
|
+
|
|
92
|
+
A new implementation of PyMuPDF is available as module `fitz_new`.
|
|
93
|
+
|
|
94
|
+
*
|
|
95
|
+
Uses the [MuPDF C++ and Python
|
|
96
|
+
APIs](https://mupdf.readthedocs.io/en/latest/language-bindings.html)
|
|
97
|
+
instead of the MuPDF C API.
|
|
98
|
+
|
|
99
|
+
* Use as a drop-in replace with: `import fitz_new as fitz`
|
|
100
|
+
|
|
101
|
+
## Benefits
|
|
102
|
+
|
|
103
|
+
* Access to the underlying MuPDF Python API.
|
|
104
|
+
|
|
105
|
+
The MuPDF Python API is available as `fitz_new.mupdf` - this is not possible
|
|
106
|
+
with native PyMuPDF, and can give useful flexibility to the user.
|
|
107
|
+
|
|
108
|
+
* Simplified implementation.
|
|
109
|
+
|
|
110
|
+
The underlying MuPDF C++/Python APIs' automated reference counting, automatic
|
|
111
|
+
contexts, and native C++ and Python exceptions, make the implementation
|
|
112
|
+
simpler than classic PyMuPDF.
|
|
113
|
+
|
|
114
|
+
This also simplifies development of new PyMuPDF functionality.
|
|
115
|
+
|
|
116
|
+
* Optional tracing of MuPDF C function calls using environment variables.
|
|
117
|
+
|
|
118
|
+
This is a feature of the MuPDF C++ and Python APIs, which can be
|
|
119
|
+
very useful during development and when reporting bugs. See:
|
|
120
|
+
<https://mupdf.readthedocs.io/en/latest/language-bindings.html#environmental-variables>
|
|
121
|
+
|
|
122
|
+
* Possible future support for multithreaded use.
|
|
123
|
+
|
|
124
|
+
Classic PyMuPDF is explicitly single-threaded, but the MuPDF C++/Python APIs
|
|
125
|
+
have automated per-thread contexts.
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
## Known issues
|
|
129
|
+
|
|
130
|
+
*
|
|
131
|
+
`import fitz_new` is known to fail with a SEGV on Windows with Python-3.10.
|
|
132
|
+
|
|
133
|
+
# Secondary wheel `PyMuPDFb`
|
|
134
|
+
|
|
135
|
+
Installation of PyMuPDF with pip will automatically install a second
|
|
136
|
+
wheel called `PyMuPDFb` containing Python-independent libraries.
|
|
137
|
+
|
|
138
|
+
|
|
116
139
|
# License and Copyright
|
|
117
140
|
|
|
118
141
|
PyMuPDF and MuPDF are available under both, open-source AGPL and commercial license agreements.
|
|
119
142
|
|
|
120
|
-
Please read the full text of the [AGPL license agreement](https://www.gnu.org/licenses/agpl-3.0.html) (which is also included here in file COPYING) to ensure that your use case complies with the guidelines of this license. If you determine you cannot meet the requirements of the AGPL, please contact [Artifex](https://artifex.com/contact/) for more information regarding a commercial license.
|
|
143
|
+
Please read the full text of the [AGPL license agreement](https://www.gnu.org/licenses/agpl-3.0.html) (which is also included here in file COPYING) to ensure that your use case complies with the guidelines of this license. If you determine you cannot meet the requirements of the AGPL, please contact [Artifex](https://artifex.com/contact/pymupdf-inquiry.php) for more information regarding a commercial license.
|
|
121
144
|
|
|
122
145
|
Artifex is the exclusive commercial licensing agent for MuPDF.
|
|
123
146
|
|