Baca Barcode dari PDF di Jawa

PDF dokumen seperti faktur, kuitansi, atau laporan dapat berisi informasi yang disandikan dalam bentuk kode batang. Kami dapat mendeteksi, mengidentifikasi, dan membaca kode batang yang disematkan ke dalam dokumen PDF secara terprogram. Pada artikel ini, kita akan mempelajari cara membaca barcode dari dokumen PDF menggunakan Java. Selain itu, kita akan belajar cara mengekstrak gambar barcode dari dokumen PDF di Java.

Artikel ini akan mencakup topik-topik berikut:

  1. Java API untuk Membaca Barcode dari PDF
  2. Baca Barcode dari PDF
  3. Konversi PDF ke Gambar dan Baca Kode Batang
  4. Ekstrak dan Baca Kode Batang dari PDF
  5. Baca Barcode dari PDF menggunakan PngDevice
  6. Temukan dan Baca Gambar Barcode dari PDF

Java API untuk Membaca Barcode dari PDF

Untuk membaca kode batang dari dokumen PDF, kami akan mengikuti prosedur dua langkah. Pertama, kita akan menggunakan API Aspose.PDF for Java untuk memuat dokumen PDF dan merender halamannya menjadi gambar raster. Setelah itu, kita akan membaca barcode dari gambar yang dirender menggunakan Aspose.BarCode for Java API.

Harap unduh JAR API atau tambahkan konfigurasi pom.xml berikut dalam aplikasi Java berbasis Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-barcode</artifactId>
    <version>22.8</version>
</dependency>
    
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>22.8</version>
</dependency>

Baca Barcode dari PDF menggunakan Java

Aspose.PDF API menyediakan kelas Document yang merepresentasikan dokumen PDF. Metode convertToPNGMemoryStream() dari API merender halaman PDF menjadi aliran gambar dalam larik byte[]. Aspose.BarCode API menyediakan kelas BarCodeReader yang memungkinkan kita melakukan operasi readBarCodes untuk mendeteksi kode batang. Kelas BarCodeResult menyimpan informasi kode batang yang terdeteksi seperti jenis kode batang, teks kode, wilayah, dan parameter lainnya.

Kami dapat membaca gambar kode batang yang disematkan di salah satu halaman dokumen PDF dengan mengikuti langkah-langkah di bawah ini:

  1. Pertama, muat dokumen PDF menggunakan kelas Document.
  2. Selanjutnya, lewati semua halaman dan render ke aliran.
  3. Kemudian, buat instance kelas BarCodeReader dengan objek aliran.
  4. Setelah itu, panggil metode readBarCodes() untuk mendapatkan objek BarCodeResult.
  5. Terakhir, tunjukkan informasi kode batang.

Contoh kode berikut menunjukkan cara membaca kode batang dari dokumen PDF menggunakan Java.

// Contoh kode ini menunjukkan cara membaca kode batang dari dokumen PDF menggunakan Java.
// Jalan menuju dokumen
String file = "C:\\Files\\BarCode\\sample-PDF-with-Barcodes.pdf";

// Muat dokumen PDF
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);

// Lanjutkan semua halaman PDF mulai dari halaman 1
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
    // Render halaman PDF ke aliran
    byte[] ms = pdfDoc.getPages().get_Item(i).convertToPNGMemoryStream();
    InputStream stream = new ByteArrayInputStream(ms);

    // Kenali barcode dari aliran halaman
    BarCodeReader reader = new BarCodeReader(stream);

    // Tunjukkan hasil
 for (BarCodeResult result : reader.readBarCodes()) {
    System.out.println("CodeText: " + result.getCodeText());
    System.out.println("Symbology type: " + result.getCodeType());
    System.out.println(("-------------------------------"));
  }
}
CodeText: Aspose.Barcode Pdf417 Example
Symbology type: Pdf417
-------------------------------
CodeText: Aspose.Barcode QR Example
Symbology type: QR
-------------------------------
CodeText: Aspose.Barcode DataMatrix Example
Symbology type: DataMatrix

