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).Це корисно для створення мініатюр, перегляду документів., або процесорів обробки зображень.