我在解析doc和docx的时候遇到一些问题,不知道大家是如何解决的。
不管doc还是docx,鼠标点在某一块,出现右边这一排东西的时候:
如图:
Java就获取不到里面的内容。而我用word转换成html的时候这一块地方就会变成图片。
而如果遇到以下这种情况:
如图:
Java是可以读取到里面的纯文本内容。我换了几种方法,都无法读取到第一种情况的内容。里面是空的。
方法1:
File inputFile = new File("E:\\aaa.docx");
POITextExtractor extractor = ExtractorFactory.createExtractor(inputFile);
System.out.println(extractor.getText());
输出是空的。
方法2:
String result = "";
FileInputStream fis = new FileInputStream(file);
XWPFDocument xdoc = new XWPFDocument(fis);
XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
result = extractor.getText();
fis.close();
System.out.println(result);
输出还是空的。
方法3:
String result = "";
FileInputStream fis = new FileInputStream(file);
WordExtractor ex = new WordExtractor(fis);
result = ex.getText().trim();
fis.close();
System.out.println(result);
这是报错的,好像这是读取doc的而非读取docx的吧。
方法4:
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), encode));
String str = "";
StringBuffer sb = new StringBuffer();
while (null != (str = br.readLine())) {
sb.append("\n");
sb.append(str);
}
br.close();
return sb.toString();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
这个我换了很多种编码,都是乱码。我不知道到底他的编码格式到底是什么。
我已经把
Charset.availableCharsets().keySet();
里面的所有编码都用一遍了。一直到解析得我的eclipse卡到闪退,都没发现什么编码是对的。。。。
其中我见到最多出现的就是 [Content_Types].xml ,但是不知道这啥意思。
如图:
请各位大神帮个忙,如何把图一里面的内容正确获取出来。谢谢了。