summaryrefslogtreecommitdiff
path: root/source/pdf
diff options
context:
space:
mode:
authorSimon Bünzli <zeniko@gmail.com>2014-07-18 15:50:17 +0200
committerSimon Bünzli <zeniko@gmail.com>2014-07-18 15:50:17 +0200
commit146ad732d5cf8f35876d1600115cbcb210fb7d99 (patch)
treeea863afbfa3e1e5ce927b81e4c22b71c09e30f37 /source/pdf
parent17c748e6b7ec0426344476efd2945eb7b5d6ca02 (diff)
downloadmupdf-146ad732d5cf8f35876d1600115cbcb210fb7d99.tar.xz
report more cases of blending use for pdf_page
pdf_page::transparency is supposed to indicate whether a page uses PDF transparency features. The checks aren't complete, though, which is relevant for devices which require additional handling for transparency (such as SumatraPDF's gdiplus_device). See https://code.google.com/p/sumatrapdf/issues/detail?id=2107 and https://code.google.com/p/sumatrapdf/issues/detail?id=2540 for example documents.
Diffstat (limited to 'source/pdf')
-rw-r--r--source/pdf/pdf-page.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/pdf/pdf-page.c b/source/pdf/pdf-page.c
index fe77830f..a6a5699a 100644
--- a/source/pdf/pdf-page.c
+++ b/source/pdf/pdf-page.c
@@ -273,6 +273,8 @@ static int
pdf_xobject_uses_blending(pdf_document *doc, pdf_obj *dict)
{
pdf_obj *obj = pdf_dict_gets(dict, "Resources");
+ if (!strcmp(pdf_to_name(pdf_dict_getp(dict, "Group/S")), "Transparency"))
+ return 1;
return pdf_resources_use_blending(doc, obj);
}
@@ -497,6 +499,8 @@ pdf_load_page(pdf_document *doc, int number)
if (pdf_resources_use_blending(doc, page->resources))
page->transparency = 1;
+ else if (!strcmp(pdf_to_name(pdf_dict_getp(pageobj, "Group/S")), "Transparency"))
+ page->transparency = 1;
for (annot = page->annots; annot && !page->transparency; annot = annot->next)
if (annot->ap && pdf_resources_use_blending(doc, annot->ap->resources))