summaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDFObjectHandle.cc7
-rw-r--r--libqpdf/QPDF_Stream.cc10
-rw-r--r--libqpdf/qpdf/QPDF_Stream.hh1
3 files changed, 18 insertions, 0 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc
index 143a3f42..658f4393 100644
--- a/libqpdf/QPDFObjectHandle.cc
+++ b/libqpdf/QPDFObjectHandle.cc
@@ -343,6 +343,13 @@ QPDFObjectHandle::getStreamData()
return dynamic_cast<QPDF_Stream*>(obj.getPointer())->getStreamData();
}
+PointerHolder<Buffer>
+QPDFObjectHandle::getRawStreamData()
+{
+ assertType("Stream", isStream());
+ return dynamic_cast<QPDF_Stream*>(obj.getPointer())->getRawStreamData();
+}
+
bool
QPDFObjectHandle::pipeStreamData(Pipeline* p, bool filter,
bool normalize, bool compress)
diff --git a/libqpdf/QPDF_Stream.cc b/libqpdf/QPDF_Stream.cc
index 87c2daa9..72be2e32 100644
--- a/libqpdf/QPDF_Stream.cc
+++ b/libqpdf/QPDF_Stream.cc
@@ -75,6 +75,16 @@ QPDF_Stream::getStreamData()
{
throw std::logic_error("getStreamData called on unfilterable stream");
}
+ QTC::TC("qpdf", "QPDF_Stream getStreamData");
+ return buf.getBuffer();
+}
+
+PointerHolder<Buffer>
+QPDF_Stream::getRawStreamData()
+{
+ Pl_Buffer buf("stream data buffer");
+ pipeStreamData(&buf, false, false, false);
+ QTC::TC("qpdf", "QPDF_Stream getRawStreamData");
return buf.getBuffer();
}
diff --git a/libqpdf/qpdf/QPDF_Stream.hh b/libqpdf/qpdf/QPDF_Stream.hh
index 73261f39..ed70ae8f 100644
--- a/libqpdf/qpdf/QPDF_Stream.hh
+++ b/libqpdf/qpdf/QPDF_Stream.hh
@@ -22,6 +22,7 @@ class QPDF_Stream: public QPDFObject
bool pipeStreamData(Pipeline*, bool filter,
bool normalize, bool compress);
PointerHolder<Buffer> getStreamData();
+ PointerHolder<Buffer> getRawStreamData();
void replaceStreamData(PointerHolder<Buffer> data,
QPDFObjectHandle const& filter,
QPDFObjectHandle const& decode_parms);