Mercurial > hgrepos > Python2 > PyMuPDF
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. |
