画面・帳票サポートシステム XMAP3 プログラミングガイド 帳票編

[目次][用語][索引][前へ][次へ]

4.2.9 バーコードの設計

バーコードには,固定バーコード,出力バーコード,連結出力バーコードがあります。固定バーコードはグラフィック帳票で,出力バーコードはプレプリント帳票およびグラフィック帳票で,連結出力バーコードはグラフィック帳票で使用できます。

なお,XMAP3で印刷したバーコードを読み取るときに使用するバーコードリーダには,「バーコードリーダ PC-KR1100」をお勧めします。また,EAN-128のバーコードを読み取るときは,EAN-128対応レーザスキャナのバーコードリーダBL-200UB(キーエンス社製)を使用することをお勧めします。

<この項の構成>
(1) 出力/固定/連結出力バーコード
(2) バーコード種別
(3) データの格納形式と印刷形式
(4) バーコードのサイズ
(5) バーコードの自由配置
(6) バーコードの反復
(7) EAN-128バーコードの印字幅調整
(8)  EAN-128バーコードのスタート/ストップキャラクタの印字幅調整
(9) カスタマバーコードのチェックデジット計算方法
(10) 固定バーコードのエラーチェック
(11) 印刷したバーコードをバーコードリーダで読み込ませるときの注意
(12) EAN-128バーコードを印字するときの注意

(1) 出力/固定/連結出力バーコード

バーコードを印字するためのオブジェクトです。バーコードの値は,出力/連結出力バーコードの場合,APで指定します。APで指定した値は論理マップを介してバーコード変換され,帳票に印字されます。固定バーコードの場合,帳票のレイアウト定義時に固定バーコードダイアログで指定します。

(2) バーコード種別

出力/固定/連結出力バーコードとして指定できるバーコードの種別と指定できる文字を次の表に示します。

表4-3 指定できるバーコード種別

バーコード
種別
指定できる文字 長さ
(桁数)
備考
JAN131 0〜9 13 最後の1桁はモジュラス
チェック用に使用する。
JAN81 8
CODE391 0〜9,-,.,空白,$,/,+,%,A〜Z,* 3〜76 *はスタート/ストップコード※3
ITF(6)1 0〜9 6 なし
ITF(14)1 14
ITF(16)1 16
NW-71 0〜9,-,$,:,/,., +,A,B,C,D 3〜99 A,B,C,Dはスタート/ストップコード※3
カスタマ1 0〜9,-,空白,A〜Z 22 最後の2桁は,モジュラスチェック用に使用する(00〜18)。
データが短いときには余白をスペースで埋める※4。データが長いときには21文字以上は切り捨てる※4
EAN-1282 コードセットB※5 0〜9,A〜Z,a〜z,!,“,#,$,%,&,‘,(,),*,+,,,-,.,/,:,;,<,=,>,?,@,[,\,],^,_,`,{,|,},~,空白 4〜240 指定文字はバーコードパターンおよびデータ文字として印字する※6
コードセットC※5 0〜9,(,),-,空白 (,),-,空白はバーコードパターンとして印字しないがデータ文字として印字する※6

注※1
出力/固定バーコードとして指定できます。

注※2
連結出力バーコードとして指定できます。

注※3
スタート/ストップコードはユーザ側で指定してください。

注※4
出力バーコードの場合に有効です。

注※5
コードセットとは,バーコードを印刷するためにAPから指定するデータの利用文字範囲を区別するものです。

注※6
APで正しい文字が使用された場合でも,EAN-128バーコードとして成立しない場合には印字が破棄される場合があります。詳細については,「5.3.5 バーコードの論理マップ生成規則とマッピング規則」を参照してください。

(3) データの格納形式と印刷形式

バーコード種別ごとにデータの格納形式と印刷形式の仕様を次に示します。

