我下载了Apache HWPF。我想用它来读取doc文件并将其文本写入纯文本文件。我不太了解HWPF。
我非常简单的程序在这里:
我现在有3个问题:
有些软件包有错误(他们找不到apache hdf)。我该如何修理它们?
如何使用HWDF的方法查找和提取图像?
我的某些程序不完整且不正确。所以请帮我完成它。
我必须在2天内完成此计划。
我再次重复请请帮助我完成此事。
非常感谢你们的帮助!!!
这是我的基本代码:
public class test {
public void m1 (){
String filesname = "Hello.doc";
POIFSFileSystem fs = null;
fs = new POIFSFileSystem(new FileInputStream(filesname );
HWPFDocument doc = new HWPFDocument(fs);
WordExtractor we = new WordExtractor(doc);
String str = we.getText() ;
String[] paragraphs = we.getParagraphText();
Picture pic = new Picture(. . .) ;
pic.writeImageContent( . . . ) ;
PicturesTable picTable = new PicturesTable( . . . ) ;
if ( picTable.hasPicture( . . . ) ){
picTable.extractPicture(..., ...);
picTable.getAllPictures() ;
}
}
答案 0 :(得分:1)
Apache Tika会为您完成此操作。它处理与POI交谈以执行HWPF操作,并为您提供XHTML或纯文本以获取文件内容。如果您注册一个递归解析器,那么您也将获得所有嵌入的图像。
答案 1 :(得分:0)
如果您只想这样做而且不关心编码,可以使用Antiword。
$ antiword file.doc> out.txt
答案 2 :(得分:0)
事实上我知道这很久但我在谷歌代码上发现了TextMining,更准确,更易于使用。然而,这几乎是废弃的代码。
答案 3 :(得分:0)
//you can use the org.apache.poi.hwpf.extractor.WordExtractor to get the text
String fileName = "example.doc";
HWPFDocument wordDoc = new HWPFDocument(new FileInputStream(fileName));
WordExtractor extractor = new WordExtractor(wordDoc);
String[] text = extractor.getParagraphText();
int lineCounter = text.length;
String articleStr = ""; // This string object use to store text from the word document.
for(int index = 0;index < lineCounter;++ index){
String paragraphStr = text[index].replaceAll("\r\n","").replaceAll("\n","").trim();
int paragraphLength = paragraphStr.length();
if(paragraphLength != 0){
articleStr.concat(paragraphStr);
}
}
//you can use the org.apache.poi.hwpf.usermodel.Picture to get the image
List<Picture> picturesList = wordDoc.getPicturesTable().getAllPictures();
for(int i = 0;i < picturesList.size();++i){
BufferedImage image = null;
Picture pic = picturesList.get(i);
image = ImageIO.read(new ByteArrayInputStream(pic.getContent()));
if(image != null){
System.out.println("Image["+i+"]"+" ImageWidth:"+image.getWidth()+" ImageHeight:"+image.getHeight()+" Suggest Image Format:"+pic.suggestFileExtension());
}
}