Wie man Barcodes aus PDF-Dokumenten liest

This article was translated from English: Does it need improvement?
Translated
View the article in English

von Hairil Hasyimi Bin Omar

Wie man Barcode aus PDF in C# liest;

  1. Installieren Sie die Barcode-Bibliothek, um Barcode-Dateien zu verarbeiten.
  2. Bei Bedarf PdfBarcodeReaderOptions erstellen.
  3. Verwenden Sie die Methode ReadPdf von BarcodeReader, um Barcodes aus PDFs zu lesen.
  4. Geben Sie zusätzliche Barcode-Leseoptionen mit BarcodeReaderOption an.
  5. Barcodewerte extrahieren.


    *** <

Barcodes direkt aus PDF-Dokumenten lesen

Abgesehen von IronBarcodes Fähigkeit, Barcodes aus Bildern zu lesen, ist IronBarcode auch stolz auf seine Fähigkeit, Barcodes aus PDF-Dokumenten zu lesen. Dies erspart den Anwendern die mühsame Konvertierung von PDF-Dokumenten in Bilder, bevor sie diese zum Lesen in IronBarcode einspeisen. Da PDF-Dokumente komplizierter und anders als Bilder sind, sollte auch eine andere Lesemethode verwendet werden, und zwar BarcodeReader.ReadPdf() method. Diese Methode akzeptiert verschiedene Typen von PDF-Dokumenten, einschließlich :

  • byte [] array : PDF-Dokument als Byte-Array.
  • IEnumerable : PDF-Dokumente als Byte-Arrays, die in einer Sammlung gespeichert sind.
  • MemoryStream : PDF-Dokumente als MemoryStream-Typ.
  • IEnumerable : PDF-Dokumente als Sammlung von MemoryStream
  • Zeichenfolge : PDF-Dokument-Pfad-String. Wenn das PDF-Dokument bereits in das Projekt kopiert wurde, ist dies der Name des PDF-Dokuments in String.
  • IEnumerable : In einer Sammlung gespeicherte Pfad-/Namensstrings von PDF-Dokumenten.

Abgesehen von den oben erwähnten Arten von Eingaben, BarcodeReader.ReadPdf() akzeptiert auch PdfBarcodeReaderOptions für eine fortgeschrittenere/verbesserte Lektüre, die wir im nächsten Unterthema behandeln werden. Das folgende Codeschnipsel veranschaulicht die Verwendung BarcodeReader.ReadPdf() method to read barcodes in PDF documents.

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-1.cs
using IronBarCode;
using System;
using System.Collections.Generic;

List<String> docs = new List<String>();
docs.Add(@"pdf_a.pdf");
docs.Add(@"pdf_b.pdf");

var myBarcode = BarcodeReader.ReadPdf(docs);   //can also accept individual PDF document file path as argument

