Не могат да се прочетат повече от 7 страници от docx в String с помощта на Apache POI

Опитвам се да прочета съдържанието на docx файла в низ, използвайки Apache POI. Не мога да прочета съдържанието, но когато броят на страниците в docx е повече от 7 0r 8, съдържанието от 8-та страница се показва преди първите 7 страници. ние използваме следния код:

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);

може ли някой да ни помогне да поправим това..?


person jrmano    schedule 05.12.2014    source източник
comment
Какъв вид Word документи обработвате? има ли нещо специално относно използваните формати? Опитвали ли сте току-що да използвате Word документ, който повтаря една и съща дума отново и отново?   -  person SpaceTrucker    schedule 05.12.2014
comment
Документът съдържа текст и таблици с изображения в горния и долния колонтитул. Но трябва да четем само съдържанието в текста и таблицата.   -  person jrmano    schedule 05.12.2014


Отговори (1)


Тъй като този въпрос е маркиран docx4j, предполагам, че вие ​​също се интересувате как бихте разрешили този проблем по този начин.

Това се прави с помощта на org.docx4j.TextUtils

Ето демо:

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();

}
person JasonPlutext    schedule 06.12.2014