Przejdź do treści stopki
KORZYSTANIE Z IRONBARCODE

Samouczek krok po kroku skanera kodów kreskowych C#

W tym samouczku pokażemy, jak stworzyć skaner BarCode przy pomocy biblioteki innej firmy. W tym celu dostępnych jest wiele bibliotek, ale niektóre z nich są płatne, inne oferują mniejszą funkcjonalność, a jeszcze inne są trudne do wdrożenia. Znalezienie bardzo wszechstronnej i użytecznej biblioteki, która jest bezpłatna, wydajna i łatwa do wdrożenia, stanowi nie lada wyzwanie.

Z tego powodu będziemy korzystać z IronBarcode, ponieważ najlepiej nadaje się on do tworzenia skanera kodów kreskowych .NET. Dodatkową zaletą jest to, że jest on bezpłatny dla programistów, bardzo wydajny i łatwy do wdrożenia. IronBarcode umożliwia programistom odczytywanie i zapisywanie kodów kreskowych oraz kodów QR w aplikacjach .NET i na stronach internetowych. Odczyt lub zapis BARCODE-ów wymaga tylko jednej linii kodu przy użyciu tej biblioteki.

Biblioteka kodów kreskowych .NET odczytuje i zapisuje większość standardów kodów kreskowych i kodów QR. Obsługiwane typy barcode'ów to: Code 39/93/128, UPC A/E, EAN 8/13, ITF, RSS 14 / Expanded, Databar, Codabar, Aztec, Data Matrix, MaxiCode, PDF417, MSI, Plessey, USPS i QR. Dane wynikowe BarCode obejmują typ, tekst, dane binarne, stronę oraz pliki graficzne.

API do zapisywania kodów kreskowych sprawdza i weryfikuje format, długość, liczbę oraz sumę kontrolną, aby automatycznie uniknąć błędów kodowania. Edytor kodów kreskowych umożliwia zmianę stylu, rozmiaru, marginesów, obramowań, koloru oraz dodawanie adnotacji tekstowych. Program do tworzenia kodów kreskowych może zapisywać pliki graficzne, w tym BMP, PNG, GIF, TIFF i JPG. Może również zapisywać pliki w formacie PDF lub HTML.

Stwórzmy nasz skaner BarCode, aby lepiej to zrozumieć.

Utwórz projekt Visual Studio

Najpierw utwórz projekt Visual Studio do opracowania aplikacji demonstracyjnej. Możesz również otworzyć istniejący projekt.

Wykonaj poniższe kroki, aby utworzyć nowy projekt aplikacji konsolowej i skupić się na podstawowych funkcjach. Ten sam kod można zaimplementować w aplikacjach korzystających z interfejsu API sieci Web, MVC, Web Forms lub Windows Forms.

  1. Otwórz Visual Studio
  2. Kliknij Utwórz nowy projekt
  3. Wybierz szablon, kliknij przycisk Dalej
  4. Nadaj nazwę projektowi, kliknij przycisk Dalej
  5. Wybierz docelową platformę, kliknij przycisk Dalej
  6. Kliknij przycisk Utwórz, a następnie przycisk Dalej

Zostanie utworzony nowy projekt, jak pokazano poniżej:

Samouczek krok po kroku dotyczący skanera BarCode w języku C#, rysunek 1: Aplikacja konsolowa Aplikacja konsolowa

Kolejnym krokiem jest zainstalowanie pakietu IronBarcode NuGet, aby móc korzystać z jego funkcji.

Zainstaluj pakiet NuGet IronBarcode

Bibliotekę można zainstalować za pomocą konsoli menedżera pakietów, rozwiązań menedżera pakietów NuGet lub bezpośrednio ze strony pakietu NuGet BarCode.

