Introduction
Aspose.PDF FOSS for Java is an MIT-licensed Java library for creating and manipulating เอกสาร PDF. มีให้บริการใน GitHub ภายใต้ลิซเซนส์ MIT และไม่ต้องการปุญแจ API หรือสัญญาการค้า ห้องสมุดเปิดเผย 527 หมวด ครอบคลุม PDF ทั้งหมด การกําหนดจากโครงสร้างเอกสาร ถึงคําอธิบาย, แนวข้อสัมพันธ์, การแสดงหน้า, และการทํางานทางระบบคอร์ปต์.
ห้องสมุดถูกสร้างขึ้นรอบ ๆ Document คลาสที่เป็นจุดเข้าศูนย์กลางสําหรับการใช้งานของเครื่องบิน การสร้างเอกสารใหม่, เข้าสู่หน้าผ่านเว็บไซต์ PDF PageCollection, การอ่านเมตาเดท้าผ่าน DocumentInfo,หรือการเดินท่องทางในตารางโดยผ่าน getCatalog() และ getTrailer() เริ่มด้วย A Document อย่างเช่น.
เริ่มต้นอย่างรวดเร็ว
เพิ่มการพึ่งพา Maven กับของคุณ pom.xml:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>0.1.0-alpha</version>
</dependency>
ห้องสมุดจัดประเภท API ของสาธารณะทั้งหมดเป็น 3 แพ็คเกจ เพิ่มการประกาศแพคเกชนี้เข้ากับไฟล์แหล่ง Java ที่ใช้ API:
// Core API — Document, Page, Annotation, Form, etc.
org.aspose.pdf.*
// Annotation subclasses
org.aspose.pdf.annotations.*
// Facade classes — PdfFileEditor, PdfAnnotationEditor, etc.
org.aspose.pdf.facades.*
Aspose.PDF FOSS for Java requires Java 11 or later. The source code and issue tracker มีให้บริการที่: https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.
เริ่มต้น
การสร้างและบันทึกเอกสารขั้นต่ําเพื่อตรวจสอบการตั้งค่า:
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
doc.save("output.pdf");
System.out.println("Pages: " + pages.getCount());
}
การ Document class constructor ยอมรับเส้นทางไฟล์หรือสตรีมเพื่อเข้าถึงที่มีอยู่ ไฟล์ หรือสามารถเรียกได้โดยไม่มีการแสดงผล เพื่อสร้างเอกสารเปล่า หน้าที่จัดการ ผ่าน PageCollection, สามารถเข้าถึงได้ผ่านทาง Document.getPages().ทุกคน Page เปิดเผยความเป็นส่วนของมัน การประกอบรูปแบบทาง getMediaBox(), getCropBox(),และ getRotate(),และให้บริการถึง สารพยากร, ตัวประกอบการเนื้อหา และคําบรรยาย.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
// page.getMediaBox() -> Rectangle with width/height
// page.getAnnotations() -> AnnotationCollection
doc.save("output.pdf");
}
การ PdfFileEditor กลุ่มให้บริการ concatenate() สําหรับการรวมเอกสารหลายชิ้น และ resizeContents() มี ContentsResizeParameters สําหรับปรับการจัดสรรเนื้อหาภายใน ขอบหน้าที่มีอยู่.
Annotations
Aspose.PDF FOSS for Java implements the full PDF annotation hierarchy rooted at the สาระสรุป Annotation ประเภทของคําอธิบายที่ชัดเจน ได้แก่ WidgetAnnotation สําหรับ การควบคุมแบบ, FreeTextAnnotation สําหรับการโทรหาข้อความ, HighlightAnnotation และ UnderlineAnnotation สําหรับการปรับค่าตัว และ CircleAnnotation และ CaretAnnotation สําหรับ การบันทึกภาพ.
การแสดงคําละครั้งจะเกี่ยวข้องกับการเขียนข้อความที่ว่า “A” Page และ a Rectangle การกําหนดตําแหน่งของมัน. คุณสมบัติทางสายตาถูกควบคุมผ่าน AppearanceCharacteristics,ซึ่งเปิดเผยว่า setBorder(), setBackground(), setRotate(),และ setCaption() วิธีการ การอธิบาย เพิ่มเข้าหน้าผ่านทาง page.getAnnotations().add(annotation).
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
w.getCharacteristics().setCaption("Submit");
page.getAnnotations().add(w);
doc.save("annotated.pdf");
}
สายฟอร์มที่ใช้ต่อกัน
การ Form กลุ่มที่สามารถเข้าถึงได้ผ่านทาง Document.getForm(), จัดการทุกสนาม AcroForm. ห้องสมุดให้บริการ ButtonField, CheckboxField, RadioButtonField, TextBoxField, ComboBoxField,และ ListBoxField สําหรับการสร้างแบบฟอร์มที่สามารถเติมเต็มได้. FormEditor เป็นการ คลาสหน้าต่างสําหรับการทํางานกับสนามแบบในเอกสารที่ผูกพัน.
กลุ่มปุ่มวิทยุถูกสร้างด้วย RadioButtonField, ที่รับหน้าและสนับสนุน addOption() เพิ่มการเลือกที่สามารถเลือกได้ ซึ่งแต่ละตัวจะเกี่ยวข้องกับ Rectangle สําหรับการมองเห็นของมัน ที่ตั้ง setValue() วิธีการจะเลือกตัวเลือกโดยโปรแกรม.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("answer");
radio.addOption("Yes", new Rectangle(50, 50, 70, 70));
radio.addOption("No", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Yes");
doc.save("form.pdf");
}
ความปลอดภัย: การเข้ารหัส AES
การ AESCipher Class ใช้การเข้ารหัส AES ในโหมด CBC สําหรับการแคปและปลดรบ แอรเรทไบต์ข้อมูลที่ติดอยู่ในเอกสาร PDF. AESCipher.encrypt(key, data) กลับตัวเลข กล่องการใช้งานที่มีความสามารถในการทําความสะดวก AESCipher.decrypt(key, data) ค้นหาคําแปลที่เรียบง่ายเดิม. สําหรับการควบคุมทาง IV อย่างชัดเจน, encryptWithIV(key, iv, plaintext) และ decryptWithIV(key, iv, cipherText) ให้การดําเนินงานที่กําหนดได้.
PDF/A การยืนยันความเป็นไปตาม
ห้องสมุดรวมถึง ActionRules และ ActionFixes สําหรับการตรวจสอบความเป็นไปของ PDF/A และ การแก้ไข. ActionRules.validate() การตรวจสอบการกระทําที่ห้ามในตาราง, หน้า และ รายการวิดจ์ท. ActionFixes ให้วิธีการเช่น removeCatalogAA(), removePageAA(),และ removeWidgetAA() เพื่อแก้ไขคําศัพท์การกระทําที่ไม่เป็นไปตามมาตรฐาน. เช่นเดียวกัน, AnnotationRules และ AnnotationFixes รับรองความเป็นกันของคําบรรยาย.
สิ่ง ของ: หัว, ใบ ต้น และ เครื่องหมายน้ํา
การ Artifact แบบคลาส การตกแต่งหน้า เช่น หัว, ต้นเท้า, น้ํา และ รูปภาพพื้นหลัง. ArtifactCollection, สามารถเข้าถึงผ่านทรัพยากรหน้า, ทําให้สามารถนับจํานวน และการถอดของวัตถุประดิษฐ์. การซ้ําต่อกัน page.getArtifacts() และเรียก ArtifactCollection.delete(artifact) ลบของพิเศษโดยไม่ปรับเปลี่ยน รายการข้อมูลเอกสารโดยตรง.
การทําหน้า
การ BmpDevice class ทําการทําหน้า PDF โดยตรงเป็นไฟล์ภาพ BMP โดยใช้ process(page, outputPath). นี้เป็นประโยชน์สําหรับการสร้างภาพย่อ, การดูดเอกสารก่อนหน้า, หรือระบบการประมวลผลรูปภาพ.