2020-01-26 19:38:56 +00:00
|
|
|
{
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
"version": 2,
|
Top-level json: write incrementally
This commit just changes the order in which fields are written to the
json without changing their content. All the json files in the test
suite were modified with this script to ensure that we didn't get any
changes other than ordering.
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
newdata = {}
for i in ('version', 'parameters', 'pages', 'pagelabels',
'acroform', 'attachments', 'encrypt', 'outlines',
'objects', 'objectinfo'):
if i in data:
newdata[i] = data[i]
print(json_dumps(newdata))
----------
2022-05-06 22:25:59 +00:00
|
|
|
"parameters": {
|
|
|
|
"decodelevel": "generalized"
|
|
|
|
},
|
|
|
|
"pages": [
|
|
|
|
{
|
|
|
|
"contents": [
|
|
|
|
"50 0 R"
|
|
|
|
],
|
|
|
|
"images": [],
|
|
|
|
"label": null,
|
|
|
|
"object": "15 0 R",
|
|
|
|
"outlines": [],
|
|
|
|
"pageposfrom1": 1
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"pagelabels": [],
|
2020-01-26 19:38:56 +00:00
|
|
|
"acroform": {
|
|
|
|
"fields": [
|
|
|
|
{
|
|
|
|
"alternativename": "text",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "",
|
|
|
|
"object": "4 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
2022-05-07 17:33:45 +00:00
|
|
|
"defaultvalue": "u:",
|
2020-01-26 19:38:56 +00:00
|
|
|
"fieldflags": 0,
|
|
|
|
"fieldtype": "/Tx",
|
|
|
|
"fullname": "text",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": false,
|
|
|
|
"istext": true,
|
|
|
|
"mappingname": "text",
|
|
|
|
"object": "4 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": null,
|
|
|
|
"partialname": "text",
|
|
|
|
"quadding": 0,
|
2022-05-07 17:33:45 +00:00
|
|
|
"value": "u:"
|
2020-01-26 19:38:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "r1",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "/1",
|
|
|
|
"object": "21 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
|
|
|
"defaultvalue": "/1",
|
|
|
|
"fieldflags": 49152,
|
|
|
|
"fieldtype": "/Btn",
|
|
|
|
"fullname": "r1",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": true,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "r1",
|
|
|
|
"object": "21 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": "5 0 R",
|
|
|
|
"partialname": "",
|
|
|
|
"quadding": 0,
|
|
|
|
"value": "/1"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "r1",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "/Off",
|
|
|
|
"object": "22 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
|
|
|
"defaultvalue": "/1",
|
|
|
|
"fieldflags": 49152,
|
|
|
|
"fieldtype": "/Btn",
|
|
|
|
"fullname": "r1",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": true,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "r1",
|
|
|
|
"object": "22 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": "5 0 R",
|
|
|
|
"partialname": "",
|
|
|
|
"quadding": 0,
|
|
|
|
"value": "/1"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "r1",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "/Off",
|
|
|
|
"object": "23 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
|
|
|
"defaultvalue": "/1",
|
|
|
|
"fieldflags": 49152,
|
|
|
|
"fieldtype": "/Btn",
|
|
|
|
"fullname": "r1",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": true,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "r1",
|
|
|
|
"object": "23 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": "5 0 R",
|
|
|
|
"partialname": "",
|
|
|
|
"quadding": 0,
|
|
|
|
"value": "/1"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "checkbox1",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "/Off",
|
|
|
|
"object": "6 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
|
|
|
"defaultvalue": "/Off",
|
|
|
|
"fieldflags": 0,
|
|
|
|
"fieldtype": "/Btn",
|
|
|
|
"fullname": "checkbox1",
|
|
|
|
"ischeckbox": true,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": false,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "checkbox1",
|
|
|
|
"object": "6 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": null,
|
|
|
|
"partialname": "checkbox1",
|
|
|
|
"quadding": 0,
|
|
|
|
"value": "/Off"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "checkbox2",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "/Yes",
|
|
|
|
"object": "7 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
|
|
|
"defaultvalue": "/Yes",
|
|
|
|
"fieldflags": 0,
|
|
|
|
"fieldtype": "/Btn",
|
|
|
|
"fullname": "checkbox2",
|
|
|
|
"ischeckbox": true,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": false,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "checkbox2",
|
|
|
|
"object": "7 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": null,
|
|
|
|
"partialname": "checkbox2",
|
|
|
|
"quadding": 0,
|
|
|
|
"value": "/Yes"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "checkbox3",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "/Off",
|
|
|
|
"object": "8 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
|
|
|
"defaultvalue": "/Off",
|
|
|
|
"fieldflags": 0,
|
|
|
|
"fieldtype": "/Btn",
|
|
|
|
"fullname": "checkbox3",
|
|
|
|
"ischeckbox": true,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": false,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "checkbox3",
|
|
|
|
"object": "8 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": null,
|
|
|
|
"partialname": "checkbox3",
|
|
|
|
"quadding": 0,
|
|
|
|
"value": "/Off"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "r2",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "/Off",
|
|
|
|
"object": "37 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
|
|
|
"defaultvalue": "/2",
|
|
|
|
"fieldflags": 49152,
|
|
|
|
"fieldtype": "/Btn",
|
|
|
|
"fullname": "r2",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": true,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "r2",
|
|
|
|
"object": "37 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": "9 0 R",
|
|
|
|
"partialname": "",
|
|
|
|
"quadding": 0,
|
|
|
|
"value": "/2"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "r2",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "/2",
|
|
|
|
"object": "38 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
|
|
|
"defaultvalue": "/2",
|
|
|
|
"fieldflags": 49152,
|
|
|
|
"fieldtype": "/Btn",
|
|
|
|
"fullname": "r2",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": true,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "r2",
|
|
|
|
"object": "38 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": "9 0 R",
|
|
|
|
"partialname": "",
|
|
|
|
"quadding": 0,
|
|
|
|
"value": "/2"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "r2",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "/Off",
|
|
|
|
"object": "39 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
|
|
|
"defaultvalue": "/2",
|
|
|
|
"fieldflags": 49152,
|
|
|
|
"fieldtype": "/Btn",
|
|
|
|
"fullname": "r2",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": true,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "r2",
|
|
|
|
"object": "39 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": "9 0 R",
|
|
|
|
"partialname": "",
|
|
|
|
"quadding": 0,
|
|
|
|
"value": "/2"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "text2",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "",
|
|
|
|
"object": "10 0 R"
|
|
|
|
},
|
|
|
|
"choices": [],
|
2022-05-07 17:33:45 +00:00
|
|
|
"defaultvalue": "u:salad πʬ",
|
2020-01-26 19:38:56 +00:00
|
|
|
"fieldflags": 0,
|
|
|
|
"fieldtype": "/Tx",
|
|
|
|
"fullname": "text2",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": false,
|
|
|
|
"isradiobutton": false,
|
|
|
|
"istext": true,
|
|
|
|
"mappingname": "text2",
|
|
|
|
"object": "10 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": null,
|
|
|
|
"partialname": "text2",
|
|
|
|
"quadding": 0,
|
2022-05-07 17:33:45 +00:00
|
|
|
"value": "u:salad πʬ"
|
2020-01-26 19:38:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "combolist1",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "",
|
|
|
|
"object": "13 0 R"
|
|
|
|
},
|
|
|
|
"choices": [
|
|
|
|
"one",
|
|
|
|
"two",
|
|
|
|
"pi",
|
|
|
|
"four"
|
|
|
|
],
|
2022-05-07 17:33:45 +00:00
|
|
|
"defaultvalue": "u:",
|
2020-01-26 19:38:56 +00:00
|
|
|
"fieldflags": 393216,
|
|
|
|
"fieldtype": "/Ch",
|
|
|
|
"fullname": "combolist1",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": true,
|
|
|
|
"isradiobutton": false,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "combolist1",
|
|
|
|
"object": "13 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": null,
|
|
|
|
"partialname": "combolist1",
|
|
|
|
"quadding": 0,
|
2022-05-07 17:33:45 +00:00
|
|
|
"value": "u:"
|
2020-01-26 19:38:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "list1",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "",
|
|
|
|
"object": "11 0 R"
|
|
|
|
},
|
|
|
|
"choices": [
|
|
|
|
"five",
|
|
|
|
"six",
|
|
|
|
"seven",
|
|
|
|
"eight"
|
|
|
|
],
|
2022-05-07 17:33:45 +00:00
|
|
|
"defaultvalue": "u:",
|
2020-01-26 19:38:56 +00:00
|
|
|
"fieldflags": 0,
|
|
|
|
"fieldtype": "/Ch",
|
|
|
|
"fullname": "list1",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": true,
|
|
|
|
"isradiobutton": false,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "list1",
|
|
|
|
"object": "11 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": null,
|
|
|
|
"partialname": "list1",
|
|
|
|
"quadding": 0,
|
2022-05-07 17:33:45 +00:00
|
|
|
"value": "u:"
|
2020-01-26 19:38:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "drop1",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "",
|
|
|
|
"object": "12 0 R"
|
|
|
|
},
|
|
|
|
"choices": [
|
|
|
|
"nine",
|
|
|
|
"ten",
|
|
|
|
"elephant",
|
|
|
|
"twelve"
|
|
|
|
],
|
2022-05-07 17:33:45 +00:00
|
|
|
"defaultvalue": "u:",
|
2020-01-26 19:38:56 +00:00
|
|
|
"fieldflags": 131072,
|
|
|
|
"fieldtype": "/Ch",
|
|
|
|
"fullname": "drop1",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": true,
|
|
|
|
"isradiobutton": false,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "drop1",
|
|
|
|
"object": "12 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": null,
|
|
|
|
"partialname": "drop1",
|
|
|
|
"quadding": 0,
|
2022-05-07 17:33:45 +00:00
|
|
|
"value": "u:"
|
2020-01-26 19:38:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"alternativename": "combodrop1",
|
|
|
|
"annotation": {
|
|
|
|
"annotationflags": 4,
|
|
|
|
"appearancestate": "",
|
|
|
|
"object": "14 0 R"
|
|
|
|
},
|
|
|
|
"choices": [
|
|
|
|
"alpha",
|
|
|
|
"beta",
|
|
|
|
"gamma",
|
|
|
|
"delta"
|
|
|
|
],
|
2022-05-07 17:33:45 +00:00
|
|
|
"defaultvalue": "u:",
|
2020-01-26 19:38:56 +00:00
|
|
|
"fieldflags": 393216,
|
|
|
|
"fieldtype": "/Ch",
|
|
|
|
"fullname": "combodrop1",
|
|
|
|
"ischeckbox": false,
|
|
|
|
"ischoice": true,
|
|
|
|
"isradiobutton": false,
|
|
|
|
"istext": false,
|
|
|
|
"mappingname": "combodrop1",
|
|
|
|
"object": "14 0 R",
|
|
|
|
"pageposfrom1": 1,
|
|
|
|
"parent": null,
|
|
|
|
"partialname": "combodrop1",
|
|
|
|
"quadding": 0,
|
2022-05-07 17:33:45 +00:00
|
|
|
"value": "u:"
|
2020-01-26 19:38:56 +00:00
|
|
|
}
|
|
|
|
],
|
|
|
|
"hasacroform": true,
|
|
|
|
"needappearances": true
|
|
|
|
},
|
2021-02-10 20:35:01 +00:00
|
|
|
"attachments": {},
|
2020-01-26 19:38:56 +00:00
|
|
|
"encrypt": {
|
|
|
|
"capabilities": {
|
|
|
|
"accessibility": true,
|
|
|
|
"extract": true,
|
|
|
|
"modify": true,
|
2022-05-07 17:33:45 +00:00
|
|
|
"modifyannotations": true,
|
2020-01-26 19:38:56 +00:00
|
|
|
"modifyassembly": true,
|
|
|
|
"modifyforms": true,
|
|
|
|
"modifyother": true,
|
|
|
|
"printhigh": true,
|
|
|
|
"printlow": true
|
|
|
|
},
|
|
|
|
"encrypted": false,
|
|
|
|
"ownerpasswordmatched": false,
|
|
|
|
"parameters": {
|
|
|
|
"P": 0,
|
|
|
|
"R": 0,
|
|
|
|
"V": 0,
|
|
|
|
"bits": 0,
|
|
|
|
"filemethod": "none",
|
|
|
|
"key": null,
|
|
|
|
"method": "none",
|
|
|
|
"streammethod": "none",
|
|
|
|
"stringmethod": "none"
|
|
|
|
},
|
2022-05-30 14:55:07 +00:00
|
|
|
"recovereduserpassword": null,
|
2020-01-26 19:38:56 +00:00
|
|
|
"userpasswordmatched": false
|
|
|
|
},
|
Top-level json: write incrementally
This commit just changes the order in which fields are written to the
json without changing their content. All the json files in the test
suite were modified with this script to ensure that we didn't get any
changes other than ordering.
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
newdata = {}
for i in ('version', 'parameters', 'pages', 'pagelabels',
'acroform', 'attachments', 'encrypt', 'outlines',
'objects', 'objectinfo'):
if i in data:
newdata[i] = data[i]
print(json_dumps(newdata))
----------
2022-05-06 22:25:59 +00:00
|
|
|
"outlines": [],
|
2022-05-18 22:22:57 +00:00
|
|
|
"objects": {
|
|
|
|
"obj:1 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AcroForm": {
|
|
|
|
"/DR": "3 0 R",
|
|
|
|
"/Fields": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
"4 0 R",
|
2022-05-18 22:22:57 +00:00
|
|
|
"5 0 R",
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
"6 0 R",
|
|
|
|
"7 0 R",
|
|
|
|
"8 0 R",
|
2022-05-18 22:22:57 +00:00
|
|
|
"9 0 R",
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
"10 0 R",
|
|
|
|
"11 0 R",
|
|
|
|
"12 0 R",
|
2022-05-18 22:22:57 +00:00
|
|
|
"13 0 R",
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
"14 0 R"
|
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/NeedAppearances": true
|
|
|
|
},
|
|
|
|
"/Lang": "u:en-US",
|
|
|
|
"/MarkInfo": {
|
|
|
|
"/Marked": true
|
|
|
|
},
|
|
|
|
"/OpenAction": [
|
|
|
|
"15 0 R",
|
|
|
|
"/XYZ",
|
|
|
|
null,
|
|
|
|
null,
|
|
|
|
0
|
|
|
|
],
|
|
|
|
"/Pages": "16 0 R",
|
|
|
|
"/StructTreeRoot": "17 0 R",
|
|
|
|
"/Type": "/Catalog"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:2 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/CreationDate": "u:D:20190103125434-05'00'",
|
|
|
|
"/Creator": "u:Writer",
|
|
|
|
"/Producer": "u:LibreOffice 6.1"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:3 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/Font": "18 0 R",
|
|
|
|
"/ProcSet": [
|
|
|
|
"/PDF",
|
|
|
|
"/Text"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:4 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": "19 0 R"
|
|
|
|
},
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /F2 12 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": "18 0 R"
|
|
|
|
},
|
|
|
|
"/DV": "u:",
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Tx",
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
123.499,
|
|
|
|
689.901,
|
|
|
|
260.801,
|
|
|
|
704.699
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/T": "u:text",
|
|
|
|
"/Type": "/Annot",
|
|
|
|
"/V": "u:"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:5 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/DV": "/1",
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/Ff": 49152,
|
|
|
|
"/Kids": [
|
|
|
|
"21 0 R",
|
|
|
|
"22 0 R",
|
|
|
|
"23 0 R"
|
|
|
|
],
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/T": "u:r1",
|
|
|
|
"/V": "/1"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:6 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": {
|
|
|
|
"/Off": "24 0 R",
|
|
|
|
"/Yes": "26 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/AS": "/Off",
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": {
|
|
|
|
"/ZaDi": "28 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/DV": "/Off",
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/MK": {
|
|
|
|
"/CA": "u:8"
|
|
|
|
},
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
118.649,
|
|
|
|
554.301,
|
|
|
|
130.701,
|
|
|
|
566.349
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/T": "u:checkbox1",
|
|
|
|
"/Type": "/Annot",
|
|
|
|
"/V": "/Off"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:7 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": {
|
|
|
|
"/Off": "29 0 R",
|
|
|
|
"/Yes": "31 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/AS": "/Yes",
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": {
|
|
|
|
"/ZaDi": "28 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/DV": "/Yes",
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/MK": {
|
|
|
|
"/CA": "u:8"
|
|
|
|
},
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
118.649,
|
|
|
|
527.751,
|
|
|
|
130.701,
|
|
|
|
539.799
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/T": "u:checkbox2",
|
|
|
|
"/Type": "/Annot",
|
|
|
|
"/V": "/Yes"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:8 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": {
|
|
|
|
"/Off": "33 0 R",
|
|
|
|
"/Yes": "35 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/AS": "/Off",
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": {
|
|
|
|
"/ZaDi": "28 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/DV": "/Off",
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/MK": {
|
|
|
|
"/CA": "u:8"
|
|
|
|
},
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
118.649,
|
|
|
|
500.501,
|
|
|
|
130.701,
|
|
|
|
512.549
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/T": "u:checkbox3",
|
|
|
|
"/Type": "/Annot",
|
|
|
|
"/V": "/Off"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:9 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/DV": "/2",
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/Ff": 49152,
|
|
|
|
"/Kids": [
|
|
|
|
"37 0 R",
|
|
|
|
"38 0 R",
|
|
|
|
"39 0 R"
|
|
|
|
],
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/T": "u:r2",
|
|
|
|
"/V": "/2"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:10 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": "40 0 R"
|
|
|
|
},
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /F2 12 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": "18 0 R"
|
|
|
|
},
|
|
|
|
"/DV": "u:salad πʬ",
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Tx",
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
113.649,
|
|
|
|
260.151,
|
|
|
|
351.101,
|
|
|
|
278.099
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/T": "u:text2",
|
|
|
|
"/Type": "/Annot",
|
|
|
|
"/V": "u:salad πʬ"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:11 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": "42 0 R"
|
|
|
|
},
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": "18 0 R"
|
|
|
|
},
|
|
|
|
"/DV": "u:",
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Ch",
|
|
|
|
"/Opt": [
|
|
|
|
"u:five",
|
|
|
|
"u:six",
|
|
|
|
"u:seven",
|
|
|
|
"u:eight"
|
|
|
|
],
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
158.449,
|
|
|
|
156.651,
|
|
|
|
221.001,
|
|
|
|
232.849
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/T": "u:list1",
|
|
|
|
"/Type": "/Annot",
|
|
|
|
"/V": "u:"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:12 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": "44 0 R"
|
|
|
|
},
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": "18 0 R"
|
|
|
|
},
|
|
|
|
"/DV": "u:",
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Ch",
|
|
|
|
"/Ff": 131072,
|
|
|
|
"/Opt": [
|
|
|
|
"u:nine",
|
|
|
|
"u:ten",
|
|
|
|
"u:elephant",
|
|
|
|
"u:twelve"
|
|
|
|
],
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
159.149,
|
|
|
|
107.251,
|
|
|
|
244.201,
|
|
|
|
130.949
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/T": "u:drop1",
|
|
|
|
"/Type": "/Annot",
|
|
|
|
"/V": "u:"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:13 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": "46 0 R"
|
|
|
|
},
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": "18 0 R"
|
|
|
|
},
|
|
|
|
"/DV": "u:",
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Ch",
|
|
|
|
"/Ff": 393216,
|
|
|
|
"/Opt": [
|
|
|
|
"u:one",
|
|
|
|
"u:two",
|
|
|
|
"u:pi",
|
|
|
|
"u:four"
|
|
|
|
],
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
403.949,
|
|
|
|
159.401,
|
|
|
|
459.001,
|
|
|
|
232.849
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/T": "u:combolist1",
|
|
|
|
"/Type": "/Annot",
|
|
|
|
"/V": "u:"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:14 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": "48 0 R"
|
|
|
|
},
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /F4 10 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": "18 0 R"
|
|
|
|
},
|
|
|
|
"/DV": "u:",
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Ch",
|
|
|
|
"/Ff": 393216,
|
|
|
|
"/Opt": [
|
|
|
|
"u:alpha",
|
|
|
|
"u:beta",
|
|
|
|
"u:gamma",
|
|
|
|
"u:delta"
|
|
|
|
],
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
404.599,
|
|
|
|
101.451,
|
|
|
|
476.701,
|
|
|
|
135.349
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/T": "u:combodrop1",
|
|
|
|
"/Type": "/Annot",
|
|
|
|
"/V": "u:"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:15 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/Annots": [
|
|
|
|
"4 0 R",
|
|
|
|
"21 0 R",
|
|
|
|
"22 0 R",
|
|
|
|
"23 0 R",
|
|
|
|
"6 0 R",
|
|
|
|
"7 0 R",
|
|
|
|
"8 0 R",
|
|
|
|
"37 0 R",
|
|
|
|
"38 0 R",
|
|
|
|
"39 0 R",
|
|
|
|
"10 0 R",
|
|
|
|
"13 0 R",
|
|
|
|
"11 0 R",
|
|
|
|
"12 0 R",
|
|
|
|
"14 0 R"
|
|
|
|
],
|
|
|
|
"/Contents": "50 0 R",
|
|
|
|
"/Group": {
|
|
|
|
"/CS": "/DeviceRGB",
|
|
|
|
"/I": true,
|
|
|
|
"/S": "/Transparency"
|
|
|
|
},
|
|
|
|
"/MediaBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
612,
|
|
|
|
792
|
|
|
|
],
|
|
|
|
"/Parent": "16 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/StructParents": 0,
|
|
|
|
"/Type": "/Page"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:16 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/Count": 1,
|
|
|
|
"/Kids": [
|
|
|
|
"15 0 R"
|
|
|
|
],
|
|
|
|
"/MediaBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
612,
|
|
|
|
792
|
|
|
|
],
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Type": "/Pages"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:17 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
"52 0 R"
|
|
|
|
],
|
|
|
|
"/ParentTree": "53 0 R",
|
|
|
|
"/RoleMap": {
|
|
|
|
"/Document": "/Document",
|
|
|
|
"/Standard": "/P"
|
|
|
|
},
|
|
|
|
"/Type": "/StructTreeRoot"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:18 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/F1": "54 0 R",
|
|
|
|
"/F2": "55 0 R",
|
|
|
|
"/F3": "56 0 R",
|
|
|
|
"/F4": "57 0 R",
|
|
|
|
"/ZaDi": "28 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:19 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
137.3,
|
|
|
|
14.8
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Length": "20 0 R",
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
"/Resources": "3 0 R",
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:20 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:21 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": {
|
|
|
|
"/1": "58 0 R",
|
|
|
|
"/Off": "60 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/AS": "/1",
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": {
|
|
|
|
"/ZaDi": "28 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/MK": {
|
|
|
|
"/CA": "u:l"
|
|
|
|
},
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Parent": "5 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
152.749,
|
|
|
|
648.501,
|
|
|
|
164.801,
|
|
|
|
660.549
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/Type": "/Annot"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:22 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": {
|
|
|
|
"/2": "62 0 R",
|
|
|
|
"/Off": "64 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/AS": "/Off",
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": {
|
|
|
|
"/ZaDi": "28 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/MK": {
|
|
|
|
"/CA": "u:l"
|
|
|
|
},
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Parent": "5 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
152.749,
|
|
|
|
627.301,
|
|
|
|
164.801,
|
|
|
|
639.349
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/Type": "/Annot"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:23 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": {
|
|
|
|
"/3": "66 0 R",
|
|
|
|
"/Off": "68 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/AS": "/Off",
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": {
|
|
|
|
"/ZaDi": "28 0 R"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/MK": {
|
|
|
|
"/CA": "u:l"
|
|
|
|
},
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Parent": "5 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
151.399,
|
|
|
|
606.501,
|
|
|
|
163.451,
|
|
|
|
618.549
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/Type": "/Annot"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:24 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Length": "25 0 R",
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
"/Resources": "3 0 R",
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:25 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:26 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
12.05,
|
|
|
|
12.05
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Length": "27 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Top-level json: write incrementally
This commit just changes the order in which fields are written to the
json without changing their content. All the json files in the test
suite were modified with this script to ensure that we didn't get any
changes other than ordering.
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
newdata = {}
for i in ('version', 'parameters', 'pages', 'pagelabels',
'acroform', 'attachments', 'encrypt', 'outlines',
'objects', 'objectinfo'):
if i in data:
newdata[i] = data[i]
print(json_dumps(newdata))
----------
2022-05-06 22:25:59 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:27 0 R": {
|
|
|
|
"value": 82
|
|
|
|
},
|
|
|
|
"obj:28 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/BaseFont": "/ZapfDingbats",
|
|
|
|
"/Subtype": "/Type1",
|
|
|
|
"/Type": "/Font"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:29 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
12.05,
|
|
|
|
12.05
|
|
|
|
],
|
|
|
|
"/Length": "30 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:30 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:31 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
12.05,
|
|
|
|
12.05
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Length": "32 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Top-level json: write incrementally
This commit just changes the order in which fields are written to the
json without changing their content. All the json files in the test
suite were modified with this script to ensure that we didn't get any
changes other than ordering.
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
newdata = {}
for i in ('version', 'parameters', 'pages', 'pagelabels',
'acroform', 'attachments', 'encrypt', 'outlines',
'objects', 'objectinfo'):
if i in data:
newdata[i] = data[i]
print(json_dumps(newdata))
----------
2022-05-06 22:25:59 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:32 0 R": {
|
|
|
|
"value": 82
|
|
|
|
},
|
|
|
|
"obj:33 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
12.05,
|
|
|
|
12.05
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Length": "34 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:34 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:35 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
12.05,
|
|
|
|
12.05
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Length": "36 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Top-level json: write incrementally
This commit just changes the order in which fields are written to the
json without changing their content. All the json files in the test
suite were modified with this script to ensure that we didn't get any
changes other than ordering.
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
newdata = {}
for i in ('version', 'parameters', 'pages', 'pagelabels',
'acroform', 'attachments', 'encrypt', 'outlines',
'objects', 'objectinfo'):
if i in data:
newdata[i] = data[i]
print(json_dumps(newdata))
----------
2022-05-06 22:25:59 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:36 0 R": {
|
|
|
|
"value": 82
|
|
|
|
},
|
|
|
|
"obj:37 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": {
|
|
|
|
"/1": "70 0 R",
|
|
|
|
"/Off": "72 0 R"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
},
|
|
|
|
"/AS": "/Off",
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": {
|
|
|
|
"/ZaDi": "28 0 R"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
},
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/MK": {
|
|
|
|
"/CA": "u:l"
|
|
|
|
},
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Parent": "9 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
118.649,
|
|
|
|
388.101,
|
|
|
|
130.701,
|
|
|
|
400.149
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/Type": "/Annot"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:38 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": {
|
|
|
|
"/2": "74 0 R",
|
|
|
|
"/Off": "76 0 R"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
},
|
|
|
|
"/AS": "/2",
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": {
|
|
|
|
"/ZaDi": "28 0 R"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
},
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/MK": {
|
|
|
|
"/CA": "u:l"
|
|
|
|
},
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Parent": "9 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
119.349,
|
|
|
|
362.201,
|
|
|
|
131.401,
|
|
|
|
374.249
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/Type": "/Annot"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:39 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/AP": {
|
|
|
|
"/N": {
|
|
|
|
"/3": "78 0 R",
|
|
|
|
"/Off": "80 0 R"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
},
|
|
|
|
"/AS": "/Off",
|
|
|
|
"/DA": "u:0.18039 0.20392 0.21176 rg /ZaDi 0 Tf",
|
|
|
|
"/DR": {
|
|
|
|
"/Font": {
|
|
|
|
"/ZaDi": "28 0 R"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
},
|
|
|
|
"/F": 4,
|
|
|
|
"/FT": "/Btn",
|
|
|
|
"/MK": {
|
|
|
|
"/CA": "u:l"
|
|
|
|
},
|
|
|
|
"/P": "15 0 R",
|
|
|
|
"/Parent": "9 0 R",
|
|
|
|
"/Rect": [
|
|
|
|
119.349,
|
|
|
|
333.551,
|
|
|
|
131.401,
|
|
|
|
345.599
|
|
|
|
],
|
|
|
|
"/Subtype": "/Widget",
|
|
|
|
"/Type": "/Annot"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:40 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
237.45,
|
|
|
|
17.95
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Length": "41 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:41 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:42 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
62.55,
|
|
|
|
76.2
|
|
|
|
],
|
|
|
|
"/Length": "43 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:43 0 R": {
|
|
|
|
"value": 46
|
|
|
|
},
|
|
|
|
"obj:44 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
85.05,
|
|
|
|
23.7
|
|
|
|
],
|
|
|
|
"/Length": "45 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:45 0 R": {
|
|
|
|
"value": 46
|
|
|
|
},
|
|
|
|
"obj:46 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
55.05,
|
|
|
|
73.45
|
|
|
|
],
|
|
|
|
"/Length": "47 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:47 0 R": {
|
|
|
|
"value": 47
|
|
|
|
},
|
|
|
|
"obj:48 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
72.1,
|
|
|
|
33.9
|
|
|
|
],
|
|
|
|
"/Length": "49 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:49 0 R": {
|
|
|
|
"value": 45
|
|
|
|
},
|
|
|
|
"obj:50 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/Length": "51 0 R"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:51 0 R": {
|
|
|
|
"value": 4747
|
|
|
|
},
|
|
|
|
"obj:52 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
"82 0 R",
|
|
|
|
"83 0 R",
|
|
|
|
"84 0 R",
|
|
|
|
"85 0 R",
|
|
|
|
"86 0 R",
|
|
|
|
"87 0 R",
|
|
|
|
"88 0 R",
|
|
|
|
"89 0 R",
|
|
|
|
"90 0 R",
|
|
|
|
"91 0 R",
|
|
|
|
"92 0 R",
|
|
|
|
"93 0 R",
|
|
|
|
"94 0 R",
|
|
|
|
"95 0 R",
|
|
|
|
"96 0 R",
|
|
|
|
"97 0 R",
|
|
|
|
"98 0 R",
|
|
|
|
"99 0 R",
|
|
|
|
"100 0 R",
|
|
|
|
"101 0 R",
|
|
|
|
"102 0 R",
|
|
|
|
"103 0 R",
|
|
|
|
"104 0 R",
|
|
|
|
"105 0 R",
|
|
|
|
"106 0 R",
|
|
|
|
"107 0 R",
|
|
|
|
"108 0 R",
|
|
|
|
"109 0 R",
|
|
|
|
"110 0 R",
|
|
|
|
"111 0 R",
|
|
|
|
"112 0 R",
|
|
|
|
"113 0 R",
|
|
|
|
"114 0 R",
|
|
|
|
"115 0 R",
|
|
|
|
"116 0 R",
|
|
|
|
"117 0 R",
|
|
|
|
"118 0 R",
|
|
|
|
"119 0 R",
|
|
|
|
"120 0 R",
|
|
|
|
"121 0 R",
|
|
|
|
"122 0 R",
|
|
|
|
"123 0 R",
|
|
|
|
"124 0 R",
|
|
|
|
"125 0 R",
|
|
|
|
"126 0 R",
|
|
|
|
"127 0 R",
|
|
|
|
"128 0 R",
|
|
|
|
"129 0 R",
|
|
|
|
"130 0 R",
|
|
|
|
"131 0 R",
|
|
|
|
"132 0 R",
|
|
|
|
"133 0 R",
|
|
|
|
"134 0 R",
|
|
|
|
"135 0 R",
|
|
|
|
"136 0 R",
|
|
|
|
"137 0 R",
|
|
|
|
"138 0 R",
|
|
|
|
"139 0 R",
|
|
|
|
"140 0 R"
|
|
|
|
],
|
|
|
|
"/P": "17 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Document",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:53 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/Nums": [
|
|
|
|
0,
|
|
|
|
[
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
"82 0 R",
|
|
|
|
"84 0 R",
|
|
|
|
"86 0 R",
|
|
|
|
"93 0 R",
|
|
|
|
"104 0 R",
|
|
|
|
"115 0 R",
|
|
|
|
"119 0 R",
|
2022-05-18 22:22:57 +00:00
|
|
|
"119 0 R",
|
|
|
|
"125 0 R",
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
"125 0 R",
|
|
|
|
"126 0 R",
|
|
|
|
"127 0 R",
|
|
|
|
"128 0 R",
|
|
|
|
"129 0 R",
|
|
|
|
"130 0 R",
|
|
|
|
"131 0 R",
|
|
|
|
"132 0 R",
|
|
|
|
"133 0 R",
|
|
|
|
"134 0 R",
|
|
|
|
"135 0 R",
|
|
|
|
"136 0 R",
|
|
|
|
"137 0 R",
|
|
|
|
"138 0 R",
|
|
|
|
"139 0 R",
|
|
|
|
"140 0 R"
|
|
|
|
]
|
2022-05-18 22:22:57 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:54 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/BaseFont": "/BAAAAA+LiberationSerif",
|
|
|
|
"/FirstChar": 0,
|
|
|
|
"/FontDescriptor": "141 0 R",
|
|
|
|
"/LastChar": 32,
|
|
|
|
"/Subtype": "/TrueType",
|
|
|
|
"/ToUnicode": "142 0 R",
|
|
|
|
"/Type": "/Font",
|
|
|
|
"/Widths": [
|
|
|
|
777,
|
|
|
|
943,
|
|
|
|
500,
|
|
|
|
443,
|
|
|
|
333,
|
|
|
|
333,
|
|
|
|
389,
|
|
|
|
250,
|
|
|
|
777,
|
|
|
|
500,
|
|
|
|
333,
|
|
|
|
500,
|
|
|
|
443,
|
|
|
|
610,
|
|
|
|
500,
|
|
|
|
277,
|
|
|
|
556,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
500,
|
|
|
|
443,
|
|
|
|
500,
|
|
|
|
443,
|
|
|
|
500,
|
|
|
|
500,
|
|
|
|
556,
|
|
|
|
610,
|
|
|
|
666,
|
|
|
|
500,
|
|
|
|
722,
|
|
|
|
500,
|
|
|
|
722,
|
|
|
|
500
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:55 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/BaseFont": "/LiberationSans",
|
|
|
|
"/Encoding": "/WinAnsiEncoding",
|
|
|
|
"/FirstChar": 32,
|
|
|
|
"/FontDescriptor": "144 0 R",
|
|
|
|
"/LastChar": 255,
|
|
|
|
"/Subtype": "/TrueType",
|
|
|
|
"/Type": "/Font",
|
|
|
|
"/Widths": [
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
354,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
889,
|
|
|
|
666,
|
|
|
|
190,
|
|
|
|
333,
|
|
|
|
333,
|
|
|
|
389,
|
|
|
|
583,
|
|
|
|
277,
|
|
|
|
333,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
583,
|
|
|
|
583,
|
|
|
|
583,
|
|
|
|
556,
|
|
|
|
1015,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
722,
|
|
|
|
722,
|
|
|
|
666,
|
|
|
|
610,
|
|
|
|
777,
|
|
|
|
722,
|
|
|
|
277,
|
|
|
|
500,
|
|
|
|
666,
|
|
|
|
556,
|
|
|
|
833,
|
|
|
|
722,
|
|
|
|
777,
|
|
|
|
666,
|
|
|
|
777,
|
|
|
|
722,
|
|
|
|
666,
|
|
|
|
610,
|
|
|
|
722,
|
|
|
|
666,
|
|
|
|
943,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
610,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
469,
|
|
|
|
556,
|
|
|
|
333,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
500,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
277,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
222,
|
|
|
|
222,
|
|
|
|
500,
|
|
|
|
222,
|
|
|
|
833,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
333,
|
|
|
|
500,
|
|
|
|
277,
|
|
|
|
556,
|
|
|
|
500,
|
|
|
|
722,
|
|
|
|
500,
|
|
|
|
500,
|
|
|
|
500,
|
|
|
|
333,
|
|
|
|
259,
|
|
|
|
333,
|
|
|
|
583,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
277,
|
|
|
|
333,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
259,
|
|
|
|
556,
|
|
|
|
333,
|
|
|
|
736,
|
|
|
|
370,
|
|
|
|
556,
|
|
|
|
583,
|
|
|
|
333,
|
|
|
|
736,
|
|
|
|
552,
|
|
|
|
399,
|
|
|
|
548,
|
|
|
|
333,
|
|
|
|
333,
|
|
|
|
333,
|
|
|
|
576,
|
|
|
|
537,
|
|
|
|
333,
|
|
|
|
333,
|
|
|
|
333,
|
|
|
|
365,
|
|
|
|
556,
|
|
|
|
833,
|
|
|
|
833,
|
|
|
|
833,
|
|
|
|
610,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
1000,
|
|
|
|
722,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
722,
|
|
|
|
722,
|
|
|
|
777,
|
|
|
|
777,
|
|
|
|
777,
|
|
|
|
777,
|
|
|
|
777,
|
|
|
|
583,
|
|
|
|
777,
|
|
|
|
722,
|
|
|
|
722,
|
|
|
|
722,
|
|
|
|
722,
|
|
|
|
666,
|
|
|
|
666,
|
|
|
|
610,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
889,
|
|
|
|
500,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
548,
|
|
|
|
610,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
500,
|
|
|
|
556,
|
|
|
|
500
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:56 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/BaseFont": "/DAAAAA+LiberationSans",
|
|
|
|
"/FirstChar": 0,
|
|
|
|
"/FontDescriptor": "145 0 R",
|
|
|
|
"/LastChar": 22,
|
|
|
|
"/Subtype": "/TrueType",
|
|
|
|
"/ToUnicode": "146 0 R",
|
|
|
|
"/Type": "/Font",
|
|
|
|
"/Widths": [
|
|
|
|
750,
|
|
|
|
333,
|
|
|
|
556,
|
|
|
|
333,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
500,
|
|
|
|
722,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
500,
|
|
|
|
277,
|
|
|
|
666,
|
|
|
|
556,
|
|
|
|
500,
|
|
|
|
556,
|
|
|
|
556,
|
|
|
|
777,
|
|
|
|
556,
|
|
|
|
277,
|
|
|
|
222,
|
|
|
|
556,
|
|
|
|
556
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:57 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/BaseFont": "/DejaVuSans",
|
|
|
|
"/Encoding": "/WinAnsiEncoding",
|
|
|
|
"/FirstChar": 32,
|
|
|
|
"/FontDescriptor": "148 0 R",
|
|
|
|
"/LastChar": 255,
|
|
|
|
"/Subtype": "/TrueType",
|
|
|
|
"/Type": "/Font",
|
|
|
|
"/Widths": [
|
|
|
|
317,
|
|
|
|
400,
|
|
|
|
459,
|
|
|
|
837,
|
|
|
|
636,
|
|
|
|
950,
|
|
|
|
779,
|
|
|
|
274,
|
|
|
|
390,
|
|
|
|
390,
|
|
|
|
500,
|
|
|
|
837,
|
|
|
|
317,
|
|
|
|
360,
|
|
|
|
317,
|
|
|
|
336,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
336,
|
|
|
|
336,
|
|
|
|
837,
|
|
|
|
837,
|
|
|
|
837,
|
|
|
|
530,
|
|
|
|
1000,
|
|
|
|
684,
|
|
|
|
686,
|
|
|
|
698,
|
|
|
|
770,
|
|
|
|
631,
|
|
|
|
575,
|
|
|
|
774,
|
|
|
|
751,
|
|
|
|
294,
|
|
|
|
294,
|
|
|
|
655,
|
|
|
|
557,
|
|
|
|
862,
|
|
|
|
748,
|
|
|
|
787,
|
|
|
|
603,
|
|
|
|
787,
|
|
|
|
694,
|
|
|
|
634,
|
|
|
|
610,
|
|
|
|
731,
|
|
|
|
684,
|
|
|
|
988,
|
|
|
|
685,
|
|
|
|
610,
|
|
|
|
685,
|
|
|
|
390,
|
|
|
|
336,
|
|
|
|
390,
|
|
|
|
837,
|
|
|
|
500,
|
|
|
|
500,
|
|
|
|
612,
|
|
|
|
634,
|
|
|
|
549,
|
|
|
|
634,
|
|
|
|
615,
|
|
|
|
352,
|
|
|
|
634,
|
|
|
|
633,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
579,
|
|
|
|
277,
|
|
|
|
974,
|
|
|
|
633,
|
|
|
|
611,
|
|
|
|
634,
|
|
|
|
634,
|
|
|
|
411,
|
|
|
|
520,
|
|
|
|
392,
|
|
|
|
633,
|
|
|
|
591,
|
|
|
|
817,
|
|
|
|
591,
|
|
|
|
591,
|
|
|
|
524,
|
|
|
|
636,
|
|
|
|
336,
|
|
|
|
636,
|
|
|
|
837,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
317,
|
|
|
|
400,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
336,
|
|
|
|
500,
|
|
|
|
500,
|
|
|
|
1000,
|
|
|
|
471,
|
|
|
|
611,
|
|
|
|
837,
|
|
|
|
360,
|
|
|
|
1000,
|
|
|
|
500,
|
|
|
|
500,
|
|
|
|
837,
|
|
|
|
400,
|
|
|
|
400,
|
|
|
|
500,
|
|
|
|
636,
|
|
|
|
636,
|
|
|
|
317,
|
|
|
|
500,
|
|
|
|
400,
|
|
|
|
471,
|
|
|
|
611,
|
|
|
|
969,
|
|
|
|
969,
|
|
|
|
969,
|
|
|
|
530,
|
|
|
|
684,
|
|
|
|
684,
|
|
|
|
684,
|
|
|
|
684,
|
|
|
|
684,
|
|
|
|
684,
|
|
|
|
974,
|
|
|
|
698,
|
|
|
|
631,
|
|
|
|
631,
|
|
|
|
631,
|
|
|
|
631,
|
|
|
|
294,
|
|
|
|
294,
|
|
|
|
294,
|
|
|
|
294,
|
|
|
|
774,
|
|
|
|
748,
|
|
|
|
787,
|
|
|
|
787,
|
|
|
|
787,
|
|
|
|
787,
|
|
|
|
787,
|
|
|
|
837,
|
|
|
|
787,
|
|
|
|
731,
|
|
|
|
731,
|
|
|
|
731,
|
|
|
|
731,
|
|
|
|
610,
|
|
|
|
604,
|
|
|
|
629,
|
|
|
|
612,
|
|
|
|
612,
|
|
|
|
612,
|
|
|
|
612,
|
|
|
|
612,
|
|
|
|
612,
|
|
|
|
981,
|
|
|
|
549,
|
|
|
|
615,
|
|
|
|
615,
|
|
|
|
615,
|
|
|
|
615,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
277,
|
|
|
|
611,
|
|
|
|
633,
|
|
|
|
611,
|
|
|
|
611,
|
|
|
|
611,
|
|
|
|
611,
|
|
|
|
611,
|
|
|
|
837,
|
|
|
|
611,
|
|
|
|
633,
|
|
|
|
633,
|
|
|
|
633,
|
|
|
|
633,
|
|
|
|
591,
|
|
|
|
634,
|
|
|
|
591
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:58 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
|
|
|
],
|
|
|
|
"/Length": "59 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:59 0 R": {
|
|
|
|
"value": 220
|
|
|
|
},
|
|
|
|
"obj:60 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
|
|
|
],
|
|
|
|
"/Length": "61 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:61 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:62 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
|
|
|
],
|
|
|
|
"/Length": "63 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:63 0 R": {
|
|
|
|
"value": 220
|
|
|
|
},
|
|
|
|
"obj:64 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
|
|
|
],
|
|
|
|
"/Length": "65 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:65 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:66 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
|
|
|
],
|
|
|
|
"/Length": "67 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:67 0 R": {
|
|
|
|
"value": 220
|
|
|
|
},
|
|
|
|
"obj:68 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
|
|
|
],
|
|
|
|
"/Length": "69 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:69 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:70 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
|
|
|
],
|
|
|
|
"/Length": "71 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:71 0 R": {
|
|
|
|
"value": 220
|
|
|
|
},
|
|
|
|
"obj:72 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
|
|
|
],
|
|
|
|
"/Length": "73 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:73 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:74 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
|
|
|
],
|
|
|
|
"/Length": "75 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:75 0 R": {
|
|
|
|
"value": 220
|
|
|
|
},
|
|
|
|
"obj:76 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
0,
|
|
|
|
0,
|
2022-05-18 22:22:57 +00:00
|
|
|
12.05,
|
|
|
|
12.05
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Length": "77 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:77 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:78 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
12.05,
|
|
|
|
12.05
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Length": "79 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:79 0 R": {
|
|
|
|
"value": 220
|
|
|
|
},
|
|
|
|
"obj:80 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/BBox": [
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
12.05,
|
|
|
|
12.05
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
],
|
2022-05-18 22:22:57 +00:00
|
|
|
"/Length": "81 0 R",
|
|
|
|
"/Resources": "3 0 R",
|
|
|
|
"/Subtype": "/Form",
|
|
|
|
"/Type": "/XObject"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:81 0 R": {
|
|
|
|
"value": 12
|
|
|
|
},
|
|
|
|
"obj:82 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "149 0 R",
|
|
|
|
"/K": [
|
|
|
|
0
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:83 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "150 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:84 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "151 0 R",
|
|
|
|
"/K": [
|
|
|
|
1
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:85 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "152 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:86 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "153 0 R",
|
|
|
|
"/K": [
|
|
|
|
2
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:87 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "154 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:88 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "155 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:89 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "156 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:90 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "157 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:91 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "158 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:92 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "159 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:93 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "160 0 R",
|
|
|
|
"/K": [
|
|
|
|
3
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:94 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "161 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:95 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "162 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:96 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "163 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:97 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "164 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:98 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "165 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:99 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "166 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:100 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "167 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:101 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "168 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:102 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "169 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:103 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "170 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:104 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "171 0 R",
|
|
|
|
"/K": [
|
|
|
|
4
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:105 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "172 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:106 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "173 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:107 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "174 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:108 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "175 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:109 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "176 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:110 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "177 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:111 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "178 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:112 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "179 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:113 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "180 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:114 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "181 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:115 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "182 0 R",
|
|
|
|
"/K": [
|
|
|
|
5
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:116 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "183 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:117 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "184 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:118 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "185 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:119 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "186 0 R",
|
|
|
|
"/K": [
|
|
|
|
6,
|
|
|
|
7
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:120 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "187 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:121 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "188 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:122 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "189 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:123 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "190 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:124 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "191 0 R",
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:125 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/A": "192 0 R",
|
|
|
|
"/K": [
|
|
|
|
8,
|
|
|
|
9
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Standard",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:126 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
10
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:127 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
11
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:128 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
12
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:129 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
13
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:130 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
14
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:131 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
15
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:132 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
16
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:133 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
17
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:134 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
18
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:135 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
19
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:136 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
20
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:137 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
21
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:138 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
22
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:139 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
23
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:140 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/K": [
|
|
|
|
24
|
|
|
|
],
|
|
|
|
"/P": "52 0 R",
|
|
|
|
"/Pg": "15 0 R",
|
|
|
|
"/S": "/Form",
|
|
|
|
"/Type": "/StructElem"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:141 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/Ascent": 891,
|
|
|
|
"/CapHeight": 981,
|
|
|
|
"/Descent": -216,
|
|
|
|
"/Flags": 4,
|
|
|
|
"/FontBBox": [
|
|
|
|
-543,
|
|
|
|
-303,
|
|
|
|
1277,
|
|
|
|
981
|
|
|
|
],
|
|
|
|
"/FontFile2": "193 0 R",
|
|
|
|
"/FontName": "/BAAAAA+LiberationSerif",
|
|
|
|
"/ItalicAngle": 0,
|
|
|
|
"/StemV": 80,
|
|
|
|
"/Type": "/FontDescriptor"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:142 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/Length": "143 0 R"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:143 0 R": {
|
|
|
|
"value": 702
|
|
|
|
},
|
|
|
|
"obj:144 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/Ascent": 905,
|
|
|
|
"/CapHeight": 979,
|
|
|
|
"/Descent": -211,
|
|
|
|
"/Flags": 4,
|
|
|
|
"/FontBBox": [
|
|
|
|
-543,
|
|
|
|
-303,
|
|
|
|
1300,
|
|
|
|
979
|
|
|
|
],
|
|
|
|
"/FontName": "/LiberationSans",
|
|
|
|
"/ItalicAngle": 0,
|
|
|
|
"/StemV": 80,
|
|
|
|
"/Type": "/FontDescriptor"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:145 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/Ascent": 905,
|
|
|
|
"/CapHeight": 979,
|
|
|
|
"/Descent": -211,
|
|
|
|
"/Flags": 4,
|
|
|
|
"/FontBBox": [
|
|
|
|
-543,
|
|
|
|
-303,
|
|
|
|
1300,
|
|
|
|
979
|
|
|
|
],
|
|
|
|
"/FontFile2": "195 0 R",
|
|
|
|
"/FontName": "/DAAAAA+LiberationSans",
|
|
|
|
"/ItalicAngle": 0,
|
|
|
|
"/StemV": 80,
|
|
|
|
"/Type": "/FontDescriptor"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:146 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/Length": "147 0 R"
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:147 0 R": {
|
|
|
|
"value": 582
|
|
|
|
},
|
|
|
|
"obj:148 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/Ascent": 928,
|
|
|
|
"/CapHeight": 1232,
|
|
|
|
"/Descent": -235,
|
|
|
|
"/Flags": 4,
|
|
|
|
"/FontBBox": [
|
|
|
|
-1020,
|
|
|
|
-462,
|
|
|
|
1792,
|
|
|
|
1232
|
|
|
|
],
|
|
|
|
"/FontName": "/DejaVuSans",
|
|
|
|
"/ItalicAngle": 0,
|
|
|
|
"/StemV": 80,
|
|
|
|
"/Type": "/FontDescriptor"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:149 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:150 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:151 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:152 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:153 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:154 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:155 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:156 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:157 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:158 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:159 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:160 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:161 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:162 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:163 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:164 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:165 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:166 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:167 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:168 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:169 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:170 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:171 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:172 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:173 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:174 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:175 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:176 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:177 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:178 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:179 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:180 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:181 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:182 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:183 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:184 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:185 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:186 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:187 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:188 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:189 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:190 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:191 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:192 0 R": {
|
|
|
|
"value": {
|
|
|
|
"/O": "/Layout",
|
|
|
|
"/Placement": "/Block"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:193 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/Length": "194 0 R",
|
|
|
|
"/Length1": 16184
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"obj:194 0 R": {
|
|
|
|
"value": 16184
|
|
|
|
},
|
|
|
|
"obj:195 0 R": {
|
|
|
|
"stream": {
|
|
|
|
"dict": {
|
|
|
|
"/Length": "196 0 R",
|
|
|
|
"/Length1": 11088
|
Apply script across future v2 test files
There is one unexpected pass in this commit. This script was applied
to the files changed in this commit:
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
data['version'] = 2
objectinfo = {}
if 'objectinfo' in data:
objectinfo = data['objectinfo']
del data['objectinfo']
if 'objects' not in data:
continue
qpdf = {'jsonversion': 2, 'pdfversion': '1.3', 'objects': {}}
for k, v in data['objects'].items():
is_stream = objectinfo.get(k, {}).get('stream', {}).get('is', False)
if k.endswith(' R'):
k = 'obj:' + k
if is_stream:
v = {'stream': {'dict': v}}
else:
v = {'value': v}
qpdf['objects'][k] = v
data['qpdf'] = qpdf
del data['objects']
print(json_dumps(data))
----------
2022-05-07 17:55:54 +00:00
|
|
|
}
|
Top-level json: write incrementally
This commit just changes the order in which fields are written to the
json without changing their content. All the json files in the test
suite were modified with this script to ensure that we didn't get any
changes other than ordering.
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
newdata = {}
for i in ('version', 'parameters', 'pages', 'pagelabels',
'acroform', 'attachments', 'encrypt', 'outlines',
'objects', 'objectinfo'):
if i in data:
newdata[i] = data[i]
print(json_dumps(newdata))
----------
2022-05-06 22:25:59 +00:00
|
|
|
}
|
2022-05-18 22:22:57 +00:00
|
|
|
},
|
|
|
|
"obj:196 0 R": {
|
|
|
|
"value": 11088
|
|
|
|
},
|
|
|
|
"trailer": {
|
|
|
|
"value": {
|
|
|
|
"/DocChecksum": "/CC322E136FE95DECF8BC297B1A9B2C2E",
|
|
|
|
"/ID": [
|
|
|
|
"b:f8abc47bb1df544a0df9c15a75ef0046",
|
|
|
|
"b:ecae7a672bccf334835b54867b208438"
|
|
|
|
],
|
|
|
|
"/Info": "2 0 R",
|
|
|
|
"/Root": "1 0 R",
|
|
|
|
"/Size": 197
|
|
|
|
}
|
2020-01-26 19:38:56 +00:00
|
|
|
}
|
Top-level json: write incrementally
This commit just changes the order in which fields are written to the
json without changing their content. All the json files in the test
suite were modified with this script to ensure that we didn't get any
changes other than ordering.
----------
#!/usr/bin/env python3
import json
import sys
def json_dumps(data):
return json.dumps(data, ensure_ascii=False,
indent=2, separators=(',', ': '))
for filename in sys.argv[1:]:
with open(filename, 'r') as f:
data = json.loads(f.read())
newdata = {}
for i in ('version', 'parameters', 'pages', 'pagelabels',
'acroform', 'attachments', 'encrypt', 'outlines',
'objects', 'objectinfo'):
if i in data:
newdata[i] = data[i]
print(json_dumps(newdata))
----------
2022-05-06 22:25:59 +00:00
|
|
|
}
|
2020-01-26 19:38:56 +00:00
|
|
|
}
|