Číst čárový kód z PDF v C#

Můžeme generovat a přidávat čárové kódy do PDF dokumentů, jak je popsáno v mém předchozím příspěvku. V určitých případech může být nutné programově detekovat a číst čárové kódy vložené do dokumentů PDF. Pomáhá dekódovat vložené informace ve formě čárových kódů a QR kódů z dokumentů PDF, jako jsou faktury, účtenky nebo sestavy. V tomto článku se naučíme, jak číst čárový kód z dokumentu PDF pomocí C#.

Článek se bude týkat následujících témat:

  1. C# API pro čtení čárových kódů z PDF
  2. Přečíst čárový kód z PDF
  3. Převést PDF na obrázek a číst čárové kódy
  4. Čtení čárových kódů z PDF pomocí PngDevice
  5. Extrahovat a přečíst čárový kód z PDF
  6. Najít a přečíst obrázek čárového kódu z PDF

C# API pro čtení čárových kódů z PDF

Při čtení čárových kódů z dokumentů PDF budeme postupovat ve dvou krocích. Nejprve použijeme API Aspose.PDF for .NET k načtení dokumentu PDF, poté vykreslíme jeho stránky do rastrových obrázků. Poté načteme čárový kód z vykreslených obrázků pomocí Aspose.BarCode for .NET API.

Prosím buď stáhněte si DLL API, nebo jej nainstalujte pomocí NuGet.

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

Číst čárový kód z PDF pomocí C#

Třída Document rozhraní Aspose.PDF API představuje dokument PDF. Funkce ConvertToPNGMemoryStream() rozhraní API vykreslí stránku PDF do paměťového toku PNG. Třída BarCodeReader API Aspose.BarCode nám umožňuje provádět operace ReadBarCodes pro detekci čárových kódů. Třída BarCodeResult ukládá zjištěné informace o čárovém kódu, jako je typ čárového kódu, text kódu, region a další parametry.

Obrázky čárových kódů vložené na kteroukoli stránku dokumentu PDF můžeme číst podle následujících kroků:

  1. Nejprve načtěte dokument PDF pomocí třídy Document.
  2. Dále projděte všechny stránky a vykreslete je do datového proudu paměti.
  3. Poté vytvořte instanci třídy BarCodeReader s objektem proudu.
  4. Poté zavolejte metodu ReadBarCodes(), abyste získali objekt BarCodeResult.
  5. Nakonec ukažte informace o čárovém kódu.

Následující příklad kódu ukazuje, jak číst čárový kód z dokumentu PDF pomocí C#.

// Tento příklad kódu ukazuje, jak číst čárový kód z dokumentu PDF pomocí jazyka C#.
// Cesta k dokumentu
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// Načtěte dokument PDF
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// Pokračujte všemi stránkami PDF od stránky 1
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // Vykreslit stránku PDF do streamu
    MemoryStream ms = pdfDoc.Pages[i].ConvertToPNGMemoryStream();
    ms.Position = 0;

    // Rozpoznejte čárové kódy z vykresleného obrázku stránky
    BarCodeReader reader = new BarCodeReader(ms);
    
    // Ukázat výsledky
    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
-------------------------------

stáhněte si vstupní dokument PDF s čárovými kódy použitý v tomto příspěvku na blogu.

Převod PDF na obrázek a čtení čárových kódů pomocí C#

Čárové kódy z dokumentu PDF můžeme číst převedením stránek PDF na obrázky pomocí třídy PdfConverter. Umožňuje převést každou stránku souboru PDF na obrázek a poté z převedeného obrázku načteme informace o čárovém kódu.

Čárové kódy z převedených stránek PDF můžeme číst podle následujících kroků:

  1. Nejprve načtěte dokument PDF pomocí třídy Document.
  2. Dále vytvořte instanci třídy PdfConverter.
  3. Volitelně nastavte možnosti vykreslování, jako je BarcodeOptimization.
  4. Poté nastavte rozlišení obrázku.
  5. Dále zadejte StartPage a EndPage pro vykreslení rozsahu stránek do obrázků.
  6. Poté zavolejte metodu DoConvert() k vykreslení vybraných stránek do obrázků.
  7. Dále uložte obrázek pro streamování ve smyčce.
  8. Poté vytvořte instanci třídy BarCodeReader s objektem stream.
  9. Poté zavolejte metodu ReadBarCodes(), abyste získali objekt BarCodeResult.
  10. Nakonec zobrazte informace o čárovém kódu.

Následující příklad kódu ukazuje, jak převést stránky PDF na obrázky a číst čárové kódy pomocí C#.

