Поиск нескольких ключевых слов в PDF с помощью GroupDocs.Parser для Java

Поиск по PDF‑документам для нахождения конкретного текста может быть сложной задачей, особенно при работе с большими файлами или множеством страниц. Если вам нужно искать несколько ключевых слов в PDF‑файлах быстро и надёжно, библиотека GroupDocs.Parser для Java предоставляет чистое, высокопроизводительное решение. Этот учебник проведёт вас через настройку библиотеки, поиск по номеру страницы и обработку неподдерживаемых форматов — всё с реальными примерами, которые вы можете скопировать в свой проект.

Быстрые ответы

  • Какая библиотека помогает искать несколько ключевых слов в PDF? GroupDocs.Parser for Java.
  • Можно ли ограничить результаты определёнными номерами страниц? Да, используя SearchOptions вы можете получить индекс страницы для каждого совпадения.
  • Нужна ли лицензия для разработки? Бесплатная пробная версия подходит для тестирования; платная лицензия требуется для продакшн.
  • Поддерживается ли regex? Абсолютно — включите его в SearchOptions.
  • Какая версия Java требуется? Java 8 или выше с инструментами сборки Maven или Gradle.

Что такое «поиск нескольких ключевых слов в pdf»?

Когда необходимо найти несколько терминов — например, «invoice», «due date» или «total» — в большом PDF, однопроходный поиск, возвращающий номера страниц для каждого совпадения, экономит время и упрощает код. GroupDocs.Parser абстрагирует низкоуровневый парсинг PDF, предоставляя простой API для выполнения таких многоключевых запросов.

Почему стоит использовать GroupDocs.Parser для Java?

  • Точное извлечение текста даже из отсканированных или сложных PDF.
  • Встроенная индексация страниц чтобы точно знать, где появляется каждое ключевое слово.
  • Обработка исключений для неподдерживаемых форматов, зашифрованных файлов и документов, требующих много памяти.
  • Maven‑интеграция без зависимостей для быстрой настройки проекта.

Предварительные требования

  • Java 8+ и IDE, совместимая с Maven (IntelliJ IDEA, Eclipse и др.).
  • GroupDocs.Parser for Java (версия 25.5 или новее).
  • Базовые знания обработки исключений в Java и работы с файловой системой.

Настройка GroupDocs.Parser для Java

Вы можете добавить библиотеку через Maven или загрузить её напрямую.

Использование Maven

Add the repository and dependency to your pom.xml file:

<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/parser/java/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-parser</artifactId>
        <version>25.5</version>
    </dependency>
</dependencies>

Прямое скачивание

В качестве альтернативы загрузите последнюю версию по ссылке GroupDocs.Parser for Java releases.
License Acquisition: Начните с бесплатной пробной версии или запросите временную лицензию для тестирования GroupDocs.Parser. Для длительного использования рассмотрите покупку лицензии.

Базовая инициализация и настройка

Once the library is available, initializing it is straightforward:

import com.groupdocs.parser.Parser;

String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
try (Parser parser = new Parser(filePath)) {
    // Your parsing logic here
} catch (Exception e) {
    System.err.println("An error occurred: " + e.getMessage());
}

Руководство по реализации

Мы разделим реализацию на две практические функции:

  1. Поиск нескольких ключевых слов в PDF и получение номеров страниц – идеальный вариант для «search pdf by page number».
  2. Корректная обработка ошибок для неподдерживаемых форматов документов.

Функция 1: Поиск нескольких ключевых слов в PDF и получить индексы страниц

Обзор

Метод search библиотеки GroupDocs.Parser в сочетании с SearchOptions позволяет находить любой термин (или шаблон регулярного выражения) и возвращает как позицию символа, так и индекс страницы.

Пошагово

Шаг 1 – Импортировать необходимые классы

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.SearchResult;
import com.groupdocs.parser.options.SearchOptions;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;

Шаг 2 – Инициализировать парсер и настроить SearchOptions

String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf"; // Replace with actual document path

try (Parser parser = new Parser(filePath)) {
    if (!parser.getFeatures().isText()) {
        throw new UnsupportedDocumentFormatException("Text extraction isn't supported.");
    }

    // false = case‑insensitive, false = not whole‑word, false = regex disabled, true = return page index
    SearchOptions options = new SearchOptions(false, false, false, true);
    Iterable<SearchResult> results = parser.search("invoice|due date|total", options);
    
    for (SearchResult result : results) {
        System.out.println(String.format("Found at position %d on page %d: %s", 
                                         result.getPosition(), 
                                         result.getPageIndex() + 1, // pages are zero‑based
                                         result.getText()));
    }
} catch (UnsupportedDocumentFormatException e) {
    System.err.println(e.getMessage());
}

