バーコードジェネレータオプション

バーコードジェネレータオプションは、文書中に画像として直接バーコードを埋め込むためのオプションです。バーコードフォントなどは必要ありません。

バーコードジェネレータオプションを利用するためには、「AH Formatter バーコードジェネレータオプション」をご購入していただく必要があります。 詳しくは、弊社ウェブサイトをご覧ください。

バーコードジェネレータオプションは、以下のバーコードに対応しています。

バーコードは、dataスキームを用いて次のように指定します。

<fo:external-graphic src="data:application/vnd.ah-barcode;type=QR;scale=2,Hello%20World!"/>

ここに、application/vnd.ah-barcodeは専用のメディアタイプです。出力したいバーコードの内容は、上記のように直接文字列として指定することができます。このとき、URIとして不適切な文字を%エンコードで表現することに注意してください。また、base64で指定することもできます。

<fo:external-graphic src="data:application/vnd.ah-barcode;type=QR;base64,PD94bWwgdmVyc2lv..."/>

出力されるバーコードの制御は、メディアタイプのパラメータで行います。パラメータの大文字小文字は区別されません。typeパラメータは必須で、出力バーコードの種類を示します。

バーコードは、常に axf:image-smoothing="false" に強制されます。

注意: ここでは、バーコードの仕様には立ち入りません。それぞれのバーコードの仕様書を参照してください。

QR / MicroQR

QR sample QRは、JIS X 0510:2004 または ISO/IEC 18004:2006 で規格制定されています。バーコードジェネレータオプションでは、QRはModel2にのみ対応しています(Model1には対応していません)。以下のパラメータを指定できます。

パラメータ既定値内容
typeQRMicroQR必須
ver auto | 1~40 auto | 1~4autoバージョン
eclauto | L | M | Q | Hautoエラー訂正レベル
encauto | [ N || A || B || K ]autoエンコーディング
autoNABKと等価
N数字0123456789
A英数字0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$%*+-./: space
Bバイト
K漢字(Shift JIS)
mpr auto | 0~7 auto | 0~3autoマスクパタン参照
scale<正数>11セルの出力サイズ
qz<非負数>4 or 2余白(クワイエットゾーン) 既定値は QR のとき 4、MicroQR のとき 2
outsvg | pngpng出力形式
dpi<非負数>0pngのときの画像解像度(0は指定なし)
color<色>バーコードの色
charset<任意文字列>UTF-8直接文字列指定のエンコーディング

バージョンverにautoを指定したときは、データの長さによって適切なバージョンが採用されます。

エラー訂正レベルeclにautoを指定したときは、データやバージョンによって適切なエラー訂正レベルが採用されます。

エンコーディング指定encで、auto以外は複数を指定できます。例えば、enc=NAB と指定すれば、これら3種を混合して適切に出力します。指定エンコーディングで出力できなければエラーです。

QRは、白黒パタンがなるべく均一になるようにある種のマスク処理が施されています。マスクパタン参照mpr指定は、この処理を特定のパタンによるものに強制します。自動的に選択されるパタンよりも均一さで劣るかも知れませんが、誤ったQRというわけではありません。

1セルの出力サイズscaleは、svgとpngで指定できる形式が異なります。

qzで指定できる余白(クワイエットゾーン)は、仕様で QR のとき 4、MicroQR のとき 2 と定められています。これを変更することができますが、これよりも狭くしたときの動作は保証されません。

画像解像度dpi指定は、pngのときのみ有効で、実数値を指定できます。単位は付けられません。

color には transparent 以外の任意の色を指定できますが、pngではRGBに変換されます。

この例の場合、適切に値を引用符処理していることに注意してください。引用符処理しないときは、次のように適切に%エスケープ処理をしなければなりません。

charset指定は、base64でなく直接文字列を指定したときのQRに出力するエンコーディングを示します。これは、エンコーディングに漢字が指定されていないときに適用されます。base64で指定されたデータは、そのまま無変換で出力されます。

注意: QRが漢字モードで処理できるのは、すべての Shift JIS コードの範囲ではありません。QRリーダによっては、そのような文字を読み取れないことがあります。
注意: 構造的連接には対応していません。

Data Matrix

