Baca Barcode dari PDF di C#

Kami dapat membuat dan menambahkan kode batang ke dokumen PDF seperti yang dijelaskan di postingan sebelumnya. Dalam kasus tertentu, kami mungkin perlu mendeteksi dan membaca kode batang yang disematkan ke dalam dokumen PDF secara terprogram. Ini membantu untuk memecahkan kode informasi yang disematkan dalam bentuk kode batang dan kode QR dari dokumen PDF seperti faktur, kwitansi, atau laporan. Pada artikel ini, kita akan mempelajari cara membaca barcode dari dokumen PDF menggunakan C#.

Artikel tersebut harus mencakup topik-topik berikut:

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

C# API untuk Membaca Barcode dari PDF

Kami akan mengikuti prosedur dua langkah untuk membaca barcode dari dokumen PDF. Pertama, kita akan menggunakan API Aspose.PDF for .NET untuk memuat dokumen PDF, lalu kita akan merender halamannya menjadi gambar raster. Setelah itu, kita akan membaca barcode dari gambar yang dirender menggunakan Aspose.BarCode for .NET API.

Harap unduh DLL dari API atau instal menggunakan NuGet.

PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.PDF

Baca Kode Batang dari PDF menggunakan C#

Kelas Document dari Aspose.PDF API merepresentasikan dokumen PDF. Fungsi ConvertToPNGMemoryStream() API merender halaman PDF menjadi aliran memori PNG. Kelas BarCodeReader dari Aspose.BarCode API 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 memori.
  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 C#.

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

// Muat dokumen PDF
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// Lanjutkan semua halaman PDF mulai dari halaman 1
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // Render halaman PDF ke aliran
    MemoryStream ms = pdfDoc.Pages[i].ConvertToPNGMemoryStream();
    ms.Position = 0;

    // Kenali kode batang dari gambar halaman yang dirender
    BarCodeReader reader = new BarCodeReader(ms);
    
    // Tunjukkan hasil
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine("Codetext found: " + result.CodeText);
        Console.WriteLine("Symbology: " + result.CodeType);
        Console.WriteLine("-------------------------------");
    }
}
Codetext found: Aspose.Barcode Pdf417 Example
Symbology: Pdf417
-------------------------------
Codetext found: Aspose.Barcode QR Example
Symbology: QR
-------------------------------
Codetext found: Aspose.Barcode DataMatrix Example
Symbology: DataMatrix
-------------------------------

Silakan unduh dokumen PDF masukan dengan Kode Batang yang digunakan dalam entri blog ini.

Konversi PDF ke Gambar dan Baca Kode Batang menggunakan C#

Kita dapat membaca barcode dari dokumen PDF dengan mengonversi halaman PDF menjadi gambar menggunakan kelas PdfConverter. Ini memungkinkan konversi setiap halaman file PDF menjadi gambar, dan kemudian kita akan membaca informasi kode batang dari gambar yang dikonversi.

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. Opsional, atur opsi rendering seperti BarcodeOptimization.
  4. Kemudian, atur resolusi gambar.
  5. Selanjutnya, tentukan StartPage dan EndPage untuk merender serangkaian halaman menjadi gambar.
  6. Kemudian, panggil metode DoConvert() untuk merender halaman yang dipilih menjadi gambar.
  7. Selanjutnya, simpan gambar untuk streaming dalam satu lingkaran.
  8. Kemudian, buat instance kelas BarCodeReader dengan objek stream.
  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 C#.

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

// Muat dokumen PDF
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// Inisialisasi PdfConvertor
Aspose.Pdf.Facades.PdfConverter pdfConverter = new Aspose.Pdf.Facades.PdfConverter(pdfDoc);

// Tetapkan pengoptimalan kode batang
pdfConverter.RenderingOptions.BarcodeOptimization = true;

// Tetapkan resolusi halaman
// 300 dpi adalah resolusi standar
pdfConverter.Resolution = new Aspose.Pdf.Devices.Resolution(300);

// Atur semua halaman untuk dirender menjadi gambar
pdfConverter.StartPage = 1; //starts from page 1
pdfConverter.EndPage = pdfConverter.Document.Pages.Count;

// Render halaman yang dipilih ke dalam gambar
pdfConverter.DoConvert();
while (pdfConverter.HasNextImage())
{
    // Render halaman saat ini ke gambar aliran memori
    MemoryStream ms = new MemoryStream();
    pdfConverter.GetNextImage(ms, ImageFormat.Png);
    ms.Position = 0;

    // Kenali kode batang dari gambar halaman yang dirender
    BarCodeReader reader = new BarCodeReader(ms);
    
    // Tunjukkan hasil
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine("Codetext found: " + result.CodeText);
        Console.WriteLine("Symbology: " + result.CodeType);
        Console.WriteLine("-------------------------------");
    }
}

Baca Barcode dari PDF menggunakan PngDevice di C#

