Zum Fußzeileninhalt springen
MIT ANDEREN KOMPONENTEN VERGLEICHEN

Syncfusion Barcode vs IronBarcode: C# Barcode Bibliothek Vergleich

Das Barcode-Ökosystem von Syncfusion generiert Barcodes über UI-Steuerelemente und verkauft ein separates Produkt namens Barcode Reader OPX zum Lesen. Dieses Leseprodukt verwendet intern ZXing .NET – eine Bibliothek, die unter der Apache 2.0-Lizenz veröffentlicht wurde und von jedem Entwickler kostenlos direkt installiert werden kann. Teams, die sowohl Generierung als auch Lesen benötigen, zahlen ein Abonnement, um über eine kostenpflichtige Schnittstelle eine kostenlose Bibliothek nutzen zu können. Diese Vereinbarung prägt jede architektonische und Kostenentscheidung, die im Rahmen der Syncfusion Barcode-Entwicklung folgt.

Syncfusion BarCodeverstehen

Syncfusion Barcode ist keine eigenständige Bibliothek; Es handelt sich um eine Komponente der Syncfusion Essential Studio Suite. Die Generierungsseite wird als UI-Steuerelement ausgeliefert: SfBarcode für WinForms und WPF sowie SfBarcodeGenerator für Blazor und MAUI. Diese Steuerelemente rendern einen Barcode zur Laufzeit auf einem Formular und sind für die Verwendung innerhalb des umfassenderen UI-Komponenten-Ökosystems von Syncfusion konzipiert.

Der Leseteil ist ein völlig separates kommerzielles Produkt. Barcode Reader OPX ist ein eigenständiges Produkt von Syncfusion mit eigener Lizenz, eigenem NuGet Paket und eigener API. Teams, die sowohl Datengenerierung als auch Datenlesung benötigen, müssen zwei Produkte anstatt nur eines kaufen, warten und konfigurieren.

Die Syncfusion Community-Lizenz bietet eine kostenlose Stufe für qualifizierte Organisationen, jedoch müssen alle vier der folgenden Bedingungen gleichzeitig und ununterbrochen erfüllt sein:

  • Umsatzschwelle: Jährlicher Bruttoumsatz des Unternehmens unter 1.000.000 USD (alle Umsatzquellen, nicht nur Software)
  • Entwicklerschwelle: Fünf oder weniger Entwickler im Team
  • Mitarbeiterschwelle: Zehn oder weniger Mitarbeiter insgesamt
  • Kapitalschwelle: Das gesamte von externen Investoren aufgebrachte Kapital liegt über alle Finanzierungsrunden hinweg unter 3.000.000 US-Dollar.

Staatliche Organisationen sind unabhängig von ihrer Größe grundsätzlich ausgeschlossen. Die Bedingungen werden selbst zertifiziert und müssen dauerhaft erfüllt sein – das Überschreiten einer einzigen Schwelle löst eine kommerzielle Lizenzpflicht aus.

Zu den weiteren Merkmalen des Syncfusion Barcode-Ökosystems gehören:

  • Architektur mit reiner Generationssteuerung: SfBarcode und SfBarcodeGenerator verfügen über keine Lese-API. Es gibt nirgendwo in der Bedienoberfläche eine .Read()- oder .Scan()-Methode.
  • Versionsspezifische Lizenzschlüssel: Syncfusion Lizenzschlüssel sind an bestimmte Essential Studio-Versionsbereiche gebunden. Für ein Upgrade von Version 24.x auf Version 25.x ist ein neuer Schlüssel, eine Aktualisierung der Geheimnisse in jeder Umgebung und eine erneute Bereitstellung erforderlich, um zu vermeiden, dass Testwasserzeichen in der Produktionsumgebung erscheinen.
  • Mehrstufige Plattformregistrierung: Für jedes Plattformziel (Blazor, MAUI) sind zusätzlich zum Basislizenzaufruf plattformspezifische Dienstregistrierungsaufrufe erforderlich.
  • Kein Headless-Generierungspfad für Blazor: SfBarcodeGenerator ist eine Razor Komponente, die im Browser gerendert wird. Es verfügt über keine serverseitige Dateiausgabe-API.
  • Keine PDF-Ausgabe: Weder das WinForms- noch das Blazor Steuerelement kann einen Barcode direkt in eine PDF-Datei schreiben.
  • Nur Suite-Lizenzierung: Syncfusion BarCodeist in Essential Studio enthalten. Es gibt keinen separaten Barcode-Paketkauf.
  • OPX-Reader verwendet kostenlose Software: Barcode Reader OPX nutzt intern ZXing .NET (Apache 2.0). ZXing .NET ist direkt über NuGet kostenlos erhältlich.

