diff options
Diffstat (limited to 'pdf')
-rw-r--r-- | pdf/pdf_pattern.c | 14 | ||||
-rw-r--r-- | pdf/pdf_trans.c | 2 |
2 files changed, 10 insertions, 6 deletions
diff --git a/pdf/pdf_pattern.c b/pdf/pdf_pattern.c index 8137e624f..57a164493 100644 --- a/pdf/pdf_pattern.c +++ b/pdf/pdf_pattern.c @@ -483,11 +483,15 @@ pdfi_setpattern_type1(pdf_context *ctx, pdf_dict *stream_dict, pdf_dict *page_di goto exit; } - /* See if pattern uses transparency */ - if (ctx->page.has_transparency) { - code = pdfi_check_Pattern_transparency(ctx, pdict, page_dict, &transparency); - if (code < 0) - goto exit; + /* See if pattern uses transparency, or if we are in an overprint + simulation situation */ + if (ctx->page.simulate_op) + transparency = true; + else + if (ctx->page.has_transparency) { + code = pdfi_check_Pattern_transparency(ctx, pdict, page_dict, &transparency); + if (code < 0) + goto exit; } /* TODO: Resources? Maybe I should check that they are all valid before proceeding, or something? */ diff --git a/pdf/pdf_trans.c b/pdf/pdf_trans.c index 2d1f8e399..215fbac16 100644 --- a/pdf/pdf_trans.c +++ b/pdf/pdf_trans.c @@ -606,7 +606,7 @@ void pdfi_trans_set_needs_OP(pdf_context *ctx) case PDF_OVERPRINT_SIMULATE: if (!device_transparency && ctx->page.has_OP) { if (is_cmyk) { - if (ctx->page.num_spots > 0) { + if (ctx->page.num_spots > 0 && !ctx->device_state.spot_capable) { ctx->page.needs_OP = true; ctx->page.simulate_op = true; } |