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,15 +18,6 @@ Planned changes for future 12.x (subject to change): | ||
| 18 | would have to write code specifically to do that, so if you're not | 18 | would have to write code specifically to do that, so if you're not |
| 19 | sure, then you shouldn't have to worry. | 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 | - ``Buffer`` copy constructor and assignment operator will be | 21 | - ``Buffer`` copy constructor and assignment operator will be |
| 31 | removed. ``Buffer`` copy operations are expensive as they always | 22 | removed. ``Buffer`` copy operations are expensive as they always |
| 32 | involve copying the buffer content. Use ``buffer2 = | 23 | involve copying the buffer content. Use ``buffer2 = |
| @@ -39,6 +30,42 @@ Planned changes for future 12.x (subject to change): | @@ -39,6 +30,42 @@ Planned changes for future 12.x (subject to change): | ||
| 39 | .. x.y.z: not yet released | 30 | .. x.y.z: not yet released |
| 40 | 31 | ||
| 41 | 11.10.0: not yet released | 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 | - CLI Enhancements | 69 | - CLI Enhancements |
| 43 | 70 | ||
| 44 | - The :command:`fix-qdf` command now allows an output file to be | 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,11 +73,42 @@ Planned changes for future 12.x (subject to change): | ||
| 46 | environments in which writing a binary file to standard output | 73 | environments in which writing a binary file to standard output |
| 47 | doesn't work (such as PowerShell 5). | 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 | - Library Enhancements | 80 | - Library Enhancements |
| 50 | 81 | ||
| 51 | - qpdf can now be built with zopfli support. For details, see | 82 | - qpdf can now be built with zopfli support. For details, see |
| 52 | :ref:`zopfli`. | 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 | 11.9.1: June 7, 2024 | 112 | 11.9.1: June 7, 2024 |
| 55 | - Bug Fixes | 113 | - Bug Fixes |
| 56 | 114 |