comparison 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
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 List of changes in MuPDF 1.26
2
3 Removed PDF linearization support:
4
5 See https://artifex.com/blog/mupdf-removes-linearisation for
6 more information.
7
8 Object labels:
9
10 Write a comment before numbered objects listing the possible
11 ways it can be reached from the document root.
12
13 Enable with mutool show -L, mutool clean -L, and PDF write
14 option "labels".
15
16 Library functions pdf_load_object_labels and pdf_label_object.
17
18 Brotli compression:
19
20 Experimental feature from latest PDF specification proposal.
21
22 Optional barcode support:
23
24 Build with "make barcode=yes".
25 Uses zxing-cpp (zebra crossing) C++ as a third party dependency.
26 Adds mutool barcode sub-command.
27
28 To detect barcodes in a PDF:
29 mutool barcode -d barcode.pdf
30
31 To create barcode images as PNG file:
32 mutool barcode -c -o barcode.png -F qrcode "Hello, world!"
33
34 Library functions fz_new_barcode_image and
35 fz_decode_barcode_from_pixmap.
36
37 New Structured Text extraction passes:
38
39 Paragraph Breaking: Detect paragraphs from first-line
40 indentation and other heuristics.
41
42 Table Hunt: Scan text and try to assemble it into tables with
43 rows and columns.
44
45 New Structured Text extraction options:
46 - allow reading raw character or glyph index when unicode is not available
47 - collect styles to detect fake bold, underlines, strike-through, etc.
48 - clip-rect to only extract text inside the specified area
49 - accurate-ascenders to measure ascender data from font outline
50 - accurate-side-bearings to measure glyph widths from font outline
51
52 CSV output format (using "Table Hunt" pass on input document).
53
54 Core library additions:
55
56 JSON parser, object model, and printer.
57
58 Activity logger API.
59
60 Support "overlong null" characters in utf-8 (using "\xC0\x80"
61 to represent \x00 in C strings, without being misconstrued as a
62 string terminator).
63
64 Build system changes:
65
66 Cleaned up Makefile cruft and refactored how shared libraries
67 are built.
68
69 Removed bit-rotted sections of the Makefile that have not been
70 maintained and no longer work (primarily iOS and MinGW).
71
72 Don't build example tools muraster and mupdf-x11-curl by
73 default. These examples can be built with "make extra-apps".
74
75 Miscellaneous improvements and new behavior:
76
77 Include more data in structured text XML dumps.
78
79 Ignore junk at the start of a PDF file (such as PJL commands)
80 without needing to perform a full repair pass.
81
82 Support non-latin/greek/cyrillic/CJK languages in annotations
83 and widgets (requires HTML layout engine).
84
85 Use system font callback to look for missing fonts in HTML
86 layout.
87
88 Support CSS text fill and stroke properties:
89 -webkit-text-fill-color
90 -webkit-stroke-color
91 -webkit-stroke-width
92
93 Updated unicode line breaking (UAX 14) and upper/lowercase
94 tables to Unicode 16.0.
95
96 Bug fixes and stability improvements:
97
98 Many improvements to font subsetting.
99
100 Fixed several bugs with undo/redo journal affecting the cache
101 of open pages.
102
103 Improved calculation of font ascender/descender values when
104 presented with bad values from font files or PDF files.
105
106 Improved logic when repairing broken PDF files.
107
108 Improve Type3 font rendering compliance with specification in
109 some edge cases.
110
111 Command line tool additional options:
112
113 mutool poster: new option -m (margin)
114
115 mutool show: new option -r (force repair)
116
117 mutool clean: --structure=keep to keep tagged content when
118 subsetting pages. WARNING: This option will prevent the file
119 from shrinking, because we must still keep all the objects from
120 deleted pages around.
121
122 mutool clean: -t option will always write compact objects
123 mutool clean: -tt option will always pretty-print objects
124
125 Useful new C functions and fields:
126 - fz_stext_char field "color" renamed to "argb" to include alpha channel.
127 - fz_outline_item: new "flags" and r,g,b color fields.
128 - pdf_clip_page to filter page contents.
129 - pdf_add_colorspace to create ICC colorspace object.
130 - fz_load_user_css to load and set user css in one go.
131 - fz_new_bitmap_from_image
132 - fz_new_buffer_from_image_as_pbm
133 - fz_new_buffer_from_pixmap_as_pbm
134 - fz_strverscmp
135 - fz_strcasestr
136 - fz_format_string %> to output a hex encoded string
137 - fz_format_string %q and %Q write surrogate pairs
138
139 Java/JNI and mutool run JavaScript bindings have many new functions and features.
140
141 List of changes in MuPDF 1.25
142
143 New logo!
144
145 Redaction options:
146 - New "don't redact text" option
147 - New "redact line art" option
148
149 Structured Text options:
150 - Use "Tagged PDF" structure information
151 - Detect underlines and strikeouts
152 - Mark automatically inserted spaces
153 - Mark areas where line art (vectors) are present
154 - Use accurate glyph bounding boxes
155 - Ignore ActualText tags
156 - Scan page for 'grid' lines
157 - Segment page into areas (headers, columns, etc)
158
159 Annotation features:
160 - Intent property accessors.
161 - Rich Content styling on FreeText annotations.
162 - Callout arrows on FreeText annotations.
163 - Leader Line and Caption on Line annotations.
164 - Improved handling of Rect and RD.
165
166 Low level FDF format support.
167 - See docs/examples/import-fdf.js for how to use.
168
169 Improved FileSpec handling with new functions.
170
171 Functions for listing document and page Associated Files (AF).
172
173 Functions to create and write XML DOM trees (fz_xml).
174
175 Skew detection and deskew algorithms on pixmaps and PDFOCR device.
176
177 Document area detection in scanned images.
178
179 ZUGFeRD support.
180
181 New tool "mutool audit" to create summary of PDF file composition.
182
183 Noteworthy API changes:
184 - New "wants_file" member for fz_document_handler.
185 - fz_text_item now has an explicit pen "advance" member.
186 - mutool recolor can now be used as a function.
187 - pdf_annot_rect works with the "design" rectangle.
188 - structured text "color" field renamed to "argb" and now includes alpha channel
189
190 Important bug fixes:
191 - More robust font subsetting.
192 - More robust handling of page and annotation objects during
193 undo and redo.
194 - Updated "gray.icc" profile to actual sGray gamma ramp.
195
196 Support for "SmartOffice" commercially licensed plugin to load office
197 documents.
198
199 List of changes in MuPDF 1.24
200
201 Error handling changes:
202
203 You must call pdf_report_error in the final fz_catch. Any
204 unreported errors will be automatically reported when a new
205 error is raised, or when closing the fitz context.
206
207
208 New formats:
209
210 Read Office (XML) files! We internally open and convert
211 docx/pptx/xlsx documents to HTML to allow reading the plain
212 text content. The exact layout will NOT be preserved.
213
214 Optional compile time option to use libarchive for reading CBR
215 and other archive formats.
216
217 Read plain text documents.
218
219 Read gzipped files directly.
220
221 Open and read FDF files to support importing annotations or
222 form data using the low-level PDF functions. There are no tools
223 for this yet.
224
225 Read CFB (Compound File Binary) format archives -- used for the
226 Office formats.
227
228 Write images as JPEG2000.
229
230 New tools and features:
231
232 mutool bake (and associated functions) to bake appearance of
233 annotations and forms into static content.
234
235 Font subsetting flag to mutool clean (EXPERIMENTAL FEATURE).
236
237 Option to use ObjStms when writing PDF files.
238
239 Compression effort option when writing PDF files.
240
241 Add option to control how line art is affected by redaction.
242 Add more options to control how images are affected by
243 redaction (remove-unless-invisible).
244
245 Fix up q/Q gstate balance when cleaning content streams.
246
247 New functions and types:
248
249 pdf_rearrange_pages to subset or re-order pages in a PDF file.
250
251 fz_invert_bitmap to invert monochrome bitmaps.
252
253 fz_compressed_image_type to query the format of a compressed
254 image.
255
256 fz_text_decoder to convert various legacy and CJK encodings
257 into UTF-8.
258
259 More helper functions to easily manipulate PDF objects in C.
260
261 Add flag to control fz_place_story overflow behavior when the
262 text doesn't fit into the box.
263
264 New archive handlers can be added at runtime.
265
266 Major bug fixes and improvements:
267
268 Support using Art, Bleed, Media, and Trim boxes for PDF page
269 size.
270
271 Support ActualText in PDF! No more strange text extraction when
272 the file uses ActualText to patch over bad font encodings.
273
274 Add special TrueType fallback encoding CMap for a specific
275 flavor of broken PDF files that use an "identity" encoding
276 without embedding the font.
277
278 Limited "transfer function" support in PDF. Transfer functions
279 are a deprecated legacy PDF feature that predates proper color
280 management. They were intended to provide limited color
281 management such as applying a gamma curve. Transfer functions
282 have often been (ab)-used to invert images, and many PDF
283 creators use them when writing softmask images. We have added
284 support for this case only.
285
286 Box drawing characters added to fonts for HTML and plain text
287 documents.
288
289 Write more compact PDF files (removed some unneccessary
290 whitespace).
291
292 Improved selection behavior for non-axis aligned text.
293
294 Improved heuristics for detecting the logical and visual order
295 of RTL text in PDF.
296
297 Improved heuristics for inserting missing spaces in PDF text.
298
299 Improved handling of CMYK JPEG files (which ones are inverted
300 and which are not).
301
302 Improved content type detection. Don't assume everything is PDF
303 when we can't recognize it.
304
305 Removed deprecated functions:
306 pdf_check_signature
307
308 List of changes in MuPDF 1.23.0
309
310 New features:
311 New WASM library with same API as mutool run and Java, for both browser and Node environments.
312 Support CropBox, TrimBox, BleedBox, and ArtBox in PDF tools and viewers.
313 PhotoShop PSD image support.
314 mupdf-gl: Custom ICC display profile support.
315 mutool poster: Option to split in RTL direction.
316
317 Miscellaneous improvements and notable bug fixes:
318 EPUB: Fix table cell height calculations.
319 EPUB: Inherit table cell background color from table row.
320 EPUB: Support files with partial encryption (only read unencrypted parts).
321 EPUB: Support files with incorrect directory prefixes.
322 TIFF: Stability improvements.
323 MOBI: Stability improvements.
324 PDF: Support old style border dash patterns.
325 PDF: Support GoToR links to remote PDF documents.
326 PDF: Improve link parsing and creation.
327 ZIP: Improve unicode file name handling.
328 Fall back to unhinted fonts if hints are broken.
329 Recognize document types by sniffing contents (don't need to rely on mimetype or file extension).
330
331 New APIs:
332 More PDF document permission flags.
333 Tweaked exception error logging.
334 pdf_minimize_document to squeeze amount of memory used by an open document.
335
336 Incompatible API changes:
337 pdf_field_name renamed to pdf_load_field_name.
338 mutool run -- changed many methods to match Java and new WASM library.
339
340 New and improved documentation.
341
342 List of changes in MuPDF 1.22.0
343
344 New command line "mutool recolor" to change colorspace of PDF files.
345 New command line "mutool trim" to remove content outside mediabox.
346 New flag to "mutool draw": -KK to remove all non-textual content.
347
348 Support PDF page labels.
349
350 Layout HTML tables with variable column widths.
351
352 Added JPEG output format. JPEG should be used with care due to its
353 lossy nature (if in doubt, use PDF instead).
354
355 Added PDF filter factories.
356 Added PDF color filter.
357 Added "culler" to sanitize filter.
358 Added flags to control embedding fonts in output.
359 New device methods for structured tags.
360 Increased maximum allowed image size.
361 Add magic flag to temporarily hide annotations when editing them.
362
363 Support RD in Square and Circle annotations.
364 Support dashed borders in annotations.
365 Support cloudy borders in annotations.
366 Improved layers in PDF files.
367 Fix performance issue with large PDF files and outlines.
368
369 Updated multi-threading examples.
370
371 Moved WASM project into separate repository.
372
373 Added Java and "mutool run" bindings for many more functions.
374
375 List of changes in MuPDF 1.21.0
376
377 Added MOBI input format support.
378 Added Story API for creating PDF documents from formatted text.
379 Added API to create, edit, and delete links.
380
381 Support custom images for Stamp annotations.
382 Support interior color on Polygon annotations.
383 Support line endings on PolyLine annotations.
384
385 Improved SVG output.
386
387 C++/Python/C# binding:
388 Changes to naming of wrapper functions and classes.
389 Added limited support for callbacks into Python, using SWIG Directors.
390
391 List of changes in MuPDF 1.20.0
392
393 Experimental C# bindings.
394 Cross compilation should no longer need a host compiler.
395 Major additions to JNI bindings.
396
397 New API to edit outline
398 New API to resolve and create links
399 New API to toggle individual layers in PDF
400 Layer panel in mupdf-gl
401 Layer option in mutool draw
402 New API to add a Javascript console
403 Console panel in mupdf-gl
404
405 Text search API extended to be able to distinguish between separate search hits.
406
407 Command line tool improvements:
408 all: Negative page numbers to index from the last page
409 mutool draw: Add option to render document without text
410 mutool draw and convert: Support DPI option in text and HTML output
411
412 New hybrid HTML output format using "scripts/pdftohtml" script:
413 Graphics in a background image
414 Text on top
415
416 Improved WASM viewer demo
417 Support high DPI screens
418 Progressive loading
419
420 Update to zlib 1.2.12 for security fix.
421
422 Too many bug fixes to list.
423
424 List of changes in MuPDF 1.19.0
425
426 Removed support for Luratech JBIG2 and JPEG2000 decoders.
427
428 Added 'extract' library for more output options:
429 Added DOCX output format
430 Added ODT output format
431
432 Notable new features:
433 Journal for undo and redo
434 Snapshot for auto-save and restore (for backgrounding mobile apps)
435 Reflow document wrapper
436 Rollover appearance for annotations and widgets
437 Customize appearance of signed digital signatures
438 Progress and cancel callbacks to OCR functions
439 Create signature form fields
440
441 Minor new features:
442 Support CJK fonts in pdfwrite output
443 Support JBIG2 images in pdfwrite output
444 Support opacity for all markup annotation types
445 High-DPI aware UI in mupdf-gl
446 mutool extract -a option to embed SMasks as alpha channel
447
448 API changes:
449 Removed pdf_widget type alias (was always same as pdf_annot)
450 Updated annotation 'dirty' logic
451 Fix typo in function and type names: designated name -> distinguished name
452 More functions available to 'mutool run'
453 More functions available to Java library
454
455 New unicode scripts and fonts for EPUB:
456 Dogra, Elymaic, Gondi, Hanifi Rohingya, Masaram Gondi,
457 Medefaidrin, Nushu, Nyiakeng Puachue Hmong, Old Sogdian,
458 Sogdian, Soyombo, Wancho, Yezidi, and Zanabazar Square.
459
460 C++ and Python bindings:
461 C++ and Python bindings now work on Windows.
462 Python bindings are available as pre-built binaries on pypi.org.
463 Added demo PDF viewer using the Python MuPDF bindings and PyQt.
464
465 Better access to data in generated wrapper classes.
466 Improved handling of out-parameters in generated Python.
467 Text representation of POD types via C++ operator<< and Python str().
468 Fixed ref-counting bug in iterators.
469 Updates for new MuPDF functions.
470
471 List of changes in MuPDF 1.18.0
472
473 mutool draw: bbox output format.
474 mutool draw: structured text extraction in JSON format.
475 mutool run: StructuredText.walk()
476 mutool run: PDFPage.process() and PDFAnnotation.process()
477
478 mupdf-gl: Added IBM Common User Access shortcuts for copy & paste.
479 mupdf-gl: Improved redaction UI.
480
481 java: Example desktop Java viewer.
482
483 wasm: WebAssembly viewer that runs in a browser.
484
485 api: Dehyphenation option in structured text extraction, to improve
486 searching for words that are hyphenated across lines.
487 api: pdf_new_date, pdf_to_date, pdf_dict_put_date and pdf_dict_get_date.
488 api: Added choice of image redaction algorithms: none, full, partial.
489 api: Optional use of Tesseract to use OCR to extract text.
490
491 svg: Many small parsing fixes.
492 svg: Parse inline CSS style attributes.
493 svg: Text elements (simple text layout only).
494
495 html: Added HTML5 parser.
496
497 pdf: High security redaction -- save redacted PDF as flattened bitmap,
498 guaranteed to not leak any sensitive redacted information.
499
500 Experimental C++ bindings.
501 Experimental Python bindings.
502
503 List of changes in MuPDF 1.17.0
504
505 api: Improved accessors for markup/ink/polygon annotation data.
506 api: Chapter based API for faster EPUB loading.
507 api: Add more documentation to header files.
508 api: Improved digital signature signing and verification.
509 api: Validate changes in a signed PDF file.
510
511 build: Moved windows build to VS2019 solution.
512
513 pdf: Redaction now works on images and links as well as text.
514 pdf: Greek, Cyrillic, Chinese, Japanese, and Korean scripts in forms and annotations.
515 pdf: File attachment annotations.
516 pdf: Use CCITT Fax compression for 1-bit images when creating PDF files.
517
518 epub: More forgiving XHTML parsing.
519 epub: Accelerator files to cache chapter data for faster EPUB loading.
520 epub: Optimized memory use.
521
522 mutool run: Edit Markup, Ink, and Polygon annotation data.
523 mutool run: Fill out form fields.
524 viewer: Ask for confirmation before closing a PDF with unsaved changes.
525 viewer: Embed and extract file attachment annotations.
526
527 library: Miscellaneous bugfixes.
528 library: Fixes to store operation.
529
530 thirdparty: Updated Harfbuzz to 2.6.4.
531 thirdparty: Updated jbig2dec to 0.18.
532 thirdparty: Updated MuJS to 1.0.7.
533 thirdparty: Updated OpenJPEG to 2.3.1.
534 thirdparty: Updated cURL to 7.66.0 (windows only).
535
536 List of changes in MuPDF 1.16.1
537
538 mupdf-x11: Changed key bindings to match mupdf-gl.
539 mupdf-x11: Invert by luminance for dark mode.
540 android: Fix compilation error.
541
542 List of changes in MuPDF 1.16.0
543
544 api: Major overhaul of color management architecture.
545 api: Improved functions to verify/sign PDF documents.
546 api: Number tree accessor function pdf_lookup_number.
547 api: Parse and handle more options for PWG output.
548 api: Removed obsolete gproof document type.
549 api: User callbacks for warning and error messages.
550
551 epub: Changed default page size to A5.
552 epub: Draw embedded SVG documents in EPUB/XHTML.
553 epub: New Noto fonts covering more unicode scripts.
554 epub: Support small-caps font-variant.
555 pdf: Add Redact annotation type and function to apply redactions.
556 pdf: Add/remove/change encryption and password when saving PDF files.
557 pdf: Improvements to text handling in PDF filter processor.
558 pdf: MP and DP operators now call begin/end_layer device methods.
559 pdf: New and improved progressive loading.
560 svg: Draw external images in SVG documents.
561
562 mutool show: Add 'form' selector to list PDF form fields.
563 mutool sign: Sign PDF documents from the command line.
564 mutool sign: Verify signatures in PDF documents from the command line.
565 viewer: Option to save a script of user actions for replay with mutool run.
566 viewer: Runtime toggle for ICC and spot rendering.
567 viewer: Tooltip when hovering over a link in mupdf-gl.
568
569 List of changes in MuPDF 1.15.0
570
571 General improvements:
572 * WebAssembly build target and examples.
573 * Improved forms API in both C and Java bindings.
574 * Improved forms JavaScript support.
575 * Create appearance streams for more form field types.
576 * Fixed many bugs in ICC color management.
577 * Fixed many memory leaks in error cleanup.
578 * Fixed bugs in pdfwrite output.
579 * Improved text extraction from LaTeX documents with math symbols.
580 * Improved trace device formatting.
581 * Support CBZ and CBT files larger than 2Gb.
582 * Show table of contents for FB2 and XHTML documents.
583 * Show embedded raster images in SVG and XHTML documents.
584 * Show FB2 cover page.
585 * Add option to save PDF files without encryption.
586 * Add inhibit-spaces option to stext device to turn off missing space detection.
587 * Simplified fz_try/fz_always/fz_catch macros.
588
589 mupdf-gl improvements:
590 * Automatically open annotation editor when selecting an annotation.
591 * Full page color tinting option in mupdf-gl.
592 * Show/hide table of contents sections.
593 * Trigger a reload with sighup.
594 * Toggle spot color mode with 'e'.
595
596 mutool improvements:
597 mutool show $PDF outline -- show outline with open/closed state indicator.
598 mutool show $PDF js -- show document level javascript.
599 mutool clean -A -- create appearance streams when missing.
600 mutool clean -AA -- recreate all appearance streams.
601 mutool run docs/examples/portfolio.js -- extract embedded files from PDF document.
602 mutool run docs/examples/pdf-dejpx.js -- decompress JPEG2000 images in PDF document.
603 mutool run docs/examples/fix-s22pdf.js -- fix fonts in documents generated by S22PDF.
604
605 Significant API changes:
606 * New and improved forms API.
607 * Renamed -DNO_ICC to -DFZ_ENABLE_ICC=0
608 * Removed fz_annot superclass. Use pdf_annot and pdf_widget directly instead.
609 * Annotations and Widgets now have separate enumerators.
610 * Added optional separations argument to pixmap rendering utility functions.
611
612 Various cleanups:
613 Per-function documentation comments moved to the source file.
614 Hopefully they will stay up to date more often than when they
615 were hidden away in the header file.
616
617 Removed unused internal testing tools: mjsgen and jstest.
618
619 Removed TGA output support. Use one of the more common and useful PAM,
620 PNM, PNG, or TIFF formats instead.
621
622 Removed support for PDF portfolios. This work-in-progress feature was
623 never completed, and only worked for a small subset of files.
624
625 Removed support for progressive loading. This rarely used feature added
626 a lot of complexity and was an unending source of bugs and strange
627 behaviour. Removing this feature has allowed us to clean up and
628 simplify large amounts of code, and fix dozens of bugs in one fell
629 swoop.
630
631 List of changes in MuPDF 1.14.0
632
633 * New features:
634 * Added "Source Han Serif" CJK fallback font.
635 * Added more scripts to the Noto fallback fonts.
636 * Multi-page PNM support.
637 * "mutool show" now supports a path syntax for selecting objects to show.
638
639 * Build system simplifications:
640 * Auto-generated CMap, ICC, and JS source files are checked in to git.
641 * Embedded CMap resources are now generated by a python script.
642 * Embedded font resources are linked directly if using GNU ld or windows.
643 * Namegen tool replaced by use of C macros.
644 * Simplified Makefile.
645
646 * Annotation editing:
647 * New annotation editing mode in mupdf-gl.
648 * Can create, edit, and delete most annotation types.
649 * Can create appearance streams for most annotation types.
650 * Can create appearance streams for Tx form fields.
651 * Can create appearance streams for Ch form fields.
652
653 * Form filling in mupdf-gl:
654 * Can click buttons, checkboxes, and radioboxes.
655 * Can fill out text fields using dialog box.
656 * Can select choice options using dialog box.
657 * Can verify and sign digital signatures.
658
659 * Improved UI for mupdf-gl:
660 * Password dialog.
661 * Error dialog.
662 * Open/save file dialog.
663 * Snap selection to words or lines by holding control or control+shift.
664 * Save and restore current location, bookmarks, and navigation history.
665
666 * Bug fixes:
667 * Improved CJK character fallback handling in EPUB.
668
669 * API changes:
670 * Pass rectangle and matrix structs by value.
671 * Replaced PDF_NAME_Xxx macros with PDF_NAME(Xxx).
672 * Added PDF_TRUE, PDF_FALSE, and PDF_NULL constant pdf_obj* macros.
673 * Added helper functions: pdf_dict_get_int, etc.
674 * Removed 'doc' argument in pdf_new_int, etc.
675 * Quads instead of rects when highlighting and searching text.
676 * mutool run: Pass arguments to script in scriptArgs global.
677
678 List of changes in MuPDF 1.13.0
679
680 * This is primarily a bugfix release.
681
682 * New "mutool sign" tool for showing and verifying digital signatures.
683 * Chinese, Japanese, Korean, Cyrillic, and Greek font support in mutool create.
684 * Improvements to annotation editing API.
685
686 List of changes in MuPDF 1.12.0
687
688 * New Android SDK:
689 New git repositories for the SDK projects:
690 * mupdf-android-fitz.git has the JNI bindings in a library.
691 * mupdf-android-viewer.git has the viewer as an activity in a library.
692 * mupdf-android-viewer-mini.git has the minimalist viewer as an activity in a library.
693 Binary packages in our Maven repository at http://maven.ghostscript.com:
694 * com.artifex.mupdf:fitz:1.12.+
695 * com.artifex.mupdf:viewer:1.12.+
696 * com.artifex.mupdf:mini:1.12.+
697
698 * Color management:
699 * LCMS2 library for color management.
700 * CMYK rendering with overprint simulation.
701 * Spot color rendering.
702 * Transparency rendering fixes.
703
704 * Structured text output improvements:
705 * Reworked structured text API.
706 * Faster text searching.
707 * Highlight and copy text by selecting lines instead of by area.
708 * New semantic XHTML output format.
709 * New layout preserving HTML output format.
710
711 * Features and improvements:
712 * Improved non-AA rendering with new scan converter.
713 * Improved LARGEFILE support.
714 * Improved TIFF support.
715 * Improved documentation.
716 * PCLm output.
717 * PSD output.
718 * New "mutool trace" tool.
719 * New "mutool sign" tool (work in progress).
720 * Text redaction (work in progress).
721
722 * Lots of bug fixes.
723
724 List of changes in MuPDF 1.11
725
726 * This is primarily a bug fix release.
727
728 * Split Android and iOS viewers into separate projects:
729 * mupdf-viewer-ios.git has the iOS viewer.
730 * mupdf-viewer-android-old.git has the Android viewer.
731 * mupdf-viewer-android-nui.git has a new advanced Android viewer.
732 * mupdf-viewer-android-mini.git has a new minimalist Android viewer.
733
734 * PDF portfolio support with command line tool "mutool portfolio".
735 * Add callbacks to load fallback fonts from the system.
736 * Use system fonts in Android to reduce install size.
737 * Flag to disable publisher styles in EPUB layout.
738 * Improved SVG output.
739
740 List of changes in MuPDF 1.10
741
742 * Headline changes:
743 * FictionBook (FB2) e-book support.
744 * Simple SVG parser (a small subset of SVG only).
745 * mutool convert: a new document conversion tool and interface.
746 * Multi-threaded rendering in mudraw.
747 * Luratech decoders for JBIG2 and JPEG2000 (commercial releases only).
748 * Optional JPEG-XR support (not included by default for security reasons).
749 * Updated base 14 fonts from URW.
750 * New CJK font with language specific variants.
751 * Hyperlink support in EPUB.
752
753 * Reduced memory use:
754 * New tool muraster: example printer driver with limited RAM usage and automatic banding.
755 * Alpha channel is now optional in pixmaps.
756 * More aggressive purging of cached objects.
757 * Partial image decoding for lower memory use when banding.
758
759 * Reduced code size when building with a subset of features:
760 * Reduced default set of built-in CMap tables to the minimum required.
761 * FZ_ENABLE_PDF, _XPS, _JS, to disable features at compile time.
762 * Function level linking.
763
764 * Interface changes and cleanups:
765 * Dropped pdf object generation numbers from public interfaces.
766 * Simplified PDF page, xobject, and annotation internals.
767 * Closing and freeing devices and writers are now separate steps.
768 * Improved PDF annotation editing interface (still a work in progress).
769 * Document writer interface.
770 * Banded image writer interface.
771
772 * Mobile viewers:
773 * New JNI interfaces to match capabilities of 'mutool run' javascript.
774 * New android and desktop java examples using new JNI interface.
775
776 List of changes in MuPDF 1.9
777
778 * Headline changes:
779 * New command line tools: create and run.
780 * New low-level Java interface for desktop and android.
781 * Bidirectional layout for Arabic and Hebrew scripts.
782 * Shaping complex scripts for EPUB text layout.
783 * Noto fallback fonts for EPUB layout.
784
785 * mutool create
786 Create new PDF files from scratch.
787 Read an annotated content stream in a text file and write a PDF file,
788 automatically embedding font and image resources.
789
790 * mutool run
791 Run javascript scripts with MuPDF bindings.
792 The interface is similar to the new Java interface.
793
794 * mutool draw
795 Optional multi-threaded operation (Windows and pthreads).
796 Optional low memory mode (primarily for testing).
797
798 List of changes in MuPDF 1.8
799
800 * Headline changes:
801 * New OpenGL-based barebones desktop viewer.
802 * New URW fonts with greek and cyrillic.
803 * 64-bit file support.
804 * Ghostscript proofing mode (source only; not in shipped binaries).
805
806 * EPUB improvements:
807 * User style sheets.
808 * GIF images (also for CBZ).
809 * Table of contents.
810 * CJK text.
811 * Page margins.
812 * Many bug fixes.
813
814 * Bug fixes:
815 * Updated FreeType to version 2.6.1.
816 * Various font substitution bug fixes.
817 * Fix setjmp/longjmp behaviour which could cause optimizing compilers to misbehave.
818
819 List of changes in MuPDF 1.7a
820
821 * Bugfixes
822 * Fixed bug that allocated too much memory when packing paths.
823 * Fixed EPUB font scaling bug.
824 * Fixed EPUB file type handling in viewers.
825 * Improved tolerance for broken and unsupported CSS.
826
827 * Features
828 * Added mudraw -z option to compress output streams.
829
830 List of changes in MuPDF 1.7
831
832 * Headline changes:
833 * New 'Indie dev' licensing options - contact sales@artifex.com for more details.
834 * New HTML layout engine, and (DRM-free) EPUB viewer.
835 * Reduced memory usage - displaylists and internal PDF representation take much less memory, reducing total memory use on some files by over 60%.
836
837 * Important API changes:
838 * Bound contexts have been removed; we now pass fz_contexts explicitly.
839 * Reference counting of paths and text structures.
840
841 * Features:
842 * Add mutool pages option.
843 * Tweaked rendering to prevent feature dropout in common cases.
844 * Viewer tweaks
845 * Better mouse wheel handling
846 * Shift-space support
847 * Mouse button control of presentation mode
848
849 * Internal changes:
850 * Removal of bound contexts; fz_contexts now passed explicitly everywhere.
851 * PDF filter revamp - simpler interface.
852 * Devices use derived structures rather than user pointer.
853 * Sparse PDF xrefs held in more compact form.
854 * New gsview viewer split out to its own repository.
855
856 * Bug fixes
857 * Improved handling of broken files.
858 * Fix BBoxes of Type 3 fonts.
859 * Updated fonts (including greek and cyrillic).
860 * Various memory leaks and crashes.
861 * And many more.
862
863
864 List of changes in MuPDF 1.6
865
866 * Features:
867 * Color detection device (mudraw -T).
868 * Sepia mode full-page color tinting in X11 and win32 viewer (keybinding: shift-C).
869 * Re-implement printf and strtod due to portability issue with locales and number formatting.
870 * Add 'gsview' project: a Windows Modern UI viewer.
871 * Improve XML parser interface.
872 * Bug fixes:
873 * CBZ page ordering
874 * ZIP64 support
875 * iOS and Android bug fixes
876 * Miscellaneous minor fixes
877
878
879 List of changes in MuPDF 1.5
880
881 * Bug fixes.
882
883
884 List of changes in MuPDF 1.4
885
886 * Headline changes:
887 * CMYK rendering (mudraw PWG and PAM formats)
888 * TIFF viewer (with multi-page support).
889 * Added MuJS Javascript interpreter.
890 * MuJS is the default, V8 and JavaScriptCore are compile time options.
891 * Javascript support has to be explicitly enabled with pdf_enable_js.
892 * All viewers now have JavaScript enabled in the default builds.
893 * Viewers:
894 * X11: Horizontal scroll wheel support.
895 * X11: Status bar display with warnings.
896 * Android: Digital signatures.
897 * iOS: Links, form filling, annotation editing, and javascript.
898 * iOS: Reflow mode.
899 * WinRT: Printing.
900 * WinRT: Improved zooming behaviour.
901 * Tools:
902 * mudraw: Banded rendering with -B /band-height/.
903 * mudraw: Select output format with -F /format/.
904 * mudraw: Write to stdout if you use '-' as the output file name.
905 * mudraw: Add TGA output format.
906 * mudraw: Improved SVG output.
907 * mutool show: Write output to file instead of stdout with -o /filename/.
908 * mutool clean: Clean content streams with -s option.
909 * Annotations:
910 * Improved font handling.
911 * Form fields.
912 * Free text.
913 * Sticky notes.
914 * Optimizations:
915 * glyph cache: Partial eviction.
916 * glyph cache: Run-length compressed glyphs.
917 * Smarter handling of subpixel metrics in text rendering.
918 * Optimized blitting functions.
919 * Optimized gradient mesh drawing.
920 * API changes and additions:
921 * fz_stream API reworked: replace "read" function with "next".
922 * "Rebind" functions to associate context bound objects with another context:
923 fz_output, fz_stream, fz_device and fz_document.
924 * Introduce "document handlers" to detect and open different file types.
925 * Must now call fz_register_document_handlers() to register the defaults.
926 * May register your own handlers as well to work with fz_open_document.
927 * Hook to load system fonts: fz_install_load_system_font_funcs.
928 * PDF xref cache flushing functions (mark/clear/clear-to-mark).
929 * Add our own "printf" set of functions to format strings and write to fz_output:
930 * Format %f as short as possible while preserving precision.
931 * Has %C for formatting a unicode character as UTF-8.
932 * Has %M to format fz_matrix.
933 * Has %R to format fz_rect.
934 * Has %q and %( to format strings with escaped characters.
935 * PDF process interface: allow PDF interpreter to do more than just draw!
936 * Content stream state cleaning filter.
937 * Content stream rewriting filter.
938 * PDF digital signatures.
939 * Stroke states may now be stored on the stack.
940 * Improved fz_path internals.
941 * Gradient mesh drawing interface has been improved.
942 * Save files with incremental updates.
943
944
945 List of changes in MuPDF 1.3
946
947 * Windows RT viewer app for MuPDF.
948 * Library changes to support progressive loading (display PDF files as
949 they download). Windows/Linux/MacOS viewer supports this using curl.
950 * Incremental updates to PDF files are now (optionally) preserved on
951 loading/saving.
952 * Prototype support for checking PDF Digital Signatures.
953 * Initial annotation support (strike-out, underline, highlight and ink)
954 (library and android builds only).
955 * Fix operation on Android API level 8.
956 * Android redraw optimisations.
957 * Android app now supports Google Cloud Print.
958 * Android app translated into many languages.
959 * Android support for more architectures.
960 * Improvements to store (avoid collisions causing unnecessary evictions).
961 * Windows apps use Unicode filenames now.
962 * PDF function handling improved; functions can now be passed to devices
963 without 'sampling'.
964 * PDF image handling improved; images can now be passed to devices
965 without decompression.
966 * Indexed images are no longer uncompressed at load time, saving memory.
967 * Caching of rendered tiles for speed.
968 * Improved text analysis mode, capable of spotting columns/indents,
969 right-to-left text etc.
970 * HTML output mode now includes image output.
971 * PDF password encoding handling improved.
972 * MuPDF now opens Jpeg, Tiff and PNG files directly.
973 * Bug preventing OpenXPS files from being opened fixed.
974 * Initial (feature incomplete) SVG and PDF output devices.
975 * PWG raster (mono/grey/RGB) and PCL (mono) output devices.
976 * Various performance improvements (including tilings and mesh based
977 shadings).
978 * Revamped directory structure to reflect recent changes.
979 * Various potential SEGV, SoftMask and rendering fixes.
980 * Many potential crashes in Jpeg2000 and JBIG2 images fixed.
981
982
983 List of changes in MuPDF 1.2
984
985 * Important API changes:
986 * fz_bbox is now fz_irect.
987 * APIs (including fz_device) now pass fz_rect/fz_matrix by reference.
988 * fz_device API is now more consistent with regards to use of
989 fz_rect rather than fz_bbox.
990 * Add support for Javascript and forms handling.
991 * Fix many SEGVs with out of spec files. Many thanks to Mateusz "j00ru"
992 Jurczyk and Gynvael Coldwind of the Google Security team, zeniko,
993 Sebastian Rasmussen and all other contributors.
994 * Add fz_open_document_with_stream to allow non-file based operation.
995 * Move to using git submodules for third party libraries.
996 * Much enhanced Android application. Now on Google Play!
997 * Oversized and stroke text clipping implemented.
998 * Change shadings to decompose at render times; massive memory savings.
999 * Renamed 'mubusy' to 'mutool'.
1000 * PDF 1.7 Extension Level 8 encryption implemented.
1001 * Added consts to various parts of the API to help C++ interworking.
1002 * Prototype transition support.
1003 * Text searching API moved to fitz.
1004 * Highlight and copy text selections.
1005 * Performance enhancements for color conversion and fax decompression.
1006 * ARM optimisations for color conversion and bitmap scaling.
1007 * Bitmap subsampling stage introduced, with ARM optimisations.
1008 * Type 3 fonts; glyphs are now handled as display lists.
1009 * Scan converter performance improvements.
1010 * Various rendering fixes.
1011
1012
1013 List of changes in MuPDF 1.1
1014
1015 * Rendering bugs fixed (text clipping, stroked text etc).
1016 * Better handling of 'large' (uncachable) glyphs.
1017 * Added a delete button to the library view on the iOS port.
1018 * Minor speed optimisations.
1019 * Shading bug fixes.
1020 * Move to using dynamically allocated parsing buffers (more resilient).
1021 * Support for UserUnits.
1022 * Fix bugs with image predictors (including with 16 bit images).
1023 * More resilient to out of spec files.
1024 * Extract pdf writing capability into the library from pdfclean, and
1025 expand on it to allow for linearisation. Bug fixes in the garbage
1026 collection of unused objects.
1027 * Improve pdf writing recognition of images.
1028 * Improved font matching.
1029 * Start to move away from macros to inline functions (helpful for
1030 applications requiring certification).
1031 * Many bugs fixed.