バーコード
種別
論理長 チェック
デジット
スタート/
ストップ
格納形式
形式 指定例
JAN 8と13 必要 不要 XXX..XXC1 12345670
CODE39 3〜76 不要 必要 *XXX...X*2 *CODE39*
NW-7 3〜99 不要 必要 sXX...XXs3 A1234A
ITF 6,14,または16 不要 不要4 XXX...XXX5 123456
カスタマ 22 必要 不要4 P..PA...ACC6 24400006-81s..s136
EAN-128 4〜240 不要4 不要4 XX...XX7 (91)912345-...-1

注※1
X:7または12バイト,C:チェックデジット

注※2
*:スタート/ストップコード

注※3
s:スタート/ストップコード(原則,スタート/ストップは合わせます)

注※4
APでの指定は不要です。XMAP3が付けます。

注※5
X:6,14または16バイト

注※6
p:郵便番号(数字7桁),s:スペース,A:住所番号(英文字,ハイフン,スペース13桁),C:チェックデジット(2桁)

注※7
X:4〜240バイト

バーコードを印刷するときにXMAP3が生成するデータパターンのデータ形式と印刷例を次に示します。このデータパターンには,APデータとXMAP3が付ける制御コードが含まれています。

バーコー
ド種別
印刷形式
形式 印刷例
JAN8 L4912C3456R1 [図データ] 
JAN13 L912345C678904R
12
[図データ] 
CODE39 *CODE39* [図データ] 
NW-7 A1234A [図データ] 
ITF s123456s3 [図データ] 
カスタマ s24400006-  81cc...ccCs4 [図データ] 
EAN-128 (91)912345-...-15 [図データ] 

注※1
「L:左ガードバー,R:右ガードバー,C:センターバー」はXMAP3が付けます。また,右ガードバー直前の最後の1桁はモジュラチェックキャラクタです。ちなみに,一般の商品管理では,13桁の先頭2桁は49または45で,日本の国コードとして使われています。

注※2
指定された13桁の先頭1桁(印刷例の先頭の1)は2〜7桁目の描画パリティパターン(プリフィックスキャラクタ)を示すものです。バーコード形式上は描画されません。

注※3
「s:スタートマーク/ストップマーク」はXMAP3が付けます。

注※4
「s:スタートコード/ストップコード,c:制御コード(埋字)」はXMAP3が付けます。「C:チェックデジット」はXMAP3では付けませんのでAPデータで指定してください。

注※5
「スタートコード/ストップコード,チェックデジット」はXMAP3が付けます。

(4) バーコードのサイズ

(a) レイアウト

出力バーコード,固定バーコードおよび連結出力バーコードは,指定した領域内で,左右方向に対しては中央に配置されます。上下方向に対しては,指定した領域内いっぱいに配置されます。

なお,データ文字を指定した場合,データ文字は左・右ガードバーからはみ出る場合があります。

[図データ]

(b) 帳票定義でのバーコードサイズ

シリアルプリンタ(180dpi)およびページプリンタ(240dpi)の,レイアウト領域でバーコードを定義するときに必要となるサイズを次の表に示します。なお,バーコードのサイズは使用するバーコードリーダの仕様を確認した上で決めてください。

(c) バーコード印刷に必要な幅

プレプリント帳票およびグラフィック帳票の印刷では,バーコード種別に合った印刷仕様で,印刷時にプリンタが自動的に選択します。

バーコードは,帳票定義で指定したバーコード領域の幅(ます目数)に対して,次に示す計算で得られるドット数に収まるCPI,または倍率で印刷されます。このとき,バーコード印刷に必要なドット数からどちらか大きい方を,印刷時にプリンタが自動的に選択して印刷します。

印刷時のCPI,または倍率の仕様をどちらか一方に決めて印刷したい場合は,XMAP3ドローでの帳票レイアウト定義で,バーコード領域の横幅(ます目数)やます目設定(文字サイズ/文字の間隔)を調整してください。

グラフィック帳票およびプレプリント帳票のバーコード種別ごとに,印刷に必要なドット数を次に示します。

(5) バーコードの自由配置

[表示]−[ます目配置]のチェックを外すことで,自由な位置にバーコードを作成できます。

(6) バーコードの反復

