Как извлечь данные PDF в Java с помощью GroupDocs.Metadata

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

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

  • Как извлечь аннотации PDF? Вызовите root.getInspectionPackage().getAnnotations() и пройдитесь по возвращённой коллекции.
  • Можно ли читать поля формы PDF? Да — вызовите root.getInspectionPackage().getFields() и прочитайте каждый PdfFormField.
  • Какая библиотека поддерживает проверку PDF‑подписей в Java? GroupDocs.Metadata предоставляет объекты DigitalSignature для этой цели.
  • Нужна ли лицензия? Бесплатная пробная версия подходит для базовой инспекции; полная лицензия требуется для использования в продакшене.
  • Какая версия JDK требуется? JDK 8 или выше.

Что такое извлечение PDF с помощью GroupDocs.Metadata?

InspectionPackage объект является точкой входа, который предоставляет доступ ко всем извлекаемым элементам PDF, таким как аннотации, вложения, закладки, подписи и поля формы. Он абстрагирует низкоуровневую структуру PDF, позволяя сосредоточиться на бизнес‑логике, а не на спецификации PDF.

Извлечение данных PDF с помощью GroupDocs.Metadata означает, что вы можете программно читать каждый кусок метаданных без рендеринга документа. SDK потоково передаёт содержимое, что позволяет работать с PDF‑файлами в сотни страниц, удерживая использование памяти ниже 100 МБ.

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

GroupDocs.Metadata поддерживает более 30 типов элементов PDF и может обрабатывать файлы размером до 500 МБ без загрузки всего документа в память, обеспечивая в 3 раза более быструю работу по сравнению со многими традиционными PDF‑парсерами. Библиотека работает на любой платформе, совместимой с Java, не требует никаких внешних зависимостей и предлагает единый API для аннотаций, вложений, закладок, подписей и полей формы — всё в одном пакете.

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

Требуемые библиотеки, версии и зависимости

Чтобы работать с GroupDocs.Metadata для Java, добавьте её как зависимость через Maven или загрузив напрямую с сайта GroupDocs.

Требования к настройке окружения

  • Java Development Kit (JDK): Убедитесь, что установлен JDK 8 или выше.
  • IDE: Используйте любую Java‑IDE, например IntelliJ IDEA, Eclipse или NetBeans.

Требования к знаниям

  • Базовое понимание программирования на Java.
  • Знакомство с работой с PDF в приложениях (например, знание, что такое аннотация или поле формы).

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

Чтобы начать использовать GroupDocs.Metadata, настройте окружение следующим образом:

Настройка Maven
Добавьте следующий репозиторий и зависимость в ваш файл pom.xml:

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

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-metadata</artifactId>
      <version>24.12</version>
   </dependency>
</dependencies>

Прямое скачивание
Либо скачайте последнюю версию напрямую с GroupDocs.Metadata for Java releases.

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

  • Free Trial: Тестировать основные функции.
  • Temporary License: Для расширенного тестирования.
  • Purchase: Получить полный доступ и поддержку.

Базовая инициализация

После установки инициализируйте библиотеку в вашем Java‑проекте следующим образом:

import com.groupdocs.metadata.Metadata;
import com.groupdocs.metadata.core.PdfRootPackage;

try (Metadata metadata = new Metadata("path/to/your/document.pdf")) {
    PdfRootPackage root = metadata.getRootPackageGeneric();
    // Begin exploring PDF features...
}

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

Изучите различные возможности с помощью GroupDocs.Metadata.

Анализ аннотаций PDF

Аннотации могут содержать важную информацию. Вот как их извлечь:

Обзор

Класс Annotation представляет одну аннотацию PDF, такую как комментарий, выделение или стикер. Он предоставляет свойства, такие как автор, текст, номер страницы и внешний вид.

Пошаговая реализация

1. Получить аннотации

import com.groupdocs.metadata.core.PdfAnnotation;

if (root.getInspectionPackage().getAnnotations() != null) {
    for (PdfAnnotation annotation : root.getInspectionPackage().getAnnotations()) {
        System.out.println("Name: " + annotation.getName());
        System.out.println("Text: " + annotation.getText());
        System.out.println("Page Number: " + annotation.getPageNumber());
    }
}
  • Parameters: Объект root содержит метаданные PDF.
  • Return Values: Возвращает детали каждой аннотации, включая её имя, текстовое содержание и номер страницы.

Советы по устранению неполадок

  • Убедитесь, что путь к документу правильный, чтобы избежать ошибок «файл не найден».
  • Выполняйте проверки на null для аннотаций, чтобы предотвратить NullPointerException.

Анализ вложений PDF

Вложения часто встраиваются в PDF‑файлы. Вот как к ним получить доступ:

Обзор

Класс Attachment инкапсулирует встроенный файл, предоставляя его имя, MIME‑тип, размер и необязательное описание.

Пошаговая реализация

1. Получить вложения

import com.groupdocs.metadata.core.PdfAttachment;

if (root.getInspectionPackage().getAttachments() != null) {
    for (PdfAttachment attachment : root.getInspectionPackage().getAttachments()) {
        System.out.println("Name: " + attachment.getName());
        System.out.println("MIME Type: " + attachment.getMimeType());
        System.out.println("Description: " + attachment.getDescription());
    }
}
  • Parameters: Объект root предоставляет доступ к вложениям PDF.
  • Return Values: Предоставляет детали, такие как имя, MIME‑тип и описание каждого вложения.

