Apache PDFBox: ชุดเครื่องมือ PDF ที่สมบูรณ์สำหรับ Java
ดึงข้อความ จัดการเอกสาร กรอกแบบฟอร์ม และอื่นๆ - ทั้งหมดใน Java ล้วน
Apache PDFBox คืออะไร?
Apache PDFBox เป็นไลบรารี Java แบบโอเพนซอร์สที่ทรงพลัง ออกแบบมาสำหรับการประมวลผล PDF ที่ราบรื่นใน Java ช่วยให้นักพัฒนาสามารถสร้าง แก้ไข และดึงเนื้อหาจากเอกสาร PDF แบบโปรแกรมได้ เป็นหนึ่งในไลบรารี PDF สำหรับ Java ที่ได้รับความนิยมสูงสุด PDFBox เหมาะสำหรับงานต่างๆ เช่น การดึงข้อความจาก PDF การรวมไฟล์ PDF หลายไฟล์ และการเพิ่มลายเซ็นดิจิทัล ทั้งหมดนี้ด้วย API ที่มีน้ำหนักเบาและไม่มีค่าใช้จ่ายด้านลิขสิทธิ์ ไม่ว่าคุณจะต้องการการแยกวิเคราะห์ PDF ใน Java การสร้าง PDF หรือการปฏิบัติตามมาตรฐาน PDF/A ไลบรารีนี้รองรับคุณสมบัติขั้นสูง เช่น การรวม OCR การกรอกแบบฟอร์ม และการแปลง HTML เป็น PDF ด้วยการพึ่งพา Maven ที่พร้อมใช้งาน (เช่น pdfbox-maven) และเอกสารประกอบที่ครอบคลุม PDFBox ช่วยลดความซับซ้อนของเวิร์กโฟลว์ที่ซับซ้อน - ทำให้เหมาะสำหรับแอปพลิเคชันระดับองค์กร การทำให้เอกสารเป็นอัตโนมัติ และการดึงข้อมูล เมื่อเทียบกับทางเลือกอื่นเช่น iText แล้ว Apache PDFBox มีความโดดเด่นในด้านความยืดหยุ่นแบบโอเพนซอร์ส ชุมชนที่ใช้งานอยู่ และความเข้ากันได้ข้ามแพลตฟอร์ม ศึกษาคู่มือ PDFBox ของเราเพื่อดูตัวอย่างโค้ด Java และปลดล็อกศักยภาพเต็มที่ของการจัดการ PDF ใน Java
ข้อได้เปรียบหลักของ PDFBox:
- โซลูชันที่สมบูรณ์: ทั้งความสามารถในการดึงและสร้าง
- Java ล้วน: ไม่มีการพึ่งพาเนทีฟ
- การพัฒนาที่ต่อเนื่อง: สนับสนุนโดย Apache Software Foundation
- คุณสมบัติที่ครอบคลุม: การดึงข้อความ การแยกไฟล์ การรวมไฟล์ การเซ็นชื่อ
- รองรับแบบฟอร์ม: อ่านและกรอกแบบฟอร์ม PDF
เหมาะสำหรับระบบการจัดการเอกสาร การดึงเนื้อหา และการทำให้ PDF เป็นอัตโนมัติ
ทำไมต้องเลือก PDFBox?
- ความเสถียร: มีความมั่นคงตั้งแต่ปี 2002 ด้วยการอัปเดตเป็นประจำ
- ความหลากหลาย: ทั้งความสามารถในการอ่านและเขียน
- รองรับมาตรฐาน: ทำงานกับเอกสาร PDF 1.7 และ PDF/A
- ชุมชน: มีฐานผู้ใช้ขนาดใหญ่และเอกสารประกอบที่ครอบคลุม
- การผสานรวม: ทำงานกับเฟรมเวิร์กทั้งหมดที่ใช้ Java
การติดตั้ง
PDFBox สามารถใช้งานได้ผ่าน Maven Central เพื่อการผสานรวมที่ง่ายดาย:
Maven
org.apache.pdfbox
pdfbox
3.0.0
Gradle
implementation 'org.apache.pdfbox:pdfbox:3.0.0'
ข้อกำหนดของระบบ: Java 8 หรือใหม่กว่า
ตัวอย่างโค้ด
ตัวอย่างการใช้งาน PDFBox ในทางปฏิบัติ:
ตัวอย่างที่ 1: การดึงข้อความพื้นฐานจากเอกสาร PDF ใน Java
ตัวอย่างนี้แสดงวิธีการดึงข้อความจากเอกสาร PDF โดยคงรูปแบบและโครงสร้างไว้ PDFBox มีความสามารถในการดึงข้อความขั้นสูงที่รักษาลำดับการอ่านและจัดการกับเลย์เอาต์ที่ซับซ้อน
ผลลัพธ์ประกอบด้วย:
- เนื้อหาข้อความที่มีโครงสร้าง
- การดึงทีละหน้า
- การรักษารูปแบบพื้นฐาน
ตัวอย่างที่ 2: การสร้างเอกสาร PDF ตั้งแต่เริ่มต้นใน Java
PDFBox เหมาะสำหรับทั้งการอ่านและสร้าง PDF ตัวอย่างนี้แสดงการสร้างเอกสาร PDF ใหม่ด้วยข้อความและการจัดรูปแบบพื้นฐาน
ตัวอย่างที่ 3: การเพิ่มหัวและท้ายกระดาษให้กับหน้า PDF ใน Java
PDFBox ให้การสนับสนุนที่ครอบคลุมสำหรับการเพิ่มหัวและท้ายกระดาษให้กับหน้า PDF จากภายในแอปพลิเคชัน Java ของคุณ ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการทำสิ่งนี้โดยใช้ PDFBox API สำหรับ Java
คุณสมบัติขั้นสูง
PDFBox รองรับการประมวลผล PDF ระดับมืออาชีพ:
- การดึงภาพ: เข้าถึงภาพที่ฝังอยู่:
การดึงภาพ
PDDocument document = PDDocument.load(new File("document.pdf")); for (PDPage page : document.getPages()) { PDResources resources = page.getResources(); for (COSName name : resources.getXObjectNames()) { PDXObject xobject = resources.getXObject(name); if (xobject instanceof PDImageXObject) { BufferedImage image = ((PDImageXObject) xobject).getImage(); // ประมวลผลภาพ } } }
- การแยกเอกสาร: แยก PDF เป็นหลายไฟล์:
การแยก PDF
Splitter splitter = new Splitter(); List
pages = splitter.split(document); for (int i = 0; i < pages.size(); i++) { pages.get(i).save("หน้า-" + (i+1) + ".pdf"); } - PDF ที่เข้ารหัส: จัดการไฟล์ที่ป้องกันด้วยรหัสผ่าน:
PDF ที่เข้ารหัส
String password = "secure123"; FileInputStream fis = new FileInputStream("encrypted.pdf"); PDDocument doc = PDDocument.load(fis, password);
PDFBox vs iText
นี่คือความแตกต่างหลัก 5 ประการระหว่าง PDFBox และ iText:
- สัญญาอนุญาต: PDFBox มีสัญญาอนุญาต Apache (โอเพนซอร์ส) ในขณะที่ iText ต้องการสัญญาอนุญาตเชิงพาณิชย์สำหรับกรณีการใช้งานส่วนใหญ่
- จุดเน้นคุณสมบัติ: PDFBox ให้ความสามารถในการอ่าน/เขียนที่สมดุล ในขณะที่ iText เชี่ยวชาญด้านการสร้าง PDF
- ประสิทธิภาพ: iText โดยทั่วไปจะเร็วกว่าในการสร้างเอกสาร ในขณะที่ PDFBox โดดเด่นในการดึงข้อความ
- ชุมชน: PDFBox มีการนำไปใช้แบบโอเพนซอร์สที่กว้างขึ้น ในขณะที่ iText ให้การสนับสนุนระดับมืออาชีพ
- กรณีการใช้งาน: PDFBox เหมาะสำหรับการวิเคราะห์และการจัดการพื้นฐาน ในขณะที่ iText ดีกว่าสำหรับการสร้าง PDF แบบปริมาณมาก
สรุป
Apache PDFBox ให้การประมวลผล PDF ที่ครอบคลุมสำหรับนักพัฒนา Java เหมาะสำหรับ:
- การดึงเนื้อหา: การสกัดข้อความและข้อมูลจาก PDF
- การทำให้เอกสารเป็นอัตโนมัติ: การสร้างรายงานและแบบฟอร์ม
- การจัดการเอกสาร: การแยก การรวม และการแปลง PDF
- การประมวลผลแบบฟอร์ม: การอ่านและกรอกแบบฟอร์มแบบโต้ตอบ
ด้วยสัญญาอนุญาตแบบโอเพนซอร์สและชุดคุณสมบัติที่ครอบคลุม PDFBox เป็นตัวเลือกหลักสำหรับการประมวลผล PDF ที่ใช้ Java
สินค้าที่คล้ายกัน
- Apache POI XWPF | โอเพ่นซอร์ส Java API เพื่อสร้างและแก้ไขไฟล์ DOCX
- DocX | โอเพ่นซอร์ส .NET API สำหรับสร้างและแก้ไขไฟล์ DOCX
- Docx4J | โอเพ่นซอร์ส Java API เพื่อสร้างและแก้ไขไฟล์ DOC และ DOCX
- ExcelDataReader | โอเพ่นซอร์ส .NET API สำหรับอ่านเอกสาร XLS, XLSX, CSV และสเปรดชีต
- FileFormat.Cells | ตรวจสอบและอัปเดตไฟล์ Excel ด้วย C# .NET