IRONSOFTWAREHOME
ビデオ

OnBarcodeからIronBarcodeへの移行

Curtis Chau
Curtis Chau
Updated: 2026年8月1日

このガイドでは、OnBarcodeからIronBarcodeへの移行手順全体を網羅しています。 本書では、3段階のセットアップ変更について解説し、一般的なパターンごとに変更前後のコード例を提供し、OnBarcode APIをIronBarcodeの同等の機能にマッピングし、移行中に発生する問題点を文書化し、移行完了とみなす前にコードベースを監査するための検索語のチェックリストを提供します。

OnBarcodeから移行する理由

**二重SKU調達オーバーヘッド:**OnBarcodeはGenerator SDK(LinearのみおよびLinear + 2Dの階層)のおよびReader SDKを別々に価格設定された製品として枠外化しています。 両方の機能を必要とする組織は、使用しているシンボロジーに正しいGenerator階層を選び、次に別途Readerを購入するために、2つのSKUに対して2つの調達プロセスを完了しなければなりません。 摩擦は2つの購入にわたる重複であり、単一のラインアイテムではありません。

**分割製品によるオーバーヘッド:**生成と読み取りは別々の製品であり、それぞれに別々のNuGetパッケージ、別々のライセンス 名前空間、別々のライセンス キー、および別々のバージョン スケジュールが存在します。 両方の製品を使用するプロジェクトでは、起動時に2つのライセンスキーを設定し、アップグレード時に2つのパッケージバージョンを追跡し、2つの独立したリリースサイクルを把握しておく必要があります。 当初は生成のみを目的としていたプロジェクトに読み取り要件が追加された場合、2つ目の製品についても調達と統合のプロセス全体を繰り返す必要がある。

PDFワークフローのギャップ: OnBarcodeは、PDFドキュメントからバーコードを読み取るためのネイティブサポートを提供していません。 請求書、出荷明細書、発注書、またはアーカイブスキャンに埋め込まれたバーコードを処理するプロジェクトでは、別途PDFから画像へのレンダリングライブラリを取得し、それをパイプラインに統合し、ライセンスを個別に管理し、レンダリングされたページを1ページずつOnBarcode Reader SDKに渡す必要があります。これにより、本来であれば1つの依存関係で済むはずのソリューションが、2つの依存関係を持つソリューションになってしまいます。

API 冗長性: オンバーコード ジェネレーターは、Barcode オブジェクトをインスタンス化し、BarHeight などの妥当なデフォルトを含む複数のプロパティを割り当て、生成メソッドを呼び出す必要があります。 静的ファクトリAPIを使用すれば、同じ出力をはるかに少ないコードで生成できます。 バッチ生成全体にわたって繰り返されるプロパティ割り当てパターンは、レビューと保守が必要な大量の反復コードを生成する。

基本的な問題

生成と読み取りの両方を必要とするプロジェクトにとって、デュアルライセンス構成は最も直接的な問題点となる。 OnBarcodeは起動時に、2つの異なるライセンスネームスペースに対して2つの別々の呼び出しを行う必要があります。

// OnBarcode: two products, two DLL references, no runtime key
// オンバーコード uses pre-licensed DLLs — the purchased DLL is already activated.
// There is no runtime SetLicense() call; the license is baked into the downloaded assembly.
using OnBarcode.Barcode;
using OnBarcode.Barcode;
C#

IronBarcodeはこれを単一のプロパティ割り当てに集約し、生成、読み取り、PDFサポート、バッチ操作といったすべての機能を1つのキーで網羅します。

// IronBarcode: one package, one key, one line
using IronBarCode;

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

アプリケーション内のすべてのバーコード操作(PDFの生成、読み取り、処理のいずれであっても)は、単一の構成で実行されます。

IronBarcodeとOnBarcode:機能比較

フィーチャーオンバーコードIronBarcode
バーコード生成はいはい
バーコード読み取り別商品、別売り含まれるもの
PDFバーコード読み取りネイティブサポートされていませんネイティブ — 外部ライブラリは不要
読み取り時のフォーマット自動検出いいえ — 明示的な BarcodeType[] が必要ですはい
結果メタデータ(形式、位置、ページ)不可 — 生の string[] のみはい — フルメタデータ付きの BarcodeResults
ロゴオーバーレイ付きQRコード手動のGDI+コードが必要です内蔵
公開価格はい — 各製品ページ(Generator層+別途Reader)はい — 1枚のページがすべての機能をカバー
すべての機能に対応する単一のライセンスキーいいえ、製品ごとにキーが異なります。はい
NuGetディストリビューション利用可能、従来のDLLダウンロードと共に発売当初から利用可能
ソースコードへのアクセス無制限ティアのみ不可
.NET 8 / 9 のサポートはいはい
Docker / クラウドライセンス構成マニュアル環境変数のサポート

