Commit f50274ef4660cb21177937ff49c9d11675cef8a9
1 parent
1615d7fe
Pages json: write each page incrementally
Showing
1 changed file
with
7 additions
and
3 deletions
libqpdf/QPDFJob.cc
| ... | ... | @@ -1090,7 +1090,10 @@ QPDFJob::doJSONObjectinfo(Pipeline* p, bool& first, QPDF& pdf) |
| 1090 | 1090 | void |
| 1091 | 1091 | QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf) |
| 1092 | 1092 | { |
| 1093 | - JSON j_pages = JSON::makeArray(); | |
| 1093 | + JSON::writeNext(p, first, 0); | |
| 1094 | + *p << "\"pages\": "; | |
| 1095 | + bool first_page = true; | |
| 1096 | + JSON::writeArrayOpen(p, first_page, 1); | |
| 1094 | 1097 | QPDFPageDocumentHelper pdh(pdf); |
| 1095 | 1098 | QPDFPageLabelDocumentHelper pldh(pdf); |
| 1096 | 1099 | QPDFOutlineDocumentHelper odh(pdf); |
| ... | ... | @@ -1098,7 +1101,7 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf) |
| 1098 | 1101 | int pageno = -1; |
| 1099 | 1102 | for (auto& ph: pages) { |
| 1100 | 1103 | ++pageno; |
| 1101 | - JSON j_page = j_pages.addArrayElement(JSON::makeDictionary()); | |
| 1104 | + JSON j_page = JSON::makeDictionary(); | |
| 1102 | 1105 | QPDFObjectHandle page = ph.getObjectHandle(); |
| 1103 | 1106 | j_page.addDictionaryMember("object", page.getJSON()); |
| 1104 | 1107 | JSON j_images = j_page.addDictionaryMember("images", JSON::makeArray()); |
| ... | ... | @@ -1158,8 +1161,9 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf) |
| 1158 | 1161 | "dest", oiter.getDest().getJSON(true)); |
| 1159 | 1162 | } |
| 1160 | 1163 | j_page.addDictionaryMember("pageposfrom1", JSON::makeInt(1 + pageno)); |
| 1164 | + JSON::writeArrayItem(p, first_page, j_page, 1); | |
| 1161 | 1165 | } |
| 1162 | - JSON::writeDictionaryItem(p, first, "pages", j_pages, 0); | |
| 1166 | + JSON::writeArrayClose(p, first_page, 1); | |
| 1163 | 1167 | } |
| 1164 | 1168 | |
| 1165 | 1169 | void | ... | ... |