适用于Linux的好SVG渲染器?

rub*_*afo 11 linux svg

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

足够好,我的意思是尽可能地涵盖SVG 1.1规范.我更喜欢独立库的原因是我的工作流程更快,因为我不必每次都按F5.

Ser*_*riu 6

Apache Batik是一个非常好的库/程序集合,支持SVG规范的很大一部分.它包括一个独立的查看器/编辑器,以及一个可以将SVG转换为光栅图像格式的命令行光栅化器.


ren*_*ick 5

您可以尝试qiv带有-m -T标志的命令行应用程序。


Tom*_*low 5

由draw.io工具导出的SVG 1.1过于"现代",无法通过当前的Batik,Cairo,qiv甚至FireFox进行正确渲染:它们似乎都不支持<foreignObject>元素.然而,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
Run Code Online (Sandbox Code Playgroud)

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

convert callbacks.png -trim callbacks.png
Run Code Online (Sandbox Code Playgroud)

编辑:FireFox 49.0.2(2016年11月)现在正确渲染draw.io SVG.没有重新测试开罗或蜡染.示例draw.io文件