Die reine Generationssteuerungsarchitektur

SfBarcode ist ein WinForms-Steuerelement mit einer eigenschaftsbasierten API: Text, Symbology, BarHeight, NarrowBarWidth, ShowText. Das Rendern eines Barcodes auf einem Formular funktioniert im WinForms-Designer wie erwartet. Die programmgesteuerte Generierung einer Barcode-Datei erfordert das Muster DrawToBitmap, was die Vorabzuweisung eines Bitmap mit den korrekten Abmessungen vor dem Rendern beinhaltet:

using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;

// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;

barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;

// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;

barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
Imports Syncfusion.Windows.Forms.Barcode
Imports System.Drawing
Imports System.Drawing.Imaging

' Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")

Dim barcode As New SfBarcode()
barcode.Text = "12345678"
barcode.Symbology = BarcodeSymbolType.Code128A
barcode.BarHeight = 100
barcode.NarrowBarWidth = 1
barcode.ShowText = True

barcode.Width = 400
barcode.Height = 150
Using bitmap As New Bitmap(barcode.Width, barcode.Height)
    barcode.DrawToBitmap(bitmap, barcode.ClientRectangle)
    bitmap.Save("barcode.png", ImageFormat.Png)
End Using
$vbLabelText   $csharpLabel

Dieses Muster impliziert, dass die Windows Forms-Laufzeitumgebung in jedem Projekt geladen werden muss, das sie aufruft, einschließlich Konsolenanwendungen, ASP.NET Core -Diensten und Azure Functions. Die Blazor Variante SfBarcodeGenerator ist eine Razor Komponente und hat überhaupt keinen serverseitigen Dateiausgabepfad.

IronBarcode verstehen

IronBarcode ist eine .NET Barcode-Bibliothek, die für die programmatische Generierung und das Lesen von Barcodes in allen .NET -Anwendungsmodellen entwickelt wurde. Es wird als einzelnes NuGet Paket ausgeliefert, das sowohl die Generierung als auch das Lesen über dieselbe API-Oberfläche abdeckt, ohne dass ein zweites Produkt erforderlich ist.

Die Bibliothek ist um ein statisches API-Modell herum konzipiert: Aufrufer rufen statische Methoden auf (BarcodeWriter.CreateBarcode, BarcodeReader.Read, QRCodeWriter.CreateQrCode) und verketten Ausgabemethoden direkt mit dem Ergebnis. Dieses Muster funktioniert identisch in WinForms-Desktopanwendungen, ASP.NET Core Webdiensten, Azure Functions, Konsolenanwendungen und Linux-Docker-Containern.

Zu den wichtigsten Merkmalen gehören:

  • Einheitliche Generierung und Lesung: Beide Funktionen befinden sich im selben NuGet Paket, stehen unter derselben Lizenz und verwenden dieselbe API-Oberfläche.
  • Statische API: Keine Instanziierung von Steuerelementen, keine Abhängigkeit von der UI-Laufzeitumgebung, keine DrawToBitmap Indirektion.
  • Plattformunabhängig: Derselbe Code und derselbe Lizenzschlüssel funktionieren in WinForms, Blazor, MAUI, ASP.NET Core, Konsole, Azure Functions und Docker unter Linux.
  • Direkte Dateiausgabe: Barcodes können direkt in PNG, JPEG, SVG, HTML, PDF und anderen Formaten gespeichert werden, ohne dass eine Zwischenspeicherung erforderlich ist.
  • Integrierte PDF-Unterstützung: SaveAsPdf() ist eine erstklassige Ausgabemethode; Die Bibliothek kann auch Barcodes aus PDF-Dokumenten nativ lesen.
  • Automatische Formaterkennung beim Lesen: BarcodeReader.Read erkennt das Barcode-Format automatisch, ohne dass der Aufrufer einen Typ angeben muss.
  • Einzelner versionsstabiler Schlüssel: Der Lizenzschlüssel ändert sich nicht zwischen kleineren oder Patch NuGet Updates innerhalb einer Hauptversion.
  • QR-Code-Funktionen: Unterstützt eingebettete Markenlogos und Farbanpassung direkt in der Generierungs-API.

Funktionsvergleich

Die folgende Tabelle fasst die wichtigsten Unterschiede zwischen Syncfusion BarCodeund IronBarcode zusammen:

