Извлечение данных PDF-формы с помощью GroupDocs.Parser на Java

В этом руководстве вы узнаете как извлекать данные PDF-формы из PDF‑документов с помощью GroupDocs.Parser для Java. Независимо от того, нужно ли вам читать поля PDF‑формы, извлекать изображения из PDF или автоматизировать ввод данных из PDF, пошаговое руководство ниже покажет, как сделать это эффективно и надёжно.

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

  • Какая библиотека извлекает данные PDF‑формы? GroupDocs.Parser for Java
  • Могу ли я читать поля PDF‑формы и изображения? Yes – both text fields and embedded images are supported
  • Нужна ли лицензия? A free trial works for evaluation; a commercial license is required for production
  • Какая версия Java требуется? Java 8 or later
  • Возможна ли параллельная обработка? Yes, you can parse multiple PDFs concurrently for high‑throughput scenarios

Что такое извлечение данных PDF-формы?

Извлечение данных PDF‑формы означает программное чтение значений, введённых в интерактивные поля (текстовые поля, флажки, выпадающие списки и т.д.) внутри PDF‑формы. Это позволяет переносить данные из статических документов в базы данных, CRM‑системы или любой последующий процесс без ручной транскрипции.

Почему стоит использовать GroupDocs.Parser для извлечения данных PDF-формы?

GroupDocs.Parser обеспечивает высокоточное извлечение более чем 150 различных типов полей формы и может обрабатывать PDF‑файлы до 500 страниц без загрузки всего файла в память. Он поддерживает более 50 форматов вывода (включая DOCX, XLSX, HTML и типы изображений) и обрабатывает до 200 страниц в секунду на типичном серверном процессоре, что делает его идеальным для масштабной автоматизации.

Требования

  • Java Development Kit (JDK): Java 8 или новее
  • Maven: Для управления зависимостями и сборки проекта
  • Basic Java knowledge: Базовые знания Java, знакомство с классами, методами и концепциями ООП

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

Интегрируйте GroupDocs.Parser в ваш проект, используя Maven или загрузив библиотеку напрямую.

Интеграция Maven

Добавьте репозиторий и зависимость в ваш файл pom.xml:

<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.

Приобретение лицензии

  • Free Trial: Получить временную лицензию для тестирования функций GroupDocs.Parser.
  • Purchase: Приобрести полную лицензию для коммерческого использования.

После того как библиотека будет доступна, вы можете создать экземпляр Parser для работы с PDF‑формами:

Определяющая точка: Класс Parser является ядром GroupDocs.Parser, который читает и разбирает поддерживаемые форматы документов, предоставляя доступ к полям формы, тексту и изображениям через простой API.

import com.groupdocs.parser.Parser;

public class PdfFormExtractor {
    public static void main(String[] args) {
        try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/SampleCarWashPdf.pdf")) {
            // Parse form fields from the document here...
        }
    }
}

Как извлечь данные PDF-формы

FieldData представляет отдельное поле формы с его именем и извлечённым значением.

Загрузите ваш PDF одним вызовом Parser, запросите только те поля формы, которые вам нужны, и получите коллекцию объектов FieldData, содержащих как имя поля, так и его значение. Такой подход минимизирует потребление памяти и максимизирует пропускную способность, особенно при параллельной обработке сотен файлов.

Шаг 1: Разбор полей формы

Начните с создания объекта Parser и вызова parseForm(), чтобы получить структуру формы:

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.DocumentData;

public class ExtractDataFromPdfFormsFeature {
    public static void run() {
        String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleCarWashPdf.pdf";

        try (Parser parser = new Parser(filePath)) {
            DocumentData data = parser.parseForm();
            
            if (data == null) {
                System.out.println("Form extraction isn't supported.");
                return;
            }
            // Continue to extract field values...
        }
    }
}

Шаг 2: Извлечение значений полей

Используйте имя поля, чтобы получить текстовое содержимое из каждого объекта FieldData. Этот метод также демонстрирует, как безопасно читать поля PDF‑формы:

import com.groupdocs.parser.data.FieldData;
import com.groupdocs.parser.data.PageTextArea;

