Commit 4c3155b73a3a5f9ebc649dcf655bfebc8f79e808
1 parent
0a0eb92a
Refactor: replace direct `_qpdf` parsing with structured `Dictionary`/`Name` API…
… for improved code readability and maintainability.
Showing
5 changed files
with
12 additions
and
12 deletions
libqpdf/NNTree.cc
| ... | ... | @@ -872,7 +872,7 @@ QPDFNameTreeObjectHelper::QPDFNameTreeObjectHelper( |
| 872 | 872 | QPDFNameTreeObjectHelper |
| 873 | 873 | QPDFNameTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair) |
| 874 | 874 | { |
| 875 | - return {qpdf.makeIndirectObject("<< /Names [] >>"_qpdf), qpdf, auto_repair}; | |
| 875 | + return {qpdf.makeIndirectObject(Dictionary({{"/Names", Array::empty()}})), qpdf, auto_repair}; | |
| 876 | 876 | } |
| 877 | 877 | |
| 878 | 878 | QPDFNameTreeObjectHelper::iterator::iterator(std::shared_ptr<NNTreeIterator> const& i) : |
| ... | ... | @@ -1068,7 +1068,7 @@ QPDFNumberTreeObjectHelper::QPDFNumberTreeObjectHelper( |
| 1068 | 1068 | QPDFNumberTreeObjectHelper |
| 1069 | 1069 | QPDFNumberTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair) |
| 1070 | 1070 | { |
| 1071 | - return {qpdf.makeIndirectObject("<< /Nums [] >>"_qpdf), qpdf, auto_repair}; | |
| 1071 | + return {qpdf.makeIndirectObject(Dictionary({{"/Nums", Array::empty()}})), qpdf, auto_repair}; | |
| 1072 | 1072 | } |
| 1073 | 1073 | |
| 1074 | 1074 | QPDFNumberTreeObjectHelper::iterator::iterator(std::shared_ptr<NNTreeIterator> const& i) : | ... | ... |
libqpdf/QPDFJob.cc
| ... | ... | @@ -1883,7 +1883,7 @@ QPDFJob::doUnderOverlayForPage( |
| 1883 | 1883 | fo[from_no.no][uo_idx], name, dest_page.getTrimBox().getArrayAsRectangle(), cm); |
| 1884 | 1884 | dest_page.copyAnnotations(from_page, cm, &dest_afdh, &from_page.qpdf()->doc().acroform()); |
| 1885 | 1885 | if (!new_content.empty()) { |
| 1886 | - resources.mergeResources("<< /XObject << >> >>"_qpdf); | |
| 1886 | + resources.mergeResources(Dictionary({{"/XObject", Dictionary::empty()}})); | |
| 1887 | 1887 | auto xobject = resources.getKey("/XObject"); |
| 1888 | 1888 | if (xobject.isDictionary()) { |
| 1889 | 1889 | xobject.replaceKey(name, fo[from_no.no][uo_idx]); | ... | ... |
libqpdf/QPDFPageLabelDocumentHelper.cc
| ... | ... | @@ -131,19 +131,19 @@ QPDFPageLabelDocumentHelper::pageLabelDict( |
| 131 | 131 | case pl_none: |
| 132 | 132 | break; |
| 133 | 133 | case pl_digits: |
| 134 | - num.replaceKey("/S", "/D"_qpdf); | |
| 134 | + num.replaceKey("/S", Name("/D")); | |
| 135 | 135 | break; |
| 136 | 136 | case pl_alpha_lower: |
| 137 | - num.replaceKey("/S", "/a"_qpdf); | |
| 137 | + num.replaceKey("/S", Name("/a")); | |
| 138 | 138 | break; |
| 139 | 139 | case pl_alpha_upper: |
| 140 | - num.replaceKey("/S", "/A"_qpdf); | |
| 140 | + num.replaceKey("/S", Name("/A")); | |
| 141 | 141 | break; |
| 142 | 142 | case pl_roman_lower: |
| 143 | - num.replaceKey("/S", "/r"_qpdf); | |
| 143 | + num.replaceKey("/S", Name("/r")); | |
| 144 | 144 | break; |
| 145 | 145 | case pl_roman_upper: |
| 146 | - num.replaceKey("/S", "/R"_qpdf); | |
| 146 | + num.replaceKey("/S", Name("/R")); | |
| 147 | 147 | break; |
| 148 | 148 | } |
| 149 | 149 | if (!prefix.empty()) { | ... | ... |
libqpdf/QPDFPageObjectHelper.cc
| ... | ... | @@ -406,7 +406,7 @@ QPDFPageObjectHelper::externalizeInlineImages(size_t min_size, bool shallow) |
| 406 | 406 | QPDFObjectHandle resources = getAttribute("/Resources", true); |
| 407 | 407 | // Calling mergeResources also ensures that /XObject becomes direct and is not shared with |
| 408 | 408 | // other pages. |
| 409 | - resources.mergeResources("<< /XObject << >> >>"_qpdf); | |
| 409 | + resources.mergeResources(Dictionary({{"/XObject", Dictionary::empty()}})); | |
| 410 | 410 | InlineImageTracker iit(oh().getOwningQPDF(), min_size, resources); |
| 411 | 411 | Pl_Buffer b("new page content"); |
| 412 | 412 | bool filtered = false; | ... | ... |
libqpdf/QPDF_pages.cc
| ... | ... | @@ -121,7 +121,7 @@ Pages::getAllPagesInternal( |
| 121 | 121 | // Unconditionally setting the /Type to /Pages could cause problems, but trying to |
| 122 | 122 | // accommodate the possibility may be excessive. |
| 123 | 123 | cur_node.warn("/Type key should be /Pages but is not; overriding"); |
| 124 | - cur_node.replaceKey("/Type", "/Pages"_qpdf); | |
| 124 | + cur_node.replaceKey("/Type", Name("/Pages")); | |
| 125 | 125 | } |
| 126 | 126 | if (!media_box) { |
| 127 | 127 | media_box = cur_node.getKey("/MediaBox").isRectangle(); |
| ... | ... | @@ -226,7 +226,7 @@ Pages::getAllPagesInternal( |
| 226 | 226 | } |
| 227 | 227 | if (!kid.isDictionaryOfType("/Page")) { |
| 228 | 228 | kid.warn("/Type key should be /Page but is not; overriding"); |
| 229 | - kid.replaceKey("/Type", "/Page"_qpdf); | |
| 229 | + kid.replaceKey("/Type", Name("/Page")); | |
| 230 | 230 | ++errors; |
| 231 | 231 | } |
| 232 | 232 | if (m->reconstructed_xref && errors > 2) { |
| ... | ... | @@ -698,7 +698,7 @@ Pages::flatten_annotations_for_page( |
| 698 | 698 | std::string content = |
| 699 | 699 | aoh.getPageContentForAppearance(name, rotate, required_flags, forbidden_flags); |
| 700 | 700 | if (!content.empty()) { |
| 701 | - resources.mergeResources("<< /XObject << >> >>"_qpdf); | |
| 701 | + resources.mergeResources(Dictionary({{"/XObject", Dictionary({{name, as}})}})); | |
| 702 | 702 | resources.getKey("/XObject").replaceKey(name, as); |
| 703 | 703 | ++next_fx; |
| 704 | 704 | } | ... | ... |