List of changes in MuPDF 1.14.0 * 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. * Bug fixes: * 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. List of changes in MuPDF 1.13.0 * 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. List of changes in MuPDF 1.12.0 * 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 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. List of changes in MuPDF 1.11 * This is primarily a bug fix 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. List of changes in MuPDF 1.10 * 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. List of changes in MuPDF 1.9 * Headline changes: * 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. * 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. * mutool draw Optional multi-threaded operation (Windows and pthreads). Optional low memory mode (primarily for testing). List of changes in MuPDF 1.8 * 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 bug fixes. * 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. List of changes in MuPDF 1.7a * Bugfixes * 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. * Features * Added mudraw -z option to compress output streams. List of changes in MuPDF 1.7 * Headline changes: * New 'Indie dev' licensing options - contact sales@artifex.com 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. * Features: * 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 * Internal changes: * Removal of bound contexts; fz_contexts now passed explicitly everywhere. * 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. * Bug fixes * 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. List of changes in MuPDF 1.6 * Features: * 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 'gsview' project: a Windows Modern UI viewer. * Improve XML parser interface. * Bug fixes: * CBZ page ordering * ZIP64 support * iOS and Android bug fixes * Miscellaneous minor fixes List of changes in MuPDF 1.5 * Bug fixes. List of changes in MuPDF 1.4 * Headline changes: * CMYK rendering (mudraw PWG and PAM formats) * TIFF viewer (with multi-page support). * Added MuJS Javascript interpreter. * MuJS is the default, V8 and JavaScriptCore are compile time options. * Javascript support has to be explicitly enabled with pdf_enable_js. * All viewers now have JavaScript enabled in the default builds. * Viewers: * X11: Horizontal scroll wheel support. * X11: Status bar display with warnings. * Android: Digital signatures. * iOS: Links, form filling, annotation editing, and javascript. * iOS: Reflow mode. * WinRT: Printing. * WinRT: Improved zooming behaviour. * Tools: * 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. * Annotations: * Improved font handling. * Form fields. * Free text. * Sticky notes. * Optimizations: * 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. List of changes in MuPDF 1.3 * Windows RT viewer app for MuPDF. * 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). * Fix operation on Android API level 8. * Android redraw optimisations. * Android app now supports Google Cloud Print. * Android app translated into many languages. * Android support for more architectures. * Improvements to store (avoid collisions causing unnecessary evictions). * Windows apps use Unicode filenames now. * PDF function handling improved; functions can now be passed to devices without 'sampling'. * PDF image handling improved; images can now be passed to devices without decompression. * Indexed images are no longer uncompressed at load time, saving memory. * Caching of rendered tiles for speed. * Improved text analysis mode, capable of spotting columns/indents, right-to-left text etc. * HTML output mode now includes image output. * PDF password encoding handling improved. * MuPDF now opens Jpeg, Tiff and PNG files directly. * Bug preventing OpenXPS files from being opened fixed. * Initial (feature incomplete) SVG and PDF output devices. * PWG raster (mono/grey/RGB) and PCL (mono) output devices. * Various performance improvements (including tilings and mesh based shadings). * Revamped directory structure to reflect recent changes. * Various potential SEGV, SoftMask and rendering fixes. * Many potential crashes in Jpeg2000 and JBIG2 images fixed. List of changes in MuPDF 1.2 * Important API changes: * fz_bbox is now fz_irect. * APIs (including fz_device) now pass fz_rect/fz_matrix by reference. * fz_device API is now more consistent with regards to use of fz_rect rather than fz_bbox. * Add support for Javascript and forms handling. * Fix many SEGVs with out of spec files. Many thanks to Mateusz "j00ru" Jurczyk and Gynvael Coldwind of the Google Security team, zeniko, Sebastian Rasmussen and all other contributors. * Add fz_open_document_with_stream to allow non-file based operation. * Move to using git submodules for third party libraries. * Much enhanced Android application. Now on Google Play! * Oversized and stroke text clipping implemented. * Change shadings to decompose at render times; massive memory savings. * Renamed 'mubusy' to 'mutool'. * PDF 1.7 Extension Level 8 encryption implemented. * Added consts to various parts of the API to help C++ interworking. * Prototype transition support. * Text searching API moved to fitz. * Highlight and copy text selections. * 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. * Various rendering fixes. List of changes in MuPDF 1.1 * 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.