aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2018-05-12 19:09:13 +0200
committerJay Berkenbilt <ejb@ql.org>2018-05-12 19:17:43 +0200
commit078cf9bf90ec22ba141ebf379e6993b491c2995d (patch)
tree70cbc405935a2fcf998b2b34fd573c5c6f0110b7
parentb8ccbff413de5b1000cdc65ba25ff46c6ccaec66 (diff)
downloadqpdf-078cf9bf90ec22ba141ebf379e6993b491c2995d.tar.zst
newline before endstream fix for object streams (fixes #205)
-rw-r--r--ChangeLog6
-rw-r--r--libqpdf/QPDFWriter.cc4
-rw-r--r--qpdf/qtest/qpdf.test4
-rw-r--r--qpdf/qtest/qpdf/newline-before-endstream-nl-objstm.pdfbin0 -> 1203 bytes
4 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 17c7a1c4..a0838606 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-05-12 Jay Berkenbilt <ejb@ql.org>
+
+ * In newline before endstream mode, an extra newline was not
+ inserted prior to the endstream that ends object streams.
+ Fixes #205.
+
2018-04-15 Jay Berkenbilt <ejb@ql.org>
* Arbitrarily limit the depth of data structures represented by
diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc
index f277189a..77968078 100644
--- a/libqpdf/QPDFWriter.cc
+++ b/libqpdf/QPDFWriter.cc
@@ -1907,6 +1907,10 @@ QPDFWriter::writeObjectStream(QPDFObjectHandle object)
pushEncryptionFilter();
writeBuffer(stream_buffer);
popPipelineStack();
+ if (this->m->newline_before_endstream)
+ {
+ writeString("\n");
+ }
writeString("endstream");
this->m->cur_data_key.clear();
closeObject(new_id);
diff --git a/qpdf/qtest/qpdf.test b/qpdf/qtest/qpdf.test
index b27b4c82..a3b6cb59 100644
--- a/qpdf/qtest/qpdf.test
+++ b/qpdf/qtest/qpdf.test
@@ -964,7 +964,7 @@ $td->runtest("check output",
show_ntests();
# ----------
$td->notify("--- Newline before endstream ---");
-$n_tests += 10;
+$n_tests += 12;
# From issue 133, http://verapdf.org/software/ is an open source
# package that can verify PDF/A compliance. This could potentially be
@@ -975,6 +975,8 @@ foreach my $d (
['--qdf', 'qdf', 'qdf'],
['--newline-before-endstream', 'newline', 'nl'],
['--qdf --newline-before-endstream', 'newline and qdf', 'nl-qdf'],
+ ['--object-streams=generate --newline-before-endstream',
+ 'newline and object streams', 'nl-objstm'],
)
{
my ($flags, $description, $suffix) = @$d;
diff --git a/qpdf/qtest/qpdf/newline-before-endstream-nl-objstm.pdf b/qpdf/qtest/qpdf/newline-before-endstream-nl-objstm.pdf
new file mode 100644
index 00000000..f412feda
--- /dev/null
+++ b/qpdf/qtest/qpdf/newline-before-endstream-nl-objstm.pdf
Binary files differ