小编典典

适用于Linux的SVG渲染器好吗?

linux

我正在开发一些脚本来生成SVG文件,我想知道对于Linux有什么好的SVG渲染器。我知道Firefox /
Chrome提供了SVG支持(我觉得Chrome渲染速度更快),但也许我缺少其他独立的SVG渲染器。我知道pySVG的存在。

足够好,我的意思是尽可能覆盖SVG 1.1规范。我之所以选择一个独立的库,是因为我的工作流程更快,因为我不必每次都按F5。


阅读 321

收藏
2020-06-07

共1个答案

小编典典

由draw.io工具导出的SVG
1.1太“现代”,无法被当前的Batik,Cairo,qiv甚至FireFox正确渲染:似乎它们都不支持元素。但是WebKit确实可以正确渲染它,因此要将SVG转换为高质量图像,我使用http://wkhtmltopdf.org的“
wkhtmlto …”工具。

wkhtmltoimage会以屏幕分辨率生成输出,并且其--zoom切换比例尺的线条和文本会有所不同,从而导致剪切(尽管在Chrome中打开了相同的SVG并正确执行了缩放)。因此,我改为使用wkhtmltopdf生成中间pdf,然后使用ghostscript将其渲染为高分辨率图像:

wkhtmltopdf callbacks.svg callbacks.pdf
gs -sDEVICE=pnggray -sOutputFile=callbacks.png -dBATCH -dNOPAUSE -r900 callbacks.pdf

编辑:通过页面描述格式的缺点是生成的图像文件可能具有很大的边框。您可以尝试使用纸张尺寸和布局以将其最小化,或者只是将它们自动裁剪掉,例如使用ImageMagick:

convert callbacks.png -trim callbacks.png

编辑:FireFox 49.0.2(2016年11月)现在可以正确渲染draw.io
SVG。尚未重新测试开罗或蜡染。样本draw.io文件

2020-06-07