IRONSOFTWAREHOME
MIT ANDEREN KOMPONENTEN VERGLEICHEN

Spire.Barcode vs IronBarcode: Typenspezifikation, PDF-Unterstützung und Preisvergleich

Curtis Chau
Curtis Chau
Updated: 26. April 2026

Spire.Barcode erfordert den Barcode-Typ beim Lesen: scanner.Scan(path, BarCodeType.Code128). Wenn Sie Dokumente verarbeiten, bei denen die eingehenden Barcodes ein beliebiges Format haben können, müssen Sie eine Formaterkennungsschleife schreiben, bevor Sie einen Wert extrahieren können. Diese einzelne API-Entscheidung prägt alles, was Sie beim Erstellen von Barcode-Scanning-Workflows mit Spire.Barcode beachten sollten, und es lohnt sich, sie zu verstehen, bevor Sie sich dafür entscheiden.

Spire.Barcode verstehen

Spire.Barcode ist eine kommerzielle .NET Barcode-Bibliothek, die von E-iceblue, einem chinesischen Softwareunternehmen, entwickelt wurde, das auch die Produktlinien Spire.Doc, Spire.XLS und Spire.PDF herstellt. Die Bibliothek unterstützt die Barcode-Generierung und das Lesen über eine Reihe von 1D- und 2D-Symbologien hinweg und ist so konzipiert, dass sie sich in das umfassendere E-iceblue-Dokumentenverarbeitungs-Ökosystem integrieren lässt.

E-iceblue veröffentlicht zwei Pakete: FreeSpire.Barcode kostenlos und Spire.Barcode als kommerzielles Produkt. Das kostenlose Paket ist ein dauerhaft begrenztes Produkt mit bewussten Einschränkungen und keine zeitlich begrenzte Testversion. Das kommerzielle Paket schaltet den kompletten Symboliksatz frei und beseitigt die Einschränkungen der kostenlosen Version, erfordert jedoch den separaten Erwerb einer Lizenz für jedes andere verwendete Spire-Produkt.

Zu den wichtigsten architektonischen Merkmalen von Spire.Barcode gehören:

  • Obligatorischer BarCodeType-Parameter: Jeder Aufruf von BarcodeScanner.Scan() erfordert einen BarCodeType-Enum-Wert. Es gibt keine Überladung, die nur einen Dateipfad akzeptiert und eine automatische Formaterkennung durchführt.
  • Einstellungs-Objekt-Generierungsmodell: Die Barcode-Erzeugung basiert auf einem veränderlichen BarcodeSettings-Objekt, das an eine BarCodeGenerator-Instanz übergeben wird, wobei mehrere Eingabewerte zugewiesen werden müssen, bevor eine Ausgabe erfolgt.
  • Keine native PDF-Unterstützung: Spire.Barcode kann Barcodes nicht direkt aus PDF-Dateien lesen. PDF-basierte Workflows erfordern ein separates Spire.PDF-Paket, eine separate Lizenz und manuell geschriebene Codezeilen zur Seiten- und Bildextraktion durch den Entwickler.
  • Einschränkungen der kostenlosen Version von FreeSpire.Barcode: Die kostenlose Version fügt den generierten Barcodes große Evaluierungswasserzeichen hinzu, verschlechtert absichtlich die Scanleistung, beschränkt den verfügbaren Symbologiesatz und erfordert einen Registrierungsschlüssel von E-iceblue, bevor Warndialoge unterdrückt werden.
  • Integration in das E-iceblue-Ökosystem: Teams, die bereits Spire.Doc oder Spire.XLS verwenden, könnten die Vertrautheit mit der API und mögliche Paketpreise als vorteilhaft empfinden. Teams, die Spire.Barcode isoliert nutzen, tragen die vollen Lizenzkosten pro Produkt, ohne von den Vorteilen des Ökosystems zu profitieren.
  • Rückgabetyp: BarcodeScanner.Scan() gibt string[] zurück, das keine Format-Metadaten enthält. Der ermittelte Typ ist nicht im Ergebnis enthalten.

Die Anforderung an die Typenspezifikation