Feature Syncfusion BarCode IronBarcode
Barcode-Generierung Ja – UI-Steuerelemente (WinForms, WPF, Blazor, MAUI) Ja – statische programmatische API, alle Umgebungen
Barcode-Lesung Nein – erfordert ein separates Barcode-Lesegerät (OPX). Ja – dasselbe Paket wie bei der vorherigen Generation
PDF-Barcode-Ausgabe Nein – Syncfusion.Pdf wird separat benötigt. Ja — SaveAsPdf() eingebaut
PDF-Barcode-Lesen Nein Ja – einheimische
Headless-/serverseitige Generierung Unpraktisch – UI-Steuerelemente benötigen die WinForms-Laufzeitumgebung. Native– statische API, keine UI-Abhängigkeit
Kostenloses Tarif Gemeinschaftslizenz (vier gleichzeitige Bedingungen) 30-Tage-Testversion (nur Wasserzeichen)
Lizenzmodell Jahresabonnement (Essential Studio Suite) Unbefristet ab $749

Detaillierter Funktionsvergleich

Feature Syncfusion BarCode IronBarcode
Generation
WinForms-Generierung Ja (SfBarcode) Ja
WPF-Generierung Ja (SfBarcode) Ja
Blazor -Generation Ja (SfBarcodeGenerator, im Browser gerendert) Ja (serverseitige API)
MAUI-Generation Ja (SfBarcodeGenerator) Ja
Konsole / Azure Functions Erfordert die WinForms-Laufzeitumgebung. Native
Docker/Linux Beschränkt Volle Unterstützung
Direkte Dateiausgabe Über DrawToBitmap + Bitmap.Save .SaveAsPng(), .SaveAsPdf(), .SaveAsSvg(), etc.
QR-Code mit eingebettetem Logo Nein Ja — .AddBrandLogo()
Lektüre
Lese-API im Barcode-Paket Nein Ja — BarcodeReader.Read()
Separates Leseprodukt Ja – Barcode-Lesegerät OPX (kostenpflichtig) Nicht erforderlich
OPX kapselt ZXing .NET (Apache 2.0) Ja – ZXing .NET ist kostenlos. Nicht anwendbar
PDF-Barcode-Lesen Nein Ja
Automatische Formaterkennung Nicht anwendbar Ja
Mehrfach-Barcode-Erkennung Nicht anwendbar Ja
Plattform
Minimale ASP.NET Core -API Nicht sauber unterstützt Volle Unterstützung
Plattformübergreifend (Linux) Beschränkt Volle Unterstützung
Lizenzierung
Kostenloses Tarif Gemeinschaftslizenz (vier gleichzeitige Bedingungen) 30-Tage-Testversion
Kommerzielles Lizenzmodell Jahresabonnement (Essential Studio) Immerwährende
Einstiegspreis für Gewerbekunden ~995 $/Entwickler/Jahr (Standard) Ab 749 $ (dauerhaft)
Geltungsbereich des Lizenzschlüssels Versionsspezifisch (Änderungen mit Hauptversionen) Versionsstabil innerhalb der Hauptversion
Aufwand für die Plattformregistrierung Mehrstufig (Lizenz registrieren + SyncfusionBlazor hinzufügen + SyncfusionCore konfigurieren) Einzellinie
PDF-Unterstützung
PDF-Ausgabe Nein – Syncfusion wird als zusätzliches Paket benötigt. Ja – eingebaut
PDF lesen Nein Ja – eingebaut
Formate
1D-Formate Code 128, Code 39, EAN-8/13, UPC-A/E, Codabar und andere Alle Syncfusion Formate Plus PDF417, Aztec, MaxiCode, GS1, USPS IMb und über 50 weitere.
2D-Formate QR-Code, DataMatrix QR-Code, DataMatrix, PDF417, Micro PDF417, Aztec, MaxiCode

Architektur der Generation

Der grundlegende architektonische Unterschied zwischen Syncfusion BarCodeund IronBarcode besteht in der Unterscheidung zwischen einem UI-Rendering-Steuerelement und einer programmatischen Dateigenerierungsbibliothek.

Syncfusion Ansatz

SfBarcode ist ein WinForms-Steuerelement. Seine Aufgabe ist es, einen Barcode als Teil des visuellen Layouts eines Formulars darzustellen. Um daraus eine Datei zu erzeugen, muss der Entwickler einen Bitmap Speicher vorab reservieren, der der gewünschten Ausgabegröße entspricht, DrawToBitmap aufrufen und anschließend Bitmap.Save aufrufen. Für jeden Schritt wird die Windows Forms-Laufzeitumgebung benötigt.

