C# ile PDF'den Barkod Oku

Önceki gönderimde açıklandığı gibi PDF belgelere barkodlar oluşturabilir ve ekleyebiliriz. Belirli durumlarda, PDF belgelerine gömülü barkodları programlı olarak algılamamız ve okumamız gerekebilir. Faturalar, makbuzlar veya raporlar gibi PDF belgelerinden barkodlar ve QR kodları biçimindeki gömülü bilgilerin kodunun çözülmesine yardımcı olur. Bu yazıda, C# kullanarak bir PDF belgesinden barkod okumayı öğreneceğiz.

Makale aşağıdaki konuları kapsayacaktır:

  1. PDF’den Barkod Okumak için C# API
  2. PDF’den Barkodu Okuyun
  3. PDF’yi Resme Dönüştürün ve Barkodları Okuyun
  4. PngDevice kullanarak PDF’den Barkodları Okuyun
  5. PDF’den Barkodu Çıkarın ve Okuyun
  6. PDF’den Barkod Resmi Bul ve Oku

PDF’den Barkod Okumak için C# API

PDF belgelerinden barkod okumak için iki adımlı bir prosedür izleyeceğiz. Öncelikle, bir PDF belgesi yüklemek için Aspose.PDF for .NET API’sini kullanacağız, ardından sayfalarını raster görüntülere dönüştüreceğiz. Ardından, Aspose.BarCode for .NET API’sini kullanarak işlenmiş görüntülerden barkodu okuyacağız.

Lütfen API’nin [DLL’sini 10 indirin] veya NuGet kullanarak kurun.

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

C# kullanarak PDF’den Barkod Oku

Aspose.PDF API’sinin Belge sınıfı, bir PDF belgesini temsil eder. API’nin ConvertToPNGMemoryStream() işlevi, bir PDF sayfasını bir PNG bellek akışına dönüştürür. Aspose.BarCode API’sinin BarCodeReader sınıfı, barkodları algılamak için ReadBarCodes işlemleri gerçekleştirmemizi sağlar. BarCodeResult sınıfı, barkod türü, kod metni, bölge ve diğer parametreler gibi algılanan barkod bilgilerini depolar.

Aşağıda verilen adımları izleyerek PDF belgesinin herhangi bir sayfasına gömülü barkod resimlerini okuyabiliriz:

  1. Öncelikle Document sınıfını kullanarak bir PDF belgesi yükleyin.
  2. Ardından, tüm sayfaları dolaşın ve onları bellek akışına dönüştürün.
  3. Ardından, bir akış nesnesiyle BarCodeReader sınıfının bir örneğini oluşturun.
  4. Bundan sonra, BarCodeResult nesnesini almak için ReadBarCodes() yöntemini çağırın.
  5. Son olarak barkod bilgilerini gösterin.

Aşağıdaki kod örneği, C# kullanarak bir PDF belgesinden barkodun nasıl okunacağını gösterir.

// Bu kod örneği, C# kullanarak bir PDF belgesinden barkodun nasıl okunacağını gösterir.
// Belgeye giden yol
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// PDF belgesi yükleyin
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// 1. sayfadan başlayarak tüm PDF sayfalarını ilerletin
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // PDF sayfasını akışa dönüştür
    MemoryStream ms = pdfDoc.Pages[i].ConvertToPNGMemoryStream();
    ms.Position = 0;

    // Sayfanın işlenmiş görüntüsünden barkodları tanıma
    BarCodeReader reader = new BarCodeReader(ms);
    
    // Sonuçları göster
    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
-------------------------------

Lütfen bu blog yazısında kullanılan Barkodlu giriş PDF belgesini indirin.

C# kullanarak PDF’yi Görüntüye Dönüştürün ve Barkodları Okuyun

PdfConverter sınıfını kullanarak PDF sayfalarını görüntülere dönüştürerek PDF belgesindeki barkodları okuyabiliriz. Bir PDF dosyasının her sayfasının bir görüntüye dönüştürülmesine izin verir ve ardından dönüştürülen görüntüden barkod bilgilerini okuyacağız.