foreach (var value in myBarcode)
{
    Console.WriteLine(value.ToString());
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic

Private docs As New List(Of String)()
docs.Add("pdf_a.pdf")
docs.Add("pdf_b.pdf")

Dim myBarcode = BarcodeReader.ReadPdf(docs) 'can also accept individual PDF document file path as argument

For Each value In myBarcode
	Console.WriteLine(value.ToString())
Next value
VB   C#

Aus dem obigen Codeschnipsel können wir ersehen, dass wir zum Lesen von Barcodes mit IronBarcode einfach die Dateipfadzeichenkette des PDF-Dokuments in BarcodeReader.ReadPdf() method to read the barcode value, and store the result in a variable. Wenn Sie die Werte aller im PDF-Dokument gefundenen Barcodes auf der Konsole ausgeben möchten, verwenden Sie einfach foreach schleife, um jedes in der Variablen gefundene Element zu iterieren und zu drucken, indem Sie ToString() method on them. Darüber hinaus demonstriert der obige Codeschnipsel auch die Verwendung einer Sammlung von PDF-Dokumentnamen als Argument in BarcodeReader.ReadPdf() .

Was aber, wenn die Barcodes im PDF-Dokument nicht gelesen werden können? Was ist, wenn die Leistung so langsam ist? Dies ist der Ort, an dem pDF-Strichcode-Lesen im Voraus stattfindet, bei dem wir die PdfBarcodeReaderOptions zur Verbesserung der Lesequalität, der Genauigkeit und der Leistung.

PDF-Barcode-Reader-Optionen einstellen

Genau wie beim Lesen von Barcodes aus Bildern können die Benutzer auch beim Lesen von Barcodes aus PDF-Dokumenten die Eigenschaften des Barcode-Lesegeräts anpassen, d. h PdfBarcodeReaderOptions. Anpassen der Eigenschaften in PdfBarcodeReaderOptions wird beim Lesen sehr hilfreich sein qualität, Genauigkeit und auch Leistung. Alle einstellbaren Eigenschaften in BarcodeReaderOptions werden vererbt in PdfBarcodeReaderOptionsmit einigen zusätzlichen Eigenschaften für PDF-Dokumente. Für den Anfang können die Benutzer die seitenzahl oder collection of seitenzahls aus dem PDF-Dokument, in dem sie die PdfBarcodeReaderOptions anzuwenden, wenn eine neue Instanz von PdfBarcodeReaderOptions. Der folgende Codeschnipsel veranschaulicht

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-2.cs
using IronBarCode;
using System.Collections.Generic;

List<int> pageNumber = new List<int>() { 1, 2, 3 };

PdfBarcodeReaderOptions PdfOptions = new PdfBarcodeReaderOptions(pageNumber)  // can also use individual page number as argument
{
    // Properties of PDF Barcode reader options
};
Imports IronBarCode
Imports System.Collections.Generic

Private pageNumber As New List(Of Integer)() From {1, 2, 3}

Private PdfOptions As New PdfBarcodeReaderOptions(pageNumber)
VB   C#

Lassen Sie uns nun die zusätzlichen Eigenschaften in PdfBarcodeReaderOptions zur Manipulation zur Verfügung stehen, abgesehen von denen, die in BarcodeReaderOptions

DPI

Die Benutzer können den DPI-Wert (Dots Per Inch) des Barcode-Bildes in einem PDF-Dokument festlegen. Dies hilft beim Lesen eines Barcode-Bildes von schlechter Qualität in einem PDF-Dokument. Diese Eigenschaft kann mit Integer wert.

Seitennummern

Wenn die Benutzer die Seitenzahl, die den Barcode enthält, der in einem PDF-Dokument gelesen werden muss, im Voraus kennen, können sie sie in dieser Eigenschaft angeben. Dadurch wird die Leseleistung von IronBarcode erheblich verbessert, insbesondere bei PDF-Dokumenten mit vielen Seiten, da IronBarcode nicht alle Seiten oder Seiten, die keine Barcodes enthalten, lesen muss. Diese Eigenschaft ist 1-basiert, d.h. die erste Seite des PDF-Dokuments ist 1 statt 0.

Passwort

Wie der Name schon sagt, ermöglicht diese Eigenschaft die Arbeit mit verschlüsselten PDF-Dateien, die eine Passworteingabe erfordern, um auf den Inhalt des PDF-Dokuments zuzugreifen. Bitte beachten Sie jedoch, dass IronBarcode nicht in der Lage ist, das Passwort für PDF-Dokumente zu vergeben. Diese Eigenschaft akzeptiert Zeichenfolge eingang.

Skala

Mit dieser Eigenschaft können die Benutzer die skalenfaktor für die Skalierung von Breite und Höhe bei der Konvertierung in Bild. Diese Eigenschaft akzeptiert Integer als Wert und der Standardwert für diese Eigenschaft ist 3,5. Die Einstellung dieser Eigenschaft hilft beim Lesen kleiner Barcodes in einem PDF-Dokument, da das PDF-Dokument beim Vergrößern vergrößert wird.

Erweitertes Lesen von Barcodes aus PDF-Dokumenten

Da wir nun die Eigenschaften in PdfBarcodeReaderOptions die für Anpassungen und Optimierungen zur Verfügung stehen, sehen wir uns an, wie man sie im Projekt zum Lesen von Strichcodes in PDF-Dokumenten anwendet.

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-3.cs
using IronBarCode;
using System;
using System.Collections.Generic;

List<int> pageNumber = new List<int>() { 1, 2, 3 };

PdfBarcodeReaderOptions PdfOptions = new PdfBarcodeReaderOptions(pageNumber)
{
    DPI = 150,
    //PageNumbers = pageNumber,      //this property is not needed if page numbers has been specified as the argument in PdfBarcodeReaderOptions
    Password = "barcode",
    Scale = 3.5,
    //properties below are some of the properties inherited from BarcodeReaderOptions
    Speed = ReadingSpeed.Detailed,
    ExpectBarcodeTypes = BarcodeEncoding.Code93,
    ExpectMultipleBarcodes = true
};

var myBarcode = BarcodeReader.ReadPdf(@"pdf_a_filepath.pdf", PdfOptions);
foreach (var value in myBarcode)
{
    Console.WriteLine(value.ToString());
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic

Private pageNumber As New List(Of Integer)() From {1, 2, 3}

Private PdfOptions As New PdfBarcodeReaderOptions(pageNumber) With {
	.DPI = 150,
	.Password = "barcode",
	.Scale = 3.5,
	.Speed = ReadingSpeed.Detailed,
	.ExpectBarcodeTypes = BarcodeEncoding.Code93,
	.ExpectMultipleBarcodes = True
}

Private myBarcode = BarcodeReader.ReadPdf("pdf_a_filepath.pdf", PdfOptions)
For Each value In myBarcode
	Console.WriteLine(value.ToString())
Next value
VB   C#

Der obige Codeschnipsel zeigt, wie man die PdfBarcodeReaderOptions eigenschaften in IronBarcode. Die PdfBarcodeReaderOptions muss zunächst mit einem Variablennamen initialisiert werden, bevor auf die Eigenschaften zugegriffen und diese angepasst werden können. Im Codeschnipsel können wir auch sehen, dass die Liste der Seitenzahlen des PDF-Dokuments als Argument beim Initialisieren verwendet wurde PdfBarcodeReaderOptions. Hier wird die Seitenzahl angegeben, die wir für die Einstellungen von PdfBarcodeReader zu bewerben. Die Benutzer können die PDF-Seitenzahl auch im Feld PdfBarcodeReaderOptions eigenschaft als Seitennummern.

Auf der anderen Seite können wir auch sehen, dass wir die Eigenschaften von BarcodeReaderOptions wie zum Beispiel ExpectMultipleBarcodes und ExpectBarcodeTypes in PdfBarcodeReaderOptions da sie von der ursprünglichen Klasse geerbt werden. Dies wird die allgemeine Leseleistung und -genauigkeit erheblich verbessern. Zur Anwendung der eingestellten Eigenschaften von PdfBarcodeReaderOptions im Barcode-Lesevorgang den Variablennamen des PdfBarcodeReaderOptions klasse, die wir als zweites Argument in BarcodeReader.ReadPdf() method, with PDF document to be read file path as the first argument.

Hairil Hasyimi Bin Omar

Software-Ingenieur

Wie alle großartigen Ingenieure ist Hairil ein eifriger Lerner. Er verfeinert seine Kenntnisse in C#, Python und Java und nutzt dieses Wissen, um den Teammitgliedern von Iron Software einen Mehrwert zu bieten. Hairil kam von der Universiti Teknologi MARA in Malaysia zum Iron Software-Team, wo er einen Bachelor-Abschluss in Chemie- und Verfahrenstechnik erwarb.