出力バーコードまたは連結出力バーコードのダイアログで,「バーコードの反復」を設定すると,一つのオブジェクトを縦方向または横方向に繰り返して定義できます。表形式で同じ属性のオブジェクトを並べる場合などに使用します。

反復定義を使用すると,同じ属性のオブジェクトを一つずつ配置するより効率良く定義できます。

バーコードの反復は,出力バーコードまたは連結出力バーコードだけできます。

(7) EAN-128バーコードの印字幅調整

EAN-128バーコードを印字するとき,バーの印字幅をドット単位で調整できます。EAN-128バーコードの調整の例を次に示します。

[図データ]

EAN-128バーコードの印字幅を調整するには,プリンタ構成ファイルに設定します。EAN-128バーコードの印字幅の設定については,マニュアル「XMAP3 開発・実行ガイド」の帳票に関する環境設定を参照してください。

印刷モードは,「GDI:ページプリンタ」または「PDFファイル出力:網掛け/グラフィック/書式用」を使用してください。印刷モードが「PDLスルー:LIPS準拠ページプリンタ」の場合,この機能は使用できません。また,そのほかの印刷モードでは,EAN-128バーコードが正しく印字されません。

なお,EAN-128バーコードの印字幅を調整するだけでは,十分なバーコードの読み取り精度の向上はできません。EAN-128バーコードの読み取り精度を上げるには,バーコードの印字幅を調整する以外に,必ずプリンタトナーや用紙などの改善もあわせて実施してください。

(8)  EAN-128バーコードのスタート/ストップキャラクタの印字幅調整

EAN-128バーコードを印字するとき,EAN-128バーコードのスタート/ストップキャラクタの印字幅を,ドット単位で調整できます。EAN-128バーコードの印字幅調整と併用すると,印刷精度をさらに向上できます。EAN-128バーコードのスタート/ストップキャラクタの印字幅調整の例を次に示します。

[図データ]

EAN-128バーコードのスタート/ストップキャラクタの印字幅を調整するには,プリンタ構成ファイルに設定します。EAN-128バーコードのスタート/ストップキャラクタの印字幅の設定については,マニュアル「XMAP3 開発・実行ガイド」の帳票に関する環境設定を参照してください。

印刷モードは,「GDI:ページプリンタ」または「PDFファイル出力:網掛け/グラフィック/書式用」を使用してください。印刷モードが「PDLスルー:LIPS準拠ページプリンタ」の場合,この機能は使用できません。また,そのほかの印刷モードでは,EAN-128バーコードが正しく印字されません。

なお,EAN-128バーコードのスタート/ストップキャラクタの印字幅を調整するだけでは,十分なバーコードの読み取り精度の向上はできません。EAN-128バーコードの読み取り精度を上げるには,バーコードのスタート/ストップキャラクタの印字幅を調整する以外に,必ずプリンタトナーや用紙などの改善もあわせて実施してください。

(9) カスタマバーコードのチェックデジット計算方法

バーコードは,データとチェックデジットで構成されています。カスタマバーコードを設計する場合,バーコードの値はデータの変換値とチェックデジットの和が19の倍数になるようにします。

[図データ]

  1. データ
    0〜9,A〜Z,−(ハイフン)で構成されています。
  2. チェックデジット
    モジュラスチェック用の2桁の数字です。

チェックデジットの計算方法およびデータの変換規則を次に示します。

(a) チェックデジットの計算方法
  1. データを変換規則に従って数値に変換する。
    データの変換規則については,「4.2.9(9)(b) 変換規則」を参照してください。数字およびハイフンを1文字,英字を2文字として数えます。有効なデータは20文字です。
    有効データ長が19文字以下の場合には,不足分のデータとして制御コード(CC4)を仮定して計算します。
    有効データ長が20文字を超える場合には,超過分は印刷されないので計算の対象外とします。
  2. チェックデジットを算出する。
    チェックデジットを算出する式を次に示します。
    チェックデジット=19−((データの変換値の和÷19)の余り)
  3. データの変換値とチェックデジットの合計が19の倍数になっているか確認する。
(b) 変換規則

カスタマバーコードの変換規則を次に示します。