DataMatrix sample Data Matrix は、ISO/IEC 16022:2006 で規格制定されています。バーコードジェネレータオプションでは、Data Matrix は ECC 200 にのみ対応しています。以下のパラメータを指定できます。

パラメータ既定値内容
typeDataMatrix | DM必須
encauto | [ A || C || T || X || E || B ] | rawautoエンコーディング
autoACTXBと等価
AASCII
CC40
TText
XANSI X12
EEDIFACT
BBase 256
raw生データ
shapeS | RS バーコードの形状
S正方形
R長方形
scale<正数>11セルの出力サイズ ☞ scale
qz<非負数>1余白(クワイエットゾーン)
outsvg | pngpng出力形式
dpi<非負数>0pngのときの画像解像度(0は指定なし)
color<色>バーコードの色 ☞ color

エンコーディング指定encで、autoまたはraw以外は複数を指定できます。例えば、enc=ACE と指定すれば、これら3種を混合して適切に出力します。このとき、A は指定しなくても常に指定されているとみなされます。
rawは、入力データを無加工で出力します。このとき、以下に注意してください。

画像解像度dpi指定は、pngのときのみ有効で、実数値を指定できます。単位は付けられません。

注意: 構造的連接には対応していません。

PDF417

PDF417 sample PDF417 は、JIS X 0508:2010 または ISO/IEC 15438:2006 で規格制定されています。バーコードジェネレータオプションでは、CompactPDF417、MacroPDF417、MicroPDF417 には対応していません。以下のパラメータを指定できます。

パラメータ既定値内容
typePDF417必須
encauto | [ T || N || B ]autoエンコーディング
autoTNBと等価
TText
NNumeric
BByte
eclauto | 0~8autoエラー訂正レベル
rauto | 3~90auto 行数
cauto | 1~30auto 1行の桁数(データのみ)
h<正数>3 1行の高さ(幅に対する割合)
scale<正数>1バーの幅 ☞ scale
qzx<非負数>2横方向の余白(クワイエットゾーン)
qzy<非負数>2縦方向の余白(クワイエットゾーン)
outsvg | pngpng出力形式
dpi<非負数>0pngのときの画像解像度(0は指定なし)
color<色>バーコードの色 ☞ color

エンコーディング指定encで、auto以外は複数を指定できます。例えば、enc=TNB と指定すれば、これら3種を混合して適切に出力します。指定エンコーディングで出力できなければエラーです。

バーコードのサイズを r と c で指定できます。c は、データのみの桁数です。スタートパターン、左行識別子、右行識別子、エンドパターンは含みません。r も c も指定しなかった場合は、必要なサイズが計算されます。どちらか一方を指定した場合は、他方のサイズが計算されます。両方指定したとき、必要サイズに満たない場合はエラーです。1行あたりのバーの数は、c*17+69 となります。

h は、1行あたりのバーの高さを幅の何倍にするかを指定します。仕様では3以上と定められています。それよりも小さい値を指定できますが、そのときの動作は保証されません。

qzx、qzy で指定できる余白(クワイエットゾーン)は、仕様では2以上と定められています。それよりも小さい値を指定できますが、そのときの動作は保証されません。

画像解像度dpi指定は、pngのときのみ有効で、実数値を指定できます。単位は付けられません。

カスタマバーコード

カスタマバーコードは、日本郵便カスタマバーコードや Intelligent Mail® Barcode のようなバーコードです。以下のパラメータを指定できます。

パラメータ既定値内容
typeJPCBC必須日本郵便カスタマバーコード
IMBCIntelligent Mail® Barcode
POSTNET
l<正数>後述ロングバー/フルバーの長さ
t<正数>後述タイミングバー/トラッカバーの長さ
h<正数>後述ハーフバーの長さ(POSTNETのみ)
w<正数>後述バーの幅
p<正数>後述バーのピッチ
hsp<非負数>後述水平方向の余白
vsp<非負数>後述垂直方向の余白
outsvg | pngsvg出力形式
dpi<正数>384pngのときの画像解像度
color<色>バーコードの色 ☞ color

バーの長さや幅、余白などの値は、単位付きの値でなければなりません。指定できる単位は、pt、pc、in、cm、mm のいずれかです。既定値は以下のとおりです。

