De Facades-laag in Aspose.PDF FOSS voor Java

Aspose.PDF FOSS voor Java bevat een facades-laag — een set van high-level, taakgerichte klassen die gerichte bewerkingen op PDF-documenten bieden zonder dat navigeren door het volledige PDF-objectmodel nodig is. Elke facade-klasse volgt hetzelfde patroon: een document binden, bewerkingen uitvoeren, het resultaat opslaan.

Alle facade-klassen bevinden zich in het org.aspose.pdf.facades pakket:

import org.aspose.pdf.facades.*;

PdfAnnotationEditor: Flatten en Verwijder Annotaties

PdfAnnotationEditor biedt bewerkingen voor het beheren van annotaties in bulk: flattenen ze in de paginainhoud, alle annotaties verwijderen, of specifieke annotatietypen op naam verwijderen.

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

De deleteAnnotations(annotationType) overload accepteert een annotatietype-string zoals "Highlight" of "Widget" om alleen annotaties van dat type te verwijderen. countAnnotations() geeft het totale aantal annotaties over alle pagina’s terug.

PdfBookmarkEditor: Aanmaken en Verwijderen van Bladwijzers

PdfBookmarkEditor beheert de PDF-structuurboom (bladwijzers). Het biedt methoden om nieuwe bladwijzers te maken met createBookmarks(), alle bladwijzers te verwijderen met deleteBookmarks(), en bladwijzers te verwijderen op titel met deleteBookmarkByTitle().

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

De overload van bindPdf(document) accepteert een Document-object direct, waardoor gebruik in pijplijnen mogelijk is waarin het document al in het geheugen is geladen.

PdfContentEditor: Tekstvervanging

PdfContentEditor ondersteunt gerichte tekstvervanging binnen PDF-inhoudsstromen. replaceText(searchText, replaceText) vervangt alle voorkomens van een tekenreeks in het hele document; replaceText(searchText, pageNumber, replaceText) beperkt de vervanging tot één pagina.

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

TextReplaceOptions bepaalt of de vervanging het oorspronkelijke lettertype en de grootte moet behouden of de tekstkenmerken van de omringende inhoud moet overnemen. getStamps(pageNumber) retourneert StampInfo-objecten voor alle stempels op een pagina, en deleteStampById() verwijdert een specifieke stempel op basis van zijn identifier.

PdfFileSecurity: Versleuteling en Machtigingen

PdfFileSecurity beheert beveiliging op documentniveau, inclusief versleuteling, ontsleuteling en toegangsrechten. De verschillende constructors accepteren bestandspaden, streams of een bestaande Document-instantie naast de uitvoerbestemming.

DocumentPrivilege vertegenwoordigt de toegangsrechten voor het versleutelde document. Gebruik DocumentPrivilege.getForbidAll() om alle gebruikersbewerkingen te weigeren, of DocumentPrivilege.getAllowAll() om volledige toegang te verlenen.

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) verwijdert encryptie wanneer het eigenarenwachtwoord bekend is. De Algorithm enum biedt RC4 en AES algoritme-families; KeySize specificeert de sleutelgrootte.

PdfFileStamp: Stempels en paginanummers toevoegen

PdfFileStamp voegt tekst- en afbeeldingstempels toe aan PDF-pagina’s en kan automatisch opgemaakte paginanummers genereren. Stempels worden gepositioneerd met coördinaatgebaseerde plaatsing op elke pagina.

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: Tekst- en afbeeldingsextractie

PdfExtractor biedt een pull-gebaseerde API voor het extraheren van tekst en afbeeldingen uit PDF-documenten. Na het binden van een document roep je extractText() aan om tekstextractie te activeren, vervolgens itereren met hasNextPageText() en getNextPageText():

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

Voor afbeeldingsextractie triggert extractImage() de extractie en hasNextImage() / getNextImage(outputStream) itereren over de geëxtraheerde afbeeldingen. De getPassword() en setPassword() methoden ondersteunen versleutelde documenten.

Aan de slag

Voeg de Maven-afhankelijkheid toe:

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

Alle façadeklassen vereisen Java 11 of hoger. Aspose.PDF FOSS voor Java is MIT-gelicentieerd en beschikbaar op https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.

Gerelateerde bronnen