SfBarcodeGenerator für Blazor ist eine Razor Komponente, die im Browser über die Syncfusion Blazor JavaScript Schicht gerendert wird. Für SfBarcodeGenerator gibt es keine serverseitige API. Um aus einer Blazor -Anwendung einen herunterladbaren Barcode zu erzeugen, sind JavaScript Interop und Browser-Download-Trigger erforderlich, nicht jedoch ein Server-API-Aufruf.

Für MAUI-Anwendungen rendert SfBarcodeGenerator Barcodes innerhalb des MAUI-Layoutsystems. Das Generieren eines Barcodes als Datei zur Übertragung oder zum Drucken erfordert zusätzliche Verarbeitungsschritte, die vom Steuerelement selbst nicht bereitgestellt werden.

IronBarcode Ansatz

IronBarcode verwendet eine statische, verkettbare API, die direkt Dateiausgabe erzeugt. Das gleiche Aufrufmuster funktioniert in jedem .NET Anwendungsmodell ohne Änderungen:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPng("barcode.png");
// NuGet: dotnet add package IronBarcode
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPng("barcode.png");
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-KEY"

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .SaveAsPng("barcode.png")
$vbLabelText   $csharpLabel

Die Dokumentation zur 1D-Barcode-Generierung umfasst alle unterstützten Symbologien und Ausgabeoptionen. Keine Steuerelementinstanziierung, kein vorab zugewiesener Bitmap und keine Windows Forms-Laufzeitabhängigkeit.

Barcode-Lesung

Syncfusion Ansatz

SfBarcode und SfBarcodeGenerator besitzen konstruktionsbedingt keine Lesefähigkeit. Das Syncfusion Ökosystem schließt diese Lücke mit Barcode Reader OPX, einem separaten kommerziellen Produkt mit eigener Lizenz und eigenem Kaufprozess.

Der Barcode-Leser OPX verwendet intern ZXing .NET . ZXing .NET ist eine Open-Source-Bibliothek zum Lesen von Barcodes, die unter der Apache 2.0-Lizenz veröffentlicht wurde. Apache 2.0 ist eine freizügige Lizenz, die die uneingeschränkte kommerzielle Nutzung erlaubt. Jeder Entwickler kann ZXing .NET direkt installieren:

dotnet add package ZXing.Net
dotnet add package ZXing.Net
SHELL

Der Kauf des Barcode-Lesers OPX bedeutet, ein Syncfusion Abonnement für eine Benutzeroberfläche zu erwerben, die eigentlich kostenlos erhältlich ist. Ein vollständiger Syncfusion Workflow für Barcodes, der sowohl die Generierung als auch das Lesen abdeckt, erfordert zwei separate Syncfusion Produkte, zwei Lizenzvereinbarungen und zwei unterschiedliche API-Schnittstellen.

IronBarcode Ansatz

Das Lesen von Barcodes ist im selben NuGet Paket wie die Generierung enthalten. Es werden keine weiteren Produkte oder Lizenzen benötigt:

using IronBarCode;

var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
using IronBarCode;

var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode

Dim results = BarcodeReader.Read("barcode.png")
For Each result In results
    Console.WriteLine($"Format: {result.Format}")
    Console.WriteLine($"Value: {result.Value}")
Next
$vbLabelText   $csharpLabel

Die Dokumentation zum Barcode-Lesen umfasst die Erkennung mehrerer Barcodes, die Konfidenzbewertung, das Lesen aus Byte-Arrays und die Optimierung des Verhältnisses von Geschwindigkeit zu Genauigkeit. Das Lesen von PDF-Dokumenten ist ebenfalls nativ möglich, ohne dass eine separate PDF-Bibliothek erforderlich ist.

Lizenzarchitektur

Syncfusion Ansatz

Die Syncfusion Community-Lizenz bietet kostenlosen Zugang, setzt jedoch vier gleichzeitig zu erfüllende Zulassungsbedingungen voraus: jährlicher Bruttoumsatz unter 1.000.000 US-Dollar, fünf oder weniger Entwickler, zehn oder weniger Mitarbeiter und ein Gesamtkapital von unter 3.000.000 US-Dollar. Alle vier Bedingungen müssen ununterbrochen erfüllt sein. Regierungsorganisationen sind nicht teilnahmeberechtigt. Das Überschreiten einer dieser Bedingungen führt zu einer sofortigen Verpflichtung zur kommerziellen Lizenzierung. Der Übergang von der Community-Lizenz zur kommerziellen Lizenz kostet pro Entwickler und Jahr in der Standard-Kategorie zwischen 0 und etwa 995 US-Dollar.