パラメータJPCBCIMBCPOSTNET
l3.6mm0.15in0.125in
t1.2mm0.05in
h0.05in
w0.6mm0.02in0.02in
p1.2mm0.045in0.0416in
hsp2.0mm0.125in0
vsp2.0mm0.028in0

pngによる出力では、指定dpiによってバーの長さや幅などがピクセル数に丸められます。そのため、指定の長さと若干異なる出力となることがあります。低解像度を指定したときなどは、バーコードが正しく読み取れない可能性があります。

画像解像度dpi指定は、pngのときのみ有効で、実数値を指定できます。単位は付けられません。

日本郵便カスタマバーコード

JPCBCで 日本郵便カスタマバーコード を指定します。 JPCBCでは、次の文字を指定できます。先頭7文字は郵便番号の数字です。その後に住居表示番号が続きます。住居表示番号は、英字を2文字換算として13文字を超えるとそれ以降は捨てられます。英小文字は英大文字に変換されて出力されます。

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-

Intelligent Mail® Barcode

IMBCで Intelligent Mail® Barcode を指定します。 IMBCでは、数字のみを決められた桁数分指定できます。許される桁数は、20、25、29、31のいずれかです。また、2桁目は0~4でなければなりません。

POSTNET

POSTNETでは、数字のみを決められた桁数分指定できます。許される桁数は、5、9、11のいずれかです。

線形バーコード

線形バーコード(一次元バーコード)です。以下のパラメータを指定できます。

パラメータ既定値内容
typeEAN | JAN必須
UPCUPC-A、UPC-E
ITFInterleaved 2of5
Codabar | NW-7
Code39
Code128
GS1-128 | EAN-128
w<正数>0.33mm細バーの幅
r<正数>2.5太バーの幅の細バーの幅に対する比率
EAN JAN UPC Code128 GS1-128 EAN-128 では不使用
h<正数>22.86mmバーの長さ
qz<非負数>10水平方向の余白(クワイエットゾーン)を細バーの数で指定
scale<正数>1表示倍率
outsvg | pngsvg出力形式
dpi<正数>384pngのときの画像解像度
color<色>バーコードの色 ☞ color
text none | auto | center | justify noneバーコードの下に元コードのテキストをどのように表示するかを指定

バーの長さや幅、余白などの値は、単位付きの値でなければなりません。指定できる単位は、pt、pc、in、cm、mm のいずれかです。

pngによる出力では、指定dpiによってバーの長さや幅などがピクセル数に丸められます。そのため、指定の長さと若干異なる出力となることがあります。低解像度を指定したときなどは、バーコードが正しく読み取れない可能性があります。

画像解像度dpi指定は、pngのときのみ有効で、実数値を指定できます。単位は付けられません。

textの指定によって、バーコードの下に元コードのテキストを表示することができます。ただし、表示形式は代表的なもののみに対応しています。これは、svgによる出力のときのみ有効です。利用するフォントは、オプション設定ファイルbarcode-text-fontで指定します。文字の大きさは、バーコードの大きさから自動的に計算されます。

EAN / JAN

EANは、JIS X 0507:2004 または ISO/IEC 15420:2009 で規格制定されています。JANはEANと同じです。EAN/JANでは、数字のみで13桁または8桁を指定できます。最後の桁はチェックディジットです。入力は、チェックディジットを除いた12桁または7桁でも構いません。13桁または8桁を与えたときは、最後の桁は無視され、出力時に計算されて正しいものに置き換えられます。

UPC

UPCでは、数字のみで12桁または8桁を指定できます。12桁はUPC-Aであり、8桁はUPC-Eです。UPC-Eでは、最初の桁は0または1でなければなりません。最後の桁はチェックディジットです。入力は、チェックディジットを除いた11桁または7桁でも構いません。12桁または8桁を与えたときは、最後の桁は無視され、出力時に計算されて正しいものに置き換えられます。UPC-Dには対応していません。

Interleaved 2of5

Interleaved 2of5は、JIS X 0505:2004 または ISO/IEC 16390:2007 で規格制定されています。ITFで Interleaved 2of5 を指定します。 ITFでは、数字のみを偶数桁指定できます。

Codabar / NW-7