Spire.Barcodes BarcodeScanner.Scan() hat keine Überladung, die nur einen Dateipfad akzeptiert. Jeder Lesevorgang erfordert, dass der aufrufende Code das Barcode-Format im Voraus deklariert. Für Workflows mit nur einem Format ist dies praktikabel, aber bei der Verarbeitung von Dokumenten in verschiedenen Formaten führt es zu einer potenziellen Endlosschleife:

// Spire.Barcode: multi-format detection iterates through candidate types
BarcodeScanner scanner = new BarcodeScanner();
var candidates = new[] { BarCodeType.Code128, BarCodeType.QRCode, BarCodeType.DataMatrix, BarCodeType.EAN13, BarCodeType.PDF417 };

string foundValue = null;
foreach (var type in candidates)
{
    string[] found = scanner.Scan("barcode.png", type);
    if (found.Length > 0)
    {
        foundValue = found[0];
        break;
    }
}

Jeder dem Kandidatenarray hinzugefügte Typ ist ein zusätzlicher Scan-Durchlauf. Jedes Format, das in der Liste fehlt, wird stillschweigend ignoriert. Der Entwickler ist verantwortlich für die Pflege eines vollständigen Typeninventars und für erneute Tests, sobald ein neues Format in den Arbeitsablauf aufgenommen wird.

IronBarcode verstehen

IronBarcode ist eine kommerzielle .NET Barcode-Bibliothek, die von Iron Software entwickelt wurde. Es bietet sowohl Barcode-Lesen als auch -Generierung über ein statisches API-Modell, wodurch die Notwendigkeit der Instanzverwaltung entfällt. Die Bibliothek wird als einzelnes NuGet Paket ausgeliefert, das native Unterstützung für die PDF- und Bildverarbeitung bietet, ohne dass zusätzliche Abhängigkeiten erforderlich sind.

Die Leseengine von IronBarcode führt in einem einzigen Scanvorgang eine automatische Formaterkennung für über 50 Symbologien durch. Die von BarcodeReader.Read() zurückgegebenen Ergebnisobjekte enthalten das erkannte Format, den dekodierten Wert und kontextbezogene Metadaten wie Seitennummer für PDF-Quellen und Koordinaten im Quellbild.

Zu den wichtigsten Merkmalen von IronBarcode gehören:

  • Automatische Format-Erkennung: BarcodeReader.Read() erfordert keinen Typ-Parameter. Die Bibliothek identifiziert die Symbolik während des Scans und fügt sie dem Ergebnisobjekt hinzu.
  • Einzelpaket-PDF-Unterstützung: PDF-Dateien werden direkt von BarcodeReader.Read() akzeptiert, ohne zusätzliches NuGet-Paket, Lizenz oder manuelle Seitenextraktionscode.
  • Fluente Generierungs-API: BarcodeWriter.CreateBarcode() ist eine statische Fabrikmethode, die ein verkettbares Objekt für Größenänderung, Styling und Speicherung in einem einzigen Ausdruck zurückgibt.
  • Testmodus mit vollem Funktionsumfang: Die IronBarcode Testversion läuft mit demselben Paket wie das lizenzierte Produkt und bietet volle Lesegeschwindigkeit, volle Symbologieunterstützung und den kompletten Funktionsumfang. Die im Testmodus generierten Ausgaben weisen ein kleines Randwasserzeichen auf; Das Leseverhalten bleibt unbeeinflusst.
  • BarcodeReaderOptions zur Anpassung: Lesegeschwindigkeit, Multi-Barcode-Erkennung, Bildvorverarbeitung und erwartete Symbologie-Filter sind konfigurierbar, ohne die Bibliotheksprodukte wechseln zu müssen.
  • Ergebnisobjekte mit Metadaten: Jedes Ergebnis in einer BarcodeResults-Sammlung liefert Value, Format, PageNumber und Bildbereichsdaten.

Funktionsvergleich

Die folgende Tabelle fasst die wichtigsten Unterschiede zwischen Spire.Barcode und IronBarcode zusammen:

