Subject: CVS commit: pkgsrc/print/qpdf
From: Ryo ONODERA
Date: 2018-07-16 01:37:37
Message id: 20180715233737.AC776FBEC@cvs.NetBSD.org

Log Message:
Update to 8.1.0

Changelog:
8.1.0: June 23, 2018

        Usability Improvements

            When splitting files, qpdf detects fonts and images that the \ 
document metadata claims are referenced from a page but are not actually \ 
referenced and omits them from the output file. This change can cause a \ 
significant reduction in the size of split PDF files for files created by some \ 
software packages. Prior versions of qpdf would believe the document metadata \ 
and sometimes include all the images from all the other pages even though the \ 
pages were no longer present. In the unlikely event that the old behavior should \ 
be desired, it can be enabled by specifying --preserve-unreferenced-resources. \ 
For additional details, please see Section 3.6, “Advanced Transformation \ 
Options”.

            When merging multiple PDF files, qpdf no longer leaves all the files \ 
open. This makes it possible to merge numbers of files that may exceed the \ 
operating system's limit for the maximum number of open files.

            The --rotate option's syntax has been extended to make the page \ 
range optional. If you specify --rotate=angle without specifying a page range, \ 
the rotation will be applied to all pages. This can be especially useful for \ 
adjusting a PDF created from a multi-page document that was scanned upside down.

            When merging multiple files, the --verbose option now prints \ 
information about each file as it operates on that file.

            When the --progress option is specified, qpdf will print a running \ 
indicator of its best guess at how far through the writing process it is. Note \ 
that, as with all progress meters, it's an approximation. This option is \ 
implemented in a way that makes it useful for software that uses the qpdf \ 
library; see API Enhancements below.

        Bug Fixes

            Properly decrypt files that use revision 3 of the standard security \ 
handler but use 40 bit keys (even though revision 3 supports 128-bit keys).

            Limit depth of nested data structures to prevent crashes from \ 
certain types of malformed (malicious) PDFs.

            In “newline before endstream” mode, insert the required extra \ 
newline before the endstream at the end of object streams. This one case was \ 
previously omitted.

        API Enhancements

            The first round of higher level “helper” interfaces has been \ 
introduced. These are designed to provide a more convenient way of interacting \ 
with certain document features than using QPDFObjectHandle directly. For details \ 
on helpers, see Section 6.3, “Helper Classes”. Specific additional \ 
interfaces are described below.

            Add two new document helper classes: QPDFPageDocumentHelper for \ 
working with pages, and QPDFAcroFormDocumentHelper for working with interactive \ 
forms. No old methods have been removed, but QPDFPageDocumentHelper is now the \ 
preferred way to perform operations on pages rather than calling the old methods \ 
in QPDFObjectHandle and QPDF directly. Comments in the header files direct you \ 
to the new interfaces. Please see the header files and ChangeLog for additional \ 
details.

            Add three new object helper class: QPDFPageObjectHelper for pages, \ 
QPDFFormFieldObjectHelper for interactive form fields, and \ 
QPDFAnnotationObjectHelper for annotations. All three classes are fairly sparse \ 
at the moment, but they have some useful, basic functionality.

            A new example program examples/pdf-set-form-values.cc has been added \ 
that illustrates use of the new document and object helpers.

            The method QPDFWriter::registerProgressReporter has been added. This \ 
method allows you to register a function that is called by QPDFWriter to update \ 
your idea of the percentage it thinks it is through writing its output. Client \ 
programs can use this to implement reasonably accurate progress meters. The qpdf \ 
command line tool uses this to implement its --progress option.

            New methods QPDFObjectHandle::newUnicodeString and \ 
QPDFObject::unparseBinary have been added to allow for more convenient creation \ 
of strings that are explicitly encoded using big-endian UTF-16. This is useful \ 
for creating strings that appear outside of content streams, such as labels, \ 
form fields, outlines, document metadata, etc.

            A new class QPDFObjectHandle::Rectangle has been added to ease \ 
working with PDF rectangles, which are just arrays of four numeric values.

Files:
RevisionActionfile
1.21modifypkgsrc/print/qpdf/Makefile
1.6modifypkgsrc/print/qpdf/PLIST
1.3modifypkgsrc/print/qpdf/buildlink3.mk
1.18modifypkgsrc/print/qpdf/distinfo