http://www.n-barcode.com/jiten/yu.html
GS1-128はCODE128を使用しており、
CODE128にはタイプA・タイプB・タイプCの3種類があり、
GS1-128はタイプC。
バーコードの最初のスタートコードによって判別されるぽい。
さらにタイプCは数値2桁に対して1つのバーコードが割り当てられている。
フォントで出そうとすると2桁を1つのバーコードにしなきゃなので大変・・・
まずはCODE128のフォントのインストール。
適当に探したここから↓
http://grandzebu.net/informatique/codbar-en/code128.htm
最初のタイプCのスタートコードを出力するには、
"Ò"
上記サイトではただの"O"になっているけど本当はラテン語が割り当てられているっぽい。
次に"FNC1"ってのを出力しなければならないので、
"Ï"
を出力。
ここから数値2桁ずつを文字に変換していく、
上記サイトの"Table C"の数値2桁の列から"Character"の列の文字に変換。
例)
00 → Ô(またはスペース)
01 → !
18 → 2
54 → V
91 → {
95 → È
96 → É
97 → Ê
98 → Ë
99 → Ì
一部数値にまたラテン文字が・・・
さらにチェックデジット。
CODE128はモジュラス103で計算らしい。
計算した結果を2桁も↑の文字に変し最後に追加
最後にストップコードの"Ó"を付加して完成!
例えば
1800549598
を出したい場合は、
ÒÏ2ÔVÈË[CD]Ó
[CD]:チェックデジットの値
になる。
フォントで出すの難しすぎる・・・