Documents and knowledge · Edition No. 37 · 1 Oct 2026

pymupdf/PyMuPDF

Reads, edits and renders PDFs from Python on the MuPDF engine, with text coordinates and page images that the permissive alternatives cannot produce.

← Documents and knowledgeRead the whole edition →

10,797 stars · AGPL-3.0 (plus a commercial licence sold separately by Artifex) · 1.28.2 (2026-08-06), confirmed by the PyPI RSS release feed · Track this in Scout

Reads, edits and renders PDFs from Python on the MuPDF engine, with text coordinates and page images that the permissive alternatives cannot produce.

▶Repo detailsthe review · specs · pros & cons · install

What it is

PyMuPDF is a Python library wrapping MuPDF, the PDF and document engine written by Artifex Software. The same company maintains both, which is why the two stay in step.

What it is good for. Anyone whose work starts with a pile of PDFs. It is the fastest of the common Python options by a wide margin, and almost the only one that will also render a page to an image, which is what you need before any optical character recognition or any model that reads pictures. It also reports the position of every piece of text, so you can tell a heading from a footnote, which is the step that makes an extracted document usable rather than a wall of words.

Stars10,797
LicenceAGPL-3.0 (plus a commercial licence sold separately by Artifex)
Latest1.28.2 (2026-08-06), confirmed by the PyPI RSS release feed
Good
  • Speed and range in one package: text extraction with coordinates, page rendering, drawing, redaction, form fields, splitting and merging, and more document formats than PDF alone.
  • Pre-built packages for Windows, Linux and macOS on both Intel and ARM, tested on Python 3.9 to 3.14, and each one built against Python's stable interface from 3.10 so it keeps working on later versions. Install is one line and needs no compiler.
  • Everything runs on the machine you install it on. The documentation makes a point of this: there is no cloud service in the path, which matters when the documents are not yours to upload.
Watch for
  • The licence is the whole decision, and it is the opposite of the two alternatives below. Read from /blob/main/COPYING — not from a LICENSE file — it is the unmodified GNU Affero General Public License v3. The README's own words are that it is "Free for open-source projects" with "separate commercial licences available from Artifex for proprietary applications." In plain terms: if the program you build is itself open source, nothing to pay; if it is not, you need to buy a licence from Artifex. pikepdf/pikepdf, covered in Edition 35, is MPL-2.0 and carries no such condition.
  • The published version depends on where you look. The Python package index's project page headlines 1.27.2.3, dated 24 April 2026, as the newest. Its own release feed, for the same package, lists 1.28.0 on 29 June 2026 and 1.28.2 on 6 August 2026 above it, and GitHub's own latest-release page also gives 1.28.2 on 6 August 2026. Two sources against one, and the project page is the odd one out. This edition quotes 1.28.2 and prints the disagreement rather than hiding it.
  • If no pre-built package fits your machine, the installer falls back to building from source, which needs C and C++ development tools and will download and compile MuPDF itself. On Windows that means installing Visual Studio. It is also a library and not a program: there is nothing to open and nothing to click.
Similar repositories
  • py-pdf/pypdf

    Pure Python with nothing compiled, so it installs anywhere without a compiler and carries a permissive BSD licence, but it is much slower on large files and cannot render a page to an image.

    Track this in Scout
  • pikepdf/pikepdf

    Edition 35 covered this: also fast and also built on a C++ engine, with an MPL-2.0 licence that has no commercial condition, but it does not render pages and does not extract reading order.

    Track this in Scout
  • pdfminer/pdfminer.six

    A community fork focused narrowly on getting text and its layout out of a PDF, with an MIT licence and no editing, drawing or rendering at all.

    Track this in Scout
Install
python3 -m venv venv
source venv/bin/activate        # on Windows: venv\Scripts\activate
pip install --upgrade pymupdf
python3 -c "import pymupdf; print(pymupdf.__doc__)"
Screenshots
pymupdf/PyMuPDF: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.