VB.NETでCrystal Reportsでバーコードを印刷する方法
Crystal Reportsにバーコードを追加することで、在庫の追跡から詳細なレポートの作成まで、業務プロセスを強化し、より迅速かつ正確にすることができます。 VB.NETでフォントベースのバーコードを使用しようとしたことがある場合、複雑な数式、限られたフォーマット、プリンターの問題があり、イライラすることがあります。
幸運なことに、IronBarcodeのような現代のバーコード生成SDKは、バーコードの作成と印刷を簡単にします。 このガイドでは、Visual StudioでのIronBarcodeの設定、バーコードの生成、およびそれらをCrystal Reportsに直接表示する方法を説明します。 最後には、プロフェッショナルで信頼性のあるバーコードを最小限の手間で作成できるようになります。
Crystal Reportsでバーコードを印刷する方法は何ですか?
Crystal Reportsにバーコードを追加するための主なアプローチは2つあります:フォントベースの方法とSDKソリューションです。
フォントベースの方法は、フォントフォルダ内に特殊なバーコードフォント(True Typeフォント)をインストールし、数式やユーザ関数ライブラリ(UFL)を使用してデータをエンコードすることが必要です。 このアプローチは機能しますが、しばしば複雑なエンコーディング式、限られたバーコード形式のサポート(Code 39やデータマトリックスなど)、および異なるプリンターやシステムでのフォントレンダリングの問題を伴います。これはMicrosoftのフォントレンダリングに関するドキュメントで説明されています。
SDKベースのソリューションは、より強力な代替手段を提供します。これらのライブラリはプログラム的にバーコード画像を生成し、信頼性を向上させ、フォーマットのサポートを拡張し、実装を容易にします。 IronBarcodeはこの現代のアプローチの例であり、開発者はバーコードを生成して、それを標準のデータベースフィールドやDataTableオブジェクトを通じてCrystal Reportsとシームレスに統合できます。 この方法は、すべてのプラットフォームで一貫したレンダリングを確保し、VB.NETを使用してCrystal Reportsでプリントする際のフォント依存の問題を解消します。
VB.NET用のIronBarcodeを設定するにはどうすれば良いですか?
VB.NETプロジェクトでのIronBarcodeの設定は最小限の構成を必要とします。 最初に、NuGetパッケージマネージャを介してライブラリをインストールします。
Install-Package BarCode
代わりに、Visual StudioのパッケージマネージャUIを使用して"IronBarcode"を検索してインストールすることもできます。 インストールが完了したら、VB.NETコードに名前空間をインポートします。
Imports IronBarCodeImports IronBarCodeプロジェクトが.NET Framework 4.0以上、または.NET Core/.NET 5以上をターゲットとしていることを確認してください。 IronBarcodeは、画像フィールドをサポートするすべてのCrystal Reportsバージョンで動作し、既存プロジェクトと広く互換性があります。 詳細な設定手順については、IronBarcodeのドキュメントを参照してください。
本日IronBarcodeをダウンロードして、Crystal Reportsでプロフェッショナルなバーコードを作成し始めてください。
バーコードを生成してデータベースに保存する方法は?
IronBarcodeを使用してバーコードを作成し、それらをCrystal Reports用に保存するには、バーコード画像を生成し、新しいOleDbConnectionまたはSqlConnectionを使用してデータベースに保存します。 以下は完全な例です:
オプション1: データベースを使用する
Imports IronBarCode
Imports System.Data.SqlClient
Module BarcodeGenerator
Sub CreateAndStoreBarcode()
' Generate a Code128 barcode
Dim myBarcode = BarcodeWriter.CreateBarcode("PROD-12345", BarcodeWriterEncoding.Code128)
' Add readable text below the barcode
myBarcode.AddBarcodeValueTextBelowBarcode()
' Resize to appropriate dimensions and adjust font size
myBarcode.ResizeTo(400, 150)
' Connect to your database (example uses connection string)
Using connection As New SqlConnection("YourConnectionString")
' SQL command to post barcode data
Dim cmd As New SqlCommand("INSERT INTO Products (ProductCode, BarcodeImage) VALUES (@Code, @Image)", connection)
' Add parameters
cmd.Parameters.AddWithValue("@Code", "CUSTOMER-12345")
cmd.Parameters.AddWithValue("@Image", myBarcode.BinaryStream)
' Execute the command
connection.Open()
cmd.ExecuteNonQuery()
End Using
End Sub
End ModuleImports IronBarCode
Imports System.Data.SqlClient
Module BarcodeGenerator
Sub CreateAndStoreBarcode()
' Generate a Code128 barcode
Dim myBarcode = BarcodeWriter.CreateBarcode("PROD-12345", BarcodeWriterEncoding.Code128)
' Add readable text below the barcode
myBarcode.AddBarcodeValueTextBelowBarcode()
' Resize to appropriate dimensions and adjust font size
myBarcode.ResizeTo(400, 150)
' Connect to your database (example uses connection string)
Using connection As New SqlConnection("YourConnectionString")
' SQL command to post barcode data
Dim cmd As New SqlCommand("INSERT INTO Products (ProductCode, BarcodeImage) VALUES (@Code, @Image)", connection)
' Add parameters
cmd.Parameters.AddWithValue("@Code", "CUSTOMER-12345")
cmd.Parameters.AddWithValue("@Image", myBarcode.BinaryStream)
' Execute the command
connection.Open()
cmd.ExecuteNonQuery()
End Using
End Sub
End ModuleSqlConnection(または新しいOleDbConnection)を使用してデータベースに接続し、バーコードデータを投稿します。
オプション2: DataTableを使用する
Imports IronBarCode
Imports System.Data
Function CreateBarcodeDataTable() As DataTable
Dim dt As New DataTable()
dt.Columns.Add("ProductCode", GetType(String))
dt.Columns.Add("Barcode", GetType(Byte()))
' Add table row for each product
Dim row As DataRow = dt.NewRow()
row("ProductCode") = "PROD-12345"
' Create barcode on-the-fly and convert to binary
Dim barcode = BarcodeWriter.CreateBarcode("CUSTOMER-12345", BarcodeWriterEncoding.Code128)
barcode.AddBarcodeValueTextBelowBarcode()
barcode.ResizeTo(400, 150)
row("Barcode") = barcode.BinaryStream
dt.Rows.Add(row)
Return dt
End FunctionImports IronBarCode
Imports System.Data
Function CreateBarcodeDataTable() As DataTable
Dim dt As New DataTable()
dt.Columns.Add("ProductCode", GetType(String))
dt.Columns.Add("Barcode", GetType(Byte()))
' Add table row for each product
Dim row As DataRow = dt.NewRow()
row("ProductCode") = "PROD-12345"
' Create barcode on-the-fly and convert to binary
Dim barcode = BarcodeWriter.CreateBarcode("CUSTOMER-12345", BarcodeWriterEncoding.Code128)
barcode.AddBarcodeValueTextBelowBarcode()
barcode.ResizeTo(400, 150)
row("Barcode") = barcode.BinaryStream
dt.Rows.Add(row)
Return dt
End Functionこのコードは、値が"PROD-12345"であるCode 128バーコードを生成します。 AddBarcodeValueTextBelowBarcode()メソッドは、バーコードの下に人間が読めるテキストを追加します。 ResizeTo()メソッドは、レポートレイアウトに適合するように寸法を調整します。 その他のバーコード形式については、サポートされているバーコードタイプを確認してください。
Crystal Reportsにバーコードを表示するにはどうすれば良いですか?
一旦バーコードがデータベースに保存されると、Crystal Reportsでの表示には標準の画像フィールドの手順が続きます:
- Crystal Reportsを開き、新しいレポートを作成するか、既存のレポートを開く
- フィールドエクスプローラで"データベースフィールド"を右クリックし、"データベースエキスパート"を選択

