aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDFJob.cc89
-rw-r--r--libqpdf/QPDFJob_config.cc4
-rw-r--r--libqpdf/QPDFObjectHandle.cc9
-rw-r--r--libqpdf/QPDF_Array.cc4
-rw-r--r--libqpdf/QPDF_Bool.cc2
-rw-r--r--libqpdf/QPDF_Dictionary.cc5
-rw-r--r--libqpdf/QPDF_InlineImage.cc2
-rw-r--r--libqpdf/QPDF_Integer.cc2
-rw-r--r--libqpdf/QPDF_Name.cc2
-rw-r--r--libqpdf/QPDF_Null.cc2
-rw-r--r--libqpdf/QPDF_Operator.cc2
-rw-r--r--libqpdf/QPDF_Real.cc2
-rw-r--r--libqpdf/QPDF_Reserved.cc2
-rw-r--r--libqpdf/QPDF_Stream.cc5
-rw-r--r--libqpdf/QPDF_String.cc3
-rw-r--r--libqpdf/qpdf/QPDF_Array.hh2
-rw-r--r--libqpdf/qpdf/QPDF_Bool.hh2
-rw-r--r--libqpdf/qpdf/QPDF_Dictionary.hh2
-rw-r--r--libqpdf/qpdf/QPDF_InlineImage.hh2
-rw-r--r--libqpdf/qpdf/QPDF_Integer.hh2
-rw-r--r--libqpdf/qpdf/QPDF_Name.hh2
-rw-r--r--libqpdf/qpdf/QPDF_Null.hh2
-rw-r--r--libqpdf/qpdf/QPDF_Operator.hh2
-rw-r--r--libqpdf/qpdf/QPDF_Real.hh2
-rw-r--r--libqpdf/qpdf/QPDF_Reserved.hh2
-rw-r--r--libqpdf/qpdf/QPDF_Stream.hh2
-rw-r--r--libqpdf/qpdf/QPDF_String.hh2
-rw-r--r--libqpdf/qpdf/auto_job_init.hh2
-rw-r--r--libqpdf/qpdf/auto_job_json_init.hh2
29 files changed, 101 insertions, 62 deletions
diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc
index 78c678b0..5b493101 100644
--- a/libqpdf/QPDFJob.cc
+++ b/libqpdf/QPDFJob.cc
@@ -1053,12 +1053,20 @@ QPDFJob::doJSONObjects(Pipeline* p, bool& first, QPDF& pdf)
for (auto& obj: objects) {
if (all_objects || wanted_og.count(obj.getObjGen())) {
JSON::writeDictionaryItem(
- p, first_object, obj.unparse(), obj.getJSON(true), 1);
+ p,
+ first_object,
+ obj.unparse(),
+ obj.getJSON(this->m->json_version, true),
+ 1);
}
}
if (all_objects || m->json_objects.count("trailer")) {
JSON::writeDictionaryItem(
- p, first_object, "trailer", pdf.getTrailer().getJSON(true), 1);
+ p,
+ first_object,
+ "trailer",
+ pdf.getTrailer().getJSON(this->m->json_version, true),
+ 1);
}
JSON::writeDictionaryClose(p, first_object, 1);
}
@@ -1080,11 +1088,13 @@ QPDFJob::doJSONObjectinfo(Pipeline* p, bool& first, QPDF& pdf)
j_stream.addDictionaryMember("is", JSON::makeBool(is_stream));
j_stream.addDictionaryMember(
"length",
- (is_stream ? obj.getDict().getKey("/Length").getJSON(true)
+ (is_stream ? obj.getDict().getKey("/Length").getJSON(
+ this->m->json_version, true)
: JSON::makeNull()));
j_stream.addDictionaryMember(
"filter",
- (is_stream ? obj.getDict().getKey("/Filter").getJSON(true)
+ (is_stream ? obj.getDict().getKey("/Filter").getJSON(
+ this->m->json_version, true)
: JSON::makeNull()));
JSON::writeDictionaryItem(
p, first_object, obj.unparse(), j_details, 1);
@@ -1108,7 +1118,8 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf)
++pageno;
JSON j_page = JSON::makeDictionary();
QPDFObjectHandle page = ph.getObjectHandle();
- j_page.addDictionaryMember("object", page.getJSON());
+ j_page.addDictionaryMember(
+ "object", page.getJSON(this->m->json_version));
JSON j_images = j_page.addDictionaryMember("images", JSON::makeArray());
std::map<std::string, QPDFObjectHandle> images = ph.getImages();
for (auto const& iter2: images) {
@@ -1116,17 +1127,23 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf)
j_image.addDictionaryMember("name", JSON::makeString(iter2.first));
QPDFObjectHandle image = iter2.second;
QPDFObjectHandle dict = image.getDict();
- j_image.addDictionaryMember("object", image.getJSON());
j_image.addDictionaryMember(
- "width", dict.getKey("/Width").getJSON());
+ "object", image.getJSON(this->m->json_version));
+ j_image.addDictionaryMember(
+ "width", dict.getKey("/Width").getJSON(this->m->json_version));
j_image.addDictionaryMember(
- "height", dict.getKey("/Height").getJSON());
+ "height",
+ dict.getKey("/Height").getJSON(this->m->json_version));
j_image.addDictionaryMember(
- "colorspace", dict.getKey("/ColorSpace").getJSON());
+ "colorspace",
+ dict.getKey("/ColorSpace").getJSON(this->m->json_version));
j_image.addDictionaryMember(
- "bitspercomponent", dict.getKey("/BitsPerComponent").getJSON());
+ "bitspercomponent",
+ dict.getKey("/BitsPerComponent")
+ .getJSON(this->m->json_version));
QPDFObjectHandle filters = dict.getKey("/Filter").wrapInArray();
- j_image.addDictionaryMember("filter", filters.getJSON());
+ j_image.addDictionaryMember(
+ "filter", filters.getJSON(this->m->json_version));
QPDFObjectHandle decode_parms = dict.getKey("/DecodeParms");
QPDFObjectHandle dp_array;
if (decode_parms.isArray()) {
@@ -1137,7 +1154,8 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf)
dp_array.appendItem(decode_parms);
}
}
- j_image.addDictionaryMember("decodeparms", dp_array.getJSON());
+ j_image.addDictionaryMember(
+ "decodeparms", dp_array.getJSON(this->m->json_version));
j_image.addDictionaryMember(
"filterable",
JSON::makeBool(
@@ -1148,10 +1166,11 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf)
j_page.addDictionaryMember("contents", JSON::makeArray());
std::vector<QPDFObjectHandle> content = ph.getPageContents();
for (auto& iter2: content) {
- j_contents.addArrayElement(iter2.getJSON());
+ j_contents.addArrayElement(iter2.getJSON(this->m->json_version));
}
j_page.addDictionaryMember(
- "label", pldh.getLabelForPage(pageno).getJSON());
+ "label",
+ pldh.getLabelForPage(pageno).getJSON(this->m->json_version));
JSON j_outlines =
j_page.addDictionaryMember("outlines", JSON::makeArray());
std::vector<QPDFOutlineObjectHelper> outlines =
@@ -1159,11 +1178,12 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf)
for (auto& oiter: outlines) {
JSON j_outline = j_outlines.addArrayElement(JSON::makeDictionary());
j_outline.addDictionaryMember(
- "object", oiter.getObjectHandle().getJSON());
+ "object",
+ oiter.getObjectHandle().getJSON(this->m->json_version));
j_outline.addDictionaryMember(
"title", JSON::makeString(oiter.getTitle()));
j_outline.addDictionaryMember(
- "dest", oiter.getDest().getJSON(true));
+ "dest", oiter.getDest().getJSON(this->m->json_version, true));
}
j_page.addDictionaryMember("pageposfrom1", JSON::makeInt(1 + pageno));
JSON::writeArrayItem(p, first_page, j_page, 1);
@@ -1192,25 +1212,29 @@ QPDFJob::doJSONPageLabels(Pipeline* p, bool& first, QPDF& pdf)
break;
}
JSON j_label = j_labels.addArrayElement(JSON::makeDictionary());
- j_label.addDictionaryMember("index", (*iter).getJSON());
+ j_label.addDictionaryMember(
+ "index", (*iter).getJSON(this->m->json_version));
++iter;
- j_label.addDictionaryMember("label", (*iter).getJSON());
+ j_label.addDictionaryMember(
+ "label", (*iter).getJSON(this->m->json_version));
}
}
JSON::writeDictionaryItem(p, first, "pagelabels", j_labels, 0);
}
-static void
-add_outlines_to_json(
+void
+QPDFJob::addOutlinesToJson(
std::vector<QPDFOutlineObjectHelper> outlines,
JSON& j,
std::map<QPDFObjGen, int>& page_numbers)
{
for (auto& ol: outlines) {
JSON jo = j.addArrayElement(JSON::makeDictionary());
- jo.addDictionaryMember("object", ol.getObjectHandle().getJSON());
+ jo.addDictionaryMember(
+ "object", ol.getObjectHandle().getJSON(this->m->json_version));
jo.addDictionaryMember("title", JSON::makeString(ol.getTitle()));
- jo.addDictionaryMember("dest", ol.getDest().getJSON(true));
+ jo.addDictionaryMember(
+ "dest", ol.getDest().getJSON(this->m->json_version, true));
jo.addDictionaryMember("open", JSON::makeBool(ol.getCount() >= 0));
QPDFObjectHandle page = ol.getDestPage();
JSON j_destpage = JSON::makeNull();
@@ -1222,7 +1246,7 @@ add_outlines_to_json(
}
jo.addDictionaryMember("destpageposfrom1", j_destpage);
JSON j_kids = jo.addDictionaryMember("kids", JSON::makeArray());
- add_outlines_to_json(ol.getKids(), j_kids, page_numbers);
+ addOutlinesToJson(ol.getKids(), j_kids, page_numbers);
}
}
@@ -1240,7 +1264,7 @@ QPDFJob::doJSONOutlines(Pipeline* p, bool& first, QPDF& pdf)
JSON j_outlines = JSON::makeArray();
QPDFOutlineDocumentHelper odh(pdf);
- add_outlines_to_json(odh.getTopLevelOutlines(), j_outlines, page_numbers);
+ addOutlinesToJson(odh.getTopLevelOutlines(), j_outlines, page_numbers);
JSON::writeDictionaryItem(p, first, "outlines", j_outlines, 0);
}
@@ -1265,9 +1289,11 @@ QPDFJob::doJSONAcroform(Pipeline* p, bool& first, QPDF& pdf)
QPDFFormFieldObjectHelper ffh = afdh.getFieldForAnnotation(aoh);
JSON j_field = j_fields.addArrayElement(JSON::makeDictionary());
j_field.addDictionaryMember(
- "object", ffh.getObjectHandle().getJSON());
+ "object", ffh.getObjectHandle().getJSON(this->m->json_version));
j_field.addDictionaryMember(
- "parent", ffh.getObjectHandle().getKey("/Parent").getJSON());
+ "parent",
+ ffh.getObjectHandle().getKey("/Parent").getJSON(
+ this->m->json_version));
j_field.addDictionaryMember(
"pageposfrom1", JSON::makeInt(pagepos1));
j_field.addDictionaryMember(
@@ -1282,9 +1308,11 @@ QPDFJob::doJSONAcroform(Pipeline* p, bool& first, QPDF& pdf)
"alternativename", JSON::makeString(ffh.getAlternativeName()));
j_field.addDictionaryMember(
"mappingname", JSON::makeString(ffh.getMappingName()));
- j_field.addDictionaryMember("value", ffh.getValue().getJSON());
j_field.addDictionaryMember(
- "defaultvalue", ffh.getDefaultValue().getJSON());
+ "value", ffh.getValue().getJSON(this->m->json_version));
+ j_field.addDictionaryMember(
+ "defaultvalue",
+ ffh.getDefaultValue().getJSON(this->m->json_version));
j_field.addDictionaryMember(
"quadding", JSON::makeInt(ffh.getQuadding()));
j_field.addDictionaryMember(
@@ -1303,7 +1331,7 @@ QPDFJob::doJSONAcroform(Pipeline* p, bool& first, QPDF& pdf)
JSON j_annot = j_field.addDictionaryMember(
"annotation", JSON::makeDictionary());
j_annot.addDictionaryMember(
- "object", aoh.getObjectHandle().getJSON());
+ "object", aoh.getObjectHandle().getJSON(this->m->json_version));
j_annot.addDictionaryMember(
"appearancestate", JSON::makeString(aoh.getAppearanceState()));
j_annot.addDictionaryMember(
@@ -1621,7 +1649,8 @@ QPDFJob::doJSON(QPDF& pdf, Pipeline* p)
// change is made to the JSON format. Clients of the JSON are to
// ignore unrecognized keys, so we only update the version of a
// key disappears or if its value changes meaning.
- JSON::writeDictionaryItem(p, first, "version", JSON::makeInt(1), 0);
+ JSON::writeDictionaryItem(
+ p, first, "version", JSON::makeInt(this->m->json_version), 0);
JSON j_params = JSON::makeDictionary();
std::string decode_level_str;
switch (m->decode_level) {
diff --git a/libqpdf/QPDFJob_config.cc b/libqpdf/QPDFJob_config.cc
index 621499c1..3f8f0840 100644
--- a/libqpdf/QPDFJob_config.cc
+++ b/libqpdf/QPDFJob_config.cc
@@ -235,11 +235,11 @@ QPDFJob::Config*
QPDFJob::Config::json(std::string const& parameter)
{
if (parameter.empty() || (parameter == "latest")) {
- o.m->json_version = 1;
+ o.m->json_version = JSON::LATEST;
} else {
o.m->json_version = QUtil::string_to_int(parameter.c_str());
}
- if (o.m->json_version != 1) {
+ if ((o.m->json_version < 1) || (o.m->json_version > JSON::LATEST)) {
usage(std::string("unsupported json version ") + parameter);
}
o.m->require_outfile = false;
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc
index 05a0f30d..33155097 100644
--- a/libqpdf/QPDFObjectHandle.cc
+++ b/libqpdf/QPDFObjectHandle.cc
@@ -1775,9 +1775,16 @@ QPDFObjectHandle::unparseBinary()
}
}
+// Deprecated versionless getJSON to be removed in qpdf 12
JSON
QPDFObjectHandle::getJSON(bool dereference_indirect)
{
+ return getJSON(1, dereference_indirect);
+}
+
+JSON
+QPDFObjectHandle::getJSON(int json_version, bool dereference_indirect)
+{
if ((!dereference_indirect) && this->isIndirect()) {
return JSON::makeString(unparse());
} else {
@@ -1786,7 +1793,7 @@ QPDFObjectHandle::getJSON(bool dereference_indirect)
throw std::logic_error(
"QPDFObjectHandle: attempting to unparse a reserved object");
}
- return this->obj->getJSON();
+ return this->obj->getJSON(json_version);
}
}
diff --git a/libqpdf/QPDF_Array.cc b/libqpdf/QPDF_Array.cc
index 8899bf6f..cb94d487 100644
--- a/libqpdf/QPDF_Array.cc
+++ b/libqpdf/QPDF_Array.cc
@@ -34,12 +34,12 @@ QPDF_Array::unparse()
}
JSON
-QPDF_Array::getJSON()
+QPDF_Array::getJSON(int json_version)
{
JSON j = JSON::makeArray();
size_t size = this->elements.size();
for (size_t i = 0; i < size; ++i) {
- j.addArrayElement(this->elements.at(i).getJSON());
+ j.addArrayElement(this->elements.at(i).getJSON(json_version));
}
return j;
}
diff --git a/libqpdf/QPDF_Bool.cc b/libqpdf/QPDF_Bool.cc
index e7cf7105..74d2ec3b 100644
--- a/libqpdf/QPDF_Bool.cc
+++ b/libqpdf/QPDF_Bool.cc
@@ -12,7 +12,7 @@ QPDF_Bool::unparse()
}
JSON
-QPDF_Bool::getJSON()
+QPDF_Bool::getJSON(int json_version)
{
return JSON::makeBool(this->val);
}
diff --git a/libqpdf/QPDF_Dictionary.cc b/libqpdf/QPDF_Dictionary.cc
index 44b8a474..67d59a2d 100644
--- a/libqpdf/QPDF_Dictionary.cc
+++ b/libqpdf/QPDF_Dictionary.cc
@@ -32,13 +32,14 @@ QPDF_Dictionary::unparse()
}
JSON
-QPDF_Dictionary::getJSON()
+QPDF_Dictionary::getJSON(int json_version)
{
JSON j = JSON::makeDictionary();
for (auto& iter: this->items) {
if (!iter.second.isNull()) {
j.addDictionaryMember(
- QPDF_Name::normalizeName(iter.first), iter.second.getJSON());
+ QPDF_Name::normalizeName(iter.first),
+ iter.second.getJSON(json_version));
}
}
return j;
diff --git a/libqpdf/QPDF_InlineImage.cc b/libqpdf/QPDF_InlineImage.cc
index c9e65e63..84f4fa19 100644
--- a/libqpdf/QPDF_InlineImage.cc
+++ b/libqpdf/QPDF_InlineImage.cc
@@ -14,7 +14,7 @@ QPDF_InlineImage::unparse()
}
JSON
-QPDF_InlineImage::getJSON()
+QPDF_InlineImage::getJSON(int json_version)
{
return JSON::makeNull();
}
diff --git a/libqpdf/QPDF_Integer.cc b/libqpdf/QPDF_Integer.cc
index 9401b3f9..c42fa246 100644
--- a/libqpdf/QPDF_Integer.cc
+++ b/libqpdf/QPDF_Integer.cc
@@ -14,7 +14,7 @@ QPDF_Integer::unparse()
}
JSON
-QPDF_Integer::getJSON()
+QPDF_Integer::getJSON(int json_version)
{
return JSON::makeInt(this->val);
}
diff --git a/libqpdf/QPDF_Name.cc b/libqpdf/QPDF_Name.cc
index 2e0dde97..8dc48faa 100644
--- a/libqpdf/QPDF_Name.cc
+++ b/libqpdf/QPDF_Name.cc
@@ -40,7 +40,7 @@ QPDF_Name::unparse()
}
JSON
-QPDF_Name::getJSON()
+QPDF_Name::getJSON(int json_version)
{
return JSON::makeString(normalizeName(this->name));
}
diff --git a/libqpdf/QPDF_Null.cc b/libqpdf/QPDF_Null.cc
index 0baff460..166b0302 100644
--- a/libqpdf/QPDF_Null.cc
+++ b/libqpdf/QPDF_Null.cc
@@ -7,7 +7,7 @@ QPDF_Null::unparse()
}
JSON
-QPDF_Null::getJSON()
+QPDF_Null::getJSON(int json_version)
{
return JSON::makeNull();
}
diff --git a/libqpdf/QPDF_Operator.cc b/libqpdf/QPDF_Operator.cc
index a8ccc970..f7da813a 100644
--- a/libqpdf/QPDF_Operator.cc
+++ b/libqpdf/QPDF_Operator.cc
@@ -14,7 +14,7 @@ QPDF_Operator::unparse()
}
JSON
-QPDF_Operator::getJSON()
+QPDF_Operator::getJSON(int json_version)
{
return JSON::makeNull();
}
diff --git a/libqpdf/QPDF_Real.cc b/libqpdf/QPDF_Real.cc
index 0af881eb..4b32b035 100644
--- a/libqpdf/QPDF_Real.cc
+++ b/libqpdf/QPDF_Real.cc
@@ -20,7 +20,7 @@ QPDF_Real::unparse()
}
JSON
-QPDF_Real::getJSON()
+QPDF_Real::getJSON(int json_version)
{
// While PDF allows .x or -.x, JSON does not. Rather than
// converting from string to double and back, just handle this as a
diff --git a/libqpdf/QPDF_Reserved.cc b/libqpdf/QPDF_Reserved.cc
index 94bc584f..775dee02 100644
--- a/libqpdf/QPDF_Reserved.cc
+++ b/libqpdf/QPDF_Reserved.cc
@@ -10,7 +10,7 @@ QPDF_Reserved::unparse()
}
JSON
-QPDF_Reserved::getJSON()
+QPDF_Reserved::getJSON(int json_version)
{
throw std::logic_error("attempt to generate JSON from QPDF_Reserved");
return JSON::makeNull();
diff --git a/libqpdf/QPDF_Stream.cc b/libqpdf/QPDF_Stream.cc
index 313eb835..8940b7cf 100644
--- a/libqpdf/QPDF_Stream.cc
+++ b/libqpdf/QPDF_Stream.cc
@@ -151,9 +151,10 @@ QPDF_Stream::unparse()
}
JSON
-QPDF_Stream::getJSON()
+QPDF_Stream::getJSON(int json_version)
{
- return this->stream_dict.getJSON();
+ // QXXXQ
+ return this->stream_dict.getJSON(json_version);
}
QPDFObject::object_type_e
diff --git a/libqpdf/QPDF_String.cc b/libqpdf/QPDF_String.cc
index 30d6708b..fd820998 100644
--- a/libqpdf/QPDF_String.cc
+++ b/libqpdf/QPDF_String.cc
@@ -43,8 +43,9 @@ QPDF_String::unparse()
}
JSON
-QPDF_String::getJSON()
+QPDF_String::getJSON(int json_version)
{
+ // QXXXQ
return JSON::makeString(getUTF8Val());
}
diff --git a/libqpdf/qpdf/QPDF_Array.hh b/libqpdf/qpdf/QPDF_Array.hh
index eb310b8e..f45f8006 100644
--- a/libqpdf/qpdf/QPDF_Array.hh
+++ b/libqpdf/qpdf/QPDF_Array.hh
@@ -14,7 +14,7 @@ class QPDF_Array: public QPDFObject
QPDF_Array(SparseOHArray const& items);
virtual ~QPDF_Array() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
virtual void setDescription(QPDF*, std::string const&);
diff --git a/libqpdf/qpdf/QPDF_Bool.hh b/libqpdf/qpdf/QPDF_Bool.hh
index 87f44251..576b1505 100644
--- a/libqpdf/qpdf/QPDF_Bool.hh
+++ b/libqpdf/qpdf/QPDF_Bool.hh
@@ -9,7 +9,7 @@ class QPDF_Bool: public QPDFObject
QPDF_Bool(bool val);
virtual ~QPDF_Bool() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
bool getVal() const;
diff --git a/libqpdf/qpdf/QPDF_Dictionary.hh b/libqpdf/qpdf/QPDF_Dictionary.hh
index 3c42cc0e..16801a76 100644
--- a/libqpdf/qpdf/QPDF_Dictionary.hh
+++ b/libqpdf/qpdf/QPDF_Dictionary.hh
@@ -14,7 +14,7 @@ class QPDF_Dictionary: public QPDFObject
QPDF_Dictionary(std::map<std::string, QPDFObjectHandle> const& items);
virtual ~QPDF_Dictionary() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
virtual void setDescription(QPDF*, std::string const&);
diff --git a/libqpdf/qpdf/QPDF_InlineImage.hh b/libqpdf/qpdf/QPDF_InlineImage.hh
index ee79568b..32b25093 100644
--- a/libqpdf/qpdf/QPDF_InlineImage.hh
+++ b/libqpdf/qpdf/QPDF_InlineImage.hh
@@ -9,7 +9,7 @@ class QPDF_InlineImage: public QPDFObject
QPDF_InlineImage(std::string const& val);
virtual ~QPDF_InlineImage() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
std::string getVal() const;
diff --git a/libqpdf/qpdf/QPDF_Integer.hh b/libqpdf/qpdf/QPDF_Integer.hh
index 066629b6..36001a14 100644
--- a/libqpdf/qpdf/QPDF_Integer.hh
+++ b/libqpdf/qpdf/QPDF_Integer.hh
@@ -9,7 +9,7 @@ class QPDF_Integer: public QPDFObject
QPDF_Integer(long long val);
virtual ~QPDF_Integer() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
long long getVal() const;
diff --git a/libqpdf/qpdf/QPDF_Name.hh b/libqpdf/qpdf/QPDF_Name.hh
index 102cf4a3..5ee65d02 100644
--- a/libqpdf/qpdf/QPDF_Name.hh
+++ b/libqpdf/qpdf/QPDF_Name.hh
@@ -9,7 +9,7 @@ class QPDF_Name: public QPDFObject
QPDF_Name(std::string const& name);
virtual ~QPDF_Name() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
std::string getName() const;
diff --git a/libqpdf/qpdf/QPDF_Null.hh b/libqpdf/qpdf/QPDF_Null.hh
index 3ed6ddef..9d2d6223 100644
--- a/libqpdf/qpdf/QPDF_Null.hh
+++ b/libqpdf/qpdf/QPDF_Null.hh
@@ -8,7 +8,7 @@ class QPDF_Null: public QPDFObject
public:
virtual ~QPDF_Null() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
};
diff --git a/libqpdf/qpdf/QPDF_Operator.hh b/libqpdf/qpdf/QPDF_Operator.hh
index 62a0e47b..672da728 100644
--- a/libqpdf/qpdf/QPDF_Operator.hh
+++ b/libqpdf/qpdf/QPDF_Operator.hh
@@ -9,7 +9,7 @@ class QPDF_Operator: public QPDFObject
QPDF_Operator(std::string const& val);
virtual ~QPDF_Operator() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
std::string getVal() const;
diff --git a/libqpdf/qpdf/QPDF_Real.hh b/libqpdf/qpdf/QPDF_Real.hh
index f12d6b3a..1b9878c7 100644
--- a/libqpdf/qpdf/QPDF_Real.hh
+++ b/libqpdf/qpdf/QPDF_Real.hh
@@ -10,7 +10,7 @@ class QPDF_Real: public QPDFObject
QPDF_Real(double value, int decimal_places, bool trim_trailing_zeroes);
virtual ~QPDF_Real() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
std::string getVal();
diff --git a/libqpdf/qpdf/QPDF_Reserved.hh b/libqpdf/qpdf/QPDF_Reserved.hh
index e085f2d3..a198f645 100644
--- a/libqpdf/qpdf/QPDF_Reserved.hh
+++ b/libqpdf/qpdf/QPDF_Reserved.hh
@@ -8,7 +8,7 @@ class QPDF_Reserved: public QPDFObject
public:
virtual ~QPDF_Reserved() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
};
diff --git a/libqpdf/qpdf/QPDF_Stream.hh b/libqpdf/qpdf/QPDF_Stream.hh
index ba456e76..5d8de669 100644
--- a/libqpdf/qpdf/QPDF_Stream.hh
+++ b/libqpdf/qpdf/QPDF_Stream.hh
@@ -25,7 +25,7 @@ class QPDF_Stream: public QPDFObject
size_t length);
virtual ~QPDF_Stream() = default;
virtual std::string unparse();
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
virtual void setDescription(QPDF*, std::string const&);
diff --git a/libqpdf/qpdf/QPDF_String.hh b/libqpdf/qpdf/QPDF_String.hh
index 30be0c17..df33138c 100644
--- a/libqpdf/qpdf/QPDF_String.hh
+++ b/libqpdf/qpdf/QPDF_String.hh
@@ -15,7 +15,7 @@ class QPDF_String: public QPDFObject
virtual QPDFObject::object_type_e getTypeCode() const;
virtual char const* getTypeName() const;
std::string unparse(bool force_binary);
- virtual JSON getJSON();
+ virtual JSON getJSON(int json_version);
std::string getVal() const;
std::string getUTF8Val() const;
diff --git a/libqpdf/qpdf/auto_job_init.hh b/libqpdf/qpdf/auto_job_init.hh
index 74155b80..b3191d4d 100644
--- a/libqpdf/qpdf/auto_job_init.hh
+++ b/libqpdf/qpdf/auto_job_init.hh
@@ -19,7 +19,7 @@ static char const* decode_level_choices[] = {"none", "generalized", "specialized
static char const* object_streams_choices[] = {"disable", "preserve", "generate", 0};
static char const* remove_unref_choices[] = {"auto", "yes", "no", 0};
static char const* flatten_choices[] = {"all", "print", "screen", 0};
-static char const* json_version_choices[] = {"1", "latest", 0};
+static char const* json_version_choices[] = {"1", "2", "latest", 0};
static char const* json_key_choices[] = {"acroform", "attachments", "encrypt", "objectinfo", "objects", "outlines", "pagelabels", "pages", 0};
static char const* print128_choices[] = {"full", "low", "none", 0};
static char const* modify128_choices[] = {"all", "annotate", "form", "assembly", "none", 0};
diff --git a/libqpdf/qpdf/auto_job_json_init.hh b/libqpdf/qpdf/auto_job_json_init.hh
index b2516469..92c4d65c 100644
--- a/libqpdf/qpdf/auto_job_json_init.hh
+++ b/libqpdf/qpdf/auto_job_json_init.hh
@@ -12,7 +12,7 @@ static char const* decode_level_choices[] = {"none", "generalized", "specialized
static char const* object_streams_choices[] = {"disable", "preserve", "generate", 0};
static char const* remove_unref_choices[] = {"auto", "yes", "no", 0};
static char const* flatten_choices[] = {"all", "print", "screen", 0};
-static char const* json_version_choices[] = {"1", "latest", 0};
+static char const* json_version_choices[] = {"1", "2", "latest", 0};
static char const* json_key_choices[] = {"acroform", "attachments", "encrypt", "objectinfo", "objects", "outlines", "pagelabels", "pages", 0};
static char const* print128_choices[] = {"full", "low", "none", 0};
static char const* modify128_choices[] = {"all", "annotate", "form", "assembly", "none", 0};