SVG中的ICC颜色配置文件用于webkit wkhtmltopdf或定义专色

时间:2013-03-18 15:47:12

标签: svg webkit wkhtmltopdf

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

我的图像颜色定义为:

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

应该是红色的(并且在inkscape中出现)

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

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

由于

1 个答案:

答案 0 :(得分:0)

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

在开源PDF渲染器中,mPDF支持defining spot colours by CMYK values,并且还支持在HTML中嵌入SVG子集,这表明它可以原生地读取一些SVG语法。根据GitHub项目第39期的问题,这将是完全开源解决方案的一个更好的起点,而不是根本不支持CMYK输出的wkhtmltopdf。

在专有渲染器中,PDFreactor支持将CMYK values from an 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"

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

一般来说,我想知道在本机CMYK SVG中嵌入颜色配置文件的价值。也许假设我们从sRGB值开始并且需要近似值,但在我的工作流程中,我从CMYK值开始。我很乐意澄清这一点。此外,仅仅因为印刷机,大陆或纸张已经改变而重新创建每个SVG文件将是相当耗时的。