Советы по устранению неполадок

  • Убедитесь, что ваш PDF действительно содержит вложения, прежде чем обращаться к ним.

Анализ закладок PDF

Закладки помогают навигировать по длинным документам. Вот как их извлечь:

Обзор

Bookmark представляет собой иерархическую точку навигации внутри PDF, раскрывая её заголовок, ссылку на страницу и дочерние закладки.

Пошаговая реализация

1. Получить закладки

import com.groupdocs.metadata.core.PdfBookmark;

if (root.getInspectionPackage().getBookmarks() != null) {
    for (PdfBookmark bookmark : root.getInspectionPackage().getBookmarks()) {
        System.out.println("Title: " + bookmark.getTitle());
    }
}
  • Parameters: Объект root содержит данные о закладках.
  • Return Values: Предоставляет заголовок каждой закладки.

Советы по устранению неполадок

  • Закладки могут отсутствовать в некоторых PDF; проверяйте значения на null перед обработкой.

Анализ цифровых подписей PDF

Цифровые подписи обеспечивают подлинность документа. Вот как их проверить:

Обзор

Объект DigitalSignature предоставляет доступ к деталям сертификата, времени подписи и статусу проверки каждой подписи, встроенной в PDF.

Пошаговая реализация

1. Получить цифровые подписи

import com.groupdocs.metadata.core.DigitalSignature;

if (root.getInspectionPackage().getDigitalSignatures() != null) {
    for (DigitalSignature signature : root.getInspectionPackage().getDigitalSignatures()) {
        System.out.println("Certificate Subject: " + signature.getCertificateSubject());
        System.out.println("Comments: " + signature.getComments());
        System.out.println("Signed Time: " + signature.getSignTime());
    }
}
  • Parameters: Объект root содержит информацию о цифровых подписях.
  • Return Values: Детали, такие как субъект сертификата, комментарии и время подписи.

Советы по устранению неполадок

  • Убедитесь, что PDF подписан; иначе цифровые подписи недоступны.

Анализ полей PDF

Поля формы необходимы для интерактивных документов. Вот как к ним получить доступ:

Обзор

Класс PdfFormField представляет один интерактивный элемент (текстовое поле, флажок, переключатель и т.д.) и предоставляет его имя, значение и тип поля.

Пошаговая реализация

1. Получить поля формы

import com.groupdocs.metadata.core.PdfFormField;

if (root.getInspectionPackage().getFields() != null) {
    for (PdfFormField field : root.getInspectionPackage().getFields()) {
        System.out.println("Name: " + field.getName());
        System.out.println("Value: " + field.getValue());
    }
}
  • Parameters: Объект root предоставляет доступ к полям формы.
  • Return Values: Получает имя и значение каждого поля формы.

Советы по устранению неполадок

  • Не все PDF содержат поля формы; обрабатывайте случаи их отсутствия.

Как читать поля формы PDF?

Metadata — основной класс, используемый для открытия и инспекции PDF‑файлов. Загрузите PDF с помощью Metadata metadata = new Metadata("sample.pdf"), вызовите metadata.getInspectionPackage().getFields() и пройдитесь по возвращённой коллекции, чтобы прочитать каждый PdfFormField. Этот однострочный шаблон даёт прямой доступ ко всем значениям, введённым пользователем, без парсинга визуального макета.

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

Эти возможности незаменимы в различных реальных сценариях:

  1. Обзор юридических документов: Извлекать аннотации для просмотра комментариев или выделений в контрактах.
  2. Системы управления документами: Получать вложения и закладки для эффективной навигации и индексации.
  3. Безопасные транзакции: Проверять подписи PDF с помощью API цифровой подписи.
  4. Формы сбора данных: Читать поля формы PDF для сбора ввода пользователя без ручного парсинга.

Овладев этими техниками, вы сможете читать поля формы PDF и быстро и надёжно извлекать информацию из PDF в любом Java‑решении.

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

Q: Можно ли использовать GroupDocs.Metadata для чтения зашифрованных PDF?
A: Да. Передайте пароль в конструктор Metadata, и SDK расшифрует документ перед инспекцией.

Q: Чем GroupDocs.Metadata отличается от других PDF‑библиотек?
A: Она сосредоточена исключительно на извлечении и изменении метаданных, работает без рендеринга документа и обрабатывает файлы в 500 страниц за менее чем 2 секунды на типичном серверном оборудовании.

Q: Есть ли способ извлечь только определённые поля формы?
A: Конечно. После получения коллекции полей отфильтруйте их по field.getName() или field.getFieldType() перед обработкой результатов.

Q: Какая версия Java требуется для последней версии GroupDocs.Metadata?
A: SDK поддерживает JDK 8 и новее, включая Java 11, 17 и более новые версии.

Q: Как эффективно обрабатывать большие PDF (сотни МБ)?
A: Используйте try‑with‑resources, как показано в примере инициализации; SDK потоково передаёт данные и быстро освобождает ресурсы, удерживая использование памяти ниже 100 МБ.


Последнее обновление: 2026-06-01
Тестировано с: GroupDocs.Metadata 24.12
Автор: GroupDocs

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