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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от loyal , 9 месяцев назад

@guillermo 

Для работы с файлами .doc и .docx в Java можно использовать Apache POI. Ниже пример кода, который извлекает текст из .doc/.docx файла:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.FileInputStream;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.hwpf.HWPFDocument;

public class DocReader {

    public static void main(String[] args) {

        String path = "mydoc.docx"; // Укажите путь к файлу .doc или .docx
        String text = "";

        if (path.endsWith(".docx")) {
            try (XWPFDocument docx = new XWPFDocument(new FileInputStream(path))) {
                XWPFWordExtractor extractor = new XWPFWordExtractor(docx);
                text = extractor.getText();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        } else if (path.endsWith(".doc")) {
            try (HWPFDocument doc = new HWPFDocument(new FileInputStream(path))) {
                WordExtractor extractor = new WordExtractor(doc);
                text = extractor.getText();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }

        System.out.println(text);
    }
}


Здесь используется класс XWPFWordExtractor для извлечения текста из .docx файла и класс WordExtractor - для .doc файла. Оба класса наследуются от абстрактного класса POITextExtractor, который позволяет извлекать текст из различных форматов файлов. Метод getText() возвращает текст извлеченный из файла.