- データベースに接続し、バーコード画像を含むテーブルを選択
- レポートデザインの表面にバーコード画像フィールドをドラッグする
- 必要に応じてフィールドをリサイズして位置を調整する
レポートデザイナーは次のようになります:

レポート実行中に動的にバーコードを生成するには、DataTableやデータベースクエリを変更して、実行時にバーコードをオンザフライで生成します:
Function GetReportData() As DataTable
Dim dt As New DataTable()
dt.Columns.Add("ProductCode", GetType(String))
dt.Columns.Add("Barcode", GetType(Byte()))
' Add table row
Dim row As DataRow = dt.NewRow()
row("ProductCode") = "CUSTOMER-12345"
' Create barcode on-the-fly and convert to binary
Dim barcode = BarcodeWriter.CreateBarcode("CUSTOMER-12345", BarcodeWriterEncoding.Code128)
row("Barcode") = barcode.BinaryStream
dt.Rows.Add(row)
Return dt
End FunctionFunction GetReportData() As DataTable
Dim dt As New DataTable()
dt.Columns.Add("ProductCode", GetType(String))
dt.Columns.Add("Barcode", GetType(Byte()))
' Add table row
Dim row As DataRow = dt.NewRow()
row("ProductCode") = "CUSTOMER-12345"
' Create barcode on-the-fly and convert to binary
Dim barcode = BarcodeWriter.CreateBarcode("CUSTOMER-12345", BarcodeWriterEncoding.Code128)
row("Barcode") = barcode.BinaryStream
dt.Rows.Add(row)
Return dt
End Functionこのアプローチは、レポートの読み込み時に動的にバーコードを生成し、データベースに画像を事前に保存する必要を排除します。 Crystal Reportsのエクスポート機能を使用して、レポートをPDFに変換することもできます。 Crystal Reportsのデータソースに関する詳細情報は、SAPのCrystal Reportsドキュメントをご覧ください。
出力
あなたのCrystal Reportは、読みやすいテキストと適切なフォントサイズでバーコードを表示するはずです。スキャナー、プリンター、またはラベルに合わせてフォント、フィールドサイズ、マージンを調整してください。 バーコードは、VBプログラムから直接PDF、プリントフォーム、またはテンプレートに含めることができます。