Codabar/NW-7では、文字列の先頭はABCDのいずれかでなければなりません。末尾はABCDまたはTN*Eのいずれかでなければなりません。中間の文字は次に示す文字を任意桁指定できます。先頭末尾の英小文字は英大文字に変換されます。

0123456789-$/:.+

チェックディジットを付加するか否かを指定できます。チェックディジットを付加するとき、使用できる文字に制限が発生することがあります。

パラメータ既定値内容制限
cdnonenoneなし
m10w2モジュラス10 ウェイト2先頭末尾以外は数字のみ
m10w2rモジュラス10 ウェイト2 ルーンズ先頭末尾以外は数字のみ
m10w3モジュラス10 ウェイト3先頭末尾以外は数字のみ
m11モジュラス11先頭末尾以外は数字のみ6桁以上
wm11加重モジュラス11先頭末尾以外は数字のみ12桁以下
m16モジュラス16
7dr | 7dsr7チェックDR/DSR先頭末尾以外は数字のみ
9dr | 9dsr9チェックDR/DSR先頭末尾以外は数字のみ

Code39

Code39は、JIS X 0503:2000 または ISO/IEC 16388:2007 で規格制定されています。Code39では、次の文字を任意桁指定できます。英小文字は英大文字に変換されて出力されます。

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-.$/+% space

チェックディジットを付加するか否かを指定できます。

パラメータ既定値内容
cdnonem43なし
m43モジュラス43

Code128

Code128は、JIS X 0504:2003 または ISO/IEC 15417:2007 で規格制定されています。Code128には、コードセットが CODE-A、CODE-B、CODE-C の3種類あり、どれを使うかをパラメータで指定します。

パラメータ既定値
codeA | B | CB

Code128では、U+0000~U+007Fの任意の文字を表現することができます。これらのうち、U+0000~U+001FとU+007F、および制御コードは、別のコードで代替して表現します。

入力文字CODE-ACODE-BCODE-C
U+0020SPACESPACE不可
U+0021!!不可
U+0022""不可
U+0023##不可
U+0024$$不可
U+0025%%不可
U+0026&&不可
U+0027''不可
U+0028((不可
U+0029))不可
U+002A**不可
U+002B++不可
U+002C,,不可
U+002D--不可
U+002E..不可
U+002F//不可
U+0030000
U+0031111
U+0032222
U+0033333
U+0034444
U+0035555
U+0036666
U+0037777
U+0038888
U+0039999
U+003A::不可
U+003B;;不可
U+003C<<不可
U+003D==不可
U+003E>>不可
U+003F??不可
    
入力文字CODE-ACODE-BCODE-C
U+0040@@不可
U+0041AA不可
U+0042BB不可
U+0043CC不可
U+0044DD不可
U+0045EE不可
U+0046FF不可
U+0047GG不可
U+0048HH不可
U+0049II不可
U+004AJJ不可
U+004BKK不可
U+004CLL不可
U+004DMM不可
U+004ENN不可
U+004FOO不可
U+0050PP不可
U+0051QQ不可
U+0052RR不可
U+0053SS不可
U+0054TT不可
U+0055UU不可
U+0056VV不可
U+0057WW不可
U+0058XX不可
U+0059YY不可
U+005AZZ不可
U+005B[[不可
U+005C\\不可
U+005D]]不可
U+005E^^不可
U+005F__不可
    
