Wie man Barcodes aus PDF-Dokumenten liest

Hairil related to Wie man Barcodes aus PDF-Dokumenten liest
Hairil Hasyimi Bin Omar
19. März 2023
Aktualisiert 20. Oktober 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

How to Read Barcode From PDF in C#

  1. Installieren Sie die Barcode-Bibliothek, um Barcode-Dateien zu verarbeiten.

  2. Erstellen Sie PdfBarcodeReaderOptions, falls erforderlich.

  3. Verwenden Sie die ReadPdf-Methode von BarcodeReader, um Barcodes aus PDFs zu lesen.

  4. Spezifizieren Sie zusätzliche Barcode-Leseoptionen mithilfe von BarcodeReaderOption.

  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 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
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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.

Hairil related to Erweitertes Lesen von Barcodes aus PDF-Dokumenten
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.