Hoe te werken met PDF Facades in Java

Hoe te werken met PDF Facades in Java

Annotaties flatten

Vlak alle annotaties in de paginacontentstroom zodat ze niet langer bewerkbaar of verwijderbaar zijn als afzonderlijke annotatie-objecten. Dit is een veelvoorkomende stap vóór het afdrukken of archiveren van een document:

try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
    editor.bindPdf("annotated.pdf");
    editor.flattenAnnotations();
    editor.save("flat.pdf");
}

Bladwijzers verwijderen

Verwijder alle outline-bladwijzers uit een document. Bladwijzers (ook wel outlines genoemd) zijn de navigatieboom-items die zichtbaar zijn in de zijbalken van PDF-readers:

try (PdfBookmarkEditor editor = new PdfBookmarkEditor()) {
    editor.bindPdf("input.pdf");
    editor.deleteBookmarks();
    editor.save("no-bookmarks.pdf");
}

Tekst vervangen

Vervang een tekenreeks in alle pagina’s van een document. Dit is handig om sjabloon-plaatsaanduidingen in te vullen vóór het verspreiden van een document:

try (PdfContentEditor editor = new PdfContentEditor()) {
    editor.bindPdf("template.pdf");
    editor.replaceText("{{Date}}", "2026-05-24");
    editor.save("output.pdf");
}

Een document versleutelen

Pas AES-256 encryptie toe met toegangsrechten met behulp van PdfFileSecurity. De DocumentPrivilege.getForbidAll() preset schakelt alle bewerkingen uit; individuele rechten kunnen vervolgens opnieuw worden ingeschakeld met setter-methoden:

try (PdfFileSecurity security = new PdfFileSecurity("input.pdf", "secured.pdf")) {
    DocumentPrivilege priv = DocumentPrivilege.getForbidAll();
    priv.setAllowPrint(true);
    security.encryptFile("user", "owner", priv, KeySize.x256);
}

Tekst extraheren

Itereer over paginatekst met behulp van PdfExtractor. Roep eerst extractText() aan om alle pagina’s te verwerken, en haal vervolgens de tekst van elke pagina op met getNextPageText():

try (PdfExtractor extractor = new PdfExtractor()) {
    extractor.bindPdf("document.pdf");
    extractor.extractText();
    while (extractor.hasNextPageText()) {
        String text = extractor.getNextPageText();
        System.out.println(text);
    }
}

Zie ook

 Nederlands