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

Aspose.PDF FOSS til Java

Opret og manipulér PDF-dokumenter fra Java — med annoteringer, formularfelter, side-manipulation og PDF/A-kompatibilitet. MIT-licenseret.

Gratis MIT-licenseret Java bibliotek til PDF-oprettelse og -manipulation

Aspose.PDF FOSS for Java er et MIT-licenseret Java bibliotek til at oprette og arbejde med PDF-dokumenter. Det leverer en omfattende Document klasse som det centrale indgangspunkt, sammen med fuld dækning af annoteringer, interaktive formularfelter, sidehåndtering, metadata og PDF/A overholdelsesvalidering.

Biblioteket eksponerer 527 klasser, der dækker den fulde PDF-specifikation: dokumentstruktur via Document, Page og PageCollection; annotationer gennem Annotation-hierarkiet (inklusive WidgetAnnotation, FreeTextAnnotation og HighlightAnnotation); interaktive formularer med Form, ButtonField, CheckboxField og RadioButtonField; side-rendering via BmpDevice; og PDF/A-overholdelsestjek gennem ActionRules og ActionFixes. Kryptering leveres via AESCipher i CBC-tilstand.

Tilføj Aspose.PDF FOSS til dit Maven-projekt ved at bruge groupId org.aspose og artifactId aspose-pdf. Biblioteket kræver Java 11 eller senere og er fuldt MIT-licenseret. For enterprise-funktioner og support, se Aspose.PDF for Java — Enterprise Product.

Dokumentstruktur og sidehåndtering

  • Dokument-API: Brug Document klassen til at oprette nye PDF-dokumenter. Eksisterende dokumenter kan tilgås via Document(filePath) eller Document(stream) konstruktører.
  • Sidehåndtering: Tilføj, få adgang til og rediger sider via PageCollection. Hver Page eksponerer MediaBox, CropBox, rotation, ressourcer og indholdsoperatorer.
  • Metadata: Læs og skriv dokumentmetadata via DocumentInfo og XmpMetadata.
  • PDF-struktur: Få adgang til underliggende PDF-objekter via getParser(), getCatalog() og getTrailer().
  • Indlejrede filer: Administrer samlinger af indlejrede filer med getEmbeddedFiles().

Almindelige Dokumentbehandlingsscenarier

  • PDF-generering: Byg dokumenter programmatisk ved at oprette en Document og udfylde sider.
  • Dokumentanalyse: Få adgang til eksisterende filer for metadatainspektion eller optælling af formularfelter.
  • Sidehåndtering: Ændr størrelse, roter eller omarranger sider ved brug af PdfFileEditor og det Page API.
  • Batch workflows: Anvend konsistente transformationer på tværs af flere dokumenter i server‑side‑pipelines.

Annoteringer og formularfelter

  • Annotation hierarchy: Den abstrakte Annotation klasse er basen for alle annotationer; konkrete typer inkluderer WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation og UnderlineAnnotation.
  • Interaktive formularer: Få adgang til dokumentformularen via Document.getForm() for at tælle eller oprette ButtonField, CheckboxField og RadioButtonField forekomster.
  • Widget-udseende: Styr visuelle egenskaber via AppearanceCharacteristics — kantfarve, baggrund, rotation og billedtekster.
  • Form editing: Brug FormEditor og FormElement til manipulation af formularer på højere niveau.

Dokumentgennemgang og Samarbejde

  • Markup annotations: Tilføj fremhævning, understregning eller fri‑tekst‑annoteringer til dokumenter for gennemgangsarbejdsgange.
  • Interaktive formularer: Byg udfyldelige dokumenter med radioknapper, afkrydsningsfelter og trykknapper til dataindsamling.
  • Form data extraction: Læs indsendte formularfelters værdier for server-side pipelines.
  • Arkivoverensstemmelse: Valider og reparer dokumenter til langtidsarkivering ved hjælp af ActionRules og ActionFixes.

Sikkerhed og Indholdsoperationer

  • AES-kryptering: Krypter og dekrypter data byte arrays med AESCipher ved brug af CBC-tilstand (AESCipher.encrypt(key, data) og AESCipher.decrypt(key, data)).
  • Artefaktstyring: Identificer og manipulér sidehoveder, sidefødder, vandmærker og baggrundsbilleder via Artifact og ArtifactCollection API’erne.
  • Indholdsjustering: Juster sidens indholdslayout med PdfFileEditor.resizeContents() og ContentsResizeParameters.
  • Compliance validation: Valider annoterings- og handlingsregler mod PDF/A-standarder ved brug af AnnotationRules og ActionRules.

Brugssager for dokumentsikkerhed

  • Krypterede nyttelast: Brug AESCipher til at kryptere datasektioner, der er indlejret i dokumentstrømme.
  • Dokumentsikring: Anvend sikkerhedsindstillinger for adgangskontrol i overholdelsesarbejdsgange.
  • Vandmærkning: Detekter og håndter Artifact objekter, der repræsenterer vandmærker og sideudsmykninger.
  • Arkivoverensstemmelse: Kør ActionFixes og AnnotationFixes for at få eksisterende dokumenter til at opfylde PDF/A-1b arkivstandarder.

Opret et dokument med widget-annotation

Opret et nyt dokument, tilføj en side, og vedhæft en widget-annotation med 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");
}

Opret en formular med radioknapper

Tilføj en radioknapgruppe til en dokumentformular og vælg en værdi programmatisk.

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

Undersøg dokumentets side-dimensioner

Få adgang til et eksisterende dokument og læs media box‑dimensionerne på den første side.

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

Support og læringsressourcer

 Dansk