aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFJob.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-05-07 00:46:38 +0200
committerJay Berkenbilt <ejb@ql.org>2022-05-07 14:26:31 +0200
commitf50274ef4660cb21177937ff49c9d11675cef8a9 (patch)
treef5a03c4893f48d23cffe1d166b2aee9fbdd7873e /libqpdf/QPDFJob.cc
parent1615d7feafe37dac5ce325f794605b9a59b51a20 (diff)
downloadqpdf-f50274ef4660cb21177937ff49c9d11675cef8a9.tar.zst
Pages json: write each page incrementally
Diffstat (limited to 'libqpdf/QPDFJob.cc')
-rw-r--r--libqpdf/QPDFJob.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc
index 3591468d..5621ef5e 100644
--- a/libqpdf/QPDFJob.cc
+++ b/libqpdf/QPDFJob.cc
@@ -1090,7 +1090,10 @@ QPDFJob::doJSONObjectinfo(Pipeline* p, bool& first, QPDF& pdf)
void
QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf)
{
- JSON j_pages = JSON::makeArray();
+ JSON::writeNext(p, first, 0);
+ *p << "\"pages\": ";
+ bool first_page = true;
+ JSON::writeArrayOpen(p, first_page, 1);
QPDFPageDocumentHelper pdh(pdf);
QPDFPageLabelDocumentHelper pldh(pdf);
QPDFOutlineDocumentHelper odh(pdf);
@@ -1098,7 +1101,7 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf)
int pageno = -1;
for (auto& ph: pages) {
++pageno;
- JSON j_page = j_pages.addArrayElement(JSON::makeDictionary());
+ JSON j_page = JSON::makeDictionary();
QPDFObjectHandle page = ph.getObjectHandle();
j_page.addDictionaryMember("object", page.getJSON());
JSON j_images = j_page.addDictionaryMember("images", JSON::makeArray());
@@ -1158,8 +1161,9 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf)
"dest", oiter.getDest().getJSON(true));
}
j_page.addDictionaryMember("pageposfrom1", JSON::makeInt(1 + pageno));
+ JSON::writeArrayItem(p, first_page, j_page, 1);
}
- JSON::writeDictionaryItem(p, first, "pages", j_pages, 0);
+ JSON::writeArrayClose(p, first_page, 1);
}
void