Commit 1253d1be60bd74a94ba78ff7064a8e7fce1ab514

Authored by m-holger
Committed by Jay Berkenbilt
1 parent 33e8195c

Tidy pdf-create example

Convert loop to use range-based for statement.
Remove unnecessary variables.
Showing 1 changed file with 15 additions and 27 deletions
examples/pdf-create.cc
... ... @@ -182,15 +182,15 @@ void add_page(QPDFPageDocumentHelper& dh, QPDFObjectHandle font,
182 182 size_t width = p->getWidth();
183 183 size_t height = p->getHeight();
184 184 QPDFObjectHandle image = QPDFObjectHandle::newStream(&pdf);
185   - image.replaceDict("<<"
  185 + auto image_dict = "<<"
186 186 " /Type /XObject"
187 187 " /Subtype /Image"
188 188 " /BitsPerComponent 8"
189   - ">>"_qpdf);
190   - QPDFObjectHandle image_dict = image.getDict();
  189 + ">>"_qpdf;
191 190 image_dict.replaceKey("/ColorSpace", newName(color_space));
192 191 image_dict.replaceKey("/Width", newInteger(width));
193 192 image_dict.replaceKey("/Height", newInteger(height));
  193 + image.replaceDict(image_dict);
194 194  
195 195 // Provide the stream data.
196 196 image.replaceStreamData(provider,
... ... @@ -211,21 +211,16 @@ void add_page(QPDFPageDocumentHelper&amp; dh, QPDFObjectHandle font,
211 211 resources.replaceKey("/Font", rfont);
212 212 resources.replaceKey("/XObject", xobject);
213 213  
214   - QPDFObjectHandle mediabox = QPDFObjectHandle::newArray();
215   - mediabox.appendItem(newInteger(0));
216   - mediabox.appendItem(newInteger(0));
217   - mediabox.appendItem(newInteger(612));
218   - mediabox.appendItem(newInteger(392));
219   -
220 214 // Create the page content stream
221 215 QPDFObjectHandle contents = createPageContents(
222 216 pdf, color_space + " with filter " + filter);
223 217  
224 218 // Create the page dictionary
225 219 QPDFObjectHandle page = pdf.makeIndirectObject(
226   - QPDFObjectHandle::newDictionary());
227   - page.replaceKey("/Type", newName("/Page"));
228   - page.replaceKey("/MediaBox", mediabox);
  220 + "<<"
  221 + " /Type /Page"
  222 + " /MediaBox [0 0 612 392]"
  223 + ">>"_qpdf);
229 224 page.replaceKey("/Contents", contents);
230 225 page.replaceKey("/Resources", resources);
231 226  
... ... @@ -257,20 +252,16 @@ static void check(char const* filename,
257 252  
258 253 QPDF pdf;
259 254 pdf.processFile(filename);
260   - QPDFPageDocumentHelper dh(pdf);
261   - std::vector<QPDFPageObjectHelper> pages = dh.getAllPages();
  255 + auto pages = QPDFPageDocumentHelper(pdf).getAllPages();
262 256 if (n_color_spaces * n_filters != pages.size())
263 257 {
264 258 throw std::logic_error("incorrect number of pages");
265 259 }
266 260 size_t pageno = 1;
267 261 bool errors = false;
268   - for (std::vector<QPDFPageObjectHelper>::iterator page_iter =
269   - pages.begin();
270   - page_iter != pages.end(); ++page_iter)
  262 + for (auto& page : pages)
271 263 {
272   - QPDFPageObjectHelper& page(*page_iter);
273   - std::map<std::string, QPDFObjectHandle> images = page.getImages();
  264 + auto images = page.getImages();
274 265 if (images.size() != 1)
275 266 {
276 267 throw std::logic_error("incorrect number of images on page");
... ... @@ -279,8 +270,7 @@ static void check(char const* filename,
279 270 // Check filter and color space.
280 271 std::string desired_color_space =
281 272 color_spaces[(pageno - 1) / n_color_spaces];
282   - std::string desired_filter =
283   - filters[(pageno - 1) % n_filters];
  273 + std::string desired_filter = filters[(pageno - 1) % n_filters];
284 274 // In the default mode, QPDFWriter will compress with
285 275 // /FlateDecode if no filters are provided.
286 276 if (desired_filter == "null")
... ... @@ -310,7 +300,7 @@ static void check(char const* filename,
310 300 if (! this_errors)
311 301 {
312 302 // Check image data
313   - PointerHolder<Buffer> actual_data =
  303 + auto actual_data =
314 304 image.getStreamData(qpdf_dl_all);
315 305 ImageProvider* p = new ImageProvider(desired_color_space, "null");
316 306 PointerHolder<QPDFObjectHandle::StreamDataProvider> provider(p);
... ... @@ -399,13 +389,11 @@ static void create_pdf(char const* filename)
399 389 filters.push_back("/DCTDecode");
400 390 filters.push_back("/RunLengthDecode");
401 391 QPDFPageDocumentHelper dh(pdf);
402   - for (std::vector<std::string>::iterator c_iter = color_spaces.begin();
403   - c_iter != color_spaces.end(); ++c_iter)
  392 + for (auto const& color_space : color_spaces)
404 393 {
405   - for (std::vector<std::string>::iterator f_iter = filters.begin();
406   - f_iter != filters.end(); ++f_iter)
  394 + for (auto const& filter : filters)
407 395 {
408   - add_page(dh, font, *c_iter, *f_iter);
  396 + add_page(dh, font, color_space, filter);
409 397 }
410 398 }
411 399  
... ...