以下、本明細書で開示するバーコードの設計装置の好ましい一実施形態を、図を参照して説明する。但し、本発明の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
図1は、本明細書に開示するバーコードの設計装置を示す図である。
本実施形態のバーコードの設計装置10(以下、単に装置10ともいう)は、所定の仕様を有するバーコードを、所定の印字条件で印字するためのバーコードの設計値を決定する装置である。
これにより、装置10により設計されるバーコードは、印字されたバーコードが読み取られる時に、より正確にバーコードが読み取られることを可能とする。
上述したように、同じ仕様のバーコードを印字する場合でも、ドットプリンタが異なると、バー又はスペースの寸法が異なる場合があるので、装置10は、ドットプリンタ毎にバーコードを設計する。また、同じ仕様のバーコードを印字する場合でも、用紙等の媒体が異なると、バー又はスペースの寸法が異なる場合があるので、装置10は、媒体毎にバーコードを設計するものである。本明細書では、ドットプリンタは、文字等の印字対象を印字する時に、一又は複数のドットを用いて印字対象を形成して印字するプリンタを意味する。例えば、ドットプリンタとして、インクジェットプリンタ、ドットインパクトプリンタ、熱転写プリンタ等が挙げられる。
また、装置10は、所定のドットプリンタで使用されるインクの種類毎に、バーコードを設計可能である。これは、同じ仕様のバーコードを、同じドットプリンタを用いて同じ用紙に印字する場合でも、異なるインクを用いてバーコードを印字すると、バー又はスペースの寸法が異なる場合があるためである。
更に、装置10は、所定のドットプリンタでバーコードが印字される時の用紙搬送方向毎に、バーコードを設計可能である。これは、同じ仕様のバーコードを、同じドットプリンタを用いて同じ用紙に印字する場合でも、バーコードが印字される時の用紙搬送方向が異なると、バー又はスペースの寸法が異なる場合があるためである。
図2は、バーコードの例として、JIS X0503:2012により規定されているCODE39の仕様を示す。
CODE39のバーコード(バーコードシンボルともいう)は、始まり及び終わりに配置されるクワイエットゾーンと、クワイエットゾーン間に配置される複数のキャラクタを有する。
複数のキャラクタは、バーコードの始まりを示すスタートキャラクタと、終わりを示すストップキャラクタを有する。
スタートキャラクタ及びストップキャラクタの間には、バーコードに含ませる情報を示す1又は複数のキャラクタが配置される。スタートキャラクタ及びストップキャラクタ以外のキャラクタの数を、以下、桁数ともいう。
CODE39のバーコードのキャラクタは、2本の太バーと、3本の細バーと、1本の太スペースと、3本の細スペースとを有し、合計で9本のバー及びスペースを用いて形成される。細バーと細スペースの幅は等しい。なお、バー及びスペースの寸法には誤差が許容されており、この誤差についても、JISの規格により定められている。
ここで、細バーの幅に対する太バーの幅の比率である太細バー比率は、2.0:1〜3.0:1の範囲に規定される。同様に、細スペースの幅に対する太スペースの幅の比率である太細スペース比率も、2.0:1〜3.0:1の範囲に規定される。
隣接する2つのキャラクタ間には、キャラクタ間ギャップがスペースとして配置される。キャラクタ間ギャップの幅は、細エレメント(細バーと細スペースの総称)の幅以上である。一のバーコードの幅を狭くする観点から、キャラクタ間ギャップの幅は、細エレメントの幅と同一にされる場合が多い。
本明細書において、バーの幅は、バーの長手方向と直交する方向又は寸法を意味しており、スペースの幅は、スペースの長手方向と直交する方向又は寸法を意味する。
装置10は、CODE39を含む様々な仕様のバーコードを設計可能である。
図3(A)は、垂直パターンのバーコードを示す図であり、図3(B)は、水平パターンのバーコードを示す図である。
垂直パターンのバーコードでは、バー及びスペースの長手方向が、用紙搬送方向と一致しており、バー及びスペースの幅は、用紙搬送方向と直交する方向になる。
水平パターンのバーコードでは、バー及びスペースの長手方向が、用紙搬送方向と直交しており、バー及びスペースの幅は、用紙搬送方向と一致する。
バーを形成するドットの間隔は、用紙搬送方向と、用紙搬送方向と直交する方向とでは異なる場合がある。そこで、装置10は、バーコードが、垂直パターンとして印字されるのか、又は、水平パターンとして印字されるかという情報に基づいて、バーコードを設計する。
以下、装置10について詳述する。
処理部11は、一つまたは複数のプロセッサと、周辺回路とを有する。処理部11は、記憶部12に予め記憶されている所定のプログラムに従い、装置10の各ハードウェア構成要素の制御及び各種処理を行い、処理中に生じるデータを一時的に保存するために記憶部12を利用する。
記憶部12は、ランダムアクセスメモリ(RAM)又はリードオンリーメモリ(ROM)等の半導体メモリ又は磁気ディスク又はフラッシュメモリ等を有していても良い。記憶部12は、所定のプログラムを記憶する記憶媒体を読み出し可能なドライブを有していても良い。記憶部12は、バーコードの設計処理に使用されるサンプルのバーコードのバーコード測定値表を記憶する。
図4は、バーコード測定値表を示す図である。
バーコード測定値表400には、所定のドットプリンタで所定の媒体に印字されたサンプルのバーコードにおける細バーの幅の測定値とドット数との関係及び細スペースの幅の測定値とドット数との関係が登録される。記憶部12は、ドットプリンタを識別するプリンタ識別情報と、媒体を識別する媒体識別情報と、ドットプリンタで使用されるインクを識別するインク識別情報と、バーコードが垂直パターン又は水平パターンで印字されているかを識別するパターン識別情報とが関連付けられたバーコード測定値表を記憶する。即ち、バーコード測定値表は、プリンタ識別情報と、媒体識別情報と、インク識別情報と、パターン識別情報との異なる組み合わせ毎に作成されて、記憶部12に記憶される。なお、例えばインク識別情報を除いて、バーコード測定値表と関連付けられる識別情報の数を減らして、バーコード測定値表を作成してもよい。
サンプルのバーコードのバー又はスペースの幅の測定は、例えば、媒体に印字されたバーコードを撮影した画像を拡大して、画像中のバー又はスペースの幅を測定して求めてもよい。また、媒体に印字されたサンプルのバーコードを、印字したドットプリンタよりも高解像度のスキャナを用いて撮影し、撮影されたビットマップ画像におけるバー又はスペースの幅の画素数に基づいて、バー又はスペースの幅を求めてもよい。
図4に示すバーコード測定値表400は、印字解像度が300dpiのドットプリンタを用いて、所定の用紙に印字された垂直パターンのサンプルのバーコードにおける細バー及び細スペースの幅の測定値の例を示す。
バーコード測定値表400は、ドット数を示すドット数欄401と、細バーの幅の測定値を示す細バー幅欄402と、細スペースの幅の測定値を示す細スペース幅欄403を有する。
また、バーコード測定値表400は、印字解像度が300dpiのドットプリンタを用いて細バーが印字された場合の理論値が登録される細バー幅(理論値)欄404を有する。なお、バーコード測定値表400は、細バー幅(理論値)欄を有していなくてもよい。
細バー幅欄402には、細バーの幅方向の印字が、ドット数欄401に示されるドット数により行われたバーコードを測定して得られた細バーの幅の測定値が登録される。
本実施形態では、細スペース幅欄403には、図4中に示す式に基づいて得られた細スペースの幅が登録される。なお、細バーの幅方向の印字が、ドット数欄401に示されるドット数により行われたサンプルのバーコードを測定して得られた細スペースの幅を測定して、細スペース幅欄403に登録してもよい。本明細書では、細バーの幅(理論値)と、細バー幅の測定値から求めた細スペースの幅を含めて、細スペース幅の測定値という。
記憶部12は、バーコードの識別情報と関連づけられたバーコードの仕様情報を記憶する。バーコードの仕様情報は、例えば、バーコードの細バーの数と、太バーの数と、細スペースの数と、太スペースの数と、太細バー比率の許容範囲と、太細スペース比率の許容範囲を含む。
表示部13は、処理部11に制御されて、各種の情報を表示可能である。表示部13としては、例えば、液晶ディスプレイを用いることができる。
操作部14は、装置10の操作者により操作されて、バーコードの設計仕様に関する各種情報を入力可能である。操作部14としては、例えば、キーボード、マウス又はタッチパネル等を用いることができる。
出力部15は、決定されたバーコードの設計値を出力する。出力部15として、例えば、ドットプリンタを用いることができる。
装置10は、以下の4つの方針に従ってバーコードを設計する。なお、(3)と(4)とは、トレードオフの関係にある。
(1)装置10は、所定のドットプリンタで所定の媒体に印字した時の印字幅が、設計印字幅内で最大の印字幅を有するように、バーコードを設計する。これにより、バーコードが正確に読み取り易くなる。
(2)装置10は、印字された細バーの幅の測定値と、印字された細スペースの幅の測定値との差が出来るだけ小さくなるように、バーコードを設計する。具体的には、装置10は、印字された細バーの幅の測定値と、印字された細スペースの幅との差が所定の閾値よりも小さくなるように、バーコードを設計する。これにより、細バー及び細スペースを精度良く読み取り易くなる。
(3)装置10は、太細バー比率が、太細バー比率の許容範囲内で最大になるように、細バーの幅のドット数及び細スペースの幅のドット数を決定するように、バーコードを設計する。これにより、太バーと細バーとを識別して、読み取り易くなる。
(4)装置10は、細バーの幅又は細スペースの幅が最大になるように、細バーの幅のドット数及び細スペースの幅のドット数を決定するように、バーコードを設計する。これにより、細バー及び細スペースを精度良く読み取り易くなる。
次に、上述した装置10の動作を、図5〜図7に示すフローチャートを参照しながら、以下に説明する。
まず、ステップS501において、処理部11は、バーコードの印刷条件を入力する。ユーザは、操作部14を用いて、バーコードの印刷条件を入力する。装置10では、バーコードの印刷条件として、プリンタ識別情報と、媒体識別情報と、インク識別情報と、パターン識別情報とが入力される。
本実施形態では、入力されたバーコードの印刷条件と関連付けられて、図4に示すバーコード測定値表400が選択される。なお、バーコードの印刷条件に応じて、対応するバーコード測定値表が記憶12から適宜選択される。
次に、ステップS503において、処理部11は、バーコードの設計条件を入力する。ユーザは、操作部14を用いて、バーコードの設計条件を入力する。処理部11では、バーコードの設計条件として、バーコードの仕様を識別するバーコード識別情報と、バーコードの印字幅と、バーコードの桁数とが入力される。
本実施形態では、バーコード識別情報として、CODE39を示すバーコード識別情報が入力される。また、印字幅として、2インチが入力され、バーコードの桁数として、7桁が入力される。
処理部11は、バーコード識別情報と関連づけられたバーコードの仕様情報を、記憶部12から読み出す。
設計されるCODE39のバーコードの仕様情報として、スタートキャラクタ及びストップキャラクタの2桁を有すること、各キャラクタは2本の太バーと、3本の細バーと、1本の太スペースと、3本の細スペースとを有すること、隣接する2つのキャラクタ間にはキャラクタ間ギャップを有すること、太細バー比率の許容範囲が、2.0:1〜3.0:1であること、太細スペース比率の許容範囲が、2.0:1〜3.0:1であることがある。なお、設計されるバーコードには、クワイエットゾーンは含めないことにする。
設計されるバーコードは、スタートキャラクタ及びストップキャラクタの2桁と、情報としての7桁とを合計した9桁を有することになる。
そして、処理部11は、ドットプリンタの解像度300dpiにおけるバーコードの一桁あたりの最大長Mを求める。ここで、一桁あたりの最大長Mは、バー及びスペースの幅方向の寸法を意味する。
2インチの印字幅に、9桁を有するバーコードが印字されるので、300ドット×2インチ/9桁=600ドット/9桁=66.666ドット/桁が、一桁あたりの最大長Mとなる。
次に、CODE39のバーコードに対して、細バーの幅のドット数Bと、細スペースの幅のドット数Sと、太細バー比率Nと、太細スペース比率N’と、キャラクタ間ギャップの幅Cと、一桁あたりの最大長Mとの関係を、以下に説明する。
バーコードの一桁あたりの幅は、3×B+3×S+2×N×B+N’×C(ドット)で表されるので、印字幅の600(ドット)は、下記式(1)で表される。ここで、9桁のバーコードの場合、8個のキャラクタ間ギャップが配置される。
9×(3×B+3×S+2×N×B+N’×S)+8×C=600 (1)
両辺を9で割ることにより、一桁あたりの幅のドット数の最大値である、一桁あたりの最大長M(66.6666ドット/桁)は、下記式(2)で表される。
3×B+3×S+2×N×B+N’×S+8/9×C=66.6666 (2)
ここで、キャラクタ間ギャップの幅Cは、細スペースの幅のドット数Sと等しいとすると、上記式(2)は、下記式(3)で表される。
3×B+3×S+2×N×B+N’×S+8/9×S=66.6666 (3)
更に、上記式(3)の左辺をまとめると、下記式(4)が得られる。後述する処理において、バーコードの設計条件を変化させる度に、下記式(4)の左辺の計算式を用いて、一桁あたりの幅が計算される。
3×(B+S)+2×N×B+N’×S+8/9×S=66.6666 (4)
ここで、細バーの幅のドット数B、及び、細スペースの幅のドット数Sは、1以上の整数である。
次に、ステップS505において、最適幅Lpの初期値として、ゼロが設定される。最適幅Lpは、バーコードの設計条件を変化させて最適値を求めている各時点において、最適なバーコードの設計条件におけるバーコードの一桁あたりの幅がドット数で表された値である。
次に、ステップS507において、処理部11は、バーコード設計条件内で、最小の太細バー比率N及び最小の太細スペース比率N’を有するバーコードにおける最大の細バーの幅のドット数を求めて、細バーの幅のドット数Bとする。
CODE39のバーコードでは、最小の太細バー比率Nは、2.0であり、最小の太細スペース比率N’も2.0である。
処理部11は、上記式(4)を不等式に変形した下記式(5)を解いて、細バーの幅のドット数Bを求める。
3×(B+S)+2×N×B+N’×S+8/9×S≦66.6666 (5)
上記式(5)において、N=N’=2.0を代入し、且つ、B=Sとして、下記式(6)を得る。B=Sは、CODE39の仕様である。
B×(3+2×2)+S×(3.9+2)≦66.6666 (6)
B×12.9≦66.6666
B≒5.17
上記式(6)を解くと、細バーの幅のドット数Bとして、約5.17が得られる。処理11は、この値を超えない最大の整数である5を、細バーの幅のドット数Bとする。
次に、ステップS509において、処理部11は、太細バー比率Nを、許容範囲の最小値の2.0とし、太細スペース比率N’を、許容範囲の最小値の2.0とする。
次に、ステップS511において、処理部11は、入力された印刷条件における細バーの幅のドット数Bの測定値を、記憶部12に記憶されたバーコード測定値表400を参照して読み出す。
処理部11は、バーコード測定値表400を参照して、細バーの幅のドット数Bである5ドットの測定値として、0.425mmを読み出す。
次に、ステップS513において、処理部11は、細バーの幅のドット数Bの測定値と、細スペースの幅の測定値との差が所定の閾値よりも小さい、細スペースの幅の測定値を有する細スペースの幅のドット数Sを、記憶部12に記憶されたバーコード測定値表400を参照して読み出す。所定の閾値として、例えば、0.05mmとすることができる。このようにして、処理部11は、細バーの幅のドット数Bの測定値に最も近い細スペースの幅の測定値を有する細スペースの幅のドット数Sを求める。
具体的には、処理部11は、バーコード測定値表400を参照して、細バーの幅のドット数Bである5ドットの測定値として、0.425mmとの差が所定の閾値よりも小さい細スペースの幅として、0.422mmを有するドット数5を、細スペースの幅のドット数Sとして読み出す。
次に、ステップS515において、処理部11は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と、上記式(4)の左辺の計算式に基づいて、バーコードの一桁あたりの幅Lを求める。
図8の番号1の行は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と共に、バーコードの一桁あたりの幅Lの値を示す。一桁あたりの幅Lは、64.5ドットである。また、処理部11は、一桁あたりの幅L(64.5ドット)と、バーコードの桁数である9との積を求めて、バーコードの幅(64.5ドット×9)を得る。図8は、バーコードの一桁あたりの幅と、各設計値との関係を示す。
次に、ステップS601において、処理部11は、ステップS515で求められたバーコードの幅が、バーコードの設計条件である印字幅以下であるか否かを判断する。
ここでは、バーコードの幅(64.5ドット×9)は、バーコードの設計条件である印字幅(300dpi×2インチ=600ドット)以下であるので(ステップS601−Yes)、ステップS603へ進む。
次に、ステップS603において、処理部11は、バーコードの一桁あたりの幅Lが、最適幅Lpよりも大きいか否かを判断する。なお、処理部11は、バーコードの幅が、最適なバーコードの幅よりも大きいか否かを判断してもよい。
ここでは、バーコードの一桁あたりの幅L(64.5ドット)は、最適幅Lp(初期値のゼロ)よりも大きいので(ステップS603−Yes)、ステップS605へ進む。
次に、ステップS605において、処理部11は、細バーの幅の最適ドット数Bp、細スペースの幅の最適ドット数Sp、最適太細バー比率Np、最適太細スペース比率Np’を、バーコードの一桁あたりの幅L(64.5ドット)を求めるのに使用した各値に更新する。また、処理部11は、最適幅Lpを、バーコードの一桁あたりの幅L(64.5ドット)に更新する。なお、処理部11は、最適なバーコードの幅を、バーコードの幅L(64.5ドット×9)に更新してもよい。
具体的には、細バーの幅の最適ドット数Bpを5とし、細スペースの幅の最適ドット数Spを5とし、最適太細バー比率Npを2.0とし、最適太細スペース比率Np’を2.0とし、最適幅Lpを64.5とする。
次に、ステップS607において、処理部11は、太細バー比率Nを、所定の値だけ増加する。本実施形態では、処理部11は、太細バー比率Nを、0.1増加する。
ここでは、太細バー比率Nは、2.0から2.1へ増加する。
次に、ステップS609において、処理部11は、太細バー比率Nは、許容範囲以内であるか否かを判断する。太細バー比率Nの許容範囲は、2.0≦N≦3.0であり、太細バー比率N(2.1)は、許容範囲以内であるので(ステップS609−Yes)、ステップS611へ進む。
次に、ステップS611において、処理部11は、太バーの幅のドット数N×Bは整数であるか否かを判断する。
ここで、太バーの幅のドット数N×Bは、2.1×5であり、整数ではないので(ステップS611−No)、処理は、ステップS607の前へ戻り、ステップS607〜S611の処理が、ステップS611においてYesと判断されるまで繰り返される。ここで、ステップS607において、太細バー比率N(は2.2)となり、太バーの幅のドット数N×B(2.2×5)が整数となると(ステップS611−Yes)、処理は、ステップS515の前へ戻る。
次に、ステップS515において、処理部11は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と、上記式(4)の左辺の計算式に基づいて、バーコードの一桁あたりの幅Lを求める。
図8の番号2の行は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と共に、バーコードの一桁あたりの幅Lの値を示す。一桁あたりの幅Lは、66.5ドットである。また、処理部11は、一桁あたりの幅L(66.5ドット)と、バーコードの桁数である9との積を求めて、バーコードの幅(66.5ドット×9)を得る。
次に、ステップS601において、処理部11は、ステップS515で求められたバーコードの幅が、バーコードの設計条件である印字幅以下であるか否かを判断する。
ここでは、バーコードの幅(66.5ドット×9)は、バーコードの設計条件である印字幅(600ドット)以下であるので(ステップS601−Yes)、ステップS603へ進む。
次に、ステップS603において、処理部11は、バーコードの一桁あたりの幅Lが、最適幅Lpよりも大きいか否かを判断する。
ここでは、バーコードの一桁あたりの幅L(66.5ドット)は、最適幅Lp(64.5ドット)よりも大きいので(ステップS603−Yes)、ステップS605へ進む。
次に、ステップS605において、処理部11は、細バーの幅の最適ドット数Bp、細スペースの幅の最適ドット数Sp、最適太細バー比率Np、最適太細スペース比率Np’を、バーコードの一桁あたりの幅L(66.5ドット)を求めるのに使用した各値に更新する。また、処理部11は、最適幅Lpを、バーコードの一桁あたりの幅L(66.5ドット)に更新する。
具体的には、細バーの幅の最適ドット数Bpを5とし、細スペースの幅の最適ドット数Spを5とし、最適太細バー比率Npを2.2とし、最適太細スペース比率Np’を2.0とし、最適幅Lpを66.5とする。
次に、ステップS607において、処理部11は、太細バー比率Nを、所定の値だけ増加する。本実施形態では、処理部11は、太細バー比率Nを、0.1増加する。
ここでは、太細バー比率Nは、2.2から2.3へ増加する。
次に、ステップS609において、処理部11は、太細バー比率Nは、許容範囲以内であるか否かを判断する。太細バー比率Nの許容範囲は、2.0≦N≦3.0であり、太細バー比率N(2.3)は、許容範囲以内であるので(ステップS609−Yes)、ステップS611へ進む。
次に、ステップS611において、処理部11は、太バーの幅のドット数N×Bは整数であるか否かを判断する。
ここで、太バーの幅のドット数N×Bは、2.3×5であり、整数ではないので(ステップS611−No)、処理は、ステップS607の前へ戻り、ステップS607〜S611の処理が、ステップS611においてYesと判断されるまで繰り返される。ここで、ステップS607において、太細バー比率Nは(3.0)となり、太バーの幅のドット数N×B(3.0×5)が整数となると(ステップS611−Yes)、処理は、ステップS515の前へ戻る。
次に、ステップS515において、処理部11は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と、上記式(4)の左辺の計算式に基づいて、バーコードの一桁あたりの幅Lを求める。
図8の番号3の行は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と共に、バーコードの一桁あたりの幅Lの値を示す。一桁あたりの幅Lは、74.5ドットである。また、処理部11は、一桁あたりの幅L(74.5)と、バーコードの桁数である9との積を求めて、バーコードの幅(74.5×9)を得る。
次に、ステップS601において、処理部11は、ステップS515で求められたバーコードの幅が、バーコードの設計条件である印字幅以下であるか否かを判断する。
ここでは、バーコードの幅(74.5ドット×9)は、バーコードの設計条件である印字幅(600ドット)より大きいので(ステップS601−No)、処理は、ステップS701へ進む。
次に、ステップS701において、処理部11は、太細バー比率Nを、許容範囲の最小値である2.0とする。
次に、ステップS703において、処理部11は、太細スペース比率N’を、所定の値だけ増加する。本実施形態では、処理部11は、太細スペース比率N’を、0.1増加する。
ここでは、太細スペース比率N’は、2.0から2.1へ増加する。
次に、ステップS705において、処理部11は、太細スペース比率N’は、許容範囲以内であるか否かを判断する。太細スペース比率N’の許容範囲は、2.0≦N≦3.0であり、太細スペース比率N’(2.1)は、許容範囲以内であるので(ステップS705−Yes)、ステップS707へ進む。
次に、ステップS707において、処理部11は、太スペースの幅のドット数N’×B(S)は整数であるか否かを判断する。
ここで、太スペースの幅のドット数N’×B(S)は、2.1×5であり、整数ではないので(ステップS707−No)、処理は、ステップS703の前へ戻り、ステップS703〜S707の処理が、ステップS707においてYesと判断されるまで繰り返される。ここで、ステップS707において、太細スペース比率N’は(2.2)となり、太スペースの幅のドット数N’×B(S)が整数となると(ステップS707−Yes)、処理は、ステップS515の前へ戻る。
次に、ステップS515において、処理部11は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と、上記式(4)の左辺の計算式に基づいて、バーコードの一桁あたりの幅Lを求める。
図8の番号4の行は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と共に、バーコードの一桁あたりの幅Lの値を示す。一桁あたりの幅Lは、65.5ドットである。また、処理部11は、一桁あたりの幅L(65.5ドット)と、バーコードの桁数である9との積を求めて、バーコードの幅(65.5ドット×9)を得る。
次に、ステップS601において、処理部11は、ステップS515で求められたバーコードの幅が、バーコードの設計条件である印字幅以下であるか否かを判断する。
ここでは、バーコードの幅(65.5ドット×9)は、バーコードの設計条件である印字幅(600ドット)以下であるので(ステップS601−Yes)、ステップS603へ進む。
次に、ステップS603において、処理部11は、バーコードの一桁あたりの幅Lが、最適幅Lpよりも大きいか否かを判断する。
ここでは、バーコードの一桁あたりの幅L(65.5ドット)は、最適幅Lp(66.5ドット)よりも小さいので(ステップS603−No)、ステップS613へ進む。
次に、ステップS613において、処理部11は、バーコードの一桁あたりの幅Lが、最適幅Lpと等しいか否かを判断する。なお、処理部11は、バーコードの幅が、最適な幅と等しいか否かを判断してもよい。
ここでは、バーコードの一桁あたりの幅L(65.5ドット)は、最適幅Lp(66.5ドット)と等しくはないので(ステップS613−No)、処理は、ステップS607へ進む。
次に、ステップS607において、処理部11は、太細バー比率Nを、所定の値だけ増加する。本実施形態では、処理部11は、太細バー比率Nを、0.1増加する。
ここでは、太細バー比率Nは、2.0から2.1へ増加する。
次に、ステップS609において、処理部11は、太細バー比率Nは、許容範囲以内であるか否かを判断する。太細バー比率Nの許容範囲は、2.0≦N≦3.0であり、太細バー比率N(2.1)は、許容範囲以内であるので(ステップS609−Yes)、ステップS611へ進む。
次に、ステップS611において、処理部11は、太バーの幅のドット数N×Bは整数であるか否かを判断する。
ここで、太バーの幅のドット数N×Bは、2.1×5であり、整数ではないので(ステップS611−No)、処理は、ステップS607の前へ戻り、ステップS607〜S611の処理が、ステップS611においてYesと判断されるまで繰り返される。ここで、ステップS607において、太細バー比率Nは(2.2)となり、太バーの幅のドット数N×B(2.2×5)が整数となると(ステップS611−Yes)、処理は、ステップS515の前へ戻る。
次に、ステップS515において、処理部11は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と、上記式(4)の左辺の計算式に基づいて、バーコードの一桁あたりの幅Lを求める。
図8の番号5の行は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と共に、バーコードの一桁あたりの幅Lの値を示す。一桁あたりの幅Lは、67.5ドットである。また、処理部11は、一桁あたりの幅L(67.5ドット)と、バーコードの桁数である9との積を求めて、バーコードの幅(67.5ドット×9)を得る。
次に、ステップS601において、処理部11は、ステップS515で求められたバーコードの幅が、バーコードの設計条件である印字幅以下であるか否かを判断する。
ここでは、バーコードの幅(67.5ドット×9)は、バーコードの設計条件である印字幅(600ドット)より大きいので(ステップS601−No)、処理は、ステップS701へ進む。
次に、ステップS701において、処理部11は、太細バー比率Nを、許容範囲の最小値である2.0とする。
次に、ステップS703において、処理部11は、太細スペース比率N’を、所定の値だけ増加する。本実施形態では、処理部11は、太細スペース比率N’を、0.1増加する。
ここでは、太細スペース比率N’は、2.2から2.3へ増加する。
次に、ステップS705において、処理部11は、太細スペース比率N’は、許容範囲以内であるか否かを判断する。太細スペース比率N’の許容範囲は、2.0≦N≦3.0であり、太細スペース比率N’(2.3)は、許容範囲以内であるので(ステップS705−Yes)、ステップS707へ進む。
次に、ステップS707において、処理部11は、太スペースの幅のドット数N’×B(S)は整数であるか否かを判断する。
ここで、太スペースの幅のドット数N’×B(S)は、2.3×5であり、整数ではないので(ステップS707−No)、処理は、ステップS703の前へ戻り、ステップS703〜S707の処理が、ステップS707においてYesと判断されるまで繰り返される。ここで、ステップS707において、太細スペース比率N’は(3.0)となり、太スペースの幅のドット数N’×B(S)が整数となると(ステップS707−Yes)、処理は、ステップS515の前へ戻る。
次に、ステップS515において、処理部11は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と、上記式(4)の左辺の計算式に基づいて、バーコードの一桁あたりの幅Lを求める。
図8の番号6の行は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と共に、バーコードの一桁あたりの幅Lの値を示す。一桁あたりの幅Lは、69.5ドットである。また、処理部11は、一桁あたりの幅L(69.5ドット)と、バーコードの桁数である9との積を求めて、バーコードの幅(69.5ドット×9)を得る。
次に、ステップS601において、処理部11は、ステップS515で求められたバーコードの幅が、バーコードの設計条件である印字幅以下であるか否かを判断する。
ここでは、バーコードの幅(69.5ドット×9)は、バーコードの設計条件である印字幅(600ドット)よりも大きいので(ステップS601−Yes)、ステップS701へ進む。
次に、ステップS701において、処理部11は、太細バー比率Nを、許容範囲の最小値である2.0とする。
次に、ステップS703において、処理部11は、太細スペース比率N’を、所定の値だけ増加する。本実施形態では、処理部11は、太細スペース比率N’を、0.1増加する。
ここでは、太細スペース比率N’は、3.0から3.1へ増加する。
次に、ステップS705において、処理部11は、太細スペース比率N’は、許容範囲以内であるか否かを判断する。太細スペース比率N’の許容範囲は、2.0≦N≦3.0であり、太細スペース比率N’(3.1)は、許容範囲以内ではないので(ステップS705−No)、ステップS709へ進む。
次に、ステップS709において、処理部11は、細バーの幅のドット数Bを1ドット減少する。
ここでは、細バーの幅のドット数Bは、5.0から4.0へ減少する。
次に、ステップS711において、処理部11は、細バーの幅のドット数Bが、ゼロよりも大きいか否かを判断する。
ここでは、細バーの幅のドット数B(4.0)は、ゼロよりも大きいので(ステップS711−Yes)、処理は、ステップS509の前へ戻る。
次に、ステップS509において、処理部11は、太細バー比率Nを、許容範囲の最小値の2.0とし、太細スペース比率N’を、許容範囲の最小値の2.0とする。
次に、ステップS511において、処理部11は、入力された印刷条件における細バーの幅のドット数Bの測定値を、記憶部12に記憶されたバーコード測定値表400を参照して読み出す。
処理部11は、バーコード測定値表400を参照して、細バーの幅のドット数Bである4ドットの測定値として、0.389mmを読み出す。
次に、ステップS513において、処理部11は、細バーの幅のドット数Bの測定値と、細スペースの幅の測定値との差が所定の閾値よりも小さい、細スペースの幅の測定値を有する細スペースの幅のドット数Sを、記憶部12に記憶されたバーコード測定値表400を参照して読み出す。
処理部11は、バーコード測定値表400を参照して、細バーの幅のドット数Bである4ドットの測定値として、0.389mmとの差が所定の閾値(0.05)よりも小さい細スペースの幅として、0.422mmを有するドット数5を、細スペースの幅のドット数Sとして読み出す。
次に、ステップS515において、処理部11は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と、上記式(4)の左辺の計算式に基づいて、バーコードの一桁あたりの幅Lを求める。
図8の番号7の行は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と共に、バーコードの一桁あたりの幅Lの値を示す。一桁あたりの幅Lは、57.5ドットである。また、処理部11は、一桁あたりの幅L(57.5ドット)と、バーコードの桁数である9との積を求めて、バーコードの幅(57.55ドット×9)を得る。
次に、ステップS601において、処理部11は、ステップS515で求められたバーコードの幅が、バーコードの設計条件である印字幅以下であるか否かを判断する。
ここでは、バーコードの幅(57.5ドット×9)は、バーコードの設計条件である印字幅(600ドット)以下であるので(ステップS601−Yes)、ステップS603へ進む。
次に、ステップS603において、処理部11は、バーコードの一桁あたりの幅Lが、最適幅Lpよりも大きいか否かを判断する。
ここでは、バーコードの一桁あたりの幅L(57.5ドット)は、最適幅Lp(初期値のゼロ)よりも小さいので(ステップS603−No)、処理は、ステップS613へ進む。
次に、ステップS613において、処理部11は、バーコードの一桁あたりの幅Lが、最適幅Lpと等しいか否かを判断する。
ここでは、バーコードの一桁あたりの幅L(57.5ドット)は、最適幅Lp(66.5ドット)と等しくはないので(ステップS613−No)、ステップS607へ進む。
次に、ステップS607において、処理部11は、太細バー比率Nを、所定の値だけ増加する。本実施形態では、処理部11は、太細バー比率Nを、0.1増加する。
ここでは、太細バー比率Nは、2.0から2.1へ増加する。
次に、ステップS609において、処理部11は、太細バー比率Nは、許容範囲以内であるか否かを判断する。太細バー比率Nの許容範囲は、2.0≦N≦3.0であり、太細バー比率N(2.1)は、許容範囲以内であるので(ステップS609−Yes)、ステップS611へ進む。
次に、ステップS611において、処理部11は、太バーの幅のドット数N×Bは整数であるか否かを判断する。
ここで、太バーの幅のドット数N×Bは、2.1×4であり、整数ではないので(ステップS611−No)、処理は、ステップS607の前へ戻り、ステップS607〜S611の処理が、ステップS611においてYesと判断されるまで繰り返される。ここで、ステップS607において、太細バー比率N(は2.5)となり、太バーの幅のドット数N×B(2.5×4)が整数となると(ステップS611−Yes)、処理は、ステップS515の前へ戻る。
処理部11は、ステップS515以降の処理を繰り返して、図8の番号8〜11の計算を行う。
次に、ステップS515において、図8の番号12の計算を行う処理を、以下に説明する。
まず、ステップS515において、処理部11は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と、上記式(4)の左辺の計算式に基づいて、バーコードの一桁あたりの幅Lを求める。
図8の番号12の行は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と共に、バーコードの一桁あたりの幅Lの値を示す。一桁あたりの幅Lは、66.5ドットである。また、処理部11は、一桁あたりの幅L(66.5ドット)と、バーコードの桁数である9との積を求めて、バーコードの幅(66.5ドット×9)を得る。
次に、ステップS601において、処理部11は、ステップS515で求められたバーコードの幅が、バーコードの設計条件である印字幅以下であるか否かを判断する。
ここでは、バーコードの幅(66.5ドット×9)は、バーコードの設計条件である印字幅(600ドット)よりも小さいので(ステップS601−Yes)、ステップS603へ進む。
次に、ステップS603において、処理部11は、バーコードの一桁あたりの幅Lが、最適幅Lpよりも大きいか否かを判断する。
ここでは、バーコードの一桁あたりの幅L(66.5ドット)は、最適幅Lp(66.5ドット)よりも小さくはないので(ステップS603−No)、ステップS613へ進む。
次に、ステップS613において、処理部11は、バーコードの一桁あたりの幅Lが、最適幅Lpと等しいか否かを判断する。
ここでは、バーコードの一桁あたりの幅L(66.5ドット)は、最適幅Lp(66.5ドット)と等しいので(ステップS613−Yes)、処理は、ステップS615へ進む。
次に、ステップS615において、処理部11は、現在の太細バー比率Nが、最適太細バー比率Npよりも大きく、且つ、現在の太細スペース比率N’が、最適太細スペース比率Np’よりも大きく、且つ、現在の細バーの幅のドット数Bが、細バーの幅の最適ドット数Bpと等しいか否かを判断する。
ここで、現在の太細バー比率N(3.0)は、最適太細バー比率Np(2.2)よりも大きく、現在の太細スペース比率N’(2.2)が、最適太細スペース比率Np’(2.0)よりも大きいが、現在の細バーの幅のドット数B(4)は、細バーの幅の最適ドット数Bp(5)と等しくはないので(ステップS615−No)、処理は、ステップS607へ進む。
処理部11は、ステップS607以降の処理を繰り返して、ステップS515において、図8の番号13の計算を行う。
次に、ステップS515において、図8の番号14の計算を行う処理を、以下に説明する。
まず、ステップS515において、処理部11は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と、上記式(4)の左辺の計算式に基づいて、バーコードの一桁あたりの幅Lを求める。
図8の番号14の行は、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N,太細スペース比率N’と共に、バーコードの一桁あたりの幅Lの値を示す。一桁あたりの幅Lは、66.5ドットである。また、処理部11は、一桁あたりの幅L(66.5ドット)と、バーコードの桁数である9との積を求めて、バーコードの幅(66.5ドット×9)を得る。
次に、ステップS601において、処理部11は、ステップS515で求められたバーコードの幅が、バーコードの設計条件である印字幅以下であるか否かを判断する。
ここでは、バーコードの幅(66.5ドット×9)は、バーコードの設計条件である印字幅(600ドット)よりも小さいので(ステップS601−Yes)、ステップS603へ進む。
次に、ステップS603において、処理部11は、バーコードの一桁あたりの幅Lが、最適幅Lpよりも大きいか否かを判断する。
ここでは、バーコードの一桁あたりの幅L(66.5ドット)は、最適幅Lp(66.5ドット)よりも小さくはないので(ステップS603−No)、ステップS613へ進む。
次に、ステップS613において、処理部11は、バーコードの一桁あたりの幅Lが、最適幅Lpと等しいか否かを判断する。
ここでは、バーコードの一桁あたりの幅L(66.5ドット)は、最適幅Lp(66.5ドット)と等しいので(ステップS613−Yes)、処理は、ステップS615へ進む。
次に、ステップS615において、処理部11は、現在の太細バー比率Nが、最適太細バー比率Npよりも大きく、且つ、現在の太細スペース比率N’が、最適太細スペース比率Np’よりも大きく、且つ、現在の細バーの幅のドット数Bが、細バーの幅の最適ドット数Bpと等しいか否かを判断する。
ここで、現在の太細バー比率N(2.5)は、最適太細バー比率Np(2.2)よりも大きく、現在の太細スペース比率N’(3.0)は、最適太細スペース比率Np’(2.0)よりも大きいが、現在の細バーの幅のドット数B(4)は、細バーの幅の最適ドット数Bp(5)と等しくはないので(ステップS615−No)、処理は、ステップS607へ進む。
処理部11は、ステップS607以降の処理を繰り返して、ステップS515において、図8の番号15以降の計算を行う。
例えば、図8の番号17の計算では、細バーの幅のドット数Bが3であり、細スペースの幅のドット数Sが4であり、太細バー比率Nが3.0であり、太細スペース比率N’が3.0の時に、バーコードの一桁あたりの幅Lが54.6ドットであることが示されている。
本実施形態では、これ以降の処理において、新たな最適なバーコードの設計条件は出現しない。
処理部11は、全てのバーコードの設計条件に対して、細バーの幅のドット数B、細スペースの幅のドット数S、太細バー比率N、太細スペース比率N’の全ての組み合わせに対して、バーコードの一桁あたりの幅L及びバーコードの幅を求めて、最適なバーコードの設計条件を求めるが、これ以上の計算結果の説明は省略する。
上述した装置10の動作例では、入力されたバーコードの印字条件及び設計条件に対する最適な設計条件として、図8の番号2の設計条件が求められる。
その結果、ステップS713において、処理部11は、細バーの幅の最適ドット数Bpは5であり、細スペースの幅の最適ドット数Spは5であり、最適太細バー比率Npを2.2であり、最適太細スペース比率Np’を2.0であり、最適幅Lpを66.5となることを決定する。
処理部11は、出力部15を用いて、決定された最適なバーコードの設計値を出力する。
上述した本実施形態の装置10によれば、新たなバーコードを迅速に設計することできる。また、設計されたバーコードは、細バー及び細スペースを精度良く読み取り易く、太バーと細バーとを識別して読み取り易く、細バー及び細スペースを精度良く読み取り易く、総合してバーコードを正確に読み取り易い。
本実施形態の装置10を用いて、新たなバーコードを設計するのに要した時間を、従来の方法を用いた設計するのに要した時間と比較して、以下に説明する。
まず、記憶部12に記憶させるバーコード測定値表を作成するためのデータを作成するのに要した時間は、16時間であった。その後、装置10を用いて、新たなバーコードを設計するのに要した時間は1時間であった。今後、新たなバーコードを設計するのに要する時間も、同様に1時間程度であると考えられる。
次に、従来の方法として、バーコードを印字するドットプリンタと、バーコードを印字する用紙を用いて、太バーと、細バーと、太スペースと、細スペース等の設計値を変更して実際に印字し、印字されたバーコードをリーダで読み取って、最適な設計値を決定する作業を行った。その結果、バーコードの設計に要する時間が5時間であり、設計されたバーコードを印字するのに要する時間が3時間であり、印字されたバーコードを測定するのに要する時間が8時間であり、合計16時間を要した。そして、最適なバーコードの設計値を決定するために、上述した作業を3回繰り返したので、最終的には合計48時間を要した。
本発明では、上述した実施形態のバーコードの設計装置及び設計方法は、本発明の趣旨を逸脱しない限り適宜変更が可能である。また、一の実施形態が有する構成要件は、他の実施形態にも適宜適用することができる。