// Následující příklad kódu ukazuje, jak převést stránky PDF na obrázky pomocí PDF Convertor a číst čárové kódy pomocí C#.
// Cesta k dokumentu
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// Načtěte dokument PDF
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

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

// Nastavte optimalizaci čárového kódu
pdfConverter.RenderingOptions.BarcodeOptimization = true;

// Nastavte rozlišení stránky
// 300 dpi je standardní rozlišení
pdfConverter.Resolution = new Aspose.Pdf.Devices.Resolution(300);

// Nastavte všechny stránky na vykreslení do obrázků
pdfConverter.StartPage = 1; //starts from page 1
pdfConverter.EndPage = pdfConverter.Document.Pages.Count;

// Vykreslete vybrané stránky do obrázků
pdfConverter.DoConvert();
while (pdfConverter.HasNextImage())
{
    // Vykreslení aktuální stránky do obrazu streamu paměti
    MemoryStream ms = new MemoryStream();
    pdfConverter.GetNextImage(ms, ImageFormat.Png);
    ms.Position = 0;

    // Rozpoznejte čárové kódy z vykresleného obrázku stránky
    BarCodeReader reader = new BarCodeReader(ms);
    
    // Ukázat výsledky
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine("Codetext found: " + result.CodeText);
        Console.WriteLine("Symbology: " + result.CodeType);
        Console.WriteLine("-------------------------------");
    }
}

Čtení čárových kódů z PDF pomocí PngDevice v C#

Zde je další metoda podobná té předchozí. Jediný rozdíl je v tom, že při této metodě převedeme stránky PDF dokumentu na obrázky pomocí třídy PngDevice API. Umožňuje převod stránek dokumentu PDF na obrázky PNG.

Čárové kódy z převedených stránek PDF můžeme číst jako obrázky PNG podle následujících kroků:

  1. Nejprve načtěte dokument PDF pomocí třídy Document.
  2. Dále vytvořte instanci třídy PngDevice.
  3. Poté projděte všechny stránky a zavolejte metodu Process() k vykreslení do proudu.
  4. Dále vytvořte instanci třídy BarCodeReader s objektem stream.
  5. Poté zavolejte metodu ReadBarCodes() a získejte objekt BarCodeResult.
  6. Nakonec ukažte informace o čárovém kódu.

Následující příklad kódu ukazuje, jak převést stránky PDF na obrázky PNG a číst čárové kódy pomocí C#.

// Následující příklad kódu ukazuje, jak převést stránky PDF na obrázky pomocí PngDevice a číst čárové kódy pomocí C#.
// Cesta k dokumentu
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// Načtěte dokument PDF
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

// Vytvořte zařízení PNG se standardním rozlišením 300 dpi
Aspose.Pdf.Devices.PngDevice pngDevice = new Aspose.Pdf.Devices.PngDevice(new Aspose.Pdf.Devices.Resolution(300));

// Pokračujte všemi stránkami PDF od stránky 1
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // Vykreslit stránku PDF do streamu
    MemoryStream ms = new MemoryStream();
    pngDevice.Process(pdfDoc.Pages[i], ms);
    ms.Position = 0;

    // Rozpoznejte čárový kód z vykresleného obrázku stránky
    BarCodeReader reader = new BarCodeReader(ms);

    // Ukázat výsledky
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine("Codetext found: " + result.CodeText);
        Console.WriteLine("Symbology: " + result.CodeType);
        Console.WriteLine("-------------------------------");
    }
}

Extrahujte a čtěte čárový kód z PDF pomocí C#

Můžeme také rozpoznat obrázky čárových kódů vložené na stránky PDF pomocí třídy PdfExtractor. Umožňuje extrahovat obrázky z PDF a poté z extrahovaného obrázku načteme informace o čárovém kódu.

Čárové kódy můžeme číst z extrahovaných obrázků podle následujících kroků:

  1. Nejprve vytvořte instanci třídy PdfExtractor.
  2. Dále svažte vstupní dokument PDF pomocí metody BindPdf().
  3. Poté nastavte rozsah stránek pro extrakci obrázku.
  4. Dále zavolejte metodu ExtractImage() k extrahování obrázků.
  5. Poté uložte obrázek pro streamování ve smyčce.
  6. Dále vytvořte instanci třídy BarCodeReader s objektem stream.
  7. Poté zavolejte metodu ReadBarCodes() a získejte objekt BarCodeResult.
  8. Nakonec ukažte informace o čárovém kódu.

