Les façades couches en Aspose.PDF FOSS pour Java

Aspose.PDF FOSS for Java includes a facades layer — a set of high-level, task-focused classes qui fournissent des opérations ciblées sur les documents PDF sans nécessiter la navigation de la totalité du modèle d’objet PDF. Chaque classe facade suit le même pattern: relire un effectuer des opérations, sauver le résultat.

Toutes les classes de la facade résident dans le org.aspose.pdf.facades Le paquet :

import org.aspose.pdf.facades.*;

PdfAnnotationEditor: Flatten et supprimer les annonces

PdfAnnotationEditor Il fournit des opérations pour gérer les annotations en gros : les flatter dans le contenu de la page, supprimer toutes les notes ou enlever Type de note par nom.

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

Le deleteAnnotations(annotationType) Le surcharge accepte une string de type d’annonce Comme comme "Highlight" ou "Widget" Il ne faut enlever que des notes de ce type. countAnnotations() Il remet le nombre total d’annotations sur toutes les pages.

PdfBookmarkEditor: Créer et supprimer les notes de livre

PdfBookmarkEditor gère l’arbre de livraison PDF (marques). il expose les méthodes Pour créer de nouveaux livres avec createBookmarks(),Supprimer tous les livres avec deleteBookmarks(),- Supprimer les notes par titre avec deleteBookmarkByTitle().

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

Le bindPdf(document) La surcharge accepte un Document objectif, permettant de utilisation dans les pipelines où le document est déjà chargé dans la mémoire.

PdfContentEditor : remplacement de texte

PdfContentEditor Il soutient la remplacement ciblée du texte dans les flux de contenu PDF. replaceText(searchText, replaceText) remplacera toutes les événements d’une chaîne dans tout le document ; replaceText(searchText, pageNumber, replaceText) Limiter le remplacement à une seule page.

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

TextReplaceOptions Vérifier si le remplacement doit conserver l’original. caractères et la taille ou les propriétés de texte héritées du contenu environnant. getStamps(pageNumber) Retourner StampInfo - les objets pour tous les étiquettes sur une page, et deleteStampById() Il supprime un signe spécifique par son identifiant.

PdfFileSecurity: Créditation et autorisations

PdfFileSecurity gère la sécurité au niveau du document, y compris le cryptage, la décryption, Les variantes de constructeur acceptent les voies de fichier, les courants ou Une existante Document de l’instant à côté du destinataire.

DocumentPrivilege Il représente les autorisations d’accès pour le document chiffré. Utiliser DocumentPrivilege.getForbidAll() d’interdire toutes les opérations de l’utilisateur, ou DocumentPrivilege.getAllowAll() Pour accéder pleinement.

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) Il supprime la cryptage lorsque le mot de passe du propriétaire est connu. Le Algorithm Enum fournit RC4 et AES Les algorithmes de famille ; KeySize Il détermine la longueur clé.

PdfFileStamp : ajouter des stams et des numéros de page

PdfFileStamp Ajouter des étiquettes de texte et d’image à des pages PDF et peut automatiquement générer des numéros de page formats. les étiquettes sont positionnées en utilisant des coordonnées basées sur la Placement sur chaque page.

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

Extracteur PDF : Text et extraction d’image

PdfExtractor fournit une API à la base de pull pour extraire du texte et des images Documents PDF. Après avoir lié un document, appelez extractText() Pour déclencher le texte l’extraction, puis iteration avec hasNextPageText() et getNextPageText():

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

Pour l’extraction d’image, extractImage() déclenche l’extraction et hasNextImage() / getNextImage(outputStream) et les images extraites. Le getPassword() et setPassword() Les méthodes de support des documents cryptés.

Pour commencer

Ajouter la dépendance Maven :

<dependency>
  <groupId>org.aspose</groupId>
  <artifactId>aspose-pdf</artifactId>
  <version>0.1.0-alpha</version>
</dependency>

Toutes les classes facade nécessitent Java 11 ou plus tard. Aspose.PDF FOSS pour Java est Licencé et disponible à https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.

Ressources associées