Java 如何检查.doc文件中是否存在任何嵌入对象?
我已经为.docx文件做了如下操作,但对于.doc文件,它抛出了InvalidFormatExceptionJava 如何检查.doc文件中是否存在任何嵌入对象?,java,apache-poi,Java,Apache Poi,我已经为.docx文件做了如下操作,但对于.doc文件,它抛出了InvalidFormatException public boolean checkForEmbeddedObj(File wordFile){ InputStream inStream = new FileInputStream(wordFile); XWPFDocument xwDoc = new XWPFDocument(inStream ); return xwDoc.getAllEmbedds().i
public boolean checkForEmbeddedObj(File wordFile){
InputStream inStream = new FileInputStream(wordFile);
XWPFDocument xwDoc = new XWPFDocument(inStream );
return xwDoc.getAllEmbedds().isEmpty();
}
知道如何对.doc文件执行相同的操作吗?DOCX和doc文件有不同的规范,并且在Apache POI中的实现也不同 DOCX文件:
- 使用poi ooxml库和XWPFDocument类
- 使用poi草稿行库和HWPFDocument类
- 使用poi草稿行库和HWPFOldDocument类
OLE2ExtractorFactory.getembeddeddocstextractors
,如下所示:
import org.apache.poi.extractor.OLE2ExtractorFactory;
import org.apache.poi.extractor.POITextExtractor;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
void hwpfExtractor(File wordFile) throws IOException {
HWPFDocument doc = new HWPFDocument(new FileInputStream(wordFile));
POITextExtractor[] embeddedExtractors = OLE2ExtractorFactory.getEmbededDocsTextExtractors(new WordExtractor(doc));
for (POITextExtractor ext : embeddedExtractors) {
//ext could be one of the instance of org.apache.poi.extractor.POITextExtractor
if (ext instanceof XXX) {
// do stuff
}
}
}
另见:
POITextExtractor[]embeddedExtractors
只需检查其大小即可检测嵌入对象。当你说我遇到XYZ错误时。。请提供完整的stacktrace。Stacktrace提供了查找原因并尝试解决问题所需的所有信息。