Wie man Barcodes und QR-Codes mit OCR in C# liest

Lesen von BarCodes und QR-Codes in C#35; mit IronOCR

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

IronOCR liest Barcodes und QR-Codes in C#, indem in der Konfiguration ReadBarCodes = true eingestellt wird. Diese einzige Einstellung ermöglicht die automatische Extraktion von Barcodewerten aus PDFs und Bildern neben der normalen Texterkennung und unterstützt über 20 Barcodeformate, darunter QR-Codes, Code 128 und Data Matrix.

Schnellstart: Barcodes aus einem PDF sofort lesen

Aktivieren Sie die Barcode-Erkennung mit einer Einstellung und scannen Sie PDFs mit IronOCR. Der folgende Code zeigt, wie das Lesen von Barcodes aktiviert, eine PDF-Datei verarbeitet und dekodierte Werte abgerufen werden.

```cs:title=Testen Sie IronOCRs BarCode Reader jetzt var result = new IronOcr.IronTesseract() { Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = true } }.Read(new IronOcr.OcrPdfInput("document.pdf")); foreach(var bc in result.BarCodes) Console.WriteLine(bc.Value);


<div class="hsg-featured-snippet">
    <h3>Minimaler Arbeitsablauf (5 Schritte)</h3>
    <ol>
        <li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/">Herunterladen einer C#-Bibliothek zum Lesen von Barcodes und QR-Codes.</a></li>
        <li>Importieren Sie das Zielbild und das PDF-Dokument.</li>
        <li>Aktivieren Sie das Lesen von Barcodes, indem Sie die Eigenschaft <strong><code>ReadBarCodes</code></strong> auf true setzen.</li>
        <li>Verwenden Sie die Methode <code>Lesen</code>, um die OCR wie gewohnt durchzuführen.</li>
        <li>Ausgabe der erkannten Text- und BarCode-Werte.</li>
    </ol>
</div>

<br class="clear">

## Wie kann ich BarCodes aus PDF-Dokumenten lesen?

Erstellen Sie ein `IronTesseract` Objekt, um die Lesung durchzuführen. Setzen Sie die Eigenschaft **`ReadBarCodes`** auf true, um die Barcode-Erkennung zu aktivieren. Importieren Sie das PDF-Dokument mit dem [`OcrPdfInput`](https://ironsoftware.com/csharp/ocr/how-to/input-pdfs/) Konstruktor. Verwenden Sie die Methode ``Lesen``, um die importierte PDF-Datei mit OCR zu bearbeiten.

Hier ist ein Beispiel für dieses PDF-Dokument:

<iframe loading="lazy" src="/static-assets/ocr/how-to/barcodes/pdfWithBarcodes.pdf#view=fit" width="100%" height="400px"></iframe>

```csharp
:path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-barcodes.cs
IronOCR Debug-Ausgabe zeigt extrahierten Text und drei Barcodes (A,B,C) aus PDF mit Geschäftsprofilen

Mehrere BarCode-Werte erscheinen unter den BarCodes und sind im extrahierten Text enthalten.

Warum extrahiert IronOCR sowohl Text- als auch BarCode-Werte?

Die duale Extraktion von IronOCR bietet eine umfassende Dokumentenanalyse. Bei der Verarbeitung von Dokumenten, die sowohl Text als auch Barcodes enthalten, führt die Bibliothek eine standardmäßige OCR-Textextraktion durch und dekodiert gleichzeitig BarCode-Symbologien. Dieser einheitliche Ansatz macht mehrere Verarbeitungsschritte oder separate Bibliotheken überflüssig.

Die Textextraktion erfasst menschenlesbare Elemente, während die Barcode-Erkennung maschinenlesbare Daten identifiziert und dekodiert. Dies kommt Dokumenten wie Rechnungen, Versandetiketten oder Bestandsberichten zugute, bei denen Barcodewerte mit gedrucktem Text korrelieren. Die OcrResult-Klasse trennt diese Ausgaben - den Text über die Eigenschaft Text und die BarCode-Daten über die Sammlung Barcodes.

Welche BarCode-Formate werden unterstützt?

IronOCR unterstützt über 20 Barcode-Formate:

1D BarCodes:

  • Code 128, Code 39, Code 93
  • EAN-13, EAN-8
  • UPC-A, UPC-E
  • Codabar
  • ITF (Interleaved 2 von 5)
  • MSI
  • Plessey

2D BarCodes:

  • QR-Code
  • Datenmatrix
  • PDF417
  • Azteken-Code
  • MaxiCode