Ini dia metode lain yang mirip dengan yang sebelumnya. Satu-satunya perbedaan adalah bahwa dalam metode ini, kami akan mengonversi halaman dokumen PDF menjadi gambar menggunakan kelas API PngDevice. Ini memungkinkan konversi halaman dokumen PDF menjadi gambar PNG.

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, lewati semua halaman dan panggil metode Process() untuk merender ke dalam aliran.
  4. Selanjutnya, buat instance kelas BarCodeReader dengan objek stream.
  5. Setelah itu, panggil metode ReadBarCodes() untuk mendapatkan objek BarCodeResult.
  6. Terakhir, tunjukkan informasi kode batang.

Contoh kode berikut menunjukkan cara mengonversi halaman PDF menjadi gambar PNG dan membaca kode batang menggunakan C#.

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

// Muat dokumen PDF
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// Buat perangkat PNG dengan resolusi standar 300 dpi
Aspose.Pdf.Devices.PngDevice pngDevice = new Aspose.Pdf.Devices.PngDevice(new Aspose.Pdf.Devices.Resolution(300));

// Lanjutkan semua halaman PDF mulai dari halaman 1
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // Render halaman PDF ke aliran
    MemoryStream ms = new MemoryStream();
    pngDevice.Process(pdfDoc.Pages[i], ms);
    ms.Position = 0;

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

    // Tunjukkan hasil
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine("Codetext found: " + result.CodeText);
        Console.WriteLine("Symbology: " + result.CodeType);
        Console.WriteLine("-------------------------------");
    }
}

Ekstrak dan Baca Kode Batang dari PDF menggunakan C#

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 untuk streaming dalam satu lingkaran.
  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 mengekstrak dan membaca gambar barcode dari dokumen PDF menggunakan C#.

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

// Ikat dokumen PDF
Aspose.Pdf.Facades.PdfExtractor pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor();
pdfExtractor.BindPdf(file);

// Tetapkan rentang halaman untuk ekstraksi gambar
pdfExtractor.StartPage = 1;
pdfExtractor.EndPage = 3;

// Ekstrak gambar
pdfExtractor.ExtractImage();

// Simpan gambar untuk streaming dalam satu lingkaran
while (pdfExtractor.HasNextImage())
{
  // Simpan gambar untuk streaming
  MemoryStream imageStream = new MemoryStream();
  pdfExtractor.GetNextImage(imageStream);
  imageStream.Position = 0;

  // Kenali barcode dari aliran gambar di atas
  BarCodeReader reader = new BarCodeReader(imageStream);
  foreach (BarCodeResult result in reader.ReadBarCodes())
  {
      Console.WriteLine("Codetext found: " + result.CodeText);
      Console.WriteLine("Symbology: " + result.CodeType);
      Console.WriteLine("-------------------------------");
  }
}

Temukan dan Baca Gambar Kode Batang dari PDF menggunakan C#

Kita juga dapat menemukan dan mengekstrak gambar barcode dari dokumen PDF menggunakan kelas ImagePlacementAbsorber. Ini merupakan objek penyerap objek penempatan gambar. Itu melakukan pencarian penggunaan gambar dan menyediakan akses ke hasil pencarian melalui koleksi ImagePlacements. Metode ini membantu mengenali barcode dengan resolusi asli. Itu 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 C#.

// 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
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// Inisialisasi ImagePlacementAbsorber
Aspose.Pdf.ImagePlacementAbsorber imagePlacementAbsorber = new Aspose.Pdf.ImagePlacementAbsorber();

// Proses semua halaman PDF dalam dokumen mulai dari halaman 1
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // Kunjungi halaman buat ekstraktor gambar
    imagePlacementAbsorber.Visit(pdfDoc.Pages[i]);

    // Ekstrak semua gambar dari halaman PDF
    foreach (Aspose.Pdf.ImagePlacement imagePlacement in imagePlacementAbsorber.ImagePlacements)
    {
        // Konversikan gambar dari halaman PDF ke aliran
        MemoryStream ms = new MemoryStream();
        imagePlacement.Save(ms, ImageFormat.Png);
        ms.Position = 0;

        // Kenali kode batang dari gambar halaman yang diekstrak
        BarCodeReader reader = new BarCodeReader(ms);

        // Tunjukkan hasil
        foreach (BarCodeResult result in reader.ReadBarCodes())
        {
            Console.WriteLine("Codetext found: " + result.CodeText);
            Console.WriteLine("Symbology: " + result.CodeType);
            Console.WriteLine("-------------------------------");
        }
    }
}

Dapatkan Lisensi Gratis

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

Kesimpulan

Pada artikel ini, kita telah mempelajari cara membaca barcode dari dokumen PDF di C#. Kami juga telah melihat berbagai pendekatan dan metode untuk mengekstrak gambar dari dokumen PDF dan mendekode kode batang yang disematkan secara terprogram. Selain itu, 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 kami.

Lihat juga