Apache PDFBox: Toolkit PDF Lengkap untuk Java
Ekstrak teks, kendalikan dokumen, isi borang dan banyak lagi - semuanya dalam Java tulen
Apa itu Apache PDFBox?
Apache PDFBox ialah pustaka Java sumber terbuka berkuasa yang direka untuk pemprosesan PDF lancar dalam Java, membolehkan pembangun membuat, mengedit dan mengekstrak kandungan daripada dokumen PDF secara pengaturcaraan. Sebagai salah satu pustaka PDF Java paling popular, PDFBox unggul dalam tugas seperti mengekstrak teks daripada PDF, menggabungkan berbilang fail PDF dan menambah tandatangan digital, semuanya dengan API ringan dan kos lesen sifar. Sama ada anda memerlukan penghuraian PDF dalam Java, penjanaan PDF atau pematuhan PDF/A, pustaka ini menyokong ciri lanjutan seperti integrasi OCR, pengisian borang dan penukaran HTML-ke-PDF. Dengan kebergantungan sedia Maven (contohnya pdfbox-maven) dan dokumentasi menyeluruh, PDFBox memudahkan aliran kerja kompleks - menjadikannya ideal untuk aplikasi perusahaan, automasi dokumen dan pengekstrakan data. Berbanding alternatif seperti iText, Apache PDFBox menonjol dengan fleksibiliti sumber terbuka, komuniti aktif dan keserasian pelbagai platform. Terokai tutorial PDFBox kami untuk melihat contoh kod Java dan buka potensi penuh pengendalian PDF dalam Java.
Kelebihan utama PDFBox:
- Penyelesaian lengkap: Kemampuan pengekstrakan dan penciptaan
- Java tulen: Tiada kebergantungan asli
- Pembangunan aktif: Disokong oleh Apache Software Foundation
- Ciri menyeluruh: Pengekstrakan teks, pemisahan, penggabungan, penandatanganan
- Sokongan borang: Baca dan isi borang PDF
Sesuai untuk sistem pengurusan dokumen, pengekstrakan kandungan dan automasi PDF.
Mengapa Memilih PDFBox?
- Kematangan: Stabil sejak 2002 dengan kemas kini berkala
- Keserbagunaan: Kemampuan membaca dan menulis
- Sokongan piawaian: Mengendalikan dokumen PDF 1.7 dan PDF/A
- Komuniti: Asas pengguna besar dan dokumentasi luas
- Integrasi: Berfungsi dengan semua rangka kerja berasaskan Java
Pemasangan
PDFBox tersedia melalui Maven Central untuk integrasi mudah:
Maven
org.apache.pdfbox
pdfbox
3.0.0
Gradle
implementation 'org.apache.pdfbox:pdfbox:3.0.0'
Keperluan Sistem: Java 8 atau lebih baru
Contoh Kod
Contoh praktikal kemampuan PDFBox:
Contoh 1: Pengekstrakan Teks Asas dari Dokumen PDF dalam Java
Contoh ini menunjukkan cara mengekstrak teks dari dokumen PDF sambil mengekalkan pemformatan dan struktur. PDFBox menyediakan kemampuan pengekstrakan teks lanjutan yang mengekalkan susunan bacaan dan mengendalikan susun atur kompleks.
Output termasuk:
- Kandungan teks berstruktur
- Pengekstrakan halaman demi halaman
- Pengekalan pemformatan asas
Contoh 2: Penciptaan Dokumen PDF dari Awal dalam Java
PDFBox cemerlang dalam kedua-dua membaca dan mencipta PDF. Contoh ini menunjukkan penjanaan dokumen PDF baru dengan teks dan pemformatan asas.
Contoh 3: Menambah Header dan Footer ke Halaman PDF dalam Java
PDFBox menyediakan sokongan menyeluruh untuk menambah header dan footer ke halaman PDF dari dalam aplikasi Java anda. Contoh kod berikut menunjukkan cara mencapainya menggunakan PDFBox API untuk Java.
Ciri Lanjutan
PDFBox menyokong pemprosesan PDF profesional:
- Pengekstrakan imej: Akses imej tersemat:
Pengekstrakan Imej
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(); // Proses imej } } }
- Pemisahan dokumen: Bahagikan PDF kepada berbilang fail:
Pemisahan PDF
Splitter splitter = new Splitter(); List
pages = splitter.split(document); for (int i = 0; i < pages.size(); i++) { pages.get(i).save("halaman-" + (i+1) + ".pdf"); } - PDF disulitkan: Mengendalikan fail dilindungi kata laluan:
PDF Disulitkan
String password = "secure123"; FileInputStream fis = new FileInputStream("encrypted.pdf"); PDDocument doc = PDDocument.load(fis, password);
PDFBox vs iText
Berikut 5 perbezaan utama antara PDFBox dan iText:
- Lesen: PDFBox berlesen Apache (sumber terbuka), manakala iText memerlukan lesen komersial untuk kebanyakan kes penggunaan
- Fokus ciri: PDFBox menyediakan kemampuan baca/tulis seimbang, manakala iText mengkhusus dalam penjanaan PDF
- Prestasi: iText umumnya lebih pantas untuk penciptaan dokumen, manakala PDFBox unggul dalam pengekstrakan teks
- Komuniti: PDFBox mempunyai penerimaan sumber terbuka lebih luas, manakala iText menawarkan sokongan profesional
- Kes penggunaan: PDFBox sesuai untuk analisis dan manipulasi asas, manakala iText lebih baik untuk penjanaan PDF volum tinggi
Kesimpulan
Apache PDFBox menyediakan pemprosesan PDF menyeluruh untuk pembangun Java. Sesuai untuk:
- Pengekstrakan kandungan: Mengeluarkan teks dan data dari PDF
- Automasi dokumen: Menjana laporan dan borang
- Pengurusan dokumen: Memisahkan, menggabungkan dan mengubah PDF
- Pemprosesan borang: Membaca dan mengisi borang interaktif
Dengan lesen sumber terbuka dan set ciri menyeluruh, PDFBox ialah pilihan utama untuk pemprosesan PDF berasaskan Java.
Produk Serupa
- Apache POI XWPF | Open Source Java API untuk Mencipta & Mengubah suai fail DOCX
- DocX | Open Source .NET API untuk Mencipta & Mengubah suai fail DOCX
- Docx4J | Open Source Java API untuk Mencipta & Mengubah suai fail DOC dan DOCX
- ExcelDataReader | Open Source .NET API untuk membaca dokumen XLS, XLSX, CSV dan Spreadsheet
- FileFormat.Cells | Cerate dan Kemas kini fail Excel dengan C# .NET