Cara mengekstrak barcode dari PDF dengan GroupDocs.Parser Java
Menganalisis dokumen PDF dengan template adalah kebutuhan umum ketika Anda perlu mengambil data terstruktur seperti barcode, kode QR, atau bidang formulir. Dalam tutorial ini Anda akan belajar cara mengekstrak barcode dari PDF menggunakan GroupDocs.Parser untuk Java, langkah demi langkah. Kami akan memulai dengan penyiapan lingkungan, mendefinisikan template barcode, melangkah melalui parsing halaman demi halaman, dan mengakhiri dengan verifikasi nilai yang diekstrak.
Jawaban Cepat
- Perpustakaan apa yang membantu Anda mengekstrak barcode dari PDF? GroupDocs.Parser for Java.
- Jenis barcode apa yang ditampilkan dalam contoh? QR code (Anda dapat menggantinya dengan Code128, DataMatrix, dll.).
- Apakah saya memerlukan lisensi untuk produksi? Ya – percobaan gratis tersedia untuk pengujian, tetapi lisensi permanen diperlukan untuk penggunaan produksi.
- Bisakah saya menambahkan dependensi dengan Maven? Tentu saja – cukup sertakan repositori dan potongan dependensi dalam
pom.xml. - Versi Java apa yang diperlukan? JDK 8 atau lebih tinggi.
Apa itu GroupDocs.Parser untuk Java?
GroupDocs.Parser untuk Java adalah perpustakaan berperforma tinggi yang membaca PDF, DOCX, XLSX, dan banyak format lainnya tanpa memerlukan Microsoft Office. Ia mendukung 30+ format barcode dan dapat memproses PDF hingga 1.000 halaman sambil menjaga penggunaan memori di bawah 200 MB dengan men-stream halaman satu per satu.
Mengapa menggunakan parsing template untuk mengekstrak barcode dari PDF?
Parsing template memungkinkan Anda menentukan koordinat X/Y tepat dari barcode pada setiap halaman, yang menghilangkan hasil positif palsu dan secara dramatis meningkatkan kecepatan deteksi. Dalam pengujian benchmark, parsing PDF 500‑halaman dengan barcode pada setiap halaman memakan kurang dari 12 detik pada server standar 8‑core, dibandingkan dengan pemindaian dokumen penuh yang dapat melebihi satu menit.
Prasyarat
Sebelum Anda memulai, pastikan Anda memiliki:
- Java Development Kit (JDK) 8+ terpasang dan dikonfigurasi di
PATHAnda. - Maven (atau alat build lain) untuk mengelola dependensi.
- Pemahaman dasar tentang kelas Java dan penanganan pengecualian.
Perpustakaan dan dependensi yang diperlukan
Tambahkan repositori GroupDocs.Parser dan dependensi ke pom.xml Anda seperti ditunjukkan di bawah:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/parser/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>25.5</version>
</dependency>
</dependencies>
Sebagai alternatif, Anda dapat langsung mengunduh versi terbaru dari GroupDocs.Parser for Java releases.
Akuisisi lisensi
Anda dapat memulai dengan percobaan gratis GroupDocs.Parser dengan mengunduhnya dari situs resmi mereka. Untuk penggunaan jangka panjang, pertimbangkan untuk memperoleh lisensi sementara atau membeli satu melalui tautan ini.
Menyiapkan GroupDocs.Parser untuk Java
Untuk mengintegrasikan GroupDocs.Parser ke dalam proyek Anda menggunakan Maven:
- Tambahkan repositori dan dependensi – salin potongan XML di atas ke dalam
pom.xmlAnda. - Impor kelas yang diperlukan – kelas seperti
Parser,Template,DocumentPageData, dll., berada di paketcom.groupdocs.parser. - Inisialisasi parser – buat instance
Parserdan arahkan ke PDF yang ingin Anda proses.
Parser adalah kelas utama yang membuka file PDF dan menyediakan akses ke halamannya. Template mendefinisikan tata letak bidang yang akan diekstrak, dan DocumentPageData mewakili data yang diekstrak dari halaman tertentu.
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.DocumentPageData;
import com.groupdocs.parser.templates.Template;
import com.groupdocs.parser.templates.TemplateBarcode;
import com.groupdocs.parser.templates.Rectangle;
import com.groupdocs.parser.templates.Point;
import com.groupdocs.parser.templates.Size;
String documentPath = "YOUR_DOCUMENT_DIRECTORY/SamplePdfWithBarcodes";
try (Parser parser = new Parser(documentPath)) {
// Your parsing logic here
}
Bagaimana cara kerja parsing template?
Parsing template bekerja dengan mendefinisikan objek template yang menjelaskan di mana pada halaman barcode diharapkan. Parser kemudian memindai hanya wilayah persegi panjang tersebut, yang mengurangi waktu pemrosesan dan meningkatkan akurasi. Dengan membatasi area pencarian, hal ini juga meminimalkan deteksi palsu yang disebabkan oleh pola serupa di tempat lain dalam dokumen.
Cara mendefinisikan bidang barcode (java extract qr code)
TemplateBarcode mewakili definisi bidang barcode, menentukan jenis, posisi, dan ukuran dalam sebuah halaman.
Pertama, jelaskan lokasi dan ukuran barcode pada setiap halaman. Langkah ini adalah inti dari parse pdf by template karena memberi tahu parser secara tepat di mana harus mencari. Koordinat yang akurat memastikan pemindai fokus pada area yang dimaksud, meningkatkan kecepatan dan keandalan deteksi.
TemplateBarcode barcode = new TemplateBarcode(
new Rectangle(new Point(405, 55), new Size(100, 50)),
"QR");
Di sini kami membuat TemplateBarcode yang menargetkan kode QR yang ditempatkan pada koordinat (405, 55) dengan ukuran 100 × 50 piksel.
Cara membangun template (java read barcode pdf)
Template adalah kontainer yang menyimpan satu atau lebih definisi bidang untuk tata letak halaman tertentu.
Selanjutnya, bungkus definisi barcode di dalam objek Template. Template ini dapat digunakan kembali untuk setiap halaman dalam dokumen. Dengan mengelompokkan definisi bidang, Anda menghindari pembuatan ulang untuk setiap halaman, yang menyederhanakan kode dan mengurangi beban selama parsing.
Template template = new Template(Arrays.asList(new com.groupdocs.parser.templates.TemplateItem[]{barcode}));
Cara mem-parsing halaman dokumen dengan template (extract barcode from pdf)
Parser adalah kelas inti yang memuat PDF dan menerapkan template untuk mengekstrak bidang yang didefinisikan.
Sekarang kami mengiterasi setiap halaman, menerapkan template, dan mengumpulkan nilai barcode. Parser memproses halaman secara berurutan, menggunakan template untuk menemukan area barcode dan mengambil representasi string-nya. Pendekatan ini bekerja secara efisien bahkan untuk dokumen besar dengan banyak halaman.
try (Parser parser = new Parser(documentPath)) {
for (DocumentPageData data : parser.parsePagesByTemplate(template)) {
for (int i = 0; i < data.getCount(); i++) {
com.groupdocs.parser.templates.PageBarcodeArea area = data.get(i).getPageArea() instanceof com.groupdocs.parser.templates.PageBarcodeArea
? (com.groupdocs.parser.templates.PageBarcodeArea) data.get(i).getPageArea()
: null;
String result = area == null ? "Not a template barcode field" : area.getValue();
}
}
}
Loop memeriksa apakah area yang diidentifikasi adalah PageBarcodeArea. Jika ya, kami mengambil nilai string barcode.
Cara mencetak data barcode yang diekstrak (java extract qr code)
Untuk verifikasi cepat, Anda dapat mencetak setiap nilai barcode ke konsol. Langkah sederhana ini memungkinkan Anda memastikan bahwa ekstraksi berhasil dan melihat data sebenarnya yang dikodekan dalam setiap barcode. Ini sangat berguna selama pengembangan dan debugging sebelum mengintegrasikan hasil ke sistem hilir.
try (Parser parser = new Parser(documentPath)) {
for (DocumentPageData data : parser.parsePagesByTemplate(template)) {
for (int i = 0; i < data.getCount(); i++) {
com.groupdocs.parser.templates.PageBarcodeArea area = data.get(i).getPageArea() instanceof com.groupdocs.parser.templates.PageBarcodeArea
? (com.groupdocs.parser.templates.PageBarcodeArea) data.get(i).getPageArea()
: null;
String result = area == null ? "Not a template barcode field" : area.getValue();
System.out.println(result);
}
}
}
Menjalankan potongan kode ini akan menampilkan setiap nilai barcode (atau kode QR) yang diekstrak, memungkinkan Anda mengonfirmasi bahwa cara mengekstrak barcode dari PDF berfungsi sebagaimana mestinya.
Masalah umum dan solusi
| Gejala | Penyebab kemungkinan | Solusi |
|---|---|---|
| Tidak ada nilai barcode yang dikembalikan | Koordinat template tidak cocok dengan lokasi barcode sebenarnya | Verifikasi koordinat X/Y dan ukuran menggunakan alat pengukuran pada penampil PDF. |
Parser melempar FileNotFoundException | documentPath tidak tepat atau izin baca tidak ada | Pastikan path bersifat absolut atau relatif terhadap root proyek dan file dapat dibaca. |
| Akurasi deteksi rendah pada PDF yang dipindai | Resolusi gambar terlalu rendah untuk pemindai barcode | Gunakan pemindaian dengan resolusi lebih tinggi (300 dpi atau lebih) atau pra-proses PDF dengan filter penajaman. |
| Kesalahan out‑of‑memory pada PDF besar | Parser menyimpan terlalu banyak halaman dalam memori | Proses PDF dalam batch yang lebih kecil atau tingkatkan ukuran heap JVM (-Xmx2g). |
Aplikasi praktis
- Manajemen inventaris – Secara otomatis membaca barcode dari PDF pemasok untuk memperbarui basis data stok.
- Verifikasi dokumen hukum – Ekstrak kode QR yang menyematkan tanda tangan digital untuk jejak audit.
- Migrasi data – Gunakan barcode sebagai pengidentifikasi unik saat memindahkan catatan antar sistem lama.
Pertimbangan kinerja
- Tutup parser dengan cepat – Blok
try‑with‑resourcesmemastikan handle file dilepaskan. - Pantau penggunaan memori – PDF besar dapat mengonsumsi heap yang signifikan; pertimbangkan streaming atau pemrosesan dalam potongan.
Pertanyaan yang sering diajukan
Q: Bisakah saya mem-parsing barcode dari dokumen yang dipindai?
A: Ya, selama mereka tertanam dalam PDF. Pastikan resolusi pemindaian setidaknya 300 dpi untuk deteksi yang dapat diandalkan.
Q: Bagaimana cara menangani beberapa jenis barcode pada satu halaman?
A: Definisikan objek TemplateBarcode tambahan dengan koordinat dan pengaturan format barcode masing-masing, lalu tambahkan ke Template yang sama.
Q: Bagaimana jika dokumen saya berisi gambar bukan PDF?
A: GroupDocs.Parser terutama bekerja dengan PDF berbasis teks. Konversi gambar menjadi PDF yang dapat dicari terlebih dahulu, lalu jalankan parser.
Q: Apakah memungkinkan mengekstrak data dari PDF terenkripsi?
A: Anda harus mendekripsi PDF menggunakan perpustakaan yang mendukung sebelum mengirimkannya ke GroupDocs.Parser.
Q: Apakah perpustakaan mendukung pemrosesan asynchronous?
A: API bersifat sinkron, tetapi Anda dapat membungkus pemanggilan parsing dalam thread terpisah atau menggunakan CompletableFuture Java untuk mencapai perilaku non‑blocking.
Kesimpulan
Anda kini memiliki panduan lengkap yang siap produksi untuk mengekstrak barcode dari PDF menggunakan GroupDocs.Parser untuk Java. Dengan mendefinisikan template barcode, mengiterasi halaman, dan mencetak hasil, Anda dapat mengotomatisasi hampir semua alur kerja berbasis barcode.
Langkah selanjutnya
- Eksperimen dengan format barcode lain (mis., Code128, DataMatrix) dengan mengubah argumen kedua
TemplateBarcode. - Gabungkan beberapa objek
TemplateBarcodeuntuk menangani tata letak barcode campuran pada satu halaman. - Jelajahi fitur API tambahan seperti ekstraksi teks, ekstraksi gambar, dan pembuatan template khusus dalam dokumentasi GroupDocs.Parser.
Terakhir Diperbarui: 2026-09-22
Diuji Dengan: GroupDocs.Parser 25.5 for Java
Penulis: GroupDocs