diff options
author | Jay Berkenbilt <ejb@ql.org> | 2020-03-31 18:28:54 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2020-03-31 23:39:20 +0200 |
commit | 278710fbe855b82ce0db1b1f1d8f969798872b6c (patch) | |
tree | 55539a13ab994adb95f64955291ce4d34ad4be2c /include | |
parent | b03e6bd65d2144ec3b200c04514bc95cabfc085f (diff) | |
download | qpdf-278710fbe855b82ce0db1b1f1d8f969798872b6c.tar.zst |
Refactor QPDFPageObjectHelper::removeUnreferencedResources()
Refactor removeUnreferencedResources to prepare for filtering form
XObjects.
Diffstat (limited to 'include')
-rw-r--r-- | include/qpdf/QPDFObjectHandle.hh | 6 | ||||
-rw-r--r-- | include/qpdf/QPDFPageObjectHelper.hh | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/qpdf/QPDFObjectHandle.hh b/include/qpdf/QPDFObjectHandle.hh index 0e1a695a..9bf5f7f7 100644 --- a/include/qpdf/QPDFObjectHandle.hh +++ b/include/qpdf/QPDFObjectHandle.hh @@ -400,6 +400,12 @@ class QPDFObjectHandle void addContentTokenFilter(PointerHolder<TokenFilter> token_filter); // End legacy content stream helpers + // Called on a stream to filter the stream as if it were page + // contents. This can be used to apply a TokenFilter to a form + // XObject, whose data is in the same format as a content stream. + QPDF_DLL + void filterAsContents(TokenFilter* filter, Pipeline* next = 0); + // Type-specific factories QPDF_DLL static QPDFObjectHandle newNull(); diff --git a/include/qpdf/QPDFPageObjectHelper.hh b/include/qpdf/QPDFPageObjectHelper.hh index 96da35f4..e1409b56 100644 --- a/include/qpdf/QPDFPageObjectHelper.hh +++ b/include/qpdf/QPDFPageObjectHelper.hh @@ -28,6 +28,7 @@ #include <qpdf/DLL.h> #include <qpdf/QPDFObjectHandle.hh> +#include <functional> class QPDFPageObjectHelper: public QPDFObjectHelper { @@ -231,6 +232,12 @@ class QPDFPageObjectHelper: public QPDFObjectHelper bool invert_transformations = true); private: + static void + removeUnreferencedResourcesHelper( + QPDFObjectHandle oh, std::set<QPDFObjGen>& seen, + std::function<QPDFObjectHandle()> get_resource, + std::function<void(QPDFObjectHandle::TokenFilter*)> filter_content); + class Members { friend class QPDFPageObjectHelper; |