Die Facades-Schicht in Aspose.PDF FOSS für Java

Aspose.PDF FOSS für Java beinhaltet eine Facades-Schicht — ein Satz von hochrangigen, auf Aufgaben fokussierten Klassen, die zielgerichtete Operationen auf PDF-Dokumenten bereitstellen, ohne dass eine Navigation durch das vollständige PDF-Objektmodell erforderlich ist. Jede Facade-Klasse folgt demselben Muster: ein Dokument binden, Operationen ausführen, das Ergebnis speichern.

Alle Facade-Klassen befinden sich im Paket org.aspose.pdf.facades:

import org.aspose.pdf.facades.*;

PdfAnnotationEditor: Flachlegen und Anmerkungen entfernen

PdfAnnotationEditor bietet Operationen zur massenhaften Verwaltung von Anmerkungen: Sie in den Seiteninhalt flachlegen, alle Anmerkungen entfernen oder bestimmte Anmerkungstypen nach Namen entfernen.

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

Die deleteAnnotations(annotationType)-Überladung akzeptiert einen Anmerkungstyp-String wie "Highlight" oder "Widget", um nur Anmerkungen dieses Typs zu entfernen. countAnnotations() gibt die Gesamtzahl der Anmerkungen über alle Seiten zurück.

PdfBookmarkEditor: Lesezeichen erstellen und löschen

PdfBookmarkEditor verwaltet den PDF-Umrissbaum (Lesezeichen). Es stellt Methoden zum Erstellen neuer Lesezeichen mit createBookmarks(), zum Löschen aller Lesezeichen mit deleteBookmarks() und zum Entfernen von Lesezeichen nach Titel mit deleteBookmarkByTitle() bereit.

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

Die bindPdf(document)-Überladung akzeptiert ein Document-Objekt direkt, wodurch die Verwendung in Pipelines ermöglicht wird, in denen das Dokument bereits im Speicher geladen ist.

PdfContentEditor: Text-Ersetzung

PdfContentEditor unterstützt zielgerichtete Text-Ersetzung in PDF-Inhaltsströmen. replaceText(searchText, replaceText) ersetzt alle Vorkommen einer Zeichenkette im gesamten Dokument; replaceText(searchText, pageNumber, replaceText) begrenzt die Ersetzung auf eine einzelne Seite.

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

TextReplaceOptions steuert, ob die Ersetzung die ursprüngliche Schriftart und Größe beibehalten oder die Textattribute des umgebenden Inhalts erben soll. getStamps(pageNumber) gibt StampInfo-Objekte für alle Stempel auf einer Seite zurück, und deleteStampById() entfernt einen bestimmten Stempel anhand seiner Kennung.

PdfFileSecurity: Verschlüsselung und Berechtigungen

PdfFileSecurity verwaltet die Sicherheitsebene des Dokuments, einschließlich Verschlüsselung, Entschlüsselung und Zugriffsberechtigungen. Die Konstruktorvarianten akzeptieren Dateipfade, Streams oder eine bestehende Document-Instanz zusammen mit dem Ausgabeziel.

DocumentPrivilege stellt die Zugriffsberechtigungen für das verschlüsselte Dokument dar. Verwenden Sie DocumentPrivilege.getForbidAll(), um alle Benutzeroperationen zu verweigern, oder DocumentPrivilege.getAllowAll(), um vollen Zugriff zu gewähren.

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) entfernt die Verschlüsselung, wenn das Eigentümer-Passwort bekannt ist. Das Algorithm-Enum liefert die Algorithmusfamilien RC4 und AES; KeySize gibt die Schlüssellänge an.

PdfFileStamp: Hinzufügen von Stempeln und Seitenzahlen

PdfFileStamp fügt Text- und Bildstempel zu PDF-Seiten hinzu und kann automatisch formatierte Seitenzahlen erzeugen. Stempel werden mittels koordinatenbasierter Platzierung auf jeder Seite positioniert.

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: Text- und Bildextraktion

PdfExtractor stellt ein pull-basiertes API zum Extrahieren von Text und Bildern aus PDF-Dokumenten bereit. Nach dem Binden eines Dokuments rufen Sie extractText() auf, um die Textextraktion auszulösen, und iterieren anschließend mit hasNextPageText() und 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 die Bildextraktion löst extractImage() die Extraktion aus und hasNextImage() / getNextImage(outputStream) iterieren über die extrahierten Bilder. Die Methoden getPassword() und setPassword() unterstützen verschlüsselte Dokumente.

Erste Schritte

Fügen Sie die Maven-Abhängigkeit hinzu:

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

Alle Fassade-Klassen benötigen Java 11 oder höher. Aspose.PDF FOSS für Java ist MIT-lizenziert und unter https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java verfügbar.

Verwandte Ressourcen