From 2780a1871d2603e9b273580fb7978d277832c2fc Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 17 Feb 2018 11:51:10 -0500 Subject: Add C API for checking PDF files --- libqpdf/qpdf-c.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'libqpdf/qpdf-c.cc') 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 #include #include +#include #include #include @@ -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"); -- cgit v1.2.3-70-g09d2