Wie man Barcodes aus PDFs in C# liest

Lesen von BarCodes aus PDF in C

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

Das Auslesen von Barcodes aus PDF-Dokumenten bedeutet, die in den Seiten einer PDF-Datei enthaltenen Barcodes zu erkennen und zu dekodieren. Anstatt einen gedruckten Barcode manuell zu scannen, ermöglicht diese Technologie die direkte Extraktion der kodierten Informationen aus einem digitalen Dokument. Dies ist besonders nützlich für die Automatisierung von Arbeitsabläufen, die die Verarbeitung von Rechnungen, Versandetiketten, Berichten und anderen Dokumenten umfassen, die Barcodes zur Datenspeicherung verwenden.

Schnellstart: Barcodes direkt aus einer PDF-Datei lesen)

Legen Sie direkt los mit der ReadPdf-Methode von IronBarcode – sie liest Barcodes aus PDFs sofort, ohne sie vorher in Bilder umzuwandeln. Mit nur einer Codezeile können Sie Barcode-Daten schnell extrahieren und bei Bedarf erweiterte Optionen entwickeln.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronBarcode mit dem NuGet-Paketmanager.

    PM > Install-Package BarCode

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var results = IronBarCode.BarcodeReader.ReadPdf("invoice.pdf");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronBarcode in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

