Java'da PDF'den Barkod Oku

PDF faturalar, makbuzlar veya raporlar gibi belgeler barkod biçiminde kodlanmış bilgiler içerebilir. PDF belgelerine gömülü barkodları programlı olarak algılayabilir, tanımlayabilir ve okuyabiliriz. Bu yazıda, Java kullanarak bir PDF belgesinden barkod okumayı öğreneceğiz. Ayrıca, Java’da PDF belgelerinden barkod görüntülerinin nasıl çıkarılacağını öğreneceğiz.

Bu makale aşağıdaki konuları kapsayacaktır:

  1. PDF’den Barkod Okumak için Java API
  2. PDF’den Barkodu Okuyun
  3. PDF’yi Görüntüye Dönüştürün ve Barkodu Okuyun
  4. PDF’den Barkodu Çıkarın ve Okuyun
  5. PngDevice kullanarak PDF’den Barkod okuyun
  6. PDF’den Barkod Resmi Bul ve Oku

PDF’den Barkod Okumak için Java API

Bir PDF belgesinden barkod okumak için iki aşamalı bir prosedür izleyeceğiz. İlk olarak, bir PDF belgesi yüklemek ve sayfalarını raster görüntülere dönüştürmek için Aspose.PDF for Java API’sini kullanacağız. Ardından, Aspose.BarCode for Java API’sini kullanarak işlenmiş görüntülerden barkodu okuyacağız.

Lütfen API’lerin JAR’ını indirin veya Maven tabanlı bir Java uygulamasında aşağıdaki pom.xml yapılandırmasını ekleyin.

<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>

Java kullanarak PDF’den Barkod Oku

Aspose.PDF API, bir PDF belgesini temsil eden Document sınıfını sağlar. API’nin convertToPNGMemoryStream() yöntemi, bir PDF sayfasını byte[] dizisindeki bir görüntü akışına dönüştürür. Aspose.BarCode API, bir barkodu algılamak için readBarCodes işlemleri gerçekleştirmemizi sağlayan BarCodeReader sınıfını 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 akışa 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, Java kullanılarak bir PDF belgesinden barkodun nasıl okunacağını gösterir.

// Bu kod örneği, Java 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
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);

// 1. sayfadan başlayarak tüm PDF sayfalarını ilerletin
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
    // PDF sayfasını akışa dönüştür
    byte[] ms = pdfDoc.getPages().get_Item(i).convertToPNGMemoryStream();
    InputStream stream = new ByteArrayInputStream(ms);

    // Sayfa akışından barkodları tanıma
    BarCodeReader reader = new BarCodeReader(stream);

    // Sonuçları göster
 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

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

Java kullanarak PDF’yi Görüntüye Dönüştürün ve Barkodu Okuyun

PDF sayfalarını görüntülere dönüştürerek PDF belgesinden bir barkod da okuyabiliriz. API’nin PdfConverter sınıfı, bir PDF dosyasının her sayfasının bir görüntüye dönüştürülmesine olanak tanır. Ardından dönüştürülen görselden barkod bilgisini 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, setBarcodeOptimization() kullanarak işleme seçeneklerini ayarlayın.
  4. Ardından, görüntü çözünürlüğünü ayarlayın.
  5. Ardından, setStartPage() ve setEndPage() kullanarak görüntülere dönüştürülecek bir sayfa aralığı 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, görüntüleri bir döngüde kaydedin.
  8. Ardından, kaydedilen görüntü dosyası yolu ile 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, Java 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 barkodların nasıl okunacağını gösterir.
// Belgeye giden yol
String folderPath = "C:\\Files\\BarCode\\";

// Giriş dosyası yolu
String file = folderPath + "sample-PDF-with-Barcodes.pdf";

// PDF belgesi yükleyin
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);

// Bir PdfConvertor başlat
com.aspose.pdf.facades.PdfConverter pdfConverter = new com.aspose.pdf.facades.PdfConverter(pdfDoc);

// Barkod optimizasyonunu ayarla
pdfConverter.getRenderingOptions().setBarcodeOptimization(true);

// Sayfa çözünürlüğünü ayarla
// 300 dpi standart çözünürlüktür
pdfConverter.setResolution(new com.aspose.pdf.devices.Resolution(300));

// Tüm sayfaları görüntülere dönüştürülecek şekilde ayarla
pdfConverter.setStartPage(1); //starts from page 1
pdfConverter.setEndPage(pdfConverter.getDocument().getPages().size());

// Seçilen sayfaları resimlere dönüştürün
pdfConverter.doConvert();
int imageCount = 1;

while (pdfConverter.hasNextImage())
{
    // Geçerli sayfayı resme dönüştür
    String strBarCodeImage = folderPath + imageCount + ".jpg";
    pdfConverter.getNextImage(strBarCodeImage);

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

    // Sonuçları göster
   for (BarCodeResult result : reader.readBarCodes()) {
    System.out.println("CodeText: " + result.getCodeText());
    System.out.println("Symbology type: " + result.getCodeType());
    System.out.println(("-------------------------------"));
  }
}

