2014-12-05 138 views
1

我正在尝试使用Apache POI将docx文件的内容读取到字符串。我能够读取内容,但是当docx中的页数大于7或8时,第8页中的内容显示在前7页之前。我们用下面的代码:无法使用Apache POI读取多于7页的docx到String使用Apache POI

File doc=new File("D:\\1.docx"); 
     InputStream repoDocument = new FileInputStream(doc); 
     XWPFDocument document=new XWPFDocument(repoDocument); 

    XWPFWordExtractor extractor = new XWPFWordExtractor(document) ; 
    String content = extractor.getText(); 
    content = content.replace(" ", ""); 
    System.out.println(content); 

任何人都可以帮助我们解决这个..?

+1

你处理什么样的Word文档:

它使用org.docx4j.TextUtils

这里有一个演示做了什么?有没有什么特别的使用格式?你刚刚尝试过使用一个反复重复同一个单词的单词文档吗? – SpaceTrucker 2014-12-05 09:59:42

+0

该文档包含带有页眉和页脚中图像的文本和表格。但是我们只需要阅读文本和表格中的内容。 – jrmano 2014-12-05 10:34:07

回答

0

由于这个问题被标记为docx4j,我认为你也对如何以这种方式解决这个问题感兴趣。

public static void main(String[] args) throws Exception { 

    String inputfilepath = "YOUR_PATH/YOUR.docx"; 

    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath)); 
    MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();   

    org.docx4j.wml.Document wmlDocumentEl = (org.docx4j.wml.Document)documentPart.getJaxbElement(); 

    Writer out = new OutputStreamWriter(System.out); 

    org.docx4j.TextUtils.extractText(wmlDocumentEl, out); 

    out.close(); 

}