aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/qpdf-c.cc
diff options
context:
space:
mode:
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");