diff options
Diffstat (limited to 'include/nspdf')
-rw-r--r-- | include/nspdf/document.h | 45 | ||||
-rw-r--r-- | include/nspdf/errors.h | 29 |
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 |