diff options
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 7 | ||||
-rw-r--r-- | libqpdf/QPDF_Stream.cc | 10 | ||||
-rw-r--r-- | libqpdf/qpdf/QPDF_Stream.hh | 1 |
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); |