Postępuj zgodnie z poniższymi instrukcjami:

  1. Kliknij Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów.

    Samouczek krok po kroku dotyczący skanera BARCODE w języku C#, rysunek 2: Interfejs użytkownika konsoli menedżera pakietów Interfejs użytkownika konsoli menedżera pakietów

  2. Wpisz następujące polecenie
Install-Package BarCode

Pakiet zostanie zainstalowany.

Teraz napiszmy kod do skanowania obrazu kodu kreskowego.

Skanowanie BarCode z pliku obrazu

Dodaj następującą przestrzeń nazw

using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText   $csharpLabel

Następnie napisz poniższy kod wewnątrz funkcji main, aby odczytać dane BarCode z obrazu.

// Read the barcode from an image file
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");

// Print the barcode data to the console
Console.WriteLine(myBarcode);
// Read the barcode from an image file
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");

// Print the barcode data to the console
Console.WriteLine(myBarcode);
' Read the barcode from an image file
Dim myBarcode = BarcodeReader.Read("D:\Barcode Images\mybarcode.jpeg")

' Print the barcode data to the console
Console.WriteLine(myBarcode)
$vbLabelText   $csharpLabel

Klasa BarcodeReader udostępnia funkcję Read, która przyjmuje ścieżkę do pliku jako argument. Ta funkcja odczytuje obraz i zwraca dane BARCODE. Metoda ta odczytuje BARCODES z plików BMP, PNG, GIF, TIFF lub JPG, oferując programistom szczegółowe ustawienia, które pozwalają im znaleźć równowagę między wydajnością a dokładnością w danym przypadku użycia.

Ścieżka zawiera następujący obraz BARCODE, który aplikacja zeskanuje.

Obraz BarCode

Samouczek krok po kroku dotyczący skanera BarCode w języku C#, rysunek 3: Obraz BarCode użyty w tej aplikacji konsolowej Obraz BarCode użyty w tej aplikacji konsolowej

Przeczytajmy ten obraz BARCODE, aby sprawdzić, czy program generuje prawidłowy wynik.

Wynik

Samouczek krok po kroku dotyczący skanera BarCode w języku C#, rysunek 4: Wynik wyświetlany w konsoli podczas działania aplikacji Wynik wyświetlany w konsoli podczas uruchomienia aplikacji

Widać, że program wygenerował poprawny wynik.

Skanowanie BarCODE-a z pliku PDF

Istnieje wiele sytuacji, w których konieczne jest zeskanowanie BarCoda z faktury w formacie PDF. W tym przykładzie zeskanujemy BarCode z poniższej faktury.

Dokument PDF

Samouczek krok po kroku dotyczący skanera BARCODE w języku C#, rysunek 5: Faktura w formacie PDF Faktura w formacie PDF

Rozważmy poniższy fragment kodu służący do skanowania BARCODE z dokumentu PDF:

// Read barcodes from a PDF file
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");

// Iterate through each barcode found and print its value
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
// Read barcodes from a PDF file
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");

// Iterate through each barcode found and print its value
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
' Read barcodes from a PDF file
Dim myBarcode = BarcodeReader.ReadPdf("D:\Barcode Images\invoice.pdf")

' Iterate through each barcode found and print its value
For Each barcodeData In myBarcode
	Console.WriteLine(barcodeData.Value)
Next barcodeData
$vbLabelText   $csharpLabel

Klasa BarcodeReader udostępnia funkcję ReadPdf, która przyjmuje ścieżkę do pliku jako argument. Ta funkcja wyszukuje obraz kodu kreskowego w pliku PDF, skanuje cały kod kreskowy i zwraca jego dane w postaci tablicy. Ta funkcja odczytuje BarCodes ze wszystkich obrazów osadzonych w dokumencie.

Pętla foreach służy do wyświetlania danych BARCODE w konsoli.

Wynik

Numer faktury jest drukowany na konsoli.

Samouczek krok po kroku dotyczący skanera BarCode w języku C#, rysunek 6: Wynik wyświetlany w konsoli pokazuje numer faktury Wynik wyświetlany w konsoli pokazuje numer faktury

