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.cc27
1 files changed, 26 insertions, 1 deletions
diff --git a/libqpdf/qpdf-c.cc b/libqpdf/qpdf-c.cc
index d7776d21..10260753 100644
--- a/libqpdf/qpdf-c.cc
+++ b/libqpdf/qpdf-c.cc
@@ -28,7 +28,9 @@ struct _qpdf_data
std::string tmp_string;
// Parameters for functions we call
- char const* filename;
+ char const* filename; // or description
+ char const* buffer;
+ unsigned long size;
char const* password;
};
@@ -50,6 +52,13 @@ static void call_read(qpdf_data qpdf)
qpdf->qpdf->processFile(qpdf->filename, qpdf->password);
}
+// must set qpdf->filename, qpdf->buffer, qpdf->size, and qpdf->password
+static void call_read_memory(qpdf_data qpdf)
+{
+ qpdf->qpdf->processMemoryFile(qpdf->filename, qpdf->buffer,
+ qpdf->size, qpdf->password);
+}
+
// must set qpdf->filename
static void call_init_write(qpdf_data qpdf)
{
@@ -244,6 +253,22 @@ QPDF_ERROR_CODE qpdf_read(qpdf_data qpdf, char const* filename,
return status;
}
+QPDF_ERROR_CODE qpdf_read_memory(qpdf_data qpdf,
+ char const* description,
+ char const* buffer,
+ unsigned long size,
+ char const* password)
+{
+ QPDF_ERROR_CODE status = QPDF_SUCCESS;
+ qpdf->filename = description;
+ qpdf->buffer = buffer;
+ qpdf->size = size;
+ qpdf->password = password;
+ status = trap_errors(qpdf, &call_read_memory);
+ QTC::TC("qpdf", "qpdf-c called qpdf_read_memory", status);
+ return status;
+}
+
char const* qpdf_get_pdf_version(qpdf_data qpdf)
{
QTC::TC("qpdf", "qpdf-c called qpdf_get_pdf_version");