diff --git a/ChangeLog b/ChangeLog index a55a97e8..81b4603c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,22 @@ 2022-02-08 Jay Berkenbilt + * Bug fix: when splitting pages with --split-pages or selecting + pages with --pages, set the output PDF version to the maximum of + all the input PDF versions. This is a fix to QPDFJob. If you are + creating output PDF files yourself from multiple inputs, you will + need to code the same thing. The new PDFVersion object, its + updateIfGreater() method, and the new QPDF and QPDFWriter methods + described below make this very easy to do. Fixes #610. + * Add new class PDFVersion for more convenient comparison of PDF version numbers from the %!PDF header. * Add QPDF::getVersionAsPDFVersion() to return the PDF version and extension together as a PDFVersion object instead of a string. + * Add a QPDFWriter::setMinimumPDFVersion() that takes a PDFVersion + object. + 2022-02-06 Jay Berkenbilt * Pl_Buffer and QPDFWriter: add getBufferSharedPointer(), which diff --git a/TODO b/TODO index 89576b9a..a768637b 100644 --- a/TODO +++ b/TODO @@ -1,8 +1,3 @@ -10.6 -==== - -* https://github.com/qpdf/qpdf/issues/610 - Next ==== diff --git a/include/qpdf/QPDFJob.hh b/include/qpdf/QPDFJob.hh index 799a34fd..9524fdbf 100644 --- a/include/qpdf/QPDFJob.hh +++ b/include/qpdf/QPDFJob.hh @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -587,6 +588,7 @@ class QPDFJob int flatten_annotations_required; int flatten_annotations_forbidden; bool generate_appearances; + PDFVersion max_input_version; std::string min_version; std::string force_version; bool show_npages; diff --git a/include/qpdf/QPDFWriter.hh b/include/qpdf/QPDFWriter.hh index 97d190a7..1f8fc360 100644 --- a/include/qpdf/QPDFWriter.hh +++ b/include/qpdf/QPDFWriter.hh @@ -42,11 +42,11 @@ #include #include #include - #include #include #include #include +#include class QPDF; class Pl_Count; @@ -265,6 +265,8 @@ class QPDFWriter // streams are used. QPDF_DLL void setMinimumPDFVersion(std::string const&, int extension_level = 0); + QPDF_DLL + void setMinimumPDFVersion(PDFVersion const&); // Force the PDF version of the output file to be a given version. // Use of this function may create PDF files that will not work diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index fab552fc..5886d6ba 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -2047,6 +2047,7 @@ QPDFJob::doProcessOnce( { fn(pdf.get(), password); } + this->m->max_input_version.updateIfGreater(pdf->getVersionAsPDFVersion()); return pdf; } @@ -3472,6 +3473,7 @@ QPDFJob::setWriterOptions(QPDF& pdf, QPDFWriter& w) { w.setObjectStreamMode(m->object_stream_mode); } + w.setMinimumPDFVersion(this->m->max_input_version); if (! m->min_version.empty()) { std::string version; diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index bb568623..c8a5bb18 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -296,6 +296,15 @@ QPDFWriter::setMinimumPDFVersion(std::string const& version, } } +void +QPDFWriter::setMinimumPDFVersion(PDFVersion const& v) +{ + std::string version; + int extension_level; + v.getVersion(version, extension_level); + setMinimumPDFVersion(version, extension_level); +} + void QPDFWriter::forcePDFVersion(std::string const& version, int extension_level) diff --git a/manual/release-notes.rst b/manual/release-notes.rst index dfd42855..b12e5e7f 100644 --- a/manual/release-notes.rst +++ b/manual/release-notes.rst @@ -148,6 +148,14 @@ For a detailed list of changes, please see the file embedded NUL characters. Thanks to M. Holger for the contribution. + - New ``PDFVersion`` class for representing a PDF version number + with the ability to compare and order PDF versions. Methods + ``QPDF::getVersionAsPDFVersion`` and a new version of + ``QPDFWriter::setMinimumPDFVersion`` use it. This makes it + easier to create an output file whose PDF version is the maximum + of the versions across all the input files that contributed to + it. + - The ``JSON`` object in the qpdf library has been enhanced to include a parser and the ability to get values out of the ``JSON`` object. Previously it was a write-only interface. Even @@ -181,6 +189,10 @@ For a detailed list of changes, please see the file - Some characters were not correctly translated from PDF doc encoding to Unicode. + - When splitting or combining pages, ensure that all output files + have a PDF version greater than or equal to the maximum version + of all the input files. + 10.5.0: December 21, 2021 - Packaging changes diff --git a/qpdf/qtest/qpdf/01_split-exp.zdf b/qpdf/qtest/qpdf/01_split-exp.zdf index 7c37942f..f28359cd 100644 Binary files a/qpdf/qtest/qpdf/01_split-exp.zdf and b/qpdf/qtest/qpdf/01_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/02_split-exp.zdf b/qpdf/qtest/qpdf/02_split-exp.zdf index cced06c3..0c0d088c 100644 Binary files a/qpdf/qtest/qpdf/02_split-exp.zdf and b/qpdf/qtest/qpdf/02_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/03_split-exp.zdf b/qpdf/qtest/qpdf/03_split-exp.zdf index 7206ff55..964bfb71 100644 Binary files a/qpdf/qtest/qpdf/03_split-exp.zdf and b/qpdf/qtest/qpdf/03_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/04_split-exp.zdf b/qpdf/qtest/qpdf/04_split-exp.zdf index d8a652ef..28a46191 100644 Binary files a/qpdf/qtest/qpdf/04_split-exp.zdf and b/qpdf/qtest/qpdf/04_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/05_split-exp.zdf b/qpdf/qtest/qpdf/05_split-exp.zdf index 498596f8..aea6342b 100644 Binary files a/qpdf/qtest/qpdf/05_split-exp.zdf and b/qpdf/qtest/qpdf/05_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/06_split-exp.zdf b/qpdf/qtest/qpdf/06_split-exp.zdf index 016d83a9..ae27f4c3 100644 Binary files a/qpdf/qtest/qpdf/06_split-exp.zdf and b/qpdf/qtest/qpdf/06_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/07_split-exp.zdf b/qpdf/qtest/qpdf/07_split-exp.zdf index bb1ed0ba..7aa16f04 100644 Binary files a/qpdf/qtest/qpdf/07_split-exp.zdf and b/qpdf/qtest/qpdf/07_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/08_split-exp.zdf b/qpdf/qtest/qpdf/08_split-exp.zdf index bd6b7f22..7b47747c 100644 Binary files a/qpdf/qtest/qpdf/08_split-exp.zdf and b/qpdf/qtest/qpdf/08_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/09_split-exp.zdf b/qpdf/qtest/qpdf/09_split-exp.zdf index 1b63f675..4f9f46b7 100644 Binary files a/qpdf/qtest/qpdf/09_split-exp.zdf and b/qpdf/qtest/qpdf/09_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/10_split-exp.zdf b/qpdf/qtest/qpdf/10_split-exp.zdf index f3d209a4..525b1a9d 100644 Binary files a/qpdf/qtest/qpdf/10_split-exp.zdf and b/qpdf/qtest/qpdf/10_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/11_split-exp.zdf b/qpdf/qtest/qpdf/11_split-exp.zdf index 158f9c78..40ff70b0 100644 Binary files a/qpdf/qtest/qpdf/11_split-exp.zdf and b/qpdf/qtest/qpdf/11_split-exp.zdf differ diff --git a/qpdf/qtest/qpdf/direct-dr-out.pdf b/qpdf/qtest/qpdf/direct-dr-out.pdf index ea1a227c..65fbada8 100644 --- a/qpdf/qtest/qpdf/direct-dr-out.pdf +++ b/qpdf/qtest/qpdf/direct-dr-out.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.6 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/dr-with-indirect-item-out.pdf b/qpdf/qtest/qpdf/dr-with-indirect-item-out.pdf index c6f5c88b..19a6d6f7 100644 --- a/qpdf/qtest/qpdf/dr-with-indirect-item-out.pdf +++ b/qpdf/qtest/qpdf/dr-with-indirect-item-out.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ 1 0 obj << /AcroForm 2 0 R /Pages 3 0 R /Type /Catalog >> diff --git a/qpdf/qtest/qpdf/fields-pages-out.pdf b/qpdf/qtest/qpdf/fields-pages-out.pdf index 56d70a9e..01364e69 100644 Binary files a/qpdf/qtest/qpdf/fields-pages-out.pdf and b/qpdf/qtest/qpdf/fields-pages-out.pdf differ diff --git a/qpdf/qtest/qpdf/fields-split-1.pdf b/qpdf/qtest/qpdf/fields-split-1.pdf index d7479e67..c625922f 100644 Binary files a/qpdf/qtest/qpdf/fields-split-1.pdf and b/qpdf/qtest/qpdf/fields-split-1.pdf differ diff --git a/qpdf/qtest/qpdf/fields-split-2.pdf b/qpdf/qtest/qpdf/fields-split-2.pdf index 034c1a89..35a0fb87 100644 Binary files a/qpdf/qtest/qpdf/fields-split-2.pdf and b/qpdf/qtest/qpdf/fields-split-2.pdf differ diff --git a/qpdf/qtest/qpdf/indirect-r-arg.out b/qpdf/qtest/qpdf/indirect-r-arg.out index ab912e1d..d5c6a3ca 100644 --- a/qpdf/qtest/qpdf/indirect-r-arg.out +++ b/qpdf/qtest/qpdf/indirect-r-arg.out @@ -1,7 +1,7 @@ -checking indirect-r-arg.pdf WARNING: indirect-r-arg.pdf (object 1 0, offset 76): unknown token while reading object; treating as string WARNING: indirect-r-arg.pdf (object 1 0, offset 62): expected dictionary key but found non-name object; inserting key /QPDFFake1 WARNING: indirect-r-arg.pdf (object 1 0, offset 62): expected dictionary key but found non-name object; inserting key /QPDFFake2 +checking indirect-r-arg.pdf PDF Version: 1.3 File is not encrypted File is not linearized diff --git a/qpdf/qtest/qpdf/job-json-copy-attachments.pdf b/qpdf/qtest/qpdf/job-json-copy-attachments.pdf index ab49f624..446b15ef 100644 Binary files a/qpdf/qtest/qpdf/job-json-copy-attachments.pdf and b/qpdf/qtest/qpdf/job-json-copy-attachments.pdf differ diff --git a/qpdf/qtest/qpdf/job-json-empty-input.pdf b/qpdf/qtest/qpdf/job-json-empty-input.pdf index b93a9113..9f2653b5 100644 Binary files a/qpdf/qtest/qpdf/job-json-empty-input.pdf and b/qpdf/qtest/qpdf/job-json-empty-input.pdf differ diff --git a/qpdf/qtest/qpdf/job-json-underlay-overlay-password.pdf b/qpdf/qtest/qpdf/job-json-underlay-overlay-password.pdf index 31c0e1f8..8296bd3d 100644 Binary files a/qpdf/qtest/qpdf/job-json-underlay-overlay-password.pdf and b/qpdf/qtest/qpdf/job-json-underlay-overlay-password.pdf differ diff --git a/qpdf/qtest/qpdf/labels-split-01-06.pdf b/qpdf/qtest/qpdf/labels-split-01-06.pdf index 1058eba1..aee0a94b 100644 --- a/qpdf/qtest/qpdf/labels-split-01-06.pdf +++ b/qpdf/qtest/qpdf/labels-split-01-06.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/labels-split-07-11.pdf b/qpdf/qtest/qpdf/labels-split-07-11.pdf index 42120fed..be18191d 100644 --- a/qpdf/qtest/qpdf/labels-split-07-11.pdf +++ b/qpdf/qtest/qpdf/labels-split-07-11.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/merge-implicit-ranges.pdf b/qpdf/qtest/qpdf/merge-implicit-ranges.pdf index be17bf46..08c652d9 100644 --- a/qpdf/qtest/qpdf/merge-implicit-ranges.pdf +++ b/qpdf/qtest/qpdf/merge-implicit-ranges.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ 1 0 obj << /PageLabels << /Nums [ 0 << /St 1 >> 21 << /P () /St 1 >> 23 << /S /r /St 1 >> 28 << /P () /St 1 >> 30 << /S /r /St 6 >> 32 << /P () /St 1 >> 33 << /S /D /St 2 >> 36 << /S /D /St 6 >> 40 << /P () /St 1 >> 41 << /S /D /St 12 >> 43 << /S /D /St 16059 >> 44 << /S /r /St 50 >> 50 << /S /r /St 54 >> ] >> /Pages 2 0 R /Type /Catalog >> diff --git a/qpdf/qtest/qpdf/merge-multiple-labels.pdf b/qpdf/qtest/qpdf/merge-multiple-labels.pdf index d767e760..f2b13862 100644 Binary files a/qpdf/qtest/qpdf/merge-multiple-labels.pdf and b/qpdf/qtest/qpdf/merge-multiple-labels.pdf differ diff --git a/qpdf/qtest/qpdf/merge-three-files-1.pdf b/qpdf/qtest/qpdf/merge-three-files-1.pdf index 42e84a22..138ccba5 100644 Binary files a/qpdf/qtest/qpdf/merge-three-files-1.pdf and b/qpdf/qtest/qpdf/merge-three-files-1.pdf differ diff --git a/qpdf/qtest/qpdf/merge-three-files-2.pdf b/qpdf/qtest/qpdf/merge-three-files-2.pdf index 2d472ac6..fa9cfaac 100644 Binary files a/qpdf/qtest/qpdf/merge-three-files-2.pdf and b/qpdf/qtest/qpdf/merge-three-files-2.pdf differ diff --git a/qpdf/qtest/qpdf/obj0-check.out b/qpdf/qtest/qpdf/obj0-check.out index d4a33eb6..785131d4 100644 --- a/qpdf/qtest/qpdf/obj0-check.out +++ b/qpdf/qtest/qpdf/obj0-check.out @@ -1,7 +1,7 @@ -checking obj0.pdf WARNING: obj0.pdf: file is damaged WARNING: obj0.pdf (object 1 0, offset 77): expected n n obj WARNING: obj0.pdf: Attempting to reconstruct cross-reference table +checking obj0.pdf PDF Version: 1.3 File is not encrypted File is not linearized diff --git a/qpdf/qtest/qpdf/overlay-copy-annotations-p1.pdf b/qpdf/qtest/qpdf/overlay-copy-annotations-p1.pdf index 54ff4d45..f1907117 100644 --- a/qpdf/qtest/qpdf/overlay-copy-annotations-p1.pdf +++ b/qpdf/qtest/qpdf/overlay-copy-annotations-p1.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.6 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/overlay-copy-annotations-p2.pdf b/qpdf/qtest/qpdf/overlay-copy-annotations-p2.pdf index 62b3fa34..4ed2c002 100644 --- a/qpdf/qtest/qpdf/overlay-copy-annotations-p2.pdf +++ b/qpdf/qtest/qpdf/overlay-copy-annotations-p2.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.6 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/overlay-copy-annotations-p5.pdf b/qpdf/qtest/qpdf/overlay-copy-annotations-p5.pdf index d7861336..fac19fb2 100644 --- a/qpdf/qtest/qpdf/overlay-copy-annotations-p5.pdf +++ b/qpdf/qtest/qpdf/overlay-copy-annotations-p5.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.6 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/overlay-copy-annotations-p6.pdf b/qpdf/qtest/qpdf/overlay-copy-annotations-p6.pdf index b9154b81..2e661246 100644 --- a/qpdf/qtest/qpdf/overlay-copy-annotations-p6.pdf +++ b/qpdf/qtest/qpdf/overlay-copy-annotations-p6.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.6 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/overlay-copy-annotations.pdf b/qpdf/qtest/qpdf/overlay-copy-annotations.pdf index 31794383..4a5c19d5 100644 --- a/qpdf/qtest/qpdf/overlay-copy-annotations.pdf +++ b/qpdf/qtest/qpdf/overlay-copy-annotations.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.6 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/remove-labels.pdf b/qpdf/qtest/qpdf/remove-labels.pdf index 838f4cbb..f9d5b803 100644 Binary files a/qpdf/qtest/qpdf/remove-labels.pdf and b/qpdf/qtest/qpdf/remove-labels.pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-01.Pdf b/qpdf/qtest/qpdf/split-exp-01.Pdf index 7c37942f..f28359cd 100644 Binary files a/qpdf/qtest/qpdf/split-exp-01.Pdf and b/qpdf/qtest/qpdf/split-exp-01.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-02.Pdf b/qpdf/qtest/qpdf/split-exp-02.Pdf index cced06c3..0c0d088c 100644 Binary files a/qpdf/qtest/qpdf/split-exp-02.Pdf and b/qpdf/qtest/qpdf/split-exp-02.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-03.Pdf b/qpdf/qtest/qpdf/split-exp-03.Pdf index 7206ff55..964bfb71 100644 Binary files a/qpdf/qtest/qpdf/split-exp-03.Pdf and b/qpdf/qtest/qpdf/split-exp-03.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-04.Pdf b/qpdf/qtest/qpdf/split-exp-04.Pdf index d8a652ef..28a46191 100644 Binary files a/qpdf/qtest/qpdf/split-exp-04.Pdf and b/qpdf/qtest/qpdf/split-exp-04.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-05.Pdf b/qpdf/qtest/qpdf/split-exp-05.Pdf index 498596f8..aea6342b 100644 Binary files a/qpdf/qtest/qpdf/split-exp-05.Pdf and b/qpdf/qtest/qpdf/split-exp-05.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-06.Pdf b/qpdf/qtest/qpdf/split-exp-06.Pdf index 016d83a9..ae27f4c3 100644 Binary files a/qpdf/qtest/qpdf/split-exp-06.Pdf and b/qpdf/qtest/qpdf/split-exp-06.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-07.Pdf b/qpdf/qtest/qpdf/split-exp-07.Pdf index bb1ed0ba..7aa16f04 100644 Binary files a/qpdf/qtest/qpdf/split-exp-07.Pdf and b/qpdf/qtest/qpdf/split-exp-07.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-08.Pdf b/qpdf/qtest/qpdf/split-exp-08.Pdf index bd6b7f22..7b47747c 100644 Binary files a/qpdf/qtest/qpdf/split-exp-08.Pdf and b/qpdf/qtest/qpdf/split-exp-08.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-09.Pdf b/qpdf/qtest/qpdf/split-exp-09.Pdf index 1b63f675..4f9f46b7 100644 Binary files a/qpdf/qtest/qpdf/split-exp-09.Pdf and b/qpdf/qtest/qpdf/split-exp-09.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-1 b/qpdf/qtest/qpdf/split-exp-1 index 7c37942f..f28359cd 100644 Binary files a/qpdf/qtest/qpdf/split-exp-1 and b/qpdf/qtest/qpdf/split-exp-1 differ diff --git a/qpdf/qtest/qpdf/split-exp-1.pdf b/qpdf/qtest/qpdf/split-exp-1.pdf index 77a38bc6..2b256b71 100644 Binary files a/qpdf/qtest/qpdf/split-exp-1.pdf and b/qpdf/qtest/qpdf/split-exp-1.pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-10.Pdf b/qpdf/qtest/qpdf/split-exp-10.Pdf index f3d209a4..525b1a9d 100644 Binary files a/qpdf/qtest/qpdf/split-exp-10.Pdf and b/qpdf/qtest/qpdf/split-exp-10.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-11.Pdf b/qpdf/qtest/qpdf/split-exp-11.Pdf index 158f9c78..40ff70b0 100644 Binary files a/qpdf/qtest/qpdf/split-exp-11.Pdf and b/qpdf/qtest/qpdf/split-exp-11.Pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-2 b/qpdf/qtest/qpdf/split-exp-2 index cced06c3..0c0d088c 100644 Binary files a/qpdf/qtest/qpdf/split-exp-2 and b/qpdf/qtest/qpdf/split-exp-2 differ diff --git a/qpdf/qtest/qpdf/split-exp-3 b/qpdf/qtest/qpdf/split-exp-3 index 7206ff55..964bfb71 100644 Binary files a/qpdf/qtest/qpdf/split-exp-3 and b/qpdf/qtest/qpdf/split-exp-3 differ diff --git a/qpdf/qtest/qpdf/split-exp-4 b/qpdf/qtest/qpdf/split-exp-4 index b8c692ed..27b18243 100644 Binary files a/qpdf/qtest/qpdf/split-exp-4 and b/qpdf/qtest/qpdf/split-exp-4 differ diff --git a/qpdf/qtest/qpdf/split-exp-group-01-05.pdf b/qpdf/qtest/qpdf/split-exp-group-01-05.pdf index 318b3814..c4cedeb7 100644 Binary files a/qpdf/qtest/qpdf/split-exp-group-01-05.pdf and b/qpdf/qtest/qpdf/split-exp-group-01-05.pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-group-06-10.pdf b/qpdf/qtest/qpdf/split-exp-group-06-10.pdf index 7f8b652f..bed88dcd 100644 Binary files a/qpdf/qtest/qpdf/split-exp-group-06-10.pdf and b/qpdf/qtest/qpdf/split-exp-group-06-10.pdf differ diff --git a/qpdf/qtest/qpdf/split-exp-group-11-11.pdf b/qpdf/qtest/qpdf/split-exp-group-11-11.pdf index 158f9c78..40ff70b0 100644 Binary files a/qpdf/qtest/qpdf/split-exp-group-11-11.pdf and b/qpdf/qtest/qpdf/split-exp-group-11-11.pdf differ diff --git a/qpdf/qtest/qpdf/split-exp.zdf_01 b/qpdf/qtest/qpdf/split-exp.zdf_01 index 31a145aa..5386b04c 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_01 +++ b/qpdf/qtest/qpdf/split-exp.zdf_01 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/split-exp.zdf_02 b/qpdf/qtest/qpdf/split-exp.zdf_02 index d70facb1..1b973989 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_02 +++ b/qpdf/qtest/qpdf/split-exp.zdf_02 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/split-exp.zdf_03 b/qpdf/qtest/qpdf/split-exp.zdf_03 index fbb491b5..699c292f 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_03 +++ b/qpdf/qtest/qpdf/split-exp.zdf_03 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/split-exp.zdf_04 b/qpdf/qtest/qpdf/split-exp.zdf_04 index d0ab509e..d1e522c7 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_04 +++ b/qpdf/qtest/qpdf/split-exp.zdf_04 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/split-exp.zdf_05 b/qpdf/qtest/qpdf/split-exp.zdf_05 index a2d861d6..1eb11730 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_05 +++ b/qpdf/qtest/qpdf/split-exp.zdf_05 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/split-exp.zdf_06 b/qpdf/qtest/qpdf/split-exp.zdf_06 index 1d5b6e56..bb75c304 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_06 +++ b/qpdf/qtest/qpdf/split-exp.zdf_06 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/split-exp.zdf_07 b/qpdf/qtest/qpdf/split-exp.zdf_07 index 10a72379..5ce3f254 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_07 +++ b/qpdf/qtest/qpdf/split-exp.zdf_07 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/split-exp.zdf_08 b/qpdf/qtest/qpdf/split-exp.zdf_08 index 9ccb696e..c7a07f56 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_08 +++ b/qpdf/qtest/qpdf/split-exp.zdf_08 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/split-exp.zdf_09 b/qpdf/qtest/qpdf/split-exp.zdf_09 index 82706bc1..c53618b2 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_09 +++ b/qpdf/qtest/qpdf/split-exp.zdf_09 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/split-exp.zdf_10 b/qpdf/qtest/qpdf/split-exp.zdf_10 index 5deab6d7..4fb1f90c 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_10 +++ b/qpdf/qtest/qpdf/split-exp.zdf_10 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/split-exp.zdf_11 b/qpdf/qtest/qpdf/split-exp.zdf_11 index 3a3105d5..d9eb9ccd 100644 --- a/qpdf/qtest/qpdf/split-exp.zdf_11 +++ b/qpdf/qtest/qpdf/split-exp.zdf_11 @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0 diff --git a/qpdf/qtest/qpdf/uo-7.pdf b/qpdf/qtest/qpdf/uo-7.pdf index 4cabeaf7..08a0e506 100644 --- a/qpdf/qtest/qpdf/uo-7.pdf +++ b/qpdf/qtest/qpdf/uo-7.pdf @@ -1,4 +1,4 @@ -%PDF-1.3 +%PDF-1.4 %¿÷¢þ %QDF-1.0