(57)【要約】【課題】印刷装置の状態に応じ、所望の動作を確実に実行させることが可能な印刷制御装置、印刷システムおよび印刷制御方法を提供する。【解決手段】ホスト２０から、モード情報を含む印刷データを受信する印刷データ受信部８１と、印刷装置３２の状態を取得する状態取得部８２と、モード情報および印刷装置３２の状態が実行条件を満たすか否かを判別する判別部８３と、判別部８３により実行条件を満たすと判別された場合、印刷装置３２を所定のモードに切り替えると共に、印刷データから生成したコマンドを印刷装置３２に送信する印刷装置制御部８４と、を備えた。【選択図】図５
2014215664.tif 000002
【特許請求の範囲】
【請求項１】
モード情報を含む印刷データを受信する受信部と、
印刷装置の状態を取得する状態取得部と、
前記モード情報および前記印刷装置の状態が実行条件を満たすか否かを判別する判別部と、
前記判別部で前記実行条件を満たすと判別された場合、前記印刷装置を所定のモードに切り替えると共に、前記印刷データから生成したコマンドを前記印刷装置に送信する印刷装置制御部と、を備えることを特徴とする印刷制御装置。
【請求項２】
前記印刷装置から前記コマンドに対する実行結果を取得する実行結果取得部と、
前記実行結果を送信する応答部と、を備える請求項１に記載の印刷制御装置。
【請求項３】
前記判別部で前記実行条件を満たさないと判別された場合、
前記印刷装置制御部は、前記印刷装置に前記コマンドを送信せず、
前記応答部は、実行条件を満たさない旨の応答データを送信する請求項２に記載の印刷制御装置。
【請求項４】
前記モード情報は、前記印刷装置にリアルタイムコマンドを実行させるリアルタイムコマンド実行モードに切り替えて前記コマンドを送信した後に前記印刷装置に印刷コマンドを実行させる通常コマンド実行モードに切り替える第１送信モード、もしくは前記印刷装置のモードを切り替えない第２送信モードを含む情報であり、
前記判別部は、
前記モード情報が前記第１送信モードを含み、前記印刷装置がオフライン状態である場合、前記実行条件を満たすと判別する請求項１ないし３のいずれか１項に記載の印刷制御装置。
【請求項５】
前記印刷装置制御部は、
前記印刷データから、前記モード情報に基づいて前記コマンドを生成する請求項１ないし４のいずれか１項に記載の印刷制御装置。
【請求項６】
モード情報を含む印刷データを送信するホストと、
印刷を実行する印刷装置と、
前記ホストで送信された前記印刷データを受信する受信部、前記印刷装置の状態を取得する状態取得部、前記モード情報および前記印刷装置の状態が実行条件を満たすか否かを判別する判別部、前記判別部で前記実行条件を満たすと判別された場合に前記印刷装置を所定のモードに切り替えると共に前記印刷データから生成したコマンドを前記印刷装置に送信する印刷装置制御部、を有する印刷制御装置と、を備えることを特徴とする印刷システム。
【請求項７】
モード情報を含む印刷データを受信すると共に印刷装置の状態を取得し、
前記印刷データに含まれる前記モード情報および前記印刷装置の状態に基づいて実行条件を満たすか否かを判別し、
前記実行条件を満たすと判別した場合、前記印刷装置を所定のモードに切り替えると共に前記印刷データから生成したコマンドを前記印刷装置に送信することを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストから印刷データを受信し、これをコマンド変換して印刷装置に送信する印刷制御装置、印刷システムおよび印刷制御方法に関する。
【背景技術】
【０００２】
従来、ＰＯＳ（Point  Of  Sales）端末により印刷装置（レシートプリンター）を制御する印刷制御コマンドとして、事実上の業界標準となっているＥＳＣ／ＰＯＳ（登録商標）コマンドが知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３４３０２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ＥＳＣ／ＰＯＳ（登録商標）コマンドは、ＰＯＳ端末と印刷装置が１：１で接続されていることが前提となっている。このため、ネットワーク接続により、ＰＯＳ端末と印刷装置が多：１または多：多の構成となった場合に不具合が生じる。例えば、ＰＯＳ端末ａからの印刷命令に基づく印刷中にエラーが発生し、そのエラー発生中にＰＯＳ端末ｂから印刷命令があると、当該印刷命令を正常に処理することができない。逆に、ＰＯＳ端末ｂからの印刷命令により、ＰＯＳ端末ａからのメンテナンス命令が、正常に処理されない可能性もある。
【０００５】
また、従来の構成において、印刷装置が印刷制御コマンドを受信できるのは、オンライン状態の場合に限られている。つまり、印刷装置がオフライン状態の場合、オフライン時やエラー時に用いられる特殊な制御コマンド（印刷データのクリア、エラー解除、ブザーの鳴動・停止、などのリアルタイムコマンド）を受信することができない。
【０００６】
本発明は、上記の問題点に鑑み、印刷装置の状態に応じ、所望の動作を確実に実行させることが可能な印刷制御装置、印刷システムおよび印刷制御方法を提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明の印刷制御装置は、モード情報を含む印刷データを受信する受信部と、  印刷装置の状態を取得する状態取得部と、モード情報および印刷装置の状態が実行条件を満たすか否かを判別する判別部と、判別部で実行条件を満たすと判別された場合、印刷装置を所定のモードに切り替えると共に、印刷データから生成したコマンドを印刷装置に送信する印刷装置制御部と、を備えることを特徴とする。
【０００８】
本発明の印刷システムは、モード情報を含む印刷データを送信するホストと、印刷を実行する印刷装置と、ホストで送信された印刷データを受信する受信部、印刷装置の状態を取得する状態取得部、モード情報および印刷装置の状態が実行条件を満たすか否かを判別する判別部、判別部で前記実行条件を満たすと判別された場合に印刷装置を所定のモードに切り替えると共に印刷データから生成したコマンドを印刷装置に送信する印刷装置制御部、を有する印刷制御装置と、を備えることを特徴とする。
【０００９】
本発明の印刷制御方法は、モード情報を含む印刷データを受信すると共に印刷装置の状態を取得し、印刷データに含まれるモード情報および印刷装置の状態に基づいて実行条件を満たすか否かを判別し、実行条件を満たすと判別した場合、印刷装置を所定のモードに切り替えると共に印刷データから生成したコマンドを前記印刷装置に送信することを特徴とする。
【００１０】
本発明の構成によれば、ホストから印刷データを受信したとき、モード情報と印刷装置の状態が実行条件を満たすか否かを判別し、実行条件を満たすと判別した場合に、印刷装置を所定のモードに切り替えてコマンド送信するため、所望の動作を確実に実行させることができる。例えば、実行条件として、オフライン時やエラー時に対応したモード情報とオフライン状態を規定しておくことで、印刷装置がオフライン状態の場合でも、所望のコマンド（オフライン時やエラー時に用いられる特殊な制御コマンド）を実行させることができる。
なお、「コマンド」とは、印刷装置に印刷動作を実行させる印刷実行コマンドと、印刷装置に印刷動作以外の所定の動作（エラー解除、周辺機器の制御など）を実行させる制御コマンドの両方を含む。
また、印刷データは、マークアップ言語（ＸＭＬ、ＨＴＭＬ、ＸＨＴＭＬなど）で記述することが好ましい。この構成によれば、互換性の高い言語であるため、各種プラットフォームに対応できる。例えば、各種タブレット端末や組み込み機器など、ドライバーレスのプラットフォームで動作するホストを用いることができる。
【００１１】
上記の印刷制御装置において、印刷装置からコマンドに対する実行結果を取得する実行結果取得部と、実行結果を送信する応答部と、を備えることを特徴とする。
【００１２】
本発明の構成によれば、ホストに対し、印刷装置のコマンドに対する実行結果を返すため、ホストは、コマンドが正常に処理されたことを把握することができる。
【００１３】
上記の印刷制御装置において、判別部で実行条件を満たさないと判別された場合、印刷装置制御部は、印刷装置にコマンドを送信せず、応答部は、実行条件を満たさない旨の応答データを送信することを特徴とする。
【００１４】
本発明の構成によれば、実行条件を満たさない場合、印刷装置にコマンドを送信しないため、印刷装置の誤動作を防止できる。また、実行条件を満たさない旨の応答データをホストに送信するため、ホストは、その旨を把握することができる。
【００１５】
上記の印刷制御装置において、モード情報は、印刷装置にリアルタイムコマンドを実行させるリアルタイムコマンド実行モードに切り替えてコマンドを送信した後に印刷装置に印刷コマンドを実行させる通常コマンド実行モードに切り替える第１送信モード、もしくは印刷装置のモードを切り替えない第２送信モードを含む情報であり、判別部は、モード情報が第１送信モードを含み、印刷装置がオフライン状態である場合、実行条件を満たすと判別することを特徴とする。
【００１６】
本発明の構成によれば、実行条件として、第１送信モードとオフライン状態を規定しておくことで、印刷装置がオフライン状態の場合でも、オフライン時やエラー時に用いられるリアルタイムコマンドを実行させることができる。また、第１送信モードが指定された場合、印刷装置を一旦リアルタイムコマンド実行モードに切り替えてコマンドを送信した後、通常コマンド実行モードに戻すため、その後の印刷命令による処理に影響を与えることがない。
【００１７】
上記の印刷制御装置において、印刷装置制御部は、印刷データから、モード情報に基づいてコマンドを生成することを特徴とする。
【００１８】
本発明の構成によれば、モード情報に適したコマンドを生成することができる。例えば、第２送信モードが指定された場合は、通常コマンドに変換し、第１送信モードが指定された場合は、リアルタイムコマンドに変換する、などが考えられる。これにより、例えば印刷データがマークアップ言語の場合など、同じ要素を、複数のモードで共通して使用することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態に係る印刷システムのシステム構成図である。
【図２】（ａ）は、Ｗｅｂアプリケーションサーバーの制御ブロック図であり、（ｂ）は、ホストの制御ブロック図である。
【図３】インテリジェント機能付き印刷装置の制御ブロック図である。
【図４】印刷制御装置の実装レイヤーを示す図である。
【図５】印刷システムの機能ブロック図である。
【図６】印刷制御装置の一連の処理を示すフローチャートである。
【図７】（ａ）は、通常送信時に送信される印刷データの一例を示す図であり、（ｂ）は、強制送信時に送信される印刷データの一例を示す図であり、（ｃ）は、モード情報に応じてコマンドを出力する場合の印刷データの一例を示す図であり、（ｄ）は、オフライン状態にて有効な命令を含む印刷データの一例を示す図である。
【図８】（ａ）は、エラーが発生した場合の処理の流れを示す図であり、（ｂ）は、エラー発生中の処理の流れを示す図である。
【発明を実施するための形態】
【００２０】
以下、添付の図面を参照し、本発明に係る印刷システムＳＹについて説明する。通常、タブレット端末やスマートフォンから印刷を行う場合、端末のＯＳに準拠した印刷アプリケーションや印刷ドライバーを、ＯＳ毎に準備する必要がある。これに対し、本発明の印刷システムＳＹでは、印刷ドライバーに相当するＸＭＬ（Extensible  Markup  Language）  Ｗｅｂサービスプリント機能（印刷制御装置）を印刷装置に搭載しているため、ＯＳに依存することなく印刷を行うことができる。つまり、ホスト側に、専用の印刷ドライバーをインストールすることなく、Ｗｅｂブラウザーを用いて印刷装置を動作させるができる。以下、ＸＭＬ  Ｗｅｂサービスプリント機能を搭載した印刷装置を「インテリジェント機能付き印刷装置」と称する。これに対し、ＸＭＬ  Ｗｅｂサービスプリント機能を搭載していない印刷装置を、単に「印刷装置」と称する。
【００２１】
まず、図１〜図４を参照し、印刷システムＳＹの全体構成について説明する。図１は、印刷システムＳＹのシステム構成図である。印刷システムＳＹは、Ｗｅｂアプリケーションサーバー１０と、複数台のホスト２０（ホストａ、ホストｂ）と、印刷制御装置３１と、複数台の印刷装置３２（印刷装置Ａ、印刷装置Ｂ）と、で構成される。なお、印刷制御装置３１と１台の印刷装置３２（印刷装置Ａ）は、インテリジェント機能付き印刷装置３０として印刷システムＳＹ内に組み込まれている。したがって、印刷装置Ａと印刷装置Ｂは、親機−子機の関係となる。
【００２２】
Ｗｅｂアプリケーションサーバー１０とホスト２０は、インターネット等のネットワークを介して接続される。また、ホスト２０と印刷制御装置３１は、有線／無線ローカルエリアネットワーク（ＬＡＮ）等のネットワークを介して接続される。なお、ホスト２０は、例えば小売店のレジカウンターに設置されるＰＯＳ（Point  Of  Sales）端末、または飲食店のフロアで用いられるオーダリング端末である。また、インテリジェント機能付き印刷装置３０および印刷装置３２は、例えば会計レシートを発行するレシートプリンター、または厨房に設置されるキッチンプリンターである。
【００２３】
続いて、図２および図３を参照し、Ｗｅｂアプリケーションサーバー１０、ホスト２０およびインテリジェント機能付き印刷装置３０の制御構成について説明する。図２（ａ）は、Ｗｅｂアプリケーションサーバー１０の制御構成を示す図である。Ｗｅｂアプリケーションサーバー１０は、制御部１１、通信部１２および記憶部１３の他、一般的なコンピューターに搭載される不図示のハードウェア構成を有している。制御部１１は、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）およびＲＡＭ（Random  Access  Memory）等により構成される。記憶部１３は、例えばＨＤＤ（Hard  Disk  Drive）であり、ＨＴＴＰ（Hypertext  Transfer  Protocol）サーバー１５およびＷｅｂアプリケーション１６を記憶している。
【００２４】
通信部１２は、ホスト２０（Ｗｅｂブラウザー２７）と通信を行なうインターフェースである。このＷｅｂアプリケーションサーバー１０とホスト２０との通信は、ＨＴＴＰサーバー１５によりＨＴＴＰ（Hypertext  Transfer  Protocol）に基づいて行なわれる。すなわち、Ｗｅｂアプリケーションサーバー１０は、ホスト２０（Ｗｅｂブラウザー２７）からのＨＴＴＰリクエストを受け付け、このＨＴＴＰリクエストに含まれるＵＲＬ（Uniform  Resource  Locator）に基づいて、Ｗｅｂアプリケーション１６が提供するＷｅｂページ４０（図１参照）をホスト２０に送信する。
【００２５】
このＷｅｂページ４０には、Ｗｅｂページ４０を制御するページ制御スクリプトや、印刷制御を行う印刷制御スクリプトなどが組み込まれている。ホスト２０は、Ｗｅｂブラウザー２７において（Ｗｅｂページ４０の内部で）印刷制御スクリプトを実行することにより、印刷処理を行う。
【００２６】
図２（ｂ）は、ホスト２０の制御構成を示す図である。ホスト２０は、制御部２１、表示部２２、通信部２３、記憶部２４および操作部２５を備えている。制御部２１は、ＣＰＵ等を有し、ホスト２０全体を制御する。
【００２７】
表示部２２は、Ｗｅｂブラウザー２７上に、当該Ｗｅｂブラウザー２７により取得（ダウンロード）したＷｅｂページ４０を表示したり、Ｗｅｂブラウザー２７の操作に伴う各種通知画面や各種設定画面を表示する。操作部２５は、Ｗｅｂブラウザー２７で表示したＷｅｂページ４０において、印刷指示等の各種操作に用いられる。例えば、ホスト２０がＰＯＳ端末であり、Ｗｅｂアプリケーション１６がＰＯＳアプリケーションである場合、Ｗｅｂページ４０として、バーコード読取結果（購入商品の商品名、単価、数量等）や、会計結果を表示する。また、ホスト２０に設けられた「会計キー」の押下（操作部２５の操作）により、印刷指示が行われる。なお、表示部２２と操作部２５は、別々のハードウェアとして構成しても良いし、タッチパネルとして一体に構成しても良い。
【００２８】
通信部２３は、Ｗｅｂアプリケーションサーバー１０および印刷制御装置３１と通信を行なうインターフェースである。上述のとおり、ホスト２０は、ＨＴＴＰにより、Ｗｅｂアプリケーションサーバー１０および印刷制御装置３１と通信を行う。
【００２９】
記憶部２４は、例えばＨＤＤであり、Ｗｅｂブラウザー２７を記憶している。本実施形態では、Ｗｅｂブラウザー２７として、プラグインモジュールをサポートしない単機能ブラウザー（標準のブラウザー）を用いる。制御部２１は、このＷｅｂブラウザー２７により、通信部２３を介してＷｅｂアプリケーションサーバー１０にアクセスし、Ｗｅｂアプリケーション１６が提供するＷｅｂページ４０を取得する。
【００３０】
また、Ｗｅｂページ４０には、上述のとおり、ページ制御スクリプト（JavaScript（登録商標））および印刷制御スクリプト（JavaScript（登録商標））が組み込まれている。Ｗｅｂブラウザー２７が、Ｗｅｂページ４０に組み込まれたページ制御スクリプトによりユーザーの印刷指示操作を受付けると、同じくＷｅｂページ４０に組み込まれた印刷制御スクリプトを実行して、ＸＭＬ言語（マークアップ言語）で記述した印刷データを生成し、印刷制御装置３１に送信する。
【００３１】
なお、ホスト２０は、Ｗｅｂブラウザー２７が動作するコンピューターであれば良く、ＰＯＳ端末、タブレット端末、スマートフォンおよびパーソナルコンピューターなど、その種類を問わない。また、上述のとおりドライバーレスの構成であるため、ＯＳの種類も問わない。したがって、異なるプラットフォーム上で動作する複数台のホスト２０を、同じ印刷システムＳＹ内で混在させることができる。
【００３２】
図３は、インテリジェント機能付き印刷装置３０の制御構成を示す図である。上述のとおり、インテリジェント機能付き印刷装置３０は、印刷制御装置３１と印刷装置３２を組み合わせたものである。また、本実施形態の印刷制御装置３１は、インターフェースボードとして、印刷装置３２に着脱可能に装着される。なお、印刷制御装置３１を別体の制御ボックスとして、印刷装置３２に外付け（接続）する構成でも良い。
【００３３】
印刷制御装置３１は、制御部４１、ボード側インターフェース４２、記憶部４３および通信部４４を備えている。制御部４１は、ＣＰＵ等を有し、印刷制御装置３１を制御する。ボード側インターフェース４２は、印刷装置３２（印刷装置側インターフェース５５）との通信を行う。記憶部４３は、例えば不揮発性メモリー（フラッシュＲＯＭ等）であり、ＨＴＴＰサーバー４６および印刷装置リスト４７を記憶している。印刷装置リスト４７は、各印刷装置３２の印刷装置情報５７を列記したものである。印刷制御装置３１は、接続されている各印刷装置３２（印刷装置Ａ、印刷装置Ｂ）と通信し、機種名や搭載文字等を含む印刷装置情報５７を取得して、印刷装置リスト４７に格納する。
【００３４】
通信部４４は、ホスト２０および他の印刷装置３２（印刷装置Ｂ）との通信を行うものであり、ＬＡＮインターフェースおよびＵＳＢインターフェース等のインターフェース群で構成される。印刷制御装置３１とホスト２０（Ｗｅｂブラウザー２７）との通信は、ＨＴＴＰサーバー４６によりＨＴＴＰに基づいて行われる。すなわち、ホスト２０から、印刷制御装置３１に一意に割り当てられたサービスエンドポイントアドレス（http://x.x.x.x/などのＵＲＬ）に対して印刷データが送信されると、印刷制御装置３１は当該印刷データを受信する。
【００３５】
印刷制御装置３１は、受信した印刷データ（ＸＭＬ文書）を、印刷装置３２用の印刷制御コマンド（ＥＳＣ／ＰＯＳ（登録商標）コマンド）に変換し、各印刷装置３２に送信する。また、サービスエンドポイントアドレスには、印刷を実行する印刷装置３２の印刷装置識別情報（ＩＤ）も含まれている。印刷制御装置３１は、当該印刷装置ＩＤにより指定された印刷装置３２を出力先として、印刷制御コマンドを送信する。なお、印刷制御装置３１は、ホスト２０のＷｅｂブラウザー２７上で動作する印刷制御スクリプトから、クロスドメイン（クロスオリジン）通信の要求を受信した場合、これを許可する応答（ＸＭＬ文書）を行う。
【００３６】
印刷装置３２は、制御部５１、記憶部５２、印刷機構５３、バッファー５４および印刷装置側インターフェース５５を備えている。制御部５１は、ＣＰＵ等を有し、印刷装置３２を制御する。記憶部５２は、印刷装置情報５７（印刷装置３２の機種名や搭載文字等）を記憶している。印刷機構５３は、印刷ヘッド、用紙送り機構、用紙切断機構などを含み、制御部５１の制御下で印刷動作を行う。なお、印刷方式は、インクジェット方式やレーザー方式など、その種類を問わない。
【００３７】
バッファー５４は、受信データ（印刷制御コマンド）を一時的に格納しておくための受信バッファーである。印刷機構５３は、通常コマンドの場合、バッファー５４に格納されているデータを順次読み出して印刷を行う。一方、リアルタイムコマンドの場合、バッファー５４に格納されているデータに拘らず、即時実行される。印刷装置側インターフェース５５は、印刷制御装置３１（ボード側インターフェース４２）との通信を行う。印刷装置３２は、当該印刷装置側インターフェース５５を介して印刷制御装置３１から印刷制御コマンドを受信し、これに基づいて所定の動作を行う。また、そのコマンドの実行結果を、印刷装置側インターフェース５５を介して、印刷制御装置３１に出力する。さらに、印刷装置３２は、印刷制御コマンドとしてステータス取得コマンドが送信された場合、装置内の状態（ステータス）を検出し、印刷制御装置３１に送信する。印刷制御装置３１は、これら実行結果やステータスなどのコマンドレスポンスを、ＸＭＬ文書に変換して、ホスト２０に返信する。
【００３８】
次に、図４を参照し、印刷制御装置３１の実装レイヤーについて説明する。印刷制御装置３１の実装レイヤーは、下位相から、ハードウェア、ＯＳ、Ｗｅｂサーバー（ＨＴＴＰサーバー４６）、が順に積層され、さらに最上位層として、複数の印刷Ｗｅｂサービス（ＸＭＬ  Ｗｅｂサービスプリント機能）およびデバイス登録Ｗｅｂアプリケーションが積層されている。
【００３９】
ここで、印刷Ｗｅｂサービスは、ＸＭＬ文書から印刷制御コマンドへの変換など、本実施形態の主要部を為す機能である。この印刷Ｗｅｂサービスを複数備えることで、複数台のホスト２０から印刷データを受信し、複数の印刷装置３２に対して印刷を実行させたり、各印刷装置３２の印刷結果を印刷データの送信元となる各ホスト２０に返信させたりなど、複数の処理を並行して実行することができる。例えば、同図の例では、印刷Ｗｅｂサービスを１０プロセス設けているため、１０個のプロセス（スレッド）を同時処理可能である。但し、１台の印刷装置３２に対して複数の印刷データが送信された場合は、印刷権を獲得した順（印刷ポートを確保した順）に処理を行う。
【００４０】
また、デバイス登録Ｗｅｂアプリケーションは、印刷装置３２のプリンター識別情報（ＩＤ）、機種名およびポート情報（ＩＰアドレス）を登録するアプリケーションである。これらの情報は、ＨＴＴＰサーバー４６によって提供される設定ページ（Ｗｅｂページ）をＷｅｂブラウザー２７によって表示させ、ユーザーが操作部２５を用いて入力を行うことにより登録される。また、登録されたこれらの情報は、印刷装置リスト４７（図３参照）に格納される。
【００４１】
次に、図５を参照し、印刷システムＳＹの機能構成について説明する。ホスト２０は、主な機能構成として、ブラウザー制御部７１、印刷データ生成部７２、印刷データ送信部７３および応答受信部７４を備えている。
【００４２】
ブラウザー制御部７１は、Ｗｅｂブラウザー２７を動作させる。印刷データ生成部７２は、Ｗｅｂブラウザー２７上で動作する印刷制御スクリプトを用いて、ＸＭＬ言語で記述した印刷データを生成する。印刷データ送信部７３は、生成した印刷データを印刷制御装置３１に送信する。応答受信部７４は、印刷制御装置３１から、応答データ（印刷制御装置３１の判別結果、印刷装置３２によるコマンドの実行結果およびステータスなど）をＸＭＬ文書として受信する。
【００４３】
印刷制御装置３１は、主な機能構成として、印刷データ受信部８１（受信部）、状態取得部８２、判別部８３、印刷装置制御部８４、実行結果取得部８５および応答部８６を備えている。
【００４４】
印刷データ受信部８１は、ホスト２０から印刷データを受信する。当該印刷データには、モード情報が含まれている。本実施形態において「モード情報」とは、「通常送信モード」および「強制送信モード」のいずれかを示す情報である。「通常送信モード」とは、オンライン状態の印刷装置３２に対し、通常コマンド（印刷実行コマンドなど）を送信するモードである。また、「強制送信モード」とは、オフライン状態またはエラー発生状態の印刷装置３２に対し、強制的に印刷制御コマンドを送信するモードである。一方、「印刷データ」とは、印刷命令だけでなく、エラー復帰命令、ドロアーキック命令なども含まれる。ここで、「ドロアーキック命令」とは、印刷装置３２に接続されるキャッシュドロアー（図示省略）をドロアーオープンさせる命令である。印刷装置３２は、当該「ドロアーキック命令」を受け取ると、キャッシュドロアーに対し、ドロアーオープン命令を出す。なお、印刷制御装置３１にキャッシュドロアーを接続し、印刷制御装置３１がキャッシュドロアーに対してドロアーオープン命令を出す構成としても良い。
【００４５】
状態取得部８２は、印刷装置３２にステータス取得コマンドを送信することにより、印刷装置３２の状態（ステータス）を取得する。本実施形態では、「印刷装置の状態」として、オンライン状態またはオフライン状態を示す信号を取得する。判別部８３は、印刷データに含まれるモード情報と、印刷装置３２の状態が実行条件を満たすか否かを判別する。具体的には、モード情報が「強制送信モード」且つ印刷装置３２がオフライン状態である場合、第１の実行条件（請求項における「実行条件」）を満たすと判別する。また、モード情報が「通常送信モード」且つ印刷装置３２がオンライン状態である場合、第２の実行条件を満たすと判別する。
【００４６】
印刷装置制御部８４は、判別部８３により第１の実行条件を満たすと判別された場合、印刷装置３２を所定のモードに切り替えた後、印刷データから生成した印刷制御コマンド（ＥＳＣ／ＰＯＳ（登録商標）コマンド）を印刷装置３２に送信する。本実施形態では、「所定のモード」として、リアルタイムコマンド実行モードに切り替える。ここで、「リアルタイムコマンド」とは、印刷装置３２に対し即時実行を指令するコマンドを指す。なお、印刷装置３２は、当該リアルタイムコマンド実行モードと、通常コマンド実行モードのいずれかに切り替えられるものとする。また、印刷装置制御部８４は、判別部８３により第２の実行条件を満たすと判別された場合、印刷装置３２のモード切替を行うことなく、印刷データから生成した印刷制御コマンドを印刷装置３２に送信する。さらに、印刷装置制御部８４は、判別部８３により第１の実行条件および第２の条件の両方を満たさないと判別された場合、印刷装置３２に対し、印刷制御コマンドを送信しない。
【００４７】
実行結果取得部８５は、印刷装置３２から、印刷制御コマンドに対する実行結果（応答）を取得する。応答部８６は、当該実行結果をホスト２０に送信する。また、応答部８６は、判別部８３により第１の実行条件および第２の条件の両方を満たさないと判別された場合、その旨の応答データをホスト２０に送信する。
【００４８】
なお、上述のとおり、これら印刷制御装置３１の各部８１〜８６は、Ｗｅｂサービスとして実装される。また、印刷制御装置３１は、複数の印刷Ｗｅｂサービスを有しているため（図４参照）、複数の印刷データについて並列処理可能である。ここで、「複数の印刷データ」とは、複数のホストから送信された印刷データであっても良いし、１のホストから送信された複数の印刷データ（同一プログラム上の複数リクエスト）であっても良い。
【００４９】
一方、印刷装置３２は、主な機能構成として、状態送信部９１、モード切替部９２、コマンド受信部９３、コマンド実行部９４および実行結果送信部９５を備えている。
【００５０】
状態送信部９１は、印刷制御装置３１から送信されたステータス取得コマンドに対する応答として、印刷装置３２の状態を示す信号を印刷制御装置３１に送信する。モード切替部９２は、自装置のモードを、リアルタイムコマンド実行モードと、通常コマンド実行モードのいずれかに切り替える。
【００５１】
コマンド受信部９３は、印刷制御装置３１（印刷装置制御部８４）から送信された印刷制御コマンドを受信する。コマンド実行部９４は、受信した印刷制御コマンドを実行する。印刷制御コマンドの実行とは、印刷動作やエラー復帰動作を含む。したがって、印刷制御コマンドが印刷実行コマンドの場合、コマンド実行部９４は印刷部として機能する。実行結果送信部９５は、印刷制御コマンドの実行結果を、印刷制御装置３１に送信する。
【００５２】
次に、図６のフローチャートを参照し、印刷制御装置３１の一連の処理について説明する。印刷制御装置３１は、ホスト２０から印刷データを受信すると（Ｓ０１）、印刷装置３２に対してステータス取得コマンドを送信し、印刷装置３２のステータスを取得する（Ｓ０２）。続いて、当該ステータスに基づいて、印刷装置３２がオンライン状態であるか否かを判別し（Ｓ０３）、オンライン状態であると判別された場合は（Ｓ０３：Ｙｅｓ）、印刷データに含まれるモード情報が「通常送信モード」であるか否かを判別する（Ｓ０４）。ここで、「通常送信モード」であると判別された場合は（Ｓ０４：Ｙｅｓ）、印刷データから通常コマンドを生成して印刷装置３２に送信し（Ｓ０５）、印刷装置３２からステータスを取得する（Ｓ０６）。当該ステータスは、印刷成功／印刷失敗を示す情報が含まれる。その後、ホスト２０に対し、応答データとして、コマンド実行結果（印刷成功／印刷失敗）を送信する（Ｓ０７）。
【００５３】
また、Ｓ０４にて、「通常送信モード」でないと判別された場合は（Ｓ０４：Ｎｏ）、印刷装置３２にコマンド送信を行うことなく、応答データとして、実行条件を満たさない旨（印刷装置３２がオンライン状態である旨）の信号をホスト２０に送信する（Ｓ０７）。
【００５４】
一方、Ｓ０３にて、オンライン状態でないと判別された場合は（Ｓ０３：Ｎｏ）、印刷データに含まれるモード情報が「強制送信モード」であるか否かを判別する（Ｓ０８）。ここで、「強制送信モード」であると判別された場合は（Ｓ０８：Ｙｅｓ）、まずモード切替命令（リアルタイムコマンド実行モードへの切替命令）を印刷装置３２に送信し（Ｓ０９）、印刷装置３２のモード切替が終了した後、印刷データからリアルタイムコマンド（エラー復帰コマンドなど）を生成して印刷装置３２に送信する（Ｓ１０）。このように、印刷装置３２をリアルタイムコマンド実行モードに切り替えることで、印刷装置３２がオフライン状態であっても、印刷制御コマンドを実行させることができる。続いて、印刷装置３２からステータスを取得すると（Ｓ１１）、再度、モード切替命令（通常コマンド実行モードへの切替命令）を印刷装置３２に送信する（Ｓ１２）。その後、ホスト２０に対し、応答データとして、コマンド実行結果（エラー復帰成功／エラー復帰失敗など）を送信する（Ｓ０７）。
【００５５】
また、Ｓ０８にて、「強制送信モード」でないと判別された場合は（Ｓ０８：Ｎｏ）、印刷装置３２にコマンド送信を行うことなく、応答データとして、実効条件を満たさない旨（印刷装置３２がオフライン状態である旨）の信号をホスト２０に送信する（Ｓ０７）。
【００５６】
次に、図７を参照し、印刷データの具体例について説明する。なお、上述の通り、印刷データは、ＸＭＬ言語で記述されている。また「・」に続く文字は補足説明であり、実際の印刷データに含まれる情報ではない。同図（ａ）は、通常送信時に送信される印刷データの一例を示す図である。通常送信モードの場合、「print」タグが用いられる。同図の例では、印刷データに、ドロアーキック、文字の印字、改行、バーコード印刷、用紙カットの命令が含まれている。印刷制御装置３１は、当該印刷データに基づいて、各命令に対応した印刷制御コマンドを生成する。
【００５７】
図７（ｂ）は、強制送信時に送信される印刷データの一例を示す図である。強制送信モードの場合、「print  force="true"」タグが用いられる。同図の例では、印刷データに、エラー復帰命令が含まれている。印刷制御装置３１は、当該エラー復帰命令に基づいて、エラー復帰とバッファークリア（印刷装置３２のバッファー５４内にある印刷データの消去）の印刷制御コマンドを生成する。
【００５８】
図７（ｃ）は、モード情報に応じてコマンドを出力する場合の印刷データの一例を示す図である。同図の例では、印刷データ内に「print」タグと「print  force="true"」タグの両方が含まれている。この場合、印刷制御装置３１は、印刷装置３２がオンライン状態であれば、「print」タグにあるドロアーキックの命令を通常コマンドに変換して、印刷装置３２に送信すると共に、「print  force="true"」タグにある命令を無視する。また、印刷装置３２がオフライン状態であれば、「print  force="true"」タグにあるドロアーキックの命令をリアルタイムコマンドに変換して、印刷装置３２に送信すると共に、「print」タグにある命令を無視する。
【００５９】
図７（ｄ）は、オフライン状態にて有効な命令を含む印刷データの一例を示す図である。同図の例では、印刷データに、ドロアーキック、エラー復帰、ブザー停止の命令が含まれている。印刷制御装置３１は、当該印刷データに基づいて、各命令に対応した印刷制御コマンド（ドロアーキック、ブザー鳴動、エラー復帰およびバッファークリア、ブザー停止の印刷制御コマンド）を生成する。
【００６０】
次に、図８を参照し、エラー発生時における処理の流れを説明する。同図（ａ）は、エラーが発生した場合の処理の流れを示す図である。ここでは、ホストａから印刷命令が行われ、その印刷中にエラーが発生する状況を想定している。この場合、印刷装置３２は、印刷制御装置３１に対しエラー発生を示すステータスを送信し、印刷制御装置３１は、エラー発生を示す応答データをホスト２０に送信する。なお、この状態で、仮にホストｂから印刷命令が行われたとすると、印刷装置３２がオフライン状態であるため、印刷制御装置３１から印刷装置３２に印刷制御コマンドが送信されることなく、実行条件を満たさない旨の応答データがホスト２０に送信される。その結果ホストｂは、印刷待機中となる。
【００６１】
一方、図８（ｂ）は、エラー発生中の処理の流れを示す図である。印刷装置３２でエラーが発生すると、ホストａは強制送信モードを指定してエラー復帰命令を行う。印刷制御装置３１は、当該エラー復帰命令からエラー復帰コマンド（リアルタイムコマンド）を生成し、これを印刷装置３２に送信する。これにより、印刷装置３２は、エラー要因が取り除かれた状態となる。これら一連の動作により、ホストｂからの再印刷命令による印刷が可能となる。
【００６２】
以上説明したとおり、本実施形態の印刷制御装置３１によれば、ホスト２０から印刷データを受信した場合、モード情報が強制送信モード且つ印刷装置３２がオフライン状態であるかの実行条件を判別し、当該実行条件を満たす場合（のみ）、印刷装置３２をリアルタイムコマンド実行モードに切り替えて、印刷データから生成したリアルタイムコマンドを送信する。これにより、印刷装置３２がオフライン状態の場合でも、エラー復帰コマンドなど所望の印刷制御コマンドを実行させることができる。また、実行条件を満たさないと判別された場合、印刷制御装置３１は、印刷装置３２にコマンドを送信しないため、印刷装置３２の誤動作を防止できる。また、印刷制御装置３１は、印刷データから印刷制御コマンドに変換する際、モード情報に基づいて印刷制御コマンドを生成するため、同じ要素を、複数のモードで共通して使用することができる。
【００６３】
さらに、モード情報が通常送信モード且つ印刷装置３２がオンライン状態であることを通常送信の実行条件としているため、印刷制御装置３１が複数のホスト２０と接続され、複数の印刷データの処理を並列処理可能な構成であっても、あるホスト２０からの印刷復帰処理が、他のホスト２０からの印刷命令によって妨げられることがない。
【００６４】
また、ホスト２０は、Ｗｅｂブラウザー２７上で動作するスクリプトを用いて印刷データを生成するため、印刷装置ドライバーやプラグインを必要としない。また、ホスト２０のプラットフォームを問わないため、スマートフォンやタブレット端末など、各種ＯＳで動作するホスト２０を、同じ印刷システムＳＹ内で混在させることができる。
【００６５】
なお、上記の実施形態では、印刷装置３２のモードを、リアルタイムコマンド実行モードと通常コマンド実行コードのいずれかに切り替えるものとしたが、その他「プリンター設定モード」や「ファーム書き換えモード」などに切り替え可能としても良い。この場合、各モードに対応したモード情報が用意される。また、「プリンター設定モード」や「ファーム書き換えモード」も、印刷装置３２のオフライン時に実行される構成としても良い。さらに、「印刷装置の状態」として、オンライン／オフライン以外の状態（所定のボタンを押下した状態、カバーオープンした状態など）をモード情報と紐付け、実行条件として規定する構成としても良い。
【００６６】
また、上記の実施形態では、Ｗｅｂブラウザー２７として標準ブラウザーを使用し、印刷制御スクリプトを用いて印刷データを生成したが、プラグインやリッチインターネットアプリケーションを用いて印刷データを生成しても良い。
【００６７】
また、上記の実施形態では、１の印刷制御装置３１に、複数のホスト２０と複数の印刷装置３２が接続された構成を示したが、複数の印刷制御装置３１で複数の印刷装置３２を共有する構成としても良い。このように、印刷制御装置３１を冗長化して印刷装置３２を共有することで、堅牢な印刷システムＳＹを構築することができる。
【００６８】
また、上記の各実施形態に示した印刷システムＳＹの各構成要素をプログラムとして提供することが可能である。また、そのプログラムを各種記録媒体（ＣＤ−ＲＯＭ、フラッシュメモリー等）に格納して提供することも可能である。すなわち、コンピューターを印刷システムＳＹの各部として機能させるプログラム、またはコンピューターに印刷システムＳＹの各処理工程を実行させるプログラム、並びにそれらを記録した記録媒体も、本発明の権利範囲に含まれる。
【００６９】
また、上記の各実施形態では、印刷装置３２としてレシートプリンターを例示したが、レシートプリンター以外の印刷装置にも、本発明を適用可能である。また、上記の実施形態では、スクリプトの一例として、JavaScript（登録商標）を例示したが、これ以外の各種プログラミング言語を用いた場合でも本発明を適用可能である。その他、本発明の要旨を逸脱しない範囲で、適宜変更が可能である。
【符号の説明】
【００７０】
１０…Ｗｅｂアプリケーションサーバー  １１…制御部  １２…通信部  １３…記憶部  １５…ＨＴＴＰサーバー  １６…Ｗｅｂアプリケーション  ２０…ホスト  ２７…Ｗｅｂブラウザー  ３０…印刷装置  ３１…印刷制御装置  ３２…印刷装置  ４０…Ｗｅｂページ  ４６…ＨＴＴＰサーバー  ７１…ブラウザー制御部  ７２…印刷データ生成部  ７３…印刷データ送信部  ７４…応答受信部  ８１…印刷データ受信部  ８２…状態取得部  ８３…判別部  ８４…印刷装置制御部  ８５…実行結果取得部  ８６…応答部  ９１…状態送信部  ９２…モード切替部  ９３…コマンド受信部  ９４…コマンド実行部  ９５…実行結果送信部  ＳＹ…印刷システム
【図１】
2014215664.tif 000003
【図２】
2014215664.tif 000004
【図３】
2014215664.tif 000005
【図４】
2014215664.tif 000006
【図５】
2014215664.tif 000007
【図６】
2014215664.tif 000008
【図７】
2014215664.tif 000009
【図８】
2014215664.tif 000010