FeatureSpire.BarcodeIronBarcode
Barcode-LesungJa (BarCodeType erforderlich)Ja (automatische Erkennung)
Barcode-GenerierungJaJa
Automatische FormaterkennungNeinJa
Native PDF-UnterstützungNein (erfordert Spire.PDF)Ja
Kostenloses TarifFreeSpire.Barcode (eingeschränkt)Testmodus (voller Funktionsumfang)
Symbolik zählen~38 (kommerziell)50+
LizenzmodellPreisstufen pro Sitzplatz und AbonnementDauerhaft mit optionaler Unterstützung

Detaillierter Funktionsvergleich

FeatureSpire.BarcodeIronBarcode
Lektüre
Automatische FormaterkennungNeinJa
Barcode-Typ erforderlichJaNein
Metadaten des RückgabeformatsNeinJa
Mehrere Barcodes pro BildJaJa
LesegeschwindigkeitssteuerungNeinJa (BarcodeReaderOptions)
ML-gestützte FehlerkorrekturNeinJa
Generation
API-ModellEinstellungsobjekt + GeneratorStatische Fabrik mit fließender Kette
QR-Code mit individuellem LogoNur für gewerbliche KundenAlle Stufen
AusgabeformateBild (PNG, JPEG, BMP)PNG, JPEG, BMP, SVG, HTML, Stream
Flüssiges VerkettenNeinJa
PDF-Unterstützung
Barcodes aus PDFs lesenErfordert Spire.PDFNative Version, kein Zusatzpaket
Seitenzahl im ErgebnisManuelle NachverfolgungJa
Zusätzliche Lizenz erforderlichJa (Spire.PDF)Nein
Plattform
.NET FrameworkJaJa
.NET Core / .NET 5+JaJa
Docker/LinuxJaJa
Symboliken
1D (Code128, Code39, EAN, UPC)JaJa
2D (QR, DataMatrix, PDF417)JaJa
Gesamtzahl der Symbole~38 (kommerziell)50+
Lizenzierung
Kostenloses TarifFreeSpire.Barcode (mit Wasserzeichen versehen, beeinträchtigt)Testmodus (volle Geschwindigkeit, kleines Wasserzeichen)
Für die kostenlose Version ist eine Registrierung erforderlich.JaNein
LizenzmodellDauerlizenz pro Sitzplatz + AbonnementDauerlizenz mit optionaler Verlängerung
Einstiegspreis$999/Jahr (Standortabonnement)$999 (Lite, unbefristet)

Barcode-Lesung

Spire.Barcode-Ansatz

Spire.Barcodes BarcodeScanner.Scan() erfordert einen BarCodeType-Parameter bei jedem Aufruf. Der Aufruf mit nur einem Datentyp ist dann angebracht, wenn das Format bekannt und garantiert ist:

// Spire.Barcode — type is mandatory
BarcodeScanner scanner = new BarcodeScanner();
string[] results = scanner.Scan("barcode.png", BarCodeType.Code128);

foreach (string value in results)
{
    Console.WriteLine(value);
}

Wenn das Format nicht im Voraus bekannt ist, bleibt nur die Möglichkeit, die Kandidatentypen zu durchlaufen. Jeder Durchlauf entspricht einem vollständigen Scan, und jedes Format, das nicht in der Liste enthalten ist, wird stillschweigend übersehen. Das Ergebnis ist ein string[], der keinerlei Typinformationen trägt, so dass das nachfolgende Routing basierend auf dem Format zusätzliche Zustandsverwaltung durch den Aufrufer erfordert.

IronBarcode Ansatz

IronBarcodes BarcodeReader.Read() erfordert keinen Typ-Parameter. Die Bibliothek erkennt das Format automatisch in einem einzigen Durchlauf über alle unterstützten Symbologien hinweg. Das Auslesen von Barcodes aus Bildern erfolgt durch einen einzigen Methodenaufruf, unabhängig davon, wie viele verschiedene Formate die Quelle enthalten mag:

// IronBarcode: automatic format detection
var results = BarcodeReader.Read("barcode.png");

foreach (var result in results)
{
    Console.WriteLine($"{result.Format}: {result.Value}");
}

Jedes Ergebnisobjekt enthält Format, Value und Positionsmetadaten. Das Downstream-Routing auf Basis des Formats erfordert keinen zusätzlichen Status – der Typ ist im Ergebnis selbst vorhanden.

Einschränkungen des kostenlosen Tarifs

Spire.Barcode Gratis-Version

FreeSpire.Barcode fügt den generierten Barcode-Bildern ein großes Bewertungswasserzeichen hinzu. Das Wasserzeichen überdeckt den Barcode auf eine Weise, die ihn für den Produktionsprozess ungeeignet macht und eine sinnvolle Bewertung der Erzeugungsqualität verhindert. Die Scanleistung ist in der kostenlosen Version absichtlich reduziert, was bedeutet, dass die während der Evaluierung durchgeführten Durchsatzmessungen nicht die Leistung der kommerziellen Spire.Barcode-Version widerspiegeln. Für das kostenlose Paket ist außerdem ein Registrierungsschlüssel von E-iceblue erforderlich, bevor Warnmeldungen während der Ausführung unterdrückt werden. Die im kostenlosen Tarif verfügbaren Symbole stellen eine Teilmenge des kommerziellen Angebots dar. Diese Einschränkungen bedeuten insgesamt, dass eine auf FreeSpire.Barcode basierende Evaluierung nicht genau widerspiegelt, was das kommerzielle Produkt bietet.

IronBarcode Testmodus

Die Testversion von IronBarcode ist das lizenzierte Paket, das ohne Lizenzschlüssel verwendet wird. Das Lesen erfolgt in voller Geschwindigkeit mit vollständiger Symbolunterstützung und ohne Verhaltensbeschränkungen. Die Optionen für Lesegeschwindigkeit und Lesegenauigkeit verhalten sich im Test- und Lizenzmodus identisch. Im Testmodus generierte Barcodes enthalten ein kleines Wasserzeichen am Bildrand; Es verdeckt den Barcode selbst nicht. Das bei einer IronBarcode -Evaluierung gemessene Verhalten entspricht dem Verhalten, das in der Produktionsumgebung ausgeliefert wird.

AspektFreeSpire.BarcodeIronBarcode Testversion
Wasserzeichen auf dem generierten OutputGroß, deckt Barcode abKlein, nur am Bildrand
Leseleistungabsichtlich herabgesetztVolle Geschwindigkeit
SymbolikunterstützungBegrenzte Teilmenge der kostenpflichtigen AusgabeKomplettes Set (über 50 Typen)
Anmeldung erforderlichJa (kostenloser Key von E-iceblue)Nein
Verfügbare FunktionenBegrenzte TeilmengeVollständiger Funktionsumfang
ZeitlimitNone30 Tage

PDF-Barcode-Unterstützung

Spire.Barcode-Ansatz

Spire.Barcode verfügt über keine native PDF-Lesefunktion. Um Barcodes aus einer PDF-Datei zu extrahieren, muss ein Entwickler das separate Spire.PDF-Paket installieren, eine separate Spire.PDF-Lizenz erwerben und den Code zur Seiteniteration und Bildextraktion manuell schreiben, bevor der Barcode-Scan beginnen kann:

// Spire.Barcode + Spire.PDF: separate package and license required
using Spire.Pdf;

var pdf = new PdfDocument();
pdf.LoadFromFile("document.pdf");

var scanner = new BarcodeScanner();
foreach (PdfPageBase page in pdf.Pages)
{
    var images = page.ExtractImages();
    foreach (var image in images)
    {
        // BarCodeType is still required for each scan call
        string[] results = scanner.Scan(image, BarCodeType.QRCode);
    }
}

Dieses Muster erfordert zwei NuGet Pakete, zwei Lizenzvereinbarungen und vom Entwickler geschriebenen Seitenverwaltungscode. Sind Barcodes in Vektorinhalten anstatt in Rasterbildern innerhalb der PDF-Datei eingebettet, kann es passieren, dass der Bildextraktionsansatz sie vollständig erfasst.

IronBarcode Ansatz

IronBarcode verarbeitet PDF-Dateien nativ ohne zusätzliche Abhängigkeiten. Das Lesen von Barcodes aus PDF-Dokumenten erfolgt durch einen einzigen Methodenaufruf unter Verwendung derselben BarcodeReader.Read()-API wie bei Bilddateien. In jedem Ergebnisobjekt sind Seitenzahlen enthalten:

// IronBarcode: native PDF reading from the same Read() method
var results = BarcodeReader.Read("document.pdf");

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} = {barcode.Value}");
}

Es ist keine manuelle Seitenextraktion, kein zweites Paket und kein zusätzlicher Lizenzkauf erforderlich.

API-Generierung

Spire.Barcode-Ansatz

Das Generierungsmodell von Spire.Barcode konzentriert sich auf ein veränderliches BarcodeSettings-Konfigurationsobjekt. Ein Entwickler initialisiert die Einstellungen, weist die Eingabewerte individuell zu, übergibt das Einstellungsobjekt an eine BarCodeGenerator und ruft dann GenerateImage() auf:

// Spire.Barcode generation
using Spire.Barcode;

BarcodeSettings settings = new BarcodeSettings();
settings.Type = BarCodeType.Code128;
settings.Data = "12345678";
settings.ShowText = true;
settings.TextMargin = 5;
settings.BarHeight = 60;
settings.Unit = GraphicsUnit.Pixel;

BarCodeGenerator generator = new BarCodeGenerator(settings);
Image barcodeImage = generator.GenerateImage();
barcodeImage.Save("barcode.png", ImageFormat.Png);

Das veränderliche Einstellungsobjekt bedeutet, dass Konfigurationen versehentlich über mehrere Aufrufe hinweg geteilt werden können, wenn eine einzelne Instanz über mehrere Generierungsvorgänge hinweg wiederverwendet wird. Die Generatorklasse fügt einen zusätzlichen Instanziierungsschritt hinzu, der keine eigene Konfigurationslogik enthält.

IronBarcode Ansatz

IronBarcode verwendet eine statische Factory-Methode mit optionaler Fluent Chaining. Es gibt kein Einstellungsobjekt und keine Generatorinstanz, die verwaltet werden muss:

// IronBarcode generation
using IronBarCode;

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .SaveAsPng("barcode.png");

// With sizing:
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .ResizeTo(400, 100)
    .SaveAsPng("barcode.png");

QR-Codes mit individuellen Logos sind in allen IronBarcode -Lizenzstufen verfügbar:

var qr = QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest);
qr.AddBrandLogo("logo.png");
qr.SaveAsPng("qr-with-logo.png");

Preise

Die veröffentlichten Preise von Spire.Barcode umfassen Lizenzmodelle für den internen Gebrauch und OEM-Bereitstellungsebenen:

LizenzPreisBereitstellung
Standortlizenz (nur interner Gebrauch)$1,398Einzelner Standort
Standortabonnement (1-Jahres-Updates/Support)999 $/JahrEinzelner Standort
Entwickler-OEM-Abonnement$3,395/JahrÖffentlich/rechnergestützt/Cloud/Docker
Standort-OEM-Abonnement$10,187/JahrÖffentlich/rechnergestützt/Cloud/Docker (bis zu 10 Entwickler)

Nur die OEM-Ebenen erlauben die Bereitstellung für öffentliche Websites, Docker oder Cloud-Anwendungen. Die Site-Ebene (nicht-OEM) ist auf den internen Gebrauch an einem geografischen Standort beschränkt. Falls Spire.PDF auch für die PDF-Barcode-Extraktion benötigt wird, fallen zusätzliche Lizenzkosten an.

IronBarcode-Lizenzierung nutzt vier unbefristete Ebenen:

LizenzPreisEntwickler
Lite$9991
Plus$1,4993
Professionell$2,99910
Unbegrenzt$5,999Unbegrenzt

Alle Stufen sind unbefristet und bieten die Option, ein jährliches Support- und Update-Abonnement hinzuzufügen. Ein fünfköpfiges Entwicklerteam bei Spire.Barcodes Standortabonnement zahlt jedes Jahr $999 für Updates und Support; Die entsprechende IronBarcode Professional-Ebene deckt bis zu zehn Entwickler für eine einmalige Zahlung von $2,999 ab, ohne dass eine Erneuerung erforderlich ist.

API-Mapping-Referenz

