Commit 2e32545b authored by Albert Astals Cid's avatar Albert Astals Cid

Always enable SPLASH_CMYK

Doesn't seem to cause any speed regression and one ifdef less is code easier
to maintain
parent 9d5af77a
......@@ -76,7 +76,7 @@ build_clazy:
- dnf -y install glibc-langpack-en curl make ninja-build openjpeg2-tools clazy clang redhat-rpm-config
script:
- mkdir -p build && cd build
- CC=clang CXX=clazy CXXFLAGS="-Werror -Wno-deprecated-declarations" cmake -DSPLASH_CMYK=ON -G Ninja ..
- CC=clang CXX=clazy CXXFLAGS="-Werror -Wno-deprecated-declarations" cmake -G Ninja ..
- CLAZY_CHECKS="level0,level1,level2,isempty-vs-count,qhash-with-char-pointer-key,tr-non-literal,no-non-pod-global-static" ninja
build_android:
......
......@@ -61,7 +61,6 @@ set(ENABLE_DCTDECODER "libjpeg" CACHE STRING "Use libjpeg for DCT streams. Possi
option(ENABLE_LIBCURL "Build libcurl based HTTP support." ON)
option(ENABLE_ZLIB "Build with zlib." ON)
option(ENABLE_ZLIB_UNCOMPRESS "Use zlib to uncompress flate streams (not totally safe)." OFF)
option(SPLASH_CMYK "Include support for CMYK rasterization." OFF)
option(USE_FLOAT "Use single precision arithmetic in the Splash backend" OFF)
option(BUILD_SHARED_LIBS "Build poppler as a shared library" ON)
if(WIN32)
......@@ -717,9 +716,6 @@ endif()
message("Building Poppler with support for:")
show_end_message("font configuration" ${font_configuration})
show_end_message_yesno("splash output" ENABLE_SPLASH)
if(SPLASH_CMYK)
message(" with CMYK support")
endif()
show_end_message_yesno("cairo output" CAIRO_FOUND)
show_end_message_yesno("qt5 wrapper" ENABLE_QT5)
show_end_message_yesno("glib wrapper" ENABLE_GLIB)
......
......@@ -156,9 +156,6 @@
/* Support for curl based doc builder is compiled in. */
#cmakedefine POPPLER_HAS_CURL_SUPPORT 1
/* Include support for CMYK rasterization */
#cmakedefine SPLASH_CMYK 1
/* Enable word list support. */
#cmakedefine TEXTOUT_WORD_LIST 1
......
......@@ -3268,14 +3268,12 @@ bool PSOutputDev::checkPageSlice(Page *page, double /*hDPI*/, double /*vDPI*/,
paperColor[0] = 0xff;
splashOut = new SplashOutputDev(splashModeMono8, 1, false,
paperColor, false);
#ifdef SPLASH_CMYK
} else if (level == psLevel1Sep || level == psLevel2Sep ||
level == psLevel3Sep || globalParams->getOverprintPreview()) {
numComps = 4;
paperColor[0] = paperColor[1] = paperColor[2] = paperColor[3] = 0;
splashOut = new SplashOutputDev(splashModeCMYK8, 1, false,
paperColor, false);
#endif
} else {
numComps = 3;
paperColor[0] = paperColor[1] = paperColor[2] = 0xff;
......
This diff is collapsed.
......@@ -399,10 +399,8 @@ private:
void setupScreenParams(double hDPI, double vDPI);
SplashPattern *getColor(GfxGray gray);
SplashPattern *getColor(GfxRGB *rgb);
#ifdef SPLASH_CMYK
SplashPattern *getColor(GfxCMYK *cmyk);
SplashPattern *getColor(GfxColor *deviceN);
#endif
static void getMatteColor( SplashColorMode colorMode, GfxImageColorMap *colorMap, const GfxColor * matteColor, SplashColor splashMatteColor);
void setOverprintMask(GfxColorSpace *colorSpace, bool overprintFlag,
int overprintMode, const GfxColor *singleColor, bool grayIndexed = false);
......
......@@ -863,11 +863,7 @@ namespace Poppler {
}
bool isOverprintPreviewAvailable() {
#ifdef SPLASH_CMYK
return true;
#else
return false;
#endif
}
}
......
......@@ -527,9 +527,7 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
{
#if defined(HAVE_SPLASH)
SplashColor bgColor;
bool overprintPreview = false;
#ifdef SPLASH_CMYK
overprintPreview = m_page->parentDoc->m_hints & Document::OverprintPreview ? true : false;
const bool overprintPreview = m_page->parentDoc->m_hints & Document::OverprintPreview ? true : false;
if (overprintPreview)
{
unsigned char c, m, y, k;
......@@ -553,17 +551,13 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
}
}
else
#endif
{
bgColor[0] = m_page->parentDoc->paperColor.blue();
bgColor[1] = m_page->parentDoc->paperColor.green();
bgColor[2] = m_page->parentDoc->paperColor.red();
}
SplashColorMode colorMode = splashModeXBGR8;
#ifdef SPLASH_CMYK
if (overprintPreview) colorMode = splashModeDeviceN8;
#endif
const SplashColorMode colorMode = overprintPreview ? splashModeDeviceN8 : splashModeXBGR8;
SplashThinLineMode thinLineMode = splashThinLineDefault;
if (m_page->parentDoc->m_hints & Document::ThinLineShape) thinLineMode = splashThinLineShape;
......
This diff is collapsed.
......@@ -58,25 +58,18 @@ typedef void (*SplashICCTransform)(void *data, SplashBitmap *bitmap);
//------------------------------------------------------------------------
enum SplashPipeResultColorCtrl {
#ifdef SPLASH_CMYK
splashPipeResultColorNoAlphaBlendCMYK,
splashPipeResultColorNoAlphaBlendDeviceN,
#endif
splashPipeResultColorNoAlphaBlendRGB,
splashPipeResultColorNoAlphaBlendMono,
splashPipeResultColorAlphaNoBlendMono,
splashPipeResultColorAlphaNoBlendRGB,
#ifdef SPLASH_CMYK
splashPipeResultColorAlphaNoBlendCMYK,
splashPipeResultColorAlphaNoBlendDeviceN,
#endif
splashPipeResultColorAlphaBlendMono,
splashPipeResultColorAlphaBlendRGB
#ifdef SPLASH_CMYK
,
splashPipeResultColorAlphaBlendRGB,
splashPipeResultColorAlphaBlendCMYK,
splashPipeResultColorAlphaBlendDeviceN
#endif
};
//------------------------------------------------------------------------
......@@ -297,19 +290,15 @@ private:
void pipeRunSimpleRGB8(SplashPipe *pipe);
void pipeRunSimpleXBGR8(SplashPipe *pipe);
void pipeRunSimpleBGR8(SplashPipe *pipe);
#ifdef SPLASH_CMYK
void pipeRunSimpleCMYK8(SplashPipe *pipe);
void pipeRunSimpleDeviceN8(SplashPipe *pipe);
#endif
void pipeRunAAMono1(SplashPipe *pipe);
void pipeRunAAMono8(SplashPipe *pipe);
void pipeRunAARGB8(SplashPipe *pipe);
void pipeRunAAXBGR8(SplashPipe *pipe);
void pipeRunAABGR8(SplashPipe *pipe);
#ifdef SPLASH_CMYK
void pipeRunAACMYK8(SplashPipe *pipe);
void pipeRunAADeviceN8(SplashPipe *pipe);
#endif
void pipeSetXY(SplashPipe *pipe, int x, int y);
void pipeIncX(SplashPipe *pipe);
void drawPixel(SplashPipe *pipe, int x, int y, bool noClip);
......
......@@ -89,7 +89,6 @@ SplashBitmap::SplashBitmap(int widthA, int heightA, int rowPadA,
rowSize = -1;
}
break;
#ifdef SPLASH_CMYK
case splashModeCMYK8:
if (width > 0 && width <= INT_MAX / 4) {
rowSize = width * 4;
......@@ -104,7 +103,6 @@ SplashBitmap::SplashBitmap(int widthA, int heightA, int rowPadA,
rowSize = -1;
}
break;
#endif
}
if (rowSize > 0) {
rowSize += rowPad - 1;
......@@ -249,14 +247,12 @@ SplashError SplashBitmap::writePNMFile(FILE *f) {
}
break;
#ifdef SPLASH_CMYK
case splashModeCMYK8:
case splashModeDeviceN8:
// PNM doesn't support CMYK
error(errInternal, -1, "unsupported SplashBitmap mode");
return splashErrGeneric;
break;
#endif
}
return splashOk;
}
......@@ -310,7 +306,6 @@ void SplashBitmap::getPixel(int x, int y, SplashColorPtr pixel) {
pixel[1] = p[1];
pixel[2] = p[0];
break;
#ifdef SPLASH_CMYK
case splashModeCMYK8:
p = &data[y * rowSize + 4 * x];
pixel[0] = p[0];
......@@ -323,7 +318,6 @@ void SplashBitmap::getPixel(int x, int y, SplashColorPtr pixel) {
for (int cp = 0; cp < SPOT_NCOMPS + 4; cp++)
pixel[cp] = p[cp];
break;
#endif
}
}
......@@ -379,12 +373,10 @@ SplashError SplashBitmap::writeImgFile(SplashImageFileFormat format, FILE *f, in
#endif
#ifdef ENABLE_LIBJPEG
#ifdef SPLASH_CMYK
case splashFormatJpegCMYK:
writer = new JpegWriter(JpegWriter::CMYK);
setJpegParams(writer, params);
break;
#endif
case splashFormatJpeg:
writer = new JpegWriter();
setJpegParams(writer, params);
......@@ -406,12 +398,10 @@ SplashError SplashBitmap::writeImgFile(SplashImageFileFormat format, FILE *f, in
case splashModeBGR8:
writer = new TiffWriter(TiffWriter::RGB);
break;
#ifdef SPLASH_CMYK
case splashModeCMYK8:
case splashModeDeviceN8:
writer = new TiffWriter(TiffWriter::CMYK);
break;
#endif
default:
fprintf(stderr, "TiffWriter: Mode %d not supported\n", mode);
writer = new TiffWriter();
......@@ -446,7 +436,6 @@ void SplashBitmap::getRGBLine(int yl, SplashColorPtr line) {
m = byteToDbl(col[1]);
y = byteToDbl(col[2]);
k = byteToDbl(col[3]);
#ifdef SPLASH_CMYK
if (separationList->size() > 0) {
for (std::size_t i = 0; i < separationList->size(); i++) {
if (col[i+4] > 0) {
......@@ -470,7 +459,6 @@ void SplashBitmap::getRGBLine(int yl, SplashColorPtr line) {
if (y > 1) y = 1;
if (k > 1) k = 1;
}
#endif
c1 = 1 - c;
m1 = 1 - m;
y1 = 1 - y;
......@@ -492,7 +480,6 @@ void SplashBitmap::getXBGRLine(int yl, SplashColorPtr line, ConversionMode conve
m = byteToDbl(col[1]);
y = byteToDbl(col[2]);
k = byteToDbl(col[3]);
#ifdef SPLASH_CMYK
if (separationList->size() > 0) {
for (std::size_t i = 0; i < separationList->size(); i++) {
if (col[i+4] > 0) {
......@@ -516,7 +503,6 @@ void SplashBitmap::getXBGRLine(int yl, SplashColorPtr line, ConversionMode conve
if (y > 1) y = 1;
if (k > 1) k = 1;
}
#endif
c1 = 1 - c;
m1 = 1 - m;
y1 = 1 - y;
......@@ -596,7 +582,6 @@ bool SplashBitmap::convertToXBGR(ConversionMode conversionMode) {
return newdata != nullptr;
}
#ifdef SPLASH_CMYK
void SplashBitmap::getCMYKLine(int yl, SplashColorPtr line) {
SplashColor col;
......@@ -636,13 +621,10 @@ void SplashBitmap::getCMYKLine(int yl, SplashColorPtr line) {
*line++ = col[3];
}
}
#endif
SplashError SplashBitmap::writeImgFile(ImgWriter *writer, FILE *f, int hDPI, int vDPI, SplashColorMode imageWriterFormat) {
if (mode != splashModeRGB8 && mode != splashModeMono8 && mode != splashModeMono1 && mode != splashModeXBGR8 && mode != splashModeBGR8
#ifdef SPLASH_CMYK
&& mode != splashModeCMYK8 && mode != splashModeDeviceN8
#endif
) {
error(errInternal, -1, "unsupported SplashBitmap mode");
return splashErrGeneric;
......@@ -653,7 +635,6 @@ SplashError SplashBitmap::writeImgFile(ImgWriter *writer, FILE *f, int hDPI, int
}
switch (mode) {
#ifdef SPLASH_CMYK
case splashModeCMYK8:
if (writer->supportCMYK()) {
SplashColorPtr row;
......@@ -704,7 +685,6 @@ SplashError SplashBitmap::writeImgFile(ImgWriter *writer, FILE *f, int hDPI, int
delete[] row;
}
break;
#endif
case splashModeRGB8:
{
SplashColorPtr row;
......
......@@ -98,9 +98,7 @@ public:
void getPixel(int x, int y, SplashColorPtr pixel);
void getRGBLine(int y, SplashColorPtr line);
void getXBGRLine(int y, SplashColorPtr line, ConversionMode conversionMode = conversionOpaque);
#ifdef SPLASH_CMYK
void getCMYKLine(int y, SplashColorPtr line);
#endif
unsigned char getAlpha(int x, int y);
// Caller takes ownership of the bitmap data. The SplashBitmap
......
......@@ -35,10 +35,7 @@
// number of components in each color mode
int splashColorModeNComps[] = {
1, 1, 3, 3, 4
#ifdef SPLASH_CMYK
, 4, 4 + SPOT_NCOMPS
#endif
1, 1, 3, 3, 4, 4, 4 + SPOT_NCOMPS
};
SplashState::SplashState(int width, int height, bool vectorAntialias,
......@@ -80,14 +77,12 @@ SplashState::SplashState(int width, int height, bool vectorAntialias,
rgbTransferG[i] = (unsigned char)i;
rgbTransferB[i] = (unsigned char)i;
grayTransfer[i] = (unsigned char)i;
#ifdef SPLASH_CMYK
cmykTransferC[i] = (unsigned char)i;
cmykTransferM[i] = (unsigned char)i;
cmykTransferY[i] = (unsigned char)i;
cmykTransferK[i] = (unsigned char)i;
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
deviceNTransfer[cp][i] = (unsigned char)i;
#endif
}
overprintMask = 0xffffffff;
overprintAdditive = false;
......@@ -133,14 +128,12 @@ SplashState::SplashState(int width, int height, bool vectorAntialias,
rgbTransferG[i] = (unsigned char)i;
rgbTransferB[i] = (unsigned char)i;
grayTransfer[i] = (unsigned char)i;
#ifdef SPLASH_CMYK
cmykTransferC[i] = (unsigned char)i;
cmykTransferM[i] = (unsigned char)i;
cmykTransferY[i] = (unsigned char)i;
cmykTransferK[i] = (unsigned char)i;
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
deviceNTransfer[cp][i] = (unsigned char)i;
#endif
}
overprintMask = 0xffffffff;
overprintAdditive = false;
......@@ -184,14 +177,12 @@ SplashState::SplashState(SplashState *state) {
memcpy(rgbTransferG, state->rgbTransferG, 256);
memcpy(rgbTransferB, state->rgbTransferB, 256);
memcpy(grayTransfer, state->grayTransfer, 256);
#ifdef SPLASH_CMYK
memcpy(cmykTransferC, state->cmykTransferC, 256);
memcpy(cmykTransferM, state->cmykTransferM, 256);
memcpy(cmykTransferY, state->cmykTransferY, 256);
memcpy(cmykTransferK, state->cmykTransferK, 256);
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
memcpy(deviceNTransfer[cp], state->deviceNTransfer[cp], 256);
#endif
overprintMask = state->overprintMask;
overprintAdditive = state->overprintAdditive;
next = nullptr;
......@@ -246,22 +237,18 @@ void SplashState::setSoftMask(SplashBitmap *softMaskA) {
void SplashState::setTransfer(unsigned char *red, unsigned char *green, unsigned char *blue,
unsigned char *gray) {
#ifdef SPLASH_CMYK
int i;
for (i = 0; i < 256; ++i) {
for (int i = 0; i < 256; ++i) {
cmykTransferC[i] = 255 - rgbTransferR[255 - i];
cmykTransferM[i] = 255 - rgbTransferG[255 - i];
cmykTransferY[i] = 255 - rgbTransferB[255 - i];
cmykTransferK[i] = 255 - grayTransfer[255 - i];
}
for (i = 0; i < 256; ++i) {
for (int i = 0; i < 256; ++i) {
deviceNTransfer[0][i] = 255 - rgbTransferR[255 - i];
deviceNTransfer[1][i] = 255 - rgbTransferG[255 - i];
deviceNTransfer[2][i] = 255 - rgbTransferB[255 - i];
deviceNTransfer[3][i] = 255 - grayTransfer[255 - i];
}
#endif
memcpy(rgbTransferR, red, 256);
memcpy(rgbTransferG, green, 256);
memcpy(rgbTransferB, blue, 256);
......
......@@ -125,13 +125,11 @@ private:
rgbTransferG[256],
rgbTransferB[256];
unsigned char grayTransfer[256];
#ifdef SPLASH_CMYK
unsigned char cmykTransferC[256],
cmykTransferM[256],
cmykTransferY[256],
cmykTransferK[256];
unsigned char deviceNTransfer[SPOT_NCOMPS+4][256];
#endif
unsigned int overprintMask;
bool overprintAdditive;
......
......@@ -27,6 +27,8 @@
#ifndef SPLASHTYPES_H
#define SPLASHTYPES_H
#include <cstddef>
//------------------------------------------------------------------------
// coordinates
//------------------------------------------------------------------------
......@@ -59,16 +61,13 @@ enum SplashColorMode {
// RGBRGB...
splashModeBGR8, // 1 byte per component, 3 bytes per pixel:
// BGRBGR...
splashModeXBGR8 // 1 byte per component, 4 bytes per pixel:
splashModeXBGR8, // 1 byte per component, 4 bytes per pixel:
// XBGRXBGR...
#ifdef SPLASH_CMYK
,
splashModeCMYK8, // 1 byte per component, 4 bytes per pixel:
// CMYKCMYK...
splashModeDeviceN8 // 1 byte per component,
// 4 bytes + n bytes spot colors per pixel:
// CMYKSSSSCMYKSSSS...
#endif
};
enum SplashThinLineMode {
......@@ -82,11 +81,7 @@ enum SplashThinLineMode {
extern int splashColorModeNComps[];
// max number of components in any SplashColor
#ifdef SPLASH_CMYK
#define splashMaxColorComps SPOT_NCOMPS+4
#else
#define splashMaxColorComps 4
#endif
constexpr std::size_t splashMaxColorComps = SPOT_NCOMPS+4;
typedef unsigned char SplashColor[splashMaxColorComps];
typedef unsigned char *SplashColorPtr;
......@@ -101,7 +96,6 @@ static inline unsigned char splashBGR8R(SplashColorPtr bgr8) { return bgr8[2]; }
static inline unsigned char splashBGR8G(SplashColorPtr bgr8) { return bgr8[1]; }
static inline unsigned char splashBGR8B(SplashColorPtr bgr8) { return bgr8[0]; }
#ifdef SPLASH_CMYK
// CMYK8
static inline unsigned char splashCMYK8C(SplashColorPtr cmyk8) { return cmyk8[0]; }
static inline unsigned char splashCMYK8M(SplashColorPtr cmyk8) { return cmyk8[1]; }
......@@ -114,39 +108,32 @@ static inline unsigned char splashDeviceN8M(SplashColorPtr deviceN8) { return de
static inline unsigned char splashDeviceN8Y(SplashColorPtr deviceN8) { return deviceN8[2]; }
static inline unsigned char splashDeviceN8K(SplashColorPtr deviceN8) { return deviceN8[3]; }
static inline unsigned char splashDeviceN8S(SplashColorPtr deviceN8, int nSpot) { return deviceN8[4 + nSpot]; }
#endif
static inline void splashClearColor(SplashColorPtr dest) {
dest[0] = 0;
dest[1] = 0;
dest[2] = 0;
#ifdef SPLASH_CMYK
dest[3] = 0;
for (int i = 4; i < SPOT_NCOMPS + 4; i++)
dest[i] = 0;
#endif
}
static inline void splashColorCopy(SplashColorPtr dest, SplashColorPtr src) {
dest[0] = src[0];
dest[1] = src[1];
dest[2] = src[2];
#ifdef SPLASH_CMYK
dest[3] = src[3];
for (int i = 4; i < SPOT_NCOMPS + 4; i++)
dest[i] = src[i];
#endif
}
static inline void splashColorXor(SplashColorPtr dest, SplashColorPtr src) {
dest[0] ^= src[0];
dest[1] ^= src[1];
dest[2] ^= src[2];
#ifdef SPLASH_CMYK
dest[3] ^= src[3];
for (int i = 4; i < SPOT_NCOMPS + 4; i++)
dest[i] ^= src[i];
#endif
}
//------------------------------------------------------------------------
......
......@@ -97,9 +97,7 @@ static GooString jpegOpt;
static int jpegQuality = -1;
static bool jpegProgressive = false;
static bool jpegOptimize = false;
#ifdef SPLASH_CMYK
static bool overprint = false;
#endif
static char enableFreeTypeStr[16] = "";
static char antialiasStr[16] = "";
static char vectorAntialiasStr[16] = "";
......@@ -170,17 +168,13 @@ static const ArgDesc argDesc[] = {
#ifdef ENABLE_LIBJPEG
{"-jpeg", argFlag, &jpeg, 0,
"generate a JPEG file"},
#ifdef SPLASH_CMYK
{"-jpegcmyk",argFlag, &jpegcmyk, 0,
"generate a CMYK JPEG file"},
#endif
{"-jpegopt", argGooString, &jpegOpt, 0,
"jpeg options, with format <opt1>=<val1>[,<optN>=<valN>]*"},
#endif
#ifdef SPLASH_CMYK
{"-overprint",argFlag, &overprint, 0,
"enable overprint"},
#endif
#ifdef ENABLE_LIBTIFF
{"-tiff", argFlag, &tiff, 0,
"generate a TIFF file"},
......@@ -368,9 +362,7 @@ static void processPageJobs() {
// process the job
SplashOutputDev *splashOut = new SplashOutputDev(mono ? splashModeMono1 :
gray ? splashModeMono8 :
#ifdef SPLASH_CMYK
(jpegcmyk || overprint) ? splashModeDeviceN8 :
#endif
splashModeRGB8, 4, false, *pageJob.paperColor, true, thinLineMode);
splashOut->setFontAntialias(fontAntialias);
splashOut->setVectorAntialias(vectorAntialias);
......@@ -524,14 +516,11 @@ int main(int argc, char *argv[]) {
}
// write PPM files
#ifdef SPLASH_CMYK
if (jpegcmyk || overprint) {
globalParams->setOverprintPreview(true);
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
paperColor[cp] = 0;
} else
#endif
{
} else {
paperColor[0] = 255;
paperColor[1] = 255;
paperColor[2] = 255;
......@@ -541,9 +530,7 @@ int main(int argc, char *argv[]) {
splashOut = new SplashOutputDev(mono ? splashModeMono1 :
gray ? splashModeMono8 :
#ifdef SPLASH_CMYK
(jpegcmyk || overprint) ? splashModeDeviceN8 :
#endif
splashModeRGB8, 4,
false, paperColor, true, thinLineMode);
......
......@@ -114,9 +114,7 @@ static char userPassword[33] = "\001";
static bool quiet = false;
static bool printVersion = false;
static bool printHelp = false;
#ifdef SPLASH_CMYK
static bool overprint = false;
#endif
static const ArgDesc argDesc[] = {
{"-f", argInt, &firstPage, 0,
......@@ -187,10 +185,8 @@ static const ArgDesc argDesc[] = {
"owner password (for encrypted files)"},
{"-upw", argString, userPassword, sizeof(userPassword),
"user password (for encrypted files)"},
#ifdef SPLASH_CMYK
{"-overprint",argFlag, &overprint, 0,
"enable overprint"},
#endif
{"-q", argFlag, &quiet, 0,
"don't print any messages or errors"},
{"-v", argFlag, &printVersion, 0,
......@@ -288,11 +284,9 @@ int main(int argc, char *argv[]) {
goto err0;
}
}
#ifdef SPLASH_CMYK
if (overprint) {
globalParams->setOverprintPreview(true);
}
#endif
if (expand) {
globalParams->setPSExpandSmaller(true);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment