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 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  
... ...