private static String getFieldText(DocumentData data, String fieldName) {
    FieldData fieldData = data.getFieldsByName(fieldName).get(0);
    
    return fieldData != null && fieldData.getPageArea() instanceof PageTextArea
            ? ((PageTextArea) fieldData.getPageArea()).getText()
            : null;
}

Шаг 3: Создание объекта записи

Сохраните извлечённые значения в структурированную запись, чтобы их можно было сохранять или отправлять в другие системы:

static class PreliminaryRecord {
    public String Name;
    public String Model;
    public String Time;
    public String Description;
}

// Extracted values are then assigned to the record fields:
PreliminaryRecord rec = new PreliminaryRecord();
rec.Name = getFieldText(data, "Name");
rec.Model = getFieldText(data, "Model");
rec.Time = getFieldText(data, "Time");
rec.Description = getFieldText(data, "Description");

Создание объекта записи для хранения извлечённых данных

PreliminaryRecord — пользовательский класс‑контейнер для хранения извлечённых значений PDF‑формы.

Чётко определённый объект упрощает интеграцию извлечённой информации с базами данных, API или CRM‑платформами.

Обзор

Создание структурированного объекта помогает управлять данными формы и интегрировать их в более крупные системы.

Шаги реализации

  1. Initialize the Record Object: Создайте экземпляр PreliminaryRecord.
  2. Populate with Extracted Values: Используйте вспомогательный метод выше, чтобы заполнить объект.
public class CreateRecordObjectFeature {
    public static void createAndPopulateRecord() {
        PreliminaryRecord rec = new PreliminaryRecord();
        
        // Simulated extracted values for demonstration:
        rec.Name = "John Doe";
        rec.Model = "Tesla Model S";
        rec.Time = "10:00 AM";
        rec.Description = "Routine service check";
        
        // Now, the record object 'rec' can be used further.
    }
}

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

  • Automated Data Entry: Извлекать данные о клиентах или заказах из PDF‑форм напрямую в ваш бэкенд.
  • Invoice Processing: Извлекать номера счетов, даты и суммы для ускорения сверки.
  • Survey Responses Analysis: Собирать ответы из PDF‑опросников для отчётности.
  • Medical Records Management: Извлекать информацию о пациентах для систем электронных медицинских записей (EHR).
  • Integration with CRM Systems: Заполнять лиды и контакты в реальном времени из заполненных PDF‑форм.

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

  • Memory Management: Используйте try‑with‑resources (как показано), чтобы гарантировать своевременное закрытие экземпляров Parser.
  • Selective Parsing: Запрашивайте только необходимые поля, чтобы снизить нагрузку на процессор.
  • Thread Safety: При обработке большого количества PDF запускать каждый экземпляр Parser в отдельном потоке; библиотека является потокобезопасной при таком использовании.

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

Q: Могу ли я извлекать изображения из PDF с помощью GroupDocs.Parser?
A: Да, GroupDocs.Parser поддерживает извлечение изображений вместе с текстовыми полями.

Q: Как обрабатывать зашифрованные PDF?
A: Укажите пароль при создании экземпляра Parser; библиотека автоматически расшифрует документ.

Q: Какие другие форматы файлов поддерживаются, кроме PDF?
A: API также разбирает документы Word, таблицы Excel, презентации PowerPoint и многие другие.

Q: Как лучше всего обрабатывать большие объёмы PDF?
A: Сочетайте параллельные потоки с пулом потоков (thread‑pool executor) для одновременного разбора нескольких файлов, соблюдая ограничения памяти.

Q: Требуется ли коммерческая лицензия для использования в продакшене?
A: Да, для продакшн‑развёртываний необходима полная лицензия; бесплатная пробная версия доступна для оценки.

Заключение

Теперь у вас есть полный, готовый к продакшн‑использованию подход к извлечению данных PDF‑формы с помощью GroupDocs.Parser на Java. Разбирая поля формы, создавая структурированные объекты записей и учитывая вопросы производительности, вы можете автоматизировать ввод данных, интегрировать их с последующими системами и раскрыть скрытую ценность ваших PDF‑форм. Для более подробной информации изучите официальную документацию.


Последнее обновление: 2026-06-27
Тестировано с: GroupDocs.Parser 25.5
Автор: GroupDocs

Связанные руководства