From 9146f1f0fddccdcc874df3019ddd54c83b61faee Mon Sep 17 00:00:00 2001 From: m-holger Date: Wed, 22 Nov 2023 16:15:09 +0000 Subject: [PATCH] Change default for SF_FlateLzwDecode::columns to 1 --- libqpdf/SF_FlateLzwDecode.cc | 2 +- qpdf/qtest/qpdf/png-filters-1-column.pdf | Bin 0 -> 16827 bytes .../qpdf/png-filters-no-columns-decoded.pdf | Bin 0 -> 26498 bytes qpdf/qtest/qpdf/png-filters-no-columns.pdf | Bin 0 -> 16827 bytes qpdf/qtest/specialized-filter.test | 16 ++++++++++++++-- 5 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 qpdf/qtest/qpdf/png-filters-1-column.pdf create mode 100644 qpdf/qtest/qpdf/png-filters-no-columns-decoded.pdf create mode 100644 qpdf/qtest/qpdf/png-filters-no-columns.pdf diff --git a/libqpdf/SF_FlateLzwDecode.cc b/libqpdf/SF_FlateLzwDecode.cc index db663429..a291145f 100644 --- a/libqpdf/SF_FlateLzwDecode.cc +++ b/libqpdf/SF_FlateLzwDecode.cc @@ -11,7 +11,7 @@ SF_FlateLzwDecode::SF_FlateLzwDecode(bool lzw) : lzw(lzw), // Initialize values to their defaults as per the PDF spec predictor(1), - columns(0), + columns(1), colors(1), bits_per_component(8), early_code_change(true) diff --git a/qpdf/qtest/qpdf/png-filters-1-column.pdf b/qpdf/qtest/qpdf/png-filters-1-column.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5d9a879345b319ef8963ba20e137abbf061f9d08 GIT binary patch literal 16827 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�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 MC!ToDMdwEU2WqYhHvj+t literal 0 HcmV?d00001 diff --git a/qpdf/qtest/qpdf/png-filters-no-columns.pdf b/qpdf/qtest/qpdf/png-filters-no-columns.pdf new file mode 100644 index 0000000000000000000000000000000000000000..83e9911a924430e9c4d78f8a387ee63179bb17fe GIT binary patch literal 16827 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 literal 0 HcmV?d00001 diff --git a/qpdf/qtest/specialized-filter.test b/qpdf/qtest/specialized-filter.test index 284d5195..605dd7f2 100644 --- a/qpdf/qtest/specialized-filter.test +++ b/qpdf/qtest/specialized-filter.test @@ -16,7 +16,7 @@ cleanup(); my $td = new TestDriver('specialized-filter'); -my $n_tests = 3; +my $n_tests = 5; my $n_compare_pdfs = 1; # The PDF file was submitted on bug #83 on github. All the PNG filters @@ -39,6 +39,18 @@ $td->runtest("stream with tiff predictor", {$td->FILE => "tiff-predictor.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); - +# TC:SF_FlateLzwDecode PNG filter +# PDF:Table 8:Columns +# The test file is invalid as it does not actually use one column (as is implied by the missing +# key). However png-filters-1-column.pdf is the same file with /Columns explicitely set to 1, +# and displays the same as png-filters-no-columns.pdf and png-filters-no-columns-decoded.pdf. +$td->runtest("decode flate no /Columns", + {$td->COMMAND => "qpdf --static-id --compress-streams=n --decode-level=all" . + " png-filters-no-columns.pdf a.pdf"}, + {$td->STRING => "", $td->EXIT_STATUS => 0}, + $td->NORMALIZE_NEWLINES); +$td->runtest("check output", + {$td->FILE => "a.pdf"}, + {$td->FILE => "png-filters-no-columns-decoded.pdf"}); cleanup(); $td->report(calc_ntests($n_tests, $n_compare_pdfs));