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.
Document для создания новых PDF‑документов. Существующие документы можно открыть с помощью конструкторов Document(filePath) или Document(stream).PageCollection. Каждый Page предоставляет MediaBox, CropBox, вращение, ресурсы и операторы содержимого.DocumentInfo и XmpMetadata.getParser(), getCatalog() и getTrailer().getEmbeddedFiles().Document и заполняя страницы.PdfFileEditor и Page API.Annotation является базовым для всех аннотаций; конкретные типы включают WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation и UnderlineAnnotation.Document.getForm(), чтобы перечислить или создать экземпляры ButtonField, CheckboxField и RadioButtonField.AppearanceCharacteristics — цвет границы, фон, вращение и подписи.FormEditor и FormElement для более высокого уровня манипуляций формой.ActionRules и ActionFixes.AESCipher в режиме CBC (AESCipher.encrypt(key, data) и AESCipher.decrypt(key, data)).Artifact и ArtifactCollection.PdfFileEditor.resizeContents() и ContentsResizeParameters.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);
}