Silakan unduh dokumen PDF input dengan Barcode yang digunakan dalam posting blog ini.

Konversi PDF ke Gambar dan Baca Barcode menggunakan Java

Kita juga bisa membaca barcode dari dokumen PDF dengan mengubah halaman PDF menjadi gambar. Kelas PdfConverter API memungkinkan konversi setiap halaman file PDF menjadi gambar. Setelah itu, kita akan membaca informasi barcode dari gambar hasil konversi.

Kita dapat membaca kode batang dari halaman PDF yang dikonversi dengan mengikuti langkah-langkah di bawah ini:

  1. Pertama, muat dokumen PDF menggunakan kelas Document.
  2. Selanjutnya, buat instance dari kelas PdfConverter.
  3. Secara opsional, setel opsi rendering menggunakan setBarcodeOptimization().
  4. Kemudian, atur resolusi gambar.
  5. Selanjutnya, tentukan rentang halaman untuk dirender menjadi gambar menggunakan setStartPage() dan setEndPage().
  6. Kemudian, panggil metode doConvert() untuk merender halaman yang dipilih menjadi gambar.
  7. Selanjutnya, simpan gambar dalam satu lingkaran.
  8. Kemudian, buat instance kelas BarCodeReader dengan jalur file gambar yang disimpan.
  9. Setelah itu, panggil metode readBarCodes() untuk mendapatkan objek BarCodeResult.
  10. Terakhir, tampilkan informasi barcode.

Contoh kode berikut menunjukkan cara mengonversi halaman PDF menjadi gambar dan membaca kode batang menggunakan Java.

// Contoh kode berikut menunjukkan cara mengonversi halaman PDF menjadi gambar dengan PDF Converter dan membaca kode batang.
// Jalan menuju dokumen
String folderPath = "C:\\Files\\BarCode\\";

// Jalur file masukan
String file = folderPath + "sample-PDF-with-Barcodes.pdf";

// Muat dokumen PDF
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);

// Inisialisasi PdfConvertor
com.aspose.pdf.facades.PdfConverter pdfConverter = new com.aspose.pdf.facades.PdfConverter(pdfDoc);

// Tetapkan pengoptimalan kode batang
pdfConverter.getRenderingOptions().setBarcodeOptimization(true);

// Tetapkan resolusi halaman
// 300 dpi adalah resolusi standar
pdfConverter.setResolution(new com.aspose.pdf.devices.Resolution(300));

// Atur semua halaman untuk dirender menjadi gambar
pdfConverter.setStartPage(1); //starts from page 1
pdfConverter.setEndPage(pdfConverter.getDocument().getPages().size());

// Render halaman yang dipilih ke dalam gambar
pdfConverter.doConvert();
int imageCount = 1;

while (pdfConverter.hasNextImage())
{
    // Render halaman saat ini ke gambar
    String strBarCodeImage = folderPath + imageCount + ".jpg";
    pdfConverter.getNextImage(strBarCodeImage);

    // Kenali kode batang dari gambar halaman yang dirender
    BarCodeReader reader = new BarCodeReader(strBarCodeImage);

    // Tunjukkan hasil
   for (BarCodeResult result : reader.readBarCodes()) {
    System.out.println("CodeText: " + result.getCodeText());
    System.out.println("Symbology type: " + result.getCodeType());
    System.out.println(("-------------------------------"));
  }
}

Ekstrak dan Baca Barcode dari PDF menggunakan Java

Demikian pula, kami juga dapat mengenali gambar kode batang yang disematkan pada halaman PDF menggunakan kelas PdfExtractor. Ini memungkinkan mengekstraksi gambar dari PDF, dan kemudian kami akan membaca informasi kode batang dari gambar yang diekstraksi.

