Поиск нескольких ключевых слов в 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());
}
Руководство по реализации
Мы разделим реализацию на две практические функции:
- Поиск нескольких ключевых слов в PDF и получение номеров страниц – идеальный вариант для «search pdf by page number».
- Корректная обработка ошибок для неподдерживаемых форматов документов.
Функция 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‑sensitive –
falseделает поиск нечувствительным к регистру. - Whole‑word –
falseпозволяет частичные совпадения. - Regex –
falseотключает парсинг регулярных выражений; установитеtrue, если нужен regex. - Return page index –
trueгарантирует, что каждыйSearchResultсодержит номер страницы.
- Case‑sensitive –
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 проявляет себя:
- Legal Document Review – Найдите пункты, такие как «force majeure», «termination» или «confidentiality», на сотнях страниц.
- Invoice Processing – Вытащите «invoice number», «due date» и «total amount» за один проход для автоматизированного бухгалтерского учёта.
- 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: Конечно. Пройдитесь по каталогу, примените ту же логику поиска и сохраните результаты для каждого файла.
Ресурсы
- Документация: GroupDocs.Parser Java Documentation
- Справочник API: GroupDocs API Reference
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 >}