(57)【特許請求の範囲】
【請求項１】
ホストから、マークアップ言語で記述された印刷データを受信する印刷データ受信部と、
前記印刷データを印刷装置用のコマンドに変換し、前記コマンドの前に、前回のコマンドを補完可能なダミーデータを含む初期化コマンドを付加して印刷コマンドを生成するコマンド生成部と、
前記印刷コマンドを、前記印刷装置に送信するコマンド送信部と、を備えることを特徴とする印刷制御装置。
【請求項２】
前記ダミーデータは、前記印刷装置のバッファー容量を超える空白ファイルである請求項１に記載の印刷制御装置。
【請求項３】
Ｗｅｂブラウザーを動作させるブラウザー制御部、及び前記Ｗｅｂブラウザーで動作するスクリプトまたはプラグインを用いて印刷制御装置に対してＨＴＴＰによりマークアップ言語で記述された印刷データを送信する印刷データ送信部を有するホストと、
印刷を行う印刷装置と、
ＨＴＴＰサーバー、前記ホストから送信された前記印刷データを印刷装置用のコマンドに変換し、前記コマンドの前に前回のコマンドを補完可能なダミーデータを含む初期化コマンドを付加して印刷コマンドを生成するコマンド生成部、及び前記印刷コマンドを前記印刷装置に送信するコマンド送信部を有する印刷制御装置と、を備えることを特徴とする印刷システム。
【請求項４】
前記ダミーデータは、前記印刷装置のバッファー容量を超える空白ファイルである請求項３に記載の印刷システム。
【請求項５】
前記印刷データは、空印刷データであり、
前記コマンド生成部は、前記空印刷データを変換した前記コマンドの後に前記印刷装置の状態を取得する状態取得コマンドを付加して空印刷コマンドを生成し、
前記印刷制御装置は、
前記印刷装置から前記空印刷コマンドに対する応答を取得する応答取得部と、
前記空印刷コマンドに対する応答を前記ホストに返信する応答返信部と、を有する請求項３または４に記載の印刷システム。
【請求項６】
Ｗｅｂブラウザーで動作するスクリプトまたはプラグインを用いてホストから送信された印刷データを、ＨＴＴＰサーバーを有する印刷制御装置で受信し、
前記印刷制御装置で、前記ホストから送信された前記印刷データを印刷装置用のコマンドに変換し、前記コマンドの前に前回のコマンドを補完可能なダミーデータを含む初期化コマンドを付加して印刷コマンドを生成し、
前記印刷コマンドを前記印刷装置に送信することを特徴とする印刷システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１：１接続が前提の印刷制御コマンドで印刷装置を制御する印刷制御装置、印刷システム、および印刷システムの制御方法に関する。
【背景技術】
【０００２】
従来、ＰＯＳ（Point  Of  Sales）端末により印刷装置（レシートプリンター）などの周辺機器を制御するためのコマンドとして、事実上の業界標準となっているＥＳＣ／ＰＯＳ（登録商標）コマンドが知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３４３０２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ＥＳＣ／ＰＯＳ（登録商標）コマンドは、ＰＯＳ端末と印刷装置が１：１で接続されていることが前提となっている。このため、ネットワーク接続により、ＰＯＳ端末と印刷装置が多：１または多：多の構成となった場合に不具合が生じる。例えば、複数のホストで印刷装置のステータスを取得することができない。このため、複数のホストで確実にステータスを取得するために、ＥＮＰＣやＳＮＭＰといった他のプロトコルが必要となる。
【０００５】
しかしながら、クラウドコンピューティングの場合など、ホストでＷｅｂブラウザーを動作させる環境で、ＥＳＣ／ＰＯＳ（登録商標）コマンドで動作する印刷装置を用いた場合、印刷装置がオフラインの状態で、ＥＮＰＣプロトコルやＳＮＭＰプロトコルを利用できない。つまり、印刷装置がオフラインの状態では、ステータスを取得することができないといった問題がある。
【０００６】
本発明は、上記の問題点に鑑み、クラウドコンピューティングの環境下で、１：１接続が前提の印刷制御コマンドで動作する印刷装置を用いた場合、印刷装置がオフライン状態でも印刷装置のステータスをホストに通知することが可能な印刷制御装置、印刷システム、および印刷システムの制御方法を提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明の印刷制御装置は、ホストから、マークアップ言語で記述された印刷データを受信する印刷データ受信部と、印刷データを印刷装置用のコマンドに変換し、コマンドの前に、前回のコマンドを補完可能なダミーデータを含む初期化コマンドを付加して印刷コマンドを生成するコマンド生成部と、印刷コマンドを、印刷装置に送信するコマンド送信部と、を備えることを特徴とする。
上記の印刷制御装置において、ダミーデータは、印刷装置のバッファー容量を超える空白ファイルであることを特徴とする。
本発明の印刷システムは、Ｗｅｂブラウザーを動作させるブラウザー制御部、及びＷｅｂブラウザーで動作するスクリプトまたはプラグインを用いて印刷制御装置に対してＨＴＴＰによりマークアップ言語で記述された印刷データを送信する印刷データ送信部を有するホストと、印刷を行う印刷装置と、ＨＴＴＰサーバー、ホストから送信された印刷データを印刷装置用のコマンドに変換し、コマンドの前に前回のコマンドを補完可能なダミーデータを含む初期化コマンドを付加して印刷コマンドを生成するコマンド生成部、及び印刷コマンドを印刷装置に送信するコマンド送信部を有する印刷制御装置と、を備えることを特徴とする。
上記の印刷システムにおいて、ダミーデータは、印刷装置のバッファー容量を超える空白ファイルであることを特徴とする。
上記の印刷システムにおいて、印刷データは、空印刷データであり、コマンド生成部は、空印刷データを変換したコマンドの後に印刷装置の状態を取得する状態取得コマンドを付加して空印刷コマンドを生成し、印刷制御装置は、印刷装置から空印刷コマンドに対する応答を取得する応答取得部と、空印刷コマンドに対する応答をホストに返信する応答返信部と、を有することを特徴とする。
本発明の印刷システムの制御方法は、Ｗｅｂブラウザーで動作するスクリプトまたはプラグインを用いてホストから送信された印刷データを、ＨＴＴＰサーバーを有する印刷制御装置で受信し、印刷制御装置で、ホストから送信された印刷データを印刷装置用のコマンドに変換し、コマンドの前に前回のコマンドを補完可能なダミーデータを含む初期化コマンドを付加して印刷コマンドを生成し、印刷コマンドを印刷装置に送信することを特徴とする。
なお、以下の構成としても良い。
本発明の印刷システムは、Ｗｅｂブラウザーを動作させるブラウザー制御部、及びＷｅｂブラウザーで動作するスクリプトまたはプラグインを用いて印刷制御装置に対してＨＴＴＰにより空印刷データを送信する空印刷データ送信部を有するホストと、印刷を行う印刷装置と、ＨＴＴＰサーバー、ホストから送信された空印刷データに印刷装置の状態を取得する状態取得コマンドを付加して空印刷コマンドを生成するコマンド生成部、空印刷コマンドを印刷装置に送信するコマンド送信部、印刷装置から空印刷コマンドに対する応答を取得する応答取得部、及び空印刷コマンドに対する応答をホストに返信する応答返信部を有する印刷制御装置と、を備えたことを特徴とする。
【０００８】
本発明の印刷システムの制御方法は、ホストが、Ｗｅｂブラウザーで動作するスクリプトまたはプラグインを用いて、印刷制御装置に対し、ＨＴＴＰにより空印刷データを送信し、ＨＴＴＰサーバーを有する印刷制御装置が、ホストから送信された空印刷データに、印刷装置の状態を取得するための状態取得コマンドを付加して空印刷コマンドを生成し、空印刷コマンドを、印刷装置に送信し、印刷装置から、空印刷コマンドに対する応答を取得し、空印刷コマンドに対する応答を、ホストに返信することを特徴とする。
【０００９】
これらの構成によれば、印刷制御装置により、ホストから送信された空印刷データに状態取得コマンドを付加して空印刷コマンドを生成し、印刷装置に送信するため、印刷装置からの空印刷コマンド（状態取得コマンド）に対する応答に基づいて、印刷装置のステータスをホストに通知することができる。つまり、ホストがＷｅｂブラウザーを動作させ、印刷制御装置にＨＴＴＰサーバーを備えたクラウドコンピューティングの環境下で、ＥＳＣ／ＰＯＳ（登録商標）コマンドなど、１：１接続が前提の印刷制御コマンドで動作する印刷装置を用いた場合、印刷装置がオフラインの状態でも、印刷装置がオフラインである旨をホストに通知することができる。このように、従来のコマンド体系を維持しつつ、既存の印刷装置をクラウドコンピューティング（パブリッククラウド・プライベートクラウド）の環境下で用いることができる。
なお、「印刷装置の状態」とは、印刷装置の用紙の有無、オンライン／オフライン、インク／トナー残量、バッテリー残量などのステータス情報を指す。
【００１０】
上記の印刷システムにおいて、コマンド生成部は、空印刷データの後に状態取得コマンドを付加すると共に、空印刷データの前に初期化コマンドを付加して、空印刷コマンドを生成することを特徴とする。
【００１１】
この構成によれば、空印刷データの前に初期化コマンドを付加するため、ホストと印刷装置が多：１または多：多の構成でも、１：１接続が前提となる印刷制御コマンドを用いて印刷装置を制御することができる。例えば、ホストａからの印刷指令に基づく前回の印刷が正常終了していない場合でも、続くホストｂからの印刷データの前に初期化コマンドを付加するため、当該コマンド列を正常に処理させることができる。また、ホストａからの指令により印刷装置の設定変更が行なわれていた場合も、同じくホストｂからの印刷データの前に初期化コマンドを付加して初期化状態に戻すため、続くホストｂからの印刷データを正常に解釈させることができる。このように、従来のコマンド体系を維持しつつ、既存の印刷装置を複数のホストに対応させることができる。また、空印刷データの後に状態取得コマンドを付加するため、空印刷データが正常に処理されたことを、ホストに通知することができる。
【００１２】
上記の印刷システムにおいて、印刷制御装置は、空印刷コマンドに対する応答から、印刷装置が印刷不可能な状態であると判定した場合、印刷中止処理を行う印刷中止処理部を有し、印刷中止処理には、印刷装置のバッファーをクリアにするリアルタイムコマンドであるバッファークリアコマンドを印刷装置に送信する処理が含まれることを特徴とする。
【００１３】
この構成によれば、前回の印刷が正常終了せず、バッファー内にコマンドが残っている場合でも、次の印刷を正常に処理させることができる。
なお、印刷装置が複数台接続されている場合であって、ホストが指定した印刷装置が存在しない場合も、印刷中止処理を行うことが好ましい。
【００１４】
上記の印刷システムにおいて、空印刷データ送信部は、印刷制御装置に対し、予め定められたタイミングで空印刷データを送信することを特徴とする。
【００１５】
この構成によれば、ホストが、電源ＯＮ時や所定アプリケーションの起動時など、予め定められたタイミングで、ステータスを把握することができる。特に、定期的に空印刷データを送信することにより、ホスト側で印刷装置のステータスを常に把握することができる。
【００１６】
上記の印刷システムにおいて、印刷データは、マークアップ言語で記述されており、マークアップスキーマにより、印刷データの妥当性を検証する妥当性検証部を備え、印刷中止処理部は、妥当性検証部により不正な印刷データであると判定された場合、印刷中止処理を行うことを特徴とする。
【００１７】
この構成によれば、マークアップスキーマを用いることにより、印刷データの妥当性を検証することができる。
【００１８】
なお、以下の構成を採用可能である。上記の印刷システムにおいて、印刷制御装置は、複数のホストと接続可能であり、応答返信部は、複数のホストのうち、空印刷データの送信元となるホストに返信しても良い。この構成によれば、複数のホストのうち、空印刷データの送信元となるホストだけが、印刷装置のステータスを知ることができる。つまり、他のホストが送信した印刷データに対する印刷結果を不必要に取得することがない。
また、上記の印刷システムにおいて、初期化コマンドには、印刷装置が主体となってステータスを返信するＡＳＢステータスを有効にするためのＡＳＢ有効コマンドが含まれており、応答取得部は、空印刷コマンドの送信から状態取得コマンドに対する応答を受信するまでの間、印刷装置から送信されるステータスを取得し、応答返信部は、印刷結果と共に、応答取得部が取得した最新のステータスを、印刷データの送信元となるホストに返信することが好ましい。この構成によれば、ホストは、最新の印刷装置のステータスを知ることができる。
また、上記の印刷システムにおいて、印刷制御装置は、接続されている各印刷装置から、各印刷装置に関する情報である印刷装置情報を取得する印刷装置情報取得部と、取得した各印刷装置の印刷装置情報を、複数のホストに通知する印刷装置情報通知部と、をさらに有し、ホストは、通知された各印刷装置の印刷装置情報を表示する印刷装置情報表示部と、表示された各印刷装置の印刷装置情報の中から空印刷データの対象となる印刷装置を指定する印刷装置指定部と、をさらに有することが好ましい。この構成によれば、ホストに対し、印刷装置情報の取得手段と、印刷装置の指定手段を提供できる。つまり、ホストによるこれらの処理を不要とすることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態に係る印刷システムのシステム構成図である。
【図２】（ａ）は、Ｗｅｂアプリケーションサーバーの制御ブロック図であり、（ｂ）は、ホストの制御ブロック図である。
【図３】インテリジェント機能付き印刷装置の制御ブロック図である。
【図４】印刷制御装置の実装レイヤーを示す図である。
【図５】第１実施形態に係る印刷システムの機能ブロック図である。
【図６】（ａ）は、第１実施形態に係る印刷指示コマンドのコマンド列を示す図であり、（ｂ）は、印刷前コマンドのコマンド列を示す図である。
【図７】第１実施形態に係る印刷制御の流れを示すフローチャートである。
【図８】第２実施形態に係る印刷システムの機能ブロック図である。
【図９】第２実施形態に係る空印刷コマンドのコマンド列を示す図である。
【図１０】第３実施形態に係る印刷システムの機能ブロック図である。
【図１１】（ａ）は、印刷装置の仕様、搭載文字および文字コードの関係を示す表であり、（ｂ）は、言語属性および文字コード切り替えコマンドの関係を示す表である。
【図１２】第３実施形態に係る印刷指示コマンドのコマンド列を示す図である。
【図１３】第３実施形態に係る印刷データの一例を示す図である。
【図１４】（ａ）〜（ｃ）は、図１３の印刷データを、それぞれ日本語仕様、韓国語仕様、ＡＮＫ仕様の印刷装置を用いて印刷した場合の印刷結果を示す図である。
【図１５】第３実施形態に係る印刷制御の流れを示すフローチャートである。
【図１６】第４実施形態に係る印刷システムの機能ブロック図である。
【図１７】（ａ）は、ラスターグラフィックスコマンドのデータ並びを示す図であり、（ｂ）は、ビットイメージコマンドのデータ並びを示す図である。
【図１８】（ａ）〜（ｄ）は、それぞれノーマルモード・モノクロ・分割なし、ノーマルモード・モノクロ・分割あり、ページモード・モノクロ・分割なし、ページモード・モノクロ・分割あり、の場合の印刷指示コマンドのコマンド列を示す図である。
【図１９】（ａ）〜（ｄ）は、それぞれノーマルモード・グレースケール・分割なし、ノーマルモード・グレースケール・分割あり、ページモード・グレースケール・分割なし、ページモード・グレースケール・分割あり、の場合の印刷指示コマンドのコマンド列を示す図である。
【図２０】（ａ）〜（ｄ）は、それぞれノーマルモード・カラー・分割なし、ノーマルモード・カラー・分割あり、ページモード・カラー・分割なし、ページモード・カラー・分割あり、の場合の印刷指示コマンドのコマンド列を示す図である。
【図２１】第４実施形態に係る印刷データの一例を示す図である。
【図２２】（ａ）は、画像ファイルの一例を示す図であり、（ｂ），（ｃ）は、図２１の印刷データを、それぞれモノクロ印刷対応、モノクロ印刷・４ビットグレースケール対応の印刷装置を用いて印刷した場合の印刷結果を示す図である。
【図２３】第４実施形態に係る印刷制御の流れを示すフローチャートである。
【図２４】（ａ）は、インテリジェント機能付き印刷装置を親機とし、インテリジェント機能を搭載していない複数台の印刷装置を子機とした場合のシステム構成を示す図であり、（ｂ）は、複数の印刷制御装置で複数の印刷装置を共有した場合のシステム構成を示す図である。
【発明を実施するための形態】
【００２０】
以下、添付の図面を参照し、本発明に係る印刷システムＳＹについて説明する。通常、タブレット端末やスマートフォンから印刷を行う場合、端末のＯＳに準拠した印刷アプリケーションや印刷ドライバーを、ＯＳ毎に準備する必要がある。これに対し、本発明の印刷システムＳＹでは、印刷ドライバーに相当するＸＭＬ（Extensible  Markup  Language）  Ｗｅｂサービスプリント機能（印刷制御装置）を印刷装置に搭載しているため、ＯＳに依存することなく印刷を行うことができる。つまり、ホスト側に、専用の印刷ドライバーをインストールすることなく、Ｗｅｂブラウザーを用いて印刷装置を動作させるができる。以下、ＸＭＬ  Ｗｅｂサービスプリント機能を搭載した印刷装置を「インテリジェント機能付き印刷装置」と称する。これに対し、ＸＭＬ  Ｗｅｂサービスプリント機能を搭載していない印刷装置を、単に「印刷装置」と称する。
【００２１】
［全体構成］
図１〜図４を参照し、各実施形態の説明に先立ち、印刷システムＳＹの全体構成から説明する。図１は、印刷システムＳＹのシステム構成図である。印刷システムＳＹは、Ｗｅｂアプリケーションサーバー１０と、複数台のホスト２０ホストａ、ホストｂ）と、印刷制御装置３１と、複数台の印刷装置３２（印刷装置Ａ、印刷装置Ｂ）と、から成る。なお、印刷制御装置３１と１台の印刷装置３２（印刷装置Ａ）は、インテリジェント機能付き印刷装置３０として印刷システムＳＹ内に組み込まれている。したがって、印刷装置Ａと印刷装置Ｂは、親機−子機の関係となる。
【００２２】
Ｗｅｂアプリケーションサーバー１０とホスト２０は、インターネット等のネットワークを介して接続される。また、ホスト２０と印刷制御装置３１は、有線／無線ＬＡＮ等のネットワークを介して接続される。なお、ホスト２０は、例えば小売店のレジカウンターに設置されるＰＯＳ（Point  Of  Sales）端末である。また、インテリジェント機能付き印刷装置３０および印刷装置３２は、例えば会計レシートを発行するレシートプリンター、または厨房に設置されるキッチンプリンターである。
【００２３】
続いて、図２および図３を参照し、Ｗｅｂアプリケーションサーバー１０、ホスト２０およびインテリジェント機能付き印刷装置３０の制御構成について説明する。図２（ａ）は、Ｗｅｂアプリケーションサーバー１０の制御構成を示す図である。Ｗｅｂアプリケーションサーバー１０は、制御部１１、通信部１２および記憶部１３の他、一般的なコンピューターに搭載される不図示のハードウェア構成を有している。制御部１１は、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）およびＲＡＭ（Random  Access  Memory）等により構成される。記憶部１３は、例えばＨＤＤ（Hard  Disk  Drive）であり、ＨＴＴＰサーバー１５およびＷｅｂアプリケーション１６を記憶している。
【００２４】
通信部１２は、ホスト２０（Ｗｅｂブラウザー２７）と通信を行なうためのインターフェースである。このＷｅｂアプリケーションサーバー１０とホスト２０との通信は、ＨＴＴＰサーバー１５によりＨＴＴＰ（Hypertext  Transfer  Protocol）に基づいて行なわれる。すなわち、Ｗｅｂアプリケーションサーバー１０は、ホスト２０（Ｗｅｂブラウザー２７）からのＨＴＴＰリクエストを受け付け、このＨＴＴＰリクエストに含まれるＵＲＬ（Uniform  Resource  Locator）に基づいて、Ｗｅｂアプリケーション１６が提供するＷｅｂページ４０（図１参照）をホスト２０に送信する。
【００２５】
このＷｅｂページ４０には、Ｗｅｂページ４０自体を制御するためのページ制御スクリプト（JavaScript（登録商標））や、印刷制御を行うための印刷制御スクリプト（JavaScript（登録商標））などが組み込まれている。ホスト２０は、Ｗｅｂブラウザー２７において（Ｗｅｂページ４０の内部で）印刷制御スクリプトを実行することにより、印刷処理を行う。
【００２６】
図２（ｂ）は、ホスト２０の制御構成を示す図である。ホスト２０は、制御部２１、表示部２２、通信部２３、記憶部２４および操作部２５を備えている。制御部２１は、ＣＰＵ等を有し、ホスト２０全体を制御する。
【００２７】
表示部２２は、Ｗｅｂブラウザー２７上に、当該Ｗｅｂブラウザー２７により取得（ダウンロード）したＷｅｂページ４０を表示したり、Ｗｅｂブラウザー２７の操作に伴う各種通知画面や各種設定画面を表示する。操作部２５は、Ｗｅｂブラウザー２７で表示したＷｅｂページ４０において、印刷指示等の各種操作を行うために用いられる。例えば、ホスト２０がＰＯＳ端末であり、Ｗｅｂアプリケーション１６がＰＯＳアプリケーションである場合、Ｗｅｂページ４０として、バーコード読取結果（購入商品の商品名、単価、数量等）や、会計結果を表示する。また、ホスト２０に設けられた「会計キー」の押下（操作部２５の操作）により、印刷指示が行われる。なお、表示部２２と操作部２５は、別々のハードウェアとして構成しても良いし、タッチパネルとして一体に構成しても良い。
【００２８】
通信部２３は、Ｗｅｂアプリケーションサーバー１０および印刷制御装置３１と通信を行なうためのインターフェースである。上述のとおり、ホスト２０は、Ｗｅｂブラウザー２７を用いて、Ｗｅｂアプリケーションサーバー１０および印刷制御装置３１と通信を行う。
【００２９】
記憶部２４は、例えばＨＤＤであり、Ｗｅｂブラウザー２７を記憶している。本実施形態では、Ｗｅｂブラウザー２７として、プラグインモジュールをサポートしない単機能ブラウザ（標準のブラウザ）を用いる。制御部２１は、このＷｅｂブラウザー２７により、通信部２３を介してＷｅｂアプリケーションサーバー１０にアクセスし、Ｗｅｂアプリケーション１６が提供するＷｅｂページ４０を取得する。
【００３０】
また、Ｗｅｂページ４０には、上述のとおり、ページ制御スクリプトおよび印刷制御スクリプトが組み込まれている。Ｗｅｂブラウザー２７が、Ｗｅｂページ４０に組み込まれたページ制御スクリプトによりユーザーの印刷指示操作を受付けると、同じくＷｅｂページ４０に組み込まれた印刷制御スクリプトを実行して、ＸＭＬ言語で記述した印刷データを生成し、印刷制御装置３１に送信する。
【００３１】
なお、ホスト２０は、Ｗｅｂブラウザー２７が動作するコンピューターであれば良く、ＰＯＳ端末、タブレット端末、スマートフォンおよびパーソナルコンピューターなど、その種類を問わない。また、上述のとおりドライバーレスの構成であるため、ＯＳの種類も問わない。したがって、異なるプラットフォーム上で動作する複数台のホスト２０を、同じ印刷システムＳＹ内で混在させることができる。
【００３２】
図３は、インテリジェント機能付き印刷装置３０の制御構成を示す図である。上述のとおり、インテリジェント機能付き印刷装置３０は、印刷制御装置３１と印刷装置３２を組み合わせたものである。また、本実施形態の印刷制御装置３１は、インターフェースボードとして、印刷装置３２に着脱可能に装着される。なお、印刷制御装置３１を別体の制御ボックスとして、印刷装置３２に外付け（接続）する構成でも良い。
【００３３】
印刷制御装置３１は、制御部４１、ボード側インターフェース４２、記憶部４３および通信部４４を備えている。制御部４１は、ＣＰＵ等を有し、印刷制御装置３１全体を制御する。ボード側インターフェース４２は、印刷装置３２（印刷装置側インターフェース５５）との通信を行う。記憶部４３は、例えば不揮発性メモリー（フラッシュＲＯＭ等）であり、ＨＴＴＰサーバー４６および印刷装置リスト４７を記憶している。印刷装置リスト４７は、各印刷装置３２の印刷装置情報５７を列記したものである。印刷制御装置３１は、接続されている各印刷装置３２（印刷装置Ａ、印刷装置Ｂ）と通信し、機種名、搭載文字、カラーモード、画像形式等を含む印刷装置情報５７を取得して、印刷装置リスト４７に格納する。
【００３４】
通信部４４は、ホスト２０および他の印刷装置３２（印刷装置Ｂ）との通信を行うものであり、ＬＡＮインターフェースおよびＵＳＢインターフェース等のインターフェース群から成る。印刷制御装置３１とホスト２０（Ｗｅｂブラウザー２７）との通信は、ＨＴＴＰサーバー４６によりＨＴＴＰに基づいて行われる。すなわち、ホスト２０から、印刷制御装置３１に一意に割り当てられたサービスエンドポイントアドレス（http://x.x.x.x/などのＵＲＬ）に対して印刷データが送信されると、印刷制御装置３１は当該印刷データを受信する。
【００３５】
印刷制御装置３１は、受信した印刷データ（ＸＭＬ文書）を、印刷装置３２用の印刷制御コマンド（ＥＳＣ／ＰＯＳ（登録商標）コマンド）に変換し、各印刷装置３２に送信する。印刷制御コマンドは、例えばＥＳＣ（ｘｎ・・・）の形式であり、「ｎ」によりデータ長を示している。また、サービスエンドポイントアドレスには、印刷を実行させる印刷装置３２の印刷装置ＩＤ（印刷装置指定情報）も含まれている。印刷制御装置３１は、当該印刷装置ＩＤにより指定された印刷装置３２を出力先として、印刷制御コマンドを送信する。なお、印刷制御装置３１は、ホスト２０のＷｅｂブラウザー２７上で動作する印刷制御スクリプトから、クロスドメイン（クロスオリジン）通信の要求を受信した場合、これを許可する応答（ＸＭＬ文書）を行う。
【００３６】
印刷装置３２は、制御部５１、記憶部５２、印刷機構５３、バッファー５４および印刷装置側インターフェース５５を備えている。制御部５１は、ＣＰＵ等を有し、印刷装置３２全体を制御する。記憶部５２は、印刷装置情報５７（印刷装置３２自身の機種名、搭載文字、カラーモード、画像形式等）を記憶している。印刷機構５３は、印刷ヘッド、用紙送り機構、用紙切断機構などを含み、制御部５１の制御下で印刷動作を行う。なお、印刷方式は、インクジェット方式やレーザー方式など、その種類を問わない。
【００３７】
バッファー５４は、受信データ（印刷制御コマンド）を一時的に格納しておくための受信バッファーである。印刷機構５３は、バッファー５４に格納されているデータを順次読み出して印刷を行う。印刷装置側インターフェース５５は、印刷制御装置３１（ボード側インターフェース４２）との通信を行う。印刷装置３２は、当該印刷装置側インターフェース５５を介して印刷制御装置３１から印刷制御コマンドを受信し、これに基づいて印刷を行う。また、その印刷結果を、印刷装置側インターフェース５５を介して、印刷制御装置３１に出力する。さらに、印刷装置３２は、印刷制御コマンドとして状態取得コマンドが送信された場合、自装置内の状態（ステータス）を検出し、印刷制御装置３１に送信する。印刷制御装置３１は、これら印刷結果やステータス（コマンドレスポンス）を、ＸＭＬ文書に変換して、ホスト２０に返信する。
【００３８】
次に、図４を参照し、印刷制御装置３１の実装レイヤーについて説明する。印刷制御装置３１の実装レイヤーは、下位相から、ハードウェア、ＯＳ、Ｗｅｂサーバー（ＨＴＴＰサーバー４６）、が順に積層され、さらに最上位層として、複数の印刷Ｗｅｂサービス（ＸＭＬ  Ｗｅｂサービスプリント機能）およびデバイス登録Ｗｅｂアプリケーションが積層されている。
【００３９】
ここで、印刷Ｗｅｂサービスは、ＸＭＬ文書から印刷制御コマンドへの変換など、本実施形態の主要部を為す機能である。この印刷Ｗｅｂサービスを複数備えたことで、複数台のホスト２０から印刷データを受信し、複数の印刷装置３２に対して印刷を実行させたり、各印刷装置３２の印刷結果を印刷データの送信元となる各ホスト２０に返信させたりなど、複数の処理を並行して実行することができる。例えば、同図の例では、印刷Ｗｅｂサービスを１０プロセス設けているため、１０個のプロセス（スレッド）を同時処理可能である。但し、１台の印刷装置３２に対して複数の印刷データが送信された場合は、印刷権を獲得した順（印刷ポートを確保した順）に処理を行う。
【００４０】
また、デバイス登録Ｗｅｂアプリケーションは、印刷装置３２のプリンターＩＤ、機種名およびポート情報（ＩＰアドレス）を登録するためのアプリケーションである。これらの情報は、ＨＴＴＰサーバー４６によって提供される設定ページ（Ｗｅｂページ）をＷｅｂブラウザー２７によって表示させ、ユーザーが操作部２５を用いて入力を行うことにより登録される。また、登録されたこれらの情報は、印刷装置リスト４７（図３参照）に格納される。
【００４１】
［第１実施形態］
次に、図５ないし図７を参照し、本発明の第１実施形態について説明する。第１実施形態では、ホスト２０と印刷装置３２が多：１または多：多の構成でも、１：１接続が前提となる印刷制御コマンド（ＥＳＣ／ＰＯＳ（登録商標）コマンド）を用いて印刷装置３２を制御することを課題とする。そこで、当該課題を解決するための構成について主に説明する。
【００４２】
図５は、第１実施形態に係る印刷システムＳＹ１の機能ブロック図である。同図に示すように、ホスト２０は、主な機能構成として、ブラウザー制御部７１、印刷データ生成部７２、印刷データ送信部７３、応答受信部７４、印刷装置情報表示部７５および印刷装置指定部７６を備えている。
【００４３】
ブラウザー制御部７１は、Ｗｅｂブラウザー２７を動作させる。印刷データ生成部７２は、Ｗｅｂブラウザー２７上で動作する印刷制御スクリプトを用いて、ＸＭＬ言語で記述した印刷データを生成する。印刷データ送信部７３は、生成した印刷データに印刷装置ＩＤを付加して、印刷制御装置３１に送信する。なお、印刷装置ＩＤは、後述する印刷装置指定部７６の指定結果に基づいて付加される。
【００４４】
応答受信部７４は、印刷制御装置３１から、印刷装置３２の印刷結果およびステータスを、ＸＭＬ文書として受信する。印刷装置情報表示部７５は、印刷制御装置３１から通知された各印刷装置３２の印刷装置情報５７を、表示部２２に表示する。印刷装置指定部７６は、印刷装置情報５７に基づいて、印刷対象となる印刷装置３２を指定する。つまりユーザーは、表示された印刷装置情報５７を参照して、所望の印刷装置３２を決定し、操作部２５を用いて指定する。
【００４５】
印刷制御装置３１は、主な機能構成として、印刷データ受信部８１、コマンド生成部８２、コマンド送信部８３、応答取得部８４、応答返信部８５、印刷中止処理部８６、印刷装置情報取得部８７、印刷装置情報記憶部８８および印刷装置情報通知部８９を備えている。
【００４６】
印刷データ受信部８１は、ホスト２０から、ＸＭＬ言語で記述された印刷データを受信する。コマンド生成部８２は、印刷指示コマンドや印刷前コマンド等の印刷制御コマンドを生成する。前者の印刷指示コマンドは、ホスト２０から送信された印刷データに基づくコマンドであり、後者の印刷前コマンドは、印刷指示コマンドの生成前に、印刷装置３２の状態確認のために生成されるコマンドである。コマンド送信部８３は、生成された印刷制御コマンドを、印刷装置３２に対して送信する。
【００４７】
図６（ａ）は、第１実施形態に係る印刷指示コマンドのコマンド列を示す図である。同図に示すように、印刷指示コマンドは、印刷データの前後に、それぞれ初期化コマンドと状態取得コマンドを付加したものである。
【００４８】
ここで、初期化コマンドは、ダミーデータ（ＮＵＬデータ）、設定初期化コマンドおよびＡＳＢステータス有効コマンド（有効コマンド）を含む。ダミーデータは、印刷装置３２のバッファー５４の容量を超える所定長さ以上の空白ファイルである。これにより、直前の印刷中止処理によって途切れたコマンドを補完し、印刷装置３２に処理させることができる。また、設定初期化コマンドは、印刷装置３２の設定を初期化するためのコマンドである。なお、ダミーデータは、設定初期化コマンドよりも前に付加されることが好ましい。
【００４９】
また、ＡＳＢステータス有効コマンドは、印刷装置３２が主体となってステータスを返信するＡＳＢ（Auto  Status  Back）ステータスを有効にするためのコマンドである。印刷装置３２は、ＡＳＢステータスが有効の場合、自身の状態が変化(カバー開閉／用紙なし／印刷完了など)したことを示すＡＳＢステータスを自動的に送信する。これにより、印刷制御装置３１は、印刷中における印刷装置３２のステータスの変化を把握できる。なお、印刷装置３２のＡＳＢステータスは、初期化コマンドの受信後、ＡＳＢステータス無効コマンドの受信後または印刷装置３２の電源ＯＮ直後の初期状態において「無効」となる。
【００５０】
一方、図６（ｂ）は、印刷前コマンドのコマンド列を示す図である。印刷前コマンドは、ホスト２０から印刷データが送信されたとき、印刷指示コマンドの生成に先立って、印刷装置３２の状態を確認するために生成されるコマンドである。そのコマンド列は、空印刷データを示す印刷制御コマンドの後に状態取得コマンドを付加したものである。ここで、状態取得コマンドとは、印刷装置３２の状態を取得するためのコマンドであり、ステータス送信コマンドまたはプロセスＩＤレスポンスコマンド（直前の印刷処理が完了した時点で指定したＩＤを返すコマンド）を指す。なお、印刷装置３２の状態とは、印刷装置の用紙の有無、オンライン／オフライン、インク／トナー残量、バッテリー残量などのステータス情報を指す。このように、印刷データに基づく印刷指示コマンドの送信前に、印刷前コマンドを送信することで、印刷装置３２が印刷不可能な状態の場合、印刷中止処理を容易に行うことができる。
【００５１】
図５の説明に戻る。応答取得部８４は、印刷前コマンドの送信後、当該印刷前コマンドに含まれる状態取得コマンドに基づき、印刷装置３２から当該状態取得コマンドに対する応答を取得する。また、応答取得部８４は、印刷指示コマンドの送信後、当該印刷指示コマンドに含まれるＡＳＢステータス有効コマンドに基づき、印刷指示コマンドの送信から状態取得コマンドに対する応答を受信するまでの間、印刷装置３２から自動的に送信されるＡＳＢステータスを取得する。また、印刷処理後、印刷指示コマンドに含まれる状態取得コマンドに基づき、印刷装置３２から当該状態取得コマンドに対する応答を取得する。応答返信部８５は、応答に基づく印刷結果を、印刷データの送信元となるホスト２０に返信する。ここで、印刷結果とは、印刷成功／印刷失敗を示すＸＭＬ文書を指す。なお、印刷結果に代えて、応答内容（印刷装置３２の状態）を示すＸＭＬ文書を返信しても良い。また、応答返信部８５は、ＡＳＢステータス有効コマンドに対する応答（印刷指示コマンドの送信から状態取得コマンドに対する応答を受信するまでの、最新のステータスを示すＸＭＬ文書をホスト２０に返信する。
【００５２】
印刷中止処理部８６は、応答取得部８４により取得した応答から、印刷装置３２が印刷不可能な状態であると判定した場合、応答取得部８４による応答取得がタイムアウトした場合、ホスト２０が指定した印刷装置３２が存在しない場合などに印刷中止処理を行う。印刷中止処理には、印刷中止を印刷データの送信元となるホスト２０に通知する処理の他、必要に応じて、印刷装置３２への印刷指示コマンドの送信を中止する処理、印刷装置３２のバッファー５４をクリアにするためのリアルタイムコマンドであるバッファークリアコマンドを印刷装置３２に送信する処理、を行う。ここで、リアルタイムコマンドとは、印刷装置３２に対し即時実行を指令するコマンドを指す。
【００５３】
印刷装置情報取得部８７は、接続されている各印刷装置３２（印刷装置Ａ、印刷装置Ｂ）から、各印刷装置３２の印刷装置情報５７を取得する。当該印刷装置情報５７の取得は、定期的に行っても良いし、電源ＯＮ時やホスト２０からの情報取得指令があったときに取得しても良い。印刷装置情報記憶部８８は、取得した各印刷装置３２の印刷装置情報５７を、印刷装置リスト４７として記憶する。また、印刷装置情報通知部８９は、ホスト２０に対し、印刷装置リスト４７を提供する（各印刷装置３２の印刷装置情報５７を通知する）。なお、印刷装置リスト４７の提供は、印刷装置情報５７を取得する度に行っても良いし、電源ＯＮ時やホスト２０からの通知指令があったときに行っても良い。
【００５４】
一方、印刷装置３２は、主な機能構成として、コマンド受信部９１、印刷部９２、応答送信部９３および印刷装置側記憶部９４を備えている。コマンド受信部９１は、印刷制御装置３１から印刷指示コマンドや印刷前コマンドなど、ＥＳＣ／ＰＯＳ（登録商標）コマンドを受信する。印刷部９２は、受信したコマンドに基づいて、印刷用紙に印刷を行う。応答送信部９３は、印刷制御装置３１に対し、印刷指示コマンドや印刷前コマンドに対する応答を返信する。印刷装置側記憶部９４は、記憶部５２（図３参照）に相当し、自身の印刷装置情報５７を記憶する。
【００５５】
次に、図７のフローチャートを参照し、第１実施形態に係る印刷制御の流れについて説明する。印刷制御装置３１は、ホスト２０から印刷データを受信すると（Ｓ０１）、印刷前コマンドを生成して、印刷装置３２のステータスを確認する（Ｓ０２）。その結果から、印刷装置３２が印刷可能ではないと判定した場合（Ｓ０３：Ｎｏ）、ホスト２０に対し、ステータスを返信する（Ｓ０４）。また、印刷装置３２が印刷可能と判定した場合は（Ｓ０３：Ｙｅｓ）、コマンド列（印刷指示コマンド）を生成し（Ｓ０５）、印刷装置３２へ送信する（Ｓ０６）。
【００５６】
その後、印刷装置３２からＡＳＢステータスやレスポンス（応答）を受信すると（Ｓ０７）、印刷中止またはタイムアウトを判定し（Ｓ０８）、「Ｎｏ」と判定した場合は、さらに印刷完了したか否かを判定する（Ｓ０９）。印刷完了していない場合は（Ｓ０９：Ｎｏ）、Ｓ０７に戻り、印刷完了した場合は（Ｓ０９：Ｙｅｓ）、ホスト２０に対しステータスおよび印刷結果を返信する（Ｓ０４）。また、Ｓ０８で「Ｙｅｓ」と判定した場合は、印刷装置３２へバッファークリアコマンドを送信し（Ｓ１０）、ホスト２０に対し、ステータスおよび印刷結果を返信する（Ｓ０４，印刷中止を通知する）。
【００５７】
以上説明したとおり、第１実施形態によれば、ホスト２０から送信された印刷データの前に初期化コマンドを付加するため、ホスト２０：印刷装置３２が１：１で接続されていることが前提のＥＳＣ／ＰＯＳ（登録商標）コマンドを用いて、多：１または多：多のネットワーク環境下で印刷装置３２を制御できる。つまり、ホストａからの印刷指令に基づく前回の印刷が正常終了していない場合でも、続くホストｂからの印刷指令に基づく印刷指示コマンドの前に初期化コマンドを付加するため、当該印刷指示コマンドを正常に処理させることができる。また、ホストａからの指令により印刷装置３２の設定変更が行なわれていた場合も、同じく初期化コマンドを付加することにより印刷装置３２を初期化状態に戻すため、続くホストｂからの印刷指令に基づく印刷指示コマンドを正常に解釈させることができる。このように、従来のコマンド体系を維持しつつ、既存の印刷装置３２を複数のホスト２０で共有することができる。
【００５８】
また、ホスト２０は、Ｗｅｂブラウザー２７上で動作するスクリプトを用いて印刷データを生成するため、印刷装置ドライバーやプラグインを必要としない。また、ホスト２０のプラットフォームを問わないため、スマートフォンやタブレット端末など、各種ＯＳで動作するホスト２０を、同じ印刷システムＳＹ内で混在させることができる。
【００５９】
なお、上記の第１実施形態では、Ｗｅｂブラウザー２７として標準ブラウザーを使用し、印刷制御スクリプトを用いて印刷データを生成したが、プラグインやリッチインターネットアプリケーションを用いて印刷データを生成しても良い。
【００６０】
また、図７に示したフローチャートのＳ０１の後、ＸＭＬスキーマ（マークアップスキーマ）により、印刷データの妥当性を検証しても良い（妥当性検証部）。この場合、印刷データが妥当と判定した場合は、Ｓ０２に進み、妥当でないと判定した場合は、Ｓ０４またはＳ１０に進んで、印刷中止処理を行うことが好ましい。この構成によれば、マークアップスキーマを用いることにより、印刷データの妥当性を検証した上で、印刷処理を行うことができる。
【００６１】
また、上記の第１実施形態では、印刷データをＸＭＬ言語で記述したが、印刷装置３２のコマンド（ＥＳＣ／ＰＯＳ（登録商標）コマンド）で記述しても良い。この場合、印刷制御装置３１におけるコマンド変換は不要である。また、ホスト２０に返信する印刷結果も、ＸＭＬ文書ではなく、コマンドレスポンスとなる。このため、ホスト２０側で、レスポンスデータを解析し、印刷結果やステータスを抽出する必要がある。但し、印刷制御装置３１で解析を行い、ＸＭＬ言語やＣＳＶ言語で印刷結果やステータスを記述してからホスト２０に通知する構成でも良い。
【００６２】
［第２実施形態］
次に、図８および図９を参照し、本発明の第２実施形態について説明する。上記の第１実施形態では、ホスト２０から送信された印刷データの受信に伴ってステータス等の応答を返信したが、本実施形態では、印刷データの受信によらず、ステータス等の応答を返信することを特徴とする。以下、第１実施形態と異なる点のみ説明する。なお、本実施形態において、第１実施形態と同様の構成部分については同様の符号を付し、詳細な説明を省略する。また、第１実施形態と同様の構成部分について適用される変形例は、本実施形態についても同様に適用される。
【００６３】
図８は、第２実施形態に係る印刷システムＳＹ２の機能ブロック図である。同図に示すように、本実施形態は、第１実施形態の機能構成と比較して、ホスト２０内に、空印刷データ生成部１０１および空印刷データ送信部１０２を追加した構成となっている。
【００６４】
空印刷データ生成部１０１は、Ｗｅｂブラウザー２７上で動作する印刷制御スクリプトを用いて、空印刷データを生成する。また、空印刷データ送信部１０２は、印刷制御装置３１に対し、生成した空印刷データを、ＨＴＴＰにより送信する。ここで、空印刷データとは、印刷装置３２のステータス要求のために生成される空印刷要求である。例えば、ユーザーにより（操作部２５により）、印刷装置３２のステータス取得指示操作が行われた場合に、空印刷データを生成・送信する。取得したステータスは、ホスト２０の表示部２２に表示される。
【００６５】
一方、印刷制御装置３１のコマンド生成部８２は、ホスト２０から送信された空印刷データに基づいて、空印刷コマンドを生成する。図９は、空印刷コマンドのコマンド列を示す図である。同図に示すように、空印刷コマンドは、空印刷データの前後に、それぞれ初期化コマンドと状態取得コマンドを付加したものである。初期化コマンドに、ダミーデータ、設定初期化コマンドおよびＡＳＢステータス取得コマンドが含まれる点は、第１実施形態と同様である。また、コマンド送信部８３は、生成された当該空印刷コマンドを印刷装置３２に送信し、応答取得部８４は、空印刷コマンドに対する応答を取得する。また、応答返信部８５は、空印刷コマンドに対する応答を、ホスト２０に返信する。
【００６６】
なお、空印刷データ送信部１０２による空印刷データの送信は、対象となる印刷装置３２を指定しても良いが、全ての印刷装置３２を対象として一括送信しても良い。この場合、空印刷データに、接続されている全ての印刷装置３２の印刷装置ＩＤ（印刷装置指定情報）を付加して送信しても良いし、印刷装置ＩＤを付加しない構成としても良い。後者の場合、印刷制御装置３１は、接続されている（通信可能な）全ての印刷装置３２に対し、空印刷データに基づいて生成した空印刷コマンドを一斉送信する。
【００６７】
また、第２実施形態に係る印刷制御の流れは、図７に示した第１実施形態のフローチャートにおけるＳ０１にて、ホスト２０から、「空印刷データ」を受信する点以外は、同フローチャートの流れと同様であるため、説明を省略する。
【００６８】
以上説明したとおり、第２実施形態によれば、印刷制御装置３１により、ホスト２０から送信された空印刷データに状態取得コマンドを付加して空印刷コマンドを生成し、印刷装置３２に送信するため、印刷装置３２からの応答に基づいて、印刷装置３２のステータスをホスト２０に通知することができる。つまり、印刷を実行する場合と同様の仕組みで、印刷装置３２のステータスをホスト２０に返すことができる。
【００６９】
なお、上記の第２実施形態では、ホスト２０が、ユーザーによるステータス取得指示操作をトリガーとして、空印刷データを送信したが、ホスト２０の電源ＯＮ時や所定アプリケーションの起動時など、予め定められたタイミングで空印刷データを送信しても良い。また、定期的に空印刷データを送信することで、ホスト２０が、印刷装置３２のステータスを常に把握することができる。
【００７０】
［第３実施形態］
次に、図１０ないし図１５を参照し、本発明の第３実施形態について説明する。第３実施形態は、上述のとおりドライバーレスのプラットフォーム上で動作するホスト２０を用いた場合でも、アプリケーションプログラマーが、印刷装置３２の文字コード体系を意識することなく印刷プログラムを作成することを課題とする。以下、第１，２実施形態と異なる点のみ説明する。
【００７１】
図１０は、第３実施形態に係る印刷システムＳＹ３の機能ブロック図である。同図に示すように、本実施形態は、第１実施形態の機能構成と比較して、印刷制御装置３１内に、文字コード変換部１１１を追加した構成となっている。文字コード変換部１１１は、Ｕｎｉｃｏｄｅなどの汎用文字コード（第１の文字コード）を、印刷装置３２用の文字コード（第２の文字コード）に変換する。ここで、「印刷装置３２用の文字コード」とは、印刷装置３２に搭載されたフォントデータ（ドットマトリクスフォントデータ、ビットマップフォントデータ、スケイラブルフォントデータなど）に対応する文字コードを指す。これに対し、「Ｕｎｉｃｏｄｅ」は、１文字ごとに一意のコードが割り当てられた文字コードである。これら「Ｕｎｉｃｏｄｅ」と「印刷装置３２用の文字コード」が１：１ではなく１：多の関係となる場合があるため、文字コード変換部１１１によるコード変換が必要となる。詳細については、後述する。
【００７２】
第３実施形態では、図１１（ａ）に示すように、印刷装置３２によってその仕様および搭載文字が異なることを想定している。例えば、「印刷装置Ａ」が「日本語仕様」の場合、その印刷装置３２に搭載されている搭載文字は、英数字、国際文字および日本語であり、使用する文字コードは、例えば漢字モード（Ｓｈｉｆｔ＿ＪＩＳ）である。
【００７３】
また、第３実施形態では、ホスト２０が、言語属性を付加した汎用文字コードを１個以上含む印刷データを生成・送信する（印刷データ生成部７２、印刷データ送信部７３）。特に図示しないが、ホスト２０側では、Ｗｅｂブラウザー２７によって表示される所定のフォーム上で、印刷文字列の入力、対象言語およびフォント種類の指定が可能となっており、これらの入力に基づいて、印刷データ（ＸＭＬ印刷ドキュメント）を生成する。また、文字コード変換部１１１は、汎用文字コードを、言語属性に対応する文字コードに変換する。さらに、コマンド生成部８２は、文字コード変換部１１１の変換結果を用いて印刷指示コマンドを生成する。
【００７４】
図１２は、第３実施形態に係る印刷指示コマンドのコマンド列を示す図である。同図に示すように、コマンド生成部８２は、「言語属性に基づいて変換した文字コード（印刷装置３２用の文字コード）」の前に、印刷装置３２の文字コードを言語属性に対応して切り替えるための「文字コード切り替えコマンド」を付加した印刷指示コマンドを生成する。なお、第１実施形態と同様に、コマンド列の前に初期化コマンドを付加したり、コマンド列の後に状態取得コマンドを付加したりしても良い（図６（ａ）参照）。
【００７５】
ここで、「文字コード切り替えコマンド」は、「文字コードテーブル切り替えコマンド」、「国際文字セット切り替えコマンド」および「漢字モード切り替えコマンド」を含む概念であり、例えばＡＮＫモード（ＡＮＫ仕様に対応するモード）において、文字コード８０〜ＦＦの文字の切り替えを行うことができる。ここで、「文字コードテーブル」とは、「印刷装置３２用の文字コード」が複数個格納されているテーブルを指す。したがって、文字コードテーブルを示す情報と、文字コードテーブルにおける格納位置を示す情報により、印刷装置３２用の文字コードを一意に指定することができる。「文字コードテーブル切り替えコマンド」とは、その文字コードテーブルを切り替えるためのコマンドである。
【００７６】
また、「国際文字セット切り替えコマンド」とは、ＡＮＫモードにおいて、文字コード２０Ｈ〜７ＥＨの文字の切り替えを行うコマンドである。英語の「＼」と日本語の「￥」、英語の「＼」と韓国語のウォン記号、英語の「＄」と中国語の「￥」など、同じ文字コードに異なる文字を割り当てている文字を対象としており、「文字コードテーブル切り替えコマンド」と共に用いる。また、「漢字モード切り替えコマンド」とは、ＡＮＫモードから漢字モードにするコマンドと、漢字モードを解除してＡＮＫモードにするコマンドである。なお、各印刷装置３２は、日本語、韓国語、中国語の国際文字セットの共存ができないものとする。
【００７７】
図１１（ｂ）は、各言語属性と、文字コード切り替えコマンドの対応を示している。なお、言語属性「ｊａ」、「ｋｏ」、「ｚｎ−ｃｎ」、「ｚｎ−ｔｗ」、「ｅｎ」は、それぞれ印刷装置３２の仕様「日本語仕様」、「韓国語使用」、「簡体字中国語仕様」、「繁体字中国語仕様」、「ＡＮＫモード」にそれぞれ対応している。例えば、印刷データに言語属性「ｊａ」が付加された汎用文字コード「漢字」が含まれる場合、文字コード変換部１１１は、この「漢字」を、日本語仕様の文字コードに変換する。また、コマンド生成部８２は、印刷装置３２の文字コードを、漢字モード、文字コードテーブル＝カタカナ、日本語文字セット＝日本、文字＝Ｓｈｉｆｔ＿ＪＩＳへ変換するための文字コード切り替えコマンドを付加する。
【００７８】
ところで、印刷制御装置３１は、各印刷装置３２の印刷装置情報５７の一覧である印刷装置リスト４７を記憶している（図３参照）。そこで、文字コード変換部１１１は、印刷装置リスト４７を参照し、汎用文字コードに付加された言語属性が、印刷装置ＩＤ（印刷装置指定情報）によって指定された印刷装置３２の機種または搭載文字に対応している場合のみ、その汎用文字コードの変換を行う、言い換えれば、指定された言語属性と印刷装置３２の仕様が対応していない場合、その言語属性が付加された汎用文字コードの変換を行わない。これにより、機種や搭載文字の異なる複数の印刷装置３２に対して、同じ印刷データを送信した場合でも、各印刷装置３２の仕様に応じて、異なる印刷結果を得ることができる。この点については、図１４にて後述する。
【００７９】
一方、印刷データ生成部７２は、必要に応じて、言語属性の付加を省略することができる。文字コード変換部１１１は、ホスト２０から送信された印刷データに、言語属性が付加されていない汎用文字コードが含まれる場合、当該汎用文字コードの直前に変換した言語属性に基づいて変換を行う。つまり、直前に変換した言語属性を、揮発性または不揮発性の記憶領域に記憶しておく。またこの場合、コマンド生成部８２は、文字コード切り替えコマンドの付加を省略する。これにより、印刷データ生成部７２は、同じ言語属性の文字コードを続けて印刷する場合、言語属性の付加を省略することができる。また、言語属性が付加されていない場合、コマンド生成部８２は、文字コード切り替えコマンドの付加を省略するため、印刷装置３２に送信する印刷指示コマンドのデータ量をも減らすことができる。
【００８０】
なお、汎用文字コードに言語属性が付加されていない場合、直前に変換した言語属性ではなく、デフォルトの言語属性（例えば、言語属性「ｅｎ」＝ＡＮＫモード）に基づいて、汎用文字コードを変換しても良い。また、直前に変換した言語属性が存在しない場合のみ（電源ＯＮ後、最初の印刷を行う場合など）、デフォルトの言語属性に基づいて変換を行うようにしても良い。
【００８１】
図１３は、第３実施形態に係る印刷データの一例を示す図である。同図に示すように、印刷データ生成部７２は、印刷データを、ＸＭＬ言語（マークアップ言語）で記述する。また、言語属性を、要素の属性として記述し、汎用文字コードを、要素の内容として記述する。図１４は、図１３の印刷データに基づく印刷結果を示す図である。例えば、図１４（ａ）は、図１３の印刷データを、日本語仕様の印刷装置３２を用いて印刷した場合の印刷結果を示している。つまり、図１３に示した汎用文字コードＣ１〜Ｃ１０のうち、日本語仕様の印刷装置３２がサポートする搭載文字に対応した汎用文字コードＣ１〜Ｃ７が印刷対象となっている。同様に、図１４（ｂ）は、韓国語仕様の印刷装置３２を用いて印刷した場合の印刷結果を示しており、韓国語仕様の印刷装置３２に対応した汎用文字コードＣ１〜Ｃ６，Ｃ８が印刷対象となっている。また、図１４（ｃ）は、ＡＮＫモードの印刷装置３２を用いて印刷した場合の印刷結果を示しており、ＡＮＫ仕様の印刷装置３２に対応した汎用文字コードＣ１〜Ｃ６が印刷対象となっている。
【００８２】
次に、図１５のフローチャートを参照し、第３実施形態に係る印刷制御の流れについて説明する。印刷制御装置３１は、ホスト２０から印刷データを受信すると（Ｓ２１）、その中に含まれる言語属性と汎用文字コードの組み合わせを取得する（Ｓ２２）。その後、言語属性に基づいて、汎用文字コードを印刷装置３２用の文字コードに変換し（Ｓ２３）、コマンド列（印刷指示コマンド）を生成する（Ｓ２４）。最後に、生成したコマンド列を、印刷装置３２に送信する（Ｓ２５）。
【００８３】
以上説明したとおり、第３実施形態によれば、ホスト２０から、言語属性が付加された汎用文字コードを含む印刷データを受信し、汎用文字コードを、言語属性に対応する文字コードに変換し、文字コード切り替えコマンドを付加して印刷装置３２に送信するため、アプリケーションプログラマーが、印刷装置３２の文字コード体系を意識する必要がない。例えば、Ｕｎｉｃｏｄｅ文字の場合、１の汎用文字コードに対して、印刷装置３２用の文字コードが複数存在する場合があるが、言語属性が付加されているため、正しい文字コードに変換することができる。
【００８４】
また、印刷制御装置３１で文字コードの変換を行うため、接続される複数の印刷装置３２の機種や搭載文字を問わない。このため、子機として複数の機種を混在させることができる。例えば、レジカウンターに設置された印刷装置３２（レシートプリンター）は、日本語で印刷し、厨房に設置された印刷装置３２（キッチンプリンター）は、中国語で印刷する、などの構成が可能である。さらに、印刷装置３２の入れ替えの際に、異なる機種へ変更させることも可能である。
【００８５】
なお、第３実施形態の構成は、印刷ドライバーを必要とすることなく文字コードの変換を行うことができるため、ドライバーレスのプラットフォーム上で動作するホスト２０を用いた場合に好適である。つまり、本実施形態のように、Ｗｅｂブラウザー２７の印刷制御スクリプトを用いる構成の他、Ｗｅｂブラウザー２７のプラグインを用いる構成、組み込み機器およびタブレット端末などドライバーの概念が存在しない電子機器をホスト２０として用いた構成に適している。
【００８６】
また、上記の第３実施形態では、汎用文字コードに付加された言語属性が、指定された印刷装置３２の搭載文字に対応していない場合、その汎用文字コードを無視するものとしたが、その汎用文字コードを含む印刷データ全体の印刷を中止しても良い。この場合、図１３のように、多種類の言語属性が含まれる印刷データが送信されると、図１１（ａ）に示した全ての仕様の印刷装置３２で印刷不可となる。また、印刷を中止した場合、その旨をホスト２０に通知することが好ましい。
【００８７】
［第４実施形態］
次に、図１６ないし図２３を参照し、本発明の第４実施形態について説明する。第４実施形態は、上述のとおりドライバーレスのプラットフォーム上で動作するホスト２０を用いた場合でも、アプリケーションプログラマーが、印刷装置３２のコマンド体系（カラーモードや画像形式の違い）を意識することなく画像印刷プログラムを作成することを課題とする。以下、第１〜３実施形態と異なる点のみ説明する。
【００８８】
図１６は、第４実施形態に係る印刷システムＳＹ４の機能ブロック図である。同図に示すように、本実施形態は、第１実施形態の機能構成と比較して、印刷制御装置３１内に、妥当性判定部１２１を追加した構成となっている。妥当性判定部１２１は、ホスト２０から送信された画像データの妥当性を判定する。
【００８９】
第４実施形態では、各印刷装置３２が特定のコマンドに対応していることを想定している。例えば、印刷装置Ａは、ビットイメージコマンドのみ対応し、印刷装置Ｂは、モノクロ画像印刷コマンドのみに対応している、などの状況が考えられる。ここで、印刷装置３２のコマンド体系について簡単に説明する。画像印刷時に用いられる印刷制御コマンドには、「モノクロ画像印刷コマンド」、「グレースケール印刷コマンド」、「カラー画像印刷コマンド」などのカラーコマンドや、「ラスターグラフィックスコマンド」、「ビットイメージコマンド」などの画像形式コマンドがある。カラーコマンドは、印刷装置３２のカラーモードに応じて使い分けられる。また、画像形式コマンドは、図１７に示すように、データの並び順序の違いによって使い分けられる。「ラスターグラフィックスコマンド」は、図１７（ａ）に示すように、データの並び方向が走査方向であり、「ビットイメージコマンド」は、図１７（ｂ）に示すように、縦方向が１行分に相当する。
【００９０】
なお、各印刷装置３２がサポートするコマンド（カラーモードおよび画像形式）については、印刷制御装置３１の印刷装置リスト４７に記憶されている。このため、画像形式については、印刷制御装置３１が、指定された印刷装置３２がサポートする画像形式に応じて、適宜コマンド変換（「ラスターグラフィックスコマンド」から「ビットイメージコマンド」への変換、またはその逆変換）を行う。
【００９１】
また、第４実施形態では、ホスト２０が、カラーモードおよび画像サイズを指定する属性が付加された画像データを含む印刷データを生成・送信する（印刷データ生成部７２、印刷データ送信部７３）。なお、画像データは、バイナリー形式且つｂａｓｅ６４方式でエンコードされる。
【００９２】
特に図示しないが、ホスト２０側では、Ｗｅｂブラウザー２７によって表示される所定のフォーム上で、画像ファイルの指定、カラーモードの指定および色指定が可能となっており、これらの入力に基づいて、印刷データ（ＸＭＬ印刷ドキュメント）を生成する。なお、「画像ファイルの指定」により、結果的に画像サイズ（画像の幅および高さを示す情報）が指定されたこととなるが、画像ファイルと画像サイズを個別に指定し、画像サイズに応じて画像ファイルを拡大／縮小する構成でも良い。また、「色指定」とは、カラーモードの一種であり、例えば黒と赤の２色対応の印刷装置３２で、モノクロ画像を黒・赤いずれの色で印刷するかを指定するものである。
【００９３】
妥当性判定部１２１は、画像データに含まれるカラーモードおよび画像サイズを指定する属性に基づいて、画像データの妥当性を判定する。ここで、カラーモードとは、画像の色情報の管理方法を示すものであり、モノクロ２階調、グレースケール、ＲＧＢ、ＣＭＹＫなどがある。また、カラーモードごとに、１画素あたりのデータ量が決まっており、例えば、モノクロ２階調では１ビット、グレースケール（１６階調）では４ビット、グレースケール（２５６階調）では８ビット、ＲＧＢでは２４ビット、ＣＭＹＫでは３２ビットである。
【００９４】
妥当性判定部１２１は、画像データのデータ量が、カラーモードに応じた１画素（１ドット）あたりのデータ量と、画像サイズとの乗算値に等しい場合、画像データが妥当であると判定する。例えば、２５６階調グレースケール（８ビット／画素）のラスターグラフィックスの場合、幅×高さバイトのデータ長が必要となる。つまり、幅５×高さ５の場合、２５バイトのデータ長が必要となる。また、１６階調グレースケール（４ビット／画素）のラスターグラフィックスで、１ラインごとにバイト単位に揃えるパディングを行う場合、（幅＋１）／２×高さバイト（但し、除算結果の小数点以下は切り捨てる）のデータ長が必要となる。つまり、幅５×高さ５の場合、パディングで幅６×高さ５に揃えて、６／２×５＝１５バイトのデータ長が必要となる。さらに、モノクロ２階調（１ビット／画素）のラスターグラフィックスで、１ラインごとにバイト単位に揃えるパディングを行う場合、（幅＋７）／８×高さバイト（但し、除算結果の小数点以下は切り捨てる）のデータ長が必要となる。つまり、幅５×高さ５の場合、パディングで幅８×高さ５に揃えて、８／８×５＝５バイトのデータ長が必要となる。
【００９５】
一方、第４実施形態のコマンド生成部８２は、妥当性判定部１２１により、画像データが妥当と判定された場合、当該画像データを、カラーモードに対応した印刷装置３２用の制御コマンドに変換し、画像印刷コマンドを生成する。コマンド送信部８３は、生成された画像印刷コマンドを、印刷装置３２に送信する。
【００９６】
また、本実施形態のコマンド生成部８２は、以下の処理も行う。例えば、画像印刷コマンドのデータ長が所定長さを超える場合、画像データを分割して、複数の画像印刷コマンドを生成する。これにより、画像印刷コマンドのデータ長が制限されるため、印刷中止処理を容易に行うことができる。また、複数の画像印刷コマンドを生成した場合、各画像印刷コマンドのそれぞれの前に、印刷位置を垂直方向（レシートの紙送り方向＝ラスターグラフィックスコマンドの副走査方向）に移動させるための印刷位置移動コマンドを付加する。これにより、印刷装置３２の印刷モードがページモードの場合（画像印刷によって印刷位置が移動しない印刷モードの場合）でも、垂直方向の印刷位置を揃えることができる。さらに、コマンド生成部８２は、コマンド列の先頭に（画像印刷コマンドの前に）、印刷装置３２のバッファー５４の容量を超える所定長さ以上のダミーデータを含む初期化コマンドを付加する。これにより、直前の印刷中止処理によって途切れたコマンドを補完し、印刷装置３２に処理させることができる。その他、コマンド生成部８２は、指定されたカラーモードに応じて、例えばカラー用／グレースケール用の画像データをモノクロに変換するなど、適宜画像変換を行う。
【００９７】
ここで、印刷装置３２の印刷モードについて説明する。本実施形態の印刷装置３２は、印刷モードとして、「ノーマルモード」および「ページモード」を備えている。「ノーマルモード」とは、１行単位で印刷するモードであり、文字サイズや画像の高さに合わせて改行量を調整する。また、「行の先頭の状態（印刷位置が左端にあり、行バッファーが空の状態）」で動作する機能を有しており、印刷開始時や改行直後は、この状態となる。一方、「ページモード」とは、印刷領域を設定して印刷データを展開し、一括印刷するモードである。指定した印刷位置に文字や画像を展開し、「行の先頭の状態」の制約はない。なお、「ページモード」を指定する場合は、画像印刷コマンドの前にページモード開始コマンドを付加し、画像印刷コマンドの後にページモード終了コマンドを付加する。また、上述の「印刷位置移動コマンド」は、印刷装置３２が「ページモード」に設定されている場合のみ有効となる。
【００９８】
次に、図１８ないし図２０を参照し、カラーモードおよび印刷モードによって異なる画像印刷コマンドのコマンド列について説明する。図１８は、モノクロ印刷の場合の画像印刷コマンドを示している。図１８（ａ）に示すように、「ノーマルモード・分割なし」の場合（画像印刷コマンドのデータ長が所定長さを超えない場合）は、画像印刷コマンドの前に初期化コマンドが付加された構成となる。なお、初期化コマンドは、第１実施形態と同様である（図６（ａ）参照）。また、第１実施形態と同様に、画像印刷コマンドの後に状態取得コマンドを付加しても良い。
【００９９】
また、図１８（ｂ）に示すように、「ノーマルモード・分割あり」の場合は、初期化コマンドの後に複数の画像印刷コマンドが続く構成となる。また、図１８（ｃ）に示すように、「ページモード・分割なし」の場合は、初期化コマンドの後にページモード開始コマンド、画像印刷コマンド、ページモード終了コマンドと続く構成となる。さらに、図１８（ｄ）に示すように、「ページモード・分割あり」の場合は、初期化コマンドの後にページモード開始コマンド、その後、分割数分の印刷位置移動コマンドおよび画像印刷コマンド、ページモード終了コマンドと続く構成となる。
【０１００】
図１９は、グレースケール印刷の場合の画像印刷コマンドを示している。グレースケール印刷の場合は、５０％、２５％、１２．５％、６．２５％と、各階調を指定した画像印刷コマンドを含む構成となる。その他、印刷モード・分割の有無に応じたコマンド列の構成は、同図に示すとおりである。また、図２０は、カラー印刷の場合の画像印刷コマンドを示している。カラー印刷の場合は、Ｙ（イエロー）、Ｍ（マゼンタ）、Ｃ（シアン）、Ｋ（ブラック）と各カラーを指定した画像印刷コマンドを含む構成となる。その他、印刷モード・分割の有無に応じたコマンド列の構成は、同図に示すとおりである。
【０１０１】
図２１は、第４実施形態に係る印刷データの一例を示す図である。同図に示すように、印刷データ生成部７２は、印刷データを、ＸＭＬ言語（マークアップ言語）で記述すると共に、画像サイズおよびカラーモードを要素の属性として記述し、画像データ（ＡＡＡＡ・・・ＡＡＡＡ）を要素の内容として記述する。なお、同図において、カラーモードの指定がない画像データＤ１は、Ｗｅｂブラウザー２７によって表示される所定のフォーム上でカラーモードが指定されなかった場合のプログラム例を示している。本実施形態では、カラーモードが指定されなかった場合、デフォルト設定値である「モノクロ印刷」が指定されたものとして処理する。
【０１０２】
図２２（ｂ），（ｃ）は、図２１の印刷データの印刷結果を示している。なお、上述の画像データ（ＡＡＡＡ・・・ＡＡＡＡ）は、図２２（ａ）に示す画像ファイルを示しているものとする。図２２（ｂ）に示すように、印刷装置３２が「モノクロ印刷コマンド」に対応している場合、画像データＤ１，Ｄ２に基づく画像が印刷される。また、図２２（ｃ）に示すように、印刷装置３２が「モノクロ印刷コマンド」および「４ビットグレースケールコマンド」に対応している場合、画像データＤ１，Ｄ２，Ｄ３に基づく画像が印刷される。この場合、画像データＤ３に基づく画像は、グレースケールで印刷される。このように、図２１に示した画像データＤ１〜Ｄ６のうち、印刷装置３２のカラーモードに対応する画像データのみが印刷対象となり、他の画像データは無視される。
【０１０３】
次に、図２３のフローチャートを参照し、第４実施形態に係る印刷制御の流れについて説明する。印刷制御装置３１は、ホスト２０から印刷データを受信すると（Ｓ３１）、その中に含まれる画像属性（カラーモード属性および画像サイズ属性）と画像データの組み合わせを取得する（Ｓ３２）。取得したこれらの組み合わせに基づいて、印刷データに含まれる各画像データの妥当性を判定する（Ｓ３３）。画像データの妥当性は、上述のとおり、画像データのデータ量が、カラーモードに応じた１画素あたりのデータ量と、画像サイズとの乗算値に等しいか否かに応じて判定する。妥当でないと判定した場合は（Ｓ３４：Ｎｏ）、コマンド列を生成することなく、処理を終了する。なお、Ｓ３４の判定前に、マークアップスキーマによる印刷データの判定を行っても良い。
【０１０４】
また、画像データが妥当であると判定した場合は（Ｓ３４：Ｙｅｓ）、画像印刷コマンドのデータ長が所定長さを超えるか否かを判別する（Ｓ３５）。所定長さを超えない場合は（Ｓ３５：Ｎｏ）、画像印刷コマンドの前に初期化コマンドを付加してコマンド列（印刷指示コマンド）を生成する（Ｓ３６）。一方、画像印刷コマンドのデータ長が所定長さを超える場合は（Ｓ３５：Ｙｅｓ）、画像データを分割してコマンド列を生成し、初期化コマンドを先頭に、且つ各画像印刷コマンドの前に印刷位置移動コマンドを付加してコマンド列（印刷指示コマンド）を生成する（Ｓ３７）。その後（Ｓ３６，Ｓ３７の後）、生成したコマンド列を印刷装置３２に送信する（Ｓ３８）。
【０１０５】
以上説明したとおり、第４実施形態によれば、印刷制御装置３１により、カラーモードおよび画像サイズを指定する属性が付加された画像データを、カラーモードに対応した印刷装置３２用の制御コマンドに変換するため、ドライバーレスのプラットフォーム上で動作するホスト２０を用いた場合でも、カラーモードや画像形式によって異なるコマンドの違いを印刷制御装置３１で吸収することができる。これにより、アプリケーションプログラマーは、印刷装置３２のコマンド体系を意識することなく画像を印刷させることができる。また、印刷制御装置３１でカラーモードや画像形式の違いを吸収できるため、複数の印刷装置３２として、コマンド体系の異なる複数の機種を混在させることができる。また、印刷装置３２の入れ替えの際も、異なる機種への変更が可能である。
【０１０６】
また、画像印刷コマンドの生成前に、カラーモードおよび画像サイズに基づいて画像データの妥当性を判定するため、不正な画像データを排除し、信頼性の高い印刷結果を得ることができる。また、マークアップ言語を用いることにより、カラーモードによるコマンドの違いをはじめ、画像印刷コマンドの分割、ページモードにおける印刷位置の移動、初期化コマンドなどを隠蔽することができる。
【０１０７】
また、画像印刷コマンドのデータ長が所定長さを超える場合、画像データを分割して複数の画像印刷コマンドを生成するため、印刷装置３２が印刷不可能な状態である場合など、印刷中止処理を行う場合、その処理を容易に行うことができる。例えば、画像印刷コマンドが、データ長を示す情報と、コマンド本体と、から成る場合、長大なコマンドの送信を始めた後に印刷を中止すると、そのコマンドを終了させるために（指定したデータ長分の印刷を実行させるために）、ダミーデータを送信し続ける必要があり、その分の時間と印刷用紙が無駄になるが、画像データを分割することで、その無駄を抑えることができる。
【０１０８】
なお、第４実施形態の構成は、印刷ドライバーを必要としないため、第３実施形態と同様に、ドライバーレスのプラットフォーム上で動作するホスト２０を用いた場合に好適である。また、上記の第４実施形態では、指定されたカラーモードが、指定された印刷装置３２のコマンド体系に対応していない場合、そのカラーモードが付加された画像データを無視するものとしたが、画像データを含む印刷データ全体の印刷を中止しても良い。
【０１０９】
以上、４つの実施形態を示したが、各実施形態を組み合わせても良い。例えば、第３実施形態および第４実施形態で示した文字列および画像の印刷指示コマンドの生成前に、印刷前コマンドを生成し、印刷装置３２のステータスを確認した上で、印刷を実行しても良い。また、ステータス確認により印刷装置３２が印刷不可能と判定した場合、第１実施形態で示したバッファークリアコマンドの送信を含む印刷中止処理を行っても良い。さらに、第１実施形態で示したように、印刷実行に伴って印刷装置３２のステータスを取得すると共に、第２実施形態で示したように、定期的または所定のトリガーで空印刷データを送信することにより、印刷処理を伴わないステータス取得を行っても良い。
【０１１０】
また、図２４に示すように、システム構成を変形させても良い。例えば、図２４（ａ）は、印刷制御装置３１と印刷装置３２とを一体化したインテリジェント機能付き印刷装置３０に、複数台の印刷装置３２（インテリジェント機能が搭載されていない印刷装置）を接続したシステム構成を示している。このように、インテリジェント機能付き印刷装置３０に接続する印刷装置３２の数（子機の数）は任意である。また、第３実施形態および第４実施形態で、このようなシステム構成を採用した場合も、機種、搭載文字、カラーモード等が異なる印刷装置３２を混在させることができる。さらに、印刷装置３２の入れ替えの際も、異なる機種、搭載文字、カラーモードへの変更が可能である。
【０１１１】
また、図２４（ｂ）は、複数の印刷制御装置３１で複数の印刷装置３２を共有した場合のシステム構成を示す図である。このように、印刷制御装置３１を冗長化して印刷装置３２を共有することで、堅牢な印刷システムＳＹを構築することができる。なお、図２４（ｂ）のシステム構成において、「印刷制御装置ア」と「印刷装置Ａ」および／または「印刷制御装置イ」と「印刷装置Ｂ」を、それぞれ１台のインテリジェント機能付き印刷装置３０で実現することも可能である。
【０１１２】
また、上記の各実施形態に示した印刷システムＳＹ（ＳＹ１〜ＳＹ４）の各構成要素をプログラムとして提供することが可能である。また、そのプログラムを各種記録媒体（ＣＤ−ＲＯＭ、フラッシュメモリー等）に格納して提供することも可能である。すなわち、コンピューターを印刷システムＳＹの各部として機能させるためのプログラム、またはコンピューターに印刷システムＳＹの各処理工程を実行させるためのプログラム、並びにそれらを記録した記録媒体も、本発明の権利範囲に含まれる。
【０１１３】
また、上記の各実施形態では、印刷装置３２としてレシートプリンターを例示したが、レシートプリンター以外の印刷装置にも、本発明を適用可能である。また、印刷装置３２以外に、ステータス取得、文字コード変換、画像変換を必要とする種々のデバイスに本発明を適用しても良い。また、上記の実施形態では、スクリプトの一例として、JavaScript（登録商標）を例示したが、これ以外の各種プログラミング言語を用いた場合でも本発明を適用可能である。その他、本発明の要旨を逸脱しない範囲で、適宜変更が可能である。
【符号の説明】
【０１１４】
１０…Ｗｅｂアプリケーションサーバー  １５…ＨＴＴＰサーバー  １６…Ｗｅｂアプリケーション  ２０…ホスト  ２７…Ｗｅｂブラウザー  ３０…インテリジェント機能付き印刷装置  ３１…印刷制御装置  ３２…印刷装置  ４０…Ｗｅｂページ  ４６…ＨＴＴＰサーバー  ４７…印刷装置リスト  ５４…バッファー  ５７…印刷装置情報  ７１…ブラウザー制御部  ７２…印刷データ生成部  ７３…印刷データ送信部  ７４…応答受信部  ７５…印刷装置情報表示部  ７６…印刷装置指定部  ８１…印刷データ受信部  ８２…コマンド生成部  ８３…コマンド送信部  ８４…応答取得部  ８５…応答返信部  ８６…印刷中止処理部  ８７…印刷装置情報取得部  ８８…印刷装置情報記憶部  ８９…印刷装置情報通知部  ９１…コマンド受信部  ９２…印刷部  ９３…応答送信部  ９４…印刷装置側記憶部  １０１…空印刷データ生成部  １０２…空印刷データ送信部  １１１…文字コード変換部  １２１…妥当性判定部  Ｃ１〜Ｃ１０…汎用文字コード  Ｄ１〜Ｄ６…画像データ  ＳＹ…印刷システム
【図１】
0006031797.tif 000002
【図２】
0006031797.tif 000003
【図３】
0006031797.tif 000004
【図４】
0006031797.tif 000005
【図５】
0006031797.tif 000006
【図６】
0006031797.tif 000007
【図７】
0006031797.tif 000008
【図８】
0006031797.tif 000009
【図９】
0006031797.tif 000010
【図１０】
0006031797.tif 000011
【図１１】
0006031797.tif 000012
【図１２】
0006031797.tif 000013
【図１３】
0006031797.tif 000014
【図１４】
0006031797.tif 000015
【図１５】
0006031797.tif 000016
【図１６】
0006031797.tif 000017
【図１７】
0006031797.tif 000018
【図１８】
0006031797.tif 000019
【図１９】
0006031797.tif 000020
【図２０】
0006031797.tif 000021
【図２１】
0006031797.tif 000022
【図２２】
0006031797.tif 000023
【図２３】
0006031797.tif 000024
【図２４】
0006031797.tif 000025