using IronBarCode;
using System.Drawing;
// Reading a barcode is easy with IronBarcode!
var resultFromFile = BarcodeReader.Read(@"file/barcode.png"); // From a file
var resultFromBitMap = BarcodeReader.Read(new Bitmap("barcode.bmp")); // From a bitmap
var resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")); // From an image
var resultFromPdf = BarcodeReader.ReadPdf(@"file/mydocument.pdf"); // From PDF use ReadPdf
// To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class
var myOptionsExample = new BarcodeReaderOptions
{
// Choose a reading speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more detail is set
Speed = ReadingSpeed.Balanced,
// Reader will stop scanning once a single barcode is found (if set to true)
ExpectMultipleBarcodes = true,
// By default, all barcode formats are scanned for
// Specifying a subset of barcode types to search for would improve performance
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
// Utilize multiple threads to read barcodes from multiple images in parallel
Multithreaded = true,
// Maximum threads for parallelized barcode reading
// Default is 4
MaxParallelThreads = 2,
// The area of each image frame in which to scan for barcodes
// Specifying a crop area will significantly improve performance and avoid noisy parts of the image
CropArea = new Rectangle(),
// Special setting for Code39 barcodes
// If a Code39 barcode is detected, try to read with both the base and extended ASCII character sets
UseCode39ExtendedMode = true
};
// Read with the options applied
var results = BarcodeReader.Read("barcode.png", myOptionsExample);
// Create a barcode with one line of code
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// After creating a barcode, we may choose to resize
myBarcode.ResizeTo(400, 100);
// Save our newly-created barcode as an image
myBarcode.SaveAsImage("EAN8.jpeg");
Image myBarcodeImage = myBarcode.Image; // Can be used as Image
Bitmap myBarcodeBitmap = myBarcode.ToBitmap(); // Can be used as Bitmap
In diesem Tutorial wird gezeigt, wie man einen Barcode-Scanner mit Hilfe einer Drittanbieter-Bibliothek erstellt. Für diesen Zweck stehen mehrere Bibliotheken zur Verfügung, aber einige sind kostenpflichtig, andere bieten weniger Funktionalität und wieder andere sind schwierig zu implementieren. Es ist eine anspruchsvolle Aufgabe, eine sehr umfassende und nützliche Bibliothek zu finden, die kostenlos, effizient und einfach zu implementieren ist.
Aus diesem Grund werden wir Folgendes verwendenIronBarcodeda es sich am besten für die Entwicklung eines .NET-Barcodescanners eignet. Sie hat außerdem den zusätzlichen Vorteil, dass sie kostenlos entwickelt werden kann, sehr effizient ist und sich leicht implementieren lässt. IronBarcode ermöglicht Entwicklern das Lesen und Schreiben von Barcodes und QR-Codes in .NET-Anwendungen und Websites. Das Lesen oder Schreiben von Strichcodes erfordert mit dieser Bibliothek nur eine einzige Codezeile.
Die .NET Barcode-Bibliothek liest und schreibt die meisten Barcode- und QR-Code-Standards. Zu den unterstützten Barcode-Typen gehören Code 39/93/128, UPC A/E, EAN 8/13, ITF, RSS 14 / Expanded, Databar, Codabar, Aztec, Data Matrix, MaxiCode, PDF417, MSI, Plessey, USPS und QR. Die Barcode-Ergebnisdaten umfassen Typ-, Text-, Binärdaten, Seiten- und Bilddateien.
Die API zum Schreiben von Strichcodes prüft und verifiziert Format, Länge, Nummer und Prüfsumme, um automatisch Kodierungsfehler zu vermeiden. Diebarcode-Schreiber ermöglicht die Gestaltung von, Größenänderung, Ränder, Umrandungen, Neueinfärbung und Hinzufügen von Textanmerkungen. Der Barcode-Schreiber kann Bilddateien wie BMP, PNG, GIF, TIFF und JPG beschreiben. Es kann auch in PDF oderHTML-Dateien.
Lassen Sie uns unseren Barcode-Scanner erstellen, um ihn besser zu verstehen.
Erstellen eines Visual Studio-Projekts
Erstellen Sie zunächst ein Visual Studio-Projekt für die Entwicklung einer Demo-Anwendung. Sie können auch ein bestehendes Projekt öffnen.
Gehen Sie wie folgt vor, um ein neues Konsolenanwendungsprojekt zu erstellen und sich auf die Kernfunktionen zu konzentrieren. Derselbe Code kann in Web-API-, MVC-, Web Forms- oder Windows Forms-Anwendungen implementiert werden.
Visual Studio öffnen
Klicken Sie auf Neues Projekt erstellen
Wählen Sie die Vorlage aus und klicken Sie auf die Schaltfläche Next
Benennen Sie das Projekt und klicken Sie auf die Schaltfläche Next
Wählen Sie das Ziel-Framework und klicken Sie auf die Schaltfläche Next
Klicken Sie auf die Schaltfläche Erstellen, klicken Sie auf die Schaltfläche Weiter
Ein neues Projekt wird wie unten gezeigt erstellt:
Konsolenanwendung
Der nächste Schritt ist die Installation derIronBarcode NuGet-Paket um seine Funktionalitäten zu nutzen.
Installieren Sie das NuGet-Paket von IronBarcode
Sie können die Bibliothek über die Paketmanager-Konsole, NuGet Package Manager Solutions oder direkt über die DateiNuGet BarCode-Paket-Seite.
Folgen Sie den nachstehenden Schritten:
Klicken Sie auf Tools > NuGet Package Manager > Package Manager Console.
Package Manager Console UI
Schreiben Sie den folgenden Befehl
Install-Package BarCode
Das Paket wird installiert.
Lassen Sie uns nun einen Code zum Scannen eines Barcode-Bildes schreiben.
Scannen eines Barcodes aus einer Bilddatei
Fügen Sie den folgenden Namensraum hinzu
using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText $csharpLabel
Als Nächstes schreiben Sie den folgenden Code in die Hauptfunktion, um Barcode-Daten aus einem Bild zu lesen.
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");
Console.WriteLine(myBarcode);
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");
Console.WriteLine(myBarcode);
Dim myBarcode = BarcodeReader.Read("D:\Barcode Images\mybarcode.jpeg")
Console.WriteLine(myBarcode)
$vbLabelText $csharpLabel
DiebarcodeLeser klasse bietet einelesen funktion, die einen Dateipfad als Argument annimmt. Diese Funktion liest das Bild und gibt die Barcodedaten zurück. Diese Methode liest Strichcodes aus einem BMP, PNG, GIF, TIFFoder JPG mit granularen Einstellungen für Entwickler, um ein Gleichgewicht zwischen Leistung und Genauigkeit für den jeweiligen Anwendungsfall zu finden.
Der Pfad enthält das folgende Barcode-Bild, das die Anwendung scannen wird.
Barcode-Bild
Das in dieser Konsolenanwendung verwendete Barcodebild
Lesen wir dieses Strichcodebild, um zu sehen, ob dieses Programm das richtige Ergebnis liefert.
Ausgabe
Die Konsolenausgabe bei laufender Anwendung
Es ist zu erkennen, dass das Programm eine genaue Ausgabe erzeugt hat.
Scannen eines Barcodes aus einer PDF-Datei
Es gibt viele Situationen, in denen es notwendig ist, einen Barcode aus einer PDF-Rechnung zu scannen. In diesem Beispiel scannen wir den Barcode von der folgenden Rechnung.
PDF-Dokument
Eine Rechnung im PDF-Format
Der folgende Codeausschnitt soll den Barcode eines PDF-Dokuments scannen:
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");
foreach(var barcodeData in myBarcode)
{
Console.WriteLine(barcodeData.Value);
}
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");
foreach(var barcodeData in myBarcode)
{
Console.WriteLine(barcodeData.Value);
}
Dim myBarcode = BarcodeReader.ReadPdf("D:\Barcode Images\invoice.pdf")
For Each barcodeData In myBarcode
Console.WriteLine(barcodeData.Value)
Next barcodeData
$vbLabelText $csharpLabel
Die Klasse BarcodeReader bietet diereadPdf funktion, die einen Dateipfad als Argument annimmt. Diese Funktion sucht nach einem Barcode-Bild in einer PDF-Datei, scannt den gesamten Barcode und gibt dessen Daten in Form eines Arrays zurück. Diese Funktion liest Strichcodes aus jedem im Dokument eingebetteten Bild.
eine "Foreach"-Schleife, in der die Daten des Barcodes auf der Konsole ausgegeben werden.
Ausgabe
Die Rechnungsnummer wird auf der Konsole ausgedruckt.
Die Konsolenausgabe zeigt die Rechnungsnummer an
Scannen von Barcodes aus mehreren Dateien
In diesem Beispiel wird gezeigt, wie mehrere Barcodes aus Bilddateien gleichzeitig gescannt werden können.
Barcode-Bilder
Barcode-Bilder, die im folgenden Beispiel verwendet werden
Betrachten Sie die folgenden Codeschnipsel, die mehrere Barcodes lesen und ihr Ergebnis mit Multithreading scannen.
List<string> barcodeList = new List<string>();
barcodeList.Add(@"D:\Barcode Images\barcode1.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode2.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode3.jpg");
var batchResults = BarcodeReader.ReadAsync(barcodeList);
// Work with the results
foreach (var result in batchResults)
{
string barcodeValue = result.Text;
}
List<string> barcodeList = new List<string>();
barcodeList.Add(@"D:\Barcode Images\barcode1.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode2.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode3.jpg");
var batchResults = BarcodeReader.ReadAsync(barcodeList);
// Work with the results
foreach (var result in batchResults)
{
string barcodeValue = result.Text;
}
Dim barcodeList As New List(Of String)()
barcodeList.Add("D:\Barcode Images\barcode1.jpg")
barcodeList.Add("D:\Barcode Images\barcode2.jpg")
barcodeList.Add("D:\Barcode Images\barcode3.jpg")
Dim batchResults = BarcodeReader.ReadAsync(barcodeList)
' Work with the results
For Each result In batchResults
Dim barcodeValue As String = result.Text
Next result
$vbLabelText $csharpLabel
Zunächst wird eine Liste erstellt, die den Dateipfad aller Barcode-Bilder enthält. Als nächstes wird diereadAsync funktion aufgerufen, die eine `Listetyp als Argument und gibt die Daten zurück. Diese Methode liest Barcodes von mehreren Bildern parallel. Es werden mehrere Threads gestartet und automatisch verwaltet, um die Leistung bei Batch-Leseaufgaben für Barcodes zu verbessern.
QR-Code scannen
Die Verwendung von QR-Codes nimmt rapide zu. Daher wird in diesem Abschnitt gezeigt, wie man QR-Codes mit C# scannt.
QR-Code
Der in dieser Demonstration verwendete QR-Code
Betrachten Sie das folgende Codebeispiel:
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");
foreach (var result in qrCodeResult)
{
Console.WriteLine(result.Text);
}
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");
foreach (var result in qrCodeResult)
{
Console.WriteLine(result.Text);
}
Dim qrCodeResult = BarcodeReader.Read("D:\Barcode Images\QRcode.jpeg")
For Each result In qrCodeResult
Console.WriteLine(result.Text)
Next result
$vbLabelText $csharpLabel
Zum Lesen des QR-Codes wird die gleiche Funktion "Lesen" wie oben beschrieben verwendet. Diese Einfachheit bietet die IronBarcode-Bibliothek. So kann dieselbe Funktion und derselbe Code für verschiedene Bildquellen verwendet werden.
Ausgabe
Die Konsole aus dem QR-Code-Reader
Zusammenfassung
Dieses Tutorial demonstriert eine sehr einfache Methode zum Scannen von Barcodes aus einem einzelnen Bild, zum Scannen von Barcodes aus einem PDF-Dokument und zum Scannen von Barcodes aus mehreren Bildern und mehreren Dokumenten parallel. Wir haben dieselbe Funktion für verschiedene Funktionalitäten verwendet. Es bietet Leistung und Benutzerfreundlichkeit zur gleichen Zeit. IronBarcode bietet die Funktionalität der Erzeugung von Barcodes und QR-Codes mitunterschiedliche Konfigurationen. Es gibt so viele Funktionen, dass sie nicht in einem einzigen Artikel behandelt werden können. Bitte klicken Sie auf dasdokumentationsseite zur weiteren Erforschung von IronBarcode.
IronBarcode ist Teil der Iron Software Suite. Diese Suite enthält weitere sehr nützliche Bibliotheken, wie IronPDF zum Lesen und Schreiben von PDF-Dateien, IronXL zur Bearbeitung von Excel-Dateien, IronOCR zum Lesen von Text aus Bildern und IronWebScraper zum Extrahieren von Daten aus verschiedenen Websites. Sie können die vollständigeIron Suite zum Preis von zwei einzelnen Bibliotheken.
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.
< PREVIOUS Einen QR-Code für einen Link erstellen (C# Tutorial)
NÄCHSTES > .NET QR Code Generator (Codebeispiel-Tutorial)