使用 .NET 动态生成可视化图表 [英] generate visio diagram on the fly with .NET
问题描述
如果我有客户端应用程序、服务和数据库的列表,是否有一种很好的方法来生成架构的 visio 图表(具有合适的布局)?我本以为会有一种体面的方式来即时生成它.
is there a good way of generating a visio diagram of an architecture (with a decent layout) if i have a list of client apps, services and databases? i would have thought there would be a decent way to generate this on the fly.
推荐答案
GitHub 上有 VisioAutomation.如果您安装了 Visio,它可以自动生成图表.如果您可以将您想要的图建模为有向图,那么它可以自动为您布置图(使用 MSAGL).
There is VisioAutomation on GitHub. If you have Visio installed it can automate the generation of a diagram. If you can model the diagram you want as a directed graph then it can automatically layout the graph for you (using MSAGL).
这是创建有向图的基本示例
Here is a basic example of creating the directed graph
using VACONNECT = VisioAutomation.Shapes.Connections;
var d = new VisioAutomation.Models.DirectedGraph.Drawing();
var basic_stencil = "basic_u.vss";
var n0 = d.AddShape("n0", "Node 0", basic_stencil, "Rectangle");
n0.Size = new VA.Drawing.Size(3, 2);
var n1 = d.AddShape("n1", "Node 1", basic_stencil, "Rectangle");
var n2 = d.AddShape("n2", "Node 2", basic_stencil, "Rectangle");
var n3 = d.AddShape("n3", "Node 3", basic_stencil, "Rectangle");
var n4 = d.AddShape("n4", "Node 4\nUnconnected", basic_stencil, "Rectangle");
var c0 = d.AddConnection("c0", n0, n1, "0 -> 1", VACONNECT.ConnectorType.Curved);
var c1 = d.AddConnection("c1", n1, n2, "1 -> 2", VACONNECT.ConnectorType.RightAngle);
var c2 = d.AddConnection("c2", n1, n0, "0 -> 1", VACONNECT.ConnectorType.Curved);
var c3 = d.AddConnection("c3", n0, n2, "0 -> 2", VACONNECT.ConnectorType.Straight);
var c4 = d.AddConnection("c4", n2, n3, "2 -> 3", VACONNECT.ConnectorType.Curved);
var c5 = d.AddConnection("c5", n3, n0, "3 -> 0", VACONNECT.ConnectorType.Curved);
然后绘制它:
var options = new VisioAutomation.Models.DirectedGraph.MsaglLayoutOptions();
var page = visio_app.ActivePage;
d.Render(page,options);
这篇关于使用 .NET 动态生成可视化图表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!