Aşağıda verilen adımları izleyerek dönüştürülen PDF sayfalarından barkodları okuyabiliriz:

  1. Öncelikle Document sınıfını kullanarak bir PDF belgesi yükleyin.
  2. Ardından, PdfConverter sınıfının bir örneğini oluşturun.
  3. İsteğe bağlı olarak, Barkod Optimizasyonu gibi işleme seçeneklerini ayarlayın.
  4. Ardından, görüntü çözünürlüğünü ayarlayın.
  5. Ardından, bir dizi sayfayı görüntülere dönüştürmek için StartPage ve EndPage’i belirtin.
  6. Ardından, seçilen sayfaları görüntülere dönüştürmek için DoConvert() yöntemini çağırın.
  7. Ardından, bir döngüde akış için görüntüyü kaydedin.
  8. Ardından, akış nesnesiyle BarCodeReader sınıfının bir örneğini oluşturun.
  9. Bundan sonra, BarCodeResult nesnesini almak için ReadBarCodes() yöntemini çağırın.
  10. Son olarak barkod bilgilerini gösterin.

Aşağıdaki kod örneği, C# kullanarak PDF sayfalarının resimlere nasıl dönüştürüleceğini ve barkodların nasıl okunacağını gösterir.

// Aşağıdaki kod örneği, PDF sayfalarının PDF Converter ile resimlere nasıl dönüştürüleceğini ve C# kullanılarak barkodların nasıl okunacağını gösterir.
// Belgeye giden yol
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// PDF belgesi yükleyin
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// Bir PdfConvertor başlat
Aspose.Pdf.Facades.PdfConverter pdfConverter = new Aspose.Pdf.Facades.PdfConverter(pdfDoc);

// Barkod optimizasyonunu ayarla
pdfConverter.RenderingOptions.BarcodeOptimization = true;

// Sayfa çözünürlüğünü ayarla
// 300 dpi standart çözünürlüktür
pdfConverter.Resolution = new Aspose.Pdf.Devices.Resolution(300);

// Tüm sayfaları görüntülere dönüştürülecek şekilde ayarla
pdfConverter.StartPage = 1; //starts from page 1
pdfConverter.EndPage = pdfConverter.Document.Pages.Count;

// Seçilen sayfaları resimlere dönüştürün
pdfConverter.DoConvert();
while (pdfConverter.HasNextImage())
{
    // Geçerli sayfayı bellek akışı görüntüsüne dönüştür
    MemoryStream ms = new MemoryStream();
    pdfConverter.GetNextImage(ms, ImageFormat.Png);
    ms.Position = 0;

    // Sayfanın işlenmiş görüntüsünden barkodları tanıma
    BarCodeReader reader = new BarCodeReader(ms);
    
    // Sonuçları göster
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine("Codetext found: " + result.CodeText);
        Console.WriteLine("Symbology: " + result.CodeType);
        Console.WriteLine("-------------------------------");
    }
}

C# dilinde PngDevice kullanarak PDF’den Barkodları Okuyun

İşte öncekine benzer başka bir yöntem. Tek fark, bu yöntemde, API’nin PngDevice sınıfını kullanarak PDF belgesinin sayfalarını görüntülere dönüştüreceğiz. PDF belgesinin sayfalarının PNG resimlerine dönüştürülmesine olanak tanır.

Aşağıda verilen adımları izleyerek dönüştürülen PDF sayfalarından barkodları PNG görüntüleri olarak okuyabiliriz:

  1. Öncelikle Document sınıfını kullanarak bir PDF belgesi yükleyin.
  2. Ardından, PngDevice sınıfının bir örneğini oluşturun.
  3. Ardından, tüm sayfaları dolaşın ve akışa işlemek için Process() yöntemini çağırın.
  4. Ardından, akış nesnesiyle BarCodeReader sınıfının bir örneğini oluşturun.
  5. Bundan sonra, BarCodeResult nesnesini almak için ReadBarCodes() yöntemini çağırın.
  6. Son olarak barkod bilgilerini gösterin.

