在EM中将EMF +(非WMF / EMF)文件转换为PNG

时间:2015-04-10 13:04:05

标签: java svg png freehep

问题:

我有一张增强型图元文件Fromat Plus扩展 EMF + 的图像。我需要将此文件转换为带有java的 PNG 图像文件。

尝试解决java中的问题:

  1. Apache Batik不支持 EMF + 格式(Batik仅支持 WMF 格式)。

  2. FreeHEP也不支持 EMF + 。它可以将 EMF 转换为 SVG ,然后将 SVG 转换为 PNG 。我希望它可以提供帮助:

    EMF2SVG.main( new String[] {inputMetaFileName,ontputSvgFileName});
    

    此声明必须将 EMF 转换为 SVG ,但会出现例外情况:

      位于org.freehep的org.freehep.graphicsio.exportchooser.AbstractExportFileType.getGraphics(AbstractExportFileType.java:261)的org.freehep.graphicsio.exportchooser.AbstractExportFileType.exportToFile(AbstractExportFileType.java:248)中的

    java.lang.NullPointerException .graphicsio.exportchooser.AbstractExportFileType.exportToFile(AbstractExportFileType.java:282)   在org.freehep.graphicsio.emf.EMFConverter.export(EMFConverter.java:81)   在org.freehep.graphicsio.emf.EMF2SVG.main(EMF2SVG.java:27)

  3. 我使用了来自here的代码:

    try {
        // read the EMF file
        EMFRenderer emfRenderer = new EMFRenderer( new EMFInputStream(
            new ByteArrayInputStream(emfBytes)));
    
        EMFPanel emfPanel = new EMFPanel();
        emfPanel.setRenderer(emfRenderer);
    
        // prepare Graphics2D
        FileOutputStream svg = new FileOutputStream("svg.svg");
        SVGGraphics2D graphics2D = new SVGGraphics2D (svg, emfPanel);
    
        // export to SVG
        graphics2D.startExport();
        emfPanel.print(graphics2D);
        graphics2D.endExport();
        svg.flush();
        svg.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    此代码会创建 SVG 文件,但该文件没有图像。

0 个答案:

没有答案