Spire.BarcodeIronBarcode
new BarcodeScanner()Statische BarcodeReader.Read()
scanner.Scan(path, BarCodeType.X)BarcodeReader.Read(path)
BarCodeType.Code128 (erforderlicher Param)Automatisch erkannt; kein Äquivalent erforderlich
string[] resultsBarcodeResults-Sammlung
results[0] (String)results[0].Value (String)
new BarcodeSettings()Parameter für BarcodeWriter.CreateBarcode()
settings.Type = BarCodeType.Code128BarcodeEncoding.Code128 als zweiter Parameter
settings.Data = "value"Erster Parameter von CreateBarcode()
new BarCodeGenerator(settings)Nicht erforderlich; static factory ersetzt dies
generator.GenerateImage() + image.Save().SaveAsPng(path) oder .SaveAsJpeg(path)
Spire.PDF (für PDF-Lesen)Nicht erforderlich; Native PDF-Unterstützung integriert
Spire.License.LicenseProvider.SetLicenseKey("key")IronBarCode.License.LicenseKey = "key"

Wenn Teams einen Wechsel von Spire.Barcode zu IronBarcode erwägen

Verarbeitung von Dokumenten in gemischten Formaten

Teams, die mit einem einzigen bekannten Barcode-Format beginnen, stellen oft fest, dass die Vielfalt der verwendeten Formate im Laufe der Zeit zunimmt. Eine Lagerverwaltungsanwendung, die mit Code128-Etiketten gestartet ist, kann beispielsweise Lieferungen von Lieferanten empfangen, die DataMatrix-, GS1-128- oder QR-Codes verwenden. Jedes neue Format, das in den Workflow gelangt, erfordert eine Aktualisierung des Kandidatenarrays in der Typerkennungsschleife, einen erneuten Test der Erkennungslogik und die Bestätigung, dass kein vorhandenes Format durch die Iterationsreihenfolge verdrängt wird. Wenn die Formatvielfalt ein Ausmaß erreicht, bei dem der Wartungsaufwand für diese Schleife zu wiederkehrenden Entwicklungskosten wird, prüfen die Teams, ob eine automatische Erkennung diese Belastung vollständig beseitigen würde.

PDF-Integration

Bei dokumentenintensiven Anwendungen kommt es häufig vor, dass Barcodes aus PDF-Dateien anstatt aus eigenständigen Bildern extrahiert werden müssen. In einem Spire.Barcode-Workflow erfordert dieser Übergang den Erwerb einer Spire.PDF-Lizenz, die Integration eines zweiten Pakets und die Entwicklung einer Infrastruktur für Seiteniteration und Bildextraktion, bevor überhaupt ein Barcode gelesen werden kann. Teams, die diese Anforderung beim ursprünglichen Kauf nicht berücksichtigt hatten, sehen sich nun mit der Verwaltung von zwei Produktlizenzen und zwei API-Schnittstellen für eine Aufgabe konfrontiert, die konzeptionell zum Barcode-Lesen gehört. Die Erkenntnis, dass die PDF-Unterstützung einen separaten Kauf erfordert, ist ein häufiger Anlass, die Produktauswahl zu überdenken.

Einschränkungen bei der Bewertung der kostenlosen Version

Teams, die FreeSpire.Barcode evaluiert und anschließend die kommerzielle Lizenz erworben haben, berichten mitunter, dass sich das kommerzielle Produkt anders verhält, als ihre Evaluierung vermuten ließ. Dies ist so beabsichtigt: Die kostenlose Version reduziert absichtlich die Leseleistung und beschränkt den Symboliksatz, was bedeutet, dass die während der Evaluierung durchgeführten Benchmarks und Formatabdeckungstests nicht auf die kommerzielle Bereitstellung übertragbar sind. Wenn ein Team diese Diskrepanz nach dem Kauf feststellt, sucht es häufig nach Alternativen, deren Testverhalten repräsentativ für das Produktionsverhalten ist.

Reduzierung der Produktanzahl

