ชั้นหน้าตึกใน Aspose. PDF FOSS สําหรับ Java

Aspose.PDF FOSS for Java includes a facades layer — a set of high-level, task-focused คลาสที่ให้การปฏิบัติตาม PDF โดยไม่จําเป็นต้องเดินทาง ของรูปแบบของ PDF object ที่เต็ม ทุกคลาสหน้าต่างตามลักษณะเดียวกัน: บันทึก a เอกสาร, ทําการปฏิบัติ, จัดเก็บผล.

ทุกชั้นหน้าต่างอยู่ในตารางการเรียนรู้ของคณะกรรมการ org.aspose.pdf.facades แพ็คเกจ:

import org.aspose.pdf.facades.*;

PdfAnnotationEditor: แอ็นโนเทชั่นที่เรียบและลบ

PdfAnnotationEditor ให้การปฏิบัติในการจัดการคําอธิบายเป็นจํานวนมาก: การทําให้มันเรียบลงในเนื้อหาหน้า, ลบคําบรรยายทั้งหมด หรือลบ ประเภทการแสดงความคิดเห็นเฉพาะตามชื่อ.

try (PdfAnnotationEditor editor = new PdfAnnotationEditor()) {
    editor.bindPdf("annotated.pdf");
    // Flatten all annotations into the page content stream
    editor.flattenAnnotations();
    editor.save("flat.pdf");
}

การ deleteAnnotations(annotationType) การขยายความรับการแสดงคําประกอบรหัส เช่น "Highlight" หรือ "Widget" การลบคําบรรยายเพียงชนิดนั้นเท่านั้น. countAnnotations() กลับจํานวนคําบรรยายทั้งหมดในทุกหน้า.

PdfBookmarkEditor: สร้างและลบตราหมาย

PdfBookmarkEditor จัดการต้นแบบ PDF (ตราลักษณ์) มันเปิดเผยวิธีการ สําหรับการสร้างลักษณะใหม่กับ createBookmarks(), ลบลักษณะของตราจารย์ทั้งหมดด้วย deleteBookmarks(), และการลบตราลักษณ์ตามหัวข้อด้วย deleteBookmarkByTitle().

try (PdfBookmarkEditor bookmarkEditor = new PdfBookmarkEditor()) {
    bookmarkEditor.bindPdf("input.pdf");
    // Remove all bookmarks from the document
    bookmarkEditor.deleteBookmarks();
    bookmarkEditor.save("no-bookmarks.pdf");
}

การ bindPdf(document) อัตราการอุดตันรับ a Document เปิดตรงกันเอง ทําให้สามารถ การใช้ใน pipelines ที่เอกสารถูกอัตราการใส่เข้าที่ความจําแล้ว.

PdfContentEditor: การทดแทนข้อความ

PdfContentEditor รองรับการทดแทนข้อความที่เป้าหมายภายในสตรีมเนื้อหา PDF. replaceText(searchText, replaceText) แทนการเกิดของ string ทั้งหมด ในเอกสารทั้งหมด; replaceText(searchText, pageNumber, replaceText) จํากัดการทดแทนเป็นหน้าเดียว.

try (PdfContentEditor contentEditor = new PdfContentEditor()) {
    contentEditor.bindPdf("template.pdf");
    contentEditor.replaceText("{{CompanyName}}", "Acme Corp");
    contentEditor.save("output.pdf");
}

TextReplaceOptions ตรวจสอบว่าการเปลี่ยนจะอนุรักษ์ต้นฉบับหรือไม่ แฟนต์และขนาด หรือทายาทคุณสมบัติของข้อความจากเนื้อหารอบๆ. getStamps(pageNumber) การคืนสินค้า StampInfo อัตราสําหรับตราทั้งหมดบนหน้าหนึ่ง, และ deleteStampById() ยกเลี่ยงการติดตราที่ระบุโดยตัวจําแนกของมัน.

PdfFileSecurity: การเข้ารหัสและอนุญาต

PdfFileSecurity การจัดการความปลอดภัยระดับเอกสาร รวมถึงการเข้ารหัส, การปลดรบ, และอนุญาตการเข้าถึง ตัวแปรคอนสตรั๊กเตอร์ยอมรับเส้นทางไฟล์, ธารสารหรือ การมีอยู่ Document ตัวอย่างข้างเคียงกับจุดหมายออก.

DocumentPrivilege แสดงถึงอนุญาตการเข้าสู่เอกสารที่ถูกรหัสไว้. การใช้งาน DocumentPrivilege.getForbidAll() การปฏิเสธการปฏิบัติของผู้ใช้ทั้งหมด หรือ DocumentPrivilege.getAllowAll() ให้การเข้าถึงอย่างเต็มที่.

try (PdfFileSecurity security = new PdfFileSecurity("input.pdf", "secured.pdf")) {
    DocumentPrivilege privilege = DocumentPrivilege.getForbidAll();
    privilege.setAllowPrint(true);
    security.encryptFile("userPass", "ownerPass", privilege, KeySize.x256);
}

decryptFile(ownerPassword) ยกเลิกการเข้ารหัสเมื่อรู้คําแปลของเจ้าของ. การ Algorithm enum ให้บริการ RC4 และ AES ครอบครัวอัลโกริตม์; KeySize ระบุความยาวของกุญแจ.

PdfFileStamp: เพิ่ม Stamps และเลขหน้า

PdfFileStamp เพิ่มเท็กซ์และภาพตราไปยังหน้า PDF และสามารถอัตโนมัติ สร้างเลขหน้าที่ถูกจัดรูปแบบ การวางตําแหน่งตราโดยใช้การตั้งจุดประสาน การวางที่บนแต่ละหน้า.

try (PdfFileStamp stamp = new PdfFileStamp("input.pdf", "stamped.pdf")) {
    // Add formatted page numbers to all pages
    stamp.addPageNumber("Page #", PageNumberingStyle.NumeralsArabic,
        0, 0, 0, 20);
}

PdfExtractor: การสกัดรูปและข้อความ

PdfExtractor ให้ API ที่ใช้ pull เพื่อการสกัดข้อความและภาพจาก เอกสาร PDF หลังจากที่ผูกเอกลักษณ์แล้ว โทรหา extractText() การกระตุ้นข้อความ การสกัดออก, แล้วซ้ํากับ hasNextPageText() และ getNextPageText():

try (PdfExtractor extractor = new PdfExtractor()) {
    extractor.bindPdf("document.pdf");
    extractor.extractText();
    while (extractor.hasNextPageText()) {
        String pageText = extractor.getNextPageText();
        // Collect extracted page content
    }
}

สําหรับการสกัดภาพ, extractImage() ทําให้การสกัดออก และ hasNextImage() / getNextImage(outputStream) กลับมาใช้รูปภาพที่ถอดออกมา. การ getPassword() และ setPassword() วิธีการรองรับเอกสารที่เข้ารหัส.

เริ่มต้น

เพิ่มความสัมพันธ์ของ Maven:

<dependency>
  <groupId>org.aspose</groupId>
  <artifactId>aspose-pdf</artifactId>
  <version>0.1.0-alpha</version>
</dependency>

ทุกคลาสหน้าต่างต้องการ Java 11 หรือหลังกว่า. Aspose. PDF FOSS สําหรับJava คือ มีใบอนุญาตจาก MIT และมีให้บริการที่ https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.

แหล่งข้อมูลที่เกี่ยวข้อง