2014-12-05 170 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(); 

}