From 99101044429c3c91bd11bdd1b26e5b6c2ceb140b Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Fri, 2 Feb 2018 18:21:34 -0500 Subject: Implement TokenFilter and refactor Pl_QPDFTokenizer Implement a TokenFilter class and refactor Pl_QPDFTokenizer to use a TokenFilter class called ContentNormalizer. Pl_QPDFTokenizer is now a general filter that passes data through a TokenFilter. --- libqpdf/QPDFWriter.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libqpdf/QPDFWriter.cc') diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index f7f834b5..f277189a 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -1591,7 +1591,8 @@ QPDFWriter::unparseObject(QPDFObjectHandle object, int level, { is_metadata = true; } - bool filter = (this->m->compress_streams || + bool filter = (object.isDataModified() || + this->m->compress_streams || this->m->stream_decode_level); if (this->m->compress_streams) { @@ -1602,7 +1603,8 @@ QPDFWriter::unparseObject(QPDFObjectHandle object, int level, // compressed with a lossy compression scheme, but we // don't support any of those right now. QPDFObjectHandle filter_obj = stream_dict.getKey("/Filter"); - if (filter_obj.isName() && + if ((! object.isDataModified()) && + filter_obj.isName() && ((filter_obj.getName() == "/FlateDecode") || (filter_obj.getName() == "/Fl"))) { -- cgit v1.2.3-70-g09d2