summaryrefslogtreecommitdiffstats
path: root/qpdf/pdf_from_scratch.cc
diff options
context:
space:
mode:
Diffstat (limited to 'qpdf/pdf_from_scratch.cc')
-rw-r--r--qpdf/pdf_from_scratch.cc63
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);