入力文字CODE-ACODE-BCODE-C
U+0060U+0000`不可
U+0061U+0001a不可
U+0062U+0002b不可
U+0063U+0003c不可
U+0064U+0004d不可
U+0065U+0005e不可
U+0066U+0006f不可
U+0067U+0007g不可
U+0068U+0008h不可
U+0069U+0009i不可
U+006AU+000Aj不可
U+006BU+000Bk不可
U+006CU+000Cl不可
U+006DU+000Dm不可
U+006EU+000En不可
U+006FU+000Fo不可
U+0070U+0010p不可
U+0071U+0011q不可
U+0072U+0012r不可
U+0073U+0013s不可
U+0074U+0014t不可
U+0075U+0015u不可
U+0076U+0016v不可
U+0077U+0017w不可
U+0078U+0018x不可
U+0079U+0019y不可
U+007AU+001Az不可
U+007BU+001B{不可
U+007CU+001C|不可
U+007DU+001D}不可
U+007EU+001E~不可
U+00BFU+001FU+007F不可
U+00C0FNC3FNC3不可
U+00C1FNC2FNC2不可
U+00C2SHIFTSHIFT不可
U+00C3CODE-CCODE-C不可
U+00C4CODE-BFNC4CODE-B
U+00C5FNC4CODE-ACODE-A
U+00C6FNC1FNC1FNC1

入力できる文字は以下のとおりです。

CODE-AU+0020~U+007E、U+00BF~U+00C6
CODE-BU+0020~U+007E、U+00BF~U+00C6
CODE-C偶数桁の数字、U+00C4~U+00C6

GS1-128 / EAN-128

GS1-128/EAN-128は、ある種の制約のあるCode128です。バーコードジェネレータオプションでは、以下のチェックをします(あるいはしません)。これら以外の制約はCode128と同じです。

  • FNC1で始まらなければなりません。
  • 制御コード以外で使用できる文字は、以下のとおりです。(空白文字は含まれません)

    !"%&'()*+-./0123456789:;<=>?
    ABCDEFGHIJKLMNOPQRSTUVWXYZ_
    abcdefghijklmnopqrstuvwxyz

  • FNC2およびFNC4は使用できません。
  • 既知のアプリケーション識別子(AI)を認識し、文字数をチェックします。文字種はチェックしません。
  • FNC1が必要な書式であっても、固定長の場合はチェックしません。

あらかじめ登録されているAIは以下のとおりです。ここにないAIまたは、書式を変更したいときは、オプション設定ファイルで変更することができます。 AIの最後の桁の * は任意の数字を示します。例えば、310* は 3100~3109 を示します。書式は次のような意味です。書式の最後の F は、FNC1が必要なことを示します。

  • n3 : 3桁の数字
  • x3 : 3桁の任意文字
  • n-10 : 1桁以上10桁以下の数字
  • x3-10 : 3桁以上10桁以下の任意文字
AI書式
00n18
01n14
02n14
03n14
04n16
10x-20 F
11n6
12n6
13n6
14n6
15n6
16n6
17n6
18n6
19n6
20n2
21x-20 F
22x-29 F
23*x-19
240x-30 F
241x-30 F
242x-6 F
250x-30 F
251x-30 F
252n27
253n14-30 F
254x-20 F
    
AI書式
30n-8
310*n6
311*n6
312*n6
313*n6
314*n6
315*n6
316*n6
320*n6
321*n6
322*n6
323*n6
324*n6
325*n6
326*n6
327*n6
328*n6
329*n6
330*n6
331*n6
332*n6
333*n6
334*n6
335*n6
336*n6
337*n6
    
AI書式
340*n6
341*n6
342*n6
343*n6
344*n6
345*n6
346*n6
347*n6
348*n6
349*n6
350*n6
351*n6
352*n6
353*n6
354*n6
355*n6
356*n6
357*n6
360*n6
361*n6
362*n6
363*n6
364*n6
365*n6
366*n6
367*n6
368*n6
369*n6
    
AI書式
37n-8 F
390*n-15 F
391*n4-18 F
392*n-15 F
393*n4-18 F
400x-30 F
401x-30 F
402n17 F
403x-30 F
410n13
411n13
412n13
413n13
414n13
415n13
420x-20 F
421x4-12 F
422n3 F
423n4-15 F
424n3 F
425n3 F
426n3 F
7001n13 F
7002x-30 F
7003n10 F
7004n-4 F
703*x4-30 F
    
AI書式
8001n14 F
8002x-20 F
8003x15-30 F
8004x-30 F
8005n6 F
8006n18 F
8007x-30 F
8008n9-12 F
8018n18 F
8020x-25 F
8100n6 F
8101n10 F
8102n2 F
8110x-30 F
90x-30 F
91x-30 F
92x-30 F
93x-30 F
94x-30 F
95x-30 F
96x-30 F
97x-30 F
98x-30 F
99x-30 F

注 : 23* の書式は、最後の桁の数*に対して桁数 2*+1 の固定長となります。例えば、234 なら x9 となります。