Aşağıdaki kod örneği, C# kullanarak PDF sayfalarının PNG resimlerine nasıl dönüştürüleceğini ve barkodların nasıl okunacağını gösterir.

// Aşağıdaki kod örneği, PDF sayfalarının PngDevice ile resimlere nasıl dönüştürüleceğini ve C# kullanılarak barkodların nasıl okunacağını gösterir.
// Belgeye giden yol
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// PDF belgesi yükleyin
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// 300 dpi standart çözünürlükte PNG aygıtı oluşturun
Aspose.Pdf.Devices.PngDevice pngDevice = new Aspose.Pdf.Devices.PngDevice(new Aspose.Pdf.Devices.Resolution(300));

// 1. sayfadan başlayarak tüm PDF sayfalarını ilerletin
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // PDF sayfasını akışa dönüştür
    MemoryStream ms = new MemoryStream();
    pngDevice.Process(pdfDoc.Pages[i], ms);
    ms.Position = 0;

    // Sayfanın işlenmiş görüntüsünden barkodu tanıma
    BarCodeReader reader = new BarCodeReader(ms);

    // Sonuçları göster
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine("Codetext found: " + result.CodeText);
        Console.WriteLine("Symbology: " + result.CodeType);
        Console.WriteLine("-------------------------------");
    }
}

C# kullanarak PDF’den Barkod Çıkarma ve Okuma

PdfExtractor sınıfını kullanarak PDF sayfalarına gömülü barkod görüntülerini de tanıyabiliriz. PDF’den görüntülerin çıkarılmasına izin verir ve ardından çıkarılan görüntüden barkod bilgilerini okuyacağız.

Aşağıda verilen adımları izleyerek çıkarılan görüntülerden barkodları okuyabiliriz:

  1. Öncelikle, PdfExtractor sınıfının bir örneğini oluşturun.
  2. Ardından, giriş PDF belgesini BindPdf() yöntemini kullanarak bağlayın.
  3. Ardından, görüntü çıkarma için sayfa aralığını ayarlayın.
  4. Ardından, görüntüleri ayıklamak için ExtractImage() yöntemini çağırın.
  5. Ardından, bir döngüde akış için görüntüyü kaydedin.
  6. Ardından, akış nesnesiyle BarCodeReader sınıfının bir örneğini oluşturun.
  7. Bundan sonra, BarCodeResult nesnesini almak için ReadBarCodes() yöntemini çağırın.
  8. Son olarak barkod bilgilerini gösterin.

Aşağıdaki kod örneği, C# kullanarak bir PDF belgesinden bir barkod görüntüsünün nasıl çıkarılacağını ve okunacağını gösterir.

// Aşağıdaki kod örneği, PDF sayfalarının PdfExtractor ile resimlere nasıl dönüştürüleceğini ve C# kullanılarak barkodların nasıl okunacağını gösterir.
// Belgeye giden yol
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// PDF belgesini bağlama
Aspose.Pdf.Facades.PdfExtractor pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor();
pdfExtractor.BindPdf(file);

// Görüntü çıkarma için sayfa aralığını ayarla
pdfExtractor.StartPage = 1;
pdfExtractor.EndPage = 3;

// Resimleri ayıklayın
pdfExtractor.ExtractImage();

// Bir döngüde akış için görüntüleri kaydedin
while (pdfExtractor.HasNextImage())
{
  // Görüntüyü akışa kaydet
  MemoryStream imageStream = new MemoryStream();
  pdfExtractor.GetNextImage(imageStream);
  imageStream.Position = 0;

  // Yukarıdaki görüntü akışındaki barkodları tanıyın
  BarCodeReader reader = new BarCodeReader(imageStream);
  foreach (BarCodeResult result in reader.ReadBarCodes())
  {
      Console.WriteLine("Codetext found: " + result.CodeText);
      Console.WriteLine("Symbology: " + result.CodeType);
      Console.WriteLine("-------------------------------");
  }
}