Abgesehen von der Berechtigung sind Syncfusion Lizenzschlüssel versionsspezifisch. Ein für Essential Studio 24.x ausgestellter Schlüssel ist nach dem Upgrade auf 25.x nicht mehr gültig. Bei jedem größeren NuGet Versionsupdate muss ein neuer Schlüssel vom Kontoportal abgerufen, die Umgebungsgeheimnisse aktualisiert und die Anwendung erneut bereitgestellt werden, um zu verhindern, dass Testwasserzeichen in den Produktionsausgaben erscheinen.

Die Registrierung auf der Plattform erfordert weitere Schritte. Eine Blazor Anwendung benötigt drei separate Konfigurationseinträge:

// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();

// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");

// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();

// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
' Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")

' Step 2: Service registration in Program.vb
builder.Services.AddSyncfusionBlazor()

' Step 3: Namespace imports in _Imports.razor
' @Imports Syncfusion.Blazor
' @Imports Syncfusion.Blazor.BarcodeGenerator
$vbLabelText   $csharpLabel

MAUI-Anwendungen benötigen einen vierten Schritt: builder.ConfigureSyncfusionCore().

IronBarcode Ansatz

Die Aktivierung der IronBarcode -Lizenz ist eine einmalige Zuweisung, die auf allen Plattformen und Anwendungsmodellen identisch ist:

IronBarCode.License.LicenseKey = "YOUR-KEY";
IronBarCode.License.LicenseKey = "YOUR-KEY";
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-KEY"
$vbLabelText   $csharpLabel

Auf derIronBarcode -Lizenzseite wird das Modell der unbefristeten Lizenz beschrieben. Die Anleitung zur Einrichtung des Lizenzschlüssels behandelt Umgebungsvariablenmuster für CI/CD- und Docker-Bereitstellungen. Der Schlüssel ändert sich nicht zwischen kleineren und kleineren Updates innerhalb einer Hauptversion, und es ist keine plattformspezifische Dienstregistrierung erforderlich.

PDF-Ausgabe

Syncfusion Ansatz

Syncfusion Barcode-Steuerelemente können keine PDF-Ausgabe erzeugen. Um einen Barcode in ein PDF-Dokument mithilfe der Syncfusion Tools einzubetten, muss das Barcode-Steuerungspaket mit Syncfusion.Pdf kombiniert werden. Dabei wird der Barcode als Bitmap bis DrawToBitmap generiert und anschließend diese Bitmap als Bildelement in das PDF-Dokumentobjektmodell eingefügt. Dieser Workflow umfasst zwei separate Syncfusion Produkte, zwei NuGet Pakete und eine mehrstufige Rendering-Pipeline.

Das Auslesen von Barcodes aus bestehenden PDF-Dokumenten wird weder vom Barcode-Steuerelement noch vom Barcode Reader OPX unterstützt.

IronBarcode Ansatz

PDF ist in IronBarcode ein erstklassiges Ausgabeformat. Es wird keine zusätzliche Bibliothek benötigt:

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 150)
    .SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
    .ResizeTo(400, 150) _
    .SaveAsPdf("barcode.pdf")
$vbLabelText   $csharpLabel

Die Bibliothek kann auch Barcodes direkt aus PDF-Dokumenten lesen:

var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
Dim pdfResults = BarcodeReader.Read("shipping-manifest.pdf")
For Each result In pdfResults
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
$vbLabelText   $csharpLabel

Der Leitfaden zur Barcode-PDF-Generierung behandelt mehrseitige Ausgaben und das Einbetten von Barcodes in andere PDF-Inhalte.

API-Mapping-Referenz

Syncfusion BarCode IronBarcode Äquivalent
SyncfusionLicenseProvider.RegisterLicense("KEY") IronBarCode.License.LicenseKey = "key"
builder.Services.AddSyncfusionBlazor() Nicht erforderlich
builder.ConfigureSyncfusionCore() Nicht erforderlich
new SfBarcode() BarcodeWriter.CreateBarcode() (statisch)
barcode.Text = "value" Erster Parameter von CreateBarcode()
barcode.Symbology = BarcodeSymbolType.Code128A BarcodeEncoding.Code128
barcode.Symbology = BarcodeSymbolType.QRBarcode QRCodeWriter.CreateQrCode()
barcode.BarHeight = 100 .ResizeTo(width, 100)
barcode.ShowText = true .AddBarcodeText()
barcode.DrawToBitmap(bitmap, rect) .SaveAsPng(path)
Handbuch BitmapMemoryStream .ToPngBinaryData()
<SfBarcodeGenerator Type="BarcodeType.Code128" Value="..."> BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128) serverseitig
<SfQRCodeGenerator Value="..."> QRCodeWriter.CreateQrCode(value, size) serverseitig
BarcodeType.Code128 (Blazor -Enumeration) BarcodeEncoding.Code128
Barcode Reader OPX (packt ZXing .NET ein) BarcodeReader.Read(path)— nativ, kein Wrapper
Keine Lese-API für Barcode-Steuerungen BarcodeReader.Read(path)
Keine PDF-Ausgabe BarcodeWriter.CreateBarcode(...).SaveAsPdf(path)

