Wie man Barcodes aus PDF-Dokumenten liest
How to Read Barcode From PDF in C#
-
Installieren Sie die Barcode-Bibliothek, um Barcode-Dateien zu verarbeiten.
-
Erstellen Sie
PdfBarcodeReaderOptions
, falls erforderlich. -
Verwenden Sie die
ReadPdf
-Methode vonBarcodeReader
, um Barcodes aus PDFs zu lesen. -
Spezifizieren Sie zusätzliche Barcode-Leseoptionen mithilfe von
BarcodeReaderOption
. -
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 komplexer und anders als Bilder sind, sollte auch eine andere Lesemethode verwendet werden, nämlich die BarcodeReader.ReadPdf()
-Methode. Diese Methode akzeptiert verschiedene Typen von PDF-Dokumenten, einschließlich :
- byte[]-Array: PDF-Dokument als Byte-Array.
- IEnumerable
: PDF documents as byte arrays stored in a collection. - MemoryStream : PDF-Dokumente als MemoryStream-Typ.
- IEnumerable
: PDF documents as collection of MemoryStream - String: Pfadzeichenkette des PDF-Dokuments. Wenn das PDF-Dokument bereits im Projekt kopiert wurde, wäre dies der Name des PDF-Dokuments als Zeichenkette.
- IEnumerable
: PDF document path/name strings stored in a collection.
Abgesehen von den oben genannten Eingabemöglichkeiten akzeptiert BarcodeReader.ReadPdf()
auch PdfBarcodeReaderOptions
für ein fortgeschritteneres/verbessertes Lesen, welches wir im nächsten Unterthema besprechen werden. Nun, lassen Sie uns den folgenden Codeausschnitt ansehen, der die Verwendung der Methode BarcodeReader.ReadPdf()
zur Erkennung von Barcodes in PDF-Dokumenten zeigt.
: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
Anhand des obigen Codeausschnitts können wir sehen, dass wir, um Barcodes mit IronBarcode zu lesen, einfach den Dateipfad des PDF-Dokuments in die BarcodeReader.ReadPdf()
-Methode einfügen können, um den Barcode-Wert zu lesen und das Ergebnis in einer Variablen zu speichern. Wenn Sie die Werte aller im PDF-Dokument gefundenen Barcodes auf der Konsole ausdrucken möchten, verwenden Sie einfach die foreach
-Schleife, um über jedes in der Variablen gefundene Element zu iterieren und es mit der ToString()
-Methode auszudrucken. Darüber hinaus demonstriert der obige Codeausschnitt 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? Hier findet fortschrittliches PDF-Barcode-Lesen statt, bei dem wir PdfBarcodeReaderOptions
manipulieren, um die Lesegenauigkeit, Präzision und Leistungsfähigkeit zu verbessern.
PDF-Barcode-Reader-Optionen einstellen
Ähnlich wie beim Lesen von Barcodes aus Bildern ermöglicht das Lesen von Barcodes aus PDF-Dokumenten den Benutzern auch, die Eigenschaften im Barcode-Leser anzupassen oder zu ändern, genannt PdfBarcodeReaderOptions
. Das Anpassen der Eigenschaften in PdfBarcodeReaderOptions
wird erheblich dazu beitragen, die Qualität, Genauigkeit und auch die Leistung zu verbessern. Alle anpassbaren Eigenschaften in BarcodeReaderOptions
werden in PdfBarcodeReaderOptions
geerbt, mit einigen zusätzlichen Eigenschaften für PDF-Dokumente. Zu Beginn können Benutzer die Seitennummer oder Sammlung von Seitennummern aus dem PDF-Dokument angeben, auf die sie die PdfBarcodeReaderOptions
anwenden möchten, wenn sie eine neue Instanz von PdfBarcodeReaderOptions
erstellen. 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)
Entdecken wir nun die zusätzlichen Eigenschaften in PdfBarcodeReaderOptions
, die manipulierbar sind, abgesehen von denen, die in BarcodeReaderOptions
verfügbar sind.
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 einem Integer-Wert festgelegt werden.
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 String-Eingaben.
Skala
Diese Eigenschaft ermöglicht es den Benutzern, den Skalierungsfaktor für die Skalierung von Breite und Höhe bei der Umwandlung in ein Bild zu steuern. Diese Eigenschaft akzeptiert Integer als Wert und der Standardwert für diese Eigenschaft ist 3.5. Durch das Festlegen dieser Eigenschaft wird das Lesen von kleinen Barcodes in einem PDF-Dokument erleichtert, da das Vergrößern das PDF-Dokument heranzoomen wird.
Erweitertes Lesen von Barcodes aus PDF-Dokumenten
Da wir nun die Eigenschaften in PdfBarcodeReaderOptions
kennen, die für Anpassungen zur Verfügung stehen, lassen Sie uns sehen, wie man diese im Projekt anwendet, um Barcodes in PDF-Dokumenten zu lesen.
: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
Der obige Codeausschnitt zeigt, wie PdfBarcodeReaderOptions
-Eigenschaften in IronBarcode implementiert werden. Die PdfBarcodeReaderOptions
müssen zuerst mit einem Variablennamen initialisiert werden, bevor die Eigenschaften darauf zugegriffen und angepasst werden können. Im Codebeispiel sehen wir auch, dass die Liste der Seitenzahlen des PDF-Dokuments als Argument bei der Initialisierung von PdfBarcodeReaderOptions
verwendet wurde. Dies legt die Seitenzahl fest, auf die die Einstellungen von PdfBarcodeReader
angewendet werden sollen. Benutzer können auch die PDF-Seitennummer in der PdfBarcodeReaderOptions
-Eigenschaft als PageNumbers
angeben.
Auf der anderen Seite können wir auch sehen, dass wir Eigenschaften wie ExpectMultipleBarcodes
und ExpectBarcodeTypes
aus BarcodeReaderOptions
in PdfBarcodeReaderOptions
verwenden können, da sie von der ursprünglichen Klasse geerbt werden. Dies wird die allgemeine Leseleistung und -genauigkeit erheblich verbessern. Um die festgelegten Eigenschaften von PdfBarcodeReaderOptions
beim Barcode-Lesen anzuwenden, geben Sie den Variablennamen der PdfBarcodeReaderOptions
-Klasse, die wir erstellt haben, als zweites Argument in der BarcodeReader.ReadPdf()
-Methode ein, wobei der Dateipfad des zu lesenden PDF-Dokuments als erstes Argument verwendet wird.