diff options
author | James R. Barlow <james@purplerock.ca> | 2022-02-19 00:19:17 -0800 |
---|---|---|
committer | James R. Barlow <james@purplerock.ca> | 2022-02-19 00:19:17 -0800 |
commit | ad564998ce4a24fdd1061a3ecb372d1b23d011f3 (patch) | |
tree | bace7751565aec71784d2d488ef80506b6cdcb20 /src/qpdf | |
parent | 44a67f1aedc24543178402df2117b05083de0949 (diff) |
Improve behavior of Pdf.check() when jbig2 decoder is not available
Diffstat (limited to 'src/qpdf')
-rw-r--r-- | src/qpdf/qpdf.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/qpdf/qpdf.cpp b/src/qpdf/qpdf.cpp index f54aa33..effc524 100644 --- a/src/qpdf/qpdf.cpp +++ b/src/qpdf/qpdf.cpp @@ -807,7 +807,18 @@ void init_qpdf(py::module_ &m) Pl_Discard discard; w.setOutputPipeline(&discard); w.setDecodeLevel(qpdf_dl_all); - w.write(); + try { + w.write(); + } catch (py::error_already_set &e) { + auto cls_dependency_error = + py::module_::import("pikepdf.models.image").attr("DependencyError"); + if (e.matches(cls_dependency_error)) { + w.setDecodeLevel(qpdf_dl_generalized); + w.write(); + } else { + throw; + } + } }) .def_property_readonly( "_allow_accessibility", [](QPDF &q) { return q.allowAccessibility(); }) |