Java kullanarak PDF’den Barkod Çıkarma ve Okuma

Benzer şekilde, 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, görüntüyü bir döngüde kaydedin.
  6. Ardından, görüntü yolu ile 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, Java kullanılarak 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 görüntülere nasıl dönüştürüleceğini ve barkodların nasıl okunacağını gösterir.
// Belgeye giden yol
String folderPath = "C:\\Files\\BarCode\\";

// Giriş dosyası
String file = folderPath + "sample-PDF-with-Barcodes.pdf";

// PDF belgesini bağlama
com.aspose.pdf.facades.PdfExtractor pdfExtractor = new com.aspose.pdf.facades.PdfExtractor();
pdfExtractor.bindPdf(file);

// Görüntü çıkarma için sayfa aralığını ayarla
pdfExtractor.setStartPage(1);
pdfExtractor.setEndPage(3);

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

int imageCount = 1;

// Bir döngüde akış için görüntüleri kaydedin
while (pdfExtractor.hasNextImage())
{
  // Resmi Kaydet
  String strBarCodeImage = folderPath + imageCount + ".jpg";
  pdfExtractor.getNextImage(strBarCodeImage);

  // Görüntüden barkodları tanıma
  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(("-------------------------------"));
  }
}

Java’da PngDevice kullanarak PDF’den Barkod Oku

API’nin PngDevice sınıfını kullanarak PDF belgesinin sayfalarını PNG resimlerine dönüştürerek de barkodları okuyabiliriz. Sayfayı PNG’ye dönüştüren ve çıktı akışında kaydeden process(Page page, OutputStream output) yöntemini sağlar. Bu sınıfın processToBufferedImage(Page page) yöntemi, sayfayı BufferedImage’a dönüştürü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 görüntüyü oluşturmak için processToBufferedImage() yöntemini çağırın.
  4. Ardından, BufferedImage 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, Java kullanılarak PDF sayfalarının 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 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
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);

// 300 dpi standart çözünürlükte PNG aygıtı oluşturun
com.aspose.pdf.devices.PngDevice pngDevice = new com.aspose.pdf.devices.PngDevice(new com.aspose.pdf.devices.Resolution(300));

// 1. sayfadan başlayarak tüm PDF sayfalarını ilerletin
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
    // PDF sayfasını arabelleğe alınan görüntüye dönüştür
    BufferedImage img = pngDevice.processToBufferedImage(pdfDoc.getPages().get_Item(i));

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

    // Sonuçları göster
   for (BarCodeResult result : reader.readBarCodes()) {
    System.out.println("CodeText: " + result.getCodeText());
    System.out.println("Symbology type: " + result.getCodeType());
    System.out.println(("-------------------------------"));
  }
}

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

ImagePlacementAbsorber sınıfını kullanarak PDF belgelerinden barkod görüntülerini bulabilir ve ayıklayabiliriz. ImagePlacements koleksiyonu aracılığıyla görsel kullanımına yönelik bir arama gerçekleştirir ve arama sonuçlarına erişim sağlar. Bu yöntem, barkodların orijinal çözünürlükte tanınmasını sağlar. Tek dezavantajı, 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 ziyaret() 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, Java 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
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);

// ImagePlacementAbsorber'ı Başlat
com.aspose.pdf.ImagePlacementAbsorber imagePlacementAbsorber = new com.aspose.pdf.ImagePlacementAbsorber();

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

    // PDF sayfasındaki tüm görüntüleri ayıklayın
   for (com.aspose.pdf.ImagePlacement imagePlacement : imagePlacementAbsorber.getImagePlacements()) {
      // PDF sayfasını akışa dönüştür
      byte[] ms = pdfDoc.getPages().get_Item(i).convertToPNGMemoryStream();
      InputStream stream = new ByteArrayInputStream(ms);

      // Sayfa akışından barkodu tanıma
      BarCodeReader reader = new BarCodeReader(stream);

      // Sonuçları göster
     for (BarCodeResult result : reader.readBarCodes()) {
        System.out.println("CodeText: " + result.getCodeText());
        System.out.println("Symbology type: " + result.getCodeType());
        System.out.println(("-------------------------------"));
      }
    }
}

Ücretsiz Lisans Alın

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

Çözüm

Bu yazıda öğrendik

  • PDF belgelerinden barkodların nasıl algılanıp okunacağı;
  • bir PDF belgesinden görüntüleri ayıklamak için çeşitli yöntemler;
  • Java’daki gömülü barkodu çözmek için.

Java’da PDF’den bir barkod okumanın yanı sıra, 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 ücretsiz destek forumumuzda bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız