aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-02-08 17:27:38 +0100
committerJay Berkenbilt <ejb@ql.org>2022-02-08 18:34:14 +0100
commitf91b21c7d4e99d32be8e0a180821af17c8150140 (patch)
treed24c3ba91a681bad947d93365121626b880cba3b /libqpdf
parentcfd5147d922ee4e29e10f116dfca79325398a6db (diff)
downloadqpdf-f91b21c7d4e99d32be8e0a180821af17c8150140.tar.zst
Preserve input PDF version on pages/split-pages (fixes #610)
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDFJob.cc2
-rw-r--r--libqpdf/QPDFWriter.cc9
2 files changed, 11 insertions, 0 deletions
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
@@ -297,6 +297,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)
{