Como trabalhar com PDF Facades em Java

Como trabalhar com PDF Facades em Java

Anotativas planas

Aplanar todas as anotações no fluxo de conteúdo da página para que elas não sejam mais editáveis ou removíveis como objetos separados de anotación. Este é um passo comum antes de imprimir ou arquivar um documento:

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

Remover marcadores

Apagar todos os marcadores de contorno de um documento. Os marcados (também chamados de outlines) são as entradas da árvore de navegação visíveis nas barras laterais do leitor PDF:

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

Substituição de texto

Substitua uma cadeia em todas as páginas de um documento. Isto é útil para preencher os marcadores de espaço do modelo antes de distribuir um documentos:

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

Criptografar um documento

Aplicar a criptografia AES-256 com permissões de acesso usando o código-fonte . PdfFileSecurity.O . DocumentPrivilege.getForbidAll() Preset desativa todas as operações; permissões individuais pode ser reativado com métodos de definição:

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

Textos extraídos

Iterar sobre o texto da página usando PdfExtractor.- Ligue. extractText() primeiro a processar todas as páginas, em seguida, recuperar o texto de cada página com getNextPageText():

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

Ver também:

 Português