クイックスタート:OnBarcodeからIronBarcodeへの移行

ステップ1:OnBarcodeパッケージの参照を削除します

プロジェクトでNuGetパッケージを使用している場合は、両方を削除してください。

dotnet remove package OnBarcode.Barcode.Generator
dotnet remove package OnBarcode.Barcode.Reader
SHELL

プロジェクトが古い DLL ベースの配布を使用している場合、.csproj から手動参照ブロックも削除してください。

<!-- Remove this block entirely -->
<ItemGroup>
  <Reference Include="OnBarcode.Barcode">
    <HintPath>lib\OnBarcode.Barcode.dll</HintPath>
    <Private>true</Private>
  </Reference>
</ItemGroup>
XML

lib/ ディレクトリから DLL ファイルを削除するか、それらが保存されている場所から削除します。 新しいNuGetパッケージと並行して古いアセンブリを残しておくと、コンパイル時に名前空間の競合が発生します。

ステップ2: IronBarcodeを追加する

1つのパッケージで、生成、読み込み、PDFサポートがすべてカバーされます。

dotnet add package IronBarcode
SHELL

閲覧には別のパッケージは必要ありません。 PDFサポートには、別途パッケージは必要ありません。

ステップ3:名前空間を更新し、デュアルライセンス構成を置き換える

OnBarcode の 2 つの使用指示を、単一のIronBarcodeインポートに置き換えます。

// Remove
using OnBarcode.Barcode;
using OnBarcode.Barcode;

// Add
using IronBarCode;

2つのDLL参照を単一のキー割り当てに置き換えます。 これをアプリケーションの起動直後、バーコード操作が実行される前に一度だけ配置してください。

// Remove the オンバーコード DLL references and using directives
// Add
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
C#

コード移行の例

コード128バーコード生成

基本的なコード128の事例は、プロパティ割り当てパターンと静的ファクトリパターンの違いを示しています。

OnBarcodeアプローチ:

using OnBarcode.Barcode;

Linear barcode = new Linear();
barcode.Type = BarcodeType.CODE128;
barcode.Data = "SHIP-2024-001";
barcode.Resolution = 96;
barcode.X = 1;
barcode.BarcodeHeight = 80;
barcode.ShowText = true;
barcode.drawBarcode("shipping-label.png");

IronBarcodeのアプローチ:

using IronBarCode;

BarcodeWriter.CreateBarcode("SHIP-2024-001", BarcodeEncoding.Code128)
    .SaveAsPng("shipping-label.png");

データとエンコーディングタイプは CreateBarcode への引数として渡されます。 解像度やバーの高さといった特性は、スキャン可能な出力を生成するために必須ではありません。 デフォルト設定はほとんどの用途に適しています。 カスタム寸法が必要な場合、CreateBarcodeSaveAsPng 間のチェーン呼び出しとして追加でき、可変オブジェクト状態を導入しません。

ロゴ付きQRコード生成

ロゴ付き QR コードは、画像オーバーレイステップのために オンバーコード が System.Drawing にフォールバックする必要があります。IronBarcode ではこれを組み込みの操作として提供しています。

OnBarcodeアプローチ:

using OnBarcode.Barcode;
using System.Drawing;

QRCode qr = new QRCode();
qr.Data = "https://example.com/product/4891";
qr.QRCodeDataMode = QRCodeDataMode.Auto;
qr.QRCodeECL = QRCodeECL.H; // H-level error correction required for logo overlay

Image qrImage = qr.drawBarcode();

using (Graphics g = Graphics.FromImage(qrImage))
{
    Image logo = Image.FromFile("brand-logo.png");
    int logoSize = qrImage.Width / 5;
    int x = (qrImage.Width - logoSize) / 2;
    int y = (qrImage.Height - logoSize) / 2;
    g.DrawImage(logo, x, y, logoSize, logoSize);
}

qrImage.Save("product-qr.png");

IronBarcodeのアプローチ:

using IronBarCode;

var qr = QRCodeWriter.CreateQrCodeWithLogo("https://example.com/product/4891", "brand-logo.png", 500);
qr.SaveAsPng("product-qr.png");

エラー訂正レベル、ロゴサイズ計算、画像合成は内部で処理されます。 System.Drawing 依存性は必要ありません。

画像からバーコードを読み取る

