Cara Bekerja dengan PDF Facades di Java
Ratakan Anotasi
Ratakan semua anotasi ke dalam aliran konten halaman sehingga mereka tidak lagi dapat diedit atau dihapus sebagai objek anotasi terpisah. Ini adalah langkah umum sebelum mencetak atau mengarsipkan dokumen:
try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
editor.bindPdf("annotated.pdf");
editor.flattenAnnotations();
editor.save("flat.pdf");
}Hapus Bookmark
Hapus semua bookmark outline dari dokumen. Bookmark (juga disebut outline) adalah entri pohon navigasi yang terlihat di bilah sisi pembaca PDF:
try (PdfBookmarkEditor editor = new PdfBookmarkEditor()) {
editor.bindPdf("input.pdf");
editor.deleteBookmarks();
editor.save("no-bookmarks.pdf");
}Ganti Teks
Ganti sebuah string di semua halaman dokumen. Ini berguna untuk mengisi placeholder template sebelum mendistribusikan dokumen:
try (PdfContentEditor editor = new PdfContentEditor()) {
editor.bindPdf("template.pdf");
editor.replaceText("{{Date}}", "2026-05-24");
editor.save("output.pdf");
}Enkripsi Dokumen
Terapkan enkripsi AES-256 dengan izin akses menggunakan PdfFileSecurity. Preset DocumentPrivilege.getForbidAll() menonaktifkan semua operasi; izin individual kemudian dapat diaktifkan kembali dengan metode setter:
try (PdfFileSecurity security = new PdfFileSecurity("input.pdf", "secured.pdf")) {
DocumentPrivilege priv = DocumentPrivilege.getForbidAll();
priv.setAllowPrint(true);
security.encryptFile("user", "owner", priv, KeySize.x256);
}Ekstrak Teks
Iterasi teks halaman menggunakan PdfExtractor. Panggil extractText() terlebih dahulu untuk memproses semua halaman, kemudian ambil teks setiap halaman dengan getNextPageText():
try (PdfExtractor extractor = new PdfExtractor()) {
extractor.bindPdf("document.pdf");
extractor.extractText();
while (extractor.hasNextPageText()) {
String text = extractor.getNextPageText();
System.out.println(text);
}
}