1. Продукты
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Java

Aspose.PDF FOSS для Java

Создавайте и манипулируйте PDF‑документами из Java — с аннотациями, полями форм, управлением страницами и соответствием PDF/A. Лицензия MIT.

Бесплатная библиотека Java с лицензией MIT для создания и манипулирования PDF

Aspose.PDF FOSS for Java — это библиотека Java с лицензией MIT для создания и работы с PDF‑документами. Она предоставляет всесторонний класс Document в качестве центральной точки входа, а также полное покрытие аннотаций, интерактивных полей форм, манипуляций со страницами, метаданных и проверки соответствия PDF/A.

Библиотека предоставляет 527 классов, охватывающих полную спецификацию PDF: структуру документа через Document, Page и PageCollection; аннотации через иерархию Annotation (включая WidgetAnnotation, FreeTextAnnotation и HighlightAnnotation); интерактивные формы с Form, ButtonField, CheckboxField и RadioButtonField; рендеринг страниц через BmpDevice; и проверку соответствия PDF/A через ActionRules и ActionFixes. Шифрование предоставляется через AESCipher в режиме CBC.

Добавьте Aspose.PDF FOSS в ваш Maven‑проект, используя groupId org.aspose и artifactId aspose-pdf. Библиотека требует Java 11 или новее и полностью лицензирована по MIT. Для корпоративных функций и поддержки см. Aspose.PDF for Java — Enterprise Product.

Структура документа и управление страницами

  • API документа: Используйте класс Document для создания новых PDF‑документов. Существующие документы можно открыть с помощью конструкторов Document(filePath) или Document(stream).
  • Управление страницами: Добавляйте, получайте доступ и изменяйте страницы через PageCollection. Каждый Page предоставляет MediaBox, CropBox, вращение, ресурсы и операторы содержимого.
  • Метаданные: Читать и записывать метаданные документа через DocumentInfo и XmpMetadata.
  • PDF structure: Получите доступ к базовым объектам PDF через getParser(), getCatalog() и getTrailer().
  • Встроенные файлы: Управляйте коллекциями встроенных файлов с помощью getEmbeddedFiles().

Общие сценарии обработки документов

  • Генерация PDF: Создавайте документы программно, создавая Document и заполняя страницы.
  • Анализ документа: Доступ к существующим файлам для проверки метаданных или перечисления полей формы.
  • Манипуляция страницами: Изменяйте размер, вращайте или переупорядочивайте страницы, используя PdfFileEditor и Page API.
  • Batch workflows: Применяйте согласованные преобразования к нескольким документам в серверных конвейерах.

Аннотации и поля форм

  • Иерархия аннотаций: Абстрактный класс Annotation является базовым для всех аннотаций; конкретные типы включают WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation и UnderlineAnnotation.
  • Интерактивные формы: Получите доступ к форме документа через Document.getForm(), чтобы перечислить или создать экземпляры ButtonField, CheckboxField и RadioButtonField.
  • Внешний вид виджета: Управляйте визуальными свойствами через AppearanceCharacteristics — цвет границы, фон, вращение и подписи.
  • Редактирование формы: Используйте FormEditor и FormElement для более высокого уровня манипуляций формой.

Рецензирование документов и совместная работа

  • Markup annotations: Добавьте выделения, подчеркивания или свободные текстовые аннотации к документам для рабочих процессов рецензирования.
  • Интерактивные формы: Создавайте заполняемые документы с радиокнопками, флажками и кнопками для захвата данных.
  • Извлечение данных формы: Чтение отправленных значений полей формы для серверных конвейеров.
  • Архивное соответствие: Проверьте и исправьте документы для долгосрочного архивирования с помощью ActionRules и ActionFixes.

Безопасность и операции с контентом

  • AES encryption: Шифрование и дешифрование массивов байтов данных с AESCipher в режиме CBC (AESCipher.encrypt(key, data) и AESCipher.decrypt(key, data)).
  • Управление артефактами: Идентифицировать и управлять колонтитулами, нижними колонтитулами, водяными знаками и фоновыми изображениями через API Artifact и ArtifactCollection.
  • Изменение размера контента: Отрегулируйте расположение содержимого страницы с помощью PdfFileEditor.resizeContents() и ContentsResizeParameters.
  • Проверка соответствия: Проверьте правила аннотаций и действий в соответствии со стандартами PDF/A, используя AnnotationRules и ActionRules.

Сценарии обеспечения безопасности документов

  • Зашифрованные полезные нагрузки: Используйте AESCipher для шифрования секций данных, встроенных в потоки документов.
  • Защита документа: Применяйте настройки безопасности для контроля доступа в процессах соблюдения нормативных требований.
  • Водяные знаки: Обнаруживать и управлять объектами Artifact, представляющими водяные знаки и декоративные элементы страниц.
  • Архивное соответствие: Запустите ActionFixes и AnnotationFixes, чтобы существующие документы соответствовали архивным стандартам PDF/A-1b.

Создать документ с аннотацией виджета

Создайте новый документ, добавьте страницу и прикрепите виджет‑аннотацию со стилизацией.

try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
    w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
    w.getCharacteristics().setCaption("Submit");
    page.getAnnotations().add(w);
    doc.save("output.pdf");
}
```java
try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
    w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
    w.getCharacteristics().setCaption("Submit");
    page.getAnnotations().add(w);
    doc.save("output.pdf");
}

Создать форму с радиокнопками

Добавьте группу радиокнопок в форму документа и выберите значение программно.

try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    RadioButtonField radio = new RadioButtonField(page);
    radio.setPartialName("choice");
    radio.addOption("Option1", new Rectangle(50, 50, 70, 70));
    radio.addOption("Option2", new Rectangle(50, 80, 70, 100));
    doc.getForm().add(radio, 1);
    radio.setValue("Option2");
    doc.save("form.pdf");
}

Проверить размеры страниц документа

Получите доступ к существующему документу и прочитайте размеры media box первой страницы.

try (Document doc = new Document("input.pdf")) {
    double width = doc.getPages().get(1).getMediaBox().getWidth();
    double height = doc.getPages().get(1).getMediaBox().getHeight();
    System.out.println("Page size: " + width + " x " + height);
}
  

Ресурсы поддержки и обучения

 Русский