diff options
-rw-r--r-- | libqpdf/QPDF.cc | 8 | ||||
-rw-r--r-- | qpdf/qtest/qpdf.test | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index c546fbe1..6c0c700a 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -2673,7 +2673,13 @@ QPDF::getCompressibleObjGens() { QTC::TC("qpdf", "QPDF exclude encryption dictionary"); } - else if (! obj.isStream()) + else if ((! obj.isStream()) && + (! (obj.isDictionary() && + obj.hasKey("/ByteRange") && + obj.hasKey("/Contents") && + obj.hasKey("/Type") && + obj.getKey("/Type").isName() && + obj.getKey("/Type").getName() == "/Sig"))) { result.push_back(og); } diff --git a/qpdf/qtest/qpdf.test b/qpdf/qtest/qpdf.test index 9fdf9ba2..d5caa9ad 100644 --- a/qpdf/qtest/qpdf.test +++ b/qpdf/qtest/qpdf.test @@ -3998,9 +3998,9 @@ $td->runtest("fix-qdf with big object stream", # > 255 objects in a stream show_ntests(); # ---------- $td->notify("--- Signature Dictionary ---"); -$n_tests += 4; +$n_tests += 6; -foreach my $i (qw(preserve disable)) +foreach my $i (qw(preserve disable generate)) { $td->runtest("sig dict contents hex (object-streams=$i)", {$td->COMMAND => |