GrapeCity Barcode vs IronBarcode: C# Barcode Bibliothek Vergleich
Das Barcode-Steuerelement von ComponentOne generiert Barcodes innerhalb einer Windows Forms-Anwendung. Das gelingt ihm gut – die API ist übersichtlich, die Ausgabequalität ist solide und es integriert sich nahtlos in den WinForms-Designer. Der Umfang seiner Tätigkeiten ist jedoch begrenzt. Es kann keine Barcodes lesen. Es kann nicht außerhalb eines Windows-Kontexts ausgeführt werden. Und es handelt sich nicht um ein eigenständiges Produkt – es wird als Teil von ComponentOne Studio Enterprise ausgeliefert, einem Abonnement für ca. 1.473 US-Dollar pro Entwickler und Jahr, das über 100 UI-Steuerelemente für WinForms, WPF, Blazor und ASP.NET umfasst. Wenn Sie Barcode-Optionen für ein .NET -Projekt evaluieren und ComponentOne in einer Vergleichsliste gefunden haben, erfahren Sie in diesem Artikel, was dieser Umfang in der Praxis bedeutet.
C1BarCode verstehen
C1BarCode ist ein visuelles WinForms-Steuerelement. Der Generierungs-Workflow erstellt eine Instanz, legt Eigenschaften fest und ruft GetImage() auf, um System.Drawing.Image abzurufen:
// ComponentOne C1BarCode
using C1.Win.C1BarCode;
using System.Drawing;
// License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";
var barcode = new C1BarCode();
barcode.CodeType = CodeType.Code128;
barcode.Text = "ITEM-12345";
barcode.BarHeight = 100;
barcode.ModuleSize = 2;
barcode.ShowText = true;
barcode.CaptionPosition = CaptionPosition.Below;
using var image = barcode.GetImage();
image.Save("barcode.png", System.Drawing.Imaging.ImageFormat.Png);
// ComponentOne C1BarCode
using C1.Win.C1BarCode;
using System.Drawing;
// License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";
var barcode = new C1BarCode();
barcode.CodeType = CodeType.Code128;
barcode.Text = "ITEM-12345";
barcode.BarHeight = 100;
barcode.ModuleSize = 2;
barcode.ShowText = true;
barcode.CaptionPosition = CaptionPosition.Below;
using var image = barcode.GetImage();
image.Save("barcode.png", System.Drawing.Imaging.ImageFormat.Png);
Imports C1.Win.C1BarCode
Imports System.Drawing
Imports System.Drawing.Imaging
' License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY"
Dim barcode As New C1BarCode()
barcode.CodeType = CodeType.Code128
barcode.Text = "ITEM-12345"
barcode.BarHeight = 100
barcode.ModuleSize = 2
barcode.ShowText = True
barcode.CaptionPosition = CaptionPosition.Below
Using image As Image = barcode.GetImage()
image.Save("barcode.png", ImageFormat.Png)
End Using
Die Property-Setter-API ist WinForms-Entwicklern vertraut – sie ist direkt auf die Designeroberfläche abgebildet. CodeType, BarHeight, ModuleSize, ShowText und CaptionPosition sind allesamt für den Designer sichtbare Eigenschaften, die im Code identisch funktionieren.
C1BarCode unterstützt die gängigen 1D- und 2D-Formate: Code 39, Code 128, EAN-8, EAN-13, UPC-A, UPC-E, ITF, QR-Code und PDF417, um nur einige zu nennen. Für die WinForms-Generierung werden die gängigen Anwendungsfälle abgedeckt.
Keine Lese-API
Dies ist keine Lücke, die durch eine Konfigurationsoption geschlossen werden kann. Es gibt keine Klasse C1BarCodeReader. Es gibt keine Decode() Methode auf C1BarCode. Die Barcode-Steuerung von ComponentOne ist systembedingt nur auf die Generierung beschränkt.
Wenn Ihre Anwendung Barcodes aus hochgeladenen Bildern scannen, gedruckte Etiketten überprüfen, Dokumente mit eingebetteten Codes verarbeiten oder Daten aus QR-Codes in einer Web-API extrahieren muss – nichts davon ist mit C1BarCode möglich. Sie bräuchten eine separate Bibliothek zum Lesen, was die Frage aufwirft, warum man für eine Komponente bezahlen sollte, die nur Barcodes generiert, innerhalb einer Enterprise Suite mit über 100 Steuerelementen, wenn eigenständige Barcode-Bibliotheken beide Operationen abdecken.
Das Fehlen einer Lese-API ist bei WinForms-Barcode-Steuerelementen, die für die Druckausgabe konzipiert sind, nicht ungewöhnlich. Zum Entscheidungspunkt wird es, wenn sich die Anforderungen erweitern – und die Anforderungen an Barcodes erweitern sich fast immer.
Beschränkung auf Windows
C1BarCode erfordert eine Windows-spezifische Zielframework-Konfiguration:
<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
Die Zielframework-Bezeichnung net8.0-windows und UseWindowsForms sind keine optionalen Einstellungen. C1.Win.C1BarCode ist abhängig von System.Windows.Forms Typen — UserControl, PaintEventArgs, Graphics — die nur unter Windows existieren. Das Entfernen von net8.0-windows führt zu einem Build-Fehler.
Im Gegensatz dazu zielt IronBarcode auf net8.0 (oder jedes unterstützte TFM) ohne Plattformbeschränkungen ab:
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
Dies ist in mehreren praktischen Szenarien von Bedeutung:
- Azure App Service unter Linux: Standardplan für neue App Service-Bereitstellungen.
net8.0-windowskann es nicht anvisieren. - Docker-Container: Linux-Container sind der Standard. Ein Windows-Container ist größer, teurer und in vielen Cloud-Tarifen nicht verfügbar.
- ASP.NET Core Web API: Ein Barcode-Generierungsendpunkt, der nur unter Windows bereitgestellt werden kann, ist eine Bereitstellungseinschränkung, die das Team irgendwann beseitigen muss.
- Azure Functions: Der Verbrauchsplan läuft unter Linux. Eine Barcode-generierende Funktion mit dem Ziel
net8.0-windowskann nicht im Consumption-Plan bereitgestellt werden. - macOS-Entwicklung: Entwickler unter macOS können ein
net8.0-windows-Projekt nicht lokal ausführen, auch nicht zum Testen der Generierungslogik.
Die Plattformbeschränkung stellt kein Problem dar, wenn es sich bei Ihrer Anwendung um ein WinForms-Desktop-Tool handelt, das ausschließlich unter Windows ausgeführt wird. Es wird zum Problem, sobald die Bereitstellungsanforderungen irgendeine Linux- oder Cloud-Umgebung umfassen.
Suite -Bundling
C1BarCode ist nicht als eigenständiges NuGet Paket verfügbar. Es ist Teil von ComponentOne Studio Enterprise, das die vollständige ComponentOne- Suite für WinForms, WPF, Blazor und ASP.NET umfasst. Die Preise für ComponentOne Studio Enterprise betragen ungefähr 1.473 US-Dollar pro Entwickler und Jahr (Abonnement).
Diese Suite umfasst über 100 Komponenten: Raster, Diagramme, Terminplaner, Eingabesteuerelemente, Berichtsdesigner, Kartensteuerelemente, Messinstrumente und vieles mehr. Wenn Sie eine datenintensive WinForms-Anwendung entwickeln und viele dieser Steuerelemente benötigen, kann sich die Suite -Preisgestaltung lohnen. Wenn Sie Barcode-Generierung benötigen und bei ComponentOne gelandet sind, weil es bei einer Suche angezeigt wurde, erwerben Sie eine große Enterprise -UI- Suite hauptsächlich für ein einziges Steuerelement.
Es gibt kein eigenständiges C1BarCode-Paket. dotnet add package C1.Win.C1BarCode existiert nicht — das Paket ist C1.Win.C1BarCode als Teil der GrapeCity.Documents Lizenzierung oder des ComponentOne Studio Installationsprogramms. Für Entwickler, die nur Barcode-Funktionalität benötigen, aber nicht die komplette Suite, gibt es keine Möglichkeit zum Teilkauf.
Die Preisstruktur von IronBarcode ist anders: Es handelt sich um eine eigenständige Barcode-Bibliothek mit unbefristeter Lizenzierung ab 749 US-Dollar für einen einzelnen Entwickler. Es gibt keine Rastersteuerung, keine Diagrammbibliothek, keinen Berichtsdesigner – nur die Barcode-Funktionalität, die Sie suchen.
QR-Code-Anpassung
Beide Bibliotheken unterstützen die QR-Code-Generierung mit Anpassungsoptionen. Der API-Stil unterscheidet sich deutlich.
ComponentOne-Eigenschaftssetter-Ansatz:
// ComponentOne — QR code with error correction and color
using C1.Win.C1BarCode;
using System.Drawing;
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";
var barcode = new C1BarCode();
barcode.CodeType = CodeType.QRCode;
barcode.Text = "https://example.com/product/4821";
barcode.QRCodeVersion = QRCodeVersion.Version5;
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High;
barcode.QRCodeModel = QRCodeModel.Model2;
barcode.ForeColor = Color.DarkBlue;
barcode.BackColor = Color.White;
barcode.ModuleSize = 4;
using var image = barcode.GetImage();
image.Save("product-qr.png", System.Drawing.Imaging.ImageFormat.Png);
// ComponentOne — QR code with error correction and color
using C1.Win.C1BarCode;
using System.Drawing;
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";
var barcode = new C1BarCode();
barcode.CodeType = CodeType.QRCode;
barcode.Text = "https://example.com/product/4821";
barcode.QRCodeVersion = QRCodeVersion.Version5;
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High;
barcode.QRCodeModel = QRCodeModel.Model2;
barcode.ForeColor = Color.DarkBlue;
barcode.BackColor = Color.White;
barcode.ModuleSize = 4;
using var image = barcode.GetImage();
image.Save("product-qr.png", System.Drawing.Imaging.ImageFormat.Png);
Imports C1.Win.C1BarCode
Imports System.Drawing
Imports System.Drawing.Imaging
C1.C1License.Key = "YOUR-COMPONENTONE-KEY"
Dim barcode As New C1BarCode()
barcode.CodeType = CodeType.QRCode
barcode.Text = "https://example.com/product/4821"
barcode.QRCodeVersion = QRCodeVersion.Version5
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High
barcode.QRCodeModel = QRCodeModel.Model2
barcode.ForeColor = Color.DarkBlue
barcode.BackColor = Color.White
barcode.ModuleSize = 4
Using image As Image = barcode.GetImage()
image.Save("product-qr.png", ImageFormat.Png)
End Using
IronBarcode Fluent Chain:
// IronBarcode — QR code with error correction and color
// NuGet: dotnet add package IronBarcode
using IronBarCode;
using System.Drawing;
QRCodeWriter.CreateQrCode(
"https://example.com/product/4821",
300,
QRCodeWriter.QrErrorCorrectionLevel.Highest)
.ChangeBarCodeColor(Color.DarkBlue)
.SaveAsPng("product-qr.png");
// IronBarcode — QR code with error correction and color
// NuGet: dotnet add package IronBarcode
using IronBarCode;
using System.Drawing;
QRCodeWriter.CreateQrCode(
"https://example.com/product/4821",
300,
QRCodeWriter.QrErrorCorrectionLevel.Highest)
.ChangeBarCodeColor(Color.DarkBlue)
.SaveAsPng("product-qr.png");
Imports IronBarCode
Imports System.Drawing
QRCodeWriter.CreateQrCode(
"https://example.com/product/4821",
300,
QRCodeWriter.QrErrorCorrectionLevel.Highest) _
.ChangeBarCodeColor(Color.DarkBlue) _
.SaveAsPng("product-qr.png")
Der ComponentOne-Ansatz erfordert das Instanziieren eines C1BarCode-Objekts und das Festlegen mehrerer Eigenschaften, bevor GetImage() aufgerufen wird. IronBarcode verwendet für QRCodeWriter eine fließende Kette – jede Operation gibt das Barcode-Objekt zurück, und am Ende rufen Sie .SaveAsPng() auf. Es gibt keine zu verwaltende Instanz.
IronBarcode unterstützt außerdem das Einbetten von Logos in QR-Codes, was C1BarCode nicht bietet:
// QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500)
.AddBrandLogo("company-logo.png")
.ChangeBarCodeColor(Color.DarkBlue)
.SaveAsPng("branded-qr.png");
// QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500)
.AddBrandLogo("company-logo.png")
.ChangeBarCodeColor(Color.DarkBlue)
.SaveAsPng("branded-qr.png");
' QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500) _
.AddBrandLogo("company-logo.png") _
.ChangeBarCodeColor(Color.DarkBlue) _
.SaveAsPng("branded-qr.png")
IronBarcode verstehen
IronBarcode ist eine eigenständige .NET Barcode-Bibliothek, die sowohl die Generierung als auch das Lesen von Barcodes abdeckt. Es wird über NuGet installiert (dotnet add package IronBarcode), zielt auf jedes unterstützte .NET TFM ohne Plattformbeschränkungen ab und läuft unter Windows, Linux, macOS, Docker, Azure und AWS Lambda.
Die Lesefunktion unterstützt PDF-Dokumente nativ:
// Read barcodes from a PDF — no image extraction needed
using IronBarCode;
var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}");
}
// Read barcodes from a PDF — no image extraction needed
using IronBarCode;
var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}");
}
Imports IronBarCode
' Read barcodes from a PDF — no image extraction needed
Dim results = BarcodeReader.Read("invoice.pdf")
For Each barcode In results
Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}")
Next
Für Szenarien mit hohem Durchsatz steuert BarcodeReaderOptions den Kompromiss zwischen Geschwindigkeit und Genauigkeit sowie die Erkennung mehrerer Barcodes:
// Multi-barcode read with performance options
using IronBarCode;
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Balanced,
ExpectMultipleBarcodes = true,
ExpectedBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.QRCode
};
var results = BarcodeReader.Read("warehouse-manifest.jpg", options);
// Multi-barcode read with performance options
using IronBarCode;
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Balanced,
ExpectMultipleBarcodes = true,
ExpectedBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.QRCode
};
var results = BarcodeReader.Read("warehouse-manifest.jpg", options);
Imports IronBarCode
' Multi-barcode read with performance options
Dim options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Balanced,
.ExpectMultipleBarcodes = True,
.ExpectedBarcodeTypes = BarcodeEncoding.Code128 Or BarcodeEncoding.QRCode
}
Dim results = BarcodeReader.Read("warehouse-manifest.jpg", options)
Die Generation deckt die Standardformate mit einer einheitlichen statischen API ab:
// Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
.SaveAsPng("shipping-label.png");
// QR-Code-Generierung to byte array (for HTTP response)
byte[] qrBytes = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400)
.ToPngBinaryData();
// Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
.SaveAsPng("shipping-label.png");
// QR-Code-Generierung to byte array (for HTTP response)
byte[] qrBytes = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400)
.ToPngBinaryData();
Imports ZXing
Imports ZXing.QrCode
' Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128) _
.SaveAsPng("shipping-label.png")
' QR-Code-Generierung to byte array (for HTTP response)
Dim qrBytes As Byte() = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400) _
.ToPngBinaryData()
Unterstützte Plattformen: Windows, Linux, macOS, Docker, Azure (App Service und Functions), AWS Lambda. Unterstützte .NET Versionen: .NET 4.6.2 bis .NET 9.
Funktionsvergleich
| Feature | GrapeCity C1BarCode | IronBarcode |
|---|---|---|
| Barcode-Generierung | Ja | Ja |
| Barcode-Lesung | Nein | Ja |
| QR-Code-Generierung | Ja | Ja |
| QR-Logo-Einbettung | Nein | Ja |
| PDF-Eingabe zum Lesen | Nicht anwendbar (kein Messwert) | Ja (Muttersprachler) |
| .NET -Plattformziel | net8.0-windows nur |
Beliebige TFM (net8.0, etc.) |
| UseWindowsForms erforderlich | Ja | Nein |
| Linux-/Docker-Bereitstellung | Nein | Ja |
| macOS-Bereitstellung | Nein | Ja |
| Azure-Funktionen (Linux) | Nein | Ja |
| Serverseitiger ASP.NET Core | Eingeschränkt (nur Windows) | Ja |
| Eigenständiges NuGet Paket | Nein (nur Suite) | Ja |
| Einzelpreisgestaltung | Nicht anwendbar | Ab 749 $ (dauerhaft) |
| Suite -Preise | ~1.473 $/Entwickler/Jahr (Abonnement) | Nicht anwendbar |
| Fluent-Generierungs-API | Nein (Eigenschaftssetter) | Ja |
BarcodeReader.Read() |
Nein | Ja |
BarcodeWriter.CreateBarcode() |
Nein | Ja |
QRCodeWriter.CreateQrCode() |
Nein | Ja |
| Unterstützte .NET -Versionen | .NET 6+ (Windows) | .NET 4.6.2 bis .NET 9 |
| Option für eine unbefristete Lizenz | Nein (Abonnement) | Ja |
API-Mapping-Referenz
Für Teams, die von C1BarCode zu IronBarcode migrieren, gelten folgende direkte Entsprechungen:
| ComponentOne C1BarCode | IronBarcode |
|---|---|
C1.C1License.Key = "..." |
IronBarCode.License.LicenseKey = "key" |
new C1BarCode() |
Statisch – keine Instanz erforderlich |
barcode.CodeType = CodeType.Code128 |
BarcodeEncoding.Code128 (als Parameter übergeben) |
barcode.Text = "data" |
Erstes Argument von BarcodeWriter.CreateBarcode() |
barcode.BarHeight = 100 |
.ResizeTo(width, 100) auf dem Barcode-Schreiber |
barcode.ModuleSize = 2 |
.ResizeTo() steuert die Größenangabe in Pixeln |
barcode.ForeColor = Color.DarkBlue |
.ChangeBarCodeColor(Color.DarkBlue) |
barcode.BackColor = Color.White |
.ChangeBackgroundColor(Color.White) |
barcode.GetImage() |
.SaveAsPng() / .ToPngBinaryData() |
barcode.QRCodeErrorCorrectionLevel |
QRCodeWriter.QrErrorCorrectionLevel enum |
barcode.QRCodeVersion |
Automatisch (oder Versionsparameter) |
| Keine Lese-API | BarcodeReader.Read(path) |
net8.0-windows erforderlich |
net8.0 (oder ein beliebiges TFM) |
UseWindowsForms = true erforderlich |
Nicht erforderlich |
Wenn die Teams wechseln
Es entsteht eine Leseanforderung. Dies ist der häufigste Auslöser. Ein Team entwickelt mit C1BarCode eine Barcode-Etikettengenerierung und erhält anschließend die Anforderung, Scans zu überprüfen, eingehende Versanddokumente zu verarbeiten oder QR-Codes aus hochgeladenen Bildern zu dekodieren. C1BarCode kann hier nicht weiterhelfen. Die Alternativen sind: Entweder eine zweite Barcode-Bibliothek zum Lesen hinzufügen oder C1BarCode durch eine Bibliothek ersetzen, die beides unterstützt.
Bei der Bereitstellung unter Linux oder Docker besteht diese Einschränkung nicht. Eine WinForms-Desktopanwendung, die für Windows-Desktops ausgeliefert wird, unterliegt dieser Einschränkung nicht. Eine ASP.NET Core API, die Barcode-Bilder generiert, tut dies – insbesondere wenn sie in einem Linux-Container ausgeführt oder in Azure App Service unter Linux bereitgestellt werden muss. Das Zielframework net8.0-windows blockiert diese Bereitstellungsoptionen sofort.
Microservice- oder serverlose Architektur. Azure Functions, AWS Lambda und containerisierte Microservices sind Linux-first. Ein Barcode-Generierungsdienst, der nicht unter Linux bereitgestellt werden kann, ist kein praktikabler Microservice.
Kosten des Suite -Abonnements im Vergleich zum Anforderungsumfang. Teams, die für ComponentOne Studio Enterprise bezahlen und bereits dessen Raster, Diagramme und andere Steuerelemente nutzen, haben das Abonnement bereits gerechtfertigt. Teams, die hauptsächlich oder ausschließlich für die Barcode-Generierung abonniert haben, zahlen für mehr als 100 Kontrollfunktionen, die sie nicht nutzen. Die Abonnementkosten pro Entwickler steigen mit der Teamgröße.
Bevorzugt wird eine unbefristete Lizenz. ComponentOne Studio ist nur im Abonnement erhältlich. Eine unbefristete Lizenzoption gibt es nicht. Für Teams, die die von ihnen ausgelieferte Software lieber besitzen möchten – insbesondere aus Gründen der Compliance oder der langfristigen Wartung – ist die unbefristete Lizenz von IronBarcode ab 749 US-Dollar strukturell anders.
Abschluss
C1BarCode generiert Barcodes sauber im WinForms-Kontext. Genau das kann es gut, und für eine WinForms-Desktopanwendung, die nur die Generierung von Labels unter Windows benötigt, ist es eine funktionale Wahl innerhalb der ComponentOne- Suite.
Der Umfang endet hier. Kein Lesezugriff, Bereitstellung nur unter Windows, kein eigenständiges Paket, Abonnementlizenzierung. Wenn die Anforderungen eines Projekts über die WinForms-Generierung unter Windows hinausgehen – z. B. eine Leseanforderung, ein Linux-Bereitstellungsziel, eine Web-API, ein Docker-Container, eine Cloud-Funktion –, kann C1BarCode diese nicht abdecken. IronBarcode deckt sowohl die Generierung als auch das Lesen von Barcodes ab, läuft auf jeder von .NET unterstützten Plattform und ist als eigenständiges Paket ohne Abonnement einer Enterprise Suite mit 100 Steuerelementen erhältlich.
Häufig gestellte Fragen
Was ist GrapeCity BarCode?
GrapeCity BarCode ist eine .NET Barcode-Bibliothek zum Erzeugen und Lesen von Barcodes in C#-Anwendungen. Sie ist eine von mehreren Alternativen, die Entwickler bei der Auswahl einer Barcode-Lösung für .NET-Projekte in Betracht ziehen.
Was sind die Hauptunterschiede zwischen GrapeCity BarCode und IronBarcode?
IronBarcode verwendet eine statische, zustandslose API, die keine Instanzverwaltung erfordert, während GrapeCity BarCode in der Regel eine Instanzerstellung und -konfiguration vor der Verwendung erfordert. IronBarcode bietet außerdem native PDF-Unterstützung, automatische Formaterkennung und Single-Key-Lizenzierung in allen Umgebungen.
Ist IronBarcode einfacher zu lizenzieren als GrapeCity BarCode?
IronBarcode verwendet einen einzigen Lizenzschlüssel, der sowohl die Entwicklungs- als auch die Produktionsbereitstellung abdeckt. Dies vereinfacht CI/CD-Pipelines und Docker-Konfigurationen im Vergleich zu Lizenzierungssystemen, die SDK-Schlüssel von Laufzeitschlüsseln trennen.
Unterstützt IronBarcode alle Barcode-Formate, die GrapeCity Barcode unterstützt?
IronBarcode unterstützt über 30 Barcode-Symbologien, darunter QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 und viele mehr. Die automatische Formaterkennung bedeutet, dass keine explizite Formataufzählung erforderlich ist.
Unterstützt IronBarcode das native Lesen von PDF-Barcodes?
Ja, IronBarcode liest Barcodes direkt aus PDF-Dateien mit BarcodeReader.Read("document.pdf"), ohne dass eine separate PDF-Rendering-Bibliothek erforderlich ist. Die seitenweisen Ergebnisse umfassen Seitenzahl, Barcodeformat, Wert und Konfidenzwert.
Wie handhabt IronBarcode die Stapelverarbeitung im Vergleich zu GrapeCity BarCode?
Die statischen Methoden von IronBarcode sind zustandslos und natürlich thread-sicher, was die direkte Verwendung von Parallel.ForEach ohne Instanzverwaltung pro Thread ermöglicht. Es gibt auf keiner Preisstufe eine Obergrenze für den Durchsatz.
Welche .NET Versionen werden von IronBarcode unterstützt?
IronBarcode unterstützt .NET Framework 4.6.2+, .NET Core 3.1 und .NET 5, 6, 7, 8 und 9 in einem einzigen NuGet-Paket. Zu den Zielplattformen gehören Windows x64/x86, Linux x64 und macOS x64/ARM.
Wie installiere ich IronBarcode in einem .NET-Projekt?
Installieren Sie IronBarcode über NuGet: Führen Sie "Install-Package IronBarCode" in der Paketmanager-Konsole oder "dotnet add package IronBarCode" in der CLI aus. Es sind keine zusätzlichen SDK-Installationsprogramme oder Laufzeitdateien erforderlich.
Kann ich IronBarcode vor dem Kauf testen, im Gegensatz zu GrapeCity?
Ja, der Testmodus von IronBarcode liefert vollständige dekodierte Barcodewerte - nur die erzeugten Ausgabebilder erhalten ein Wasserzeichen. Sie können die Lesegenauigkeit an Ihren eigenen Dokumenten testen, bevor Sie sich zum Kauf verpflichten.
Was ist der Preisunterschied zwischen GrapeCity BarCode und IronBarcode?
Die Preise für IronBarcode beginnen bei 749 US-Dollar für eine unbefristete Einzelentwicklerlizenz für Entwicklung und Produktion. Preisdetails und Volumenoptionen sind auf der IronBarcode-Lizenzierungsseite verfügbar. Es ist keine separate Runtime-Lizenz erforderlich.
Ist es einfach, von GrapeCity BarCode zu IronBarcode zu migrieren?
Bei der Migration von GrapeCity Barcode zu IronBarcode geht es in erster Linie darum, instanzbasierte API-Aufrufe durch die statischen Methoden von IronBarcode zu ersetzen, Lizenzierungs-Boilerplate zu entfernen und die Namen der Ergebniseigenschaften zu aktualisieren. Bei den meisten Migrationen wird eher Code reduziert als hinzugefügt.
Kann IronBarcode QR-Codes mit Logos generieren?
Ja. QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png") bettet ein Markenbild nativ in einen QR-Code mit konfigurierbarer Fehlerkorrektur ein. Farbige QR-Codes werden auch über ChangeBarCodeColor() unterstützt.

