summaryrefslogtreecommitdiff
path: root/src/page.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2018-01-20 18:46:41 +0000
committerVincent Sanders <vince@kyllikki.org>2018-01-20 18:46:41 +0000
commit9f0e9af2eeb08abcaa4991ae4e87440dcba2ada1 (patch)
tree6b05ac4bedd3cc13f773e2b2adf03f7522c997c1 /src/page.c
parent7967f13f57f08d2b8f38b8c52567d847933b79d8 (diff)
downloadlibnspdf-9f0e9af2eeb08abcaa4991ae4e87440dcba2ada1.tar.gz
libnspdf-9f0e9af2eeb08abcaa4991ae4e87440dcba2ada1.tar.bz2
correctly parse content streams for pages contents
Diffstat (limited to 'src/page.c')
-rw-r--r--src/page.c48
1 files changed, 3 insertions, 45 deletions
diff --git a/src/page.c b/src/page.c
index 3844122..5299c7c 100644
--- a/src/page.c
+++ b/src/page.c
@@ -146,62 +146,20 @@ nspdf_page_count(struct nspdf_doc *doc, unsigned int *pages_out)
return NSPDFERROR_OK;
}
-static nspdferror
-nspdf__render_content_stream(struct nspdf_doc *doc,
- struct page_table_entry *page_entry,
- struct cos_object *content_entry)
-{
- nspdferror res;
- struct cos_content *content_operations;
-
- res = cos_get_content(doc, content_entry, &content_operations);
- if (res == NSPDFERROR_OK) {
- printf("%p\n", content_operations);
- }
-
- return res;
-}
/* exported interface documented in nspdf/page.h */
nspdferror
nspdf_page_render(struct nspdf_doc *doc, unsigned int page_number)
{
struct page_table_entry *page_entry;
- struct cos_object *content_array;
+ struct cos_content *page_content; /* page operations array */
nspdferror res;
page_entry = doc->page_table + page_number;
- /* contents may be an array of stream objects or just a single one */
- res = cos_get_array(doc, page_entry->contents, &content_array);
+ res = cos_get_content(doc, page_entry->contents, &page_content);
if (res == NSPDFERROR_OK) {
- unsigned int content_stream_count;
- unsigned int content_stream_index;
-
- res = cos_get_array_size(doc, content_array, &content_stream_count);
- if (res != NSPDFERROR_OK) {
- return res;
- }
- for (content_stream_index = 0;
- content_stream_index < content_stream_count;
- content_stream_index++) {
- struct cos_object *content_entry;
- res = cos_get_array_value(doc,
- content_array,
- content_stream_index,
- &content_entry);
- if (res != NSPDFERROR_OK) {
- break;
- }
-
- res = nspdf__render_content_stream(doc, page_entry, content_entry);
- if (res != NSPDFERROR_OK) {
- break;
- }
- }
- } else if (res == NSPDFERROR_TYPE) {
- res = nspdf__render_content_stream(doc, page_entry, page_entry->contents);
+ printf("%p\n", page_content);
}
-
return res;
}