نحوه کار با PDF Facades در 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);
}
}