以下、本発明の実施の形態を図面を参照にして説明する。図1は、本発明の一実施形態である印刷装置の特徴を示した図である。図1に示すように、本実施形態の印刷装置1では、ホスト39からのテンプレートデータ51を受信したり、予め設定されることにより、3個のテンプレート101、111、121がFlash ROM14に記憶されてい
る。
第1テンプレート101は、3個のキャラクタデータが入力される入力項目102と、3個のキャラクタデータが入力される入力項目103と、チェックデジット付バーコードのデータのみが入力される入力項目104とで構成されている。尚、入力項目102には、「123」のキャラクタデータが既に入力されている。また、入力項目103には、「XYZ」のキャラクタデータが既に入力されている。また、入力項目104には、チェックデジット付バーコードのデータが既に入力されているが、図1では、記載の便宜上、「チェックデジット付バーコード」の文字を入力項目104内に記載している。
第2テンプレート111は、3個のキャラクタデータが入力される入力項目112と、5個のキャラクタデータが入力される入力項目113と、バーコードのデータが入力される入力項目114と、3個のキャラクタデータが入力される入力項目115とで構成されている。尚、入力項目112には、「456」のキャラクタデータが既に入力されている。また、入力項目113には、「150kg」のキャラクタデータが既に入力されている。この点、「kg」はSI単位系の単位データである。また、入力項目114には、バーコードのデータが既に入力されているが、図1では、記載の便宜上、「バーコード」の文字を入力項目114内に記載している。また、入力項目115には、「ABC」のキャラクタデータが既に入力されている。
第3テンプレート121は、3個のキャラクタデータが入力される入力項目122と、7桁のバーコードのデータのみが入力される入力項目123とで構成されている。尚、入力項目122には、「789」のキャラクタデータが既に入力されている。また、入力項目123には、7桁のバーコードのデータが既に入力されているが、図1では、記載の便宜上、「7桁のバーコード」の文字を入力項目123内に記載している。
そして、本実施形態の印刷装置1では、ホスト39からの受信データ52を受信すると、その受信データ52に好適なテンプレートを、Flash ROM14に記憶されている3個のテンプレート101、111、121の中から選択する。この点、テンプレートの選択は、ホスト39からの受信データ52を分析しながら行われる。
例えば、ホスト39からの受信データ52が、「456/_75kg/85675/PQRCR」である場合を想定する。ここで、「/」は、デリミタを意味する。また、「_」は、スペースを意味する。また、「CR」は、ASCIIコードにおける制御コードであって、印刷開始コマンドを意味する。
すなわち、上記受信データ52には、以下の特性がある。
1.テンプレートの入力項目に入力されるデータの個数が4個である。
2.SI単位の「kg」が含まれている。
3.7桁のバーコードのデータに相当するものがない。
4.チェックデジット付きバーコードのデータに相当するものがない。
5.テンプレートの入力項目に入力されるデータは、「456」「_75kg」「85675」「PQR」である。
そこで、本実施形態の印刷装置1では、ホスト39からの受信データ52より上記特性のいずれかを取得し、その特性にあった入力項目を備えたテンプレートを、Flash ROM14に記憶されている複数のテンプレート101、111、121の中から選択する。
もっとも、この場合には、ホスト39からの受信データ52の特性にあった入力項目を備えたテンプレートは、第2テンプレート111である。なぜなら、第2テンプレート111には、以下の特性があるからである。
1.入力項目112、113、114、115の個数が4個である。
2.入力項目113には、SI単位の「kg」が既に入力されている。
3.7桁のバーコードのデータのみが入力される入力項目がない。
4.チェックデジット付きバーコードのデータのみが入力される入力項目がない。
5.入力項目112には「456」のキャラクタデータが既に入力されている。
そして、本実施形態の印刷装置1では、上記特性を取得・比較する処理を経由して、第2テンプレート111を選択すると、ホスト39からの受信データ52を第2テンプレート111に入力して印刷データを作成し、その印刷データを印字テープ53に印刷する。
尚、図1では、記載の便宜上、Flash ROM14に各テンプレート101、111、121のイメージが記載されているが、Flash ROM14に記憶されている各テンプレート101、111、121は、図2の概念図で示すようなデータ構造をもって記憶されている。
この点、登録テンプレート数200には、Flash ROM14に記憶されたテンプレートの個数に関する情報が格納される。具体的に言えば、図1の場合では、Flash ROM14には、3個のテンプレート101、111、121が記憶されているので、登録テンプレート数200には「3」が格納される。
また、第1テンプレートのデータ201には、第1テンプレート101に関する情報が格納されており、データ数201Aや第1データ202や第2データ203などで構成されている。データ数201Aには、第1テンプレート101の入力項目102、103、104の個数である「3」が格納されている。
第1データ202は、第1テンプレート101の入力項目102に関する情報であり、初期データ202Aや座標情報202Bや属性情報202Cや規格情報202Dやアライメント属性情報202Eなどを有している。初期データ202Aには、第1テンプレート101の入力項目102に既に入力されているデータに関する情報が格納される。座標情報202Bには、第1テンプレート101の入力項目102の位置に関する情報が格納される。属性情報202Cは、第1テンプレート101の入力項目102にバーコードが入力されるときに、そのバーコードの属性に関する情報が格納される。規格情報202Dは、第1テンプレート101の入力項目102にバーコードが入力されるときに、そのバーコードの規格に関する情報が格納される。
第2データ203は、第1テンプレート101の入力項目103に関する情報であり、第1データ202と同様にして、初期データ203Aや座標情報203Bや属性情報203Cや規格情報203Dやアライメント属性情報203Eなどを有している。尚、図2では示されていないが、第1テンプレート101の入力項目104に関する情報も、第1テンプレートのデータ201に含まれている。
また、第2テンプレートのデータ211には、第2テンプレート111に関する情報が格納されている。さらに、第3テンプレートのデータ221には、第3テンプレート121に関する情報が格納されている。そして、第2テンプレートのデータ211や第3テンプレートのデータ221は、第1テンプレートのデータ201と同様なデータ構造を有している。
そして、ホスト39から新たなテンプレートデータ51を受信した際には、上述したテンプレートのデータ201、211、221の同様なデータ構造をもって、新たなテンプレートがFlash ROM14に記憶される。このとき、新たなテンプレートに関する情報は、第4テンプレートのデータと称される。すなわち、テンプレートのデータに対してその冒頭に付された「第1」「第2」「第3」「第4」…の各数値(テンプレート番号)の順番をもって、各テンプレートのデータ及び各テンプレートが特定される。
次に、本実施形態の印刷装置1の構成について説明する。図3は、本実施形態の印刷装置1の外観斜視図である。図3に示すように、本実施形態の印刷装置1は、ハンディタイプのラベルプリンタであって、本体筐体2に対して、指令キー3や、上キー4、下キー5、複数のキーからなる編集キー6、印字テープ53をカットする手動レバー7、ホスト39と接続するケーブルのコネクタが差し込まれる接続ポート8等が設けられている。尚、指令キー3や、上キー4、下キー5、編集キー6により、操作キー21が構成される。
図4は、本実施形態の印刷装置1の制御系を示した図である。本実施形態の印刷装置1では、入出力インターフェース11に対して、後述する各プログラムなどを実行するCPU12や、ROM13、Flash ROM14、RAM15等が接続されている。
この点、ROM13には、後述する各プログラムなどが記憶される。また、Flash ROM14には、上述したように、各テンプレート101、111、121に関する情報などが記憶される(図2参照)。また、RAM15には、受信バッファ16やテンプレートバッファ17や印刷バッファ18や選択候補バッファ19が確保されるとともに、CPU12が各プログラムなどを実行する際に使用するワークエリアも確保される。さらに、そのワークエリアには、選択完了フラグや、変数n、変数mなどが設けられる。
また、本実施形態の印刷装置1では、入出力インターフェース11に対して、操作キー21や、LCD23に表示データを出力するための表示用RAMを備えたディスプレイコントローラ(以下、LCDCという)22、サーマルヘッド25を駆動するための駆動回路24、印字カセット内の印字テープ53を外部に送り出すテープ送りモータ27を駆動するための駆動回路26等が接続されている。また、ホスト39も、接続ポート8にコネクタが差し込まれたケーブルを介して、入出力インターフェース11に接続される。
次に、本実施形態の印刷装置1の制御動作について説明する。図5は、メインプログラムのフローチャートを示した図である。すなわち、CPU12は、メインプログラムを読み出して実行すると、図5に示すように、先ず、S1において、初期化処理を行う。この初期化処理では、RAM15に設けられた受信バッファ16や、テンプレートバッファ17、印刷バッファ18、選択候補バッファ19、選択完了フラグなどをクリアする。
その後、CPU12は、S2において、受信データ52が入力されるまで待機する。そして、受信データ52が入力されると、CPU12は、S3において、受信データ52を受信バッファ16に格納する。このとき、CPU12は、デリミタや印刷開始コマンドを用いて、受信データ52を分析する。このデータ分析において、受信データ52を構成するデータのうち、テンプレートの各入力項目に入力されるべきデータをカウントし、そのカウント数やそれらのデータなどを受信バッファ16に格納する。尚、説明の便宜上、以下、テンプレートの各入力項目に入力されるべきデータを「項目データ」といい、そのカウント数を「項目データ数」という。
その後、CPU12は、S4において、テンプレートの選択として初期テンプレートを選択する。ここで、初期テンプレートは、Flash ROM14に記憶されたいずれか一つのテンプレートであって、所定規則によって選択される。
その後、CPU12は、S5において、テンプレート選択処理を行う。図6は、テンプレート選択処理のフローチャートを示した図である。
すなわち、CPU12は、上記メインプログラムでS5のテンプレート選択処理を実行すると、図6に示すように、先ず、S11において、後述する第1テンプレート選択処理を行う。その後、CPU12は、S12に進むと、選択完了フラグがONであるか否かを判定する。尚、直前のS11の第1テンプレート選択処理において、テンプレートが選択された場合には選択完了フラグはONであり、テンプレートが選択されていない場合には選択完了フラグはOFFである。従って、S12で選択完了フラグがONであると判定した場合には(S12:YES)、S21に進んで、CPU12は、テンプレートの選択を確定し、その後に、上記メインプログラムに戻る。一方、S12で選択完了フラグがOFFであると判定した場合には(S12:NO)、S13に進む。
S13では、CPU12は、後述する第2テンプレート選択処理を行う。その後、CPU12は、S14に進むと、選択完了フラグがONであるか否かを判定する。尚、直前のS13の第2テンプレート選択処理において、テンプレートが選択された場合には選択完了フラグはONであり、テンプレートが選択されていない場合には選択完了フラグはOFFである。従って、S14で選択完了フラグがONであると判定した場合には(S14:YES)、上記S21に進んで、CPU12は、テンプレートの選択を確定し、その後に、上記メインプログラムに戻る。一方、S14で選択完了フラグがOFFであると判定した場合には(S14:NO)、S15に進む。
S15では、CPU12は、後述する第3テンプレート選択処理を行う。その後、CPU12は、S16に進むと、選択完了フラグがONであるか否かを判定する。尚、直前のS15の第3テンプレート選択処理において、テンプレートが選択された場合には選択完了フラグはONであり、テンプレートが選択されていない場合には選択完了フラグはOFFである。従って、S16で選択完了フラグがONであると判定した場合には(S16:YES)、上記S21に進んで、CPU12は、テンプレートの選択を確定し、その後に、上記メインプログラムに戻る。一方、S16で選択完了フラグがOFFであると判定した場合には(S16:NO)、S17に進む。
S17では、CPU12は、後述する第4テンプレート選択処理を行う。その後、CPU12は、S18に進むと、選択完了フラグがONであるか否かを判定する。尚、直前のS17の第4テンプレート選択処理において、テンプレートが選択された場合には選択完了フラグはONであり、テンプレートが選択されていない場合には選択完了フラグはOFFである。従って、S18で選択完了フラグがONであると判定した場合には(S18:YES)、上記S21に進んで、CPU12は、テンプレートの選択を確定し、その後に、上記メインプログラムに戻る。一方、S18で選択完了フラグがOFFであると判定した場合には(S18:NO)、S19に進む。
S19では、CPU12は、後述する第5テンプレート選択処理を行う。その後、CPU12は、S20に進むと、選択完了フラグがONであるか否かを判定する。尚、直前のS19の第5テンプレート選択処理において、テンプレートが選択された場合には選択完了フラグはONであり、テンプレートが選択されていない場合には選択完了フラグはOFFである。従って、S20で選択完了フラグがONであると判定した場合には(S20:YES)、上記S21に進んで、CPU12は、テンプレートの選択を確定し、その後に、上記メインプログラムに戻る。一方、S20で選択完了フラグがOFFであると判定した場合には(S20:NO)、上記S21に進むことなく、上記メインプログラムに戻る。
次に、図6の第1テンプレート選択処理(S11)について説明する。図7は、第1テンプレート選択処理のフローチャートを示した図である。
すなわち、CPU12は、図6のテンプレート選択処理でS11の第1テンプレート選択処理を実行すると、図7に示すように、先ず、S31において、変数nの値を「1」とし、選択完了フラグを「OFF」とし、変数mの値を「0」とする。
その後、S32でCPU12は、「項目データ数」(上記S3参照)が第nテンプレートの入力項目の個数と一致するか否かを判定する。ここで、「n」とは、変数nの値を示す。従って、例えば、変数nの値が「1」の場合には、第1テンプレートのデータ201のデータ数201Aに格納されているデータと、上記S3で求めた「項目データ数」とが比較される。
ここで、「項目データ数」(上記S3参照)が第nテンプレートの入力項目の個数と一致しないと判定した場合には(S32:NO)、後述するS34に進む。一方、「項目データ数」(上記S3参照)が第nテンプレートの入力項目の個数と一致すると判定した場合には(S32:YES)、S33に進む。
S33では、CPU12は、第nテンプレートのデータに対応するテンプレート番号を選択候補バッファ19に登録するとともに、変数mをインクリメントする。尚、第nテンプレートのデータに対応するテンプレート番号は、独自のものであってもよいが、変数nの値でも代用できる。
その後、S34でCPU12は、変数nをインクリメントする。そして、CPU12は、S35において、変数nの値が登録テンプレート数200の値よりも大きいか否かを判定する。ここで、変数nの値が登録テンプレート数200の値以下であると判定した場合には(S35:NO)、上述したS32に戻る。一方、変数nの値が登録テンプレート数200の値より大きいと判定した場合には(S35:YES)、S36に進む。
S36では、変数mの値が「1」であるか否かを判定する。ここで、変数mの値が「1」であると判定した場合には(S36:YES)、S37に進んで、CPU12は、選択完了フラグをONとし、その後に、図6のテンプレート選択処理に戻る。一方、変数mの値が「1」でないと判定した場合には(S36:NO)、何もすることなく、図6のテンプレート選択処理に戻る。
以上より、第1テンプレート選択処理は、上記S3で求めた「項目データ数」(受信データ52を構成するデータのうち、テンプレートの各入力項目に入力されるべきデータの個数)と同じ個数の入力項目が設けられたテンプレートを選択しようとする処理である。
次に、図6の第2テンプレート選択処理(S13)について説明する。図8は、第2テンプレート選択処理のフローチャートを示した図である。
すなわち、CPU12は、図6のテンプレート選択処理でS13の第2テンプレート選択処理を実行すると、図8に示すように、先ず、S40において、選択候補バッファ19をクリアし、変数nの値を「1」とし、変数mの値を「0」とする。
その後、S41でCPU12は、受信バッファ16の「項目データ」(上記S3参照)のいずれかにキーワードがあるか否かを判定する。ここでは、キーワードを、SI単位系の単位データの「kg」とする。ここで、受信バッファ16の「項目データ」(上記S3参照)のいずれにもキーワードがないと判定する場合には(S41:NO)、何もすることなく、図6のテンプレート選択処理に戻る。一方、受信バッファ16の「項目データ」(上記S3参照)のいずれかにキーワードがあると判定する場合には(S41:YES)、S42に進む。
S42では、CPU12は、第nテンプレートのデータにキーワードがあるか否かを判定する。ここで、「n」とは、上述したように、変数nの値を示す。従って、例えば、変数nの値が「1」の場合には、第1テンプレートのデータ201の初期データ202A、203A、…に格納されているデータと、キーワードである「kg」とが比較される。
ここで、第nテンプレートのデータにキーワードがないと判定した場合には(S42:NO)、後述するS44に進む。一方、第nテンプレートのデータにキーワードがあると判定した場合には(S42:YES)、S43に進む。
S43では、CPU12は、第nテンプレートのデータに対応するテンプレート番号を選択候補バッファ19に登録するとともに、変数mをインクリメントする。尚、第nテンプレートのデータに対応するテンプレート番号は、上述したように、独自のものであってもよいが、変数nの値でも代用できる。
その後、S44でCPU12は、変数nをインクリメントする。そして、CPU12は、S45において、変数nの値が登録テンプレート数200の値よりも大きいか否かを判定する。ここで、変数nの値が登録テンプレート数200の値以下であると判定した場合には(S45:NO)、上述したS42に戻る。一方、変数nの値が登録テンプレート数200の値より大きいと判定した場合には(S45:YES)、S46に進む。
S46では、変数mの値が「1」であるか否かを判定する。ここで、変数mの値が「1」であると判定した場合には(S46:YES)、S47に進んで、CPU12は、選択完了フラグをONとし、その後に、図6のテンプレート選択処理に戻る。一方、変数mの値が「1」でないと判定した場合には(S46:NO)、何もすることなく、図6のテンプレート選択処理に戻る。
以上より、第2テンプレート選択処理は、キーワードである「kg」が入力項目に既に入力されているテンプレートを選択しようとする処理である。
次に、図6の第3テンプレート選択処理(S15)について説明する。図9は、第3テンプレート選択処理のフローチャートを示した図である。
すなわち、CPU12は、図6のテンプレート選択処理でS15の第3テンプレート選択処理を実行すると、図9に示すように、先ず、S50において、選択候補バッファ19をクリアし、変数nの値を「1」とし、変数mの値を「0」とする。
その後、S51でCPU12は、受信バッファ16に所定桁数の数字列があるか否かを判定する。ここでは、所定桁数を7桁とする。ここで、受信バッファ16に所定桁数の数字列がないと判定する場合には(S51:NO)、何もすることなく、図6のテンプレート選択処理に戻る。一方、受信バッファ16に所定桁数の数字列があると判定する場合には(S51:YES)、S52に進む。
S52では、CPU12は、第nテンプレートのデータにバーコード用の所定桁数の数字列があるか否かを判定する。ここで、「n」とは、上述したように、変数nの値を示す。従って、例えば、変数nの値が「1」の場合には、第1テンプレートのデータ201の初期データ202A、203A、…に格納されているデータと、所定桁数の数字列とが比較される。また、所定桁数の数字列がバーコード用であるか否かは、第1テンプレートのデータ201において、初期データ202A、203A、…に対応する属性情報202C、203C、…に格納されているデータで判定される。従って、第1テンプレートのデータ201において、初期データ202Aに所定桁数の数字列が格納されている場合には、初期データ202Aに対応する属性情報202Cに基づいて、初期データ202Aに格納されている所定桁数の数字列がバーコード用であるか否かが判定される。
ここで、第nテンプレートのデータにバーコード用の所定桁数の数字列がないと判定した場合には(S52:NO)、後述するS54に進む。一方、第nテンプレートのデータにバーコード用の所定桁数の数字列があると判定した場合には(S52:YES)、S53に進む。
S53では、CPU12は、第nテンプレートのデータに対応するテンプレート番号を選択候補バッファ19に登録するとともに、変数mをインクリメントする。尚、第nテンプレートのデータに対応するテンプレート番号は、独自のものであってもよいが、変数nの値でも代用できる。
その後、S54でCPU12は、変数nをインクリメントする。そして、CPU12は、S55において、変数nの値が登録テンプレート数200の値よりも大きいか否かを判定する。ここで、変数nの値が登録テンプレート数200の値以下であると判定した場合には(S55:NO)、上述したS52に戻る。一方、変数nの値が登録テンプレート数200の値より大きいと判定した場合には(S55:YES)、S56に進む。
S56では、変数mの値が「1」であるか否かを判定する。ここで、変数mの値が「1」であると判定した場合には(S56:YES)、S57に進んで、CPU12は、選択完了フラグをONとし、その後に、図6のテンプレート選択処理に戻る。一方、変数mの値が「1」でないと判定した場合には(S56:NO)、何もすることなく、図6のテンプレート選択処理に戻る。
以上より、第3テンプレート選択処理は、所定桁数の数字で構成されるバーコードが入力項目に既に入力されているテンプレートを選択しようとする処理である。
次に、図6の第4テンプレート選択処理(S17)について説明する。図10は、第4テンプレート選択処理のフローチャートを示した図である。
すなわち、CPU12は、図6のテンプレート選択処理でS17の第4テンプレート選択処理を実行すると、図10に示すように、先ず、S60において、選択候補バッファ19をクリアし、変数nの値を「1」とし、変数mの値を「0」とする。
その後、S61でCPU12は、受信バッファ16にチェックデジットがあるか否かを判定する。ここで、受信バッファ16にチェックデジットがないと判定する場合には(S61:NO)、何もすることなく、図6のテンプレート選択処理に戻る。一方、受信バッファ16にチェックデジットがあると判定する場合には(S61:YES)、S62に進む。
S62では、CPU12は、第nテンプレートのデータにバーコード用のチェックデジットがあるか否かを判定する。ここで、「n」とは、上述したように、変数nの値を示す。従って、例えば、変数nの値が「1」の場合には、第1テンプレートのデータ201の初期データ202A、203A、…に格納されているデータと、チェックデジットとが比較される。尚、バーコード用であるか否かは、第1テンプレートのデータ201では、初期データ202A、203A、…に対応する属性情報202C、203C、…に格納されているデータで判定される。従って、第1テンプレートのデータ201において、初期データ202Aにチェックデジットが格納されている場合には、初期データ202Aに対応する属性情報202Cに基づいて、初期データ202Aに格納されているチェックデジットがバーコード用であるか否かが判定される。
ここで、第nテンプレートのデータにバーコード用のチェックデジットがないと判定した場合には(S62:NO)、後述するS64に進む。一方、第nテンプレートのデータにバーコード用のチェックデジットがあると判定した場合には(S62:YES)、S63に進む。
S63では、CPU12は、第nテンプレートのデータに対応するテンプレート番号を選択候補バッファ19に登録するとともに、変数mをインクリメントする。尚、第nテンプレートのデータに対応するテンプレート番号は、独自のものであってもよいが、変数nの値でも代用できる。
その後、S64でCPU12は、変数nをインクリメントする。そして、CPU12は、S65において、変数nの値が登録テンプレート数200の値よりも大きいか否かを判定する。ここで、変数nの値が登録テンプレート数200の値以下であると判定した場合には(S65:NO)、上述したS62に戻る。一方、変数nの値が登録テンプレート数200の値より大きいと判定した場合には(S65:YES)、S66に進む。
S66では、変数mの値が「1」であるか否かを判定する。ここで、変数mの値が「1」であると判定した場合には(S66:YES)、S67に進んで、CPU12は、選択完了フラグをONとし、その後に、図6のテンプレート選択処理に戻る。一方、変数mの値が「1」でないと判定した場合には(S66:NO)、何もすることなく、図6のテンプレート選択処理に戻る。
以上より、第4テンプレート選択処理は、チェックデジット付きバーコードが入力項目に既に入力されているテンプレートを選択しようとする処理である。
次に、図6の第5テンプレート選択処理(S19)について説明する。図11は、第5テンプレート選択処理のフローチャートを示した図である。
すなわち、CPU12は、図6のテンプレート選択処理でS19の第5テンプレート選択処理を実行すると、図11に示すように、先ず、S71において、選択候補バッファ19をクリアし、変数nの値を「1」とし、変数mの値を「0」とする。
その後、S72でCPU12は、「項目データ」(上記S3参照)と第nテンプレートのデータとに同一データがあるか否かを判定する。ここで、「n」とは、変数nの値を示す。従って、例えば、変数nの値が「1」の場合には、第1テンプレートのデータ201の初期データ202A、203A、…に格納されているデータと、上記S3で求めた「項目データ」とが比較される。
ここで、「項目データ」(上記S3参照)と第nテンプレートのデータとに同一データがないと判定した場合には(S72:NO)、後述するS74に進む。一方、「項目データ」(上記S3参照)と第nテンプレートのデータとに同一データがあると判定した場合には(S72:YES)、S73に進む。
S73では、CPU12は、第nテンプレートのデータに対応するテンプレート番号を選択候補バッファ19に登録するとともに、変数mをインクリメントする。尚、第nテンプレートのデータに対応するテンプレート番号は、独自のものであってもよいが、変数nの値でも代用できる。
その後、S74でCPU12は、変数nをインクリメントする。そして、CPU12は、S75において、変数nの値が登録テンプレート数200の値よりも大きいか否かを判定する。ここで、変数nの値が登録テンプレート数200の値以下であると判定した場合には(S75:NO)、上述したS72に戻る。一方、変数nの値が登録テンプレート数200の値より大きいと判定した場合には(S75:YES)、S76に進む。
S76では、変数mの値が「1」であるか否かを判定する。ここで、変数mの値が「1」であると判定した場合には(S76:YES)、S77に進んで、CPU12は、選択完了フラグをONとし、その後に、図6のテンプレート選択処理に戻る。一方、変数mの値が「1」でないと判定した場合には(S76:NO)、何もすることなく、図6のテンプレート選択処理に戻る。
以上より、第5テンプレート選択処理は、上記S3で求めた「項目データ」(受信データ52を構成するデータのうち、テンプレートの各入力項目に入力されるべきデータ)と同じデータが入力項目に既に入力されているテンプレートを選択しようとする処理である。
上述したようにして、CPU12は、図6のテンプレート選択処理を実行すると、図5のメインプログラムに戻って、S6に進む。
S6では、CPU12は、上記S21で選択が確定されたテンプレートに対応するテンプレートデータに対し、その各初期データに既に入力されているデータに代えて、上記S3で求めた各「項目データ」を順次に置き換えることによって、新たなテンプレートデータをテンプレートバッファ17にて作成する。尚、上記S5のテンプレート選択処理において上記S21に進んでいない場合には(図6参照)、上記S4の初期テンプレートに対応するテンプレートデータを、上記S21で選択が確定されたテンプレートに対応するテンプレートデータとする。
その後にCPU12は、S7にて、上記S6で作成したテンプレートバッファに基づいて印刷バッファ18にイメージ展開する。そして、S8にて、CPU12は、上記S7で印刷バッファ18に展開したイメージを印字テープ53に印刷する。
以上詳細に説明したように、本実施形態の印刷装置1では、受信データ52のデータ分析を行って、「項目データ」(受信データ52を構成するデータのうち、テンプレートの各入力項目に入力されるべきデータ)や「項目データ数」(そのカウント数)を計算する(S3)。そして、計算された「項目データ」や「項目データ数」は、テンプレート選択処理(S5)を構成する第1〜第5の各テンプレート選択処理において、第nテンプレートのデータ(図2参照)と比較される。
先ず、第1テンプレート選択処理(S11)では、第nテンプレートのデータ(図2参照)から第nテンプレートの各入力項目の個数を取得し、「項目データ数」と比較される(S32)。そして、「項目データ数」と第nテンプレートの入力項目の個数とが一致する場合が一つに決まれば(S36:YES)、その第nテンプレートが自動選択される(S21)。
また、第2テンプレート選択処理(S13)では、第nテンプレートの入力項目に既に入力されているデータを第nテンプレートのデータ(図2参照)から取得し、キーワード(ここでは、SI単位系の「kg」)が含まれているか否かの観点から、「項目データ」と比較される(S42)。そして、「項目データ」と第nテンプレートの入力項目に既に入力されているデータの双方にキーワードが含まれている場合が一つに決まれば(S46:YES)、その第nテンプレートが自動選択される(S21)。
また、第3テンプレート選択処理(S15)では、第nテンプレートの入力項目に既に入力されているデータを第nテンプレートのデータ(図2参照)から取得して、バーコード用の所定桁数(ここでは、7桁)の数字列が含まれているか否かの観点から、「項目データ」と比較される(S52)。そして、「項目データ」と第nテンプレートの入力項目に既に入力されているデータの双方にバーコード用の所定桁数の数字列が含まれている場合が一つに決まれば(S56:YES)、その第nテンプレートが自動選択される(S21)。
また、第4テンプレート選択処理(S17)では、第nテンプレートの入力項目に既に入力されているデータを第nテンプレートのデータ(図2参照)から取得して、バーコード用のチェックデジットが含まれているか否かの観点から、「項目データ」と比較される(S62)。そして、「項目データ」と第nテンプレートの入力項目に既に入力されているデータの双方にバーコード用のチェックデジットが含まれている場合が一つに決まれば(S66:YES)、その第nテンプレートが自動選択される(S21)。
また、第5テンプレート選択処理(S19)では、第nテンプレートの入力項目に既に入力されているデータを第nテンプレートのデータ(図2参照)から取得して、同一のデータが含まれているか否かの観点から、「項目データ」と比較される(S72)。そして、「項目データ」と第nテンプレートの入力項目に既に入力されているデータの双方に同一のデータが含まれている場合が一つに決まれば(S76:YES)、その第nテンプレートが自動選択される(S21)。
そして、上述したテンプレート選択処理(S5)によって、その第nテンプレートが自動選択されると(S21)、その自動的に選択された第nテンプレートにその受信データ52を入力して印刷イメージを展開し、その印刷イメージを印字テープ53に印刷する(S6〜S8)。
従って、本実施形態の印刷装置1では、例えば、図1に示すように、Flash ROM14に3つのテンプレート101、111、121が記憶されている場合において、第1テンプレート101を自動選択させたいときには、「項目データ数」が3個の受信データ52又は、バーコード用のチェックデジットを含んだ受信データ52、「123」又は「XYZ」のキャラクタデータを含んだ受信データ52をホスト39側から出力させればよい。また、第2テンプレート111を自動選択させたいときには、「kg」のキーワードを含んだ受信データ52又は、「456」又は「ABC」のキャラクタデータを含んだ受信データ52をホスト39側から出力させればよい。また、第3テンプレート121を自動選択させたいときには、バーコード用の7桁の数字列を含んだ受信データ52又は、「789」のキャラクタデータを含んだ受信データ52をホスト39側から出力させればよい。よって、受信データ52を出力するホスト39側が、その受信データ52を介して、印刷対象のテンプレートの自動選択をコントロールすることができる。
また、本実施形態の印刷装置1では、テンプレートが一つのみ選択されない限り、テンプレート選択処理(S5)を構成する第1〜第5の各テンプレート選択処理(S11、S13、S15、S17、S19)が順次に行われている(図6参照)。従って、テンプレートの自動選択(S21)は、「項目データ数」と同じ個数の入力項目が設けられたテンプレートを選択しようとする観点(第1テンプレート選択処理)や、キーワード(ここでは、SI単位系の「kg」)が入力項目に既に入力されているテンプレートを選択しようとする観点(第2テンプレート選択処理)、所定桁数(ここでは、7桁)の数字で構成されるバーコードが入力項目に既に入力されているテンプレートを選択しようとする観点(第3選択処理)、チェックデジット付きバーコードが入力項目に既に入力されているテンプレートを選択しようとする観点(第4選択処理)、「項目データ」と同じデータが入力項目に既に入力されているテンプレートを選択しようとする観点(第5選択処理)など、様々な観点から行われる。従って、上述したテンプレート選択処理(S5)で自動選択されたテンプレートは、ホスト39側が出力する受信データ52にとって好適なものとなる。よって、ホスト39側が出力する受信データ52は、その受信データ52に対応するテンプレートが自動選択されるための制御コマンドなどを付加する必要はなく、テンプレートに入力されるデータそのもの(デリミタや印刷開始コマンドを含む)で済む。
尚、本発明は上記実施の形態に限定されるものでなく、その趣旨を逸脱しない範囲で様々な変更が可能である。
例えば、テンプレート選択処理(S5)を構成する第1〜第5の各テンプレート選択処理(S11、S13、S15、S17、S19)では、Flash ROM14に記憶されている全てのテンプレート101、111、121を検討対象にしている(図6参照)。この点、第2テンプレート選択処理(S13)の検討対象を第1テンプレート選択処理(S11)で選択されたテンプレートに制限し、第3テンプレート選択処理(S15)の検討対象を第2テンプレート選択処理(S13)で選択されたテンプレートに制限し、第4テンプレート選択処理(S17)の検討対象を第3テンプレート選択処理(S15)で選択されたテンプレートに制限し、第5テンプレート選択処理(S19)の検討対象を第4テンプレート選択処理(S17)で選択されたテンプレートに制限してもよい。
また、本実施形態の印刷装置1は、ハンディタイプのラベルプリンタであったが、パーソナル・コンピュータ等と接続可能な据え付けタイプのプリンタであってもよい。