summaryrefslogtreecommitdiff
path: root/poppler/PSOutputDev.cc
diff options
context:
space:
mode:
authorPhilipp Knechtges <philipp-dev@knechtges.com>2020-06-07 21:42:57 +0200
committerAlbert Astals Cid <tsdgeos@yahoo.es>2020-11-01 22:10:25 +0000
commit0c772071baa74b11c66981f768dccf123f431ce1 (patch)
tree77d341e322411c3a8773100ba129f33ec7a77834 /poppler/PSOutputDev.cc
parentccdee13835b66892355ebe1bb8d27556edee32be (diff)
PSOutputDev/pdftops: for splashModeCMYK8 and language level >=2 activate overprint emulation
The overprint operands are always emitted for any language level >= 2, such that it is just consistent to activate overprint emulation during rasterization if it is quite likely that the final device supports this operation.
Diffstat (limited to 'poppler/PSOutputDev.cc')
-rw-r--r--poppler/PSOutputDev.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/poppler/PSOutputDev.cc b/poppler/PSOutputDev.cc
index ff2a21cb..67ae28fe 100644
--- a/poppler/PSOutputDev.cc
+++ b/poppler/PSOutputDev.cc
@@ -3140,6 +3140,7 @@ bool PSOutputDev::checkPageSlice(Page *page, double /*hDPI*/, double /*vDPI*/, i
char hexBuf[32 * 2 + 2]; // 32 values X 2 chars/value + line ending + null
unsigned char digit;
bool isOptimizedGray;
+ bool overprint;
#endif
if (!postInitDone) {
@@ -3191,7 +3192,10 @@ bool PSOutputDev::checkPageSlice(Page *page, double /*hDPI*/, double /*vDPI*/, i
numComps = 3;
paperColor[0] = paperColor[1] = paperColor[2] = 0xff;
}
- splashOut = new SplashOutputDev(processColorFormat, 1, false, paperColor, false);
+ // If we would not rasterize this page, we would emit the overprint code anyway for language level 2 and upwards.
+ // As such it is safe to assume for a CMYK printer that it would respect the overprint operands.
+ overprint = globalParams->getOverprintPreview() || (processColorFormat == splashModeCMYK8 && level >= psLevel2);
+ splashOut = new SplashOutputDev(processColorFormat, 1, false, paperColor, false, splashThinLineDefault, overprint);
splashOut->setFontAntialias(rasterAntialias);
splashOut->setVectorAntialias(rasterAntialias);
# ifdef USE_CMS