(57)【要約】【課題】  複数の印刷ジョブが予約されている場合であっても、利用者が指定した時刻及び印刷体裁等の印刷内容で確実に印刷を実行させることができる印刷システム及びその制御方法を提供する。【解決手段】  複数の印刷予約が設定可能なプリンタ１５００に対してホストコンピュータ３０００から印刷予約を行う。そこで、印刷させる印刷データを外部メモリ１１１に保持しておき、プリンタ１５００に対して当該印刷データの印刷予約を行うが、プリンタ１５００は、印刷予約で指定された時刻に印刷実行が可能であるか否かを判断し、ホストコンピュータ３０００はその判断結果に基づいて印刷データの印刷予約を確定する。【選択図】  図７
2006178767.tif 000002
【特許請求の範囲】
【請求項１】
複数の印刷予約が設定可能な印刷制御装置と、該印刷制御装置に対してネットワークを介して接続され、印刷予約を実行する印刷指示装置とを備える印刷システムであって、
前記印刷制御装置が、
前記ネットワークを介して前記印刷指示装置から印刷予約に関する情報を受信する受信手段と、
前記印刷予約で指定された時刻での印刷が可能であるか否かを判断する判断手段と、
前記判断手段による前記印刷予約の可否に関する判定結果を前記印刷指示装置に通知する通知手段とを備え、
前記印刷指示装置が、
アプリケーションから前記印刷予約に関する情報を取得する取得手段と、
前記印刷予約に関する情報を前記印刷制御装置に送信する送信手段と、
前記通知手段によって通知された前記判定結果に基づいて印刷予約を確定する確定手段とを備える
ことを特徴とする印刷システム。
【請求項２】
前記印刷制御装置が、前記判断手段により印刷不可能と判断された場合に、前記印刷予約に基づいて印刷可能候補を算出する算出手段をさらに備え、
前記通知手段は、前記算出手段により算出された前記印刷可能候補を前記印刷指示装置に通知する
ことを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記印刷可能候補が、前記印刷制御装置での印刷可能時刻、又は印刷可能体裁を示す印刷可能属性の少なくとも一方を含むことを特徴とする請求項２に記載の印刷システム。
【請求項４】
前記印刷制御装置が、前記通知手段により通知された前記印刷可能候補から印刷予約を選択する選択手段をさらに備え、
前記確定手段が、前記選択手段により選択された印刷予約を確定する
ことを特徴とする請求項２又は３に記載の印刷システム。
【請求項５】
前記印刷指示装置が、前記印刷予約が行われた印刷データを保持する保持手段をさらに備え、
前記印刷制御装置が、前記確定手段により確定した前記印刷予約の印刷実行時に、前記印刷手段が備える前記保持手段から前記印刷データを取得して印刷を実行する印刷手段をさらに備える
ことを特徴とする請求項１から４までのいずれか１項に記載の印刷システム。
【請求項６】
前記受信手段により受信された前記印刷予約の印刷時刻が前記印刷制御装置にすでに予約されている他の印刷予約の印刷時刻とが重複する場合に、それぞれの印刷予約に関する印刷データのサイズを比較し、サイズが小さな印刷データをサイズが大きな印刷データよりも早く印刷されるように印刷予約時刻を変更する変更手段をさらに備えることを特徴とする請求項１から５までのいずれか１項に記載の印刷システム。
【請求項７】
複数の印刷予約が設定可能な印刷制御装置と、該印刷制御装置に対してネットワークを介して接続され、印刷予約を実行する印刷指示装置とを備える印刷システムであって、
前記印刷制御装置が、
前記ネットワークを介して前記印刷指示装置から印刷予約に関する情報を受信する受信手段と、
前記印刷予約で指定された時刻での印刷が可能であるか否かを判断する判断手段と、
前記判断手段により印刷可能と判断された場合は前記印刷予約で指定された時刻に印刷を実行し、前記判断手段により印刷不可能と判断された場合は、前記印刷予約に基づいて印刷可能候補を算出し、該印刷可能候補に従って印刷を実行する印刷手段とを備え、
前記印刷指示装置が、
アプリケーションから前記印刷予約に関する情報を取得する取得手段と、
前記印刷予約に関する情報を前記印刷制御装置に送信する送信手段とを備える
ことを特徴とする印刷システム。
【請求項８】
複数の印刷予約が設定可能な印刷手段と、
前記印刷手段に印刷させる印刷データを保持する保持手段と、
前記印刷手段に対して前記印刷データの印刷予約を行う予約手段と、
前記印刷予約で指定された時刻に前記印刷手段による前記印刷データの印刷実行が可能であるか否かを判断する判断手段と、
前記判断手段による判断結果に基づいて前記印刷データの印刷予約を確定する確定手段と、
前記確定手段で確定した印刷予約の内容で前記保持手段に保持された前記印刷データを前記印刷手段で印刷させる制御手段と
を備えることを特徴とする印刷システム。
【請求項９】
前記確定手段による確定した前記印刷予約で指定された時刻に、前記印刷データの印刷実行が可能であるか否かを再判定する再判定手段と、
前記再判定手段により前記印刷データの印刷実行が不可能であると判定された場合、前記印刷データの印刷属性を変更する変更手段とをさらに備え、
前記制御手段が、前記変更手段により印刷属性が変更した前記印刷データを前記印刷手段で印刷させる
ことを特徴とする請求項７に記載の印刷システム。
【請求項１０】
複数の印刷予約が設定可能な印刷制御装置と、該印刷制御装置に対してネットワークを介して接続され、印刷予約を実行する印刷指示装置とを備える印刷システムの制御方法であって、
前記印刷制御装置に、
前記ネットワークを介して前記印刷指示装置から印刷予約に関する情報を受信する受信工程と、
前記印刷予約で指定された時刻での印刷が可能であるか否かを判断する判断工程と、
前記判断工程による前記印刷予約の可否に関する判定結果を前記印刷指示装置に通知する通知工程と実行させ、
前記印刷指示装置に、
アプリケーションから前記印刷予約に関する情報を取得する取得工程と、
前記印刷予約に関する情報を前記印刷制御装置に送信する送信工程と、
前記通知工程によって通知された前記判定結果に基づいて印刷予約を確定する確定工程とを実行させる
ことを特徴とする制御方法。
【請求項１１】
複数の印刷予約が設定可能な印刷制御装置と、該印刷制御装置に対してネットワークを介して接続され、印刷予約を実行する印刷指示装置とを備える印刷システムの制御方法であって、
前記印刷制御装置に、
前記ネットワークを介して前記印刷指示装置から印刷予約に関する情報を受信する受信工程と、
前記印刷予約で指定された時刻での印刷が可能であるか否かを判断する判断工程と、
前記判断工程により印刷可能と判断された場合は前記印刷予約で指定された時刻に印刷を実行し、前記判断工程により印刷不可能と判断された場合は、前記印刷予約に基づいて印刷可能候補を算出し、該印刷可能候補に従って印刷を実行する印刷工程とを実行させ、
前記印刷指示装置に、
アプリケーションから前記印刷予約に関する情報を取得する取得工程と、
前記印刷予約に関する情報を前記印刷制御装置に送信する送信工程とを実行させる
ことを特徴とする制御方法。
【請求項１２】
複数の印刷予約が設定可能な印刷手段を備える印刷システムを制御する制御方法であって、
前記印刷手段に印刷させる印刷データを保持手段に保持する保持工程と、
前記印刷手段に対して前記印刷データの印刷予約を行う予約工程と、
前記印刷予約で指定された時刻に前記印刷手段による前記印刷データの印刷実行が可能であるか否かを判断する判断工程と、
前記判断工程による判断結果に基づいて前記印刷データの印刷予約を確定する確定工程と、
前記確定工程で確定した印刷予約の内容で前記保持手段に保持された前記印刷データを前記印刷手段で印刷させる制御工程と
を有することを特徴とする制御方法。
【請求項１３】
複数の印刷予約が設定可能な印刷手段に印刷させる印刷データを保持手段に保持する保持手順と、
前記印刷手段に対して前記印刷データの印刷予約を行う予約手順と、
前記印刷予約で指定された時刻に前記印刷手段による前記印刷データの印刷実行が可能であるか否かを判断する判断手順と、
前記判断手順による判断結果に基づいて前記印刷データの印刷予約を確定する確定手順と、
前記確定手順で確定した印刷予約の内容で前記保持手段に保持された前記印刷データを前記印刷手段で印刷させる制御手順と
をコンピュータに実行させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムを格納したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷指示装置から予約した時刻にネットワークを介して接続された印刷装置から印刷を実行する印刷予約システム及びその制御方法に関する。
【背景技術】
【０００２】
近年、印刷装置を共有するために、印刷装置と複数のクライアント装置とがネットワークを介して相互に接続した構成がとられるようになってきた。このような構成においては複数のクライアント装置が同一の印刷装置を共有して使用するために、当該複数のクライアント装置から同時期に印刷ジョブが投入された場合は、投入された順に印刷が実行されることとなる。そのため、印刷ジョブの待ちが発生してしまうという課題があった。
【０００３】
しかし、印刷ジョブの種類によっては、必ずしも印刷装置に対して印刷ジョブを要求した時点ですぐに印刷出力する必要がなく、一定時間が経過した後に印刷物を入手できればいいというような場合や、他の印刷ジョブへの影響を考えて印刷装置の使用頻度が少ない夜間等に大量のデータを印刷出力させたいという場合も少なくない。
【０００４】
そこで、クライアント装置から印刷ジョブの要求を行う際に、印刷時刻を指定することができる技術が開示されている（特許文献１参照）。特許文献１に記載の技術によれば、クライアント装置から印刷時刻が指定された印刷ジョブの要求（予約）を印刷装置が受けると、指定された時刻まではそのまま印刷データを保存しておき、指定時刻になったときに印刷出力を実行することが可能である、これにより、緊急性の低い、或いはデータ量の多い印刷ジョブを、印刷装置の使用頻度が低い時間帯等に印刷させることにより、他の印刷ジョブへの影響を抑制することができる。
【０００５】
また、クライアント装置から印刷時刻が指定して要求された印刷ジョブの予約をプリンタ側（プリンタ本体、或いは印刷データ処理用サーバマシン等）で受け付け、指定された印刷時刻が到来すると、プリンタ側はクライアント装置に対して印刷データの要求を行うことにより印刷を実行する技術が開示されている（特許文献２参照）。特許文献２に記載の技術によれば、印刷時刻が到来したときに、クライアント装置から印刷データを要求して印刷を実行するため、プリンタ側で備える印刷データ保存用の記憶デバイスの記憶容量を低減することができる。
【特許文献１】特開平６−３４０１５１号公報
【特許文献２】特開２００３−２３３４８１公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１及び特許文献２に記載の技術は、印刷ジョブ予約を受け付けた時に、クライアント装置から予約を受け付けた印刷ジョブが予約時刻において実際に印刷可能か否かを判断せずに当該予約を受け付けるため、予約印刷ジョブの内容や既に予約されている印刷ジョブの存在によっては、予約時刻に印刷が完了しない場合があるという問題が残る。
【０００７】
また、印刷予約受付時のみで実際に印刷可能か否かを判断した場合、印刷予約時から印刷実行時までの間に生じるプリンタデバイス環境（例えば、用紙残数、設定用紙サイズ、トナー残量、ステイプル残数等）の変化や印刷予約後にされるその他の印刷ジョブの予約内容によって、予約時刻において印刷が完了しないという可能性もある。
【０００８】
本発明は、このような事情を考慮してなされたものであり、複数の印刷ジョブが予約されている場合であっても、利用者が指定した時刻及び印刷体裁等の印刷内容で確実に印刷を実行させることができる印刷システム及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は、複数の印刷予約が設定可能な印刷制御装置と、該印刷制御装置に対してネットワークを介して接続され、印刷予約を実行する印刷指示装置とを備える印刷システムであって、
前記印刷制御装置が、
前記ネットワークを介して前記印刷指示装置から印刷予約に関する情報を受信する受信手段と、
前記印刷予約で指定された時刻での印刷が可能であるか否かを判断する判断手段と、
前記判断手段による前記印刷予約の可否に関する判定結果を前記印刷指示装置に通知する通知手段とを備え、
前記印刷指示装置が、
アプリケーションから前記印刷予約に関する情報を取得する取得手段と、
前記印刷予約に関する情報を前記印刷制御装置に送信する送信手段と、
前記通知手段によって通知された前記判定結果に基づいて印刷予約を確定する確定手段とを備える
ことを特徴とする。
【００１０】
また、上記課題を解決するために、本発明は、複数の印刷予約が設定可能な印刷制御装置と、該印刷制御装置に対してネットワークを介して接続され、印刷予約を実行する印刷指示装置とを備える印刷システムであって、
前記印刷制御装置が、
前記ネットワークを介して前記印刷指示装置から印刷予約に関する情報を受信する受信手段と、
前記印刷予約で指定された時刻での印刷が可能であるか否かを判断する判断手段と、
前記判断手段により印刷可能と判断された場合は前記印刷予約で指定された時刻に印刷を実行し、前記判断手段により印刷不可能と判断された場合は、前記印刷予約に基づいて印刷可能候補を算出し、該印刷可能候補に従って印刷を実行する印刷手段とを備え、
前記印刷指示装置が、
アプリケーションから前記印刷予約に関する情報を取得する取得手段と、
前記印刷予約に関する情報を前記印刷制御装置に送信する送信手段とを備える
ことを特徴とする。
【００１１】
さらに、上記課題を解決するために、本発明に係る印刷システムは、
複数の印刷予約が設定可能な印刷手段と、
前記印刷手段に印刷させる印刷データを保持する保持手段と、
前記印刷手段に対して前記印刷データの印刷予約を行う予約手段と、
前記印刷予約で指定された時刻に前記印刷手段による前記印刷データの印刷実行が可能であるか否かを判断する判断手段と、
前記判断手段による判断結果に基づいて前記印刷データの印刷予約を確定する確定手段と、
前記確定手段で確定した印刷予約の内容で前記保持手段に保持された前記印刷データを前記印刷手段で印刷させる制御手段と
を備えることを特徴とする。
【００１２】
さらにまた、上記課題を解決するために、本発明は、複数の印刷予約が設定可能な印刷制御装置と、該印刷制御装置に対してネットワークを介して接続され、印刷予約を実行する印刷指示装置とを備える印刷システムの制御方法であって、
前記印刷制御装置に、
前記ネットワークを介して前記印刷指示装置から印刷予約に関する情報を受信する受信工程と、
前記印刷予約で指定された時刻での印刷が可能であるか否かを判断する判断工程と、
前記判断工程による前記印刷予約の可否に関する判定結果を前記印刷指示装置に通知する通知工程と実行させ、
前記印刷指示装置に、
アプリケーションから前記印刷予約に関する情報を取得する取得工程と、
前記印刷予約に関する情報を前記印刷制御装置に送信する送信工程と、
前記通知工程によって通知された前記判定結果に基づいて印刷予約を確定する確定工程とを実行させる
ことを特徴とする。
【００１３】
さらにまた、上記課題を解決するために、本発明は、複数の印刷予約が設定可能な印刷制御装置と、該印刷制御装置に対してネットワークを介して接続され、印刷予約を実行する印刷指示装置とを備える印刷システムの制御方法であって、
前記印刷制御装置に、
前記ネットワークを介して前記印刷指示装置から印刷予約に関する情報を受信する受信工程と、
前記印刷予約で指定された時刻での印刷が可能であるか否かを判断する判断工程と、
前記判断工程により印刷可能と判断された場合は前記印刷予約で指定された時刻に印刷を実行し、前記判断工程により印刷不可能と判断された場合は、前記印刷予約に基づいて印刷可能候補を算出し、該印刷可能候補に従って印刷を実行する印刷工程とを実行させ、
前記印刷指示装置に、
アプリケーションから前記印刷予約に関する情報を取得する取得工程と、
前記印刷予約に関する情報を前記印刷制御装置に送信する送信工程とを実行させる
ことを特徴とする。
【００１４】
さらにまた、上記課題を解決するために、本発明は、複数の印刷予約が設定可能な印刷手段を備える印刷システムを制御する制御方法であって、
前記印刷手段に印刷させる印刷データを保持手段に保持する保持工程と、
前記印刷手段に対して前記印刷データの印刷予約を行う予約工程と、
前記印刷予約で指定された時刻に前記印刷手段による前記印刷データの印刷実行が可能であるか否かを判断する判断工程と、
前記判断工程による判断結果に基づいて前記印刷データの印刷予約を確定する確定工程と、
前記確定工程で確定した印刷予約の内容で前記保持手段に保持された前記印刷データを前記印刷手段で印刷させる制御工程と
を有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、複数の印刷ジョブが予約されている場合であっても、利用者が指定した時刻及び印刷体裁等の印刷内容で確実に印刷を実行させることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、本発明の一実施形態に係る印刷システムの構成及びその印刷予約手順等について詳細に説明する。
【００１７】
図１は、本発明の一実施形態に係る印刷システムの構成を示すブロック図である。尚、本発明に係る印刷予約等の諸機能が実行されるものであれば、単体の機器であっても、複数の機器からなるシステムであっても、或いはＬＡＮ、ＷＡＮ等のネットワークを介して接続され処理が行われるシステムであっても良い。すなわち、以下の実施形態で説明する各種端末が接続されたシステム構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００１８】
図１において、３０００はホストコンピュータであり、ＲＯＭ１０３、或いはハードディスク（ＨＤ）や着脱可能な可搬記憶媒体（例えば、フレキシブルディスク（ＦＤ））等の外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。本実施形態で使用するＯＳは、例えば、ウィンドウズ(登録商標)ＸＰ（マイクロソフト社製）を想定するが、これに限るものではない。
【００１９】
また、図１に示すホストコンピュータ３０００において、ＲＡＭ１０２は、ＣＰＵ１０１の主メモリやワークエリア等として機能する。尚、ＣＰＵ１０１は、処理の実行に際して必要なプログラム等をＲＡＭ１０２にロードして、プログラムを実行することで各種動作を実現する。
【００２０】
また、入力コントローラ（入力Ｃ）１０５は、キーボード（ＫＢ）１０９や不図示のマウス等のポインティングデバイスからの入力を制御する。さらに、ビデオコントローラ（ＶＣ）１０６は、ＣＲＴディスプレイ（ＣＲＴ）１１０等の表示器への表示を制御する。尚、表示器はＣＲＴだけでなく、液晶ディスプレイであっても構わない。これらは必要に応じて管理者が使用するものであって、本実施形態には直接関係があるものではない。
【００２１】
さらにまた、メモリコントローラ（ＭＣ）１０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ１１１へのアクセスを制御する。
【００２２】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）１０８は、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信やプリンタ１５００との間でデータ送受信等が可能である。尚、ＣＰＵ１０１は、例えばＲＡＭ１０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ１１０上での表示を可能としている。また、ＣＰＵ１０１は、ＣＲＴ１１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２３】
次に、ホストコンピュータとネットワーク１２１を介して接続されたプリンタ１５００において、ＣＰＵ１１２は、ＲＯＭ１１３のプログラム用ＲＯＭ１１３ｂに記憶された制御プログラム等や外部メモリ１１４に記憶された制御プログラム等に基づいて、システムバス１１５に対して印刷部インタフェース（Ｉ／Ｆ）１１６を介して接続される印刷部（プリンタエンジン）１１７に出力情報としての画像信号を出力する。また、ＲＯＭ１１３のプログラム用ＲＯＭ１１３ｂには、ＣＰＵ１１２の制御プログラム等が記憶される。また、ＲＯＭ１１３のフォント用ＲＯＭ１１３ａには、上記出力情報を生成する際に使用するフォントデータ等を記憶する。さらに、ＲＯＭ１１３のデータ用ＲＯＭ１１３ｃには、ハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）等の外部メモリ１１４がないプリンタの場合に、ホストコンピュータ３０００上で利用される情報等も記憶される。
【００２４】
また、プリンタ１５００において、ＣＰＵ１１２は、入力部１１８を介してホストコンピュータ３０００との通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。さらに、ＲＡＭ１１９は、ＣＰＵ１１２の主メモリであって、ワークエリア等として機能する。ここで、ＲＡＭ１１９は、図示しない増設ポートに接続されるオプションＲＡＭにより、メモリ容量を拡張することができるように構成されている。尚、ＲＡＭ１１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等にも用いられる。
【００２５】
前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１１４は、メモリコントローラ（ＭＣ）１２０によりアクセスが制御される。尚、外部メモリ１１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、操作部１２２は、操作パネルを有しており、操作のためのスイッチやＬＥＤ表示器等が配置されている。
【００２６】
また、前述した外部メモリは１つに限られることはなく、少なくとも１つ以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないＮＶＲＡＭを有し、操作パネルを備える操作部１２２からのプリンタモード設定情報を記憶するようにしてもよい。
【００２７】
また、本実施形態では、プリンタ１５００がサポートするページ記述言語（以下、「ＰＤＬ」と略す。）が、例えば、ＬＢＰ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍ（キヤノン社製、以下「ＬＩＰＳ」と称す。）といった比較的に高度なＰＤＬであると想定しているが、これに限られるものではない。
【００２８】
本実施形態では、印刷機器制御プログラム（以下、「プリンタドライバ」という。）は外部メモリ１１１に記録されており、必要に応じてＲＡＭ１０２にロードされることによりＣＰＵ１０１によって実行される。さらに、本実施形態では、プリンタドライバが用いる定義ファイル及び各種情報テーブルは、外部メモリ１１１に格納されており、これらについての詳細な説明は後述する。
【００２９】
図２は、図１に示す印刷システムにおけるホストコンピュータ３０００からプリンタ１５００に印刷ジョブデータを送信する際の主な流れを示す機能ブロック図である。図２に示すように、ホストコンピュータ３０００におけるアプリケーションプログラム（以下、「アプリケーション」）２０１、グラフィックエンジン２０２、プリンタドライバ２０３及びプリントサブシステム２０４は、それぞれ図１に示した外部メモリ１１１に保存されたファイルとして存在し、実行される際に、ＯＳやそのモジュールを利用するモジュールによってＲＡＭ１０２にロードされ実行されるプログラムモジュールである。
【００３０】
尚、アプリケーション２０１及びプリンタドライバ２０３は、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、或いは後述するネットワークを経由して、ハードディスク（ＨＤ）といった外部メモリ１１１に追加可能になっている。
【００３１】
外部メモリ１１１に保存されているアプリケーション２０１は、ＣＰＵ１０１によってＲＡＭ１０２にロードされて実行される。このアプリケーション２０１からプリンタ１５００に対して印刷を行わせる際には、同様にＣＰＵ１０１によってＲＡＭ１０２にロードされて実行されるグラフィックエンジン２０２を利用して出力（描画）することとなる。
【００３２】
グラフィックエンジン２０２は、印刷装置（プリンタ）毎に用意されたプリンタドライバ２０３を起動する。これにより、プリンタドライバ２０３は、ＣＰＵ１０１によって外部メモリ１１１からＲＡＭ１０２にロードさせて実行される。グラフィックエンジン２０２は、このプリンタドライバ２０３を用いて、アプリケーション２０１の出力をＰＤＬによるプリンタ制御命令に変換する。
【００３３】
プリンタドライバ２０３により変換されたプリンタ制御コマンドは、プリントサブシステム２０４を経て通信インタフェース１０８経由でプリンタ１５００に出力される仕組みとなっている。
【００３４】
尚、このプリントサブシステム２０４は、ＯＳによって起動されて、ＣＰＵ１０１によって外部メモリ１１１からＲＡＭ１０２にロードされて実行されるものであり、印刷ジョブのスケジューリング、プリンタとのホストコンピュータと接続制御やプリンタのステータスの管理を行っている。
【００３５】
また、プリンタドライバ２０３は、前述したような、アプリケーション２０１から指示された印字や描画命令の出力に対してプリンタ制御コマンドを生成し、プリント出力に反映されるようプリンタに指示するだけでなく、プリンタドライバ２０３やプリンタ１５００本体が持つ機能を制御するための設定を行う機能（以下、「ユーザインタフェース」という。）と、その設定を記憶する機能、プリンタドライバ２０３やプリンタ１５００本体が持つ能力をアプリケーションやＯＳに情報提供する機能、上記ユーザインタフェースで設定された機能がプリンタの有する機能である場合にプリンタ制御命令を生成する機能、ユーザインタフェースで設定された機能がプリンタドライバ独自で行う機能の場合にその機能を実現する機能等を有する。
【００３６】
図３は、図１に示す印刷システムにおけるホストコンピュータ３０００及びプリンタ１５００を適用可能な別の印刷システムの一例を示すシステム構成図である。図３において、３０１はネットワークであり、複数のクライアントコンピュータ３０００、プリンタ１５００、及びプリントサーバコンピュータ４０００が接続されている。ここで、図１に示すホストコンピュータ３０００は、図３に示すクライアントコンピュータ３０００を指すが、プリンタ１５００がセントロニクスやＵＳＢ等のローカルインタフェース３０２を介してプリントサーバコンピュータ４０００と接続される場合は、図１に示すホストコンピュータ３０００にプリントサーバコンピュータ４０００が含まれる。
【００３７】
図３に示す印刷システムの場合、クライアントコンピュータ３０００の通信Ｉ／Ｆコントローラ１０８は、ネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。また、プリンタ１５００は、セントロニクスやＵＳＢ等のローカルインタフェース３０２を介してプリントサーバコンピュータ４０００と接続され、当該プリントサーバ４０００を介してネットワーク３０００に接続される形態であっても、ネットワーク３０１に直接接続される形態であってもよい。尚、ネットワーク３０１に直接接続されているプリンタ１５００の入力部１１８は、ネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。
【００３８】
ここで、プリントサーバコンピュータ４０００を介してネットワーク３０１に接続されるプリンタ１５００に各クライアントコンピュータ３０００から印刷ジョブを送信する場合、まず各クライアントコンピュータ３０００は、プリントサブシステム２０４を介して、プリントサーバコンピュータ４０００へ印刷ジョブを送信する。そして、プリントサーバコンピュータ４０００は、各クライアントコンピュータ３０００から送信されてきた印刷ジョブを、不図示のプリントサーバコンピュータ４０００上のプリントサブシステムを介して、プリンタ１５００へ送信する。これにより、各クライアントコンピュータ３０００は、プリントサーバコンピュータ４０００を介して印刷ジョブをプリンタ１５００へ送信することができる。
【００３９】
また、ネットワーク３０１に直接接続されるプリンタ１５００に各クライアントコンピュータ３０００から印刷ジョブを送信する場合、各クライアントコンピュータ３０００は、プリントサブシステム２０４を介して、ネットワーク３０１に直接接続されるプリンタ１５００へ印刷ジョブを送信する。
【００４０】
次に、図４のタイミングチャートを用いて、本発明を適用するために好適なプリンタドライバの基本的な処理の流れについて説明する。
【００４１】
図４は、本発明の一実施形態に係る印刷指示装置（ホストコンピュータ３０００又はプリントサーバコンピュータ４０００）が印刷制御装置（プリンタ１５００又はプリントサーバコンピュータ４０００）に印刷を行わせる場合の基本的な処理の流れを示すタイミングチャートである。すなわち、図２に示すホストコンピュータのアプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３の処理に対応する。尚、図４においては、図２と同一の機器には同一の符号を付している。
【００４２】
図２に示したように、アプリケーション２０１は、プリンタドライバ２０３と直接やり取りを行うのではなく、ＯＳの持つグラフィックエンジン２０２を介して行うため、アプリケーション２０１自体は、実際にはグラフィックエンジン２０２とやり取りを行う。グラフィックエンジン２０２は、アプリケーション２０１から指示を受け、プリンタドライバ２０３に対して指示を行う。
【００４３】
まず、アプリケーション２０１は、片面／両面設定や部数設定等の印刷のための設定（印刷設定）をＲＡＭ１０２に確保されたメモリを介してグラフィックエンジン２０２に通知する。そして、プリンタドライバ２０３は、グラフィックエンジン２０２より、その印刷設定とその印刷設定を元にプリンタドライバ２０３が印刷処理を行う上で必要な情報を格納する新たにＲＡＭ１０２上に確保されたメモリ領域の初期化要求を受信する（ステップＳ４０１）。これにより、プリンタドライバ２０３は、そのプリンタドライバ２０３が印刷処理を行うために必要な情報（プリンタドライバ情報）を保持するメモリ領域を確保し、印刷設定に従ってそのメモリ領域を初期化する。
【００４４】
次に、プリンタドライバ２０３は、プリンタドライバ２０３が参照する情報メモリの初期化処理要求の受信により必要な処理を完了すると、ステップＳ４０１で受信した印刷設定に応じたプリンタドライバ２０３の印刷能力をグラフィックエンジン２０２に通知する。そして、アプリケーション２０１は、グラフィックエンジン２０２より、最終的にプリンタ１５００に送信される印刷ジョブとその印刷ジョブに反映する印刷設定とを関連付けるために必要なハンドル値を取得する（ステップＳ４０２）。
【００４５】
次に、アプリケーション２０１が印刷の開始要求をグラフィックエンジン２０２に行うと、プリンタドライバ２０３は、グラフィックエンジン２０２より印刷開始要求を受信する（ステップＳ４０３）。これにより、プリンタドライバ２０３は、ＰＤＬの生成処理を開始し、プリンタ１５００が印刷開始に必要なプリンタ命令を生成することができる。但し、プリンタ１５００が印刷開始に必要なプリンタ命令を生成する処理は、最初のページ（１ページ目）の印刷処理が開始された時点（アプリケーションからの最初のページの描画指示を受信した時点）でもあっても良い。
【００４６】
次に、アプリケーション２０１は、文字やイメージ等の描画オブジェクトの描画を実現するための描画指示をグラフィックエンジン２０２に対して行う。そして、プリンタドライバ２０３は、その描画指示をグラフィックエンジン２０２より受信する（ステップＳ４０４）。これにより、プリンタドライバ２０３は、指定された描画オブジェクトや改ページ、さらに不図示の印刷設定を途中で変更するための要求等を反映したプリンタ制御命令を適宜生成し、プリンタ１５００へ出力する。尚、印刷するページ数は、アプリケーション２０１からの指定によるものとする。
【００４７】
次に、アプリケーション２０１が印刷の終了要求をグラフィックエンジン２０２に行うと、プリンタドライバ２０３は、グラフィックエンジン２０２より印刷終了要求を受信する（ステップＳ４０５）。これにより、プリンタドライバ２０３は、プリンタ１５００が印刷終了に必要なプリンタ命令を生成し、ＰＤＬの生成処理を終了する。
【００４８】
次に、アプリケーション２０１は、ステップＳ４０２で取得したハンドル値の破棄要求をグラフィックエンジン２０２に通知する。そして、プリンタドライバ２０３は、グラフィックエンジン２０２より、プリンタドライバ２０３が印刷処理を行う上で必要な情報を格納するメモリ領域にある情報（プリンタドライバ情報）の破棄要求を受信する（ステップＳ４０６）。これにより、プリンタドライバ２０３は、上記プリンタドライバ情報の破棄処理を行う。
【００４９】
以上説明したステップＳ４０３〜ステップＳ４０５の処理により、プリンタ１５００へ送信するための１つのジョブが生成されることになる。
【００５０】
本実施形態に係る印刷システムは、図１及び図２で示すプリンタとホストコンピュータに加えて、さらにアプリケーション２０１からの印刷データを一旦中間コードデータでスプールする構成を有する。このシステムにおいては、一旦スプールした中間コードデータの内容に対してさらに加工することができる。これにより、アプリケーション２０１からの印刷データに対して、拡大縮小や複数ページを１ページに縮小して印刷する等、アプリケーションが持たない機能を実現することができる。
【００５１】
図５は、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、一旦中間コードからなるスプールファイル５０４を生成するように拡張された印刷システムの構成図である。図５で示す印刷システムにおいては、スプールファイル５０４の内容に対してさらに加工することができる。これにより、アプリケーションからの印刷データに対して、拡大縮小や複数ページを１ページに縮小して印刷する等、アプリケーションが本来持たない機能を実現することができる。
【００５２】
そこで、これらの目的を達成するために、図５に示すように、図２に示す印刷システムに対して中間コードデータでスプールするようにシステムの拡張がなされている。尚、印刷データの加工を行うためには、通常、プリンタドライバ２０３が提供するウインドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ１０２上或いは外部メモリ１１１上に保管する。
【００５３】
以下、図５に示す印刷システムの詳細について説明する。図５に示すように、この拡張された印刷システムでは、グラフィックエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ５０１が受け取る。ディスパッチャ５０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づくものである場合には、ディスパッチャ５０１は外部メモリ１１１に格納されている内部スプール処理モジュールであるスプーラ５０３をＲＡＭ１０２にロードし、通常の印字データ作成処理５０７ではなくスプーラ５０３へ印刷命令（ＤＤＩ関数）を送付する。
【００５４】
スプーラ５０３は、受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル５０４に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル（ＰＤＦ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｉｌｅ）と呼ぶ。また、スプーラ５０３は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定（製本印刷、Ｎｕｐ、両面、ステイプル、カラー／モノクロ指定等）をプリンタドライバ２０３から取得してジョブ単位のファイルとしてスプールファイル５０４に保存する。
【００５５】
この時、ジョブ単位に格納されている設定ファイルをジョブ設定ファイル（簡略して、ＳＤＦ（Ｓｐｏｏｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｉｌｅと呼ぶこともある。）と呼ぶ。このジョブ設定ファイルについては後述する。尚、スプールファイル５０４は、外部メモリ１１１上にファイルとして生成するが、ＲＡＭ１０２上に生成するようにしても構わない。さらに、スプーラ５０３は、外部メモリ１１１に格納されているスプールファイルマネージャ５０５をＲＡＭ１０２にロードし、スプールファイルマネージャ５０５に対してスプールファイル５０４の生成状況を通知する。その後、スプールファイルマネージャ５０５は、スプールファイル５０４に保存された印刷データに関する加工設定の内容に従って印刷を行えるか否かを判断する。
【００５６】
その結果、スプールファイルマネージャ５０５がグラフィックエンジン２０２を利用して印刷を行えると判断した際には、外部メモリ１１１に格納されているデスプーラ５０６をＲＡＭ１０２にロードし、デスプーラ５０６に対して、スプールファイル５０４に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【００５７】
デスプーラ５０６は、スプールファイル５０４に含まれる中間コードのページ描画ファイルをスプールファイル５０４に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、ＧＤＩ関数を再生成し、もう一度グラフィックエンジン２０２経由でＧＤＩ関数を出力する。
【００５８】
ディスパッチャ５０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）がデスプーラ５０６からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、ディスパッチャ５０１はスプーラ１１０３ではなく、プリンタドライバの通常の印字データ作成処理５０７に印刷命令を送る。プリンタドライバ２０３は、グラフィックエンジン２０２から取得したＤＤＩ関数に基づいてＰＤＬ等からなるプリンタ制御コマンドを生成し、プリントサブシステム２０４経由でプリンタ１５００に出力する。
【００５９】
以上、図１〜図５を用いて本実施形態を実施するために好適な動作環境、或いはプリンタドライバ２０３の全体的な処理内容について説明したが、次に、本発明の一実施形態に係る印刷システムの動作について詳述する。
【００６０】
図６は、本発明の一実施形態に係る印刷システム全体の動作を説明するためのフローチャートである。すなわち、図６では、プリンタ本体の動作、若しくはサーバ装置（プリントサーバコンピュータ４０００）等（以下、サーバと略す）とクライアント装置（ホストコンピュータ３０００）との関係を示している。
【００６１】
まず、アプリケーションから印刷が開始された際に、クライアント装置はＯＳからの印刷予約情報を含む印刷要求を受け付ける（ステップＳ６０１）。ここで、印刷データは、図５に示す印刷システムのスプーラ５０３より、スプールファイルとして一時的に保存される。また、図５において内部スプール処理を使用しない場合であっても、プリンタを一時停止させて印刷データ５０７をスプールファイルとして保持しておくことも可能である。この印刷開始時、もしくは印刷開始前に予め、クライアント装置にて印刷予約情報を設定させる。
【００６２】
図１３は、印刷予約情報を選択するユーザインタフェースの一例を示す図である。例えば、ユーザはクライアント装置のモニタ上に表示された図１３に示すユーザインタフェースを用いて、印刷予約の日付、時間等を設定することができる。具体的には、印刷予約日付は表示されたカレンダーの該当する日付けをマウス等でクリックすることで指定が可能である。
【００６３】
次に、一時的に保持したスプールファイルのサイズとネットワーク回線上の転送速度より、プリンタへの転送時間を算出する（ステップＳ６０２）。すなわち、ネットワークの転送速度を取得するための任意のデータをクライアント装置からプリンタ側へ送信してからクライアント装置へ戻ってくるまでの時間と任意のデータサイズから転送速度を割り出す。そして、一時的に保持したスプールファイルのサイズと転送速度から、出力データとプリンタへの転送時間を算出する。
【００６４】
例えば、２５６バイトのデータをデバイスに送信してからデバイスから同じく２５６バイトのデータが返され、その送受信に要する時間が１秒だった場合、その転送速度は５１２バイト／秒となる。また、スプールファイルサイズが１０２４Ｋバイトだった場合、プリンタへの転送速度は２０００秒となる。
【００６５】
そして、印刷実行タイミングの決定を行う（ステップＳ６０３）。図７は、クライアント側より送信された情報等に基づいてサーバが印刷予約指定時刻等の決定を行う処理を説明するためのフローチャートである。
【００６６】
まず、クライアント装置よりサーバへ、クライアント名称、ジョブ名称、印刷予約開始時刻、ジョブ等の印刷予約情報を送信する（ステップＳ７０１）。図１１は、ステップＳ７０１においてクライアント装置からサーバへ送信する印刷予約情報の一例を示す図である。尚、クライアント装置からサーバへ送信する印刷予約データには、図１１に示すクライアント名称、ジョブ名称、印刷予約開始時刻、ジョブ等の印刷予約情報の他に、送信元であるクライアント装置のアドレスと送信先であるサーバ装置のアドレスが含まれる。また、クライアント装置が送信する情報は、予めクライアント側で設定させていたり、アプリケーションで印刷開始時にユーザが入力したものや、印刷ジョブのスプール時にドライバ側で印刷ジョブ情報を収集したもの等、いろいろな収集方法・情報形態がありうる。例えば、図１３に示すユーザインタフェースのようにクライアント装置上で設定画面を表示し、予約情報をユーザに設定させ、その情報をサーバへ送信する。
【００６７】
次いで、サーバは、クライアント装置から印刷予約情報を受け付ける（ステップＳ７０２）。そして、クライアント装置から送られた図１１に示す印刷予約情報とその時点におけるデバイス構成の情報を取得する（ステップＳ７０３）。図１０は、デバイスから取得可能なデバイス構成情報の一例を示す図である。図１０に示すように、デバイスから取得する情報としては、用紙残量、用紙サイズ、用紙タイプ、トナー残量等のさまざまな情報が考えられる。
【００６８】
さらに、サーバで管理している印刷予約リストの情報を取得する（ステップＳ７０４）。図９は、本発明の一実施形態に係る印刷システムにおけるサーバで管理する印刷予約リストの一例を示す図である。図９に示すように、印刷予約リストには、予約番号、クライアント名称、（印刷）ジョブ名称、ジョブサイズ、印刷開始時刻、データの転送所要時間、出力所要時間、印刷終了予定時刻、用紙枚数、用紙サイズ等が含まれる。さらに、印刷予約リストには、ユーザが予約時に設定した設定情報である、丸め制御許可や途中までの印字許可の有無、印字許可フォント最小サイズ等が含まれる。
【００６９】
そして、指定時刻に印刷対象のデータの印字が可能であるか否かを確認する（ステップＳ７０５）。具体的には、サーバで管理している印刷予約リスト内に、クライアント装置が指定してきた予約開始時刻において他に印刷開始予約しているジョブがないか等を確認する。その結果、他のジョブと印刷予約開始時刻が重複していなければ印字可能であると判断して（Ｙｅｓ）、クライアント装置が指定してきた時刻で印刷予約を設定する（ステップＳ７０８）。
【００７０】
一方、印刷開始時刻が重複していた場合は印字不可と判断して（Ｎｏ）、クライアント装置が指定してきた時刻に重複しない時刻であって、それにより近い時刻に予約時刻をずらす処理をする。具体的には、まず、当該印刷ジョブと指定時刻が重複している予約リストジョブとジョブサイズを比較する（ステップＳ７２３）。そして、ジョブサイズが小さい方の予約ジョブを指定された時刻よりも早く印刷するように修正し、ジョブサイズが大きい方の予約ジョブをその後に続いて印刷するようにそれぞれ印刷開示時刻を指定し（ステップＳ７２４）、それぞれ指定された時刻で印刷予約を設定する（ステップＳ７０８）。
【００７１】
また、これ以外にも、印刷開始時刻が重複した場合には、ジョブサイズが大きい方の印刷開始時刻を遅らせるように設定してもよい。さらに、他の印刷ジョブの出力が開始する前に予約ジョブの出力が終了する時刻に設定したり、他の印刷ジョブの出力が終了すると予想される時刻に予約設定を行ったり等、印刷開始時刻の設定方法にはいろいろなものが考えられる。また、ここでは印刷開始時刻を中心に設定を行っているが、印刷開始時刻でなく、印刷予約から何時間後或いは何日後といった指定方法も可能である。
【００７２】
次いで、現状のプリンタ構成でクライアント装置から要求されている印刷予約ジョブの出力可否を判定する（ステップＳ７０９）。すなわち、ここでは、クライアント装置から送信された予約印刷ジョブの属性とデバイス状況を照らし合わせて、出力が可能か否かの判定を行う。例えば、印刷ジョブで実際に出力される用紙サイズとデバイスに設定されている用紙サイズを照らし合わせる。その結果、クライアント装置が意図した用紙サイズがデバイスに設定されていなかった場合、予約印刷を行っても意図した用紙サイズで出力されず、予約印刷の意味をなさない。また、用紙タイプや用紙残量、ステイプル、トナー等も同様である。
【００７３】
そして、出力が可能と判断された場合（Ｙｅｓ）は、サーバから当該サーバで設定された印刷予約結果情報をクライアント装置へ送信する（ステップＳ７２１）。さらに、クライアント装置は、サーバより印刷予約結果情報を受け付け（ステップＳ７１０）、その後、印刷開始時刻を設定（確定）することとなる（ステップＳ７２２）。
【００７４】
ステップＳ７０９で、現状の設定でクライアント装置のジョブが出力可能でないと判定された場合（Ｎｏ）は、ジョブ属性を変更して出力することが可能か否かを判定するために、丸め処理が許可されているか否かに関して判定を行う（ステップＳ７１１）。図９に示すように、本実施形態では、サーバが印刷予約リストとして管理する情報の一つとして、クライアント装置の予約印刷ジョブの属性の丸め処理を許可するか否かという設定値がある。許可するか否かは、サーバ若しくはクライアント装置で設定された規定値を保持していたり、印刷予約時にユーザがクライアント装置上で図１３に示すようなユーザインタフェースを用いて設定したりする等、さまざまな方法が考えられる。また、この丸め処理を許可していない場合であってジョブ属性を変更した場合に出力可能となる印刷ジョブについても、一律丸め処理を実行できないといった設定を行うことも可能である。
【００７５】
その結果、丸め処理が許可されていた場合（Ｙｅｓ）は、印刷予約ジョブの属性とデバイス状況を照らし合わせ、使用可能な属性を算出する（ステップＳ７１２）。ここで、具体的に、用紙枚数と用紙サイズを例に挙げて説明する。図９に示す印刷予約リストにおいて、印字開始時刻が２００４年１２月１日１１：００、印字終了予定時刻が同日１１：５０であり、用紙サイズ：レターが１００枚の印刷ジョブを予約したいとする。また、その時点においてデバイスに設定されている用紙サイズ：レターは１００枚、Ａ５サイズが５００枚設定されているとする。
【００７６】
このとき、印字開始時刻と終了時刻を鑑みて、それ以前に用紙サイズ：レターで印字予約されている印刷ジョブはＮｏ．３の印刷ジョブとなる。デバイスには１００枚設定されており、Ｎｏ．３の印刷ジョブで消費される用紙が６０枚ということは、予約ジョブの印字が開始される際に残存しているレターの用紙枚数は４０枚となる。そこで、丸め処理可否判定に関して検討すると、ジョブで指定している用紙サイズがデバイスに設定されていなかった場合に、現時点でデバイスに設定されている用紙サイズに変更すれば出力可能であるため、この場合は丸め処理が可能と判断される。そこで、前記例の場合、予約ジョブは用紙サイズ：レターで１００枚印字する必要があるため、当該用紙が６０枚不足することとなる。これに対して、用紙サイズをＡ５に変更すれば１００枚の印字が可能となる。従って、この場合はステップＳ７１４で丸め処理が可能と判断する。
【００７７】
また、用紙残量が少なくて出力が不可能な場合は、ジョブ属性を両面印刷、２ＵＰ／４ＵＰ／６ＵＰ印刷で用紙枚数を抑えることで出力が可能となる。例えば、前記例を用いた場合、クライアント装置で予約したい印刷ジョブの用紙枚数が合計で１００枚であるが、その時点で使用可能な用紙枚数が４０枚しかなかった場合、４ＵＰ印刷を行うことで１００枚の用紙を消費することなく２５枚の消費で済む。すなわち、ジョブ属性を等倍印刷から４ＵＰへ変更することで出力できるということで、この場合もステップＳ７１４で丸め処理が可能と判断する。
【００７８】
その他にもステップＳ７１４におけるジョブ属性の丸め処理として、さまざまな回避策が考え得る。ここで、印刷ジョブ属性を変更することで出力可能か否かを判断し（ステップＳ７１４）、属性を変更することで出力が可能になる場合（Ｙｅｓ）は、サーバからクライアント装置へ印刷予約時刻と丸め処理候補をクライアント装置へ通知する（ステップＳ７１５）。
【００７９】
一方、ステップＳ７１４において丸め処理が不可能と判断した場合（Ｎｏ）、若しくはステップＳ７１１において丸め許可がないと判断した場合（Ｎｏ）は、サーバからクライアント装置へ印刷予約時刻を含む印刷予約結果情報、出力不可能通知を通知する（ステップＳ７１８）。また、ステップＳ７０９において出力可能と判断した場合（Ｙｅｓ）は、サーバからクライアント装置へ印刷予約結果情報を通知する（ステップＳ７２１）。
【００８０】
クライアント装置は、ステップＳ７１５、Ｓ７１８及びＳ７２１でサーバから通知された印刷予約結果情報を受け付ける（ステップＳ７１０）。その後、所定の処理を行って、印刷開始時刻を設定（確定）することとなる（ステップＳ７２２）。
【００８１】
すなわち、サーバから印刷予約結果情報をクライアント装置が取得した後（ステップＳ７１０）、クライアント装置は現状の予約設定で出力可能であったとサーバが印刷予約を受け付けたか否かを判断する（ステップＳ７１３）。その結果、印刷予約が受け付けられたと判断された場合（Ｙｅｓ）、クライアント装置は当該印刷開始時刻で印刷予約を設定（確定）する（ステップＳ７２２）。一方、印刷予約が受け付けられなかった場合（Ｎｏ）は、サーバから出力不可能通知を受け取ったか否かを判定する（ステップＳ７１７）。
【００８２】
その結果、出力不可能通知を受け取っていない場合（Ｎｏ）、クライアント装置は丸め処理候補を表示させ（ステップＳ７１６）、そこで丸め処理候補を選択したか否かを判定する（ステップＳ７１９）。その結果、丸め処理候補を選択した場合（Ｙｅｓ）は元の印刷開始時刻で印刷予約を設定（確定）する（ステップＳ７２２）。一方、ステップＳ７１９において丸め処理候補を選択しなかった場合（Ｎｏ）は、ジョブ属性を再設定するか否かを選択させる（ステップＳ７２０）。
【００８３】
ここで、ステップＳ７２０において、ジョブ属性を再設定するか否かを判断するのは、もともとサーバ、もしくはクライアント装置に予め設定されていた既定値を参照する、或いは図１２に示すような、ディスプレイ等にユーザへ設定を促すユーザインタフェースを表示させてユーザに選択させる等、さまざまな判断方法がある。すなわち、図１２は、丸め処理における優先順位を選択するためのユーザインタフェースの一例を示す図である。
【００８４】
ステップＳ７２０でジョブ属性を再設定しない場合（Ｎｏ）は、そのまま印刷開始時刻を設定（確定）する（ステップＳ７２２）。一方、ステップＳ７２０において、ジョブ属性を再設定すると判断した場合（Ｙｅｓ）は、印刷ジョブ属性を再設定し（ステップＳ７０７）、ステップＳ７０１に戻って上述した処理を再度行う。ジョブ属性を再設定する場合、古いジョブ属性の印刷予約情報を印刷予約リストから削除してジョブ属性を再設定した印刷予約情報を再度印刷予約リストに設定する指示をステップＳ７０１で送信する印刷予約情報に盛り込むよう、ステップＳ７０７にて指示する。以上が、図６に示すフローチャートのステップＳ６０３の印刷タイミングの決定処理である。
【００８５】
ステップＳ６０３の処理後、出力データをスプールファイル５０４に保存させる（ステップＳ６０４）。尚、図５に示す印刷システムにおいて、内部スプール処理を使用しなくても印刷データ５０７を中間コードデータではなく「＊．ｐｒｎ」等のファイルに保存しておくことも可能であり、印刷データ保存の内容及び手法等はさまざまである。
【００８６】
そして、設定された印刷開始時刻になった時に、クライアント側からプリンタサーバに再度予約情報を送信する（ステップＳ６０５）。尚、印刷予約リストに基づいてサーバがクライアント側に再度予約情報を送信させることも可能であり、クライアント装置・サーバのどちらでの処理も可能である。
【００８７】
そして、サーバは、クライアント装置へ出力データの要求処理を行う（ステップＳ６０６）。図８は、図６のフローチャートにおける、クライアント装置より印刷予約された情報等に基づいて予約されたジョブの出力可否判定、丸め処理、クライアント装置へ出力データの送信要求処理等（ステップＳ６０６）を詳細に説明するためのフローチャートである。
【００８８】
まず、サーバは、デバイス状況と現在予約されているクライアント装置のジョブ属性を印刷予約リストから取得する。尚、デバイスから取得する情報は、図１０に示すように、用紙残量、用紙サイズ、用紙タイプ、トナー残量、ステイプル針残量等、さまざまな情報が考えられる。そして、現状のプリンタ構成でクライアント装置から要求されている印刷予約ジョブの出力可否を判定する（ステップＳ８０１）。具体的には、予約印刷ジョブの属性とデバイス状況を照らし合わせ、出力が可能か否かの判定を行う。
【００８９】
その結果、予約印刷データの出力が可能と判断された場合（Ｙｅｓ）は、サーバからクライアント装置へ出力データの送信を要求し（ステップＳ８１４）、クライアント装置は出力データをプリンタ（プリンタサーバ）へ送信する（ステップＳ８１５）。尚、本実施形態においてはサーバからクライアント装置へ出力データの送信を要求し、クライアント装置が出力データをプリンタ（プリンタサーバ）へ送信することとしているが、必ずしもこれに限られるわけではなく、例えば、印刷予約時にクライアント装置が前もってプリンタ（プリンタサーバ）へ送信した出力データを利用するようにしてもよい。
【００９０】
一方、ステップＳ８０１において出力不可と判定された場合（Ｎｏ）は、ジョブ属性の丸め許可が設定されているか否かを判断する（ステップＳ８０２）。尚、丸め許可の設定は、一律サーバ若しくはクライアント装置において予め規定値を設定する、若しくは印刷予約時にユーザがＰＣ上のディスプレイに表示された図１３に示すようなユーザインタフェースから設定する等、様々な方法がある。
【００９１】
その結果、ジョブ属性の丸め処理が許可されていた場合（Ｙｅｓ）は、ステップＳ８０１において出力不可能と判定された出力データに関して丸め処理を行えば出力が可能であるか否か、かつ、そのデータがユーザの許容範囲の出力体裁であるか否かを判断する（ステップＳ８０３）。
【００９２】
ステップＳ８０３における丸め処理可否判定に関して具体例について説明する。ジョブで指定している用紙サイズがデバイスに設定されていなかった場合、現時点でデバイスに設定されている用紙サイズに変更すれば出力可能であるため、この場合は丸め処理が可能と判断される。例えば、ジョブで設定されている用紙サイズがＢ４であった場合、デバイスに設定されている用紙サイズがＡ４／Ａ５／Ａ３であった場合、Ｂ４からデバイスに設定されているＡ４／Ａ５／Ａ３のいずれかの用紙サイズに変更すれば出力可能である。従って、この場合は、丸め処理が可能と判断する。
【００９３】
また、用紙残量が少なくて出力不可能な場合は、ジョブ属性を両面印刷、２ＵＰ／４ＵＰ／６ＵＰ印刷で用紙枚数を抑えることで出力可能となる。例えば、予約ジョブでは用紙枚数が１００枚設定されているが、デバイスに５０枚しか残存されていない場合、印刷ジョブの属性を２ＵＰにした場合は用紙枚数：５０枚で済むため、出力が可能となる。その場合、丸め処理が可能と判断する。また、その他さまざまな回避策が考えられる。
【００９４】
その後、丸め処理後の出力体裁が許容範囲内であるかどうかに関しては、その判定方法の１つに出力フォントサイズを確認する手段がある。用紙枚数が足りないため、用紙枚数をおさえることで出力可能だとしても、印字された文字が読めない程に縮小されていた場合、出力されても意味をなさない。よって、丸め処理を行った後の出力体裁が実際に許容範囲内であるか否かをここで判定を行う。
【００９５】
フォントサイズを例にとると、まず、図９に示す予約印刷データに実際に出力されるフォントサイズ及び印字を許可するフォントの最小サイズを格納しておく。ジョブ属性を４ＵＰ印刷へ変更することで出力が可能となる場合、１ＵＰを４ＵＰにすることで出力データの縮小率を計算することができる。その縮小率を用いて丸め処理前のフォントサイズから丸め処理（ここでは、４ＵＰ印刷へ変更）を行った後のフォントサイズを算出する。丸め処理後の出力フォントサイズが許容範囲内であった場合、丸め処理を行って出力可能と判断する。
【００９６】
ステップＳ８０３で出力可能と判断された場合（Ｙｅｓ）は、次いで丸め処理候補が複数存在するか否かを判定する（ステップＳ８０５）。その結果、複数存在した場合（Ｙｅｓ）は、ステップＳ７１９で設定された丸め処理の優先順位に従って、丸め処理を選択する（ステップＳ８０７）。尚、ステップＳ７１９において表示・選択された丸め処理とは別のものが存在した場合、それは予めクライアント装置にてユーザインタフェース等で設定された優先順位付けを示す値に従う。そして、サーバからクライアント装置へ出力データの属性変更の要求を通知する（ステップＳ８１０）。
【００９７】
その後、サーバから出力データの属性変更を受け取ったクライアント装置は、出力データの属性の変更処理を行い（ステップＳ８１１）、出力データをプリンタサーバへ送信する（ステップＳ８１５）。尚、印刷予約時にクライアント装置が前もってプリンタ（プリンタサーバ）へ出力データを送信している場合は、当該出力データは破棄することとなる。
【００９８】
一方、ステップＳ８０２において丸め許可がないと判定された場合（Ｎｏ）、又はステップＳ８０３において丸め処理不可或いは丸め処理後の出力体裁が許容範囲外であると判断された場合、すなわち丸め処理を行っても無理と判断された場合（Ｎｏ）は、予約時の設定のまま途中まで出力する許可が設定されているか否かを判定する（ステップＳ８０４）。
【００９９】
ここで、途中までの印字許可に関しては、サーバ又はクライアント装置において予め規定値を設定する、若しくは印刷予約時にユーザがＰＣ上のディスプレイに表示された図１３に示すようなユーザインタフェースから設定する等、様々な方法がある。そして、印刷予約時にクライアント装置がサーバへ情報を通知した際の設定項目の１つとして、図９に示すようなサーバの印刷予約リストの項目として保持される。
【０１００】
途中まで出力可能という場合は、例えば、デバイスに予約データの用紙サイズは設定されているが、用紙残量が少なくて全枚数の出力が不可能な際はデバイスに用紙がある限りを出力するということである。そこで、途中まで出力許可がある場合（Ｙｅｓ）は、途中まで出力が可能であるかどうかを判断する（ステップＳ８０６）。そして、途中まで出力が可能であると判断された場合（Ｙｅｓ）は、さらにどこまで出力可能であるかをクライアント装置へ通知し、プリンタのパネル上にそれを表示させる（ステップＳ８０８）。そして、どこまで出せるかに関する情報を盛り込んだ１ページからなるジョブをプリンタへ送信する（ステップＳ８０９）。その後、サーバからクライアント装置へ出力データの送信を要求する（ステップＳ８１４）。そして、クライアント装置は、サーバから出力データの送信要求を受け取った後、出力データをサーバ（プリンタサーバ）へ送信する（ステップＳ８１５）。
【０１０１】
一方、ステップＳ８０４において途中までの出力許可がないと判断された場合（Ｎｏ）、及びステップＳ８０６において途中までの出力が不可能と判断された場合（Ｎｏ）は、予約印刷データの出力不可をクライアント装置へ通知し、クライアント装置のディスプレイ上にその旨を表示させたり、プリンタへ通知してプリンタのパネル上に表示させる（ステップＳ８１２）。そして、クライアント名、ジョブ名称等が含まれている１ページからなる出力不可通知ジョブをプリンタへ送信する（ステップＳ８１３）。以上がステップＳ６０６における予約印刷データの出力要求処理の詳細である。
【０１０２】
その後、プリンタは、クライアント装置或いはサーバから送信された出力データを受け付けて印字処理を実行する（ステップＳ６０７）。その後、出力不可となったジョブに関しては定期的に、若しくはサーバに他の印刷予約情報が送信された際等に、デバイスの情報を取得して、プリンタデバイス状況の監視を行う（ステップＳ６０８）。そして、出力不可ジョブが印字される状況になった場合は、再度、ステップＳ６０６の処理に戻って印刷データの出力要求処理を行う。
【０１０３】
尚、本実施形態に係る印刷システムは、上述した図６〜図１１の各種テーブルの構成及びその内容だけに限定されるものではなく、用途や目的に応じて様々な構成や内容で構成されることは言うまでもない。
【０１０４】
このように、本実施形態に係る印刷システムにおいては、印刷予約時及び印刷実行時等に、その時点のプリンタデバイス構成を把握し、意図通りの体裁で予約印刷ジョブの出力を実行することができる。すなわち、従来のように、単純に印刷予約を受け付けるだけでなく、予約受付時及び印刷時でのプリンタデバイス構成において予約印刷ジョブの印刷可否についての判定を行って、できる限り利用者が意図する通りの体裁で印刷することができる。
【０１０５】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体（記録媒体）等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１０６】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１０７】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１０８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１０９】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１１０】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１１１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１１２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１１３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１１４】
【図１】本発明の一実施形態に係る印刷システムの構成を示すブロック図である。
【図２】図１に示す印刷システムにおけるホストコンピュータ３０００からプリンタ１５００に印刷ジョブデータを送信する際の主な流れを示す機能ブロック図である。
【図３】図１に示す印刷システムにおけるホストコンピュータ３０００及びプリンタ１５００を適用可能な別の印刷システムの一例を示すシステム構成図である。
【図４】本発明の一実施形態に係る印刷指示装置が印刷制御装置に印刷を行わせる場合の基本的な処理の流れを示すタイミングチャートである。
【図５】グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、一旦中間コードからなるスプールファイル５０４を生成するように拡張された印刷システムの構成図である。
【図６】本発明の一実施形態に係る印刷システム全体の動作を説明するためのフローチャートである。
【図７】クライアント側より送信された情報等に基づいてサーバが印刷予約指定時刻等の決定を行う処理を説明するためのフローチャートである。
【図８】図６のフローチャートにおける、クライアント装置より印刷予約された情報等に基づいて予約されたジョブの出力可否判定、丸め処理、クライアント装置へ出力データの送信要求処理等（ステップＳ６０６）を詳細に説明するためのフローチャートである。
【図９】本発明の一実施形態に係る印刷システムにおけるサーバで管理する印刷予約リストの一例を示す図である。
【図１０】デバイスから取得可能なデバイス構成情報の一例を示す図である。
【図１１】ステップＳ７０１においてクライアント装置からサーバへ送信する印刷予約情報の一例を示す図である。
【図１２】丸め処理における優先順位を選択するためのユーザインタフェースの一例を示す図である。
【図１３】印刷予約情報を選択するユーザインタフェースの一例を示す図である。
【符号の説明】
【０１１５】
１０１、１１２  ＣＰＵ
１０２、１１９  ＲＡＭ
１０３、１１３  ＲＯＭ
１０４、１１５  システムバス
１０５  入力コントローラ
１０６  ビデオコントローラ
１０７  メモリコントローラ
１０８  通信Ｉ／Ｆコントローラ
１０９  キーボード
１１０  ＣＲＴ（モニタ）
１１１  外部メモリ（ＨＤ、ＦＤ）
１１３ａ  フォントＲＯＭ
１１３ｂ  プログラムＲＯＭ
１１３ｃ  データＲＯＭ
１１４  外部メモリ（ＨＤ）
１１６  印刷部Ｉ／Ｆ
１１７  印刷部
１１８  入力部
１２０  メモリコントローラ
１２１  データ転送経路
１２２  操作部
２０１  アプリケーション
２０２  グラフィックエンジン
２０３  プリンタドライバ
２０４  プリントサブシステム
５０１  ディスパッチャ
５０２  内部スプール処理
５０３  スプーラ
５０４  スプールファイル
５０５  スプールファイルマネージャ
５０６  デスプーラ
５０７  印刷データ作成処理
１５００  プリンタ
３０００  ホストコンピュータ（クライアントコンピュータ）
４００  プリントサーバコンピュータ
【図１】
2006178767.tif 000003
【図２】
2006178767.tif 000004
【図３】
2006178767.tif 000005
【図４】
2006178767.tif 000006
【図５】
2006178767.tif 000007
【図６】
2006178767.tif 000008
【図７】
2006178767.tif 000009
【図８】
2006178767.tif 000010
【図９】
2006178767.tif 000011
【図１０】
2006178767.tif 000012
【図１１】
2006178767.tif 000013
【図１２】
2006178767.tif 000014
【図１３】
2006178767.tif 000015