(57)【特許請求の範囲】
【請求項１】
情報処理装置、携帯端末及び受信したジョブの印刷処理を行う印刷装置から構成される印刷システムであって、
前記情報処理装置は、
ユーザーの指示に応じて中間データ形式である中間ジョブを生成するジョブ生成手段と、
前記生成された中間ジョブをスプールするスプール手段と、
前記携帯端末からのジョブ情報を要求する第１の要求に応答して、前記スプールされた中間ジョブのジョブ情報を応答する応答手段と、
前記携帯端末からのジョブの転送のための第２の要求に応答して、当該要求に従い、前記スプールされた中間ジョブから生成したジョブを送信する送信手段と、を有し、
前記携帯端末は、
前記情報処理装置に対してジョブ情報を要求する第１の要求を送信する第１要求手段と、
前記情報処理装置から受信したジョブ情報に基づくジョブの一覧の画面と、印刷設定を行うための設定画面との表示を行う表示手段と、
前記ジョブの一覧から、印刷対象とするジョブの選択を受け付ける入力手段と、
前記印刷装置と近接したことに応じた前記携帯端末が備える読み取り装置を用いた無線通信に従い、前記印刷装置で印刷処理を行わせるための出力先に関する情報の読み取り処理を実行する読み取り手段と、
前記情報処理装置に対して、前記入力手段により選択を受け付けたジョブの情報と、前記読み取り処理で読み取られた前記出力先に関する情報と、を含む第２の要求を、前記読み取り処理に応じて送信する第２要求手段と、を有し、
前記送信手段は、前記第２の要求に応答して、当該要求に含まれる前記ジョブの情報に対応する前記スプールされた中間ジョブから生成したジョブを、当該要求に含まれる前記出力先に関する情報から特定される印刷装置に対して、送信することを特徴とする印刷システム。
【請求項２】
前記携帯端末が備える読み取り装置は、前記印刷装置の外部または内部に固定されたＩＣチップで管理される情報を読み取るＩＣチップ読み取り装置であることを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記情報処理装置は、前記中間ジョブから印刷プレビュー画像を生成するプレビュー画像生成手段をさらに有し、
前記携帯端末は、前記情報処理装置により生成されたプレビュー画像を要求する第３の要求を送信する第３要求手段をさらに有し、
前記表示手段は、前記第３要求手段による第３の要求の応答として取得したプレビュー画像を表示することを特徴とする請求項１または２に記載の印刷システム。
【請求項４】
情報処理装置、携帯端末及び受信したジョブの印刷処理を行う印刷装置から構成される印刷システムにおける制御方法であって、
前記情報処理装置における、ユーザーの指示に応じて中間データ形式である中間ジョブを生成するジョブ生成工程と、
前記情報処理装置における、前記生成された中間ジョブをスプールするスプール工程と、
前記携帯端末における、前記情報処理装置に対してジョブ情報を要求する第１の要求を送信する第１要求工程と、
前記情報処理装置における、前記携帯端末からの前記第１の要求に応答して、前記スプールされた中間ジョブのジョブ情報を応答する応答工程と、
前記携帯端末における、前記情報処理装置から受信したジョブ情報に基づく、ジョブの一覧の画面と、印刷設定を行うための設定画面との表示を行う表示工程と、
前記携帯端末における、前記ジョブの一覧から、印刷対象とするジョブの選択を受け付ける入力工程と、
前記携帯端末における、前記印刷装置と近接したことに応じた前記携帯端末が備える読み取り装置を用いた無線通信に従い、前記印刷装置で印刷処理を行わせるための出力先に関する情報の読み取り処理を実行する読み取り工程と、
前記携帯端末における、前記選択されたジョブの情報と、前記読み取り処理で読み取られた前記出力先に関する情報と、を含む第２の要求を、前記読み取り処理に応じて前記情報処理装置に対して送信する第２要求工程と、
前記情報処理装置における、前記携帯端末からの前記第２の要求に応答して、当該要求に含まれる前記ジョブの情報に対応する前記スプールされた中間ジョブから生成したジョブを、当該要求に含まれる前記出力先に関する情報から特定される印刷装置に対して、送信する送信工程と、
を有することを特徴とする制御方法。 
【請求項５】
近接に応じた無線通信により情報を読み取る読み取り装置を備える携帯端末であって、
情報処理装置に対して、該情報処理装置で管理されるジョブに関するジョブ情報を要求する第１の要求を送信する第１要求手段と、
前記第１の要求の応答として前記情報処理装置から受信したジョブ情報に基づくジョブの一覧の画面と、印刷設定を行うための設定画面との表示を行う表示手段と、
前記ジョブの一覧から、印刷対象とするジョブの選択を受け付ける入力手段と、
印刷装置との近接に応じた前記読み取り装置を用いた無線通信に従い、前記印刷装置で印刷処理を行わせるための出力先に関する情報の読み取り処理を実行する読み取り手段と、
前記入力手段により選択を受け付けたジョブを前記情報処理装置に転送させるために、前記情報処理装置に対して、当該選択を受け付けたジョブの情報を含む第２の要求を、前記読み取り処理に応じて送信する第２要求手段と、を有し、
前記携帯端末が近接した前記印刷装置において、前記第２の要求に従い転送されたジョブの印刷処理が、前記携帯端末の前記設定画面を介して行われた印刷設定により実行されることを特徴とする携帯端末。
【請求項６】
前記読み取り装置は、前記印刷装置の外部または内部に固定されたＩＣチップで管理される情報を読み取るＩＣチップ読み取り装置であることを特徴とする請求項５に記載の携帯端末。
【請求項７】
前記読み取り手段に読み取られる前記出力先に関する情報は、前記ＩＣチップの固有な識別情報であり、
前記情報処理装置により前記識別情報から出力先となる印刷装置が特定され、前記第２の要求に従い前記印刷装置に対するジョブの転送が行われることを特徴とする請求項６に記載の携帯端末。
【請求項８】
前記情報処理装置により生成されたプレビュー画像を要求する第３の要求を送信する第３要求手段をさらに有し、
前記表示手段は、前記第３要求手段による要求の応答として取得したプレビュー画像を表示することを特徴とする請求項５乃至７のいずれか１項に記載の携帯端末。
【請求項９】
近接に応じた無線通信により情報を読み取る読み取り装置を備える携帯端末における制御方法であって、
情報処理装置に対して、該情報処理装置で管理されるジョブに関するジョブ情報を要求する第１の要求を送信する第１要求工程と、
前記第１の要求の応答として前記情報処理装置から受信したジョブ情報に基づくジョブの一覧の画面と、印刷設定を行うための設定画面との表示を行う表示工程と、
前記ジョブの一覧から、印刷対象とするジョブの選択を受け付ける入力工程と、
印刷装置との近接に応じた前記読み取り装置を用いた無線通信に従い、前記印刷装置で印刷処理を行わせるための出力先に関する情報の読み取り処理を実行する読み取り工程と、
前記選択を受け付けたジョブを前記情報処理装置に転送させるために、前記情報処理装置に対して、当該選択を受け付けたジョブの情報を含む第２の要求を、前記読み取り処理に応じて送信する第２要求工程と、を有し、
前記印刷装置において、前記第２の要求に従い転送されたジョブの印刷処理が、前記携帯端末の前記設定画面を介して行われた印刷設定により実行されることを特徴とする制御方法。
【請求項１０】
請求項５乃至８のいずれか１項に記載の手段としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置から外部の情報処理装置に要求することで取得した印刷データを印刷する印刷システムにおける技術に関する。
【背景技術】
【０００２】
従来、サーバーなどの情報処理装置上に一時蓄積された印刷データに対して、ユーザーの操作部を介した指示に基づき印刷装置から要求を行うことで、印刷装置で当該印刷データを取得し、出力を可能にする「プルプリント」または「どこでもプリント」と呼ばれる印刷システムが提案されている。これにより、ユーザーはアプリケーションからの印刷時に特定の印刷装置への出力を指示することなく、所望の印刷装置の前へ行ってから印刷データ出力を指示することが可能となる。
また、ユーザーの意図しない印刷出力がなされた場合の再印刷手段として、印刷装置上のパネルにクライアントＰＣ上で動作しているプリンタードライバーのＵＩを表示し、これを操作して再印刷のための印刷設定を指示するシステムの提案がなされている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３０４８８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、従来のどこでもプリントにおける印刷設定の方法は、印刷装置に設定等を入力可能な操作部（パネル）が備えられていることを前提としていた。印刷装置が、文字だけでなく画像も表示可能で、複数の操作ボタンを有するリッチなパネルが備えられていれば、適切な設定を行うのに問題ない。しかしながら、小型のレーザービームプリンターやインクジェットプリンターといった小さな操作部（パネル）しか備えていない印刷装置では、数行の文字を表示できる程度であることが多く、適切な印刷設定を行うのが困難となる場合が多い。したがって、いかなる印刷装置においても、複雑な印刷設定の操作を印刷装置のパネルを用いてユーザーに行わせるといった想定は現実的ではないといえる。
そこで、本発明においては、印刷装置に備えられたパネルの表示能力に関わらず、柔軟に印刷設定を可能とするどこでもプリントを実現するための手法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の印刷システムは、携帯端末及び受信したジョブの印刷処理を行う印刷装置から構成され、
前記情報処理装置は、ユーザーの指示に応じて中間データ形式である中間ジョブを生成するジョブ生成手段と、前記生成された中間ジョブをスプールするスプール手段と、前記携帯端末からのジョブ情報を要求する第１の要求に応答して、前記スプールされた中間ジョブのジョブ情報を応答する応答手段と、前記携帯端末からのジョブの転送のための第２の要求に応答して、当該要求に従い、前記スプールされた中間ジョブから生成したジョブを送信する送信手段と、を有し、
前記携帯端末は、前記情報処理装置に対してジョブ情報を要求する第１の要求を送信する第１要求手段と、前記情報処理装置から受信したジョブ情報に基づくジョブの一覧の画面と、印刷設定を行うための設定画面との表示を行う表示手段と、前記ジョブの一覧から、印刷対象とするジョブの選択を受け付ける入力手段と、前記印刷装置と近接したことに応じた前記携帯端末が備える読み取り装置を用いた無線通信に従い、前記印刷装置で印刷処理を行わせるための出力先に関する情報の読み取り処理を実行する読み取り手段と、前記情報処理装置に対して、前記入力手段により選択を受け付けたジョブの情報と、前記読み取り処理で読み取られた前記出力先に関する情報と、を含む第２の要求を、前記読み取り処理に応じて送信する第２要求手段と、を有し、
前記送信手段は、前記第２の要求に応答して、当該要求に含まれる前記ジョブの情報に対応する前記スプールされた中間ジョブから生成したジョブを、当該要求に含まれる前記出力先に関する情報から特定される印刷装置に対して、送信することを有することを特徴とする。
【発明の効果】
【０００６】
本発明により、印刷装置に備えられたパネルの表示能力に関わらず、柔軟に印刷設定を可能とするどこでもプリントを実現するための手法を提供することが可能となる。
【図面の簡単な説明】
【０００７】
【図１】本発明の印刷システム構成例を示す図。
【図２】クライアントＰＣ、スマートフォン、プリンターのハードウェア構成を示すブロック図。
【図３】クライアントＰＣにおける主なソフトウェア構成とデータフローを説明するための図。
【図４】スマートフォンにおける主なソフトウェア構成を説明するための図。
【図５】セットアップ処理の流れを示すシーケンス図。
【図６】本発明に特有な印刷処理の流れを示すシーケンス図。
【図７】クライアントＰＣに表示されるセットアップ用の画面の表示例。
【図８】スマートフォンに表示される画面例。
【図９】本発明の印刷システム構成例における各種データを示す図。
【図１０】本発明の印刷システム構成例における各種データを示す図。
【図１１】インターネットサービスによって変換されるファイルシステムとＵＲＬの対応関係を示す図。
【図１２】通信処理で伝送される各種データを示す図。
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【０００９】
図１は、本実施形態の印刷システム構成例を示す図である。
本実施形態の印刷システムは、それぞれ複数台のクライアントＰＣ（１０）、スマートフォン（２０）、プリンター（３０）とから構成され、それらがＬＡＮ（１）を介して接続される構成となっている。
【００１０】
オフィス環境に本実施形態を適用した場合、ユーザー数をＮとすると、クライアントＰＣ（１０）はユーザー数と同じＮ台、プリンター（３０）はそれよりも少ないＭ台（Ｍ＜Ｎ）で構成するのが目安となるので、以後この台数を前提に説明する。スマートフォン（２０）に関しては、クライアントＰＣ（１０）と同様にユーザーの個人端末として使用されることを想定し、やはりユーザー数と同じＮ台で構成するものとする。各装置の、ＬＡＮ（１）への物理的な接続方式は、特定の種類に限定されるものではないが、クライアントＰＣ（１０）とプリンター（３０）は有線ＬＡＮ、スマートフォン（２０）は無線ＬＡＮで構成するのが一般的なので以後この前提で説明する。
【００１１】
図２は、各装置に適用可能な情報処理装置のハードウェア構成を示すブロック図である。
【００１２】
最初に、クライアントＰＣ（１０）について説明する。
ＣＰＵ（１０１）は、ＲＡＭ（１０２）に記憶されているプログラムに従って、システムバス（１０４）に接続される各デバイスを総括的に制御する。このＲＡＭ（１０２）は、ＣＰＵ（１０１）の主メモリ、ワークエリア等としても機能する。ＲＯＭ（１０３）は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントＲＯＭ（１０３ａ）、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ（１０３ｂ）、及び各種データを記憶するデータＲＯＭ（１０３ｃ）に区分けして構成される。ネットワークＩ／Ｆ（１０５）は、ＬＡＮ（１）に接続され、通信処理を行なう。キーボードコントローラＩ／Ｆ（１０６）は、キーボード（１０９）や不図示のポインティングデバイス（マウス）からのキー入力を制御する。ディスプレイＩ／Ｆ（１０７）は、ディスプレイ（１１０）への表示処理を制御する。外部メモリＩ／Ｆ（１０８）は、例えばハードディスク（ＨＤ）等の外部メモリ（１１１）とのアクセスを制御する。外部メモリ（１１１）は、オペレーティングシステム（以下、ＯＳ）（１１２）をはじめ各種アプリケーション（１１３）、印刷処理関連プログラム（１１４）、さらに、不図示のユーザファイル、編集ファイル等を記憶するコンピューターが読み取り可能な記憶媒体として機能する。
【００１３】
なお、ここではＯＳ（１１２）としてＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓを使用するものとする。また、印刷処理関連プログラム（１１４）には複数のプログラムが含まれ、それらについては後述する。
【００１４】
次に、スマートフォン（２０）について説明する。
【００１５】
ＣＰＵ（２０１）は、ＲＡＭ（２０２）に記憶されているプログラムに従って、システムバス（２０７）に接続される各デバイスを総括的に制御する。このＲＡＭ（２０２）は、ＣＰＵ（２０１）の主メモリ、ワークエリア等としても機能する。ＲＯＭ（２０４）は、各種プログラムやデータの記憶装置であり、データとしてＯＳ（２０５）、アプリケーション（２０６）を格納している。ここではＯＳ（２０５）として、例えばＡｎｄｒｏｉｄを搭載しており、アプリケーション（２０６）としてＡｎｄｒｏｉｄ上で動作するアプリケーションを用いるものとする。他のＯＳのタイプであっても、ほぼ同様のアプリケーションの設計を行い、本発明に適用可能である。タッチスクリーンＩ／Ｆ（２０８）は、タッチスクリーン（２１２）への表示処理や、ユーザーからのタッチやスライドといった入力操作の制御処理を行う。ＩＣカードリーダーＩ／Ｆ（２０９）は、ＩＣカードリーダー（２１３）を制御し、後述するプリンター（３０）に関連付けられたＩＣタグ（３１０）の読み取り処理を行う。カメラＩ／Ｆ（２１０）はカメラ（２１４）の撮影制御や、入力された画像信号の電子画像データへの変換といった処理を行う。
【００１６】
無線ＬＡＮ  Ｉ／Ｆ（２１１）は無線ＬＡＮアンテナ（２１５）を制御し、無線ＬＡＮアンテナ（２１５）を通じて接続されるＬＡＮ（１）との通信処理を行う。
【００１７】
なお、本実施形態では携帯端末としてスマートフォン（２０）を例に挙げているが、携帯電話やＰＤＡなど他の携帯通信端末を利用することも可能である。
【００１８】
最後に、プリンター（３０）の構成について説明する。
【００１９】
ＣＰＵ（３０１）は、ＲＡＭ（３０２）に記憶されているプログラムに従って、システムバス（３０４）に接続される各デバイスを総括的に制御する。ＲＡＭ（３０２）は、ＣＰＵ（３０１）の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。
【００２０】
またこのＲＡＭ（３０２）は、ＮＶＲＡＭ（Ｎｏｎ−ｖｏｌａｔｉｌｅ  ＲＡＭ：不揮発性ＲＡＭ）領域も備えており、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＲＯＭ（３０３）は、各種フォントを記憶するフォントＲＯＭ（３０３ａ）、ＣＰＵ（３０１）により実行される制御プログラム等を記憶するプログラムＲＯＭ（３０３ｂ）、及び各種データを記憶するデータＲＯＭ（３０３ｃ）を備えている。ネットワークＩ／Ｆ（３０５）は、ＬＡＮ（１）に接続され、通信処理を行う。印刷部Ｉ／Ｆ（３０６）は、プリンタエンジンである印刷部（３０９）とのインターフェースを制御している。操作部Ｉ／Ｆ（３０６）によって制御される操作部（３１０）には、ユーザーによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている（不図示）。
【００２１】
なお、本実施の形態は、プリンター（３０）に備えられたこれらスイッチの操作性および表示器の表示能力が低いと、ユーザーが印刷に関わる様々な情報、設定を、プリンター（３０）上で確認・入力するのは著しく困難であるという問題を想定している。したがって、ここでは操作部（３１０）の機器仕様は数行の文字情報だけが表示できるような簡素なものであることを前提とする。
【００２２】
なお、仮に操作部（３１０）の機器仕様が、タッチパネル等を備えた高度なものであったとしても、本発明は適用可能である。その場合には、ユーザーは、プリンターに固有な操作性に依存することなく、後述する処理により、同様な操作感で印刷処理を行えるようになるといったメリットがある。
【００２３】
外部メモリＩ／Ｆ（３０８）は、例えばハードディスク（ＨＤ）等の外部メモリ（３１１）とのアクセスを制御する。外部メモリ（３１１）はフォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。なお、この外部メモリ（３１１）は１個に限らず複数備えるものであってもよく、例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
【００２４】
ＣＰＵ（３０１）はネットワークＩ／Ｆ（３０５）を介してクライアントＰＣ（１０）との通信処理が可能となっており、クライアントＰＣ（１０）から送信されるＰＤＬデータを受信する。ＣＰＵ（３０１）は、ＲＯＭ（３０３）のプログラムＲＯＭ（３０３ｂ）に記憶された制御プログラム等に基づき、印刷部Ｉ／Ｆ（３０６）を介して印刷部（３０９）に印刷データを変換して得られる画像信号を出力することが可能である。
【００２５】
最後に、ＩＣタグ（３１２）は電波を受けて働く小型の電子装置で、ＲＦＩＤ（Ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）の一種である。本実施の形態ではＩＣタグの方式として、スマートフォン（２０）に内蔵されたＩＣカードリーダー（２１３）によって読み取り可能な非接触型を用いる。非接触型であるため、ＩＣタグ（３１０）にＩＣカードリーダー（２１３）を軽く触れさせるだけで、ＩＣタグ（３１０）に記憶された情報を読み取ることができる。ＩＣタグ（３１０）は、プリンター（３０）の外装に貼りつけられる、または、アタッチメント等を用いて装置本体に固定されるといったことを想定している。
【００２６】
このようにして装置本体と関連付けられたＩＣタグ（３１０）はＭ台あるプリンターのいずれであるかを特定するために用いられ、そのための情報としてＩＣタグ（３１０）には、各タグに固有かつ書き換え不可能なＩＤ番号が記憶されている。
【００２７】
図３は、クライアントＰＣ（１０）における、本実施形態の印刷システムに関わるソフトウェアおよびハードウェアの構成と、おおまかなデータの流れを示したデータフロー図である。
【００２８】
印刷アプリ（４０１）は、ユーザーが印刷する文書を作成し、印刷指示を行うのに用いられる。ＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）（４０２）はＯＳ（１１２）の提供する描画インターフェースで、印刷アプリ（４０１）はＧＤＩ（４０２）を通じて印刷指示命令を出力する。仮想プリンタードライバー（４０３）と専用プリンタードライバー（４１０）はプリンタードライバーの一種である。専用プリンタードライバー（４１０）は、ＧＤＩ（４０２）から入力された印刷指示命令をＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）（４１１）に変換し、ネットワークＩ／Ｆ（１０５）を通じてプリンター（３０）に送信する。
【００２９】
本実施形態では、プリンター（３０）がＭ台設置されているので、それに含まれるプリンター（３０）の機種数に応じて、対応する専用プリンタードライバー（４１０）をあらかじめ複数用意してインストールしておく。また、Ｍ台のプリンター（３０）それぞれに割り当てられたネットワークアドレス（ＩＰアドレス）にＰＤＬ（４１１）を送信できるようプリントキューとポートをあらかじめ設定しておく。
【００３０】
一方、仮想プリンタードライバー（４０３）は、プリンター（３０）に対して直接データは送信せず、ＧＤＩ（４０２）から入力された印刷指示命令を、ＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａ  Ｆｉｌｅ）（４０４）に変換し、プリントジョブマネージャー（４０５）に出力する。ＥＭＦ（４０４）とは印刷指示命令と互換性のある中間データ形式であり、ＧＤＩ（４０２）から入力された一連の印刷指示命令を、後から再現できるデータとして記録したものである。
【００３１】
本実施形態では中間データ形式としてＥＭＦ（４０４）を用いているが、印刷指示命令を再現可能なデータであれば、例えばＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）や独自に定義した任意の中間データ形式であっても良い。また、仮想プリンタードライバー（４０３）は、中間データ形式を出力する目的で使用するので、１種類だけインストールしておけば良い。
【００３２】
ジョブマネージャー（４０５）は、本実施形態の印刷システムにおいて中心的な役割を担うソフトウェアである。具体的には、ＥＭＦ（４０４）のスプール処理、一連の印刷プレビュー画像であるサムネイル（４０７）の生成、Ｗｅｂジョブアプリ（４０９）との通信処理、ＥＭＦ（４０４）のデスプール処理を行う。
【００３３】
プリンターテーブル（４１２）は、ジョブマネージャー（４０５）が、ＩＣタグに記憶された情報から、出力先のプリンターを決定するために参照する情報テーブルである。アクセスコード（４１３）は、ジョブマネージャー（４０５）がインストールされた際に、ジョブマネージャー（４０５）が生成する一意なコードである。インターネットサービス（４０８）は、ＯＳ（１１２）の提供するＷｅｂサービスのホスティングシステムであり、ＬＡＮ（１）を通じて外部の端末に、ＷｅｂページやＷｅｂアプリケーションを公開する処理を行う。
【００３４】
Ｗｅｂジョブアプリ（４０９）は、インターネットサービス（４０８）上で動作するＷｅｂアプリケーションである。Ｗｅｂジョブアプリ（４０９）は、スマートフォン（２０）からの要求を受信し、ジョブマネージャー（４０５）と連携して処理を行い、スマートフォン（２０）に応答を送信する。ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）（４０６）は、Ｗｅｂジョブアプリ（４０９）とジョブマネージャー（４０５）との通信に使用されるデータ形式である。
【００３５】
図４は、スマートフォン（２０）における主なソフトウェアおよびハードウェアの構成を説明した図である。
【００３６】
どこプリアプリ（５０１）は、ＯＳ（２０５）上で動作するアプリケーションである。クライアントＰＣアクセス情報（５０２）は、どこプリアプリ（５０１）によって生成され、外部メモリ（２０４）に記憶される情報である。
【００３７】
どこプリアプリ（５０１）は、ＣＰＵ（２０１）、バス（２０７）を通じて、タッチスクリーンＩ／Ｆ（２０８）、ＩＣカードリーダーＩ／Ｆ（２０９）、カメラＩ／Ｆ（２１０）、無線ＬＡＮＩ／Ｆ（２１１）を制御し、タッチスクリーン（２１２）、ＩＣカードリーダー（２１３）、カメラ（２１４）、無線ＬＡＮアンテナ（２１５）と情報のやりとりを行う。
【００３８】
図５は、本実施形態の印刷システムのセットアップ処理を示すシーケンス図である。
【００３９】
本実施形態の印刷システムにおいて、ユーザーは、個人用端末として利用するクライアントＰＣ（１０）とスマートフォン（２０）の両方を操作し、印刷処理を実現する。そのため、クライアントＰＣ（１０）にジョブマネージャー（４０５）を始めとする印刷関連プログラムを、スマートフォン（２０）にどこプリアプリ（５０１）をそれぞれインストールするだけでなく、両端末を関連付ける必要がある。図５のセットアップ処理は、それらソフトウェアのインストールが完了した後に、ジョブマネージャー（４０５）と、どこプリアプリ（５０１）とを関連付け、互いに通信可能な状態にするための操作中に行われる処理である。
【００４０】
まず、Ｓ１０１では、クライアントＰＣ（１０）上のジョブマネージャー（４０５）は、ユーザーからの入力操作によりセットアップ開始指示を受信する。Ｓ１０２では、ジョブマネージャー（４０５）は、クライアントＰＣアクセス情報（５０２）を符号化した２次元バーコードを生成する。ジョブマネージャー（４０５）は、さらに、Ｓ１０３で、生成した２次元バーコードをディスプレイ（１１０）に表示する。
【００４１】
次に、スマートフォン（２０）上のどこプリアプリ（５０１）は、ユーザーからの入力操作（Ｓ１０４）によりセットアップ開始指示を検出し、Ｓ１０５で、カメラＩ／Ｆ（２１０）を制御してカメラ（２１４）を起動し、撮影処理を開始する。ここで、ユーザーが、ディスプレイ（１１０）に表示された２次元バーコードをカメラ（２１４）の撮影範囲に収まるように撮影する（Ｓ１０６）と、どこプリアプリ（５０１）は、Ｓ１０７で、入力画像を解析して２次元バーコードを認識する。
【００４２】
次に、どこプリアプリ（５０１）は、Ｓ１０８で認識された２次元バーコードを解析して情報を復号し、Ｓ１０９で復号されたクライアントＰＣアクセス情報（５０２）を外部メモリ（２０４）に記憶する。
【００４３】
最後に、どこプリアプリ（５０１）とジョブマネージャー（４０５）は、それぞれユーザーからのセットアップ終了指示（Ｓ１１０、Ｓ１１１）を検出すると、セットアップ処理を終了する。
【００４４】
なお、前述では、クライアントＰＣアクセス情報（５０２）をクライアントＰＣからスマートフォンに送る際に２次元バーコードを利用したが、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などの有線通信や赤外線などの無線通信などを用いてもよい。
【００４５】
図９（Ａ）には、クライアントＰＣアクセス情報（５０２）の例を示す。
クライアントＰＣアクセス情報（５０２）は、ホスト名（５０２１）と、アクセスコード（５０２２）とから構成される。
【００４６】
ホスト名（５０２１）は、クライアントＰＣのホスト名情報である。スマートフォン（２０）とクライアントＰＣ（１０）はそれぞれＮ台あるが、後述する印刷操作時に、スマートフォン（２０）はクライアントＰＣ（１０）と通信を行う。その際、スマートフォン（２０）が、Ｎ台あるどのクライアントＰＣ（１０）にアクセスするかを決定するための情報として、本実施形態の例では「ｕｓｅｒ０１−ＰＣ」というホスト名情報が使われる。なお、クライアントＰＣ（１０）のＩＰアドレスが不変であればホスト名（５０２１）にＩＰアドレスの情報を用いても良い。
【００４７】
アクセスコード（５０２２）は任意長の文字列情報で、本実施形態の例ではＧＵＩＤが用いられる。アクセスコード（５０２２）は、どこプリアプリ（５０１）がジョブマネージャー（４０５）と印刷操作時の通信を開始する際に用いる、簡易的な認証情報である。ジョブマネージャー（４０５）は、クライアントＰＣ（１０）にインストールされる際に、一意なアクセスコード（４１３）を生成し、外部メモリ（１１１）に記憶する。Ｎ台のクライアントＰＣ（１０）それぞれにインストールされたジョブマネージャー（４０５）が固有のアクセスコード（４１３）を生成するので、アクセスコードもＮ通り存在する。スマートフォン（２０）上のアクセスコード（５０２２）は、クライアントＰＣ（１０）上に記憶されたアクセスコード（４１３）を、セットアップ処理によって取得してきたものである。ジョブマネージャー（４０５）は、印刷処理のための通信開始時に、どこプリアプリ（５０１）から受信したアクセスコード（５０２２）と、外部メモリ（１１１）に記憶されたアクセスコード（４１３）とが一致するか判断することで通信を許可するか拒絶するかを決定する。この結果、セットアップ処理によって関連付けが行われたクライアントＰＣ（１０）とスマートフォン（２０）だけが互いに通信可能となり、誤って他のユーザーに印刷文書を見られてしまう事態を防止できる。
【００４８】
図７（Ａ）に、ディスプレイ（１１０）に表示されたジョブマネージャー（４０５）のセットアップ画面（１０００）の例を示す。
【００４９】
２次元バーコード（１００１）は、Ｓ１０２において、クライアントＰＣアクセス情報（５０２）を符号化して得られたバーコード画像である。ここではバーコード画像の例としてＱＲコードを用いた場合を示す。ディスプレイ（１１０）に表示された２次元バーコードを、スマートフォン（２０）のカメラ（２１４）で撮影するだけでセットアップが行われるので、同じだけの情報量を文字入力する場合等の方法に比べてユーザーの負担は軽減される。ＯＫボタン（１００２）が押されることにより、ジョブマネージャーにセットアップ終了指示が送信される。
【００５０】
図６は、本実施形態における印刷システムにおける、印刷処理を説明するシーケンス図である。
【００５１】
はじめに、印刷処理のおおまかな流れを説明してから、個別の処理を詳述する。ポイントとなるのは、上述したとおり、本印刷システムにおけるユーザーがクライアントＰＣ（１０）とスマートフォン（２０）の両方を操作して印刷出力を行う点である。
【００５２】
第１に、ユーザーによってクライアントＰＣ（１０）上にある印刷文書の印刷指示が印刷アプリ（４０１）に入力されると、仮想プリンタードライバー（４０３）によって印刷処理が実行される。仮想プリンタードライバー（４０３）は実際のプリンター（３０）への出力は行わず、印刷ジョブをＥＭＦ（４０４）に変換してジョブマネージャー（４０５）に送信する。ジョブマネージャー（４０５）は、ＥＭＦをクライアントＰＣ（１０）上でそのまま一時的に留め置く。
【００５３】
第２に、クライアントＰＣ（１０）の前から離れ、スマートフォン（２０）を取り出した同一のユーザーによって、どこプリアプリ（５０１）が起動される。どこプリアプリ（５０１）は、クライアントＰＣ（１０）上のジョブマネージャー（４０５）と通信し、留め置かれた印刷ジョブのリストを取得し、サムネイルとともにスマートフォン（２０）にその情報を表示する。どこプリアプリ（５０１）は、ユーザーからの印刷設定変更の入力操作を受け付け、Ｍ台ある中から選ばれた所望のプリンター（のＩＣタグ）にタッチされたことを検知すると、ジョブマネージャー（４０５）に印刷指示を行う。
【００５４】
最後に、スマートフォン（２０）から印刷指示を受けたジョブマネージャー（４０５）は、専用プリンタードライバー（４１０）を通じて印刷処理を行い、プリンター（３０）に印刷出力を行う。
【００５５】
以上で説明した印刷処理の概要に沿って、印刷処理の流れを具体的に説明する。
【００５６】
まず、クライアントＰＣ（１０）において、印刷アプリ（４０１）は、ユーザーからの印刷文書の印刷指示（Ｓ２０１）を受信すると、Ｓ２０２で、ＧＤＩ（４０２）を通じて仮想プリンタードライバー（４０３）への印刷処理を開始する。
【００５７】
図７（Ｂ）に、ディスプレイ（１１０）に表示された、印刷アプリ（４０１）における印刷指示入力用の画面例（１１００）を示す。プリントキュー選択部（１１０１）で、現在、選択肢「どこでも印刷」（１１０２）が選択されている。この「どこでも印刷」（１１０２）は、仮想プリンタードライバー（４０３）に対応するプリントキューが選択されていることを表す。
【００５８】
さらに、リスト中の他の選択肢である「Ｃｘｘｘｘ    ｉｘ３２５０」（１１０３）と、「Ｃｘｘｘｘ    ｉｘ５０５１」（１１０４）は、専用プリンタードライバー（４１０）に対応するプリントキューを選択することを表す。いずれかの印刷キューが選択され、ＯＫボタン（１１０５）がマウス等で押されると、印刷アプリ（４０１）は、各プリントキューに対応するプリンタードライバーを通じて印刷処理を行う。本実施形態ではどこでもプリントを行うので、「どこでも印刷」（１１０２）のプリントキューが選択されたものとする。
【００５９】
ここで、図１０（Ａ）を用いて、プリンタードライバー、プリントキュー、ポートの関係について説明する。図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）のオブジェクト図を使って表現している。
【００６０】
ＯＳ（１１２）は、ユーザーが容易にプリンタードライバーをインストールしたり、文書を印刷したりできるよう、プリンタードライバー（１２０１）、プリントキュー（１２０３）、ポート（１２０５）という３種類のオブジェクトを管理している。これらのオブジェクトはＯＳ（１１２）が、情報として外部メモリ（１１１）上に記憶させ、印刷アプリ（４０１）を始めとするプログラムからＡＰＩを通じてアクセスできるよう管理している。
【００６１】
プリンタードライバー（１２０１）は、ＯＳ（１１２）にインストールされた仮想プリンタードライバー（４０３）および専用プリンタードライバー（４１０）を指すオブジェクトである。プリンタードライバー（１２０１）はモデルごとに管理されるため、モデルが異なれば別のオブジェクトとなる。
【００６２】
プリントキュー（１２０３）は、プログラムが印刷用ＡＰＩを通じて印刷処理行う際の対象となるオブジェクトである。プリントキュー（１２０３）は、プリンタードライバー（１２０１）に関連付けられて管理される。ひとつのプリンタードライバー（１２０１）に対して、複数のプリントキュー（１２０３）を関連付けることができる。
【００６３】
ポート（１２０５）は出力先を特定するオブジェクトである。通常はひとつのプリントキュー（１２０１）に対してひとつのポート（１２０５）が関連付けられて管理される。例えば、オフィスにＤｅｖｉｃｅ  Ｍｏｄｅｌ  Ａというプリンターを３台導入した場合、Ｄｅｖｉｃｅ  Ｍｏｄｅｌ  Ａに対応した専用プリンタードライバー（４１０）をインストールし、プリンタードライバー（１２０１）を１つ、プリントキュー（１２０３）を３つ、ポート２２（１２０５）を作成して互いに関連付けるのが典型的な構成となる。
【００６４】
各オブジェクトはそれぞれプリンタードライバー構成情報（１２０２）、プリントキュー構成情報（１２０４）、ポート構成情報（１２０６）を保持している。プリンタードライバー構成情報（１２０２）は、モデル名、ドライバーバージョン、ハードウェア情報、ドライバーモジュール名、等の情報を含む。プリントキュー構成情報（１２０４）は、プリントキュー名、プリンタードライバー名、ポート名、印刷設定情報、アクセス権情報等の情報を含む。ポート構成情報（１２０６）は、ポート名、アドレス情報（ＩＰアドレス等）、ポートモジュール名、等の情報を含む。
【００６５】
プリンタードライバーがインストールされていれば、すなわちプリンタードライバー（１２０１）のオブジェクトが存在していれば、プログラムがセットアップ用ＡＰＩを通じてプリントキュー（１２０３）とポート（１２０５）のオブジェクトを生成することは可能である。
【００６６】
図６の説明に戻る。
【００６７】
Ｓ２０３で、仮想プリンタードライバー（４０３）は、印刷処理が開始されると、Ｓ２０２の印刷開始命令で入力された印刷設定情報にしたがって印刷設定の初期化処理を行う。ＯＳ（１１２）がＷｉｎｄｏｗｓで、スプールする中間形式をＥＭＦ（４０４）とした場合、印刷設定としてＤＥＶＭＯＤＥ構造体の形式が用いられる。ＤＥＶＭＯＤＥ構造体とは、プリンターが使用可能な機能、レイアウト設定、仕上げ設定、給紙設定、排紙設定、印字品質設定等の情報を含むバイナリ形式のデータである。
【００６８】
印刷開始に続いて、Ｓ２０４で、印刷アプリ（４０１）が各ページの印刷描画に相当する印刷描画命令を仮想プリンタードライバー（４０３）に対して入力する。そして、Ｓ２０５で、仮想プリンタードライバー（４０３）は、印刷描画命令をＥＭＦ（４０４）に変換する。ＥＭＦ（４０４）への変換時には、印刷ジョブの印刷設定情報も保存されるよう、Ｓ２０３で初期化したＤＥＶＭＯＤＥ構造体もＥＭＦ（４０４）に内包させる。
【００６９】
ここで、図１０（Ｂ）に示す模式図を用いて、ＥＭＦ（４０４）のデータ構造について説明する。
【００７０】
ＥＭＦＳＰＯＯＬ（１２００）は、内部に複数のデータを保持可能な構造を定義する形式で、本実施例では（１２０１）〜（１２０４）を有している。ＥＭＦＳＰＯＯＬ（１２００）は送信処理や記憶処理で取り扱われるデータそのものを表現するが、便宜上そうしたプログラムで扱う際はこのデータのことをＥＭＦ（４０４）と呼ぶ。ヘッダー部（１２０１）は生成日時やジョブ名といった情報を表すデータである。ＤＥＶＭＯＤＥ（１２０２）は前述のＤＥＶＭＯＤＥ構造体のデータである。ＥＭＦページレコード１（１２０３）、ＥＭＦページレコード２（１２０４）、とそれに続く一連のデータは印刷ジョブの各ページの印刷描画命令を記録したものである。
【００７１】
再び、図６の説明に戻る。
【００７２】
Ｓ２０６で、印刷アプリ（４０１）が、印刷終了の命令を、仮想プリンタードライバー（４０３）に入力する。Ｓ２０７で、仮想プリンタードライバー（４０３）は、ジョブマネージャー（４０５）のスプール処理部（４０５１）に生成したＥＭＦ（４０４）を送信する。ＥＭＦ（４０４）のスプール処理部（４０５１）への送信手段としては、名前付きパイプ（Ｎａｍｅｄ  Ｐｉｐｅ）を使用する。なお、（Ｓ２０２〜Ｓ２０７）は逐次的に実行しても、並行して（ランダムに）実行しても良い。
【００７３】
Ｓ２０８で、スプール処理部（４０５１）は、受信したＥＭＦ（４０４）をスプール（一時的に留め置く）するため、外部メモリ（１１１）にＥＭＦ（４０４）を書き込んで記憶させる。続いて、Ｓ２０９で、受信したＥＭＦ（４０４）から、サムネイル（４０７）を生成し、これも外部メモリ（１１１）に記憶させる。ここで、サムネイル（４０７）とは、印刷ジョブに含まれる各ページのプレビュー画像のことを指す。本実施の形態ではファイルサイズが小さく、スマートフォン（２０）での表示に適したＪＰＥＧ形式の画像を生成し、記憶する。
【００７４】
もし、他にも印刷する文書が存在する場合は、再びユーザーから印刷指示が入力されることによって、Ｓ２０１〜Ｓ２０９の処理が実行される。
【００７５】
以上で、クライアントＰＣ（１０）上での操作に伴う処理が終了し、次は、ユーザーがスマートフォン（２０）を操作することにより行われる処理に移る。
【００７６】
スマートフォン（２０）では、ユーザーによるどこプリアプリ（５０１）の起動指示の入力（Ｓ２１０）を検出し、どこプリアプリ（５０１）が起動される。そして、Ｓ２１１で、どこプリアプリ（５０１）が、ジョブ一覧表示用の初期画面を表示する。次に、Ｓ２１２で、どこプリアプリ（５０１）は、前述の図５のＳ１０９で外部メモリ（２０４）に記憶されたクライアントＰＣアクセス権情報（５０２）を読み込む。Ｓ２１３〜Ｓ２１４では、どこプリアプリ（５０１）は、インターネットサービス（４０８）を介して、クライアントＰＣアクセス権情報（５０２）を用いたジョブ一覧要求を、ＨＴＴＰプロトコルで、Ｗｅｂジョブアプリ（４０９）に送信する。
【００７７】
Ｓ２１５で、Ｗｅｂジョブアプリは、ジョブ一覧要求を受信すると、ジョブマネージャー（４０５）の応答処理を担う応答処理部（４０５３）に対して、ジョブ一覧要求を名前付きパイプで送信する。応答処理部（４０５３）は、Ｓ２１６で、ジョブ一覧要求を受信するとスプール処理部（４０５１）にジョブ一覧情報の生成を指示する。Ｓ２１７で、スプール処理部（４０５１）がジョブ一覧情報を生成し、Ｓ２１８では、応答処理部（４０５３）がその生成されたジョブ一覧情報を受信する。Ｓ２１９では、応答処理部（４０５３）がそのジョブ一覧情報をＷｅｂジョブアプリ（４０９）に応答する。Ｓ２２０〜Ｓ２２１で、Ｗｅｂジョブアプリ（４０９）は、受信したジョブ一覧情報を、インターネットサービス（４０８）を介して、どこプリアプリ（５０１）に応答する。
【００７８】
ここで、Ｓ２１３からＳ２２１にかけての通信処理について詳しく説明する。
【００７９】
図１１は、インターネットサービス（４０８）によって公開されるＷｅｂコンテンツの、ファイルシステムとＵＲＬの関係を表した模式図である。
【００８０】
インターネットサービス（４０８）は、ＯＳ（１１２）が提供するファイルシステム上のフォルダオブジェクトやファイルオブジェクトを、ＬＡＮ（１）を通じて外部にＷｅｂコンテンツとして公開する処理を行う。Ｗｅｂジョブアプリ（４０９）の機能の１つは、ファイルシステム上では「Ｃ：￥ａｐ￥ｆｅｔｃｈ」というファイルオブジェクトとして外部メモリ（１１１）に記憶されているが、インターネットサービス（４０８）によって、「ｈｔｔｐ：／／ｕｓｅｒ０１−ＰＣ／ａｐ／ｆｅｔｃｈ」というＵＲＬで表現されるＷｅｂコンテンツに変換され、公開される。
【００８１】
スマートフォン（２０）上のどこプリアプリ（５０１）は、前記ＵＲＬを対象としてＨＴＴＰプロトコルで通信することによって、ジョブ一覧要求を送信することができる。ＵＲＬを構成する要素の内、ＨＴＴＰ通信の宛先を示すホスト名の部分には、クライアントＰＣアクセス情報（５０２）に含まれるホスト名（５０２１）の値「ｕｓｅｒ０１−ＰＣ」を指定する。ホスト名に続くスクリプト名の部分は、呼び出すＷｅｂジョブアプリ（４０９）の機能によって変更する。
【００８２】
ここでは、ジョブ一覧取得要求を送信するので「／ａｐ／ｆｅｔｃｈ」を指定する。後述する印刷要求の送信時は「／ａｐ／ｐｒｉｎｔ」を指定する。
【００８３】
また、ジョブ一覧要求の送信時は、セットアップ処理で取得したアクセスコード（５０２２）をパラメーターとして送信する必要があるが、このパラメーターは、図１２（Ａ）に示すように、ＵＲＬのクエリーストリングとして指定する。すなわち、前出のＵＲＬに続いて「？ａｃｃｅｓｓｃｏｄｅ＝９９Ｅ９５ＤＡ５・・・」という文字列を付加する。
【００８４】
Ｓ２１３において、図１２（Ａ）に示すようなＵＲＬを用いてＨＴＴＰ通信が行われると、ＵＲＬの値そのものがインターネットサービス（４０８）、Ｗｅｂジョブアプリ（４０９）を通じて応答処理部（４０５３）までそのまま送信される。応答処理部（４０５３）では、受信したＵＲＬを解析することによって、どのような要求が（ジョブ一覧取得要求か、印刷要求か）、どのようなパラメラーター付きで送られてきたか判断することができる。
【００８５】
次に、応答として返すデータの例を図１２（Ｂ）に示す。応答はＪＳＯＮ形式で送信される。ＪＳＯＮ形式において、情報はキーとバリューのペアで表現される。例えば、通信処理に成功したかどうかの情報は「“ｓｕｃｃｅｓｓ“：ｔｒｕｅ」と表現される。連続するリスト情報は括弧を使って表現され、この表現によって、「“ｊｏｂｓ“」の値のようにクライアントＰＣ（１０）にスプールされた複数のジョブに関わる情報を記述することもできる。
【００８６】
改めて、図１２（Ｂ）に示すジョブ一覧に関する情報を見ると、通信処理に成功したかどうか、含まれるジョブのリスト、各ジョブのジョブＩＤ、状態、ジョブ名、ページ数といった情報が含まれている。また、各ジョブの印刷設定として、部数設定、両面設定、カラー設定といった情報が含まれている。さらに、各ジョブに含まれる各ページの、サムネイルを取得するためのＵＲＬリスト情報が含まれている。
【００８７】
Ｓ２０９において生成されたサムネイルの各画像は、図１１に示すＯＳ（１１２）上のファイルシステムでは「Ｃ：￥ｉｍｇ￥００１＿００１．ｊｐｇ」といった複数のファイルオブジェクトとして保存される。これらファイルオブジェクトは、インターネットサービス（４０８）によって、「ｈｔｔｐ：／／ｕｓｅｒ０１−ＰＣ／ｉｍｇ／００１＿００１．ｊｐｇ」といった複数ＵＲＬとして公開され、通信によって各画像が取得可能な状態となっている。各画像の取得については後述する。
【００８８】
ところで、図９（Ａ）の説明で述べたように、ジョブマネージャー（４０５）は、どこプリアプリ（５０１）から受信したアクセスコード（５０２２）と、外部メモリ（１１１）に記憶されたアクセスコード（４１３）とが一致するか判断し、通信を許可するかどうか決定する。もしアクセスコードが一致した場合は、図１２（Ｂ）に示したＪＳＯＮデータを送信するが、一致しなかった場合は図１２（Ｃ）に示すＪＳＯＮデータを送信する。図１２（Ｃ）では「“ｓｕｃｃｅｓｓ“：ｆａｌｓｅ」となっており、通信が拒絶されたことを表している。
【００８９】
再び、図６の説明に戻る。
【００９０】
Ｓ２２２において、どこプリアプリ（５０１）は、取得したジョブ一覧情報をもとに、ジョブ一覧画面を表示する。次に、どこプリアプリ（５０１）は、Ｓ２２３でジョブ一覧情報に含まれるサムネイルのＵＲＬリスト情報を取り出し、各ＵＲＬを対象としてＨＴＴＰ通信を行い、各ページの印刷プレビュー画像を要求し、Ｓ２２４でその応答として画像データを取得する。Ｓ２２５では、どこプリアプリ（５０１）が、各ページの印刷プレビュー画像が取得できたら、随時ジョブ一覧画面に表示する。
【００９１】
図８（Ａ）に、スマートフォン（２０）のタッチスクリーン（２１２）上に表示される、ジョブ一覧画面（２０００）の例を示す。画面上にはジョブ名（２００１）、チェックボタン（２００２）、サムネイルコンテナ（２００３）、印刷設定ボタン（２００４）という構成要素が配置されている。これらの要素を集めた単位で１つのジョブに関する情報を表示しており、この単位を複数並べて表示することによって、ジョブリストとして情報が総合的に表現されている。画面例では、タッチスクリーン（２１２）の上半分を使って「見積書．ｄｏｃ」、下半分を使って「納品書．ｄｏｃ」に関する情報が表示されている。もしこれらに加えて３つ目のジョブが存在する場合、ユーザーが画面をタッチ操作で垂直方向にスクロールすることによってその情報を表示させることができる。
【００９２】
サムネイルコンテナ（２００３）は、各ページのプレビュー画像を表示するための領域である。画面例では、２ページと半分のプレビュー画像が、タッチスクリーン（２１２）の横一杯に表示されている。３ページ目以降のプレビュー画像を確認する場合は、ユーザーが画面をタッチ操作で水平方向にスクロールすることによってその情報を表示させることができる。
【００９３】
メッセージ２００５は、ユーザーの操作を補助するためのメッセージが表示される領域である。
【００９４】
ジョブ一覧画面を表示する一連の処理（Ｓ２１１〜Ｓ２２５）において、サムネイルを含むすべての情報が表示されるまでの時間を短くし、かつユーザーのストレスを低減させるための工夫としては以下のような処理が考えられる。
【００９５】
例えば、Ｓ２２２の処理が終了した時点ではまだサムネイルの取得が行われていないので、ひとまずダミーとして白紙を表した画像を表示する。また、もしもスプールされたジョブの数が１０個、各ジョブに含まれるページ数が５０ページなど大量である場合、それらの合計５００ページ分のサムネイルを取得し終えるまで表示が更新されないとすると、ユーザーはストレスを感じてしまう。そこで、どこプリアプリ（５０１）は、タッチスクリーン（２１２）上において実際に表示されているサムネイルコンテナ（２００３）の位置から取得すべきジョブのジョブＩＤとページ番号を判断し、該当するサムネイルのみ、前述したＳ２２３において要求する。もしユーザーの操作によって画面が移動されたら、移動後のサムネイルコンテナの位置から取得すべきサムネイルを判断して、その都度、画像データの要求、取得を行う。
【００９６】
再び、図６の説明に戻る。
【００９７】
Ｓ２２７で、どこプリアプリ（５０１）は、ユーザーからの印刷対象となるジョブの選択入力（Ｓ２２６）を検出して、ジョブ一覧画面を更新する。また、Ｓ２２９で、ユーザーからの印刷設定の指示入力（Ｓ２２８）を検出して、印刷設定画面を表示する。Ｓ２３１では、ユーザーの印刷設定画面で印刷設定が入力（Ｓ２３０）を検出して、それに従う印刷設定情報の更新を行う。
【００９８】
図８（Ａ）のチェックボタン（２００２）は、印刷対象ジョブの選択入力を受け付けるための要素である。デフォルトのチェックが付いたオンの状態だと、そのジョブは印刷対象に含まれていることを表す。チェックボタン（２００２）を押すことによってチェックを解除しオフの状態にすると、そのジョブは印刷対象から除外されていることを表す。このような選択入力は、特定のジョブを後で印刷するときや、一部のジョブをカラープリンターで出力してから残りをモノクロプリンターで印刷するときなどに活用される。
【００９９】
図８（Ｂ）にスマートフォン（２０）のタッチスクリーン（２１２）上に表示される、印刷設定画面（２１００）の例を示す。印刷設定画面（２１００）は、ジョブごとの要素として配置されている印刷設定ボタン（２００４）を押すことによって表示される。（２１０１）は印刷設定の各項目を設定するための要素である。ここでは部数設定、両面設定、カラー設定を行うための入力手段が表示されている。（２１０１）を変更した後、ＯＫボタン（２１０２）を押すと変更を確定でき、キャンセルボタン（２１０３）を押すと変更を取り消すことができる。確定または取り消しを行うと、再びジョブ一覧画面（２０００）が表示される。
【０１００】
なお、どこプリアプリ（５０１）は、各ジョブの印刷設定情報を図１２（Ｂ）のようなＪＳＯＮ形式、またはそれに類する形式で保持し、更新する。
【０１０１】
再び、図６の説明に戻る。
【０１０２】
どこプリアプリ（５０１）は、ユーザーによってスマートフォン（２０）が所望の出力先であるプリンター（３０）に固定されたＩＣタグ（３１２）にタッチ（Ｓ２３２）されたことを検知して、Ｓ２３３でＩＣタグの情報を読み取る。
【０１０３】
どこプリアプリ（５０１）は、その起動とともに、ＣＰＵ（２０１）、バス（２０７）、ＩＣカードリーダーＩ／Ｆ（２０９）を通じてＩＣカードリーダー（２１３）を制御し、ＩＣタグ（３１２）が読み取られると同時に通知するよう命令する。ＩＣタグ（３１２）が読み取られると、ＩＣカードリーダーＩ／Ｆ（２０９）は、読み取られた情報とともにどこプリアプリ（５０１）に通知を行う。読み取られた情報にはＩＣタグに固有のＩＣタグＩＤ情報が含まれる。本実施形態ではＭ台のプリンター（３０）ごとにＩＣタグ（３１２）が関連付けられており、したがってＩＣタグＩＤもＭ通りある。本実施形態の印刷システムはこのＩＣタグＩＤによって、どのプリンター（３０）が所望の出力先として選ばれたのかを判断する。
【０１０４】
次に、Ｓ２３４で、どこプリアプリ（５０１）は、ＩＣタグＩＤ、印刷するジョブＩＤ、所望の印刷設定をパラメーターとして印刷要求を送信する。Ｓ２３５〜Ｓ２３６で、この印刷要求は、ジョブ一覧要求と同様の通信方法によって、インターネットサービス（４０８）、Ｗｅｂジョブアプリ（４０９）を介して、応答処理部（４０５３）に伝送される。
【０１０５】
ここで、図１２（Ｄ）は、送信される印刷要求の例を示す。この例ではアクセスコードはパラメーターに含めていないが、ジョブ一覧要求の処理と同様に含めても良い。なお、印刷要求は、パラメーターの仕様から自明のとおり、１ジョブの印刷要求ごとに送信される。
【０１０６】
次に、Ｓ２３７で、応答処理部（４０５３）は、デスプール部（４０５２）に印刷指示する。Ｓ２３８では、デスプール処理部（４０５２）は、印刷指示を受けて、プリンターテーブル（４１２）を参照して印刷対象となるプリンターのモデル（４１３２）とＩＰアドレス（４１３３）の情報を参照し、印刷処理対象とするプリントキューを特定する。もし該当するプリントキューが存在しない場合は、新たにプリントキューを作成し、当該作成されたキューを印刷対象としたうえで、プリンターテーブル（４１２）を更新する。
【０１０７】
図９（Ｂ）は、プリンターテーブル（４１２）の例を示す。テーブルは、ＩＣタグＩＤ（４１３１）、モデル（４１３２）、ＩＰアドレス（４１３３）から構成される。このテーブル（４１２）は、あらかじめ本実施形態の印刷システムを導入する管理者によって作成されており、ジョブマネージャー（４０５）のプログラムと共にすべてのクライアントＰＣ（１０）にインストールされる。あるいは、プリンター（３０）の機材更新等を考慮して、あとから配信して更新可能にするなどしても良い。
【０１０８】
デスプール処理部（４０５２）は、印刷対象のプリントキューが決定されると、Ｓ２３９でスプール処理部（４０５１）に対して印刷要求されたジョブＩＤに該当するＥＭＦ（４０４）のデータを要求し、Ｓ２４０でその応答としてＥＭＦデータを取得する。次に、ＥＭＦ（４０４）を解釈して印刷指示命令を再現し、プリントキューに対応する専用プリンタードライバー４１０に対して一連の印刷指示命令を出す。具体的には、デスプール処理部（４０５２）は、Ｓ２４１で印刷開始命令を発行し、Ｓ２４３で実際の各ページに対応するデータを送信し、Ｓ２４５で印刷終了命令を発行する。
【０１０９】
これらの命令に対して専用プリンタードライバー４１０は、Ｓ２４２で印刷設定の初期化、Ｓ２４４で受信したデータに基づくＰＤＬの生成を行い、Ｓ２４６で生成されたＰＤＬをネットワークＩ／Ｆ（１０５）を通じて、実際にプリンター（３０）に送信する。
【０１１０】
なお、これらＳ２４１〜Ｓ２４６の処理は、Ｓ２０２〜Ｓ２０７と同様に、逐次的に処理しても、ランダムに処理しても良い。
【０１１１】
また、Ｓ２４１において印刷開始命令を行う際、デスプール処理部（４０５２）は、どこプリアプリ（５０１）からの印刷要求に含まれる印刷設定の情報にしたがってＥＭＦ（４０４）に含まれるＤＥＶＭＯＤＥ構造体（１２１２）を変更する。その結果、ユーザーによって変更された所望の印刷体裁でプリンター（３０）から出力を得ることができる。
【０１１２】
Ｓ２４７で、デスプール処理部（４０５２）は、印刷処理が終了に応じて、応答処理部（４０５３）に印刷処理の終了を応答する。Ｓ２４８で、応答処理部（４０５３）は、Ｗｅｂジョブアプリ（４０９）に対してこの応答を送信する。さらに、Ｓ２４９で、Ｗｅｂジョブアプリ（４０９）が、この印刷処理の終了を示す応答をどこプリアプリ（５０１）に送信する。
【０１１３】
図１２（Ｅ）に印刷応答の例を示す。印刷応答のＪＳＯＮ形式データには、通信処理の成功ステータスとともに、「“ｊｏｂｉｄｐｒｉｎｔｅｄ  “：１」のように印刷されたジョブＩＤの情報が確認のため含まれる。
【０１１４】
Ｓ２５０で、どこプリアプリ（５０１）は、印刷応答を受けて、印刷済みとなったジョブの情報を削除した形でジョブ一覧情報を更新し、表示する。その後、どこプリアプリ（５０１）は、ユーザーからの終了指示（Ｓ２５１）を受けて、プログラムを終了する。
【０１１５】
本実施形態によれば、スマートフォンで印刷対象のデータを選択した後に、プリンターにスマートフォンをかざすようにタッチするだけで、とくに印刷装置の操作部を操作するといった作業を行わずに、当該プリンターに所望のデータが印刷出力されるようになる。つまり、ユーザーは、プリンターの操作性や表示能力などに依存することなく、一定の操作感でいわゆる「どこでもプリント」による印刷処理が実行できるようになる。
【０１１６】
（その他の実施例１）
本発明を実施するための異なる形態として、所望の出力先となるプリンターの特定する方法を変更することが考えられる。前述のＩＣカードリーダー（２１３）によるＩＣタグ（３１２）の読み取り以外の方法としては、カメラ（２１４）によって各プリンター（３０）に貼りつけられたバーコードを撮影し、認識することによる方法が適用可能である。他にも、例えばＩｒＤＡ（赤外線通信規格）などの近接無線通信技術も適用可能である。
【０１１７】
（その他の実施例２）
本発明を実施するための異なる形態として、印刷システムの装置構成としてサーバーＰＣを追加することが考えられる。前述した実施形態では、ジョブマネージャー（４０５）を各ユーザーのクライアントＰＣ（１０）で動作させたが、これを印刷システム内で設置されるサーバーＰＣにおいて動作させ、同様の処理を適用することによっても本発明の目的を達することが可能である。この場合、どこプリアプリ（５０１）の通信対象は、あらかじめ決められたサーバーＰＣ上のジョブマネージャー（４０５）となるので、セットアップ処理が不要となるというメリットがある。
【０１１８】
（その他の実施例３）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。さらに、本発明には、上述した実施形態の適宜組み合わせることにより構成されたシステムやその機能も含まれるものとする。
【図１】
0005955041.tif 000002
【図２】
0005955041.tif 000003
【図３】
0005955041.tif 000004
【図４】
0005955041.tif 000005
【図５】
0005955041.tif 000006
【図６】
0005955041.tif 000007
【図７】
0005955041.tif 000008
【図８】
0005955041.tif 000009
【図９】
0005955041.tif 000010
【図１０】
0005955041.tif 000011
【図１１】
0005955041.tif 000012
【図１２】
0005955041.tif 000013