我正在开发一些脚本来生成SVG文件,我想知道Linux存在哪些好的SVG渲染器。我知道Firefox / Chrome提供SVG支持(我觉得Chrome渲染速度更快)但也许我还缺少其他独立的SVG渲染器。我知道pySVG的存在。
足够好,我的意思是尽可能地涵盖SVG 1.1规范。我更喜欢独立库的原因是我的工作流程更快,因为我不必每次都按F5。
答案 0 :(得分:6)
Apache Batik是一个非常好的库/程序集合,支持SVG规范的很大一部分。它包括一个独立的查看器/编辑器,以及一个可以将SVG转换为光栅图像格式的命令行光栅化器。
答案 1 :(得分:5)
当前的Batik,Cairo,qiv,甚至是FireFox,由draw.io工具导出的SVG 1.1对于正确渲染来说太“现代”了:它们似乎都不支持< 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
编辑:通过页面描述格式的缺点是生成的图像文件可能具有非常大的边框。您可以尝试使用纸张尺寸和布局来最小化这种情况,或者只是自动裁剪它们,例如使用ImageMagick:
convert callbacks.png -trim callbacks.png
编辑:FireFox 49。0。2(2016年11月)现在正确渲染draw.io SVG。没有重新测试开罗或蜡染。 sample draw.io file
答案 2 :(得分:4)
您可以使用qiv
标记尝试命令行应用 -m -T
。
答案 3 :(得分:2)
Qt SVG只需点击2次,如果您安装Qt 4.7并选择本地安装的示例项目svgviewer。只需构建并运行即可获得动画视口:
答案 4 :(得分:2)
我推荐WebkitGtk。这是用于为Safari,Chrome和许多其他浏览器供电的渲染器。它支持渲染SVG以及HTML。
只需apt-get install libwebkitgt-3.0-0
。您可以通过运行/usr/lib/webkitgtk-3.0-0/libexec/GtkLauncher
来试用它。
然后,您可以使用您喜欢的任何语言/绑定来围绕SVG渲染器构建GUI,包括Python的Gtk绑定:http://www.aclevername.com/articles/python-webgui/
这是另一篇关于使用Webkit和pygtk绑定构建桌面UI的好文章:http://arstechnica.com/information-technology/2009/07/how-to-build-a-desktop-wysiwyg-editor-with-webkit-and-html-5/