
В некоторых случаях вам может понадобиться извлечь текст из документов Word для различных целей. Как разработчик Java, вы можете легко программно извлекать текст из файлов DOC или DOCX. В этой статье вы узнаете, как извлекать текст из документов Word с помощью Java.
В этой статье обсуждаются/рассматриваются следующие темы:
- Java API для извлечения текста из документов Word
- Извлечение текста из документов Word с помощью Java
- Извлечение текста с определенных страниц документа Word с использованием Java
- Получить выделение из документов Word с помощью Java
- Извлечение форматированного текста из DOCX с помощью Java
- Извлечение текста по оглавлению с помощью Java
Java API для извлечения текста из документов Word
Для извлечения текста из файлов DOC или DOCX мы будем использовать API GroupDocs.Parser for Java. Он позволяет извлекать текст, метаданные и изображения из файлов популярных форматов Word, PDF, Excel и PowerPoint. Он также поддерживает извлечение необработанного, форматированного и структурированного текста из файлов поддерживаемых форматов.
Вы можете загрузить JAR API или просто добавить следующую конфигурацию pom.xml в свое Java-приложение на основе Maven, чтобы попробовать приведенные ниже примеры кода.
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>21.2</version>
</dependency>
Извлечение текста из документов Word с помощью Java
Вы можете проанализировать любой документ Word и извлечь текст, выполнив простые шаги, указанные ниже:
- Во-первых, загрузите файл DOCX с помощью класса Parser.
- Затем вызовите метод Parser.getText(), чтобы извлечь текст из загруженного документа.
- Получить результаты метода Parser.getText() в объекте класса TextReader.
- Наконец, вызовите метод TextReader.readToEnd() , чтобы прочитать все символы от текущей позиции до конца средства чтения текста и вернуть их в виде одной строки.
В следующем примере кода показано, как извлечь текст из файла DOCX с помощью Java.
// Создайте экземпляр класса Parser
Parser parser = new Parser("C:\\Files\\sample.docx");
// Извлечь необработанный текст в ридер
try (TextReader reader = parser.getText()) {
// Распечатать текст из документа
// Если извлечение текста не поддерживается, средство чтения недействительно.
System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}

Извлечение текста из документов Word с помощью Java
Извлечение текста с определенных страниц документа Word с использованием Java
Вы можете проанализировать документ Word и извлечь текст с определенной страницы, выполнив простые шаги, указанные ниже:
- Во-первых, загрузите файл DOCX с помощью класса Parser.
- Затем используйте Parser.getFeatures().isText(), чтобы проверить, поддерживает ли документ функцию извлечения текста. Узнайте больше о поддерживаемых функциях.
- Теперь вызовите метод Parser.getDocumentInfo(), чтобы получить общую информацию о документе. Например, тип файла, количество страниц, размер и т. д.
- Получить результаты работы метода Parser.getDocumentInfo() в интерфейсном объекте IDocumentInfo.
- Затем проверьте, не равно ли значение IDocumentInfo.getPageCount() нулю. Этот метод возвращает общее количество страниц документа.
- Переберите все страницы и вызовите метод Parser.getText() для каждого индекса страницы, чтобы извлечь текст и получить результаты в объекте класса TextReader.
- Наконец, покажите результаты, вызвав метод TextReader.readToEnd() для чтения извлеченного текста.
В следующем примере кода показано, как извлекать текст со страниц одну за другой с помощью Java.
// Создайте экземпляр класса Parser
Parser parser = new Parser("C:\\Files\\sample.docx");
// Проверьте, поддерживает ли документ извлечение текста
if (!parser.getFeatures().isText()) {
System.out.println("The document doesn't support text extraction.");
return;
}
// Получить информацию о документе
IDocumentInfo documentInfo = parser.getDocumentInfo();
// Проверить, есть ли в документе страницы
if (documentInfo.getPageCount() == 0) {
System.out.println("The document has zero pages.");
return;
}
// Перебирать страницы
for (int p = 0; p < documentInfo.getPageCount(); p++) {
// Распечатать номер страницы
System.out.println(String.format("Page number: %d/%d", p + 1, documentInfo.getPageCount()));
// Извлечь текст в ридер
try (TextReader reader = parser.getText(p)) {
// Распечатать текст из документа
// Мы игнорируем проверку на нуль, так как мы проверили поддержку функции извлечения текста ранее.
System.out.println(reader.readToEnd());
}
}