画像ファイルからの読み込みは、製品統合を最も明確に示している。 OnBarcodeでは、読み取りには別途Reader SDK、別途ライセンス認証、および明示的なフォーマット指定が必要です。 IronBarcodeでは、既に設定されている同じパッケージとキーを使用して、単一の静的呼び出しを行うだけで済みます。

OnBarcodeアプローチ:

using OnBarcode.Barcode;

// オンバーコード reader is distributed as a pre-licensed DLL — no runtime SetLicense() call.
BarcodeScanner scanner = new BarcodeScanner();
scanner.BarcodeTypes = new BarcodeType[] { BarcodeType.Code128, BarcodeType.QRCode };
string[] results = scanner.Scan("received-label.png");

foreach (string value in results)
    Console.WriteLine(value);
C#

IronBarcodeのアプローチ:

using IronBarCode;

var results = BarcodeReader.Read("received-label.png");
foreach (var result in results)
    Console.WriteLine($"{result.Format}: {result.Value}");

インスタンスの作成、フォーマット配列、個別のライセンス設定は不要です。 フォーマットは自動的に検出されます。 各結果には、デコードされた値と検出されたフォーマットが含まれています。 読み取りオプションやサポートされている画像タイプの詳細については、 "画像からバーコードを読み取る方法"ガイドを参照してください。

PDFファイルからバーコードを読み取る

この移行例は、サードパーティライブラリを使用してPDFページを画像にレンダリングしてから、それらの画像をOnBarcode Reader SDKに渡していたチームに適用されます。

OnBarcodeアプローチ:

// オンバーコード has no native PDF support.
// A separate PDF rendering library was required — for example PdfiumViewer or Aspose.PDF.
var pageImages = RenderPdfPagesToImages("invoices.pdf"); // external library call

using OnBarcode.Barcode;
BarcodeScanner scanner = new BarcodeScanner();
scanner.BarcodeTypes = new BarcodeType[] { BarcodeType.Code128, BarcodeType.QRCode };

foreach (var pageImage in pageImages)
{
    string[] results = scanner.Scan(pageImage);
    foreach (string value in results)
        Console.WriteLine(value);
}
C#

IronBarcodeのアプローチ:

using IronBarCode;

var results = BarcodeReader.Read("invoices.pdf");
foreach (var result in results)
    Console.WriteLine($"Page {result.PageNumber}: {result.Format}{result.Value}");

レンダリング手順なし、外部PDFライブラリなし、フォーマット配列なし。 PDFバーコード読み取り機能は、すべてのページを自動的に処理し、各結果にページ番号を含めます。

バッチ生成

複数のアイテムに対してバーコードを生成する場合も、単一アイテムを生成する場合と同じパターンの違いが生じます。

OnBarcodeアプローチ:

using OnBarcode.Barcode;

foreach (var item in inventoryItems)
{
    Linear barcode = new Linear();
    barcode.Type = BarcodeType.CODE128;
    barcode.Data = item.Sku;
    barcode.Resolution = 96;
    barcode.BarWidth = 1;
    barcode.BarHeight = 80;
    barcode.ShowText = true;
    barcode.drawBarcode($"labels/{item.Id}.png");
}

IronBarcodeのアプローチ:

using IronBarCode;

foreach (var item in inventoryItems)
{
    BarcodeWriter.CreateBarcode(item.Sku, BarcodeEncoding.Code128)
        .SaveAsPng($"labels/{item.Id}.png");
}

オンバーコード APIとIronBarcodeのマッピングリファレンス

オンバーコードIronBarcodeノート
プリライセンスされたDLL(ランタイムキー呼び出しなし)IronBarCode.License.LicenseKey = "key"財産の譲渡; 起動時に一度だけ呼び出される
2つのDLL参照(ジェネレータ+リーダー)単一のNuGetパッケージ1つのパッケージで全機能をカバー
new Linear()BarcodeWriter.CreateBarcode(data, encoding)静的ファクトリー; オブジェクトインスタンスなし
barcode.BarcodeType = BarcodeType.CODE128BarcodeEncoding.Code128 をパラメータとして使用CreateBarcode に第二引数として渡されます
barcode.Data = "..."CreateBarcode の最初のパラメータデータは最初の引数です
barcode.drawBarcode("file.png").SaveAsPng("file.png")フォーマット名付きメソッド
barcode.drawBarcode("file.jpg").SaveAsJpeg("file.jpg")フォーマット名付きメソッド
barcode.drawBarcode("file.pdf").SaveAsPdf("file.pdf")ネイティブPDF出力
BarcodeType.CODE128BarcodeEncoding.Code128定数が改名
BarcodeType.QRCodeBarcodeEncoding.QRCode直接マッピング
BarcodeType.EAN13BarcodeEncoding.EAN13直接マッピング
BarcodeType.DataMatrixBarcodeEncoding.DataMatrix直接マッピング
BarcodeType.PDF417BarcodeEncoding.PDF417直接マッピング
new BarcodeScanner() { BarcodeTypes = [...] }BarcodeReader.Read(path) — 静的インスタンスなし、フォーマット指定なし
scanner.Scan("file.png")string[]BarcodeReader.Read("file.png")BarcodeResultsより豊富な戻り値型
results[0] (生の文字列)result.Valueデコードされた文字列値
該当なしresult.Format検出されたフォーマット - OnBarcodeでは利用できません
該当なしresult.PageNumberPDFのページソースには次のように書かれています。
該当なしBarcodeReader.Read("document.pdf")PDFをネイティブで閲覧できます。 OnBarcodeに相当するものはありません
QRロゴ用の手動GDI+オーバーレイQRCodeWriter.CreateQrCodeWithLogo()ロゴサポート内蔵
BarcodeType[] 設定不要自動検出がデフォルトです

