diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-02-24 21:04:09 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2016-02-29 15:56:45 +0100 |
commit | ff162fe493a331151edf11e3b2cf4da62f79b811 (patch) | |
tree | 54c3b3b3c2930b54656d045fe39e8dffe677950a /source/pdf | |
parent | 6252873329e14ab1b0460bf2a6cecc9eb3044aa1 (diff) | |
download | mupdf-ff162fe493a331151edf11e3b2cf4da62f79b811.tar.xz |
Pass mediabox to pdf_create_page by const pointer, and pass resources.
Diffstat (limited to 'source/pdf')
-rw-r--r-- | source/pdf/pdf-page.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/source/pdf/pdf-page.c b/source/pdf/pdf-page.c index 281b146c..f327bfab 100644 --- a/source/pdf/pdf-page.c +++ b/source/pdf/pdf-page.c @@ -697,7 +697,8 @@ pdf_delete_page_range(fz_context *ctx, pdf_document *doc, int start, int end) } pdf_page * -pdf_create_page(fz_context *ctx, pdf_document *doc, fz_rect mediabox, int rotate, fz_buffer *contents) +pdf_create_page(fz_context *ctx, pdf_document *doc, const fz_rect *mediabox, int rotate, + fz_buffer *contents, pdf_obj *resources) { pdf_page *page = NULL; pdf_obj *pageobj, *obj; @@ -715,10 +716,10 @@ pdf_create_page(fz_context *ctx, pdf_document *doc, fz_rect mediabox, int rotate pdf_dict_put_drop(ctx, pageobj, PDF_NAME_Type, PDF_NAME_Page); - page->mediabox.x0 = fz_min(mediabox.x0, mediabox.x1) * userunit; - page->mediabox.y0 = fz_min(mediabox.y0, mediabox.y1) * userunit; - page->mediabox.x1 = fz_max(mediabox.x0, mediabox.x1) * userunit; - page->mediabox.y1 = fz_max(mediabox.y0, mediabox.y1) * userunit; + page->mediabox.x0 = fz_min(mediabox->x0, mediabox->x1) * userunit; + page->mediabox.y0 = fz_min(mediabox->y0, mediabox->y1) * userunit; + page->mediabox.x1 = fz_max(mediabox->x0, mediabox->x1) * userunit; + page->mediabox.y1 = fz_max(mediabox->y0, mediabox->y1) * userunit; pdf_dict_put_drop(ctx, pageobj, PDF_NAME_MediaBox, pdf_new_rect(ctx, doc, &page->mediabox)); /* Snap page->rotate to 0, 90, 180 or 270 */ @@ -745,7 +746,19 @@ pdf_create_page(fz_context *ctx, pdf_document *doc, fz_rect mediabox, int rotate pdf_update_stream(ctx, doc, page->contents, contents, 0); pdf_drop_obj(ctx, obj); obj = NULL; - pdf_dict_puts(ctx, pageobj, "Contents", page->contents); + pdf_dict_put(ctx, pageobj, PDF_NAME_Contents, page->contents); + } + + if (resources != NULL) + { + if (pdf_is_indirect(ctx, resources)) + pdf_dict_put(ctx, pageobj, PDF_NAME_Resources, resources); + else + { + pdf_obj *ref = pdf_new_ref(ctx, doc, resources); + pdf_dict_put(ctx, pageobj, PDF_NAME_Resources, ref); + pdf_drop_obj(ctx, ref); + } } } fz_catch(ctx) |