Commit 2a2f7f1bba3dd87bd17f8b819ddeb1a24bb742dd

Authored by Jay Berkenbilt
1 parent 02e8ef6f

Add maxobjectid to JSON

libqpdf/QPDFJob.cc
... ... @@ -1188,6 +1188,12 @@ QPDFJob::doJSONQpdf(Pipeline* p, bool& first, QPDF& pdf)
1188 1188 p, first_qpdf, "jsonversion", JSON::makeInt(this->m->json_version), 1);
1189 1189 JSON::writeDictionaryItem(
1190 1190 p, first_qpdf, "pdfversion", JSON::makeString(pdf.getPDFVersion()), 1);
  1191 + JSON::writeDictionaryItem(
  1192 + p,
  1193 + first_qpdf,
  1194 + "maxobjectid",
  1195 + JSON::makeInt(QIntC::to_longlong(pdf.getObjectCount())),
  1196 + 1);
1191 1197 JSON::writeDictionaryKey(p, first_qpdf, "objects", 1);
1192 1198 bool first_object = true;
1193 1199 JSON::writeDictionaryOpen(p, first_object, 2);
... ... @@ -1613,6 +1619,7 @@ QPDFJob::json_schema(int json_version, std::set<std::string>* keys)
1613 1619 schema.addDictionaryMember("qpdf", JSON::parse(R"({
1614 1620 "jsonversion": "qpdf json output version",
1615 1621 "pdfversion": "PDF version from PDF header",
  1622 + "maxobjectid": "Highest object ID; needed for adding new objects",
1616 1623 "objects": {
1617 1624 "<obj:n n R|trailer>": "json representation of object"
1618 1625 }
... ...
qpdf/qtest/qpdf/direct-pages-json-objects.out
... ... @@ -6,6 +6,7 @@
6 6 "qpdf": {
7 7 "jsonversion": 2,
8 8 "pdfversion": "1.3",
  9 + "maxobjectid": 6,
9 10 "objects": {
10 11 "obj:1 0 R": {
11 12 "value": {
... ...
qpdf/qtest/qpdf/direct-pages-json-pages.out
... ... @@ -28,6 +28,7 @@
28 28 "qpdf": {
29 29 "jsonversion": 2,
30 30 "pdfversion": "1.3",
  31 + "maxobjectid": 8,
31 32 "objects": {
32 33 "obj:1 0 R": {
33 34 "value": {
... ...
qpdf/qtest/qpdf/image-streams-small-to-json.out
... ... @@ -6,6 +6,7 @@
6 6 "qpdf": {
7 7 "jsonversion": 2,
8 8 "pdfversion": "1.3",
  9 + "maxobjectid": 30,
9 10 "objects": {
10 11 "obj:1 0 R": {
11 12 "value": {
... ...
qpdf/qtest/qpdf/json-bad-data-json-file-v2.out
... ... @@ -53,6 +53,7 @@
53 53 "qpdf": {
54 54 "jsonversion": 2,
55 55 "pdfversion": "1.3",
  56 + "maxobjectid": 6,
56 57 "objects": {
57 58 "obj:1 0 R": {
58 59 "value": {
... ...
qpdf/qtest/qpdf/json-bad-data-json-inline-v2.out
... ... @@ -53,6 +53,7 @@
53 53 "qpdf": {
54 54 "jsonversion": 2,
55 55 "pdfversion": "1.3",
  56 + "maxobjectid": 6,
56 57 "objects": {
57 58 "obj:1 0 R": {
58 59 "value": {
... ...
qpdf/qtest/qpdf/json-field-types---show-encryption-key-v2.out
... ... @@ -434,6 +434,7 @@
434 434 "qpdf": {
435 435 "jsonversion": 2,
436 436 "pdfversion": "1.5",
  437 + "maxobjectid": 196,
437 438 "objects": {
438 439 "obj:1 0 R": {
439 440 "value": {
... ...
qpdf/qtest/qpdf/json-field-types-v2.out
... ... @@ -434,6 +434,7 @@
434 434 "qpdf": {
435 435 "jsonversion": 2,
436 436 "pdfversion": "1.5",
  437 + "maxobjectid": 196,
437 438 "objects": {
438 439 "obj:1 0 R": {
439 440 "value": {
... ...
qpdf/qtest/qpdf/json-image-streams-all-file-v2.out
... ... @@ -6,6 +6,7 @@
6 6 "qpdf": {
7 7 "jsonversion": 2,
8 8 "pdfversion": "1.3",
  9 + "maxobjectid": 30,
9 10 "objects": {
10 11 "obj:12 0 R": {
11 12 "stream": {
... ...
qpdf/qtest/qpdf/json-image-streams-all-v2.out
... ... @@ -277,6 +277,7 @@
277 277 "qpdf": {
278 278 "jsonversion": 2,
279 279 "pdfversion": "1.3",
  280 + "maxobjectid": 30,
280 281 "objects": {
281 282 "obj:1 0 R": {
282 283 "value": {
... ...
qpdf/qtest/qpdf/json-image-streams-generalized-file-v2.out
... ... @@ -6,6 +6,7 @@
6 6 "qpdf": {
7 7 "jsonversion": 2,
8 8 "pdfversion": "1.3",
  9 + "maxobjectid": 30,
9 10 "objects": {
10 11 "obj:12 0 R": {
11 12 "stream": {
... ...
qpdf/qtest/qpdf/json-image-streams-generalized-inline-v2.out
... ... @@ -277,6 +277,7 @@
277 277 "qpdf": {
278 278 "jsonversion": 2,
279 279 "pdfversion": "1.3",
  280 + "maxobjectid": 30,
280 281 "objects": {
281 282 "obj:1 0 R": {
282 283 "value": {
... ...
qpdf/qtest/qpdf/json-image-streams-none-file-v2.out
... ... @@ -6,6 +6,7 @@
6 6 "qpdf": {
7 7 "jsonversion": 2,
8 8 "pdfversion": "1.3",
  9 + "maxobjectid": 30,
9 10 "objects": {
10 11 "obj:12 0 R": {
11 12 "stream": {
... ...
qpdf/qtest/qpdf/json-image-streams-none-inline-v2.out
... ... @@ -277,6 +277,7 @@
277 277 "qpdf": {
278 278 "jsonversion": 2,
279 279 "pdfversion": "1.3",
  280 + "maxobjectid": 30,
280 281 "objects": {
281 282 "obj:1 0 R": {
282 283 "value": {
... ...
qpdf/qtest/qpdf/json-image-streams-small-v2.out
... ... @@ -277,6 +277,7 @@
277 277 "qpdf": {
278 278 "jsonversion": 2,
279 279 "pdfversion": "1.3",
  280 + "maxobjectid": 30,
280 281 "objects": {
281 282 "obj:1 0 R": {
282 283 "value": {
... ...
qpdf/qtest/qpdf/json-image-streams-specialized-file-v2.out
... ... @@ -6,6 +6,7 @@
6 6 "qpdf": {
7 7 "jsonversion": 2,
8 8 "pdfversion": "1.3",
  9 + "maxobjectid": 30,
9 10 "objects": {
10 11 "obj:12 0 R": {
11 12 "stream": {
... ...
qpdf/qtest/qpdf/json-image-streams-specialized-inline-v2.out
... ... @@ -277,6 +277,7 @@
277 277 "qpdf": {
278 278 "jsonversion": 2,
279 279 "pdfversion": "1.3",
  280 + "maxobjectid": 30,
280 281 "objects": {
281 282 "obj:1 0 R": {
282 283 "value": {
... ...
qpdf/qtest/qpdf/json-image-streams-specialized-v2.out
... ... @@ -277,6 +277,7 @@
277 277 "qpdf": {
278 278 "jsonversion": 2,
279 279 "pdfversion": "1.3",
  280 + "maxobjectid": 30,
280 281 "objects": {
281 282 "obj:1 0 R": {
282 283 "value": {
... ...
qpdf/qtest/qpdf/json-image-streams-v2.out
... ... @@ -277,6 +277,7 @@
277 277 "qpdf": {
278 278 "jsonversion": 2,
279 279 "pdfversion": "1.3",
  280 + "maxobjectid": 30,
280 281 "objects": {
281 282 "obj:1 0 R": {
282 283 "value": {
... ...
qpdf/qtest/qpdf/json-outlines-with-actions-v2.out
... ... @@ -622,6 +622,7 @@
622 622 "qpdf": {
623 623 "jsonversion": 2,
624 624 "pdfversion": "1.3",
  625 + "maxobjectid": 108,
625 626 "objects": {
626 627 "obj:1 0 R": {
627 628 "value": {
... ...
qpdf/qtest/qpdf/json-outlines-with-old-root-dests-v2.out
... ... @@ -727,6 +727,7 @@
727 727 "qpdf": {
728 728 "jsonversion": 2,
729 729 "pdfversion": "1.3",
  730 + "maxobjectid": 107,
730 731 "objects": {
731 732 "obj:1 0 R": {
732 733 "value": {
... ...
qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-2-v2.out
... ... @@ -6,6 +6,7 @@
6 6 "qpdf": {
7 7 "jsonversion": 2,
8 8 "pdfversion": "1.3",
  9 + "maxobjectid": 106,
9 10 "objects": {
10 11 "obj:2 0 R": {
11 12 "value": {
... ...
qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-trailer-v2.out
... ... @@ -6,6 +6,7 @@
6 6 "qpdf": {
7 7 "jsonversion": 2,
8 8 "pdfversion": "1.3",
  9 + "maxobjectid": 106,
9 10 "objects": {
10 11 "trailer": {
11 12 "value": {
... ...
qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-v2.out
... ... @@ -6,6 +6,7 @@
6 6 "qpdf": {
7 7 "jsonversion": 2,
8 8 "pdfversion": "1.3",
  9 + "maxobjectid": 106,
9 10 "objects": {
10 11 "obj:1 0 R": {
11 12 "value": {
... ...
qpdf/qtest/qpdf/json-page-labels-and-outlines-v2.out
... ... @@ -797,6 +797,7 @@
797 797 "qpdf": {
798 798 "jsonversion": 2,
799 799 "pdfversion": "1.3",
  800 + "maxobjectid": 106,
800 801 "objects": {
801 802 "obj:1 0 R": {
802 803 "value": {
... ...
qpdf/qtest/qpdf/json-page-labels-num-tree-v2.out
... ... @@ -540,6 +540,7 @@
540 540 "qpdf": {
541 541 "jsonversion": 2,
542 542 "pdfversion": "1.3",
  543 + "maxobjectid": 99,
543 544 "objects": {
544 545 "obj:1 0 R": {
545 546 "value": {
... ...
qpdf/qtest/qpdf/page_api_2-json-objects.out
... ... @@ -6,6 +6,7 @@
6 6 "qpdf": {
7 7 "jsonversion": 2,
8 8 "pdfversion": "1.3",
  9 + "maxobjectid": 10,
9 10 "objects": {
10 11 "obj:1 0 R": {
11 12 "value": {
... ...
qpdf/qtest/qpdf/page_api_2-json-pages.out
... ... @@ -38,6 +38,7 @@
38 38 "qpdf": {
39 39 "jsonversion": 2,
40 40 "pdfversion": "1.3",
  41 + "maxobjectid": 11,
41 42 "objects": {
42 43 "obj:1 0 R": {
43 44 "value": {
... ...