aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-05-08 18:37:18 +0200
committerJay Berkenbilt <ejb@ql.org>2022-05-08 19:45:20 +0200
commit2a2f7f1bba3dd87bd17f8b819ddeb1a24bb742dd (patch)
treefc8814eb2b983ba6e753d3daee1aefabf7b48968
parent02e8ef6fd939e9df9dffc8511f5eb7e11ee6992b (diff)
downloadqpdf-2a2f7f1bba3dd87bd17f8b819ddeb1a24bb742dd.tar.zst
Add maxobjectid to JSON
-rw-r--r--libqpdf/QPDFJob.cc7
-rw-r--r--qpdf/qtest/qpdf/direct-pages-json-objects.out1
-rw-r--r--qpdf/qtest/qpdf/direct-pages-json-pages.out1
-rw-r--r--qpdf/qtest/qpdf/image-streams-small-to-json.out1
-rw-r--r--qpdf/qtest/qpdf/json-bad-data-json-file-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-bad-data-json-inline-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-field-types---show-encryption-key-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-field-types-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-all-file-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-all-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-generalized-file-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-generalized-inline-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-none-file-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-none-inline-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-small-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-specialized-file-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-specialized-inline-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-specialized-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-image-streams-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-outlines-with-actions-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-outlines-with-old-root-dests-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-2-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-page-labels-and-outlines-v2.out1
-rw-r--r--qpdf/qtest/qpdf/json-page-labels-num-tree-v2.out1
-rw-r--r--qpdf/qtest/qpdf/page_api_2-json-objects.out1
-rw-r--r--qpdf/qtest/qpdf/page_api_2-json-pages.out1
28 files changed, 34 insertions, 0 deletions
diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc
index 621e6933..55bebdcb 100644
--- a/libqpdf/QPDFJob.cc
+++ b/libqpdf/QPDFJob.cc
@@ -1188,6 +1188,12 @@ QPDFJob::doJSONQpdf(Pipeline* p, bool& first, QPDF& pdf)
p, first_qpdf, "jsonversion", JSON::makeInt(this->m->json_version), 1);
JSON::writeDictionaryItem(
p, first_qpdf, "pdfversion", JSON::makeString(pdf.getPDFVersion()), 1);
+ JSON::writeDictionaryItem(
+ p,
+ first_qpdf,
+ "maxobjectid",
+ JSON::makeInt(QIntC::to_longlong(pdf.getObjectCount())),
+ 1);
JSON::writeDictionaryKey(p, first_qpdf, "objects", 1);
bool first_object = true;
JSON::writeDictionaryOpen(p, first_object, 2);
@@ -1613,6 +1619,7 @@ QPDFJob::json_schema(int json_version, std::set<std::string>* keys)
schema.addDictionaryMember("qpdf", JSON::parse(R"({
"jsonversion": "qpdf json output version",
"pdfversion": "PDF version from PDF header",
+ "maxobjectid": "Highest object ID; needed for adding new objects",
"objects": {
"<obj:n n R|trailer>": "json representation of object"
}
diff --git a/qpdf/qtest/qpdf/direct-pages-json-objects.out b/qpdf/qtest/qpdf/direct-pages-json-objects.out
index 773a0a4c..0746a925 100644
--- a/qpdf/qtest/qpdf/direct-pages-json-objects.out
+++ b/qpdf/qtest/qpdf/direct-pages-json-objects.out
@@ -6,6 +6,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 6,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/direct-pages-json-pages.out b/qpdf/qtest/qpdf/direct-pages-json-pages.out
index 5cd2b2c0..9f9e41f3 100644
--- a/qpdf/qtest/qpdf/direct-pages-json-pages.out
+++ b/qpdf/qtest/qpdf/direct-pages-json-pages.out
@@ -28,6 +28,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 8,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/image-streams-small-to-json.out b/qpdf/qtest/qpdf/image-streams-small-to-json.out
index fa4929f2..3fd3e143 100644
--- a/qpdf/qtest/qpdf/image-streams-small-to-json.out
+++ b/qpdf/qtest/qpdf/image-streams-small-to-json.out
@@ -6,6 +6,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-bad-data-json-file-v2.out b/qpdf/qtest/qpdf/json-bad-data-json-file-v2.out
index 147dc372..79e739ed 100644
--- a/qpdf/qtest/qpdf/json-bad-data-json-file-v2.out
+++ b/qpdf/qtest/qpdf/json-bad-data-json-file-v2.out
@@ -53,6 +53,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 6,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-bad-data-json-inline-v2.out b/qpdf/qtest/qpdf/json-bad-data-json-inline-v2.out
index bfd7ad36..8c65e1c2 100644
--- a/qpdf/qtest/qpdf/json-bad-data-json-inline-v2.out
+++ b/qpdf/qtest/qpdf/json-bad-data-json-inline-v2.out
@@ -53,6 +53,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 6,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-field-types---show-encryption-key-v2.out b/qpdf/qtest/qpdf/json-field-types---show-encryption-key-v2.out
index c3158fae..d4948608 100644
--- a/qpdf/qtest/qpdf/json-field-types---show-encryption-key-v2.out
+++ b/qpdf/qtest/qpdf/json-field-types---show-encryption-key-v2.out
@@ -434,6 +434,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.5",
+ "maxobjectid": 196,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-field-types-v2.out b/qpdf/qtest/qpdf/json-field-types-v2.out
index c3158fae..d4948608 100644
--- a/qpdf/qtest/qpdf/json-field-types-v2.out
+++ b/qpdf/qtest/qpdf/json-field-types-v2.out
@@ -434,6 +434,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.5",
+ "maxobjectid": 196,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-all-file-v2.out b/qpdf/qtest/qpdf/json-image-streams-all-file-v2.out
index 98486519..728f404b 100644
--- a/qpdf/qtest/qpdf/json-image-streams-all-file-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-all-file-v2.out
@@ -6,6 +6,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:12 0 R": {
"stream": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-all-v2.out b/qpdf/qtest/qpdf/json-image-streams-all-v2.out
index 6ba15415..423103ae 100644
--- a/qpdf/qtest/qpdf/json-image-streams-all-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-all-v2.out
@@ -277,6 +277,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-generalized-file-v2.out b/qpdf/qtest/qpdf/json-image-streams-generalized-file-v2.out
index 00e5e8aa..51258eca 100644
--- a/qpdf/qtest/qpdf/json-image-streams-generalized-file-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-generalized-file-v2.out
@@ -6,6 +6,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:12 0 R": {
"stream": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-generalized-inline-v2.out b/qpdf/qtest/qpdf/json-image-streams-generalized-inline-v2.out
index f84e478b..1f28df1b 100644
--- a/qpdf/qtest/qpdf/json-image-streams-generalized-inline-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-generalized-inline-v2.out
@@ -277,6 +277,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-none-file-v2.out b/qpdf/qtest/qpdf/json-image-streams-none-file-v2.out
index ce9ccdad..d1b40901 100644
--- a/qpdf/qtest/qpdf/json-image-streams-none-file-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-none-file-v2.out
@@ -6,6 +6,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:12 0 R": {
"stream": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-none-inline-v2.out b/qpdf/qtest/qpdf/json-image-streams-none-inline-v2.out
index d275ed06..7559e5cf 100644
--- a/qpdf/qtest/qpdf/json-image-streams-none-inline-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-none-inline-v2.out
@@ -277,6 +277,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-small-v2.out b/qpdf/qtest/qpdf/json-image-streams-small-v2.out
index f7556d31..8b0232a6 100644
--- a/qpdf/qtest/qpdf/json-image-streams-small-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-small-v2.out
@@ -277,6 +277,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-specialized-file-v2.out b/qpdf/qtest/qpdf/json-image-streams-specialized-file-v2.out
index e0865277..dcf1d47d 100644
--- a/qpdf/qtest/qpdf/json-image-streams-specialized-file-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-specialized-file-v2.out
@@ -6,6 +6,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:12 0 R": {
"stream": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-specialized-inline-v2.out b/qpdf/qtest/qpdf/json-image-streams-specialized-inline-v2.out
index 082743da..451ca088 100644
--- a/qpdf/qtest/qpdf/json-image-streams-specialized-inline-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-specialized-inline-v2.out
@@ -277,6 +277,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-specialized-v2.out b/qpdf/qtest/qpdf/json-image-streams-specialized-v2.out
index 3e3f699c..987d62cb 100644
--- a/qpdf/qtest/qpdf/json-image-streams-specialized-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-specialized-v2.out
@@ -277,6 +277,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-image-streams-v2.out b/qpdf/qtest/qpdf/json-image-streams-v2.out
index 6a49225b..64fc4cb1 100644
--- a/qpdf/qtest/qpdf/json-image-streams-v2.out
+++ b/qpdf/qtest/qpdf/json-image-streams-v2.out
@@ -277,6 +277,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 30,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-outlines-with-actions-v2.out b/qpdf/qtest/qpdf/json-outlines-with-actions-v2.out
index feffede7..4adc6a31 100644
--- a/qpdf/qtest/qpdf/json-outlines-with-actions-v2.out
+++ b/qpdf/qtest/qpdf/json-outlines-with-actions-v2.out
@@ -622,6 +622,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 108,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-outlines-with-old-root-dests-v2.out b/qpdf/qtest/qpdf/json-outlines-with-old-root-dests-v2.out
index 6ce3b54d..8e97c099 100644
--- a/qpdf/qtest/qpdf/json-outlines-with-old-root-dests-v2.out
+++ b/qpdf/qtest/qpdf/json-outlines-with-old-root-dests-v2.out
@@ -727,6 +727,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 107,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-2-v2.out b/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-2-v2.out
index 814579f5..867f5b93 100644
--- a/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-2-v2.out
+++ b/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-2-v2.out
@@ -6,6 +6,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 106,
"objects": {
"obj:2 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-v2.out b/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-v2.out
index 63596e8f..6a4969d4 100644
--- a/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-v2.out
+++ b/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-v2.out
@@ -6,6 +6,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 106,
"objects": {
"trailer": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-v2.out b/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-v2.out
index 3d8a2d67..9c8e5b57 100644
--- a/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-v2.out
+++ b/qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-v2.out
@@ -6,6 +6,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 106,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-page-labels-and-outlines-v2.out b/qpdf/qtest/qpdf/json-page-labels-and-outlines-v2.out
index 349b8b68..81f7441b 100644
--- a/qpdf/qtest/qpdf/json-page-labels-and-outlines-v2.out
+++ b/qpdf/qtest/qpdf/json-page-labels-and-outlines-v2.out
@@ -797,6 +797,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 106,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/json-page-labels-num-tree-v2.out b/qpdf/qtest/qpdf/json-page-labels-num-tree-v2.out
index acff306a..e7ea1ede 100644
--- a/qpdf/qtest/qpdf/json-page-labels-num-tree-v2.out
+++ b/qpdf/qtest/qpdf/json-page-labels-num-tree-v2.out
@@ -540,6 +540,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 99,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/page_api_2-json-objects.out b/qpdf/qtest/qpdf/page_api_2-json-objects.out
index b686d143..42d47124 100644
--- a/qpdf/qtest/qpdf/page_api_2-json-objects.out
+++ b/qpdf/qtest/qpdf/page_api_2-json-objects.out
@@ -6,6 +6,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 10,
"objects": {
"obj:1 0 R": {
"value": {
diff --git a/qpdf/qtest/qpdf/page_api_2-json-pages.out b/qpdf/qtest/qpdf/page_api_2-json-pages.out
index 8e6f94b0..372a14f7 100644
--- a/qpdf/qtest/qpdf/page_api_2-json-pages.out
+++ b/qpdf/qtest/qpdf/page_api_2-json-pages.out
@@ -38,6 +38,7 @@
"qpdf": {
"jsonversion": 2,
"pdfversion": "1.3",
+ "maxobjectid": 11,
"objects": {
"obj:1 0 R": {
"value": {