一般的な問題と解決策は何ですか?
VB.NETを使用してCrystal Reportsにバーコードを実装する際にいくつかの問題が発生する可能性があります:
- ぼやけたバーコード: myBarcode.ResizeTo()を使用して解像度を向上し、より大きな寸法を指定します。
- スキャンに関する問題: バーコード周辺に十分な余白を確保するか、Code 39の場合にはアスタリスクマーカーを含めます。
- データベース接続の問題: 新しいOleDbConnectionまたは新しいOleDbDataAdapterのパラメータを確認してください。 データセットバインディングを正しく行ってください。
- データタイプの問題: バーコードのバイナリデータを格納するには、常に画像またはvarbinary(max)フィールドを使用してください。
- バーコードが表示されない: Crystal Reportsビューアがデータベース、DataTable、またはファイルリソースにアクセス権を持っていることを確認してください。
- システムの問題: 必要なすべてのDLLがインストールされ、プロジェクトが正しいIronBarcode DLLを参照していることを確認してください。
- フォントまたはプリンターの問題: True Typeフォントがフォントフォルダーにインストールされ、プリンターに設定されていることを確認してください。
追加のトラブルシューティングサポートについては、IronBarcodeのトラブルシューティングガイドを訪れてください。
結論
VB.NETとIronBarcodeを使用してCrystal Reportsにバーコードを実装することは、レポートを強化するための信頼性があり、シンプルなソリューションを提供します。 このSDKベースのアプローチはフォント依存を排除し、広範なカスタマイズオプションを提供します。 データベースまたはDataTableを使用するかにかかわらず、あなたのCrystal Reportsアプリケーションにデータマトリックス、Code 39、および他のフォーマットを含むプロフェッショナルなバーコードを実装できます。
今日、プロジェクトでバーコードを実装する準備を整え、IronBarcodeの無料トライアルをダウンロードして、VB.NETを使用してCrystal Reportsでバーコードを印刷するためのすべての機能を探索してください。
よくある質問
Crystal ReportsでVB.NETとIronBarcodeを使用する利点は何ですか?
VB.NETでCrystal ReportsでIronBarcodeを使用することで、バーコードをシームレスに統合でき、在庫追跡や詳細なレポート作成などのタスクのビジネスプロセスを強化できます。これは、フォントベースのソリューションに比べてバーコード生成を簡素化します。
IronBarcodeはどのようにしてCrystal Reportsでのバーコード生成を改善しますか?
IronBarcodeは、複雑な数式の必要性を排除し、Crystal Reportsにおける限られたフォーマットおよびプリンターの互換性に関連する問題を削減する簡単なSDKを提供することで、バーコード生成を改善します。
IronBarcodeはCrystal Reportsで異なるバーコードフォーマットを扱うことができますか?
はい、IronBarcodeはさまざまなアプリケーション内のCrystal Reportsにおける互換性と信頼性を確保するため、幅広いバーコードフォーマットをサポートしています。
VB.NETプロジェクトにIronBarcodeを統合するのは難しいですか?
いいえ、IronBarcodeはユーザーフレンドリーに設計されており、明確なドキュメントとサポートがあるため、VB.NETプロジェクトへの統合はスムーズで効率的です。
なぜフォントベースのバーコードソリューションに対してIronBarcodeを選ぶべきですか?
IronBarcodeは、複雑な式やプリンターの問題を回避し、広範なフォーマットサポートと信頼性を提供するため、フォントベースのバーコードよりも強力で柔軟なソリューションを提供します。
IronBarcodeはCrystal Reportsから直接バーコード印刷をサポートしていますか?
はい、IronBarcodeはCrystal Reportsからの直接バーコード印刷を可能にし、高品質の出力を確保し、他のメソッドにしばしば伴う複雑さを軽減します。
VB.NETにおけるフォントベースのバーコードの一般的な問題は何ですか?
フォントベースのバーコードはしばしば複雑な式、限られたフォーマットオプション、およびプリンターの互換性の問題を伴いますが、IronBarcodeはその包括的なSDKでこれらを克服するのに役立ちます。






