Jak odczytywać kody kreskowe i kody QR w języku C# za pomocą IronOCR
IronOCR odczytuje kody kreskowe i kody QR w języku C# poprzez ustawienie ReadBarCodes = true w konfiguracji. To pojedyncze ustawienie umożliwia automatyczne wyodrębnianie wartości kodów kreskowych z plików PDF i obrazów wraz ze standardowym rozpoznawaniem tekstu, obsługując ponad 20 formatów kodów kreskowych, w tym kody QR, Code 128 i Data Matrix.
Szybki start: Natychmiastowe odczytywanie BarCodes z pliku PDF
Włącz wykrywanie kodów kreskowych za pomocą jednego ustawienia i skanuj pliki PDF za pomocą IronOCR. Poniższy kod pokazuje, jak włączyć odczyt BarCode, przetworzyć plik PDF i pobrać zdekodowane wartości.
-
Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr -
Skopiuj i uruchom ten fragment kodu.
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); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
Jak odczytywać kody kreskowe i kody QR w języku C# za pomocą IronOCR
- Pobierz bibliotekę C# do odczytu kodów kreskowych i kodów QR.
- Zaimportuj docelowy obraz i dokument PDF.
- Uaktywnij odczyt kodów kreskowych, ustawiając właściwość ReadBarCodes na wartość prawda.
- Użyj metody
Read,aby przeprowadzić OCR w zwykły sposób. - Wyświetl wykryty tekst i wartości BARCODE.
Jak odczytać BarCodes z dokumentów PDF?
Utwórz obiekt IronTesseract w celu wykonania odczytu. Ustaw właściwość ReadBarCodes na true, aby włączyć wykrywanie kodów kreskowych. Zaimportuj dokument PDF za pomocą konstruktora OcrPdfInput. Użyj metody ``, aby przeprowadzić OCR na zaimportowanym pliku PDF.
Oto przykład wykorzystujący ten dokument PDF:
:path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-barcodes.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("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);
}
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
Pod BarCodeami pojawia się wiele wartości, które są uwzględnione w wyodrębnionym tekście.
Dłączego IronOCR wyodrębnia zarówno tekst, jak i wartości BARCODE-ów?
Podwójne wyodrębnianie danych w IronOCR zapewnia kompleksową analizę dokumentów. Podczas przetwarzania dokumentów zawierających zarówno tekst, jak i kody kreskowe, biblioteka wykonuje standardowe wyodrębnianie tekstu metodą OCR, jednocześnie dekodując symbole BarCODE. To ujednolicone podejście eliminuje potrzebę wielokrotnego przetwarzania lub stosowania oddzielnych bibliotek.
Funkcja wyodrębniania tekstu przechwytuje elementy czytelne dla człowieka, natomiast wykrywanie BARCODE-ów identyfikuje i dekoduje dane czytelne dla maszyn. Jest to przydatne w przypadku dokumentów takich jak faktury, etykiety wysyłkowe lub raporty magazynowe, w których wartości BarCode są powiązane z drukowanym tekstem. Klasa OcrResult rozdziela te dane wyjściowe — dostęp do tekstu odbywa się poprzez właściwość Text, a do danych BarCode poprzez kolekcję Barcodes.
Jakie formaty BarCode'ów są obsługiwane?
IronOCR obsługuje ponad 20 formatów kodów kreskowych:
BarCode 1D:
- Kod 128, Kod 39, Kod 93
- EAN-13, EAN-8
- UPC-A, UPC-E
- Codabar
- ITF (Interleaved 2 of 5)
- MSI
- Plessey
Kody kreskowe 2D:
- Kod QR
- Data Matrix
- PDF417
- Kod Aztec
- MaxiCode
Do aplikacji specjalistycznych jak odczyt czekow MICR czy przetwarzanie dokumentów tozsamosci, możliwości kodow kreskowych IronOCR uzupelniaja jego funkcje ekstrakcji tekstu.
Kiedy należy używać OCR do odczytu kodow kreskowych zamiast dedykowanych bibliotek kodow kreskowych?
Wybierz zintegrowany odczyt kodow kreskowych IronOCR, gdy:
- Przetwarzanie mieszanego zawartości: Dokumenty zawieraja tekst i kody kreskowe (etykiety wysylkowe, faktury lub zeskanowane dokumenty)
- Preferencja jednej biblioteki: Chcesz zminimalizowac zależności i uzyc jednego rozwiązania
- Przetwarzanie PDF: Juz używasz IronOCR do ekstrakcji tekstu OCR z PDF
- Zlozone układy dokumentów: Dokumenty maja kody kreskowe osadzone w obszarach tekstowych lub tablicach
Używaj dedykowanych bibliotek kodow kreskowych, gdy:
- Przetwarzanie obrazów z kodami tylko kreskowymi o duzej objetosci
- Wymagane skanowanie kodow kreskowych w czasie rzeczywistym (< 50 ms czas reakcji)
- Praca z uszkodzonymi lub niskiej jakosci kodami kreskowymi wymagajacymi specjalistycznych algorytmow
- Implementowanie mobilnego skanowania kodow kreskowych z optymalizacja kamery
Jak mogę odczytać kody QR z dokumentów?
Podobnie jak w przypadku odczytu BarCode, ustaw właściwość ReadBarCodes na true. Nie sa potrzebne zadne inne zmiany w kodzie z wyjątkiem ścieżki pliku. Przetworz ten dokument PDF z kodami QR:
: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
Dłączego ta sama konfiguracja działa zarówno dla kodów kreskowych, jak i kodów QR?
Zunifikowany silnik wykrywania kodow kreskowych IronOCR traktuje wszystkie kody maszynowo-czytelne jednakowo. Konfiguracja ReadBarCodes aktywuje kompleksowy detektor symboli, który rozpoznaje zarówno formaty 1D (BarCodes liniowe), jak i 2D (kodów QR, Data Matrix) bez konieczności wprowadzania ustawień specyficznych dla danego formatu. Takie podejście upraszcza implementacje i zmniejsza zlozonosc konfiguracji.
Algorytm detekcji automatycznie:
- Identyfikuje typ symbologii na podstawie rozpoznawania wzorcow
- Stosuje odpowiednie algorytmy dekodowania
- Obsługuje zmiany orientacji i rozmiaru
- Zwraca wyniki w jednolitym formacie bez wzgledu na typ kodu kreskowego
To podejście odzwierciedla działanie modeli komputerowego widzenia - trenowanie na wielu formatach, aby zapewnic uniwersalne zdolnosci detekcji.
Jakie sa powszechne problemy przy odczycie kodow QR za pomoca OCR?
Powszechne wyzwania przy przetwarzaniu kodow QR obejmuja:
-
Problemy z rozdzielczoscia: Kody QR w plikach PDF mogą być sprowadzone do rozdzielczosci poniżej minimalnego rozmiaru modulu. Uzyj ustawienia DPI dla zapewnienia odpowiedniej rozdzielczosci (zalecane minimum 300 DPI).
- Jakosc obrazu: Zeskanowane kody QR często cierpia z powodu rozmycia, szumu lub znieksztalcen. Zastosuj filtry korekcji obrazu, aby zwiększyć wyrazistosc:
// 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);
' 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)
-
Problemy z orientacja: Kody QR pod katem mogą nie być prawidłowo dekodowane. Włącz wykrywanie rotacji stron, aby obsługiwac nieporawnie wyrównane dokumenty.
- Zaklocenia mieszanej zawartości: Tekst lub grafika nakladajace sie na kody QR mogą uniemożliwiac wykrycie. Uzyj obszarow przyciecia, aby odizolowac obszary kodow QR, gdy to konieczne.
Jak mogę poprawić dokładnosc rozpoznawania kodow QR?
Optymalizuj rozpoznawanie kodow QR za pomoca tych technik:
- Wstepne przetwarzanie obrazów: Uzyj kreatora filtrów, aby okreslic optymalne ustawienia poprawy jakosci:
// 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);
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)
- Obsluga wielu stron: W przypadku dokumentów wielostronicowych z kodami QR na wielu stronach:
// 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}");
}
}
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
- Przetwarzanie asynchroniczne: Dla lepszej wydajności przy wielu dokumentach uzyj metod asynchronicznych:
// Asynchronous QR code reading
var result = await ocrTesseract.ReadAsync(imageInput);
// Asynchronous QR code reading
var result = await ocrTesseract.ReadAsync(imageInput);
' Asynchronous QR code reading
Dim result = Await ocrTesseract.ReadAsync(imageInput)
- Debugowanie problemow z rozpoznawaniem: Włącz podswietlanie wynikow, aby zobaczyć, co IronOCR wykrywa:
result.SaveAsHighlightedImage("qr-detection-debug.png");
result.SaveAsHighlightedImage("qr-detection-debug.png");
result.SaveAsHighlightedImage("qr-detection-debug.png")
Optymalizacja wydajności dla przetwarzania kodow kreskowych na duza skale
Podczas przetwarzania tysięcy dokumentów z kodami kreskowymi i QR, wdroz te strategie optymalizacji:
- Wielowątkówosc: Wykorzystaj przetwarzanie wielowątkówe, aby obsługiwac wiele dokumentów jednoczesnie:
// 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();
' 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()
- Zarządzanie pamięcią: Używaj tokenow anulowania do operacji dlugotrwałych:
// 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));
' 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
- Eksport wynikow: Zapisuj wyniki jako przeszukiwalne pliki PDF, aby zachowac zarowno dane tekstowe, jak i kodow kreskowych:
// Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf");
// Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf");
' Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf")
Integracja z aplikacjami biznesowymi
Możliwosci kodow kreskowych IronOCR bezproblemowo integrują sie z istniejącymi aplikacjami .NET. Typowe scenariusze integracji obejmują:
- Zarządzanie zapasami: Ekstrakcja kodow produktów z manifestow wysylkowych
- Archiwizacja dokumentów: Indeksowanie zeskanowanych dokumentów poprzez osadzone identyfikatory kodow kreskowych
- Przetwarzanie faktur: Dopasowanie kodow SKU do pozycji na dokumentach finansowych
- Rekordy medyczne: Przetwarzanie kodow kreskowych z opasek pacjenta w połączeniu z formularzami medycznymi
Do aplikacji produkcyjnych przetwarzających duze ilosci kodow kreskowych i kodow QR, rozwaz wdrożenie sledzenia postepow, aby monitorowac stan przetwarzania i optymalizowac wydajność na podstawie rzeczywistych danych.
Często Zadawane Pytania
Jak wlaczyc odczytywanie kodow kreskowych w aplikacji C#?
W IronOCR wlacz odczytywanie kodow kreskowych przez ustawienie ReadBarCodes = true w TesseractConfiguration. To pojedyncze ustawienie aktywuje automatyczne wyciaganie wartosci kodow kreskowych z PDF-ow i obrazow razem z regularnym rozpoznawaniem tekstu, wspierajac ponad 20 formatow kodow kreskowych.
Czy moge odczytac jednoczesnie tekst i kody kreskowe z tego samego dokumentu?
Tak, IronOCR wykonuje podwojne wyciaganie - wychwytuje tekst czytelny dla ludzi przez standardowe OCR, jednoczesnie dekodujac kody kreskowe czytelne dla maszyn. Klasa OcrResult rozdziela te wyniki z tekstem dostepnym przez wlasciwosc Text i danymi kodow kreskowych przez kolekcje Barcodes.
Jakie formaty kodow kreskowych moga byc wykryte?
IronOCR wspiera ponad 20 formatow kodow kreskowych, w tym 1D (Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, Codabar, ITF, MSI, Plessey) i 2D (QR Code, Data Matrix, i wiecej).
Jak wyodrebnic kody kreskowe z dokumentow PDF?
Utworz obiekt IronTesseract, ustaw ReadBarCodes na true, zaimportuj PDF uzywajac konstruktóra OcrPdfInput, nastepnie uzyj metody Read. IronOCR wykona OCR i wyodrebni wszystkie wykryte wartosci kodow kreskowych, ktore mozesz uzyskac przez kolekcje wynik.Barcodes.
Czy potrzebuje oddzielnych bibliotek do tekstu OCR i odczytu kodow kreskowych?
Nie, zintegrowane podejscie IronOCR eliminuje potrzebe wielokrotnych przetwarzania lub oddzielnych bibliotek. Wykonuje standardowe wyciaganie tekstu OCR, jednoczesnie dekodujac symbologie kodow kreskowych w jednej operacji.
Czy IronOCR obsługuje wiele języków?
IronOCR obsługuje wiele języków, co czyni go wszechstronnym narzędziem dla globalnych aplikacji wymagających rozpoznawania tekstu w różnych językach.
Czy IronOCR można zintegrować z istniejącymi aplikacjami?
IronOCR jest zaprojektowany do łatwej integracji z istniejącymi aplikacjami używając C#, co pozwala programistom dodać funkcjonalność OCR do swojego oprogramowania z minimalnym wysiłkiem.
Jakie są korzyści z używania IronOCR do zarządzania dokumentami?
Używanie IronOCR do zarządzania dokumentami upraszcza przepływ pracy przez konwertowanie zeskanowanych dokumentów na przeszukiwalny i edytowalny tekst, redukując konieczność ręcznego wprowadzania danych i poprawiając dostępność dokumentów.
Jak IronOCR może poprawić dokładność danych?
IronOCR poprawia dokładność danych dzięki swoim zaawansowanym algorytmom rozpoznawania i funkcjom korekcji obrazów, zapewniając, że proces ekstrakcji tekstu jest zarówno niezawodny, jak i precyzyjny.
Czy dostępna jest bezpłatna wersja próbna IronOCR?
Tak, Iron Software oferuje bezpłatną wersję próbną IronOCR, umożliwiając użytkownikom przetestowanie jego funkcji i możliwości przed podjęciem decyzji o zakupie.

