(57)【特許請求の範囲】
【請求項１】
印刷媒体にバーコードの印刷を行う印刷装置であって、
チェックデジットの計算方法を指示するコマンドが供給されるコマンド入力手段と、
該チェックデジットの値を含む識別コードを上記印刷媒体に印刷する印刷手段と、
前記印刷手段によって印刷された前記識別コードを読み取る読み取り手段と、
読み取った前記識別コード情報を用い、上記コマンド指示に応じたチェックデジットの計算を行う計算手段と、
上記計算されたチェックデジットの値と前記識別コードに含まれたチェックデジットの値とを比較する比較手段と、
前記比較結果に応じて、前記識別コードが正常に印刷されたか否かを判定する判定手段と、
上記判定手段が正常に印刷されていないと判定した上記識別コードを、再印刷する処理手段と、
を備える印字装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷装置および印刷装置におけるチェックデジットの計算方法に関し、特に、バーコード等の識別コードのチェックデジット計算を行う印刷装置および印刷装置におけるチェックデジットの計算方法に関する。
【０００２】
【従来の技術】
従来、印刷装置としてのラベルプリンタにおいて用いられるバーコードのチェックデジット（Ｃｈｅｃｋ  Ｄｉｇｉｔ（Ｃ／Ｄ））の計算方法は、ある一定のアルゴリズムを持ち、いくつかの種類にパターン化されている。
【０００３】
ここで、チェックデジットとは、誤読を検査するための検査数字のことであり、これをバーコードデータに付加することにより、誤読率を減少させることができる。チェックデジットの計算方法には、モジュラス１０、モジュラス１１、ルーンズチェック等の方法がある。
【０００４】
例えば、モジュラス１０は、チェックデジットの桁も含めて、右の桁から左の桁に順番に桁番号を付け、例えば、偶数番号の桁にはウェイトの３を、３以上の奇数番号の桁には、ウェイトの１をそれぞれ乗じる。そして、各桁の乗算結果を足し合わせることにより、サム（Ｓｕｍ（総和））を求める。次に、この総和を１０（モジュラス）で割り、余りを求める。そして、余りを１０（モジュラス）から引いた数が、チェックデジットとなる。
【０００５】
従って、バーコードに予め含まれているチェックデジットの値と、上述したようにしてバーコードのデータから計算したチェックデジットの値が等しいか否かを判定することにより、バーコードが正しく印刷されているか否かを検査することができる。例えば、印刷されたバーコードを、バーコードリーダにより読み取り、読み取ったデータをパーソナルコンピュータに供給する。そして、パーソナルコンピュータ上で動作する所定のアプリケーションプログラムが、プリンタ装置から供給されたデータに基づいて、バーコードが正常に印刷されたか否かを判定する。
【０００６】
【発明が解決しようとする課題】
しかしながら、従来のプリンタでは、各バーコードのチェックデジット計算は、ある一定の規則の中で予め決められており、プリンタに接続されるホストコンピュータ側で行うタイプのものと、プリンタが内部で発生するものとがあり、システムとしての汎用性がない課題があった。
【０００７】
また、セキュリティーを向上させるために、Ｃ／Ｄの計算方法をプリンタ側で独自に設定するということができない。即ち、従来は、プリンタ側でＣ／Ｄの計算を行う場合には、予め設定された固定の計算処理となり、他の処理方法で計算を行うように設定することができない課題があった。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、プリンタ側でＣ／Ｄの計算方法を設定することができるようにして、セキュリティーを向上させるとともに、処理速度を上げることができるようにするものである。
【０００９】
【課題を解決するための手段】
本発明の印刷装置は、印刷媒体にバーコードの印刷を行う印刷装置であって、チェックデジットの計算方法を指示するコマンドが供給されるコマンド入力手段と、該チェックデジットの値を含む識別コードを上記印刷媒体に印刷する印刷手段と、前記印刷手段によって印刷された前記識別コードを読み取る読み取り手段と、読み取った前記識別コード情報を用い、上記コマンド指示に応じたチェックデジットの計算を行う計算手段と、上記計算されたチェックデジットの値と前記識別コードに含まれたチェックデジットの値とを比較する比較手段と、前記比較結果に応じて、前記識別コードが正常に印刷されたか否かを判定する判定手段と、上記判定手段が正常に印刷されていないと判定した上記識別コードを、再印刷する処理手段と、を備えて構成する。
【００１０】
【発明の実施の形態】
図１は、本発明が適用されるラベルプリンタの一実施の形態の構成例を示している。同図に示すように、ラベルプリンタ１００は、各部を制御する制御部１０と、ラベル１に印刷を行う印刷ヘッド５と、制御部１０の制御により駆動されるステッピングモータ（以下では、適宜単にモータと記載する）７と、ベルト８を介して伝達されるモータ７の回転力によって回転し、後述する供給軸４にセットされたラベル連続体３を構成する台紙２及び台紙２に剥離可能に貼付されたラベル１を搬送するとともに、ラベル１を印刷ヘッド５に押圧するプラテンローラ６と、ラベル連続体３を回転自在に支持する供給軸４と、所定の光を出射する発光部と、発光部から出射された光を受光し、受光した光の強度（単位時間当たりの受光量）に対応する電気信号を出力する受光部とからなり、台紙２及びラベル１を挟むように発光部と受光部を配し、ラベル１とギャップ（隣接する２つのラベル１の間の台紙２のみの部分）を受光部の受光量に基づいて検出する位置検出センサ（以下では、適宜単にセンサという）９と、バーコードのデータ（バーコードによって表される情報）を読み取るバーコードリーダ２１とを備えている。
【００１１】
図２は、図１の実施の形態の電気的な構成例を示すブロック図である。同図に示すように、制御部１０は、所定の制御プログラムを記憶するＲＯＭ（ｒｅａｄｏｎｌｙ  ｍｅｍｏｒｙ）１２と、ＲＯＭ１２に記憶されている制御プログラムに従って動作し、各部を制御するＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１１と、ＣＰＵ１１が動作する上で必要となる各種データを記憶するＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１３と、ステッピングモータ７にパルス信号を供給し、ステッピングモータ７を回転させるモータ制御部１４と、ＣＰＵ１１から供給される印刷すべき文字、図形、及びバーコードなどの印刷データに対応する制御信号を生成し、印刷ヘッド５に供給し、印刷動作を行わせる印刷制御部１５と、ＣＰＵ１１の制御下、センサ９の発光部を制御し、光を出射させるとともに、受光部から出力される電気信号を受け取り、ディジタルのデータに変換してＣＰＵ１１に供給するセンサ制御部１６と、外部インタフェース１７と、インタフェース２０とを備えている。そして、後述する座標値や縦横サイズ等の各種データを入力するための入力部１８と、入力部１８からの入力データや、各種情報を表示するためのモニタ１９とがインタフェース２０を介して接続されている。入力部１８より入力された入力データは、インタフェース２０を介してＣＰＵ１１に供給され、モニタ１９に表示される各種情報に対応する表示データは、インタフェース２０を介してＣＰＵ１１より供給されるようになされている。また、外部インタフェース１７を介して、外部に接続された機器との間で各種データの送受信を行うことができるようになされている。
【００１２】
さらに、本実施の形態は、バーコードのデータを読み取るバーコードリーダ２１と、バーコードリーダ２１を制御し、バーコードリーダ２１によって読み取られたバーコードのデータをＣＰＵ１１に供給するバーコードリーダ制御部２２とを備えている。
【００１３】
本実施の形態では、予めチェックデジット（Ｃ／Ｄ）（誤読を検査するための検査数字）が付加されたバーコードを印刷し、印刷したバーコードを一旦読み取り、読み取ったバーコードのデータから計算によって求めたチェックデジットの値と、予め付加されているチェックデジットの値とを比較することにより、バーコードが正常に印刷されたか否かを判定し、正常に印刷されていない場合、エラーと判断し、同一のバーコードを再度印刷するようにしている。
【００１４】
バーコードのチェックデジット（Ｃ／Ｄ）の計算方法は、大別すると７種類（モジュラス７（セブンチェック）、モジュラス９（９チェック）、モジュラス１０、モジュラス１１、モジュラス４３、モジュラス４０３、ルーンズチェック（モジュラス１０の一種））あり、それぞれモジュラス（ｍｄ）を指定する変数、及びウェイト（ｗｔ）を指定する変数の値を任意に設定することができる。
【００１５】
ウェイトのかけ方や、ＤＲ（Ｄｉｖｉｄｅ  Ｒｅｍａｉｎｓ（割った余り））、ＤＳＲ（Ｄｉｖｉｄｅ  Ｓｕｐｐｌｙ  Ｒｅｍａｉｎｓ（割った余りの補数））はシステムに応じて設定できる。
【００１６】
本実施の形態では、ホスト側（図３のパーソナルコンピュータ（以下では適宜パソコンと略記する）３１）からラベルプリンタ１００側に、チェックデジット（Ｃ／Ｄ）の計算方法を指定するためのコマンドを送り、ラベルプリンタ１００側で指定した計算方法でＣ／Ｄ計算処理を行わせるようにする。
【００１７】
このために、例えば、図３に示すように、ラベルプリンタ１００の制御部１０を構成する外部インタフェース１７に、パーソナルコンピュータ３１をケーブル４１を介して接続する。そして、パソコン３１に接続されたキーボード３２を操作して、後述するようなフォーマットのコマンドを入力し、入力したコマンドをラベルプリンタ１００の制御部１０にケーブル４１を介して送信する。
【００１８】
図３は、ラベルプリンタ１００と、パソコン３１とがケーブル４１を介して接続された様子を示しており、ラベルプリンタ１００を構成する制御部１０とバーコードリーダ２１以外の構成要素についての図示は省略している。
【００１９】
次に、パソコン３１からラベルプリンタ１００に送られるコマンドのフォーマットの例について説明する。例えば、コマンドのフォーマットを次のように設定する。
【００２０】
＜１Ｂ＞＜２１＞＜４Ｃ＞
，ｓ，ａａａ，ｂｂｂ，ｃｃｃ，ｄｄｄ，ｅｅｅ，ｆｆｆ，ｇｇｇ，ｈｈｈ，ｉｉｉ，ｊｊｊ，ｋｋｋ，ｌｌｌ，ｍｍｍ，ｎｎｎ，ｏｏｏ，ｐｐｐ
【００２１】
ここで、＜１Ｂ＞はエスケープ（ＥＳＣ）を１６進数で表したコードであり、ラベルプリンタ１００にコマンドであることを認識させるためのものである。それに続く＜２１（「！」）＞＜４Ｃ（「Ｌ」）＞は、このコマンドがチェックデジット設定認識コマンドであることを認識させるためのコマンド名を表す１６進数で表したコードである。
【００２２】
従って、ユーザは、パソコン３１のキーボード３２を操作して、「ＥＳＣ」キー（コードは１Ｂ（１０進数表記の場合２７））、「！」キー（コードは２１（１０進数表記の場合３３））、「Ｌ」キー（コードは４Ｃ（１０進数表記の場合７６））をこの順に入力し、次に、パラメータｓ乃至ｐｐｐを入力することにより、チェックデジット設定認識コマンド（以下では適宜単に、コマンドと略記する）を入力することができる。
【００２３】
このコマンドは、上述したように、チェックデジットの計算方法を指定するためのコマンドである。パラメータｓには、バーコードの種類が設定され、パラメータａａａ乃至ｐｐｐには、それぞれ情報データが設定される。
【００２４】
バーコードの種類を表すパラメータｓの値とバーコードの種類とは、次のように対応している。
【００２５】
ｓの値が０のときＮＷ−７
ｓの値が１のときＣＯＤＥ−３９
ｓの値が２のときＩＮＴＥＲＬＥＡＶＥＤ  ２ｏｆ５
ｓの値が３のときＪＡＮ−１３／ＥＡＮ−１３／ＵＰＣ−Ａ
ｓの値が４のときＪＡＮ−８／ＥＡＮ−８
ｓの値が５のときＩＮＤＵＳＴＲＩＡＬ  ２ｏｆ５
ｓの値が６のときＭＡＴＲＩＸ  ２ｏｆ５
ｓの値が７のとき短縮  ＮＷ−７
ｓの値が８のときＵＣＣ−１２８／ＥＡＮ−１２８
ｓの値が９のときＣＯＤＥ−１２８（Ｖｅｒ．２）
ｓの値が１０のときＭＳＩ
ｓの値が１１のときＣＯＤＥ−１１
ｓの値が１２のときＣＯＤＥ−９３
ｓの値が１３のときＣＯＤＥ−１２８（Ｖｅｒ．１）
ｓの値が１４のときＵＰＣ−Ｅ
ｓの値が１５のときＢＯＯＫＬＡＮＤ
ｓの値が１６のときポストコード
ｓの値が１７のときＣＴＧ  Ｃｏｄｅ
ｓの値が１８のときカスタマバーコード（郵便物の印字）
ｓの値が１９のときＵＰＣ−Ａ
ｓの値が２０のときＣＰＣ４
ｓの値が２１のときカスタマコード（韓国版）
ｓの値が２２のとき物流コード
【００２６】
次に、パラメータａａａ乃至ｈｈｈについて説明する。パラメータｉｉｉ乃至ｐｐｐは、パラメータａａａ乃至ｈｈｈと同様の指定を行うためのパラメータである。従って、ここではパラメータａａａ乃至ｈｈｈのみについて説明し、パラメータｉｉｉ乃至ｐｐｐについての説明は適宜省略する。このように、同様の指定を行うパラメータをそれぞれ２つずつ指定可能とされているのは、２ブロック設定バーコード（２列になったバーコード）があるからである。
【００２７】
パラメータａａａには、チェックデジット（Ｃ／Ｄ）の有無、即ち、Ｃ／Ｄの計算を行うか否かを指定するための情報データがセットされる。例えば、パラメータａａａに値１をセットすると、ラベルプリンタ１００側でチェックデジット処理（Ｃ／Ｄの値を計算する処理）が行われる。一方、パラメータａａａに値０をセットすると、ラベルプリンタ１００側でチェックデジット処理が行われない。従って、パラメータａａａに値０がセットされた場合、パラメータｂｂｂ以降は無効となる。
【００２８】
パラメータｂｂｂには、Ｃ／Ｄの計算方法を指示するための情報データ（０乃至７）がセットされる。いま、ｄ１，ｄ２，．．．，ｄｎを受信データとし、Ｋｎ，Ｋ（ｎ−１），．．．，Ｋ１を、桁数（右の桁から左の桁へ順に付けた桁番号）とし、Ｅｎ，Ｅ（ｎ−１），．．．，Ｅ１を、桁数（右の桁から左の桁へ順に付けた桁番号）÷ｗｔ（ウェイト）の余り（Ｐ）（余り（Ｐ）がゼロ（０）のとき、ｗｔを使用する）とし、Ｔ１，Ｔ２，．．．，Ｔｎを桁数（左の桁から右の桁へ順に付けた桁番号）÷ｗｔの余り（余りがゼロ（０）のとき、ｗｔを使用する）、Ａ１，Ａ２，．．．，Ａｎを桁数（左の桁から右の桁へ順に付けた桁番号）とする。
【００２９】
パラメータｂｂｂに値０がセットされた場合、Ｃ／Ｄ値受信処理を行う（受信データにＣ／Ｄが含まれていると判断して何もしない）。
【００３０】
パラメータｂｂｂに値１がセットされた場合、Ｃ／Ｄの桁を含め、右の桁から左の桁へ順に桁番号を設定し、次の計算式で余りＰが計算される。
（奇数桁データの総和＋（偶数桁データの総和×ｗｔ））÷ｍｄ（モジュラス）  余りＰ
【００３１】
パラメータｂｂｂに値２がセットされた場合、次の計算式で余りＰが計算される。
（ｄ１×（ｗｔ＋Ｋ（ｎ−１））＋ｄ２×（ｗｔ＋Ｋ（ｎ−２））＋，．．．，＋ｄ（ｎ−１）×（ｗｔ＋Ｋ１）＋ｄｎ×ｗｔ）÷ｍｄ  余りＰ
【００３２】
パラメータｂｂｂに値３がセットされた場合、次の計算式で余りＰが計算される。
（ｄ１×Ｅｎ＋ｄ２×Ｅ（ｎ−１），．．．，＋ｄ（ｎ−１）×Ｅ２＋ｄｎ×Ｅ１）÷ｍｄ  余りＰ
【００３３】
パラメータｂｂｂに値４がセットされた場合、次の計算式で余りＰが計算される。
（ｄ１×ｗｔ＋ｄ２×ｗｔ，．．．，＋ｄ（ｎ−１）×ｗｔ＋ｄｎ×ｗｔ）÷ｍｄ  余りＰ
【００３４】
パラメータｂｂｂに値５がセットされた場合、次の計算式で余りＰが計算される。
（ｄ１×Ｔ１＋ｄ２×Ｔ２＋，．．．，＋ｄ（ｎ−１）×Ｔ（ｎ−１）＋ｄｎ×Ｔｎ）÷ｍｄ  余りＰ
【００３５】
パラメータｂｂｂに値６がセットされた場合、次の計算式で余りＰが計算される。
（ｄ１（スタートコード）＋ｄ２×Ａ１，．．．，＋ｄ（ｎ−１）×Ａ（ｎ−２）＋ｄｎ×Ａ（ｎ−１））÷ｍｄ  余りＰ
【００３６】
パラメータｂｂｂに値７がセットされた場合、次の計算式で余りＰが計算される。
（ｄ１＋ｄ２＋，．．．，＋ｄ（ｎ−１）＋ｄｎ）÷ｍｄ  余りＰ
【００３７】
パラメータｃｃｃには、モジュラス（ｍｄ）の値（１，２，３，．．．，２５５（１以上２５５以下の所定の整数））がセットされる。
【００３８】
パラメータｄｄｄには、ウェイト（ｗｔ）の値（１，２，３，．．．，２５５（１以上２５５以下の所定の整数））がセットされる。
【００３９】
パラメータｅｅｅには、補正の有無を指示するための情報データがセットされる。例えば、パラメータｅｅｅに値０がセットされた場合、Ｃ／Ｄの値には、ｍｄから上述した計算方法で算出された余りＰを引いた値（補正された値）がセットされる。即ち、次式によりＣ／Ｄの値が計算される。
Ｃ／Ｄの値  ＝  ｍｄ−Ｐ
【００４０】
一方、パラメータｅｅｅに値１がセットされた場合、Ｃ／Ｄの値には、上述した計算方法で算出された余りがそのままセットされる。即ち、次式によりＣ／Ｄの値が計算される。
Ｃ／Ｄの値  ＝  Ｐ
【００４１】
パラメータｆｆｆには、Ｃ／Ｄの値１０の変換方法を指定するための情報データがセットされる。パラメータｇｇｇには、Ｃ／Ｄの値１１の変換方法を指定するための情報データがセットされる。パラメータｈｈｈには、余りの値０の変換方法を指定するための情報データがセットされる。
【００４２】
パラメータｅｅｅに値０がセットされた場合において、パラメータｆｆｆに値０がセットされると、Ｃ／Ｄの値１０は０に変換される。一方、パラメータｆｆｆに値１がセットされると、Ｃ／Ｄの値１０は１に変換される。ここで、Ｃ／Ｄの値は、パラメータｂｂｂに値１又は２がセットされたとき（モジュラス１０又はモジュラス１１のとき）に行われる計算方法によって算出されたものである。
【００４３】
パラメータｅｅｅに値０がセットされた場合において、パラメータｇｇｇに値０がセットされると、Ｃ／Ｄの値１１は０に変換される。一方、パラメータｇｇｇに値１がセットされると、Ｃ／Ｄの値１１は１に変換される。ここで、Ｃ／Ｄの値は、パラメータｂｂｂに値２がセットされたとき（モジュラス１１のとき）に行われる計算方法によって算出されたものである。
【００４４】
パラメータｅｅｅに値０がセットされた場合において、パラメータｈｈｈに値０がセットされると、余りＰの値が０のとき、Ｃ／Ｄの値は０とされる。一方、余りＰの値が１のとき、Ｃ／Ｄの値はそのままとされる。
【００４５】
パラメータｅｅｅに値１がセットされた場合において、パラメータｆｆｆに値０がセットされると、Ｃ／Ｄの値１０は０に変換される。一方、パラメータｆｆｆに値１がセットされると、Ｃ／Ｄの値１０は１に変換される。ここで、Ｃ／Ｄの値は、パラメータｂｂｂに値２がセットされたとき（モジュラス１１のとき）に行われる計算方法によって算出されたものである。
【００４６】
パラメータｅｅｅに値１がセットされた場合において、パラメータｇｇｇに値０がセットされると、Ｃ／Ｄの値０は０に変換される。一方、パラメータｇｇｇに値１がセットされると、Ｃ／Ｄの値０は１に変換される。ここで、Ｃ／Ｄの値は、パラメータｂｂｂに値２がセットされたとき（モジュラス１１のとき）に行われる計算方法によって算出されたものである。
【００４７】
パラメータｅｅｅに値１がセットされた場合において、パラメータｈｈｈに値０又は１をセットしたときの計算方法は未指定である。即ち、パラメータｈｈｈは予備とされる。
【００４８】
次に、パラメータａａａ乃至ｐｐｐに設定される値の具体例について説明する。例えば、コマンドのパラメータｓで指定されるバーコードの種類と、パラメータａａａ乃至ｐｐｐの組み合わせは、以下のようになる。
【００４９】
例えば、パラメータｓの値が０で、バーコード種類がＮＷ−７の場合、ａａａ＝０、ｂｂｂ＝１、ｃｃｃ＝１０、ｄｄｄ＝３、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝１、ｋｋｋ＝１０、ｌｌｌ＝３、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００５０】
例えば、パラメータｓの値が１で、バーコード種類がＣＯＤＥ−３９の場合、ａａａ＝０、ｂｂｂ＝４、ｃｃｃ＝４３、ｄｄｄ＝１、ｅｅｅ＝１、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００５１】
例えば、パラメータｓの値が２で、バーコード種類がＩＮＴＥＲＬＥＡＶＥＤ２ｏｆ５の場合、ａａａ＝０、ｂｂｂ＝１、ｃｃｃ＝１０、ｄｄｄ＝３、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００５２】
例えば、パラメータｓの値が３で、バーコード種類がＪＡＮ−１３／ＥＡＮ−１３／ＵＰＣ−Ａの場合、ａａａ＝１、ｂｂｂ＝１、ｃｃｃ＝１０、ｄｄｄ＝３、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。ただし、受信データが１１桁のとき、Ｃ／Ｄを内部発生する（先頭データに０を付加して１２桁にする）。受信データが１２桁のとき、Ｃ／Ｄを内部発生する。また、受信データが１３桁のとき、パラメータｂｂｂの値を０とする（Ｃ／Ｄ付加受信）。
【００５３】
例えば、パラメータｓの値が４で、バーコード種類がＪＡＮ−８／ＥＡＮ−８の場合、ａａａ＝１、ｂｂｂ＝１、ｃｃｃ＝１０、ｄｄｄ＝３、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。ただし、受信データが７桁のとき、Ｃ／Ｄを内部発生する。また、受信データが８桁のとき、パラメータｂｂｂの値を０とする（Ｃ／Ｄ付加受信）。
【００５４】
例えば、パラメータｓの値が５で、バーコード種類がＩＮＤＵＳＴＲＩＡＬ  ２ｏｆ５の場合、ａａａ＝０、ｂｂｂ＝１、ｃｃｃ＝１０、ｄｄｄ＝３、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００５５】
例えば、パラメータｓの値が６で、バーコード種類がＭＡＴＲＩＸ  ２ｏｆ５の場合、ａａａ＝０、ｂｂｂ＝１、ｃｃｃ＝１０、ｄｄｄ＝３、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００５６】
例えば、パラメータｓの値が７で、バーコード種類がサトック・短縮  ＮＷ−７の場合、ａａａ＝０、ｂｂｂ＝１、ｃｃｃ＝１０、ｄｄｄ＝３、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝１、ｋｋｋ＝１０、ｌｌｌ＝３、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００５７】
例えば、パラメータｓの値が８で、バーコード種類がＵＣＣ−１２８／ＥＡＮ−１２８の場合、ａａａ＝１、ｂｂｂ＝１、ｃｃｃ＝１０、ｄｄｄ＝３、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝１、ｊｊｊ＝６、ｋｋｋ＝１０３、ｌｌｌ＝１０３、ｍｍｍ＝１、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００５８】
例えば、パラメータｓの値が９で、バーコード種類がＣＯＤＥ−１２８（Ｖｅｒ．２）の場合、ａａａ＝１、ｂｂｂ＝６、ｃｃｃ＝１０３、ｄｄｄ＝１０３、ｅｅｅ＝１、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００５９】
例えば、パラメータｓの値が１０で、バーコード種類がＭＳＩの場合、ａａａ＝０、ｂｂｂ＝２、ｃｃｃ＝１１、ｄｄｄ＝２、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝１、ｋｋｋ＝１０、ｌｌｌ＝３、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００６０】
例えば、パラメータｓの値が１１で、バーコード種類がＣＯＤＥ−１１の場合、ａａａ＝０、ｂｂｂ＝３、ｃｃｃ＝１１、ｄｄｄ＝１０、ｅｅｅ＝１、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝３、ｋｋｋ＝１１、ｌｌｌ＝９、ｍｍｍ＝１、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００６１】
例えば、パラメータｓの値が１２で、バーコード種類がＣＯＤＥ−９３の場合、ａａａ＝１、ｂｂｂ＝３、ｃｃｃ＝４７、ｄｄｄ＝２０、ｅｅｅ＝１、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝１、ｊｊｊ＝３、ｋｋｋ＝４７、ｌｌｌ＝１５、ｍｍｍ＝１、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００６２】
例えば、パラメータｓの値が１３で、バーコード種類がＣＯＤＥ−１２８（Ｖｅｒ．１）の場合、ａａａ＝１、ｂｂｂ＝６、ｃｃｃ＝１０３、ｄｄｄ＝１０３、ｅｅｅ＝１、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００６３】
例えば、パラメータｓの値が１４で、バーコード種類がＵＰＣ−Ｅの場合、ａａａ＝１、ｂｂｂ＝１、ｃｃｃ＝１０、ｄｄｄ＝３、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００６４】
例えば、パラメータｓの値が１５で、バーコード種類がＢＯＯＫＬＡＮＤの場合、ａａａ＝０、ｂｂｂ＝０、ｃｃｃ＝０、ｄｄｄ＝０、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００６５】
例えば、パラメータｓの値が１６で、バーコード種類がポストコードの場合、ａａａ＝１、ｂｂｂ＝７、ｃｃｃ＝１０、ｄｄｄ＝０、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００６６】
例えば、パラメータｓの値が１７で、バーコード種類がＣＴＧ  Ｃｏｄｅの場合、ａａａ＝０、ｂｂｂ＝０、ｃｃｃ＝０、ｄｄｄ＝０、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００６７】
例えば、パラメータｓの値が１８で、バーコード種類がカスタマバーコード（郵便物の印字）の場合、ａａａ＝１、ｂｂｂ＝７、ｃｃｃ＝１９、ｄｄｄ＝０、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００６８】
例えば、パラメータｓの値が１９で、バーコード種類がＵＰＣ−Ａの場合、ａａａ＝１、ｂｂｂ＝１、ｃｃｃ＝１０、ｄｄｄ＝３、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００６９】
例えば、パラメータｓの値が２０で、バーコード種類がＣＰＣ４の場合、ａａａ＝０、ｂｂｂ＝０、ｃｃｃ＝０、ｄｄｄ＝０、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００７０】
例えば、パラメータｓの値が２１で、バーコード種類がカスタマーコード（韓国版）の場合、ａａａ＝１、ｂｂｂ＝７、ｃｃｃ＝１０、ｄｄｄ＝０、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００７１】
例えば、パラメータｓの値が２２で、バーコード種類が物流コードの場合、ａａａ＝０、ｂｂｂ＝０、ｃｃｃ＝０、ｄｄｄ＝０、ｅｅｅ＝０、ｆｆｆ＝０、ｇｇｇ＝０、ｈｈｈ＝０、ｉｉｉ＝０、ｊｊｊ＝０、ｋｋｋ＝０、ｌｌｌ＝０、ｍｍｍ＝０、ｎｎｎ＝０、ｏｏｏ＝０、ｐｐｐ＝０となる。
【００７２】
また、ａａａ乃至ｐｐｐの全てを入力せずに、変更したいパラメータのみを指定し、他のパラメータはカンマ「，」のみ入力するようにすると、指定したパラメータのみを変更するようにすることができる。
【００７３】
このような情報データ（上述したような所定のバーコードの種類に対応するパラメータｓに対応して指定されたチェックデジットの計算方法等を設定するためのパラメータａａａ乃至ｐｐｐ）を含む上記フォーマットのコマンドを、パソコン３１のキーボード３２を操作して入力し、ケーブル４１を介してラベルプリンタ１００の制御部１０に送信すると、ラベルプリンタ１００の制御部１０は、印刷したバーコードの全桁のデータ（チェックデジットを含む）を読み出し、読み出したデータに基づいて、ケーブル４１を介して受信した上記コマンドを構成する各パラメータによって指定された計算方法で、上記バーコードのチェックデジット（Ｃ／Ｄ）を算出する。
【００７４】
次に、制御部１０は、計算によって算出したＣ／Ｄの値と、バーコードに予め付加されたＣ／Ｄの値とを比較し、計算によって算出されたＣ／Ｄの値とバーコードに予め付加されたＣ／Ｄの値とが一致した場合、バーコードは正常に印刷されたとみなす。一方、計算によって算出されたＣ／Ｄの値とバーコードに予め付加されたＣ／Ｄの値とが一致しない場合、バーコードは正常に印刷されていないとみなす。
【００７５】
そして、バーコードが正常に印刷されていない場合、制御部１０は、印刷制御部１５に対して、上記正常に印刷されていないとみなされたバーコードを再度印刷するように指令する。この指令を受けた印刷制御部１５は、印刷ヘッド５を制御し、再印刷が指示されたバーコードを再度ラベルに印刷する。
【００７６】
図４は、ラベルプリンタ１００側の処理手順を説明するためのフローチャートである。以下、図４のフローチャートを参照して、ラベルプリンタ１００の処理手順について詳細に説明する。
【００７７】
まず最初に、ステップＳ１において、ＣＰＵ１１は、外部インタフェース１７を介して、パソコン３１からケーブル４１を介して送信されてきたコマンドを受信する。次に、ステップＳ２において、ＣＰＵ１１は、外部インタフェース１７を介して受信したコマンドを解析し、バーコードの種類に対応したチェックデジットの計算方法を決定する。
【００７８】
次に、ステップＳ３において、ＣＰＵ１１は、バーコードリーダ制御部２２に対して、バーコードのデータを読み取るように指令する。この指令を受けたバーコードリーダ制御部２２は、バーコードリーダ２１を制御し、バーコードのデータを読み取り、読み取ったバーコードのデータをＣＰＵ１１に供給する。
【００７９】
ステップＳ４においては、ＣＰＵ１１は、バーコードリーダ制御部２２より供給されたバーコードのデータから、チェックデジットの値を取得する。次に、ステップＳ５において、ＣＰＵ１１は、バーコードのデータに基づいてチェックデジットの値を計算する。
【００８０】
ステップＳ６においては、ＣＰＵ１１により、バーコードに予め付加されたチェックデジットの値と、バーコードのデータに基づいて計算によって求めたチェックデジットの値とが一致するか否かが判定される。その結果、バーコードに予め付加されたチェックデジットの値と、バーコードのデータに基づいて計算によって求めたチェックデジットの値とが一致すると判定された場合、処理を終了する。一方、バーコードに予め付加されたチェックデジットの値と、バーコードのデータに基づいて計算によって求めたチェックデジットの値とが一致しない（エラー）と判定された場合、ステップＳ７に進む。
【００８１】
ステップＳ７においては、ＣＰＵ１１は、印刷制御部１５に対して、ステップＳ６においてエラーと判定されたバーコードを再印刷するよう指令する。この指令を受けた印刷制御部１５は、印刷ヘッド５を制御し、上記バーコードを再度印刷する。
【００８２】
以上説明したように、本実施の形態により、次のような効果を得ることができる。即ち、ラベルプリンタ１００に対するＣ／Ｄ計算方法の指示をコマンドを用いて行うことができ、パソコン３１を用いてユーザ自身がラベルプリンタ１００のＣ／Ｄ計算の方法を設定することが可能となる。また、ラベルプリンタ１００の制御部１０がＣ／Ｄの計算を行うので、Ｃ／Ｄ計算処理に要する時間を短縮することができる。さらに、エラー検出時の再印刷もラベルプリンタ１００側で判断して行うことができる。即ち、再印刷が必要であるか否かをラベルプリンタ１００の制御部１０が迅速に判断することができるので、エラー発生時の再印刷処理を迅速かつ効率的に行うことができる。
【００８３】
なお、上記実施の形態においては、本発明をラベルプリンタに応用する場合について説明したが、他の印刷装置にも本発明を適用することができる。
【００８４】
また、上記実施の形態におけるコマンドのフォーマットは例であって、これに限定されるものではない。
【００８５】
また、上記実施の形態の各パラメータの値は例であってこれに限定されるものではない。
【００８６】
また、上記実施の形態においては、バーコードを印刷する場合についてのみ説明したが、バーコード以外のその他の識別コードを印刷する場合にも本発明を適用することができる。
【００８７】
また、上記実施の形態の構成及び動作は、本発明の趣旨を逸脱しない範囲で適宜変更することができる。
【００８８】
【発明の効果】
以上の如く、本発明に係る印刷装置および印刷装置におけるチェックデジットの計算方法によれば、識別コードを印刷し、印刷された識別コードによって表される情報を読み取り、コマンドを入力し、入力されたコマンドに基づいて、識別コードの種類に対応したチェックデジットの計算方法を決定し、決定された計算方法に従って、識別コードによって表される情報に基づいてチェックデジットの計算を行い、計算されたチェックデジットの値と、識別コードに予め付加されたチェックデジットの値とを比較し、比較結果に応じて、識別コードが正常に印刷されたか否かを判定し、判定結果に応じて所定の処理を行うようにしたので、ユーザ自身がコマンドを用いてチェックデジットの計算方法を設定することができ、ユーザが設定した計算方法で印刷装置にチェックデジットの計算を行わせることができる。これにより、セキュリティーを向上させるとともに、チェックデジットの計算処理を迅速かつ効率的に行わせることができる。
【図面の簡単な説明】
【図１】本発明のラベル印刷装置の一実施の形態の構成例を示す図である。
【図２】図１の制御部の構成例を示すブロック図である。
【図３】ラベルプリンタにパソコンが接続された様子を示す図である。
【図４】ラベルプリンタの処理手順を説明するためのフローチャートである。
【符号の説明】
１  ラベル
２  台紙
３  ラベル連続体
４  供給軸
５  印刷ヘッド
６  プラテンローラ
７  ステッピングモータ
８  ベルト
９  位置検出センサ
１０  制御部
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  モータ制御部
１５  印刷制御部
１６  センサ制御部
１７  外部インタフェース
１８  入力部
１９  モニタ
２０  インタフェース
２１  バーコードリーダ
２２  バーコードリーダ制御部
３１  パソコン
３２  キーボード
４１  ケーブル
１００  ラベルプリンタ
【図１】
0004537534.tif 000002
【図２】
0004537534.tif 000003
【図３】
0004537534.tif 000004
【図４】
0004537534.tif 000005