diff options
Diffstat (limited to 'qpdf/pdf_from_scratch.cc')
-rw-r--r-- | qpdf/pdf_from_scratch.cc | 63 |
1 files changed, 27 insertions, 36 deletions
diff --git a/qpdf/pdf_from_scratch.cc b/qpdf/pdf_from_scratch.cc index 22d1999e..2d7d8a3d 100644 --- a/qpdf/pdf_from_scratch.cc +++ b/qpdf/pdf_from_scratch.cc @@ -40,49 +40,40 @@ void runtest(int n) { // Create a minimal PDF from scratch. - std::map<std::string, QPDFObjectHandle> keys; - std::vector<QPDFObjectHandle> items; - - keys.clear(); - keys["/Type"] = newName("/Font"); - keys["/Subtype"] = newName("/Type1"); - keys["/Name"] = newName("/F1"); - keys["/BaseFont"] = newName("/Helvetica"); - keys["/Encoding"] = newName("/WinAnsiEncoding"); QPDFObjectHandle font = pdf.makeIndirectObject( - QPDFObjectHandle::newDictionary(keys)); + QPDFObjectHandle::newDictionary()); + font.replaceKey("/Type", newName("/Font")); + font.replaceKey("/Subtype", newName("/Type1")); + font.replaceKey("/Name", newName("/F1")); + font.replaceKey("/BaseFont", newName("/Helvetica")); + font.replaceKey("/Encoding", newName("/WinAnsiEncoding")); - items.clear(); - items.push_back(newName("/PDF")); - items.push_back(newName("/Text")); QPDFObjectHandle procset = pdf.makeIndirectObject( - QPDFObjectHandle::newArray(items)); + QPDFObjectHandle::newArray()); + procset.appendItem(newName("/PDF")); + procset.appendItem(newName("/Text")); QPDFObjectHandle contents = createPageContents(pdf, "First Page"); - items.clear(); - items.push_back(QPDFObjectHandle::newInteger(0)); - items.push_back(QPDFObjectHandle::newInteger(0)); - items.push_back(QPDFObjectHandle::newInteger(612)); - items.push_back(QPDFObjectHandle::newInteger(792)); - QPDFObjectHandle mediabox = QPDFObjectHandle::newArray(items); - - keys.clear(); - keys["/F1"] = font; - QPDFObjectHandle rfont = QPDFObjectHandle::newDictionary(keys); - - keys.clear(); - keys["/ProcSet"] = procset; - keys["/Font"] = rfont; - QPDFObjectHandle resources = QPDFObjectHandle::newDictionary(keys); - - keys.clear(); - keys["/Type"] = newName("/Page"); - keys["/MediaBox"] = mediabox; - keys["/Contents"] = contents; - keys["/Resources"] = resources; + QPDFObjectHandle mediabox = QPDFObjectHandle::newArray(); + mediabox.appendItem(QPDFObjectHandle::newInteger(0)); + mediabox.appendItem(QPDFObjectHandle::newInteger(0)); + mediabox.appendItem(QPDFObjectHandle::newInteger(612)); + mediabox.appendItem(QPDFObjectHandle::newInteger(792)); + + QPDFObjectHandle rfont = QPDFObjectHandle::newDictionary(); + rfont.replaceKey("/F1", font); + + QPDFObjectHandle resources = QPDFObjectHandle::newDictionary(); + resources.replaceKey("/ProcSet", procset); + resources.replaceKey("/Font", rfont); + QPDFObjectHandle page = pdf.makeIndirectObject( - QPDFObjectHandle::newDictionary(keys)); + QPDFObjectHandle::newDictionary()); + page.replaceKey("/Type", newName("/Page")); + page.replaceKey("/MediaBox", mediabox); + page.replaceKey("/Contents", contents); + page.replaceKey("/Resources", resources); pdf.addPage(page, true); |