diff --git a/ChangeLog b/ChangeLog index 19be25a3..35a41ec0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2023-12-20 Jay Berkenbilt + + * Bug fix: with --compress-streams=n, don't compress object or + XRef streams. + 2023-12-16 Jay Berkenbilt * Add new C++ functions "qpdf_c_get_qpdf" and "qpdf_c_wrap" to diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index 664ea5ff..3085e6c0 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -1658,8 +1658,7 @@ QPDFWriter::writeObjectStream(QPDFObjectHandle object) // Set up a stream to write the stream data into a buffer. Pipeline* next = pushPipeline(new Pl_Buffer("object stream")); - if ((m->compress_streams || (m->stream_decode_level == qpdf_dl_none)) && - (!m->qdf_mode)) { + if (m->compress_streams && !m->qdf_mode) { compressed = true; next = pushPipeline(new Pl_Flate("compress object stream", next, Pl_Flate::a_deflate)); @@ -2417,7 +2416,7 @@ QPDFWriter::writeXRefStream( Pipeline* p = pushPipeline(new Pl_Buffer("xref stream")); bool compressed = false; - if ((m->compress_streams || (m->stream_decode_level == qpdf_dl_none)) && (!m->qdf_mode)) { + if (m->compress_streams && !m->qdf_mode) { compressed = true; if (!skip_compression) { // Write the stream dictionary for compression but don't actually compress. This helps diff --git a/qpdf/qtest/qpdf/good17-not-recompressed.pdf b/qpdf/qtest/qpdf/good17-not-recompressed.pdf index b6e3a530..1f4924f7 100644 Binary files a/qpdf/qtest/qpdf/good17-not-recompressed.pdf and b/qpdf/qtest/qpdf/good17-not-recompressed.pdf differ diff --git a/qpdf/qtest/qpdf/newline-before-endstream-nl-objstm.pdf b/qpdf/qtest/qpdf/newline-before-endstream-nl-objstm.pdf index f412feda..13752cba 100644 Binary files a/qpdf/qtest/qpdf/newline-before-endstream-nl-objstm.pdf and b/qpdf/qtest/qpdf/newline-before-endstream-nl-objstm.pdf differ