Für spezialisierte Anwendungen wie das Lesen von MICR-Schecks oder die Verarbeitung von Ausweisdokumenten ergänzen die Barcode-Funktionen von IronOCR die Textextraktionsfunktionen.

Wann sollte ich OCR für das Lesen von Barcodes anstelle von dedizierten Barcode-Bibliotheken verwenden?

Entscheiden Sie sich für IronOCRs integrierte Barcode-Lesung, wenn:

  1. Mixed Content Processing: Dokumente enthalten sowohl Text als auch BarCodes (Versandetiketten, Rechnungen oder gescannte Dokumente)
  2. Single Library Preference: Sie möchten Abhängigkeiten minimieren und eine einzige Lösung verwenden
  3. PDF-Verarbeitung: Sie verwenden IronOCR bereits für PDF OCR Textextraktion
  4. Komplexe Dokumentenlayouts: Dokumente haben BarCodes, die in Textbereiche oder Tabellen eingebettet sind

Verwenden Sie spezielle BarCode-Bibliotheken, wenn:

  • Verarbeitung großer Mengen reiner Barcode-Bilder
  • BarCode-Scannen in Echtzeit erforderlich (< 50 ms Reaktionszeit)
  • Arbeit mit beschädigten oder minderwertigen Barcodes, die spezielle Algorithmen erfordern
  • Implementierung des mobilen Barcode-Scannens mit Kameraoptimierung

Wie lese ich QR-Codes aus Dokumenten?

Setzen Sie wie beim Lesen von Barcodes die Eigenschaft ReadBarCodes auf true. Außer dem Dateipfad sind keine weiteren Änderungen am Code erforderlich. Verarbeiten Sie dieses PDF-Dokument mit QR-Codes:

:path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-qr-codes.cs
using IronOcr;
using System;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = true;

// Add PDF
using var imageInput = new OcrPdfInput("pdfWithQrCodes.pdf");

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Output detected barcodes and text values
Console.WriteLine("Extracted text:");
Console.WriteLine(ocrResult.Text);
Console.WriteLine("Extracted barcodes:");
foreach (var barcode in ocrResult.Barcodes)
{
    Console.WriteLine(barcode.Value);
}
Imports IronOcr
Imports System

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = True

' Add PDF
Dim imageInput = New OcrPdfInput("pdfWithQrCodes.pdf")

' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Output detected barcodes and text values
Console.WriteLine("Extracted text:")
Console.WriteLine(ocrResult.Text)
Console.WriteLine("Extracted barcodes:")
For Each barcode In ocrResult.Barcodes
	Console.WriteLine(barcode.Value)
Next barcode
$vbLabelText   $csharpLabel
IronOCR-Ausgabe in Visual Studio mit extrahiertem Text und erfolgreich dekodierten QR-Codes A, B und C aus dem Dokument

Warum funktioniert die gleiche Konfiguration sowohl für BarCodes als auch für QR-Codes?

Die einheitliche Barcode-Erkennungsfunktion von IronOCR behandelt alle maschinenlesbaren Codes gleich. The ReadBarCodes configuration activates a comprehensive symbology detector that recognizes both 1D (linear barcodes) and 2D (QR codes, Data Matrix) formats without requiring format-specific settings. Dieses Design vereinfacht die Implementierung und reduziert die Komplexität der Konfiguration.

Der Erkennungsalgorithmus erkennt automatisch:

  • Identifiziert den Symbologietyp anhand von Mustererkennung
  • Angemessene Dekodierungsalgorithmen anwenden
  • Beherrscht Ausrichtung und Größenunterschiede
  • Liefert Ergebnisse in einem einheitlichen Format, unabhängig vom Barcodetyp

Dieser Ansatz spiegelt wider, wie Computer-Vision-Modelle funktionieren - sie werden auf mehrere Formate trainiert, um universelle Erkennungsmöglichkeiten zu bieten.

Was sind häufige Probleme beim Lesen von QR-Codes mit OCR?

Zu den üblichen Herausforderungen bei der Verarbeitung von QR-Codes gehören:

  1. Auflösungsprobleme: QR-Codes in PDFs werden möglicherweise unter die Mindestmodulgröße heruntergerechnet. Verwenden Sie DPI-Einstellungen, um eine angemessene Auflösung zu gewährleisten (mindestens 300 DPI empfohlen).

  2. Bildqualität: Gescannte QR-Codes sind oft unscharf, verrauscht oder verzerrt. Wenden Sie Bildkorrekturfilter an, um die Klarheit zu verbessern:
