aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2020-03-31 18:28:54 +0200
committerJay Berkenbilt <ejb@ql.org>2020-03-31 23:39:20 +0200
commit278710fbe855b82ce0db1b1f1d8f969798872b6c (patch)
tree55539a13ab994adb95f64955291ce4d34ad4be2c /include
parentb03e6bd65d2144ec3b200c04514bc95cabfc085f (diff)
downloadqpdf-278710fbe855b82ce0db1b1f1d8f969798872b6c.tar.zst
Refactor QPDFPageObjectHelper::removeUnreferencedResources()
Refactor removeUnreferencedResources to prepare for filtering form XObjects.
Diffstat (limited to 'include')
-rw-r--r--include/qpdf/QPDFObjectHandle.hh6
-rw-r--r--include/qpdf/QPDFPageObjectHelper.hh7
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;