Commit cfd5147d922ee4e29e10f116dfca79325398a6db
1 parent
8082af09
Add QPDF::getVersionAsPDFVersion
Showing
79 changed files
with
138 additions
and
21 deletions
ChangeLog
| @@ -3,6 +3,9 @@ | @@ -3,6 +3,9 @@ | ||
| 3 | * Add new class PDFVersion for more convenient comparison of PDF | 3 | * Add new class PDFVersion for more convenient comparison of PDF |
| 4 | version numbers from the %!PDF header. | 4 | version numbers from the %!PDF header. |
| 5 | 5 | ||
| 6 | + * Add QPDF::getVersionAsPDFVersion() to return the PDF version and | ||
| 7 | + extension together as a PDFVersion object instead of a string. | ||
| 8 | + | ||
| 6 | 2022-02-06 Jay Berkenbilt <ejb@ql.org> | 9 | 2022-02-06 Jay Berkenbilt <ejb@ql.org> |
| 7 | 10 | ||
| 8 | * Pl_Buffer and QPDFWriter: add getBufferSharedPointer(), which | 11 | * Pl_Buffer and QPDFWriter: add getBufferSharedPointer(), which |
include/qpdf/PDFVersion.hh
| @@ -65,9 +65,9 @@ class PDFVersion | @@ -65,9 +65,9 @@ class PDFVersion | ||
| 65 | int getExtensionLevel() const; | 65 | int getExtensionLevel() const; |
| 66 | 66 | ||
| 67 | private: | 67 | private: |
| 68 | - int major; | ||
| 69 | - int minor; | ||
| 70 | - int extension; | 68 | + int major_version; |
| 69 | + int minor_version; | ||
| 70 | + int extension_level; | ||
| 71 | }; | 71 | }; |
| 72 | 72 | ||
| 73 | #endif // PDFVERSION_HH | 73 | #endif // PDFVERSION_HH |
include/qpdf/QPDF.hh
| @@ -44,6 +44,7 @@ | @@ -44,6 +44,7 @@ | ||
| 44 | #include <qpdf/QPDFStreamFilter.hh> | 44 | #include <qpdf/QPDFStreamFilter.hh> |
| 45 | #include <qpdf/Buffer.hh> | 45 | #include <qpdf/Buffer.hh> |
| 46 | #include <qpdf/InputSource.hh> | 46 | #include <qpdf/InputSource.hh> |
| 47 | +#include <qpdf/PDFVersion.hh> | ||
| 47 | 48 | ||
| 48 | class QPDF_Stream; | 49 | class QPDF_Stream; |
| 49 | class BitStream; | 50 | class BitStream; |
| @@ -260,6 +261,10 @@ class QPDF | @@ -260,6 +261,10 @@ class QPDF | ||
| 260 | 261 | ||
| 261 | QPDF_DLL | 262 | QPDF_DLL |
| 262 | std::string getFilename() const; | 263 | std::string getFilename() const; |
| 264 | + // Return PDF Version and extension level together as a PDFVersion object | ||
| 265 | + QPDF_DLL | ||
| 266 | + PDFVersion getVersionAsPDFVersion(); | ||
| 267 | + // Return just the PDF version from the file | ||
| 263 | QPDF_DLL | 268 | QPDF_DLL |
| 264 | std::string getPDFVersion() const; | 269 | std::string getPDFVersion() const; |
| 265 | QPDF_DLL | 270 | QPDF_DLL |
libqpdf/PDFVersion.cc
| @@ -7,30 +7,30 @@ PDFVersion::PDFVersion() : | @@ -7,30 +7,30 @@ PDFVersion::PDFVersion() : | ||
| 7 | { | 7 | { |
| 8 | } | 8 | } |
| 9 | 9 | ||
| 10 | -PDFVersion::PDFVersion(int major, int minor, int extension) : | ||
| 11 | - major(major), | ||
| 12 | - minor(minor), | ||
| 13 | - extension(extension) | 10 | +PDFVersion::PDFVersion(int major_version, int minor_version, int extension_level) : |
| 11 | + major_version(major_version), | ||
| 12 | + minor_version(minor_version), | ||
| 13 | + extension_level(extension_level) | ||
| 14 | { | 14 | { |
| 15 | } | 15 | } |
| 16 | 16 | ||
| 17 | bool | 17 | bool |
| 18 | PDFVersion::operator<(PDFVersion const& rhs) const | 18 | PDFVersion::operator<(PDFVersion const& rhs) const |
| 19 | { | 19 | { |
| 20 | - return ((this->major < rhs.major) ? true : | ||
| 21 | - (this->major > rhs.major) ? false : | ||
| 22 | - (this->minor < rhs.minor) ? true : | ||
| 23 | - (this->minor > rhs.minor) ? false : | ||
| 24 | - (this->extension < rhs.minor) ? true : | 20 | + return ((this->major_version < rhs.major_version) ? true : |
| 21 | + (this->major_version > rhs.major_version) ? false : | ||
| 22 | + (this->minor_version < rhs.minor_version) ? true : | ||
| 23 | + (this->minor_version > rhs.minor_version) ? false : | ||
| 24 | + (this->extension_level < rhs.extension_level) ? true : | ||
| 25 | false); | 25 | false); |
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | bool | 28 | bool |
| 29 | PDFVersion::operator==(PDFVersion const& rhs) const | 29 | PDFVersion::operator==(PDFVersion const& rhs) const |
| 30 | { | 30 | { |
| 31 | - return ((this->major == rhs.major) && | ||
| 32 | - (this->minor == rhs.minor) && | ||
| 33 | - (this->extension == rhs.extension)); | 31 | + return ((this->major_version == rhs.major_version) && |
| 32 | + (this->minor_version == rhs.minor_version) && | ||
| 33 | + (this->extension_level == rhs.extension_level)); | ||
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | void | 36 | void |
| @@ -45,25 +45,25 @@ PDFVersion::updateIfGreater(PDFVersion const& other) | @@ -45,25 +45,25 @@ PDFVersion::updateIfGreater(PDFVersion const& other) | ||
| 45 | void | 45 | void |
| 46 | PDFVersion::getVersion(std::string& version, int& extension_level) const | 46 | PDFVersion::getVersion(std::string& version, int& extension_level) const |
| 47 | { | 47 | { |
| 48 | - extension_level = this->extension; | ||
| 49 | - version = QUtil::int_to_string(this->major) + "." + | ||
| 50 | - QUtil::int_to_string(this->minor); | 48 | + extension_level = this->extension_level; |
| 49 | + version = QUtil::int_to_string(this->major_version) + "." + | ||
| 50 | + QUtil::int_to_string(this->minor_version); | ||
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | int | 53 | int |
| 54 | PDFVersion::getMajor() const | 54 | PDFVersion::getMajor() const |
| 55 | { | 55 | { |
| 56 | - return this->major; | 56 | + return this->major_version; |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | int | 59 | int |
| 60 | PDFVersion::getMinor() const | 60 | PDFVersion::getMinor() const |
| 61 | { | 61 | { |
| 62 | - return this->minor; | 62 | + return this->minor_version; |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | int | 65 | int |
| 66 | PDFVersion::getExtensionLevel() const | 66 | PDFVersion::getExtensionLevel() const |
| 67 | { | 67 | { |
| 68 | - return this->extension; | 68 | + return this->extension_level; |
| 69 | } | 69 | } |
libqpdf/QPDF.cc
| @@ -11,6 +11,7 @@ | @@ -11,6 +11,7 @@ | ||
| 11 | #include <stdlib.h> | 11 | #include <stdlib.h> |
| 12 | #include <string.h> | 12 | #include <string.h> |
| 13 | #include <memory.h> | 13 | #include <memory.h> |
| 14 | +#include <regex> | ||
| 14 | 15 | ||
| 15 | #include <qpdf/QTC.hh> | 16 | #include <qpdf/QTC.hh> |
| 16 | #include <qpdf/QUtil.hh> | 17 | #include <qpdf/QUtil.hh> |
| @@ -2742,6 +2743,24 @@ QPDF::getFilename() const | @@ -2742,6 +2743,24 @@ QPDF::getFilename() const | ||
| 2742 | return this->m->file->getName(); | 2743 | return this->m->file->getName(); |
| 2743 | } | 2744 | } |
| 2744 | 2745 | ||
| 2746 | +PDFVersion | ||
| 2747 | +QPDF::getVersionAsPDFVersion() | ||
| 2748 | +{ | ||
| 2749 | + int major = 1; | ||
| 2750 | + int minor = 3; | ||
| 2751 | + int extension_level = getExtensionLevel(); | ||
| 2752 | + | ||
| 2753 | + std::regex v("^[[:space:]]*([0-9]+)\\.([0-9]+)"); | ||
| 2754 | + std::smatch m; | ||
| 2755 | + if (std::regex_search(this->m->pdf_version, m, v)) | ||
| 2756 | + { | ||
| 2757 | + major = QUtil::string_to_int(m[1].str().c_str()); | ||
| 2758 | + minor = QUtil::string_to_int(m[2].str().c_str()); | ||
| 2759 | + } | ||
| 2760 | + | ||
| 2761 | + return PDFVersion(major, minor, extension_level); | ||
| 2762 | +} | ||
| 2763 | + | ||
| 2745 | std::string | 2764 | std::string |
| 2746 | QPDF::getPDFVersion() const | 2765 | QPDF::getPDFVersion() const |
| 2747 | { | 2766 | { |
libtests/pdf_version.cc
| @@ -34,6 +34,18 @@ int main() | @@ -34,6 +34,18 @@ int main() | ||
| 34 | v2.getVersion(version, extension_level); | 34 | v2.getVersion(version, extension_level); |
| 35 | assert(version == "1.7"); | 35 | assert(version == "1.7"); |
| 36 | assert(extension_level == 8); | 36 | assert(extension_level == 8); |
| 37 | + assert(PDFVersion(1, 2) < PDFVersion(1, 3)); | ||
| 38 | + assert(PDFVersion(1, 2) < PDFVersion(1, 2, 1)); | ||
| 39 | + assert(PDFVersion(1, 2, 1) < PDFVersion(1, 2, 2)); | ||
| 40 | + assert(! (PDFVersion(1, 2, 2) < PDFVersion(1, 2, 2))); | ||
| 41 | + assert(! (PDFVersion(1, 2, 3) < PDFVersion(1, 2, 2))); | ||
| 42 | + assert(PDFVersion(1, 1) < PDFVersion(1, 2, 2)); | ||
| 43 | + assert(! (PDFVersion(1, 3) < PDFVersion(1, 2, 2))); | ||
| 44 | + assert(! (PDFVersion(2, 0) < PDFVersion(1, 9, 9))); | ||
| 45 | + assert(! (PDFVersion(2, 0) < PDFVersion(2, 0))); | ||
| 46 | + assert(PDFVersion(2, 0) == PDFVersion(2, 0)); | ||
| 47 | + assert(PDFVersion(2, 0, 1) == PDFVersion(2, 0, 1)); | ||
| 48 | + | ||
| 37 | std::cout << "PDFVersion assertions passed" << std::endl; | 49 | std::cout << "PDFVersion assertions passed" << std::endl; |
| 38 | return 0; | 50 | return 0; |
| 39 | } | 51 | } |
qpdf/qtest/qpdf/extensions-adbe-force-1.3.out
qpdf/qtest/qpdf/extensions-adbe-force-1.6.out
qpdf/qtest/qpdf/extensions-adbe-force-1.7.1.out
qpdf/qtest/qpdf/extensions-adbe-force-1.7.2.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-force-1.7.3.out
qpdf/qtest/qpdf/extensions-adbe-force-1.8.0.out
qpdf/qtest/qpdf/extensions-adbe-force-1.8.2.out
qpdf/qtest/qpdf/extensions-adbe-force-1.8.5.out
qpdf/qtest/qpdf/extensions-adbe-force-1.8.out
qpdf/qtest/qpdf/extensions-adbe-min-1.3.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-min-1.6.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-min-1.7.1.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-min-1.7.2.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 /URL (http://something.adobe.com) >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-min-1.7.3.out
qpdf/qtest/qpdf/extensions-adbe-min-1.8.0.out
qpdf/qtest/qpdf/extensions-adbe-min-1.8.2.out
qpdf/qtest/qpdf/extensions-adbe-min-1.8.5.out
qpdf/qtest/qpdf/extensions-adbe-min-1.8.out
qpdf/qtest/qpdf/extensions-adbe-other-force-1.3.out
qpdf/qtest/qpdf/extensions-adbe-other-force-1.6.out
qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.1.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 1 | 2 | extension level: 1 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/1 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.2.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-force-1.7.3.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 3 | 2 | extension level: 3 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/3 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.0.out
qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.2.out
| 1 | version: 1.8 | 1 | version: 1.8 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.8/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.5.out
| 1 | version: 1.8 | 1 | version: 1.8 |
| 2 | extension level: 5 | 2 | extension level: 5 |
| 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.8/5 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-force-1.8.out
qpdf/qtest/qpdf/extensions-adbe-other-min-1.3.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-min-1.6.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.1.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.2.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-min-1.7.3.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 3 | 2 | extension level: 3 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/3 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.0.out
qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.2.out
| 1 | version: 1.8 | 1 | version: 1.8 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.8/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.5.out
| 1 | version: 1.8 | 1 | version: 1.8 |
| 2 | extension level: 5 | 2 | extension level: 5 |
| 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.8/5 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-adbe-other-min-1.8.out
qpdf/qtest/qpdf/extensions-none-force-1.3.out
qpdf/qtest/qpdf/extensions-none-force-1.6.out
qpdf/qtest/qpdf/extensions-none-force-1.7.1.out
qpdf/qtest/qpdf/extensions-none-force-1.7.2.out
qpdf/qtest/qpdf/extensions-none-force-1.7.3.out
qpdf/qtest/qpdf/extensions-none-force-1.8.0.out
qpdf/qtest/qpdf/extensions-none-force-1.8.2.out
qpdf/qtest/qpdf/extensions-none-force-1.8.5.out
qpdf/qtest/qpdf/extensions-none-force-1.8.out
qpdf/qtest/qpdf/extensions-none-min-1.3.out
qpdf/qtest/qpdf/extensions-none-min-1.6.out
qpdf/qtest/qpdf/extensions-none-min-1.7.1.out
qpdf/qtest/qpdf/extensions-none-min-1.7.2.out
qpdf/qtest/qpdf/extensions-none-min-1.7.3.out
qpdf/qtest/qpdf/extensions-none-min-1.8.0.out
qpdf/qtest/qpdf/extensions-none-min-1.8.2.out
qpdf/qtest/qpdf/extensions-none-min-1.8.5.out
qpdf/qtest/qpdf/extensions-none-min-1.8.out
qpdf/qtest/qpdf/extensions-other-force-1.3.out
qpdf/qtest/qpdf/extensions-other-force-1.6.out
qpdf/qtest/qpdf/extensions-other-force-1.7.1.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 1 | 2 | extension level: 1 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/1 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-other-force-1.7.2.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-other-force-1.7.3.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 3 | 2 | extension level: 3 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/3 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-other-force-1.8.0.out
qpdf/qtest/qpdf/extensions-other-force-1.8.2.out
| 1 | version: 1.8 | 1 | version: 1.8 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.8/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-other-force-1.8.5.out
| 1 | version: 1.8 | 1 | version: 1.8 |
| 2 | extension level: 5 | 2 | extension level: 5 |
| 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.8/5 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-other-force-1.8.out
qpdf/qtest/qpdf/extensions-other-min-1.3.out
qpdf/qtest/qpdf/extensions-other-min-1.6.out
qpdf/qtest/qpdf/extensions-other-min-1.7.1.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 1 | 2 | extension level: 1 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 1 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/1 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-other-min-1.7.2.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-other-min-1.7.3.out
| 1 | version: 1.7 | 1 | version: 1.7 |
| 2 | extension level: 3 | 2 | extension level: 3 |
| 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.7 /ExtensionLevel 3 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.7/3 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-other-min-1.8.0.out
qpdf/qtest/qpdf/extensions-other-min-1.8.2.out
| 1 | version: 1.8 | 1 | version: 1.8 |
| 2 | extension level: 2 | 2 | extension level: 2 |
| 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 2 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.8/2 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-other-min-1.8.5.out
| 1 | version: 1.8 | 1 | version: 1.8 |
| 2 | extension level: 5 | 2 | extension level: 5 |
| 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> | 3 | << /ADBE << /BaseVersion /1.8 /ExtensionLevel 5 >> /Potato << /BaseVersion /3.14159 /ExtensionLevel 16059 >> >> |
| 4 | +As PDFVersion: 1.8/5 | ||
| 4 | test 34 done | 5 | test 34 done |
qpdf/qtest/qpdf/extensions-other-min-1.8.out
qpdf/test_driver.cc
| @@ -1327,6 +1327,12 @@ static void test_34(QPDF& pdf, char const* arg2) | @@ -1327,6 +1327,12 @@ static void test_34(QPDF& pdf, char const* arg2) | ||
| 1327 | std::cout << "version: " << pdf.getPDFVersion() << std::endl | 1327 | std::cout << "version: " << pdf.getPDFVersion() << std::endl |
| 1328 | << "extension level: " << pdf.getExtensionLevel() << std::endl | 1328 | << "extension level: " << pdf.getExtensionLevel() << std::endl |
| 1329 | << pdf.getRoot().getKey("/Extensions").unparse() << std::endl; | 1329 | << pdf.getRoot().getKey("/Extensions").unparse() << std::endl; |
| 1330 | + auto v = pdf.getVersionAsPDFVersion(); | ||
| 1331 | + std::string v_string; | ||
| 1332 | + int extension_level; | ||
| 1333 | + v.getVersion(v_string, extension_level); | ||
| 1334 | + std::cout << "As PDFVersion: " << v_string << "/" << extension_level | ||
| 1335 | + << std::endl; | ||
| 1330 | } | 1336 | } |
| 1331 | 1337 | ||
| 1332 | static void test_35(QPDF& pdf, char const* arg2) | 1338 | static void test_35(QPDF& pdf, char const* arg2) |