aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF_Stream.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf/QPDF_Stream.cc')
-rw-r--r--libqpdf/QPDF_Stream.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/libqpdf/QPDF_Stream.cc b/libqpdf/QPDF_Stream.cc
index d0dd2e5f..500dfb10 100644
--- a/libqpdf/QPDF_Stream.cc
+++ b/libqpdf/QPDF_Stream.cc
@@ -319,9 +319,30 @@ QPDF_Stream::pipeStreamData(Pipeline* pipeline, bool filter,
}
}
+ // XXX handle stream_data and stream_data_handler
QPDF::Pipe::pipeStreamData(this->qpdf, this->objid, this->generation,
this->offset, this->length,
this->stream_dict, pipeline);
return filter;
}
+
+void
+QPDF_Stream::replaceStreamData(PointerHolder<Buffer> data,
+ QPDFObjectHandle filter,
+ QPDFObjectHandle decode_parms)
+{
+ this->stream_data = data;
+ this->stream_dict.replaceOrRemoveKey("/Filter", filter);
+ this->stream_dict.replaceOrRemoveKey("/DecodeParms", decode_parms);
+ this->stream_dict.replaceKey("/Length",
+ QPDFObjectHandle::newInteger(
+ data.getPointer()->getSize()));
+}
+
+void
+QPDF_Stream::replaceStreamData(
+ PointerHolder<QPDFObjectHandle::StreamDataHandler> dh)
+{
+ this->stream_data_handler = dh;
+}