diff options
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/qpdf-c.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libqpdf/qpdf-c.cc b/libqpdf/qpdf-c.cc index a9883d32..1cc1e2b1 100644 --- a/libqpdf/qpdf-c.cc +++ b/libqpdf/qpdf-c.cc @@ -4,6 +4,7 @@ #include <qpdf/QPDFWriter.hh> #include <qpdf/QTC.hh> #include <qpdf/QPDFExc.hh> +#include <qpdf/Pl_Discard.hh> #include <list> #include <string> @@ -82,6 +83,15 @@ static void call_write(qpdf_data qpdf) qpdf->qpdf_writer->write(); } +static void call_check(qpdf_data qpdf) +{ + QPDFWriter w(*qpdf->qpdf); + Pl_Discard discard; + w.setOutputPipeline(&discard); + w.setDecodeLevel(qpdf_dl_all); + w.write(); +} + static QPDF_ERROR_CODE trap_errors(qpdf_data qpdf, void (*fn)(qpdf_data)) { QPDF_ERROR_CODE status = QPDF_SUCCESS; @@ -236,6 +246,13 @@ char const* qpdf_get_error_message_detail(qpdf_data qpdf, qpdf_error e) return e->exc->getMessageDetail().c_str(); } +QPDF_ERROR_CODE qpdf_check_pdf(qpdf_data qpdf) +{ + QPDF_ERROR_CODE status = trap_errors(qpdf, &call_check); + QTC::TC("qpdf", "qpdf-c called qpdf_check_pdf"); + return status; +} + void qpdf_set_suppress_warnings(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_suppress_warnings"); |