// Apply filters to improve QR code readability
ocrTesseract.Configuration.ReadBarCodes = true;
var input = new OcrImageInput("qr-code-scan.jpg");
input.DeNoise();
input.Sharpen();
input.EnhanceResolution();

var result = ocrTesseract.Read(input);
// Apply filters to improve QR code readability
ocrTesseract.Configuration.ReadBarCodes = true;
var input = new OcrImageInput("qr-code-scan.jpg");
input.DeNoise();
input.Sharpen();
input.EnhanceResolution();

var result = ocrTesseract.Read(input);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Orientierungsprobleme: QR-Codes in Schräglage werden möglicherweise nicht richtig entschlüsselt. Aktivieren Sie die Seitenrotationserkennung, um falsch ausgerichtete Dokumente zu behandeln.

  2. Mixed Content Interference: Text oder Grafiken, die sich mit QR-Codes überschneiden, können die Erkennung verhindern. Verwenden Sie Zuschnittbereiche, um bei Bedarf QR-Code-Bereiche zu isolieren.

Wie kann ich die Erkennungsgenauigkeit von QR-Codes verbessern?

Optimieren Sie die QR-Code-Erkennung mit diesen Techniken:

  1. Bilder vorverarbeiten: Verwenden Sie den Filter-Assistenten, um die optimalen Verbesserungseinstellungen zu ermitteln:
// Enhanced QR code reading with preprocessing
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;

// Configure for better QR detection
var input = new OcrImageInput("document-with-qr.pdf");
input.TargetDPI = 300; // Ensure sufficient resolution
input.Binarize(); // Convert to black and white
input.DeNoise(); // Remove image artifacts

var result = ocrTesseract.Read(input);
// Enhanced QR code reading with preprocessing
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;

// Configure for better QR detection
var input = new OcrImageInput("document-with-qr.pdf");
input.TargetDPI = 300; // Ensure sufficient resolution
input.Binarize(); // Convert to black and white
input.DeNoise(); // Remove image artifacts

var result = ocrTesseract.Read(input);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Mehrere Seiten handhaben: Für mehrseitige Dokumente mit QR-Codes auf mehreren Seiten:
// Process multi-page documents efficiently
using var pdfInput = new OcrPdfInput("multi-page-qr-document.pdf");
pdfInput.TargetDPI = 300;

var results = ocrTesseract.Read(pdfInput);
foreach (var page in results.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}:");
    foreach (var barcode in page.Barcodes)
    {
        Console.WriteLine($"  QR Code: {barcode.Value}");
        Console.WriteLine($"  Location: X={barcode.X}, Y={barcode.Y}");
    }
}
// Process multi-page documents efficiently
using var pdfInput = new OcrPdfInput("multi-page-qr-document.pdf");
pdfInput.TargetDPI = 300;

