Commit 1350df6476b497c222bb57e863d3a5f53017ebdb
1 parent
f348d300
Draft release notes
Showing
1 changed file
with
67 additions
and
9 deletions
manual/release-notes.rst
| ... | ... | @@ -18,15 +18,6 @@ Planned changes for future 12.x (subject to change): |
| 18 | 18 | would have to write code specifically to do that, so if you're not |
| 19 | 19 | sure, then you shouldn't have to worry. |
| 20 | 20 | |
| 21 | - - ``QPDFObjectHandle`` will be implicitly convertible to ``bool`` | |
| 22 | - with undefined objects evaluating to ``false``. This can simplify | |
| 23 | - error handling and will facilitate use of ``QPDFObjectHandle`` | |
| 24 | - with some newer standard library constructs. This change won't | |
| 25 | - affect any existing code unless you have written your own | |
| 26 | - conversion methods to/from ``QPDFObjectHandle``. In that case, | |
| 27 | - it's possible that the new qpdf-provided conversion may override | |
| 28 | - your conversion. | |
| 29 | - | |
| 30 | 21 | - ``Buffer`` copy constructor and assignment operator will be |
| 31 | 22 | removed. ``Buffer`` copy operations are expensive as they always |
| 32 | 23 | involve copying the buffer content. Use ``buffer2 = |
| ... | ... | @@ -39,6 +30,42 @@ Planned changes for future 12.x (subject to change): |
| 39 | 30 | .. x.y.z: not yet released |
| 40 | 31 | |
| 41 | 32 | 11.10.0: not yet released |
| 33 | + - Bug fixes | |
| 34 | + | |
| 35 | + - Detect and break loops in the outline (bookmark) tree. | |
| 36 | + | |
| 37 | + - Correctly handle outline (bookmark) items where the | |
| 38 | + destination is given as a dictionary with '/D' entry. | |
| 39 | + | |
| 40 | + - When loading object streams, ignore any objects not included | |
| 41 | + in the xref table. The PDF specification requires any object | |
| 42 | + that is not present in the xref table to be treated as the | |
| 43 | + null object. | |
| 44 | + | |
| 45 | + - When writing real numbers as JSON ensure they do not end in | |
| 46 | + a trailing decimal point. Numbers with trailing '.' are valid | |
| 47 | + PDF format but are not valid in JSON. | |
| 48 | + | |
| 49 | + - When ``QPDF::getObject``, ``getObjectByObjGen`` or | |
| 50 | + ``getObjectByID`` are called with a ``QPDFObjGen`` that does | |
| 51 | + not exists in the xref and object tables return a direct null. | |
| 52 | + Previously the methods inserted an indirect reference to the | |
| 53 | + null object in the object table, potentially hiding a valid | |
| 54 | + object with the same object id. | |
| 55 | + | |
| 56 | + - Fix handling of certain deleted objects in hybrid reference | |
| 57 | + files. Previously qpdf would incorrectly load a deleted | |
| 58 | + object if it was present in a cross-reference stream specified | |
| 59 | + by the /XRefStm entry. | |
| 60 | + | |
| 61 | + - Default the stream decode level to ``generalized``. Previously | |
| 62 | + the decode level incorrectly defaulted to ``none``, affecting | |
| 63 | + both the :qpdf:ref:`--decode-level` CLI option and the | |
| 64 | + ``QPDFWriter::setDecodeLevel`` method. | |
| 65 | + | |
| 66 | + - Reject CLI flags with parameters. Previously the parameter | |
| 67 | + was simply ignored (e.g. ``--encrypt=n`` was treated as ``--encrypt``). | |
| 68 | + | |
| 42 | 69 | - CLI Enhancements |
| 43 | 70 | |
| 44 | 71 | - The :command:`fix-qdf` command now allows an output file to be |
| ... | ... | @@ -46,11 +73,42 @@ Planned changes for future 12.x (subject to change): |
| 46 | 73 | environments in which writing a binary file to standard output |
| 47 | 74 | doesn't work (such as PowerShell 5). |
| 48 | 75 | |
| 76 | + - New :qpdf:ref:`--remove-metadata` and :qpdf:ref:`--remove-info` | |
| 77 | + options to exclude document metadata and information from the | |
| 78 | + output PDF. | |
| 79 | + | |
| 49 | 80 | - Library Enhancements |
| 50 | 81 | |
| 51 | 82 | - qpdf can now be built with zopfli support. For details, see |
| 52 | 83 | :ref:`zopfli`. |
| 53 | 84 | |
| 85 | + - Add ``QPDFObjectHandle operator bool``. The operator returns true | |
| 86 | + if the object handle is initialized and is a replacement for the | |
| 87 | + ``isInitialized`` method. For more details see the | |
| 88 | + `qpdf wiki <https://github.com/qpdf/qpdf/wiki/Use-of-default-constructed-object-handles-in-qpdf-to-indicate-failure-or-error>`__. | |
| 89 | + | |
| 90 | + - New C API function ``qpdf_oh_free_buffer`` to free malloc allocated | |
| 91 | + buffers. | |
| 92 | + | |
| 93 | + - Other enhancements | |
| 94 | + | |
| 95 | + - There has been some refactoring of the processing of xref tables | |
| 96 | + during the loading of PDF files, including the reconstruction of | |
| 97 | + xref tables of damaged files. As part of this additional | |
| 98 | + validations have been added. As a result, some damaged files will | |
| 99 | + produce errors during loading rather than during later processing | |
| 100 | + or writing. Repair of damaged files has been improved. | |
| 101 | + | |
| 102 | + - As part of the additional validations during the loading of PDF | |
| 103 | + files, non-dictionary objects are now automatically removed from | |
| 104 | + pages tree. | |
| 105 | + | |
| 106 | + - The handling of corrupt filtered streams has changed. If a | |
| 107 | + compressed stream cannot be successfully uncompressed, qpdf will | |
| 108 | + now write the undecoded stream even if decode-level generalized or | |
| 109 | + specialized is set. The result of attempting to decode a corrupt | |
| 110 | + stream is generally unusable and can be extremely large. | |
| 111 | + | |
| 54 | 112 | 11.9.1: June 7, 2024 |
| 55 | 113 | - Bug Fixes |
| 56 | 114 | ... | ... |