summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-page.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-06-30 15:09:59 +0200
committerTor Andersson <tor.andersson@artifex.com>2016-07-06 13:34:37 +0200
commit74627fe0ccb279638f82472048311097b39741d5 (patch)
tree94859ba3a1319bea0f02bee6d0b6795f7814d21a /source/pdf/pdf-page.c
parent944a6aff121475d1db07423fe97a72fa1ded3f40 (diff)
downloadmupdf-74627fe0ccb279638f82472048311097b39741d5.tar.xz
pdf: Flatten inheritable page properties when copying pages.
Affects pdfclean, pdfmerge, and pdfposter.
Diffstat (limited to 'source/pdf/pdf-page.c')
-rw-r--r--source/pdf/pdf-page.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/source/pdf/pdf-page.c b/source/pdf/pdf-page.c
index 9fa96261..8ba02562 100644
--- a/source/pdf/pdf-page.c
+++ b/source/pdf/pdf-page.c
@@ -258,6 +258,23 @@ pdf_lookup_inherited_page_item(fz_context *ctx, pdf_document *doc, pdf_obj *node
return val;
}
+static void
+pdf_flatten_inheritable_page_item(fz_context *ctx, pdf_document *doc, pdf_obj *page, pdf_obj *key)
+{
+ pdf_obj *val = pdf_lookup_inherited_page_item(ctx, doc, page, key);
+ if (val)
+ pdf_dict_put(ctx, page, key, val);
+}
+
+void
+pdf_flatten_inheritable_page_items(fz_context *ctx, pdf_document *doc, pdf_obj *page)
+{
+ pdf_flatten_inheritable_page_item(ctx, doc, page, PDF_NAME_MediaBox);
+ pdf_flatten_inheritable_page_item(ctx, doc, page, PDF_NAME_CropBox);
+ pdf_flatten_inheritable_page_item(ctx, doc, page, PDF_NAME_Rotate);
+ pdf_flatten_inheritable_page_item(ctx, doc, page, PDF_NAME_Resources);
+}
+
/* We need to know whether to install a page-level transparency group */
static int pdf_resources_use_blending(fz_context *ctx, pdf_document *doc, pdf_obj *rdb);