Opened 6 weeks ago

Closed 5 weeks ago

#21046 closed enhancement (fixed)

qpdf-11.10.0

Reported by: Douglas R. Reno Owned by: Douglas R. Reno
Priority: normal Milestone: 12.3
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New minor version

Change History (3)

comment:1 by Douglas R. Reno, 5 weeks ago

Owner: changed from blfs-book to Douglas R. Reno
Status: newassigned

comment:2 by Douglas R. Reno, 5 weeks ago

11.10.0: February 8, 2025

Bug fixes

Detect and break loops in the outline (bookmark) tree.

Correctly handle outline (bookmark) items where the destination is given as a dictionary 
with ‘/D’ entry.

When loading object streams, ignore any objects not included in the xref table. The PDF 
specification requires any object that is not present in the xref table to be treated as 
the null object.

When writing real numbers as JSON ensure they do not end in a trailing decimal point. 
Numbers with trailing ‘.’ are valid PDF format but are not valid in JSON.

When QPDF::getObject, getObjectByObjGen or getObjectByID are called with a 
QPDFObjGen that does not exists in the xref and object tables return a direct null. 
Previously the methods inserted an indirect reference to the null object in the object 
table, potentially hiding a valid object with the same object id.

Fix handling of certain deleted objects in hybrid reference files. Previously qpdf would 
incorrectly load a deleted object if it was present in a cross-reference stream 
specified by the /XRefStm entry.

Default the stream decode level to generalized. Previously the decode level incorrectly 
defaulted to none, affecting both the --decode-level CLI option and the 
QPDFWriter::setDecodeLevel method.

Reject CLI flags with parameters. Previously the parameter was simply ignored (e.g. --
encrypt=n was treated as --encrypt).

CLI Enhancements

The fix-qdf command now allows an output file to be specified as an optional second 
argument. This is useful for environments in which writing a binary file to standard 
output doesn’t work (such as PowerShell 5).

New --remove-metadata and --remove-info options to exclude document metadata and 
information from the output PDF.

Library Enhancements

qpdf can now be built with zopfli support. For details, see Zopfli Compression 
Algorithm.

Add QPDFObjectHandle operator bool. The operator returns true if the object 
handle is initialized and is a replacement for the isInitialized method. For more 
details see the qpdf wiki.

New C API function qpdf_oh_free_buffer to free malloc allocated buffers.

Other enhancements

There has been some refactoring of the processing of xref tables during the 
loading of PDF files, including the reconstruction of xref tables of damaged files. As 
part of this additional validations have been added. As a result, some damaged files 
will produce errors during loading rather than during later processing or writing. 

Repair of damaged files has been improved.

As part of the additional validations during the loading of PDF files, non-dictionary 
objects are now automatically removed from pages tree.

The handling of corrupt filtered streams has changed. If a compressed stream 
cannot be successfully uncompressed, qpdf will now write the raw (encoded) stream even 
if decode-level generalized or specialized is set. The result of attempting to decode a 
corrupt stream is generally unusable and can be extremely large.

comment:3 by Douglas R. Reno, 5 weeks ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.