Aspose.PDF FOSS для 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) constructors.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 APIs.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);
}