Introduction

Aspose.PDF FOSS for Java is an MIT-licensed Java library for creating and manipulating Документы PDF. Он доступен на GitHub под лицензией MIT и не требует ключа API Библиотека представляет 527 классов, охватывающих полный PDF-файл. спецификация от структуры документа до аннотаций, интерактивных форм и рендеринга страниц;, и криптографических операций.

Библиотека построена вокруг Document класс, который является центральной точкой входа для создание нового документа, доступ к страницам через PageCollection, чтение метаданных через DocumentInfo, или навигация по каталогу через: getCatalog() и в том числе: getTrailer() все начинается с “а” Document В этом случае.

Быстрый старт .

Добавьте зависимость Мавена к вашему pom.xml:

<dependency>
  <groupId>org.aspose</groupId>
  <artifactId>aspose-pdf</artifactId>
  <version>0.1.0-alpha</version>
</dependency>

Библиотека организует все классы API в трех пакетах. Добавьте эти декларации пакета к любому исходному файлу Java, использующему API:

// Core API — Document, Page, Annotation, Form, etc.
org.aspose.pdf.*
// Annotation subclasses
org.aspose.pdf.annotations.*
// Facade classes — PdfFileEditor, PdfAnnotationEditor, etc.
org.aspose.pdf.facades.*

Aspose.PDF FOSS for Java requires Java 11 or later. The source code and issue tracker доступны по адресу: https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.

Начинать

Создать и сохранить минимальный документ для проверки настройки:

try (Document doc = new Document()) {
    PageCollection pages = doc.getPages();
    Page page = pages.add();
    doc.save("output.pdf");
    System.out.println("Pages: " + pages.getCount());
}

В связи с этим Document конструктор класса принимает путь или поток файла для доступа к существующему файлы, или может быть вызван без аргументов для создания пустого документа. Страницы управляются через PageCollection, доступный через: Document.getPages().Каждый . Page раскрывает свои геометрия через getMediaBox(), getCropBox(), и getRotate(), и дает доступ к ресурсы, операторы контента и аннотации.

try (Document doc = new Document()) {
    PageCollection pages = doc.getPages();
    Page page = pages.add();
    // page.getMediaBox() -> Rectangle with width/height
    // page.getAnnotations() -> AnnotationCollection
    doc.save("output.pdf");
}

В связи с этим PdfFileEditor класс обеспечивает: concatenate() для слияния нескольких документов и resizeContents() с . ContentsResizeParameters для корректировки контент-лаяума в пределах: существующие границы страниц.

Annotations

Aspose.PDF FOSS for Java implements the full PDF annotation hierarchy rooted at the абстрактный Annotation К конкретным типам аннотации относятся: WidgetAnnotation для: формные контрольные устройства;, FreeTextAnnotation для текстовых вызовов;, HighlightAnnotation и в том числе: UnderlineAnnotation для отметки, и CircleAnnotation и в том числе: CaretAnnotation для: графические заметки.

Каждая аннотация связана с Page и а) Rectangle определение его местоположения. Визуальные свойства контролируются через: AppearanceCharacteristics, что показывает: setBorder(), setBackground(), setRotate(), и setCaption() Методы. Аннотации добавляются на страницу через: page.getAnnotations().add(annotation).

try (Document doc = new Document()) {
    PageCollection pages = doc.getPages();
    Page page = pages.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("annotated.pdf");
}

Поле интерактивной формы

В связи с этим Form класс, доступный через: Document.getForm(), управляет всеми полями AcroForm. библиотека предоставляет: ButtonField, CheckboxField, RadioButtonField, TextBoxField, ComboBoxField, и ListBoxField для создания заполняемых форм. FormEditor является: класс фасада для работы с полями формы в связанном документе.

Группы радио кнопок создаются с помощью: RadioButtonField, которая принимает страницу и поддерживает addOption() Добавить выбираемые варианты, каждый связанный с Rectangle для его визуального использования. Местоположение. setValue() метод программируемо выбирает вариант.

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

Безопасность: шифрование AES

В связи с этим AESCipher класс реализует шифрование AES в режиме CBC для шифрки и расшифровки. массивы данных на байтах, встроенные в PDF-документы. AESCipher.encrypt(key, data) возвращает: шифрованный текст, и AESCipher.decrypt(key, data) восстанавливает оригинальный простой текст. Для ясного контроля внутривенной введения, encryptWithIV(key, iv, plaintext) и в том числе: decryptWithIV(key, iv, cipherText) обеспечивать детерминистическую операцию.

PDF/A Валидация соответствия

Библиотека включает в себя: ActionRules и в том числе: ActionFixes для подтверждения соответствия PDF/A; и исправление. ActionRules.validate() проверки запрещенных действий в каталоге, странице и вложения виджетов. ActionFixes представляет такие методы, как: removeCatalogAA(), removePageAA(), и removeWidgetAA() исправлять не соответствующие словаря действия. Точно так же, AnnotationRules и в том числе: AnnotationFixes обрабатывать соответствие аннотации.

Артефакты: заголовки, фугасы и водяные знаки

В связи с этим Artifact модели класса, украшения страниц, такие как заголовки, нижние части, водяные знаки и фоновые изображения. ArtifactCollection, доступный через ресурсы страниц, позволяет перечислять Итерация и удаление предметов артефакта. page.getArtifacts() и звонит . ArtifactCollection.delete(artifact) устраняет определенные артефакты без изменения непосредственно документировать потоки контента.

Оформление страниц

В связи с этим BmpDevice класс воспроизводит страницы PDF непосредственно в файлы изображений BMP с использованием: process(page, outputPath).Это полезно для создания миниатюр, предварительного просмотра документов., или обработки изображений.

Связанные ресурсы