(57)【要約】【課題】  ユーザが特定の電子文書を不特定多数のプリンタで印刷する場合、ユーザが用意したICCプロファイルを適切に使用して印刷物が出力されるようにする。【解決手段】  アプリケーションが電子文書を作成する際に、事前にプリンタを探索し、探索結果に適合した複数のプリンタと対となる複数のプロファイル生成し、前記複数のプロファイルを１つの電子文書に埋め込む。【選択図】  図１
2009037404.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが電子文書を作成し、前記電子文書をプリンタに直接入力するダイレクトプリントシステムを備え、
前記アプリケーションが前記電子文書を作成する際に、事前にプリンタを探索し、探索結果に適合した複数のプリンタと対となる複数のプロファイル生成し、前記複数のプロファイルを１つの前記電子文書に埋め込むことを特徴とする電子文書管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法及びそのプログラムと記録媒体に関するものである。
【背景技術】
【０００２】
近年、コンピュータ上のドキュメント（以下、電子文書と呼ぶ）が広く認知されるようになってきた。
【０００３】
このような電子文書の特徴は、作成したドキュメントを異なる環境のコンピュータで元のレイアウトどおりに表示・印刷できることにある。電子文書は印刷物と同じレイアウトになる。
【０００４】
もし、プリンタがプロプラエタリなページ記述言語（Page Description Language、以後PDLと称する）のみをサポートするならば、このような電子文書を印刷するためには、一般にプリンタドライバと呼ばれるソフトウェアを必要とする。プリンタドライバは、電子文書やオペレーティングシステムでサポートされているグラフィック言語をPDLへ変換する。もし、プリンタがPDFのような電子文書フォーマットの入力を受けつけるならば、プリンタドライバのようなソフトウェアを必要としない。（以後、このような印刷形態をダイレクトプリントと称する）
ダイレクトプリントのようなプリンタドライバを介さない印刷の場合、アプリケーションが印刷のための電子文書を作成することになるが、一般にこの電子文書作成時には出力すべきプリンタが確定していないことが多い。また、出力すべきプリンタが確定していたとしても、電子文書の可搬性を考慮すると、電子文書は特定のプリンタに依存しないことが望ましい。
【０００５】
一方で、ユーザがプリンタ依存の色再現特性を記述したICC（International Color Consortium）プロファイルを特定のプリンタ向けに作成し、それを特定の電子文書の印刷に使用することを望むことがある。印刷処理時にICCプロファイルを入手する手段としては、特許文献１のように予めプロファイルＤＢに各種プロファイルを登録しておき、必要に応じてプロファイルを要求するという方法が開示されている。
【特許文献１】特開２００３−６７１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１のように、構成上プロファイルＤＢが必要となると、システムが大掛かりになる上、プロファイルＤＢを参照できない環境下では適切に印刷できないという問題が生じる。特定の電子文書を特定のデバイスで印刷するために作られたICCプロファイルならば、電子文書自体に埋め込んでしまうのが最もシンプルな解決方法である。この方法ならば、印刷処理時に特許文献１のようなプロファイルＤＢを必要としない。ただし、ICCプロファイルを電子文書に埋め込むということは、電子文書作成時に出力すべきプリンタが確定していない場合にICCプロファイルを特定できない問題がある。さらに、本来電子文書が持つ可搬性という特性を喪失してしまう問題もある。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、本発明は、
アプリケーションが電子文書を作成し、その電子文書をプリンタに直接入力するダイレクトプリントシステムを備え、
アプリケーションが電子文書を作成する際に、事前にプリンタを探索し、探索結果に適合した複数のプリンタと対となる複数のプロファイル生成し、前記複数のプロファイルを１つの電子文書に埋め込むことを特徴とする。
【発明の効果】
【０００８】
本発明により、ユーザが特定の電子文書を不特定多数のプリンタで印刷する場合、ユーザが用意したICCプロファイルを適切に使用して印刷物が出力される。
【発明を実施するための最良の形態】
【０００９】
次に、本発明の詳細を実施例の記述に従って説明する。
【実施例１】
【００１０】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。
【００１１】
図１は、本発明の実施の形態に係るプリントサーバシステムの構成例を説明する図である。
【００１２】
ホストコンピュータ１０にて、電子文書が作成される。ホストコンピュータ２０にて、ホストコンピュータ１０で作成された電子文書の印刷が実施される。本実施例では、電子文書を作成するホストコンピュータ１０と電子文書の印刷を実施するホストコンピュータ２０を区別しているが、これらは同一のホストコンピュータであってもかまわない。また、ホストコンピュータ２０以外の図示していないホストコンピュータから印刷を実施してもかまわない。リモート印刷可能なプリンタとして、共有プリンタ３０、ネットワークプリンタ４０が存在する。共有プリンタ３０は、例えばUSBやセントロニクス等のインターフェースでホストコンピュータ１０にローカル接続されていて、ホストコンピュータ１０によってネットワーク共有されている。ネットワークプリンタ４０は、例えばイーサネット（登録商標）等のネットワークを介して接続されていて、ネットワークプリンタ４０自身によってネットワーク共有されている。
【００１３】
図２は、本発明の実施の形態に係るホストコンピュータ１０とホストコンピュータ２０の機能ブロック図である。
【００１４】
ホストコンピュータ１０上アプリケーション１００は、プリンタ探索マネージャ１０１とプロファイルマネージャ１０２とドキュメントマネージャ１０３の３つの機能を持つ。プリンタ探索マネージャ１０１は、共有プリンタ３０やネットワークプリンタ４０や図示されないプリンタを探索する機能を持つ。プロファイルマネージャ１０２は、プリンタ探索マネージャ１０１から得たプリンタ名のリストからICCプロファイル１０４を生成する機能を持つ。ドキュメントマネージャ１０３は、電子文書１０５を生成する機能を持つ。この電子文書生成時にプロファイルマネージャ１０２から得たICCプロファイル１０４を電子文書１０５に埋め込む。
【００１５】
ホストコンピュータ２０上の電子文書２００は、ホストコンピュータ１０上で生成された電子文書１０５である。電子文書２００と電子文書１０５が同一であれば、その転送方法についてはどのような方法であってもかまわない。例えば、ファイル共有やファイル転送に関しては、WebDAV（Web enabled Distributed Authoring and Versioning）、FTP（File Transfer Protocol）、HTTP（Hypertext Transfer Protocol）、CIST（Common Internet File System）、NFS（Network File System）といった様々なプロトコルがある。これらどのプロトコルを使用してファイル転送してもかまわない。アプリケーション２０１は、電子文書２００を印刷可能な任意のアプリケーションである、例えば、電子文書２００のフォーマットがPDFならば、電子文書２００はPDFを印刷する機能を持つことになる。ユーザはこのアプリケーション２０１を使って共有プリンタ３０やネットワークプリンタ４０に対し電子文書２００を印刷する。このとき電子文書２００はOS機能である印刷サービス２０２を経由してもいいし、LPDP（Line Printer Daemon Protocol）等の機能を使って直接プリンタへ送信してもよい。
【００１６】
図３は、ホストコンピュータ１０における電子文書生成の流れを説明する図である。
【００１７】
まず、ユーザはアプリケーション１００を操作し、電子文書作成を指示する。アプリケーション１００は、内部モジュールであるプリンタ探索マネージャ１０１にプリンタの探索を依頼する（３００）。プリンタ探索マネージャ１０１はプリンタを探索し（３０１）、その結果をプリンタ名のリストとしてアプリケーション１００に返す（３０２）。アプリケーション１００は、内部モジュールであるプロファイルマネージャ１０２にICCプロファイルの作成を依頼する（３０３）。このとき、３０２で得たプリンタ名のリストをプロファイルマネージャ１０２に渡す。プロファイルマネージャ１０２は、プリンタ名のリストにある各々のプリンタに対しICCプロファイルを生成し（３０４）、その結果をICCプロファイルのリストとしてアプリケーション１００に返す（３０５）。アプリケーション１００は、内部モジュールであるドキュメントマネージャ１０３に電子文書の作成を依頼する（３０６）。このとき、３０５で得たICCプロファイルのリストをドキュメントマネージャ１０３に渡す。ドキュメントマネージャ１０３は、電子文書を作成する（３０７）。このとき、ICCプロファイルのリストにある各々のICCプロファイルをすべて電子文書に埋め込む。
【００１８】
図４は、本発明の実施の形態に係るホストコンピュータ１０のハードウェア構成を示すブロック図である。
【００１９】
図において、４０１はＣＰＵで、ＲＡＭ４０２にロードされたプログラムに従って本実施の形態に係る処理を実行している。ＲＡＭ４０２は、各種プログラムを記憶するメモリエリア、及びＣＰＵ４０１による制御処理の実行時にワークエリアとして使用され、各種データを一時的に保存するメモリエリアとを有している。ハードディスク（ＨＤ）４０３には、予めＯＳや各種プログラムがインストールされており、ホストコンピュータ１０の立ち上げ時、或はプログラムの起動が指示されると、その指示されたプログラムがＲＡＭ４０２にロードされてＣＰＵ４０１の制御の下に実行される。表示部４０４は、例えばＣＲＴや液晶などの表示部である。入力部４０５は、キーボードやマウスなどのポインティングデバイスを含み、ユーザの操作に応じたデータの入力に使用される。ネットワーク・インターフェース４０６は、イーサネット（登録商標）やインターネットなどのネットワークと接続するためのインターフェースユニットである。システムバス４１０はこれら各部とＣＰＵ４０１とを接続し、データや各種制御信号を伝送している。
【００２０】
尚、ホストコンピュータ２０のハードウェア構成も、基本的にこのホストコンピュータ１０のハードウェア構成と同じであるため、その説明を省略する。
【００２１】
図５は、本実施の形態に係るホストコンピュータ１０のアプリケーション１００の内部モジュールであるプリンタ探索マネージャ１０１における処理の流れを示すフローチャートである。図３の３０１における処理に相当する。この処理を実行するプログラムはＨＤ４０３にインストールされており、ＲＡＭ４０２にロードされて実行される。具体的には、ホストコンピュータ１０上のユーザがアプリケーション１００を操作して電子文書作成を指示することによって実行される。
【００２２】
まずステップ５０１で、プリンタ探索マネージャ１０１、予め設定済みであるプリンタ探索の上限値を得る。例えば、このプリンタ探索の上限値が５である場合、以降の処理で５つ以上のプリンタが探索されたとしても、５つ探索された時点で探索処理を打ち切り、呼び出し元であるアプリケーション１００に対し、探索された５つのプリンタ名のリストを返すことになる。通常、このプリンタ探索の上限値は固定値であって、変更されることはほとんどないが、ユーザが任意のタイミングでこの値を変更してもかまわない。
【００２３】
ステップ５０１からステップ５０４までネットワーク共有されているローカルプリンタ（以下、共有プリンタと称する）を一つ一つ探索するループ処理が繰り返される。ステップ５０１で、最初の共有プリンタ名を取り出す。もし、処理が５０４から続いている場合は、次の共有プリンタ名を取り出す。ステップ５０２で、次の共有プリンタが存在するかどうかを判断する。次の共有プリンタが存在するならば、ステップ５０３へ進む。次の共有プリンタが存在しないなら、ループ処理を抜けてステップ５０５へ進む。ステップ５０３で、現時点の探索されたプリンタ数を保持しているメモリの値を更新し、プリンタ探索の上限値と比較し、その上限値に達したどうかを判断する。上限値に達した場合、ループ処理を抜けて終了する。上限値に達していない場合、ステップ５０４へ進みプリンタ名のリストに探索されたプリンタ名を追加する。そして、ステップ５０１へ戻る。
【００２４】
ステップ５０５からステップ５０８までネットワークプリンタを一つ一つ探索するループ処理が繰り返される。ステップ５０５で、最初のネットワークプリンタ名を取り出す。もし、処理が５０８から続いている場合は、次のネットワークプリンタ名を取り出す。ステップ５０６で、次のネットワークプリンタが存在するかどうかを判断する。次の共有プリンタが存在するならば、ステップ５０７へ進む。次のネットワークプリンタが存在しないなら、ループ処理を抜けて処理を終了する。ステップ５０７で、現時点の探索されたプリンタ数を保持しているメモリの値を更新し、プリンタ探索の上限値と比較し、その上限値に達したどうかを判断する。上限値に達した場合、ループ処理を抜けて終了する。上限値に達していない場合、ステップ５０８へ進みプリンタ名のリストに探索されたプリンタ名を追加する。そして、ステップ５０６へ戻る。
【００２５】
以上で処理を終了し、アプリケーション１００にプリンタ名のリストを返す。なお、本実施形態においては、先に共有プリンタを探索し、次にネットワークプリンタを探索することによって、共有プリンタの方が探索の優先度が高くなっている。このような探索の優先度は固定ではなく、ユーザが希望する任意の優先度に変更可能である。例えば、先にネットワークプリンタを探索し、その次に共有プリンタを探索するという方法であってもかまわない。また、共有プリンタを探索せず、ネットワークプリンタのみ探索する方法であってもかまわない。また、ネットワークプリンタを探索せず、共有プリンタのみ探索する方法であってもかまわない。さらに、ネットワークプリンタを探索する上でネットワーク上のアドレスの規則性から探索の優先度を細かく指定することも可能である。例えば、ネットワークプリンタのIPアドレスがホストコンピュータ１０のIPアドレスと同一サブネットである場合、探索の優先度を高くするといった方法がある。
【００２６】
図６は、本実施の形態に係るホストコンピュータ１０のアプリケーション１００の内部モジュールであるプロファイルマネージャ１０２における処理の流れを示すフローチャートである。図３の３０４における処理に相当する。この処理を実行するプログラムはＨＤ４０３にインストールされており、ＲＡＭ４０２にロードされて実行される。具体的には、ホストコンピュータ１０上のユーザがアプリケーション１００を操作して電子文書作成を指示することによって実行される。
【００２７】
まずステップ６００で、プロファイルマネージャ１０２は、図５で探索されたプリンタ名のリストを得る。ステップ６０１からステップ６０３まで、プリンタ名ネットワークプリンタを一つ一つ探索するループ処理が繰り返される。ステップ６０１で、最初のプリンタ名を取り出す。もし、処理が６０３から続いている場合は、次のプリンタ名を取り出す。ステップ６０２で、次のプリンタ名が存在するかどうかを判断する。プリンタ名のリストが末端まで到達していなくて次のプリンタ名が存在するならば、ステップ６０３へ進む。次のプリンタ名が存在しないなら、ループ処理を抜けてステップ６０４へ進む。ステップ６０３で、ICCプロファイルを生成し、ステップ６０１で戻る。ステップ６０４では、ステップ６０３で生成したICCプロファイルのリストを呼び元であるアプリケーション１００に返す。
【００２８】
図７は、本実施の形態に係るホストコンピュータ１０のアプリケーション１００の内部モジュールであるドキュメントマネージャ１０３における処理の流れを示すフローチャートである。図３の３０７における処理に相当する。この処理を実行するプログラムはＨＤ４０３にインストールされており、ＲＡＭ４０２にロードされて実行される。具体的には、ホストコンピュータ１０上のユーザがアプリケーション１００を操作して電子文書作成を指示することによって実行される。
【００２９】
まずステップ７００で、ドキュメントマネージャ１０３は、図６で生成されたICCプロファイル１０４を得る。ステップ７０１で、電子文書１０５を生成し、ステップ７０２で電子文書１０５にICCプロファイル１０４を埋め込む。
【００３０】
以上の処理を経て、図２のホストコンピュータ２０の説明で述べたように、ホストコンピュータ２０上でユーザが電子文書２００を任意の方法でプリンタ３０やプリンタ４０で印刷する。このとき電子文書には共有プリンタ３０向けICCプロファイルとネットワークプリンタ４０向けICCプロファイルが埋め込まれている。共有プリンタ３０は電子文書２００内に埋め込まれている共有プリンタ３０向けICCプロファイルを活用し、ネットワークプリンタ４０は電子文書２００内に埋め込まれているネットワークプリンタ４０向けICCプロファイルを活用し、各々ユーザが望んだ通りのカラーマッチング処理を実施する。
【図面の簡単な説明】
【００３１】
【図１】本実施形態におけるホストコンピュータとプリンタの構築を示す図である。
【図２】本実施形態におけるホストコンピュータの機能構成を説明する機能ブロック図である。
【図３】本実施の形態に係るホストコンピュータにおける処理の流れを説明する図である。
【図４】本実施の形態に係るホストコンピュータのハードウェア構成を示すブロック図である。
【図５】本実施の形態に係るホストコンピュータにおけるプリンタ探索マネージャの処理の流れを示すフローチャートである。
【図６】本実施の形態に係るホストコンピュータにおけるプロファイルマネージャの処理の流れを示すフローチャートである。
【図７】本実施の形態に係るホストコンピュータにおけるドキュメントマネージャの流れを示すフローチャートである。
【図１】
2009037404.tif 000003
【図２】
2009037404.tif 000004
【図３】
2009037404.tif 000005
【図４】
2009037404.tif 000006
【図５】
2009037404.tif 000007
【図６】
2009037404.tif 000008
【図７】
2009037404.tif 000009