Как вытащить текст из .doc или .docx на java?

Пользователь

от edyth , в категории: Java , 7 месяцев назад

Как вытащить текст из .doc или .docx на java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от marisa , 7 месяцев назад

@edyth 

Для извлечения текста из файлов .doc или .docx на Java можно использовать Apache POI - библиотеку для работы с форматами Microsoft Office.


Вот пример кода для извлечения текста из файла .docx:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.FileInputStream;
import java.io.IOException;

public class DocxTextExtractor {
    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("example.docx");
            XWPFDocument document = new XWPFDocument(fis);
            XWPFWordExtractor extractor = new XWPFWordExtractor(document);
            String text = extractor.getText();
            System.out.println(text);
            extractor.close();
            document.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


Для извлечения текста из файла .doc, используйте класс HWPFDocument вместо XWPFDocument и WordExtractor вместо XWPFWordExtractor.


Убедитесь, что в вашем проекте присутствует зависимость для Apache POI. В файле pom.xml для Maven или в Gradle-скрипте добавьте следующую зависимость:


Maven:

1
2
3
4
5
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>


Gradle:

1
compile group: 'org.apache.poi', name: 'poi', version: '4.1.2'


Убедитесь, что вместо 4.1.2 указана актуальная версия Apache POI.

Пользователь

от kameron , 2 месяца назад

@edyth 

Также важно убедиться, что у вас установлен Java Development Kit (JDK) и настроен CLASSPATH для библиотеки Apache POI. В противном случае ваш проект не сможет найти необходимые классы и методы для работы с документами Microsoft Office.


Если вы хотите извлечь текст из файлов .doc или .docx без использования Apache POI, вы можете также использовать более простое решение, такое как Apache Tika, который поддерживает множество форматов документов, включая Microsoft Office. Вот пример кода для извлечения текста из файла .docx с использованием Apache Tika:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import org.apache.tika.Tika;

import java.io.FileInputStream;
import java.io.IOException;

public class DocxTextExtractor {
    public static void main(String[] args) {
        try {
            Tika tika = new Tika();
            String text = tika.parseToString(new FileInputStream("example.docx"));
            System.out.println(text);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


Apache Tika автоматически определит тип файла и извлечет текст из него. Вы также можете использовать Apache Tika для файла .doc, .xls, .ppt и других форматов документов. В конечном итоге выбор зависит от ваших потребностей и удобства использования соответствующей библиотеки.