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,7 +1090,10 @@ QPDFJob::doJSONObjectinfo(Pipeline* p, bool& first, QPDF& pdf)
1090 void 1090 void
1091 QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf) 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 QPDFPageDocumentHelper pdh(pdf); 1097 QPDFPageDocumentHelper pdh(pdf);
1095 QPDFPageLabelDocumentHelper pldh(pdf); 1098 QPDFPageLabelDocumentHelper pldh(pdf);
1096 QPDFOutlineDocumentHelper odh(pdf); 1099 QPDFOutlineDocumentHelper odh(pdf);
@@ -1098,7 +1101,7 @@ QPDFJob::doJSONPages(Pipeline* p, bool&amp; first, QPDF&amp; pdf) @@ -1098,7 +1101,7 @@ QPDFJob::doJSONPages(Pipeline* p, bool&amp; first, QPDF&amp; pdf)
1098 int pageno = -1; 1101 int pageno = -1;
1099 for (auto& ph: pages) { 1102 for (auto& ph: pages) {
1100 ++pageno; 1103 ++pageno;
1101 - JSON j_page = j_pages.addArrayElement(JSON::makeDictionary()); 1104 + JSON j_page = JSON::makeDictionary();
1102 QPDFObjectHandle page = ph.getObjectHandle(); 1105 QPDFObjectHandle page = ph.getObjectHandle();
1103 j_page.addDictionaryMember("object", page.getJSON()); 1106 j_page.addDictionaryMember("object", page.getJSON());
1104 JSON j_images = j_page.addDictionaryMember("images", JSON::makeArray()); 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,8 +1161,9 @@ QPDFJob::doJSONPages(Pipeline* p, bool&amp; first, QPDF&amp; pdf)
1158 "dest", oiter.getDest().getJSON(true)); 1161 "dest", oiter.getDest().getJSON(true));
1159 } 1162 }
1160 j_page.addDictionaryMember("pageposfrom1", JSON::makeInt(1 + pageno)); 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 void 1169 void