Java:使用Ycad / Kabeja或任何其他simmilar库

时间:2015-08-04 13:27:10

标签: java parsing dxf

我对编程很陌生,所以任何帮助都会非常感激。

我试图解析.dxf文件以获取实体的坐标并将它们绘制到JPanel。基本上我需要dxf文件的图形表示。

到目前为止,我只找到了一些关于如何使用Ycad或Kabeja库的示例,但我仍然不清楚如何获取实体甚至库如何工作。似乎图书馆还没有完成,因为缺少了一些类,实际上我使用的每个示例代码都有一些缺少类的问题。

关于SO的老问题也没有给我很多答案。如果有人对上述图书馆有任何经验或任何其他有助于我解决问题的方法,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用kabeja库,它将DXF转换为PDF / SVG / JPEG 工作示例:

    private static void parseFile(String sourceFile, String index)
        throws FileNotFoundException, ParseException, SAXException {

    InputStream in = new FileInputStream("C:\\Users\\z003kebe\\Downloads\\DWGAndDxf\\dwg\\"+sourceFile);
    // Parser dxfParser = DXFParserBuilder.createDefaultParser();
    Parser dxfParser = ParserBuilder.createDefaultParser();
    dxfParser.parse(new FileInputStream("C:\\Users\\z003kebe\\Downloads\\DWGAndDxf\\dwg\\"+sourceFile), "UTF-8");
    DXFDocument doc = dxfParser.getDocument();

    SAXGenerator generator = new SVGGenerator();

    // generate into outputstream

    // output the SVG
    SAXSerializer out = new SAXPDFSerializer();
    // or you can use also pdf
    // org.kabeja.xml.SAXSerialzer out =
    // org.kabeja.batik.tools.SAXPDFSerializer();
    // tiff
    // org.kabeja.xml.SAXSerialzer out =
    // org.kabeja.batik.tools.SAXTIFFSerializer();
    // png
    // org.kabeja.xml.SAXSerialzer out =
    // org.kabeja.batik.tools.SAXPNGSerializer();
    // jpg
    // org.kabeja.xml.SAXSerialzer out =
    // org.kabeja.batik.tools.SAXJEPGSerializer();

    OutputStream fileo = new FileOutputStream(outputFile+index+".PDF");
    // out.setOutputStream(response.getOutputStream()) //write direct to
    // ServletResponse
    out.setOutput(fileo);
    // generate
    generator.generate(doc, out, new HashMap());

}