1

我通常将 draw.io 绘图导出为 SVG,并选择“包含我的图表的副本”选项。这使我能够在支持 SVG 的浏览器中显示它们,然后在 draw.io 中进一步打开和修改它们。

我想对 SVG 文件进行一些脚本编辑,例如修改我添加到形状的链接的 href,但通常是任何东西。在我有限的测试中,我发现我可以在文本编辑器中打开其中一个 SVG 文件,更改 href,保存,然后仍然在浏览器和 draw.io 中重新打开文件。

让我担心的是 SVG 文件中的 base-64 文本块,我认为它是嵌入的“我的图表的副本”。我是否冒着使 SVG 与嵌入式图表不同步的风险,或者这样做是否安全?

4

1 回答 1

3

您正在使 SVG 与嵌入式图表不同步。base64 编码文本只是 XML 数据的 GZIP 压缩表示。此示例演示如何解压缩/压缩 XML:https ://github.com/jgraph/drawio-tools/blob/master/tools/convert.html (SVG 输出是第一页的输出,即第一个图表标签在 mxfile 中)。您可以在https://jgraph.github.io/drawio-tools/tools/convert.html看到它的实际效果。 最后,为了将 SVG 输出链接到 XML 数据,有一个嵌入单元 ID(和元数据)的插件) 在 SVG 输出中(参见https://github.com/jgraph/drawio/blob/master/war/plugins/svgdata.jshttps://www.draw.io?p=svgdata)。

于 2017-10-12T07:14:46.080 回答