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