Wenn Teams einen Wechsel von Syncfusion BarCodezu IronBarcode erwägen

Anforderungen an das Barcode-Lesen

Ein Team, das ausschließlich mit WinForms oder Blazor arbeitet, beginnt möglicherweise mit SfBarcode oder SfBarcodeGenerator für Anzeigezwecke und erhält später die Anforderung, eingehende Barcodes aus hochgeladenen Bildern, E-Mail-Anhängen oder Kameraaufnahmen zu scannen. An diesem Punkt bietet die Syncfusion Bedienoberfläche keinen Ausweg mehr. Die Syncfusion Dokumentation verweist Teams auf Barcode Reader OPX, ein separat zu erwerbendes Produkt, das ZXing .NET einbindet – eine Bibliothek, die unter der Apache 2.0-Lizenz frei verfügbar ist. Teams, die dies feststellen, überdenken häufig, ob die Beibehaltung einer kostenpflichtigen Hülle um freie Software die richtige architektonische Entscheidung ist, insbesondere wenn eine einheitliche Generierungs- und Lesebibliothek die Indirektion vollständig beseitigen würde.

Serverseitige und Backend-Generierung

Anwendungen, die als WinForms- oder WPF-Desktop-Tools beginnen, entwickeln sich manchmal weiter und beinhalten dann eine Web-API-Schicht, einen Hintergrundverarbeitungsdienst oder eine Cloud-Funktion, die Barcode-Dateien generieren muss. SfBarcode enthält eine Windows Forms-Laufzeitabhängigkeit, die sich nicht sauber in ASP.NET Core -Dienste, Azure Functions oder Linux Docker-Container übersetzen lässt. Das DrawToBitmap Muster erfordert eine WinForms-Rendering-Oberfläche, die in einer Headless-Umgebung möglicherweise nicht vorhanden ist. Teams, die diese Grenze erreichen, benötigen typischerweise eine Bibliothek, deren Generierungsmodell von Anfang an vom UI-Rendering-Stack entkoppelt ist.

Änderungen der Voraussetzungen für die Gemeinschaftslizenz

Die Community-Lizenz von Syncfusion ist gerade für junge Teams in der Frühphase besonders attraktiv, wenn sie am schnellsten wachsen. Die vier gleichzeitig zu erfüllenden Zulassungsbedingungen – Umsatz, Mitarbeiterzahl, Personalbestand und aufgebrachtes Kapital – führen zu einer Lizenzklippe, die plötzlich eintreten kann. Eine Series-A-Finanzierungsrunde bringt ein Startup typischerweise am Tag des Abschlusses der Runde über die Kapitalschwelle von 3.000.000 US-Dollar und löst damit eine kommerzielle Lizenzverpflichtung aus, unabhängig von der Anzahl der Entwickler oder dem Umsatz. Teams, die ihre Produktionsabläufe auf Basis der Community-Lizenz aufgebaut haben, müssen die Kosten und den Zeitaufwand für diesen Übergang berücksichtigen, insbesondere wenn die kommerzielle Lizenz die gesamte Essential Studio Suite und nicht nur die Barcode-Komponente abdeckt.

Reduzierung des versionsspezifischen Konfigurationsaufwands

Betriebsteams, die Syncfusion Anwendungen in CI/CD-Pipelines warten, sehen sich mit der Rotation von Lizenzschlüsseln als einer wiederkehrenden Aufgabe konfrontiert, die mit NuGet Versionsaktualisierungen zusammenhängt. Ein für Essential Studio 24.x gültiger Schlüssel funktioniert nach dem Upgrade auf 25.x nicht mehr. Dies bedeutet, dass die Geheimnisse in jeder Bereitstellungsumgebung aktualisiert und überprüft werden müssen, ob Testwasserzeichen in den Produktionsausgaben erschienen sind. Teams mit häufigen Release-Zyklen oder mehreren Bereitstellungszielen empfinden diesen Rotationsaufwand als unverhältnismäßig zum Nutzen, insbesondere wenn der zugrunde liegende Anwendungsfall die Generierung eines Barcode-Bildes und nicht die Verwendung einer kompletten UI- Suite ist.

