1

webkit/wkhtmltopdf 是否不支持 SVG 图像中填充颜色的 icc-color 配置文件?

我有一个颜色定义为的图像:

#e22e27 icc-color(U.S.-Web-Coated--SWOP--v2, 0.0558938, 0.95947204, 0.98716716, 0.00204471)

哪个应该是红色的(并且在inkscape中)

但是,chrome(和其他浏览器)只是将其打开为黑色(我猜是因为它无法获得填充颜色?)而且 wkhtmltopdf 也显示为黑色。

有没有办法做到这一点?或者更具体地说,是否有任何方法可以在 SVG 中定义设备专色,以便最终的 PDF 可以具有专色红色(而不是 RGB 的复合色)?

谢谢

4

1 回答 1

0

如果您在删除 sRGB 值后在 Inkscape 0.92 中打开 SVG,#e22e27我希望您会看到黑色而不是红色。这是因为即使使用 CMYK 颜色选择器,Inkscape 也会从/向 SVG 文件读取和写入备用 sRGB 值。据我所知,原生 CMYK 支持仍在 Inkscape 的未来。

在开源的 PDF 渲染器中,mPDF 支持通过 CMYK 值定义专色,还支持在 HTML 中嵌入 SVG 的子集,这表明它可以原生读取一些 SVG 语法。根据其 GitHub 项目中的第 39 期问题,对于完全开源的解决方案而言,这将是一个比完全不支持 CMYK 输出的 wkhtmltopdf 更好的起点。

在专有渲染器中,PDFreactor 支持将CMYK 值从 SVG直接传递到渲染器,只要它们没有被光栅化,尽管语法似乎与 W3C SVG 规范不匹配并且没有 sRGB 回退,因此每个 SVG 都必须是特制。这对于源自 Inkscape 的简单图形来说非常容易;只需在您的 SVG 中替换例如:

style="fill:#e22e27 icc-color(U.S.-Web-Coated--SWOP--v2, 0.0558938, 0.95947204, 0.98716716, 0.00204471);fill-opacity:1;fill-rule:nonzero;stroke:none"

仅使用 C、M、Y、K 值:

style="fill:cmyk(0.0558938, 0.95947204, 0.98716716, 0.00204471);fill-opacity:1;fill-rule:nonzero;stroke:none"

我最近使用这种技术来尝试匹配 SVG 和 CSS 中为文档指定的 CMYK 值之间的颜色,例如徽标和字体颜色之间的颜色。有关新兴语法,请参阅CSS 颜色模块级别 4 ;device-cmyk与此同时,PDFreactor 使用非标准cmyk的 CSS 语法,如上面的 SVG 示例所示。

一般来说,我想知道在原生 CMYK SVG 中嵌入颜色配置文件的价值。也许假设是我们从 sRGB 值开始并需要它的近似值,但在我的工作流程中,我从 CMYK 值开始。我欢迎对此作出澄清。此外,仅仅因为印刷机、大陆或纸张发生了变化,重新创建每个 SVG 文件将相当耗时。

于 2017-08-14T12:43:23.673 回答