Kita dapat membaca barcode dari gambar yang diekstraksi dengan mengikuti langkah-langkah berikut:

  1. Pertama, buat instance dari kelas PdfExtractor.
  2. Selanjutnya, ikat dokumen PDF masukan menggunakan metode bindPdf().
  3. Kemudian, atur rentang halaman untuk ekstraksi gambar.
  4. Selanjutnya, panggil metode extractImage() untuk mengekstrak gambar.
  5. Kemudian, simpan gambar dalam satu lingkaran.
  6. Selanjutnya, buat instance kelas BarCodeReader dengan jalur gambar.
  7. Setelah itu, panggil metode readBarCodes() untuk mendapatkan objek BarCodeResult.
  8. Terakhir, tunjukkan informasi kode batang.

Contoh kode berikut menunjukkan cara mengekstrak dan membaca gambar barcode dari dokumen PDF menggunakan Java.

// Contoh kode berikut menunjukkan cara mengonversi halaman PDF menjadi gambar dengan PdfExtractor dan membaca kode batang.
// Jalan menuju dokumen
String folderPath = "C:\\Files\\BarCode\\";

// Berkas Masukan
String file = folderPath + "sample-PDF-with-Barcodes.pdf";

// Ikat dokumen PDF
com.aspose.pdf.facades.PdfExtractor pdfExtractor = new com.aspose.pdf.facades.PdfExtractor();
pdfExtractor.bindPdf(file);

// Tetapkan rentang halaman untuk ekstraksi gambar
pdfExtractor.setStartPage(1);
pdfExtractor.setEndPage(3);

// Ekstrak gambar
pdfExtractor.extractImage();

int imageCount = 1;

// Simpan gambar untuk streaming dalam satu lingkaran
while (pdfExtractor.hasNextImage())
{
  // Menyimpan gambar
  String strBarCodeImage = folderPath + imageCount + ".jpg";
  pdfExtractor.getNextImage(strBarCodeImage);

  // Kenali barcode dari gambar
  BarCodeReader reader = new BarCodeReader(strBarCodeImage);

 for (BarCodeResult result : reader.readBarCodes()) {
    System.out.println("CodeText: " + result.getCodeText());
    System.out.println("Symbology type: " + result.getCodeType());
    System.out.println(("-------------------------------"));
  }
}

Baca Barcode dari PDF menggunakan PngDevice di Java

Kita juga dapat membaca kode batang dengan mengonversi halaman dokumen PDF menjadi gambar PNG menggunakan kelas API PngDevice. Ini menyediakan metode process(Page page, OutputStream output) yang mengonversi halaman menjadi PNG dan menyimpannya di aliran output. Metode processToBufferedImage(Halaman halaman) kelas ini mengonversi halaman menjadi BufferedImage.

Kita dapat membaca kode batang dari halaman PDF yang dikonversi sebagai gambar PNG dengan mengikuti langkah-langkah di bawah ini:

  1. Pertama, muat dokumen PDF menggunakan kelas Document.
  2. Selanjutnya, buat instance dari kelas PngDevice.
  3. Kemudian, ulangi semua halaman dan panggil metode processToBufferedImage() untuk merender gambar.
  4. Selanjutnya, buat instance kelas BarCodeReader dengan objek BufferedImage.
  5. Setelah itu, panggil metode readBarCodes() untuk mendapatkan objek BarCodeResult.
  6. Terakhir, tunjukkan informasi kode batang.

Contoh kode berikut menunjukkan cara mengonversi halaman PDF dan membaca kode batang menggunakan Java.

// Contoh kode berikut menunjukkan cara mengonversi halaman PDF menjadi gambar dengan PngDevice dan membaca kode batang.
// Jalan menuju dokumen
String file = "C:\\Files\\BarCode\\sample-PDF-with-Barcodes.pdf";

// Muat dokumen PDF
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);

// Buat perangkat PNG dengan resolusi standar 300 dpi
com.aspose.pdf.devices.PngDevice pngDevice = new com.aspose.pdf.devices.PngDevice(new com.aspose.pdf.devices.Resolution(300));

