summaryrefslogtreecommitdiff
path: root/pdf
diff options
context:
space:
mode:
Diffstat (limited to 'pdf')
-rw-r--r--pdf/pdf_pattern.c14
-rw-r--r--pdf/pdf_trans.c2
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;
}