gpt4 book ai didi

javascript - 将 draw.io 图渲染为 png

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:10:22 25 4
gpt4 key购买 nike

我正在尝试渲染 draw.io已保存(另存为->设备).xml 图表。

保存图表用作输入示例:

<mxGraphModel dx="1426" dy="720" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" background="#ffffff" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="2" value="" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="180" y="200" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="3" value="" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="360" y="180" width="80" height="80" as="geometry"/>
</mxCell>
<mxCell id="4" value="" style="endArrow=classic;html=1;exitX=0.025;exitY=0.638;exitPerimeter=0;" edge="1" parent="1" source="3" target="2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="180" y="430" as="sourcePoint"/>
<mxPoint x="230" y="380" as="targetPoint"/>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>

然后我必须以编程方式将其呈现为 png,因此我编写了 C# 代码,为此目的使用 mxgraph 库:

using System;
using System.Drawing;
using com.mxgraph;

namespace MxGraphRendering
{
class Program
{
static void Main(string[] args)
{
var file = mxUtils.ReadFile("../../../export.xml");
var document = mxUtils.ParseXml(file);
var codec = new mxCodec(document);
var graph = new mxGraph();
codec.Decode(document.DocumentElement, graph.Model);

var image = mxCellRenderer.CreateImage(graph, null, 1,
Color.White, false, null);
image.Save("../../../output.png");
Console.ReadKey();
}
}
}

运行后,我得到了一定的输出:

Source diagram

Output image

好像this问题,问题是缺少预期输出的 draw.io 样式表。有一种简单的方法可以将它全部添加到我的 c# mxGraph 实例中吗?

或者,另一方面,在 draw.io 中使用原生 javascript 从 xml 渲染 png 是否是一种清晰的方法? (功能,产生渲染/导出等)

感谢任何帮助。

最佳答案

我知道这是一年前的事了,但我遇到了同样的问题,但在 SO 上找不到任何相关信息。最终我找到了一个笨拙但可行的解决方案,因为总比没有好,所以我将它放在这里。

我找到了一个名为 draw.io-export (link to github) 的 npm 包.截至 2019 年,它是最新的并且有效。

它不仅允许您将 draw.io 图转换为 png,而且它连接到 draw.io 网站以执行此操作,因此应避免任何格式问题。

不过您必须从命令行调用它,因此由于您使用的是 C#,我建议您在此 SO answer 上查找如何执行此操作.

关于javascript - 将 draw.io 图渲染为 png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49829113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com