首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将mxGraph导出到SVG (或任何类型的图像)

将mxGraph导出到SVG (或任何类型的图像)
EN

Stack Overflow用户
提问于 2015-01-12 13:17:31
回答 1查看 5.2K关注 0票数 2

我已经用mxGraph用javascript实现了一个图表编辑器(与它们提供的示例中的编辑器相同),我可以获得一个XML,这里我给出了一个示例:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mxGraphModel connect="1" fold="1" grid="1" gridSize="10" guides="1" page="0"    pageHeight="1169" pageScale="1" pageWidth="826" tooltips="1">
    <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="2" parent="1" style="whiteSpace=wrap" value="" vertex="1">
            <mxGeometry as="geometry" height="60" width="120" x="80" y="70"/>
        </mxCell>
        <mxCell id="3" parent="1" style="whiteSpace=wrap" value="" vertex="1">
            <mxGeometry as="geometry" height="60" width="120" x="280" y="70"/>
        </mxCell>
        <mxCell edge="1" id="4" parent="1" source="2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;" target="3">
            <mxGeometry as="geometry" relative="1"/>
        </mxCell>
    </root>
</mxGraphModel>

我从javascript编辑器生成这个xml,并使用ajax将它发送到一个java类。

基于java类上的xml,我无法找到保存图像svg (或任何其他类型的图像)的方法。

我在internet上找到的所有示例都显示了如何根据直接在java上创建的xml图导出图像,但没有显示如何从xml中获取图像。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-01 06:49:04

您可以使用mxXmlUtils.parseXml api。下面是示例代码片段

代码语言:javascript
运行
复制
Document doc = mxXmlUtils.parseXml(erXmlString);
    mxGraph graph = new mxGraph();
    mxCodec codec = new mxCodec(doc);
    codec.decode(doc.getDocumentElement(), graph.getModel());

    mxGraphComponent graphComponent = new mxGraphComponent(graph);
    BufferedImage image = mxCellRenderer.createBufferedImage(graphComponent.getGraph(), null, 1, Color.WHITE, graphComponent.isAntiAlias(), null, graphComponent.getCanvas());
    mxPngEncodeParam param = mxPngEncodeParam.getDefaultEncodeParam(image);
    param.setCompressedText(new String[] { "mxGraphModel", erXmlString });

    FileOutputStream outputStream = new FileOutputStream(new File(filename));
    mxPngImageEncoder encoder = new mxPngImageEncoder(outputStream, param);

    if (image != null) {
        encoder.encode(image);
        return image;
    }
    outputStream.close();
    return null;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27902882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档