Apache PDFBox: Toolkit PDF Lengkap untuk Java
Ekstrak teks, manipulasi dokumen, isi formulir dan lebih banyak lagi - semuanya dalam Java murni
Apa itu Apache PDFBox?
Apache PDFBox adalah pustaka Java open-source yang powerful dirancang untuk pemrosesan PDF yang mulus di Java, memungkinkan developer untuk membuat, mengedit, dan mengekstrak konten dari dokumen PDF secara terprogram. Sebagai salah satu pustaka PDF Java paling populer, PDFBox unggul dalam tugas seperti mengekstrak teks dari PDF, menggabungkan beberapa file PDF, dan menambahkan tanda tangan digital, semuanya dengan API yang ringan dan tanpa biaya lisensi. Baik Anda membutuhkan parsing PDF di Java, pembuatan PDF, atau kepatuhan PDF/A, pustaka ini mendukung fitur canggih seperti integrasi OCR, pengisian formulir, dan konversi HTML-ke-PDF. Dengan dependensi siap Maven (misalnya pdfbox-maven) dan dokumentasi yang luas, PDFBox menyederhanakan alur kerja kompleks - menjadikannya ideal untuk aplikasi enterprise, otomatisasi dokumen, dan ekstraksi data. Dibandingkan dengan alternatif seperti iText, Apache PDFBox menonjol karena fleksibilitas open-source, komunitas aktif, dan kompatibilitas lintas platform. Pelajari tutorial PDFBox kami untuk mengeksplorasi contoh kode Java dan buka potensi penuh manipulasi PDF di Java.
Keunggulan utama PDFBox:
- Solusi lengkap: Kemampuan ekstraksi dan pembuatan
- Java murni: Tanpa dependensi native
- Pengembangan aktif: Didukung oleh Apache Software Foundation
- Fitur komprehensif: Ekstraksi teks, pemisahan, penggabungan, penandatanganan
- Dukungan formulir: Baca dan isi formulir PDF
Ideal untuk sistem manajemen dokumen, ekstraksi konten, dan otomatisasi PDF.
Mengapa Memilih PDFBox?
- Kematangan: Stabil sejak 2002 dengan pembaruan rutin
- Kemampuan serbaguna: Kemampuan baca dan tulis
- Dukungan standar: Menangani dokumen PDF 1.7 dan PDF/A
- Komunitas: Basis pengguna besar dan dokumentasi ekstensif
- Integrasi: Bekerja dengan semua framework berbasis Java
Instalasi
PDFBox tersedia via Maven Central untuk integrasi mudah:
Maven
org.apache.pdfbox
pdfbox
3.0.0
Gradle
implementation 'org.apache.pdfbox:pdfbox:3.0.0'
Persyaratan Sistem: Java 8 atau lebih baru
Contoh Kode
Contoh praktis kemampuan PDFBox:
Contoh 1: Ekstraksi Teks Dasar dari Dokumen PDF di Java
Contoh ini menunjukkan cara mengekstrak teks dari dokumen PDF sambil mempertahankan pemformatan dan struktur. PDFBox menyediakan kemampuan stripping teks canggih yang mempertahankan urutan baca dan menangani tata letak kompleks.
Output mencakup:
- Konten teks terstruktur
- Ekstraksi per halaman
- Pemertahanan pemformatan dasar
Contoh 2: Pembuatan Dokumen PDF dari Awal di Java
PDFBox unggul baik dalam membaca maupun membuat PDF. Contoh ini menunjukkan pembuatan dokumen PDF baru dengan teks dan pemformatan dasar.
Contoh 3: Menambahkan Header dan Footer ke Halaman PDF di Java
PDFBox menyediakan dukungan komprehensif untuk menambahkan header dan footer ke halaman PDF dari dalam aplikasi Java Anda. Contoh kode berikut menunjukkan cara mencapainya menggunakan PDFBox API untuk Java.
Fitur Lanjutan
PDFBox mendukung pemrosesan PDF profesional:
- Ekstraksi gambar: Akses gambar yang disematkan:
Ekstraksi Gambar
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 gambar } } }
- Pemisahan dokumen: Bagi PDF menjadi beberapa file:
Pemisahan PDF
Splitter splitter = new Splitter(); List
pages = splitter.split(document); for (int i = 0; i < pages.size(); i++) { pages.get(i).save("page-" + (i+1) + ".pdf"); } - PDF terenkripsi: Tangani file yang dilindungi password:
PDF Terenkripsi
String password = "secure123"; FileInputStream fis = new FileInputStream("encrypted.pdf"); PDDocument doc = PDDocument.load(fis, password);
PDFBox vs iText
Berikut 5 perbedaan utama antara PDFBox dan iText:
- Lisensi: PDFBox berlisensi Apache (open source), sedangkan iText memiliki lisensi komersial untuk sebagian besar kasus penggunaan
- Fokus Fitur: PDFBox menyediakan kemampuan baca/tulis seimbang, sedangkan iText mengkhususkan diri pada pembuatan PDF
- Kinerja: iText umumnya lebih cepat untuk pembuatan dokumen, sedangkan PDFBox unggul dalam ekstraksi teks
- Komunitas: PDFBox memiliki adopsi open source yang lebih luas, sedangkan iText menawarkan dukungan profesional
- Kasus Penggunaan: PDFBox ideal untuk analisis dan manipulasi dasar, sedangkan iText lebih baik untuk pembuatan PDF volume tinggi
Kesimpulan
Apache PDFBox menyediakan pemrosesan PDF komprehensif untuk developer Java. Ideal untuk:
- Ekstraksi konten: Menambang teks dan data dari PDF
- Otomatisasi dokumen: Menghasilkan laporan dan formulir
- Manajemen dokumen: Memisahkan, menggabungkan, dan mentransformasikan PDF
- Pemrosesan formulir: Membaca dan mengisi formulir interaktif
Dengan lisensi open source dan rangkaian fitur yang komprehensif, PDFBox adalah pilihan utama untuk pemrosesan PDF berbasis Java.
Produk Sejenis
- Apache POI XWPF | API Java Open Source untuk Membuat & Memodifikasi file DOCX
- DocX | Open Source .NET API untuk Membuat & Memodifikasi file DOCX
- Docx4J | API Java Open Source untuk Membuat & Memodifikasi file DOC dan DOCX
- ExcelDataReader | Open Source .NET API untuk membaca dokumen XLS, XLSX, CSV dan Spreadsheet
- FileFormat.Cells | Mengelompokkan dan Memperbarui file Excel dengan C# .NET