(57)【要約】【課題】  印刷ジョブを生成し、サーバー等に一時溜め置きし、プリンターからの印刷要求に応じてジョブを出力する、というプルプリントシステム（どこプリ）がある。クライアントＰＣにしか存在しないフォントを使用すると、サーバー上にそのフォントが存在しないのでサーバー上でフォントをラスタライズするときユーザーが意図しないフォントが選択されてしまう。この問題を回避する方法として、印刷データに常にフォントを埋め込む方法や、文字をグラフィックスとして描画する方法が知られているが、これらは印刷データの肥大化を招き、サーバーのストレージ容量の逼迫や印刷速度性能の劣化が懸念される。【解決手段】  ユーザーがクライアントＰＣ上で印刷実行すると、仮想プリンタードライバーはプリントサーバーで使用可能なフォント情報を取得し、その情報に基づきテキスト描画方法を決定する。【選択図】  図６
2012221198.tif 000002
【特許請求の範囲】
【請求項１】
中間形式の印刷ジョブ生成する仮想プリンタードライバーを備える情報処理装置（１００）とプリントサーバー（１０１）と前記プリントサーバー（１０１）のアドレスを解決する手段を有するアドレス管理サーバー（１０３）と印刷装置（１０２）とで構成されるプリントシステムであって、前記情報処理装置（１００）は、
前記プリントサーバー（１０１）で使用可能なフォント情報を取得する手段と（１−２、ＳＡ６０２）、
前記取得したフォント情報に基づきテキストの描画方法を決定する手段（１−３、ＳＡ６０３〜ＳＡ６０９）と、
を有することを特徴とするプリントシステム。
【請求項２】
テキスト描画に使用するフォントがシステムフォントの場合（ＳＡ６０１）、フォントを埋め込んで（ＳＡ６０５）、テキストで描画する（ＳＡ６０７）、
ことを特徴とする請求項１に記載のプリントシステム。
【請求項３】
テキスト描画に使用するフォントがプリントサーバーにインストール済みのフォントと判断した場合（ＳＡ６０３）、フォントを埋め込まずにテキストで描画する（ＳＡ６０７）、
ことを特徴とする請求項１に記載のプリントシステム。
【請求項４】
テキスト描画に使用するフォントがプリントサーバーに未インストールのフォントと判断した場合（ＳＡ６０３）、さらに前記フォントのサイズが既定のサイズより小さい場合（ＳＡ６０４）、フォントを埋め込んで（ＳＡ６０５）、テキストで描画する（ＳＡ６０７）、
ことを特徴とする請求項１に記載のプリントシステム。
【請求項５】
テキスト描画に使用するフォントがプリントサーバーに未インストールのフォントと判断した場合（ＳＡ６０３）、さらに前記フォントのサイズが既定のサイズ以上の場合（ＳＡ６０４）、テキストをアウトライン（ＳＡ６０８）もしくはビットマップ（ＳＡ６０９）で描画する、
ことを特徴とする請求項１に記載のプリントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プルプリント制御を行うためのデバイス制御装置、デバイスの制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ユーザーがクライアントＰＣ上で印刷装置を特定することなく印刷実行した後、印刷装置からサーバー上に一時蓄積された印刷データに対して印刷要求を行うことで当該印刷装置から印刷データの出力を可能にする所謂「プルプリント」の印刷システムが提案されている（例えば、特許文献１参照）。これにより、ユーザーはアプリケーションからの印刷時に特定の印刷装置への出力ではなく、所望の印刷装置からの印刷データ出力を可能としている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４０３３８５７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ユーザーがクライアントＰＣ上で印刷実行する際に、クライアントＰＣにしか存在しないフォントを使用すると、サーバー上にそのフォントが存在しないのでサーバー上でフォントをラスタライズするときユーザーが意図しないフォントが選択されてしまう。即ち、ユーザーが意図しない印刷物が出力される。従来、よく知られる解決方法としては、印刷データに常にフォントを埋め込む方法や、文字をグラフィックスとして描画する方法が知られている。しかしながら、何れの方法も印刷データの肥大化を招き、サーバーのストレージ容量の逼迫や印刷速度性能の劣化が懸念される。
【課題を解決するための手段】
【０００５】
本発明に係るプリントシステムの構成は、
中間形式の印刷ジョブ生成する仮想プリンタードライバーを備える情報処理装置（１００）とプリントサーバー（１０１）と前記プリントサーバー（１０１）のアドレスを解決する手段を有するアドレス管理サーバー（１０３）と印刷装置（１０２）とで構成されるプリントシステムであって、前記情報処理装置（１００）は、
前記プリントサーバー（１０１）で使用可能なフォント情報を取得する手段と（１−２、ＳＡ６０２）、
前記取得したフォント情報に基づきテキストの描画方法を決定する手段（１−３、ＳＡ６０３〜ＳＡ６０９）と、
を有することを特徴とする。
【発明の効果】
【０００６】
本発明のプリントシステムによれば、ユーザーが印刷装置からサーバー上に一時蓄積された印刷データに対して印刷要求を行う際に、ユーザーが意図した正しい印刷物が出力可能となる。しかも、印刷データのサイズが著しく肥大化することが無いので、サーバーのストレージ容量の逼迫や印刷速度性能劣化が生じにくい。
【図面の簡単な説明】
【０００７】
【図１】本発明の情報処理装置およびプリントサーバーおよびアドレス管理サーバーおよび印刷装置を適用可能なプリントシステムの構成の一例を示すシステム構成図。
【図２】図１に示したクライアントＰＣ、プリントサーバー，アドレス管理サーバー，ログインサービスＰＣ、ディレクトリサービスサーバーに適用可能な情報処理装置のハードウェア構成を示すブロック図。
【図３】図１に示した複合機のコントローラーユニットのハードウェア構成の一例を示すブロック図。
【図４】本実施形態のプリントシステムにおけるプルプリント（どこでもプリント）の全体の流れを説明する模式図。
【図５】図１に示したクライアントＰＣ上で動作するアプリケーションプログラムの印刷画面の一例を示す模式図。
【図６】本発明のプリントシステムにおける制御処理手順の一例を示すフローチャート。
【図７】図６のステップＳＡ６０２とステップＳＣ６０１の間を流れるデータ詳細を示す図。
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【０００９】
図１は、本発明の情報処理装置およびプリントサーバーおよびアドレス管理サーバーおよび印刷装置を適用可能なプリントシステムの構成の一例を示すシステム構成図である。図１の「事業所Ａ」に示すように、本実施形態のプリントシステムは、１又は複数のクライアントＰＣ１００（例えば、ユーザー毎）、１又は複数のプリントサーバー１０１（例えば、階毎に設置）、１又は複数の複合機１０２（例えば、階毎に設置）、アドレス管理サーバー１０３、１又は複数のログインサービスＰＣ１０４（例えば、階毎に設置）、ディレクトリサービスサーバー１０５がローカルエリアネットワーク（ＬＡＮ）１０６を介して接続される構成となっている。
【００１０】
クライアントＰＣ１００には、仮想プリンタードライバーがインストールされており、このプリンタードライバーは、クライアント・アプリケーションから受け取ったデータに基づいて特定の複合機に依存しない中間形式の印刷ジョブを生成し、プリントサーバー１０１へ送信する。なお、中間形式の印刷ジョブとは、フォーマットに関する仕様が公開されていて、かつ再編集が容易な形式の印刷データを意味する。例えば、ＥＭＦＳＰＯＯＬ形式（Ｅｎｈａｎｃｅｄ  Ｍｅｔａｆｉｌｅ  Ｓｐｏｏｌ  Ｆｏｒｍａｔ）、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）などがある。本実施形態においては、ＥＭＦＳＰＯＯＬ形式を使って説明するが、ＸＰＳやＰＤＦなど他の中間形式の印刷データであってもかまわない。
【００１１】
プリントサーバー１０１は、受信した該印刷ジョブを所定の格納場所に保存する。また、プリントサーバー１０１は、ジョブ管理データベース（以後、ジョブ管理ＤＢと呼ぶ）を備え、該印刷ジョブに関するメタデータを、ジョブ管理ＤＢにより記憶管理する。プリントサーバー１０１は、ジョブ管理ＤＢに記録管理しているメタデータから印刷ジョブ一覧データを生成し、複合機１０２へ転送制御する。プリントサーバー１０１は、ジョブ管理ＤＢに記録管理しているメタデータと複合機１０２から受信する印刷設定情報を使って、印刷設定情報の更新を行い、複合機１０２へ更新した印刷設定を転送制御する。さらに、プリントサーバー１０１は、上記所定の格納場所に保存している印刷ジョブ及とジョブ管理ＤＢに記録管理しているメタデータからＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データ生成し、複合機１０２へ転送制御する。
【００１２】
アドレス管理サーバー１０３は、アドレス管理データベース（以後、アドレス管理ＤＢと呼ぶ）を備え、本実施形態の「プルプリント」実行時に、印刷ジョブを管理するプリントサーバー１０１のアドレスとユーザー識別子を、アドレス管理ＤＢにより記憶管理する。さらに、アドレス管理サーバー１０３は、複合機１０２からの印刷ジョブ一覧要求に応じて、複合機１０２から受信したユーザー識別子に対応するプリントサーバー１０１のアドレスを複合機１０２へ送信する。
【００１３】
ログインサービスＰＣ１０４は、複合機１０２のログインサービスとして、ディレクトリサービスサーバー１０５で記憶管理されているクライアントＰＣ１００のログインユーザー名、パスワード（例えば、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）のログインユーザー名、パスワード）に基づく認証処理（ＳＳＯと称する。Ｓｉｎｇｌｅ  Ｓｉｇｎ−ＯＮの略）を行うものであり、例えば、キヤノン社のセキュリティエージェント（Ｓｅｃｕｒｉｔｙ  Ａｇｅｎｔ）を搭載したパーソナルコンピュータである。
【００１４】
ディレクトリサービスサーバー１０５は、ネットワーク上に存在するサーバー、クライアント、プリンター等のハードウェア資源や、それらを使用するユーザーの属性（クライアントＰＣ１００のログインユーザー名、パスワード（例えば、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）のログインユーザー名、パスワード）を含む）、アクセス権等の情報を一元記憶管理するものであり、例えば、アクティブディレクトリ（Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ）機能を搭載したサーバーである。
【００１５】
また、本実施形態のプリントシステムは、上述した構成の「事業所Ａ」と、１又は複数のクライアントＰＣ１００，１又は複数のプリントサーバー１０１，１又は複数の複合機１０２がＬＡＮ１０６を介して接続される構成の１又は複数の「事業所Ｂ」とが、ＷＡＮ１０７を介して接続される構成であってもよい。
【００１６】
図２を用いて、図１に示したクライアントＰＣ１００、プリントサーバー１０１、アドレス管理サーバー１０３、ログインサービスＰＣ１０４、ディレクトリサービスサーバー１０５に適用可能な情報処理装置のハードウェア構成について説明する。図２は、図１に示したクライアントＰＣ１００、プリントサーバー１０１、アドレス管理サーバー１０３、ログインサービスＰＣ１０４、ディレクトリサービスサーバー１０５に適用可能な情報処理装置のハードウェア構成を示すブロック図である。
【００１７】
図２において、２０１はＣＰＵで、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバー或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。２０３はＲＡＭで、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０２あるいは外部メモリ２１１からＲＡＭ２０３にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。また、２０５は入力コントローラで、キーボード２０９や不図示のマウス等のポインティングデバイス等からの入力を制御する。２０６はビデオコントローラで、モニター２１０への表示を制御する。
【００１８】
一般に、モニター２１０は液晶ディスプレイやＣＲＴ等の表示器である。これらは必要に応じて管理者が使用するものである。２０７はメモリコントローラーで、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＳＤメモリーカード等の外部メモリ２１１へのアクセスを制御する。２０８は通信Ｉ／Ｆコントローラで、ネットワーク（例えば、図１に示したＬＡＮ１０６）を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。なお、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、モニター２１０上での表示を可能としている。また、ＣＰＵ２０１は、モニター２１０上の不図示のマウスカーソル等でのユーザー指示を可能とする。本発明を実現するための後述する各種プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ２１１に格納されており、これらについての詳細な説明も後述する。
【００１９】
図３を用いて、図１に示した複合機１０２を制御するコントローラーユニットのハードウェア構成について説明する。図３は、図１に示した複合機１０２のコントローラーユニットのハードウェア構成の一例を示すブロック図である。図３において、３１６はコントローラーユニットで、画像入力デバイスとして機能するスキャナー３１４や、画像出力デバイスとして機能するプリンター３１２と接続する一方、ＬＡＮ（例えば、図１に示したＬＡＮ１０６）や公衆回線（ＷＡＮ）（例えば、ＰＳＴＮまたはＩＳＤＮ等）と接続することで、画像データやデバイス情報の入出力を行う。コントローラーユニット３１６において、３０１はＣＰＵで、システム全体を制御するプロセッサである。３０２はＲＡＭで、ＣＰＵ３０１が動作するためのシステムワークメモリであり、プログラムを記録するためのプログラムメモリや、画像データを一時記録するための画像メモリでもある。
【００２０】
３０３はＲＯＭで、システムのブートプログラムや各種制御プログラムが格納されている。３０４はハードディスクドライブ（ＨＤＤ）で、システムを制御するための各種プログラム，画像データ等を格納する。３０７は操作部インターフェース（操作部Ｉ／Ｆ）で、操作部（ＵＩ）３０８とのインターフェース部であり、操作部３０８に表示する画像データを操作部３０８に対して出力する。また、操作部Ｉ／Ｆ３０７は、操作部３０８から本システム使用者が入力した情報（例えば、ユーザー情報等）をＣＰＵ３０１に伝える役割をする。なお、操作部３０８はタッチパネルを有する表示部を備え、該表示部に表示されたボタンを、ユーザーが押下（指等でタッチ）することにより、各種指示を行うことができる。３０５はネットワークインターフェース（Ｎｅｔｗｏｒｋ  Ｉ／Ｆ）で、ネットワーク（ＬＡＮ）に接続し、データの入出力を行う。３０６はモデム（ＭＯＤＥＭ）で、公衆回線に接続し、ＦＡＸの送受信等のデータの入出力を行う。
【００２１】
３１８は外部インターフェース（外部Ｉ／Ｆ）で、ＵＳＢ、ＩＥＥＥ１３９４，プリンターポート，ＲＳ−２３２Ｃ等の外部入力を受け付けるＩ／Ｆ部であり、本実施形態においては認証で必要となるＩＣカードの読み取り用のカードリーダー３１９が外部Ｉ／Ｆ部３１８に接続されている。そして、ＣＰＵ３０１は、この外部Ｉ／Ｆ３１８を介してカードリーダー３１９によるＩＣカードからの情報読み取りを制御し、該ＩＣカードから読み取られた情報を取得可能である。以上のデバイスがシステムバス３０９上に配置される。３２０はイメージバスインターフェース（ＩＭＡＧＥ  ＢＵＳ  Ｉ／Ｆ）であり、システムバス３０９と画像データを高速で転送する画像バス３１５とを接続し、データ構造を変換するバスブリッジである。画像バス３１５は、ＰＣＩバスまたはＩＥＥＥ１３９４で構成される。画像バス３１５上には以下のデバイスが配置される。
【００２２】
３１０はラスターイメージプロセッサ（ＲＩＰ）で、例えば、ＰＤＬコード等のベクトルデータをビットマップイメージに展開する。３１１はプリンタインターフェース（プリンターＩ／Ｆ）で、プリンター３１２とコントローラーユニット３１６を接続し、画像データの同期系／非同期系の変換を行う。また、３１３はスキャナーインターフェース（スキャナＩ／Ｆ）で、スキャナー３１４とコントローラーユニット３１６を接続し、画像データの同期系／非同期系の変換を行う。３１７は画像処理部で、入力画像データに対し補正、加工、編集を行い、プリント出力画像データに対して、プリンターの補正、解像度変換等を行う。また、これに加えて、画像処理部３１７は、画像データの回転や、多値画像データに対してはＪＰＥＧ、２値画像データはＪＢＩＧ、ＭＭＲ、ＭＨ等の圧縮伸張処理を行う。
【００２３】
スキャナー部３１４は、原稿となる紙上の画像を照明し、ＣＣＤラインセンサーで走査することで、ラスターイメージデータとして電気信号に変換する。原稿用紙は原稿フィーダーのトレイにセットし、装置使用者が操作部３０８から読み取り起動指示することにより、ＣＰＵ３０１がスキャナー３１４に指示を与え、フィーダーは原稿用紙を１枚ずつフィードし原稿画像の読み取り動作を行う。プリンター部３１２は、ラスターイメージデータを用紙上の画像に変換する部分であり、その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、ＣＰＵ３０１からの指示によって開始する。
【００２４】
なお、プリンター部３１２には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセットがある。操作部３０８は、ＬＣＤ表示部を有し、ＬＣＤ上にタッチパネルシートが貼られており、システムの操作画面を表示するとともに、表示してあるキーが押されるとその位置情報を操作部Ｉ／Ｆ３０７を介してＣＰＵ３０１に伝える。また、操作部３０８は、各種操作キーとして、例えば、スタートキー、ストップキー、ＩＤキー、リセットキー等を備える。ここで、操作部３０８のスタートキーは、原稿画像の読み取り動作を開始する時などに用いる。スタートキーの中央部には、緑と赤の２色ＬＥＤがあり、その色によってスタートキーが使える状態にあるかどうかを示す。また、操作部３０８のストップキーは、稼働中の動作を止める働きをする。
【００２５】
また、操作部３０８のＩＤキーは、使用者のユーザーＩＤを入力する時に用いる。リセットキーは、操作部からの設定を初期化する時に用いる。カードリーダー３１９は、ＣＰＵ３０１からの制御により、ＩＣカード（例えば、ソニー社のフェリカ（ＦｅｌｉＣａ）（登録商標））内に記憶されている情報を読み取り、該読み取った情報を外部Ｉ／Ｆ３１８を介してＣＰＵ３０１へ通知する。以上のような構成によって、複合機１０２は、スキャナー３１４から読み込んだ画像データをＬＡＮ１０６上に送信し、ＬＡＮ１０６から受信した印刷データをプリンター３１２により印刷出力することができる。また、スキャナー３１４から読み込んだ画像データをモデム３０６により、公衆回線上にＦＡＸ送信し、公衆回線からＦＡＸ受信した画像データをプリンター３１２により出力することできる。
【００２６】
図４を用いて、本実施形態のプリントシステムにおけるプルプリントの全体の流れについて説明する。その前に、まず、本実施形態のプルプリントを実行するための前提について説明する。本実施形態のプルプリントを実現するための仮想プリンタードライバーをプリントサーバー１０１に共有プリンターとしてインストールしておく。プリンタードライバーは、アプリケーションから指示された印字や描画命令の出力に基づいて印刷データを生成するだけでなく、プリンタードライバーやプリンターが持つ機能を制御するための印刷設定を行う機能（ユーザーインターフェース）と、その印刷設定をインストールされた論理プリンター毎に外部記憶装置に記憶する機能等を有する。
【００２７】
また、この印刷設定は、米国Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）の場合、ＤＥＶＭＯＤＥ構造体に格納される。このＤＥＶＭＯＤＥ構造体とは、プリンターが使用可能な機能，レイアウト設定，仕上げ設定，給・排紙設定，印字品質設定等の論理プリンターに関するデフォルトの動作条件を含む各種設定を記憶するために、米国Ｍｉｃｒｏｓｏｆｔ社が規定したものであり、インストールされた論理プリンター毎に外部記憶装置に記憶される。各クライアントＰＣ１００へは、仮想プリンタードライバーを前記プリントサーバー１０１からポイント＆プリント等でダウンロードしてインストールして、該仮想プリンタードライバーの論理プリンターを追加しておく。
【００２８】
以下、本実施形態のプルプリントの全体の流れについて説明する。図４は、本実施形態のプリントシステムにおけるプルプリント（どこでもプリント）の全体の流れを説明する模式図である。図４に示すように、まず、ユーザーは、クライアントＰＣ１００にログインし、該クライアントＰＣ１００で実行されるクライアント・アプリケーション４００から仮想プリンタードライバー４０１に対応する論理プリンターへの印刷指示を行う（１−１）。この印刷指示に応じて、クライアントＰＣ１００のクライアント・アプリケーション４００は、グラフィックエンジンを介して、仮想プリンタードライバー４０１にデータを送信する。
【００２９】
クライアントＰＣ１００の仮想プリンタードライバー４０１は、該クライアント・アプリケーションからグラフィックエンジンを介して印刷に必要なデータを受け取る（１−１）。さらにフォント情報管理サービス４０９からプリントサーバー１０１に関するフォント情報を受信する（１−２）。そして、受信したフォント情報に基づいてデバイスに依存しないＥＭＦＳＰＯＯＬ形式の印刷ジョブを生成する。なお、フォント情報の詳細とフォント情報に基づいたデバイスに依存しないＥＭＦＳＰＯＯＬ形式の印刷ジョブ生成方法については後述する。そして、クライアントＰＣ１００は、生成したＥＭＦＳＰＯＯＬ形式の印刷ジョブをプリントサーバー１０１に送信する（１−３）。プリントサーバー１０１にて、プリントプロセッサー４０２は、仮想プリンタードライバー４０１から送信されてきたＥＭＦＳＰＯＯＬ形式の印刷ジョブを読み取り、印刷ジョブのメタデータを生成する。
【００３０】
そして、ジョブ管理サービス４０３へメタデータと印刷ジョブを送信する（１−４）。ジョブ管理サービス４０３は、プリントサーバー１０１上の所定の格納場所にＥＭＦＳＰＯＯＬ形式の印刷ジョブを保存し、さらにメタデータをジョブ管理ＤＢ４０４（プリントサーバー１０１の外部記憶装置上に構築される）に登録する（１−５）。このとき、プリントサーバー１０１は、上記所定の格納場所に印刷ジョブを保存するだけで、印刷装置への送信は行わない。さらに、プリントサーバー１０１は、印刷ジョブの識別子とユーザー識別子をアドレス管理サーバー１０３上のアドレス管理サービス４０５へ登録するために送信する（１−６）。
【００３１】
アドレス管理サービス４０５は、ジョブ管理サービス４０３から、印刷ジョブの識別子とユーザー識別子を受信すると、プリントサーバー１０１のアドレスも加えてアドレス管理ＤＢ４０６（アドレス管理サーバー１０３の外部記憶装置上に構築される）に登録する（１−７）。
【００３２】
なお、本実施形態では、機器を判別するためのアドレスとしてＩＰアドレスを使用する。本実施形態では、ジョブ識別子としてＧＵＩＤ（Ｇｌｏｂａｌ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）を使用する。
【００３３】
複合機１０２は、カードリーダー３１９により読み取り可能なＩＣカードを検知すると、該ＩＣカード内の個人認証情報を読み取り、該読み取った個人認証情報を認証要求として不出図の認証サーバーに送信する。個人認証情報は、認証に用いられる情報であり該ＩＣカードの製造番号でも良い。認証サーバーは、複合機１０２より個人認証情報を受信すると、該個人認証情報の認証処理を認証サーバーの外部記憶装置上に記憶されるＩＣカード認証用テーブルに基づいて行い、認証結果を複合機１０２に返信する。なお、認証処理に成功した場合には、認証結果として、クライアントＰＣ１００のユーザー識別子を送信するものとする。なお、この認証サーバーの機能はアドレス管理サーバー１０３にあってもよい。
【００３４】
複合機１０２上のパネル・アプリケーション４０７は、認証に成功した旨の認証結果（クライアントＰＣ１００のログインユーザー識別子）を受信する。本実施形態では、ユーザー識別子としてユーザー名を使用する。もちろん、ユーザーを識別する手段としてＩＣカードの製造番号などでもかまわない。パネル・アプリケーション４０７は、プリントサーバー１０１に印刷ジョブ一覧を要求するが、その前にプリントサーバー１０１のＩＰアドレスを取得する前処理を実施する。アドレス管理サーバー１０３上のアドレス管理サービス４０５にユーザー名を送信する（２−１）。アドレス管理サービス４０５は、受信したユーザー名に対応するプリントサーバー１０１のＩＰアドレスを得る（２−２）。
【００３５】
そして、パネル・アプリケーション４０７へプリントサーバー１０１のアドレスを返信する（２−３）。パネル・アプリケーション４０７は、アドレス管理サービス４０５からプリントサーバー１０１のＩＰアドレスを受信すると、プリントサーバー１０１上のジョブ管理サービス４０３へ対し印刷ジョブ一覧を要求する（２−４）。ジョブ管理サービス４０３は、ジョブ管理ＤＢ４０４を参照して（２−５）、該ユーザー名に対応する印刷ジョブ一覧を生成し、パネル・アプリケーション４０７へ印刷ジョブ一覧を返信する（２−６）。パネル・アプリケーション４０７は、ジョブ管理サービス４０３から印刷ジョブ一覧を受信すると、該印刷データ一覧を操作部３０８のＵＩ上に表示する。
【００３６】
そして、ユーザーにより、印刷ジョブが選択され、印刷設定変更及び印刷指示がなされると、パネル・アプリケーション４０７は、該選択された印刷ジョブの印刷設定をジョブ管理サービス４０３に送信する（３−１）。ジョブ管理サービス４０３は、パネル・アプリケーション４０７から印刷設定を受信すると、ジョブ管理ＤＢ４０４を参照して（３−２）、印刷設定の変更を行う。そして、パネル・アプリケーション４０７へ変更した印刷設定を返信する（３−３）。パネル・アプリケーション４０７は送信した印刷設定と受信した印刷設定を比較し、印刷設定変更が正しく機能したかどうか判定する。正しく機能しなかった場合は、操作部３０８のＵＩ上にその旨のメッセージを表示する。
【００３７】
そして、パネル・アプリケーション４０７は、改めてジョブ管理サービス４０３に対し印刷要求（出力指示）を行う（４−１）。ジョブ管理サービス４０３は、パネル・アプリケーション４０７から印刷指示を受信すると、ジョブ管理ＤＢ４０４を参照して印刷に必要な情報を取得し（４−２）、該印刷指示に基づいて印刷処理を実行し（４−３）、複合機１０２にＰＤＬジョブを送信して複合機１０２で印刷する（４−４）。
【００３８】
最後に、ユーザーにより、印刷ジョブの削除が指示されると、パネル・アプリケーション４０７は、ジョブ管理サービス４０３に対し指定された印刷ジョブの削除を指示する。ジョブ管理サービス４０３は、パネル・アプリケーション４０７から印刷ジョブの削除要求を受信すると、まず、アドレス管理サービス４０５へ登録した印刷ジョブ識別子の削除を指示する（５−２）。アドレス管理サービス４０５は、ジョブ管理サービス４０３から印刷ジョブ識別子の登録解除要求を受信すると、アドレス管理ＤＢ４０６の該当するレコードを削除する（５−３）。次に、ジョブ管理サービス４０３は、ジョブ管理ＤＢの該当するレコードを削除し（５−４）、ＥＭＦＳＰＯＯＬ形式の印刷ジョブファイルも削除する。
【００３９】
以上、プリントシステム全体の流れを説明した。
【００４０】
図１に示したクライアントＰＣ１００上で動作するクライアント・アプリケーション４００上での印刷指示について説明する。図５は、図１に示したクライアントＰＣ１００上で動作するクライアント・アプリケーション４００の印刷画面の一例を示す模式図であり、クライアントＰＣ１００のＣＰＵの制御により表示器に表示される。５１０は論理プリンター選択部で、クライアントＰＣ１００に設定されている論理プリンターから、印刷を行う論理プリンターを選択するためのものである。このプリンター選択部５１０において、「どこでも印刷」５０１は、本実施形態のプルプリント設定された仮想プリンタードライバーに対応する論理プリンターとする。
【００４１】
さらに、「Ｃｘｘｘｘ  ｉｘ３２５０」５０２，「Ｃｘｘｘｘ  ｉｘ５０５１」５０３は、通常のプリンタードライバーに対応する論理プリンターとする。プリンター選択部５１０で、いずれかの論理プリンターを選択され、ＯＫボタン５０５をポインティングデバイス等で指示されると、クライアント・アプリケーションは、印刷のためのデータを、プリンター選択部５１０で選択された論理プリンターに対応するプリンタードライバーにグラフィックエンジンを介して送信する。以下、プリンター選択部５１０で「どこでも印刷」５０１が選択されて印刷指示がなされた場合のプリンタードライバーの動作について説明する。
【００４２】
図６は、本発明のプリントシステムにおける制御処理手順の一例を示すフローチャートであり、図４に示した１−１から１−３までの処理手順の一部に対応する。ステップＳＡ６００〜ステップＳＡ６１０は、図４に示した仮想プリンタードライバー４０１による印刷ジョブ投入処理におけるテキスト描画処理に対応する。これらフローチャートの処理は、図１に示したクライアントＰＣ１００のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。ステップＳＣ６００〜ステップＳＣ６０１は、図４に示したフォント情報管理サービス４０９によるフォント情報送信処理対応する。これらフローチャートの処理は、図１に示したプリントサーバー１０１のＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上にロードして実行することにより実現される。
【００４３】
仮想プリンタードライバー４０１には、図４のクライアント・アプリケーション４００から入力されたデータをＥＭＦＳＰＯＯＬ形式の印刷ジョブとして出力する。これは図４の１−１〜１−３に相当する。米国Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）の場合、プリンタードライバーへの入力はＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）と呼ばれるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）による関数呼び出しによって実施される。仮想プリンタードライバー４０１は、ＤＤＩの呼び出しと同時に渡されるパラメーターを解釈して、ＥＭＦＳＰＯＯＬ形式の印刷ジョブを生成し、ＯＳが管理するスプーラーへ生成したジョブを出力する。一般に、プリンタードライバーの役割は、出力対象のデバイスに依存した印刷ジョブを生成し出力することであるが、本実施形態においては、複合機１０２に依存しない中間形式の印刷ジョブを生成し出力する。
【００４４】
以下、テキストに関するＤＤＩの呼び出しがあった場合、即ち仮想プリンタードライバー４０１によるテキスト描画処理を説明する。ステップＳＡ６００において、仮想プリンタードライバー４０１のテキスト描画処理が開始する。ステップＳＡ６０１において、テキスト描画に使用するフォントがＯＳのシステムフォントかどうかを判断する。システムフォントではない、ということは、アプリケーションが独自に管理するフォントという意味である。システムフォントではないと判断した場合、ステップＳＡ６０５へ進み、フォントをＥＭＦＳＰＯＯＬ形式の印刷ジョブにフォントを埋め込む。そして、ステップＳＡ６０７へ進み、テキスト描画に相当するＥＭＦＳＰＯＯＬ形式のレコードを生成し出力する。ステップＳＡ６０１にて、テキスト描画に使用するフォントがＯＳのシステムフォントシステムフォントであると判断した場合、ステップＳＡ６０２へ進み、フォント情報管理サービス４０９からフォント情報をｈｔｔｐ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を使って受信する。なお、通信プロトコルはｈｔｔｐに限定するものではなく、他のプロセス間通信のプロトコルを使用してもかまわない。フォント情報の一例を図７に示す。
【００４５】
次にステップＳＡ６０３にて、テキスト描画に使用するフォントがプリントサーバー１０１にインストールされているかどうか判断する。即ち、テキスト描画に使用するフォントのファイル名が、図７の７０１に記述されているかどうか判断する。図７の７０１に記述されていたら、プリントサーバー１０１にインストールされているとみなす。プリントサーバー１０１にインストールされていないと判断した場合、ステップＳＡ６０７へ進み、テキスト描画に相当するＥＭＦＳＰＯＯＬ形式のレコードを生成し出力する。この場合、ステップＳＡ６０５を経由していないので、フォントをＥＭＦＳＰＯＯＬ形式の印刷ジョブに埋め込まない。ステップＳＡ６０３にて、テキスト描画に使用するフォントがプリントサーバー１０１にインストールされていないと判断した場合、ステップＳＡ６０４へ進み、フォントのファイルサイズが図７の７０２に記述されている値（バイト数）より小さいかどうか判断する。小さいと判断した場合、ステップＳＡ６０５へ進む。大きいと判断した場合、ステップＳＡ６０６へ進み、フォントからアウトライン抽出可能かどうか判断する。フォントが、書体のアウトライン情報を保持するＯｐｅｎＴｙｐｅやＴｒｕｅＴｙｐｅなどのフォント形式の場合、アウトライン抽出可能である。フォントが、書体のアウトライン情報を保持しないラスターフォント形式の場合、アウトライン抽出不可能である。テキスト描画に使用するフォントがアウトライン抽出可能と判断した場合、ステップＳＡ６０８へ進み、フォントからアウトラインを抽出し、グラフィックス描画に相当するＥＭＦＳＰＯＯＬ形式のレコードを生成し出力する。ステップＳＡ６０６にて、テキスト描画に使用するフォントがアウトライン抽出不可能と判断した場合、ステップＳＡ６０９へ進み、フォントからビットマップを抽出し、ラスターイメージ描画に相当するＥＭＦＳＰＯＯＬ形式のレコードを生成し出力する。
【００４６】
以上でテキスト描画処理を終了する（ステップＳＡ６１０）。以上の仕組みより、フォントを埋め込まずにテキストを描画する（ステップＳＡ６０３とステップＳＡ６０７）処理が実現する。つまり、ＥＭＦＳＰＯＯＬ形式の印刷データが著しく肥大化することはない。
【００４７】
次にフォント情報管理サービス４０９によるフォント情報送信処理を説明する。ステップＳＣ６００にて、フォント情報管理サービス４０９は、Ｗｅｂサーバーとしての機能を開始する。そして、クライアントＰＣ１００上の仮想プリンタードライバー４０１からフォント情報の要求を受け付けると、レスポンスとしてフォント情報を送信する（ステップＳＣ６０１）。以降、この応答を繰り返す。
【００４８】
なお、この実施形態では、仮想プリンタードライバー４０１がプリントサーバー１０１で使用可能なフォント情報を得るためにプリントサーバー１０１とプロセス間通信を行うが、予めフォント情報をファイルとしてクライアントＰＣ１００上に保持することで、プロセス間通信を省略してもかまわない。
【符号の説明】
【００４９】
１０１  プリントサーバー
１０２  複合機
１０３  アドレス管理サーバー
１０４  ログインサービスＰＣ
【図１】
2012221198.tif 000003
【図２】
2012221198.tif 000004
【図３】
2012221198.tif 000005
【図４】
2012221198.tif 000006
【図５】
2012221198.tif 000007
【図６】
2012221198.tif 000008
【図７】
2012221198.tif 000009