C# kullanarak PDF’den Barkod Görüntülerini Bulun ve Okuyun

Ayrıca ImagePlacementAbsorber sınıfını kullanarak PDF belgelerinden barkod görüntüleri bulabilir ve ayıklayabiliriz. Görüntü yerleştirme nesnelerinin emici bir nesnesini temsil eder. ImagePlacements koleksiyonu aracılığıyla görsel kullanımlarını araştırır ve arama sonuçlarına erişim sağlar. Bu yöntem, orijinal çözünürlükteki barkodların tanınmasına yardımcı olur. Vektör formatlarını doğru tanımayabilir.

Aşağıda verilen adımları izleyerek PDF belgelerinden barkodları bulabilir ve okuyabiliriz:

  1. Öncelikle Document sınıfını kullanarak bir PDF belgesi yükleyin.
  2. Ardından, ImagePlacementAbsorber sınıfının bir örneğini oluşturun.
  3. Ardından, bir döngüdeki her sayfa için Visit() yöntemini çağırın.
  4. Ardından, ImagePlacements koleksiyonunda bulunan tüm görüntüler arasında geçiş yapın.
  5. Ardından, görüntüyü bellek akışına kaydedin.
  6. Ardından, akış nesnesiyle BarCodeReader sınıfının bir örneğini oluşturun.
  7. Bundan sonra, BarCodeResult nesnesini almak için ReadBarCodes() yöntemini çağırın.
  8. Son olarak barkod bilgilerini gösterin.

Aşağıdaki kod örneği, C# kullanarak bir PDF’den barkod görüntülerinin nasıl bulunacağını ve okunacağını gösterir.

// Bu kod örneği, ImagePlacementAbsorber kullanılarak bir PDF belgesinden barkodun nasıl okunacağını gösterir.
// Belgeye giden yol
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// PDF belgesi yükleyin
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// ImagePlacementAbsorber'ı Başlat
Aspose.Pdf.ImagePlacementAbsorber imagePlacementAbsorber = new Aspose.Pdf.ImagePlacementAbsorber();

// 1. sayfadan başlayarak belgedeki tüm PDF sayfalarını işleyin
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // Görüntü çıkarıcı oluşturma sayfasını ziyaret edin
    imagePlacementAbsorber.Visit(pdfDoc.Pages[i]);

    // PDF sayfasındaki tüm görüntüleri ayıklayın
    foreach (Aspose.Pdf.ImagePlacement imagePlacement in imagePlacementAbsorber.ImagePlacements)
    {
        // Bir görüntüyü PDF sayfasından akışa dönüştürün
        MemoryStream ms = new MemoryStream();
        imagePlacement.Save(ms, ImageFormat.Png);
        ms.Position = 0;

        // Sayfanın çıkarılan görüntüsünden barkodu tanıyın
        BarCodeReader reader = new BarCodeReader(ms);

        // Sonuçları göster
        foreach (BarCodeResult result in reader.ReadBarCodes())
        {
            Console.WriteLine("Codetext found: " + result.CodeText);
            Console.WriteLine("Symbology: " + result.CodeType);
            Console.WriteLine("-------------------------------");
        }
    }
}

Ücretsiz Lisans Alın

Kitaplıkları değerlendirme sınırlamaları olmaksızın denemek için ücretsiz bir geçici lisans alabilirsiniz.

Çözüm

Bu yazımızda C# dilinde PDF belgelerinden barkod okumayı öğrendik. Ayrıca, bir PDF belgesinden görüntüleri ayıklamak ve gömülü barkodları programlı olarak çözmek için çeşitli yaklaşımlar ve yöntemler gördük. Ayrıca, Aspose.BarCode için belgeler ve Aspose.PDF için belgeler kullanarak API’ler hakkında daha fazla bilgi edinebilirsiniz. Herhangi bir belirsizlik durumunda, lütfen forumumuzdan bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız