aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-02-08 17:07:37 +0100
committerJay Berkenbilt <ejb@ql.org>2022-02-08 18:34:14 +0100
commitcfd5147d922ee4e29e10f116dfca79325398a6db (patch)
treedc2742d54e9fdec9bc170ba677be0e8861f63766
parent8082af09bea1132cecc2d148eeb23bc05e66f6b2 (diff)
downloadqpdf-cfd5147d922ee4e29e10f116dfca79325398a6db.tar.zst
Add QPDF::getVersionAsPDFVersion
-rw-r--r--ChangeLog3
-rw-r--r--include/qpdf/PDFVersion.hh6
-rw-r--r--include/qpdf/QPDF.hh5
-rw-r--r--libqpdf/PDFVersion.cc36
-rw-r--r--libqpdf/QPDF.cc19
-rw-r--r--libtests/pdf_version.cc12
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-force-1.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-force-1.6.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-force-1.7.1.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-force-1.7.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-force-1.7.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-force-1.8.0.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-force-1.8.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-force-1.8.5.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-force-1.8.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-min-1.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-min-1.6.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-min-1.7.1.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-min-1.7.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-min-1.7.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-min-1.8.0.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-min-1.8.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-min-1.8.5.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-min-1.8.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-force-1.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-force-1.6.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.1.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.0.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.5.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-min-1.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-min-1.6.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.1.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.0.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.5.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-force-1.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-force-1.6.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-force-1.7.1.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-force-1.7.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-force-1.7.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-force-1.8.0.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-force-1.8.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-force-1.8.5.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-force-1.8.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-min-1.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-min-1.6.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-min-1.7.1.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-min-1.7.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-min-1.7.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-min-1.8.0.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-min-1.8.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-min-1.8.5.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-none-min-1.8.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-force-1.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-force-1.6.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-force-1.7.1.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-force-1.7.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-force-1.7.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-force-1.8.0.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-force-1.8.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-force-1.8.5.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-force-1.8.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-min-1.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-min-1.6.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-min-1.7.1.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-min-1.7.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-min-1.7.3.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-min-1.8.0.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-min-1.8.2.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-min-1.8.5.out1
-rw-r--r--qpdf/qtest/qpdf/extensions-other-min-1.8.out1
-rw-r--r--qpdf/test_driver.cc6
79 files changed, 138 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index c12675c9..a55a97e8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,9 @@
* 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.
+
2022-02-06 Jay Berkenbilt <ejb@ql.org>
* Pl_Buffer and QPDFWriter: add getBufferSharedPointer(), which
diff --git a/include/qpdf/PDFVersion.hh b/include/qpdf/PDFVersion.hh
index 3a8274ea..2ce231f5 100644
--- a/include/qpdf/PDFVersion.hh
+++ b/include/qpdf/PDFVersion.hh
@@ -65,9 +65,9 @@ class PDFVersion
int getExtensionLevel() const;
private:
- int major;
- int minor;
- int extension;
+ int major_version;
+ int minor_version;
+ int extension_level;
};
#endif // PDFVERSION_HH
diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh
index 998fdb8c..57e943f9 100644
--- a/include/qpdf/QPDF.hh
+++ b/include/qpdf/QPDF.hh
@@ -44,6 +44,7 @@
#include <qpdf/QPDFStreamFilter.hh>
#include <qpdf/Buffer.hh>
#include <qpdf/InputSource.hh>
+#include <qpdf/PDFVersion.hh>
class QPDF_Stream;
class BitStream;
@@ -260,6 +261,10 @@ class QPDF
QPDF_DLL
std::string getFilename() const;
+ // Return PDF Version and extension level together as a PDFVersion object
+ QPDF_DLL
+ PDFVersion getVersionAsPDFVersion();
+ // Return just the PDF version from the file
QPDF_DLL
std::string getPDFVersion() const;
QPDF_DLL
diff --git a/libqpdf/PDFVersion.cc b/libqpdf/PDFVersion.cc
index c2f28bf8..18c04716 100644
--- a/libqpdf/PDFVersion.cc
+++ b/libqpdf/PDFVersion.cc
@@ -7,30 +7,30 @@ PDFVersion::PDFVersion() :
{
}
-PDFVersion::PDFVersion(int major, int minor, int extension) :
- major(major),
- minor(minor),
- extension(extension)
+PDFVersion::PDFVersion(int major_version, int minor_version, int extension_level) :
+ major_version(major_version),
+ minor_version(minor_version),
+ extension_level(extension_level)
{
}
bool
PDFVersion::operator<(PDFVersion const& rhs) const
{
- return ((this->major < rhs.major) ? true :
- (this->major > rhs.major) ? false :
- (this->minor < rhs.minor) ? true :
- (this->minor > rhs.minor) ? false :
- (this->extension < rhs.minor) ? true :
+ return ((this->major_version < rhs.major_version) ? true :
+ (this->major_version > rhs.major_version) ? false :
+ (this->minor_version < rhs.minor_version) ? true :
+ (this->minor_version > rhs.minor_version) ? false :
+ (this->extension_level < rhs.extension_level) ? true :
false);
}
bool
PDFVersion::operator==(PDFVersion const& rhs) const
{
- return ((this->major == rhs.major) &&
- (this->minor == rhs.minor) &&
- (this->extension == rhs.extension));
+ return ((this->major_version == rhs.major_version) &&
+ (this->minor_version == rhs.minor_version) &&
+ (this->extension_level == rhs.extension_level));
}
void
@@ -45,25 +45,25 @@ PDFVersion::updateIfGreater(PDFVersion const& other)
void
PDFVersion::getVersion(std::string& version, int& extension_level) const
{
- extension_level = this->extension;
- version = QUtil::int_to_string(this->major) + "." +
- QUtil::int_to_string(this->minor);
+ extension_level = this->extension_level;
+ version = QUtil::int_to_string(this->major_version) + "." +
+ QUtil::int_to_string(this->minor_version);
}
int
PDFVersion::getMajor() const
{
- return this->major;
+ return this->major_version;
}
int
PDFVersion::getMinor() const
{
- return this->minor;
+ return this->minor_version;
}
int
PDFVersion::getExtensionLevel() const
{
- return this->extension;
+ return this->extension_level;
}
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc
index 02a003a5..2337f43d 100644
--- a/libqpdf/QPDF.cc
+++ b/libqpdf/QPDF.cc
@@ -11,6 +11,7 @@
#include <stdlib.h>
#include <string.h>
#include <memory.h>
+#include <regex>
#include <qpdf/QTC.hh>
#include <qpdf/QUtil.hh>
@@ -2742,6 +2743,24 @@ QPDF::getFilename() const
return this->m->file->getName();
}
+PDFVersion
+QPDF::getVersionAsPDFVersion()
+{
+ int major = 1;
+ int minor = 3;
+ int extension_level = getExtensionLevel();
+
+ std::regex v("^[[:space:]]*([0-9]+)\\.([0-9]+)");
+ std::smatch m;
+ if (std::regex_search(this->m->pdf_version, m, v))
+ {
+ major = QUtil::string_to_int(m[1].str().c_str());
+ minor = QUtil::string_to_int(m[2].str().c_str());
+ }
+
+ return PDFVersion(major, minor, extension_level);
+}
+
std::string
QPDF::getPDFVersion() const
{
diff --git a/libtests/pdf_version.cc b/libtests/pdf_version.cc
index 2776d43b..c8a568ed 100644
--- a/libtests/pdf_version.cc
+++ b/libtests/pdf_version.cc
@@ -34,6 +34,18 @@ int main()
v2.getVersion(version, extension_level);
assert(version == "1.7");
assert(extension_level == 8);
+ assert(PDFVersion(1, 2) < PDFVersion(1, 3));
+ assert(PDFVersion(1, 2) < PDFVersion(1, 2, 1));
+ assert(PDFVersion(1, 2, 1) < PDFVersion(1, 2, 2));
+ assert(! (PDFVersion(1, 2, 2) < PDFVersion(1, 2, 2)));
+ assert(! (PDFVersion(1, 2, 3) < PDFVersion(1, 2, 2)));
+ assert(PDFVersion(1, 1) < PDFVersion(1, 2, 2));
+ assert(! (PDFVersion(1, 3) < PDFVersion(1, 2, 2)));
+ assert(! (PDFVersion(2, 0) < PDFVersion(1, 9, 9)));
+ assert(! (PDFVersion(2, 0) < PDFVersion(2, 0)));
+ assert(PDFVersion(2, 0) == PDFVersion(2, 0));
+ assert(PDFVersion(2, 0, 1) == PDFVersion(2, 0, 1));
+
std::cout << "PDFVersion assertions passed" << std::endl;
return 0;
}
diff --git a/qpdf/qtest/qpdf/extensions-adbe-force-1.3.out b/qpdf/qtest/qpdf/extensions-adbe-force-1.3.out
index 3795c645..f4d1ac25 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-force-1.3.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-force-1.3.out
@@ -1,4 +1,5 @@
version: 1.3
extension level: 0
null
+As PDFVersion: 1.3/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-force-1.6.out b/qpdf/qtest/qpdf/extensions-adbe-force-1.6.out
index 762063b9..2c83ba9d 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-force-1.6.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-force-1.6.out
@@ -1,4 +1,5 @@
version: 1.6
extension level: 0
null
+As PDFVersion: 1.6/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-force-1.7.1.out b/qpdf/qtest/qpdf/extensions-adbe-force-1.7.1.out
index 96168639..73cc909a 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-force-1.7.1.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-force-1.7.1.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 1
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> >>
+As PDFVersion: 1.7/1
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-force-1.7.2.out b/qpdf/qtest/qpdf/extensions-adbe-force-1.7.2.out
index 4571bf2e..f3f2e58e 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-force-1.7.2.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-force-1.7.2.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-force-1.7.3.out b/qpdf/qtest/qpdf/extensions-adbe-force-1.7.3.out
index 76321208..c5c4d8d6 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-force-1.7.3.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-force-1.7.3.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 3
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> >>
+As PDFVersion: 1.7/3
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-force-1.8.0.out b/qpdf/qtest/qpdf/extensions-adbe-force-1.8.0.out
index 491fdb7e..93d00bba 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-force-1.8.0.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-force-1.8.0.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
null
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-force-1.8.2.out b/qpdf/qtest/qpdf/extensions-adbe-force-1.8.2.out
index 7823a1dd..61f7ad1d 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-force-1.8.2.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-force-1.8.2.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 2
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> >>
+As PDFVersion: 1.8/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-force-1.8.5.out b/qpdf/qtest/qpdf/extensions-adbe-force-1.8.5.out
index 2d78af7e..09ccbf39 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-force-1.8.5.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-force-1.8.5.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 5
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >>
+As PDFVersion: 1.8/5
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-force-1.8.out b/qpdf/qtest/qpdf/extensions-adbe-force-1.8.out
index 491fdb7e..93d00bba 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-force-1.8.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-force-1.8.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
null
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-min-1.3.out b/qpdf/qtest/qpdf/extensions-adbe-min-1.3.out
index 4571bf2e..f3f2e58e 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-min-1.3.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-min-1.3.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-min-1.6.out b/qpdf/qtest/qpdf/extensions-adbe-min-1.6.out
index 4571bf2e..f3f2e58e 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-min-1.6.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-min-1.6.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-min-1.7.1.out b/qpdf/qtest/qpdf/extensions-adbe-min-1.7.1.out
index 4571bf2e..f3f2e58e 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-min-1.7.1.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-min-1.7.1.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-min-1.7.2.out b/qpdf/qtest/qpdf/extensions-adbe-min-1.7.2.out
index 4571bf2e..f3f2e58e 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-min-1.7.2.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-min-1.7.2.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-min-1.7.3.out b/qpdf/qtest/qpdf/extensions-adbe-min-1.7.3.out
index 76321208..c5c4d8d6 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-min-1.7.3.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-min-1.7.3.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 3
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> >>
+As PDFVersion: 1.7/3
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-min-1.8.0.out b/qpdf/qtest/qpdf/extensions-adbe-min-1.8.0.out
index 491fdb7e..93d00bba 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-min-1.8.0.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-min-1.8.0.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
null
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-min-1.8.2.out b/qpdf/qtest/qpdf/extensions-adbe-min-1.8.2.out
index 7823a1dd..61f7ad1d 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-min-1.8.2.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-min-1.8.2.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 2
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> >>
+As PDFVersion: 1.8/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-min-1.8.5.out b/qpdf/qtest/qpdf/extensions-adbe-min-1.8.5.out
index 2d78af7e..09ccbf39 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-min-1.8.5.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-min-1.8.5.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 5
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >>
+As PDFVersion: 1.8/5
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-min-1.8.out b/qpdf/qtest/qpdf/extensions-adbe-min-1.8.out
index 491fdb7e..93d00bba 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-min-1.8.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-min-1.8.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
null
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.3.out b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.3.out
index 14467414..7a41e1a3 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.3.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.3.out
@@ -1,4 +1,5 @@
version: 1.3
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.3/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.6.out b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.6.out
index 0cc726a6..5ecca79d 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.6.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.6.out
@@ -1,4 +1,5 @@
version: 1.6
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.6/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.1.out b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.1.out
index a714b145..e6db4f88 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.1.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.1.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 1
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/1
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.2.out b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.2.out
index ed0bf57c..ee328b7c 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.2.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.2.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.3.out b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.3.out
index f13ea01b..db48c76c 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.3.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.3.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 3
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/3
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.0.out b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.0.out
index d121666e..cb1e1465 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.0.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.0.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.2.out b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.2.out
index 00858aaa..86459e09 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.2.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.2.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 2
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.5.out b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.5.out
index dcf87e86..0b546e14 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.5.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.5.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 5
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/5
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.out b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.out
index d121666e..cb1e1465 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.3.out b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.3.out
index ed0bf57c..ee328b7c 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.3.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.3.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.6.out b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.6.out
index ed0bf57c..ee328b7c 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.6.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.6.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.1.out b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.1.out
index ed0bf57c..ee328b7c 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.1.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.1.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.2.out b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.2.out
index ed0bf57c..ee328b7c 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.2.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.2.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.3.out b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.3.out
index f13ea01b..db48c76c 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.3.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.3.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 3
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/3
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.0.out b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.0.out
index d121666e..cb1e1465 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.0.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.0.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.2.out b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.2.out
index 00858aaa..86459e09 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.2.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.2.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 2
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.5.out b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.5.out
index dcf87e86..0b546e14 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.5.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.5.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 5
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/5
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.out b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.out
index d121666e..cb1e1465 100644
--- a/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.out
+++ b/qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-force-1.3.out b/qpdf/qtest/qpdf/extensions-none-force-1.3.out
index 3795c645..f4d1ac25 100644
--- a/qpdf/qtest/qpdf/extensions-none-force-1.3.out
+++ b/qpdf/qtest/qpdf/extensions-none-force-1.3.out
@@ -1,4 +1,5 @@
version: 1.3
extension level: 0
null
+As PDFVersion: 1.3/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-force-1.6.out b/qpdf/qtest/qpdf/extensions-none-force-1.6.out
index 762063b9..2c83ba9d 100644
--- a/qpdf/qtest/qpdf/extensions-none-force-1.6.out
+++ b/qpdf/qtest/qpdf/extensions-none-force-1.6.out
@@ -1,4 +1,5 @@
version: 1.6
extension level: 0
null
+As PDFVersion: 1.6/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-force-1.7.1.out b/qpdf/qtest/qpdf/extensions-none-force-1.7.1.out
index 96168639..73cc909a 100644
--- a/qpdf/qtest/qpdf/extensions-none-force-1.7.1.out
+++ b/qpdf/qtest/qpdf/extensions-none-force-1.7.1.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 1
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> >>
+As PDFVersion: 1.7/1
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-force-1.7.2.out b/qpdf/qtest/qpdf/extensions-none-force-1.7.2.out
index 234701c6..4bac0edd 100644
--- a/qpdf/qtest/qpdf/extensions-none-force-1.7.2.out
+++ b/qpdf/qtest/qpdf/extensions-none-force-1.7.2.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-force-1.7.3.out b/qpdf/qtest/qpdf/extensions-none-force-1.7.3.out
index 76321208..c5c4d8d6 100644
--- a/qpdf/qtest/qpdf/extensions-none-force-1.7.3.out
+++ b/qpdf/qtest/qpdf/extensions-none-force-1.7.3.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 3
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> >>
+As PDFVersion: 1.7/3
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-force-1.8.0.out b/qpdf/qtest/qpdf/extensions-none-force-1.8.0.out
index 491fdb7e..93d00bba 100644
--- a/qpdf/qtest/qpdf/extensions-none-force-1.8.0.out
+++ b/qpdf/qtest/qpdf/extensions-none-force-1.8.0.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
null
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-force-1.8.2.out b/qpdf/qtest/qpdf/extensions-none-force-1.8.2.out
index 7823a1dd..61f7ad1d 100644
--- a/qpdf/qtest/qpdf/extensions-none-force-1.8.2.out
+++ b/qpdf/qtest/qpdf/extensions-none-force-1.8.2.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 2
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> >>
+As PDFVersion: 1.8/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-force-1.8.5.out b/qpdf/qtest/qpdf/extensions-none-force-1.8.5.out
index 2d78af7e..09ccbf39 100644
--- a/qpdf/qtest/qpdf/extensions-none-force-1.8.5.out
+++ b/qpdf/qtest/qpdf/extensions-none-force-1.8.5.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 5
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >>
+As PDFVersion: 1.8/5
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-force-1.8.out b/qpdf/qtest/qpdf/extensions-none-force-1.8.out
index 491fdb7e..93d00bba 100644
--- a/qpdf/qtest/qpdf/extensions-none-force-1.8.out
+++ b/qpdf/qtest/qpdf/extensions-none-force-1.8.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
null
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-min-1.3.out b/qpdf/qtest/qpdf/extensions-none-min-1.3.out
index 3795c645..f4d1ac25 100644
--- a/qpdf/qtest/qpdf/extensions-none-min-1.3.out
+++ b/qpdf/qtest/qpdf/extensions-none-min-1.3.out
@@ -1,4 +1,5 @@
version: 1.3
extension level: 0
null
+As PDFVersion: 1.3/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-min-1.6.out b/qpdf/qtest/qpdf/extensions-none-min-1.6.out
index 762063b9..2c83ba9d 100644
--- a/qpdf/qtest/qpdf/extensions-none-min-1.6.out
+++ b/qpdf/qtest/qpdf/extensions-none-min-1.6.out
@@ -1,4 +1,5 @@
version: 1.6
extension level: 0
null
+As PDFVersion: 1.6/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-min-1.7.1.out b/qpdf/qtest/qpdf/extensions-none-min-1.7.1.out
index 96168639..73cc909a 100644
--- a/qpdf/qtest/qpdf/extensions-none-min-1.7.1.out
+++ b/qpdf/qtest/qpdf/extensions-none-min-1.7.1.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 1
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> >>
+As PDFVersion: 1.7/1
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-min-1.7.2.out b/qpdf/qtest/qpdf/extensions-none-min-1.7.2.out
index 234701c6..4bac0edd 100644
--- a/qpdf/qtest/qpdf/extensions-none-min-1.7.2.out
+++ b/qpdf/qtest/qpdf/extensions-none-min-1.7.2.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-min-1.7.3.out b/qpdf/qtest/qpdf/extensions-none-min-1.7.3.out
index 76321208..c5c4d8d6 100644
--- a/qpdf/qtest/qpdf/extensions-none-min-1.7.3.out
+++ b/qpdf/qtest/qpdf/extensions-none-min-1.7.3.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 3
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> >>
+As PDFVersion: 1.7/3
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-min-1.8.0.out b/qpdf/qtest/qpdf/extensions-none-min-1.8.0.out
index 491fdb7e..93d00bba 100644
--- a/qpdf/qtest/qpdf/extensions-none-min-1.8.0.out
+++ b/qpdf/qtest/qpdf/extensions-none-min-1.8.0.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
null
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-min-1.8.2.out b/qpdf/qtest/qpdf/extensions-none-min-1.8.2.out
index 7823a1dd..61f7ad1d 100644
--- a/qpdf/qtest/qpdf/extensions-none-min-1.8.2.out
+++ b/qpdf/qtest/qpdf/extensions-none-min-1.8.2.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 2
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> >>
+As PDFVersion: 1.8/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-min-1.8.5.out b/qpdf/qtest/qpdf/extensions-none-min-1.8.5.out
index 2d78af7e..09ccbf39 100644
--- a/qpdf/qtest/qpdf/extensions-none-min-1.8.5.out
+++ b/qpdf/qtest/qpdf/extensions-none-min-1.8.5.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 5
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> >>
+As PDFVersion: 1.8/5
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-none-min-1.8.out b/qpdf/qtest/qpdf/extensions-none-min-1.8.out
index 491fdb7e..93d00bba 100644
--- a/qpdf/qtest/qpdf/extensions-none-min-1.8.out
+++ b/qpdf/qtest/qpdf/extensions-none-min-1.8.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
null
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-force-1.3.out b/qpdf/qtest/qpdf/extensions-other-force-1.3.out
index 14467414..7a41e1a3 100644
--- a/qpdf/qtest/qpdf/extensions-other-force-1.3.out
+++ b/qpdf/qtest/qpdf/extensions-other-force-1.3.out
@@ -1,4 +1,5 @@
version: 1.3
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.3/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-force-1.6.out b/qpdf/qtest/qpdf/extensions-other-force-1.6.out
index 0cc726a6..5ecca79d 100644
--- a/qpdf/qtest/qpdf/extensions-other-force-1.6.out
+++ b/qpdf/qtest/qpdf/extensions-other-force-1.6.out
@@ -1,4 +1,5 @@
version: 1.6
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.6/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-force-1.7.1.out b/qpdf/qtest/qpdf/extensions-other-force-1.7.1.out
index a714b145..e6db4f88 100644
--- a/qpdf/qtest/qpdf/extensions-other-force-1.7.1.out
+++ b/qpdf/qtest/qpdf/extensions-other-force-1.7.1.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 1
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/1
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-force-1.7.2.out b/qpdf/qtest/qpdf/extensions-other-force-1.7.2.out
index ed0bf57c..ee328b7c 100644
--- a/qpdf/qtest/qpdf/extensions-other-force-1.7.2.out
+++ b/qpdf/qtest/qpdf/extensions-other-force-1.7.2.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-force-1.7.3.out b/qpdf/qtest/qpdf/extensions-other-force-1.7.3.out
index f13ea01b..db48c76c 100644
--- a/qpdf/qtest/qpdf/extensions-other-force-1.7.3.out
+++ b/qpdf/qtest/qpdf/extensions-other-force-1.7.3.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 3
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/3
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-force-1.8.0.out b/qpdf/qtest/qpdf/extensions-other-force-1.8.0.out
index d121666e..cb1e1465 100644
--- a/qpdf/qtest/qpdf/extensions-other-force-1.8.0.out
+++ b/qpdf/qtest/qpdf/extensions-other-force-1.8.0.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-force-1.8.2.out b/qpdf/qtest/qpdf/extensions-other-force-1.8.2.out
index 00858aaa..86459e09 100644
--- a/qpdf/qtest/qpdf/extensions-other-force-1.8.2.out
+++ b/qpdf/qtest/qpdf/extensions-other-force-1.8.2.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 2
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-force-1.8.5.out b/qpdf/qtest/qpdf/extensions-other-force-1.8.5.out
index dcf87e86..0b546e14 100644
--- a/qpdf/qtest/qpdf/extensions-other-force-1.8.5.out
+++ b/qpdf/qtest/qpdf/extensions-other-force-1.8.5.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 5
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/5
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-force-1.8.out b/qpdf/qtest/qpdf/extensions-other-force-1.8.out
index d121666e..cb1e1465 100644
--- a/qpdf/qtest/qpdf/extensions-other-force-1.8.out
+++ b/qpdf/qtest/qpdf/extensions-other-force-1.8.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-min-1.3.out b/qpdf/qtest/qpdf/extensions-other-min-1.3.out
index 0f576775..66f1ffae 100644
--- a/qpdf/qtest/qpdf/extensions-other-min-1.3.out
+++ b/qpdf/qtest/qpdf/extensions-other-min-1.3.out
@@ -1,4 +1,5 @@
version: 1.5
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.5/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-min-1.6.out b/qpdf/qtest/qpdf/extensions-other-min-1.6.out
index 0cc726a6..5ecca79d 100644
--- a/qpdf/qtest/qpdf/extensions-other-min-1.6.out
+++ b/qpdf/qtest/qpdf/extensions-other-min-1.6.out
@@ -1,4 +1,5 @@
version: 1.6
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.6/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-min-1.7.1.out b/qpdf/qtest/qpdf/extensions-other-min-1.7.1.out
index a714b145..e6db4f88 100644
--- a/qpdf/qtest/qpdf/extensions-other-min-1.7.1.out
+++ b/qpdf/qtest/qpdf/extensions-other-min-1.7.1.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 1
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/1
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-min-1.7.2.out b/qpdf/qtest/qpdf/extensions-other-min-1.7.2.out
index ed0bf57c..ee328b7c 100644
--- a/qpdf/qtest/qpdf/extensions-other-min-1.7.2.out
+++ b/qpdf/qtest/qpdf/extensions-other-min-1.7.2.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 2
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-min-1.7.3.out b/qpdf/qtest/qpdf/extensions-other-min-1.7.3.out
index f13ea01b..db48c76c 100644
--- a/qpdf/qtest/qpdf/extensions-other-min-1.7.3.out
+++ b/qpdf/qtest/qpdf/extensions-other-min-1.7.3.out
@@ -1,4 +1,5 @@
version: 1.7
extension level: 3
<< /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.7/3
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-min-1.8.0.out b/qpdf/qtest/qpdf/extensions-other-min-1.8.0.out
index d121666e..cb1e1465 100644
--- a/qpdf/qtest/qpdf/extensions-other-min-1.8.0.out
+++ b/qpdf/qtest/qpdf/extensions-other-min-1.8.0.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-min-1.8.2.out b/qpdf/qtest/qpdf/extensions-other-min-1.8.2.out
index 00858aaa..86459e09 100644
--- a/qpdf/qtest/qpdf/extensions-other-min-1.8.2.out
+++ b/qpdf/qtest/qpdf/extensions-other-min-1.8.2.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 2
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/2
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-min-1.8.5.out b/qpdf/qtest/qpdf/extensions-other-min-1.8.5.out
index dcf87e86..0b546e14 100644
--- a/qpdf/qtest/qpdf/extensions-other-min-1.8.5.out
+++ b/qpdf/qtest/qpdf/extensions-other-min-1.8.5.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 5
<< /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/5
test 34 done
diff --git a/qpdf/qtest/qpdf/extensions-other-min-1.8.out b/qpdf/qtest/qpdf/extensions-other-min-1.8.out
index d121666e..cb1e1465 100644
--- a/qpdf/qtest/qpdf/extensions-other-min-1.8.out
+++ b/qpdf/qtest/qpdf/extensions-other-min-1.8.out
@@ -1,4 +1,5 @@
version: 1.8
extension level: 0
<< /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >>
+As PDFVersion: 1.8/0
test 34 done
diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc
index 4719c5e9..65ad4e52 100644
--- a/qpdf/test_driver.cc
+++ b/qpdf/test_driver.cc
@@ -1327,6 +1327,12 @@ static void test_34(QPDF& pdf, char const* arg2)
std::cout << "version: " << pdf.getPDFVersion() << std::endl
<< "extension level: " << pdf.getExtensionLevel() << std::endl
<< pdf.getRoot().getKey("/Extensions").unparse() << std::endl;
+ auto v = pdf.getVersionAsPDFVersion();
+ std::string v_string;
+ int extension_level;
+ v.getVersion(v_string, extension_level);
+ std::cout << "As PDFVersion: " << v_string << "/" << extension_level
+ << std::endl;
}
static void test_35(QPDF& pdf, char const* arg2)