package DXFJIEXI;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.UUID;
import DXFJIEXI.ChangeCharset;
import org.kabeja.batik.tools.SAXJPEGSerializer;
import org.kabeja.batik.tools.SAXPDFSerializer;
import org.kabeja.batik.tools.SAXPNGSerializer;
import org.kabeja.dxf.DXFDocument;
import org.kabeja.dxf.DXFLayer;
import org.kabeja.dxf.DXFLine;
import org.kabeja.parser.ParseException;
import org.kabeja.parser.Parser;
import org.kabeja.parser.ParserBuilder;
import org.kabeja.svg.SVGGenerator;
import org.kabeja.xml.AggregatorGenerator;
import org.kabeja.xml.SAXGenerator;
import org.kabeja.xml.SAXPrettyOutputter;
import org.kabeja.xml.SAXSerializer;
import org.xml.sax.SAXException;
public class JIEXI {
private String FileName;
//private InputStream bReader=null;
private BufferedReader bReader;
private String temp1, temp2, temp3, temp4, temp5, temp6, temp7;
private ArrayList linelist;
private ArrayList ellipselist;
private ArrayList circlelist;
private ArrayList lwpolylinelist;
private ArrayList arclist;
private ArrayList alllist = new ArrayList();
private int n = 0, j = 0;
String readString(BufferedReader datain) {
String temp = null;
try {
temp = new String(datain.readLine());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ChangeCharset test = new ChangeCharset();
try {
temp = test.toUTF_8(temp);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return temp;
}
public JIEXI(String path) {
FileName = path;
File f = new File(FileName);
if (!f.exists()) {
System.out.println("File Not Exist");
System.exit(0);
}
FileReader fr = null;
try {
fr = new FileReader(f);
StringBuilder waferDataStr = new StringBuilder();
File file = new File("C:\\Users\\Administrator\\Desktop\\sdsds\\123.txt");
FileOutputStream fileOutputStream = new FileOutputStream(file);
bReader = new BufferedReader(fr);
System.out.println("Begin read file" + FileName);
temp1 = readString(bReader);// 从DXF文件中读取一个字符串
while (!temp1.equals("EOF")) {// 未到文件结束标志
temp1 = readString(bReader);
if (temp1.equals("ENTITIES")) { // 实体段开始
temp2 = readString(bReader);
while (true) {
temp2 = readString(bReader);
if (temp2.equals("LWPOLYLINE")) {
fileOutputStream.write(("================================").getBytes());
fileOutputStream.write(("\n").getBytes());
System.out.println("================================");
String x="";
String y="";
lwpolylinelist = new ArrayList();
while (true) {
temp3 = readString(bReader);
//System.out.println("组码:"+temp3);
if (temp3.equals(" 100")) {
temp4 = readString(bReader);
lwpolylinelist.add(temp4);
System.out.println("子类标记:" + temp4);
fileOutputStream.write(("子类标记:" + temp4).getBytes());
fileOutputStream.write(("\n").getBytes());
}
if (temp3.equals(" 70")) {
temp4 = readString(bReader);
lwpolylinelist.add(temp4);
System.out.println("多段线标志(1 = 关闭;128 = Plinegen):" + temp4);
fileOutputStream.write(("多段线标志(1 = 关闭;128 = Plinegen):" + temp4).getBytes());
fileOutputStream.write(("\n").getBytes());
}
if (temp3.equals(" 43")) {
temp4 = readString(bReader);
lwpolylinelist.add(temp4);
System.out.println("固定宽度:" + temp4);
fileOutputStream.write(("固定宽度:" + temp4).getBytes());
fileOutputStream.write(("\n").getBytes());
}
if (temp3.equals(" 38")) {
temp4 = readString(bReader);
lwpolylinelist.add(temp4);
System.out.println("标高:" + temp4);
fileOutputStream.write(("标高:" + temp4).getBytes());
fileOutputStream.write(("\n").getBytes());
}
if (temp3.equals(" 39")) {
temp4 = readString(bReader);
lwpolylinelist.add(temp4);
System.out.println("厚度:" + temp4);
fileOutputStream.write(("厚度:" + temp4).getBytes());
fileOutputStream.write(("\n").getBytes());
}
if (temp3.equals(" 90")) {
temp4 = readString(bReader);
lwpolylinelist.add(temp4);
System.out.println("顶点数:" + temp4);
fileOutputStream.write(("顶点数:" + temp4).getBytes());
fileOutputStream.write(("\n").getBytes());
}
if (temp3.equals(" 10")) {
temp4 = readString(bReader);
lwpolylinelist.add(temp4);
System.out.println("顶点坐标X值:" + temp4);
x=temp4;
fileOutputStream.write(("顶点坐标X值:" + temp4).getBytes());
fileOutputStream.write(("\n").getBytes());
}
if (temp3.equals(" 20")) {
temp4 = readString(bReader);
lwpolylinelist.add(temp4);
System.out.println("顶点坐标Y值:" + temp4);
//if(x!=""&&!y.contains(temp4))
//{
fileOutputStream.write(("顶点坐标Y值:" + temp4).getBytes());
fileOutputStream.write(("\n").getBytes());
// y=y+"_"+temp4;
//}
temp7 = "0.0";// 有些隐含42没有出现,而默认值是0
temp5 = readString(bReader);
if (temp5.equals(" 42")) {
temp6 = readString(bReader);
lwpolylinelist.add(temp6);
System.out.println("顶点坐标凸度:" + temp6);
fileOutputStream.write(("顶点坐标凸度:" + temp6).getBytes());
fileOutputStream.write(("\n").getBytes());
} else if (temp5.equals(" 10")) {
lwpolylinelist.add(temp7);
temp4 = readString(bReader);