var results = ocrTesseract.Read(pdfInput);
foreach (var page in results.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}:");
    foreach (var barcode in page.Barcodes)
    {
        Console.WriteLine($"  QR Code: {barcode.Value}");
        Console.WriteLine($"  Location: X={barcode.X}, Y={barcode.Y}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Asynchrone Verarbeitung: Für eine bessere Leistung bei mehreren Dokumenten, verwenden Sie async Methoden:
// Asynchronous QR code reading
var result = await ocrTesseract.ReadAsync(imageInput);
// Asynchronous QR code reading
var result = await ocrTesseract.ReadAsync(imageInput);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Fehlererkennung: Aktivieren Sie Ergebnishervorhebung, um zu visualisieren, was IronOCR erkennt:
result.SaveAsHighlightedImage("qr-detection-debug.png");
result.SaveAsHighlightedImage("qr-detection-debug.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Leistungsoptimierung für die Verarbeitung von BarCodes in großem Maßstab

Wenn Sie Tausende von Dokumenten mit Barcodes und QR-Codes verarbeiten, sollten Sie diese Optimierungsstrategien anwenden:

  1. Multithreading: Nutzen Sie die Multithreading-Verarbeitung, um mehrere Dokumente gleichzeitig zu verarbeiten:
// Process multiple documents in parallel
var documents = new[] { "doc1.pdf", "doc2.pdf", "doc3.pdf" };
var results = documents.AsParallel().Select(doc =>
{
    var tesseract = new IronTesseract();
    tesseract.Configuration.ReadBarCodes = true;
    return tesseract.Read(new OcrPdfInput(doc));
}).ToList();
// Process multiple documents in parallel
var documents = new[] { "doc1.pdf", "doc2.pdf", "doc3.pdf" };
var results = documents.AsParallel().Select(doc =>
{
    var tesseract = new IronTesseract();
    tesseract.Configuration.ReadBarCodes = true;
    return tesseract.Read(new OcrPdfInput(doc));
}).ToList();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Speichermanagement: Verwenden Sie Abbruch-Tokens für lang laufende Operationen:
// Implement cancellation for large batch processing
using var cts = new CancellationTokenSource();
ocrTesseract.Configuration.CancellationToken = cts.Token;

// Cancel if processing takes too long
cts.CancelAfter(TimeSpan.FromMinutes(5));
// Implement cancellation for large batch processing
using var cts = new CancellationTokenSource();
ocrTesseract.Configuration.CancellationToken = cts.Token;

// Cancel if processing takes too long
cts.CancelAfter(TimeSpan.FromMinutes(5));
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. Ergebnis-Export: Speichern Sie die Ergebnisse als durchsuchbare PDFs, um sowohl Text- als auch Barcode-Daten zu erhalten:
// Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf");
// Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Integration mit Geschäftsanwendungen

IronOCRs Barcode-Funktionen lassen sich nahtlos in bestehende .NET-Anwendungen integrieren. Zu den üblichen Integrationsszenarien gehören:

  • Bestandsmanagement: Extrahieren von Produktcodes aus Versandmanifesten
  • Dokumentenarchivierung: Indizierung gescannter Dokumente durch eingebettete BarCode-Identifikatoren
  • Rechnungsverarbeitung: Abgleich von BarCode-SKUs mit Einzelposten in Finanzdokumenten
  • Aufzeichnungen im Gesundheitswesen: Verarbeiten Sie Barcodes von Patientenarmbändern zusammen mit medizinischen Formularen

Für Produktionsanwendungen, die große Mengen an Barcodes und QR-Codes verarbeiten, sollten Sie die Implementierung einer Fortschrittsverfolgung in Betracht ziehen, um den Verarbeitungsstatus zu überwachen und die Leistung auf der Grundlage realer Metriken zu optimieren.

Häufig gestellte Fragen

Wie kann ich das Lesen von Barcodes in meiner C#-Anwendung aktivieren?

Mit IronOCR aktivieren Sie das Lesen von Barcodes, indem Sie ReadBarCodes = true in der TesseractConfiguration einstellen. Diese einzige Einstellung aktiviert die automatische Extraktion von Barcodewerten aus PDFs und Bildern neben der normalen Texterkennung und unterstützt über 20 Barcodeformate.

Kann ich sowohl Text als auch BarCodes aus demselben Dokument lesen?

Ja, IronOCR führt eine duale Extraktion durch - es erfasst menschenlesbaren Text durch Standard-OCR und dekodiert gleichzeitig maschinenlesbare Barcodes. Die Klasse OcrResult trennt diese Ausgaben, wobei der Text über die Eigenschaft Text und die Barcodedaten über die Sammlung Barcodes zugänglich sind.

Welche BarCode-Formate können erkannt werden?

IronOCR unterstützt über 20 Barcode-Formate, darunter 1D-Barcodes (Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, Codabar, ITF, MSI, Plessey) und 2D-Barcodes (QR-Code, Data Matrix und mehr).

Wie kann ich Barcodes aus PDF-Dokumenten extrahieren?

Erstellen Sie ein IronTesseract-Objekt, setzen Sie ReadBarCodes auf true, importieren Sie Ihr PDF mit dem OcrPdfInput-Konstruktor und verwenden Sie dann die Read-Methode. IronOCR führt OCR durch und extrahiert alle erkannten Barcodewerte, auf die Sie über die result.BarCodes-Sammlung zugreifen können.

Benötige ich separate Bibliotheken für die OCR von Text und das Lesen von Barcodes?

Nein, der einheitliche Ansatz von IronOCR macht mehrere Verarbeitungsschritte oder separate Bibliotheken überflüssig. Es führt eine standardmäßige OCR-Textextraktion durch und dekodiert gleichzeitig Barcodesymbologien in einem einzigen Vorgang.

Chaknith Bin
Software Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat umfassende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Einblicke aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentationen und einem insgesamt besseren Erlebnis bei.
Bereit anzufangen?
Nuget Downloads 5,246,844 | Version: 2025.12 gerade veröffentlicht