Apache POI: Извлечение текста из файла Word в Java

В этом руководстве мы рассмотрим два различных способа чтения файла Word на java с расширением doc или docx, а также способы извлечения их текстового содержимого.

Прежде чем начать, вам нужно загрузить API Apache POI.

Чтение файла Word .doc с помощью WordExtractor

Apache POI использует класс WordExtractor  который позволяет извлекать содержимое всего файла Word на каждую страницу doc-файла. Убедитесь, что файл имеет расширение .doc и датирован MS-Word 97-2003. Класс WordExtractor позволяет извлекать весь текст в документе Word, включая абзацы, таблицы, верхние и нижние колонтитулы на каждой странице.

Необходимо использовать getParagraphText() или getText() для извлечения текста из файла Word в виде массива, в котором каждое поле массива содержит абзац типа String.

Класс  HWPFDocument  Принимает поток воспроизведения в файл в качестве параметра. Этот класс играет роль бакета, так как мы помещаем всю структуру документа в.

import java.io.*; 
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;

public class LireDoc
{
public static void main(String[] args)
{
try
{
File file = new File("nouveaudoc.doc");
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
HWPFDocument document = new HWPFDocument(fis);
  WordExtractor extractor = новый WordExtractor(document);
String[] text = extractor.getParagraphText();
for (int i = 0; i < texte.length; i++)
{
if (texte[i] != null)
System.out.println(texte[i]);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

Чтение файла Word .docx с помощью XWPFWordExtractor

Документ Microsoft Office 2007 использует формат .docx и сохраняет информацию (текст, стиль, цвет, шрифт и т. д.) в XML-файле. Класс  XWPFWordExtractor используется для извлечения текста из этого файла с именем OOXML.

Чтобы получить строковый текст, вызовите XWPFWordExtractor.getText(). Понятно, что .docx формат легче читать, чем старый формат .doc.

import java.io.*; 
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

public class ReadDocx
{
public static void main(String[] args)
{
try
{
File file = new File("nouveaudoc.docx");
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
XWPFDocument document = new XWPFDocument(fis);
  XWPFWordExtractor extractor = новый XWPFWordExtractor(документ);
Строка text = extractor.getText();
System.out.println(текст);
}
catch (Исключение e)
{
e.printStackTrace();
}
}
}