as-heading:3(Übersicht: Minimaler Arbeitsablauf

  1. Installieren Sie die Barcode-Bibliothek, um Barcode-Dateien zu verarbeiten.
  2. Erstellen Sie bei Bedarf PdfBarcodeReaderOptions .
  3. Verwenden Sie die ReadPdf Methode von BarcodeReader , um Barcodes aus PDFs zu lesen.
  4. Zusätzliche Barcode-Leseoptionen können mit BarcodeReaderOption angegeben werden.
  5. Barcodewerte extrahieren.

Barcodes direkt aus PDF-Dokumenten lesen

Neben der Fähigkeit von IronBarcode, Barcodes aus Bildern zu lesen, ist IronBarcode auch stolz auf seine Fähigkeit, Barcodes aus PDF-Dokumenten zu lesen. Dadurch entfällt für die Benutzer die Mühe, PDF-Dokumente vor dem Einlesen in IronBarcode in Bilder umzuwandeln. Da PDF-Dokumente komplexer sind und sich von Bildern unterscheiden, sollte auch eine andere Lesemethode verwendet werden, nämlich die Methode BarcodeReader.ReadPdf() . Diese Methode akzeptiert verschiedene Arten von PDF-Dokumenten als Eingabe, darunter:

  • byte[] array : PDF-Dokument als Byte-Array.
  • IEnumerable<Byte[]> : PDF-Dokumente als Byte-Arrays, die in einer Sammlung gespeichert sind.
  • MemoryStream : PDF-Dokumente als MemoryStream-Typ.
  • IEnumerable<Stream> : PDF-Dokumente als Sammlung von MemoryStream.
  • String : Pfad zum PDF-Dokument als Zeichenkette. Falls das PDF-Dokument bereits in das Projekt kopiert wurde, wäre dies der Name des PDF-Dokuments als Zeichenkette.
  • IEnumerable<String> : In einer Sammlung gespeicherte Pfad-/Namenszeichenfolgen von PDF-Dokumenten.

Neben den oben genannten Eingabetypen akzeptiert BarcodeReader.ReadPdf() auch PdfBarcodeReaderOptions für ein erweitertes/verbessertes Lesen, das wir im nächsten Unterthema besprechen werden. Schauen wir uns nun den folgenden Codeausschnitt an, der die Verwendung der Methode BarcodeReader.ReadPdf() zum Lesen von Barcodes in PDF-Dokumenten demonstriert.

: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.ReadPdfs(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.ReadPdfs(docs) 'can also accept individual PDF document file path as argument

For Each value In myBarcode
	Console.WriteLine(value.ToString())
Next value
$vbLabelText   $csharpLabel

Aus dem obigen Codeausschnitt können wir sehen, dass wir zum Lesen von Barcodes mit IronBarcode einfach den Dateipfad des PDF-Dokuments in die Methode BarcodeReader.ReadPdf() 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 ausgeben möchten, verwenden Sie einfach eine foreach Schleife, um jedes Element der Variablen zu durchlaufen und auszugeben, indem Sie die Methode ToString() darauf anwenden. Darüber hinaus zeigt der obige Codeausschnitt auch die Verwendung einer Sammlung von PDF-Dokumentnamen als Argument in BarcodeReader.ReadPdf() .

Mehrere PDFs gleichzeitig lesen

Neben dem Hinzufügen jeder PDF-Datei einzeln zum Array bietet IronBarCode auch eine ReadPdfs Methode, mit der Entwickler schnell eine Liste von PDFs durchlesen können. Dies ist nützlich, wenn Sie aus mehreren PDFs den Barcode extrahieren möchten und vermeiden, diese einzeln hinzufügen zu müssen. Schauen wir uns das folgende Beispiel an.

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

// Get all PDF files from a directory and add to list
string folderPath = @"PATH_TO_YOUR_FOLDER";
List<string> docs = new List<string>(Directory.GetFiles(folderPath, "*.pdf"));

// Read barcodes from all PDFs
var docResult = BarcodeReader.ReadPdfs(docs);

// Print results
foreach (var doc in docResult)
{
    foreach (var item in doc)
    {
        Console.WriteLine("Barcode " + item.ToString() + " found at page " + item.PageNumber);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Im obigen Code werden zunächst alle PDF-Dateien aus einem Verzeichnis abgerufen und anschließend der List<string> hinzugefügt. List<string> Rufen Sie dann ReadPdfs auf und übergeben Sie docs als Eingabeparameter. Die ReadPdfs gibt dann ein Array von BarcodeResults zurück. Zum Schluss durchlaufen wir die docResult und geben die in den einzelnen PDFs gefundenen Barcodes aus.

Einstellungen für den PDF-Barcode-Leser

Ähnlich wie beim Lesen von Barcodes aus Bildern ermöglicht auch das Lesen von Barcodes aus PDF-Dokumenten den Benutzern, die Eigenschaften des Barcode-Lesers, genannt PdfBarcodeReaderOptions , anzupassen oder zu verändern. Durch Anpassen der Eigenschaften in PdfBarcodeReaderOptions lässt sich die Lesequalität, Genauigkeit und Leistung erheblich verbessern. Alle in BarcodeReaderOptions einstellbaren Eigenschaften werden in PdfBarcodeReaderOptions übernommen, zusätzlich gibt es einige weitere Eigenschaften für PDF-Dokumente. Benutzer können beim Erstellen einer neuen Instanz von PdfBarcodeReaderOptions die Seitenzahl oder die Sammlung von Seitenzahlen aus dem PDF-Dokument angeben, auf die die PdfBarcodeReaderOptions angewendet werden sollen. Der folgende Codeausschnitt demonstriert:

: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

Nun wollen wir die zusätzlichen Eigenschaften in PdfBarcodeReaderOptions entdecken, die neben den in BarcodeReaderOptions verfügbaren Eigenschaften manipuliert werden können.

DPI

Benutzer können die DPI-Zahl (Dots Per Inch) des Barcode-Bildes in einem PDF-Dokument festlegen. Dies wird beim Lesen eines Barcode-Bildes von geringer Qualität in einem PDF-Dokument hilfreich sein. Diese Eigenschaft kann mithilfe eines Integer- Werts festgelegt werden.

Seitenzahlen

Wenn Benutzer die Seitenzahl kennen, die den zu lesenden Barcode in einem PDF-Dokument enthält, können sie diese in dieser Eigenschaft angeben. Dadurch wird die Leseleistung von IronBarcode erheblich verbessert, insbesondere bei PDF-Dokumenten mit vielen Seiten, da IronBarcode dann nicht mehr alle Seiten oder Seiten ohne Barcodes lesen muss. Diese Eigenschaft ist 1-basiert, das heißt, die erste Seite des PDF-Dokuments hat den Wert 1 anstatt 0.

Passwort

Wie der Name schon sagt, ermöglicht diese Funktion Benutzern die Arbeit mit verschlüsselten PDF-Dateien, für deren Inhalt die Eingabe eines Passworts erforderlich ist. Bitte beachten Sie jedoch, dass IronBarcode Ihnen das Passwort für das PDF-Dokument nicht mitteilen kann. Diese Eigenschaft akzeptiert eine Zeichenkette als Eingabe.

Skalieren

Diese Eigenschaft ermöglicht es Benutzern, den Skalierungsfaktor für die Skalierung von Breite und Höhe beim Konvertieren in ein Bild zu steuern. Diese Eigenschaft akzeptiert eine Ganzzahl als Wert, der Standardwert ist 3,5. Durch Festlegen dieser Eigenschaft lässt sich das Lesen kleiner Barcodes in einem PDF-Dokument erleichtern, da durch Vergrößern das PDF-Dokument vergrößert wird.

Erweiterte Barcode-Lesung aus PDF-Dokumenten

Nachdem wir nun die in PdfBarcodeReaderOptions verfügbaren Eigenschaften zur Anpassung und Optimierung kennengelernt haben, wollen wir uns ansehen, wie wir sie im Projekt zum Lesen von Barcodes in einem PDF-Dokument anwenden können.

: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 man die Eigenschaften PdfBarcodeReaderOptions in IronBarcode implementiert. Die PdfBarcodeReaderOptions müssen zunächst mit einem Variablennamen initialisiert werden, bevor auf die Eigenschaften zugegriffen und diese angepasst werden können. Im Codeausschnitt ist zu sehen, dass die Liste der Seitenzahlen des PDF-Dokuments als Argument bei der Initialisierung PdfBarcodeReaderOptions verwendet wurde. Hiermit wird die Seitenzahl angegeben, auf die die Einstellungen von PdfBarcodeReader angewendet werden sollen. Benutzer können die PDF-Seitenzahl auch in der Eigenschaft PdfBarcodeReaderOptions als PageNumbers angeben.

Andererseits können wir auch sehen, dass wir Eigenschaften von BarcodeReaderOptions wie ExpectMultipleBarcodes und ExpectBarcodeTypes 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 von uns erstellten Klasse PdfBarcodeReaderOptions als zweites Argument in der Methode BarcodeReader.ReadPdf() an, wobei der Dateipfad des zu lesenden PDF-Dokuments als erstes Argument dient.

Häufig gestellte Fragen

Wie lese ich Barcodes aus PDF-Dokumenten?

Sie können Barcodes aus PDF-Dokumenten lesen, indem Sie die `ReadPdf`-Methode aus der `BarcodeReader`-Klasse in einer .NET-Anwendung verwenden. Diese Methode akzeptiert Eingaben wie Byte-Arrays, Speicherströme und Dateipfade.

Was sind die Vorteile der Verwendung von PdfBarcodeReaderOptions?

PdfBarcodeReaderOptions bieten Einstellungen zur Verbesserung der Barcode-Lesequalität und Genauigkeit, wie z.B. die Anpassung der DPI, die Angabe von Seitennummern und das Verarbeiten von verschlüsselten PDFs mit einem Passwort.

Kann ich Barcodes aus verschlüsselten PDF-Dokumenten lesen?

Ja, Sie können Barcodes aus verschlüsselten PDF-Dokumenten lesen, indem Sie die Password-Eigenschaft in PdfBarcodeReaderOptions verwenden, um das erforderliche Passwort bereitzustellen.

Wie kann ich die Effizienz beim Lesen von Barcodes aus PDFs verbessern?

Verbessern Sie die Effizienz, indem Sie PdfBarcodeReaderOptions verwenden, um Seitennummern anzugeben und den Skalierungsfaktor anzupassen, was den Bedarf reduziert, PDFs in Bilder umzuwandeln, und Zeit und Ressourcen spart.

Welche Eingabeformate akzeptiert die ReadPdf-Methode?

Die `ReadPdf`-Methode akzeptiert verschiedene Eingabeformate, einschließlich byte[]-Arrays, MemoryStream und Dateipfade als Zeichenfolgen.

Ist es möglich, mehrere Barcodes aus einer einzigen PDF-Datei zu lesen?

Ja, durch das Setzen der Eigenschaft ExpectMultipleBarcodes in PdfBarcodeReaderOptions können Sie mehrere Barcodes aus einer einzigen PDF-Datei lesen.

Wie kann ich die Auflösung für das Lesen von Barcodes in PDFs angeben?

Geben Sie die Auflösung an, indem Sie die DPI-Eigenschaft in PdfBarcodeReaderOptions auf den gewünschten Ganzzahlenwert setzen, um die Scanqualität zu steuern.

Welche Rolle spielt der Skalierungsfaktor beim Lesen von Barcodes aus PDFs?

Der Skalierungsfaktor, der standardmäßig auf 3,5 gesetzt ist, wird verwendet, um ein PDF in ein Bild umzuwandeln, was die Qualität und Leistung des Barcode-Lesens beeinflusst.

Kann ich eine .NET Barcode-Bibliothek verwenden, um Barcodes aus Bildern zu lesen?

Ja, eine .NET Barcode-Bibliothek wie IronBarcode kann Barcodes sowohl aus Bildern als auch aus PDF-Dateien lesen, wobei für jedes Format spezifische Methoden verwendet werden.

Was soll ich tun, wenn das Barcode-Lesen nicht genau genug ist?

Wenn das Barcode-Lesen nicht genau ist, passen Sie die PdfBarcodeReaderOptions an, indem Sie die DPI, den Skalierungsfaktor ändern oder die korrekten Seitennummern angeben, um die Qualität zu verbessern.

Hairil Hasyimi Bin Omar
Software Ingenieur
Wie alle großen Ingenieure ist Hairil ein leidenschaftlicher Lerner. Er verfeinert sein Wissen in C#, Python und Java, um Iron Software-Teammitgliedern Mehrwert zu bieten. Hairil kam von der Universiti Teknologi MARA in Malaysia, wo er seinen Bachelor in Chemie- und Verfahrenstechnik abschloss.
Bereit anzufangen?
Nuget Downloads 1,979,979 | Version: 2025.11 gerade veröffentlicht