diff options
author | m-holger <m-holger@kubitscheck.org> | 2024-02-16 16:50:30 +0100 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2024-02-16 16:50:30 +0100 |
commit | 4f54508f7f3b9d9d97b1163156a89bfad582a5ea (patch) | |
tree | 899c6e66c36a2bb657bfd12f0a4c779f4eea1f76 /libqpdf/QPDFJob.cc | |
parent | f0bc2f11ef4f096b1338dd5fc91e3c4d88b3b9e0 (diff) | |
download | qpdf-4f54508f7f3b9d9d97b1163156a89bfad582a5ea.tar.zst |
Refactor QPDFJob::doJSONObjects
Diffstat (limited to 'libqpdf/QPDFJob.cc')
-rw-r--r-- | libqpdf/QPDFJob.cc | 37 |
1 files changed, 11 insertions, 26 deletions
diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index a699e38d..a85ff0a2 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -955,23 +955,6 @@ QPDFJob::getWantedJSONObjects() } void -QPDFJob::doJSONObject(Pipeline* p, bool& first, std::string const& key, QPDFObjectHandle& obj) -{ - if (m->json_version == 1) { - JSON::writeDictionaryItem(p, first, key, obj.getJSON(1, true), 2); - } else { - auto j = JSON::makeDictionary(); - if (obj.isStream()) { - j.addDictionaryMember("stream", JSON::makeDictionary()) - .addDictionaryMember("dict", obj.getDict().getJSON(m->json_version, true)); - } else { - j.addDictionaryMember("value", obj.getJSON(m->json_version, true)); - } - JSON::writeDictionaryItem(p, first, key, j, 2); - } -} - -void QPDFJob::doJSONObjects(Pipeline* p, bool& first, QPDF& pdf) { if (m->json_version == 1) { @@ -982,16 +965,17 @@ QPDFJob::doJSONObjects(Pipeline* p, bool& first, QPDF& pdf) auto wanted_og = getWantedJSONObjects(); for (auto& obj: pdf.getAllObjects()) { std::string key = obj.unparse(); - if (m->json_version > 1) { - key = "obj:" + key; - } + if (all_objects || wanted_og.count(obj.getObjGen())) { - doJSONObject(p, first_object, key, obj); + JSON::writeDictionaryKey(p, first_object, obj.unparse(), 2); + obj.writeJSON(1, p, true, 2); + first_object = false; } } if (all_objects || m->json_objects.count("trailer")) { - auto trailer = pdf.getTrailer(); - doJSONObject(p, first_object, "trailer", trailer); + JSON::writeDictionaryKey(p, first_object, "trailer", 2); + pdf.getTrailer().writeJSON(1, p, true, 2); + first_object = false; } JSON::writeDictionaryClose(p, first_object, 1); } else { @@ -3097,9 +3081,10 @@ QPDFJob::writeOutfile(QPDF& pdf) try { QUtil::remove_file(backup.c_str()); } catch (QPDFSystemError& e) { - *m->log->getError() << m->message_prefix << ": unable to delete original file (" - << e.what() << ");" << " original file left in " << backup - << ", but the input was successfully replaced\n"; + *m->log->getError() + << m->message_prefix << ": unable to delete original file (" << e.what() << ");" + << " original file left in " << backup + << ", but the input was successfully replaced\n"; } } } |