Zum Fußzeileninhalt springen
MIT ANDEREN KOMPONENTEN VERGLEICHEN

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
$vbLabelText   $csharpLabel

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>
XML

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>
XML

Dies ist in mehreren praktischen Szenarien von Bedeutung:

  • Azure App Service unter Linux: Standardplan für neue App Service-Bereitstellungen. net8.0-windows kann 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-windows kann 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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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()
$vbLabelText   $csharpLabel

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.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an