次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
実施の形態において、店舗におけるレシートに可変数の文字列を適切に印字する場合を説明する。例えば、老人に提供するレシートについて、表示する項目を減らすとともに、表示する項目の文字を大きくするなど、顧客の年齢などに応じて、可変のフォーマットでレシートが発行される。
(店舗システム)
図1を参照して、実施の形態に係る店舗システム10は、第1のPOS端末1a、第2のPOS端末1b、第3のPOS端末1cおよび印字支援装置2を備える。第1のPOS端末1a、第2のPOS端末1b、第3のPOS端末1cおよび印字支援装置2は、LANなどの店舗ネットワーク3によって相互に通信可能に接続されている。ここで、第1のPOS端末1a、第2のPOS端末1bおよび第3のPOS端末1cを特に区別しない場合、単にPOS端末1と表記する場合がある。
図1に示す例では、店舗システム10が、3つのPOS端末1を備える場合を説明するが、POS端末1の数はこれに限られない。また、印字支援装置2は、図1に示すように、一つのコンピュータ上に実装されても良いし、複数のコンピュータ上に実装されても良い。例えば、POS端末1を管理制御するPOS管理サーバ(図示せず)に、印字支援装置2の各機能が実装されても良いし、POS端末1に実装されても良い。
実施の形態に係る店舗システム10におけるPOS端末1は、例えば図2に示すようなレシートを出力する。図2に示す各レシートは、同一の購入内容について、異なるフォーマットで出力されたものである。店舗の店員は、レシートを提供する顧客の属性に適切なフォーマットをPOS端末1に指定することにより、POS端末1は、異なるフォーマットのレシートを出力することができる。
図2(a)に示すレシートは、標準的レシートである。図2(b)および(c)に示すレシートは、高齢者向けに、レシートに印字する項目を減らすとともに、重要な項目を大きく表示したレシートである。図2(a)および図2(b)の各レシートの項目を比べると、図2(a)のレシートにおいては、項目Cとして販売員の情報が、項目DとしてJANコードが、項目Mとしてレジ・レシートNOが印字されているのに対し、図2(b)のレシートにおいては、これらの項目は印字されていない。また図2(b)のレシートにおいて、項目Eとして商品名称、項目Fとして単価および数量、項目Gとして価格、項目Hとして点数、項目Kとして支払い種別および項目Lとして釣銭の各情報が、図2(a)のレシートと比べて大きい文字で印字されている。
図2(b)および図2(c)は、同じ項目を同じ文字の大きさで表示しているが、商品名称の印字形態が異なる。レシートの大きさは限られているため、文字数を大きく設定すると、印字しきれない文字が発生してしまう。そこで、実施の形態においては、図2(b)に示すスッキリ法と、図2(c)に示すピッタリ法のいずれかの方法で、文字列を処理し、表示する。特に、図2(b)および図2(c)では、項目Eの商品名称について、最大2行で印字する場合の例である。このような、複数行にわたって商品名称を印字する際、形態素解析により、商品名称は、複数の形態素に分割される。
図2(b)および(c)では、商品名称「●●シュガーレスガム500g」は、1行に印字されている。一方、商品名称「●●春限定イチゴチョコレートBigサイズ」について、図2(b)に示すスッキリ法と、図2(c)に示すピッタリ法とで、その印字形態が異なる。
スッキリ法では、1行に印字する文字列を切りよく印字する。レシートの1行に印字可能な最大文字数を超える場合、商品名称の形態素の区切りが行の区切りになるように、商品名称が印字される。具体的には、1行目に「●●春限定イチゴ」が印字され、2行目に「チョコレートBigサイズ」が印字される。ここで、スッキリ法では、助詞の形態素が行の先頭にならないように、制御されても良い。
ピッタリ法では、1行に印字する文字数を最大限活用して印字する。レシートの1行に印字可能な最大文字数を超える場合、商品名称の形態素の区切りに関係なく、商品名称の先頭から数えて1行の最大文字数の文字列が、1行目に印字される。ここで、形態素の区切りが1行目の末尾にならない場合、1行目の最後の形態素について、1行の最大文字数を超える文字は破棄される。2行目には、1行目で表示された形態素の次の形態素の文字列が印字される。具体的には、1行目に「●●春限定イチゴチョコレー」が印字され、形態素「チョコレート」の「ト」は破棄される。さらに、2行目に「Bigサイズ」が印字される。ここで、ピッタリ法では、助詞の形態素が行の先頭にならないように、制御されても良い。
ここで、スッキリ法で印字するか、ピッタリ法で印字するかは、予め店舗システム10において設定される。また、実施の形態においては、商品名称について説明するが、他の項目においても同様に処理されても良い。
実施の形態においては、印字支援装置2と、POS端末1で実装される一部の機能によって、複数の項目を備えるテンプレート基づいて、各項目に可変数の文字列の印字が支援され、POS端末1が、所定のテンプレートに基づいて、各項目に可変数の文字列を印字する。
(POS端末)
図3および図4を参照して、実施の形態に係るPOS端末1を説明する。POS端末1には、顧客の個々の購入商品の情報が入力される。例えば、店員がPOS端末1に接続されたバーコードスキャナ107で、商品に印字されたバーコードを読み取ることにより、POS端末1は商品識別子を読み出す。さらに、POS端末1は、その商品の販売価格を取得して、顧客に提示する。さらに、POS端末1は、精算時に、入金された金額や釣り銭金額を確認したり、顧客に提供するレシートを出力する。
POS端末1は、中央処理制御装置101、ROM102、RAM103、記憶装置104、タッチパネル105、入力部106、バーコードスキャナ107、レシート出力部108、ドロワ制御部109およびカードリーダ110を備える。これらの各要素は、バス111によって接続されている。POS端末1は、図示しないがさらに、印字支援装置1と通信するための通信制御装置も備える。
中央処理制御装置101は、POS端末1の各要素から入力されたデータを処理し、所定の要素に出力する。このとき、中央処理制御装置101は、ROM102、RAM103、記憶装置104などに記録されたプログラムおよびデータを読み出してRAM103にロードするとともに、RAM103から読み出されたプログラムのコマンドに基づいて、データの計算または加工など、後述する一連の処理を実現する処理装置である。中央処理制御装置101が出力したデータは、記憶装置104、タッチパネル105、レシート出力部108、ドロワ制御部109などに出力される。
タッチパネル105は、POS端末1を扱う店員に、会計中の商品一覧を表示させる表示画面である。タッチパネル105は、店員が画面を選択すると、その選択位置に対応する指示を取得し、中央処理制御装置101に入力する。例えば、タッチパネル105に、現金払い、クレジットカード払いなどの精算方法の選択肢を表示し、店員がいずれかの選択肢をタッチする。店員が現金払いの選択肢をタッチした場合、タッチパネル105は、中央処理制御装置101に現金払いで精算する指示を入力する。
タッチパネル105は、図3においては店員が使用するものである。タッチパネル105の裏側にさらにタッチパネルを備え、顧客に情報の表示や入力をさせても良い。例えば、顧客側のタッチパネルは、顧客に会計中の商品一覧や購入金額を表示したり、支払い方法を選択させることができる。
入力部106は、例えばテンキーである。入力部106は、バーコードスキャナ107で読み取れない商品コードを、手入力する場合に用いられる。入力部106は、タッチパネル105、バーコードスキャナ107、カードリーダ110などのその他の入力装置の役割を補完することもできる。入力部106は、図3に示すように複数のキーによって構成されており、それぞれのキーに、POS端末1に入力するべき指示が対応づけられている。
実施の形態においては特に、入力部106には、レシートを出力する際のテンプレート種別を選択するキーが設けられている。例えば、「子供・男」、「子供・女」、「成人・男」、「成人・女」、「老人・男」、「老人・女」などのキーが設けられており、店員がいずれかのキーを押下することにより、そのキーに対応するフォーマットで、POS端末1は、レシートを出力する。
バーコードスキャナ107は、商品に付与された商品コードを光学的に読み取り、商品コードデータとして、中央処理制御装置101に入力する。バーコードスキャナ107は、例えば、一次元バーコードや二次元バーコードを読み取ることができる。バーコードスキャナ107は、図3に示すようにコードで接続されても良いし、POS端末1の筐体に固定されても良い。
レシート出力部108は、中央処理制御装置101の指示に従って、顧客が購入した商品の商品名と価格の一覧、購入商品の合計などを印字したレシートを出力する。実施の形態においては特に、予め指定されたキーに対応するフォーマットで、レシートが出力される。
ドロワ制御部109には、顧客から受け取ったお金や釣り銭が収納されている。ドロワ制御部109は、中央処理制御装置101の制御によって、必要なタイミングで開かれる。図3に示すように、ドロワ制御部109は、入金した金額を自動計算し、自動的に釣り銭が出る仕組みを備えていても良い。
カードリーダ110は、顧客がクレジットカードの支払いを選択したり、ポイントカードを提示した場合、そのカードの情報を読み取り、中央処理制御装置101に入力する。カードが磁気型の場合、カードリーダ110は磁気カードリーダである。図3においては、カードリーダが磁気型の場合を示している。ここでカードがバーコード型の場合、バーコードスキャナ107で、カードを読み取っても良い。
次に、図4を参照して、実施の形態に係るPOS端末1に実装される機能を説明する。POS端末1の記憶装置104は、印字テンプレートデータ記憶部41、文字数マスタデータ記憶部42および商品マスタデータ記憶部43を備える。また、記憶装置104には、所定のプログラムが記憶され、このプログラムが中央処理制御装置101で読み込まれることによって、POS端末1の中央処理制御装置101は、POS精算手段11、印字支援手段12および印字制御手段15を備える。
印字テンプレートデータ記憶部41は、記憶装置104のうち、印字テンプレートデータ41aが記憶された記憶領域である。印字テンプレートデータ41aは、テンプレート種別と、当該テンプレートに関連づけられる項目と、当該項目の領域情報と、が関連づけられたデータである。印字テンプレートデータ41aは、複数のテンプレートデータを、各テンプレート種別に対応して含む。このテンプレート種別は、POS端末1において顧客の属性に応じてレシートを出力する場合、その顧客の属性に対応する。テンプレート種別は、例えば、「子供・男」、「子供・女」、「成人・男」、「成人・女」、「老人・男」、「老人・女」などの属性である。テンプレート種別は、これらの属性がコード化されていても良い。
図5を参照して、印字テンプレートデータ41aを説明する。印字テンプレートデータ41aは、各テンプレート種別ごとのテンプレートデータであるところ、図5に示す例では、テンプレート種別が「5」(老人・男性)の場合のテンプレートデータを説明する。図5のテンプレートデータは、図2(b)または(c)のレシートを出力する際に参照されるテンプレートデータである。ここで、図5に示す例を、図2(b)のレシートと対比して説明する。なお、図2(b)および(c)は、商品名称の印字形態が異なるものの、レシートに印字する項目は変わらない。
図5に示すように、テンプレートデータには、ヘッダー、明細およびフッターの項目を備える。ヘッダーは、図2(b)の項目AおよびBに対応し、明細は項目E、項目Fおよび項目Gに対応し、フッターは、項目H、項目I、項目J、項目Kおよび項目Lに対応する。ここで、明細は、商品の数ごとに繰り返し表示される項目である、図5に示す例で明細は、最大nn回繰り返される。
各項目について、項目IDをキーに、項目名、印字内容、印字行、印字位置、印字文字および印字幅が対応づけられている。項目Aの印字内容は、レシートタイトルとして店舗名が設定され、固定文字列である。そのほかの項目の印字内容は、レシート発行日、購入商品などに応じて印字内容が可変である。特に、明細の項目Eに対応する商品名称は、商品によってその長さが異なるので、実施の形態に係る印字支援に好適である。
印字行、印字位置、および印字幅は、レシートにおいて、各項目を印字する位置情報である。印字文字は、その項目を印字する際の文字のフォントおよびポイントを指定する。項目Eの印字行が「4行」と設定されている場合、項目Eの商品名称が、最大4行にわたって印字されても良いことを示す。
文字数マスタデータ記憶部42は、記憶装置104のうち、文字数マスタデータ42aが記憶された記憶領域である。文字数マスタデータ42aは、テンプレート種別と、項目の識別子と、当該項目の領域から算出される印字可能な最大文字数と、が対応づけられたデータである。ここで、各項目の最大文字数は、図5を参照して説明した印字幅を、印字文字で指定される1文字の幅で除算することにより、予め算出される。ここでは、印字文字が固定幅フォントを例に説明するが、印字する文字が決定された際、プロポーショナルフォントの場合は、その文字に応じて逐次算出されても良い。
文字数マスタデータ42aは、例えば図6に示すようなデータ構造とデータの例を備える。文字数マスタデータ42aは、テンプレート種別および項目をキーに、その項目に印字可能な最大文字数が対応づけられている。ここで、文字数マスタデータ42aにおいて、全てのテンプレートの全ての項目について、最大文字数が対応づけられる必要はない。文字数マスタデータ42aにおいて、可変数の文字列が設定される項目についてのみ最大文字数が対応づけられていれば良い。例えば、項目Aは店舗名で固定長のところ、項目Aの最大文字数は、文字数マスタデータ42aで設定される必要はない。
商品マスタデータ記憶部43は、記憶装置104のうち、商品マスタデータ43aが記憶された記憶領域である。商品マスタデータ43aは、図7に示すように、商品のJANコードをキーに、商品名称および価格が対応づけられたデータである。JANコードは、店員が商品のバーコードを読み取った際、POS端末1に入力される。商品名称および価格は、POS端末1がレシートを印字する際に、参照される。
POS精算手段11は、バーコードスキャナ107で読み取られたJANコードに基づいて、商品マスタデータ43aからこの商品の価格を取得し、顧客の購入商品の合計を算出する。さらに、顧客から渡された代金が入力されると、その代金から購入商品の合計を引いて、おつりの金額を算出する。これら一連の精算処理が完了すると、POS精算手段11は、精算に関する情報を、レシートに印字して出力する指示を、印字支援手段12に入力する。
印字支援手段12は、顧客の購入商品についてレシートを印字するにあたり、その印字内容や印字形態を決定し、印字制御手段15に入力する。印字支援手段12は、形態素解析手段13および印字形態算出手段14を備える。
印字支援手段12は、所定の領域に複数行にわたって文字を表示する際、文字を読みやすいように改行を入れた印字形態を算出する。例えば印字支援手段12は、任意のテンプレート種別が入力され、当該テンプレート種別に対応するテンプレートの項目に可変数の文字列を印字する際、項目に印字可能な最大文字数が、可変数の文字列より小さい場合、文字列から分割された一連の形態素に基づいて、印字形態を算出する。
印字支援手段12は、所定の領域に印字する文字列を、形態素解析手段13に入力する。形態素解析手段13は、入力された文字列について形態素解析をして、複数の形態素に分割する。形態素解析手段13は、分割した各形態素が、助詞であるか否かのフラグも出力しても良い。形態素解析手段13は、分割した複数の形態素と、フラグとを対応づけて、印字支援手段12に戻す。実施の形態において、形態素解析手段13による形態素解析の具体的な処理内容は問わない。
印字支援手段12は、形態素解析手段13から分割した複数の形態素と、それぞれのフラグとが入力されると、それを、印字形態算出手段14に入力し、印字形態を算出させる。
ここで印字形態算出手段14は、文字数マスタデータ42aから、印字対象のテンプレート種別および項目種別からその項目の最大文字数を取得し、図2(b)および図2(c)で示したスッキリ法とピッタリ法のいずれかによって、文字列の改行位置を決定する。スッキリ法とピッタリ法のいずれで改行位置を決定するかは、予めPOS端末1の設定によって定められても良い。
スッキリ法の場合、印字形態算出手段14は、項目に可変数の文字列を複数行に印字する際、文字列の最大文字数に対応する文字が形態素の末尾でない場合、第1行目に、文字列の最大文字数に対応する文字を含む形態素の前の形態素の文字まで対応づける。さらに印字形態算出手段14は、第2行目に、文字列の最大文字数に対応する文字を含む形態素の文字を対応づける。このように印字形態算出手段14は、印字形態を算出する。
例えば、図2(b)を参照して、「●●春限定イチゴチョコレートBigサイズ」を、最大文字数が13の領域に印字する場合を考える。ここで、形態素解析手段13が、「●●春限定イチゴチョコレートBigサイズ」を、「●●」、「春限定」、「イチゴ」、「チョコレート」、「Big」および「サイズ」に分割し、それぞれ助詞でないと出力したとする。この場合「●●春限定イチゴチョコレートBigサイズ」の最大文字数の13文字目が「ー」で、これに相当する形態素が「チョコレート」である。従って、印字形態算出手段14は、1行目に、この形態素より前の形態素の文字列である「●●春限定イチゴ」を対応づけるとともに、2行目に、この形態素以降の文字列である「チョコレートBigサイズ」を対応づける。この2行目の「チョコレートBigサイズ」は、1行の最大文字数である13を越えない文字数であるので、この商品名称は2行で印字可能である。さらに長い商品名称の場合形態素解析手段13は、同様に算出して、3行目の文字列も対応づける。このような処理により、図2(b)に示すように、「●●春限定イチゴチョコレートBigサイズ」について、1行目に「●●春限定イチゴ」が印字され、2行目に「チョコレートBigサイズ」が印字される。
ピッタリ法の場合、印字形態算出手段14は、項目に可変数の文字列を複数行に印字する際、文字列の最大文字数に対応する文字が形態素の末尾でない場合、第1行目に、文字列の最大文字数に対応する文字までを対応づけるとともに、第2行目に、当該形態素の次の形態素の文字を対応づけた印字形態を算出する。
例えば、図2(c)を参照して、「●●春限定イチゴチョコレートBigサイズ」を、最大文字数が13の領域に印字する場合を考える。ここでも同様に、形態素解析手段13が、「●●春限定イチゴチョコレートBigサイズ」を、「●●」、「春限定」、「イチゴ」、「チョコレート」、「Big」および「サイズ」に分割し、それぞれ助詞でないと出力したとする。この場合「●●春限定イチゴチョコレートBigサイズ」の最大文字数の13文字目が「ー」で、これに相当する形態素が「チョコレート」である。従って、印字形態算出手段14は、1行目に、この最大文字数に対応する文字までの文字列である「●●春限定イチゴチョコレー」を対応づけるとともに、2行目に、最大文字数の13文字目「ー」に相当する形態素の次以降の形態素の文字列である「Bigサイズ」を対応づける。この2行目の「Bigサイズ」は、1行の最大文字数である13を越えない文字数であるので、この商品名称は2行で印字可能である。さらに長い商品名称の場合形態素解析手段13は、同様に算出して、3行目の文字列も対応づける。このような処理により、図2(c)に示すように、「●●春限定イチゴチョコレートBigサイズ」について、1行目に「●●春限定イチゴチョコレー」が印字され、2行目に「Bigサイズ」が印字される。
印字制御手段15は、印字支援手段12によって決定された改行位置に基づいて、レシート出力部108にレシートを出力させる。
このように、形態素解析を用いて、改行位置を決定することにより、図2(b)および図2(c)に示すように、顧客は文字列を読みやすくなる。これにより、文字を大きくすることにより1行の印字文字数が減っても、改行位置を工夫することにより、レシートの視認性を向上させることができる。
図8を参照して、実施の形態に係るPOS端末1の処理を説明する。図8において、顧客一人について、POS端末1で商品のバーコードを読み取り、レシートを出力する処理を説明する。
まずステップS101においてPOS端末1は、店員が、テンプレート種別を入力するのを待機する。例えば、顧客が老人の男性の場合、店員は、「老人・男」のキーを押下すると、ステップS102においてPOS端末1は、印字テンプレートデータ41aから、そのキーに対応する印字テンプレートデータを読み出す。
この印字テンプレートデータのヘッダーおよびフッターに設定する各文字列について、ステップS103およびステップS104を繰り返す。ここでは、ヘッダーおよびフッターの全ての項目についてステップS103およびステップS104の処理を繰り返す場合を説明するが、固定の文字列を設定する項目や、年月日など固定長の文字列を設定する項目については、処理が割愛されても良い。
まずステップS103においてPOS端末1は、所定の項目について、そこに設定する可変数の文字列に対して形態素解析を行う。この形態素解析により、この項目に設定される文字列は、複数の形態素に分割される。さらにステップS104においてPOS端末は、ステップS103で取得した複数の形態素に基づいて、印字形態を算出する。この印字形態の算出手法として、実施の形態において、スッキリ法とピッタリ法が挙げられる。この処理については後に詳述する。
全ての項目についてステップS103およびステップS104の処理が実行されると、顧客が購入する商品の情報を処理する。具体的には、ステップS105においてPOS端末1は、店員が顧客購入商品のバーコードを入力するのを待機する。商品のバーコードが入力されると、ステップS106においてPOS端末1は、入力されたバーコードをキーに、商品マスタデータ43aを読み出し、その商品の商品名称および価格を取得する。ここで取得した価格は、購入金額の算出に用いられ、商品名称は、レシートの印字に用いられる。さらにPOS端末1は、ステップS106で取得した商品名称について、ステップS107で形態素解析を行い、ステップS108において印字形態を算出する。
ステップS109において、店員によって会計キーが押下されるまで、ステップS105ないしステップS108の処理が繰り返される。ステップS109において店員によって会計キーが押下されると、ステップS110において、会計処理が実行される。会計処理は、購入商品の合計計算や、金銭のやりとりなどである。
会計処理がされると、POS端末1は、レシートを印字する。具体的にはPOS端末1は、ステップS111においてヘッダーを印字し、ステップS112において各明細を印字し、ステップS113においてフッターを印字する。
次に図9を参照して、印字形態算出手段14による印字形態算出処理を説明する。図9においては図2(b)で示したスッキリ法による印字形態算出処理を説明する。この図9に示す処理は、図8のステップS104およびステップS108に相当する。
まずステップS201において、印字形態算出手段14は、初期化処理を行う。具体的には印字形態算出手段14は、N行目に初めて追加するフラグをONに設定するとともに、Nに1を設定する。
次に、所定の項目に設定するべき文字列の全ての形態素について印字形態算出手段14は、ステップS202ないしステップS213の処理を繰り返す。ここで、全ての形態素について処理されなくても、印字形態として、最大行数を超えるまで印字形態算出手段14は、ステップS202ないしステップS213の処理を繰り返す。
具体的には、ステップS202において印字形態算出手段14は、文字列として、形態素解析関数の出力を順次設定する。最初の処理では、この項目に設定するべき文字列の最初の形態素の文字列が設定される。次以降の処理では、2番目の形態素、3番目の形態素・・・と順次文字列に形態素が設定される。
ステップS202において印字形態算出手段14は、ステップS202で設定された文字列が助詞であるか否かを判定する。印字形態算出手段14は、助詞でない場合、ステップS204において助詞フラグに0の値を設定し、助詞である場合、ステップS205において助詞フラグに1の値を設定する。
次にステップS206において印字形態算出手段14は、ステップS202で設定した文字列の文字数をカウントする。ステップS207において印字形態算出手段14は、1行あたりの最大文字数が、この行の累積文字数とステップS206でカウントした文字数の和以上であるか否かを判定する。最大文字数が、この行の累積文字数とステップS206でカウントした文字数の和以上である場合、ステップS208に進み、そうでない場合、ステップS211に進む。
ステップS208において、助詞フラグが1、かつ、N行目に初めて追加するフラグがONである場合、ステップS202戻り、新たな形態素を設定する。これにより、N行目の先頭に助詞が印字されることを防ぐことができる。それ以外の場合、印字形態算出手段14は、ステップS209において、既に設定されたN行目の文字列に、ステップS202で設定した文字列を追加して、N行目の新たな文字列を生成する。さらにステップS210において印字形態算出手段14は、N行目に初めて追加するフラグにOFFを設定し、ステップS202戻り、新たな形態素を設定する。
ステップS211において印字形態算出手段14は、助詞フラグが1である場合、ステップS202戻り、新たな形態素を設定する。それ以外の場合、印字形態算出手段14はステップS212において、N+1行目の先頭文字列として、ステップS202で設定した文字列を設定する。さらに印字形態算出手段14はステップS213において、Nを一つインクリメントするとともに、N行目に初めて追加するフラグをOFFに設定する。
このように、図9に示す処理では、新たな形態素を追加しようとすると、印字可能な最大文字数を超える場合、新たな形態素を追加することなく改行する。またこの新たな形態素が助詞でない場合、次の行の先頭に印字される。この新たな形態素が助詞の場合、次の行の先頭にこの助詞を印字することなく、次の新たな形態素が印字される。このような処理により、図2(b)に示すレシートが、出力される。
次に図10を参照して、印字形態算出手段14による印字形態算出処理を説明する。図10においては図2(c)で示したピッタリ法による印字形態算出処理を説明する。この図10に示す処理は、図8のステップS104およびステップS108に相当する。
まずステップS251において、印字形態算出手段14は、初期化処理を行う。具体的には印字形態算出手段14は、N行目に初めて追加するフラグをONに設定するとともに、Nに1を設定する。
次に、所定の項目に設定するべき文字列の全ての形態素について印字形態算出手段14は、ステップS252ないしステップS263の処理を繰り返す。ここで、全ての形態素について処理されなくても、印字形態として、最大行数を超えるまで印字形態算出手段14は、ステップS252ないしステップS263の処理を繰り返す。
具体的には、ステップS252において印字形態算出手段14は、文字列として、形態素解析関数の出力を順次設定する。最初の処理では、この項目に設定するべき文字列の最初の形態素の文字列が設定される。次以降の処理では、2番目の形態素、3番目の形態素・・・と順次文字列に形態素が設定される。
ステップS253において印字形態算出手段14は、ステップS252で設定された文字列が助詞であるか否かを判定する。印字形態算出手段14は、助詞でない場合、ステップS254において助詞フラグに0の値を設定し、助詞である場合、ステップS255において助詞フラグに1の値を設定する。
次にステップS256において印字形態算出手段14は、ステップS252で設定した文字列の文字数をカウントする。ステップS257において印字形態算出手段14は、1行あたりの最大文字数が、この行の累積文字数とステップS256でカウントした文字数の和以上であるか否かを判定する。最大文字数が、この行の累積文字数とステップS256でカウントした文字数の和以上である場合、ステップS258に進み、そうでない場合、ステップS261に進む。
ステップS258において、助詞フラグが1、かつ、N行目に初めて追加するフラグがONである場合、ステップS252戻り、新たな形態素を設定する。これにより、N行目の先頭に助詞が印字されることを防ぐことができる。それ以外の場合、印字形態算出手段14は、ステップS259において、既に設定されたN行目の文字列に、ステップS252で設定した文字列を追加して、N行目の新たな文字列を生成する。さらにステップS260において印字形態算出手段14は、N行目に初めて追加するフラグにOFFを設定し、ステップS252戻り、新たな形態素を設定する。
ステップS261において印字形態算出手段14は、この行の最大文字数から、既に設定された累積文字数を減算して、この行に追加可能な文字数を算出する。ステップS262において印字形態算出手段14は、この行に既に設定された文字列に、追加可能な文字列を追加して、N行目の印字形態を算出する。ここで追加可能な文字列は、ステップS252で設定された文字列の先頭から、ステップS261で算出された追加可能文字数分の文字列である。さらに印字形態算出手段14はステップS263において、Nを一つインクリメントするとともに、N行目に初めて追加するフラグをONに設定する。
このように、図10に示す処理では、新たな形態素を追加しようとすると、印字可能な最大文字数を超える場合、形態素の途中で改行されることとなく、最大文字数まで印字されるとともに、次の行の先頭に、次の形態素が印字される。このような処理により、図2(c)に示すレシートが、出力される。
(印字支援装置)
次に、図1を参照して、実施の形態に係る印字支援装置2を説明する。印字支援装置2は、POS端末1で参照される各種テンプレートを含む印字テンプレートデータ41aと、そのテンプレートの各項目の最大文字数を対応づけた文字数マスタデータ42aを生成し、POS端末1に送信する。
印字支援装置2は、記憶装置210、中央処理制御装置220、通信制御装置(図示せず)などを備える一般的なコンピュータに、所定の処理を実行するためのプログラムがインストールされることにより実現される。記憶装置210には、そのプログラムが記憶されるとともに、記憶装置210は、印字設定データ記憶部211、標準印字テンプレートデータ記憶部212、設定データ記憶部213、印字テンプレートデータ記憶部214および文字数マスタデータ記憶部215を備える。中央処理制御装置220は、印字設定受信手段221、印字テンプレート生成手段222、文字数算出手段224および印字設定出力手段225を備える。
印字設定データ記憶部211は、記憶装置210のうち、印字設定データ211aが記憶された記憶領域である。印字設定データ211aは、POS端末1で参照される各種のテンプレート種別と、標準のテンプレートデータとの差分を対応づけたデータである。印字設定データ211aは、各テンプレート種別について、標準の印字テンプレートデータとの差分が対応づけられている。
印字設定データ211aは、例えば図11に示すデータである。印字設定データ211aは、テンプレート種別として、キーが設定されている。この各キーは、レシート出力対象に対応づけられる。図11に示す例では、キー「5」は、「老人・男」に対応する。
印字項目は、当該テンプレート種別において、印字する項目を列挙している。ここで指定される各項目は、図2を参照して説明したレシートの各項目に対応する。例えば、「老人・男」に対応する印字項目として、項目C、項目Dおよび項目Mが対応づけられていないので、「老人・男」に対するレシートには、これらの項目は印字されない。
変更箇所は、標準のテンプレートと比べて、印字文字を変更する項目である。変更箇所で設定された各項目は、印字文字で設定される文字で印字される。例えば、「老人・男」に対応する印字文字として、MSゴシック14ptが対応づけられている。従って、「老人・男」の変更箇所で指定された項目E、項目F、項目G、項目H、項目Kおよび項目Lは、印字文字で指定されたMSゴシック14ptで印字される。
印字設定データ211aは、図11のデータ構造に限られない。標準印字テンプレートデータとの差分が分かれば、どのようなデータ構造でも構わない。
標準印字テンプレート記憶部212は、記憶装置210のうち、標準印字テンプレートデータ212aが記憶された記憶領域である。標準印字テンプレートデータ212aは、印字支援装置2が出力する複数のテンプレートデータを生成するにあたり、その基礎となるテンプレートデータである。この標準印字テンプレートデータ212aと、印字設定データ211aで設定される差分情報とから、各種のテンプレートデータが生成される。
標準印字テンプレートデータ212aは、例えば図12に示すデータ構造を示す。標準印字テンプレートデータ212aは、標準のテンプレートデータである。標準印字テンプレートデータ212aは、図5を参照して説明した印字テンプレートデータ41aと同様の構成を備える。ここで、標準印字テンプレートデータ212aは、印字設定データ211aで設定される全ての印字項目を備えていることが好ましい。印字支援装置2は、標準印字テンプレートデータ212aから、所定の項目を削除するとともに印字位置を調整して、各種のテンプレートデータを生成できるからである。そこで、図12に示す標準印字テンプレートデータ212aは、項目Aから項目Mまで、図2(a)を参照して説明した標準レシートの全ての項目について印字内容、印字行、印字位置、印字文字および印字幅を対応づける。
設定データ記憶部213は、記憶装置210のうち、設定データ213aが記憶された記憶領域である。設定データ213aは、標準印字テンプレートデータ212aから印字テンプレートデータ214aを生成する際の設定情報である。図13に示すように設定データ213aは、各項目の最大行数、項目間の余白、レシート幅、標準印字設定、複数列設定などの設定情報が含まれている。
ここで、複数列設定は、標準印字テンプレートデータ212aから印字テンプレートデータ214aを生成する際、標準印字テンプレートデータ212aにおいて複数列で印字されている複数の項目のいずれかを、印字テンプレートデータ214aで印字しない場合、その印字しない項目を、他の項目にどのように割り当てるかの設定である。実施の形態において複数列設定として、均等法、比率法および優先法のいずれかが設定される。ここで、優先法が設定された場合、どの項目に優先的に割り当てるかも併せて設定されても良い。均等法、比率法および優先法については、後に詳述する。
具体的には、図2(a)の標準テンプレートに対応するレシートにおいて項目Dと項目Eが、同じ行に2列設けてそれぞれの項目が印字されているところ、図2(b)において項目Dが印字されず、1行に項目Eのみが印字されている。この場合、項目Dが印字されていた領域は、設定データ213aの複数列設定で指定された手法に従って、他の項目に割り当てられる。
印字テンプレートデータ記憶部214は、記憶装置210のうち印字テンプレートデータ214aが記憶された記憶領域である。印字テンプレートデータ214aは、図5を参照して説明したデータであって、印字支援装置2によって生成され、POS端末1に送信される。
文字数マスタデータ記憶部215は、記憶装置210のうち文字数マスタデータ215aが記憶された記憶領域である。文字数マスタデータ215aは、図6を参照して説明したデータであって、印字支援装置2によって生成され、POS端末1に送信される。
印字設定受信手段221は、印字設定データ211aを受信し、印字設定データ記憶部211に記憶する手段である。印字設定データ211aは、印字支援装置2の入力装置から入力されても良いし、他のサーバなどからダウンロードされても良い。
印字テンプレート生成手段222は、各テンプレート種別について、印字設定データ211aにおける標準印字テンプレートデータ212aとの差分に基づいて、当該テンプレート種別に対応するテンプレートデータを生成する。印字テンプレート生成手段222は、1行に表示する項目の数を減らす場合、減らす項目の領域を、他の項目に割り当てる。印字テンプレート生成手段222は、設定データ213aも参照する場合がある。
印字テンプレート生成手段222は、プレビュー手段223を備える。プレビュー手段223は、印字テンプレート生成手段222によって生成されたテンプレートデータを表示装置に表示する。これにより、作業者の意図通りにテンプレートデータが設定されているか否かを、作業者に確認させることができる。
印字テンプレート生成手段222は、標準印字テンプレートデータ212aを読み出し、印字設定データ211aに従って、印字文字が変更になる項目について、印字文字の設定を変更するとともに、印字しない項目を削除して、新たなテンプレートデータを生成する。このとき、複数列で表示される項目のいずれかを印字しない場合、図14に示す均等法、比率法または優先法によって、印字する項目の表示領域を変更する。図14においては、1行に3列設けられており、各列に、項目A、項目Bおよび項目Cが対応づけられている。ここで、項目Aの印字幅は28mm、項目Bの印字幅は35mm、項目Cの印字幅は56mmで、項目Aおよび項目Bの間と、項目Bおよび項目Cの間に、それぞれ3mmの余白が設けられている。図14では、この項目Aを印字せず、項目Bおよび項目Cのみを印字する場合を説明する。項目Aを印字しないことにより、項目Aの28mmと余白3mmが、項目Bおよび項目Cの少なくともいずれか一方に割り当てられる。
図14(a)に示す均等法では、項目Bおよび項目Cに、それぞれ均等に15.5mm割り当てられる。この結果、印字テンプレートデータの項目Bおよび項目Cに、それぞれ15.5mm広い印字領域が設定される。
図14(b)に示す比率法では、標準テンプレートデータの項目Bおよび項目Cの比率に従って、項目Bに12mm割り当てられ、項目Cに19mm割り当てられる。この結果、印字テンプレートデータの項目Bに、12mm広い印字領域が設定され、項目Cに、19mm広い印字領域が設定される。
図14(c)に示す優先法では、標準テンプレートデータの項目Bまたは項目Cに、項目Aの28mmと余白3mmが、割り当てられる。例えば設定データ213aにおいて、項目Cに優先的に割り当てる旨が設定されている場合、印字テンプレートデータの項目Bの印字領域に変更はないものの、項目Cに、31mm広い印字領域が設定される。
文字数算出手段224は、印字テンプレートデータ214aを読み出して、各テンプレート種別および各項目について、印字可能な最大文字数を算出し、文字数マスタデータ215aを生成する。文字数算出手段224は、文字数マスタデータ215aを文字数マスタデータ記憶部215に記憶する。文字数算出手段224は、各項目の印字幅を、その項目に印字する1文字あたりの幅で除算して、各項目に印字可能な最大文字数を算出する。
印字設定出力手段225は、印字テンプレートデータ214aおよび文字数マスタデータ215aを、POS端末1に送信する。印字設定出力手段225は、印字テンプレートデータ214aまたは文字数マスタデータ215aに変更が生じた場合、その変更したデータを送信しても良いし、POS端末1からの要求に応じて要求されたデータを送信しても良い。
次に図15を参照して、実施の形態に係る印字支援装置2の処理を説明する。まずステップS301において印字設定受信手段221が印字設定データ211aを受信すると、受信した印字設定データ211aを印字設定データ記憶部211に記憶する。
次に、印字支援装置2が出力する全てのテンプレート種別について、ステップS302ないしステップS304の処理を繰り返す。具体的には、ステップS302において印字テンプレート生成手段222は、この印字テンプレートデータを生成する。また必要に応じてプレビュー手段223が、生成した印字テンプレートデータに基づいて生成されるレシートをプレビュー表示しても良い。
ステップS302において印字テンプレートデータが生成されると、この印字テンプレートデータに含まれる項目について、ステップS303およびステップS304の処理が繰り返される。具体的にはステップS303において文字数算出手段224は、この項目に印字可能な最大文字数を算出し、ステップS304において文字数マスタデータ215aに記録する。
全てのテンプレート種別についてステップS302ないしステップS304の処理が終了すると、ステップS305において印字設定出力手段225は、印字テンプレートデータ214aおよび文字数マスタデータ215aを、POS端末1に送信する。
ここで、図15に示す印字支援装置2の処理は一例であって、これと異なる順序で処理されても良いのはもちろんである。
このように実施の形態に係る店舗システム10によれば、顧客に応じてレシートの印字形態を変更することができる。例えば、成人の場合は通常通りに印字するが、老人の場合は、文字を大きく印字することにより、印刷物を受け取る人に応じて、適切な印刷物を出力することができる。
また、一つの標準テンプレートデータとの差分を定義し、その差分に応じて標準テンプレートから複数のテンプレートデータを生成することができる。これにより、一つ一つのレシートのテンプレートを手動で生成する必要がなく、容易に複数のテンプレートデータを生成することができる。
さらに、文字が大きくなっても、形態素解析の結果に基づいて改行位置を決定することができる。これにより、顧客が読みやすい形態で、商品名称などの文字列を印字することができる。
ここで、実施の形態においては店舗で発行するレシートを例に説明したが、レシートに限られない。例えば、コンサートチケットや交通手段のチケットなど、定型フォーマットに可変数の文字列が印字される印刷物の印字において、実施の形態に係る印字支援方法を適用することができる。
(変形例)
図16を参照して、変形例に係る店舗システム10aについて説明する。変形例に係るPOS端末1d、1eおよび1fは、図1を参照して説明した実施の形態に係るPOS端末1と比べて異なる構成を備える。また変形例に係る印字支援装置2aは、図1を参照して説明した実施の形態に係る印字支援装置2と比べて異なる構成を備える。
実施の形態においては、印字支援装置2が印字テンプレートを生成し、POS端末1において商品名称などを印字する度に印字形態を決定する場合を説明した。一方変形例においては、印字支援装置2aにおいて、予め商品名称などの印字形態を決定する場合について説明する。
変形例に係る印字支援装置2aは、実施の形態に係る印字支援装置2と比べて、商品マスタデータ記憶部216および印字形態算出手段226を備え、印字設定出力手段225aの処理も異なる。
商品マスタデータ記憶部216は、記憶装置210のうち商品マスタデータ216aが記憶された記憶領域である。図17に示すように変形例に係る商品マスタデータ216aは、図7を参照して説明した実施の形態に係る商品マスタデータ43aと比べて、印字形態の欄が設けられている点が異なる。
この印字形態は、印字支援装置2aが出力する印字テンプレートのテンプレート種別ごとに、その印字形態が設けられている。例えば、第1のテンプレート種別において、商品名称「●●シュガーレスガム500g」は、1行に印字可能である一方、商品名称「●●春限定イチゴチョコレートBigサイズ」は、1行に印字しきれない。その場合、第1のテンプレート種別における印字形態として、1行目に「●●春限定イチゴ」と印字し、2行目に「チョコレートBigサイズ」と印字することが予め定義される。図17に示す例では、改行コードとして「¥n」を用いる場合を説明するが、この形に限られない。
変形例においては、予め商品マスタデータ216aに、各テンプレートデータにおける印字データを対応づけることにより、POS端末1d、1eおよび1fにおいて、レシートの印字処理の負担を軽減することができる。
印字形態算出手段226は、印字テンプレートデータ214aに含まれる全ての項目について、そのテンプレートの印字文字の最大文字数に合わせて、印字形態を算出する。具体的な印字形態の算出方法は、実施の形態と同様である。印字形態算出手段226は、印字テンプレートデータ214aに含まれる固定長の文字列や、商品マスタデータ216aに含まれる商品名称について、印字形態を算出する。
印字支援装置2aの印字設定出力手段225aは、印字テンプレートデータ214aおよび商品マスタデータ216aをPOS端末1d、1eおよび1fに送信する。
図18を参照して、変形例に係るPOS端末1dについて説明する。変形例に係るPOS端末1dは、図4を参照して説明する実施の形態に係るPOS端末1と比べて、印字支援手段12および文字数マスタデータ記憶部42を備えない点が異なる。変形例においては、各テンプレートの各項目の印字形態が、印字支援装置2aにおいて予め算出されるので、POS端末1dは、これに関する処理はしない。また、商品マスタデータ記憶部43に記憶される商品マスタデータ43bは、図17を参照して説明した変形例に係る商品マスタデータ216aと同様のデータである。
POS端末1dは、予め印字形態が登録された商品マスタデータ43bを参照して、テンプレート種別および商品種別に応じた印字形態を取得し、レシートを出力する。
図19を参照して、変形例に係る印字支援装置2aの処理を説明する。図19のステップS401ないしステップS404の処理は、図15を参照して説明した実施の形態に係る印字支援装置2の処理のステップS301ないしステップS304と同様である。
ステップS405およびステップS406において印字形態算出手段226は、全てのテンプレート種別および項目について、形態素解析をして印字形態を算出し、ステップS407において印字テンプレートデータ214aを更新する。
さらにステップS408ないしステップS409において印字形態算出手段226は、商品マスタデータの各商品名称について、形態素解析をして印字形態を算出し、ステップS410において商品マスタデータ216aを更新する。
ステップS411において印字設定出力手段225aは、ステップS402で生成されステップS407で更新された印字テンプレートデータ214aと、ステップS410で更新された商品マスタデータ216aを、POS端末1d、1eおよび1fに送信する。
このように変形例に係る印字支援装置2aによれば、予め印字形態を算出することにより、POS端末1d、1eおよび1fにおける処理負担を軽減することができる。また、変形例においても、レシートに限らず、各種印刷物に変形例に係る印字支援方法を適用することができる。変形例に係る構成は単なる一例であり、この構成と異なる構成も考えられるのはもちろんである。例えば、印字支援装置において各商品名称を形態素解析して、その解析結果を商品マスタデータに登録し、POS端末において商品名称をレシートに印字する際、予め分割された形態素に基づいて、商品名称の改行位置を決定する方法も考えられる。
以上説明した少なくとも一つの実施の形態に係る印字支援装置2、POS端末1などは、定型のフォーマットに可変数の文字列の適切な印字を支援することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。