Graphviz-> svg(-> pdf)文本对于某些查看器来说是开箱即用的

时间:2018-09-23 14:03:22

标签: svg graphviz

从graphviz生成的svg文件在某些​​查看器(Chrome,Gnome Image Viewer)中看起来不错,但在其他查看器(Inkscape,使用ImageMagick转换为pdf时)中则不然。

这是我的最小示例,左侧是Chrome(正确的渲染),右侧是Inkscape(错误):

minimal example

以上是通过此graphviz代码生成的:

digraph {
    node [shape=box];
    foo[label="long text long text long text"]
}

SVG由以下人员产生: dot g.txt -Tsvg -o g.svg

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
 -->
<!-- Title: %3 Pages: 1 -->
<svg width="177pt" height="44pt"
 viewBox="0.00 0.00 177.00 44.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>%3</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 173,-40 173,4 -4,4"/>
<!-- foo -->
<g id="node1" class="node"><title>foo</title>
<polygon fill="none" stroke="black" points="169,-36 0,-36 0,-0 169,-0 169,-36"/>
<text text-anchor="middle" x="84.5" y="-14.3" font-family="Times,serif" font-size="14.00">long text long text long text</text>
</g>
</g>
</svg>

是什么原因造成的?难道我做错了什么?我如何解决它? 谢谢!

程序版本:

graphviz version 2.38.0 (20140413.2041)
Inkscape 0.92.2pre0 (973e216, 2017-07-25)
GNOME Image Viewer 3.26.2
Chrome Version 69.0.3497.92
ImageMagick 6.9.9-34 Q16 x86_64 2018012

1 个答案:

答案 0 :(得分:2)

使用Imagemagick 6.9.10.11 Q16 Mac OSX和inkscape @ 0.92.3_4,我得到以下信息。请注意,我只转换为jpg即可在此处发布。 pdf相同。

convert test.svg test.pdf
convert test.pdf test.jpg


enter image description here

所以我得出结论,这可能是您的Imagemagick版本或更可能是您的Inkscape版本或安装错误。