# Lesen von BarCodes und QR-Codes in C# mit IronOCR
IronOCR liest Barcodes und QR-Codes in C#, indem es `ReadBarCodes = true` in der Konfiguration festlegt. 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.
*as-heading:2(Schnellstart: Barcodes sofort aus einem PDF 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=Try IronOCR's Barcode Reader Now
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">
<h2>Lesen von BarCodes und QR-Codes in C# mit IronOCR</h2>
<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 die Barcode-Lesung, indem Sie die <strong>ReadBarCodes</strong>-Eigenschaft 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 das Lesen durchzuführen. Setzen Sie die **`ReadBarCodes`**-Eigenschaft auf true, um die Barcode-Erkennung zu aktivieren. Import the PDF document using the [`OcrPdfInput`](https://ironsoftware.com/csharp/ocr/how-to/input-pdfs/) constructor. Verwenden Sie die `Read`-Methode, um OCR auf dem importierten PDF auszuführen.
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
using IronOcr;
using System;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = true;
// Add PDF
using var imageInput = new OcrPdfInput("pdfWithBarcodes.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);
}
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/ocr/how-to/barcodes/read-barcodes.webp" alt="IronOCR-Debug-Ausgabe mit extrahiertem Text und drei BarCodes (A, B, C) aus PDF mit Geschäftsprofilen" class="img-responsive add-shadow" />
</div>
</div>
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](https://ironsoftware.com/csharp/ocr/examples/simple-csharp-ocr-tesseract/) 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](https://ironsoftware.com/csharp/ocr/examples/results-objects/) trennt diese Ausgaben – greifen Sie über die `Text`-Eigenschaft auf Text zu und über die `Barcodes`-Sammlung auf Barcode-Daten.
### 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](https://ironsoftware.com/csharp/ocr/examples/read-micr-cheque/) oder die Verarbeitung von [Ausweisdokumenten](https://ironsoftware.com/csharp/ocr/troubleshooting/identity-documents/) 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](https://ironsoftware.com/csharp/ocr/examples/read-scanned-document/))
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](https://ironsoftware.com/csharp/ocr/examples/csharp-pdf-ocr/)
4. **Komplexe Dokumentenlayouts**: Dokumente haben BarCodes, die in Textbereiche oder [Tabellen](https://ironsoftware.com/csharp/ocr/examples/read-table-in-document/) 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?
Wie bei der Barcode-Erkennung setzen Sie die `ReadBarCodes`-Eigenschaft auf true. Außer dem Dateipfad sind keine weiteren Änderungen am Code erforderlich. Verarbeiten Sie dieses PDF-Dokument mit QR-Codes:
<iframe loading="lazy" src="/static-assets/ocr/how-to/barcodes/pdfWithQrCodes.pdf#view=fit" width="100%" height="400px"></iframe>
```csharp
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);
}
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/ocr/how-to/barcodes/read-qr-codes.webp" alt="IronOCR-Ausgabe in Visual Studio mit extrahiertem Text und erfolgreich dekodierten QR-Codes A, B und C aus dem Dokument" class="img-responsive add-shadow" />
</div>
</div>
### 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. Die `ReadBarCodes`-Konfiguration aktiviert einen umfassenden Symbologie-Detektor, der sowohl 1D (lineare Barcodes) als auch 2D (QR-Codes, Data Matrix) Formate erkennt, ohne dass formatspezifische Einstellungen erforderlich sind. 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](https://ironsoftware.com/csharp/ocr/how-to/computer-vision/) 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](https://ironsoftware.com/csharp/ocr/how-to/dpi-setting/), 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](https://ironsoftware.com/csharp/ocr/how-to/image-quality-correction/) an, um die Klarheit zu verbessern:
```csharp
// 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);
```
3. **Orientierungsprobleme**: QR-Codes in Schräglage werden möglicherweise nicht richtig entschlüsselt. Aktivieren Sie die [Seitenrotationserkennung](https://ironsoftware.com/csharp/ocr/how-to/detect-page-rotation/), um falsch ausgerichtete Dokumente zu behandeln.
4. **Mixed Content Interference**: Text oder Grafiken, die sich mit QR-Codes überschneiden, können die Erkennung verhindern. Verwenden Sie [Zuschnittbereiche](https://ironsoftware.com/csharp/ocr/troubleshooting/crop-regions-rectangles/), 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](https://ironsoftware.com/csharp/ocr/how-to/filter-wizard/), um die optimalen Verbesserungseinstellungen zu ermitteln:
```csharp
// 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);
```
2. **Mehrere Seiten handhaben**: Für [mehrseitige Dokumente](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multipage-tiff/) mit QR-Codes auf mehreren Seiten:
```csharp
// 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}");
}
}
```
3. **Asynchrone Verarbeitung**: Für eine bessere Leistung bei mehreren Dokumenten, verwenden Sie [async Methoden](https://ironsoftware.com/csharp/ocr/how-to/async/):
```csharp
// Asynchronous QR code reading
var result = await ocrTesseract.ReadAsync(imageInput);
```
4. **Fehlererkennung**: Aktivieren Sie [Ergebnishervorhebung](https://ironsoftware.com/csharp/ocr/how-to/highlight-texts-as-images/), um zu visualisieren, was IronOCR erkennt:
```csharp
result.SaveAsHighlightedImage("qr-detection-debug.png");
```
### 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](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/), um mehrere Dokumente gleichzeitig zu verarbeiten:
```csharp
// 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();
```
2. **Speichermanagement**: Verwenden Sie [Abbruch-Tokens](https://ironsoftware.com/csharp/ocr/examples/abort-token/) für lang laufende Operationen:
```csharp
// 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));
```
3. **Ergebnis-Export**: Speichern Sie die Ergebnisse als [durchsuchbare PDFs](https://ironsoftware.com/csharp/ocr/examples/make-pdf-searchable/), um sowohl Text- als auch Barcode-Daten zu erhalten:
```csharp
// Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf");
```
### 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](https://ironsoftware.com/csharp/ocr/troubleshooting/financial-language-pack/)
- **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](https://ironsoftware.com/csharp/ocr/how-to/progress-tracking/) in Betracht ziehen, um den Verarbeitungsstatus zu überwachen und die Leistung auf der Grundlage realer Metriken zu optimieren.
IronOCR liest Barcodes und QR-Codes in C#, indem es ReadBarCodes = true in der Konfiguration festlegt. 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 sofort aus einem PDF 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.
1Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr
Install-Package IronOcr
2Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
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);
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);
C#
3Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Importieren Sie das Zielbild und das PDF-Dokument.
Aktivieren Sie die Barcode-Lesung, indem Sie die ReadBarCodes-Eigenschaft auf true setzen.
Verwenden Sie die Methode Lesen, um die OCR wie gewohnt durchzuführen.
Ausgabe der erkannten Text- und BarCode-Werte.
Wie kann ich BarCodes aus PDF-Dokumenten lesen?
Erstellen Sie ein IronTesseract-Objekt, um das Lesen durchzuführen. Setzen Sie die ReadBarCodes-Eigenschaft auf true, um die Barcode-Erkennung zu aktivieren. Import the PDF document using the OcrPdfInput constructor. Verwenden Sie die Read-Methode, um OCR auf dem importierten PDF auszuführen.
Hier ist ein Beispiel für dieses PDF-Dokument:
using IronOcr;using System;// Instantiate IronTesseractIronTesseract ocrTesseract = new IronTesseract();// Enable barcode readingocrTesseract.Configuration.ReadBarCodes = true;// Add PDFusing var imageInput = new OcrPdfInput("pdfWithBarcodes.pdf");// Perform OCROcrResult ocrResult = ocrTesseract.Read(imageInput);// Output detected barcodes and text valuesConsole.WriteLine("Extracted text:");Console.WriteLine(ocrResult.Text);Console.WriteLine("Extracted barcodes:");foreach (var barcode in ocrResult.Barcodes){Console.WriteLine(barcode.Value);}
using IronOcr;
using System;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = true;
// Add PDF
using var imageInput = new OcrPdfInput("pdfWithBarcodes.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);
}
ImportsIronOcrImportsSystem' Instantiate IronTesseractPrivate ocrTesseract As New IronTesseract()' Enable barcode readingocrTesseract.Configuration.ReadBarCodes = True' Add PDFDim imageInput = New OcrPdfInput("pdfWithBarcodes.pdf")' Perform OCRDim ocrResult AsOcrResult = ocrTesseract.Read(imageInput)' Output detected barcodes and text valuesConsole.WriteLine("Extracted text:")Console.WriteLine(ocrResult.Text)Console.WriteLine("Extracted barcodes:")For Each barcode In ocrResult.BarcodesConsole.WriteLine(barcode.Value)Next barcode
Imports IronOcr
Imports System
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = True
' Add PDF
Dim imageInput = New OcrPdfInput("pdfWithBarcodes.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
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 – greifen Sie über die Text-Eigenschaft auf Text zu und über die Barcodes-Sammlung auf Barcode-Daten.
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:
Mixed Content Processing: Dokumente enthalten sowohl Text als auch BarCodes (Versandetiketten, Rechnungen oder gescannte Dokumente)
Single Library Preference: Sie möchten Abhängigkeiten minimieren und eine einzige Lösung verwenden
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?
Wie bei der Barcode-Erkennung setzen Sie die ReadBarCodes-Eigenschaft auf true. Außer dem Dateipfad sind keine weiteren Änderungen am Code erforderlich. Verarbeiten Sie dieses PDF-Dokument mit QR-Codes:
using IronOcr;using System;// Instantiate IronTesseractIronTesseract ocrTesseract = new IronTesseract();// Enable barcode readingocrTesseract.Configuration.ReadBarCodes = true;// Add PDFusing var imageInput = new OcrPdfInput("pdfWithQrCodes.pdf");// Perform OCROcrResult ocrResult = ocrTesseract.Read(imageInput);// Output detected barcodes and text valuesConsole.WriteLine("Extracted text:");Console.WriteLine(ocrResult.Text);Console.WriteLine("Extracted barcodes:");foreach (var barcode in ocrResult.Barcodes){Console.WriteLine(barcode.Value);}
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);
}
ImportsIronOcrImportsSystem' Instantiate IronTesseractPrivate ocrTesseract As New IronTesseract()' Enable barcode readingocrTesseract.Configuration.ReadBarCodes = True' Add PDFDim imageInput = New OcrPdfInput("pdfWithQrCodes.pdf")' Perform OCRDim ocrResult AsOcrResult = ocrTesseract.Read(imageInput)' Output detected barcodes and text valuesConsole.WriteLine("Extracted text:")Console.WriteLine(ocrResult.Text)Console.WriteLine("Extracted barcodes:")For Each barcode In ocrResult.BarcodesConsole.WriteLine(barcode.Value)Next barcode
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
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. Die ReadBarCodes-Konfiguration aktiviert einen umfassenden Symbologie-Detektor, der sowohl 1D (lineare Barcodes) als auch 2D (QR-Codes, Data Matrix) Formate erkennt, ohne dass formatspezifische Einstellungen erforderlich sind. 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:
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).
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 readabilityocrTesseract.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);
' Apply filters to improve QR code readabilityocrTesseract.Configuration.ReadBarCodes = TrueDim input As New OcrImageInput("qr-code-scan.jpg")input.DeNoise()input.Sharpen()input.EnhanceResolution()Dim result = ocrTesseract.Read(input)
' Apply filters to improve QR code readability
ocrTesseract.Configuration.ReadBarCodes = True
Dim input As New OcrImageInput("qr-code-scan.jpg")
input.DeNoise()
input.Sharpen()
input.EnhanceResolution()
Dim result = ocrTesseract.Read(input)
Orientierungsprobleme: QR-Codes in Schräglage werden möglicherweise nicht richtig entschlüsselt. Aktivieren Sie die Seitenrotationserkennung, um falsch ausgerichtete Dokumente zu behandeln.
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:
Bilder vorverarbeiten: Verwenden Sie den Filter-Assistenten, um die optimalen Verbesserungseinstellungen zu ermitteln:
// Enhanced QR code reading with preprocessingvar ocrTesseract = new IronTesseract();ocrTesseract.Configuration.ReadBarCodes = true;// Configure for better QR detectionvar input = new OcrImageInput("document-with-qr.pdf");input.TargetDPI = 300; // Ensure sufficient resolutioninput.Binarize(); // Convert to black and whiteinput.DeNoise(); // Remove image artifactsvar 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);
ImportsIronTesseract' Enhanced QR code reading with preprocessingDim ocrTesseract = New IronTesseract()ocrTesseract.Configuration.ReadBarCodes = True' Configure for better QR detectionDim input = New OcrImageInput("document-with-qr.pdf")input.TargetDPI = 300 ' Ensure sufficient resolutioninput.Binarize() ' Convert to black and whiteinput.DeNoise() ' Remove image artifactsDim result = ocrTesseract.Read(input)
Imports IronTesseract
' Enhanced QR code reading with preprocessing
Dim ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
' Configure for better QR detection
Dim 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
Dim result = ocrTesseract.Read(input)
Mehrere Seiten handhaben: Für mehrseitige Dokumente mit QR-Codes auf mehreren Seiten:
// Process multi-page documents efficientlyusing 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}");
}
}
ImportsSystem' Process multi-page documents efficientlyUsing pdfInput As New OcrPdfInput("multi-page-qr-document.pdf") pdfInput.TargetDPI = 300 Dim results = ocrTesseract.Read(pdfInput) For Each page In results.PagesConsole.WriteLine($"Page {page.PageNumber}:") For Each barcode In page.BarcodesConsole.WriteLine($" QR Code: {barcode.Value}")Console.WriteLine($" Location: X={barcode.X}, Y={barcode.Y}") Next NextEndUsing
Imports System
' Process multi-page documents efficiently
Using pdfInput As New OcrPdfInput("multi-page-qr-document.pdf")
pdfInput.TargetDPI = 300
Dim results = ocrTesseract.Read(pdfInput)
For Each page In results.Pages
Console.WriteLine($"Page {page.PageNumber}:")
For Each barcode In page.Barcodes
Console.WriteLine($" QR Code: {barcode.Value}")
Console.WriteLine($" Location: X={barcode.X}, Y={barcode.Y}")
Next
Next
End Using
Asynchrone Verarbeitung: Für eine bessere Leistung bei mehreren Dokumenten, verwenden Sie async Methoden:
// Asynchronous QR code readingvar result = await ocrTesseract.ReadAsync(imageInput);
// Asynchronous QR code reading
var result = await ocrTesseract.ReadAsync(imageInput);
' Asynchronous QR code readingDim result = Await ocrTesseract.ReadAsync(imageInput)
' Asynchronous QR code reading
Dim result = Await ocrTesseract.ReadAsync(imageInput)
Fehlererkennung: Aktivieren Sie Ergebnishervorhebung, um zu visualisieren, was IronOCR erkennt:
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:
Multithreading: Nutzen Sie die Multithreading-Verarbeitung, um mehrere Dokumente gleichzeitig zu verarbeiten:
// Process multiple documents in parallelvar 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();
ImportsIronTesseract' Process multiple documents in parallelDim documents = {"doc1.pdf", "doc2.pdf", "doc3.pdf"}Dim results = documents.AsParallel().Select(Function(doc) Dim tesseract = New IronTesseract() tesseract.Configuration.ReadBarCodes = True Return tesseract.Read(New OcrPdfInput(doc))End Function).ToList()
Imports IronTesseract
' Process multiple documents in parallel
Dim documents = {"doc1.pdf", "doc2.pdf", "doc3.pdf"}
Dim results = documents.AsParallel().Select(Function(doc)
Dim tesseract = New IronTesseract()
tesseract.Configuration.ReadBarCodes = True
Return tesseract.Read(New OcrPdfInput(doc))
End Function).ToList()
Speichermanagement: Verwenden Sie Abbruch-Tokens für lang laufende Operationen:
// Implement cancellation for large batch processingusing var cts = new CancellationTokenSource();ocrTesseract.Configuration.CancellationToken = cts.Token;// Cancel if processing takes too longcts.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));
' Implement cancellation for large batch processingUsing cts As New CancellationTokenSource() ocrTesseract.Configuration.CancellationToken = cts.Token ' Cancel if processing takes too long cts.CancelAfter(TimeSpan.FromMinutes(5))EndUsing
' Implement cancellation for large batch processing
Using cts As New CancellationTokenSource()
ocrTesseract.Configuration.CancellationToken = cts.Token
' Cancel if processing takes too long
cts.CancelAfter(TimeSpan.FromMinutes(5))
End Using
Ergebnis-Export: Speichern Sie die Ergebnisse als durchsuchbare PDFs, um sowohl Text- als auch Barcode-Daten zu erhalten:
// Export results with embedded barcode valuesresult.SaveAsSearchablePdf("output-with-barcodes.pdf");
// Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf");
' Export results with embedded barcode valuesresult.SaveAsSearchablePdf("output-with-barcodes.pdf")
' Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf")
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.
How can I improve the accuracy of QR code recognition with IronOCR?
Improve QR code recognition by ensuring high resolution, applying image corrections like de-noising and sharpening, and handling orientation issues.
What are common challenges when reading QR codes with OCR?
Common challenges include resolution issues, image quality problems, orientation errors, and interference from overlapping text or graphics.
Can IronOCR handle multi-page PDF documents with barcodes?
Yes, IronOCR can process multi-page PDF documents with barcodes by reading each page individually and outputting detected barcode values and formats.
What is the benefit of using IronOCR for PDF text extraction and barcode reading?
Using IronOCR allows for unified text and barcode extraction from PDF documents, reducing the need for separate libraries and processing steps for each type of data.
How can IronOCR's barcode capabilities integrate into business applications?
IronOCR can be used in various business applications such as inventory management, document archiving, invoice processing, and healthcare records by extracting and processing barcode information.
Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.