diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-06-30 15:09:59 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2016-07-06 13:34:37 +0200 |
commit | 74627fe0ccb279638f82472048311097b39741d5 (patch) | |
tree | 94859ba3a1319bea0f02bee6d0b6795f7814d21a /source/pdf/pdf-page.c | |
parent | 944a6aff121475d1db07423fe97a72fa1ded3f40 (diff) | |
download | mupdf-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.c | 17 |
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); |