Як працювати з PDF-фасадами на Java

Як працювати з PDF-фасадами на Java

Плоські замітки

Розрізняйте всі анотації в потоку змісту сторінки, щоб їх більше не можна було редагувати або видаляти як окремі об’єкти. Це поширений крок перед друкуванням чи архівуванням документа:

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

Видалення закладки

Вилучити всі очеркові закладки з документа. Очерковини (також називаються обрисами) - це записи навигаційного дерева, які помітні в бокових панелях читача PDF:

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

Замінити текст

Замінити струнку на всіх сторінках документа. Це корисно для заповнення закладкових резервоарів перед розповсюдженням документу:

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

Шифруйте документ

Використовуйте шифрування AES-256 з дозволами доступу, використовуючи PdfFileSecurity.- Я знаю. DocumentPrivilege.getForbidAll() Напередзазначення вимкнює всі операції; індивідуальні права потім може бути знову включено методами setter:

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

Витяг тексту

Ітерація тексту на сторінці з використанням PdfExtractor.Подзвони. extractText() перше обробляти всі сторінки, потім відшукати текст кожної сторінці з getNextPageText():

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

See Also

 Українська