2015-08-04 3 views
1

Я довольно новичок в программировании, поэтому любая помощь будет высоко оценена.Java: проанализировать файл dxf с помощью Ycad/Kabeja или любой другой simmilar-библиотеки

Я пытаюсь проанализировать файл .dxf, чтобы получить координаты сущностей и построить их в JPanel. В принципе мне понадобится графическое представление файла dxf.

До сих пор я нашел несколько примеров того, как использовать библиотеку Ycad или Kabeja, но мне все еще не ясно, как получить объекты или даже как работают библиотеки. Также кажется, что библиотеки не полны, потому что некоторые классы отсутствуют, и практически каждый пример кода, который я использовал, имел некоторые проблемы с отсутствующими классами.

Также старые вопросы на SO не дают мне много ответов. Если у кого-нибудь есть опыт работы с упомянутыми выше библиотеками или любым другим методом, который поможет мне решить мою проблему, мы будем очень благодарны.

ответ

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()); 

}