我目前正在尝试在java中为yEd转储图形。我一直在尝试使用graphml作为格式,但我发现它非常麻烦。特别是,节点的大小不会根据标签的大小调整大小,因此大多数时候标签会比实际文件大。
在没有实际进入并指定每个节点的宽度和高度的情况下,有什么办法可以解决这个问题吗?
由于
答案 0 :(得分:2)
有一种方法,虽然这种方式使用非官方API,但可能不适用于任何版本,但目前的版本(写作时为3.9.2)。
在GraphML中,在图表级别添加以下键:
<g:key id="ppkey" for="graph" yfiles.type="postprocessors"/>
<g:graph id="G" edgedefault="directed">
<g:data key="ppkey">
<y:Postprocessors>
<y:Processor class="A.A.A.A.A">
<y:Option name="IGNORE_WIDTHS" value="false"/>
<y:Option name="IGNORE_HEIGHTS" value="true"/>
<y:Option name="ADAPT_TO_MAXIMUM_NODE" value="false"/>
</y:Processor>
</y:Postprocessors>
</g:data>
</g:graph>
正如您所看到的,“A.A.A.A.A”显然是一个混淆的类名,它可能会在构建之间发生变化,并且会破坏您的脚本。
造成这种不便的原因实际上非常简单:yEd不应该以自动方式使用(许可证甚至明确禁止纯自动用例),因此针对交互式使用进行了优化。因此,实际上打算点击按钮。为什么?因为yEd是一个基于强大的商业图书馆的免费产品,它只是免费的,因为高级用户购买图书馆的许可证,从而赞助yEd的开发和支持。如果您确实需要以编程方式利用该功能,那么您应该直接了解库的许可。
也就是说,您也可以尝试Excel导入 - 它会自动为您执行此步骤,但您必须创建一个excel文件才能开始。