Aspose.PDF FOSS per Java è una libreria Java con licenza MIT per la creazione e la gestione di documenti PDF. Fornisce una classe Document completa come punto di ingresso centrale, insieme a una copertura completa di annotazioni, campi modulo interattivi, manipolazione delle pagine, metadati e convalida della conformità PDF/A.
La libreria espone 527 classi che coprono l’intera specifica PDF: struttura del documento tramite Document, Page e PageCollection; annotazioni attraverso la gerarchia Annotation (inclusi WidgetAnnotation, FreeTextAnnotation e HighlightAnnotation); moduli interattivi con Form, ButtonField, CheckboxField e RadioButtonField; rendering delle pagine tramite BmpDevice; e verifica della conformità PDF/A tramite ActionRules e ActionFixes. La crittografia è fornita tramite AESCipher in modalità CBC.
Aggiungi Aspose.PDF FOSS al tuo progetto Maven usando groupId org.aspose e artifactId aspose-pdf. La libreria richiede Java 11 o versioni successive ed è interamente con licenza MIT. Per le funzionalità enterprise e il supporto, vedi Aspose.PDF for Java — Enterprise Product.
Document per creare nuovi documenti PDF. I documenti esistenti possono essere accessi tramite i costruttori Document(filePath) o Document(stream).PageCollection. Ogni Page espone MediaBox, CropBox, rotazione, risorse e operatori di contenuto.DocumentInfo e XmpMetadata.getParser(), getCatalog() e getTrailer().getEmbeddedFiles().Document e popolando le pagine.PdfFileEditor e l’API Page.Annotation è la base per tutte le annotazioni; i tipi concreti includono WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation e UnderlineAnnotation.Document.getForm() per elencare o creare istanze di ButtonField, CheckboxField e RadioButtonField.AppearanceCharacteristics — colore del bordo, sfondo, rotazione e didascalie.FormEditor e FormElement per la manipolazione del modulo a livello superiore.ActionRules e ActionFixes.AESCipher usando la modalità CBC (AESCipher.encrypt(key, data) e AESCipher.decrypt(key, data)).Artifact e ArtifactCollection.PdfFileEditor.resizeContents() e ContentsResizeParameters.AnnotationRules e ActionRules.AESCipher per crittografare le sezioni di dati incorporate nei flussi del documento.Artifact che rappresentano filigrane e decorazioni di pagina.ActionFixes e AnnotationFixes per far sì che i documenti esistenti soddisfino gli standard di archiviazione PDF/A-1b.Crea un nuovo documento, aggiungi una pagina e allega un’annotazione widget con stile.
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");
}
Aggiungi un gruppo di pulsanti radio a un modulo di documento e seleziona un valore programmaticamente.
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");
}
Accedi a un documento esistente e leggi le dimensioni della media box della prima pagina.
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);
}