Извлечение текста с определенных страниц документа с помощью Java
Получить выделение из документов Word с помощью Java
Выделение — это часть текста, которая обычно используется для пояснения контекста найденного текста в функции поиска. Вы можете извлечь выделение из документа, выполнив простые шаги, указанные ниже:
- Во-первых, загрузите файл DOCX с помощью класса Parser.
- Создайте экземпляр объекта класса HighlightOptions и передайте максимальную длину в качестве входного параметра его конструктору, чтобы извлечь выделение фиксированной длины.
- Затем вызовите метод Parser.getHighlight() с начальной позицией и объектом класса HighlightOptions, чтобы извлечь выделение из документа как объект класса HighlightItem.
- Наконец, вызовите методы Highlight.getPosition() и HighlightItem.getText(), чтобы получить положение и текст выделения.
В следующем примере кода показано, как извлечь выделение из документа с помощью Java.
// Создайте экземпляр класса Parser
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
// Извлечь выделение:
HighlightItem hl = parser.getHighlight(0, true, new HighlightOptions(8));
// Проверьте, поддерживается ли извлечение выделения
if (hl == null) {
System.out.println("Highlight extraction isn't supported");
return;
}
// Распечатать извлеченную подсветку
System.out.println(String.format("At %d: %s", hl.getPosition(), hl.getText()));
}
At 0: Overview
Извлечение форматированного текста из DOCX с помощью Java
Вы можете анализировать документы Word и извлекать текст без потери форматирования стиля, выполнив простые шаги, указанные ниже:
- Во-первых, загрузите файл DOCX с помощью класса Parser.
- Определите FormattedTextOptions и установите для FormattedTextMode значение HTML. Он позволяет извлекать текст в формате HTML из документа.
- Затем вызовите метод Parser.getFormattedText() для извлечения форматированного текста.
- Получить результаты метода Parser.getText() в объекте класса TextReader.
- Наконец, вызовите метод TextReader.readToEnd(), чтобы прочитать весь текст.
В следующем примере кода показано, как извлечь форматированный текст из файла DOCX с помощью Java.
// Создайте экземпляр класса Parser
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
// Извлечь форматированный текст в ридер
try (TextReader reader = parser.getFormattedText(new FormattedTextOptions(FormattedTextMode.Html))) {
// Печать форматированного текста из документа
// Если извлечение форматированного текста не поддерживается, средство чтения недействительно.
System.out.println(reader == null ? "Formatted text extraction isn't suppported" : reader.readToEnd());
}
}

Извлечение форматированного текста из DOCX с помощью Java
Извлечение текста по оглавлению с помощью Java
Вы можете извлечь текст из документа по оглавлению, выполнив простые шаги, указанные ниже:
- Во-первых, загрузите файл DOCX с помощью класса Parser.
- Затем вызовите метод Parser.getToc(), чтобы извлечь оглавление как набор объектов класса TocItem. TocItem представляет элемент, который используется в функциях извлечения оглавления.
- Теперь проверьте, не является ли коллекция нулевой.
- Затем выполните итерацию по коллекции TocItem и вызовите метод TocItem.extractText() для извлечения текста из документа, на который ссылается объект TocItem.
- Получить результаты в объекте класса TextReader.
- Наконец, вызовите метод TextReader.readToEnd(), чтобы прочитать весь текст.
В следующем примере кода показано, как извлечь текст по оглавлению из документов Word с помощью Java.
// Создайте экземпляр класса Parser
try (Parser parser = new Parser("C:\\Files\\sampleTOC.docx")) {
// Получить оглавление
Iterable<TocItem> tocItems = parser.getToc();
// Проверьте, поддерживается ли извлечение toc
if (tocItems == null) {
System.out.println("Table of contents extraction isn't supported");
}
else
{
// Перебирать элементы
for (TocItem tocItem : tocItems) {
// Распечатать текст главы
try (TextReader reader = tocItem.extractText()) {
System.out.println("----");
System.out.println(reader.readToEnd());
}
}
}
}

Извлечение текста по оглавлению с помощью Java
Получить бесплатную лицензию
Вы можете попробовать API без ограничений по ознакомительной версии, запросив бесплатную временную лицензию.
Вывод
В этой статье вы узнали, как извлекать текст из документов Word с помощью Java. Более того, вы видели, как программно извлечь форматированный текст из файла DOCX. В этой статье также объясняется, как извлечь текст по оглавлению и выделить выделение из документа. Кроме того, вы можете узнать больше о GroupDocs.Parser for Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.