From 4fe2e06b4787ffb639f965ac840b51018308ec07 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sun, 8 May 2022 13:42:16 -0400 Subject: Add --create-from-json and --update-from-json arguments Also add stubs for top-level QPDF methods (createFromJSON, updateFromJSON) --- libqpdf/QPDFJob.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'libqpdf/QPDFJob.cc') 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> page_heap; if (!m->page_specs.empty()) { @@ -1937,7 +1944,11 @@ QPDFJob::doProcessOnce( auto pdf = std::make_shared(); 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); } -- cgit v1.2.3-54-g00ecf