MuPDF 1.16.1 (2019-08-02)
The 1.16.1 release fixes a build issue with Android. It is not necessary to upgrade unless you run into compile errors trying to build for Android.
MuPDF 1.16.0 (2019-07-30)
The 1.16.0 release is now available.
MuPDF 1.16.0-rc2 (2019-07-26)
You can now download the second release candidate for version 1.16.0. This fixes some potential crash bugs, a mouse cursor issue, and an error when saving decrypted PDF files.
MuPDF 1.16.0-rc1 (2019-07-23)
You can now download the release candidate for version 1.16.0.
- api: Major overhaul of color management architecture.
- api: Improved functions to verify/sign PDF documents.
- api: Number tree accessor function pdf_lookup_number.
- api: Parse and handle more options for PWG output.
- api: Removed obsolete gproof document type.
- api: User callbacks for warning and error messages.
- epub: Changed default page size to A5.
- epub: Draw embedded SVG documents in EPUB/XHTML.
- epub: New Noto fonts covering more unicode scripts.
- epub: Support small-caps font-variant.
- pdf: Add Redact annotation type and function to apply redactions.
- pdf: Add/remove/change encryption and password when saving PDF files.
- pdf: Improvements to text handling in PDF filter processor.
- pdf: MP and DP operators now call begin/end_layer device methods.
- pdf: New and improved progressive loading.
- svg: Draw external images in SVG documents.
- mutool show: Add 'form' selector to list PDF form fields.
- mutool sign: Sign PDF documents from the command line.
- mutool sign: Verify signatures in PDF documents from the command line.
- viewer: Option to save a script of user actions for replay with mutool run.
- viewer: Runtime toggle for ICC and spot rendering.
- viewer: Tooltip when hovering over a link in mupdf-gl.
MuPDF 1.15.0 (2019-05-06)
You can now download version 1.15.0.
MuPDF 1.15.0-rc1 (2019-04-29)
The release candidate for version 1.15.0 is now available! This release contains many new features and bug fixes.
- WebAssembly build target and examples.
- Improved forms API in both C and Java bindings.
- Create appearance streams for more form field types.
- Fixed many bugs in ICC color management.
- Fixed many memory leaks in error cleanup.
- Fixed bugs in pdfwrite output.
- Improved text extraction from LaTeX documents with math symbols.
- Improved trace device formatting.
- Support CBZ and CBT files larger than 2Gb.
- Show table of contents for FB2 and XHTML documents.
- Show embedded raster images in SVG and XHTML documents.
- Show FB2 cover page.
- Add option to save PDF files without encryption.
- Add inhibit-spaces option to stext device to turn off missing space detection.
- Simplified fz_try/fz_always/fz_catch macros.
- Automatically open annotation editor when selecting an annotation.
- Full page color tinting option in mupdf-gl.
- Show/hide table of contents sections.
- Trigger a reload with sighup.
- Toggle spot color mode with 'e'.
- mutool show $PDF outline
- show outline with open/closed state indicator.
- mutool show $PDF js
- mutool clean -A
- create appearance streams when missing.
- mutool clean -AA
- recreate all appearance streams.
- mutool run docs/examples/portfolio.js
- extract embedded files from PDF document.
- mutool run docs/examples/pdf-dejpx.js
- decompress JPEG2000 images in PDF document.
- mutool run docs/examples/fix-s22pdf.js
- fix fonts in documents generated by S22PDF.
Significant API changes:
- New and improved forms API.
- Renamed -DNO_ICC to -DFZ_ENABLE_ICC=0
- Removed fz_annot superclass. Use pdf_annot and pdf_widget directly instead.
- Annotations and Widgets now have separate enumerators.
- Added optional separations argument to pixmap rendering utility functions.
- Per-function documentation comments moved to the source file. Hopefully they will stay up to date more often than when they were hidden away in the header file.
- Removed unused internal testing tools: mjsgen and jstest.
- Removed TGA output support. Use one of the more common and useful PAM, PNM, PNG, or TIFF formats instead.
- Removed support for PDF portfolios. This work-in-progress feature was never completed, and only worked for a small subset of files.
- Removed support for progressive loading. This rarely used feature added a lot of complexity and was an unending source of bugs and strange behaviour. Removing this feature has allowed us to clean up and simplify large amounts of code, and fix dozens of bugs in one fell swoop.
MuPDF 1.14.0 (2018-10-04)
You can now download the 1.14.0 release.
MuPDF 1.14.0-rc1 (2018-09-25)
The release candidate for version 1.14 is now available! This release contains many new features and bug fixes.
- Added "Source Han Serif" CJK fallback font.
- Added more scripts to the Noto fallback fonts.
- Multi-page PNM support.
- "mutool show" now supports a path syntax for selecting objects to show.
- New annotation editing mode in mupdf-gl.
- Can create, edit, and delete most annotation types.
- Can create appearance streams for most annotation types.
- Can create appearance streams for Tx form fields.
- Can create appearance streams for Ch form fields.
Form filling in mupdf-gl:
- Can click buttons, checkboxes, and radioboxes.
- Can fill out text fields using dialog box.
- Can select choice options using dialog box.
- Can verify and sign digital signatures.
Improved UI for mupdf-gl:
- Password dialog.
- Error dialog.
- Open/save file dialog.
- Snap selection to words or lines by holding control or control+shift.
- Save and restore current location, bookmarks, and navigation history.
Build system simplifications:
- Auto-generated CMap, ICC, and JS source files are checked in to git.
- Embedded CMap resources are now generated by a python script.
- Embedded font resources are linked directly if using GNU ld or windows.
- Namegen tool replaced by use of C macros.
- Simplified Makefile.
- Pass rectangle and matrix structs by value.
- Replaced PDF_NAME_Xxx macros with PDF_NAME(Xxx).
- Added PDF_TRUE, PDF_FALSE, and PDF_NULL constant pdf_obj* macros.
- Added helper functions: pdf_dict_get_int, etc.
- Removed 'doc' argument in pdf_new_int, etc.
- Quads instead of rects when highlighting and searching text.
- mutool run: Pass arguments to script in scriptArgs global.
MuPDF 1.13.0 (2018-04-20)
You can now download the 1.13.0 release.
MuPDF 1.13-rc1 (2018-04-12)
The release candidate for version 1.13 is now available!
This is primarily a bugfix release.
- New "mutool sign" tool for showing and verifying digital signatures.
- Chinese, Japanese, Korean, Cyrillic, and Greek font support in mutool create.
- Improvements to annotation editing API.
This release fixes CVE-2018-1000036, CVE-2018-1000037, CVE-2018-1000038, CVE-2018-1000039, and CVE-2018-1000040.
MuPDF 1.12.0 (2017-12-13)
You can now download the 1.12.0 release.
MuPDF 1.12-rc1 (2017-11-23)
The release candidate for version 1.12 is now available!
This release has a new Android SDK which is easier to use.
These are the git repositories for the SDK projects:
- mupdf-android-fitz.git has the JNI bindings in a library.
- mupdf-android-viewer.git has the viewer as an activity in a library.
- mupdf-android-viewer-mini.git has the minimalist viewer as an activity in a library.
There are binary packages for these libraries in our Maven repository:
- LCMS2 library for color management.
- CMYK rendering with overprint simulation.
- Spot color rendering.
- Transparency rendering fixes.
Structured text output improvements:
- Reworked structured text API.
- Faster text searching.
- Highlight and copy text by selecting lines instead of by area.
- New semantic XHTML output format.
- New layout preserving HTML output format.
Features and improvements:
- Improved non-AA rendering with new scan converter.
- Improved LARGEFILE support.
- Improved TIFF support.
- Improved documentation.
- PCLm output.
- PSD output.
- New "mutool trace" tool.
- New "mutool sign" tool (work in progress).
- Text redaction (work in progress).
Lots of bug fixes.
MuPDF 1.11 (2017-04-11)
You can now download the 1.11 release.
MuPDF 1.11-rc1 (2017-04-04)
The release candidate for version 1.11 is now available.
This is primarily a bug fix release.
The Android and iOS viewers have been split off into separate git repositories:
- mupdf-viewer-ios.git has the iOS viewer.
- mupdf-viewer-android-old.git has the Android viewer.
- mupdf-viewer-android-nui.git has a new advanced Android viewer.
- mupdf-viewer-android-mini.git has a new minimalist Android viewer.
Other new features:
- PDF portfolio support with command line tool "mutool portfolio".
- Add callbacks to load fallback fonts from the system.
- Use system fonts in Android to reduce install size.
- Flag to disable publisher styles in EPUB layout.
- Improved SVG output.
MuPDF 1.10a (2016-11-28)
Version 1.10a is a bug fix release.
If you downloaded the windows release for 1.10 you should also upgrade, since the zip archive accidentally included the RC2 binaries instead of the final version.
A bug with mutool and saving PDF files using the 'ascii' option has been fixed.
The iOS build issues have been fixed.
MuPDF 1.10 (2016-11-21)
The 1.10 release is now available.
MuPDF 1.10-rc2 (2016-11-17)
The second release candidate for version 1.10 is now available.
MuPDF 1.10-rc1 (2016-11-09)
The release candidate for version 1.10 is here!
- FictionBook (FB2) e-book support.
- Simple SVG parser (a small subset of SVG only).
- mutool convert: a new document conversion tool and interface.
- Multi-threaded rendering in mudraw.
- Luratech decoders for JBIG2 and JPEG2000 (commercial releases only).
- Optional JPEG-XR support (not included by default for security reasons).
- Updated base 14 fonts from URW.
- New CJK font with language specific variants.
- Hyperlink support in EPUB.
Reduced memory use:
- New tool muraster: example printer driver with limited RAM usage and automatic banding.
- Alpha channel is now optional in pixmaps.
- More aggressive purging of cached objects.
- Partial image decoding for lower memory use when banding.
Reduced code size when building with a subset of features:
- Reduced default set of built-in CMap tables to the minimum required.
- FZ_ENABLE_PDF, _XPS, _JS, to disable features at compile time.
- Function level linking.
Interface changes and cleanups:
- Dropped pdf object generation numbers from public interfaces.
- Simplified PDF page, xobject, and annotation internals.
- Closing and freeing devices and writers are now separate steps.
- Improved PDF annotation editing interface (still a work in progress).
- Document writer interface.
- Banded image writer interface.
- New android and desktop java examples using new JNI interface.
MuPDF 1.9a (2016-04-26)
Version 1.9a is a bug fix release. If you run into issues with selecting or searching for text with ligatures, you should upgrade from 1.9.
MuPDF 1.9 (2016-04-18)
The 1.9 release is here!
MuPDF 1.9 RC1 (2016-04-06)
- New command line tools: create and run.
- New low-level Java interface for desktop and android.
- Bidirectional layout for Arabic and Hebrew scripts.
- Shaping complex scripts for EPUB text layout.
- Noto fallback fonts for EPUB layout.
- Create new PDF files from scratch.
- Read an annotated content stream in a text file and write a PDF file, automatically embedding font and image resources.
- The interface is similar to the new Java interface.
- Optional multi-threaded operation (Windows and pthreads).
- Optional low memory mode (primarily for testing).
MuPDF 1.8 (2015-11-11)
The 1.8 release is here!
MuPDF 1.8 RC1 (2015-10-22)
- New OpenGL-based barebones desktop viewer. See manual here.
- New URW fonts with greek and cyrillic.
- 64-bit file support.
- Ghostscript proofing mode (source only; not in shipped binaries).
- User style sheets.
- GIF images (also for CBZ).
- Table of contents.
- CJK text.
- Page margins.
- Many bug fixes.
- Updated FreeType to version 2.6.1.
- Various font substitution bug fixes.
- Fix setjmp/longjmp behaviour which could cause optimizing compilers to misbehave.
MuPDF 1.7a (2015-05-07)
The 1.7a version is a bugfix release.
- Fixed bug that allocated too much memory when packing paths.
- Fixed EPUB font scaling bug.
- Fixed EPUB file type handling in viewers.
- Improved tolerance for broken and unsupported CSS.
- Added -z option to mutool clean.
MuPDF 1.7 (2015-04-16)
The 1.7 release is here!
MuPDF 1.7 RC1 (2015-04-08)
The 1.7 release is almost here!
- New 'Indie dev' licensing options – contact Artifex for more details.
- New HTML layout engine, and (DRM-free) EPUB viewer.
- Reduced memory usage - displaylists and internal PDF representation take much less memory, reducing total memory use on some files by over 60%.
Important API changes:
- Bound contexts have been removed; we now pass fz_contexts explicitly.
- Reference counting of paths and text structures.
- Add mutool pages option.
- Tweaked rendering to prevent feature dropout in common cases.
- Viewer tweaks
- Better mouse wheel handling
- Shift-space support
- Mouse button control of presentation mode
- Failed reloads do not close document
- PDF filter revamp - simpler interface.
- Devices use derived structures rather than user pointer.
- Sparse PDF xrefs held in more compact form.
- New gsview viewer split out to its own repository.
- Improved handling of broken files.
- Fix BBoxes of Type 3 fonts.
- Updated fonts (including greek and cyrillic).
- Various memory leaks and crashes.
- And many more.
MuPDF 1.6 (2014-09-30)
The 1.6 release is here!
- Color detection device (mudraw -T).
- Sepia mode full-page color tinting in X11 and win32 viewer (keybinding: shift-C).
- Re-implement printf and strtod due to portability issue with locales and number formatting.
- Add experimental 'gsview' project: a Windows Modern UI viewer.
- Improve XML parser interface.
- CBZ page ordering
- ZIP64 support
- iOS and Android bug fixes
- Miscellaneous minor fixes
MuPDF 1.5 (2014-06-12)
This is a bugfix release: dozens of bugs have been found and exterminated!
A typo resulting in a potential stack overflow that could corrupt files when saving edits to a PDF has been fixed. Another bug which caused a significant slowdown has also been fixed.
We strongly recommend that you upgrade — especially if you are using version 1.4.
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 loading/saving.
- 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)
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 release.
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 the regular download page.
- 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 content.
- 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.
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 cases.
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.