aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/qpdfjob-c.cc
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2023-03-21 19:54:36 +0100
committerm-holger <m-holger@kubitscheck.org>2023-04-02 10:45:19 +0200
commit41f79bedbc1ebc2666471ec97b87999410242973 (patch)
tree3b1f1269122f88b316338a5c99046ae0e4077ae6 /libqpdf/qpdfjob-c.cc
parentc78f44798a0b07e7a585c85c7b8bcc1907542cd4 (diff)
downloadqpdf-41f79bedbc1ebc2666471ec97b87999410242973.tar.zst
Add new functions qpdfjob_create_qpdf and qpdfjob_write_qpdf
Diffstat (limited to 'libqpdf/qpdfjob-c.cc')
-rw-r--r--libqpdf/qpdfjob-c.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/libqpdf/qpdfjob-c.cc b/libqpdf/qpdfjob-c.cc
index 889afec6..ddb33349 100644
--- a/libqpdf/qpdfjob-c.cc
+++ b/libqpdf/qpdfjob-c.cc
@@ -4,6 +4,7 @@
#include <qpdf/QPDFLogger.hh>
#include <qpdf/QPDFUsage.hh>
#include <qpdf/QUtil.hh>
+#include <qpdf/qpdf-c_impl.hh>
#include <qpdf/qpdflogger-c_impl.hh>
#include <cstdio>
@@ -98,6 +99,30 @@ qpdfjob_run(qpdfjob_handle j)
});
}
+qpdf_data
+qpdfjob_create_qpdf(qpdfjob_handle j)
+{
+ QUtil::setLineBuf(stdout);
+ try {
+ auto qpdf = j->j.createQPDF();
+ return qpdf ? new _qpdf_data(std::move(qpdf)) : nullptr;
+ } catch (std::exception& e) {
+ *j->j.getLogger()->getError()
+ << j->j.getMessagePrefix() << ": " << e.what() << "\n";
+ }
+ return nullptr;
+}
+
+int
+qpdfjob_write_qpdf(qpdfjob_handle j, qpdf_data qpdf)
+{
+ QUtil::setLineBuf(stdout);
+ return wrap_qpdfjob(j, [qpdf](qpdfjob_handle jh) {
+ jh->j.writeQPDF(*(qpdf->qpdf));
+ return jh->j.getExitCode();
+ });
+}
+
static int
run_with_handle(std::function<int(qpdfjob_handle)> fn)
{