1. Producten
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Java

Aspose.PDF FOSS voor Java

Maak en bewerk PDF-documenten vanuit Java — met annotaties, formulier‑velden, paginamanipulatie en PDF/A‑conformiteit. MIT-licentie.

Gratis MIT-gelicentieerde Java bibliotheek voor PDF-creatie en -manipulatie

Aspose.PDF FOSS voor Java is een MIT-gelicentieerde Java bibliotheek voor het maken en werken met PDF-documenten. Het biedt een uitgebreide Document klasse als het centrale toegangspunt, samen met volledige dekking van annotaties, interactieve formuliervelden, paginamanipulatie, metadata en PDF/A-conformiteitsvalidatie.

De bibliotheek biedt 527 klassen die de volledige PDF-specificatie dekken: documentstructuur via Document, Page en PageCollection; annotaties via de Annotation hiërarchie (inclusief WidgetAnnotation, FreeTextAnnotation en HighlightAnnotation); interactieve formulieren met Form, ButtonField, CheckboxField en RadioButtonField; paginaverwerking via BmpDevice; en PDF/A-conformiteitscontrole via ActionRules en ActionFixes. Versleuteling wordt geleverd via AESCipher in CBC-modus.

Voeg Aspose.PDF FOSS toe aan je Maven‑project met groupId org.aspose en artifactId aspose-pdf. De bibliotheek vereist Java 11 of hoger en is volledig MIT‑gelicentieerd. Voor enterprise‑functies en ondersteuning, zie Aspose.PDF for Java — Enterprise Product.

Documentstructuur en paginabeheer

  • Document API: Gebruik de Document klasse om nieuwe PDF‑documenten te maken. Bestaande documenten kunnen worden benaderd via Document(filePath) of Document(stream) constructors.
  • Pagina beheer: Voeg pagina’s toe, krijg toegang tot en wijzig pagina’s via PageCollection. Elke Page biedt MediaBox, CropBox, rotatie, resources en content-operatoren.
  • Metadata: Lees en schrijf documentmetadata via DocumentInfo en XmpMetadata.
  • PDF structure: Toegang tot onderliggende PDF-objecten via getParser(), getCatalog() en getTrailer().
  • Ingesloten bestanden: Beheer ingesloten bestandscollecties met getEmbeddedFiles().

Veelvoorkomende documentverwerkingsscenario's

  • PDF-generatie: Bouw documenten programmatisch door een Document te maken en pagina’s te vullen.
  • Documentanalyse: Toegang tot bestaande bestanden voor metadata‑inspectie of opsomming van formuliervelden.
  • Pagina-manipulatie: Pagina’s verkleinen, roteren of herschikken met behulp van PdfFileEditor en de Page API.
  • Batch workflows: Pas consistente transformaties toe op meerdere documenten in server-side pipelines.

Annotaties en formulier‑velden

  • Annotation hierarchy: De abstracte Annotation klasse is de basis voor alle annotaties; concrete types omvatten WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation en UnderlineAnnotation.
  • Interactieve formulieren: Toegang tot het documentformulier via Document.getForm() om ButtonField, CheckboxField en RadioButtonField exemplaren te enumereren of te maken.
  • Widget-uiterlijk: Beheer visuele eigenschappen via AppearanceCharacteristics — randkleur, achtergrond, rotatie en bijschriften.
  • Form editing: Gebruik FormEditor en FormElement voor manipulatie van formulieren op hoger niveau.

Documentreview en samenwerking

  • Markup annotations: Voeg markering-, onderstreping- of vrije-tekstannotaties toe aan documenten voor beoordelingsworkflows.
  • Interactieve formulieren: Maak invulbare documenten met keuzerondjes, selectievakjes en drukknoppen voor gegevensverzameling.
  • Formulierveldextractie: Lees ingediende formulier‑veldwaarden voor server‑side pipelines.
  • Archiveringsconformiteit: Valideer en herstel documenten voor langdurige archivering met behulp van ActionRules en ActionFixes.

Beveiliging en Contentoperaties

  • AES-encryptie: Versleutel en ontsleutel data‑byte‑arrays met AESCipher met behulp van CBC-modus (AESCipher.encrypt(key, data) en AESCipher.decrypt(key, data)).
  • Artifact management: Identificeer en bewerk kopteksten, voetteksten, watermerken en achtergrondafbeeldingen via de Artifact en ArtifactCollection API’s.
  • Content resize: Pas de lay-out van de paginacontent aan met PdfFileEditor.resizeContents() en ContentsResizeParameters.
  • Compliancevalidatie: Valideer annotatie- en actieregels tegen PDF/A-standaarden met behulp van AnnotationRules en ActionRules.

Use cases voor documentbeveiliging

  • Versleutelde payloads: Gebruik AESCipher om gegevenssecties die in documentstreams zijn ingebed te versleutelen.
  • Documentbeveiliging: Pas beveiligingsinstellingen toe voor toegangscontrole in compliance-workflows.
  • Watermarking: Detecteer en beheer Artifact objecten die watermerken en paginadecoraties vertegenwoordigen.
  • Archiefconformiteit: Voer ActionFixes en AnnotationFixes uit om bestaande documenten te laten voldoen aan de PDF/A-1b archiefnormen.

Maak een document met widgetannotatie

Maak een nieuw document, voeg een pagina toe en koppel een widget annotation met styling.

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");
}

Maak een formulier met radioknoppen

Voeg een radioknopgroep toe aan een documentformulier en selecteer een waarde programmatisch.

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");
}

Inspecteer documentpaginamaten

Open een bestaand document en lees de afmetingen van de mediabox van de eerste 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);
}
  

Ondersteuning en leermiddelen

 Nederlands