【发布时间】:2019-07-20 03:08:26
【问题描述】:
我正在使用 Mako SDK,我想输出到 SVG。在此之前,我想模拟叠印。
我正在使用ISVGGenerator 类,但我看不到任何控制叠印模拟的方法。如果我查看 IJawsRenderer 类,我也看不到它的任何方法。
如何开启叠印模拟?
【问题讨论】:
我正在使用 Mako SDK,我想输出到 SVG。在此之前,我想模拟叠印。
我正在使用ISVGGenerator 类,但我看不到任何控制叠印模拟的方法。如果我查看 IJawsRenderer 类,我也看不到它的任何方法。
如何开启叠印模拟?
【问题讨论】:
要使用叠印模拟,您需要使用转换,而不是在给定输出上设置标志。
然后,此转换将在您提供给它的节点树上运行,更新和渲染以导致 DOM 被修改,从而模拟叠印。
Mako 为此提供了一个标准转换。这段代码设置它:
// Setup the overprint simulation transform
IOverprintSimulationTransformPtr transform = IOverprintSimulationTransform::create(jawsMako);
transform->setSimulateBlackDeviceGrayTextOverprint(false);
transform->setResolution(300);
您可以使用以下方法将此转换应用于页面:
IPagePtr page = document->getPage(0);
transform->transformPage(page);
如果您想对页面应用叠印模拟进行渲染,但不希望它影响原始页面 DOM,您可以先克隆页面,使用:
IPage::clone()
然后将转换应用到克隆的页面。渲染克隆的页面后,可以将其丢弃。
【讨论】: