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

Aspose.PDF FOSS för Java

Skapa och manipulera PDF-dokument från Java — med annoteringar, formulärfält, sidmanipulation och PDF/A-efterlevnad. MIT-licensierad.

Gratis MIT-licensierat Java bibliotek för PDF-skapande och manipulation

Aspose.PDF FOSS för Java är ett MIT-licensierat Java bibliotek för att skapa och arbeta med PDF-dokument. Det tillhandahåller en omfattande Document klass som den centrala ingångspunkten, tillsammans med full täckning av annotationer, interaktiva formulärfält, sidmanipulation, metadata och PDF/A-efterlevnadsvalidering.

Biblioteket exponerar 527 klasser som täcker hela PDF-specifikationen: dokumentstruktur via Document, Page och PageCollection; annotationer genom Annotation-hierarkin (inklusive WidgetAnnotation, FreeTextAnnotation och HighlightAnnotation); interaktiva formulär med Form, ButtonField, CheckboxField och RadioButtonField; sidrendering via BmpDevice; och PDF/A-efterlevnadskontroll genom ActionRules och ActionFixes. Kryptering tillhandahålls via AESCipher i CBC-läge.

Lägg till Aspose.PDF FOSS i ditt Maven-projekt med groupId org.aspose och artifactId aspose-pdf. Biblioteket kräver Java 11 eller senare och är fullt MIT-licensierat. För företagsfunktioner och support, se Aspose.PDF for Java — Enterprise Product.

Dokumentstruktur och sidhantering

  • Dokument-API: Använd klassen Document för att skapa nya PDF-dokument. Befintliga dokument kan nås via Document(filePath) eller Document(stream) konstruktorer.
  • Sidhantering: Lägg till, få åtkomst till och ändra sidor via PageCollection. Varje Page exponerar MediaBox, CropBox, rotation, resurser och innehållsoperatorer.
  • Metadata: Läs och skriv dokumentmetadata via DocumentInfo och XmpMetadata.
  • PDF-struktur: Åtkomst till underliggande PDF-objekt via getParser(), getCatalog() och getTrailer().
  • Inbäddade filer: Hantera inbäddade filsamlingar med getEmbeddedFiles().

Vanliga Dokumentbehandlingsscenarier

  • PDF generation: Bygg dokument programatiskt genom att skapa en Document och populera sidor.
  • Dokumentanalys: Åtkomst till befintliga filer för inspektion av metadata eller uppräkning av formulärfält.
  • Sidhantering: Ändra storlek, rotera eller omordna sidor med PdfFileEditor och Page API:n.
  • Batcharbetsflöden: Tillämpa konsekventa transformationer över flera dokument i server‑sidiga pipelines.

Annoteringar och formulärfält

  • Annotationshierarki: Den abstrakta Annotation-klassen är basen för alla annotationer; konkreta typer inkluderar WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation och UnderlineAnnotation.
  • Interaktiva formulär: Åtkomst till dokumentformuläret via Document.getForm() för att räkna upp eller skapa ButtonField, CheckboxField och RadioButtonField instanser.
  • Widgetutseende: Styr visuella egenskaper via AppearanceCharacteristics — kantfärg, bakgrund, rotation och bildtexter.
  • Form editing: Använd FormEditor och FormElement för manipulation av formulär på högre nivå.

Dokumentgranskning och Samarbete

  • Markup annotations: Lägg till markerings-, understryknings- eller fritextanteckningar i dokument för granskningsarbetsflöden.
  • Interaktiva formulär: Skapa ifyllbara dokument med radioknappar, kryssrutor och tryckknappar för datainsamling.
  • Formulärdataextraktion: Läs in inskickade formulärfältvärden för server‑sidiga pipelines.
  • Arkivöverensstämmelse: Validera och reparera dokument för långsiktig arkivering med ActionRules och ActionFixes.

Säkerhet och Innehållsoperationer

  • AES‑kryptering: Kryptera och dekryptera data byte‑arrayer med AESCipher med CBC‑läge (AESCipher.encrypt(key, data) och AESCipher.decrypt(key, data)).
  • Artefaktshantering: Identifiera och manipulera sidhuvuden, sidfötter, vattenstämplar och bakgrundsbilder via Artifact och ArtifactCollection API:er.
  • Content resize: Justera sidans innehållslayout med PdfFileEditor.resizeContents() och ContentsResizeParameters.
  • Efterlevnadsvalidering: Validera annoterings- och åtgärdsregler mot PDF/A-standarder med AnnotationRules och ActionRules.

Användningsfall för dokumentsäkerhet

  • Krypterade nyttolaster: Använd AESCipher för att kryptera datasektioner som är inbäddade i dokumentströmmar.
  • Dokumentskydd: Tilldela säkerhetsinställningar för åtkomstkontroll i efterlevnadsarbetsflöden.
  • Watermarking: Detektera och hantera Artifact objekt som representerar vattenstämplar och siddekorationer.
  • Arkivkompatibilitet: Kör ActionFixes och AnnotationFixes för att få befintliga dokument att uppfylla PDF/A-1b-arkivstandarder.

Skapa ett dokument med widget‑annotation

Skapa ett nytt dokument, lägg till en sida och bifoga 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");
}

Skapa ett formulär med radioknappar

Lägg till en radioknappgrupp i ett dokumentformulär och välj ett värde programmässigt.

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

Inspektera dokumentets sidimensioner

Öppna ett befintligt dokument och läs media box-dimensionerna för den första sidan.

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öd och Lärande Resurser

 Svenska