Gemeinsame Überlegungen zur Migration

Entfernen der SyncfusionLicenseProvider-Registrierung

Der Syncfusion -Lizenzaufruf — SyncfusionLicenseProvider.RegisterLicense("KEY")— erscheint typischerweise in Program.cs, App.xaml.cs oder einer Startmethode der Anwendung. Es muss entfernt und an der gleichen Stelle in der Startsequenz durch IronBarCode.License.LicenseKey = "KEY" ersetzt werden. Die zugehörigen Service-Registrierungsaufrufe (AddSyncfusionBlazor, ConfigureSyncfusionCore) und Namespace-Importe in _Imports.razor müssen ebenfalls entfernt werden, wenn keine anderen Syncfusion Komponenten mehr im Projekt vorhanden sind.

SfBarcode zu BarcodeWriter-Muster

Der Workflow SfBarcode umfasst die Instanziierung von Steuerelementen, die Zuweisung von Eigenschaften, die Spezifikation von Dimensionen und das Rendern DrawToBitmap. Das IronBarcode Äquivalent ist ein einzelner verketteter Aufruf: BarcodeWriter.CreateBarcode(value, encoding).ResizeTo(w, h).SaveAsPng(path). Die Enumerationswerte BarcodeSymbolType werden direkt auf die Werte BarcodeEncoding abgebildet — Code128A wird auf Code128 abgebildet, QRBarcode wird auf QRCodeWriter.CreateQrCode abgebildet.

Blazor Komponente zu API-Endpunkt-Muster

SfBarcodeGenerator ist eine Razor Komponente; Der Austausch gegen IronBarcode stellt eine strukturelle Änderung dar und ist keine bloße Zeilen-für-Zeilen-Substitution. Das IronBarcode Muster für Blazor ist ein minimaler API-Endpunkt, der ein Barcode-Bild als Bytes zurückgibt, auf den von der Razor Komponente über ein Standard-<img src="...">-Tag verwiesen wird. Dieser Ansatz erzeugt einen serverseitigen Endpunkt, der unabhängig testbar und clientübergreifend wiederverwendbar ist, anstatt einer im Browser gerenderten Komponente, die an die Syncfusion Blazor JavaScript Schicht gebunden ist.

Zusätzliche IronBarcode Funktionen

Die folgenden IronBarcode Funktionen werden in den obigen Abschnitten nicht behandelt und können je nach Projektanforderungen relevant sein:

  • QR-Code mit eingebettetem Markenlogo : .AddBrandLogo("logo.png") bettet ein Firmenlogo in die Mitte des QR-Codes ein und gewährleistet gleichzeitig die Scansicherheit durch Fehlerkorrektur.
  • SVG-Ausgabe : Barcodes können als Vektor-SVG-Dateien exportiert werden, die für die Druckproduktion und hochauflösende Displays geeignet sind.
  • HTML-Ausgabe : Barcodes können als eigenständige HTML-Dateien exportiert werden.
  • Mehrfach-Barcode-Erkennung : BarcodeReader.Read erkennt und gibt alle in einem einzelnen Bild vorhandenen Barcodes zurück.
  • Konfidenzbewertung der Lesevorgänge : Jedes Leseergebnis enthält eine Konfidenzbewertung, die das Herausfiltern von Erkennungen mit geringer Qualität unterstützt.
  • Anmerkungen und Formatierung : Die generierten Barcodes unterstützen die Anpassung von Rändern, Farben, Schriftarten und Anmerkungen, ohne dass ein externer Bildbearbeitungsschritt erforderlich ist.
  • GS1- und USPS IMb-Formate : IronBarcode unterstützt spezielle Formate, die nicht von Syncfusion gesteuert werden, darunter GS1-128, USPS Intelligent Mail Barcode, MaxiCode und Aztec.

.NET-Kompatibilität und Zukunftsfähigkeit

IronBarcode ist für .NET Standard 2.0 und höher ausgelegt und bietet Kompatibilität mit .NET Framework 4.6.2 und höher, .NET Core 3.1 sowie allen aktuellen .NET Versionen, einschließlich .NET 8 und .NET 9. Die Bibliothek wird regelmäßig gemäß dem .NET Veröffentlichungsplan von Microsoft aktualisiert, um die Kompatibilität mit .NET 10, dessen Veröffentlichung für Ende 2026 geplant ist, zu gewährleisten. Da IronBarcode eine statische Programmbibliothek und kein UI-Steuerelement ist, ist sie von den Unterschieden in der Plattformentwicklung zwischen WinForms, WPF, Blazor und MAUI nicht betroffen – dasselbe NuGet Paket und dieselbe API funktionieren ohne plattformspezifische Anpassungen in allen aktuellen und zukünftigen .NET Anwendungsmodellen.

