MuPDF consists of a software library, command line tools, and viewers for various platforms.

The renderer in MuPDF is tailored for high quality anti-aliased graphics. It renders text with metrics and spacing accurate to within fractions of a pixel for the highest fidelity in reproducing the look of a printed page on screen.

The viewer is small, fast, yet complete. It supports many document formats, such as PDF, XPS, OpenXPS, CBZ, EPUB, and FictionBook 2. You can annotate PDF documents and fill out forms with the mobile viewers (this feature is coming soon to the desktop viewer as well).

The command line tools allow you to annotate, edit, and convert documents to other formats such as HTML, SVG, PDF, and CBZ. You can also write scripts to manipulate documents using Javascript. The library is written modularly in portable C, so features can be added and removed by integrators if they so desire. We also have a Java library using JNI that works on both Oracle's Java and Android.

What's New

New features:

  • New WASM library with same API as mutool run and Java, for both browser and Node environments.
  • Support CropBox, TrimBox, BleedBox, and ArtBox in PDF tools and viewers.
  • PhotoShop PSD image support.
  • mupdf-gl: Custom ICC display profile support.
  • mutool poster: Option to split in RTL direction.

Miscellaneous improvements and notable bug fixes:

  • EPUB: Fix table cell height calculations.
  • EPUB: Inherit table cell background color from table row.
  • EPUB: Support files with partial encryption (only read unencrypted parts).
  • EPUB: Support files with incorrect directory prefixes.
  • TIFF: Stability improvements.
  • MOBI: Stability improvements.
  • PDF: Support old style border dash patterns.
  • PDF: Support GoToR links to remote PDF documents.
  • PDF: Improve link parsing and creation.
  • ZIP: Improve unicode file name handling.
  • Fall back to unhinted fonts if hints are broken.
  • Recognize document types by sniffing contents (don't need to rely on mimetype or file extension).

New APIs:

  • More PDF document permission flags.
  • Tweaked exception error logging.
  • pdf_minimize_document to squeeze amount of memory used by an open document.

Incompatible API changes:

  • pdf_field_name renamed to pdf_load_field_name.
  • mutool run: Changed many methods to match Java and new WASM library.

New and improved documentation.