3

我正在尝试使用dotGraphViz 附带的程序(版本 2.28.0 (20121023.0419))来转换以下 graphviz 文件:

digraph {
1 [
  shape=none
  ,label=<<TABLE BGCOLOR="lightblue2" BORDER="0" CELLBORDER="0" STYLE="rounded" ><TR><TD><FONT FACE="Helvetica" POINT-SIZE="20">Heading 1</FONT></TD></TR>
                 <TR><TD>Body 1<BR /></TD></TR></TABLE>>
  ];
3 [
  shape=none
  ,label=<<TABLE><TR><TD><FONT FACE="Helvetica" POINT-SIZE="16">Heading 2</FONT></TD></TR>
                 <TR><TD>Body 2<BR /></TD></TR></TABLE>>
  ,color=lightblue2];
2 [
  shape=none
  ,label=<<TABLE><TR><TD><FONT FACE="Helvetica" POINT-SIZE="16">Heading 3</FONT></TD></TR>
                 <TR><TD>Line 1<BR />Line 2<BR /></TD></TR></TABLE>>
  ,color=lightblue2];
}

首先,我尝试运行以创建 PDF(在 Linux 和 Mac OS 上的结果相同):

dot -Tpdf -Gcharset=utf8 test.dot > output.pdf

问题:

  1. 不正确的字体渲染:标题 1 带有下划线,标题 3 是斜体,但它们都使用完全相同的字体指定。
  2. 第一个节点周围的边框:我指定BORDER="0"但显然在使用 STYLE="rounded" 时边框仍然可见...

接下来我尝试创建一个 SVG 文件,它解决了字体渲染问题:

点 -Tsvg -Gcharset=utf8 test.dot > output.svg

如您所见,文本溢出了节点的边界。即使我将 a 添加FIXEDWIDTH="FALSE"到表中,也会发生这种情况。

我究竟做错了什么?

4

1 回答 1

0

白天好!我建议您尝试降级到 2.26.3 版本的 dot-graphviz。除了点程序忽略第一个表中的属性 STYLE 之外,我和你做了同样的事情并得到了正确的结果。所以它没有被四舍五入。

于 2013-01-17T14:17:38.260 回答