Aspose.PDF FOSS dla Java jest biblioteką Java na licencji MIT służącą do tworzenia i pracy z dokumentami PDF. Dostarcza kompleksową klasę Document jako centralny punkt wejścia, wraz z pełnym wsparciem adnotacji, interaktywnych pól formularzy, manipulacji stronami, metadanymi oraz walidacją zgodności PDF/A.
Biblioteka udostępnia 527 klas obejmujących pełną specyfikację PDF: strukturę dokumentu poprzez Document, Page i PageCollection; adnotacje poprzez hierarchię Annotation (w tym WidgetAnnotation, FreeTextAnnotation i HighlightAnnotation); interaktywne formularze z Form, ButtonField, CheckboxField i RadioButtonField; renderowanie stron za pomocą BmpDevice; oraz sprawdzanie zgodności PDF/A poprzez ActionRules i ActionFixes. Szyfrowanie jest zapewnione przez AESCipher w trybie CBC.
Dodaj Aspose.PDF FOSS do swojego projektu Maven, używając groupId org.aspose i artifactId aspose-pdf. Biblioteka wymaga Java 11 lub nowszej i jest w pełni licencjonowana na licencji MIT. Aby uzyskać funkcje i wsparcie dla przedsiębiorstw, zobacz Aspose.PDF for Java — Enterprise Product.
Document, aby tworzyć nowe dokumenty PDF. Istniejące dokumenty można uzyskać za pomocą konstruktorów Document(filePath) lub Document(stream).PageCollection. Każdy Page udostępnia MediaBox, CropBox, rotację, zasoby i operatory treści.DocumentInfo i XmpMetadata.getParser(), getCatalog() i getTrailer().getEmbeddedFiles().Document i wypełniając strony.PdfFileEditor i interfejsu API Page.Annotation jest bazą dla wszystkich adnotacji; typy konkretne obejmują WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation oraz UnderlineAnnotation.Document.getForm(), aby wyliczyć lub utworzyć instancje ButtonField, CheckboxField i RadioButtonField.AppearanceCharacteristics — kolor obramowania, tło, obrót i podpisy.FormEditor i FormElement do manipulacji formularzem na wyższym poziomie.ActionRules i ActionFixes.AESCipher w trybie CBC (AESCipher.encrypt(key, data) i AESCipher.decrypt(key, data)).Artifact i ArtifactCollection API.PdfFileEditor.resizeContents() i ContentsResizeParameters.AnnotationRules i ActionRules.AESCipher, aby zaszyfrować sekcje danych osadzone w strumieniach dokumentu.Artifact reprezentującymi znaki wodne i dekoracje stron.ActionFixes i AnnotationFixes, aby istniejące dokumenty spełniały standardy archiwalne PDF/A-1b.Utwórz nowy dokument, dodaj stronę i dołącz adnotację typu widget ze stylizacją.
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");
}
Dodaj grupę przycisków radiowych do formularza dokumentu i wybierz wartość programowo.
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");
}
Uzyskaj dostęp do istniejącego dokumentu i odczytaj wymiary media box pierwszej strony.
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);
}