BarcodeLib vs IronBarcode:C#バーコードライブラリの比較
BarcodeLibは1200万回以上ダウンロードされています。 そうした開発者のほとんどは、最終的にそれがバーコードしか作成できないことに気づく。 彼らのかなりの割合が、SkiaSharp の競合を発見するのですが、それはたいてい最悪のタイミングで起こります。つまり、すでに SkiaSharp に依存している MAUI またはBlazorプロジェクトにバーコードリブを追加した直後に、ビルド時に予期していなかった NU1608 警告が発生し、デバッグが必要になるのです。 この記事は、両方の問題を正直に取り上げています。 BarcodeLibは、明確な用途を持つ正当なライブラリです。 それがどこで止まるのかを理解することが、実際的な問題である。
BarcodeLibを理解する
BarcodeLibは、 .NET向けのオープンソースのバーコード画像生成ライブラリであり、Brad Barnhill氏によってGitHub上でメンテナンスされています。 2007年から運用されており、25種類以上のバーコードシンボルに対応している。 Apache 2.0ライセンスにより、商用利用も無料です。 純粋なバーコード生成、つまり文字列から画像を作成するという用途においては、このシステムは確実に機能し、長年にわたる活発な使用においてその目的を十分に果たしてきた。
このAPIはインスタンスベースです。 CODE-38177--@@オブジェクトを作成し、プロパティを設定し、型定数とデータ文字列でEncode()を呼び出します。 翻訳結果はSystem.Drawing.Imageで、必要に応じて保存またはストリーミングできます。 このワークフローは簡潔で分かりやすく、配送ラベル、在庫タグ、小売価格タグなど、バーコード画像を印刷することだけが要件となるプロジェクトには十分です。
BarcodeLibの主なアーキテクチャ特性:
-生成のみのスコープ:このライブラリには、読み取りまたはデコード用のAPIは一切ありません。 その全表面積は、データ文字列から画像を生成することに向けられています。
- インスタンスベースのAPI:各操作は、
Encode()@を呼び出す前に、Barcode@オブジェクトをインスタンス化し、幅、高さ、ラベルのプロパティを設定する必要があります。 - 出力はGDI+イメージオブジェクトで、HTTPレスポンスまたはデータベースストレージ用のバイト配列出力を生成するために、
MemoryStream中間ステップが必要です。 - 1DおよびQRコード生成のみ: Code128、EAN-13、UPC-A、Code39、QRコードなど25種類以上のシンボルに対応していますが、2D読み取り機能はありません。
- SkiaSharp依存性(v3.x): 3.xシリーズでは、クロスプラットフォームのサポートを可能にするため、
System.Drawing.CommonをSkiaSharpに置き換えました; これは、プロジェクト内の他のパッケージもSkiaSharpに依存している場合、バージョン競合のリスクをもたらします。 -無料、ライセンスキー不要: Apache 2.0ライセンスは商用利用をカバーしており、ランタイムキーやアクティベーションは不要です。
BarcodeLibコア生成パターン
標準的なバーコードリブ生成ワークフローでは、インスタンスを作成し、プロパティを設定し、Encode()@ を呼び出す必要があります:
--コード-38228--@@`.csharp // BarcodeLib using BarcodeLib; using System.Drawing; using System.Drawing.Imaging;
var b = new Barcode(); b.IncludeLabel = true; b.Width = 300; b.Height = 100; Image img = b.Encode(TYPE.CODE128, "PRODUCT-12345"); img.Save("barcode.png", ImageFormat.Png); --コード-38228--@@`.
これが生成ワークフロー全体です。 すべてのコンフィギュレーションは、Encode()呼び出しの前にインスタンス上で行われ、戻り値は別途保存またはバイトに変換する必要があるSystem.Drawing.Imageです。
IronBarcodeを理解する
IronBarcodeは、バーコードの生成と読み取りの両方を単一のパッケージでカバーする商用.NETバーコードライブラリです。 NuGet経由でインストールでき、 .NET Framework 4.6.2から.NET 9までで動作し、Windows、Linux、macOS、Docker、Azure、およびAWS Lambdaで動作します。 このライブラリはIron Software社によって開発・保守されており、商用サポートモデルを採用しています。
生成APIは静的かつ流暢です。インスタンスを作成する必要も、プライマリ呼び出しの前にプロパティを設定する必要もありません。 設定オプションは、BarcodeWriter.CreateBarcode()またはQRCodeWriter.CreateQrCode()の結果に連鎖します。 CODE-38190--@@、@@--CODE-38191--@、@--CODE-38192--@というチェーンの末尾にある出力メソッドは、BarcodeLibが必要とする中間のMemoryStreamパターンを排除します。 読み込み機能は同じパッケージに含まれており、別途ライブラリやZXing .NETとの統合を維持管理する必要はありません。
IronBarcodeの主な特徴:
- 生成と読み込みを1つのパッケージで: @--CODE-38194--@@ 生成を処理します; CODE-38195は、読み取りに対応しています; どちらも同じNuGetインストールに含まれています -静的流暢API:インスタンス化は不要。 CODE-38196以降のコンフィギュレーション・チェーンは、流暢なメソッドを使用します。
- 直接バイト配列出力:@--CODE-38197--@@は
byte[]をMemoryStreamステップなしで返します。 - 両端でのPDFサポート: @--CODE-38200--@@ PDFファイルをネイティブに受け入れます; 生成出力はPDFに埋め込むことができます
- SkiaSharpへの依存なし: SkiaSharpのバージョングラフに依存しないため、MAUIや他のプロジェクトにおけるNU1608の競合が解消されます。
- SLA付き商用ライセンス:価格は749ドル~5,999ドル(永久ライセンス) 商用サポートと保証された更新頻度が含まれます。
ReadingSpeedチューニング:BarcodeReaderOptionsは、スキャンの徹底度をボリュームでのパフォーマンスと交換することができます。
機能比較
| フィーチャー | バーコードリブ | IronBarcode |
|---|---|---|
| バーコード生成 | はい | はい |
| バーコード読み取り | なし | はい |
| PDFバーコード読み取り | なし | はい |
| SkiaSharpの依存関係の競合 | はい(v3.x) | なし |
| 流暢なチェーン可能なAPI | なし | はい |
| ライセンス | アパッチ2.0(無料) | 749ドル~5,999ドルの永久ライセンス |
詳細な機能比較
| フィーチャー | バーコードリブ | IronBarcode |
|---|---|---|
| 世代 | ||
| Code128生成 | はい | はい |
| EAN-13 / UPC-A世代 | はい | はい |
| QRコード生成 | はい(基本) | はい(高度な設定、ロゴ埋め込み機能付き) |
| 25種類以上のシンボル | はい | はい |
| 流暢な連鎖生成API | なし | はい |
| 直接@--CODE-38203--@@出力 | マニュアル (@--CODE-38204--@@) | コード-38205 |
| PDF生成出力 | なし | はい |
| 読む | ||
| 画像からのバーコード読み取り | なし | はい (@--CODE-38206--@@) |
| PDFからのバーコード読み取り | なし | はい(ネイティブ、追加ライブラリ不要) |
| 複数バーコード検出 | なし | はい (@--CODE-38207--@@) |
| 読書速度調整 | 該当なし | はい (@--CODE-38208--@@ 列挙) |
| プラットフォーム | ||
| ウィンドウズ | はい | はい |
| Linux / macOS | 部分的(SkiaSharpに依存) | フル |
| ドッカー/コンテナ | 設定が必要です | はい |
| MAUIプロジェクトとの互換性 | 紛争リスク(NU1608) | 紛争なし |
| .NET Framework 4.6.2以降 | はい | はい |
| .NET 6~9 | はい(SkiaSharp 3.xが必要です) | はい |
| ライセンスについて | ||
| オープンソース/無料 | はい(Apache 2.0) | なし |
| 商用サポート/SLA | なし | はい |
| ライセンスキーが必要です | なし | はい |
| 価格 | 無料 | 749ドル~5,999ドルの永久ライセンス |
バーコード生成API
生成APIは異なる設計思想に基づいている。BarcodeLibは可変インスタンス構成を使用するのに対し、 IronBarcodeは不変の流暢なチェーンを使用する。
BarcodeLibのアプローチ
BarcodeLibは、Encode()を呼び出す前に、インスタンスを構築し、プロパティを設定する必要があります。 出力はSystem.Drawing.Image@オブジェクトです:
--コード-38228--@@`.csharp using BarcodeLib; using System.Drawing; using System.Drawing.Imaging;
public byte[] GenerateCode128(string data) { var b = new Barcode(); b.IncludeLabel = true; b.Width = 300; b.Height = 100; Image img = b.Encode(TYPE.CODE128, data);
using var ms = new MemoryStream();
img.Save(ms, ImageFormat.Png);
return ms.ToArray();
} --コード-38228--@@`.
CODE-38211--@@戻り値の型は、バイト配列出力がMemoryStream仲介を必要とすることを意味します。 このプロパティはブーリアン・トグルで、BarcodeLib はエンコードされたデータ文字列をバーの下の可視ラベルとして自動的にレンダリングします。
IronBarcodeのアプローチ
IronBarcodeの生成は完全に静的です。 CODE-38214--@@の後のコンフィギュレーション・チェーン、および出力メソッドは、直接チェーンを終了します:
--コード-38228--@@`.csharp // NuGet: dotnet add package IronBarcode using IronBarCode;
public byte[] GenerateCode128(string data) { return BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128) .ResizeTo(300, 100) .AddAnnotationTextBelowBarcode(data) .ToPngBinaryData(); } --コード-38228--@@`.
CODE-38215--@@はバイト配列を直接返します - 中間の@@--CODE-38216--@や@@--CODE-38217--@オブジェクトはありません。 CODE-38218--@@は、ラベル文字列を明示的に受け取り、バーの下に表示されるテキストを制御します。 高度な生成シナリオについては、 IronBarcodeのバーコード生成に関するドキュメントを参照してください。
バーコード読み取り機能
読書は、これら二つの図書館を隔てる最も重要な機能的境界である。 BarcodeLibには読み取り機能がありません。 IronBarcodeには、完全な読み取りエンジンが同じパッケージに含まれています。
BarcodeLibのアプローチ
BarcodeLibには読み取りAPIがありません。 CODE-38219--@、@@--CODE-38220--@、@--CODE-38221--@のメソッドはありません。 これはバージョンの違いによるものではなく、図書館の設計において読書はそもそも考慮されていなかった。 デコードメソッドを呼び出そうとすると、コンパイルエラーが発生します。
--コード-38228--@@`.csharp //バーコードリブ— reading does not exist using BarcodeLib;
var b = new Barcode();
// This will not compile — there is no Decode or Read method // var value = b.Decode("barcode.png"); // CS1061: no definition // var value = b.Scan("barcode.png"); // CS1061: no definition // var value = b.ReadBarcode("barcode.png"); // CS1061: no definition
// The only thing you can do is generate: Image img = b.Encode(TYPE.CODE128, "PRODUCT-12345"); // this works --コード-38228--@@`.
BarcodeLibに加えて生成と読み取りの両方を必要とするチームは、2つ目のライブラリ(通常はZXing .NET )を追加する必要があり、これにより独自の依存関係管理の負担と、維持管理が必要な2つ目のAPIサーフェスが発生します。
IronBarcodeのアプローチ
画像ファイル、PDFファイル、ストリーム、オブジェクトを受け付けます。 PDFファイルの読み込みには、追加のライブラリは必要ありません。
--コード-38228--@@`.csharp using IronBarCode;
// Read from an image var results = BarcodeReader.Read("barcode.png"); Console.WriteLine(results.First().Value); // "PRODUCT-12345"
// Read all barcodes from a PDF — no separate PDF library needed var pdfResults = BarcodeReader.Read("invoice-batch.pdf"); foreach (var result in pdfResults) { Console.WriteLine($"Page {result.PageNumber}: {result.Value}"); }
// Tune reading for speed vs. thoroughness var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Balanced, ExpectMultipleBarcodes = true }; var multiResults = BarcodeReader.Read("warehouse-scan.png", options); --コード-38228--@@`.
CODE-38224--@@@列挙型は、大量のシナリオ用にスキャン・パフォーマンスを調整することができます。 読み取り設定に関するガイダンスについては、 IronBarcodeの読み取りに関するドキュメントを参照してください。
SkiaSharpの依存関係の競合
BarcodeLib 3.x で導入された SkiaSharp の依存関係は、 IronBarcodeには存在しない種類の競合を引き起こします。
BarcodeLibのアプローチ
BarcodeLib 3.xから、ライブラリは、.NET 6以降Windows専用となったSystem.Drawing.Commonに代わるグラフィックスバックエンドとしてSkiaSharpを導入しました。 プロジェクトがすでに別の依存関係を通してSkiaSharpを使用している場合(@--CODE-38226--@@とMicrosoft.Maui.Graphicsを使用するMAUIプロジェクトで一般的)、解決されたバージョンはBarcodeLibの想定範囲外になる可能性があります。 その結果、最低でもNU1608警告が発生し、最悪の場合は実行時にアセンブリバインディングエラーが発生します。
--コード-38228--@@. 警告 NU1608: 依存関係の制約外のパッケージバージョンが検出されました: BarcodeLib 3.1.5 は SkiaSharp (>= 2.88.7 && < 2.89.0) を必要としますが、 SkiaSharp バージョン 3.116.1 の問題が解決しました。 --コード-38228--@@.
明示的なパッケージ参照によって解決を強制すると、複雑さが増すだけで、解決の保証はありません。
--コード-38228--@@`.xml
--コード-38228--@@`.
明示的なオーバーライドを行った場合でも、互換性はBarcodeLibの内部API呼び出しが、固定バージョンで公開されているものと一致するかどうかに依存します。 プロジェクトにとって重要なスケジュールでの修正を保証するサポート契約は存在しません。
IronBarcodeのアプローチ
IronBarcodeは、アプリケーションコードとSkiaSharpの依存関係グラフを共有しません。 管理すべきバージョンネゴシエーションはなく、診断すべきNU1608もなく、SkiaSharpのバージョン解決に関連するランタイムアセンブリバインディングのリスクもありません。 MAUIプロジェクト、 Blazorプロジェクト、およびSkiaSharpに依存するその他のアプリケーションは、バージョン競合を起こすことなくIronBarcodeをインストールできます。 MAUI固有の統合パターンについては、 IronBarcode MAUIのドキュメントを参照してください。
APIマッピングリファレンス
| バーコードリブ | IronBarcode |
|---|---|
| コード-38230 | 静的API - インスタンスは不要 |
| コード-38231 | コード-38232 |
| コード-38233 | コード-38234 |
| b.幅 = 300; b.高さ = 100` | コード-38235 |
| コード-38236を返します。 | --コード-38237--@@ / @--コード-38238--@@。 |
| コード-38239 | コード-38240 |
| コード-38241 | コード-38242 |
| コード-38243 | コード-38244 |
| コード-38245 | コード-38246 |
| コード-38247 | CODE-38248--@@ (QRCodeWriter も同様) |
| 読み取りAPIはありません | コード-38250 |
| MAUIにおけるSkiaSharpのバージョン競合 | 競合する依存関係はありません |
チームがBarcodeLibからIronBarcodeへの移行を検討する場合
読書要件が表示されます
数ヶ月にわたり配送ラベルを生成してきたシステムに、新たな要件が課せられた。それは、サプライヤーから返送されたラベルも処理しなければならないというものだ。 倉庫との連携では、入荷貨物明細書からバーコードを解析する必要があります。 文書管理システムは、スキャンされたPDFファイル上のバーコードをインデックス化する必要がある。 BarcodeLibはこれらの要件をいずれも満たすことができません。読み取りAPIが存在しないためです。チームはBarcodeLibに加えてZXing .NETを追加することを検討し、2つのライブラリのメンテナンス負担と2つの独立した依存関係グラフを考慮した上で、生成と読み取りの両方を単一のNuGetインストールで処理できるライブラリを使用する方がよりクリーンな方法であると判断しました。
SkiaSharp社がマウイ島のプロジェクトで紛争を発生
あるチームが既存のMAUIアプリケーションにBarcodeLibを追加したところ、復元中にすぐにNU1608警告が発生しました。 彼らは調査し、BarcodeLibが期待するSkiaSharpの範囲とMAUIが要求するバージョンとの間のバージョンの不一致を特定し、強制的に解決するために明示的な<PackageReference>オーバーライドを追加し、ビルドをパスさせます。 その後、SkiaSharpのネイティブバイナリが誤ったバージョンをロードした際に、デバイス上でランタイムクラッシュが発生する。 この問題を解決するには、アセンブリバインディングログの詳細な調査が必要です。 IronBarcodeに切り替えることで、根本的な競合が解消されます。これは、互換性のあるSkiaSharpのバージョンを探すのではなく、共有されている依存関係を完全に排除することによって実現されます。
PDFバーコード処理が必要です
請求書、作業指示書、出荷明細書など、バーコードが埋め込まれたPDF文書を生成するアプリケーションは、後続の処理中にそれらのバーコードを読み取る必要がある場合があります。 BarcodeLibはバーコード画像を生成しますが、PDFファイルへの対応はしていません。 BarcodeLibを使用してPDFからバーコードを読み取るには、まず別のPDFライブラリを使用してPDFを画像にレンダリングし、次にその画像を別の読み取りライブラリに渡す必要があります。 IronBarcodeはフルチェーンをネイティブで処理します:すべてのページをトラバースし、中間レンダリングステップなしで検出されたすべてのバーコードを返します。
QRコードの機能が基本世代の枠を超える
当初は基本的なQRコード生成のみを必要としたプロジェクトでも、ロゴの埋め込み、色のカスタマイズ、エラー訂正レベルの設定などが必要になる場合が少なくない。 BarcodeLibは、TYPE.QR_Codeを通じてQRコードをサポートしますが、標準のWidth、Height、およびIncludeLabelプロパティ以上のオプションは提供しません。 IronBarcodeのQRCodeWriterは、連鎖メソッドを通してロゴの埋め込み、カラーコントロール、エラー訂正のチューニングを公開します。 QRコードに関する要件がBarcodeLibの基本実装でサポートされている範囲を超えたチームは、機能のギャップが移行の決定要因となることに気づいています。
一般的な移行の考慮事項
インスタンスAPIから静的Fluent APIへ
BarcodeLibのコードは、Mutableオブジェクトパターンを使用しています。 IronBarcodeは静的フルエントパターンを使用します: BarcodeWriter.CreateBarcode()を呼び出し、設定メソッドを連鎖させ、出力メソッドで終了します。 CODE-38261--@@インスタンスをフィールドとして格納したり、メソッド間で渡したりする既存のコードは、再構築が必要です。 典型的な変更点は、プロパティ設定ブロックをメソッドチェーンに置き換えることです。
--コード-38228--@@.csharp // The property setters on b become chained methods BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128) .ResizeTo(300, 100) .AddAnnotationTextBelowBarcode(data) .SaveAsPng(outputPath); --コード-38228--@@.
System.Drawing.Image を直接出力へ
BarcodeLibはSystem.Drawing.Imageを返し、バイトを生成するにはMemoryStreamが必要です。 CODE-38264--@または@@--CODE-38265--@にタイプされたコードは、更新が必要です。 IronBarcodeのフルーエントチェーンは希望の出力フォーマット-@--CODE-38266--@@、@--CODE-38267--@@、@--CODE-38268--@@@で直接終了するため、中間イメージオブジェクトとMemoryStreamステップの必要性がなくなります。
TYPE Enum から BarcodeEncoding Enum へ
BarcodeLibは、TYPE@クラスを使用し、TYPE.CODE128@のような大文字の定数を使用します。 IronBarcodeはBarcodeEncodingのようなPascalCase値を持つ列挙型を使用します。 値は直接対応します。 CODE-38274--@@を.cs@ファイル全体でgrepすると、更新が必要なすべての出現が特定され、体系的な検索と置換で一般的な形式がカバーされます:コード-38276--@@ → @--コード-38277--@、@--コード-38278--@ → @--コード-38279--@、@--コード-38280--@ → @--コード-38281--@、@--コード-38282--@ → @--コード-38283--@。
SkiaSharp リファレンスのクリーンアップ
明示的な<PackageReference Include="SkiaSharp">エントリを追加したプロジェクトは、IronBarcodeに切り替えた後、それらのオーバーライドを削除することができます。 SkiaSharpを削除する前に、dotnet list package --include-transitive@コマンドは、プロジェクト内の他のパッケージによってSkiaSharpがまだ必要であるかどうかを確認します。
IronBarcodeの追加機能
IronBarcodeは、直接的な生成と読み取りの比較機能に加え、BarcodeLibでは対応していない機能も備えています。
- QRコードロゴ埋め込み:@--CODE-38286--@@は、自動エラー修正調整機能付きQRコードの中心にブランドロゴを埋め込みます。
- PDFバーコード抽出:@--CODE-38287--@別個のPDFレンダリングライブラリなしで、PDF文書の各ページからバーコードを読み取ります。
- マルチバーコード検出:@--CODE-38288--@は、1つの画像に存在するすべてのバーコードを検出して返します。
- 読み取り速度の設定:@--CODE-38289--@、@--CODE-38290--@、および@--CODE-38291--@は、スループットと精度の比較のためにスキャン エンジンを調整します。
- スタイル付きQRコード生成:色、ファインダー・パターン・スタイル、エラー修正レベルは、@--CODE-38292--@の連鎖メソッドで設定可能です。
- 読み込み用のストリームとビットマップ入力:@--CODE-38293--@@は、ファイルパス、ストリーム、@--CODE-38294--@、および@--CODE-38295--@の入力を受け入れます。
.NETの互換性と将来の準備
IronBarcodeは.NET Framework 4.6.2から.NET 9までをサポートしており、Microsoftの.NETリリーススケジュールに合わせた定期的なリリースを行っています。 .NET 10の採用が2026年まで増加するにつれて、IronBarcodeの積極的な開発により、プロジェクトの変更を必要とせずに将来の互換性が確保されます。 このライブラリは、Windows、Linux、macOS、Docker、Azure、およびAWS Lambda上で、変更なしで動作します。 BarcodeLibは活発なコミュニティ開発も維持していますが、3.xシリーズにおけるクロスプラットフォーム対応は、上記の比較セクションで説明したSkiaSharpのバージョン互換性に依存します。 Linux上またはコンテナ環境における最新の.NETをターゲットとするプロジェクトの場合、IronBarcodeの依存関係のないクロスプラットフォームアーキテクチャは、BarcodeLibのSkiaSharpバックエンドがもたらすバージョンネゴシエーションを回避します。
結論
BarcodeLibとIronBarcodeは、 .NETにおけるバーコード処理のための異なる範囲のソリューションを提供します。 BarcodeLibは、生成機能に特化した無料のライブラリであり、20年近くにわたり、その明確な用途において信頼性の高いサービスを提供してきました。 IronBarcodeは、生成と読み取りの両方をカバーする商用ライブラリで、静的で流暢なAPIを備え、SkiaSharpへの依存関係はありません。 違いは、共有範囲内における品質の違いではなく、共有範囲そのものの違いである。
BarcodeLibは、Windows上で安定した生成のみを必要とするプロジェクト、またはSkiaSharpのバージョン管理が徹底されている環境において、依然として真に適切な選択肢である。 Apache 2.0ライセンス、無料、そして分かりやすいAPIを備えているため、バーコードをスキャンする必要のない配送ラベルシステム、在庫タグ生成ツール、その他同様のアプリケーションにとって実用的なソリューションとなる。 1200万ダウンロードという数字は、 .NET開発者の大部分がまさにこの用途を想定していることを示している。
IronBarcodeは、要件が純粋な画像生成を超えた場合、より実用的な選択肢となります。例えば、読み取り機能が必要な場合、プロジェクトがSkiaSharpのバージョン競合が発生する可能性のあるMAUIまたはクロスプラットフォームアプリケーションである場合、PDFバーコード処理がロードマップに含まれている場合、または基本的な生成機能を超えたQRコード機能が必要な場合などです。 商用ライセンスのコストは、導入の際の重要な判断基準となります。IronBarcodeがBarcodeLibに追加した機能と要件が一致するチームにとって、単一パッケージのソリューションと商用SLAは、価値交換と言えるでしょう。
率直に言って、ほとんどのチームは最初からIronBarcodeを導入しているわけではありません。 無料で十分な機能を備えているため、彼らはBarcodeLibから使い始める。 要件がBarcodeLibの生成のみの範囲を超えた場合、彼らはIronBarcodeに移行します。 移行プロセスは十分に文書化されており、APIインターフェースの変更点も予測可能です。 BarcodeLibがどこで停止するのか、具体的には生成の段階で停止するということを理解することが、タイミングに関する適切な判断を下すために必要な実践的な情報となる。
よくある質問
BarcodeLibとは何ですか?
BarCodeLib は、C# アプリケーションでバーコードを生成および読み取るための .NET バーコードライブラリです。BarCodeLib は、.NET プロジェクトのバーコードソリューションを選択する際に、開発者が評価するいくつかの選択肢の 1 つです。
BarcodeLibとIronBarcodeの主な違いは何ですか?
IronBarcodeはインスタンス管理を必要としない静的なステートレスAPIを使用しますが、BarcodeLibは通常、使用前にインスタンスの作成と設定が必要です。IronBarcodeはまた、ネイティブPDFサポート、自動フォーマット検出、およびすべての環境でのシングルキーライセンスを提供します。
IronBarcodeはBarcodeLibよりもライセンスが簡単ですか?
IronBarcodeは単一のライセンスキーで開発環境と本番環境の両方をカバーします。これは、SDKキーとランタイムキーを分離するライセンスシステムと比較して、CI/CDパイプラインとDocker構成を簡素化します。
IronBarcodeはBarcodeLibがサポートしているすべてのバーコードフォーマットをサポートしていますか?
IronBarcodeはQRコード、Code 128、Code 39、DataMatrix、PDF417、Aztec、EAN-13、UPC-A、GS1など30以上のバーコードシンボロジーをサポートしています。フォーマットの自動検出は、明示的なフォーマットの列挙が不要であることを意味します。
IronBarcodeはネイティブPDFバーコード読み取りをサポートしていますか?
IronBarcodeは、別のPDFレンダリングライブラリを必要とせず、BarCodeReader.Read("document.pdf")を使用してPDFファイルから直接バーコードを読み取ります。ページごとの結果には、ページ番号、バーコードフォーマット、値、信頼度スコアが含まれます。
IronBarcodeはBarcodeLibと比べてどのようにバッチ処理を行いますか?
IronBarcodeの静的メソッドはステートレスで当然スレッドセーフであり、スレッドごとのインスタンス管理なしにParallel.ForEachを直接使用できます。どの価格帯でもスループットの上限はありません。
IronBarcode はどの.NETバージョンをサポートしていますか?
IronBarcodeは.NET Framework 4.6.2+、.NET Core 3.1、.NET 5、6、7、8、9を単一のNuGetパッケージでサポートしています。プラットフォーム・ターゲットには、Windows x64/x86、Linux x64、macOS x64/ARMが含まれます。
.NETプロジェクトにIronBarcodeをインストールするには?
NuGet経由でIronBarcodeをインストールする:パッケージマネージャーコンソールで'Install-Package IronBarCode'を実行するか、CLIで'dotnet add package IronBarCode'を実行する。追加のSDKインストーラーやランタイムファイルは必要ありません。
購入前にIronBarcodeを評価することはできますか?
IronBarcodeのトライアルモードでは、完全なデコードされたバーコード値を返します。購入を決定する前に、ご自身のドキュメントで読み取り精度をベンチマークすることができます。
BarcodeLibとIronBarcodeの価格の違いは何ですか?
IronBarcodeは、開発および量産をカバーする永続的なシングルデベロッパーライセンスで749ドルからご利用いただけます。価格の詳細とボリュームオプションはIronBarcodeのライセンスページでご覧いただけます。別途ランタイムライセンスは必要ありません。
BarcodeLibからIronBarcodeへの移行は簡単ですか?
BarcodeLibからIronBarcodeへの移行は、主にインスタンスベースのAPIコールをIronBarcodeのスタティックメソッドに置き換えたり、ライセンスの定型文を削除したり、結果のプロパティ名を更新したりします。ほとんどの移行はコードを追加するのではなく、コードを削減します。
IronBarcodeはロゴ入りQRコードを生成できますか?
はい。QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")は、設定可能なエラー修正機能付きで、ブランド画像をネイティブにQRコードに埋め込みます。カラーQRコードもChangeBarCodeColor()でサポートされています。