// Lanjutkan semua halaman PDF mulai dari halaman 1
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
    // Render halaman PDF ke gambar buffer
    BufferedImage img = pngDevice.processToBufferedImage(pdfDoc.getPages().get_Item(i));

    // Kenali kode batang dari gambar halaman yang dirender
    BarCodeReader reader = new BarCodeReader(img);

    // Tunjukkan hasil
   for (BarCodeResult result : reader.readBarCodes()) {
    System.out.println("CodeText: " + result.getCodeText());
    System.out.println("Symbology type: " + result.getCodeType());
    System.out.println(("-------------------------------"));
  }
}

Temukan dan Baca Gambar Barcode dari PDF menggunakan Java

Kita dapat menemukan dan mengekstrak gambar kode batang dari dokumen PDF menggunakan kelas ImagePlacementAbsorber. Itu melakukan pencarian penggunaan gambar dan menyediakan akses ke hasil pencarian melalui koleksi ImagePlacements. Metode ini memungkinkan mengenali barcode dengan resolusi asli. Satu-satunya kelemahan adalah mungkin tidak mengenali format vektor dengan benar.

Kami dapat menemukan dan membaca kode batang dari dokumen PDF dengan mengikuti langkah-langkah berikut:

  1. Pertama, muat dokumen PDF menggunakan kelas Document.
  2. Selanjutnya, buat instance kelas ImagePlacementAbsorber.
  3. Kemudian, panggil metode visit() untuk setiap halaman dalam satu lingkaran.
  4. Selanjutnya, ulangi semua gambar yang ditemukan di koleksi ImagePlacements.
  5. Kemudian, simpan gambar ke aliran memori.
  6. Selanjutnya, buat instance kelas BarCodeReader dengan objek stream.
  7. Setelah itu, panggil metode readBarCodes() untuk mendapatkan objek BarCodeResult.
  8. Terakhir, tunjukkan informasi kode batang.

Contoh kode berikut menunjukkan cara menemukan dan membaca gambar barcode dari PDF menggunakan Java.

// Contoh kode ini menunjukkan cara membaca kode batang dari dokumen PDF menggunakan ImagePlacementAbsorber.
// Jalan menuju dokumen
String file = "C:\\Files\\BarCode\\sample-PDF-with-Barcodes.pdf";

// Muat dokumen PDF
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);

// Inisialisasi ImagePlacementAbsorber
com.aspose.pdf.ImagePlacementAbsorber imagePlacementAbsorber = new com.aspose.pdf.ImagePlacementAbsorber();

// Proses semua halaman PDF dalam dokumen mulai dari halaman 1
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
    // Kunjungi halaman buat ekstraktor gambar
    imagePlacementAbsorber.visit(pdfDoc.getPages().get_Item(i));

    // Ekstrak semua gambar dari halaman PDF
   for (com.aspose.pdf.ImagePlacement imagePlacement : imagePlacementAbsorber.getImagePlacements()) {
      // Render halaman PDF ke aliran
      byte[] ms = pdfDoc.getPages().get_Item(i).convertToPNGMemoryStream();
      InputStream stream = new ByteArrayInputStream(ms);

      // Kenali barcode dari aliran halaman
      BarCodeReader reader = new BarCodeReader(stream);

      // Tunjukkan hasil
     for (BarCodeResult result : reader.readBarCodes()) {
        System.out.println("CodeText: " + result.getCodeText());
        System.out.println("Symbology type: " + result.getCodeType());
        System.out.println(("-------------------------------"));
      }
    }
}

Dapatkan Lisensi Gratis

Anda bisa mendapatkan lisensi sementara gratis untuk mencoba perpustakaan tanpa batasan evaluasi.

Kesimpulan

Pada artikel ini, kita telah belajar

  • cara mendeteksi dan membaca barcode dari dokumen PDF;
  • berbagai metode untuk mengekstrak gambar dari dokumen PDF;
  • untuk memecahkan kode kode batang tertanam di Jawa.

Selain membaca kode batang dari PDF di Java, Anda dapat mempelajari lebih lanjut tentang API menggunakan dokumentasi untuk Aspose.BarCode dan dokumentasi untuk Aspose.PDF. Jika ada ambiguitas, jangan ragu untuk menghubungi kami di forum dukungan gratis.

Lihat juga