Commit f50274ef4660cb21177937ff49c9d11675cef8a9

Authored by Jay Berkenbilt
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&amp; first, QPDF&amp; 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&amp; first, QPDF&amp; 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
... ...