(57)【要約】【課題】短いバーコード長でより多くのデータ量を表すことが可能なバーコードを生成し、当該バーコードの読み取りに際して、読み取り精度を向上させることができるようにする。【解決手段】バーコードデータが記録された記録媒体を所定の位置間隔毎に搬送する際に、バーコードデータを検出し、当該バーコードデータを形成する各バーの中央位置に対応するセンサ出力値と所定の閾値とを比較して、各バーが白色パターン又は黒色パターンであるかを判別し、この判別された結果に基づいて、バーコードデータに含まれたデータバー部をデコードする。【選択図】図６
2006260396.tif 000002
【特許請求の範囲】
【請求項１】
一方向に読み取りスキャンされるバーコードデータを生成するバーコード生成装置であって、
一又は複数の数値を入力する入力手段と、
前記入力された数値のそれぞれをバイナリコードに変換する変換手段と、
前記スキャン方向に沿って配列される、読み取り開始位置を示すマーカー部、前記変換された各バイナリコードに対応する固定幅を有するデータバーが前記スキャン方向にスペースバーを置いて配列されるデータバー部、このデータバー部と前記マーカー部との間に所定間隔を置いて配置され前記データバー部の先端位置を示すスタートバー、及び前記データバー部の後方に配置され当該データバー部の終端位置を示すストップバーを含むバーコードデータを生成するバーコードデータ生成手段と、
を備えたことを特徴とするバーコード生成装置。
【請求項２】
前記バーコード生成手段により生成された前記バーコードデータを記録媒体に記録する記録手段を更に備えたことを特徴とする請求項１記載のバーコード生成装置。
【請求項３】
前記バーコードデータは、前記データバー部の誤り検出用パリティコードを含むことを特徴とする請求項１又は２に記載のバーコード生成装置。
【請求項４】
前記データバー部の幅が、前記マーカー部の幅より小さくなるよう前記スペースバーが置かれることを特徴とする請求項１記載のバーコード生成装置。
【請求項５】
前記マーカー部の幅は、前記バーコードデータに含まれる各バーの幅よりも大なることを特徴とする請求項１〜４の何れか一項に記載のバーコード生成装置。
【請求項６】
一方向に読み取りスキャンされるバーコードデータを生成するバーコード生成方法であって、
一又は複数の数値を入力する入力工程と、
前記入力された数値のそれぞれをバイナリコードに変換する変換工程と、
前記スキャン方向に沿って配列される、読み取り開始位置を示すマーカー部、前記変換された各バイナリコードに対応する固定幅を有するデータバーが前記スキャン方向にスペースバーを置いて配列されるデータバー部、このデータバー部と前記マーカー部との間に所定間隔を置いて配置され前記データバー部の先端位置を示すスタートバー、及び前記データバー部の後方に配置され前記データバー部の終端位置を示すストップバーを含むバーコードデータを生成するバーコードデータ生成工程と、
を含むことを特徴とするバーコード生成方法。
【請求項７】
前記バーコード生成工程で生成された前記バーコードデータを記録媒体に記録する記録工程を更に備えたことを特徴とする請求項６記載のバーコード生成方法。
【請求項８】
前記バーコードデータは、前記データバー部の誤り検出用パリティコードを含むことを特徴とする請求項６又は７に記載のバーコード生成方法。
【請求項９】
前記データバー部の幅が、前記マーカー部の幅より小さくなるよう前記スペースバーが置かれることを特徴とする請求項７記載のバーコード生成方法。
【請求項１０】
前記マーカー部の幅は、前記バーコードデータに含まれる各バーの幅よりも大なることを特徴とする請求項６〜９の何れか一項に記載のバーコード生成方法。
【請求項１１】
一方向に読み取りスキャンされるバーコードデータを生成するコンピュータに、
一又は複数の数値を入力する入力機能と、
前記入力された数値のそれぞれをバイナリコードに変換する変換機能と、
前記スキャン方向に沿って配列される、読み取り開始位置を示すマーカー部、前記変換された各バイナリコードに対応する固定幅を有するデータバーが前記スキャン方向にスペースバーを置いて配列されるデータバー部、このデータバー部と前記マーカー部との間に所定間隔を置いて配置され前記データバー部の先端位置を示すスタートバー、及び前記データバー部の後方に配置され前記データバー部の終端位置を示すストップバーを含むバーコードデータを生成するバーコードデータ生成機能と、
を実現させるバーコード生成プログラム。
【請求項１２】
前記コンピュータに、
前記バーコード生成機能により生成された前記バーコードデータを記録媒体に記録する記録機能を更に実現させることを特徴とする請求項１１記載のバーコード生成プログラム。
【請求項１３】
前記バーコードデータは、前記バーコード部の誤り検出用パリティコードを含むことを特徴とする請求項１１又は１２に記載のバーコード生成プログラム。
【請求項１４】
前記データバー部の幅が、前記マーカー部の幅より小さくなるよう前記スペースバーが置かれることを特徴とする請求項１１記載のバーコード生成プログラム。
【請求項１５】
前記マーカー部の幅は、前記バーコードデータに含まれる各バーの幅よりも大なることを特徴とする請求項１１〜１４の何れか一項に記載のバーコード生成プログラム。
【請求項１６】
請求項６〜１０の何れか一項に記載のバーコード生成方法で生成されたバーコードデータを読み取るバーコード読取装置であって、
前記バーコードデータが記録された記録媒体を、当該バーコードデータのマーカー部からストップバーにかけて所定の位置間隔毎に搬送する搬送手段と、
前記搬送された位置間隔毎に前記バーコードデータを検出する検出手段と、
前記検出されたセンサ出力値を記憶する記憶手段と、
前記記憶された複数のセンサ出力値に基づいて、前記バーコードデータを形成する各バーの中央位置を特定する特定手段と、
前記特定された中央位置に対応する各バーのセンサ出力値と所定の閾値とを比較して、前記各バーが白色又は黒色であるかを判別する判別手段と、
前記判別された結果に基づいて、前記バーコードデータに含まれたデータバー部のバイナリコードをデコードするデコード手段と、
を備えたことを特徴とするバーコード読取装置。
【請求項１７】
前記検出手段により検出された各センサ出力値のサンプリング間隔を所定数で細分化し、当該細分化された間隔位置に対応する近似補正値をセンサ出力値として導出する細分化手段を更に備えたことを特徴とする請求項１６記載のバーコード読取装置。
【請求項１８】
前記センサ出力値の最小極大値と最大極小値とに基づいて、前記閾値を決定する閾値決定手段を更に備えたことを特徴とする請求項１６又は１７に記載のバーコード読取装置。
【請求項１９】
請求項６〜１０の何れか一項に記載のバーコード生成方法で生成されたバーコードデータを読み取るバーコード読取方法であって、
前記バーコードデータが記録された記録媒体を、当該バーコードデータのマーカー部からストップバーにかけて所定の位置間隔毎に搬送する搬送工程と、
前記搬送された位置間隔毎に前記バーコードデータを検出する検出工程と、
前記検出された複数のセンサ出力値に基づいて、前記バーコードデータを形成する各バーの中央位置を特定する特定工程と、
前記特定された中央位置に対応する各バーのセンサ出力値と所定の閾値とを比較して、前記各バーが白色又は黒色であるかを判別する判別工程と、
前記判別された結果に基づいて、前記バーコードデータに含まれたデータバー部のバイナリコードをデコードするデコード工程と、
を含むことを特徴とするバーコード読取方法。
【請求項２０】
前記検出工程で検出された各センサ出力値のサンプリング間隔を所定数で細分化し、当該細分化された間隔位置に対応する近似補正値をセンサ出力値として導出する細分化工程を更に含むことを特徴とする請求項１９記載のバーコード読取方法。
【請求項２１】
前記センサ出力値の最小極大値と最大極小値とに基づいて、前記閾値を決定する閾値決定工程を更に含むことを特徴とする請求項１９又は２０に記載のバーコード読取方法。
【請求項２２】
請求項６〜１０の何れか一項に記載のバーコード生成方法で生成されたバーコードデータを読み取るコンピュータに、
前記バーコードデータが記録された記録媒体を、当該バーコードデータのマーカー部からストップバーにかけて所定の位置間隔毎に搬送する搬送機能と、
前記搬送された位置間隔毎に前記バーコードデータを検出する検出機能と、
前記検出された複数のセンサ出力値に基づいて、前記バーコードデータを形成する各バーの中央位置を特定する特定機能と、
前記特定された中央位置に対応する各バーのセンサ出力値と所定の閾値とを比較して、前記各バーが白色又は黒色であるかを判別する判別機能と、
前記判別された結果に基づいて、前記バーコードデータに含まれたデータバー部のバイナリコードをデコードするデコード機能と、
を実現させるバーコード読取プログラム。
【請求項２３】
前記コンピュータに、
前記検出機能により検出された各センサ出力値のサンプリング間隔を所定数で細分化し、当該細分化された間隔位置に対応する近似補正値をセンサ出力値として導出するデータ細分化機能を更に実現させることを特徴とする請求項２２記載のバーコード読取プログラム。
【請求項２４】
前記コンピュータに、
前記センサ出力値の最小極大値と最大極小値とに基づいて、前記閾値を決定する閾値決定機能を更に実現させることを特徴とする請求項２２又は２３に記載のバーコード読取プログラム。
【請求項２５】
請求項１６〜１８の何れか一項に記載のバーコード読取装置を備えた印字装置であって、
所定の位置間隔毎に搬送されるバーコードデータが記録された記録媒体に発券情報を印字する印字手段と、
前記搬送される記録媒体のバーコードデータに含まれるマーカー部を検出するマーカー部検出手段と、
前記検出されたマーカー部に基づいて、当該マーク部後方に前記発券情報を印字させる印字制御手段と、
を備えたことを特徴とする印字装置。
【請求項２６】
前記位置間隔は、前記印字手段の印字解像度と対応することを特徴とする請求項２５記載の印字装置。
【請求項２７】
前記印字制御手段は、前記検出されたマーク部から、次に検出されるマーク部までの領域に前記発券情報を印字させることを特徴とする請求項２５記載の印字装置。
【請求項２８】
前記発券情報と、当該発券情報に対応する前記バーコードデータのデータバー部に表された情報と、を対応付けて記憶する記憶手段を更に備えたことを特徴とする請求項２５〜２７の何れか一項に記載の印字装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード生成装置、バーコード生成方法、バーコード生成プログラム、バーコード読取装置、バーコード読取方法、バーコード読取プログラム及び印字装置に関する。
【背景技術】
【０００２】
従来より、商品コードの識別等の用途にバーコードが用いられており、このバーコードを読み取るために、バーコードリーダ等の情報読取装置が使用されている。
また、プリンタを備えたハンディターミナル等の携帯情報機器を用いて旅券発行等の発券業務を行う場合に、記録用紙の裏面にそれぞれ異なるバーコードが識別情報として予め印刷されることがあり、発券の記録管理等の用に供されている。従来、このような携帯情報機器においては、印刷用紙を検出する用紙検出センサを用いることでバーコードの読み取りを行う装置が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００１−１４２７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、発券業務に用いる場合においては、印刷前又は印刷後にバーコードの読み取りを改めて実施する必要があるため、煩わしく利便的でない。
また、特許文献１に記載の技術を用いることにより、携帯情報機器のみでバーコードの読み取りが可能となるが、プリンタとの併用に関しては記載されておらず、発券業務とバーコードの読み取りとを同時に行うことはできない。また、バーコード自体及びバーコードの読み取りに関しては具体的な記載がされておらず、例えば、記録用紙の紙送り時に発生する読み取り誤差等により、正確な情報を読み取れない可能性がある。
また、一の発券に用いられる記録用紙の記録領域は小領域であることが多く、そのスペースの関係から、従来の規格に準拠したバーコードでは十分なデータ量を表すことが困難である。例えば、ＩＴＦ（Interleaved Two of Five）規格に準拠したバーコードでは、５本のバーにより１のキャラクタを表すため、データ量が増加するに伴いバーの本数が５本単位で増加することになる。
【０００４】
本発明の課題は、短いバーコード長でより多くのデータ量を表すことが可能なバーコードを生成し、当該バーコードの読み取りに際して、読み取り精度を向上させることができるようにすることである。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は、一方向に読み取りスキャンされるバーコードデータを生成するバーコード生成装置であって、一又は複数の数値を入力する入力手段と、前記入力された数値のそれぞれをバイナリコードに変換する変換手段と、前記スキャン方向に沿って配列される、読み取り開始位置を示すマーカー部、前記変換された各バイナリコードに対応する固定幅を有するデータバーが前記スキャン方向にスペースバーを置いて配列されるデータバー部、このデータバー部と前記マーカー部との間に所定間隔を置いて配置され前記データバー部の先端位置を示すスタートバー、及び前記データバー部の後方に配置され当該データバー部の終端位置を示すストップバーを含むバーコードデータを生成するバーコードデータ生成手段と、を備えたことを特徴とする。
【０００６】
請求項６記載の発明は、一方向に読み取りスキャンされるバーコードデータを生成するバーコード生成方法であって、一又は複数の数値を入力する入力工程と、前記入力された数値のそれぞれをバイナリコードに変換する変換工程と、前記スキャン方向に沿って配列される、読み取り開始位置を示すマーカー部、前記変換された各バイナリコードに対応する固定幅を有するデータバーが前記スキャン方向にスペースバーを置いて配列されるデータバー部、このデータバー部と前記マーカー部との間に所定間隔を置いて配置され前記データバー部の先端位置を示すスタートバー、及び前記データバー部の後方に配置され前記データバー部の終端位置を示すストップバーを含むバーコードデータを生成するバーコードデータ生成工程と、を含むことを特徴とする。
【０００７】
請求項１１記載の発明は、一方向に読み取りスキャンされるバーコードデータを生成するコンピュータに、一又は複数の数値を入力する入力機能と、前記入力された数値のそれぞれをバイナリコードに変換する変換機能と、前記スキャン方向に沿って配列される、読み取り開始位置を示すマーカー部、前記変換された各バイナリコードに対応する固定幅を有するデータバーが前記スキャン方向にスペースバーを置いて配列されるデータバー部、このデータバー部と前記マーカー部との間に所定間隔を置いて配置され前記データバー部の先端位置を示すスタートバー、及び前記データバー部の後方に配置され前記データバー部の終端位置を示すストップバーを含むバーコードデータを生成するバーコードデータ生成機能と、を実現させることを特徴とする。
【０００８】
請求項１６記載の発明は、請求項６〜１０の何れか一項に記載のバーコード生成方法で生成されたバーコードデータを読み取るバーコード読取装置であって、前記バーコードデータが記録された記録媒体を、当該バーコードデータのマーカー部からストップバーにかけて所定の位置間隔毎に搬送する搬送手段と、前記搬送された位置間隔毎に前記バーコードデータを検出する検出手段と、前記検出されたセンサ出力値を記憶する記憶手段と、前記記憶された複数のセンサ出力値に基づいて、前記バーコードデータを形成する各バーの中央位置を特定する特定手段と、前記特定された中央位置に対応する各バーのセンサ出力値と所定の閾値とを比較して、前記各バーが白色又は黒色であるかを判別する判別手段と、前記判別された結果に基づいて、前記バーコードデータに含まれたデータバー部のバイナリコードをデコードするデコード手段と、を備えたことを特徴とする。
【０００９】
請求項１９記載の発明は、請求項６〜１０の何れか一項に記載のバーコード生成方法で生成されたバーコードデータを読み取るバーコード読取方法であって、前記バーコードデータが記録された記録媒体を、当該バーコードデータのマーカー部からストップバーにかけて所定の位置間隔毎に搬送する搬送工程と、前記搬送された位置間隔毎に前記バーコードデータを検出する検出工程と、前記検出された複数のセンサ出力値に基づいて、前記バーコードデータを形成する各バーの中央位置を特定する特定工程と、前記特定された中央位置に対応する各バーのセンサ出力値と所定の閾値とを比較して、前記各バーが白色又は黒色であるかを判別する判別工程と、前記判別された結果に基づいて、前記バーコードデータに含まれたデータバー部のバイナリコードをデコードするデコード工程と、を含むことを特徴とする。
【００１０】
請求項２２記載の発明は、請求項６〜１０の何れか一項に記載のバーコード生成方法で生成されたバーコードデータを読み取るコンピュータに、前記バーコードデータが記録された記録媒体を、当該バーコードデータのマーカー部からストップバーにかけて所定の位置間隔毎に搬送する搬送機能と、前記搬送された位置間隔毎に前記バーコードデータを検出する検出機能と、前記検出された複数のセンサ出力値に基づいて、前記バーコードデータを形成する各バーの中央位置を特定する特定機能と、前記特定された中央位置に対応する各バーのセンサ出力値と所定の閾値とを比較して、前記各バーが白色又は黒色であるかを判別する判別機能と、  前記判別された結果に基づいて、前記バーコードデータに含まれたデータバー部のバイナリコードをデコードするデコード機能と、を実現させることを特徴とする。
【００１１】
請求項２５記載の発明は、請求項１６〜１８の何れか一項に記載のバーコード読取装置を備えた印字装置であって、所定の位置間隔毎に搬送されるバーコードデータが記録された記録媒体に発券情報を印字する印字手段と、前記搬送される記録媒体のバーコードデータに含まれるマーカー部を検出するマーカー部検出手段と、前記検出されたマーカー部に基づいて、当該マーク部後方に前記発券情報を印字させる印字制御手段と、を備えたことを特徴とする。
【発明の効果】
【００１２】
請求項１〜１５に記載の発明によれば、一又は複数の数値を表すバイナリコードが、該バイナリコードに対応した固定幅からなるデータバーからなるデータバー部により表されるため、バイナリコードの桁数と対応したバー数で数値を表すことが可能となり、短いバーコード長でより多くのデータ量を表現することができる。
また、バーコードデータは、バーコード部の誤りを検出するためのパリティコードを含んでいるため、データバー部の整合性を検査することができる。
また、データバー部の幅が、マーカー部の幅より小さくなるようスペースバーが置かれるため、データバー部とマーカー部とを明確に区別することが可能となり、データバー部とマーカー部との混同を防止することができる。
【００１３】
請求項１６〜２４に記載の発明によれば、バーコードデータが記録された記録媒体を所定の位置間隔毎に搬送する際に、バーコードデータを検出し、当該バーコードデータを形成する各バーの中央位置に対応するセンサ出力値と所定の閾値とを比較して、各バーが白色パターン又は黒色パターンであるかを判別し、この判別された結果に基づいて、バーコードデータに含まれたデータバー部をデコードする。これにより、各バーの中央位置に対応するセンサ出力値に基づいて白色又は黒色パターンの判別を行うため、確実に判別することが可能であり、読み取り精度を向上させることができる。
また、センサ出力値のサンプリング間隔を所定数で細分化し、当該細分化された間隔位置に対応する近似補正値をセンサ出力値として導出するため、センサ出力値数を仮想的に増加させることが可能であり、センサ出力値の丸め誤差を小さくすることができる。
また、センサ出力値の最小極大値と最大極小値とに基づいて前記閾値を決定するため、読み取り精度に応じた値を白色又は黒色パターン判定の際の閾値とすることができる。
【００１４】
請求項２５〜２８に記載の発明によれば、記録媒体に記録されたマーカー部後方に発券情報の印字を行うとともに、バーコード読取装置により当該マーカー部後段に記録されたバーコード部の読み取りを行うことが可能であるため、バーコードの読み取りと発券情報の印字とを同時に行うことができる。
また、発券情報と、当該発券情報に対応するバーコードデータのデータバー部に表された情報と、を対応付けて記憶するため、発券の記録管理を行うことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態を図面を参照して説明する。ただし、本発明の範囲は、図示例に限定されないものとする。
【００１６】
まず、図１を参照して、本発明に用いるバーコードを生成するバーコード生成装置１０について説明する。
図１に示すように、バーコード生成装置１０は、ＣＰＵ（Central Processing Unit）１１、操作部１２、表示部１３、ＲＯＭ（Read Only Memory）１４、ＲＡＭ（Random Access Memory）１５、記憶部１６、印刷部１７等を有して構成され、各部はバス１８を介して接続されている。
【００１７】
ＣＰＵ１１は、ＲＡＭ１５の所定領域を作業領域として、ＲＯＭ１４及び／又は記憶部１６に予め記憶されている各種制御プログラムを実行しバーコード生成装置１０を構成する各部の動作を制御する。またＣＰＵ１１は、操作部１２を介して入力される制御信号に従いながらＲＯＭ１４及び／又は記憶部１６に記録されたアプリケーションプログラムを読出・実行してバーコード生成装置１０の各種機能を実現するようになっている。
【００１８】
また、ＣＰＵ１１は、後述する操作部１２を介してユーザにより入力される１又は複数の数値データをバイナリコードに変換し、この変換されたバイナリコードに基づいてバーコードデータを生成する。
【００１９】
操作部１２は、文字入力キー，数字入力キーその他各種機能に対応付けられたキーを備えたキーボード、マウス等を含み、利用者によるキー操作で押下されたキーに対応する押下信号をＣＰＵ１１に出力する。
【００２０】
表示部１３は、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）等から構成されており、ＣＰＵ１１から入力された表示データに基づいてディスプレイ上に画像を表示する。
【００２１】
ＲＯＭ１４は、バーコード生成装置１０に係るシステムプログラムやアプリケーションプログラム、本実施形態を実現するためのプログラムやデータ等を記憶する。
【００２２】
ＲＡＭ１５は、ＣＰＵ１１によって実行される各種プログラム及びこれらプログラムに関わるデータを一時的に記憶するワークエリアを形成する。
【００２３】
記憶部１６は、プログラムやデータ等が予め記録されている記録媒体（図示せず）を有しており、この記録媒体は磁気的、光学的記録媒体、若しくは半導体メモリで構成されている。この記録媒体は、記憶部１６に固定的に設けられるもの、若しくは着脱自在に装着するものであり、この記録媒体には、システムプログラム、当該システムに対応する各種処理プログラム、及び各種処理プログラムで処理されたデータ等を記録する。また、プログラムは、コンピュータが読み取り可能なプログラムコードの形態で格納され、ＣＰＵ１１は、当該プログラムコードに従った動作を逐次実行する。
【００２４】
印刷部１７は、ＣＰＵ１１の制御に応じて、バーコードデータを記録媒体である記録用紙Ｐに印字（記録）する。なお、印刷部１７は、サーマルプリンタ、レーザプリンタ、インクジェットプリンタ等の各種プリント方式に応じた部材により構成されているものとし、該プリント方式に応じた記録用紙が用いられるものとする。
【００２５】
次に、図２を参照して、本バーコード生成装置１０で実行されるバーコード生成処理について説明する。なお、図２は、バーコード生成装置１０のＣＰＵ１１とＲＯＭ１４及び／又は記憶部１６に記憶された所定のプログラムとの協働によるソフトウェア処理により実行される処理を示している。
【００２６】
まず、操作部１２を介して１方は複数の数値データが入力されると（ステップＳ１１）、この数値データがバイナリコードに変換され（ステップＳ１２）、該バイナリコードに基づいて固定幅を有するバーからなるデータバー部が、読み取り開始位置を示すマーカー部後方に生成される（ステップＳ１３）。
【００２７】
このデータバーの生成時において、データバー部の幅が、マーカーの幅以上となるような場合には、データバー部の幅がマーカーの幅より小さくなるよう所定のデータ群毎にスペースバーが挿入される。このように、データバー部の幅が、マーカー部の幅より小さくなるようスペースバーが置かれるため、データバー部とマーカー部とを明確に区別することが可能となり、データバー部とマーカー部との混同を防止することができる。
【００２８】
次いで、データバーの先端位置を示すスタートバーがデータバー部とマーカー部との間に所定間隔を置いて配置されるとともに、データバー部の後方に当該データバー部の終端位置を示すストップバーが配置される（ステップＳ１４）。
【００２９】
さらに、データバーの誤りを検出するためのパリティコードが導出され（ステップＳ１５）、この導出されたパリティコードを示すパリティバーが付加されて、バーコードデータが生成される（ステップＳ１６）。
【００３０】
次いで、記録用紙Ｐにバーコードデータが記録されて（ステップＳ１７）、本処理は終了する。
【００３１】
図３は、本バーコード生成処理により記録用紙Ｐに記録されたバーコードデータの一例を示す図である。
同図に示すように、マーカー部Ｍの後方にバーコードＢが記録されており、マーカー部ＭとバーコードＢとの間には、当該マーカー部ＭとバーコードＢとを区分けするためのマージンＭ１が設けられている。なお、マージンＭ１の幅は任意であるものとするが、バーコードＢに含まれるバーの幅より大きな値であることが好ましい。また、マーカー部Ｍの幅も任意であるものとするが、バーコードＢに含まれるバーの幅より大なる値であることが好ましい。この、記録用紙Ｐは、図中矢印で示した記録用紙搬送方向に搬送されるようになっている。即ち、マーカー部からストップバーにかけて一方向に搬送される。
【００３２】
バーコードＢは、スタートバーＢ１、データバーＢ２、スペースバーＢ３、データバーＢ４、スペースバーＢ５、データバーＢ６、スペースバーＢ７、データバーＢ８、パリティバーＢ９、ストップバーＢ１０を有して構成されている。なお、各バーは均一の固定幅で構成されているものとするが、その幅は任意に設定可能であるものとする。また、各バーにおいて、黒色は「０」を、白色は「１」を示している。なおここで、白色とは印刷部１７による記録により白色が記録用紙Ｐに着色された状態、或いは、記録用紙Ｐに記録が行われない無着色の状態を含めた意味で用いる。
【００３３】
スタートバーＢ１は「０１」で示されており、ストップバーＢ１０は「１０」で示されている。また、このスタートバーＢ１とストップバーＢ１０との間に、データバーＢ２「０１００」、スペースバーＢ３「１」、データバーＢ４「００００」、スペースバーＢ５「１」、データバーＢ６「０１１０」、スペースバーＢ７「１」、データバーＢ８「００１」、パリティバーＢ９「１」が配置されている。
【００３４】
本例では、数値データ「６４」及び「４９」がそれぞれ入力された場合を例示しており、データバーＢ２及びＢ４からなるデータバー部（以下、Ｄ１という）「０１００００００」により「６４」が、データバーＢ６及びＢ８からなるデータバー部（以下、Ｄ２という）「０１１０００１」により「４９」がそれぞれ示されている。また、各データバー部Ｄ１、Ｄ２は、マーカー部Ｍの幅より小さくなるよう、所定のデータ群毎にスペースバーＢ３及びＢ７が挿入されている。スペースバーＢ５は、データバー部Ｄ１とＤ２とを区別するために挿入されたスペースバーであって、入力される数値データの区切毎に挿入されるものとする。
【００３５】
パリティバーＢ９は、バーコードＢに含まれる「０」（黒色バー）の総数が偶数か奇数かを示すものであって、偶数の場合には「１」（白色バー）、奇数の場合には「０」（黒色バー）で表されている。図３においては、スタートバーＢ１からデータバーＢ８までのバーについてのパリティコードが導出された場合を示しているため、偶数となり「１」を示す白色バーとなっている。なお、本実施の形態では、スタートバーＢ１を含めることとしたが、これに限らず、スタートバーＢ１を除いたデータバーＢ２〜データバーＢ８の間のパリティコードに基づいてパリティバーＢ９を表すこととしてもよい。
【００３６】
本例では、１５ｂｉｔのデータを２３個のバーにより表したが、後述する用紙センサ３３の分解能が１．５ｍｍであるような場合、バーコード長は３４．５ｍｍとなる。これと比較し、従来のＩＴＦ規格に準拠したバーコードで同様のデータを表した場合には、７５．０ｍｍとなるため、本発明のバーコードは５０％以下の長さで同データ量を表すことが可能である。
【００３７】
以上のように、一又は複数の数値を表すバイナリコードが、該バイナリコードに対応した固定幅からなるデータバーからなるデータバー部により表されるため、バイナリコードの桁数と対応したバー数で数値を表すことが可能となり、短いバーコード長でより多くのデータ量を表現することができる。
また、バーコードデータは、バーコード部の誤りを検出するためのパリティコードを含んでいるため、データバー部の整合性を検査することができる。
また、データバー部の幅が、マーカー部の幅より小さくなるようスペースバーが置かれるため、データバー部とマーカー部とを明確に区別することが可能となり、誤検出を防止することができる。
【００３８】
次に、図４を参照して上述したバーコード生成装置１０で生成されたバーコードを読み取るバーコード読取装置を備えた印字装置２０について説明する。
【００３９】
図４に、印字装置２０の概略図を示す。
印字装置２０は、旅券等の発券業務に用いられる印字装置であって、図４に示すように、プラテンローラ３１、印字部３２、用紙センサ３３等を有して構成されている。記録用紙Ｐはロール状に巻かれて保持されており、この記録用紙Ｐの表面に発券業務に係る発券情報が記録されるものとする。また、記録用紙Ｐの裏面には、発券の記録管理等に用いるための情報が上述したバーコード（マーカーを含む）の態様で連続的に記録されているものとし、各バーコードはそれぞれ異なる情報を有して形成されているものとする。なお、本実施の形態では、記録用紙Ｐの裏面にバーコードが記録されているものとしたが、これに限らず、記録用紙Ｐの表面に記録されていてもよいものとする。
【００４０】
プラテンローラ３１は、ステッピングモータ３４（図５参照）等からなる搬送手段により図中矢印方向に回転運動されることにより、記録用紙Ｐを印字部３２の印字解像度である１ドットライン単位で搬送することが可能となっている。
【００４１】
印字部３２は、１ドットライン毎に搬送される記録用紙Ｐの表面に対し、所定の発券情報を記録（印字）することで発券を行う。この発券情報の記録開始位置は、後述する裏面用紙センサ３３ｂにより検出される記録用紙Ｐの裏面に存在するマーカーに基づいて決定され、該マーカー開始位置から次のマーカー開始位置迄に対応する記録用紙Ｐの表面の領域に、発券情報が記録されるようになっている。なお、本実施の形態では、印字部３２は、感熱により記録を行うサーマルヘッドとするが、これに限らないものとする。
【００４２】
用紙センサ３３は、表面用紙センサ３３ａと裏面用紙センサ３３ｂとから構成される。
表面用紙センサ３３ａは、フォトカプラ、フォトインタラプタ等の光センサであって、記録用紙Ｐの搬入を検出し、この検出信号を後述するセンサ読取値出力部２８を介してＣＰＵ２１（図５参照）に出力する。
【００４３】
裏面用紙センサ３３ｂは、表面用紙センサ３３ａと同様、フォトカプラ、フォトインタラプタ等の光センサであって、記録用紙Ｐの搬入を検出し、後述するセンサ読取値出力部２８を介してＣＰＵ２１（図５参照）に出力する。また、裏面用紙センサ３３ｂは、該裏面用紙センサ３３ｂ上を通過する記録用紙Ｐの裏面に記録されたマーカー及びバーコードの白黒パターンによる反射光を検出し、検出信号として後述するセンサ読取値出力部２８を介してＣＰＵ２１（図５参照）に出力する。
【００４４】
次に、図５を参照して、印字装置２０の機能的構成について説明する。
図５に示すように、印字装置２０は、ＣＰＵ２１、操作部２２、表示部２３、ＲＯＭ２４、ＲＡＭ２５、印字ラインバッファ２６、印字ライン制御部２７、センサ読取値出力部２８、プリンタ部２９等を有して構成されている。
【００４５】
ＣＰＵ２１は、ＲＡＭ２５の所定領域を作業領域として、ＲＯＭ２４に予め記憶されている各種制御プログラムを実行し印字装置２０を構成する各部の動作を制御する。またＣＰＵ２１は、操作部２２を介して入力される制御信号に従いながらＲＯＭ２４に記録されたアプリケーションプログラムを読出・実行して印字装置２０の各種機能を実現するようになっている。
【００４６】
また、ＣＰＵ２１は、プリンタ部２９の用紙センサ３３（裏面用紙センサ３３ｂ）から出力されるセンサ出力値に基づいて、記録用紙Ｐに記録されたマーカーが検出されたと判定すると、印字ライン制御部２７を制御して記録用紙Ｐの表面に発券情報の印字を行う。
【００４７】
また、ＣＰＵ２１は、プリンタ部２９の用紙センサ３３（裏面用紙センサ３３ｂ）から出力されるセンサ出力値をＲＡＭ２５に記憶させ、この記憶されたセンサ出力値に基づいてバーコードデータに含まれるデータバー部のデコードを実施する。そして、このデコードした値を、当該バーコードデータの読み取り時に印字した発券情報と対応付けてＲＡＭ２５に記憶する。
【００４８】
操作部２２は、文字入力キー，数字入力キーその他各種機能に対応付けられたキーを備えたキーボード等を含み、ユーザによるキー操作で押下されたキーに対応する押下信号をＣＰＵ２１に出力する。
【００４９】
表示部２３は、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）等から構成されており、ＣＰＵ２１から入力された表示データに基づいてディスプレイ上に画像を表示する。
【００５０】
ＲＯＭ２４は、印字装置２０にかかるシステムプログラムやアプリケーションプログラム、本実施形態を実現するためのプログラムやデータ等を記憶する。なお、記録用紙Ｐに記録されたバーコードが予め定められた規約に基づいて構成されている場合、該規約に関する設定データがＲＯＭ２４に記憶されるものとする。
【００５１】
ＲＡＭ２５は、ＣＰＵ２１によって実行される各種プログラム及びこれらプログラムに関わるデータを一時的に記憶するワークエリアを形成する。また、ＲＡＭ２５は、ＣＰＵ２１から出力される用紙センサ３３のセンサ出力値を記憶する。また、ＲＡＭ２５は、ＣＰＵから出力されるデータバー部のデコード値と、発券情報とを対応付けて記憶する。
【００５２】
印字ラインバッファ２６は、ＣＰＵ２１から出力される印字データを一時的に記憶し、印字ライン制御部２７の制御に応じて該印字データをプリンタ部２９に出力する。
【００５３】
印字ライン制御部２７は、印字ラインバッファ２６に記憶された印字データを、１ドットライン毎にプリンタ部２９に出力させ、ステッピングモータ３４の動作と同期させて印字部３２を発熱させることで１ドットラインの印字を行う。
【００５４】
また、印字ライン制御部２７は、プリンタ部２９による１ドットラインの印刷毎に、印字終了を旨する信号をＣＰＵ２１に出力する。
【００５５】
センサ読取値出力部２８は、プリンタ部２９の用紙センサ３３から出力される検出信号に対しＡ／Ｄ変換等の所定の信号処理を施した後、センサ出力値としてＣＰＵ２１に出力する。
【００５６】
プリンタ部２９は、上述した印字部３２、用紙センサ３３、ステッピングモータ３４を有しており、印字ライン制御部２７の制御に応じて記録用紙Ｐの搬送、印字を行う。
【００５７】
次に、図６を参照して、印字装置２０で実行されるバーコード読取処理について説明する。なお、図６は印字装置２０のＣＰＵ２１と、ＲＯＭ２４に記憶された所定のプログラムとの協働によるソフトウェア処理により実行される処理を示している。
【００５８】
まず、ユーザにより操作部２２を介して発券を行う旨の信号が入力されると、この信号に基づいて記録用紙Ｐが搬送されるとともに、用紙センサ３３（裏面用紙センサ３３ｂ）から出力されるセンサ出力値に基づいて、記録用紙Ｐ裏面のマーカー部が検出されるとともに、当該マーカー部後方から発券情報の印字が開始され（ステップＳ２１）、印字ラインインデックス（以下、インデックスという）ｎが０に初期化される（ステップＳ２２）。なお、このインデックスは、プリンタ部２９による１ドットライン毎の印字回数に対応している。
【００５９】
次いで、用紙センサ３３のセンサ出力値が取得され（ステップＳ２３）、このセンサ出力値がインデックスｎと対応付けてＲＡＭ２５に記憶される（ステップＳ２４）。
【００６０】
そして、印字部３２が制御されて記録用紙Ｐに１ライン印字（１ラインフィード）されて（ステップＳ２５）、印字ライン制御部２７から１ドットラインの印字終了を旨する信号が入力されると、インデックスｎに１がインクリメントされる（ステップＳ２６）。
【００６１】
続いて、発券情報の印字が全て終了したか否かが判定され、終了していないと判定された場合には（ステップＳ２７；Ｎｏ）、ステッピングモータ３４が制御されて記録用紙Ｐが１ドットライン搬送されるとともにステップＳ２３に再び戻る。
【００６２】
一方、ステップＳ２７において、発券情報の印字が全て終了したと判定された場合には（ステップＳ２７；Ｙｅｓ）、ステップＳ２８に移行し、ＲＡＭ２５に記憶されたセンサ出力値を細分化するデータ細分化処理が行われる（ステップＳ２８）。
【００６３】
ここで、図７を参照して、ステップＳ２８のデータ細分化処理について説明する。
本データ細分化処理では、各インデックス間のサンプリング間隔を細分化することで、ＲＡＭ２５に記憶された各センサ出力値間の値の近似補正値を導出し仮想的に増加させる。なお、本実施の形態では、各インデックス間のサンプリング間隔を１０分割することとしたが、これに限らず、任意の数で分割することとしてもよい。
【００６４】
本処理の前提として、ＲＡＭ２５に記憶された各センサ出力値が、インデックスの昇順で順次読み込まれるものとする。
まず、細分化処理の対象となる最初のインデックスｎ（例えば、ｎ＝０）と、次のインデックスｎ＋１（例えば、ｎ＝１）とにそれぞれ対応するセンサ出力値Ｖｎ、Vｎ＋１が取得され（ステップＳ２８１）、細分化の際の指標となる分割数ｉの値が１に初期化される（ステップＳ２８２）。
【００６５】
次いで、インデックスｎのセンサ出力値Ｖｎと、次のインデックスｎ＋１のセンサ出力値Ｖｎ＋１との差分値Ｄ（Ｄ＝（Ｖｎ＋１）−（Ｖｎ））が導出されて（ステップＳ２８３）、分割数ｉの値が１０を下回っているか否かが判定される（ステップＳ２８４）。
【００６６】
ここで、分割数ｉの値が１０を下回っていると判定された場合には（ステップＳ２８４；Ｙｅｓ）、この分割数ｉにおける近似補正値Ｖｉが、Ｖｉ＝Ｖｎ＋（Ｄ×ｉ／１０）の関係式に基づいて導出され（ステップＳ２８５）、この近似補正値Ｖｉと分割数ｉとが対応付けてＲＡＭ２５に記憶される（ステップＳ２８６）。なお、分割数ｉは、細分化対象となったインデックスと対応付けられているものとする。例えば、インデックス１、２間の近似補正値が導出された場合には、各インデックス値に１０が乗算されて１０、２０とされた後、このインデックス間における分割数ｉが１１〜１９のインデックスとされ、各分割数に対応する近似補正値がセンサ出力値として記憶されることとしてもよい。
【００６７】
次いで、分割数ｉに１がインクリメントされて（ステップＳ２８７）、ステップＳ２８４に再び戻る。
【００６８】
一方、ステップＳ２８４において、分割数ｉの値が１０以上と判定された場合には（ステップＳ２８４；Ｎｏ），ステップＳ２８８に移行して全てのインデックスにおいて細分化処理が完了したか否かが判定され、完了していないと判定された場合には（ステップＳ２８８；Ｎｏ）、次のインデックスｎ＋１が細分化対象の最初のインデックスｎに設定されて（ステップＳ２８９）、ステップＳ２８１に再び戻る。また、ステップＳ２８８において全てのインデックスについて完了したと判定された場合には（ステップＳ２８８；Ｙｅｓ）、本処理は終了し、図６のステップＳ２９に移行する。
【００６９】
このように、センサ出力値のサンプリング間隔を所定数で細分化し、当該細分化された間隔位置に対応する近似補正値をセンサ出力値として導出するため、センサ出力値数を仮想的に増加させることが可能であり、センサ出力値の丸め誤差を小さくすることができる。
【００７０】
図６に戻り、ＲＡＭ２５に記憶された全てのセンサ出力値に基づいて、当該センサ出力値の最小極大値と最大極小値とを特定する極値特定処理（ステップＳ２９）が行われる。
【００７１】
ここで、図８及び図９を参照して、ステップＳ２９の極値特定処理について説明する。
図８は、ＲＡＭ２５に記憶された全センサ出力値の一例を示す図である。
同図において、Ｖａは最小極大値を示しており、極大値（上に凸）となる変極点において最小の値を意味している。また、同様にＶｂは最大極小値を示しており、極小値（下に凸）となる変極点において、最大の値を意味している。なお、ここで極大値は、バーコードＢにおける白色領域を意味しており、極小値は黒色領域を意味している。
【００７２】
図９は、極値特定処理を説明するためのフローチャートである。
本処理の前提として、ＲＡＭ２５に記憶された各センサ出力値が、インデックスの昇順で順次読み込まれるものとする。なお、本処理におけるセンサ出力値は、上記データ細分化処理（ステップＳ２８）で細分化されたセンサ出力値を含むものとするが、これに限らず、細分化されたセンサ出力値を含めないこととしてもよい。
【００７３】
まず、ＲＡＭ２５に記憶されたセンサ出力値が読み込まれると（ステップＳ２９１１）、今回読み込まれたセンサ出力値と、前回読み込まれたセンサ出力値との差分が導出され、この差分値に基づいて値の増減傾向が判定される（ステップＳ２９１２）。
以下、本処理における一連の処理のうち、最小極大値が特定される際の処理の流れを説明する。
【００７４】
ステップＳ２９１２において、前回センサ出力値と比較し増加したと判定された場合には（ステップＳ２９１２；Ｕ）、減少カウントが所定の値（例えば、「５」）を上回っているか否かが判定され、所定値以下であると判定された場合には（ステップＳ２９１３；Ｎｏ）、減少カウントが０に初期化されるとともに（ステップＳ２９１４）、増加カウントが１インクリメントされ（ステップＳ２９１５）、該増加カウントが所定値を上回ったか否かが判定される（ステップＳ２９１６）。なお、ステップＳ２９１３及びステップＳ２９１６の判断の基準となる所定値は、任意に設定可能であるものとするが、サンプリングポイント数（細分化後の数を含む）を超えないことが好ましい。
【００７５】
ステップＳ２９１６において、増加カウントが所定値を上回っていると判定された場合には（ステップＳ２９１６；Ｙｅｓ）、現在のセンサ出力値が極大値としてＲＡＭ２５に記憶された後（ステップＳ２９１７）、ステップＳ２９１８に移行する。また、ステップＳ２９１６において、増加カウントが所定値を以下であると判定された場合には（ステップＳ２９１６；Ｎｏ）、直ちにステップＳ２９１８に移行する。
【００７６】
ステップＳ２９１８では、ＲＡＭ２５に記憶された全てのセンサ出力値について、本処理が終了したか否かが判定され、終了していないと判定された場合には（ステップＳ２９１８；Ｎｏ）、ステップＳ２９１１に戻り、次のセンサ出力値が読み込まれる。つまり、センサ出力値が増加傾向である場合には、ステップＳ２９１４〜ステップＳ２９１７が繰返し行われるようになっている。ここで、全てのセンサ出力値について、本処理が終了したと判定された場合には（ステップＳ２９１８；Ｙｅｓ）、図６のステップＳ３０へと移行する。
【００７７】
次いで、ステップＳ２９１２において、今回読み込まれたセンサ出力値が、前回読み込まれたセンサ出力値より減少したと判定された場合には（ステップＳ２９１２；Ｄ）、増加カウントが所定の値を上回っているか否かが判定される（ステップＳ２９１９）。ここで、所定値を以下であると判定された場合には（ステップＳ２９１９；Ｎｏ）、ステップＳ２９２３に移行する。
【００７８】
ステップＳ２９１９において、所定値を上回っていると判定された場合には（ステップＳ２９１９；Ｙｅｓ）、極大値と後述する最大最小値との差分値が所定の値を上回っているか否かが判定され、所定値以下であると判定された場合には（ステップＳ２９２０；Ｎｏ）、ステップＳ２９２３に移行する。また、極大値と最大最小値との差分値が所定値を上回っていると判定された場合には（ステップＳ２９２０；Ｙｅｓ）、この最大値と後述する最小極大値との差分値が比較され、極大値が最小極大値を上回っていると判定された場合に（ステップＳ２９２１：Ｎｏ）、ステップＳ２９２４に移行する。
【００７９】
一方、ステップＳ２９２１において、極大値が最小極大値を下回っていると判定された場合には（ステップＳ２９２１；Ｙｅｓ）、該極大値が最小極大値としてＲＡＭ２５に記憶された後（ステップＳ２９２２）、ステップＳ２９２３に移行する。
【００８０】
上述した処理が、全てのセンサ出力値において行われることにより、最小極大値が特定される。なお、ステップＳ２９２０において、極大値と最大極小値との比較を行ったが、例えば、極大値が最大極小値を上回ること（極大値＞最大極小値）等を条件に判定が行われるものとする。極大値が最大極小値の値を下回るような場合には、該極大値はノイズ等の検出誤差と考えられるため、このような、ステップＳ２９２０の判定を行うことにより、検出誤差を取り除くことができる。
【００８１】
次に、本処理における一連の処理のうち、最大極小値が特定される際の処理の流れを説明する。
【００８２】
ステップＳ２９１２において、前回センサ出力値と比較し減少したと判定された場合には（ステップＳ２９１２；Ｕ）、増加カウントが所定の値を上回っているか否かが判定され、所定値以下であると判定された場合には（ステップＳ２９１９；Ｎｏ）、増加カウントが０に初期化されるとともに（ステップＳ２９２３）、減少カウントが１インクリメントされ（ステップＳ２９２４）、該減少カウントが所定値を上回ったか否かが判定される（ステップＳ２９２５）。なお、ステップＳ２９１９において、増加カウントが所定値を上回ったと判定された場合には、ステップＳ２９２０に移行することは上述したとおりである。
【００８３】
ステップＳ２９２５において、減少カウントが所定値を上回っていると判定された場合には（ステップＳ２９２５；Ｙｅｓ）、現在のセンサ出力値が極小値としてＲＡＭ２５に記憶された後（ステップＳ２９２６）、ステップＳ２９２７に移行する。また、ステップＳ２９２５において、減少カウントが所定値を以下であると判定された場合には（ステップＳ２９２５；Ｎｏ）、直ちにステップＳ２９１８に移行する。つまり、センサ出力値が減少傾向である場合には、ステップＳ２９２３〜ステップＳ２９２６が繰返し行われるようになっている。
【００８４】
次いで、ステップＳ２９１２において、今回読み込まれたセンサ出力値が、前回読み込まれたセンサ出力値より増加したと判定された場合には（ステップＳ２９１２；Ｕ）、減少カウントが所定の値を上回っているか否かが判定され、所定値を上回っていると判定された場合には（ステップＳ２９１３；Ｙｅｓ）、ステップＳ２９２７に移行する。なお、ステップＳ２９１３において、減少カウントが所定値以下と判定された場合には（ステップＳ２９１３；Ｎｏ）、ステップＳ２９１４に移行することは上述したとおりである。
【００８５】
ステップＳ２９２７では、極小値と最小極大値との差分値が所定の値を上回っているか否かが判定され、所定値以下であると判定された場合には（ステップＳ２９２７；Ｎｏ）、ステップＳ２９１４に移行する。
【００８６】
また、ステップＳ２９２７において、極小値と最小極大値との差分値が所定値を上回っていると判定された場合には（ステップＳ２９２７；Ｙｅｓ）、極小値と最大極小値との差分値が比較され、極小値が最大極小値を下回っていると判定された場合には（ステップＳ２９２８：Ｎｏ）、ステップＳ２９１３に移行する。
【００８７】
一方、ステップＳ２９２８において、極小値が最大極小値以上であると判定された場合には（ステップＳ２９２８；Ｙｅｓ）、該極小値が最大極小値としてＲＡＭ２５に記憶された後（ステップＳ２９２９）、ステップＳ２９１３に移行する。
【００８８】
上述した処理が、全てのセンサ出力値において行われることにより、最大極小値が特定される。なお、ステップＳ２９２７において、極小値と最小極大値との比較を行ったが、例えば、極小値が最小極大値を上回ること（極小値＜最小極大値）等を条件に判定が行われるものとする。極小値が最小極大値の値を上回るような場合には、該極小値はノイズ等の検出誤差と考えられるため、このような、ステップＳ２９２７の判定を行うことにより、検出誤差を取り除くことができる。
【００８９】
ステップＳ２９１２において、今回読み込まれたセンサ出力値が、前回読み込まれたセンサ出力値と等しいと判定された場合には（ステップＳ２９１２；Ｅ）、ステップＳ２９１８に直ちに移行し、ＲＡＭ２５に記憶された全てのセンサ出力値について、本処理が終了したか否かが判定される。ここで、全てのセンサ出力値について、本処理が終了したと判定された場合には（ステップＳ２９１８；Ｙｅｓ）、図６のステップＳ３０へと移行する。
【００９０】
図６に戻り、ステップＳ３０では、ステップＳ２９で特定されたセンサ出力値の最小極大値と、最大極小値との平均値が、平均値＝（（最小極大値）＋（最大極小値））／２の関係式から導出され、この平均値がバーコードデータの白黒を判定する際の閾値として設定される（ステップＳ３０）。このように、センサ出力値の最小極大値と最大極小値とに基づいて前記閾値を決定するため、読み取り精度に応じた値を白色又は黒色パターン判定の際の閾値とすることができる。
【００９１】
次いで、ステップＳ２９においてＲＡＭ２５に記憶されたセンサ出力値の極小値のうち、最初に検出された極小値と、最後に検出された極小値とに対応するインデックスが読み出される（ステップＳ３１）。この最初に検出された極小値に対応するインデックス値（以下、Lｓという）は、図３に示したバーコードＢのスタートバー（黒色バー）の中央に位置する印字ライン数と対応している。また、最後に検出された極小値に対応するインデックス値（以下、Ｌｌという）は、ストップバー（黒色バー）の中央に位置するインデックス値と対応している。
【００９２】
続いて、ＬｓからＬｌまでに存在する実際に検出されたセンサ出力値の総数Ｔが、Ｔ＝Ｌｌ−Ｌｓの関係式に基づいて導出され、このＴの値に対しステップＳ２８で細分化した際の分割数「１０」が乗じられることで、近似補正値を含めたセンサ出力値の総数Ｔｂが導出される（ステップＳ３２）。なお、本処理では、ステップＳ２８において１０分割したことから１０が乗じられることになるが、他の値で分割した際には、その分割した値が乗じられることは言うまでもない。また、分割数に対応するよう、インデックス値に対し分割数が既に乗じられているような場合には、ＬｓとＬｌの差分を導出することで、近似補正値を含めたセンサ出力値の総数Ｔｂを直ちに導出することとしてもよい。
【００９３】
次いで、総数Ｔｂの値が、バーコードＢに含まれるバーの数Ｂｎで除算されることで、各バーの幅に対応するインデックス数Ｂｗが導出される（ステップＳ３３）。そして、このＢｗの値に基づいて、ＬｓからＬｌまでに含まれる各バーのパターンが、白色又は黒色であるかが判別される（ステップＳ３４）。
【００９４】
図１０を参照して、ステップＳ３４の白黒判別処理について説明する。
図１０は、Ｂｗの値が１２０であった場合の白黒判別を示した図である。
同図に示すように、スタートバーＢ１の中央位置に対応するインデックス「０」を判定開始位置として、当該開始位置から１２０毎に加算したインデックス値に対応する位置のパターンが白色又は黒色であるかが、ステップＳ３１で導出された閾値に基づいて判別される。
【００９５】
このスタートバーＢ１の中央位置に対応するインデックス「０」に対し、Ｂｗの値毎に加算されたインデックス値は、各バーの中央位置に対応しているため、各バーの白黒判定を確実に行うことが可能となる。
【００９６】
図６に戻り、ステップＳ３５で判定された結果からバーコードＢに含まれる各バーが表すバイナリ値が導出され、該バーコードＢに含まれるパリティバーが表すパリティコードに基づいて、当該バーコードＢのデータの整合性が検査される（ステップＳ３５）。ここで、正常であると判定された場合には（ステップＳ３５；Ｙｅｓ）、データバーのデコードが行われ（ステップＳ３６）、本処理は終了する。
【００９７】
一方、ステップＳ３５において、誤りが検出されたと判定された場合には（ステップＳ３５；Ｎｏ）、表示部２３にバーコードＢの異常を旨する画面が表示された後（ステップＳ３７）、データバー部のデコードが行われ（ステップＳ３６）、本処理は終了する。
【００９８】
なお、ステップＳ３６でデコードされたデータは、本処理で記録用紙Ｐに記録された発券情報と対応付けてＲＡＭ２５に記憶されるものとするが、これに限らず、不図示の記憶手段又は外部の記憶装置等に記憶されることとしてもよい。このように、発券情報と、当該発券情報に対応するバーコードデータのデータバー部に表された情報と、を対応付けて記憶するため、発券の記録管理を行うことができる。
【００９９】
以上のように、本実施形態によれば、バーコードデータが記録された記録媒体を所定の位置間隔毎に搬送する際に、バーコードデータを検出し、当該バーコードデータを形成する各バーの中央位置に対応するセンサ出力値と所定の閾値とを比較して、各バーが白色パターン又は黒色パターンであるかを判別し、この判別された結果に基づいて、バーコードデータに含まれたデータバー部をデコードする。これにより、各バーの中央位置に対応するセンサ出力値に基づいて白色又は黒色パターンの判別を行うため、確実に判別することが可能であり、読み取り精度を向上させることができる。
また、記録媒体に記録されたマーカー部後方に発券情報の印字を行うとともに、バーコード読取装置により当該マーカー部後段に記録されたバーコード部の読み取りを行うことが可能であるため、バーコードの読み取りと発券情報の印字とを同時に行うことができる。
また、発券情報と、当該発券情報に対応するバーコードデータのデータバー部に表された情報と、を対応付けて記憶するため、発券の記録管理を行うことができる。
【０１００】
上記実施形態における記述は、本発明の一例を示すものであり、これに限定されるものではない。本実施形態の細部構成及び詳細動作に関しては、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【図面の簡単な説明】
【０１０１】
【図１】バーコード生成装置の機能的構成を示すブロック図である。
【図２】バーコード生成処理を説明するためのフローチャートである。
【図３】バーコード生成処理により生成されたバーコードの一例を示す図である。
【図４】印字装置の概略構成を示す図である。
【図５】印字装置の機能的構成を示すブロック図である。
【図６】バーコード読取処理を説明するためのフローチャートである。
【図７】データ細分化処理を説明するためのフローチャートである。
【図８】センサ出力値の一例を示す図である。
【図９】極値特定処理を説明するためのフローチャートである。
【図１０】白黒判定処理を説明するための図である。
【符号の説明】
【０１０２】
１０  バーコード生成装置
１１  ＣＰＵ
１２  操作部
１３  表示部
１４  ＲＯＭ
１５  ＲＡＭ
１６  記憶部
１７  印刷部
１８  バス
２０  印字装置
２１  ＣＰＵ
２２  操作部
２３  表示部
２４  ＲＯＭ
２５  ＲＡＭ
２６  印字ラインバッファ
２７  印字ライン制御部
２８  センサ読取値出力部
２９  プリンタ部
３１  プラテンローラ
３２  印字部
３３  用紙センサ
３３ａ  表面用紙センサ
３３ｂ  裏面用紙センサ
３４  ステッピングモータ
Ｐ  記録用紙
【図１】
2006260396.tif 000003
【図２】
2006260396.tif 000004
【図３】
2006260396.tif 000005
【図４】
2006260396.tif 000006
【図５】
2006260396.tif 000007
【図６】
2006260396.tif 000008
【図７】
2006260396.tif 000009
【図８】
2006260396.tif 000010
【図９】
2006260396.tif 000011
【図１０】
2006260396.tif 000012
【手続補正書】
【提出日】平成18年7月6日(2006.7.6)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2006260396.tif 000013