MuPDF 1.23.0

MuPDF is a slim PDF and XPS viewer. It renders both in high-quality with anti-aliased fornts, accurate metrics and spacing. It fully understands PDF 1.7 with hyperlinks, annotations, transparency, forms, transitions, javascript and encryption. And supports both XPS and OpenXPS formats.

Tags c pdf xps ghostscript viewer
License GNU GPL
State alpha

Recent Releases

1.23.002 Aug 2023 21:05 major feature: 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 : EPUB: 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 pre. 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.
1.22.006 Apr 2023 18:25 major feature: New command line "mutool recolor" to change colorspace of PDF files. New command line "mutool trim" to remove content outside mediabox. New flag to "mutool draw": -KK to remove all non-textual content. Support PDF page labels. Layout HTML tables with variable column widths. Added JPEG output format. JPEG should be used with care due to its lossy nature (if in doubt, use PDF instead). Added PDF filter factories. Added PDF color filter. Added "culler" to sanitize filter. Added flags to control embedding fonts in output. New device methods for structured tags. Increased maximum allowed image size. Add magic flag to temporarily hide annotations when editing them. Support RD in Square and Circle annotations. Support dashed borders in annotations. Support cloudy borders in annotations. Improved layers in PDF files. performance with large PDF files and outlines. Updated multi-threading examples. Moved WASM project into separate repository. Added Java and "mutool run" bindings for many more functions.
1.21.025 Oct 2022 07:05 major feature: Added MOBI input format support. Added Story API for creating PDF documents from formatted text. Added API to create, edit, and delete links. Support custom images for Stamp annotations. Support interior color on Polygon annotations. Support line endings on PolyLine annotations. Improved SVG output. C++/Python/C# binding: Changes to naming of wrapper functions and classes. Added limited support for callbacks into Python, using SWIG Directors.
1.20.012 May 2022 07:05 major feature: Experimental C# bindings. Cross compilation should no longer need a host compiler. Major additions to JNI bindings. New API to edit outline New API to resolve and create links New API to toggle individual layers in PDF Layer panel in mupdf-gl Layer option in mutool draw New API to add a Javascript console Console panel in mupdf-gl. Text search API extended to be able to distinguish between separate search hits. Command line tool improvements: all: Negative page numbers to index from the last page mutool draw: Add option to render document without text mutool draw and convert: Support DPI option in text and HTML output. New hybrid HTML output format using "scripts/pdftohtml" script: Graphics in a background image Text on top. Improved WASM viewer demo Support high DPI screens Progressive loading. Update to zlib 1.2.12 for security. Too many to list.
1.19.007 Oct 2021 12:25 major feature: Removed support for Luratech JBIG2 and JPEG2000 decoders. Added 'extract' library for more output options: Added DOCX output format Added ODT output format. Notable new features: Journal for undo and redo Snapshot for auto-save and restore (for backgrounding mobile apps) Reflow document wrapper Rollover appearance for annotations and widgets Customize appearance of signed digital signatures Progress and cancel callbacks to OCR functions Create signature form fields. Minor new features: Support CJK fonts in pdfwrite output Support JBIG2 images in pdfwrite output Support opacity for all markup annotation types High-DPI aware UI in mupdf-gl mutool extract -a option to embed SMasks as alpha channel. API changes: Removed pdf_widget type alias (was always same as pdf_annot) Updated annotation 'dirty' logic typo in function and type names: designated name - distinguished name More functions available to 'mutool run' More functions available to Java library. New unicode scripts and fonts for EPUB: Dogra, Elymaic, Gondi, Hanifi Rohingya, Masaram Gondi, Medefaidrin, Nushu, Nyiakeng Puachue Hmong, Old Sogdian, Sogdian, Soyombo, Wancho, Yezidi, and Zanabazar Square. C++ and Python bindings: C++ and Python bindings now work on Windows. Python bindings are available as pre-built binaries on pypi.org. Added demo PDF viewer using the Python MuPDF bindings and PyQt. Better access to data in generated wrapper classes. Improved handling of out-parameters in generated Python. Text representation of POD types via C++ operator
1.18.030 Sep 2020 17:25 major feature: Mutool draw: bbox output format. Mutool draw: structured text extraction in JSON format. Mutool run: StructuredText.walk() Mutool run: PDFPage.process() and PDFAnnotation.process() Mupdf-gl: Added IBM Common User Access shortcuts for copy paste. Mupdf-gl: Improved redaction UI. Java: Example desktop Java viewer. Wasm: WebAssembly viewer that runs in a browser. Api: Dehyphenation option in structured text extraction, to improve. Searching for words that are hyphenated across lines. Api: pdf_new_date, pdf_to_date, pdf_dict_put_date and pdf_dict_get_date. Api: Added choice of image redaction algorithms: none, full, partial. Api: Optional use of Tesseract to use OCR to extract text. Svg: Many small parsing. Svg: Parse inline CSS style attributes. Svg: Text elements (simple text layout only). Html: Added HTML5 parser. Pdf: High security redaction -- save redacted PDF as flattened bitmap. Guaranteed to not leak any sensitive redacted information. Experimental C++ bindings. Experimental Python bindings.
1.17.022 Apr 2020 06:25 major feature: Api: Improved accessors for markup/ink/polygon annotation data. Api: Chapter based API for faster EPUB loading. Api: Add more documentation to header files. Api: Improved digital signature signing and verification. Api: Validate changes in a signed PDF file. Build: Moved windows build to VS2019 solution. Pdf: Redaction now works on images and links as well as text. Pdf: Greek, Cyrillic, Chinese, Japanese, and Korean scripts in forms and annotations. Pdf: File attachment annotations. Pdf: Use CCITT Fax compression for 1-bit images when creating PDF files. Epub: More forgiving XHTML parsing. Epub: Accelerator files to cache chapter data for faster EPUB loading. Epub: Optimized memory use. Mutool run: Edit Markup, Ink, and Polygon annotation data. Mutool run: Fill out form fields. Viewer: Ask for confirmation before closing a PDF with unsaved changes. Viewer: Embed and extract file attachment annotations. Library: Miscellaneous. Library: to store operation. Thirdparty: Updated Harfbuzz to 2.6.4. Thirdparty: Updated jbig2dec to 0.18. Thirdparty: Updated MuJS to 1.0.7. Thirdparty: Updated OpenJPEG to 2.3.1. Thirdparty: Updated cURL to 7.66.0 (windows only).
1.16.103 Sep 2019 17:25 minor bugfix: Mupdf-x11: Changed key bindings to match mupdf-gl. Mupdf-x11: Invert by luminance for dark mode. Android: compilation error.
1.16.024 Jul 2019 12:45 major feature: 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.
1.15.018 Apr 2019 08:05 major documentation: General improvements: WebAssembly build target and examples. Improved forms API in both C and Java bindings. Improved forms JavaScript support. Create appearance streams for more form field types. many in ICC color management. many memory leaks in error cleanup. 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. mupdf-gl improvements: 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 improvements: mutool show PDF outline -- show outline with open/state indicator. mutool show PDF js -- show document level javascript. 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/-s22pdf.js -- 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. Various cleanups: 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
1.14.026 Sep 2018 03:16 major feature: New features: 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. 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. Annotation editing: 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. : Improved CJK character fallback handling in EPUB. API changes: 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.
1.13.013 Apr 2018 12:25 major bugfix: This is primarily a 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.
1.12.024 Nov 2017 09:25 major feature: New Android SDK: New 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. Binary packages in our Maven repository at http://maven.ghostscript.com: com.artifex.mupdf:fitz:1.12.+. com.artifex.mupdf:viewer:1.12.+. com.artifex.mupdf:mini:1.12.+. Color management: LCMS2 library for color management. CMYK rendering with overprint simulation. Spot color rendering. Transparency rendering. 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.
1.1130 Mar 2017 20:05 minor feature: This is primarily a release. Split Android and iOS viewers into separate projects: 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. 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.
1.1001 Nov 2016 11:05 minor feature: Headline changes: 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. Mobile viewers: New JNI interfaces to match capabilities of 'mutool run' javascript. New android and desktop java examples using new JNI interface.
1.902 Mar 2016 21:25 minor feature: Headline changes: New command line tools: create and run. New low-level Java interface for desktop and android. OpenType enabled EPUB text layout with BiDi. Noto fallback fonts for EPUB layout. mutool create 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. mutool run Run javascript scripts with MuPDF bindings. The interface is similar to the new Java interface.
1.815 Oct 2015 17:05 minor bugfix: Headline changes: New OpenGL-based barebones desktop viewer. New URW fonts with greek and cyrillic. 64-bit file support. Ghostscript proofing mode (source only; not in shipped binaries). EPUB improvements: User style sheets. GIF images (also for CBZ). Table of contents. CJK text. Page margins. Many. : Updated FreeType to version 2.6.1. Various font substitution. setjmp/longjmp behaviour which could cause optimizing compilers to misbehave.
1.719 Apr 2015 03:05 major feature new html layout: