summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-page.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-02-24 21:04:09 +0100
committerTor Andersson <tor.andersson@artifex.com>2016-02-29 15:56:45 +0100
commitff162fe493a331151edf11e3b2cf4da62f79b811 (patch)
tree54c3b3b3c2930b54656d045fe39e8dffe677950a /source/pdf/pdf-page.c
parent6252873329e14ab1b0460bf2a6cecc9eb3044aa1 (diff)
downloadmupdf-ff162fe493a331151edf11e3b2cf4da62f79b811.tar.xz
Pass mediabox to pdf_create_page by const pointer, and pass resources.
Diffstat (limited to 'source/pdf/pdf-page.c')
-rw-r--r--source/pdf/pdf-page.c25
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)