aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/qpdf-c.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2018-02-17 17:51:10 +0100
committerJay Berkenbilt <ejb@ql.org>2018-02-19 03:06:27 +0100
commit2780a1871d2603e9b273580fb7978d277832c2fc (patch)
tree270b1195eed7eb93e5a339a965c08b549239958d /libqpdf/qpdf-c.cc
parentb72a38bf5ff3adf9bf02046b1106e1b524afa922 (diff)
downloadqpdf-2780a1871d2603e9b273580fb7978d277832c2fc.tar.zst
Add C API for checking PDF files
Diffstat (limited to 'libqpdf/qpdf-c.cc')
-rw-r--r--libqpdf/qpdf-c.cc17
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");