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

Aspose.PDF FOSS for Java

Opprett og manipuler PDF-dokumenter fra Java — med annotasjoner, skjemafelter, sidehåndtering og PDF/A-kompatibilitet. MIT-lisensiert.

Gratis MIT-lisensiert Java bibliotek for PDF-oppretting og -manipulering

Aspose.PDF FOSS for Java er et MIT-lisensiert Java bibliotek for å lage og arbeide med PDF-dokumenter. Det gir en omfattende Document klasse som det sentrale inngangspunktet, sammen med full dekning av annotasjoner, interaktive skjemafelter, sidehåndtering, metadata og PDF/A-samsvarvalidering.

Biblioteket eksponerer 527 klasser som dekker hele PDF-spesifikasjonen: dokumentstruktur via Document, Page og PageCollection; annotasjoner gjennom Annotation-hierarkiet (inkludert WidgetAnnotation, FreeTextAnnotation og HighlightAnnotation); interaktive skjemaer med Form, ButtonField, CheckboxField og RadioButtonField; sidegjengivelse via BmpDevice; og PDF/A-samsvarskontroll gjennom ActionRules og ActionFixes. Kryptering leveres via AESCipher i CBC-modus.

Legg til Aspose.PDF FOSS i Maven-prosjektet ditt ved å bruke groupId org.aspose og artifactId aspose-pdf. Biblioteket krever Java 11 eller nyere og er fullt MIT-licensiert. For bedriftsfunksjoner og støtte, se Aspose.PDF for Java — Enterprise Product.

Dokumentstruktur og sidehåndtering

  • Document API: Bruk Document-klassen til å opprette nye PDF-dokumenter. Eksisterende dokumenter kan nås via Document(filePath) eller Document(stream)-konstruktørene.
  • Sideadministrasjon: Legg til, få tilgang til og endre sider via PageCollection. Hver Page eksponerer MediaBox, CropBox, rotasjon, ressurser og innholdsoperatører.
  • Metadata: Les og skriv dokumentmetadata via DocumentInfo og XmpMetadata.
  • PDF-struktur: Få tilgang til underliggende PDF-objekter via getParser(), getCatalog() og getTrailer().
  • Innebygde filer: Administrer samlinger av innebygde filer med getEmbeddedFiles().

Vanlige dokumentbehandlingsscenarioer

  • PDF-generering: Bygg dokumenter programmatisk ved å opprette en Document og populere sider.
  • Dokumentanalyse: Få tilgang til eksisterende filer for metadatainspeksjon eller opplisting av skjemafelter.
  • Sidehåndtering: Endre størrelse, rotere eller omorganisere sider ved hjelp av PdfFileEditor og Page API.
  • Batch workflows: Anvend konsistente transformasjoner på tvers av flere dokumenter i server‑side‑pipelines.

Annotasjoner og skjemafelter

  • Annotasjonshierarki: Den abstrakte Annotation klassen er basen for alle annotasjoner; konkrete typer inkluderer WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation og UnderlineAnnotation.
  • Interaktive skjemaer: Få tilgang til dokumentskjemaet via Document.getForm() for å oppregne eller opprette ButtonField, CheckboxField og RadioButtonField forekomster.
  • Widget-utseende: Styr visuelle egenskaper via AppearanceCharacteristics — kantfarge, bakgrunn, rotasjon og bildetekster.
  • Skjema redigering: Bruk FormEditor og FormElement for manipulering av skjema på høyere nivå.

Dokumentgjennomgang og samarbeid

  • Markup annotations: Legg til utheving, understrekning eller fritekst-annotasjoner i dokumenter for gjennomgangsarbeidsflyter.
  • Interaktive skjemaer: Lag utfyllbare dokumenter med radioknapper, avmerkingsbokser og trykknapper for datainnsamling.
  • Form data extraction: Les innsendte skjemafelverdier for server‑side‑pipelines.
  • Arkivoverensstemmelse: Valider og fiks dokumenter for langtidsarkivering ved hjelp av ActionRules og ActionFixes.

Sikkerhet og innholdsoperasjoner

  • AES-kryptering: Krypter og dekrypter data byte-arrays med AESCipher ved bruk av CBC-modus (AESCipher.encrypt(key, data) og AESCipher.decrypt(key, data)).
  • Artefaktadministrasjon: Identifiser og manipuler topptekster, bunntekster, vannmerker og bakgrunnsbilder via Artifact og ArtifactCollection API-er.
  • Innholdsendring: Juster sideinnholdslayout med PdfFileEditor.resizeContents() og ContentsResizeParameters.
  • Compliance validation: Valider annotasjons- og handlingsregler mot PDF/A-standarder ved hjelp av AnnotationRules og ActionRules.

Brukstilfeller for dokumentsikkerhet

  • Krypterte nyttelaster: Bruk AESCipher for å kryptere dataseksjoner som er innebygd i dokumentstrømmer.
  • Dokumentbeskyttelse: Bruk sikkerhetsinnstillinger for tilgangskontroll i samsvarsarbeidsflyter.
  • Vannmerking: Oppdag og håndter Artifact objekter som representerer vannmerker og sidepynt.
  • Arkivoverensstemmelse: Kjør ActionFixes og AnnotationFixes for å få eksisterende dokumenter til å oppfylle PDF/A-1b arkivstandarder.

Opprett et dokument med widget-annotering

Opprett et nytt dokument, legg til en side, og fest 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");
}

Opprett et skjema med radioknapper

Legg til en radioknappgruppe i et dokumentskjema og velg en verdi 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");
}

Inspiser dokumentets sidestørrelser

Få tilgang til et eksisterende dokument og les media box‑dimensjonene på den første siden.

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

Støtte og læringsressurser

 Norsk