Abschluss

Syncfusion Barcode und IronBarcode unterscheiden sich auf architektonischer Ebene, und zwar nicht nur hinsichtlich der Anzahl der Funktionen. Syncfusion BarCodeist ein UI-Rendering-Steuerelement, das in eine große Suite integriert ist; sein Designziel ist die Anzeige eines Barcodes innerhalb eines Formularlayouts, und dieses Ziel erreicht es gut. IronBarcode ist eine programmatische Dateigenerierungs- und Lesebibliothek, deren Designziel es ist, Barcodes als Daten zu verarbeiten – Dateien zu generieren, Bilder zu lesen und in jeder Einsatzumgebung zu funktionieren. Es handelt sich um verschiedene Werkzeuge, die für unterschiedliche primäre Anwendungsfälle konzipiert sind, und die Wahl zwischen ihnen hängt im Wesentlichen davon ab, welcher Anwendungsfall auf das jeweilige Projekt zutrifft.

Syncfusion Barcode ist die richtige Wahl, wenn ein Team bereits Syncfusion Essential Studio für andere UI-Komponenten – Raster, Diagramme, Terminplaner – verwendet und die Barcode-Anforderung darin besteht, einen Barcode auf einem Formular oder einer Blazor -Seite anzuzeigen. In diesem Kontext ist die Barcode-Steuerung bereits in der bestehenden Lizenz enthalten, und das Hinzufügen zu einem Formular ist so einfach wie das Einfügen eines Steuerelements in den Designer. Für Teams mit diesen spezifischen Bedingungen bietet der Kauf von IronBarcode keinen Mehrwert gegenüber der bestehenden Lizenz.

IronBarcode ist die richtige Wahl, wenn die Anforderungen über die Formularanzeige hinausgehen: Lesen von Barcodes aus hochgeladenen Bildern, Generieren von Barcode-Dateien in einem Backend-Dienst, Lesen von Barcodes aus PDF-Dokumenten, Bereitstellung in einem Docker-Container unter Linux oder Erstellen eines Web-API-Endpunkts, der Barcode-Bilder zurückgibt. Es ist auch die richtige Wahl für Teams, deren Lizenzsituation nicht dauerhaft alle vier Bedingungen der Syncfusion Community License erfüllt, oder für Teams, die eine versionsspezifische Schlüsselrotation im Rahmen des NuGet Upgrade-Prozesses vermeiden möchten. Das unbefristete Lizenzmodell von IronBarcode und das einheitliche Generierungs- und Lesepaket gehen direkt auf diese betrieblichen Bedenken ein.

Die entscheidende Einschränkung des Barcode-Ökosystems von Syncfusion besteht darin, dass Generierung und Lesen auf zwei Produkte verteilt sind, wobei das Leseprodukt eine kommerzielle Hülle um eine freie Software ist. Für Teams, die beide Funktionen benötigen, entstehen durch diese Lösung doppelte Lizenzkosten, zwei API-Schnittstellen und eine Abhängigkeit von ZXing .NET , die man auch direkt hätte nutzen können. Das Einzelpaketmodell von IronBarcode beseitigt diese Indirektion. Die richtige Wahl ist diejenige Architektur, die den tatsächlichen Anforderungen entspricht: Wenn die Barcode-Anzeige innerhalb einer bestehenden Syncfusion Benutzeroberfläche den gesamten Umfang ausmacht, ist Syncfusion die naheliegende Lösung. Wenn die Barcode-Verarbeitung eine Backend-Angelegenheit ist, ist IronBarcode die geeignetere Grundlage.

Häufig gestellte Fragen

Was ist Syncfusion BarCode?

Syncfusion 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 Syncfusion BarCode und IronBarcode?

IronBarcode verwendet eine statische, zustandslose API, die keine Instanzverwaltung erfordert, während Syncfusion 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 Syncfusion 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 Syncfusion 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 Syncfusion 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 im Gegensatz zu Syncfusion vor dem Kauf testen?

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 Syncfusion 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 die Migration von Syncfusion BarCode zu IronBarcode einfach?

Bei der Migration von Syncfusion Barcode zu IronBarcode geht es in erster Linie darum, instanzbasierte API-Aufrufe durch die statischen Methoden von IronBarcode zu ersetzen, Lizenzierungsklauseln 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