Skanowanie BarCodes z wielu plików

Ten przykład pokaże, jak skanować jednocześnie wiele BarCodes z plików graficznych.

Obrazy BarCode

Samouczek krok po kroku dotyczący skanera BARCODE w języku C#, rysunek 7: Obrazy BARCODE użyte w poniższym przykładzie Obrazy BarCode użyte w poniższym przykładzie

Rozważmy poniższe fragmenty kodu, które odczytują wiele BarCodes i skanują ich wyniki przy użyciu wielowątkowości.

// Create a list of file paths containing barcode images
List<string> barcodeList = new List<string>
{
    @"D:\Barcode Images\barcode1.jpg",
    @"D:\Barcode Images\barcode2.jpg",
    @"D:\Barcode Images\barcode3.jpg"
};

// Read barcodes asynchronously from multiple files
var batchResults = BarcodeReader.ReadAsync(barcodeList);

// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
    Console.WriteLine(barcodeValue);
}
// Create a list of file paths containing barcode images
List<string> barcodeList = new List<string>
{
    @"D:\Barcode Images\barcode1.jpg",
    @"D:\Barcode Images\barcode2.jpg",
    @"D:\Barcode Images\barcode3.jpg"
};

// Read barcodes asynchronously from multiple files
var batchResults = BarcodeReader.ReadAsync(barcodeList);

// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
    Console.WriteLine(barcodeValue);
}
' Create a list of file paths containing barcode images
Dim barcodeList As New List(Of String) From {"D:\Barcode Images\barcode1.jpg", "D:\Barcode Images\barcode2.jpg", "D:\Barcode Images\barcode3.jpg"}

' Read barcodes asynchronously from multiple files
Dim batchResults = BarcodeReader.ReadAsync(barcodeList)

' Work with the results
For Each result In batchResults
	Dim barcodeValue As String = result.Text
	Console.WriteLine(barcodeValue)
Next result
$vbLabelText   $csharpLabel

Najpierw tworzona jest lista zawierająca ścieżki do wszystkich obrazów BarCode. Następnie wywoływana jest funkcja ReadAsync, która przyjmuje typ List<string> jako argument i zwraca dane. Ta metoda odczytuje BarCodes z wielu obrazów równolegle. Uruchomionych zostanie wiele wątków, które będą automatycznie zarządzane w celu poprawy wydajności zadań związanych z odczytem kodów BarCode w trybie wsadowym.

Zeskanuj kod QR

Wykorzystanie kodów QR gwałtownie rośnie. W tej sekcji pokażemy więc, jak skanować kody QR za pomocą języka C#.

Kod QR

Samouczek krok po kroku dotyczący skanera BarCode w języku C#, rysunek 8: Kod QR użyty w tej demonstracji Kod QR użyty w tej demonstracji

Rozważmy następujący przykład kodu:

// Read the QR code from an image file
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");

// Iterate through each result and print its text
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
// Read the QR code from an image file
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");

// Iterate through each result and print its text
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
' Read the QR code from an image file
Dim qrCodeResult = BarcodeReader.Read("D:\Barcode Images\QRcode.jpeg")

' Iterate through each result and print its text
For Each result In qrCodeResult
	Console.WriteLine(result.Text)
Next result
$vbLabelText   $csharpLabel

Do odczytu kodu QR używana jest ta sama funkcja Read, o której mowa powyżej. To właśnie prostota zapewniana przez bibliotekę IronBarcode, pozwalająca na wykorzystanie tej samej funkcji i kodu dla różnych źródeł obrazów.

Wynik

Samouczek krok po kroku dotyczący skanera BarCode w języku C#, rysunek 9: Konsola czytnika BarCode QR Konsola z czytnikiem kodów QR

Podsumowanie