Объяснение ключевых параметров

  • filePath: Путь к PDF, который вы хотите искать.
  • SearchOptions(false, false, false, true):
    • Case‑sensitivefalse делает поиск нечувствительным к регистру.
    • Whole‑wordfalse позволяет частичные совпадения.
    • Regexfalse отключает парсинг регулярных выражений; установите true, если нужен regex.
    • Return page indextrue гарантирует, что каждый SearchResult содержит номер страницы.

Tip: Строка поиска "invoice|due date|total" использует оператор pipe (|) для поиска нескольких ключевых слов за один вызов.

Устранение неполадок

  • Empty results: Убедитесь, что PDF действительно содержит выделяемый текст (а не только изображения).
  • Incorrect page numbers: Помните, что getPageIndex() возвращает нулевой индекс; добавьте +1 для человекочитаемого нумерования.

Функция 2: Обработка ошибок для неподдерживаемых форматов документов

Обзор

Не каждый файл можно распарсить для получения текста (например, некоторые зашифрованные или только с изображениями PDF). Перехват UnsupportedDocumentFormatException позволяет вашему приложению корректно завершаться.

Реализация

Шаг 1 – Обернуть создание парсера в блок try‑catch

try (Parser parser = new Parser(filePath)) {
    if (!parser.getFeatures().isText()) {
        throw new UnsupportedDocumentFormatException("Text extraction isn't supported.");
    }
} catch (UnsupportedDocumentFormatException e) {
    System.err.println(e.getMessage());
}

Почему это важно
Обнаруживая неподдерживаемые форматы заранее, вы можете уведомить пользователей, записать проблему в журнал или переключиться на решение OCR вместо того, чтобы процесс полностью упал.

Практические применения

Вот три распространённых сценария, где search multiple keywords in PDF проявляет себя:

  1. Legal Document Review – Найдите пункты, такие как «force majeure», «termination» или «confidentiality», на сотнях страниц.
  2. Invoice Processing – Вытащите «invoice number», «due date» и «total amount» за один проход для автоматизированного бухгалтерского учёта.
  3. Academic Research – Просканируйте научные статьи на наличие различных терминов (например, «machine learning», «deep learning», «neural network»).

Соображения по производительности

  • Parse only needed pages: Если вы знаете нужные разделы, ограничьте диапазон поиска, чтобы снизить использование памяти.
  • Use try‑with‑resources (как показано) чтобы гарантировать своевременное закрытие парсеров и избежать утечек памяти.
  • Avoid loading the entire PDF into memory при работе с очень большими файлами; при возможности обрабатывайте их частями.

Заключение

Теперь у вас есть полный, готовый к продакшн подход к search multiple keywords in PDF документам, позволяющий получать точные номера страниц и корректно обрабатывать неподдерживаемые форматы с помощью GroupDocs.Parser для Java. Включите эти фрагменты в более крупные рабочие процессы — пакетную обработку, веб‑службы или настольные утилиты — чтобы автоматизировать анализ документов в масштабе.

Следующие шаги

  • Поэкспериментировать с шаблонами regex для более сложных поисков.
  • Скомбинировать результаты поиска с PDF‑писателем (например, GroupDocs.Conversion), чтобы выделять совпадения.
  • Исследовать пакетную обработку, перебирая папку с PDF‑файлами и сохраняя результаты в базе данных.

Часто задаваемые вопросы

Q: Можно ли искать несколько ключевых слов одновременно?
A: Да. Используйте строку, разделённую символом pipe (например, "invoice|due date|total"), или включите regex в SearchOptions.

Q: Что делать, если документ зашифрован?
A: Укажите пароль при создании Parser. Если пароля нет, библиотека бросит исключение, которое можно перехватить.

Q: Как эффективно обрабатывать очень большие PDF‑файлы?
A: Обрабатывайте файл постранично или используйте SearchOptions, чтобы ограничить область поиска определёнными диапазонами страниц.

Q: Совместим ли GroupDocs.Parser со всеми версиями PDF?
A: Он поддерживает большинство стандартов PDF (1.4‑1.7, PDF/A, PDF/X). Всегда тестируйте с вашими конкретными файлами.

Q: Можно ли использовать это для пакетной обработки документов?
A: Конечно. Пройдитесь по каталогу, примените ту же логику поиска и сохраните результаты для каждого файла.

Ресурсы


Last Updated: 2026-04-21
Tested With: GroupDocs.Parser for Java 25.5
Author: GroupDocs

{< /blocks/products/pf/tutorial-page-section >} {< /blocks/products/pf/main-container >} {< /blocks/products/pf/main-wrap-class >} {< blocks/products/products-backtop-button >}