Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/CHANGES @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/CHANGES Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,1031 @@ +List of changes in MuPDF 1.26 + + Removed PDF linearization support: + + See https://artifex.com/blog/mupdf-removes-linearisation for + more information. + + Object labels: + + Write a comment before numbered objects listing the possible + ways it can be reached from the document root. + + Enable with mutool show -L, mutool clean -L, and PDF write + option "labels". + + Library functions pdf_load_object_labels and pdf_label_object. + + Brotli compression: + + Experimental feature from latest PDF specification proposal. + + Optional barcode support: + + Build with "make barcode=yes". + Uses zxing-cpp (zebra crossing) C++ as a third party dependency. + Adds mutool barcode sub-command. + + To detect barcodes in a PDF: + mutool barcode -d barcode.pdf + + To create barcode images as PNG file: + mutool barcode -c -o barcode.png -F qrcode "Hello, world!" + + Library functions fz_new_barcode_image and + fz_decode_barcode_from_pixmap. + + New Structured Text extraction passes: + + Paragraph Breaking: Detect paragraphs from first-line + indentation and other heuristics. + + Table Hunt: Scan text and try to assemble it into tables with + rows and columns. + + New Structured Text extraction options: + - allow reading raw character or glyph index when unicode is not available + - collect styles to detect fake bold, underlines, strike-through, etc. + - clip-rect to only extract text inside the specified area + - accurate-ascenders to measure ascender data from font outline + - accurate-side-bearings to measure glyph widths from font outline + + CSV output format (using "Table Hunt" pass on input document). + + Core library additions: + + JSON parser, object model, and printer. + + Activity logger API. + + Support "overlong null" characters in utf-8 (using "\xC0\x80" + to represent \x00 in C strings, without being misconstrued as a + string terminator). + + Build system changes: + + Cleaned up Makefile cruft and refactored how shared libraries + are built. + + Removed bit-rotted sections of the Makefile that have not been + maintained and no longer work (primarily iOS and MinGW). + + Don't build example tools muraster and mupdf-x11-curl by + default. These examples can be built with "make extra-apps". + + Miscellaneous improvements and new behavior: + + Include more data in structured text XML dumps. + + Ignore junk at the start of a PDF file (such as PJL commands) + without needing to perform a full repair pass. + + Support non-latin/greek/cyrillic/CJK languages in annotations + and widgets (requires HTML layout engine). + + Use system font callback to look for missing fonts in HTML + layout. + + Support CSS text fill and stroke properties: + -webkit-text-fill-color + -webkit-stroke-color + -webkit-stroke-width + + Updated unicode line breaking (UAX 14) and upper/lowercase + tables to Unicode 16.0. + + Bug fixes and stability improvements: + + Many improvements to font subsetting. + + Fixed several bugs with undo/redo journal affecting the cache + of open pages. + + Improved calculation of font ascender/descender values when + presented with bad values from font files or PDF files. + + Improved logic when repairing broken PDF files. + + Improve Type3 font rendering compliance with specification in + some edge cases. + + Command line tool additional options: + + mutool poster: new option -m (margin) + + mutool show: new option -r (force repair) + + mutool clean: --structure=keep to keep tagged content when + subsetting pages. WARNING: This option will prevent the file + from shrinking, because we must still keep all the objects from + deleted pages around. + + mutool clean: -t option will always write compact objects + mutool clean: -tt option will always pretty-print objects + + Useful new C functions and fields: + - fz_stext_char field "color" renamed to "argb" to include alpha channel. + - fz_outline_item: new "flags" and r,g,b color fields. + - pdf_clip_page to filter page contents. + - pdf_add_colorspace to create ICC colorspace object. + - fz_load_user_css to load and set user css in one go. + - fz_new_bitmap_from_image + - fz_new_buffer_from_image_as_pbm + - fz_new_buffer_from_pixmap_as_pbm + - fz_strverscmp + - fz_strcasestr + - fz_format_string %> to output a hex encoded string + - fz_format_string %q and %Q write surrogate pairs + + Java/JNI and mutool run JavaScript bindings have many new functions and features. + +List of changes in MuPDF 1.25 + + New logo! + + Redaction options: + - New "don't redact text" option + - New "redact line art" option + + Structured Text options: + - Use "Tagged PDF" structure information + - Detect underlines and strikeouts + - Mark automatically inserted spaces + - Mark areas where line art (vectors) are present + - Use accurate glyph bounding boxes + - Ignore ActualText tags + - Scan page for 'grid' lines + - Segment page into areas (headers, columns, etc) + + Annotation features: + - Intent property accessors. + - Rich Content styling on FreeText annotations. + - Callout arrows on FreeText annotations. + - Leader Line and Caption on Line annotations. + - Improved handling of Rect and RD. + + Low level FDF format support. + - See docs/examples/import-fdf.js for how to use. + + Improved FileSpec handling with new functions. + + Functions for listing document and page Associated Files (AF). + + Functions to create and write XML DOM trees (fz_xml). + + Skew detection and deskew algorithms on pixmaps and PDFOCR device. + + Document area detection in scanned images. + + ZUGFeRD support. + + New tool "mutool audit" to create summary of PDF file composition. + + Noteworthy API changes: + - New "wants_file" member for fz_document_handler. + - fz_text_item now has an explicit pen "advance" member. + - mutool recolor can now be used as a function. + - pdf_annot_rect works with the "design" rectangle. + - structured text "color" field renamed to "argb" and now includes alpha channel + + Important bug fixes: + - More robust font subsetting. + - More robust handling of page and annotation objects during + undo and redo. + - Updated "gray.icc" profile to actual sGray gamma ramp. + + Support for "SmartOffice" commercially licensed plugin to load office + documents. + +List of changes in MuPDF 1.24 + + Error handling changes: + + You must call pdf_report_error in the final fz_catch. Any + unreported errors will be automatically reported when a new + error is raised, or when closing the fitz context. + + + New formats: + + Read Office (XML) files! We internally open and convert + docx/pptx/xlsx documents to HTML to allow reading the plain + text content. The exact layout will NOT be preserved. + + Optional compile time option to use libarchive for reading CBR + and other archive formats. + + Read plain text documents. + + Read gzipped files directly. + + Open and read FDF files to support importing annotations or + form data using the low-level PDF functions. There are no tools + for this yet. + + Read CFB (Compound File Binary) format archives -- used for the + Office formats. + + Write images as JPEG2000. + + New tools and features: + + mutool bake (and associated functions) to bake appearance of + annotations and forms into static content. + + Font subsetting flag to mutool clean (EXPERIMENTAL FEATURE). + + Option to use ObjStms when writing PDF files. + + Compression effort option when writing PDF files. + + Add option to control how line art is affected by redaction. + Add more options to control how images are affected by + redaction (remove-unless-invisible). + + Fix up q/Q gstate balance when cleaning content streams. + + New functions and types: + + pdf_rearrange_pages to subset or re-order pages in a PDF file. + + fz_invert_bitmap to invert monochrome bitmaps. + + fz_compressed_image_type to query the format of a compressed + image. + + fz_text_decoder to convert various legacy and CJK encodings + into UTF-8. + + More helper functions to easily manipulate PDF objects in C. + + Add flag to control fz_place_story overflow behavior when the + text doesn't fit into the box. + + New archive handlers can be added at runtime. + + Major bug fixes and improvements: + + Support using Art, Bleed, Media, and Trim boxes for PDF page + size. + + Support ActualText in PDF! No more strange text extraction when + the file uses ActualText to patch over bad font encodings. + + Add special TrueType fallback encoding CMap for a specific + flavor of broken PDF files that use an "identity" encoding + without embedding the font. + + Limited "transfer function" support in PDF. Transfer functions + are a deprecated legacy PDF feature that predates proper color + management. They were intended to provide limited color + management such as applying a gamma curve. Transfer functions + have often been (ab)-used to invert images, and many PDF + creators use them when writing softmask images. We have added + support for this case only. + + Box drawing characters added to fonts for HTML and plain text + documents. + + Write more compact PDF files (removed some unneccessary + whitespace). + + Improved selection behavior for non-axis aligned text. + + Improved heuristics for detecting the logical and visual order + of RTL text in PDF. + + Improved heuristics for inserting missing spaces in PDF text. + + Improved handling of CMYK JPEG files (which ones are inverted + and which are not). + + Improved content type detection. Don't assume everything is PDF + when we can't recognize it. + + Removed deprecated functions: + pdf_check_signature + +List of changes in MuPDF 1.23.0 + + 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 bug fixes: + EPUB: Fix 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 prefixes. + 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. + +List of changes in MuPDF 1.22.0 + + 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. + Fix performance issue 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. + +List of changes in MuPDF 1.21.0 + + 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. + +List of changes in MuPDF 1.20.0 + + 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 fix. + + Too many bug fixes to list. + +List of changes in MuPDF 1.19.0 + + 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 + Fix 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<< and Python str(). + Fixed ref-counting bug in iterators. + Updates for new MuPDF functions. + +List of changes in MuPDF 1.18.0 + + 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 fixes. + 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. + +List of changes in MuPDF 1.17.0 + + 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 bugfixes. + library: Fixes 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). + +List of changes in MuPDF 1.16.1 + + mupdf-x11: Changed key bindings to match mupdf-gl. + mupdf-x11: Invert by luminance for dark mode. + android: Fix compilation error. + +List of changes in MuPDF 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. + +List of changes in MuPDF 1.15.0 + +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. + * 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. + +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/closed 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/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. + +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 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. + +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.