W tym samouczku pokazano bardzo prosty sposób skanowania BARCODE-ów z pojedynczego obrazu, skanowania BARCODE-ów z dokumentu PDF oraz skanowania BARCODE-ów z wielu obrazów i wielu dokumentów równolegle. Wykorzystaliśmy tę samą funkcję do różnych zadań, zapewniając jednocześnie wydajność i użyteczność. IronBarcode umożliwia generowanie kodów kreskowych i kodów QR o różnych konfiguracjach. Jest tak wiele funkcji, że nie da się omówić ich wszystkich w jednym artykułe. Kliknij stronę dokumentacji, aby dowiedzieć się więcej o IronBarcode.

IronBarcode jest częścią pakietu Iron Software Suite. Pakiet ten zawiera inne bardzo przydatne biblioteki, takie jak IronPDF do odczytu i zapisu plików PDF, IronXL do manipulowania plikami Excel, IronOCR do odczytu tekstu z obrazów oraz IronWebscraper do wyodrębniania danych z różnych stron internetowych. Kompletny pakiet Iron Suite można nabyć w cenie dwóch pojedynczych bibliotek.

Często Zadawane Pytania

Jak stworzyć skaner kodów kreskowych w języku C#?

Aby stworzyć skaner kodów kreskowych w języku C#, można użyć biblioteki IronBarcode. Należy rozpocząć od utworzenia projektu w Visual Studio, zainstalowania pakietu NuGet IronBarcode oraz wykorzystania klasy BarcodeReader do odczytu kodów kreskowych z plików graficznych lub PDF.

Jakie rodzaje kodow kreskowych mozna odczytac, korzystajac z biblioteki .NET?

IronBarcode może odczytywać szeroki zakres typów kodów kreskowych, w tym Code 39/93/128, UPC A/E, EAN 8/13, ITF, RSS 14 / Expanded, Databar, Codabar, Aztec, Data Matrix, MaxiCode, PDF417, MSI, Plessey, USPS oraz kody QR.

Czy mogę odczytywać BARCODES z plików PDF w języku C#?

Tak, IronBarcode umożliwia odczytywanie kodów kreskowych z plików PDF za pomocą metody ReadPdf, która skanuje cały dokument PDF w poszukiwaniu obrazów kodów kreskowych i zwraca ich dane.

Czy w języku C# można skanować wiele BarCodes z różnych plików graficznych?

Tak, można użyć funkcji ReadAsync w IronBarcode do jednoczesnego skanowania wielu kodów kreskowych z różnych plików graficznych, wykorzystując przetwarzanie asynchroniczne w celu poprawy wydajności.

Jak zainstalować bibliotekę .NET do obsługi kodów BarCode?

Aby zainstalować IronBarcode, należy użyć konsoli menedżera pakietów w Visual Studio, wprowadzając polecenie Install-Package Barcode, co spowoduje dodanie biblioteki ze źródła pakietów NuGet.

Czy kody QR można skanować w taki sam sposób jak kody BarCode?

Tak, kody QR można skanować za pomocą tej samej funkcji Read w IronBarcode, co pozwala na spójną obsługę zarówno kodów kreskowych, jak i kodów QR z różnych źródeł obrazów.

Jakie są zalety korzystania z IronBarcode do skanowania kodów kreskowych?

IronBarcode jest przyjazny dla użytkownika, wydajny i elastyczny. Obsługuje wiele typów kodów kreskowych i zapewnia proste interfejsy API do odczytu i zapisu kodów kreskowych oraz kodów QR, dzięki czemu idealnie nadaje się do aplikacji .NET.

Jakie biblioteki są zawarte w pakiecie Iron Software Suite?

Pakiet Iron Software Suite zawiera biblioteki takie jak IronPDF do obróbki plików PDF, IronXL do obsługi plików Excel, IronOCR do optycznego rozpoznawania znaków oraz IronWebscraper do pozyskiwania danych z sieci.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie