Commit badcdf8fe0287ff8055fc483087331ce417055c6

Authored by m-holger
Committed by GitHub
2 parents f348d300 1350df64

Merge pull request #1355 from m-holger/rs

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