diff options
author | Michael Vrhel <michael.vrhel@artifex.com> | 2017-01-19 11:44:18 -0800 |
---|---|---|
committer | Michael Vrhel <michael.vrhel@artifex.com> | 2017-01-19 11:44:18 -0800 |
commit | 79d6e96a8db2956c8317fd8bdeb8d8db5fd0e212 (patch) | |
tree | 9989e41b645d3662dbb8c0dacb99b7afe41e26f2 /xps/xpsanalyze.c | |
parent | a9bd0b6d95b16d594983682ae387922507e70b98 (diff) | |
download | ghostpdl-79d6e96a8db2956c8317fd8bdeb8d8db5fd0e212.tar.gz |
Bug 697489 xps transparency issue
The xps interpreter was pushing transparency groups without
pushing the pdf14 device. The problem was that the interpreter
was not checking the glyphs in the resource dictionaries.
I also optimized the code to stop checking for transparency
once it finds transparency.
Diffstat (limited to 'xps/xpsanalyze.c')
-rw-r--r-- | xps/xpsanalyze.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/xps/xpsanalyze.c b/xps/xpsanalyze.c index e9d6794ab..f91a8cb3e 100644 --- a/xps/xpsanalyze.c +++ b/xps/xpsanalyze.c @@ -22,6 +22,7 @@ #include "ghostxps.h" static int xps_brush_has_transparency(xps_context_t *ctx, char *base_uri, xps_item_t *root); +static int xps_glyphs_has_transparency(xps_context_t *ctx, char *base_uri, xps_item_t *root); static int xps_remote_resource_dictionary_has_transparency(xps_context_t *ctx, char *base_uri, char *source_att) @@ -49,6 +50,9 @@ xps_resource_dictionary_has_transparency(xps_context_t *ctx, char *base_uri, xps !strcmp(xps_tag(node), "ImageBrush")) if (xps_brush_has_transparency(ctx, base_uri, node)) return 1; + if (!strcmp(xps_tag(node), "Glyphs")) + if (xps_glyphs_has_transparency(ctx, base_uri, node)) + return 1; } return 0; |