一般的な移行の問題と解決策

問題1:DLL参照の競合

OnBarcode: レガシー DLL ディストリビューションのプロジェクトは、.csproj 内に <Reference> 要素を持ち、lib\OnBarcode.Barcode.dll または類似のパスを指しています。 IronBarcodeを追加した際に古いDLLがディスク上に残っている場合、コンパイラは同じ名前空間プレフィックスを提供する2つのアセンブリを認識し、あいまいな参照エラーを生成します。

解決策: dotnet add package IronBarcode を実行する前に、.csproj から <ItemGroup> 参照ブロックを削除してください。 ディスクからDLLファイルを削除してください。 クリーンビルドを実行して、古いアセンブリ参照が残っていないことを確認してください。

# Search for lingering オンバーコード DLL references in project files
grep -r "OnBarcode" --include="*.csproj" .
grep -r "OnBarcode" --include="*.props" .
SHELL

問題2:段階的移行中の型名の競合

OnBarcode: リーダーネームスペースは BarcodeScanner という名前のクラスをエクスポートします。 IronBarcode には BarcodeReader という静的なクラスがあります。 これらの名前は直接競合しませんが、OnBarcode.Barcode.ReaderIronBarCode を同時にインポートするファイルは BarcodeType 列挙型の曖昧性が発生する可能性があります — オンバーコード はフォーマット選択のために BarcodeType を定義し、IronBarcode は BarcodeEncoding を使用します。 移行中に両方のネームスペースをアクティブに保つと、BarcodeType 参照にコンパイルエラーが発生します。

解決策: 各ファイルの移行をアトミックに完了します — 同じ編集で using OnBarcode.Barcode.Reader ディレクティブを削除し、using IronBarCode を追加します。 どちらのusingディレクティブもファイル内に残さないでください。段階的なアプローチが必要な場合は、一時的に完全修飾名を使用してください。

// Temporary disambiguation during phased migration
var results = IronBarCode.BarcodeReader.Read("file.png");

問題3:バーコードタイプの配列削除

**OnBarcode:**リーダーには reader.BarcodeTypes = new BarcodeType[] { ... } が機能するようにします。 リーダーコードを移行する開発者は、フォーマットを明示的に指定する習慣を持ち、 IronBarcodeで同等の設定を探すことがあります。

**解決策:**書式指定を完全に削除する。 BarcodeReader.Read はサポートされているすべてのフォーマットに対して自動検出を行います。 設定は必要なく、IronBarcode では BarcodeType[] に相当するものが必要ないため存在しません。

// No format configuration required
var results = BarcodeReader.Read("label.png");

OnBarcode移行チェックリスト

マイグレーション前のタスク

変更を加える前に、コードベースを監査して、OnBarcodeの使用箇所をすべて特定してください。

# Find all オンバーコード namespace imports
grep -rn "using OnBarcode" --include="*.cs" .

# Find all license configuration calls
grep -rn "SetLicense" --include="*.cs" .

# Find all generator usage
grep -rn "new Linear\|new QRCode\|drawBarcode\|BarcodeType\." --include="*.cs" .

# Find all reader usage
grep -rn "BarcodeScanner\|\.Scan(\|BarcodeType\[\]" --include="*.cs" .

# Find DLL references in project files
grep -rn "OnBarcode" --include="*.csproj" .
grep -rn "OnBarcode" --include="*.sln" .
SHELL

どのファイルが生成のみを使用し、どのファイルが読み取りのみを使用し、どのファイルが両方を使用するかを文書化する。 NuGet パッケージ参照の代わりに手動 <Reference> DLL ブロックを含むファイルに注意してください。