Následující příklad kódu ukazuje, jak extrahovat a číst obrázek čárového kódu z dokumentu PDF pomocí C#.

// Následující příklad kódu ukazuje, jak převést stránky PDF na obrázky pomocí PdfExtractor a číst čárové kódy pomocí C#.
// Cesta k dokumentu
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// Svažte dokument PDF
Aspose.Pdf.Facades.PdfExtractor pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor();
pdfExtractor.BindPdf(file);

// Nastavte rozsah stránek pro extrakci obrázků
pdfExtractor.StartPage = 1;
pdfExtractor.EndPage = 3;

// Extrahujte obrázky
pdfExtractor.ExtractImage();

// Uložte obrázky pro streamování ve smyčce
while (pdfExtractor.HasNextImage())
{
  // Uložit obrázek do streamu
  MemoryStream imageStream = new MemoryStream();
  pdfExtractor.GetNextImage(imageStream);
  imageStream.Position = 0;

  // Rozpoznejte čárové kódy z proudu obrázků výše
  BarCodeReader reader = new BarCodeReader(imageStream);
  foreach (BarCodeResult result in reader.ReadBarCodes())
  {
      Console.WriteLine("Codetext found: " + result.CodeText);
      Console.WriteLine("Symbology: " + result.CodeType);
      Console.WriteLine("-------------------------------");
  }
}

Najít a přečíst obrázky čárových kódů z PDF pomocí C#

Můžeme také najít a extrahovat obrázky čárových kódů z dokumentů PDF pomocí třídy ImagePlacementAbsorber. Představuje absorbující objekt objektů umístění obrazu. Provádí vyhledávání použití obrázků a poskytuje přístup k výsledkům vyhledávání prostřednictvím kolekce ImagePlacements. Tato metoda pomáhá rozpoznat čárové kódy s původním rozlišením. Nemusí správně rozpoznat vektorové formáty.

Čárové kódy z dokumentů PDF můžeme najít a přečíst podle následujících kroků:

  1. Nejprve načtěte dokument PDF pomocí třídy Document.
  2. Dále vytvořte instanci třídy ImagePlacementAbsorber.
  3. Poté zavolejte metodu Visit() pro každou stránku ve smyčce.
  4. Dále projděte všechny obrázky nalezené v kolekci ImagePlacements.
  5. Poté uložte obrázek do paměťového toku.
  6. Dále vytvořte instanci třídy BarCodeReader s objektem stream.
  7. Poté zavolejte metodu ReadBarCodes() a získejte objekt BarCodeResult.
  8. Nakonec ukažte informace o čárovém kódu.

Následující příklad kódu ukazuje, jak najít a přečíst obrázky čárových kódů z PDF pomocí C#.

// Tento příklad kódu ukazuje, jak číst čárový kód z dokumentu PDF pomocí ImagePlacementAbsorber.
// Cesta k dokumentu
string file = @"C:\Files\BarCode\sample-PDF-with-Barcodes.pdf";

// Načtěte dokument PDF
Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(file);

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

// Zpracujte všechny stránky PDF v dokumentu počínaje stranou 1
for (int i = 1; i <= pdfDoc.Pages.Count; ++i)
{
    // Navštivte stránku vytvoření extraktoru obrázků
    imagePlacementAbsorber.Visit(pdfDoc.Pages[i]);

    // Extrahujte všechny obrázky ze stránky PDF
    foreach (Aspose.Pdf.ImagePlacement imagePlacement in imagePlacementAbsorber.ImagePlacements)
    {
        // Převeďte obrázek ze stránky PDF do streamu
        MemoryStream ms = new MemoryStream();
        imagePlacement.Save(ms, ImageFormat.Png);
        ms.Position = 0;

        // Rozpoznejte čárový kód z extrahovaného obrázku stránky
        BarCodeReader reader = new BarCodeReader(ms);

        // Ukázat výsledky
        foreach (BarCodeResult result in reader.ReadBarCodes())
        {
            Console.WriteLine("Codetext found: " + result.CodeText);
            Console.WriteLine("Symbology: " + result.CodeType);
            Console.WriteLine("-------------------------------");
        }
    }
}

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet knihovny bez omezení hodnocení.

Závěr

V tomto článku jsme se naučili číst čárové kódy z dokumentů PDF v C#. Viděli jsme také různé přístupy a metody, jak extrahovat obrázky z dokumentu PDF a programově dekódovat vložené čárové kódy. Kromě toho se můžete dozvědět více o API pomocí dokumentace pro Aspose.BarCode a dokumentace pro Aspose.PDF. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na našem fóru.

Viz také