Hur man arbetar med PDF-fasader i Java

Hur man arbetar med PDF-fasader i Java

Platta ut annotationer

Platta ut alla annotationer i sidans innehållsström så att de inte längre är redigerbara eller borttagbara som separata annoteringsobjekt. Detta är ett vanligt steg innan utskrift eller arkivering av ett dokument:

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

Ta bort bokmärken

Ta bort alla kontur-bokmärken från ett dokument. Bokmärken (även kallade konturer) är de navigeringsträdelement som syns i PDF-läsarens sidopaneler:

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

Ersätt text

Ersätt en sträng på alla sidor i ett dokument. Detta är användbart för att fylla i platshållare i en mall innan dokumentet distribueras:

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

Kryptera ett dokument

Tillämpa AES-256 kryptering med åtkomsträttigheter med PdfFileSecurity. DocumentPrivilege.getForbidAll()-förinställningen inaktiverar alla operationer; individuella rättigheter kan sedan återaktiveras med settermethodar:

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

Extrahera text

Iterera över sidans text med PdfExtractor. Anropa extractText() först för att behandla alla sidor, och hämta sedan varje sidas text med getNextPageText():

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

Se även

 Svenska