コード更新タスク

  1. OnBarcode.Barcode.Generator NuGet パッケージを削除
  2. OnBarcode.Barcode.Reader NuGet パッケージを削除
  3. .csproj ファイルから手動 <Reference> DLL エントリをすべて削除
  4. リポジトリからOnBarcode DLLファイルを削除します。
  5. dotnet add package IronBarcode を実行
  6. 各ファイルで using OnBarcode.Barcodeusing IronBarCode に置き換え
  7. 各ファイルで using OnBarcode.Barcode.Readerusing IronBarCode に置き換え
  8. オンバーコード DLL <Reference> エントリ(ジェネレーターとリーダー)を両方削除 — 置き換えるランタイムライセンス呼び出しはありません
  9. アプリケーションの起動時に IronBarCode.License.LicenseKey = "YOUR-KEY" を一度追加
  10. new Linear() または new QRCode() + プロパティ割り当てブロックを BarcodeWriter.CreateBarcode(data, encoding) に変換
  11. barcode.drawBarcode("file.png").SaveAsPng("file.png") (または適切なフォーマットメソッド) に置き換え
  12. new BarcodeScanner() { BarcodeTypes = [...] } + .Scan(path)BarcodeReader.Read(path) に置き換え
  13. BarcodeResults 上の string[] インデックス化から result.Value および result.Format への結果処理を更新
  14. OnBarcodeのPDF制限を回避するために使用されていたPDFから画像へのレンダリングコードをすべて削除します。
  15. PDF の複数ステップレンダリング + スキャンループを単一の BarcodeReader.Read("file.pdf") 呼び出しに置き換え

移行後のテスト

プロジェクトで使用されている各バーコードタイプ(Code 128、QR、EAN、Data Matrix、PDF417)がスキャン可能な出力を生成することを確認する。 生成されたバーコードを物理的なスキャナーまたはモバイルデバイスでスキャンして、読み取り可能であることを確認してください。

  • バーコード読み取りが既知のテスト画像に対して正しい値を返すことを確認する
  • PDF読み取りで複数ページのテスト文書に対して正しい値とページ番号が返されることを確認します。
  • アプリケーションを任意の CI 環境で実行し、パイプライン内でライセンス キーの設定が正しく機能することを確認します。
  • 移行が完了した後に .csproj、または設定ファイルに OnBarcode 文字列が残っていないことを確認

IronBarcodeへの移行の主なメリット

**パッケージとライセンスの統合:**移行後は、1つのNuGetパッケージと1つのライセンスキーですべてのバーコード操作をカバーできます。 別途調達する必要のある製品はなく、追跡すべき独立したバージョンスケジュールもなく、起動時に維持すべきデュアルライセンス構成もありません。2つの製品構成に伴う複雑さは、単一の依存関係に置き換えられます。

透明性の高い調達プロセス: IronBarcodeは、製品ウェブサイト上で永久ライセンスの各ティアと価格を公開しています。企業は、営業担当者とのやり取りなしに、総コストを把握し、発注書を提出して調達を完了できます。 IronBarcodeのライセンスページには、すべてのプランの価格と、Dockerおよびクラウド環境における主要な構成に関する詳細情報が掲載されています。

**ネイティブPDFサポート:**これまでバーコードが埋め込まれたPDFを処理するために別途PDFレンダリングライブラリが必要だったプロジェクトは、その依存関係を完全に排除できます。 単一の BarcodeReader.Read 呼び出しが PDF 文書のすべてのページをレンダリングステップなしで処理し、各結果には抽出元ページ番号が含まれます。

豊かな読取り結果: BarcodeResults 戻り値型はデコードされた値、検出されたバーコードのフォーマット、ソース画像内のバウンディングボックス座標、および PDF 読取りのページ番号を提供します。 以前、フラットな string[] を使用していたアプリケーションは、フォーマット情報を表示し、注釈ワークフローをサポートし、または自信に基づいたフィルタリングを追加処理なしで実装することができます。

**APIサーフェスの縮小:**静的ファクトリーパターンがプロパティ割り当てモデルに取って代わります。 一般的な生成操作ではコード行数が少なくて済み、読み取り操作ではインスタンスの作成やフォーマットの事前設定は不要です。 バッチ処理においては、品目ごとのコードサイズが小さくなるため、レビューやメンテナンスが容易になるというメリットがあります。

ご注意: Aspose、OnBarcode、およびPDFiumはそれぞれの所有者の登録商標です。 このサイトは、Aspose Pty Ltd、Chromium Project、Google、またはOnBarcodeと提携、承認、サポートされていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。