summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-page.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-page.c')
-rw-r--r--source/pdf/pdf-page.c33
1 files changed, 15 insertions, 18 deletions
diff --git a/source/pdf/pdf-page.c b/source/pdf/pdf-page.c
index 8300fdb3..f8131b2c 100644
--- a/source/pdf/pdf-page.c
+++ b/source/pdf/pdf-page.c
@@ -623,13 +623,13 @@ pdf_page_presentation(fz_context *ctx, pdf_page *page, fz_transition *transition
return transition;
}
-fz_rect *
-pdf_bound_page(fz_context *ctx, pdf_page *page, fz_rect *mediabox)
+fz_rect
+pdf_bound_page(fz_context *ctx, pdf_page *page)
{
fz_matrix page_ctm;
- pdf_page_transform(ctx, page, mediabox, &page_ctm);
- fz_transform_rect(mediabox, &page_ctm);
- return mediabox;
+ fz_rect mediabox;
+ pdf_page_transform(ctx, page, &mediabox, &page_ctm);
+ return fz_transform_rect(mediabox, page_ctm);
}
fz_link *
@@ -661,7 +661,6 @@ pdf_page_obj_transform(fz_context *ctx, pdf_obj *pageobj, fz_rect *page_mediabox
{
pdf_obj *obj;
fz_rect mediabox, cropbox, realbox, pagebox;
- fz_matrix tmp;
float userunit = 1;
int rotate;
@@ -672,8 +671,8 @@ pdf_page_obj_transform(fz_context *ctx, pdf_obj *pageobj, fz_rect *page_mediabox
if (pdf_is_real(ctx, obj))
userunit = pdf_to_real(ctx, obj);
- pdf_to_rect(ctx, pdf_lookup_inherited_page_item(ctx, pageobj, PDF_NAME(MediaBox)), &mediabox);
- if (fz_is_empty_rect(&mediabox))
+ mediabox = pdf_to_rect(ctx, pdf_lookup_inherited_page_item(ctx, pageobj, PDF_NAME(MediaBox)));
+ if (fz_is_empty_rect(mediabox))
{
mediabox.x0 = 0;
mediabox.y0 = 0;
@@ -681,9 +680,9 @@ pdf_page_obj_transform(fz_context *ctx, pdf_obj *pageobj, fz_rect *page_mediabox
mediabox.y1 = 792;
}
- pdf_to_rect(ctx, pdf_lookup_inherited_page_item(ctx, pageobj, PDF_NAME(CropBox)), &cropbox);
- if (!fz_is_empty_rect(&cropbox))
- fz_intersect_rect(&mediabox, &cropbox);
+ cropbox = pdf_to_rect(ctx, pdf_lookup_inherited_page_item(ctx, pageobj, PDF_NAME(CropBox)));
+ if (!fz_is_empty_rect(cropbox))
+ mediabox = fz_intersect_rect(mediabox, cropbox);
page_mediabox->x0 = fz_min(mediabox.x0, mediabox.x1);
page_mediabox->y0 = fz_min(mediabox.y0, mediabox.y1);
@@ -708,16 +707,14 @@ pdf_page_obj_transform(fz_context *ctx, pdf_obj *pageobj, fz_rect *page_mediabox
* to PDF user space (arbitrary page origin, y ascending, UserUnit dpi). */
/* Make left-handed and scale by UserUnit */
- fz_scale(page_ctm, userunit, -userunit);
+ *page_ctm = fz_scale(userunit, -userunit);
/* Rotate */
- fz_pre_rotate(page_ctm, -rotate);
+ *page_ctm = fz_pre_rotate(*page_ctm, -rotate);
/* Translate page origin to 0,0 */
- realbox = *page_mediabox;
- fz_transform_rect(&realbox, page_ctm);
- fz_translate(&tmp, -realbox.x0, -realbox.y0);
- fz_concat(page_ctm, page_ctm, &tmp);
+ realbox = fz_transform_rect(*page_mediabox, *page_ctm);
+ *page_ctm = fz_concat(*page_ctm, fz_translate(-realbox.x0, -realbox.y0));
}
void
@@ -1166,7 +1163,7 @@ pdf_delete_page_range(fz_context *ctx, pdf_document *doc, int start, int end)
}
pdf_obj *
-pdf_add_page(fz_context *ctx, pdf_document *doc, const fz_rect *mediabox, int rotate, pdf_obj *resources, fz_buffer *contents)
+pdf_add_page(fz_context *ctx, pdf_document *doc, fz_rect mediabox, int rotate, pdf_obj *resources, fz_buffer *contents)
{
pdf_obj *page_obj = pdf_new_dict(ctx, doc, 5);
fz_try(ctx)