(57)【要約】  コード画像の偽造防止効果を向上させるために、プリンタ（４０）と接続可能な情報処理装置（３０）は、印字に使用するプリンタ（４０）に関するプリンタ情報を取得する手段と、取得したプリンタ情報に基づくコード画像に対応するコード画像を生成する手段と、を備える。
2018168321.tif 000002
【特許請求の範囲】
【請求項１】
プリンタと接続可能な情報処理装置であって、  印字に使用するプリンタに関するプリンタ情報を取得する手段と、  前記取得したプリンタ情報に基づいて、コード画像を生成する手段と、を備える、情報処理装置。
【請求項２】
前記コード画像の印字を前記プリンタに指示する手段を更に備える、請求項１に記載の情報処理装置。
【請求項３】
前記取得する手段は、商品に関する商品情報を更に取得し、  前記生成する手段は、前記取得した商品情報及びプリンタ情報の組合せに基づいて、前記コード画像を生成する、請求項１又は２に記載の情報処理装置。
【請求項４】
前記プリンタ情報は、前記プリンタの使用量を示す情報、前記プリンタの部品の交換回数を示す情報、前記プリンタの設置場所を示す情報の少なくとも１つを含む、請求項１〜３の何れかに記載の情報処理装置。
【請求項５】
前記プリンタ情報は、前記プリンタを識別するプリンタＩＤを含み、  前記取得したプリンタ情報に含まれるプリンタＩＤが所定のプリンタＩＤと異なる場合、前記コード画像の生成を禁止する手段を更に備える、請求項１〜４の何れかに記載の情報処理装置。
【請求項６】
コンピュータを、請求項１〜５の何れかに記載の各手段として機能させる、プログラム。
【請求項７】
コンピュータが、  印字に使用するプリンタに関するプリンタ情報を取得するステップと、  前記取得したプリンタ情報に基づいて、コード画像を生成するステップと、を備える、情報処理方法。
【請求項８】
プリンタと、クライアント端末と、サーバと、を含む情報処理システムであって、  前記プリンタは、前記プリンタを識別するプリンタＩＤと、前記プリンタに関するプリンタ情報と、を前記サーバに送信する手段を備え、  前記サーバは、前記プリンタから送信されたプリンタＩＤと、前記プリンタ情報と、を関連付けて記憶する手段を備え、  前記クライアント端末は、    前記サーバから、前記プリンタＩＤに関連付けられたプリンタ情報を取得する手段と、    前記取得したプリンタ情報に基づいて、コード画像を生成する手段と、を備える、情報処理システム。
【請求項９】
前記クライアント端末は、前記コード画像の印字を前記プリンタに指示する手段を更に備える、請求項８に記載の情報処理システム。
【請求項１０】
前記プリンタ情報は、前記プリンタの使用量を示す情報、前記プリンタの部品の交換回数を示す情報、前記プリンタの設置場所を示す情報の少なくとも１つを含む、請求項８又は９に記載の情報処理システム。
【請求項１１】
前記取得する手段は、商品に関する商品情報を更に取得し、  前記生成する手段は、前記取得した商品情報及びプリンタ情報の組合せに基づいて、前記コード画像を生成する、請求項８〜１０の何れかに記載の情報処理システム。
【請求項１２】
前記サーバは、    印字が許可されたプリンタを識別するプリンタＩＤを記憶する手段と、    前記記憶されたプリンタＩＤと、印字に使用するプリンタを識別するプリンタＩＤとが一致しない場合、前記コード画像の生成を禁止する手段と、を更に備える、請求項８〜１１の何れかに記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、情報処理装置、プログラム、情報処理方法、及び、情報処理システムに関する。
【背景技術】
【０００２】  世の中に流通している様々な商品、又は、商品の包装には、様々なコード画像が印字されている。このようなコード画像は、例えば、一次元バーコード、二次元バーコード、人間による読み取りが可能な目視可能文字（以下「ヒューマンリーダブル文字」という）、又は、これらの組合せの画像である。【０００３】  コード画像には、偽造のリスクがある。例えば、正規品ではない商品に、正規品と同じコード画像が付されて販売されるリスクがある。【０００４】  このリスクを低減するために、従来、コード画像の偽造を防ぐ技術が知られている。例えば、特開２０１６−１９２８６号公報は、二次元コードの複製を防止する技術を開示している。具体的には、特開２０１６−１９２８６号公報は、二次元コードのパターンに、微小形状を含む二次パターンを組み合わせる方法を開示している。微小形状は、バーコードスキャナによって検出される程度に大きいが、標準的な複製デバイスによって複製される可能性が低い。これにより、二次元コードの複製が困難になる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】  しかし、特開２０１６−１９２８６号公報では、二次パターンを解読可能な複製デバイス（例えば、高解像度の複製デバイス）による二次元コードの複製を防ぐことはできない。したがって、コード画像の偽造防止効果は不十分である。【０００６】  本発明の目的は、コード画像の偽造防止効果を向上させることである。
【課題を解決するための手段】
【０００７】  本発明のある態様は、  プリンタと接続可能な情報処理装置であって、  印字に使用するプリンタに関するプリンタ情報を取得する手段と、  前記取得したプリンタ情報に基づくコード画像に対応するコード画像を生成する手段と、を備える、情報処理装置である。
【発明の効果】
【０００８】  本発明のある態様によれば、コード画像の偽造防止効果を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態の情報処理システムの構成を示す図。
【図２】図１のスマートフォンの構成を示すブロック図。
【図３】図１のクライアント端末の構成を示すブロック図。
【図４】図１のプリンタの構成を示すブロック図。
【図５】図１のサーバの構成を示すブロック図。
【図６】第１実施形態のプリンタ情報データベースのデータ構造を示す図。
【図７】第１実施形態の基準情報データベースのデータ構造を示す図。
【図８】第１実施形態のプリンタ情報更新処理のシーケンス図。
【図９】第１実施形態のコード画像印字処理のシーケンス図。
【図１０】図９の処理の画面例を示す図。
【図１１Ａ】第１実施形態のコード画像の第１例の説明図。
【図１１Ｂ】第１実施形態のコード画像の第１例の説明図。
【図１１Ｃ】第１実施形態のコード画像の第１例の説明図。
【図１１Ｄ】第１実施形態のコード画像の第１例の説明図。
【図１１Ｅ】第１実施形態のコード画像の第１例の説明図。
【図１２Ａ】第１実施形態のコード画像の第２例の説明図。
【図１２Ｂ】第１実施形態のコード画像の第２例の説明図。
【図１２Ｃ】第１実施形態のコード画像の第２例の説明図。
【図１３Ａ】第１実施形態のコード画像の第３例の説明図。
【図１３Ｂ】第１実施形態のコード画像の第３例の説明図。
【図１４Ａ】第１実施形態のコード画像の第４例の説明図。
【図１４Ｂ】第１実施形態のコード画像の第４例の説明図。
【図１４Ｃ】第１実施形態のコード画像の第４例の説明図。
【図１４Ｄ】第１実施形態のコード画像の第４例の説明図。
【図１５Ａ】第１実施形態のコード画像の第５例の説明図。
【図１５Ｂ】第１実施形態のコード画像の第５例の説明図。
【図１５Ｃ】第１実施形態のコード画像の第５例の説明図。
【図１５Ｄ】第１実施形態のコード画像の第５例の説明図。
【図１５Ｅ】第１実施形態のコード画像の第５例の説明図。
【図１６Ａ】第１実施形態のコード画像の第６例の説明図。
【図１６Ｂ】第１実施形態のコード画像の第６例の説明図。
【図１６Ｃ】第１実施形態のコード画像の第６例の説明図。
【図１７Ａ】第１実施形態のコード画像の第７例の説明図。
【図１７Ｂ】第１実施形態のコード画像の第７例の説明図。
【図１７Ｃ】第１実施形態のコード画像の第７例の説明図。
【図１８Ａ】図９のコード画像の生成の方法を示すフローチャート。
【図１８Ｂ】第１実施形態のプリンタ情報に基づくコード画像を生成するまでの流れを模式的に示す図。
【図１８Ｃ】第１実施形態のコード表の第１例を模式的に示す図。
【図１８Ｄ】第１実施形態のコード表の第２例を模式的に示す図。
【図１８Ｅ】第１実施形態のコード表の第３例を模式的に示す図。
【図１９】第１実施形態の真贋判定処理のフローチャート。
【図２０】図１９の真贋判定処理の画面例を示す図。
【図２１】第２実施形態のコード画像印字処理のシーケンス図。
【図２２】図２１の処理の画面例を示す図。
【図２３】第２実施形態の基準情報データベースのデータ構造を示す図。
【図２４】第２実施形態の真贋判定処理のシーケンス図。
【図２５】第３実施形態のプリンタの構成を示すブロック図。
【図２６】第３実施形態のコード画像印字処理のシーケンス図。
【図２７】変形例２の印字権限情報データベースのデータ構造を示す図。
【発明を実施するための形態】
【００１０】  以下、本発明の一実施形態について、図面に基づいて詳細に説明する。なお、実施形態を説明するための図面において、同一の構成要素には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１１】（１）第１実施形態  第１実施形態について説明する。
【００１２】（１−１）情報処理システム  第１実施形態の情報処理システムについて説明する。図１は、第１実施形態の情報処理システムの構成を示す図である。
【００１３】  情報処理システム１は、スマートフォン１０と、クライアント端末３０と、プリンタ４０と、サーバ６０と、を備える。  スマートフォン１０、クライアント端末３０、及び、サーバ６０は、情報処理装置の一例である。  スマートフォン１０、クライアント端末３０、プリンタ４０、及び、サーバ６０は、ネットワークＮＷ、無線通信、又は、有線通信を介して、互いに通信可能に接続される。
【００１４】（１−１−１）スマートフォン  第１実施形態のスマートフォンについて説明する。図２は、図１のスマートフォンの構成を示すブロック図である。
【００１５】  図２に示すように、スマートフォン１０は、記憶装置１１と、プロセッサ１２と、入出力インタフェース１３と、通信インタフェース１４と、カメラ１５と、を備える。
【００１６】  記憶装置１１は、プログラム及びデータを記憶するように構成される。記憶装置１１は、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、及び、ストレージ（例えば、フラッシュメモリ又はハードディスク）の組合せである。
【００１７】  プログラムは、例えば、以下のプログラムを含む。・ＯＳ（Operating System）のプログラム・情報処理を実行するアプリケーション（例えば、真贋判定アプリケーション）のプログラム
【００１８】  データは、例えば、以下のデータを含む。・情報処理において参照されるデータベース・情報処理を実行することによって得られるデータ（つまり、情報処理の実行結果）
【００１９】  プロセッサ１２は、記憶装置１１に記憶されたプログラムを起動することによって、スマートフォン１０の機能を実現するように構成される。プロセッサ１２は、コンピュータの一例である。
【００２０】  入出力インタフェース１３は、スマートフォン１０に接続される入力デバイスからスマートフォン１０のユーザの指示を受け付け、かつ、スマートフォン１０に接続される出力デバイスに情報を出力するように構成される。  入力デバイスは、例えば、タッチパネルに表示されるソフトキー、マイク、及び、それらの組合せである。  出力デバイスは、例えば、ディスプレイ、スピーカ、及び、それらの組合せである。
【００２１】  通信インタフェース１４は、他の装置との通信を制御するように構成される。
【００２２】  カメラ１５は、画像を撮像し、かつ、撮像した画像に対応する画像データを生成するように構成される。
【００２３】（１−１−２）クライアント端末  第１実施形態のクライアント端末について説明する。図３は、図１のクライアント端末の構成を示すブロック図である。
【００２４】  図３に示すように、クライアント端末３０は、記憶装置３１と、プロセッサ３２と、入出力インタフェース３３と、通信インタフェース３４と、を備える。
【００２５】  記憶装置３１は、プログラム及びデータを記憶するように構成される。記憶装置３１は、例えば、ＲＯＭ、ＲＡＭ、及び、ストレージ（例えば、フラッシュメモリ又はハードディスク）の組合せである。
【００２６】  プログラムは、例えば、以下のプログラムを含む。・ＯＳのプログラム・情報処理を実行するアプリケーション（例えば、ウェブブラウザ）のプログラム・印字の対象となる画像を生成するアプリケーション（以下「画像生成アプリケーション」という）
【００２７】  データは、例えば、以下のデータを含む。・情報処理において参照されるデータベース・情報処理を実行することによって得られるデータ（つまり、情報処理の実行結果）
【００２８】  プロセッサ３２は、記憶装置３１に記憶されたプログラムを起動することによって、クライアント端末３０の機能を実現するように構成される。プロセッサ３２は、コンピュータの一例である。
【００２９】  入出力インタフェース３３は、クライアント端末３０に接続される入力デバイスからクライアント端末３０のユーザの指示を受け付け、かつ、クライアント端末３０に接続される出力デバイスに情報を出力するように構成される。  入力デバイスは、例えば、キーボード、ポインティングデバイス、タッチパネル、又は、それらの組合せである。  出力デバイスは、例えば、ディスプレイである。
【００３０】  通信インタフェース３４は、他の装置との通信を制御するように構成される。
【００３１】（１−１−３）プリンタ  第１実施形態のプリンタについて説明する。図４は、図１のプリンタの構成を示すブロック図である。
【００３２】  図４に示すように、プリンタ４０は、プロセッサ４２と、記憶装置４１と、入出力インタフェース４３と、通信インタフェース４４と、ヘッド駆動回路４７ａと、印字ヘッド４７ｂと、ローラ駆動回路４８ａと、搬送ローラ４８ｂと、カッタ駆動回路４９ａと、カッタ４９ｂと、を備える。
【００３３】  記憶装置４１は、プログラム及びデータを記憶するように構成される。記憶装置４１は、例えば、ＲＯＭ、ＲＡＭ、及び、ストレージ（例えば、フラッシュメモリ又はハードディスク）の組合せである。
【００３４】  プログラムは、例えば、以下のプログラムを含む。・ＯＳのプログラム・各回路を介して、ハードウェアを制御するファームウェアのプログラム・印字処理を実行するアプリケーションのプログラム
【００３５】  データは、例えば、以下のデータを含む。・ハードウェアの制御のための設定情報
【００３６】  プロセッサ４２は、記憶装置４１に記憶されたプログラムを起動することによって、プリンタ４０の機能を実現するように構成される。プロセッサ４２は、コンピュータの一例である。  具体的には、プロセッサ４２は、ファームウェアのプログラムを起動することにより、ローラ駆動回路４８ａを介して搬送ローラ４８ｂを駆動させ、ヘッド駆動回路４７ａを介して印字ヘッド４７ｂを駆動させ、かつ、カッタ駆動回路４９ａを介してカッタ４９ｂを駆動させる。
【００３７】  入出力インタフェース４３は、プリンタ４０の入力デバイスからプリンタ４０のユーザの指示を受け付け、かつ、プリンタ４０の出力デバイスに情報を出力するように構成される。  入力デバイスは、例えば、ハードキー、タッチパネル、又は、それらの組合せである。  出力デバイスは、例えば、ディスプレイ、スピーカ、又は、それらの組合せである。
【００３８】  通信インタフェース４４は、他の装置との通信を制御するように構成される。
【００３９】  印字ヘッド４７ｂは、印字媒体に画像を印字するように構成される。印字ヘッド４７ｂは、例えば、サーマルヘッドである。
【００４０】  搬送ローラ４８ｂは、印字媒体を搬送するように構成される。搬送ローラ４８ｂは、例えば、プラテンローラである。
【００４１】  カッタ４９ｂは、画像が印字された印字媒体を切断するように構成される。
【００４２】（１−１−４）サーバ  第１実施形態のサーバについて説明する。図５は、図１のサーバの構成を示すブロック図である。
【００４３】  図５に示すように、サーバ６０は、記憶装置６１と、プロセッサ６２と、入出力インタフェース６３と、通信インタフェース６４と、を備える。
【００４４】  記憶装置６１は、プログラム及びデータを記憶するように構成される。記憶装置６１は、例えば、ＲＯＭ、ＲＡＭ、及び、ストレージ（例えば、フラッシュメモリ又はハードディスク）の組合せである。
【００４５】  プログラムは、例えば、以下のプログラムを含む。・ＯＳのプログラム・サーバ６０の機能を実現するアプリケーションのプログラム
【００４６】  データは、例えば、以下のデータを含む。・情報処理において参照されるデータベース（例えば、プリンタ情報データベース（後述））・情報処理を実行することによって得られるデータ（つまり、情報処理の実行結果）
【００４７】  プロセッサ６２は、記憶装置６１に記憶されたプログラムを起動することによって、サーバ６０の機能を実現するように構成される。プロセッサ６２は、コンピュータの一例である。
【００４８】  入出力インタフェース６３は、サーバ６０に接続される入力デバイスから、サーバ６０のオペレータの指示を受け付け、かつ、サーバ６０に接続される出力デバイスに情報を出力するように構成される。  入力デバイスは、例えば、キーボード、ポインティングデバイス、タッチパネル、又は、それらの組合せである。  出力デバイスは、例えば、ディスプレイである。
【００４９】  通信インタフェース６４は、他の装置との通信を制御するように構成される。
【００５０】（１−２）データベース  第１実施形態のデータベースについて説明する。  以下のデータベースは、記憶装置６１に記憶される。
【００５１】（１−２−１）プリンタ情報データベース  第１実施形態のプリンタ情報データベースについて説明する。図６は、第１実施形態のプリンタ情報データベースのデータ構造を示す図である。
【００５２】  図６に示すように、プリンタ情報データベースは、「プリンタＩＤ」フィールドと、「使用量」フィールドと、「交換回数」フィールドと、「設置場所」フィールドと、を含む。各フィールドは、互いに関連付けられている。
【００５３】  「プリンタＩＤ」フィールドには、プリンタ４０を識別するプリンタＩＤが格納される。プリンタＩＤは、例えば、プリンタ４０のシリアル番号である。
【００５４】  「使用量」フィールドには、プリンタ４０の使用量を示す情報が格納される。「使用量」フィールドの情報は、プリンタ４０を使用する度に変化する。「使用量」フィールドの情報は、プリンタ４０から送信される情報に応じて更新される。使用量とは、例えば、以下の少なくとも１つを含む。・印字媒体の搬送距離・プラテンローラの回転距離・カッタ４９ｂの駆動回数
【００５５】  「交換回数」フィールドには、プリンタ４０の部品の交換回数を示す情報が格納される。交換回数を示す情報は、例えば、以下の少なくとも１つを含む。「交換回数」フィールドの情報は、プリンタ４０から送信される情報に応じて更新される。・印字ヘッド４７ｂの交換回数・搬送ローラ４８ｂの交換回数・カッタ４９ｂの交換回数
【００５６】  「設置場所」フィールドには、プリンタ４０の設置場所を示す情報が格納される。設置場所を示す情報は、例えば、以下の少なくとも１つを含む。「設置場所」フィールドの情報は、プリンタ４０のユーザの指示に応じて更新される。・国コード・郵便番号・住所・プリンタ４０を使用する部署を示すコード
【００５７】（１−２−２）基準情報データベース  第１実施形態の基準情報データベースについて説明する。図７は、第１実施形態の基準情報データベースのデータ構造を示す図である。
【００５８】  基準情報データベースには、真贋判定の基準となる情報（以下「基準情報」という）が格納される。  図７に示すように、基準情報データベースは、「商品コード」フィールドと、「基準情報」フィールドと、を含む。各フィールドは、互いに関連付けられている。
【００５９】  「商品コード」フィールドには、真贋判定の基準となる商品を識別する商品コードが格納される。
【００６０】  「基準情報」フィールドには、真贋判定の基準となるコード画像（以下「基準コード画像」という）が格納される。
【００６１】（１−３）情報処理  第１実施形態の情報処理について説明する。
【００６２】（１−３−１）プリンタ情報更新処理  第１実施形態のプリンタ情報更新処理について説明する。図８は、第１実施形態のプリンタ情報更新処理のシーケンス図である。
【００６３】  図８のプリンタ情報更新処理は、プリンタ情報データベース（図６）の更新を伴う事象（以下「更新イベント」という）が発生した場合に開始される。  更新イベントは、例えば、以下の少なくとも１つを含む。・画像の印字・カッタの駆動・プリンタ４０の部品（サーマルヘッド、カッタ、及び、プラテンローラの少なくとも１つ）の交換・プリンタ４０のユーザによる設置場所の指定・プリンタ４０のユーザによるプリンタ４０の初期登録・プリンタ４０のネットワーク接続・プリンタ４０の電源オン・ユーザ操作による更新指示
【００６４】  プリンタ４０は、プリンタ情報の更新（Ｓ１４００）を実行する。  具体的には、プロセッサ４２は、クライアント端末３０から送信された画像を受け付けると、当該画像を印字媒体に印字した後に、記憶装置４１に記憶されたプリンタ情報のうち、印字媒体の搬送距離を示す情報を更新する。
【００６５】  ステップＳ１４００の後、プリンタ４０は、プリンタ情報更新リクエスト（Ｓ１４０１）を実行する。  一例として、プロセッサ４２は、通信インタフェース４４を介して、更新リクエストをサーバ６０に送信する。更新リクエストは、プリンタ４０を識別するプリンタＩＤと、記憶装置４１に記憶されたプリンタ情報と、を含む。このプリンタ情報は、ステップＳ１４００で更新された印字媒体の搬送距離を示す情報を含む。
【００６６】  別の例として、クライアント端末３０がステップＳ１４０１を実行する場合、プロセッサ３２は、クライアント端末３０のユーザの指示に応じて、プリンタ４０の設置場所を示す情報を受け付ける。  次に、プロセッサ３２は、通信インタフェース３４を介して、更新リクエストをサーバ６０に送信する。更新リクエストは、プリンタ４０を識別するプリンタＩＤと、プリンタ４０の設置場所を示す情報と、を含む。
【００６７】  ステップＳ１４０１の後、サーバ６０は、プリンタ情報の更新（Ｓ１６００）を実行する。  具体的には、プロセッサ６２は、プリンタ情報データベース（図６）において、ステップＳ１４０１で送信された更新リクエストに含まれるプリンタＩＤに関連付けられたレコードを特定する。  次に、プロセッサ６２は、特定したレコードの「使用量」フィールドに、ステップＳ１４０１で送信された更新リクエストに含まれる印字媒体の搬送距離を示す情報を格納する。  これにより、記憶装置６１に記憶されたプリンタ情報が更新される。
【００６８】（１−３−２）コード画像印字処理  第１実施形態のコード画像印字処理について説明する。図９は、第１実施形態のコード画像印字処理のシーケンス図である。図１０は、図９の処理の画面例を示す図である。
【００６９】  図９のコード画像印字処理は、クライアント端末３０のユーザが、入出力インタフェース３３を介して、印字の指示を与えた場合に開始される。
【００７０】  図９に示すように、クライアント端末３０は、商品情報の取得（Ｓ１３１０）を実行する。  具体的には、プロセッサ３２は、画面Ｐ１００（図１０）をディスプレイに表示する。
【００７１】  図１０に示すように、画面Ｐ１００は、入力フィールドオブジェクトＦ１００ａ及びＦ１００ｂと、ボタンオブジェクトＢ１００と、を含む。  入力フィールドオブジェクトＦ１００ａは、コード画像が印字された印字媒体を添付すべき商品に関する商品情報を指定するためのフィールドである。クライアント端末３０のユーザが、入力フィールドオブジェクトＦ１００ａにおいて商品コード、製造年月日、ロット番号、及び、商品シリアルコードを指定すると、プロセッサ３２は、指定された情報（商品コード、製造年月日、有効期限、ロット番号、及び、商品シリアルコード）を含む商品情報を受け付ける。  入力フィールドオブジェクトＦ１００ｂは、印字に使用するプリンタ４０を指定するためのフィールドである。クライアント端末３０のユーザが、入力フィールドオブジェクトＦ１００ｂにおいてプリンタＩＤを指定すると、プロセッサ３２は、指定されたプリンタＩＤを受け付ける。
【００７２】  図９に示すように、ステップＳ１３１０の後、クライアント端末３０は、プリンタ情報リクエスト（Ｓ１３１１）を実行する。  具体的には、クライアント端末３０のユーザが画面Ｐ１００（図１０）のボタンオブジェクトＢ１００を指定すると、プロセッサ３２は、プリンタ情報リクエストをサーバ６０に送信する。プリンタ情報リクエストは、入力フィールドオブジェクトＦ１００ｂで指定されたプリンタＩＤを含む。
【００７３】  図９に示すように、ステップＳ１３１１の後、サーバ６０は、プリンタ情報レスポンス（Ｓ１６１０）を送信する。  具体的には、プロセッサ６２は、プリンタ情報データベース（図６）において、ステップＳ１３１１でクライアント端末３０から送信されたプリンタ情報リクエストに含まれるプリンタＩＤに関連付けられたレコードを特定する。  次に、プロセッサ６２は、特定したレコードのプリンタ情報（「使用量」フィールド、「交換回数」フィールド、及び、「設置場所」フィールドの情報）を取得する。  次に、プロセッサ６２は、プリンタ情報レスポンスをクライアント端末３０に送信する。プリンタ情報レスポンスは、取得したプリンタ情報を含む。
【００７４】  ステップＳ１６１０の後、クライアント端末３０は、コード画像の生成（Ｓ１３１２）を実行する。  具体的には、プロセッサ３２は、ステップＳ１３１０で取得した商品情報に基づいて、コード画像を生成する。  次に、プロセッサ３２は、ステップＳ１６１０でサーバ６０から送信されたプリンタ情報レスポンスに含まれるプリンタ情報に基づいて、コード画像を生成する。生成されたコード画像は、コード化された商品情報と、プリンタ情報に基づく偽造防止情報と、を含む。コード画像の生成の方法については、後述する。
【００７５】  コードは、例えば、以下のものを含む。・一次元コード（一例として、一次元バーコード）・二次元コード（一例として、二次元コード、マトリクスコード、若しくは、スタックコード）・暗号化された文字列・上記の組合せ
【００７６】  次に、プロセッサ３２は、画面Ｐ１０１（図１０）をディスプレイに表示する。
【００７７】  図１０に示すように、画面Ｐ１０１は、画像オブジェクトＩＭＧ１０１と、ボタンオブジェクトＢ１０１と、を含む。  画像オブジェクトＩＭＧ１０１は、生成されたコード画像のプレビュー画像である。
【００７８】  ステップＳ１３１２の後、クライアント端末３０は、印字リクエスト（Ｓ１３１３）を実行する。  具体的には、クライアント端末３０のユーザが画面Ｐ１０１（図１０）のボタンオブジェクトＢ１０１を指定すると、プロセッサ３２は、印字リクエストをプリンタ４０に送信する。印字リクエストは、基準コード画像及び印字画像（例えば、文字、図形、又はそれらの組合せの画像）を印字するための印字コマンドを含む。
【００７９】  ステップＳ１３１３の後、プリンタ４０は、印字（Ｓ１４１０）を実行する。  具体的には、プロセッサ４２は、ステップＳ１３１３においてクライアント端末３０から送信された印字リクエストに含まれる印字コマンドに基づいて、ヘッド駆動回路４７ａ、ローラ駆動回路４８ａ、及び、カッタ駆動回路４９ａに制御信号を送信する。  ヘッド駆動回路４７ａ、ローラ駆動回路４８ａ、及び、カッタ駆動回路４９ａは、それぞれ、プロセッサ４２から送信された制御信号に基づいて、印字ヘッド４７ｂ、搬送ローラ４８ｂ、及び、カッタ駆動回路４９ａを駆動させる。  これにより、ステップＳ１３１２で生成されたコード画像が印字媒体に印字される。印字されたコード画像には、偽造防止情報が埋め込まれている。
【００８０】  図９に示すように、ステップＳ１３１３の後、クライアント端末３０は、登録リクエスト（Ｓ１３１４）を実行する。  具体的には、プロセッサ３２は、登録リクエストをサーバ６０に送信する。登録リクエストは、ステップＳ１３１２で生成されたコード画像を含む。このコード画像は、真贋判定の基準となるコード画像（以下「基準コード画像」という）である。
【００８１】  ステップＳ１３１４の後、サーバ６０は、基準コード画像の登録（Ｓ１６１１）を実行する。  具体的には、プロセッサ６２は、ステップＳ１３１４でクライアント端末３０から送信された登録リクエストに含まれる基準コード画像をデコードすることにより、基準コード画像に対応する商品を識別する商品コードを特定する。  次に、プロセッサ６２は、基準情報データベース（図７）を更新する。基準情報データベースの各フィールドには、以下の情報が格納される。・「商品コード」フィールドに、特定した商品コードが格納される。・「基準情報」フィールドに、基準コード画像が格納される。
【００８２】（１−３−２−１）コード画像の第１例  第１実施形態のコード画像の第１例について説明する。図１１Ａ〜図１１Ｅは、第１実施形態のコード画像の第１例の説明図である。コード画像の第１例は、コードの内部にマークが付加される例である。
【００８３】  ここでは、コードとして、二次元コードの一種であるＤａｔａＭａｔｒｉｘコードを用いる例を説明する。なお、ＤａｔａＭａｔｒｉｘコード以外の二次元コード、例えば、ＱＲ（Ｑｕｉｃｋ  Ｒｅｓｐｏｎｓｅ）コード、ＶｅｒｉＣｏｄｅ、ＰＤＦ４１７コード、Ａｚｔｅｃコード、又は、ＭａｘｉＣｏｄｅが用いられる場合も、ＤａｔａＭａｔｒｉｘコードと同様である。
【００８４】  二次元コードは、一般に、二次元的に配列された複数のデータセル（以下、単に「セル」と称する。）を含む。複数のセルは、同一のサイズの正方形または長方形の形状を有する。複数のセルの一部は、明るい（または白い）セルであり、他の一部は、暗い（または黒い）セルである。明るいセルおよび暗いセルの一方は０（ゼロ）の値を表し、他方は１の値を表す。よって、これらのセルの明暗の二次元パターンは、０および１の数値列で表現される特定の情報を表す。
【００８５】  図１１Ａでは、コードの領域の内部に、マークＭ（黒い点）が付加されている。マークＭは、偽造防止情報の一例である。マークＭが付加される位置（座標）は、プリンタ情報の組合せに基づいて決定される。この場合、コード画像は、マークＭが付される位置を示す値（以下「座標値」という）を示すコードパラメータを含む。
【００８６】  図１１Ｂでは、コードの領域の内部に、２つのマークＭ（黒い点および白い点）が付加されている。この例のように、複数のマークＭが付加されてもよい。図示される二次元コードを構成する複数のセルのうち、明るいセルには黒い点が付加され、暗いセルには白い点が付加されている。この場合、コード画像は、２つのマークＭのそれぞれの座標値を示すコードパラメータを含む。
【００８７】  図１１Ｃの例では、コードの領域の内部に、３つのマークＭ（黒い点および２つの白い点）が付加されている。この場合、コード画像は、３つのマークＭのそれぞれの座標値を示すコードパラメータを含む。
【００８８】  図１１Ｄの例では、マークＭが点ではなく丸印である。このように、付加されるマークＭの形状は点以外の形状であってもよい。
【００８９】  図１１Ｅの例では、２つの丸印のマークＭが、コードの領域内に付加されている。二次元コードを構成する複数のセルのうち、明るいセルには黒い丸が付加され、暗いセルには白い丸が付加される。
【００９０】  マークＭは、例えば、三角形、四角形、星印、その他の記号、文字、又は、それらの組合せであってもよい。複数のマークが付加される場合、マークによって形状が異なってもよい。その場合、コード画像は、個々のマークの形状を示すコードパラメータを含む。
【００９１】（１−３−２−２）コード画像の第２例  第１実施形態のコード画像の第２例について説明する。図１２Ａ〜図１２Ｃは、第１実施形態のコード画像の第２例の説明図である。コード画像の第２例は、コードの外部、又は、コードの外部との境界部分に、１つ以上のマークが付加される例である。
【００９２】  図１２Ａは、コードのアライメントパターン（コードの外周部のＬ字状の太い線）における特定の箇所を白抜きにした例を示している。この例ではアライメントパターン上の３箇所に白いマークＭが付加されている。マークＭは、偽造防止情報の一例である。このように、アライメントパターンに１つ以上のマークＭを付加してもよい。
【００９３】  図１２Ｂは、アライメントパターンの周囲に３つのマークＭ（黒いドット）が付加された例を示している。これらのマークＭは、アライメントパターンに隣接している。
【００９４】  図１２Ｃは、アライメントパターンの周囲に離れて３つのマークＭ（黒いドット）が付加された例を示している。これらの例のように、マークＭの印字位置は、コードの領域の外側であってもよい。
【００９５】  コード画像の第１例及び第２例において、コードパラメータは、コード画像の要素に関する情報（マークの個数、各マークの形状、各マークの画像内の座標値（Ｘ座標及びＹ座標））を含む。プロセッサ３２は、ステップＳ１３１０で取得した商品情報と、ステップＳ１３１２で取得したプリンタ情報と、に基づいて、特定のルールに従って、コードパラメータを決定する。
【００９６】  コード画像の第１例及び第２例では、付加されるマークＭは、いずれも、コードに含まれる個々のセルの大きさよりも小さい。また、明るいセルおよび暗いセルのそれぞれの個数に比べて、遥かに少数（例えば１／１０未満）のマークＭが付加されている。このため、マークＭを付与した後もコードの読み取りに支障をきたすことはない。
【００９７】  二次元コードにおけるセル（以下「データセル」という）の個数をＮとし、付加されるマークの個数をｎとする。Ｎは、コードの種類によって異なるが、例えば２０以上の整数である。マークの個数ｎは、１以上Ｎ以下の整数であり、ある例では、２≦ｎ≦Ｎ／１０である。ｎ個のマークが付される場合、コードパラメータは、ｎ個の座標値を含む。プロセッサは、コードパラメータに基づいてｎ個の座標値を決定し、そのｎ個の座標値が示す位置に、ｎ個のマークを付加する。ｎ個の座標値の組み合わせは、プリンタ情報によって決まる。座標値の組み合わせは、例えば、プリンタ情報と一対一に対応する。
【００９８】  以上の例の他、二次元コードの領域の周囲に文字列を含むキャラクタマークを付加する改変も可能である。キャラクタマークの位置、角度、フォント（サイズ、書体、文字間隔を含む）、および文字列の内容の少なくとも１つを、物品ごとまたは物品群ごとに変えることにより、同様の偽造防止効果を得ることができる。
【００９９】  マークＭの個数は、４個以上であってもよい。  マークＭの個数が多いほど、以下の効果が得られる。・偽造防止効果を向上させることができる。・汚れまたは欠陥によって一部のマークが認識できなかったとしても、真贋の判定の精度を向上させることができる。
【０１００】（１−３−２−３）コード画像の第３例  第１実施形態のコード画像の第３例について説明する。図１３Ａ及び図１３Ｂは、第１実施形態のコード画像の第３例の説明図である。コード画像の第３例は、コードの領域の周囲にキャラクタマークが付加される例である。
【０１０１】  図１３Ａの例では、数字、アルファベット、及び、記号からなる文字列（キャラクタマークの一例）が、コードの周辺上部に付加されている。
【０１０２】  図１３Ｂの例では、キャラクタマークＣＭの内容、位置、及び、大きさが、図１３Ａの例とは異なり、かつ、時計回りに傾いている。キャラクタマークＣＭは、偽造防止情報の一例である。
【０１０３】  このように、プロセッサ３２は、プリンタ情報に応じて、キャラクタマークＣＭの位置、回転角度、及び、フォントの少なくとも１つを変化させてもよい。この場合、コードパラメータは、キャラクタマークＣＭの内容、座標値、及び、フォントを示す情報を含む。
【０１０４】（１−３−２−４）コード画像の第４例  第１実施形態のコード画像の第４例について説明する。図１４Ａ〜図１４Ｄは、第１実施形態のコード画像の第４例の説明図である。コード画像の第４例は、ヒューマンリーダブル文字の例である。
【０１０５】  コード画像の第４例では、コードは、二次元コードに加えて、ヒューマンリーダブル文字を含む。ヒューマンリーダブル文字は、偽造防止情報の一例である。  プロセッサ３２は、商品情報及びプリンタ情報に基づいて、コード画像における二次元コード及びヒューマンリーダブル文字の相対位置を決定する。この場合、コードパラメータは、二次元コード及びヒューマンリーダブル文字の少なくとも一方の、コード画像内の所定の基準位置からの変位量を示す情報を含む。
【０１０６】  はじめに、プロセッサ３２は、図１４Ａのコード画像を生成する。このコード画像は、プリンタ情報を参照せず、商品情報のみを参照して生成されたコード画像である。つまり、このコード画像は、偽造防止対策が施されていない場合の印字例である。  図１４Ａに示すように、コード画像は、二次元コードと、４行の文字列から構成されるヒューマンリーダブル文字と、を含む。ヒューマンリーダブル文字は、二次元コードの横に配置される。ヒューマンリーダブル文字は、上から順に、（０１）商品コード、（２１）商品シリアルコード、（１０）ロット番号、及び、（１７）有効期限を表している。これは、二次元コードが示す情報と同じである。ヒューマンリーダブル文字の表示態様は様々であり、図示される態様に限定されない。
【０１０７】  次に、プロセッサ３２は、図１４Ａのコード画像を、図１４Ｂのコード画像に変換する。具体的には、プロセッサ３２は、二次元コードとヒューマンリーダブル文字との相対位置を、プリンタ情報に応じて変化させる。例えば、プロセッサ３２は、ステップＳ１６１０で取得した「使用量」フィールド、「交換回数」フィールド、及び、「設置場所」フィールドの情報の組合せ毎に異なる態様で、ヒューマンリーダブル文字の位置を変化させる。
【０１０８】  図１４Ｂは、ヒューマンリーダブル文字を、上方向（＋Ｙ方向）に０．５ｍｍだけシフトさせる例を示している。  図１４Ｃは、ヒューマンリーダブル文字を、左方向（−Ｘ方向）に０．５ｍｍだけシフトさせる例を示している。  図１４Ｄは、ヒューマンリーダブル文字を、下方向（−Ｙ方向）に０．５ｍｍ、かつ、右方向（＋Ｘ方向）に１ｍｍだけシフトさせる例を示している。  図１４Ｂ〜図１４Ｄのコード画像は、プリンタ情報に基づくコード画像である。つまり、このコード画像は、偽造防止対策が施されている場合の印字例である。
【０１０９】  このように、プロセッサ３２は、コードとヒューマンリーダブル文字との相対位置を、プリンタ情報に応じて変化させてもよい。この場合、コードパラメータは、Ｘ方向及びＹ方向のそれぞれの変位量を示す情報を含む。
【０１１０】  なお、プロセッサ３２は、ヒューマンリーダブル文字の代わりに、コードの位置を同様の方法でシフトさせてもよい。  また、プロセッサ３２は、コード及びヒューマンリーダブル文字の両方をシフトさせてもよい。この場合、コードパラメータの数が多くなるため、偽造防止効果をより向上させることができる。
【０１１１】（１−３−２−５）コード画像の第５例  第１実施形態のコード画像の第５例について説明する。図１５Ａ〜図１５Ｅは、第１実施形態のコード画像の第５例の説明図である。コード画像の第５例は、ヒューマンリーダブル文字及びマークの組合せの例である。
【０１１２】  プロセッサ３２は、バーコードとヒューマンリーダブル文字との相対位置を変化させることに加えて、コード画像の第１例及び第２例のように、コードの内部または外部にマーク（例えば、記号、図形、文字、または文字列）を付加する。マークは、偽造防止情報の一例である。
【０１１３】  図１５Ａは、ヒューマンリーダブル文字および点の両方が、基準の位置にある例を示している。図１５Ａのコード画像は、プリンタ情報を参照せず、商品情報のみを参照して生成されたコード画像である。つまり、このコード画像は、偽造防止対策が施されていない場合の印字例である。
【０１１４】  図１５Ｂは、それぞれの基準位置から、ヒューマンリーダブル文字が上方向に０．５ｍｍシフトし、点が上方向に５ｍｍシフトした例を示している。  図１５Ｃは、それぞれの基準位置から、ヒューマンリーダブル文字が下方向に０．５ｍｍ、右方向に０．５ｍｍシフトし、点が上方向に８ｍｍ、左方向に５ｍｍシフトした例を示している。  図１５Ｄは、それぞれの基準位置に対して、ヒューマンリーダブル文字が上方向に０．５ｍｍ、右方向に０．５ｍｍシフトし、点が上方向に５ｍｍ、左方向に１０ｍｍシフトした例を示している。  図１５Ｅは、それぞれの基準位置に対して、ヒューマンリーダブル文字が下方向に１ｍｍ、右方向に０．５ｍｍシフトし、点が下方向に２ｍｍ、左方向に５ｍｍシフトした例を示している。  図１５Ｂ〜図１５Ｅのコード画像は、プリンタ情報に基づくコード画像である。つまり、このコード画像は、偽造防止対策が施されている場合の印字例である。
【０１１５】  コード画像の第５例によれば、プロセッサ３２は、コードとヒューマンリーダブル文字との相対位置、及び、マークの位置の両方を、プリンタ情報に応じて変化させる。これにより、偽造防止効果をより向上させることができる。
【０１１６】  コード画像の第５例では、マークの数は単数でも複数でもよい。一部のマークが汚れまたは欠陥によって認識できなくなった場合でも真贋の判定を正しく行える可能性を高くするために、マークの数を多く（例えば３個以上に）してもよい。
【０１１７】（１−３−２−６）コード画像の第６例  第１実施形態のコード画像の第６例について説明する。図１６Ａ〜図１６Ｃは、第１実施形態のコード画像の第６例の説明図である。コード画像の第６例では、コードは二次元コードのみを含んでいる。
【０１１８】  プロセッサ３２は、プリンタ情報に基づいて、コードの位置を決定する。  具体的には、プロセッサ３２は、図１６Ａのコード画像を生成する。このコード画像は、コードの周囲を囲む矩形の枠を含んでいる。このコード画像は、プリンタ情報を参照せず、商品情報のみを参照して生成されたコード画像である。つまり、このコード画像は、偽造防止対策が施されていない場合の印字例である。
【０１１９】  次に、プロセッサ３２は、プリンタ情報に基づいて、この枠と、コードとの相対的な位置関係を変化させる。  図１６Ｂは、二次元コードが、基準の位置から左に０．２ｍｍ、上に０．２ｍｍシフトした例を示している。  図１６Ｃは、二次元コードが、基準の位置から右に０．２ｍｍ、下に０．２ｍｍシフトした例を示している。  図１６Ｂ及び図１６Ｃの例では、コードパラメータは、二次元コードについて、コード画像内の基準位置からの、Ｘ方向およびＹ方向のそれぞれにおける変位量を示す情報を含む。変位した二次元コードは、偽造防止情報の一例である。  図１６Ｂ及び図１６Ｃのコード画像は、プリンタ情報に基づくコード画像である。つまり、このコード画像は、偽造防止対策が施されている場合の印字例である。
【０１２０】（１−３−２−７）コード画像の第７例  第１実施形態のコード画像の第７例について説明する。図１７Ａ〜図１７Ｃは、第１実施形態のコード画像の第７例の説明図である。コード画像の第７例は、コードを含まず、ヒューマンリーダブル文字のみを含んでいる。
【０１２１】  プロセッサ３２は、プリンタ情報に基づいて、ヒューマンリーダブル文字の位置を決定する。ヒューマンリーダブル文字は、偽造防止情報の一例である。  具体的には、プロセッサ３２は、図１７Ａのコード画像を生成する。このコード画像は、ヒューマンリーダブル文字の領域を囲む矩形の枠を含んでいる。このコード画像は、プリンタ情報を参照せず、商品情報のみを参照して生成されたコード画像である。つまり、このコード画像は、偽造防止対策が施されていない場合の印字例である。
【０１２２】  次に、プロセッサ３２は、プリンタ情報に基づいて、この枠と、ヒューマンリーダブル文字の領域との相対的な位置関係を変化させる。  図１７Ｂは、ヒューマンリーダブル文字が、基準の位置から左に０．２ｍｍ、上に０．２ｍｍシフトした例を示している。  図１７Ｃは、ヒューマンリーダブル文字が、基準の位置から右に０．２ｍｍ、下に０．１ｍｍシフトした例を示している。  図１７Ｂ及び図１７Ｃの例では、コードパラメータは、ヒューマンリーダブル文字について、画像内の基準位置からの、Ｘ方向およびＹ方向のそれぞれにおける変位量を示す情報を含む。  図１７Ｂ及び図１７Ｃのコード画像は、プリンタ情報に基づくコード画像である。つまり、このコード画像は、偽造防止対策が施されている場合の印字例である。
【０１２３】（１−３−２−８）コード画像の生成の方法  第１実施形態のコード画像の生成の方法について説明する。図１８Ａは、図９のコード画像の生成の方法を示すフローチャートである。ここでは一例として、コードの領域の内部又は外部に、少なくとも１つのドットマークが付加される例を説明する。
【０１２４】  プロセッサ３２は、ステップＳ１３１０で取得した商品情報に対応するコード画像を生成する（Ｓ１３１２０）。
【０１２５】  ステップＳ１３１２０の後、プロセッサ３２は、ステップＳ１６１０でサーバ６０から送信されたプリンタ情報に基づいて、ハッシュ値を計算する（ステップＳ１３１２１）。ハッシュ値は、プリンタ情報の内容を端的に表す値である。ハッシュ値の情報量は、プリンタ情報より小さい。  具体的には、プロセッサ３２は、元情報からハッシュ値を得るためのハッシュ関数（例えば、暗号学的ハッシュ関数）をプリンタ情報に適用することにより、ハッシュ値を計算する。ハッシュ関数は、プリンタ情報から推定されにくいハッシュ値を生成するように設計されることが好ましい。
【０１２６】  ステップＳ１３１２１の後、プロセッサ３２は、計算したハッシュ値に基づいて、プリンタ情報に対応するドットマークの座標値を決定する（Ｓ１３１２２）。  具体的には、プロセッサ３２は、予め用意されたコード表（例えば、ルックアップテーブル）を参照して、コード画像においてドットマークを付加すべき位置を示す座標値を決定する（ステップＳ２２１）。
【０１２７】  コード表は、例えば以下の条件を満たすように作成され得る。・ドットマークの数は、所定の上限数（例えば、４個）以下である（つまり、ドットマークの数を制限することにより、ドットマークを目立ちにくくする）。・ドットマークの密度は、所定値以下である（つまり、隣接する位置に複数のドットマークを付加することを避けることにより、ドットマークを目立ちにくくする）。例えば、５×５セルの領域内には１つのマークのみが付加されるようにする。・コード画像の内部にドットマークを配置する場合、コード画像の読み取りの負担を低減する（つまり、偽造防止機能のない一般的な読取装置でもコード画像を読取可能にする）。・ドットパターン間のハミング距離は、一定値以上である（つまり、類似した配置は避けることにより、一部のドットマークの印字精度が低かったとしても、偽造防止効果が維持されるようにする）。  以上のような条件を満たすコード表は、記憶装置３１に予め記憶されている。
【０１２８】  ステップＳ１３１２２の後、プロセッサ３２は、ステップＳ１３１２０で生成したコード画像において、決定した座標値が示す位置に、ドットマークを配置する（Ｓ１３１２３）。  これにより、プリンタ情報に基づくコード画像が生成される。
【０１２９】  図１８Ｂは、第１実施形態のプリンタ情報に基づくコード画像を生成するまでの流れを模式的に示す図である。
【０１３０】  図１８Ｂに示すように、プロセッサ３２は、ハッシュ関数を用いて、プリンタ情報から、プリンタ情報より情報量の少ないハッシュ値を計算する。  次に、プロセッサ３２は、コード表を参照して、ハッシュ値からドットマークの座標値の組合せを決定する。  次に、プロセッサ３２は、決定した座標値が示す位置にドットマークを配置することにより、コード画像を生成する。  これにより、比較的情報量の少ないハッシュ値を用いて真贋判定処理を実現することができる。したがって、真贋判定処理の処理量を低減することができる。
【０１３１】  図１８Ｃは、第１実施形態のコード表の第１例を模式的に示す図である。
【０１３２】  図１８Ｃに示すように、コード表の第１例には、ハッシュ値と、複数の座標値の組合せとの対応関係を示す情報が格納される。  コード表の第１例は、「ハッシュ値」フィールドと、「座標値」フィールドと、を含む。各フィールドは互いに関連付けられている。  「ハッシュ値」フィールドには、ハッシュ値が格納される。  「座標値」フィールドには、複数の座標値の組合せが格納される。  これにより、ドットマークを含むコード画像が得られる。
【０１３３】  図１８Ｄは、第１実施形態のコード表の第２例を模式的に示す図である。
【０１３４】  図１８Ｄに示すように、コード表の第２例には、ハッシュ値と、ヒューマンリーダブル文字を変位させるための値（以下「変位値」という）との対応関係を示す情報が格納される。  コード表の第２例は、「ハッシュ値」フィールドと、「変位値」フィールドと、を含む。各フィールドは互いに関連付けられている。  「ハッシュ値」フィールドには、ハッシュ値が格納される。  「変位値」フィールドには、変位値が格納される。  このコード表は、例えば、以下の条件を満足するように設計され得る。・レイアウトの変化が目視または機械読み取りによって認識でき、かつ、目立たない（例えば、±Ｘ方向および±Ｙ方向のそれぞれについて、０．５ｍｍ刻みで０〜２．５ｍｍ程度の範囲内の値を変化量とする）。・レイアウトパターンの変化がシーケンシャルにならない（つまり、シリアル番号などの情報からレイアウトパターンを推定されにくくする）。・レイアウトパターンが均等に分布する（つまり、ヒューマンリーダブル文字が、特定の場所に高い頻度で配置されないようにする）。  これによれば、ヒューマンリーダブル文字を含むコード画像が得られる。
【０１３５】  図１８Ｅは、第１実施形態のコード表の第３例を模式的に示す図である。
【０１３６】  図１８Ｅに示すように、コード表の第３例には、ハッシュ値と、文字列又はシンボルのレイアウトを変換するための情報（以下「レイアウト変換情報」という）との対応関係を示す情報が格納される。  コード表の第３例は、「ハッシュ値」フィールドと、「レイアウト変換情報」フィールドと、を含む。各フィールドは互いに関連付けられている。  「ハッシュ値」フィールドには、ハッシュ値が格納される。  「レイアウト変換情報」フィールドには、ドットマークの座標値、及び、文字列又はシンボルのレイアウト（例えば、回転、シフト、フォントの書体、フォントのサイズ、フォントの間隔、及び、それらの組合せ）を変換するための情報の組合せが格納される。  このコード表は、例えば、以下の条件を満足するように設計され得る。・変換の態様がシーケンシャルにならない（つまり、シリアル番号などの情報からレイアウトパターンを推定されにくくする）。・変換の態様が均等に分布する（つまり、特定の態様が高い頻度で現れることが無いようにする）。・変換の態様が相互に類似しない（つまり、印字精度が低かったとしても、偽造防止効果が維持されるようにする）。  これにより、ドットマーク、及び、文字列又はシンボルの組合せを含むコード画像が得られる。
【０１３７】（１−３−３）真贋判定処理  第１実施形態の真贋判定処理について説明する。図１９は、第１実施形態の真贋判定処理のフローチャートである。図２０は、図１９の真贋判定処理の画面例を示す図である。
【０１３８】  図１９の真贋判定処理は、スマートフォン１０のユーザが、入出力インタフェース１３を介して、真贋判定アプリケーションのプログラムの起動の指示を与えた場合に開始される。
【０１３９】  図１９に示すように、スマートフォン１０は、コード画像の取得（Ｓ１１２０）を実行する。  具体的には、プロセッサ１２は、画面Ｐ１１０（図２０）をディスプレイに表示する。図２０に示すように、画面Ｐ１１０は、画像オブジェクトＩＭＧ１１０を含む。画像オブジェクトＩＭＧ１１０は、カメラ１５によって撮像されたコード画像（以下「対象コード画像」という）のプレビュー画像である。対象コード画像は、例えば、商品に添付された印字媒体に印字されたコード画像である。  スマートフォン１０のユーザがボタンオブジェクトＢ１１０を指定すると、プロセッサ１２は、対象コード画像を記憶装置１１に記憶する。
【０１４０】  ステップＳ１１２０の後、プロセッサ１２は、真贋判定リクエスト（Ｓ１１２１）を実行する。  具体的には、プロセッサ１２は、真贋判定リクエストをサーバ６０に送信する。真贋判定リクエストは、ステップＳ１１２０で取得された対象コード画像を含む。
【０１４１】  ステップＳ１１２１の後、サーバ６０は、真贋判定（Ｓ１６２０）を実行する。  具体的には、プロセッサ６２は、ステップＳ１１２１でスマートフォン１０から送信された対象コード画像をデコードすることにより、判定の対象となる商品を識別する商品コードを特定する。  次に、プロセッサ６２は、ステップＳ１６１１で更新された基準情報データベース（図７）を参照して、特定した商品コードに関連付けられた基準コード画像を特定する。  次に、プロセッサ６２は、特定した基準コード画像と、Ｓ１１２１で送信された判定リクエストに含まれる対象コード画像と、を比較する。  プロセッサ６２は、基準コード画像と対象コード画像とが一致する場合、対象コード画像が「真正」であると判定する。一方、プロセッサ６２は、基準コード画像と対象コード画像とが一致しない場合、対象コード画像が「偽造」であると判定する。
【０１４２】  ステップＳ１６２０の後、サーバ６０は、真贋判定レスポンス（Ｓ１６２１）を実行する。  具体的には、プロセッサ６２は、真贋判定レスポンスをスマートフォン１０に送信する。真贋判定レスポンスは、ステップＳ１６２０の判定結果（「真正」又は「偽造」）を含む。
【０１４３】  ステップＳ１６２１の後、スマートフォン１０は、判定結果の提示（ステップＳ１１２２）を実行する。  具体的には、プロセッサ１２は、画面Ｐ１１１（図２０）をディスプレイに表示する。図２０に示すように、画面Ｐ１１１には、ステップＳ１６２１でサーバ６０から送信された真贋判定レスポンスに含まれる判定結果が表示される。  これにより、スマートフォン１０のユーザは、商品に付されたコード画像の真贋を確認することができる。
【０１４４】（２）第２実施形態  第２実施形態について説明する。第２実施形態は、プリンタ４０が印字の前に登録リクエストを実行する例である。第１実施形態と同様の説明は省略する。
【０１４５】（２−１）コード画像印字処理  第２実施形態のコード画像印字処理について説明する。図２１は、第２実施形態のコード画像印字処理のシーケンス図である。図２２は、図２１の処理の画面例を示す図である。図２３は、第２実施形態の基準情報データベースのデータ構造を示す図である。
【０１４６】  図２１に示すように、クライアント端末３０は、第１実施形態（図９）と同様にステップＳ１３１０を実行した後、印字リクエスト（Ｓ２３００）を実行する。  具体的には、プロセッサ３２は、画面Ｐ２００（図２２）をディスプレイに表示する。図２２に示すように、画面Ｐ２００は、入力フィールドオブジェクトＦ１００ａ及びＦ１００ｂ（図１０）と、ボタンオブジェクトＢ２００と、を含む。  クライアント端末３０のユーザがボタンオブジェクトＢ２００を指定すると、プロセッサ３２は、印字リクエストをプリンタ４０に送信する。印字リクエストは、入力フィールドオブジェクトＦ１００ａで指定された商品情報を含む。
【０１４７】  ステップＳ２３００の後、プリンタ４０は、プリンタ情報の取得（Ｓ２４００）を実行する。  具体的には、プロセッサ４２は、ステップＳ１４００（図８）で更新されたプリンタ情報を記憶装置４１から取得する。
【０１４８】  ステップＳ２４００の後、プリンタ４０は、登録リクエスト（Ｓ２４０１）を実行する。  具体的には、プロセッサ４２は、登録リクエストをサーバ６０に送信する。登録リクエストは、ステップＳ２３００でクライアント端末３０から送信された印字リクエストに含まれる商品情報と、ステップＳ２４００で取得されたプリンタ情報と、プリンタ４０を識別するプリンタＩＤと、を含む。
【０１４９】  ステップＳ２４０１の後、サーバ６０は、基準情報の登録（Ｓ２６００）を実行する。  具体的には、プロセッサ６２は、ステップＳ２４０１でプリンタ４０から送信された登録リクエストに含まれる商品情報、プリンタ情報、及び、プリンタＩＤを関連付けて記憶装置６１に記憶する。  これにより、基準情報データベース（図２３）が構築される。
【０１５０】  基準情報データベースには、基準情報が格納される。  図２３に示すように、基準情報データベースは、「商品コード」フィールドと、「基準情報」フィールドと、を含む。「基準情報」フィールドは、「プリンタＩＤ」フィールドと、「使用量」フィールドと、「交換回数」フィールドと、「設置場所」フィールドと、を含む。各フィールドは互いに関連付けられている。
【０１５１】  「商品コード」フィールドには、登録リクエストに含まれる商品情報が格納される。  「プリンタＩＤ」フィールドには、登録リクエストに含まれるプリンタＩＤが格納される。  「使用量」フィールド、「交換回数」フィールド、及び、「設置場所」フィールドには、登録リクエストに含まれるプリンタ情報が格納される。
【０１５２】（２−２）真贋判定処理  第２実施形態の真贋判定処理について説明する。図２４は、第２実施形態の真贋判定処理のシーケンス図である。
【０１５３】  図２４に示すように、スマートフォン１０が、第１実施形態（図１９）と同様に、ステップＳ１１２０及びＳ１１２１を実行した後、サーバ６０は、真贋判定（Ｓ２６１０）を実行する。  具体的には、プロセッサ６２は、ステップＳ１１２１でスマートフォン１０から送信された対象コード画像をデコードすることにより、判定の対象となる商品を識別する商品コード及びプリンタ情報を特定する。  次に、プロセッサ６２は、基準情報データベース（図２３）において、特定した商品コードに関連付けて記憶されたプリンタ情報（以下「基準プリンタ情報」という）を特定する。  次に、プロセッサ６２は、対象コード画像から特定したプリンタ情報と、特定した基準プリンタ情報と、を比較する。  プロセッサ６２は、対象コード画像から特定したプリンタ情報と基準プリンタ情報とが一致する場合、対象コード画像が真正であると判定する。一方、プロセッサ６２は、対象コード画像から特定したプリンタ情報と基準プリンタ情報とが一致しない場合、対象コード画像が偽造であると判定する。
【０１５４】  ステップＳ２６１０の後、サーバ６０は、第１実施形態（図１９）と同様に、真贋判定レスポンス（Ｓ１６２１）を実行する。
【０１５５】  第２実施形態によれば、クライアント端末３０で、偽造防止情報が埋め込まれたコード画像を生成することができない（例えば、当該コード画像を生成する機能を有するアプリケーションがインストールされていない）場合でも、偽造防止効果を向上させることができる。
【０１５６】（３）第３実施形態  第３実施形態について説明する。第３実施形態は、プリンタ４０が、印字の後に登録リクエストを実行する例である。第１実施形態及び第２実施形態と同様の説明は省略する。
【０１５７】（３−１）プリンタ  第３実施形態のプリンタについて説明する。図２５は、第３実施形態のプリンタの構成を示すブロック図である。
【０１５８】  図２５に示すように、プリンタ４０は、第１実施形態（図４）と同様の構成に加えて、カメラ４５を備える。
【０１５９】  カメラ４５は、プリンタ４０の発行口から発行される印字媒体の印字面（コード画像が印字された面）に向くように、配置される。カメラ４５は、コード画像が印字された印字媒体の搬送が停止した時（つまり、発行口から発行された時）に、印字媒体の印字面を撮像するように構成される。  尚、カメラ４５はプリンタに内蔵しても良いし、通信インタフェース４４等を介してプリンタ４０の外部に接続されても良い。
【０１６０】（３−２）コード画像印字処理  第３実施形態のコード画像印字処理について説明する。図２６は、第３実施形態のコード画像印字処理のシーケンス図である。
【０１６１】  図２６に示すように、クライアント端末３０が、第２実施形態（図２１）と同様に、ステップＳ１３１０及びＳ２３００を実行する。
【０１６２】  ステップＳ２３００の後、プリンタ４０は、第２実施形態（図２１）と同様に、ステップＳ２４００、Ｓ１４１０を実行した後、コード画像の取得（Ｓ３４００）を実行する。  具体的には、カメラ４５は、コード画像が印字された印字媒体の搬送が停止した時に、印字媒体の印字面を撮像する。  次に、プロセッサ４２は、印字面に印字されたコード画像に対応するコード画像を生成する。  次に、プロセッサ４２は、生成したコード画像を記憶装置４１に記憶する。
【０１６３】  ステップＳ３４００の後、プリンタ４０は、登録リクエスト（Ｓ３４０１）を実行する。  具体的には、プロセッサ４２は、登録リクエストをサーバ６０に送信する。登録リクエストは、ステップＳ２４００で取得されたプリンタ情報と、Ｓ３４００で取得されたコード画像と、プリンタ４０を識別するプリンタＩＤと、を含む。
【０１６４】  ステップＳ３４０１の後、サーバ６０は、基準コード画像の登録（Ｓ３６００）を実行する。  具体的には、プロセッサ６２は、ステップＳ３４０１でプリンタ４０から送信された登録リクエストに含まれる基準コード画像をデコードすることにより、基準コード画像に対応する商品を識別する商品コードを特定する。  次に、プロセッサ６２は、特定した商品コードと、基準コード画像と、を関連付けて記憶装置６１に記憶する。
【０１６５】  第３実施形態によれば、クライアント端末３０でコード画像を生成することができない（例えば、コード画像を生成する機能を有するアプリケーションがインストールされていない）場合でも、偽造防止効果を向上させることができる。
【０１６６】  また、プリンタ４０が実際に印字したコード画像に対応する基準コード画像が登録されるので、基準コード画像は、プリンタ４０の印字特性（例えば、印字濃度、印字のずれ、印字のかすれ）が反映された基準コード画像に対応する。したがって、偽造防止効果を更に向上させることができる。
【０１６７】（４）変形例  変形例について説明する。
【０１６８】（４−１）変形例１  変形例１について説明する。変形例１は、プリンタ情報及び商品情報の組合せに基づく偽造防止情報をコード画像に埋め込む例である。
【０１６９】  変形例１のクライアント端末３０、又は、プリンタ４０は、プリンタ情報及び商品情報の組合せに基づく偽造防止情報を、コード画像に埋め込む。
【０１７０】  一例として、プロセッサ３２は、ステップＳ１３１２（図９）において、ステップＳ１３１０で取得した商品情報と、ステップＳ１６１０でサーバ６０から送信されたプリンタ情報レスポンスに含まれるプリンタ情報との組合せに基づく偽造防止情報をコード画像に埋め込む。
【０１７１】  変形例１によれば、コード画像の基準となる情報が増えるので、偽造防止効果を更に向上させることができる。
【０１７２】（４−２）変形例２  変形例２について説明する。変形例２は、コード画像毎に、プリンタ４０に印字の権限を付与する例である。
【０１７３】（４−２−１）印字権限情報データベース  変形例２の印字権限情報データベースについて説明する。図２７は、変形例２の印字権限情報データベースのデータ構造を示す図である。
【０１７４】  印字権限情報データベースは、記憶装置６１に予め記憶されている。  図２７に示すように、印字権限情報データベースは、「商品コード」フィールドと、「プリンタＩＤ」フィールドと、を含む。各フィールドは、互いに関連付けられている。
【０１７５】  「商品コード」フィールドには、商品コードが格納される。
【０１７６】  「プリンタＩＤ」フィールドには、「商品コード」フィールドの商品コードに対応するコード画像を印字が許可されたプリンタ４０を識別するプリンタＩＤが格納される。
【０１７７】（４−２−２）コード画像印字処理  変形例２のコード画像印字処理について説明する。
【０１７８】  変形例２のプロセッサ３２は、ステップＳ１３１１（図９）において、Ｓ１３１０で取得された商品コードを含むプリンタ情報リクエストを送信する。
【０１７９】  変形例２のプロセッサ６２は、ステップＳ１６１０において、印字権限情報データベース（図２７）を参照する。プロセッサ６２は、印字権限情報データベースにおいて、ステップＳ１３１１でクライアント端末３０から送信されたプリンタ情報リクエストに含まれる商品コードに関連付けられたレコードを特定する。  次に、プロセッサ６２は、特定したレコードのプリンタＩＤと、プリンタ情報リクエストに含まれるプリンタＩＤとを比較する。  特定したレコードのプリンタＩＤと、プリンタ情報リクエストに含まれるプリンタＩＤとが一致する場合、プロセッサ６２は、第１実施形態と同様のプリンタ情報レスポンスを送信する。  特定したレコードのプリンタＩＤと、プリンタ情報リクエストに含まれるプリンタＩＤとが一致しない場合、プロセッサ６２は、印字が禁止されていることを示すメッセージ（以下「禁止メッセージ」という）を含むプリンタ情報レスポンスを送信する。
【０１８０】  プロセッサ３２は、ステップＳ１６１０で送信されたプリンタ情報レスポンスに禁止メッセージが含まれる場合、ステップＳ１３１２〜ステップＳ１３１３に代えて、禁止メッセージをディスプレイに表示する。
【０１８１】  変形例２によれば、商品に予め関連付けられたプリンタ以外のプリンタを用いた印字を防ぐことができる。これにより、偽造防止効果を更に向上させることができる。
【０１８２】（４−３）変形例３  変形例３について説明する。本実施形態では、プロセッサ３２は、ステップＳ１３１２において、偽造防止対策が施されていないコード画像（例えば、図１１Ａ）を生成した後に、当該コード画像に偽造防止情報を埋め込むことにより、偽造防止対策が施されたコード画像（例えば、図１１Ｂ）を生成する例を示した。  これに対して、変形例３は、偽造防止対策が施されていないコード画像を生成することなく、偽造防止対策が施されたコード画像を一度の処理で生成する例である。
【０１８３】  一例として、プロセッサ３２は、ステップＳ１３１２において、商品情報及びプリンタ情報に基づいて、偽造防止情報を含むコード画像（例えば、図１４Ｂの画像）を生成する。これにより、一度の処理で、偽造防止対策が施されたコード画像を得ることができる。
【０１８４】（４−４）変形例４  変形例４について説明する。本実施形態では、印字コマンドを基準情報として登録する例である。
【０１８５】  一例として、ステップＳ１３１４（図９）においてクライアント端末３０から送信される登録リクエストは、Ｓ１３１０で取得された商品情報に含まれる商品コードと、ステップＳ１３１３においてクライアント端末３０から送信された印字リクエストに含まれる印字コマンドと、を含む。
【０１８６】  プロセッサ６２は、ステップＳ１６１１において、基準情報データベース（図７）を更新する。基準情報データベースの各フィールドには、以下の情報が格納される。・「商品コード」フィールドに、ステップＳ１３１４において送信された登録リクエストに含まれる商品コードが格納される。・「基準情報」フィールドに、登録リクエストに含まれる印字コマンドが格納される。
【０１８７】  変形例４によれば、印字コマンドを比較することにより真贋判定を実現することができる。
【符号の説明】
【０１８８】１            ：情報処理システム１０          ：スマートフォン１１          ：記憶装置１２          ：プロセッサ１３          ：入出力インタフェース１４          ：通信インタフェース１５          ：カメラ３０          ：クライアント端末３１          ：記憶装置３２          ：プロセッサ３３          ：入出力インタフェース３４          ：通信インタフェース３６          ：通信回路４０          ：プリンタ４１          ：記憶装置４２          ：プロセッサ４３          ：入出力インタフェース４４          ：通信インタフェース４５          ：カメラ４７ａ        ：ヘッド駆動回路４７ｂ        ：印字ヘッド４８ａ        ：ローラ駆動回路４８ｂ        ：搬送ローラ４９ａ        ：カッタ駆動回路４９ｂ        ：カッタ６０          ：サーバ６１          ：記憶装置６２          ：プロセッサ６３          ：入出力インタフェース６４          ：通信インタフェース６６          ：入出力インタフェース６８          ：ストレージ
【図１】
2018168321.tif 000003
【図２】
2018168321.tif 000004
【図３】
2018168321.tif 000005
【図４】
2018168321.tif 000006
【図５】
2018168321.tif 000007
【図６】
2018168321.tif 000008
【図７】
2018168321.tif 000009
【図８】
2018168321.tif 000010
【図９】
2018168321.tif 000011
【図１０】
2018168321.tif 000012
【図１１Ａ】
2018168321.tif 000013
【図１１Ｂ】
2018168321.tif 000014
【図１１Ｃ】
2018168321.tif 000015
【図１１Ｄ】
2018168321.tif 000016
【図１１Ｅ】
2018168321.tif 000017
【図１２Ａ】
2018168321.tif 000018
【図１２Ｂ】
2018168321.tif 000019
【図１２Ｃ】
2018168321.tif 000020
【図１３Ａ】
2018168321.tif 000021
【図１３Ｂ】
2018168321.tif 000022
【図１４Ａ】
2018168321.tif 000023
【図１４Ｂ】
2018168321.tif 000024
【図１４Ｃ】
2018168321.tif 000025
【図１４Ｄ】
2018168321.tif 000026
【図１５Ａ】
2018168321.tif 000027
【図１５Ｂ】
2018168321.tif 000028
【図１５Ｃ】
2018168321.tif 000029
【図１５Ｄ】
2018168321.tif 000030
【図１５Ｅ】
2018168321.tif 000031
【図１６Ａ】
2018168321.tif 000032
【図１６Ｂ】
2018168321.tif 000033
【図１６Ｃ】
2018168321.tif 000034
【図１７Ａ】
2018168321.tif 000035
【図１７Ｂ】
2018168321.tif 000036
【図１７Ｃ】
2018168321.tif 000037
【図１８Ａ】
2018168321.tif 000038
【図１８Ｂ】
2018168321.tif 000039
【図１８Ｃ】
2018168321.tif 000040
【図１８Ｄ】
2018168321.tif 000041
【図１８Ｅ】
2018168321.tif 000042
【図１９】
2018168321.tif 000043
【図２０】
2018168321.tif 000044
【図２１】
2018168321.tif 000045
【図２２】
2018168321.tif 000046
【図２３】
2018168321.tif 000047
【図２４】
2018168321.tif 000048
【図２５】
2018168321.tif 000049
【図２６】
2018168321.tif 000050
【図２７】
2018168321.tif 000051
【国際調査報告】
2018168321.tif 000052
2018168321.tif 000053