From 078cf9bf90ec22ba141ebf379e6993b491c2995d Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 12 May 2018 13:09:13 -0400 Subject: [PATCH] newline before endstream fix for object streams (fixes #205) --- ChangeLog | 6 ++++++ libqpdf/QPDFWriter.cc | 4 ++++ qpdf/qtest/qpdf.test | 4 +++- .../qpdf/newline-before-endstream-nl-objstm.pdf | Bin 0 -> 1203 bytes 4 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 qpdf/qtest/qpdf/newline-before-endstream-nl-objstm.pdf diff --git a/ChangeLog b/ChangeLog index 17c7a1c4..a0838606 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2018-05-12 Jay Berkenbilt + + * 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 * 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 0000000000000000000000000000000000000000..f412feda95de4f9a6718a503d9fbce35d0f5b496 GIT binary patch literal 1203 zcmb`HTSyd97{|TTwoMiWJ{U!PN}HDD?A&&DN|q?yw6Zo`Dl5U6oijDEyJIuQyns@K zm9`c>6jUZ%2n@0UF{6lDe6Y8Qu2{W9C6#4Sbd#*3MlEO$MKHsB%sFs=|Nr;@j?J6x zS-@lplk8Sp3Yg&~!^Gea!0o0?Y#=E}RW?6vy0yH^o?O>o)9~JscgYbfNqU5>C&Kw}<-XJl z$CK35{CV$Re>+lCu_lq;Cd8$D5qlS<&5rF(Xiu7(v}{*)dhVr+r@52%#TB(IPRTH= zQx0WVV^0_C8CR8}KR3^Jgu-bF-Il&*ue!D`D8D)3{;~Ndidws z!oX*H4lmYcr1e^E$Gtd3wdTb}zTbt*zWA?^yt=3RsY$Q%KeSIUKl8`i_yBCAuW!Qe;+TRmSO*Bt~&(aSYE0BI^)1!6iCH zj^$jugLUv6=i*qWD7cHG{H|>F%Q10tJeJzTclA3aUiZ&#{CwlVKx6%mt*N>FDnu?G ejg4uTHvatR{F#^}y3#-@CECdyWy@LZp?&~zADaRI literal 0 HcmV?d00001