Fasadlagret i Aspose.PDF FOSS för Java

Aspose.PDF FOSS för Java inkluderar ett fasadlager — en uppsättning hög nivå, uppgiftsfokuserade klasser som tillhandahåller riktade operationer på PDF-dokument utan att behöva navigera i hela PDF-objektmodellen. Varje fasadklass följer samma mönster: binda ett dokument, utföra operationer, spara resultatet.

Alla fasadklasser finns i paketet org.aspose.pdf.facades:

import org.aspose.pdf.facades.*;

PdfAnnotationEditor: Platta ut och ta bort annotationer

PdfAnnotationEditor tillhandahåller operationer för att hantera annotationer i bulk: platta ut dem i sidinnehållet, ta bort alla annotationer, eller ta bort specifika annotationstyper efter namn.

try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
    editor.bindPdf("annotated.pdf");
    // Flatten all annotations into the page content stream
    editor.flattenAnnotations();
    editor.save("flat.pdf");
}

Den deleteAnnotations(annotationType) overloaden accepterar en annotation-typsträng såsom "Highlight" eller "Widget" för att bara ta bort annotationer av den typen. countAnnotations() returnerar det totala antalet annotationer på alla sidor.

PdfBookmarkEditor: Skapa och ta bort bokmärken

PdfBookmarkEditor hanterar PDF-strukturträdet (bokmärken). Det exponerar metoder för att skapa nya bokmärken med createBookmarks(), radera alla bokmärken med deleteBookmarks() och ta bort bokmärken efter titel med deleteBookmarkByTitle().

try (PdfBookmarkEditor bookmarkEditor = new PdfBookmarkEditor()) {
    bookmarkEditor.bindPdf("input.pdf");
    // Remove all bookmarks from the document
    bookmarkEditor.deleteBookmarks();
    bookmarkEditor.save("no-bookmarks.pdf");
}

Den bindPdf(document)-överladdningen accepterar ett Document-objekt direkt, vilket möjliggör användning i pipelines där dokumentet redan är inläst i minnet.

PdfContentEditor: Textutbyte

PdfContentEditor stödjer riktad textutbyte i PDF-innehållsströmmar. replaceText(searchText, replaceText) ersätter alla förekomster av en sträng i hela dokumentet; replaceText(searchText, pageNumber, replaceText) begränsar ersättningen till en enskild sida.

try (PdfContentEditor contentEditor = new PdfContentEditor()) {
    contentEditor.bindPdf("template.pdf");
    contentEditor.replaceText("{{CompanyName}}", "Acme Corp");
    contentEditor.save("output.pdf");
}

TextReplaceOptions styr om ersättningen ska bevara originalteckensnittet och storleken eller ärva textegenskaper från omgivande innehåll. getStamps(pageNumber) returnerar StampInfo-objekt för alla stämplar på en sida, och deleteStampById() tar bort en specifik stämpel efter dess identifierare.

PdfFileSecurity: Kryptering och behörigheter

PdfFileSecurity hanterar dokumentnivåns säkerhet inklusive kryptering, dekryptering och åtkomstbehörigheter. Konstruktorvarianterna accepterar filsökvägar, strömmar eller en befintlig Document-instans tillsammans med målfilen.

DocumentPrivilege representerar åtkomstbehörigheterna för det krypterade dokumentet. Använd DocumentPrivilege.getForbidAll() för att neka alla användaråtgärder, eller DocumentPrivilege.getAllowAll() för att bevilja full åtkomst.

try (PdfFileSecurity security = new PdfFileSecurity("input.pdf", "secured.pdf")) {
    DocumentPrivilege privilege = DocumentPrivilege.getForbidAll();
    privilege.setAllowPrint(true);
    security.encryptFile("userPass", "ownerPass", privilege, KeySize.x256);
}

decryptFile(ownerPassword) tar bort kryptering när ägarlösenordet är känt. Algorithm-enumerationen tillhandahåller RC4 och AES algoritmfamiljer; KeySize specificerar nyckellängden.

PdfFileStamp: Lägga till stämplar och sidnummer

PdfFileStamp lägger till text- och bildstämplar på PDF-sidor och kan automatiskt generera formaterade sidnummer. Stämplar placeras med koordinatbaserad placering på varje sida.

try (PdfFileStamp stamp = new PdfFileStamp("input.pdf", "stamped.pdf")) {
    // Add formatted page numbers to all pages
    stamp.addPageNumber("Page #", PageNumberingStyle.NumeralsArabic,
        0, 0, 0, 20);
}

PdfExtractor: Extrahering av text och bild

PdfExtractor tillhandahåller ett pull-baserat API för att extrahera text och bilder från PDF-dokument. Efter att ha bundit ett dokument, anropa extractText() för att utlösa textextraktion, och iterera sedan med hasNextPageText() och getNextPageText():

try (PdfExtractor extractor = new PdfExtractor()) {
    extractor.bindPdf("document.pdf");
    extractor.extractText();
    while (extractor.hasNextPageText()) {
        String pageText = extractor.getNextPageText();
        // Collect extracted page content
    }
}

För bildextraktion utlöser extractImage() extraktionen och hasNextImage() / getNextImage(outputStream) itererar över de extraherade bilderna. Metoderna getPassword() och setPassword() stödjer krypterade dokument.

Komma igång

Lägg till Maven-beroendet:

<dependency>
  <groupId>org.aspose</groupId>
  <artifactId>aspose-pdf-foss</artifactId>
  <version>26.8.0</version>
</dependency>

Alla fasadklasser kräver Java 11 eller senare. Aspose.PDF FOSS för Java är licensierad under MIT och finns tillgänglig på https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.

Relaterade resurser