Невозможно прочитать более 7 страниц docx в String с помощью Apache POI

Я пытаюсь прочитать содержимое файла docx в строку, используя Apache POI. Я могу прочитать содержимое, но когда количество страниц в docx превышает 7 0 или 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
Какие текстовые документы вы обрабатываете? есть ли что-то особенное в используемых форматах? Вы только что пробовали использовать текстовый документ, который повторяет одно и то же слово снова и снова?   -  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