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

问题:

我有一个增强型Metafile Fromat Plus Extension 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 ,但会出现exception:

    位于org.freehep.graphicsio的org.freehep.graphicsio.exportchooser.AbstractExportFileType.getGraphics(AbstractExportFileType.java:261)的org.freehep.graphicsio.exportchooser.AbstractExportFileType.exportToFile(AbstractExportFileType.java:248)中的java.lang.NullPointerException。 exportchooser.AbstractExportFileType.exportToFile(AbstractExportFileType.java:282)org.freehep.graphicsio.emf.EMFConverter.export(EMFConverter.java:81)at org.freehep.graphicsio.emf.EMF2SVG.main(EMF2SVG.java:27)

  3. 我用过这里的代码:

     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文件,但它没有图像。

Interesting Posts