diff options
author | Jay Berkenbilt <ejb@ql.org> | 2018-02-17 17:51:10 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2018-02-19 03:06:27 +0100 |
commit | 2780a1871d2603e9b273580fb7978d277832c2fc (patch) | |
tree | 270b1195eed7eb93e5a339a965c08b549239958d /libqpdf/qpdf-c.cc | |
parent | b72a38bf5ff3adf9bf02046b1106e1b524afa922 (diff) | |
download | qpdf-2780a1871d2603e9b273580fb7978d277832c2fc.tar.zst |
Add C API for checking PDF files
Diffstat (limited to 'libqpdf/qpdf-c.cc')
-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"); |