Crystal ReportsでのPDF417バーコード生成
Crystal ReportsでPDF417バーコードを生成するには?
Crystal ReportsでPDF417バーコードを生成するには、Barcodesoft UFLライブラリのBCSPDF417EncodeCR関数を使用して新しい式フィールドを作成します。データベースフィールドを引数として渡し、その式フィールドをデザインキャンバス上に配置して、フォントファミリーにBcsPdf417を適用します。
-
ステップ 1: SAP Crystal Reportsのビット数(Bitness)を確認し、DLLを登録する
お使いのSAP Crystal Reportsのバージョンのビット数を確認します。SAP Crystal Reports 2008から2016までは32ビット、SAP Crystal Reports 2020および2025は64ビットです。
64ビット版 Crystal Reports (2020 / 2025) の場合:
コマンドプロンプトを管理者として実行し、以下を実行します:
cd "C:\Program Files\Common Files\Barcodesoft\FontUtil"
%systemroot%\System32\regsvr32.exe cruflbcs_x64.dll
32ビット版 Crystal Reports (2008–2016) の場合:
コマンドプロンプトを管理者として実行し、以下を実行します:
cd "C:\Program Files (x86)\Common Files\Barcodesoft\FontUtil"
regsvr32.exe cruflbcs.dll
-
ステップ 2: Barcodesoft UFL関数を見つける
Crystal Reportsで、関数エクスプローラーの階層を次のようにナビゲートします:関数一覧 ⇒ 追加関数 ⇒ COM および .NET UFL (u212com.dll) ⇒ Visual Basic UFL。BCSPDF417EncodeCR関数をダブルクリックします。
-
ステップ 3: 新しい式フィールドを作成する
式フィールドを右クリックし、コンテキストメニューから新規作成...を選択します。新しいフィールド名に「BcsPdf4171」と入力し、「エディタの記述」をクリックします。
PDF417のエンコード処理中、文字列は予想以上に多くのコードワードを生成することがよくあります。Crystal Reportsの式フィールドは255文字に制限されているため、生成されたPDF417のコードワードを複数の式フィールドに分割し、単一のテキストオブジェクト内で結合する必要があります。以下の関数を実行して、必要なフィールド数を確認してください:
BCSPDF417FormulaNoForCR({Test.Data}) -
ステップ 4: 複数の式フィールドを作成する
BCSPDF417FormulaNoForCR({Test.Data})の戻り値が1より大きい場合は、以下のように複数の式フィールドを順番に作成します。その後、それらを同じテキストオブジェクトコンテナ内に並べて配置します。BCSPDF417EncodeCR({Test.Data}, 1, 0, 0, 0, 0, 0)
BCSPDF417EncodeCR({Test.Data}, 2, 0, 0, 0, 0, 0)
BCSPDF417EncodeCR({Test.Data}, 3, 0, 0, 0, 0, 0)
パラメータ位置の概要:
1番目: エンコードするデータ文字列 | 2番目: シーケンスチャンクインデックス | 3番目: MaxRow | 4番目: FixedColumn | 5番目: セキュリティレベル | 6番目: 圧縮モード | 7番目: 切捨て(Truncated)オプション
-
ステップ 5: レポートにテキストオブジェクトを挿入する
作成したすべての連続する式フィールドを、この単一のテキストオブジェクト内にドラッグ&ドロップします。最初はデザインキャンバス上に代替テキストや16進数コードが配置されますが、心配いりません。書体(フォント)が設定されると、実際のバーコードがレンダリングされます。
-
ステップ 6: BcsPdf417フォントを適用する
テキストオブジェクトコンテナを右クリックし、コンテキストメニューからオブジェクトの書式設定を選択します。フォント選択ペインで、アクティブな書体として「BcsPdf417」を選択します。
-
ステップ 7: PDF417バーコードの生成を確認する
OKボタンをクリックします。代替キャラクターが即座に変換され、レポートテンプレートビュー内に構造化されたPDF417スタックバーコードとして表示されます。