summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/nspdf/document.h45
-rw-r--r--include/nspdf/errors.h29
2 files changed, 74 insertions, 0 deletions
diff --git a/include/nspdf/document.h b/include/nspdf/document.h
new file mode 100644
index 0000000..4e4931d
--- /dev/null
+++ b/include/nspdf/document.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2018 Vincent Sanders <vince@netsurf-browser.org>
+ *
+ * This file is part of libnspdf.
+ *
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+
+/**
+ * \file
+ * NetSurf PDF library document handling
+ */
+
+#ifndef NSPDF_DOCUMENT_H_
+#define NSPDF_DOCUMENT_H_
+
+#include <nspdf/errors.h>
+
+struct nspdf_doc;
+
+/**
+ * create a new PDF document
+ */
+nspdferror nspdf_document_create(struct nspdf_doc **doc_out);
+
+/**
+ * destroys a previously created document
+ *
+ * any allocated resources are freed but any buffers passed for parse are not
+ * altered and may now be freed by the caller.
+ */
+nspdferror nspdf_document_destroy(struct nspdf_doc *doc);
+
+/**
+ * parse a PDF from a memory buffer
+ *
+ * reads all metadata and validates header, trailer, xref table and page tree
+ * ready to render pages. The passed buffer ownership is transfered and must
+ * not be altered untill the document is destroyed.
+ */
+nspdferror nspdf_document_parse(struct nspdf_doc *doc, const uint8_t *buffer, uint64_t buffer_length);
+
+
+#endif /* NSPDF_DOCUMENT_H_ */
diff --git a/include/nspdf/errors.h b/include/nspdf/errors.h
new file mode 100644
index 0000000..f2142ff
--- /dev/null
+++ b/include/nspdf/errors.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2018 Vincent Sanders <vince@netsurf-browser.org>
+ *
+ * This file is part of libnspdf.
+ *
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+
+/**
+ * \file
+ * NetSurf PDF library return codes
+ */
+
+#ifndef NSPDF_ERRORS_H_
+#define NSPDF_ERRORS_H_
+
+typedef enum {
+ NSPDFERROR_OK, /**< no error */
+ NSPDFERROR_NOMEM, /**< memory allocation error */
+ NSPDFERROR_SYNTAX, /**< syntax error in parse */
+ NSPDFERROR_SIZE, /**< not enough input data */
+ NSPDFERROR_RANGE, /**< value outside type range */
+ NSPDFERROR_TYPE, /**< wrong type error */
+ NSPDFERROR_NOTFOUND, /**< key not found */
+ NSPDFERROR_FORMAT, /**< objects do not cornform to expected format */
+} nspdferror;
+
+#endif