diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-05-08 19:42:16 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2022-05-16 19:41:40 +0200 |
commit | 4fe2e06b4787ffb639f965ac840b51018308ec07 (patch) | |
tree | 667474624e264384d544cbed4324b909478f3450 /libqpdf/QPDFJob.cc | |
parent | ed6130036c65124cb236e709201330404a4b1d72 (diff) | |
download | qpdf-4fe2e06b4787ffb639f965ac840b51018308ec07.tar.zst |
Add --create-from-json and --update-from-json arguments
Also add stubs for top-level QPDF methods (createFromJSON,
updateFromJSON)
Diffstat (limited to 'libqpdf/QPDFJob.cc')
-rw-r--r-- | libqpdf/QPDFJob.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index 55bebdcb..41e57c58 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -553,6 +553,13 @@ QPDFJob::run() if (m->check_is_encrypted || m->check_requires_password) { return; } + + // If we are updating from JSON, this has to be done first before + // other options may cause transformations to the input. + if (!this->m->update_from_json.empty()) { + pdf.updateFromJSON(this->m->update_from_json); + } + bool other_warnings = false; std::vector<std::shared_ptr<QPDF>> page_heap; if (!m->page_specs.empty()) { @@ -1937,7 +1944,11 @@ QPDFJob::doProcessOnce( auto pdf = std::make_shared<QPDF>(); setQPDFOptions(*pdf); if (empty) { - pdf->emptyPDF(); + if (!this->m->create_from_json.empty()) { + pdf->createFromJSON(this->m->create_from_json); + } else { + pdf->emptyPDF(); + } } else { fn(pdf.get(), password); } |