From b36f62a326e10f2b1beb9f3791a7b607ea3f994a Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Mon, 4 Oct 2010 15:24:10 +0000 Subject: add qpdf_read_memory to C API git-svn-id: svn+q:///qpdf/trunk@1044 71b93d88-0707-0410-a8cf-f5a4172ac649 --- libqpdf/qpdf-c.cc | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'libqpdf/qpdf-c.cc') 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"); -- cgit v1.2.3-54-g00ecf