-2
我试图将.dxf文件解析到JPanel上。基本上我需要一个关于JPanel.i上的dxf文件的图形化表示,我被告知Kabeja和Ycad,但他们都不是我所需要的。我该怎么办。在JPanel中显示dxf文件
我试图将.dxf文件解析到JPanel上。基本上我需要一个关于JPanel.i上的dxf文件的图形化表示,我被告知Kabeja和Ycad,但他们都不是我所需要的。我该怎么办。在JPanel中显示dxf文件
使用此方法,您可以从dxf文件保存图像。之后,您可以从文件中读取图像并将其显示在JPanel中。
代码使用来自http://kabeja.sourceforge.net/
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import org.kabeja.dxf.DXFDocument;
import org.kabeja.parser.DXFParser;
import org.kabeja.parser.Parser;
import org.kabeja.parser.ParserBuilder;
import org.kabeja.svg.SVGGenerator;
import org.kabeja.xml.SAXSerializer;
import org.xml.sax.SAXException;
public void parseFile(String sourceFile, String destinationPath, int width, int height) throws FileNotFoundException, java.io.IOException, org.kabeja.parser.ParseException, SAXException {
lastWidth = width;
lastHeight = height;
FileOutputStream o = new FileOutputStream(destinationPath);
InputStream in = new FileInputStream(sourceFile);//your stream from upload or somewhere
Parser dxfParser = ParserBuilder.createDefaultParser();
dxfParser.parse(in, DXFParser.DEFAULT_ENCODING);
DXFDocument doc = dxfParser.getDocument();
SVGGenerator generator = new SVGGenerator();
SAXSerializer out = new org.kabeja.batik.tools.SAXPNGSerializer();
out.setOutput(o);
HashMap mHashMap = new HashMap();
mHashMap.put("width", Integer.toString(width));
mHashMap.put("height", Integer.toString(height));
generator.generate(doc, out, mHashMap);
in.close();
o.close();
}
Kabeja库为.dxf是CAD图的描述。您正在问如何使用Java渲染该CAD图形,这涉及到解析DXF的复杂文件结构并模拟AutoCAD的功能。这是一项艰巨的任务,你已经拒绝了Kabeja和YCad。但是,所有这些都是没有意义的,因为无论如何,这个问题(要求提供图书馆推荐)都是无关紧要的。请访问[帮助]并阅读[问]。 –
你应该忽略问题而不是投票。 – chrisgeeq
您似乎误解了 StackOverflow的目的和最终目标,它将用作问题库和 答案,这些答案将在未来对许多人有用。一个遥远的 次要目标是回答你的具体问题并帮助你。当 的问题被编写成与SO的主要目标一致时, 可能会得到很多回应并吸引积极和回答。当 它不符合这些目标时,那么SO“方式”就是downvote,因此 它不会在未来的搜索中显示。 ...(续) –