dwg 转换 java_Java 读取 dwg 转换 dxf

本文介绍了一个使用kabeja库在Java中读取DXF文件并转换DWG的方法。通过创建Parser对象,解析DXF文件,并获取文本内容,包括DXFText和DXFMText实体,对空格进行替换后输出。
摘要由CSDN通过智能技术生成

kabeja-0.4.jar

1.java  读取  dxf  字符

@Test

public void JunitGetContent(){

String dxfPath="D:\\1-test-exe\\out\\cwp.dxf"; // 默认 /x2004 的参数

String docContent = getDocContent(dxfPath);

System.out.println(docContent);

String dxfPath2="D:\\1-test-exe\\out\\X2010.dxf"; // 解析 /x2010 参数转换的文件

String docContent2 = getDocContent(dxfPath2);

System.out.println(docContent2);

}

public String getDocContent(String sourceFile){

StringBuffer strResult = new StringBuffer();

Parser parser = ParserBuilder.createDefaultParser();

try {

FileInputStream in = new FileInputStream(new File(sourceFile));

// "/x"参数用 parser.parse(in, "");

// "/x2010" 用parser.parse(in, "UTF-8");

parser.parse(in, "UTF-8"); //编码集合

DXFDocument doc = parser.getDocument();

Iterator> it = doc.getDXFLayerIterator();

while (it.hasNext()) {

DXFLayer layer = (DXFLayer) it.next();

List> text = layer.getDXFEntities(DXFConstants.ENTITY_TYPE_TEXT);

if (text != null) {

for (int i = 0; i < text.size(); i++) {

String a = ((DXFText) (text.get(i))).getText();

if (a != null && !"".equals(a.trim())){

a = a.replaceAll(" ", "");

strResult.append(a);

}

}

}

List> mtext = layer.getDXFEntities(DXFConstants.ENTITY_TYPE_MTEXT);

if (mtext != null) {

for (int i = 0; i < mtext.size(); i++) {

String a = ((DXFMText) (mtext.get(i))).getText();

if (a != null && !"".equals(a.trim())){

a = a.replaceAll(" ", "");

strResult.append(a);

}

}

}

}

} catch (ParseException e) {

logger.error(e.getMessage());

} catch (FileNotFoundException e) {

logger.error(e.getMessage());

}

return strResult.toString();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值