(c) チェックデジットの計算例

チェックデジットの計算例を次に示します。

(例1)
データが15400233-16-4の場合
[図データ]
チェックデジットの算出式に当てはめると次のようになります。
  147=19×7+14
  チェックデジット=19−14=5
したがって,15400233-16-4のチェックデジットは5となります。
論理マップに指定する論理データを次のように組み立てます。
[図データ]

(例2)
データが22800023-620-2-9-102の場合
[図データ]
チェックデジットの算出式に当てはめると次のようになります。
  79=19×4+3
  チェックデジット=19−3=16
したがって,22800023-620-2-9-102のチェックデジットは16となります。
論理マップに指定する論理データを次のように組み立てます。
[図データ]

(例3)
データが22500011-4695-5-A-B1の場合
[図データ]
チェックデジットの算出式に当てはめると次のようになります。
  102=19×5+7
  チェックデジット=19−7=12
したがって,22500011-4695-5-A-B1のチェックデジットは12となります。
論理マップに指定する論理データを次のように組み立てます。
[図データ]

(10) 固定バーコードのエラーチェック

固定バーコードのダイアログを確定するとき,エラーチェックがされます。固定バーコードのダイアログで設定した内容にエラーがある場合は,次の表に示すメッセージが表示されます。

表4-8 固定バーコードのエラー一覧

バーコード種類 エラーケース エラーメッセージ
共通 バーコード値に何も入力されていない。 バーコード値を指定していません
バーコードがレイアウト領域からはみ出している。

オブジェクト:
バーコードがレイアウト領域からはみ出しています

帳票属性:
固定バーコードがレイアウト領域からはみ出しています
JAN8 「バーコード値」の入力桁数が8以外である。 バーコード値は8桁で指定してください
「バーコード値」に0〜9以外の入力がされている。 バーコード値は 0〜9で指定してください
JAN13 「バーコード値」の入力桁数が13以外である。 バーコード値は13桁で指定してください
「バーコード値」に0〜9以外の入力がされている。 バーコード値は 0〜9で指定してください
CODE39 「バーコード値」の入力桁数が3〜76以外である。 バーコード値に指定できる値は3桁〜76桁の範囲です
「バーコード値」に以下の文字以外が入力されている。
 0〜9 A〜Z - . スペース
 $ / + % *
バーコード値は 0〜9 A〜Z - . スペース $ / + % * で指定してください
「バーコード値」の入力に
スタート/ストップコード(*)が付いていない。
バーコード値にスタート/ストップコードがありません
ITF(6) 「バーコード値」の入力桁数が6以外である。 バーコード値は6桁で指定してください
「バーコード値」に0〜9以外の入力がされている。 バーコード値は 0〜9で指定してください
ITF(14) 「バーコード値」の入力桁数が14以外である。 バーコード値は14桁で指定してください
「バーコード値」に0〜9以外の入力がされている。 バーコード値は 0〜9で指定してください
ITF(16) 「バーコード値」の入力桁数が16以外である。 バーコード値は16桁で指定してください
「バーコード値」に0〜9以外の入力がされている。 バーコード値は 0〜9で指定してください
NW7 「バーコード値」の入力桁数が3〜99以外である。 バーコード値に指定できる値は3桁〜99桁の範囲です
「バーコード値」に次の文字以外が入力されている。
 0〜9 - $ : / . + A〜D
バーコード値は 0〜9 - $ : / . + A〜D で指定してください
「バーコード値」の入力に
スタート/ストップコード(A〜D)が付いていない。
バーコード値にスタート/ストップコードがありません
カスタマ 「バーコード値」の入力形式が「(7桁の0〜9)+(13桁のA〜Z)+2桁」の22桁になっていない。 バーコード値に指定した文字列は形式が不正です

(11) 印刷したバーコードをバーコードリーダで読み込ませるときの注意

バーコードをバーコードリーダで読み取るときには,次のことに注意してください。

(12) EAN-128バーコードを印字するときの注意

EAN-128バーコードを印字するときには,次のことに注意してください。