Commit c76536dd9a150adb71fdcda11ee1a93f25128cc7
1 parent
bdfc4da5
Implement JSON v2 output
Showing
40 changed files
with
1183 additions
and
1062 deletions
TODO
| ... | ... | @@ -50,6 +50,8 @@ Output JSON v2 |
| 50 | 50 | |
| 51 | 51 | General things to remember: |
| 52 | 52 | |
| 53 | +* Test inline and file stream data. | |
| 54 | + | |
| 53 | 55 | * Make sure all the information from --check and other informational |
| 54 | 56 | options (--show-linearization, --show-encryption, --show-xref, |
| 55 | 57 | --list-attachments, --show-npages) is available in the json output. |
| ... | ... | @@ -58,9 +60,6 @@ General things to remember: |
| 58 | 60 | when present in the schema. It's reasonable for people to check for |
| 59 | 61 | presence of a key. Most languages make this easy to do. |
| 60 | 62 | |
| 61 | -* The choices for json_key (job.yml) will be different for v1 and v2. | |
| 62 | - That information is already duplicated in multiple places. | |
| 63 | - | |
| 64 | 63 | * Test stream with invalid data |
| 65 | 64 | |
| 66 | 65 | * When we get to full serialization, add json serialization |
| ... | ... | @@ -76,20 +75,61 @@ General things to remember: |
| 76 | 75 | * "b:cf80", "b:CF80", "u:π", "u:\u03c0" |
| 77 | 76 | * "b:d83edd54", "u:🥔", "u:\ud83e\udd54" |
| 78 | 77 | |
| 78 | +JSON to PDF: | |
| 79 | + | |
| 79 | 80 | When reading a JSON string, any string that doesn't follow the above rules |
| 80 | 81 | is an error. Just use newUnicodeString on "u:" strings. For "b:" |
| 81 | 82 | strings, decode the bytes with hex_decode and use newString. |
| 82 | 83 | |
| 84 | +For going back from JSON to PDF, we can have | |
| 85 | +QPDF::fromJSON(std::shared_ptr<InputSource> which will have logic | |
| 86 | +similar to copyForeignObject. Note that this InputSource is not going | |
| 87 | +to be this->file. We have to keep it separately. | |
| 88 | + | |
| 89 | +The backing input source is this memory block: | |
| 90 | + | |
| 91 | +``` | |
| 92 | +%PDF-1.3 | |
| 93 | +xref | |
| 94 | +0 1 | |
| 95 | +0000000000 65535 f | |
| 96 | +trailer << /Size 1 >> | |
| 97 | +startxref | |
| 98 | +9 | |
| 99 | +%%EOF | |
| 100 | +``` | |
| 101 | + | |
| 102 | +* Ignore all keys except .qpdf. | |
| 103 | +* Verify that .qpdf.jsonVersion is 2 | |
| 104 | +* Set this->m->pdf_version based on the .qpdf.pdfVersion key | |
| 105 | +* For each object in .qpdf.objects: | |
| 106 | + * Walk through the object detecting any indirect objects. For each | |
| 107 | + one that is not already known, reserve the object. We can also | |
| 108 | + validate but we should try to do the best we can with invalid JSON | |
| 109 | + so people can get good error messages. | |
| 110 | + * Construct a QPDFObjectHandle from the JSON | |
| 111 | + * If the object is the trailer, update the trailer | |
| 112 | + * Else if the object doesn't exist, reserve it | |
| 113 | + * If the object is reserved, call replaceReserved() | |
| 114 | + * Else the object already exists; this is an error. | |
| 115 | + | |
| 116 | +For streams, have a stream data provider that, for inline streams, | |
| 117 | +does a base64 from the file offsets and for file-based streams, reads | |
| 118 | +the file. For the inline case, we have to keep the json InputSource | |
| 119 | +around. Otherwise, we don't. It is an error if there is no stream data. | |
| 120 | + | |
| 121 | +Documentation: | |
| 122 | + | |
| 83 | 123 | Serialized PDF: |
| 84 | 124 | |
| 85 | 125 | The JSON output will have a "qpdf" key containing |
| 86 | -* jsonVersion | |
| 87 | -* pdfVersion | |
| 126 | +* jsonversion | |
| 127 | +* pdfversion | |
| 88 | 128 | * objects |
| 89 | 129 | |
| 90 | 130 | The "qpdf" key replaces "objects" and "objectinfo" in v1 JSON. |
| 91 | 131 | |
| 92 | -Within .qpdf.objects, the key is "obj:o g R" or "obj:trailer", and the | |
| 132 | +Within .qpdf.objects, the key is "obj:o g R" or "trailer", and the | |
| 93 | 133 | value is a dictionary with exactly one of "value" or "stream" as its |
| 94 | 134 | single key. |
| 95 | 135 | |
| ... | ... | @@ -113,16 +153,17 @@ For streams: |
| 113 | 153 | "stream": { |
| 114 | 154 | "dict": { ... stream dictionary ... }, |
| 115 | 155 | "data": "base64-encoded data", |
| 116 | - "dataFile": "path to base64-encoded data" | |
| 156 | + "datafile": "path to base64-encoded data" | |
| 117 | 157 | } |
| 118 | 158 | } |
| 119 | 159 | } |
| 120 | 160 | |
| 121 | -At most one of "data" or "dataFile" will be present. When serializing, | |
| 161 | +At most one of "data" or "datafile" will be present. When serializing, | |
| 122 | 162 | stream decode parameters will be obeyed, and the stream dictionary |
| 123 | 163 | will reflect the result. There will be the option to omit stream data. |
| 124 | 164 | |
| 125 | -In the stream dictionary, "/Length" is always removed. | |
| 165 | +When data is included, "/Length" is removed from the stream | |
| 166 | +dictionary. | |
| 126 | 167 | |
| 127 | 168 | Streams are filtered or not based on the --decode-level parameter. If |
| 128 | 169 | a stream is filtered, "/Filter" and "/DecodeParms" are removed from |
| ... | ... | @@ -131,74 +172,11 @@ for when the file is read back in. |
| 131 | 172 | |
| 132 | 173 | CLI: |
| 133 | 174 | |
| 134 | -* Add new flags | |
| 135 | - | |
| 136 | - * --from-json=input.json -- signals reading from a JSON and counts | |
| 137 | - as an input file. | |
| 138 | - | |
| 139 | - * --json-streams-omit -- stream data is omitted, the default | |
| 140 | - | |
| 141 | - * --json-streams-inline -- stream data is included in the "data" | |
| 142 | - key as base64-encoded | |
| 143 | - | |
| 144 | - * --json-streams-file-prefix=prefix -- stream is written to $prefix-$obj | |
| 145 | - where $obj is the object number. The path to the file is stored | |
| 146 | - in the "dataFile" key. A relative path is recommended and will be | |
| 147 | - interpreted as relative to the current directory. If a relative | |
| 148 | - prefix is given, a relative path will stored in "dataFile". | |
| 149 | - Example: | |
| 150 | - mkdir in-streams | |
| 151 | - qpdf in.pdf --json-streams-file-prefix=in-streams/ > out.json | |
| 152 | - | |
| 153 | - * --to-json -- changes default to --json-streams-inline implies | |
| 154 | - --json-key=qpdf | |
| 155 | - | |
| 156 | 175 | Example workflow: |
| 157 | 176 | * qpdf in.pdf --to-json > pdf.json |
| 158 | 177 | * edit pdf.json |
| 159 | 178 | * qpdf --from-json=pdf.json out.pdf |
| 160 | 179 | |
| 161 | -JSON to PDF: | |
| 162 | - | |
| 163 | -For going back from JSON to PDF, we can have | |
| 164 | -QPDF::fromJSON(std::shared_ptr<InputSource> which will have logic | |
| 165 | -similar to copyForeignObject. Note that this InputSource is not going | |
| 166 | -to be this->file. We have to keep it separately. | |
| 167 | - | |
| 168 | -The backing input source is this memory block: | |
| 169 | - | |
| 170 | -``` | |
| 171 | -%PDF-1.3 | |
| 172 | -xref | |
| 173 | -0 1 | |
| 174 | -0000000000 65535 f | |
| 175 | -trailer << /Size 1 >> | |
| 176 | -startxref | |
| 177 | -9 | |
| 178 | -%%EOF | |
| 179 | -``` | |
| 180 | - | |
| 181 | -* Ignore all keys except .qpdf. | |
| 182 | -* Verify that .qpdf.jsonVersion is 2 | |
| 183 | -* Set this->m->pdf_version based on the .qpdf.pdfVersion key | |
| 184 | -* For each object in .qpdf.objects: | |
| 185 | - * Walk through the object detecting any indirect objects. For each | |
| 186 | - one that is not already known, reserve the object. We can also | |
| 187 | - validate but we should try to do the best we can with invalid JSON | |
| 188 | - so people can get good error messages. | |
| 189 | - * Construct a QPDFObjectHandle from the JSON | |
| 190 | - * If the object is the trailer, update the trailer | |
| 191 | - * Else if the object doesn't exist, reserve it | |
| 192 | - * If the object is reserved, call replaceReserved() | |
| 193 | - * Else the object already exists; this is an error. | |
| 194 | - | |
| 195 | -For streams, have a stream data provider that, for inline streams, | |
| 196 | -does a base64 from the file offsets and for file-based streams, reads | |
| 197 | -the file. For the inline case, we have to keep the json InputSource | |
| 198 | -around. Otherwise, we don't. It is an error if there is no stream data. | |
| 199 | - | |
| 200 | -Documentation: | |
| 201 | - | |
| 202 | 180 | Update --json option in cli.rst to mention v2 and update json.rst. |
| 203 | 181 | |
| 204 | 182 | Other documentation fodder: | ... | ... |
include/qpdf/Constants.h
| ... | ... | @@ -100,7 +100,7 @@ enum qpdf_stream_decode_level_e { |
| 100 | 100 | qpdf_dl_all /* also decode lossy filters */ |
| 101 | 101 | }; |
| 102 | 102 | /* For JSON encoding */ |
| 103 | -enum qpdf_stream_data_json_e { | |
| 103 | +enum qpdf_json_stream_data_e { | |
| 104 | 104 | qpdf_sj_none = 0, |
| 105 | 105 | qpdf_sj_inline, |
| 106 | 106 | qpdf_sj_file, | ... | ... |
include/qpdf/QPDFJob.hh
| ... | ... | @@ -515,12 +515,25 @@ class QPDFJob |
| 515 | 515 | std::set<QPDFObjGen> getWantedJSONObjects(); |
| 516 | 516 | void doJSONObjects(Pipeline* p, bool& first, QPDF& pdf); |
| 517 | 517 | void doJSONObjectinfo(Pipeline* p, bool& first, QPDF& pdf); |
| 518 | + void doJSONQpdf(Pipeline* p, bool& first, QPDF& pdf); | |
| 518 | 519 | void doJSONPages(Pipeline* p, bool& first, QPDF& pdf); |
| 519 | 520 | void doJSONPageLabels(Pipeline* p, bool& first, QPDF& pdf); |
| 520 | 521 | void doJSONOutlines(Pipeline* p, bool& first, QPDF& pdf); |
| 521 | 522 | void doJSONAcroform(Pipeline* p, bool& first, QPDF& pdf); |
| 522 | 523 | void doJSONEncrypt(Pipeline* p, bool& first, QPDF& pdf); |
| 523 | 524 | void doJSONAttachments(Pipeline* p, bool& first, QPDF& pdf); |
| 525 | + void doJSONStream( | |
| 526 | + Pipeline* p, | |
| 527 | + bool& first, | |
| 528 | + QPDF& pdf, | |
| 529 | + QPDFObjectHandle& obj, | |
| 530 | + std::string const& file_prefix); | |
| 531 | + void doJSONObject( | |
| 532 | + Pipeline* p, | |
| 533 | + bool& first, | |
| 534 | + QPDF& pdf, | |
| 535 | + std::string const& key, | |
| 536 | + QPDFObjectHandle& obj); | |
| 524 | 537 | void addOutlinesToJson( |
| 525 | 538 | std::vector<QPDFOutlineObjectHelper> outlines, |
| 526 | 539 | JSON& j, |
| ... | ... | @@ -638,6 +651,8 @@ class QPDFJob |
| 638 | 651 | int json_version; |
| 639 | 652 | std::set<std::string> json_keys; |
| 640 | 653 | std::set<std::string> json_objects; |
| 654 | + qpdf_json_stream_data_e json_stream_data; | |
| 655 | + std::string json_stream_prefix; | |
| 641 | 656 | bool test_json_schema; |
| 642 | 657 | bool check; |
| 643 | 658 | bool optimize_images; | ... | ... |
include/qpdf/QPDFObjectHandle.hh
| ... | ... | @@ -1377,12 +1377,16 @@ class QPDFObjectHandle |
| 1377 | 1377 | // data_filename argument must be supplied. The value of |
| 1378 | 1378 | // data_filename is stored in the resulting json in the "datafile" |
| 1379 | 1379 | // key but is not otherwise use. The stream data itself (raw or |
| 1380 | - // filtered depending on decode level), is written to the | |
| 1381 | - // pipeline via pipeStreamData(). | |
| 1380 | + // filtered depending on decode level), is written to the pipeline | |
| 1381 | + // via pipeStreamData(). | |
| 1382 | + // | |
| 1383 | + // NOTE: When json_data is qpdf_sj_inline, the QPDF object from | |
| 1384 | + // which the stream originates must remain valid until after the | |
| 1385 | + // JSON object is written. | |
| 1382 | 1386 | QPDF_DLL |
| 1383 | 1387 | JSON getStreamJSON( |
| 1384 | 1388 | int json_version, |
| 1385 | - qpdf_stream_data_json_e json_data, | |
| 1389 | + qpdf_json_stream_data_e json_data, | |
| 1386 | 1390 | qpdf_stream_decode_level_e decode_level, |
| 1387 | 1391 | Pipeline* p, |
| 1388 | 1392 | std::string const& data_filename); | ... | ... |
include/qpdf/auto_job_c_main.hh
| ... | ... | @@ -66,6 +66,7 @@ QPDF_DLL Config* removeAttachment(std::string const& parameter); |
| 66 | 66 | QPDF_DLL Config* rotate(std::string const& parameter); |
| 67 | 67 | QPDF_DLL Config* showAttachment(std::string const& parameter); |
| 68 | 68 | QPDF_DLL Config* showObject(std::string const& parameter); |
| 69 | +QPDF_DLL Config* jsonStreamPrefix(std::string const& parameter); | |
| 69 | 70 | QPDF_DLL Config* collate(std::string const& parameter); |
| 70 | 71 | QPDF_DLL Config* collate(); |
| 71 | 72 | QPDF_DLL Config* splitPages(std::string const& parameter); |
| ... | ... | @@ -80,5 +81,6 @@ QPDF_DLL Config* objectStreams(std::string const& parameter); |
| 80 | 81 | QPDF_DLL Config* passwordMode(std::string const& parameter); |
| 81 | 82 | QPDF_DLL Config* removeUnreferencedResources(std::string const& parameter); |
| 82 | 83 | QPDF_DLL Config* streamData(std::string const& parameter); |
| 84 | +QPDF_DLL Config* jsonStreamData(std::string const& parameter); | |
| 83 | 85 | QPDF_DLL Config* json(std::string const& parameter); |
| 84 | 86 | QPDF_DLL Config* json(); | ... | ... |
job.sums
| ... | ... | @@ -3,15 +3,15 @@ generate_auto_job 0514289f2deb3bf7c1a6e85ef7d99ad120321ef5a6fe49d76c5274c6a658d3 |
| 3 | 3 | include/qpdf/auto_job_c_att.hh 4c2b171ea00531db54720bf49a43f8b34481586ae7fb6cbf225099ee42bc5bb4 |
| 4 | 4 | include/qpdf/auto_job_c_copy_att.hh 50609012bff14fd82f0649185940d617d05d530cdc522185c7f3920a561ccb42 |
| 5 | 5 | include/qpdf/auto_job_c_enc.hh 28446f3c32153a52afa239ea40503e6cc8ac2c026813526a349e0cd4ae17ddd5 |
| 6 | -include/qpdf/auto_job_c_main.hh 940aa6f1ead18ed08ba33f11254e9f042348262c85b91de742f0427094412a80 | |
| 6 | +include/qpdf/auto_job_c_main.hh 688959c4725a71e1340cccfb2cf780ec62ada5aa42a9c3c7c8a5cd8e85a4a17d | |
| 7 | 7 | include/qpdf/auto_job_c_pages.hh b3cc0f21029f6d89efa043dcdbfa183cb59325b6506001c18911614fe8e568ec |
| 8 | 8 | include/qpdf/auto_job_c_uo.hh ae21b69a1efa9333050f4833d465f6daff87e5b38e5106e49bbef5d4132e4ed1 |
| 9 | -job.yml e3d9752ea8810872447190b0b2b913f591ae03dfdd876945adf1bbb76942cd0f | |
| 9 | +job.yml e73b8190f3e314bcdc98edf3d61d72283e5d0ff603b3d8ae98c77bb36b80028f | |
| 10 | 10 | libqpdf/qpdf/auto_job_decl.hh 74df4d7fdbdf51ecd0d58ce1e9844bb5525b9adac5a45f7c9a787ecdda2868df |
| 11 | -libqpdf/qpdf/auto_job_help.hh a3d1a326a3f8ff61a7d451176acde3bb6c8ad66c1ea7a0b8c5d789917ad3a9ee | |
| 12 | -libqpdf/qpdf/auto_job_init.hh 1dcefadac02bb4b3a5d112912483902ad46489b1cacefefd3ebe4f64fc1b8a29 | |
| 11 | +libqpdf/qpdf/auto_job_help.hh feac25cd7e45fd587ca3c9b8807a1aed2e5510b592e76ae5bac775b0e03ac0b2 | |
| 12 | +libqpdf/qpdf/auto_job_init.hh 7d98e1d4b213537b6d401a103a9d52c77aaea3e1164f06c3664625f6ebfa7e7d | |
| 13 | 13 | libqpdf/qpdf/auto_job_json_decl.hh 06caa46eaf71db8a50c046f91866baa8087745a9474319fb7c86d92634cc8297 |
| 14 | -libqpdf/qpdf/auto_job_json_init.hh 784ff973e7efbf589f6a9b3ad22b3aada5c5393e9c5cd31845b8fe4af6e03f98 | |
| 15 | -libqpdf/qpdf/auto_job_schema.hh cbbcae166cfecbdbdeb40c5a30870e03604a019a8b4f7a217d554a82431d2e5f | |
| 14 | +libqpdf/qpdf/auto_job_json_init.hh 1c1dcefd9577638f04fa1b76c82ddb1d20d93017bb72782da2aca8a51d974770 | |
| 15 | +libqpdf/qpdf/auto_job_schema.hh 748b2e11754c5186b31098ab1b7963306fe0d5fd91445df914c105c8fac49c18 | |
| 16 | 16 | manual/_ext/qpdf.py 6add6321666031d55ed4aedf7c00e5662bba856dfcd66ccb526563bffefbb580 |
| 17 | -manual/cli.rst 8684ca1f601f2832cded52d1b2f74730f97b7b85b57e31a399231731fbe80d26 | |
| 17 | +manual/cli.rst 3901f7e099c2ebf29e81db7d93f3f19a92aff9e72ec6dfb0984a170cfcdd300f | ... | ... |
job.yml
| ... | ... | @@ -47,11 +47,16 @@ choices: |
| 47 | 47 | - acroform |
| 48 | 48 | - attachments |
| 49 | 49 | - encrypt |
| 50 | - - objectinfo | |
| 51 | - - objects | |
| 50 | + - objectinfo # only v1 | |
| 51 | + - objects # only v1 | |
| 52 | 52 | - outlines |
| 53 | 53 | - pagelabels |
| 54 | 54 | - pages |
| 55 | + - qpdf # only v2 | |
| 56 | + json_stream_data: | |
| 57 | + - none | |
| 58 | + - inline | |
| 59 | + - file | |
| 55 | 60 | print128: |
| 56 | 61 | - full |
| 57 | 62 | - low |
| ... | ... | @@ -156,6 +161,7 @@ options: |
| 156 | 161 | rotate: "[+|-]angle" |
| 157 | 162 | show-attachment: attachment |
| 158 | 163 | show-object: trailer |
| 164 | + json-stream-prefix: stream-file-prefix | |
| 159 | 165 | required_choices: |
| 160 | 166 | compress-streams: yn |
| 161 | 167 | decode-level: decode_level |
| ... | ... | @@ -167,6 +173,7 @@ options: |
| 167 | 173 | password-mode: password_mode |
| 168 | 174 | remove-unreferenced-resources: remove_unref |
| 169 | 175 | stream-data: stream_data |
| 176 | + json-stream-data: json_stream_data | |
| 170 | 177 | optional_choices: |
| 171 | 178 | json: json_version |
| 172 | 179 | - table: pages |
| ... | ... | @@ -348,6 +355,8 @@ json: |
| 348 | 355 | - null |
| 349 | 356 | json-object: |
| 350 | 357 | - null |
| 358 | + json-stream-data: | |
| 359 | + json-stream-prefix: | |
| 351 | 360 | # other options |
| 352 | 361 | allow-weak-crypto: |
| 353 | 362 | keep-files-open: | ... | ... |
libqpdf/QPDFJob.cc
| ... | ... | @@ -401,6 +401,7 @@ QPDFJob::Members::Members() : |
| 401 | 401 | flatten_rotation(false), |
| 402 | 402 | list_attachments(false), |
| 403 | 403 | json_version(0), |
| 404 | + json_stream_data(qpdf_sj_none), | |
| 404 | 405 | test_json_schema(false), |
| 405 | 406 | check(false), |
| 406 | 407 | optimize_images(false), |
| ... | ... | @@ -695,6 +696,17 @@ QPDFJob::checkConfiguration() |
| 695 | 696 | " use --replace-input to intentionally" |
| 696 | 697 | " overwrite the input file"); |
| 697 | 698 | } |
| 699 | + | |
| 700 | + if (m->json_version == 1) { | |
| 701 | + if (m->json_keys.count("qpdf")) { | |
| 702 | + usage("json key \"qpdf\" is not valid for json version 1"); | |
| 703 | + } | |
| 704 | + } else { | |
| 705 | + if (m->json_keys.count("objects") || m->json_keys.count("objectinfo")) { | |
| 706 | + usage("json keys \"objects\" and \"objectinfo\" are only valid for " | |
| 707 | + "json version 1"); | |
| 708 | + } | |
| 709 | + } | |
| 698 | 710 | } |
| 699 | 711 | |
| 700 | 712 | unsigned long |
| ... | ... | @@ -1104,6 +1116,102 @@ QPDFJob::doJSONObjectinfo(Pipeline* p, bool& first, QPDF& pdf) |
| 1104 | 1116 | } |
| 1105 | 1117 | |
| 1106 | 1118 | void |
| 1119 | +QPDFJob::doJSONStream( | |
| 1120 | + Pipeline* p, | |
| 1121 | + bool& first, | |
| 1122 | + QPDF& pdf, | |
| 1123 | + QPDFObjectHandle& obj, | |
| 1124 | + std::string const& file_prefix) | |
| 1125 | +{ | |
| 1126 | + Pipeline* stream_p = nullptr; | |
| 1127 | + FILE* f = nullptr; | |
| 1128 | + std::shared_ptr<Pl_StdioFile> f_pl; | |
| 1129 | + std::string filename; | |
| 1130 | + if (this->m->json_stream_data == qpdf_sj_file) { | |
| 1131 | + filename = file_prefix + "-" + QUtil::int_to_string(obj.getObjectID()); | |
| 1132 | + f = QUtil::safe_fopen(filename.c_str(), "wb"); | |
| 1133 | + f_pl = std::make_shared<Pl_StdioFile>("stream data", f); | |
| 1134 | + stream_p = f_pl.get(); | |
| 1135 | + } | |
| 1136 | + auto j = JSON::makeDictionary(); | |
| 1137 | + j.addDictionaryMember( | |
| 1138 | + "stream", | |
| 1139 | + obj.getStreamJSON( | |
| 1140 | + this->m->json_version, | |
| 1141 | + this->m->json_stream_data, | |
| 1142 | + this->m->decode_level, | |
| 1143 | + stream_p, | |
| 1144 | + filename)); | |
| 1145 | + | |
| 1146 | + JSON::writeDictionaryItem(p, first, "obj:" + obj.unparse(), j, 2); | |
| 1147 | + if (f) { | |
| 1148 | + f_pl->finish(); | |
| 1149 | + f_pl = nullptr; | |
| 1150 | + fclose(f); | |
| 1151 | + } | |
| 1152 | +} | |
| 1153 | + | |
| 1154 | +void | |
| 1155 | +QPDFJob::doJSONObject( | |
| 1156 | + Pipeline* p, | |
| 1157 | + bool& first, | |
| 1158 | + QPDF& pdf, | |
| 1159 | + std::string const& key, | |
| 1160 | + QPDFObjectHandle& obj) | |
| 1161 | +{ | |
| 1162 | + auto j = JSON::makeDictionary(); | |
| 1163 | + j.addDictionaryMember("value", obj.getJSON(this->m->json_version, true)); | |
| 1164 | + JSON::writeDictionaryItem(p, first, key, j, 2); | |
| 1165 | +} | |
| 1166 | + | |
| 1167 | +void | |
| 1168 | +QPDFJob::doJSONQpdf(Pipeline* p, bool& first, QPDF& pdf) | |
| 1169 | +{ | |
| 1170 | + std::string file_prefix = this->m->json_stream_prefix; | |
| 1171 | + if (this->m->json_stream_data == qpdf_sj_file) { | |
| 1172 | + if (file_prefix.empty()) { | |
| 1173 | + if (this->m->infilename.get()) { | |
| 1174 | + file_prefix = this->m->infilename.get(); | |
| 1175 | + } | |
| 1176 | + if (file_prefix.empty()) { | |
| 1177 | + usage( | |
| 1178 | + "please specify --json-stream-prefix since the input file " | |
| 1179 | + "name is unknown"); | |
| 1180 | + } | |
| 1181 | + } | |
| 1182 | + } | |
| 1183 | + | |
| 1184 | + JSON::writeDictionaryKey(p, first, "qpdf", 0); | |
| 1185 | + bool first_qpdf = true; | |
| 1186 | + JSON::writeDictionaryOpen(p, first_qpdf, 1); | |
| 1187 | + JSON::writeDictionaryItem( | |
| 1188 | + p, first_qpdf, "jsonversion", JSON::makeInt(this->m->json_version), 1); | |
| 1189 | + JSON::writeDictionaryItem( | |
| 1190 | + p, first_qpdf, "pdfversion", JSON::makeString(pdf.getPDFVersion()), 1); | |
| 1191 | + JSON::writeDictionaryKey(p, first_qpdf, "objects", 1); | |
| 1192 | + bool first_object = true; | |
| 1193 | + JSON::writeDictionaryOpen(p, first_object, 2); | |
| 1194 | + bool all_objects = m->json_objects.empty(); | |
| 1195 | + std::set<QPDFObjGen> wanted_og = getWantedJSONObjects(); | |
| 1196 | + std::vector<QPDFObjectHandle> objects = pdf.getAllObjects(); | |
| 1197 | + for (auto& obj: objects) { | |
| 1198 | + if (all_objects || wanted_og.count(obj.getObjGen())) { | |
| 1199 | + if (obj.isStream()) { | |
| 1200 | + doJSONStream(p, first_object, pdf, obj, file_prefix); | |
| 1201 | + } else { | |
| 1202 | + doJSONObject(p, first_object, pdf, "obj:" + obj.unparse(), obj); | |
| 1203 | + } | |
| 1204 | + } | |
| 1205 | + } | |
| 1206 | + if (all_objects || m->json_objects.count("trailer")) { | |
| 1207 | + auto trailer = pdf.getTrailer(); | |
| 1208 | + doJSONObject(p, first_object, pdf, "trailer", trailer); | |
| 1209 | + } | |
| 1210 | + JSON::writeDictionaryClose(p, first_object, 2); | |
| 1211 | + JSON::writeDictionaryClose(p, first_qpdf, 1); | |
| 1212 | +} | |
| 1213 | + | |
| 1214 | +void | |
| 1107 | 1215 | QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf) |
| 1108 | 1216 | { |
| 1109 | 1217 | JSON::writeDictionaryKey(p, first, "pages", 0); |
| ... | ... | @@ -1482,14 +1590,15 @@ QPDFJob::json_schema(int json_version, std::set<std::string>* keys) |
| 1482 | 1590 | // The list of selectable top-level keys id duplicated in the |
| 1483 | 1591 | // following places: job.yml, QPDFJob::json_schema, and |
| 1484 | 1592 | // QPDFJob::doJSON. |
| 1485 | - if (all_keys || keys->count("objects")) { | |
| 1486 | - schema.addDictionaryMember("objects", JSON::parse(R"({ | |
| 1593 | + if (json_version == 1) { | |
| 1594 | + if (all_keys || keys->count("objects")) { | |
| 1595 | + schema.addDictionaryMember("objects", JSON::parse(R"({ | |
| 1487 | 1596 | "<n n R|trailer>": "json representation of object" |
| 1488 | 1597 | })")); |
| 1489 | - } | |
| 1490 | - if (all_keys || keys->count("objectinfo")) { | |
| 1491 | - JSON objectinfo = | |
| 1492 | - schema.addDictionaryMember("objectinfo", JSON::parse(R"({ | |
| 1598 | + } | |
| 1599 | + if (all_keys || keys->count("objectinfo")) { | |
| 1600 | + JSON objectinfo = | |
| 1601 | + schema.addDictionaryMember("objectinfo", JSON::parse(R"({ | |
| 1493 | 1602 | "<object-id>": { |
| 1494 | 1603 | "stream": { |
| 1495 | 1604 | "filter": "if stream, its filters, otherwise null", |
| ... | ... | @@ -1498,6 +1607,17 @@ QPDFJob::json_schema(int json_version, std::set<std::string>* keys) |
| 1498 | 1607 | } |
| 1499 | 1608 | } |
| 1500 | 1609 | })")); |
| 1610 | + } | |
| 1611 | + } else { | |
| 1612 | + if (all_keys || keys->count("qpdf")) { | |
| 1613 | + schema.addDictionaryMember("qpdf", JSON::parse(R"({ | |
| 1614 | + "jsonversion": "qpdf json output version", | |
| 1615 | + "pdfversion": "PDF version from PDF header", | |
| 1616 | + "objects": { | |
| 1617 | + "<obj:n n R|trailer>": "json representation of object" | |
| 1618 | + } | |
| 1619 | +})")); | |
| 1620 | + } | |
| 1501 | 1621 | } |
| 1502 | 1622 | if (all_keys || keys->count("pages")) { |
| 1503 | 1623 | JSON page = schema.addDictionaryMember("pages", JSON::parse(R"([ |
| ... | ... | @@ -1705,15 +1825,21 @@ QPDFJob::doJSON(QPDF& pdf, Pipeline* p) |
| 1705 | 1825 | doJSONOutlines(p, first, pdf); |
| 1706 | 1826 | } |
| 1707 | 1827 | |
| 1708 | - // We do objects and objectinfo last so their information is | |
| 1709 | - // consistent with repairing the page tree. To see the original | |
| 1710 | - // file with any page tree problems and the page tree not | |
| 1711 | - // flattened, select objects/objectinfo without other keys. | |
| 1712 | - if (all_keys || m->json_keys.count("objects")) { | |
| 1713 | - doJSONObjects(p, first, pdf); | |
| 1714 | - } | |
| 1715 | - if (all_keys || m->json_keys.count("objectinfo")) { | |
| 1716 | - doJSONObjectinfo(p, first, pdf); | |
| 1828 | + // We do objects last so their information is consistent with | |
| 1829 | + // repairing the page tree. To see the original file with any page | |
| 1830 | + // tree problems and the page tree not flattened, select | |
| 1831 | + // objects/objectinfo without other keys. | |
| 1832 | + if (this->m->json_version == 1) { | |
| 1833 | + if (all_keys || m->json_keys.count("objects")) { | |
| 1834 | + doJSONObjects(p, first, pdf); | |
| 1835 | + } | |
| 1836 | + if (all_keys || m->json_keys.count("objectinfo")) { | |
| 1837 | + doJSONObjectinfo(p, first, pdf); | |
| 1838 | + } | |
| 1839 | + } else { | |
| 1840 | + if (all_keys || m->json_keys.count("qpdf")) { | |
| 1841 | + doJSONQpdf(p, first, pdf); | |
| 1842 | + } | |
| 1717 | 1843 | } |
| 1718 | 1844 | |
| 1719 | 1845 | JSON::writeDictionaryClose(p, first, 0); | ... | ... |
libqpdf/QPDFJob_config.cc
| ... | ... | @@ -261,6 +261,29 @@ QPDFJob::Config::jsonObject(std::string const& parameter) |
| 261 | 261 | } |
| 262 | 262 | |
| 263 | 263 | QPDFJob::Config* |
| 264 | +QPDFJob::Config::jsonStreamData(std::string const& parameter) | |
| 265 | +{ | |
| 266 | + if (parameter == "none") { | |
| 267 | + o.m->json_stream_data = qpdf_sj_none; | |
| 268 | + } else if (parameter == "inline") { | |
| 269 | + o.m->json_stream_data = qpdf_sj_inline; | |
| 270 | + } else if (parameter == "file") { | |
| 271 | + o.m->json_stream_data = qpdf_sj_file; | |
| 272 | + } else { | |
| 273 | + usage("invalid json-streams option"); | |
| 274 | + } | |
| 275 | + | |
| 276 | + return this; | |
| 277 | +} | |
| 278 | + | |
| 279 | +QPDFJob::Config* | |
| 280 | +QPDFJob::Config::jsonStreamPrefix(std::string const& parameter) | |
| 281 | +{ | |
| 282 | + o.m->json_stream_prefix = parameter; | |
| 283 | + return this; | |
| 284 | +} | |
| 285 | + | |
| 286 | +QPDFJob::Config* | |
| 264 | 287 | QPDFJob::Config::testJsonSchema() |
| 265 | 288 | { |
| 266 | 289 | o.m->test_json_schema = true; | ... | ... |
libqpdf/QPDFObjectHandle.cc
| ... | ... | @@ -1800,7 +1800,7 @@ QPDFObjectHandle::getJSON(int json_version, bool dereference_indirect) |
| 1800 | 1800 | JSON |
| 1801 | 1801 | QPDFObjectHandle::getStreamJSON( |
| 1802 | 1802 | int json_version, |
| 1803 | - qpdf_stream_data_json_e json_data, | |
| 1803 | + qpdf_json_stream_data_e json_data, | |
| 1804 | 1804 | qpdf_stream_decode_level_e decode_level, |
| 1805 | 1805 | Pipeline* p, |
| 1806 | 1806 | std::string const& data_filename) | ... | ... |
libqpdf/QPDF_Stream.cc
| ... | ... | @@ -189,7 +189,7 @@ QPDF_Stream::getJSON(int json_version) |
| 189 | 189 | JSON |
| 190 | 190 | QPDF_Stream::getStreamJSON( |
| 191 | 191 | int json_version, |
| 192 | - qpdf_stream_data_json_e json_data, | |
| 192 | + qpdf_json_stream_data_e json_data, | |
| 193 | 193 | qpdf_stream_decode_level_e decode_level, |
| 194 | 194 | Pipeline* p, |
| 195 | 195 | std::string const& data_filename) |
| ... | ... | @@ -231,11 +231,17 @@ QPDF_Stream::getStreamJSON( |
| 231 | 231 | } else { |
| 232 | 232 | data_pipeline = &discard; |
| 233 | 233 | } |
| 234 | - filtered = pipeStreamData( | |
| 235 | - data_pipeline, nullptr, 0, decode_level, false, (attempt == 1)); | |
| 236 | - if (filter && (!filtered)) { | |
| 234 | + bool succeeded = pipeStreamData( | |
| 235 | + data_pipeline, | |
| 236 | + &filtered, | |
| 237 | + 0, | |
| 238 | + decode_level, | |
| 239 | + false, | |
| 240 | + (attempt == 1)); | |
| 241 | + if ((!succeeded) || (filter && (!filtered))) { | |
| 237 | 242 | // Try again |
| 238 | 243 | filter = false; |
| 244 | + decode_level = qpdf_dl_none; | |
| 239 | 245 | } else { |
| 240 | 246 | if (buf_pl.get()) { |
| 241 | 247 | buf = buf_pl->getBufferSharedPointer(); |
| ... | ... | @@ -247,7 +253,7 @@ QPDF_Stream::getStreamJSON( |
| 247 | 253 | // touching top-level keys. |
| 248 | 254 | dict = this->stream_dict.unsafeShallowCopy(); |
| 249 | 255 | dict.removeKey("/Length"); |
| 250 | - if (filtered) { | |
| 256 | + if (filter && filtered) { | |
| 251 | 257 | dict.removeKey("/Filter"); |
| 252 | 258 | dict.removeKey("/DecodeParms"); |
| 253 | 259 | } | ... | ... |
libqpdf/qpdf/QPDF_Stream.hh
| ... | ... | @@ -63,7 +63,7 @@ class QPDF_Stream: public QPDFObject |
| 63 | 63 | addTokenFilter(std::shared_ptr<QPDFObjectHandle::TokenFilter> token_filter); |
| 64 | 64 | JSON getStreamJSON( |
| 65 | 65 | int json_version, |
| 66 | - qpdf_stream_data_json_e json_data, | |
| 66 | + qpdf_json_stream_data_e json_data, | |
| 67 | 67 | qpdf_stream_decode_level_e decode_level, |
| 68 | 68 | Pipeline* p, |
| 69 | 69 | std::string const& data_filename); | ... | ... |
libqpdf/qpdf/auto_job_help.hh
| ... | ... | @@ -817,6 +817,21 @@ objects will be shown. |
| 817 | 817 | ap.addOptionHelp("--job-json-help", "json", "show format of job JSON", R"(Describe the format of the QPDFJob JSON input used by |
| 818 | 818 | --job-json-file. |
| 819 | 819 | )"); |
| 820 | +ap.addOptionHelp("--json-stream-data", "json", "how to handle streams in json output", R"(--json-stream-data={none|inline|file} | |
| 821 | + | |
| 822 | +Control whether streams in json output should be omitted, | |
| 823 | +written inline (base64-encoded) or written to a file. If "file" | |
| 824 | +is chosen, the file will be the name of the input file appended | |
| 825 | +with -nnn where nnn is the object number. The prefix can be | |
| 826 | +overridden with --json-stream-prefix. | |
| 827 | +)"); | |
| 828 | +ap.addOptionHelp("--json-stream-prefix", "json", "prefix for json stream data files", R"(--json-stream-prefix=file-prefix | |
| 829 | + | |
| 830 | +When --json-stream-data=file is given, override the input file | |
| 831 | +name as the prefix for stream data files. Whatever is given here | |
| 832 | +will be appended with -nnn to create the name of the file that | |
| 833 | +will contain the data for the stream stream in object nnn. | |
| 834 | +)"); | |
| 820 | 835 | ap.addHelpTopic("testing", "options for testing or debugging", R"(The options below are useful when writing automated test code that |
| 821 | 836 | includes files created by qpdf or when testing qpdf itself. |
| 822 | 837 | )"); |
| ... | ... | @@ -829,6 +844,9 @@ for testing only so that output files can be reproducible. Never |
| 829 | 844 | use it for production files. This option is not secure since it |
| 830 | 845 | significantly weakens the encryption. |
| 831 | 846 | )"); |
| 847 | +} | |
| 848 | +static void add_help_8(QPDFArgParser& ap) | |
| 849 | +{ | |
| 832 | 850 | ap.addOptionHelp("--linearize-pass1", "testing", "save pass 1 of linearization", R"(--linearize-pass1=file |
| 833 | 851 | |
| 834 | 852 | Write the first pass of linearization to the named file. The |
| ... | ... | @@ -839,9 +857,6 @@ ap.addOptionHelp("--test-json-schema", "testing", "test generated json against s |
| 839 | 857 | the output of qpdf --json and the output of qpdf --json-help. |
| 840 | 858 | )"); |
| 841 | 859 | } |
| 842 | -static void add_help_8(QPDFArgParser& ap) | |
| 843 | -{ | |
| 844 | -} | |
| 845 | 860 | static void add_help(QPDFArgParser& ap) |
| 846 | 861 | { |
| 847 | 862 | add_help_1(ap); | ... | ... |
libqpdf/qpdf/auto_job_init.hh
| ... | ... | @@ -20,7 +20,8 @@ static char const* object_streams_choices[] = {"disable", "preserve", "generate" |
| 20 | 20 | static char const* remove_unref_choices[] = {"auto", "yes", "no", 0}; |
| 21 | 21 | static char const* flatten_choices[] = {"all", "print", "screen", 0}; |
| 22 | 22 | static char const* json_version_choices[] = {"1", "2", "latest", 0}; |
| 23 | -static char const* json_key_choices[] = {"acroform", "attachments", "encrypt", "objectinfo", "objects", "outlines", "pagelabels", "pages", 0}; | |
| 23 | +static char const* json_key_choices[] = {"acroform", "attachments", "encrypt", "objectinfo", "objects", "outlines", "pagelabels", "pages", "qpdf", 0}; | |
| 24 | +static char const* json_stream_data_choices[] = {"none", "inline", "file", 0}; | |
| 24 | 25 | static char const* print128_choices[] = {"full", "low", "none", 0}; |
| 25 | 26 | static char const* modify128_choices[] = {"all", "annotate", "form", "assembly", "none", 0}; |
| 26 | 27 | |
| ... | ... | @@ -101,6 +102,7 @@ this->ap.addRequiredParameter("remove-attachment", [this](std::string const& x){ |
| 101 | 102 | this->ap.addRequiredParameter("rotate", [this](std::string const& x){c_main->rotate(x);}, "[+|-]angle"); |
| 102 | 103 | this->ap.addRequiredParameter("show-attachment", [this](std::string const& x){c_main->showAttachment(x);}, "attachment"); |
| 103 | 104 | this->ap.addRequiredParameter("show-object", [this](std::string const& x){c_main->showObject(x);}, "trailer"); |
| 105 | +this->ap.addRequiredParameter("json-stream-prefix", [this](std::string const& x){c_main->jsonStreamPrefix(x);}, "stream-file-prefix"); | |
| 104 | 106 | this->ap.addOptionalParameter("collate", [this](std::string const& x){c_main->collate(x);}); |
| 105 | 107 | this->ap.addOptionalParameter("split-pages", [this](std::string const& x){c_main->splitPages(x);}); |
| 106 | 108 | this->ap.addChoices("compress-streams", [this](std::string const& x){c_main->compressStreams(x);}, true, yn_choices); |
| ... | ... | @@ -113,6 +115,7 @@ this->ap.addChoices("object-streams", [this](std::string const& x){c_main->objec |
| 113 | 115 | this->ap.addChoices("password-mode", [this](std::string const& x){c_main->passwordMode(x);}, true, password_mode_choices); |
| 114 | 116 | this->ap.addChoices("remove-unreferenced-resources", [this](std::string const& x){c_main->removeUnreferencedResources(x);}, true, remove_unref_choices); |
| 115 | 117 | this->ap.addChoices("stream-data", [this](std::string const& x){c_main->streamData(x);}, true, stream_data_choices); |
| 118 | +this->ap.addChoices("json-stream-data", [this](std::string const& x){c_main->jsonStreamData(x);}, true, json_stream_data_choices); | |
| 116 | 119 | this->ap.addChoices("json", [this](std::string const& x){c_main->json(x);}, false, json_version_choices); |
| 117 | 120 | this->ap.registerOptionTable("pages", b(&ArgParser::argEndPages)); |
| 118 | 121 | this->ap.addPositional(p(&ArgParser::argPagesPositional)); | ... | ... |
libqpdf/qpdf/auto_job_json_init.hh
| ... | ... | @@ -13,7 +13,8 @@ static char const* object_streams_choices[] = {"disable", "preserve", "generate" |
| 13 | 13 | static char const* remove_unref_choices[] = {"auto", "yes", "no", 0}; |
| 14 | 14 | static char const* flatten_choices[] = {"all", "print", "screen", 0}; |
| 15 | 15 | static char const* json_version_choices[] = {"1", "2", "latest", 0}; |
| 16 | -static char const* json_key_choices[] = {"acroform", "attachments", "encrypt", "objectinfo", "objects", "outlines", "pagelabels", "pages", 0}; | |
| 16 | +static char const* json_key_choices[] = {"acroform", "attachments", "encrypt", "objectinfo", "objects", "outlines", "pagelabels", "pages", "qpdf", 0}; | |
| 17 | +static char const* json_stream_data_choices[] = {"none", "inline", "file", 0}; | |
| 17 | 18 | static char const* print128_choices[] = {"full", "low", "none", 0}; |
| 18 | 19 | static char const* modify128_choices[] = {"all", "annotate", "form", "assembly", "none", 0}; |
| 19 | 20 | |
| ... | ... | @@ -252,6 +253,12 @@ beginArray(bindJSON(&Handlers::beginJsonObjectArray), bindBare(&Handlers::endJso |
| 252 | 253 | addParameter([this](std::string const& p) { c_main->jsonObject(p); }); |
| 253 | 254 | popHandler(); // array: .jsonObject[] |
| 254 | 255 | popHandler(); // key: jsonObject |
| 256 | +pushKey("jsonStreamData"); | |
| 257 | +addChoices(json_stream_data_choices, true, [this](std::string const& p) { c_main->jsonStreamData(p); }); | |
| 258 | +popHandler(); // key: jsonStreamData | |
| 259 | +pushKey("jsonStreamPrefix"); | |
| 260 | +addParameter([this](std::string const& p) { c_main->jsonStreamPrefix(p); }); | |
| 261 | +popHandler(); // key: jsonStreamPrefix | |
| 255 | 262 | pushKey("allowWeakCrypto"); |
| 256 | 263 | addBare([this]() { c_main->allowWeakCrypto(); }); |
| 257 | 264 | popHandler(); // key: allowWeakCrypto | ... | ... |
libqpdf/qpdf/auto_job_schema.hh
| ... | ... | @@ -84,6 +84,8 @@ static constexpr char const* JOB_SCHEMA_DATA = R"({ |
| 84 | 84 | "jsonObject": [ |
| 85 | 85 | "limit which objects are in JSON" |
| 86 | 86 | ], |
| 87 | + "jsonStreamData": "how to handle streams in json output", | |
| 88 | + "jsonStreamPrefix": "prefix for json stream data files", | |
| 87 | 89 | "allowWeakCrypto": "allow insecure cryptographic algorithms", |
| 88 | 90 | "keepFilesOpen": "manage keeping multiple files open", |
| 89 | 91 | "keepFilesOpenThreshold": "set threshold for keepFilesOpen", | ... | ... |
manual/cli.rst
| ... | ... | @@ -3225,6 +3225,37 @@ Related Options |
| 3225 | 3225 | :qpdf:ref:`--job-json-file`. For more information about QPDFJob, |
| 3226 | 3226 | see :ref:`qpdf-job`. |
| 3227 | 3227 | |
| 3228 | +.. qpdf:option:: --json-stream-data={none|inline|file} | |
| 3229 | + | |
| 3230 | + .. help: how to handle streams in json output | |
| 3231 | + | |
| 3232 | + Control whether streams in json output should be omitted, | |
| 3233 | + written inline (base64-encoded) or written to a file. If "file" | |
| 3234 | + is chosen, the file will be the name of the input file appended | |
| 3235 | + with -nnn where nnn is the object number. The prefix can be | |
| 3236 | + overridden with --json-stream-prefix. | |
| 3237 | + | |
| 3238 | + Control whether streams in json output should be omitted, written | |
| 3239 | + inline (base64-encoded) or written to a file. If ``file`` is | |
| 3240 | + chosen, the file will be the name of the input file appended with | |
| 3241 | + :samp:`-{nnn}` where :samp:`{nnn}` is the object number. The prefix | |
| 3242 | + can be overridden with :qpdf:ref:`--json-stream-prefix`. | |
| 3243 | + | |
| 3244 | +.. qpdf:option:: --json-stream-prefix=file-prefix | |
| 3245 | + | |
| 3246 | + .. help: prefix for json stream data files | |
| 3247 | + | |
| 3248 | + When --json-stream-data=file is given, override the input file | |
| 3249 | + name as the prefix for stream data files. Whatever is given here | |
| 3250 | + will be appended with -nnn to create the name of the file that | |
| 3251 | + will contain the data for the stream stream in object nnn. | |
| 3252 | + | |
| 3253 | + When :qpdf:ref:`--json-stream-data` is given with the value | |
| 3254 | + ``file``, override the input file name as the prefix for stream | |
| 3255 | + data files. Whatever is given here will be appended with | |
| 3256 | + :samp:`-{nnn}` to create the name of the file that will contain the | |
| 3257 | + data for the stream stream in object :samp:`{nnn}`. | |
| 3258 | + | |
| 3228 | 3259 | .. _test-options: |
| 3229 | 3260 | |
| 3230 | 3261 | Options for Testing or Debugging | ... | ... |
qpdf/qtest/qpdf.test
| ... | ... | @@ -1139,9 +1139,9 @@ foreach my $d (@json_files) |
| 1139 | 1139 | $td->NORMALIZE_NEWLINES); |
| 1140 | 1140 | $td->runtest("json v2 $out", |
| 1141 | 1141 | {$td->COMMAND => |
| 1142 | - ['qpdf', '--json=2', '--test-json-schema', @v1_xargs, $in]}, | |
| 1142 | + ['qpdf', '--json=2', '--test-json-schema', @$xargs, $in]}, | |
| 1143 | 1143 | {$td->FILE => "$out-v2.out", $td->EXIT_STATUS => 0}, |
| 1144 | - $td->NORMALIZE_NEWLINES | $td->EXPECT_FAILURE); | |
| 1144 | + $td->NORMALIZE_NEWLINES); | |
| 1145 | 1145 | } |
| 1146 | 1146 | |
| 1147 | 1147 | show_ntests(); |
| ... | ... | @@ -2886,14 +2886,13 @@ foreach my $f (qw(page_api_2 direct-pages)) |
| 2886 | 2886 | $td->runtest("json for $f (objects only)", |
| 2887 | 2887 | {$td->COMMAND => |
| 2888 | 2888 | "qpdf --json=latest $f.pdf" . |
| 2889 | - " --json-key=objects --json-key=objectinfo"}, | |
| 2889 | + " --json-key=qpdf"}, | |
| 2890 | 2890 | {$td->FILE => "$f-json-objects.out", $td->EXIT_STATUS => 0}, |
| 2891 | 2891 | $td->NORMALIZE_NEWLINES); |
| 2892 | 2892 | $td->runtest("json for $f (with pages)", |
| 2893 | 2893 | {$td->COMMAND => |
| 2894 | 2894 | "qpdf --json=latest $f.pdf" . |
| 2895 | - " --json-key=objects --json-key=objectinfo" . | |
| 2896 | - " --json-key=pages"}, | |
| 2895 | + " --json-key=qpdf --json-key=pages"}, | |
| 2897 | 2896 | {$td->FILE => "$f-json-pages.out", $td->EXIT_STATUS => 0}, |
| 2898 | 2897 | $td->NORMALIZE_NEWLINES); |
| 2899 | 2898 | } | ... | ... |
qpdf/qtest/qpdf/direct-pages-json-objects.out
| ... | ... | @@ -3,118 +3,92 @@ |
| 3 | 3 | "parameters": { |
| 4 | 4 | "decodelevel": "generalized" |
| 5 | 5 | }, |
| 6 | - "objects": { | |
| 7 | - "1 0 R": { | |
| 8 | - "/Pages": "2 0 R", | |
| 9 | - "/Type": "/Catalog" | |
| 10 | - }, | |
| 11 | - "2 0 R": { | |
| 12 | - "/Count": 2, | |
| 13 | - "/Kids": [ | |
| 14 | - { | |
| 15 | - "/Contents": "3 0 R", | |
| 16 | - "/MediaBox": [ | |
| 17 | - 0, | |
| 18 | - 0, | |
| 19 | - 612, | |
| 20 | - 792 | |
| 21 | - ], | |
| 22 | - "/Parent": "2 0 R", | |
| 23 | - "/Resources": { | |
| 24 | - "/Font": { | |
| 25 | - "/F1": "5 0 R" | |
| 6 | + "qpdf": { | |
| 7 | + "jsonversion": 2, | |
| 8 | + "pdfversion": "1.3", | |
| 9 | + "objects": { | |
| 10 | + "obj:1 0 R": { | |
| 11 | + "value": { | |
| 12 | + "/Pages": "2 0 R", | |
| 13 | + "/Type": "/Catalog" | |
| 14 | + } | |
| 15 | + }, | |
| 16 | + "obj:2 0 R": { | |
| 17 | + "value": { | |
| 18 | + "/Count": 2, | |
| 19 | + "/Kids": [ | |
| 20 | + { | |
| 21 | + "/Contents": "3 0 R", | |
| 22 | + "/MediaBox": [ | |
| 23 | + 0, | |
| 24 | + 0, | |
| 25 | + 612, | |
| 26 | + 792 | |
| 27 | + ], | |
| 28 | + "/Parent": "2 0 R", | |
| 29 | + "/Resources": { | |
| 30 | + "/Font": { | |
| 31 | + "/F1": "5 0 R" | |
| 32 | + }, | |
| 33 | + "/ProcSet": "6 0 R" | |
| 34 | + }, | |
| 35 | + "/Type": "/Page" | |
| 26 | 36 | }, |
| 27 | - "/ProcSet": "6 0 R" | |
| 28 | - }, | |
| 29 | - "/Type": "/Page" | |
| 30 | - }, | |
| 31 | - { | |
| 32 | - "/Contents": "3 0 R", | |
| 33 | - "/MediaBox": [ | |
| 34 | - 0, | |
| 35 | - 0, | |
| 36 | - 612, | |
| 37 | - 792 | |
| 37 | + { | |
| 38 | + "/Contents": "3 0 R", | |
| 39 | + "/MediaBox": [ | |
| 40 | + 0, | |
| 41 | + 0, | |
| 42 | + 612, | |
| 43 | + 792 | |
| 44 | + ], | |
| 45 | + "/Parent": "2 0 R", | |
| 46 | + "/Resources": { | |
| 47 | + "/Font": { | |
| 48 | + "/F1": "5 0 R" | |
| 49 | + }, | |
| 50 | + "/ProcSet": "6 0 R" | |
| 51 | + }, | |
| 52 | + "/Type": "/Page" | |
| 53 | + } | |
| 38 | 54 | ], |
| 39 | - "/Parent": "2 0 R", | |
| 40 | - "/Resources": { | |
| 41 | - "/Font": { | |
| 42 | - "/F1": "5 0 R" | |
| 43 | - }, | |
| 44 | - "/ProcSet": "6 0 R" | |
| 45 | - }, | |
| 46 | - "/Type": "/Page" | |
| 55 | + "/Type": "/Pages" | |
| 56 | + } | |
| 57 | + }, | |
| 58 | + "obj:3 0 R": { | |
| 59 | + "stream": { | |
| 60 | + "dict": { | |
| 61 | + "/Length": "4 0 R" | |
| 62 | + } | |
| 63 | + } | |
| 64 | + }, | |
| 65 | + "obj:4 0 R": { | |
| 66 | + "value": 44 | |
| 67 | + }, | |
| 68 | + "obj:5 0 R": { | |
| 69 | + "value": { | |
| 70 | + "/BaseFont": "/Helvetica", | |
| 71 | + "/Encoding": "/WinAnsiEncoding", | |
| 72 | + "/Name": "/F1", | |
| 73 | + "/Subtype": "/Type1", | |
| 74 | + "/Type": "/Font" | |
| 75 | + } | |
| 76 | + }, | |
| 77 | + "obj:6 0 R": { | |
| 78 | + "value": [ | |
| 79 | + "/PDF", | |
| 80 | + "/Text" | |
| 81 | + ] | |
| 82 | + }, | |
| 83 | + "trailer": { | |
| 84 | + "value": { | |
| 85 | + "/ID": [ | |
| 86 | + "b:1323a5937c577a66735583a93698ce3c", | |
| 87 | + "b:372cbf44f6db88ab60d9263c0f0bd26a" | |
| 88 | + ], | |
| 89 | + "/Root": "1 0 R", | |
| 90 | + "/Size": 7 | |
| 47 | 91 | } |
| 48 | - ], | |
| 49 | - "/Type": "/Pages" | |
| 50 | - }, | |
| 51 | - "3 0 R": { | |
| 52 | - "dict": { | |
| 53 | - "/Length": "4 0 R" | |
| 54 | - } | |
| 55 | - }, | |
| 56 | - "4 0 R": 44, | |
| 57 | - "5 0 R": { | |
| 58 | - "/BaseFont": "/Helvetica", | |
| 59 | - "/Encoding": "/WinAnsiEncoding", | |
| 60 | - "/Name": "/F1", | |
| 61 | - "/Subtype": "/Type1", | |
| 62 | - "/Type": "/Font" | |
| 63 | - }, | |
| 64 | - "6 0 R": [ | |
| 65 | - "/PDF", | |
| 66 | - "/Text" | |
| 67 | - ], | |
| 68 | - "trailer": { | |
| 69 | - "/ID": [ | |
| 70 | - "b:1323a5937c577a66735583a93698ce3c", | |
| 71 | - "b:372cbf44f6db88ab60d9263c0f0bd26a" | |
| 72 | - ], | |
| 73 | - "/Root": "1 0 R", | |
| 74 | - "/Size": 7 | |
| 75 | - } | |
| 76 | - }, | |
| 77 | - "objectinfo": { | |
| 78 | - "1 0 R": { | |
| 79 | - "stream": { | |
| 80 | - "filter": null, | |
| 81 | - "is": false, | |
| 82 | - "length": null | |
| 83 | - } | |
| 84 | - }, | |
| 85 | - "2 0 R": { | |
| 86 | - "stream": { | |
| 87 | - "filter": null, | |
| 88 | - "is": false, | |
| 89 | - "length": null | |
| 90 | - } | |
| 91 | - }, | |
| 92 | - "3 0 R": { | |
| 93 | - "stream": { | |
| 94 | - "filter": null, | |
| 95 | - "is": true, | |
| 96 | - "length": 44 | |
| 97 | - } | |
| 98 | - }, | |
| 99 | - "4 0 R": { | |
| 100 | - "stream": { | |
| 101 | - "filter": null, | |
| 102 | - "is": false, | |
| 103 | - "length": null | |
| 104 | - } | |
| 105 | - }, | |
| 106 | - "5 0 R": { | |
| 107 | - "stream": { | |
| 108 | - "filter": null, | |
| 109 | - "is": false, | |
| 110 | - "length": null | |
| 111 | - } | |
| 112 | - }, | |
| 113 | - "6 0 R": { | |
| 114 | - "stream": { | |
| 115 | - "filter": null, | |
| 116 | - "is": false, | |
| 117 | - "length": null | |
| 118 | 92 | } |
| 119 | 93 | } |
| 120 | 94 | } | ... | ... |
qpdf/qtest/qpdf/direct-pages-json-pages.out
| ... | ... | @@ -25,134 +25,98 @@ |
| 25 | 25 | "pageposfrom1": 2 |
| 26 | 26 | } |
| 27 | 27 | ], |
| 28 | - "objects": { | |
| 29 | - "1 0 R": { | |
| 30 | - "/Pages": "2 0 R", | |
| 31 | - "/Type": "/Catalog" | |
| 32 | - }, | |
| 33 | - "2 0 R": { | |
| 34 | - "/Count": 2, | |
| 35 | - "/Kids": [ | |
| 36 | - "7 0 R", | |
| 37 | - "8 0 R" | |
| 38 | - ], | |
| 39 | - "/Type": "/Pages" | |
| 40 | - }, | |
| 41 | - "3 0 R": { | |
| 42 | - "dict": { | |
| 43 | - "/Length": "4 0 R" | |
| 44 | - } | |
| 45 | - }, | |
| 46 | - "4 0 R": 44, | |
| 47 | - "5 0 R": { | |
| 48 | - "/BaseFont": "/Helvetica", | |
| 49 | - "/Encoding": "/WinAnsiEncoding", | |
| 50 | - "/Name": "/F1", | |
| 51 | - "/Subtype": "/Type1", | |
| 52 | - "/Type": "/Font" | |
| 53 | - }, | |
| 54 | - "6 0 R": [ | |
| 55 | - "/PDF", | |
| 56 | - "/Text" | |
| 57 | - ], | |
| 58 | - "7 0 R": { | |
| 59 | - "/Contents": "3 0 R", | |
| 60 | - "/MediaBox": [ | |
| 61 | - 0, | |
| 62 | - 0, | |
| 63 | - 612, | |
| 64 | - 792 | |
| 65 | - ], | |
| 66 | - "/Parent": "2 0 R", | |
| 67 | - "/Resources": { | |
| 68 | - "/Font": { | |
| 69 | - "/F1": "5 0 R" | |
| 70 | - }, | |
| 71 | - "/ProcSet": "6 0 R" | |
| 28 | + "qpdf": { | |
| 29 | + "jsonversion": 2, | |
| 30 | + "pdfversion": "1.3", | |
| 31 | + "objects": { | |
| 32 | + "obj:1 0 R": { | |
| 33 | + "value": { | |
| 34 | + "/Pages": "2 0 R", | |
| 35 | + "/Type": "/Catalog" | |
| 36 | + } | |
| 72 | 37 | }, |
| 73 | - "/Type": "/Page" | |
| 74 | - }, | |
| 75 | - "8 0 R": { | |
| 76 | - "/Contents": "3 0 R", | |
| 77 | - "/MediaBox": [ | |
| 78 | - 0, | |
| 79 | - 0, | |
| 80 | - 612, | |
| 81 | - 792 | |
| 82 | - ], | |
| 83 | - "/Parent": "2 0 R", | |
| 84 | - "/Resources": { | |
| 85 | - "/Font": { | |
| 86 | - "/F1": "5 0 R" | |
| 87 | - }, | |
| 88 | - "/ProcSet": "6 0 R" | |
| 38 | + "obj:2 0 R": { | |
| 39 | + "value": { | |
| 40 | + "/Count": 2, | |
| 41 | + "/Kids": [ | |
| 42 | + "7 0 R", | |
| 43 | + "8 0 R" | |
| 44 | + ], | |
| 45 | + "/Type": "/Pages" | |
| 46 | + } | |
| 89 | 47 | }, |
| 90 | - "/Type": "/Page" | |
| 91 | - }, | |
| 92 | - "trailer": { | |
| 93 | - "/ID": [ | |
| 94 | - "b:1323a5937c577a66735583a93698ce3c", | |
| 95 | - "b:372cbf44f6db88ab60d9263c0f0bd26a" | |
| 96 | - ], | |
| 97 | - "/Root": "1 0 R", | |
| 98 | - "/Size": 7 | |
| 99 | - } | |
| 100 | - }, | |
| 101 | - "objectinfo": { | |
| 102 | - "1 0 R": { | |
| 103 | - "stream": { | |
| 104 | - "filter": null, | |
| 105 | - "is": false, | |
| 106 | - "length": null | |
| 107 | - } | |
| 108 | - }, | |
| 109 | - "2 0 R": { | |
| 110 | - "stream": { | |
| 111 | - "filter": null, | |
| 112 | - "is": false, | |
| 113 | - "length": null | |
| 114 | - } | |
| 115 | - }, | |
| 116 | - "3 0 R": { | |
| 117 | - "stream": { | |
| 118 | - "filter": null, | |
| 119 | - "is": true, | |
| 120 | - "length": 44 | |
| 121 | - } | |
| 122 | - }, | |
| 123 | - "4 0 R": { | |
| 124 | - "stream": { | |
| 125 | - "filter": null, | |
| 126 | - "is": false, | |
| 127 | - "length": null | |
| 128 | - } | |
| 129 | - }, | |
| 130 | - "5 0 R": { | |
| 131 | - "stream": { | |
| 132 | - "filter": null, | |
| 133 | - "is": false, | |
| 134 | - "length": null | |
| 135 | - } | |
| 136 | - }, | |
| 137 | - "6 0 R": { | |
| 138 | - "stream": { | |
| 139 | - "filter": null, | |
| 140 | - "is": false, | |
| 141 | - "length": null | |
| 142 | - } | |
| 143 | - }, | |
| 144 | - "7 0 R": { | |
| 145 | - "stream": { | |
| 146 | - "filter": null, | |
| 147 | - "is": false, | |
| 148 | - "length": null | |
| 149 | - } | |
| 150 | - }, | |
| 151 | - "8 0 R": { | |
| 152 | - "stream": { | |
| 153 | - "filter": null, | |
| 154 | - "is": false, | |
| 155 | - "length": null | |
| 48 | + "obj:3 0 R": { | |
| 49 | + "stream": { | |
| 50 | + "dict": { | |
| 51 | + "/Length": "4 0 R" | |
| 52 | + } | |
| 53 | + } | |
| 54 | + }, | |
| 55 | + "obj:4 0 R": { | |
| 56 | + "value": 44 | |
| 57 | + }, | |
| 58 | + "obj:5 0 R": { | |
| 59 | + "value": { | |
| 60 | + "/BaseFont": "/Helvetica", | |
| 61 | + "/Encoding": "/WinAnsiEncoding", | |
| 62 | + "/Name": "/F1", | |
| 63 | + "/Subtype": "/Type1", | |
| 64 | + "/Type": "/Font" | |
| 65 | + } | |
| 66 | + }, | |
| 67 | + "obj:6 0 R": { | |
| 68 | + "value": [ | |
| 69 | + "/PDF", | |
| 70 | + "/Text" | |
| 71 | + ] | |
| 72 | + }, | |
| 73 | + "obj:7 0 R": { | |
| 74 | + "value": { | |
| 75 | + "/Contents": "3 0 R", | |
| 76 | + "/MediaBox": [ | |
| 77 | + 0, | |
| 78 | + 0, | |
| 79 | + 612, | |
| 80 | + 792 | |
| 81 | + ], | |
| 82 | + "/Parent": "2 0 R", | |
| 83 | + "/Resources": { | |
| 84 | + "/Font": { | |
| 85 | + "/F1": "5 0 R" | |
| 86 | + }, | |
| 87 | + "/ProcSet": "6 0 R" | |
| 88 | + }, | |
| 89 | + "/Type": "/Page" | |
| 90 | + } | |
| 91 | + }, | |
| 92 | + "obj:8 0 R": { | |
| 93 | + "value": { | |
| 94 | + "/Contents": "3 0 R", | |
| 95 | + "/MediaBox": [ | |
| 96 | + 0, | |
| 97 | + 0, | |
| 98 | + 612, | |
| 99 | + 792 | |
| 100 | + ], | |
| 101 | + "/Parent": "2 0 R", | |
| 102 | + "/Resources": { | |
| 103 | + "/Font": { | |
| 104 | + "/F1": "5 0 R" | |
| 105 | + }, | |
| 106 | + "/ProcSet": "6 0 R" | |
| 107 | + }, | |
| 108 | + "/Type": "/Page" | |
| 109 | + } | |
| 110 | + }, | |
| 111 | + "trailer": { | |
| 112 | + "value": { | |
| 113 | + "/ID": [ | |
| 114 | + "b:1323a5937c577a66735583a93698ce3c", | |
| 115 | + "b:372cbf44f6db88ab60d9263c0f0bd26a" | |
| 116 | + ], | |
| 117 | + "/Root": "1 0 R", | |
| 118 | + "/Size": 7 | |
| 119 | + } | |
| 156 | 120 | } |
| 157 | 121 | } |
| 158 | 122 | } | ... | ... |
qpdf/qtest/qpdf/json-V4-aes-encrypt---show-encryption-key-v2.out
qpdf/qtest/qpdf/json-V4-aes-encrypt-v2.out
qpdf/qtest/qpdf/json-field-types---show-encryption-key-v2.out
| ... | ... | @@ -26,7 +26,7 @@ |
| 26 | 26 | "object": "4 0 R" |
| 27 | 27 | }, |
| 28 | 28 | "choices": [], |
| 29 | - "defaultvalue": "", | |
| 29 | + "defaultvalue": "u:", | |
| 30 | 30 | "fieldflags": 0, |
| 31 | 31 | "fieldtype": "/Tx", |
| 32 | 32 | "fullname": "text", |
| ... | ... | @@ -40,7 +40,7 @@ |
| 40 | 40 | "parent": null, |
| 41 | 41 | "partialname": "text", |
| 42 | 42 | "quadding": 0, |
| 43 | - "value": "" | |
| 43 | + "value": "u:" | |
| 44 | 44 | }, |
| 45 | 45 | { |
| 46 | 46 | "alternativename": "r1", |
| ... | ... | @@ -266,7 +266,7 @@ |
| 266 | 266 | "object": "10 0 R" |
| 267 | 267 | }, |
| 268 | 268 | "choices": [], |
| 269 | - "defaultvalue": "salad πʬ", | |
| 269 | + "defaultvalue": "u:salad πʬ", | |
| 270 | 270 | "fieldflags": 0, |
| 271 | 271 | "fieldtype": "/Tx", |
| 272 | 272 | "fullname": "text2", |
| ... | ... | @@ -280,7 +280,7 @@ |
| 280 | 280 | "parent": null, |
| 281 | 281 | "partialname": "text2", |
| 282 | 282 | "quadding": 0, |
| 283 | - "value": "salad πʬ" | |
| 283 | + "value": "u:salad πʬ" | |
| 284 | 284 | }, |
| 285 | 285 | { |
| 286 | 286 | "alternativename": "combolist1", |
| ... | ... | @@ -295,7 +295,7 @@ |
| 295 | 295 | "pi", |
| 296 | 296 | "four" |
| 297 | 297 | ], |
| 298 | - "defaultvalue": "", | |
| 298 | + "defaultvalue": "u:", | |
| 299 | 299 | "fieldflags": 393216, |
| 300 | 300 | "fieldtype": "/Ch", |
| 301 | 301 | "fullname": "combolist1", |
| ... | ... | @@ -309,7 +309,7 @@ |
| 309 | 309 | "parent": null, |
| 310 | 310 | "partialname": "combolist1", |
| 311 | 311 | "quadding": 0, |
| 312 | - "value": "" | |
| 312 | + "value": "u:" | |
| 313 | 313 | }, |
| 314 | 314 | { |
| 315 | 315 | "alternativename": "list1", |
| ... | ... | @@ -324,7 +324,7 @@ |
| 324 | 324 | "seven", |
| 325 | 325 | "eight" |
| 326 | 326 | ], |
| 327 | - "defaultvalue": "", | |
| 327 | + "defaultvalue": "u:", | |
| 328 | 328 | "fieldflags": 0, |
| 329 | 329 | "fieldtype": "/Ch", |
| 330 | 330 | "fullname": "list1", |
| ... | ... | @@ -338,7 +338,7 @@ |
| 338 | 338 | "parent": null, |
| 339 | 339 | "partialname": "list1", |
| 340 | 340 | "quadding": 0, |
| 341 | - "value": "" | |
| 341 | + "value": "u:" | |
| 342 | 342 | }, |
| 343 | 343 | { |
| 344 | 344 | "alternativename": "drop1", |
| ... | ... | @@ -353,7 +353,7 @@ |
| 353 | 353 | "elephant", |
| 354 | 354 | "twelve" |
| 355 | 355 | ], |
| 356 | - "defaultvalue": "", | |
| 356 | + "defaultvalue": "u:", | |
| 357 | 357 | "fieldflags": 131072, |
| 358 | 358 | "fieldtype": "/Ch", |
| 359 | 359 | "fullname": "drop1", |
| ... | ... | @@ -367,7 +367,7 @@ |
| 367 | 367 | "parent": null, |
| 368 | 368 | "partialname": "drop1", |
| 369 | 369 | "quadding": 0, |
| 370 | - "value": "" | |
| 370 | + "value": "u:" | |
| 371 | 371 | }, |
| 372 | 372 | { |
| 373 | 373 | "alternativename": "combodrop1", |
| ... | ... | @@ -382,7 +382,7 @@ |
| 382 | 382 | "gamma", |
| 383 | 383 | "delta" |
| 384 | 384 | ], |
| 385 | - "defaultvalue": "", | |
| 385 | + "defaultvalue": "u:", | |
| 386 | 386 | "fieldflags": 393216, |
| 387 | 387 | "fieldtype": "/Ch", |
| 388 | 388 | "fullname": "combodrop1", |
| ... | ... | @@ -396,7 +396,7 @@ |
| 396 | 396 | "parent": null, |
| 397 | 397 | "partialname": "combodrop1", |
| 398 | 398 | "quadding": 0, |
| 399 | - "value": "" | |
| 399 | + "value": "u:" | |
| 400 | 400 | } |
| 401 | 401 | ], |
| 402 | 402 | "hasacroform": true, |
| ... | ... | @@ -407,8 +407,8 @@ |
| 407 | 407 | "capabilities": { |
| 408 | 408 | "accessibility": true, |
| 409 | 409 | "extract": true, |
| 410 | - "moddifyannotations": true, | |
| 411 | 410 | "modify": true, |
| 411 | + "modifyannotations": true, | |
| 412 | 412 | "modifyassembly": true, |
| 413 | 413 | "modifyforms": true, |
| 414 | 414 | "modifyother": true, |
| ... | ... | @@ -433,7 +433,7 @@ |
| 433 | 433 | "outlines": [], |
| 434 | 434 | "qpdf": { |
| 435 | 435 | "jsonversion": 2, |
| 436 | - "pdfversion": "1.3", | |
| 436 | + "pdfversion": "1.5", | |
| 437 | 437 | "objects": { |
| 438 | 438 | "obj:1 0 R": { |
| 439 | 439 | "value": { |
| ... | ... | @@ -454,7 +454,7 @@ |
| 454 | 454 | ], |
| 455 | 455 | "/NeedAppearances": true |
| 456 | 456 | }, |
| 457 | - "/Lang": "en-US", | |
| 457 | + "/Lang": "u:en-US", | |
| 458 | 458 | "/MarkInfo": { |
| 459 | 459 | "/Marked": true |
| 460 | 460 | }, |
| ... | ... | @@ -472,9 +472,9 @@ |
| 472 | 472 | }, |
| 473 | 473 | "obj:2 0 R": { |
| 474 | 474 | "value": { |
| 475 | - "/CreationDate": "D:20190103125434-05'00'", | |
| 476 | - "/Creator": "Writer", | |
| 477 | - "/Producer": "LibreOffice 6.1" | |
| 475 | + "/CreationDate": "u:D:20190103125434-05'00'", | |
| 476 | + "/Creator": "u:Writer", | |
| 477 | + "/Producer": "u:LibreOffice 6.1" | |
| 478 | 478 | } |
| 479 | 479 | }, |
| 480 | 480 | "obj:3 0 R": { |
| ... | ... | @@ -491,11 +491,11 @@ |
| 491 | 491 | "/AP": { |
| 492 | 492 | "/N": "19 0 R" |
| 493 | 493 | }, |
| 494 | - "/DA": "0.18039 0.20392 0.21176 rg /F2 12 Tf", | |
| 494 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F2 12 Tf", | |
| 495 | 495 | "/DR": { |
| 496 | 496 | "/Font": "18 0 R" |
| 497 | 497 | }, |
| 498 | - "/DV": "", | |
| 498 | + "/DV": "u:", | |
| 499 | 499 | "/F": 4, |
| 500 | 500 | "/FT": "/Tx", |
| 501 | 501 | "/P": "15 0 R", |
| ... | ... | @@ -506,9 +506,9 @@ |
| 506 | 506 | 704.699 |
| 507 | 507 | ], |
| 508 | 508 | "/Subtype": "/Widget", |
| 509 | - "/T": "text", | |
| 509 | + "/T": "u:text", | |
| 510 | 510 | "/Type": "/Annot", |
| 511 | - "/V": "" | |
| 511 | + "/V": "u:" | |
| 512 | 512 | } |
| 513 | 513 | }, |
| 514 | 514 | "obj:5 0 R": { |
| ... | ... | @@ -522,7 +522,7 @@ |
| 522 | 522 | "23 0 R" |
| 523 | 523 | ], |
| 524 | 524 | "/P": "15 0 R", |
| 525 | - "/T": "r1", | |
| 525 | + "/T": "u:r1", | |
| 526 | 526 | "/V": "/1" |
| 527 | 527 | } |
| 528 | 528 | }, |
| ... | ... | @@ -535,7 +535,7 @@ |
| 535 | 535 | } |
| 536 | 536 | }, |
| 537 | 537 | "/AS": "/Off", |
| 538 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 538 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 539 | 539 | "/DR": { |
| 540 | 540 | "/Font": { |
| 541 | 541 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -545,7 +545,7 @@ |
| 545 | 545 | "/F": 4, |
| 546 | 546 | "/FT": "/Btn", |
| 547 | 547 | "/MK": { |
| 548 | - "/CA": "8" | |
| 548 | + "/CA": "u:8" | |
| 549 | 549 | }, |
| 550 | 550 | "/P": "15 0 R", |
| 551 | 551 | "/Rect": [ |
| ... | ... | @@ -555,7 +555,7 @@ |
| 555 | 555 | 566.349 |
| 556 | 556 | ], |
| 557 | 557 | "/Subtype": "/Widget", |
| 558 | - "/T": "checkbox1", | |
| 558 | + "/T": "u:checkbox1", | |
| 559 | 559 | "/Type": "/Annot", |
| 560 | 560 | "/V": "/Off" |
| 561 | 561 | } |
| ... | ... | @@ -569,7 +569,7 @@ |
| 569 | 569 | } |
| 570 | 570 | }, |
| 571 | 571 | "/AS": "/Yes", |
| 572 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 572 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 573 | 573 | "/DR": { |
| 574 | 574 | "/Font": { |
| 575 | 575 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -579,7 +579,7 @@ |
| 579 | 579 | "/F": 4, |
| 580 | 580 | "/FT": "/Btn", |
| 581 | 581 | "/MK": { |
| 582 | - "/CA": "8" | |
| 582 | + "/CA": "u:8" | |
| 583 | 583 | }, |
| 584 | 584 | "/P": "15 0 R", |
| 585 | 585 | "/Rect": [ |
| ... | ... | @@ -589,7 +589,7 @@ |
| 589 | 589 | 539.799 |
| 590 | 590 | ], |
| 591 | 591 | "/Subtype": "/Widget", |
| 592 | - "/T": "checkbox2", | |
| 592 | + "/T": "u:checkbox2", | |
| 593 | 593 | "/Type": "/Annot", |
| 594 | 594 | "/V": "/Yes" |
| 595 | 595 | } |
| ... | ... | @@ -603,7 +603,7 @@ |
| 603 | 603 | } |
| 604 | 604 | }, |
| 605 | 605 | "/AS": "/Off", |
| 606 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 606 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 607 | 607 | "/DR": { |
| 608 | 608 | "/Font": { |
| 609 | 609 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -613,7 +613,7 @@ |
| 613 | 613 | "/F": 4, |
| 614 | 614 | "/FT": "/Btn", |
| 615 | 615 | "/MK": { |
| 616 | - "/CA": "8" | |
| 616 | + "/CA": "u:8" | |
| 617 | 617 | }, |
| 618 | 618 | "/P": "15 0 R", |
| 619 | 619 | "/Rect": [ |
| ... | ... | @@ -623,7 +623,7 @@ |
| 623 | 623 | 512.549 |
| 624 | 624 | ], |
| 625 | 625 | "/Subtype": "/Widget", |
| 626 | - "/T": "checkbox3", | |
| 626 | + "/T": "u:checkbox3", | |
| 627 | 627 | "/Type": "/Annot", |
| 628 | 628 | "/V": "/Off" |
| 629 | 629 | } |
| ... | ... | @@ -639,7 +639,7 @@ |
| 639 | 639 | "39 0 R" |
| 640 | 640 | ], |
| 641 | 641 | "/P": "15 0 R", |
| 642 | - "/T": "r2", | |
| 642 | + "/T": "u:r2", | |
| 643 | 643 | "/V": "/2" |
| 644 | 644 | } |
| 645 | 645 | }, |
| ... | ... | @@ -648,11 +648,11 @@ |
| 648 | 648 | "/AP": { |
| 649 | 649 | "/N": "40 0 R" |
| 650 | 650 | }, |
| 651 | - "/DA": "0.18039 0.20392 0.21176 rg /F2 12 Tf", | |
| 651 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F2 12 Tf", | |
| 652 | 652 | "/DR": { |
| 653 | 653 | "/Font": "18 0 R" |
| 654 | 654 | }, |
| 655 | - "/DV": "salad πʬ", | |
| 655 | + "/DV": "u:salad πʬ", | |
| 656 | 656 | "/F": 4, |
| 657 | 657 | "/FT": "/Tx", |
| 658 | 658 | "/P": "15 0 R", |
| ... | ... | @@ -663,9 +663,9 @@ |
| 663 | 663 | 278.099 |
| 664 | 664 | ], |
| 665 | 665 | "/Subtype": "/Widget", |
| 666 | - "/T": "text2", | |
| 666 | + "/T": "u:text2", | |
| 667 | 667 | "/Type": "/Annot", |
| 668 | - "/V": "salad πʬ" | |
| 668 | + "/V": "u:salad πʬ" | |
| 669 | 669 | } |
| 670 | 670 | }, |
| 671 | 671 | "obj:11 0 R": { |
| ... | ... | @@ -673,18 +673,18 @@ |
| 673 | 673 | "/AP": { |
| 674 | 674 | "/N": "42 0 R" |
| 675 | 675 | }, |
| 676 | - "/DA": "0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 676 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 677 | 677 | "/DR": { |
| 678 | 678 | "/Font": "18 0 R" |
| 679 | 679 | }, |
| 680 | - "/DV": "", | |
| 680 | + "/DV": "u:", | |
| 681 | 681 | "/F": 4, |
| 682 | 682 | "/FT": "/Ch", |
| 683 | 683 | "/Opt": [ |
| 684 | - "five", | |
| 685 | - "six", | |
| 686 | - "seven", | |
| 687 | - "eight" | |
| 684 | + "u:five", | |
| 685 | + "u:six", | |
| 686 | + "u:seven", | |
| 687 | + "u:eight" | |
| 688 | 688 | ], |
| 689 | 689 | "/P": "15 0 R", |
| 690 | 690 | "/Rect": [ |
| ... | ... | @@ -694,9 +694,9 @@ |
| 694 | 694 | 232.849 |
| 695 | 695 | ], |
| 696 | 696 | "/Subtype": "/Widget", |
| 697 | - "/T": "list1", | |
| 697 | + "/T": "u:list1", | |
| 698 | 698 | "/Type": "/Annot", |
| 699 | - "/V": "" | |
| 699 | + "/V": "u:" | |
| 700 | 700 | } |
| 701 | 701 | }, |
| 702 | 702 | "obj:12 0 R": { |
| ... | ... | @@ -704,19 +704,19 @@ |
| 704 | 704 | "/AP": { |
| 705 | 705 | "/N": "44 0 R" |
| 706 | 706 | }, |
| 707 | - "/DA": "0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 707 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 708 | 708 | "/DR": { |
| 709 | 709 | "/Font": "18 0 R" |
| 710 | 710 | }, |
| 711 | - "/DV": "", | |
| 711 | + "/DV": "u:", | |
| 712 | 712 | "/F": 4, |
| 713 | 713 | "/FT": "/Ch", |
| 714 | 714 | "/Ff": 131072, |
| 715 | 715 | "/Opt": [ |
| 716 | - "nine", | |
| 717 | - "ten", | |
| 718 | - "elephant", | |
| 719 | - "twelve" | |
| 716 | + "u:nine", | |
| 717 | + "u:ten", | |
| 718 | + "u:elephant", | |
| 719 | + "u:twelve" | |
| 720 | 720 | ], |
| 721 | 721 | "/P": "15 0 R", |
| 722 | 722 | "/Rect": [ |
| ... | ... | @@ -726,9 +726,9 @@ |
| 726 | 726 | 130.949 |
| 727 | 727 | ], |
| 728 | 728 | "/Subtype": "/Widget", |
| 729 | - "/T": "drop1", | |
| 729 | + "/T": "u:drop1", | |
| 730 | 730 | "/Type": "/Annot", |
| 731 | - "/V": "" | |
| 731 | + "/V": "u:" | |
| 732 | 732 | } |
| 733 | 733 | }, |
| 734 | 734 | "obj:13 0 R": { |
| ... | ... | @@ -736,19 +736,19 @@ |
| 736 | 736 | "/AP": { |
| 737 | 737 | "/N": "46 0 R" |
| 738 | 738 | }, |
| 739 | - "/DA": "0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 739 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 740 | 740 | "/DR": { |
| 741 | 741 | "/Font": "18 0 R" |
| 742 | 742 | }, |
| 743 | - "/DV": "", | |
| 743 | + "/DV": "u:", | |
| 744 | 744 | "/F": 4, |
| 745 | 745 | "/FT": "/Ch", |
| 746 | 746 | "/Ff": 393216, |
| 747 | 747 | "/Opt": [ |
| 748 | - "one", | |
| 749 | - "two", | |
| 750 | - "pi", | |
| 751 | - "four" | |
| 748 | + "u:one", | |
| 749 | + "u:two", | |
| 750 | + "u:pi", | |
| 751 | + "u:four" | |
| 752 | 752 | ], |
| 753 | 753 | "/P": "15 0 R", |
| 754 | 754 | "/Rect": [ |
| ... | ... | @@ -758,9 +758,9 @@ |
| 758 | 758 | 232.849 |
| 759 | 759 | ], |
| 760 | 760 | "/Subtype": "/Widget", |
| 761 | - "/T": "combolist1", | |
| 761 | + "/T": "u:combolist1", | |
| 762 | 762 | "/Type": "/Annot", |
| 763 | - "/V": "" | |
| 763 | + "/V": "u:" | |
| 764 | 764 | } |
| 765 | 765 | }, |
| 766 | 766 | "obj:14 0 R": { |
| ... | ... | @@ -768,19 +768,19 @@ |
| 768 | 768 | "/AP": { |
| 769 | 769 | "/N": "48 0 R" |
| 770 | 770 | }, |
| 771 | - "/DA": "0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 771 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 772 | 772 | "/DR": { |
| 773 | 773 | "/Font": "18 0 R" |
| 774 | 774 | }, |
| 775 | - "/DV": "", | |
| 775 | + "/DV": "u:", | |
| 776 | 776 | "/F": 4, |
| 777 | 777 | "/FT": "/Ch", |
| 778 | 778 | "/Ff": 393216, |
| 779 | 779 | "/Opt": [ |
| 780 | - "alpha", | |
| 781 | - "beta", | |
| 782 | - "gamma", | |
| 783 | - "delta" | |
| 780 | + "u:alpha", | |
| 781 | + "u:beta", | |
| 782 | + "u:gamma", | |
| 783 | + "u:delta" | |
| 784 | 784 | ], |
| 785 | 785 | "/P": "15 0 R", |
| 786 | 786 | "/Rect": [ |
| ... | ... | @@ -790,9 +790,9 @@ |
| 790 | 790 | 135.349 |
| 791 | 791 | ], |
| 792 | 792 | "/Subtype": "/Widget", |
| 793 | - "/T": "combodrop1", | |
| 793 | + "/T": "u:combodrop1", | |
| 794 | 794 | "/Type": "/Annot", |
| 795 | - "/V": "" | |
| 795 | + "/V": "u:" | |
| 796 | 796 | } |
| 797 | 797 | }, |
| 798 | 798 | "obj:15 0 R": { |
| ... | ... | @@ -898,7 +898,7 @@ |
| 898 | 898 | } |
| 899 | 899 | }, |
| 900 | 900 | "/AS": "/1", |
| 901 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 901 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 902 | 902 | "/DR": { |
| 903 | 903 | "/Font": { |
| 904 | 904 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -907,7 +907,7 @@ |
| 907 | 907 | "/F": 4, |
| 908 | 908 | "/FT": "/Btn", |
| 909 | 909 | "/MK": { |
| 910 | - "/CA": "l" | |
| 910 | + "/CA": "u:l" | |
| 911 | 911 | }, |
| 912 | 912 | "/P": "15 0 R", |
| 913 | 913 | "/Parent": "5 0 R", |
| ... | ... | @@ -930,7 +930,7 @@ |
| 930 | 930 | } |
| 931 | 931 | }, |
| 932 | 932 | "/AS": "/Off", |
| 933 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 933 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 934 | 934 | "/DR": { |
| 935 | 935 | "/Font": { |
| 936 | 936 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -939,7 +939,7 @@ |
| 939 | 939 | "/F": 4, |
| 940 | 940 | "/FT": "/Btn", |
| 941 | 941 | "/MK": { |
| 942 | - "/CA": "l" | |
| 942 | + "/CA": "u:l" | |
| 943 | 943 | }, |
| 944 | 944 | "/P": "15 0 R", |
| 945 | 945 | "/Parent": "5 0 R", |
| ... | ... | @@ -962,7 +962,7 @@ |
| 962 | 962 | } |
| 963 | 963 | }, |
| 964 | 964 | "/AS": "/Off", |
| 965 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 965 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 966 | 966 | "/DR": { |
| 967 | 967 | "/Font": { |
| 968 | 968 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -971,7 +971,7 @@ |
| 971 | 971 | "/F": 4, |
| 972 | 972 | "/FT": "/Btn", |
| 973 | 973 | "/MK": { |
| 974 | - "/CA": "l" | |
| 974 | + "/CA": "u:l" | |
| 975 | 975 | }, |
| 976 | 976 | "/P": "15 0 R", |
| 977 | 977 | "/Parent": "5 0 R", |
| ... | ... | @@ -1115,7 +1115,7 @@ |
| 1115 | 1115 | } |
| 1116 | 1116 | }, |
| 1117 | 1117 | "/AS": "/Off", |
| 1118 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1118 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1119 | 1119 | "/DR": { |
| 1120 | 1120 | "/Font": { |
| 1121 | 1121 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -1124,7 +1124,7 @@ |
| 1124 | 1124 | "/F": 4, |
| 1125 | 1125 | "/FT": "/Btn", |
| 1126 | 1126 | "/MK": { |
| 1127 | - "/CA": "l" | |
| 1127 | + "/CA": "u:l" | |
| 1128 | 1128 | }, |
| 1129 | 1129 | "/P": "15 0 R", |
| 1130 | 1130 | "/Parent": "9 0 R", |
| ... | ... | @@ -1147,7 +1147,7 @@ |
| 1147 | 1147 | } |
| 1148 | 1148 | }, |
| 1149 | 1149 | "/AS": "/2", |
| 1150 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1150 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1151 | 1151 | "/DR": { |
| 1152 | 1152 | "/Font": { |
| 1153 | 1153 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -1156,7 +1156,7 @@ |
| 1156 | 1156 | "/F": 4, |
| 1157 | 1157 | "/FT": "/Btn", |
| 1158 | 1158 | "/MK": { |
| 1159 | - "/CA": "l" | |
| 1159 | + "/CA": "u:l" | |
| 1160 | 1160 | }, |
| 1161 | 1161 | "/P": "15 0 R", |
| 1162 | 1162 | "/Parent": "9 0 R", |
| ... | ... | @@ -1179,7 +1179,7 @@ |
| 1179 | 1179 | } |
| 1180 | 1180 | }, |
| 1181 | 1181 | "/AS": "/Off", |
| 1182 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1182 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1183 | 1183 | "/DR": { |
| 1184 | 1184 | "/Font": { |
| 1185 | 1185 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -1188,7 +1188,7 @@ |
| 1188 | 1188 | "/F": 4, |
| 1189 | 1189 | "/FT": "/Btn", |
| 1190 | 1190 | "/MK": { |
| 1191 | - "/CA": "l" | |
| 1191 | + "/CA": "u:l" | |
| 1192 | 1192 | }, |
| 1193 | 1193 | "/P": "15 0 R", |
| 1194 | 1194 | "/Parent": "9 0 R", |
| ... | ... | @@ -3165,8 +3165,8 @@ |
| 3165 | 3165 | "value": { |
| 3166 | 3166 | "/DocChecksum": "/CC322E136FE95DECF8BC297B1A9B2C2E", |
| 3167 | 3167 | "/ID": [ |
| 3168 | - "ø«Ä{±ßTJ\rùÁZuï\u0000F", | |
| 3169 | - "ì®zg+Ìó4…[Tƒ{ —8" | |
| 3168 | + "b:f8abc47bb1df544a0df9c15a75ef0046", | |
| 3169 | + "b:ecae7a672bccf334835b54867b208438" | |
| 3170 | 3170 | ], |
| 3171 | 3171 | "/Info": "2 0 R", |
| 3172 | 3172 | "/Root": "1 0 R", | ... | ... |
qpdf/qtest/qpdf/json-field-types-acroform-v2.out
| ... | ... | @@ -13,7 +13,7 @@ |
| 13 | 13 | "object": "4 0 R" |
| 14 | 14 | }, |
| 15 | 15 | "choices": [], |
| 16 | - "defaultvalue": "", | |
| 16 | + "defaultvalue": "u:", | |
| 17 | 17 | "fieldflags": 0, |
| 18 | 18 | "fieldtype": "/Tx", |
| 19 | 19 | "fullname": "text", |
| ... | ... | @@ -27,7 +27,7 @@ |
| 27 | 27 | "parent": null, |
| 28 | 28 | "partialname": "text", |
| 29 | 29 | "quadding": 0, |
| 30 | - "value": "" | |
| 30 | + "value": "u:" | |
| 31 | 31 | }, |
| 32 | 32 | { |
| 33 | 33 | "alternativename": "r1", |
| ... | ... | @@ -253,7 +253,7 @@ |
| 253 | 253 | "object": "10 0 R" |
| 254 | 254 | }, |
| 255 | 255 | "choices": [], |
| 256 | - "defaultvalue": "salad πʬ", | |
| 256 | + "defaultvalue": "u:salad πʬ", | |
| 257 | 257 | "fieldflags": 0, |
| 258 | 258 | "fieldtype": "/Tx", |
| 259 | 259 | "fullname": "text2", |
| ... | ... | @@ -267,7 +267,7 @@ |
| 267 | 267 | "parent": null, |
| 268 | 268 | "partialname": "text2", |
| 269 | 269 | "quadding": 0, |
| 270 | - "value": "salad πʬ" | |
| 270 | + "value": "u:salad πʬ" | |
| 271 | 271 | }, |
| 272 | 272 | { |
| 273 | 273 | "alternativename": "combolist1", |
| ... | ... | @@ -282,7 +282,7 @@ |
| 282 | 282 | "pi", |
| 283 | 283 | "four" |
| 284 | 284 | ], |
| 285 | - "defaultvalue": "", | |
| 285 | + "defaultvalue": "u:", | |
| 286 | 286 | "fieldflags": 393216, |
| 287 | 287 | "fieldtype": "/Ch", |
| 288 | 288 | "fullname": "combolist1", |
| ... | ... | @@ -296,7 +296,7 @@ |
| 296 | 296 | "parent": null, |
| 297 | 297 | "partialname": "combolist1", |
| 298 | 298 | "quadding": 0, |
| 299 | - "value": "" | |
| 299 | + "value": "u:" | |
| 300 | 300 | }, |
| 301 | 301 | { |
| 302 | 302 | "alternativename": "list1", |
| ... | ... | @@ -311,7 +311,7 @@ |
| 311 | 311 | "seven", |
| 312 | 312 | "eight" |
| 313 | 313 | ], |
| 314 | - "defaultvalue": "", | |
| 314 | + "defaultvalue": "u:", | |
| 315 | 315 | "fieldflags": 0, |
| 316 | 316 | "fieldtype": "/Ch", |
| 317 | 317 | "fullname": "list1", |
| ... | ... | @@ -325,7 +325,7 @@ |
| 325 | 325 | "parent": null, |
| 326 | 326 | "partialname": "list1", |
| 327 | 327 | "quadding": 0, |
| 328 | - "value": "" | |
| 328 | + "value": "u:" | |
| 329 | 329 | }, |
| 330 | 330 | { |
| 331 | 331 | "alternativename": "drop1", |
| ... | ... | @@ -340,7 +340,7 @@ |
| 340 | 340 | "elephant", |
| 341 | 341 | "twelve" |
| 342 | 342 | ], |
| 343 | - "defaultvalue": "", | |
| 343 | + "defaultvalue": "u:", | |
| 344 | 344 | "fieldflags": 131072, |
| 345 | 345 | "fieldtype": "/Ch", |
| 346 | 346 | "fullname": "drop1", |
| ... | ... | @@ -354,7 +354,7 @@ |
| 354 | 354 | "parent": null, |
| 355 | 355 | "partialname": "drop1", |
| 356 | 356 | "quadding": 0, |
| 357 | - "value": "" | |
| 357 | + "value": "u:" | |
| 358 | 358 | }, |
| 359 | 359 | { |
| 360 | 360 | "alternativename": "combodrop1", |
| ... | ... | @@ -369,7 +369,7 @@ |
| 369 | 369 | "gamma", |
| 370 | 370 | "delta" |
| 371 | 371 | ], |
| 372 | - "defaultvalue": "", | |
| 372 | + "defaultvalue": "u:", | |
| 373 | 373 | "fieldflags": 393216, |
| 374 | 374 | "fieldtype": "/Ch", |
| 375 | 375 | "fullname": "combodrop1", |
| ... | ... | @@ -383,7 +383,7 @@ |
| 383 | 383 | "parent": null, |
| 384 | 384 | "partialname": "combodrop1", |
| 385 | 385 | "quadding": 0, |
| 386 | - "value": "" | |
| 386 | + "value": "u:" | |
| 387 | 387 | } |
| 388 | 388 | ], |
| 389 | 389 | "hasacroform": true, | ... | ... |
qpdf/qtest/qpdf/json-field-types-v2.out
| ... | ... | @@ -26,7 +26,7 @@ |
| 26 | 26 | "object": "4 0 R" |
| 27 | 27 | }, |
| 28 | 28 | "choices": [], |
| 29 | - "defaultvalue": "", | |
| 29 | + "defaultvalue": "u:", | |
| 30 | 30 | "fieldflags": 0, |
| 31 | 31 | "fieldtype": "/Tx", |
| 32 | 32 | "fullname": "text", |
| ... | ... | @@ -40,7 +40,7 @@ |
| 40 | 40 | "parent": null, |
| 41 | 41 | "partialname": "text", |
| 42 | 42 | "quadding": 0, |
| 43 | - "value": "" | |
| 43 | + "value": "u:" | |
| 44 | 44 | }, |
| 45 | 45 | { |
| 46 | 46 | "alternativename": "r1", |
| ... | ... | @@ -266,7 +266,7 @@ |
| 266 | 266 | "object": "10 0 R" |
| 267 | 267 | }, |
| 268 | 268 | "choices": [], |
| 269 | - "defaultvalue": "salad πʬ", | |
| 269 | + "defaultvalue": "u:salad πʬ", | |
| 270 | 270 | "fieldflags": 0, |
| 271 | 271 | "fieldtype": "/Tx", |
| 272 | 272 | "fullname": "text2", |
| ... | ... | @@ -280,7 +280,7 @@ |
| 280 | 280 | "parent": null, |
| 281 | 281 | "partialname": "text2", |
| 282 | 282 | "quadding": 0, |
| 283 | - "value": "salad πʬ" | |
| 283 | + "value": "u:salad πʬ" | |
| 284 | 284 | }, |
| 285 | 285 | { |
| 286 | 286 | "alternativename": "combolist1", |
| ... | ... | @@ -295,7 +295,7 @@ |
| 295 | 295 | "pi", |
| 296 | 296 | "four" |
| 297 | 297 | ], |
| 298 | - "defaultvalue": "", | |
| 298 | + "defaultvalue": "u:", | |
| 299 | 299 | "fieldflags": 393216, |
| 300 | 300 | "fieldtype": "/Ch", |
| 301 | 301 | "fullname": "combolist1", |
| ... | ... | @@ -309,7 +309,7 @@ |
| 309 | 309 | "parent": null, |
| 310 | 310 | "partialname": "combolist1", |
| 311 | 311 | "quadding": 0, |
| 312 | - "value": "" | |
| 312 | + "value": "u:" | |
| 313 | 313 | }, |
| 314 | 314 | { |
| 315 | 315 | "alternativename": "list1", |
| ... | ... | @@ -324,7 +324,7 @@ |
| 324 | 324 | "seven", |
| 325 | 325 | "eight" |
| 326 | 326 | ], |
| 327 | - "defaultvalue": "", | |
| 327 | + "defaultvalue": "u:", | |
| 328 | 328 | "fieldflags": 0, |
| 329 | 329 | "fieldtype": "/Ch", |
| 330 | 330 | "fullname": "list1", |
| ... | ... | @@ -338,7 +338,7 @@ |
| 338 | 338 | "parent": null, |
| 339 | 339 | "partialname": "list1", |
| 340 | 340 | "quadding": 0, |
| 341 | - "value": "" | |
| 341 | + "value": "u:" | |
| 342 | 342 | }, |
| 343 | 343 | { |
| 344 | 344 | "alternativename": "drop1", |
| ... | ... | @@ -353,7 +353,7 @@ |
| 353 | 353 | "elephant", |
| 354 | 354 | "twelve" |
| 355 | 355 | ], |
| 356 | - "defaultvalue": "", | |
| 356 | + "defaultvalue": "u:", | |
| 357 | 357 | "fieldflags": 131072, |
| 358 | 358 | "fieldtype": "/Ch", |
| 359 | 359 | "fullname": "drop1", |
| ... | ... | @@ -367,7 +367,7 @@ |
| 367 | 367 | "parent": null, |
| 368 | 368 | "partialname": "drop1", |
| 369 | 369 | "quadding": 0, |
| 370 | - "value": "" | |
| 370 | + "value": "u:" | |
| 371 | 371 | }, |
| 372 | 372 | { |
| 373 | 373 | "alternativename": "combodrop1", |
| ... | ... | @@ -382,7 +382,7 @@ |
| 382 | 382 | "gamma", |
| 383 | 383 | "delta" |
| 384 | 384 | ], |
| 385 | - "defaultvalue": "", | |
| 385 | + "defaultvalue": "u:", | |
| 386 | 386 | "fieldflags": 393216, |
| 387 | 387 | "fieldtype": "/Ch", |
| 388 | 388 | "fullname": "combodrop1", |
| ... | ... | @@ -396,7 +396,7 @@ |
| 396 | 396 | "parent": null, |
| 397 | 397 | "partialname": "combodrop1", |
| 398 | 398 | "quadding": 0, |
| 399 | - "value": "" | |
| 399 | + "value": "u:" | |
| 400 | 400 | } |
| 401 | 401 | ], |
| 402 | 402 | "hasacroform": true, |
| ... | ... | @@ -407,8 +407,8 @@ |
| 407 | 407 | "capabilities": { |
| 408 | 408 | "accessibility": true, |
| 409 | 409 | "extract": true, |
| 410 | - "moddifyannotations": true, | |
| 411 | 410 | "modify": true, |
| 411 | + "modifyannotations": true, | |
| 412 | 412 | "modifyassembly": true, |
| 413 | 413 | "modifyforms": true, |
| 414 | 414 | "modifyother": true, |
| ... | ... | @@ -433,7 +433,7 @@ |
| 433 | 433 | "outlines": [], |
| 434 | 434 | "qpdf": { |
| 435 | 435 | "jsonversion": 2, |
| 436 | - "pdfversion": "1.3", | |
| 436 | + "pdfversion": "1.5", | |
| 437 | 437 | "objects": { |
| 438 | 438 | "obj:1 0 R": { |
| 439 | 439 | "value": { |
| ... | ... | @@ -454,7 +454,7 @@ |
| 454 | 454 | ], |
| 455 | 455 | "/NeedAppearances": true |
| 456 | 456 | }, |
| 457 | - "/Lang": "en-US", | |
| 457 | + "/Lang": "u:en-US", | |
| 458 | 458 | "/MarkInfo": { |
| 459 | 459 | "/Marked": true |
| 460 | 460 | }, |
| ... | ... | @@ -472,9 +472,9 @@ |
| 472 | 472 | }, |
| 473 | 473 | "obj:2 0 R": { |
| 474 | 474 | "value": { |
| 475 | - "/CreationDate": "D:20190103125434-05'00'", | |
| 476 | - "/Creator": "Writer", | |
| 477 | - "/Producer": "LibreOffice 6.1" | |
| 475 | + "/CreationDate": "u:D:20190103125434-05'00'", | |
| 476 | + "/Creator": "u:Writer", | |
| 477 | + "/Producer": "u:LibreOffice 6.1" | |
| 478 | 478 | } |
| 479 | 479 | }, |
| 480 | 480 | "obj:3 0 R": { |
| ... | ... | @@ -491,11 +491,11 @@ |
| 491 | 491 | "/AP": { |
| 492 | 492 | "/N": "19 0 R" |
| 493 | 493 | }, |
| 494 | - "/DA": "0.18039 0.20392 0.21176 rg /F2 12 Tf", | |
| 494 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F2 12 Tf", | |
| 495 | 495 | "/DR": { |
| 496 | 496 | "/Font": "18 0 R" |
| 497 | 497 | }, |
| 498 | - "/DV": "", | |
| 498 | + "/DV": "u:", | |
| 499 | 499 | "/F": 4, |
| 500 | 500 | "/FT": "/Tx", |
| 501 | 501 | "/P": "15 0 R", |
| ... | ... | @@ -506,9 +506,9 @@ |
| 506 | 506 | 704.699 |
| 507 | 507 | ], |
| 508 | 508 | "/Subtype": "/Widget", |
| 509 | - "/T": "text", | |
| 509 | + "/T": "u:text", | |
| 510 | 510 | "/Type": "/Annot", |
| 511 | - "/V": "" | |
| 511 | + "/V": "u:" | |
| 512 | 512 | } |
| 513 | 513 | }, |
| 514 | 514 | "obj:5 0 R": { |
| ... | ... | @@ -522,7 +522,7 @@ |
| 522 | 522 | "23 0 R" |
| 523 | 523 | ], |
| 524 | 524 | "/P": "15 0 R", |
| 525 | - "/T": "r1", | |
| 525 | + "/T": "u:r1", | |
| 526 | 526 | "/V": "/1" |
| 527 | 527 | } |
| 528 | 528 | }, |
| ... | ... | @@ -535,7 +535,7 @@ |
| 535 | 535 | } |
| 536 | 536 | }, |
| 537 | 537 | "/AS": "/Off", |
| 538 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 538 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 539 | 539 | "/DR": { |
| 540 | 540 | "/Font": { |
| 541 | 541 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -545,7 +545,7 @@ |
| 545 | 545 | "/F": 4, |
| 546 | 546 | "/FT": "/Btn", |
| 547 | 547 | "/MK": { |
| 548 | - "/CA": "8" | |
| 548 | + "/CA": "u:8" | |
| 549 | 549 | }, |
| 550 | 550 | "/P": "15 0 R", |
| 551 | 551 | "/Rect": [ |
| ... | ... | @@ -555,7 +555,7 @@ |
| 555 | 555 | 566.349 |
| 556 | 556 | ], |
| 557 | 557 | "/Subtype": "/Widget", |
| 558 | - "/T": "checkbox1", | |
| 558 | + "/T": "u:checkbox1", | |
| 559 | 559 | "/Type": "/Annot", |
| 560 | 560 | "/V": "/Off" |
| 561 | 561 | } |
| ... | ... | @@ -569,7 +569,7 @@ |
| 569 | 569 | } |
| 570 | 570 | }, |
| 571 | 571 | "/AS": "/Yes", |
| 572 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 572 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 573 | 573 | "/DR": { |
| 574 | 574 | "/Font": { |
| 575 | 575 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -579,7 +579,7 @@ |
| 579 | 579 | "/F": 4, |
| 580 | 580 | "/FT": "/Btn", |
| 581 | 581 | "/MK": { |
| 582 | - "/CA": "8" | |
| 582 | + "/CA": "u:8" | |
| 583 | 583 | }, |
| 584 | 584 | "/P": "15 0 R", |
| 585 | 585 | "/Rect": [ |
| ... | ... | @@ -589,7 +589,7 @@ |
| 589 | 589 | 539.799 |
| 590 | 590 | ], |
| 591 | 591 | "/Subtype": "/Widget", |
| 592 | - "/T": "checkbox2", | |
| 592 | + "/T": "u:checkbox2", | |
| 593 | 593 | "/Type": "/Annot", |
| 594 | 594 | "/V": "/Yes" |
| 595 | 595 | } |
| ... | ... | @@ -603,7 +603,7 @@ |
| 603 | 603 | } |
| 604 | 604 | }, |
| 605 | 605 | "/AS": "/Off", |
| 606 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 606 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 607 | 607 | "/DR": { |
| 608 | 608 | "/Font": { |
| 609 | 609 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -613,7 +613,7 @@ |
| 613 | 613 | "/F": 4, |
| 614 | 614 | "/FT": "/Btn", |
| 615 | 615 | "/MK": { |
| 616 | - "/CA": "8" | |
| 616 | + "/CA": "u:8" | |
| 617 | 617 | }, |
| 618 | 618 | "/P": "15 0 R", |
| 619 | 619 | "/Rect": [ |
| ... | ... | @@ -623,7 +623,7 @@ |
| 623 | 623 | 512.549 |
| 624 | 624 | ], |
| 625 | 625 | "/Subtype": "/Widget", |
| 626 | - "/T": "checkbox3", | |
| 626 | + "/T": "u:checkbox3", | |
| 627 | 627 | "/Type": "/Annot", |
| 628 | 628 | "/V": "/Off" |
| 629 | 629 | } |
| ... | ... | @@ -639,7 +639,7 @@ |
| 639 | 639 | "39 0 R" |
| 640 | 640 | ], |
| 641 | 641 | "/P": "15 0 R", |
| 642 | - "/T": "r2", | |
| 642 | + "/T": "u:r2", | |
| 643 | 643 | "/V": "/2" |
| 644 | 644 | } |
| 645 | 645 | }, |
| ... | ... | @@ -648,11 +648,11 @@ |
| 648 | 648 | "/AP": { |
| 649 | 649 | "/N": "40 0 R" |
| 650 | 650 | }, |
| 651 | - "/DA": "0.18039 0.20392 0.21176 rg /F2 12 Tf", | |
| 651 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F2 12 Tf", | |
| 652 | 652 | "/DR": { |
| 653 | 653 | "/Font": "18 0 R" |
| 654 | 654 | }, |
| 655 | - "/DV": "salad πʬ", | |
| 655 | + "/DV": "u:salad πʬ", | |
| 656 | 656 | "/F": 4, |
| 657 | 657 | "/FT": "/Tx", |
| 658 | 658 | "/P": "15 0 R", |
| ... | ... | @@ -663,9 +663,9 @@ |
| 663 | 663 | 278.099 |
| 664 | 664 | ], |
| 665 | 665 | "/Subtype": "/Widget", |
| 666 | - "/T": "text2", | |
| 666 | + "/T": "u:text2", | |
| 667 | 667 | "/Type": "/Annot", |
| 668 | - "/V": "salad πʬ" | |
| 668 | + "/V": "u:salad πʬ" | |
| 669 | 669 | } |
| 670 | 670 | }, |
| 671 | 671 | "obj:11 0 R": { |
| ... | ... | @@ -673,18 +673,18 @@ |
| 673 | 673 | "/AP": { |
| 674 | 674 | "/N": "42 0 R" |
| 675 | 675 | }, |
| 676 | - "/DA": "0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 676 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 677 | 677 | "/DR": { |
| 678 | 678 | "/Font": "18 0 R" |
| 679 | 679 | }, |
| 680 | - "/DV": "", | |
| 680 | + "/DV": "u:", | |
| 681 | 681 | "/F": 4, |
| 682 | 682 | "/FT": "/Ch", |
| 683 | 683 | "/Opt": [ |
| 684 | - "five", | |
| 685 | - "six", | |
| 686 | - "seven", | |
| 687 | - "eight" | |
| 684 | + "u:five", | |
| 685 | + "u:six", | |
| 686 | + "u:seven", | |
| 687 | + "u:eight" | |
| 688 | 688 | ], |
| 689 | 689 | "/P": "15 0 R", |
| 690 | 690 | "/Rect": [ |
| ... | ... | @@ -694,9 +694,9 @@ |
| 694 | 694 | 232.849 |
| 695 | 695 | ], |
| 696 | 696 | "/Subtype": "/Widget", |
| 697 | - "/T": "list1", | |
| 697 | + "/T": "u:list1", | |
| 698 | 698 | "/Type": "/Annot", |
| 699 | - "/V": "" | |
| 699 | + "/V": "u:" | |
| 700 | 700 | } |
| 701 | 701 | }, |
| 702 | 702 | "obj:12 0 R": { |
| ... | ... | @@ -704,19 +704,19 @@ |
| 704 | 704 | "/AP": { |
| 705 | 705 | "/N": "44 0 R" |
| 706 | 706 | }, |
| 707 | - "/DA": "0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 707 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 708 | 708 | "/DR": { |
| 709 | 709 | "/Font": "18 0 R" |
| 710 | 710 | }, |
| 711 | - "/DV": "", | |
| 711 | + "/DV": "u:", | |
| 712 | 712 | "/F": 4, |
| 713 | 713 | "/FT": "/Ch", |
| 714 | 714 | "/Ff": 131072, |
| 715 | 715 | "/Opt": [ |
| 716 | - "nine", | |
| 717 | - "ten", | |
| 718 | - "elephant", | |
| 719 | - "twelve" | |
| 716 | + "u:nine", | |
| 717 | + "u:ten", | |
| 718 | + "u:elephant", | |
| 719 | + "u:twelve" | |
| 720 | 720 | ], |
| 721 | 721 | "/P": "15 0 R", |
| 722 | 722 | "/Rect": [ |
| ... | ... | @@ -726,9 +726,9 @@ |
| 726 | 726 | 130.949 |
| 727 | 727 | ], |
| 728 | 728 | "/Subtype": "/Widget", |
| 729 | - "/T": "drop1", | |
| 729 | + "/T": "u:drop1", | |
| 730 | 730 | "/Type": "/Annot", |
| 731 | - "/V": "" | |
| 731 | + "/V": "u:" | |
| 732 | 732 | } |
| 733 | 733 | }, |
| 734 | 734 | "obj:13 0 R": { |
| ... | ... | @@ -736,19 +736,19 @@ |
| 736 | 736 | "/AP": { |
| 737 | 737 | "/N": "46 0 R" |
| 738 | 738 | }, |
| 739 | - "/DA": "0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 739 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 740 | 740 | "/DR": { |
| 741 | 741 | "/Font": "18 0 R" |
| 742 | 742 | }, |
| 743 | - "/DV": "", | |
| 743 | + "/DV": "u:", | |
| 744 | 744 | "/F": 4, |
| 745 | 745 | "/FT": "/Ch", |
| 746 | 746 | "/Ff": 393216, |
| 747 | 747 | "/Opt": [ |
| 748 | - "one", | |
| 749 | - "two", | |
| 750 | - "pi", | |
| 751 | - "four" | |
| 748 | + "u:one", | |
| 749 | + "u:two", | |
| 750 | + "u:pi", | |
| 751 | + "u:four" | |
| 752 | 752 | ], |
| 753 | 753 | "/P": "15 0 R", |
| 754 | 754 | "/Rect": [ |
| ... | ... | @@ -758,9 +758,9 @@ |
| 758 | 758 | 232.849 |
| 759 | 759 | ], |
| 760 | 760 | "/Subtype": "/Widget", |
| 761 | - "/T": "combolist1", | |
| 761 | + "/T": "u:combolist1", | |
| 762 | 762 | "/Type": "/Annot", |
| 763 | - "/V": "" | |
| 763 | + "/V": "u:" | |
| 764 | 764 | } |
| 765 | 765 | }, |
| 766 | 766 | "obj:14 0 R": { |
| ... | ... | @@ -768,19 +768,19 @@ |
| 768 | 768 | "/AP": { |
| 769 | 769 | "/N": "48 0 R" |
| 770 | 770 | }, |
| 771 | - "/DA": "0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 771 | + "/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf", | |
| 772 | 772 | "/DR": { |
| 773 | 773 | "/Font": "18 0 R" |
| 774 | 774 | }, |
| 775 | - "/DV": "", | |
| 775 | + "/DV": "u:", | |
| 776 | 776 | "/F": 4, |
| 777 | 777 | "/FT": "/Ch", |
| 778 | 778 | "/Ff": 393216, |
| 779 | 779 | "/Opt": [ |
| 780 | - "alpha", | |
| 781 | - "beta", | |
| 782 | - "gamma", | |
| 783 | - "delta" | |
| 780 | + "u:alpha", | |
| 781 | + "u:beta", | |
| 782 | + "u:gamma", | |
| 783 | + "u:delta" | |
| 784 | 784 | ], |
| 785 | 785 | "/P": "15 0 R", |
| 786 | 786 | "/Rect": [ |
| ... | ... | @@ -790,9 +790,9 @@ |
| 790 | 790 | 135.349 |
| 791 | 791 | ], |
| 792 | 792 | "/Subtype": "/Widget", |
| 793 | - "/T": "combodrop1", | |
| 793 | + "/T": "u:combodrop1", | |
| 794 | 794 | "/Type": "/Annot", |
| 795 | - "/V": "" | |
| 795 | + "/V": "u:" | |
| 796 | 796 | } |
| 797 | 797 | }, |
| 798 | 798 | "obj:15 0 R": { |
| ... | ... | @@ -898,7 +898,7 @@ |
| 898 | 898 | } |
| 899 | 899 | }, |
| 900 | 900 | "/AS": "/1", |
| 901 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 901 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 902 | 902 | "/DR": { |
| 903 | 903 | "/Font": { |
| 904 | 904 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -907,7 +907,7 @@ |
| 907 | 907 | "/F": 4, |
| 908 | 908 | "/FT": "/Btn", |
| 909 | 909 | "/MK": { |
| 910 | - "/CA": "l" | |
| 910 | + "/CA": "u:l" | |
| 911 | 911 | }, |
| 912 | 912 | "/P": "15 0 R", |
| 913 | 913 | "/Parent": "5 0 R", |
| ... | ... | @@ -930,7 +930,7 @@ |
| 930 | 930 | } |
| 931 | 931 | }, |
| 932 | 932 | "/AS": "/Off", |
| 933 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 933 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 934 | 934 | "/DR": { |
| 935 | 935 | "/Font": { |
| 936 | 936 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -939,7 +939,7 @@ |
| 939 | 939 | "/F": 4, |
| 940 | 940 | "/FT": "/Btn", |
| 941 | 941 | "/MK": { |
| 942 | - "/CA": "l" | |
| 942 | + "/CA": "u:l" | |
| 943 | 943 | }, |
| 944 | 944 | "/P": "15 0 R", |
| 945 | 945 | "/Parent": "5 0 R", |
| ... | ... | @@ -962,7 +962,7 @@ |
| 962 | 962 | } |
| 963 | 963 | }, |
| 964 | 964 | "/AS": "/Off", |
| 965 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 965 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 966 | 966 | "/DR": { |
| 967 | 967 | "/Font": { |
| 968 | 968 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -971,7 +971,7 @@ |
| 971 | 971 | "/F": 4, |
| 972 | 972 | "/FT": "/Btn", |
| 973 | 973 | "/MK": { |
| 974 | - "/CA": "l" | |
| 974 | + "/CA": "u:l" | |
| 975 | 975 | }, |
| 976 | 976 | "/P": "15 0 R", |
| 977 | 977 | "/Parent": "5 0 R", |
| ... | ... | @@ -1115,7 +1115,7 @@ |
| 1115 | 1115 | } |
| 1116 | 1116 | }, |
| 1117 | 1117 | "/AS": "/Off", |
| 1118 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1118 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1119 | 1119 | "/DR": { |
| 1120 | 1120 | "/Font": { |
| 1121 | 1121 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -1124,7 +1124,7 @@ |
| 1124 | 1124 | "/F": 4, |
| 1125 | 1125 | "/FT": "/Btn", |
| 1126 | 1126 | "/MK": { |
| 1127 | - "/CA": "l" | |
| 1127 | + "/CA": "u:l" | |
| 1128 | 1128 | }, |
| 1129 | 1129 | "/P": "15 0 R", |
| 1130 | 1130 | "/Parent": "9 0 R", |
| ... | ... | @@ -1147,7 +1147,7 @@ |
| 1147 | 1147 | } |
| 1148 | 1148 | }, |
| 1149 | 1149 | "/AS": "/2", |
| 1150 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1150 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1151 | 1151 | "/DR": { |
| 1152 | 1152 | "/Font": { |
| 1153 | 1153 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -1156,7 +1156,7 @@ |
| 1156 | 1156 | "/F": 4, |
| 1157 | 1157 | "/FT": "/Btn", |
| 1158 | 1158 | "/MK": { |
| 1159 | - "/CA": "l" | |
| 1159 | + "/CA": "u:l" | |
| 1160 | 1160 | }, |
| 1161 | 1161 | "/P": "15 0 R", |
| 1162 | 1162 | "/Parent": "9 0 R", |
| ... | ... | @@ -1179,7 +1179,7 @@ |
| 1179 | 1179 | } |
| 1180 | 1180 | }, |
| 1181 | 1181 | "/AS": "/Off", |
| 1182 | - "/DA": "0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1182 | + "/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf", | |
| 1183 | 1183 | "/DR": { |
| 1184 | 1184 | "/Font": { |
| 1185 | 1185 | "/ZaDi": "28 0 R" |
| ... | ... | @@ -1188,7 +1188,7 @@ |
| 1188 | 1188 | "/F": 4, |
| 1189 | 1189 | "/FT": "/Btn", |
| 1190 | 1190 | "/MK": { |
| 1191 | - "/CA": "l" | |
| 1191 | + "/CA": "u:l" | |
| 1192 | 1192 | }, |
| 1193 | 1193 | "/P": "15 0 R", |
| 1194 | 1194 | "/Parent": "9 0 R", |
| ... | ... | @@ -3165,8 +3165,8 @@ |
| 3165 | 3165 | "value": { |
| 3166 | 3166 | "/DocChecksum": "/CC322E136FE95DECF8BC297B1A9B2C2E", |
| 3167 | 3167 | "/ID": [ |
| 3168 | - "ø«Ä{±ßTJ\rùÁZuï\u0000F", | |
| 3169 | - "ì®zg+Ìó4…[Tƒ{ —8" | |
| 3168 | + "b:f8abc47bb1df544a0df9c15a75ef0046", | |
| 3169 | + "b:ecae7a672bccf334835b54867b208438" | |
| 3170 | 3170 | ], |
| 3171 | 3171 | "/Info": "2 0 R", |
| 3172 | 3172 | "/Root": "1 0 R", | ... | ... |
qpdf/qtest/qpdf/json-image-streams-all-v2.out
| ... | ... | @@ -250,8 +250,8 @@ |
| 250 | 250 | "capabilities": { |
| 251 | 251 | "accessibility": true, |
| 252 | 252 | "extract": true, |
| 253 | - "moddifyannotations": true, | |
| 254 | 253 | "modify": true, |
| 254 | + "modifyannotations": true, | |
| 255 | 255 | "modifyassembly": true, |
| 256 | 256 | "modifyforms": true, |
| 257 | 257 | "modifyother": true, |
| ... | ... | @@ -733,8 +733,8 @@ |
| 733 | 733 | "trailer": { |
| 734 | 734 | "value": { |
| 735 | 735 | "/ID": [ |
| 736 | - "S¶Ł”łîð\u000e¢¬\u0007}_)\u0012¶", | |
| 737 | - "'+“‰¤V2«PP ç`m\"˛" | |
| 736 | + "b:53b6958e9beef00ea2ac077d5f2912b6", | |
| 737 | + "b:272b8d8ba45632ab505020e7606d221d" | |
| 738 | 738 | ], |
| 739 | 739 | "/Root": "1 0 R", |
| 740 | 740 | "/Size": 31 | ... | ... |
qpdf/qtest/qpdf/json-image-streams-small-v2.out
| ... | ... | @@ -250,8 +250,8 @@ |
| 250 | 250 | "capabilities": { |
| 251 | 251 | "accessibility": true, |
| 252 | 252 | "extract": true, |
| 253 | - "moddifyannotations": true, | |
| 254 | 253 | "modify": true, |
| 254 | + "modifyannotations": true, | |
| 255 | 255 | "modifyassembly": true, |
| 256 | 256 | "modifyforms": true, |
| 257 | 257 | "modifyother": true, |
| ... | ... | @@ -745,8 +745,8 @@ |
| 745 | 745 | "trailer": { |
| 746 | 746 | "value": { |
| 747 | 747 | "/ID": [ |
| 748 | - "Z§¯•Py»’~’46˛ı\u0011¢", | |
| 749 | - "Z§¯•Py»’~’46˛ı\u0011¢" | |
| 748 | + "b:5aa7af805079bb907e9034361d9a11a2", | |
| 749 | + "b:5aa7af805079bb907e9034361d9a11a2" | |
| 750 | 750 | ], |
| 751 | 751 | "/Root": "1 0 R", |
| 752 | 752 | "/Size": 31 | ... | ... |
qpdf/qtest/qpdf/json-image-streams-specialized-v2.out
| ... | ... | @@ -250,8 +250,8 @@ |
| 250 | 250 | "capabilities": { |
| 251 | 251 | "accessibility": true, |
| 252 | 252 | "extract": true, |
| 253 | - "moddifyannotations": true, | |
| 254 | 253 | "modify": true, |
| 254 | + "modifyannotations": true, | |
| 255 | 255 | "modifyassembly": true, |
| 256 | 256 | "modifyforms": true, |
| 257 | 257 | "modifyother": true, |
| ... | ... | @@ -733,8 +733,8 @@ |
| 733 | 733 | "trailer": { |
| 734 | 734 | "value": { |
| 735 | 735 | "/ID": [ |
| 736 | - "S¶Ł”łîð\u000e¢¬\u0007}_)\u0012¶", | |
| 737 | - "'+“‰¤V2«PP ç`m\"˛" | |
| 736 | + "b:53b6958e9beef00ea2ac077d5f2912b6", | |
| 737 | + "b:272b8d8ba45632ab505020e7606d221d" | |
| 738 | 738 | ], |
| 739 | 739 | "/Root": "1 0 R", |
| 740 | 740 | "/Size": 31 | ... | ... |
qpdf/qtest/qpdf/json-image-streams-v2.out
| ... | ... | @@ -250,8 +250,8 @@ |
| 250 | 250 | "capabilities": { |
| 251 | 251 | "accessibility": true, |
| 252 | 252 | "extract": true, |
| 253 | - "moddifyannotations": true, | |
| 254 | 253 | "modify": true, |
| 254 | + "modifyannotations": true, | |
| 255 | 255 | "modifyassembly": true, |
| 256 | 256 | "modifyforms": true, |
| 257 | 257 | "modifyother": true, |
| ... | ... | @@ -733,8 +733,8 @@ |
| 733 | 733 | "trailer": { |
| 734 | 734 | "value": { |
| 735 | 735 | "/ID": [ |
| 736 | - "S¶Ł”łîð\u000e¢¬\u0007}_)\u0012¶", | |
| 737 | - "'+“‰¤V2«PP ç`m\"˛" | |
| 736 | + "b:53b6958e9beef00ea2ac077d5f2912b6", | |
| 737 | + "b:272b8d8ba45632ab505020e7606d221d" | |
| 738 | 738 | ], |
| 739 | 739 | "/Root": "1 0 R", |
| 740 | 740 | "/Size": 31 | ... | ... |
qpdf/qtest/qpdf/json-need-appearances-acroform-v2.out
| ... | ... | @@ -13,7 +13,7 @@ |
| 13 | 13 | "object": "4 0 R" |
| 14 | 14 | }, |
| 15 | 15 | "choices": [], |
| 16 | - "defaultvalue": "", | |
| 16 | + "defaultvalue": "u:", | |
| 17 | 17 | "fieldflags": 0, |
| 18 | 18 | "fieldtype": "/Tx", |
| 19 | 19 | "fullname": "text", |
| ... | ... | @@ -27,7 +27,7 @@ |
| 27 | 27 | "parent": null, |
| 28 | 28 | "partialname": "text", |
| 29 | 29 | "quadding": 0, |
| 30 | - "value": "abc" | |
| 30 | + "value": "u:abc" | |
| 31 | 31 | }, |
| 32 | 32 | { |
| 33 | 33 | "alternativename": "r1", |
| ... | ... | @@ -253,7 +253,7 @@ |
| 253 | 253 | "object": "10 0 R" |
| 254 | 254 | }, |
| 255 | 255 | "choices": [], |
| 256 | - "defaultvalue": "salad πʬ", | |
| 256 | + "defaultvalue": "u:salad πʬ", | |
| 257 | 257 | "fieldflags": 0, |
| 258 | 258 | "fieldtype": "/Tx", |
| 259 | 259 | "fullname": "text2", |
| ... | ... | @@ -267,7 +267,7 @@ |
| 267 | 267 | "parent": null, |
| 268 | 268 | "partialname": "text2", |
| 269 | 269 | "quadding": 0, |
| 270 | - "value": "salad ÷πʬ" | |
| 270 | + "value": "u:salad ÷πʬ" | |
| 271 | 271 | }, |
| 272 | 272 | { |
| 273 | 273 | "alternativename": "combolist1", |
| ... | ... | @@ -282,7 +282,7 @@ |
| 282 | 282 | "pi", |
| 283 | 283 | "four" |
| 284 | 284 | ], |
| 285 | - "defaultvalue": "", | |
| 285 | + "defaultvalue": "u:", | |
| 286 | 286 | "fieldflags": 393216, |
| 287 | 287 | "fieldtype": "/Ch", |
| 288 | 288 | "fullname": "combolist1", |
| ... | ... | @@ -296,7 +296,7 @@ |
| 296 | 296 | "parent": null, |
| 297 | 297 | "partialname": "combolist1", |
| 298 | 298 | "quadding": 0, |
| 299 | - "value": "pi" | |
| 299 | + "value": "u:pi" | |
| 300 | 300 | }, |
| 301 | 301 | { |
| 302 | 302 | "alternativename": "list1", |
| ... | ... | @@ -311,7 +311,7 @@ |
| 311 | 311 | "seven", |
| 312 | 312 | "eight" |
| 313 | 313 | ], |
| 314 | - "defaultvalue": "", | |
| 314 | + "defaultvalue": "u:", | |
| 315 | 315 | "fieldflags": 0, |
| 316 | 316 | "fieldtype": "/Ch", |
| 317 | 317 | "fullname": "list1", |
| ... | ... | @@ -325,7 +325,7 @@ |
| 325 | 325 | "parent": null, |
| 326 | 326 | "partialname": "list1", |
| 327 | 327 | "quadding": 0, |
| 328 | - "value": "six" | |
| 328 | + "value": "u:six" | |
| 329 | 329 | }, |
| 330 | 330 | { |
| 331 | 331 | "alternativename": "drop1", |
| ... | ... | @@ -340,7 +340,7 @@ |
| 340 | 340 | "elephant", |
| 341 | 341 | "twelve" |
| 342 | 342 | ], |
| 343 | - "defaultvalue": "", | |
| 343 | + "defaultvalue": "u:", | |
| 344 | 344 | "fieldflags": 131072, |
| 345 | 345 | "fieldtype": "/Ch", |
| 346 | 346 | "fullname": "drop1", |
| ... | ... | @@ -354,7 +354,7 @@ |
| 354 | 354 | "parent": null, |
| 355 | 355 | "partialname": "drop1", |
| 356 | 356 | "quadding": 0, |
| 357 | - "value": "elephant" | |
| 357 | + "value": "u:elephant" | |
| 358 | 358 | }, |
| 359 | 359 | { |
| 360 | 360 | "alternativename": "combodrop1", |
| ... | ... | @@ -369,7 +369,7 @@ |
| 369 | 369 | "gamma", |
| 370 | 370 | "delta" |
| 371 | 371 | ], |
| 372 | - "defaultvalue": "", | |
| 372 | + "defaultvalue": "u:", | |
| 373 | 373 | "fieldflags": 393216, |
| 374 | 374 | "fieldtype": "/Ch", |
| 375 | 375 | "fullname": "combodrop1", |
| ... | ... | @@ -383,7 +383,7 @@ |
| 383 | 383 | "parent": null, |
| 384 | 384 | "partialname": "combodrop1", |
| 385 | 385 | "quadding": 0, |
| 386 | - "value": "delta" | |
| 386 | + "value": "u:delta" | |
| 387 | 387 | } |
| 388 | 388 | ], |
| 389 | 389 | "hasacroform": true, | ... | ... |
qpdf/qtest/qpdf/json-outlines-with-actions-v2.out
| ... | ... | @@ -441,8 +441,8 @@ |
| 441 | 441 | "capabilities": { |
| 442 | 442 | "accessibility": true, |
| 443 | 443 | "extract": true, |
| 444 | - "moddifyannotations": true, | |
| 445 | 444 | "modify": true, |
| 445 | + "modifyannotations": true, | |
| 446 | 446 | "modifyassembly": true, |
| 447 | 447 | "modifyforms": true, |
| 448 | 448 | "modifyother": true, |
| ... | ... | @@ -694,7 +694,7 @@ |
| 694 | 694 | "/Last": "37 0 R", |
| 695 | 695 | "/Next": "5 0 R", |
| 696 | 696 | "/Parent": "2 0 R", |
| 697 | - "/Title": "Potato 1 -> 5: /XYZ null null null", | |
| 697 | + "/Title": "u:Potato 1 -> 5: /XYZ null null null", | |
| 698 | 698 | "/Type": "/Outline" |
| 699 | 699 | } |
| 700 | 700 | }, |
| ... | ... | @@ -709,7 +709,7 @@ |
| 709 | 709 | ], |
| 710 | 710 | "/Parent": "2 0 R", |
| 711 | 711 | "/Prev": "4 0 R", |
| 712 | - "/Title": "Salad 2 -> 15: /XYZ 66 756 3", | |
| 712 | + "/Title": "u:Salad 2 -> 15: /XYZ 66 756 3", | |
| 713 | 713 | "/Type": "/Outline" |
| 714 | 714 | } |
| 715 | 715 | }, |
| ... | ... | @@ -1294,7 +1294,7 @@ |
| 1294 | 1294 | "/Last": "101 0 R", |
| 1295 | 1295 | "/Next": "37 0 R", |
| 1296 | 1296 | "/Parent": "4 0 R", |
| 1297 | - "/Title": "Mern 1.1 -> 11: /Fit", | |
| 1297 | + "/Title": "u:Mern 1.1 -> 11: /Fit", | |
| 1298 | 1298 | "/Type": "/Outline" |
| 1299 | 1299 | } |
| 1300 | 1300 | }, |
| ... | ... | @@ -1310,7 +1310,7 @@ |
| 1310 | 1310 | "/Last": "103 0 R", |
| 1311 | 1311 | "/Parent": "4 0 R", |
| 1312 | 1312 | "/Prev": "36 0 R", |
| 1313 | - "/Title": "Squash ÷πʬ÷ 1.2 -> 13: /FitH 792", | |
| 1313 | + "/Title": "u:Squash ÷πʬ÷ 1.2 -> 13: /FitH 792", | |
| 1314 | 1314 | "/Type": "/Outline" |
| 1315 | 1315 | } |
| 1316 | 1316 | }, |
| ... | ... | @@ -1641,7 +1641,7 @@ |
| 1641 | 1641 | "/Last": "105 0 R", |
| 1642 | 1642 | "/Next": "101 0 R", |
| 1643 | 1643 | "/Parent": "36 0 R", |
| 1644 | - "/Title": "Biherbadem 1.1.1 -> 12: /FitV 100", | |
| 1644 | + "/Title": "u:Biherbadem 1.1.1 -> 12: /FitV 100", | |
| 1645 | 1645 | "/Type": "/Outline" |
| 1646 | 1646 | } |
| 1647 | 1647 | }, |
| ... | ... | @@ -1659,16 +1659,16 @@ |
| 1659 | 1659 | "/Last": "106 0 R", |
| 1660 | 1660 | "/Parent": "36 0 R", |
| 1661 | 1661 | "/Prev": "100 0 R", |
| 1662 | - "/Title": "Gawehwehweh 1.1.2 -> 12: /XYZ null null null", | |
| 1662 | + "/Title": "u:Gawehwehweh 1.1.2 -> 12: /XYZ null null null", | |
| 1663 | 1663 | "/Type": "/Outline" |
| 1664 | 1664 | } |
| 1665 | 1665 | }, |
| 1666 | 1666 | "obj:102 0 R": { |
| 1667 | 1667 | "value": { |
| 1668 | - "/Dest": "gabeebee", | |
| 1668 | + "/Dest": "u:gabeebee", | |
| 1669 | 1669 | "/Next": "103 0 R", |
| 1670 | 1670 | "/Parent": "37 0 R", |
| 1671 | - "/Title": "Gabeebeebee (name) 1.2.1 -> 1: /FitR 66 714 180 770", | |
| 1671 | + "/Title": "u:Gabeebeebee (name) 1.2.1 -> 1: /FitR 66 714 180 770", | |
| 1672 | 1672 | "/Type": "/Outline" |
| 1673 | 1673 | } |
| 1674 | 1674 | }, |
| ... | ... | @@ -1687,20 +1687,20 @@ |
| 1687 | 1687 | }, |
| 1688 | 1688 | "/Parent": "37 0 R", |
| 1689 | 1689 | "/Prev": "102 0 R", |
| 1690 | - "/Title": "Merschqaberschq (A) 1.2.2 -> 0: /XYZ null null null", | |
| 1690 | + "/Title": "u:Merschqaberschq (A) 1.2.2 -> 0: /XYZ null null null", | |
| 1691 | 1691 | "/Type": "/Outline" |
| 1692 | 1692 | } |
| 1693 | 1693 | }, |
| 1694 | 1694 | "obj:104 0 R": { |
| 1695 | 1695 | "value": { |
| 1696 | 1696 | "/A": { |
| 1697 | - "/D": "glarp", | |
| 1697 | + "/D": "u:glarp", | |
| 1698 | 1698 | "/S": "/GoTo", |
| 1699 | 1699 | "/Type": "/Action" |
| 1700 | 1700 | }, |
| 1701 | 1701 | "/Next": "105 0 R", |
| 1702 | 1702 | "/Parent": "100 0 R", |
| 1703 | - "/Title": "Glarpenspliel (A, name) 1.1.1.1 -> 18: /XYZ null null null", | |
| 1703 | + "/Title": "u:Glarpenspliel (A, name) 1.1.1.1 -> 18: /XYZ null null null", | |
| 1704 | 1704 | "/Type": "/Outline" |
| 1705 | 1705 | } |
| 1706 | 1706 | }, |
| ... | ... | @@ -1715,7 +1715,7 @@ |
| 1715 | 1715 | ], |
| 1716 | 1716 | "/Parent": "100 0 R", |
| 1717 | 1717 | "/Prev": "104 0 R", |
| 1718 | - "/Title": "Hagoogamagoogle 1.1.1.2 -> 19: /XYZ null null null", | |
| 1718 | + "/Title": "u:Hagoogamagoogle 1.1.1.2 -> 19: /XYZ null null null", | |
| 1719 | 1719 | "/Type": "/Outline" |
| 1720 | 1720 | } |
| 1721 | 1721 | }, |
| ... | ... | @@ -1723,14 +1723,14 @@ |
| 1723 | 1723 | "value": { |
| 1724 | 1724 | "/Dest": "108 0 R", |
| 1725 | 1725 | "/Parent": "101 0 R", |
| 1726 | - "/Title": "Jawarnianbvarwash 1.1.2.1 -> 22: /XYZ null null null", | |
| 1726 | + "/Title": "u:Jawarnianbvarwash 1.1.2.1 -> 22: /XYZ null null null", | |
| 1727 | 1727 | "/Type": "/Outline" |
| 1728 | 1728 | } |
| 1729 | 1729 | }, |
| 1730 | 1730 | "obj:107 0 R": { |
| 1731 | 1731 | "value": { |
| 1732 | 1732 | "/Names": [ |
| 1733 | - "gabeebee", | |
| 1733 | + "u:gabeebee", | |
| 1734 | 1734 | [ |
| 1735 | 1735 | "7 0 R", |
| 1736 | 1736 | "/FitR", |
| ... | ... | @@ -1739,7 +1739,7 @@ |
| 1739 | 1739 | 180, |
| 1740 | 1740 | 770 |
| 1741 | 1741 | ], |
| 1742 | - "glarp", | |
| 1742 | + "u:glarp", | |
| 1743 | 1743 | [ |
| 1744 | 1744 | "24 0 R", |
| 1745 | 1745 | "/XYZ", |
| ... | ... | @@ -1762,8 +1762,8 @@ |
| 1762 | 1762 | "trailer": { |
| 1763 | 1763 | "value": { |
| 1764 | 1764 | "/ID": [ |
| 1765 | - "Õ+\f\u0017Â\u0016Pib®gC¯ì&\u000f", | |
| 1766 | - "Õ+\f\u0017Â\u0016Pib®gC¯ì&\u000f" | |
| 1765 | + "b:d52b0c17c216506962ae6743afec260f", | |
| 1766 | + "b:d52b0c17c216506962ae6743afec260f" | |
| 1767 | 1767 | ], |
| 1768 | 1768 | "/Root": "1 0 R", |
| 1769 | 1769 | "/Size": 109 | ... | ... |
qpdf/qtest/qpdf/json-outlines-with-old-root-dests-v2.out
| ... | ... | @@ -10,7 +10,7 @@ |
| 10 | 10 | ], |
| 11 | 11 | "images": [], |
| 12 | 12 | "label": { |
| 13 | - "/P": "0", | |
| 13 | + "/P": "u:0", | |
| 14 | 14 | "/St": 1 |
| 15 | 15 | }, |
| 16 | 16 | "object": "6 0 R", |
| ... | ... | @@ -524,7 +524,7 @@ |
| 524 | 524 | { |
| 525 | 525 | "index": 0, |
| 526 | 526 | "label": { |
| 527 | - "/P": "0", | |
| 527 | + "/P": "u:0", | |
| 528 | 528 | "/St": 1 |
| 529 | 529 | } |
| 530 | 530 | }, |
| ... | ... | @@ -546,8 +546,8 @@ |
| 546 | 546 | "capabilities": { |
| 547 | 547 | "accessibility": true, |
| 548 | 548 | "extract": true, |
| 549 | - "moddifyannotations": true, | |
| 550 | 549 | "modify": true, |
| 550 | + "modifyannotations": true, | |
| 551 | 551 | "modifyassembly": true, |
| 552 | 552 | "modifyforms": true, |
| 553 | 553 | "modifyother": true, |
| ... | ... | @@ -736,7 +736,7 @@ |
| 736 | 736 | "/Nums": [ |
| 737 | 737 | 0, |
| 738 | 738 | { |
| 739 | - "/P": "0" | |
| 739 | + "/P": "u:0" | |
| 740 | 740 | }, |
| 741 | 741 | 1, |
| 742 | 742 | { |
| ... | ... | @@ -809,7 +809,7 @@ |
| 809 | 809 | "/Last": "37 0 R", |
| 810 | 810 | "/Next": "5 0 R", |
| 811 | 811 | "/Parent": "2 0 R", |
| 812 | - "/Title": "•Potato 1 -> 5: /XYZ null null null", | |
| 812 | + "/Title": "u:•Potato 1 -> 5: /XYZ null null null", | |
| 813 | 813 | "/Type": "/Outline" |
| 814 | 814 | } |
| 815 | 815 | }, |
| ... | ... | @@ -824,7 +824,7 @@ |
| 824 | 824 | ], |
| 825 | 825 | "/Parent": "2 0 R", |
| 826 | 826 | "/Prev": "4 0 R", |
| 827 | - "/Title": "•Salad 2 -> 15: /XYZ 66 756 3", | |
| 827 | + "/Title": "u:•Salad 2 -> 15: /XYZ 66 756 3", | |
| 828 | 828 | "/Type": "/Outline" |
| 829 | 829 | } |
| 830 | 830 | }, |
| ... | ... | @@ -1409,7 +1409,7 @@ |
| 1409 | 1409 | "/Last": "101 0 R", |
| 1410 | 1410 | "/Next": "37 0 R", |
| 1411 | 1411 | "/Parent": "4 0 R", |
| 1412 | - "/Title": "•Mern 1.1 -> 11: /Fit", | |
| 1412 | + "/Title": "u:•Mern 1.1 -> 11: /Fit", | |
| 1413 | 1413 | "/Type": "/Outline" |
| 1414 | 1414 | } |
| 1415 | 1415 | }, |
| ... | ... | @@ -1425,7 +1425,7 @@ |
| 1425 | 1425 | "/Last": "103 0 R", |
| 1426 | 1426 | "/Parent": "4 0 R", |
| 1427 | 1427 | "/Prev": "36 0 R", |
| 1428 | - "/Title": "•Squash ÷πʬ÷ 1.2 -> 13: /FitH 792", | |
| 1428 | + "/Title": "u:•Squash ÷πʬ÷ 1.2 -> 13: /FitH 792", | |
| 1429 | 1429 | "/Type": "/Outline" |
| 1430 | 1430 | } |
| 1431 | 1431 | }, |
| ... | ... | @@ -1756,7 +1756,7 @@ |
| 1756 | 1756 | "/Last": "105 0 R", |
| 1757 | 1757 | "/Next": "101 0 R", |
| 1758 | 1758 | "/Parent": "36 0 R", |
| 1759 | - "/Title": "•Biherbadem 1.1.1 -> 12: /FitV 100", | |
| 1759 | + "/Title": "u:•Biherbadem 1.1.1 -> 12: /FitV 100", | |
| 1760 | 1760 | "/Type": "/Outline" |
| 1761 | 1761 | } |
| 1762 | 1762 | }, |
| ... | ... | @@ -1774,7 +1774,7 @@ |
| 1774 | 1774 | "/Last": "106 0 R", |
| 1775 | 1775 | "/Parent": "36 0 R", |
| 1776 | 1776 | "/Prev": "100 0 R", |
| 1777 | - "/Title": "•Gawehwehweh 1.1.2 -> 12: /XYZ null null null", | |
| 1777 | + "/Title": "u:•Gawehwehweh 1.1.2 -> 12: /XYZ null null null", | |
| 1778 | 1778 | "/Type": "/Outline" |
| 1779 | 1779 | } |
| 1780 | 1780 | }, |
| ... | ... | @@ -1783,7 +1783,7 @@ |
| 1783 | 1783 | "/Dest": "/gabeebee", |
| 1784 | 1784 | "/Next": "103 0 R", |
| 1785 | 1785 | "/Parent": "37 0 R", |
| 1786 | - "/Title": "•Gabeebeebee (name) 1.2.1 -> 1: /FitR 66 714 180 770", | |
| 1786 | + "/Title": "u:•Gabeebeebee (name) 1.2.1 -> 1: /FitR 66 714 180 770", | |
| 1787 | 1787 | "/Type": "/Outline" |
| 1788 | 1788 | } |
| 1789 | 1789 | }, |
| ... | ... | @@ -1802,7 +1802,7 @@ |
| 1802 | 1802 | }, |
| 1803 | 1803 | "/Parent": "37 0 R", |
| 1804 | 1804 | "/Prev": "102 0 R", |
| 1805 | - "/Title": "•Merschqaberschq (A) 1.2.2 -> 0: /XYZ null null null", | |
| 1805 | + "/Title": "u:•Merschqaberschq (A) 1.2.2 -> 0: /XYZ null null null", | |
| 1806 | 1806 | "/Type": "/Outline" |
| 1807 | 1807 | } |
| 1808 | 1808 | }, |
| ... | ... | @@ -1815,7 +1815,7 @@ |
| 1815 | 1815 | }, |
| 1816 | 1816 | "/Next": "105 0 R", |
| 1817 | 1817 | "/Parent": "100 0 R", |
| 1818 | - "/Title": "•Glarpenspliel (A, name) 1.1.1.1 -> 18: /XYZ null null null", | |
| 1818 | + "/Title": "u:•Glarpenspliel (A, name) 1.1.1.1 -> 18: /XYZ null null null", | |
| 1819 | 1819 | "/Type": "/Outline" |
| 1820 | 1820 | } |
| 1821 | 1821 | }, |
| ... | ... | @@ -1830,7 +1830,7 @@ |
| 1830 | 1830 | ], |
| 1831 | 1831 | "/Parent": "100 0 R", |
| 1832 | 1832 | "/Prev": "104 0 R", |
| 1833 | - "/Title": "•Hagoogamagoogle 1.1.1.2 -> 19: /XYZ null null null", | |
| 1833 | + "/Title": "u:•Hagoogamagoogle 1.1.1.2 -> 19: /XYZ null null null", | |
| 1834 | 1834 | "/Type": "/Outline" |
| 1835 | 1835 | } |
| 1836 | 1836 | }, |
| ... | ... | @@ -1844,7 +1844,7 @@ |
| 1844 | 1844 | null |
| 1845 | 1845 | ], |
| 1846 | 1846 | "/Parent": "101 0 R", |
| 1847 | - "/Title": "•Jawarnianbvarwash 1.1.2.1 -> 22: /XYZ null null null", | |
| 1847 | + "/Title": "u:•Jawarnianbvarwash 1.1.2.1 -> 22: /XYZ null null null", | |
| 1848 | 1848 | "/Type": "/Outline" |
| 1849 | 1849 | } |
| 1850 | 1850 | }, |
| ... | ... | @@ -1870,8 +1870,8 @@ |
| 1870 | 1870 | "trailer": { |
| 1871 | 1871 | "value": { |
| 1872 | 1872 | "/ID": [ |
| 1873 | - "Õ+\f\u0017Â\u0016Pib®gC¯ì&\u000f", | |
| 1874 | - "Õ+\f\u0017Â\u0016Pib®gC¯ì&\u000f" | |
| 1873 | + "b:d52b0c17c216506962ae6743afec260f", | |
| 1874 | + "b:d52b0c17c216506962ae6743afec260f" | |
| 1875 | 1875 | ], |
| 1876 | 1876 | "/Root": "1 0 R", |
| 1877 | 1877 | "/Size": 108 | ... | ... |
qpdf/qtest/qpdf/json-page-labels-and-outlines-outlines-pages-v2.out
| ... | ... | @@ -10,7 +10,7 @@ |
| 10 | 10 | ], |
| 11 | 11 | "images": [], |
| 12 | 12 | "label": { |
| 13 | - "/P": "", | |
| 13 | + "/P": "u:", | |
| 14 | 14 | "/St": 1 |
| 15 | 15 | }, |
| 16 | 16 | "object": "3 0 R", |
| ... | ... | @@ -35,7 +35,7 @@ |
| 35 | 35 | ], |
| 36 | 36 | "images": [], |
| 37 | 37 | "label": { |
| 38 | - "/P": "", | |
| 38 | + "/P": "u:", | |
| 39 | 39 | "/St": 2 |
| 40 | 40 | }, |
| 41 | 41 | "object": "4 0 R", |
| ... | ... | @@ -138,7 +138,7 @@ |
| 138 | 138 | ], |
| 139 | 139 | "images": [], |
| 140 | 140 | "label": { |
| 141 | - "/P": "", | |
| 141 | + "/P": "u:", | |
| 142 | 142 | "/St": 1 |
| 143 | 143 | }, |
| 144 | 144 | "object": "10 0 R", |
| ... | ... | @@ -151,7 +151,7 @@ |
| 151 | 151 | ], |
| 152 | 152 | "images": [], |
| 153 | 153 | "label": { |
| 154 | - "/P": "", | |
| 154 | + "/P": "u:", | |
| 155 | 155 | "/St": 2 |
| 156 | 156 | }, |
| 157 | 157 | "object": "11 0 R", |
| ... | ... | @@ -190,7 +190,7 @@ |
| 190 | 190 | ], |
| 191 | 191 | "images": [], |
| 192 | 192 | "label": { |
| 193 | - "/P": "", | |
| 193 | + "/P": "u:", | |
| 194 | 194 | "/St": 1 |
| 195 | 195 | }, |
| 196 | 196 | "object": "14 0 R", |
| ... | ... | @@ -358,7 +358,7 @@ |
| 358 | 358 | ], |
| 359 | 359 | "images": [], |
| 360 | 360 | "label": { |
| 361 | - "/P": "", | |
| 361 | + "/P": "u:", | |
| 362 | 362 | "/St": 1 |
| 363 | 363 | }, |
| 364 | 364 | "object": "22 0 R", | ... | ... |
qpdf/qtest/qpdf/json-page-labels-and-outlines-pagelabels-v2.out
| ... | ... | @@ -7,7 +7,7 @@ |
| 7 | 7 | { |
| 8 | 8 | "index": 0, |
| 9 | 9 | "label": { |
| 10 | - "/P": "", | |
| 10 | + "/P": "u:", | |
| 11 | 11 | "/St": 1 |
| 12 | 12 | } |
| 13 | 13 | }, |
| ... | ... | @@ -21,7 +21,7 @@ |
| 21 | 21 | { |
| 22 | 22 | "index": 7, |
| 23 | 23 | "label": { |
| 24 | - "/P": "", | |
| 24 | + "/P": "u:", | |
| 25 | 25 | "/St": 1 |
| 26 | 26 | } |
| 27 | 27 | }, |
| ... | ... | @@ -35,7 +35,7 @@ |
| 35 | 35 | { |
| 36 | 36 | "index": 11, |
| 37 | 37 | "label": { |
| 38 | - "/P": "", | |
| 38 | + "/P": "u:", | |
| 39 | 39 | "/St": 1 |
| 40 | 40 | } |
| 41 | 41 | }, |
| ... | ... | @@ -56,7 +56,7 @@ |
| 56 | 56 | { |
| 57 | 57 | "index": 19, |
| 58 | 58 | "label": { |
| 59 | - "/P": "", | |
| 59 | + "/P": "u:", | |
| 60 | 60 | "/St": 1 |
| 61 | 61 | } |
| 62 | 62 | }, | ... | ... |
qpdf/qtest/qpdf/json-page-labels-and-outlines-pages-v2.out
| ... | ... | @@ -10,7 +10,7 @@ |
| 10 | 10 | ], |
| 11 | 11 | "images": [], |
| 12 | 12 | "label": { |
| 13 | - "/P": "", | |
| 13 | + "/P": "u:", | |
| 14 | 14 | "/St": 1 |
| 15 | 15 | }, |
| 16 | 16 | "object": "3 0 R", |
| ... | ... | @@ -35,7 +35,7 @@ |
| 35 | 35 | ], |
| 36 | 36 | "images": [], |
| 37 | 37 | "label": { |
| 38 | - "/P": "", | |
| 38 | + "/P": "u:", | |
| 39 | 39 | "/St": 2 |
| 40 | 40 | }, |
| 41 | 41 | "object": "4 0 R", |
| ... | ... | @@ -138,7 +138,7 @@ |
| 138 | 138 | ], |
| 139 | 139 | "images": [], |
| 140 | 140 | "label": { |
| 141 | - "/P": "", | |
| 141 | + "/P": "u:", | |
| 142 | 142 | "/St": 1 |
| 143 | 143 | }, |
| 144 | 144 | "object": "10 0 R", |
| ... | ... | @@ -151,7 +151,7 @@ |
| 151 | 151 | ], |
| 152 | 152 | "images": [], |
| 153 | 153 | "label": { |
| 154 | - "/P": "", | |
| 154 | + "/P": "u:", | |
| 155 | 155 | "/St": 2 |
| 156 | 156 | }, |
| 157 | 157 | "object": "11 0 R", |
| ... | ... | @@ -190,7 +190,7 @@ |
| 190 | 190 | ], |
| 191 | 191 | "images": [], |
| 192 | 192 | "label": { |
| 193 | - "/P": "", | |
| 193 | + "/P": "u:", | |
| 194 | 194 | "/St": 1 |
| 195 | 195 | }, |
| 196 | 196 | "object": "14 0 R", |
| ... | ... | @@ -358,7 +358,7 @@ |
| 358 | 358 | ], |
| 359 | 359 | "images": [], |
| 360 | 360 | "label": { |
| 361 | - "/P": "", | |
| 361 | + "/P": "u:", | |
| 362 | 362 | "/St": 1 |
| 363 | 363 | }, |
| 364 | 364 | "object": "22 0 R", | ... | ... |
qpdf/qtest/qpdf/json-page-labels-and-outlines-qpdf-v2.out
| ... | ... | @@ -14,7 +14,7 @@ |
| 14 | 14 | "/Nums": [ |
| 15 | 15 | 0, |
| 16 | 16 | { |
| 17 | - "/P": "" | |
| 17 | + "/P": "u:" | |
| 18 | 18 | }, |
| 19 | 19 | 2, |
| 20 | 20 | { |
| ... | ... | @@ -23,7 +23,7 @@ |
| 23 | 23 | }, |
| 24 | 24 | 7, |
| 25 | 25 | { |
| 26 | - "/P": "" | |
| 26 | + "/P": "u:" | |
| 27 | 27 | }, |
| 28 | 28 | 9, |
| 29 | 29 | { |
| ... | ... | @@ -32,7 +32,7 @@ |
| 32 | 32 | }, |
| 33 | 33 | 11, |
| 34 | 34 | { |
| 35 | - "/P": "" | |
| 35 | + "/P": "u:" | |
| 36 | 36 | }, |
| 37 | 37 | 12, |
| 38 | 38 | { |
| ... | ... | @@ -46,7 +46,7 @@ |
| 46 | 46 | }, |
| 47 | 47 | 19, |
| 48 | 48 | { |
| 49 | - "/P": "" | |
| 49 | + "/P": "u:" | |
| 50 | 50 | }, |
| 51 | 51 | 20, |
| 52 | 52 | { |
| ... | ... | @@ -684,8 +684,10 @@ |
| 684 | 684 | } |
| 685 | 685 | }, |
| 686 | 686 | "obj:33 0 R": { |
| 687 | - "value": { | |
| 688 | - "/Length": "34 0 R" | |
| 687 | + "stream": { | |
| 688 | + "dict": { | |
| 689 | + "/Length": "34 0 R" | |
| 690 | + } | |
| 689 | 691 | } |
| 690 | 692 | }, |
| 691 | 693 | "obj:34 0 R": { |
| ... | ... | @@ -707,232 +709,290 @@ |
| 707 | 709 | ] |
| 708 | 710 | }, |
| 709 | 711 | "obj:37 0 R": { |
| 710 | - "value": { | |
| 711 | - "/Length": "38 0 R" | |
| 712 | + "stream": { | |
| 713 | + "dict": { | |
| 714 | + "/Length": "38 0 R" | |
| 715 | + } | |
| 712 | 716 | } |
| 713 | 717 | }, |
| 714 | 718 | "obj:38 0 R": { |
| 715 | 719 | "value": 46 |
| 716 | 720 | }, |
| 717 | 721 | "obj:39 0 R": { |
| 718 | - "value": { | |
| 719 | - "/Length": "40 0 R" | |
| 722 | + "stream": { | |
| 723 | + "dict": { | |
| 724 | + "/Length": "40 0 R" | |
| 725 | + } | |
| 720 | 726 | } |
| 721 | 727 | }, |
| 722 | 728 | "obj:40 0 R": { |
| 723 | 729 | "value": 46 |
| 724 | 730 | }, |
| 725 | 731 | "obj:41 0 R": { |
| 726 | - "value": { | |
| 727 | - "/Length": "42 0 R" | |
| 732 | + "stream": { | |
| 733 | + "dict": { | |
| 734 | + "/Length": "42 0 R" | |
| 735 | + } | |
| 728 | 736 | } |
| 729 | 737 | }, |
| 730 | 738 | "obj:42 0 R": { |
| 731 | 739 | "value": 46 |
| 732 | 740 | }, |
| 733 | 741 | "obj:43 0 R": { |
| 734 | - "value": { | |
| 735 | - "/Length": "44 0 R" | |
| 742 | + "stream": { | |
| 743 | + "dict": { | |
| 744 | + "/Length": "44 0 R" | |
| 745 | + } | |
| 736 | 746 | } |
| 737 | 747 | }, |
| 738 | 748 | "obj:44 0 R": { |
| 739 | 749 | "value": 46 |
| 740 | 750 | }, |
| 741 | 751 | "obj:45 0 R": { |
| 742 | - "value": { | |
| 743 | - "/Length": "46 0 R" | |
| 752 | + "stream": { | |
| 753 | + "dict": { | |
| 754 | + "/Length": "46 0 R" | |
| 755 | + } | |
| 744 | 756 | } |
| 745 | 757 | }, |
| 746 | 758 | "obj:46 0 R": { |
| 747 | 759 | "value": 46 |
| 748 | 760 | }, |
| 749 | 761 | "obj:47 0 R": { |
| 750 | - "value": { | |
| 751 | - "/Length": "48 0 R" | |
| 762 | + "stream": { | |
| 763 | + "dict": { | |
| 764 | + "/Length": "48 0 R" | |
| 765 | + } | |
| 752 | 766 | } |
| 753 | 767 | }, |
| 754 | 768 | "obj:48 0 R": { |
| 755 | 769 | "value": 46 |
| 756 | 770 | }, |
| 757 | 771 | "obj:49 0 R": { |
| 758 | - "value": { | |
| 759 | - "/Length": "50 0 R" | |
| 772 | + "stream": { | |
| 773 | + "dict": { | |
| 774 | + "/Length": "50 0 R" | |
| 775 | + } | |
| 760 | 776 | } |
| 761 | 777 | }, |
| 762 | 778 | "obj:50 0 R": { |
| 763 | 779 | "value": 46 |
| 764 | 780 | }, |
| 765 | 781 | "obj:51 0 R": { |
| 766 | - "value": { | |
| 767 | - "/Length": "52 0 R" | |
| 782 | + "stream": { | |
| 783 | + "dict": { | |
| 784 | + "/Length": "52 0 R" | |
| 785 | + } | |
| 768 | 786 | } |
| 769 | 787 | }, |
| 770 | 788 | "obj:52 0 R": { |
| 771 | 789 | "value": 46 |
| 772 | 790 | }, |
| 773 | 791 | "obj:53 0 R": { |
| 774 | - "value": { | |
| 775 | - "/Length": "54 0 R" | |
| 792 | + "stream": { | |
| 793 | + "dict": { | |
| 794 | + "/Length": "54 0 R" | |
| 795 | + } | |
| 776 | 796 | } |
| 777 | 797 | }, |
| 778 | 798 | "obj:54 0 R": { |
| 779 | 799 | "value": 46 |
| 780 | 800 | }, |
| 781 | 801 | "obj:55 0 R": { |
| 782 | - "value": { | |
| 783 | - "/Length": "56 0 R" | |
| 802 | + "stream": { | |
| 803 | + "dict": { | |
| 804 | + "/Length": "56 0 R" | |
| 805 | + } | |
| 784 | 806 | } |
| 785 | 807 | }, |
| 786 | 808 | "obj:56 0 R": { |
| 787 | 809 | "value": 47 |
| 788 | 810 | }, |
| 789 | 811 | "obj:57 0 R": { |
| 790 | - "value": { | |
| 791 | - "/Length": "58 0 R" | |
| 812 | + "stream": { | |
| 813 | + "dict": { | |
| 814 | + "/Length": "58 0 R" | |
| 815 | + } | |
| 792 | 816 | } |
| 793 | 817 | }, |
| 794 | 818 | "obj:58 0 R": { |
| 795 | 819 | "value": 47 |
| 796 | 820 | }, |
| 797 | 821 | "obj:59 0 R": { |
| 798 | - "value": { | |
| 799 | - "/Length": "60 0 R" | |
| 822 | + "stream": { | |
| 823 | + "dict": { | |
| 824 | + "/Length": "60 0 R" | |
| 825 | + } | |
| 800 | 826 | } |
| 801 | 827 | }, |
| 802 | 828 | "obj:60 0 R": { |
| 803 | 829 | "value": 47 |
| 804 | 830 | }, |
| 805 | 831 | "obj:61 0 R": { |
| 806 | - "value": { | |
| 807 | - "/Length": "62 0 R" | |
| 832 | + "stream": { | |
| 833 | + "dict": { | |
| 834 | + "/Length": "62 0 R" | |
| 835 | + } | |
| 808 | 836 | } |
| 809 | 837 | }, |
| 810 | 838 | "obj:62 0 R": { |
| 811 | 839 | "value": 47 |
| 812 | 840 | }, |
| 813 | 841 | "obj:63 0 R": { |
| 814 | - "value": { | |
| 815 | - "/Length": "64 0 R" | |
| 842 | + "stream": { | |
| 843 | + "dict": { | |
| 844 | + "/Length": "64 0 R" | |
| 845 | + } | |
| 816 | 846 | } |
| 817 | 847 | }, |
| 818 | 848 | "obj:64 0 R": { |
| 819 | 849 | "value": 47 |
| 820 | 850 | }, |
| 821 | 851 | "obj:65 0 R": { |
| 822 | - "value": { | |
| 823 | - "/Length": "66 0 R" | |
| 852 | + "stream": { | |
| 853 | + "dict": { | |
| 854 | + "/Length": "66 0 R" | |
| 855 | + } | |
| 824 | 856 | } |
| 825 | 857 | }, |
| 826 | 858 | "obj:66 0 R": { |
| 827 | 859 | "value": 47 |
| 828 | 860 | }, |
| 829 | 861 | "obj:67 0 R": { |
| 830 | - "value": { | |
| 831 | - "/Length": "68 0 R" | |
| 862 | + "stream": { | |
| 863 | + "dict": { | |
| 864 | + "/Length": "68 0 R" | |
| 865 | + } | |
| 832 | 866 | } |
| 833 | 867 | }, |
| 834 | 868 | "obj:68 0 R": { |
| 835 | 869 | "value": 47 |
| 836 | 870 | }, |
| 837 | 871 | "obj:69 0 R": { |
| 838 | - "value": { | |
| 839 | - "/Length": "70 0 R" | |
| 872 | + "stream": { | |
| 873 | + "dict": { | |
| 874 | + "/Length": "70 0 R" | |
| 875 | + } | |
| 840 | 876 | } |
| 841 | 877 | }, |
| 842 | 878 | "obj:70 0 R": { |
| 843 | 879 | "value": 47 |
| 844 | 880 | }, |
| 845 | 881 | "obj:71 0 R": { |
| 846 | - "value": { | |
| 847 | - "/Length": "72 0 R" | |
| 882 | + "stream": { | |
| 883 | + "dict": { | |
| 884 | + "/Length": "72 0 R" | |
| 885 | + } | |
| 848 | 886 | } |
| 849 | 887 | }, |
| 850 | 888 | "obj:72 0 R": { |
| 851 | 889 | "value": 47 |
| 852 | 890 | }, |
| 853 | 891 | "obj:73 0 R": { |
| 854 | - "value": { | |
| 855 | - "/Length": "74 0 R" | |
| 892 | + "stream": { | |
| 893 | + "dict": { | |
| 894 | + "/Length": "74 0 R" | |
| 895 | + } | |
| 856 | 896 | } |
| 857 | 897 | }, |
| 858 | 898 | "obj:74 0 R": { |
| 859 | 899 | "value": 47 |
| 860 | 900 | }, |
| 861 | 901 | "obj:75 0 R": { |
| 862 | - "value": { | |
| 863 | - "/Length": "76 0 R" | |
| 902 | + "stream": { | |
| 903 | + "dict": { | |
| 904 | + "/Length": "76 0 R" | |
| 905 | + } | |
| 864 | 906 | } |
| 865 | 907 | }, |
| 866 | 908 | "obj:76 0 R": { |
| 867 | 909 | "value": 47 |
| 868 | 910 | }, |
| 869 | 911 | "obj:77 0 R": { |
| 870 | - "value": { | |
| 871 | - "/Length": "78 0 R" | |
| 912 | + "stream": { | |
| 913 | + "dict": { | |
| 914 | + "/Length": "78 0 R" | |
| 915 | + } | |
| 872 | 916 | } |
| 873 | 917 | }, |
| 874 | 918 | "obj:78 0 R": { |
| 875 | 919 | "value": 47 |
| 876 | 920 | }, |
| 877 | 921 | "obj:79 0 R": { |
| 878 | - "value": { | |
| 879 | - "/Length": "80 0 R" | |
| 922 | + "stream": { | |
| 923 | + "dict": { | |
| 924 | + "/Length": "80 0 R" | |
| 925 | + } | |
| 880 | 926 | } |
| 881 | 927 | }, |
| 882 | 928 | "obj:80 0 R": { |
| 883 | 929 | "value": 47 |
| 884 | 930 | }, |
| 885 | 931 | "obj:81 0 R": { |
| 886 | - "value": { | |
| 887 | - "/Length": "82 0 R" | |
| 932 | + "stream": { | |
| 933 | + "dict": { | |
| 934 | + "/Length": "82 0 R" | |
| 935 | + } | |
| 888 | 936 | } |
| 889 | 937 | }, |
| 890 | 938 | "obj:82 0 R": { |
| 891 | 939 | "value": 47 |
| 892 | 940 | }, |
| 893 | 941 | "obj:83 0 R": { |
| 894 | - "value": { | |
| 895 | - "/Length": "84 0 R" | |
| 942 | + "stream": { | |
| 943 | + "dict": { | |
| 944 | + "/Length": "84 0 R" | |
| 945 | + } | |
| 896 | 946 | } |
| 897 | 947 | }, |
| 898 | 948 | "obj:84 0 R": { |
| 899 | 949 | "value": 47 |
| 900 | 950 | }, |
| 901 | 951 | "obj:85 0 R": { |
| 902 | - "value": { | |
| 903 | - "/Length": "86 0 R" | |
| 952 | + "stream": { | |
| 953 | + "dict": { | |
| 954 | + "/Length": "86 0 R" | |
| 955 | + } | |
| 904 | 956 | } |
| 905 | 957 | }, |
| 906 | 958 | "obj:86 0 R": { |
| 907 | 959 | "value": 47 |
| 908 | 960 | }, |
| 909 | 961 | "obj:87 0 R": { |
| 910 | - "value": { | |
| 911 | - "/Length": "88 0 R" | |
| 962 | + "stream": { | |
| 963 | + "dict": { | |
| 964 | + "/Length": "88 0 R" | |
| 965 | + } | |
| 912 | 966 | } |
| 913 | 967 | }, |
| 914 | 968 | "obj:88 0 R": { |
| 915 | 969 | "value": 47 |
| 916 | 970 | }, |
| 917 | 971 | "obj:89 0 R": { |
| 918 | - "value": { | |
| 919 | - "/Length": "90 0 R" | |
| 972 | + "stream": { | |
| 973 | + "dict": { | |
| 974 | + "/Length": "90 0 R" | |
| 975 | + } | |
| 920 | 976 | } |
| 921 | 977 | }, |
| 922 | 978 | "obj:90 0 R": { |
| 923 | 979 | "value": 47 |
| 924 | 980 | }, |
| 925 | 981 | "obj:91 0 R": { |
| 926 | - "value": { | |
| 927 | - "/Length": "92 0 R" | |
| 982 | + "stream": { | |
| 983 | + "dict": { | |
| 984 | + "/Length": "92 0 R" | |
| 985 | + } | |
| 928 | 986 | } |
| 929 | 987 | }, |
| 930 | 988 | "obj:92 0 R": { |
| 931 | 989 | "value": 47 |
| 932 | 990 | }, |
| 933 | 991 | "obj:93 0 R": { |
| 934 | - "value": { | |
| 935 | - "/Length": "94 0 R" | |
| 992 | + "stream": { | |
| 993 | + "dict": { | |
| 994 | + "/Length": "94 0 R" | |
| 995 | + } | |
| 936 | 996 | } |
| 937 | 997 | }, |
| 938 | 998 | "obj:94 0 R": { |
| ... | ... | @@ -960,7 +1020,7 @@ |
| 960 | 1020 | "/Last": "99 0 R", |
| 961 | 1021 | "/Next": "97 0 R", |
| 962 | 1022 | "/Parent": "95 0 R", |
| 963 | - "/Title": "Isís 1 -> 5: /XYZ null null null", | |
| 1023 | + "/Title": "u:Isís 1 -> 5: /XYZ null null null", | |
| 964 | 1024 | "/Type": "/Outline" |
| 965 | 1025 | } |
| 966 | 1026 | }, |
| ... | ... | @@ -975,7 +1035,7 @@ |
| 975 | 1035 | ], |
| 976 | 1036 | "/Parent": "95 0 R", |
| 977 | 1037 | "/Prev": "96 0 R", |
| 978 | - "/Title": "Trepak 2 -> 15: /XYZ 66 756 3", | |
| 1038 | + "/Title": "u:Trepak 2 -> 15: /XYZ 66 756 3", | |
| 979 | 1039 | "/Type": "/Outline" |
| 980 | 1040 | } |
| 981 | 1041 | }, |
| ... | ... | @@ -990,7 +1050,7 @@ |
| 990 | 1050 | "/Last": "101 0 R", |
| 991 | 1051 | "/Next": "99 0 R", |
| 992 | 1052 | "/Parent": "96 0 R", |
| 993 | - "/Title": "Amanda 1.1 -> 11: /Fit", | |
| 1053 | + "/Title": "u:Amanda 1.1 -> 11: /Fit", | |
| 994 | 1054 | "/Type": "/Outline" |
| 995 | 1055 | } |
| 996 | 1056 | }, |
| ... | ... | @@ -1006,7 +1066,7 @@ |
| 1006 | 1066 | "/Last": "106 0 R", |
| 1007 | 1067 | "/Parent": "96 0 R", |
| 1008 | 1068 | "/Prev": "98 0 R", |
| 1009 | - "/Title": "Sandy ÷Σανδι÷ 1.2 -> 13: /FitH 792", | |
| 1069 | + "/Title": "u:Sandy ÷Σανδι÷ 1.2 -> 13: /FitH 792", | |
| 1010 | 1070 | "/Type": "/Outline" |
| 1011 | 1071 | } |
| 1012 | 1072 | }, |
| ... | ... | @@ -1022,7 +1082,7 @@ |
| 1022 | 1082 | "/Last": "103 0 R", |
| 1023 | 1083 | "/Next": "101 0 R", |
| 1024 | 1084 | "/Parent": "98 0 R", |
| 1025 | - "/Title": "Isosicle 1.1.1 -> 12: /FitV 100", | |
| 1085 | + "/Title": "u:Isosicle 1.1.1 -> 12: /FitV 100", | |
| 1026 | 1086 | "/Type": "/Outline" |
| 1027 | 1087 | } |
| 1028 | 1088 | }, |
| ... | ... | @@ -1040,7 +1100,7 @@ |
| 1040 | 1100 | "/Last": "104 0 R", |
| 1041 | 1101 | "/Parent": "98 0 R", |
| 1042 | 1102 | "/Prev": "100 0 R", |
| 1043 | - "/Title": "Isosicle 1.1.2 -> 12: /XYZ null null null", | |
| 1103 | + "/Title": "u:Isosicle 1.1.2 -> 12: /XYZ null null null", | |
| 1044 | 1104 | "/Type": "/Outline" |
| 1045 | 1105 | } |
| 1046 | 1106 | }, |
| ... | ... | @@ -1055,7 +1115,7 @@ |
| 1055 | 1115 | ], |
| 1056 | 1116 | "/Next": "103 0 R", |
| 1057 | 1117 | "/Parent": "100 0 R", |
| 1058 | - "/Title": "Isosicle 1.1.1.1 -> 18: /XYZ null null null", | |
| 1118 | + "/Title": "u:Isosicle 1.1.1.1 -> 18: /XYZ null null null", | |
| 1059 | 1119 | "/Type": "/Outline" |
| 1060 | 1120 | } |
| 1061 | 1121 | }, |
| ... | ... | @@ -1070,7 +1130,7 @@ |
| 1070 | 1130 | ], |
| 1071 | 1131 | "/Parent": "100 0 R", |
| 1072 | 1132 | "/Prev": "102 0 R", |
| 1073 | - "/Title": "Isosicle 1.1.1.2 -> 19: /XYZ null null null", | |
| 1133 | + "/Title": "u:Isosicle 1.1.1.2 -> 19: /XYZ null null null", | |
| 1074 | 1134 | "/Type": "/Outline" |
| 1075 | 1135 | } |
| 1076 | 1136 | }, |
| ... | ... | @@ -1084,7 +1144,7 @@ |
| 1084 | 1144 | null |
| 1085 | 1145 | ], |
| 1086 | 1146 | "/Parent": "101 0 R", |
| 1087 | - "/Title": "Isosicle 1.1.2.1 -> 22: /XYZ null null null", | |
| 1147 | + "/Title": "u:Isosicle 1.1.2.1 -> 22: /XYZ null null null", | |
| 1088 | 1148 | "/Type": "/Outline" |
| 1089 | 1149 | } |
| 1090 | 1150 | }, |
| ... | ... | @@ -1100,7 +1160,7 @@ |
| 1100 | 1160 | ], |
| 1101 | 1161 | "/Next": "106 0 R", |
| 1102 | 1162 | "/Parent": "99 0 R", |
| 1103 | - "/Title": "Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770", | |
| 1163 | + "/Title": "u:Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770", | |
| 1104 | 1164 | "/Type": "/Outline" |
| 1105 | 1165 | } |
| 1106 | 1166 | }, |
| ... | ... | @@ -1115,7 +1175,7 @@ |
| 1115 | 1175 | ], |
| 1116 | 1176 | "/Parent": "99 0 R", |
| 1117 | 1177 | "/Prev": "105 0 R", |
| 1118 | - "/Title": "Trepsicle 1.2.2 -> 0: /XYZ null null null", | |
| 1178 | + "/Title": "u:Trepsicle 1.2.2 -> 0: /XYZ null null null", | |
| 1119 | 1179 | "/Type": "/Outline" |
| 1120 | 1180 | } |
| 1121 | 1181 | }, | ... | ... |
qpdf/qtest/qpdf/json-page-labels-and-outlines-v2.out
| ... | ... | @@ -10,7 +10,7 @@ |
| 10 | 10 | ], |
| 11 | 11 | "images": [], |
| 12 | 12 | "label": { |
| 13 | - "/P": "", | |
| 13 | + "/P": "u:", | |
| 14 | 14 | "/St": 1 |
| 15 | 15 | }, |
| 16 | 16 | "object": "3 0 R", |
| ... | ... | @@ -35,7 +35,7 @@ |
| 35 | 35 | ], |
| 36 | 36 | "images": [], |
| 37 | 37 | "label": { |
| 38 | - "/P": "", | |
| 38 | + "/P": "u:", | |
| 39 | 39 | "/St": 2 |
| 40 | 40 | }, |
| 41 | 41 | "object": "4 0 R", |
| ... | ... | @@ -138,7 +138,7 @@ |
| 138 | 138 | ], |
| 139 | 139 | "images": [], |
| 140 | 140 | "label": { |
| 141 | - "/P": "", | |
| 141 | + "/P": "u:", | |
| 142 | 142 | "/St": 1 |
| 143 | 143 | }, |
| 144 | 144 | "object": "10 0 R", |
| ... | ... | @@ -151,7 +151,7 @@ |
| 151 | 151 | ], |
| 152 | 152 | "images": [], |
| 153 | 153 | "label": { |
| 154 | - "/P": "", | |
| 154 | + "/P": "u:", | |
| 155 | 155 | "/St": 2 |
| 156 | 156 | }, |
| 157 | 157 | "object": "11 0 R", |
| ... | ... | @@ -190,7 +190,7 @@ |
| 190 | 190 | ], |
| 191 | 191 | "images": [], |
| 192 | 192 | "label": { |
| 193 | - "/P": "", | |
| 193 | + "/P": "u:", | |
| 194 | 194 | "/St": 1 |
| 195 | 195 | }, |
| 196 | 196 | "object": "14 0 R", |
| ... | ... | @@ -358,7 +358,7 @@ |
| 358 | 358 | ], |
| 359 | 359 | "images": [], |
| 360 | 360 | "label": { |
| 361 | - "/P": "", | |
| 361 | + "/P": "u:", | |
| 362 | 362 | "/St": 1 |
| 363 | 363 | }, |
| 364 | 364 | "object": "22 0 R", |
| ... | ... | @@ -524,7 +524,7 @@ |
| 524 | 524 | { |
| 525 | 525 | "index": 0, |
| 526 | 526 | "label": { |
| 527 | - "/P": "", | |
| 527 | + "/P": "u:", | |
| 528 | 528 | "/St": 1 |
| 529 | 529 | } |
| 530 | 530 | }, |
| ... | ... | @@ -538,7 +538,7 @@ |
| 538 | 538 | { |
| 539 | 539 | "index": 7, |
| 540 | 540 | "label": { |
| 541 | - "/P": "", | |
| 541 | + "/P": "u:", | |
| 542 | 542 | "/St": 1 |
| 543 | 543 | } |
| 544 | 544 | }, |
| ... | ... | @@ -552,7 +552,7 @@ |
| 552 | 552 | { |
| 553 | 553 | "index": 11, |
| 554 | 554 | "label": { |
| 555 | - "/P": "", | |
| 555 | + "/P": "u:", | |
| 556 | 556 | "/St": 1 |
| 557 | 557 | } |
| 558 | 558 | }, |
| ... | ... | @@ -573,7 +573,7 @@ |
| 573 | 573 | { |
| 574 | 574 | "index": 19, |
| 575 | 575 | "label": { |
| 576 | - "/P": "", | |
| 576 | + "/P": "u:", | |
| 577 | 577 | "/St": 1 |
| 578 | 578 | } |
| 579 | 579 | }, |
| ... | ... | @@ -616,8 +616,8 @@ |
| 616 | 616 | "capabilities": { |
| 617 | 617 | "accessibility": true, |
| 618 | 618 | "extract": true, |
| 619 | - "moddifyannotations": true, | |
| 620 | 619 | "modify": true, |
| 620 | + "modifyannotations": true, | |
| 621 | 621 | "modifyassembly": true, |
| 622 | 622 | "modifyforms": true, |
| 623 | 623 | "modifyother": true, |
| ... | ... | @@ -805,7 +805,7 @@ |
| 805 | 805 | "/Nums": [ |
| 806 | 806 | 0, |
| 807 | 807 | { |
| 808 | - "/P": "" | |
| 808 | + "/P": "u:" | |
| 809 | 809 | }, |
| 810 | 810 | 2, |
| 811 | 811 | { |
| ... | ... | @@ -814,7 +814,7 @@ |
| 814 | 814 | }, |
| 815 | 815 | 7, |
| 816 | 816 | { |
| 817 | - "/P": "" | |
| 817 | + "/P": "u:" | |
| 818 | 818 | }, |
| 819 | 819 | 9, |
| 820 | 820 | { |
| ... | ... | @@ -823,7 +823,7 @@ |
| 823 | 823 | }, |
| 824 | 824 | 11, |
| 825 | 825 | { |
| 826 | - "/P": "" | |
| 826 | + "/P": "u:" | |
| 827 | 827 | }, |
| 828 | 828 | 12, |
| 829 | 829 | { |
| ... | ... | @@ -837,7 +837,7 @@ |
| 837 | 837 | }, |
| 838 | 838 | 19, |
| 839 | 839 | { |
| 840 | - "/P": "" | |
| 840 | + "/P": "u:" | |
| 841 | 841 | }, |
| 842 | 842 | 20, |
| 843 | 843 | { |
| ... | ... | @@ -1811,7 +1811,7 @@ |
| 1811 | 1811 | "/Last": "99 0 R", |
| 1812 | 1812 | "/Next": "97 0 R", |
| 1813 | 1813 | "/Parent": "95 0 R", |
| 1814 | - "/Title": "Isís 1 -> 5: /XYZ null null null", | |
| 1814 | + "/Title": "u:Isís 1 -> 5: /XYZ null null null", | |
| 1815 | 1815 | "/Type": "/Outline" |
| 1816 | 1816 | } |
| 1817 | 1817 | }, |
| ... | ... | @@ -1826,7 +1826,7 @@ |
| 1826 | 1826 | ], |
| 1827 | 1827 | "/Parent": "95 0 R", |
| 1828 | 1828 | "/Prev": "96 0 R", |
| 1829 | - "/Title": "Trepak 2 -> 15: /XYZ 66 756 3", | |
| 1829 | + "/Title": "u:Trepak 2 -> 15: /XYZ 66 756 3", | |
| 1830 | 1830 | "/Type": "/Outline" |
| 1831 | 1831 | } |
| 1832 | 1832 | }, |
| ... | ... | @@ -1841,7 +1841,7 @@ |
| 1841 | 1841 | "/Last": "101 0 R", |
| 1842 | 1842 | "/Next": "99 0 R", |
| 1843 | 1843 | "/Parent": "96 0 R", |
| 1844 | - "/Title": "Amanda 1.1 -> 11: /Fit", | |
| 1844 | + "/Title": "u:Amanda 1.1 -> 11: /Fit", | |
| 1845 | 1845 | "/Type": "/Outline" |
| 1846 | 1846 | } |
| 1847 | 1847 | }, |
| ... | ... | @@ -1857,7 +1857,7 @@ |
| 1857 | 1857 | "/Last": "106 0 R", |
| 1858 | 1858 | "/Parent": "96 0 R", |
| 1859 | 1859 | "/Prev": "98 0 R", |
| 1860 | - "/Title": "Sandy ÷Σανδι÷ 1.2 -> 13: /FitH 792", | |
| 1860 | + "/Title": "u:Sandy ÷Σανδι÷ 1.2 -> 13: /FitH 792", | |
| 1861 | 1861 | "/Type": "/Outline" |
| 1862 | 1862 | } |
| 1863 | 1863 | }, |
| ... | ... | @@ -1873,7 +1873,7 @@ |
| 1873 | 1873 | "/Last": "103 0 R", |
| 1874 | 1874 | "/Next": "101 0 R", |
| 1875 | 1875 | "/Parent": "98 0 R", |
| 1876 | - "/Title": "Isosicle 1.1.1 -> 12: /FitV 100", | |
| 1876 | + "/Title": "u:Isosicle 1.1.1 -> 12: /FitV 100", | |
| 1877 | 1877 | "/Type": "/Outline" |
| 1878 | 1878 | } |
| 1879 | 1879 | }, |
| ... | ... | @@ -1891,7 +1891,7 @@ |
| 1891 | 1891 | "/Last": "104 0 R", |
| 1892 | 1892 | "/Parent": "98 0 R", |
| 1893 | 1893 | "/Prev": "100 0 R", |
| 1894 | - "/Title": "Isosicle 1.1.2 -> 12: /XYZ null null null", | |
| 1894 | + "/Title": "u:Isosicle 1.1.2 -> 12: /XYZ null null null", | |
| 1895 | 1895 | "/Type": "/Outline" |
| 1896 | 1896 | } |
| 1897 | 1897 | }, |
| ... | ... | @@ -1906,7 +1906,7 @@ |
| 1906 | 1906 | ], |
| 1907 | 1907 | "/Next": "103 0 R", |
| 1908 | 1908 | "/Parent": "100 0 R", |
| 1909 | - "/Title": "Isosicle 1.1.1.1 -> 18: /XYZ null null null", | |
| 1909 | + "/Title": "u:Isosicle 1.1.1.1 -> 18: /XYZ null null null", | |
| 1910 | 1910 | "/Type": "/Outline" |
| 1911 | 1911 | } |
| 1912 | 1912 | }, |
| ... | ... | @@ -1921,7 +1921,7 @@ |
| 1921 | 1921 | ], |
| 1922 | 1922 | "/Parent": "100 0 R", |
| 1923 | 1923 | "/Prev": "102 0 R", |
| 1924 | - "/Title": "Isosicle 1.1.1.2 -> 19: /XYZ null null null", | |
| 1924 | + "/Title": "u:Isosicle 1.1.1.2 -> 19: /XYZ null null null", | |
| 1925 | 1925 | "/Type": "/Outline" |
| 1926 | 1926 | } |
| 1927 | 1927 | }, |
| ... | ... | @@ -1935,7 +1935,7 @@ |
| 1935 | 1935 | null |
| 1936 | 1936 | ], |
| 1937 | 1937 | "/Parent": "101 0 R", |
| 1938 | - "/Title": "Isosicle 1.1.2.1 -> 22: /XYZ null null null", | |
| 1938 | + "/Title": "u:Isosicle 1.1.2.1 -> 22: /XYZ null null null", | |
| 1939 | 1939 | "/Type": "/Outline" |
| 1940 | 1940 | } |
| 1941 | 1941 | }, |
| ... | ... | @@ -1951,7 +1951,7 @@ |
| 1951 | 1951 | ], |
| 1952 | 1952 | "/Next": "106 0 R", |
| 1953 | 1953 | "/Parent": "99 0 R", |
| 1954 | - "/Title": "Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770", | |
| 1954 | + "/Title": "u:Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770", | |
| 1955 | 1955 | "/Type": "/Outline" |
| 1956 | 1956 | } |
| 1957 | 1957 | }, |
| ... | ... | @@ -1966,7 +1966,7 @@ |
| 1966 | 1966 | ], |
| 1967 | 1967 | "/Parent": "99 0 R", |
| 1968 | 1968 | "/Prev": "105 0 R", |
| 1969 | - "/Title": "Trepsicle 1.2.2 -> 0: /XYZ null null null", | |
| 1969 | + "/Title": "u:Trepsicle 1.2.2 -> 0: /XYZ null null null", | |
| 1970 | 1970 | "/Type": "/Outline" |
| 1971 | 1971 | } |
| 1972 | 1972 | }, | ... | ... |
qpdf/qtest/qpdf/json-page-labels-num-tree-v2.out
| ... | ... | @@ -36,7 +36,7 @@ |
| 36 | 36 | ], |
| 37 | 37 | "images": [], |
| 38 | 38 | "label": { |
| 39 | - "/P": "blank", | |
| 39 | + "/P": "u:blank", | |
| 40 | 40 | "/St": 1 |
| 41 | 41 | }, |
| 42 | 42 | "object": "8 0 R", |
| ... | ... | @@ -49,7 +49,7 @@ |
| 49 | 49 | ], |
| 50 | 50 | "images": [], |
| 51 | 51 | "label": { |
| 52 | - "/P": "X-", | |
| 52 | + "/P": "u:X-", | |
| 53 | 53 | "/S": "/A", |
| 54 | 54 | "/St": 17 |
| 55 | 55 | }, |
| ... | ... | @@ -63,7 +63,7 @@ |
| 63 | 63 | ], |
| 64 | 64 | "images": [], |
| 65 | 65 | "label": { |
| 66 | - "/P": "X-", | |
| 66 | + "/P": "u:X-", | |
| 67 | 67 | "/S": "/A", |
| 68 | 68 | "/St": 18 |
| 69 | 69 | }, |
| ... | ... | @@ -77,7 +77,7 @@ |
| 77 | 77 | ], |
| 78 | 78 | "images": [], |
| 79 | 79 | "label": { |
| 80 | - "/P": "", | |
| 80 | + "/P": "u:", | |
| 81 | 81 | "/St": 1 |
| 82 | 82 | }, |
| 83 | 83 | "object": "11 0 R", |
| ... | ... | @@ -207,7 +207,7 @@ |
| 207 | 207 | ], |
| 208 | 208 | "images": [], |
| 209 | 209 | "label": { |
| 210 | - "/P": "q.", | |
| 210 | + "/P": "u:q.", | |
| 211 | 211 | "/S": "/D", |
| 212 | 212 | "/St": 6 |
| 213 | 213 | }, |
| ... | ... | @@ -221,7 +221,7 @@ |
| 221 | 221 | ], |
| 222 | 222 | "images": [], |
| 223 | 223 | "label": { |
| 224 | - "/P": "q.", | |
| 224 | + "/P": "u:q.", | |
| 225 | 225 | "/S": "/D", |
| 226 | 226 | "/St": 7 |
| 227 | 227 | }, |
| ... | ... | @@ -235,7 +235,7 @@ |
| 235 | 235 | ], |
| 236 | 236 | "images": [], |
| 237 | 237 | "label": { |
| 238 | - "/P": "q.", | |
| 238 | + "/P": "u:q.", | |
| 239 | 239 | "/S": "/D", |
| 240 | 240 | "/St": 8 |
| 241 | 241 | }, |
| ... | ... | @@ -249,7 +249,7 @@ |
| 249 | 249 | ], |
| 250 | 250 | "images": [], |
| 251 | 251 | "label": { |
| 252 | - "/P": "q.", | |
| 252 | + "/P": "u:q.", | |
| 253 | 253 | "/S": "/D", |
| 254 | 254 | "/St": 9 |
| 255 | 255 | }, |
| ... | ... | @@ -263,7 +263,7 @@ |
| 263 | 263 | ], |
| 264 | 264 | "images": [], |
| 265 | 265 | "label": { |
| 266 | - "/P": "www", | |
| 266 | + "/P": "u:www", | |
| 267 | 267 | "/St": 1 |
| 268 | 268 | }, |
| 269 | 269 | "object": "25 0 R", |
| ... | ... | @@ -412,14 +412,14 @@ |
| 412 | 412 | { |
| 413 | 413 | "index": 2, |
| 414 | 414 | "label": { |
| 415 | - "/P": "blank", | |
| 415 | + "/P": "u:blank", | |
| 416 | 416 | "/St": 1 |
| 417 | 417 | } |
| 418 | 418 | }, |
| 419 | 419 | { |
| 420 | 420 | "index": 3, |
| 421 | 421 | "label": { |
| 422 | - "/P": "X-", | |
| 422 | + "/P": "u:X-", | |
| 423 | 423 | "/S": "/A", |
| 424 | 424 | "/St": 17 |
| 425 | 425 | } |
| ... | ... | @@ -427,7 +427,7 @@ |
| 427 | 427 | { |
| 428 | 428 | "index": 5, |
| 429 | 429 | "label": { |
| 430 | - "/P": "", | |
| 430 | + "/P": "u:", | |
| 431 | 431 | "/St": 1 |
| 432 | 432 | } |
| 433 | 433 | }, |
| ... | ... | @@ -462,7 +462,7 @@ |
| 462 | 462 | { |
| 463 | 463 | "index": 15, |
| 464 | 464 | "label": { |
| 465 | - "/P": "q.", | |
| 465 | + "/P": "u:q.", | |
| 466 | 466 | "/S": "/D", |
| 467 | 467 | "/St": 6 |
| 468 | 468 | } |
| ... | ... | @@ -470,7 +470,7 @@ |
| 470 | 470 | { |
| 471 | 471 | "index": 19, |
| 472 | 472 | "label": { |
| 473 | - "/P": "www", | |
| 473 | + "/P": "u:www", | |
| 474 | 474 | "/St": 1 |
| 475 | 475 | } |
| 476 | 476 | }, |
| ... | ... | @@ -513,8 +513,8 @@ |
| 513 | 513 | "capabilities": { |
| 514 | 514 | "accessibility": true, |
| 515 | 515 | "extract": true, |
| 516 | - "moddifyannotations": true, | |
| 517 | 516 | "modify": true, |
| 517 | + "modifyannotations": true, | |
| 518 | 518 | "modifyassembly": true, |
| 519 | 519 | "modifyforms": true, |
| 520 | 520 | "modifyother": true, |
| ... | ... | @@ -1219,17 +1219,17 @@ |
| 1219 | 1219 | }, |
| 1220 | 1220 | 2, |
| 1221 | 1221 | { |
| 1222 | - "/P": "blank" | |
| 1222 | + "/P": "u:blank" | |
| 1223 | 1223 | }, |
| 1224 | 1224 | 3, |
| 1225 | 1225 | { |
| 1226 | - "/P": "X-", | |
| 1226 | + "/P": "u:X-", | |
| 1227 | 1227 | "/S": "/A", |
| 1228 | 1228 | "/St": 17 |
| 1229 | 1229 | }, |
| 1230 | 1230 | 5, |
| 1231 | 1231 | { |
| 1232 | - "/P": "" | |
| 1232 | + "/P": "u:" | |
| 1233 | 1233 | }, |
| 1234 | 1234 | 6, |
| 1235 | 1235 | { |
| ... | ... | @@ -1261,13 +1261,13 @@ |
| 1261 | 1261 | }, |
| 1262 | 1262 | 15, |
| 1263 | 1263 | { |
| 1264 | - "/P": "q.", | |
| 1264 | + "/P": "u:q.", | |
| 1265 | 1265 | "/S": "/D", |
| 1266 | 1266 | "/St": 6 |
| 1267 | 1267 | }, |
| 1268 | 1268 | 19, |
| 1269 | 1269 | { |
| 1270 | - "/P": "www" | |
| 1270 | + "/P": "u:www" | |
| 1271 | 1271 | } |
| 1272 | 1272 | ] |
| 1273 | 1273 | } |
| ... | ... | @@ -1590,8 +1590,8 @@ |
| 1590 | 1590 | "trailer": { |
| 1591 | 1591 | "value": { |
| 1592 | 1592 | "/ID": [ |
| 1593 | - "’ùˇÞxtó¼\\·¯½˚Ł7»", | |
| 1594 | - "\rþ˘©LÞ\u000fKýÈl\u0003¯ˇ\u0001\u000e" | |
| 1593 | + "b:90f919de7874f3bc5cb7afbd1e9537bb", | |
| 1594 | + "b:0dfe18a94cde0f4bfdc86c03af19010e" | |
| 1595 | 1595 | ], |
| 1596 | 1596 | "/Root": "1 0 R", |
| 1597 | 1597 | "/Size": 100 | ... | ... |
qpdf/qtest/qpdf/page_api_2-json-objects.out
| ... | ... | @@ -3,161 +3,115 @@ |
| 3 | 3 | "parameters": { |
| 4 | 4 | "decodelevel": "generalized" |
| 5 | 5 | }, |
| 6 | - "objects": { | |
| 7 | - "1 0 R": { | |
| 8 | - "/Pages": "3 0 R", | |
| 9 | - "/Type": "/Catalog" | |
| 10 | - }, | |
| 11 | - "2 0 R": { | |
| 12 | - "/CreationDate": "u:D:20120621124041", | |
| 13 | - "/Producer": "u:Apex PDFWriter" | |
| 14 | - }, | |
| 15 | - "3 0 R": { | |
| 16 | - "/Count": 3, | |
| 17 | - "/Kids": [ | |
| 18 | - "4 0 R", | |
| 19 | - "4 0 R", | |
| 20 | - "5 0 R" | |
| 21 | - ], | |
| 22 | - "/Type": "/Pages" | |
| 23 | - }, | |
| 24 | - "4 0 R": { | |
| 25 | - "/Contents": "6 0 R", | |
| 26 | - "/MediaBox": [ | |
| 27 | - 0, | |
| 28 | - 0, | |
| 29 | - 612, | |
| 30 | - 792 | |
| 31 | - ], | |
| 32 | - "/Parent": "3 0 R", | |
| 33 | - "/Resources": { | |
| 34 | - "/Font": { | |
| 35 | - "/F1": "8 0 R" | |
| 36 | - }, | |
| 37 | - "/ProcSet": [ | |
| 38 | - "/PDF", | |
| 39 | - "/Text" | |
| 40 | - ] | |
| 6 | + "qpdf": { | |
| 7 | + "jsonversion": 2, | |
| 8 | + "pdfversion": "1.3", | |
| 9 | + "objects": { | |
| 10 | + "obj:1 0 R": { | |
| 11 | + "value": { | |
| 12 | + "/Pages": "3 0 R", | |
| 13 | + "/Type": "/Catalog" | |
| 14 | + } | |
| 41 | 15 | }, |
| 42 | - "/Type": "/Page" | |
| 43 | - }, | |
| 44 | - "5 0 R": { | |
| 45 | - "/Contents": "9 0 R", | |
| 46 | - "/MediaBox": [ | |
| 47 | - 0, | |
| 48 | - 0, | |
| 49 | - 612, | |
| 50 | - 792 | |
| 51 | - ], | |
| 52 | - "/Parent": "3 0 R", | |
| 53 | - "/Resources": { | |
| 54 | - "/Font": { | |
| 55 | - "/F1": "8 0 R" | |
| 56 | - }, | |
| 57 | - "/ProcSet": [ | |
| 58 | - "/PDF", | |
| 59 | - "/Text" | |
| 60 | - ] | |
| 16 | + "obj:2 0 R": { | |
| 17 | + "value": { | |
| 18 | + "/CreationDate": "u:D:20120621124041", | |
| 19 | + "/Producer": "u:Apex PDFWriter" | |
| 20 | + } | |
| 61 | 21 | }, |
| 62 | - "/Type": "/Page" | |
| 63 | - }, | |
| 64 | - "6 0 R": { | |
| 65 | - "dict": { | |
| 66 | - "/Length": "7 0 R" | |
| 67 | - } | |
| 68 | - }, | |
| 69 | - "7 0 R": 47, | |
| 70 | - "8 0 R": { | |
| 71 | - "/BaseFont": "/Times-Roman", | |
| 72 | - "/Encoding": "/WinAnsiEncoding", | |
| 73 | - "/Subtype": "/Type1", | |
| 74 | - "/Type": "/Font" | |
| 75 | - }, | |
| 76 | - "9 0 R": { | |
| 77 | - "dict": { | |
| 78 | - "/Length": "10 0 R" | |
| 79 | - } | |
| 80 | - }, | |
| 81 | - "10 0 R": 47, | |
| 82 | - "trailer": { | |
| 83 | - "/ID": [ | |
| 84 | - "b:fb18b786ff7b358705da8a532aba8f6f", | |
| 85 | - "b:f7179eb35159bfd4c00f128abcfd1f02" | |
| 86 | - ], | |
| 87 | - "/Info": "2 0 R", | |
| 88 | - "/Root": "1 0 R", | |
| 89 | - "/Size": 11 | |
| 90 | - } | |
| 91 | - }, | |
| 92 | - "objectinfo": { | |
| 93 | - "1 0 R": { | |
| 94 | - "stream": { | |
| 95 | - "filter": null, | |
| 96 | - "is": false, | |
| 97 | - "length": null | |
| 98 | - } | |
| 99 | - }, | |
| 100 | - "2 0 R": { | |
| 101 | - "stream": { | |
| 102 | - "filter": null, | |
| 103 | - "is": false, | |
| 104 | - "length": null | |
| 105 | - } | |
| 106 | - }, | |
| 107 | - "3 0 R": { | |
| 108 | - "stream": { | |
| 109 | - "filter": null, | |
| 110 | - "is": false, | |
| 111 | - "length": null | |
| 112 | - } | |
| 113 | - }, | |
| 114 | - "4 0 R": { | |
| 115 | - "stream": { | |
| 116 | - "filter": null, | |
| 117 | - "is": false, | |
| 118 | - "length": null | |
| 119 | - } | |
| 120 | - }, | |
| 121 | - "5 0 R": { | |
| 122 | - "stream": { | |
| 123 | - "filter": null, | |
| 124 | - "is": false, | |
| 125 | - "length": null | |
| 126 | - } | |
| 127 | - }, | |
| 128 | - "6 0 R": { | |
| 129 | - "stream": { | |
| 130 | - "filter": null, | |
| 131 | - "is": true, | |
| 132 | - "length": 47 | |
| 133 | - } | |
| 134 | - }, | |
| 135 | - "7 0 R": { | |
| 136 | - "stream": { | |
| 137 | - "filter": null, | |
| 138 | - "is": false, | |
| 139 | - "length": null | |
| 140 | - } | |
| 141 | - }, | |
| 142 | - "8 0 R": { | |
| 143 | - "stream": { | |
| 144 | - "filter": null, | |
| 145 | - "is": false, | |
| 146 | - "length": null | |
| 147 | - } | |
| 148 | - }, | |
| 149 | - "9 0 R": { | |
| 150 | - "stream": { | |
| 151 | - "filter": null, | |
| 152 | - "is": true, | |
| 153 | - "length": 47 | |
| 154 | - } | |
| 155 | - }, | |
| 156 | - "10 0 R": { | |
| 157 | - "stream": { | |
| 158 | - "filter": null, | |
| 159 | - "is": false, | |
| 160 | - "length": null | |
| 22 | + "obj:3 0 R": { | |
| 23 | + "value": { | |
| 24 | + "/Count": 3, | |
| 25 | + "/Kids": [ | |
| 26 | + "4 0 R", | |
| 27 | + "4 0 R", | |
| 28 | + "5 0 R" | |
| 29 | + ], | |
| 30 | + "/Type": "/Pages" | |
| 31 | + } | |
| 32 | + }, | |
| 33 | + "obj:4 0 R": { | |
| 34 | + "value": { | |
| 35 | + "/Contents": "6 0 R", | |
| 36 | + "/MediaBox": [ | |
| 37 | + 0, | |
| 38 | + 0, | |
| 39 | + 612, | |
| 40 | + 792 | |
| 41 | + ], | |
| 42 | + "/Parent": "3 0 R", | |
| 43 | + "/Resources": { | |
| 44 | + "/Font": { | |
| 45 | + "/F1": "8 0 R" | |
| 46 | + }, | |
| 47 | + "/ProcSet": [ | |
| 48 | + "/PDF", | |
| 49 | + "/Text" | |
| 50 | + ] | |
| 51 | + }, | |
| 52 | + "/Type": "/Page" | |
| 53 | + } | |
| 54 | + }, | |
| 55 | + "obj:5 0 R": { | |
| 56 | + "value": { | |
| 57 | + "/Contents": "9 0 R", | |
| 58 | + "/MediaBox": [ | |
| 59 | + 0, | |
| 60 | + 0, | |
| 61 | + 612, | |
| 62 | + 792 | |
| 63 | + ], | |
| 64 | + "/Parent": "3 0 R", | |
| 65 | + "/Resources": { | |
| 66 | + "/Font": { | |
| 67 | + "/F1": "8 0 R" | |
| 68 | + }, | |
| 69 | + "/ProcSet": [ | |
| 70 | + "/PDF", | |
| 71 | + "/Text" | |
| 72 | + ] | |
| 73 | + }, | |
| 74 | + "/Type": "/Page" | |
| 75 | + } | |
| 76 | + }, | |
| 77 | + "obj:6 0 R": { | |
| 78 | + "stream": { | |
| 79 | + "dict": { | |
| 80 | + "/Length": "7 0 R" | |
| 81 | + } | |
| 82 | + } | |
| 83 | + }, | |
| 84 | + "obj:7 0 R": { | |
| 85 | + "value": 47 | |
| 86 | + }, | |
| 87 | + "obj:8 0 R": { | |
| 88 | + "value": { | |
| 89 | + "/BaseFont": "/Times-Roman", | |
| 90 | + "/Encoding": "/WinAnsiEncoding", | |
| 91 | + "/Subtype": "/Type1", | |
| 92 | + "/Type": "/Font" | |
| 93 | + } | |
| 94 | + }, | |
| 95 | + "obj:9 0 R": { | |
| 96 | + "stream": { | |
| 97 | + "dict": { | |
| 98 | + "/Length": "10 0 R" | |
| 99 | + } | |
| 100 | + } | |
| 101 | + }, | |
| 102 | + "obj:10 0 R": { | |
| 103 | + "value": 47 | |
| 104 | + }, | |
| 105 | + "trailer": { | |
| 106 | + "value": { | |
| 107 | + "/ID": [ | |
| 108 | + "b:fb18b786ff7b358705da8a532aba8f6f", | |
| 109 | + "b:f7179eb35159bfd4c00f128abcfd1f02" | |
| 110 | + ], | |
| 111 | + "/Info": "2 0 R", | |
| 112 | + "/Root": "1 0 R", | |
| 113 | + "/Size": 11 | |
| 114 | + } | |
| 161 | 115 | } |
| 162 | 116 | } |
| 163 | 117 | } | ... | ... |
qpdf/qtest/qpdf/page_api_2-json-pages.out
| ... | ... | @@ -35,188 +35,137 @@ |
| 35 | 35 | "pageposfrom1": 3 |
| 36 | 36 | } |
| 37 | 37 | ], |
| 38 | - "objects": { | |
| 39 | - "1 0 R": { | |
| 40 | - "/Pages": "3 0 R", | |
| 41 | - "/Type": "/Catalog" | |
| 42 | - }, | |
| 43 | - "2 0 R": { | |
| 44 | - "/CreationDate": "u:D:20120621124041", | |
| 45 | - "/Producer": "u:Apex PDFWriter" | |
| 46 | - }, | |
| 47 | - "3 0 R": { | |
| 48 | - "/Count": 3, | |
| 49 | - "/Kids": [ | |
| 50 | - "4 0 R", | |
| 51 | - "11 0 R", | |
| 52 | - "5 0 R" | |
| 53 | - ], | |
| 54 | - "/Type": "/Pages" | |
| 55 | - }, | |
| 56 | - "4 0 R": { | |
| 57 | - "/Contents": "6 0 R", | |
| 58 | - "/MediaBox": [ | |
| 59 | - 0, | |
| 60 | - 0, | |
| 61 | - 612, | |
| 62 | - 792 | |
| 63 | - ], | |
| 64 | - "/Parent": "3 0 R", | |
| 65 | - "/Resources": { | |
| 66 | - "/Font": { | |
| 67 | - "/F1": "8 0 R" | |
| 68 | - }, | |
| 69 | - "/ProcSet": [ | |
| 70 | - "/PDF", | |
| 71 | - "/Text" | |
| 72 | - ] | |
| 38 | + "qpdf": { | |
| 39 | + "jsonversion": 2, | |
| 40 | + "pdfversion": "1.3", | |
| 41 | + "objects": { | |
| 42 | + "obj:1 0 R": { | |
| 43 | + "value": { | |
| 44 | + "/Pages": "3 0 R", | |
| 45 | + "/Type": "/Catalog" | |
| 46 | + } | |
| 73 | 47 | }, |
| 74 | - "/Type": "/Page" | |
| 75 | - }, | |
| 76 | - "5 0 R": { | |
| 77 | - "/Contents": "9 0 R", | |
| 78 | - "/MediaBox": [ | |
| 79 | - 0, | |
| 80 | - 0, | |
| 81 | - 612, | |
| 82 | - 792 | |
| 83 | - ], | |
| 84 | - "/Parent": "3 0 R", | |
| 85 | - "/Resources": { | |
| 86 | - "/Font": { | |
| 87 | - "/F1": "8 0 R" | |
| 88 | - }, | |
| 89 | - "/ProcSet": [ | |
| 90 | - "/PDF", | |
| 91 | - "/Text" | |
| 92 | - ] | |
| 48 | + "obj:2 0 R": { | |
| 49 | + "value": { | |
| 50 | + "/CreationDate": "u:D:20120621124041", | |
| 51 | + "/Producer": "u:Apex PDFWriter" | |
| 52 | + } | |
| 93 | 53 | }, |
| 94 | - "/Type": "/Page" | |
| 95 | - }, | |
| 96 | - "6 0 R": { | |
| 97 | - "dict": { | |
| 98 | - "/Length": "7 0 R" | |
| 99 | - } | |
| 100 | - }, | |
| 101 | - "7 0 R": 47, | |
| 102 | - "8 0 R": { | |
| 103 | - "/BaseFont": "/Times-Roman", | |
| 104 | - "/Encoding": "/WinAnsiEncoding", | |
| 105 | - "/Subtype": "/Type1", | |
| 106 | - "/Type": "/Font" | |
| 107 | - }, | |
| 108 | - "9 0 R": { | |
| 109 | - "dict": { | |
| 110 | - "/Length": "10 0 R" | |
| 111 | - } | |
| 112 | - }, | |
| 113 | - "10 0 R": 47, | |
| 114 | - "11 0 R": { | |
| 115 | - "/Contents": "6 0 R", | |
| 116 | - "/MediaBox": [ | |
| 117 | - 0, | |
| 118 | - 0, | |
| 119 | - 612, | |
| 120 | - 792 | |
| 121 | - ], | |
| 122 | - "/Parent": "3 0 R", | |
| 123 | - "/Resources": { | |
| 124 | - "/Font": { | |
| 125 | - "/F1": "8 0 R" | |
| 126 | - }, | |
| 127 | - "/ProcSet": [ | |
| 128 | - "/PDF", | |
| 129 | - "/Text" | |
| 130 | - ] | |
| 54 | + "obj:3 0 R": { | |
| 55 | + "value": { | |
| 56 | + "/Count": 3, | |
| 57 | + "/Kids": [ | |
| 58 | + "4 0 R", | |
| 59 | + "11 0 R", | |
| 60 | + "5 0 R" | |
| 61 | + ], | |
| 62 | + "/Type": "/Pages" | |
| 63 | + } | |
| 131 | 64 | }, |
| 132 | - "/Type": "/Page" | |
| 133 | - }, | |
| 134 | - "trailer": { | |
| 135 | - "/ID": [ | |
| 136 | - "b:fb18b786ff7b358705da8a532aba8f6f", | |
| 137 | - "b:f7179eb35159bfd4c00f128abcfd1f02" | |
| 138 | - ], | |
| 139 | - "/Info": "2 0 R", | |
| 140 | - "/Root": "1 0 R", | |
| 141 | - "/Size": 11 | |
| 142 | - } | |
| 143 | - }, | |
| 144 | - "objectinfo": { | |
| 145 | - "1 0 R": { | |
| 146 | - "stream": { | |
| 147 | - "filter": null, | |
| 148 | - "is": false, | |
| 149 | - "length": null | |
| 150 | - } | |
| 151 | - }, | |
| 152 | - "2 0 R": { | |
| 153 | - "stream": { | |
| 154 | - "filter": null, | |
| 155 | - "is": false, | |
| 156 | - "length": null | |
| 157 | - } | |
| 158 | - }, | |
| 159 | - "3 0 R": { | |
| 160 | - "stream": { | |
| 161 | - "filter": null, | |
| 162 | - "is": false, | |
| 163 | - "length": null | |
| 164 | - } | |
| 165 | - }, | |
| 166 | - "4 0 R": { | |
| 167 | - "stream": { | |
| 168 | - "filter": null, | |
| 169 | - "is": false, | |
| 170 | - "length": null | |
| 171 | - } | |
| 172 | - }, | |
| 173 | - "5 0 R": { | |
| 174 | - "stream": { | |
| 175 | - "filter": null, | |
| 176 | - "is": false, | |
| 177 | - "length": null | |
| 178 | - } | |
| 179 | - }, | |
| 180 | - "6 0 R": { | |
| 181 | - "stream": { | |
| 182 | - "filter": null, | |
| 183 | - "is": true, | |
| 184 | - "length": 47 | |
| 185 | - } | |
| 186 | - }, | |
| 187 | - "7 0 R": { | |
| 188 | - "stream": { | |
| 189 | - "filter": null, | |
| 190 | - "is": false, | |
| 191 | - "length": null | |
| 192 | - } | |
| 193 | - }, | |
| 194 | - "8 0 R": { | |
| 195 | - "stream": { | |
| 196 | - "filter": null, | |
| 197 | - "is": false, | |
| 198 | - "length": null | |
| 199 | - } | |
| 200 | - }, | |
| 201 | - "9 0 R": { | |
| 202 | - "stream": { | |
| 203 | - "filter": null, | |
| 204 | - "is": true, | |
| 205 | - "length": 47 | |
| 206 | - } | |
| 207 | - }, | |
| 208 | - "10 0 R": { | |
| 209 | - "stream": { | |
| 210 | - "filter": null, | |
| 211 | - "is": false, | |
| 212 | - "length": null | |
| 213 | - } | |
| 214 | - }, | |
| 215 | - "11 0 R": { | |
| 216 | - "stream": { | |
| 217 | - "filter": null, | |
| 218 | - "is": false, | |
| 219 | - "length": null | |
| 65 | + "obj:4 0 R": { | |
| 66 | + "value": { | |
| 67 | + "/Contents": "6 0 R", | |
| 68 | + "/MediaBox": [ | |
| 69 | + 0, | |
| 70 | + 0, | |
| 71 | + 612, | |
| 72 | + 792 | |
| 73 | + ], | |
| 74 | + "/Parent": "3 0 R", | |
| 75 | + "/Resources": { | |
| 76 | + "/Font": { | |
| 77 | + "/F1": "8 0 R" | |
| 78 | + }, | |
| 79 | + "/ProcSet": [ | |
| 80 | + "/PDF", | |
| 81 | + "/Text" | |
| 82 | + ] | |
| 83 | + }, | |
| 84 | + "/Type": "/Page" | |
| 85 | + } | |
| 86 | + }, | |
| 87 | + "obj:5 0 R": { | |
| 88 | + "value": { | |
| 89 | + "/Contents": "9 0 R", | |
| 90 | + "/MediaBox": [ | |
| 91 | + 0, | |
| 92 | + 0, | |
| 93 | + 612, | |
| 94 | + 792 | |
| 95 | + ], | |
| 96 | + "/Parent": "3 0 R", | |
| 97 | + "/Resources": { | |
| 98 | + "/Font": { | |
| 99 | + "/F1": "8 0 R" | |
| 100 | + }, | |
| 101 | + "/ProcSet": [ | |
| 102 | + "/PDF", | |
| 103 | + "/Text" | |
| 104 | + ] | |
| 105 | + }, | |
| 106 | + "/Type": "/Page" | |
| 107 | + } | |
| 108 | + }, | |
| 109 | + "obj:6 0 R": { | |
| 110 | + "stream": { | |
| 111 | + "dict": { | |
| 112 | + "/Length": "7 0 R" | |
| 113 | + } | |
| 114 | + } | |
| 115 | + }, | |
| 116 | + "obj:7 0 R": { | |
| 117 | + "value": 47 | |
| 118 | + }, | |
| 119 | + "obj:8 0 R": { | |
| 120 | + "value": { | |
| 121 | + "/BaseFont": "/Times-Roman", | |
| 122 | + "/Encoding": "/WinAnsiEncoding", | |
| 123 | + "/Subtype": "/Type1", | |
| 124 | + "/Type": "/Font" | |
| 125 | + } | |
| 126 | + }, | |
| 127 | + "obj:9 0 R": { | |
| 128 | + "stream": { | |
| 129 | + "dict": { | |
| 130 | + "/Length": "10 0 R" | |
| 131 | + } | |
| 132 | + } | |
| 133 | + }, | |
| 134 | + "obj:10 0 R": { | |
| 135 | + "value": 47 | |
| 136 | + }, | |
| 137 | + "obj:11 0 R": { | |
| 138 | + "value": { | |
| 139 | + "/Contents": "6 0 R", | |
| 140 | + "/MediaBox": [ | |
| 141 | + 0, | |
| 142 | + 0, | |
| 143 | + 612, | |
| 144 | + 792 | |
| 145 | + ], | |
| 146 | + "/Parent": "3 0 R", | |
| 147 | + "/Resources": { | |
| 148 | + "/Font": { | |
| 149 | + "/F1": "8 0 R" | |
| 150 | + }, | |
| 151 | + "/ProcSet": [ | |
| 152 | + "/PDF", | |
| 153 | + "/Text" | |
| 154 | + ] | |
| 155 | + }, | |
| 156 | + "/Type": "/Page" | |
| 157 | + } | |
| 158 | + }, | |
| 159 | + "trailer": { | |
| 160 | + "value": { | |
| 161 | + "/ID": [ | |
| 162 | + "b:fb18b786ff7b358705da8a532aba8f6f", | |
| 163 | + "b:f7179eb35159bfd4c00f128abcfd1f02" | |
| 164 | + ], | |
| 165 | + "/Info": "2 0 R", | |
| 166 | + "/Root": "1 0 R", | |
| 167 | + "/Size": 11 | |
| 168 | + } | |
| 220 | 169 | } |
| 221 | 170 | } |
| 222 | 171 | } | ... | ... |