From 63ea46193d4ce4cbd1dc37becad4645b0e75769b Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Thu, 31 Dec 2020 13:23:49 -0500 Subject: [PATCH] QPDFPageObjectHelper: getPageImages -> getImages --- ChangeLog | 5 +++++ examples/pdf-create.cc | 2 +- examples/pdf-invert-images.cc | 2 +- fuzz/qpdf_fuzzer.cc | 2 +- include/qpdf/QPDFPageObjectHelper.hh | 4 ++++ libqpdf/QPDFObjectHandle.cc | 2 +- libqpdf/QPDFPageObjectHelper.cc | 6 ++++++ qpdf/qpdf.cc | 9 +++------ qpdf/test_driver.cc | 5 ++--- 9 files changed, 24 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 79ed223a..c598b104 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2020-12-31 Jay Berkenbilt + * Rename QPDFPageObjectHelper::getPageImages to + QPDFPageObjectHelper::getImages and make it support form XObjects + as well as pages. The old name will be preserved for + compatibility. + * Add QPDFObjectHandle::isFormXObject to test whether an object is a form XObject. diff --git a/examples/pdf-create.cc b/examples/pdf-create.cc index b27d4e17..44405d38 100644 --- a/examples/pdf-create.cc +++ b/examples/pdf-create.cc @@ -268,7 +268,7 @@ static void check(char const* filename, page_iter != pages.end(); ++page_iter) { QPDFPageObjectHelper& page(*page_iter); - std::map images = page.getPageImages(); + std::map images = page.getImages(); if (images.size() != 1) { throw std::logic_error("incorrect number of images on page"); diff --git a/examples/pdf-invert-images.cc b/examples/pdf-invert-images.cc index 3a0afca4..72a15f2c 100644 --- a/examples/pdf-invert-images.cc +++ b/examples/pdf-invert-images.cc @@ -159,7 +159,7 @@ int main(int argc, char* argv[]) QPDFPageObjectHelper& page(*iter); // Get all images on the page. std::map images = - page.getPageImages(); + page.getImages(); for (auto& iter2: images) { QPDFObjectHandle& image = iter2.second; diff --git a/fuzz/qpdf_fuzzer.cc b/fuzz/qpdf_fuzzer.cc index eb6791a4..195cf5bb 100644 --- a/fuzz/qpdf_fuzzer.cc +++ b/fuzz/qpdf_fuzzer.cc @@ -143,7 +143,7 @@ FuzzHelper::testPages() { page.coalesceContentStreams(); page.parsePageContents(&discard_contents); - page.getPageImages(); + page.getImages(); pldh.getLabelForPage(pageno); QPDFObjectHandle page_obj(page.getObjectHandle()); page_obj.getJSON(true).unparse(); diff --git a/include/qpdf/QPDFPageObjectHelper.hh b/include/qpdf/QPDFPageObjectHelper.hh index e6f9f76d..5b63a70d 100644 --- a/include/qpdf/QPDFPageObjectHelper.hh +++ b/include/qpdf/QPDFPageObjectHelper.hh @@ -78,6 +78,10 @@ class QPDFPageObjectHelper: public QPDFObjectHelper // name to the image object, which is always a stream. Works with // form XObjects as well as pages. QPDF_DLL + std::map getImages(); + + // Old name -- calls getImages() + QPDF_DLL std::map getPageImages(); // Convert each inline image to an external (normal) image if the diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index d5d199d9..180ccfa3 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -1320,7 +1320,7 @@ QPDFObjectHandle::getGeneration() const std::map QPDFObjectHandle::getPageImages() { - return QPDFPageObjectHelper(*this).getPageImages(); + return QPDFPageObjectHelper(*this).getImages(); } std::vector diff --git a/libqpdf/QPDFPageObjectHelper.cc b/libqpdf/QPDFPageObjectHelper.cc index 0e9792a6..c26744ac 100644 --- a/libqpdf/QPDFPageObjectHelper.cc +++ b/libqpdf/QPDFPageObjectHelper.cc @@ -388,6 +388,12 @@ QPDFPageObjectHelper::getMediaBox(bool copy_if_shared) std::map QPDFPageObjectHelper::getPageImages() +{ + return getImages(); +} + +std::map +QPDFPageObjectHelper::getImages() { std::map result; QPDFObjectHandle resources = getAttribute("/Resources", false); diff --git a/qpdf/qpdf.cc b/qpdf/qpdf.cc index 19d7b0c4..70a5746a 100644 --- a/qpdf/qpdf.cc +++ b/qpdf/qpdf.cc @@ -3639,8 +3639,7 @@ static void do_show_pages(QPDF& pdf, Options& o) << page.getGeneration() << " R" << std::endl; if (o.show_page_images) { - std::map images = - ph.getPageImages(); + std::map images = ph.getImages(); if (! images.empty()) { std::cout << " images:" << std::endl; @@ -3765,8 +3764,7 @@ static void do_json_pages(QPDF& pdf, Options& o, JSON& j) j_page.addDictionaryMember("object", page.getJSON()); JSON j_images = j_page.addDictionaryMember( "images", JSON::makeArray()); - std::map images = - ph.getPageImages(); + std::map images = ph.getImages(); for (auto const& iter2: images) { JSON j_image = j_images.addArrayElement(JSON::makeDictionary()); @@ -4785,8 +4783,7 @@ static void handle_transformations(QPDF& pdf, Options& o) ++pageno; QPDFPageObjectHelper& ph(*iter); QPDFObjectHandle page = ph.getObjectHandle(); - std::map images = - ph.getPageImages(); + std::map images = ph.getImages(); for (auto& iter2: images) { std::string name = iter2.first; diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc index b373e5bc..d8b40a0f 100644 --- a/qpdf/test_driver.cc +++ b/qpdf/test_driver.cc @@ -516,8 +516,7 @@ void runtest(int n, char const* filename1, char const* arg2) std::cout << "page " << pageno << ":" << std::endl; std::cout << " images:" << std::endl; - std::map images = - page.getPageImages(); + std::map images = page.getImages(); for (auto const& iter2: images) { std::string const& name = iter2.first; @@ -1488,7 +1487,7 @@ void runtest(int n, char const* filename1, char const* arg2) { std::cout << "page " << ++pageno << std::endl; std::map images = - (*p_iter).getPageImages(); + (*p_iter).getImages(); for (std::map::iterator i_iter = images.begin(); i_iter != images.end(); ++i_iter) {