Cómo trabajar con las facadas PDF en Java
Anotaciones Flat
Flatte todas las anotaciones en el flujo de contenido de la página para que ya no sean editables o removibles como objetos separados.Este es un paso común antes de imprimir o archivar un documento:
try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
editor.bindPdf("annotated.pdf");
editor.flattenAnnotations();
editor.save("flat.pdf");
}Remover los Bookmarks
Los marcadores de la página (también llamados los marcados) son las entradas del árbol de navegación que se ven en las páginas del lector PDF:
try (PdfBookmarkEditor editor = new PdfBookmarkEditor()) {
editor.bindPdf("input.pdf");
editor.deleteBookmarks();
editor.save("no-bookmarks.pdf");
}Substituir texto
Substituir una cinta en todas las páginas de un documento. Esto es útil para rellenar los lugares del modelo antes de distribuir un texto:
try (PdfContentEditor editor = new PdfContentEditor()) {
editor.bindPdf("template.pdf");
editor.replaceText("{{Date}}", "2026-05-24");
editor.save("output.pdf");
}Cripta un documento
Aplique AES-256 cifrado con permiso de acceso utilizando PdfFileSecurity.El DocumentPrivilege.getForbidAll() Precisa disminuye todas las operaciones; permiso individual Puede ser reactivado con métodos de setter:
try (PdfFileSecurity security = new PdfFileSecurity("input.pdf", "secured.pdf")) {
DocumentPrivilege priv = DocumentPrivilege.getForbidAll();
priv.setAllowPrint(true);
security.encryptFile("user", "owner", priv, KeySize.x256);
}Término de extracción
Iterate sobre página texto utilizando PdfExtractor.llamadas extractText() Primero para procesar todas las páginas, luego recoger el texto de cada página con getNextPageText():
try (PdfExtractor extractor = new PdfExtractor()) {
extractor.bindPdf("document.pdf");
extractor.extractText();
while (extractor.hasNextPageText()) {
String text = extractor.getNextPageText();
System.out.println(text);
}
}