aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFWriter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf/QPDFWriter.cc')
-rw-r--r--libqpdf/QPDFWriter.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc
index 0f299a45..08647e37 100644
--- a/libqpdf/QPDFWriter.cc
+++ b/libqpdf/QPDFWriter.cc
@@ -2051,11 +2051,14 @@ QPDFWriter::prepareFileForWrite()
{
bool is_stream = false;
bool is_root = false;
+ bool filterable = false;
QPDFObjectHandle dict = node;
if (node.isStream())
{
is_stream = true;
dict = node.getDict();
+ // See whether we are able to filter this stream.
+ filterable = node.pipeStreamData(0, true, false, false);
}
else if (pdf.getRoot().getObjectID() == node.getObjectID())
{
@@ -2073,8 +2076,9 @@ QPDFWriter::prepareFileForWrite()
{
if (oh.isIndirect() &&
((key == "/Length") ||
- (key == "/Filter") ||
- (key == "/DecodeParms")))
+ (filterable &&
+ ((key == "/Filter") ||
+ (key == "/DecodeParms")))))
{
QTC::TC("qpdf", "QPDFWriter make stream key direct");
add_to_queue = false;