Organisationen, die ihren Technologie-Stack standardisieren, betrachten Spire.Barcode manchmal als eine Komponente in einem wachsenden Bestand an E-iceblue-Produkten, von denen jedes seine eigenen Lizenzkosten und seinen eigenen Erneuerungszyklus hat. Wenn der Hauptzweck von Spire.Barcode das Lesen von Barcodes innerhalb einer Dokumentenverarbeitungspipeline ist – und nicht die tiefe Integration mit Spire.Doc oder Spire.XLS – prüfen die Teams, ob eine einzige, in sich geschlossene Barcode-Bibliothek sowohl die Lizenzierungskomplexität als auch den Supportaufwand reduzieren würde.

Gemeinsame Überlegungen zur Migration

Entfernen des Parameters "BarCodeType"

Jeder scanner.Scan()-Aufruf in einer Spire.Barcode-Codebasis trägt ein BarCodeType-Argument. Das Ersetzen dieser Aufrufe durch BarcodeReader.Read() entfernt den Typ-Parameter vollständig. Typ-Raten-Schleifen — foreach-Blöcke, die durch Kandidaten BarCodeType-Werte iterieren — können vollständig gelöscht werden; ein einziger BarcodeReader.Read()-Aufruf ersetzt die gesamte Schleife.

Aktualisierung des Rückgabetyps

Spire.Barcodes Scan() gibt string[] zurück. IronBarcode gibt eine BarcodeResults-Sammlung zurück. Aufrufstellen, die Wert zu string[] zuweisen oder Ergebnisse an Methoden übergeben, die diesen Typ erwarten, erfordern eine Aktualisierung. Das Extrahieren von Werten als Array verwendet .Select(r => r.Value).ToArray(); der Zugriff auf das erste Ergebnis erfolgt mit .First()?.Value.

Entfernen des Spire.PDF-Pakets

Wenn Spire.PDF ausschließlich installiert wurde, um Barcodes aus PDF-Dateien zu extrahieren, kann es nach der Migration zu IronBarcode entfernt werden. Alle using Spire.Pdf;-Importe und manuellen Seiteniterationsblöcke werden durch einen einzigen BarcodeReader.Read("file.pdf")-Aufruf ersetzt. Wenn Spire.PDF für andere Dokumentoperationen außerhalb der Barcodeextraktion verwendet wird, sollte es behalten werden und nur die barcodebezogenen Codepfade ersetzt werden.

Namensraumänderungen

Ersetzen Sie using Spire.Barcode; durch using IronBarCode;. Das BarCodeType-Enum wird durch BarcodeEncoding für die Generierung ersetzt und erfordert kein Äquivalent für das Lesen. Die Lizenzinitialisierung ändert sich von Spire.License.LicenseProvider.SetLicenseKey() zu einer einzigen IronBarCode.License.LicenseKey-Eigenschaftszuweisung beim Anwendungsstart.

Zusätzliche IronBarcode Funktionen

Die folgenden IronBarcode Funktionen wurden in den obigen Vergleichen nicht berücksichtigt:

  • Batch-Bild-Lesen: BarcodeReader.Read() akzeptiert Arrays von Dateipfaden, Stream-Objekten und Bitmap-Instanzen, was eine Batch-Verarbeitung ohne manuelles Durchlaufen der Sammlung von Eingaben ermöglicht.
  • BarcodeReaderOptions: Lesegeschwindigkeit, Multi-Barcode-Erkennung, maximale Kandidaten und Bildverarbeitungs-Vorverbesserung sind über ein einzelnes Optionsobjekt konfigurierbar, das an Read() übergeben wird.
  • SVG- und HTML-Ausgabe: BarcodeWriter.CreateBarcode() unterstützt .SaveAsSvg() und .SaveAsHtmlFile() zusätzlich zu Rasterbildformaten und ermöglicht so web-einbettbare Barcode-Ausgabe.
  • QR-Code mit Logo: QRCodeWriter.CreateQrCode() unterstützt AddBrandLogo() in allen Lizenzstufen, wodurch ein benutzerdefiniertes Bild in das Zentrum des QR-Codes eingefügt werden kann, ohne die Zuverlässigkeit des Scans bei geeigneten Fehlerkorrekturstufen zu beeinträchtigen.
  • Stream- und Byte-Array-Ausgabe: Generierte Barcodes können als Stream oder byte[] exportiert werden, um sie direkt zu speichern oder in eine HTTP-Antwort zu schreiben, ohne dass eine Zwischenablage erforderlich ist.
  • GS1-128 und strukturierte Symbologien: IronBarcode bietet Unterstützung für strukturierte GS1-Symbologien, die über die Möglichkeiten der kommerziellen Spire.Barcode-Version hinausgehen.

