a lightweight PDF and XPS viewer
MuPDF 1.4 (2014-04-14)
The 1.4 release is here!
MuPDF 1.4 RC1 (2014-04-07)
The 1.4 release is almost here!
- CMYK rendering (mudraw PWG and PAM formats)
- TIFF viewer (with multi-page support).
- X11: Horizontal scroll wheel support.
- X11: Status bar display with warnings.
- Android: Digital signatures.
- iOS: Reflow mode.
- WinRT: Printing.
- WinRT: Improved zooming behaviour.
- mudraw: Banded rendering with -B band-height.
- mudraw: Select output format with -F format.
- mudraw: Write to stdout if you use '-' as the output file name.
- mudraw: Add TGA output format.
- mudraw: Improved SVG output.
- mutool show: Write output to file instead of stdout with -o filename.
- mutool clean: Clean content streams with -s option.
- Improved font handling.
- Form fields.
- Free text.
- Sticky notes.
- glyph cache: Partial eviction.
- glyph cache: Run-length compressed glyphs.
- Smarter handling of subpixel metrics in text rendering.
- Optimized blitting functions.
- Optimized gradient mesh drawing.
API changes and additions:
- fz_stream API reworked: replace "read" function with "next".
- "Rebind" functions to associate context bound objects with another context:
fz_output, fz_stream, fz_device and fz_document.
- Introduce "document handlers" to detect and open different file types.
- Must now call fz_register_document_handlers() to register the defaults.
- May register your own handlers as well to work with fz_open_document.
- Hook to load system fonts: fz_install_load_system_font_funcs.
- PDF xref cache flushing functions (mark/clear/clear-to-mark).
- Add our own "printf" set of functions to format strings and write to fz_output:
- Format %f as short as possible while preserving precision.
- Has %C for formatting a unicode character as UTF-8.
- Has %M to format fz_matrix.
- Has %R to format fz_rect.
- Has %q and %( to format strings with escaped characters.
- PDF process interface: allow PDF interpreter to do more than just draw!
- Content stream state cleaning filter.
- Content stream rewriting filter.
- PDF digital signatures.
- Stroke states may now be stored on the stack.
- Improved fz_path internals.
- Gradient mesh drawing interface has been improved.
- Save files with incremental updates.
MuPDF 1.3 (2013-08-15)
The 1.3 release is here!
MuPDF 1.3 RC1 (2013-07-26)
The 1.3 release is almost here! This version has a lot of changes.
- Windows RT viewer app for MuPDF.
- MuPDF now opens JPEG, TIFF and PNG files directly.
- PWG raster (mono/grey/rgb) and PCL (mono) output devices.
- Improved source directory structure and header file layout.
- Android app now supports Google Cloud Print.
- Android app translated into many languages.
- Android support for more architectures.
Exciting new features (still in beta, use with care!):
- Library changes to support progressive loading (display PDF files as
they download). Windows/Linux/MacOS viewer supports this using curl.
- Incremental updates to PDF files are now (optionally) preserved on
- Prototype support for checking PDF Digital Signatures.
- Initial annotation support (strike-out, underline, highlight and ink)
(library and android builds only).
- Initial (feature incomplete) SVG and PDF output devices.
- Improvements to store (avoid collisions causing unnecessary evictions).
- Caching of rendered tiles for speed.
- PDF image handling improved; images can now be passed to devices without decompression.
- PDF function handling improved; functions can now be passed to devices without 'sampling'.
- Indexed images are no longer uncompressed at load time, saving memory.
- Various performance improvements (including tilings and mesh based shadings).
- Android redraw optimisations.
- Windows apps use Unicode filenames now.
- Improved text analysis mode, capable of spotting columns/indents, right-to-left text etc.
- HTML output mode now includes image output.
- Fix operation on Android API level 8.
- PDF password encoding handling improved.
- Bug preventing OpenXPS files from being opened fixed.
- Various potential SEGV, SoftMask and rendering fixes.
- Many potential crashes in Jpeg2000 and JBIG2 images fixed.
Download the release candidate here!
MuPDF 1.2 (2013-02-27)
The 1.2 release is here! This version adds significant new
functionality, improved stability and performance improvements.
- Change licensing terms to GNU AGPL (from GNU GPL).
- Much enhanced Android application. Now on Google Play!
- Move to using git submodules for third party libraries.
- Renamed 'mubusy' to 'mutool'.
- PDF 1.7 Extension Level 8 encryption implemented.
- Oversized and stroke text clipping implemented.
- Prototype transition support.
API improvements and changes:
- Add fz_open_document_with_stream to allow non-file based operation.
- Text searching API.
- Highlight and copy text selection API.
- Pass matrices and rectangles by reference for improved performance.
- Change shadings to decompose at render times; massive memory savings.
- Performance enhancements for color conversion and fax decompression.
- ARM optimisations for color conversion and bitmap scaling.
- Bitmap subsampling stage introduced, with ARM optimisations.
- Type 3 fonts; glyphs are now handled as display lists.
- Scan converter performance improvements.
- Fix many SEGVs with out of spec files.
- Various rendering fixes.
MuPDF Technology Preview release (2012-11-09)
We are proud to announce the availability of a
technology preview release
of MuPDF, that supports interactive features such as form form filling,
MuPDF 1.1 (2012-08-16)
The 1.1 release is here!
MuPDF 1.1 RC1 (2012-08-08)
The 1.1 release is almost here! This version is mainly a stability and bug fix
The command line tools have been combined into one tool that does all: mubusy.
Where previously you would have called "mupdfclean blah blah blah", now
call "mubusy clean blah blah blah" instead.
- Rendering bugs fixed (text clipping, stroked text etc).
- Better handling of 'large' (uncachable) glyphs.
- Added a delete button to the library view on the iOS port.
- Minor speed optimisations.
- Shading bug fixes.
- Move to using dynamically allocated parsing buffers (more resilient).
- Support for UserUnits.
- Fix bugs with image predictors (including with 16 bit images).
- More resilient to out of spec files.
- Extract pdf writing capability into the library from pdfclean, and
expand on it to allow for linearisation. Bug fixes in the garbage
collection of unused objects.
- Improve pdf writing recognition of images.
- Improved font matching.
- Start to move away from macros to inline functions (helpful for
applications requiring certification).
- Many bugs fixed.
MuPDF 1.0 (2012-04-24)
The 1.0 release is here!
MuPDF 1.0 RC1 (2012-03-29)
The 1.0 release rapidly approaches! This version brings with it a whole host
of features, including:
- An example Android application (for Android 2.3 and above). Not available
from the Android Market/Google Play yet, but soon. For now, download it from
- Removal of all global variables: we now pass a context pointer through the
code freeing us from the use of globals within the library.
- Multi-threaded operation: while MuPDF does not require a thread library,
hooks are in place so that if one is used, significant speedups can be gained
from using multiple cores to render.
- New error handling: a portable exception-like system is used to allow
neater handling of errors. This leads to more stability and better resilience
to broken files.
- Public/Private API: the API has undergone a significant revision (required
by some of the above changes, plus renaming/revising for clarity and
consistency), and has been split into public and private headers. The plan is
that the public portion of the API should remain much more static in future.
- Improved Text Extraction device: a cleaner API to the experimental text
extraction device, offering a list of styles, and more cleanly delineated
- Documentation: All public header entry points/structures are now
documented and overviews of how to call the library to render pages both in
single and multi-threaded mode are given.
- A new scavenging memory manager; makes much better use of the memory
available by freeing cached items 'just in time'.
- Many, many, bugfixes.
This is such a large and significant version that we're doing a release
candidate first to allow us to correct any obvious bugs that are found.
Please try it and let us know how you get on!
MuPDF for iOS (2011-12-06)
You can now use MuPDF on the iPad and iPhone!
You'll need iOS 5.0 or later.
from the App Store.
MuPDF 0.9 (2011-09-05)
This is a bug fix and stability release. No new features to report.
There is experimental support for Isolated and Knockout transparency
groups, that can be enabled if you compile from source.
MuPDF 0.8.165 – now with XPS (2011-04-29)
The Open XML Paper Specification is a page description language
developed by Microsoft. XPS is used extensively in the Vista and
Windows 7 printing pipeline. The XPS Document Writer is a virtual
printer that works like Acrobat distiller, but is integrated in
Windows and creates XPS documents.
We now proudly announce that MuPDF can read these XPS documents!
Other notable improvements:
A big renaming scrub to increase legibility of the code: we no longer
use names with runtogetherwords, instead we separate them with underscores.
We've added a tiling pattern cache to the graphics library.
Pages that use repeating patterns will run much faster than before –
sometimes hundreds of times faster.
Halftoning: pdfdraw can now generate halftoned monochrome PBM images.
Tunable anti-aliasing (mainly for use with halftoned rendering).
A special fast path for rendering grayscale images to rgb devices
without doing a pointless color conversion first.
The windows project now has a batch file to generate the font and cmap
source files, so the mupdf-pregen.zip file is not needed anymore.
Darcs to Git (2011-03-22)
We have changed the version control system used for MuPDF
from darcs to git. The old darcs repository has been converted
to git. This new git repository is not compatible with the old
experimental git mirror.
MuPDF 0.8.15 (2011-03-15)
This is a minor bug fix release to fix an issue where
text was copied from a different place than the selected area.
MuPDF 0.8 (2011-03-03)
We have improved the image scaling code. We now use an algorithm based on a
Graphics Gem when downscaling images, and simple bilinear interpolation when
magnifying images. The results are vastly improved legibility of documents
which use images containing text. This includes documents created by
scanning or photographing a physical document, but also many academic papers
using type 3 bitmap fonts, such as those created by old versions of LaTeX.
MuPDF will now display PDF annotations when rendering a page.
Transparency support for blend modes and in particular soft masks has been
improved, along with many bug fixes, improved conformance, and optimizations to
the colorspace and function parsing code.
We can now read PDF documents using 256-bit encryption (AESv3).
The CMap data structures have been squeezed to reduce the memory footprint of
the character map tables by about 500K. The CJK fallback font has also been
updated to a newer version with more characters.
MuPDF has a new logo!
MuPDF 0.7 (2010-08-24)
We have finally implemented transparency blend modes and soft masks in the
renderer. This support is still a experimental, but works for the most common
A grayscale mode renderer has been added. Pdfdraw can output grayscale images
with the -g flag. The mupdf viewer application will switch between grayscale
and color rendering if you press the 'c' key.
The heuristics for text extraction have been tweaked. Search and copying should
now detect word separation and line breaks more reliably.
The internal paint functions in the renderer have been rewritten as part of
adding transparency support, and should now be a lot simpler and have fewer
variants. Likewise the compression and stream filter architecture finally got
the cleaning up it has been in need of for a long time.
MuPDF 0.6 (2010-06-02)
This version has undergone a significant rewrite of the renderer. We are
no longer tied to a display tree architecture. The PDF parser calls a device
interface with all the graphics objects it sees. There are a few different
devices implemented: the draw device which renders the objects to an image, the
text device which extracts the textual content, and a display list device which
simply records all the objects for playback to another device at another time.
The old build system that used Jam has been replaced with GNU Makefiles. We
have packaged up all third party libraries into a zip file. If you unzip this
package in the source directory, the makefile will pick them up and build them
as part of MuPDF. This makes it a lot easier to build on windows and on other
systems where you haven't installed all of the libraries that MuPDF depends on.
We also added a Microsoft Visual Studio project file.
MuPDF is Copyright 2006-2013 Artifex Software, Inc.