From fb86d2819e2f75abb084da8ff910a12d5b5382e6 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Tue, 23 Feb 2021 10:36:47 -0500 Subject: Clean up 10.2 release notes --- manual/qpdf-manual.xml | 125 ++++++++++++++++++++++++------------------------- 1 file changed, 60 insertions(+), 65 deletions(-) (limited to 'manual/qpdf-manual.xml') diff --git a/manual/qpdf-manual.xml b/manual/qpdf-manual.xml index 35391938..8a1b84ff 100644 --- a/manual/qpdf-manual.xml +++ b/manual/qpdf-manual.xml @@ -5069,6 +5069,19 @@ print "\n"; CLI Behavior Changes + + + Operations that work on combining pages are much better + about protecting form fields. In particular, + and + now preserve interaction form functionality by copying the + relevant form field information from the original files. + Additionally, if you use to select + only some pages from the original input file, unused form + fields are removed, which prevents lots of unused + annotations from being retained. + + By default, qpdf no longer allows @@ -5143,6 +5156,23 @@ print "\n"; linkend="ref.attachments"/> for details. + + + Page splitting and merging operations, as well as + , are better behaved + with respect to annotations and interactive form fields. In + most cases, interactive form field functionality and proper + formatting and functionality of annotations is preserved by + these operations. There are still some cases that aren't + perfect, such as when functionality of annotations depends + on document-level data that qpdf doesn't yet understand or + when there are problems with referential integrity among + form fields and annotations (e.g., when a single form field + object or its associated annotations are shared across + multiple pages, a case that is out of spec but that works in + most viewers anyway). + + The option @@ -5188,6 +5218,15 @@ print "\n"; Library Enhancements + + + This release includes numerous additions to the API. Not all + changes are listed here. Please see the + ChangeLog file in the source + distribution for a comprehensive list. Highlights appear + below. + + Add QPDFObjectHandle::ditems() and @@ -5206,14 +5245,6 @@ print "\n"; QPDF instance. - - - Add QUtil::get_current_qpdf_time, - QUtil::pdf_time_to_qpdf_time, and - QUtil::qpdf_time_to_pdf_time for - working with PDF timestamp strings. - - Add new helper classes for supporting file attachments, also @@ -5226,19 +5257,6 @@ print "\n"; example. - - - Add warn to - QPDF's public API. - - - - - QPDFObjectHandle::is* methods now return - false rather than crashing when called with an uninitialized - QPDFObjectHandle object. - - Add a version of @@ -5259,13 +5277,6 @@ print "\n"; read/write implementation of name and number trees. - - - Add new functions QUtil::pipe_file and - QUtil::file_provider for sending the - contents of a file through a pipeline as binary data. - - Add new versions of @@ -5273,17 +5284,8 @@ print "\n"; that take std::function objects for cases when you need something between a static string and a full-fledged StreamDataProvider. Using this with - QUtil::file_provider is a very easy way to create a stream - from the contents of a file. - - - - - Add option to QUtil::double_to_string - to trim trailing zeroes, which is on by default. Within the - qpdf library, this causes changes to output the from code - that places form XObjects and the code that flattens - rotations. + QUtil::file_provider is a very easy way + to create a stream from the contents of a file. @@ -5292,28 +5294,19 @@ print "\n"; private, internal class, has been added to the public API. See include/qpdf/QPDFMatrix.hh for details. This class is for working with transformation - matrices. + matrices. Some methods in + QPDFPageObjectHelper make use of this + to make information about transformation matrices available. + For an example, see + examples/pdf-overlay-page.cc. - Add - QPDFPageObjectHelper::getMatrixForFormXObjectPlacement, - which returns the transformation matrix required to map from - a form field's coordinate system into a specific rectangle - within the page. Also add a version of - QPDFPageObjectHelper::placeFormXObject - that initializes a QPDFMatrix - reference. For example, see - examples/pdf-overlay-page.cc. - - - - - Add method - QPDFAcroFormDocumentHelper::addFormField, - which adds a new form field, initializing the AcroForm - dictionary if needed. + Several new methods were added to + QPDFAcroFormDocumentHelper for + adding, removing, getting information about, and enumerating + form fields. @@ -5332,12 +5325,6 @@ print "\n"; rectangles. - - - Add QUtil::path_basename to return the - last element of a path. - - @@ -5362,7 +5349,7 @@ print "\n"; - The option applies + The option applies transformations to any annotations that may be on the page. @@ -5373,7 +5360,15 @@ print "\n"; containing page. This is compliant with older PDF versions. Also detect if any form XObjects have any unresolved names and, if so, don't remove unreferenced resources from them or - from the page that contains them. + from the page that contains them. Unfortunately this has the + side effect of preventing removal of unreferenced resources + in some cases where names appear that don't refer to + resources, such as with tagged PDF. This is a bit of a + corner case that is not likely to cause a significant + problem in practice, but the only side effect would be lack + of removal of shared resources. A future version of qpdf may + be more sophisticated in its detection of names that refer + to resources. -- cgit v1.2.3-54-g00ecf