summaryrefslogtreecommitdiff
path: root/src/qpdf
diff options
context:
space:
mode:
authorJames R. Barlow <james@purplerock.ca>2022-02-19 00:19:17 -0800
committerJames R. Barlow <james@purplerock.ca>2022-02-19 00:19:17 -0800
commitad564998ce4a24fdd1061a3ecb372d1b23d011f3 (patch)
treebace7751565aec71784d2d488ef80506b6cdcb20 /src/qpdf
parent44a67f1aedc24543178402df2117b05083de0949 (diff)
Improve behavior of Pdf.check() when jbig2 decoder is not available
Diffstat (limited to 'src/qpdf')
-rw-r--r--src/qpdf/qpdf.cpp13
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(); })