List of changes since MuPDF 1.9 * Headline changes: * FictionBook (FB2) e-book support. * Simple SVG parser (a small subset of SVG only). 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.