Jak pracovat s PDF fasádami v Java

Jak pracovat s PDF fasádami v Java

Zploštit anotace

Zploštěte všechny anotace do streamu obsahu stránky, aby již nebyly editovatelné ani odstraňitelné jako samostatné objekty anotací. Jedná se o běžný krok před tiskem nebo archivací dokumentu:

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

Odstranit záložky

Smazat všechny záložky osnovy z dokumentu. Záložky (také nazývané osnovy) jsou položky navigačního stromu viditelné v postranních panelech PDF čtečky:

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

Nahradit text

Nahradit řetězec na všech stránkách dokumentu. To je užitečné pro vyplnění zástupných znaků šablony před distribucí dokumentu:

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

Šifrovat dokument

Použijte šifrování AES-256 s přístupovými oprávněními pomocí PdfFileSecurity. Předvolba DocumentPrivilege.getForbidAll() zakáže všechny operace; individuální oprávnění lze poté znovu povolit pomocí metod nastavení:

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

Extrahovat text

Iterujte přes text stránky pomocí PdfExtractor. Nejprve zavolejte extractText() pro zpracování všech stránek, poté načtěte text každé stránky pomocí getNextPageText():

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

Viz také:

 Čeština