MuPDF 1.28.5: an open source document engine with nineteen subcommands for rendering, conversion and signing

Summary

MuPDF 1.28.5 is an AGPL document engine that reads PDF, XPS, EPUB and comic archives, ships a light viewer called mupdf-gl, and bundles nineteen command line tools for rendering, conversion and signing. The tag was cut on 25 September 2026.

Recommend
Name
MuPDF
Version
1.28.5
Pricing
Free
Open source
Open source
Operating system
WindowsLinuxmacOSAndroid
Updated
2026-10-20 01:26

Most tools that touch PDF files want to be an application. MuPDF behaves like an engine: a C library, a set of command line programs, and one light viewer. That choice explains both what it does well and why the first hour with it feels unlike opening a commercial reader.

An engine more than an application

The official documentation opens with a definition: MuPDF is an open source software framework for viewing, converting and manipulating PDF, XPS and ebook documents. Three layers sit around it, namely viewer programs for each platform, a group of command line tools, and a library that other people build tools and applications on.

That shape decides how it gets used. Installing it does not produce a finished interface like a commercial reader; the everyday pattern is typing a command in a terminal, or calling the interface from inside your own program. The desktop viewer mupdf-gl does exist, but its aims are reading, annotating and redacting, not making the page look handsome.

screenshot

What 1.28.5 brought

The current version is 1.28.5, tagged on 25 September 2026 and belonging to the 1.28 line.

Markdown gained support as a document format. The command line gained mutool audit, which analyses the structure of a PDF and produces a report, useful when working out why a file refuses to open. Text extraction changed in a batch of details, among them the distinction between soft and hard hyphens, the breaking up of ligatures, recognition of paragraph indentation and detection of fake bold. EPUB and HTML rendering picked up vertical-align, underline, strikethrough and highlight, along with the :before and :after pseudo elements. fz_check_document arrived as well: it scans a document first and repairs likely structural faults, so that a file is not silently repaired halfway through an edit and the changes lost with it.

The option interface changed too, and decrypt among the PDF writing options is now marked deprecated in favour of encrypt=none.

mutool, nineteen subcommands

The command line tools gather behind a single entry that the documentation calls a Swiss army knife. There are nineteen subcommands: draw renders a document to an image, convert changes format, clean rewrites and tidies, extract pulls out images and fonts, merge combines files, pages adds and removes pages, poster slices a page into tiles, recolor maps colours, sign applies a digital signature, barcode generates barcodes, trim cuts margins, info reports on the file, show prints low level objects, run executes a JavaScript script, grep searches text with a regular expression, trace follows drawing instructions, create builds a fresh PDF, bake flattens annotations and forms, and audit performs the structural analysis.

In daily work draw and convert carry the load. The first handles rendering and writes bitmaps; the second handles format change, turning an EPUB into a PDF or breaking a PDF into HTML plus its images.

Subcommand

What it does

draw

Renders a document into an image

convert

Changes the format, EPUB to PDF or PDF to HTML

clean

Rewrites and tidies the file

extract

Pulls images and fonts out

merge

Joins several documents into one

pages

Adds, removes or reorders pages

poster

Slices a page into printable tiles

recolor

Maps colours onto another palette

sign

Applies or verifies a digital signature

barcode

Generates a barcode

trim

Cuts the margins down

info

Reports what the file contains

show

Prints the low level objects

run

Executes a JavaScript script

grep

Searches text with a regular expression

trace

Follows the drawing instructions

create

Builds a fresh PDF

bake

Flattens annotations and forms

audit

Analyses the structure and reports

The mupdf-gl viewer

The main desktop viewer is called mupdf-gl, and it opens PDF, XPS, CBZ, EPUB and FB2, along with the common bitmap formats and SVG. The feature list is not thin: a sidebar outline, full Unicode search, annotation editing and redaction all sit inside.

Several command line arguments are worth knowing: an inverted colour mode, an ICC profile, a scale factor for the interface, page width and height plus font size for EPUB layout, and a switch that overlays an external style sheet on the publisher's. Anyone reading for long stretches tends to leave the inverted mode on.

Windows carries an older win32 viewer and X11 environments carry mupdf-x11, both a step behind mupdf-gl in features. For macOS the documentation says it compiles the same way as on Linux but no standard viewer is provided, so on a Mac it is mostly a library and a set of command line tools.

Formats it knows

The official input list names nine groups: PDF, XPS and OpenXPS, EPUB (2.0 without DRM, with only limited support for 3.0), Mobipocket MOBI, FictionBook 2 FB2, comic archives CBZ and CBT, common bitmaps such as TIFF, JPEG and PNG, a limited subset of SVG, and the Markdown added in 1.28.

Output covers PDF, plain text, HTML, PostScript, PCL5 and PCLM, PWG and CUPS, PNG and SVG. Both directions are reasonably complete.

screenshot

Redaction and signing

Redaction here is not a black bar laid over the page. It removes the content of the selected area from the file itself, handling pixels and text together, so a word that was removed cannot be copied out afterwards. In publishing to outsiders and in archiving with sensitive material, that difference is a hard requirement.

Digital signatures go through mutool sign, which both applies and verifies one, confirming whether a document was touched after signing.

The developer side

The core is a C library and every binding grows on top of it. Python gets PyMuPDF, aimed at data extraction and analysis; JavaScript and TypeScript get MuPDF.js, which runs inside Node; C# has a corresponding wrapper. For embedding a viewer in a web page, the vendor sells a separate product line under a commercial licence.

On 19 October 2026 PyMuPDF shipped 2.0, mostly a batch of fixes: hyphen handling in excerpts, the position of header annotations after a page rotation, and several memory and rendering regressions. Complete platform packages appeared in the package index the same day.

The licence, and two roads

The open source side is GNU AGPL. The documentation states it clearly: the licence allows free use in a project, but it attaches a number of conditions, one of which is publishing the complete source of any system built on it. A closed source product that will not publish its source has to take the other road, a commercial licence, and buying that lifts the AGPL constraints entirely.

One more sentence is worth copying out: the software is provided as is, without warranty of any kind and without support. Anyone putting it into production should count that into the cost beforehand.

Where it fits, and where it does not

For batch work over a pile of PDFs, pulling text, splitting and merging pages, rendering to images, running a structural check, the command line is far more efficient than a graphical interface, one command against one directory. For rendering or parsing inside your own program, it is a ready engine at the bottom layer, and the bindings are broad enough.

Turn it around and ask for a reader that opens on a double click with a pleasant interface, and it is the wrong tool: the desktop viewer leans towards complete features rather than refined interaction and typography, and on a Mac there is not even a default viewer.

MuPDF's value sits at the engine layer: nine input groups, nineteen subcommands, a viewer that can redact and sign, plus the double licence of AGPL and commercial terms. It is not reading software for ordinary users; it is a set of low level parts for people who need to process documents in bulk or build their own tools.

MuPDFDownload
Supported systems: Windows Linux macOS Android