.NET-Kompatibilität und Zukunftsfähigkeit

IronBarcode unterstützt das .NET Framework4.6.2 und höher, .NET Core 3.1 und alle aktuellen .NET-Versionen. Die Bibliothek wird auf Windows, Linux und macOS getestet und läuft in Docker-Containern ohne zusätzliche native Abhängigkeitskonfiguration. Spire.Barcode unterstützt auch die plattformübergreifende .NET Bereitstellung, allerdings kann es je nach verwendeter Version bei den Linux- und Docker-Konfigurationen erforderlich sein, zusätzliche native Bibliothekseinstellungen vorzunehmen. Der regelmäßige Veröffentlichungszyklus von IronBarcode stellt sicher, dass neue C#-Sprachfunktionen und .NET -Laufzeitverbesserungen zusammen mit Plattformkompatibilitätsaktualisierungen integriert werden.

Abschluss

Spire.Barcode und IronBarcode gehen das Problem des Barcode-Lesens von grundlegend verschiedenen Standpunkten aus an. Spire.Barcode legt das Formatwissen auf den Aufrufer – jeder Scanvorgang erfordert, dass der Entwickler die Symbologie im Voraus deklariert, was in Workflows mit geschlossenem Format eine praktikable Einschränkung darstellt, in Workflows mit offenem Format jedoch einen Wartungsaufwand bedeutet. IronBarcode platziert die Formaterkennung innerhalb der Bibliothek, benötigt keinen Typparameter und gibt das erkannte Format als Teil des Ergebnisses zurück.

Spire.Barcode ist eine sinnvolle Wahl für Anwendungen, die ein einziges, garantiertes Barcode-Format verarbeiten, insbesondere wenn das Team bereits in das E-iceblue-Produktökosystem investiert hat. Das Modell zur Generierung von Einstellungsobjekten ist Entwicklern, die eine explizite Konfiguration bevorzugen, vertraut, und die kommerzielle Lizenz ist für Projekte mit nur einem Entwickler wettbewerbsfähig. Teams, die BarCodeType.Code128 bei jedem Aufruf garantieren können, tragen keine praktischen Kosten für den obligatorischen Typ-Parameter.

IronBarcode eignet sich besser für Anwendungen, bei denen die Formatvielfalt unvorhersehbar ist oder zunimmt, bei denen die Extraktion von PDF-Barcodes eine vorrangige Anforderung darstellt und bei denen die Genauigkeit der Auswertung von Bedeutung ist. Der Testlauf erfolgt in voller Produktionsgeschwindigkeit mit dem kompletten Symboliksatz, sodass die während der Evaluierung durchgeführten Leistungsbenchmarks und Formatabdeckungstests direkt auf den Produktionseinsatz übertragbar sind. Die native PDF-Unterstützung macht eine zusätzliche Bibliothek und den damit verbundenen Lizenzaufwand überflüssig. Für Teams, die IronBarcode als Alternative zu Spire.Barcode in Betracht ziehen, bietet die Spire.Barcode-Alternativenübersicht zusätzlichen Kontext für den Vergleich.

Die Entscheidung hängt letztlich von der Vorhersagbarkeit des Formats und dem Umfang des Arbeitsablaufs ab. Ein Lagerverwaltungssystem mit einem festen Code128-Etikettenstandard und ohne PDF-Quelldokumente hat keinen praktischen Grund, die automatische Erkennung von IronBarcode zu bevorzugen. Eine Dokumentenverarbeitungspipeline, die Barcodes von externen Lieferanten aufnimmt, gemischte Symbologien verarbeitet und PDF-Anhänge liest, würde feststellen, dass der obligatorische Typparameter und die Anforderung von zwei PDF-Bibliotheken laufende Wartungskosten darstellen, die IronBarcode eliminiert.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
AWS-Logo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Azure (WebApps, Funktionen v3)
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Azure (WebApps, Funktionen v3)
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.