(57)【要約】【課題】印刷ジョブを実行する印刷装置の能力に合わせて、印刷サーバにおいて印刷ジョブに対して部分的にレンダリング処理を行う技術を提供する。【解決手段】印刷サーバは、ＰＣから受信した印刷ジョブを記憶装置に保存し、記憶装置に保存された印刷ジョブの各ページについて、印刷サーバにおいてレンダリング処理の対象とするか否かを判定する（Ｓ６０１〜Ｓ６０３）。レンダリング処理の対象とするページの判定は、印刷ジョブごとに、当該印刷ジョブを実行する印刷装置の能力を示す能力情報（印刷装置のエンジン速度及び画像処理能力等）に基づいて実行される。印刷サーバは、当該判定の結果に従って、印刷ジョブにおける対象ページに対してレンダリング処理を行う（Ｓ６０５）。印刷サーバは、レンダリング処理が行われた印刷ジョブを、印刷装置からの要求に応じて当該印刷装置へ送信する。【選択図】図６
2019040528.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置であって、
外部装置から受信した印刷ジョブを保存する保存手段と、
前記保存手段によって保存された印刷ジョブの各ページについて、前記サーバ装置においてレンダリング処理の対象とするか否かを判定する判定手段と、
前記判定手段による判定の結果に従って、前記印刷ジョブにおける対象ページに対して前記レンダリング処理を行う処理手段と、
前記レンダリング処理が行われた前記印刷ジョブを、当該印刷ジョブを実行する印刷装置からの要求に応じて前記印刷装置へ送信する送信手段と、を備え、
前記判定手段は、前記レンダリング処理の対象とするページの判定を、印刷ジョブごとに、当該印刷ジョブを実行する印刷装置の能力を示す能力情報に基づいて実行する
ことを特徴とするサーバ装置。
【請求項２】
前記能力情報は、前記印刷ジョブを実行する印刷装置のエンジン速度及び画像処理能力を示す情報である
ことを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記判定手段は、前記印刷ジョブに前記能力情報が含まれていれば、前記印刷ジョブから前記能力情報を取得して前記判定に使用する
ことを特徴とする請求項１又は２に記載のサーバ装置。
【請求項４】
印刷ジョブを実行することが想定される印刷装置の能力を示す能力情報を、ユーザの指示に従って設定する設定手段を更に備え、
前記判定手段は、前記設定手段によって設定された前記能力情報に基づいて、前記判定を行う
ことを特徴とする請求項１又は２に記載のサーバ装置。
【請求項５】
前記判定手段は、前記印刷ジョブに対応するユーザの印刷履歴情報に基づいて、前記印刷ジョブを実行することが想定される印刷装置を決定し、決定した印刷装置の前記能力情報に基づいて、前記判定を行う
ことを特徴とする請求項１又は２に記載のサーバ装置。
【請求項６】
前記判定手段は、前記印刷履歴情報に基づいて、前記ユーザが過去に使用した印刷装置のうちで、前記ユーザによる使用頻度が最も高い印刷装置を、前記印刷ジョブを実行することが想定される印刷装置として決定する
ことを特徴とする請求項５に記載のサーバ装置。
【請求項７】
前記判定手段は、前記印刷履歴情報に基づいて、前記ユーザが最後に使用した印刷装置を、前記印刷ジョブを実行することが想定される印刷装置として決定する
ことを特徴とする請求項５に記載のサーバ装置。
【請求項８】
前記能力情報は、前記印刷ジョブを実行する印刷装置のエンジン速度及び画像処理能力を示し、
前記判定手段は、前記サーバ装置が通信可能な複数の印刷装置のうちで、エンジン速度に対する画像処理能力の値の比が最も低い印刷装置の前記能力情報に基づいて、前記判定を行う
ことを特徴とする請求項１又は２に記載のサーバ装置。
【請求項９】
前記能力情報は、前記印刷ジョブを実行する印刷装置のエンジン速度及び画像処理能力を示し、
前記判定手段は、
前記印刷ジョブの各ページについてのオブジェクト数及びデータサイズを取得し、
前記エンジン速度に基づいて、前記印刷装置による１枚の印刷処理のための許容処理時間を決定し、
前記画像処理能力と前記オブジェクト数と前記データサイズとに基づいて、前記印刷ジョブの各ページの印刷処理に要する予測処理時間を決定し、
前記印刷ジョブの各ページについて、前記予測処理時間が前記許容処理時間よりも長ければ、前記レンダリング処理の対象とすると判定する
ことを特徴とする請求項１から８のいずれか１項に記載のサーバ装置。
【請求項１０】
前記判定手段は、
前記印刷ジョブの各ページについて、前記画像処理能力と前記オブジェクト数に基づいて、前記印刷装置におけるレンダリング処理に要するレンダリング時間を決定し、
前記印刷ジョブの各ページについて、前記印刷装置へデータを転送する際の転送速度と前記データサイズとに基づいて、前記印刷装置への転送時間を決定し、
前記レンダリング時間と前記転送時間の和を前記予測処理時間として決定する
ことを特徴とする請求項９に記載のサーバ装置。
【請求項１１】
サーバ装置の制御方法であって、
外部装置から受信した印刷ジョブを保存する保存工程と、
前記保存工程で保存された印刷ジョブの各ページについて、前記サーバ装置においてレンダリング処理の対象とするか否かを判定する判定工程と、
前記判定工程における判定の結果に従って、前記印刷ジョブにおける対象ページに対して前記レンダリング処理を行う処理工程と、
前記レンダリング処理が行われた前記印刷ジョブを、当該印刷ジョブを実行する印刷装置からの要求に応じて前記印刷装置へ送信する送信工程と、を備え、
前記判定工程では、前記レンダリング処理の対象とするページの判定を、印刷ジョブごとに、当該印刷ジョブを実行する印刷装置の能力を示す能力情報に基づいて実行する
ことを特徴とするサーバ装置の制御方法。
【請求項１２】
請求項１１に記載のサーバ装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１３】
サーバ装置と、前記サーバ装置と通信可能な印刷装置と、を備える印刷システムであって、
前記サーバ装置は、
外部装置から受信した印刷ジョブを保存する保存手段と、
前記保存手段によって保存された印刷ジョブの各ページについて、前記サーバ装置においてレンダリング処理の対象とするか否かを判定する判定手段と、
前記判定手段による判定の結果に従って、前記印刷ジョブにおける対象ページに対して前記レンダリング処理を行う処理手段と、
前記レンダリング処理が行われた前記印刷ジョブを、当該印刷ジョブを実行する印刷装置からの要求に応じて前記印刷装置へ送信する送信手段と、を備え、
前記判定手段は、前記レンダリング処理の対象とするページの判定を、印刷ジョブごとに、当該印刷ジョブを実行する印刷装置の能力を示す能力情報に基づいて実行し、
前記印刷装置は、
前記印刷装置にログインしたユーザの指示に従って、前記サーバ装置に前記印刷ジョブを要求し、前記サーバ装置から前記印刷ジョブを取得する取得手段と、
前記取得手段によって取得された前記印刷ジョブを実行する実行手段であって、前記サーバ装置において前記レンダリング処理が行われていないページに対してレンダリング処理を行う、前記実行手段と、を備える
ことを特徴とする印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置及びその制御方法、プログラム、並びに印刷システムに関するものであり、特に、サーバ装置から送信される印刷ジョブに対して印刷装置が行うレンダリング処理に要する時間を短くする技術に関するものである。
【背景技術】
【０００２】
近年、複数のユーザが複数の画像形成装置（印刷装置）を共有して利用する態様として、ＰＣ等の情報処理装置から印刷装置を一意に指定せずに、ユーザが所望の印刷装置に印刷を実行させる印刷システム（「リモート印刷」とも称される。）が知られている。リモート印刷では、ユーザは、情報処理装置から印刷サーバへ印刷ジョブを送信させた後に、所望の印刷装置を操作して当該印刷装置に印刷ジョブを実行させる。印刷装置は、ユーザによって指示された印刷ジョブを印刷サーバから取得して実行する。リモート印刷によれば、ユーザは、印刷装置の性能又は動作状況に応じて、使用する印刷装置を選択できる。
【０００３】
しかし、印刷装置において印刷サーバから受信した印刷ジョブのレンダリング処理に時間がかかると、ユーザは、印刷装置の前で印刷処理の完了を待たされる場合がある。このため、リモート印刷では、印刷装置が印刷処理を完了するまでの時間を短くすることが望まれている。レンダリング処理に要する時間を短くするための技術として、特許文献１では、印刷サーバにおいて印刷ジョブのレンダリング処理を行う技術が提案されている。この技術では、印刷サーバ上で印刷ジョブのレンダリング処理を行い、レンダリング後の画像データを印刷装置へ送信する場合に要する時間と、印刷ジョブを画像形成装置に送信し、画像形成装置上でレンダリング処理を行う場合に要する時間とを予測する。印刷サーバは、予測の結果、短い方の処理を実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１８６５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上述の従来技術では、印刷装置においてユーザによって印刷指示が行われるまで、印刷ジョブのレンダリング処理は行われない。このため、上述のリモート印刷では、印刷サーバ又は印刷装置におけるレンダリング処理に起因して、印刷装置の前で印刷処理の完了をユーザが待たされる場合が起こりうる。
【０００６】
また、上述の従来技術では、印刷ジョブの全体のレンダリング処理を、印刷ジョブの送信前に印刷サーバ側で行うか、又は印刷ジョブの送信後に印刷装置側で行うかを選択する。しかし、印刷サーバによるレンダリング処理後の印刷ジョブを印刷装置へ送信する場合、送信する画像データのデータ量が大きくなることにより、データの送信に時間がかかる。一方、印刷装置において印刷ジョブの全体のレンダリング処理を行う場合、印刷ジョブによってはレンダリング処理に長い時間がかかる可能性がある。更に、印刷装置の性能（エンジン速度等）に依存して、印刷装置におけるレンダリング処理に要する時間が変動する。このため、印刷ジョブを実行する印刷装置の能力に合わせて、印刷装置においてユーザによる印刷指示が行われてから印刷処理が完了するまでの時間を短くできるようにする必要がある。
【０００７】
本発明は、上述の問題に鑑みて成されたものである。本発明は、印刷ジョブを実行する印刷装置の能力に合わせて、印刷サーバにおいて印刷ジョブに対して部分的にレンダリング処理を行う技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係るサーバ装置は、外部装置から受信した印刷ジョブを保存する保存手段と、前記保存手段によって保存された印刷ジョブの各ページについて、前記サーバ装置においてレンダリング処理の対象とするか否かを判定する判定手段と、前記判定手段による判定の結果に従って、前記印刷ジョブにおける対象ページに対して前記レンダリング処理を行う処理手段と、前記レンダリング処理が行われた前記印刷ジョブを、当該印刷ジョブを実行する印刷装置からの要求に応じて前記印刷装置へ送信する送信手段と、を備え、前記判定手段は、前記レンダリング処理の対象とするページの判定を、印刷ジョブごとに、当該印刷ジョブを実行する印刷装置の能力を示す能力情報に基づいて実行することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、印刷ジョブを実行する印刷装置の能力に合わせて、印刷サーバにおいて印刷ジョブに対して部分的にレンダリング処理を行うことが可能になる。これにより、印刷装置において印刷ジョブの実行時間を短縮できるため、ユーザが印刷指示を行ってから印刷装置の前で印刷処理の完了を待つ時間を短縮できる。また、印刷サーバにおいて、印刷ジョブに対してレンダリング処理を必要以上に実行することを防止できるため、印刷サーバの負荷を最小限にとどめることが可能になり、印刷システムの負荷を減らすことができる。
【図面の簡単な説明】
【００１０】
【図１】印刷システムの構成例を示すブロック図
【図２】印刷ジョブの蓄積処理及び書誌情報の更新処理の手順を示すフローチャート
【図３】ＰＣが印刷サーバに印刷ジョブを送信する際の、ＰＣ及び印刷サーバによる処理の例を示すシーケンス図
【図４】印刷装置が印刷サーバから印刷ジョブを受信する際の、印刷サーバ及び印刷装置による処理の例を示すシーケンス図
【図５】ネットワークテーブル及び印刷ジョブテーブルの例を示す図
【図６】印刷サーバにおける先行処理の手順を示すフローチャート
【図７】印刷ジョブの解析処理（Ｓ６０１）の手順を示すフローチャート
【図８】想定能力情報の取得処理（Ｓ６０２）の手順を示すフローチャート
【図９】印刷サーバにおいて設定可能な印刷設定、及び印刷サーバが保持している印刷履歴情報の例を示す図
【図１０】レンダリング対象ページの決定処理（Ｓ６０３）の手順を示すフローチャート
【図１１】レンダリング対象ページが登録されるテーブルの例を示す図
【図１２】印刷ジョブ（ＰＤＬデータ）に含まれるＰＤＬコマンド群の構成例を示す図
【図１３】印刷装置における印刷処理の手順を示すフローチャート
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１２】
＜印刷システム＞
図１は、本発明の実施形態に係る印刷システムの構成例を示すブロック図である。図１に示す印刷システムは、印刷サーバ１００と、複数の印刷装置（画像形成装置）１００〜１０３と、パーソナルコンピュータ（ＰＣ）１９１とが、ＬＡＮ（Local Area Network）１９０を介して互いに通信可能に接続されている。なお、ＰＣ１９１は、汎用的なコンピュータで構成されうる。
【００１３】
本実施形態では、印刷装置１０１〜１０３は、ＭＦＰ（Multi Function Printer）であるが、ＭＦＰ以外のＳＦＰ（Single Function Printer）、ＬＢＰ（Laser Beam Printer）であってもよい。また、印刷装置１０１〜１０３は、ＭＦＰ、ＳＦＰ、ＬＢＰ以外のプリント方式のプリンタであってもよい。印刷装置１０１〜１０３は、ＰＣ１９１から印刷指示を受信すると、当該印刷指示に従って印刷処理を実行する。以下では印刷装置１０１の構成について説明するが、印刷装置１０２，１０３も印刷装置１０１と同様の構成を有する。
【００１４】
（印刷装置）
印刷装置１０１は、制御部１３０と、制御部１３０によって制御される、記憶装置１４０、操作部１５０、リーダ部１６０、プリンタ部１７０、及び認証部１８０を備える。制御部１３０は、ＣＰＵ１３２、ＲＯＭ１３４、及びＲＡＭ１３６を備える。ＣＰＵ１３２は、ＲＯＭ１３４又は記憶装置１４０等の記憶媒体に格納されたプログラムに基づいて、印刷装置１０１全体を統括制御する。ＲＡＭ１３６は、ＣＰＵ１３２の作業領域として用いられる。ＣＰＵ１３２は、レンダリング処理を行うためのプログラムをＲＡＭ１３６にロードして実行する。なお、印刷装置１０１は、レンダリング処理を実行する専用のハードウェア（例えば、画像処理回路）を備えていてもよい。
【００１５】
記憶装置１４０は、ＣＰＵ１３２の作業領域として利用されるとともに、印刷データ又は画像データ等の種々のデータの保存に利用される。操作部１５０は、操作キーとタッチパネル機能を有する表示部（ＬＣＤ）とで構成され、操作画面を表示部に表示するとともに、ユーザの指示を受け付ける。操作部１５０は、ユーザの指示を受け付けると、当該指示を示す情報を制御部１３０へ通知する。リーダ部１６０は、制御部１３０（ＣＰＵ１３２）の指示に従って、原稿の画像の読み取りを行って画像データを生成する。プリンタ部１７０は、制御部１３０（ＣＰＵ１３２）の指示に従って、画像データに基づいて画像をシート（記録材）に形成（印刷）する。認証部１８０は、ＩＤカード等からユーザ認証用の情報を取得し、取得した情報を制御部１３０へ通知する。
【００１６】
（印刷サーバ）
印刷サーバ１００は、ＰＣ１９１から受信した印刷ジョブを保存する機能、及び保存した印刷ジョブの書誌情報を管理する機能等のサーバ機能を有する。なお、印刷サーバ１００は、印刷装置又は情報処理装置（ＰＣ等）であってもよい。その場合、印刷サーバ１００のサーバ機能が、そのような印刷装置又は情報処理装置に実装される。
【００１７】
印刷サーバ１００は、制御部１１０及び記憶装置１２０を備える。制御部１１０は、ＣＰＵ１１２、ＲＯＭ１１４、及びＲＡＭ１１６を備える。ＣＰＵ１１２は、ＲＯＭ１１４又は記憶装置１２０等の記憶媒体に格納されたプログラムを実行することによって、印刷サーバ１００全体を統括制御する。ＲＡＭ１１６は、ＣＰＵ１１２の作業領域として用いられる。例えば、ＣＰＵ１１２は、レンダリング処理を実行するためのプログラムをＲＡＭ１１６にロードして実行する。
【００１８】
（印刷システムにおける留め置き印刷）
ＰＣ１９１において、プリンタドライバは、アプリケーションからＯＳを介して与えられた印刷命令に基づいて印刷ジョブを生成する。プリンタドライバは、印刷ジョブとして、印刷装置１０１〜１０３又は印刷サーバ１００が解釈可能なページ記述言語（ＰＤＬ：Page Description Language）で記述されたＰＤＬデータを生成する。ＰＤＬデータは、印刷命令ごとに変換及び生成されたＰＤＬコマンドで構成される。
【００１９】
ＰＣ１９１は、プリンタドライバによって生成された印刷ジョブを、ＬＡＮ１９０を介して印刷サーバ１００へ送信する。送信される印刷ジョブには、当該印刷ジョブに対応するユーザを識別可能にするためのユーザ情報が含められうる。印刷サーバ１００は、ＰＣ１９１から受信した印刷ジョブを記憶装置１２０に保存（蓄積）することにより、当該印刷ジョブの留め置きを行う。
【００２０】
印刷サーバ１００は、ＬＡＮ１９０を介して、いずれかの印刷装置（例えば、印刷装置１０１）から印刷ジョブの取得要求を受信すると、当該印刷装置へ印刷ジョブを送信する。印刷装置１０１は、ログインしたユーザのユーザ情報に基づいて識別された印刷ジョブの取得を、印刷サーバ１００に対して要求する。印刷サーバ１００から印刷ジョブを受信した印刷装置１０１は、受信した印刷ジョブを実行することにより、シートに画像を印刷する。このようにして、印刷システムにおいて印刷サーバ１００を利用した「留め置き印刷」（「リモート印刷」とも称される。）が行われる。
【００２１】
＜印刷ジョブの蓄積処理＞
図２（Ａ）は、印刷サーバ１００における印刷ジョブの蓄積処理の手順を示すフローチャートであり、図２（Ｂ）は、印刷サーバ１００における書誌情報リストの更新処理の手順を示すフローチャートである。図２（Ａ）及び（Ｂ）の各ステップの処理は、ＲＯＭ１１４又は記憶装置１２０に格納されたプログラムをＣＰＵ１１２がＲＡＭ１１６にロードして実行することによって実現される。
【００２２】
Ｓ２０１で、ＣＰＵ１１２は、ＰＣ１９１（外部装置）からＬＡＮ１９０を介して印刷ジョブを受信すると、ＲＡＭ１１６又は記憶装置１２０の作業領域に一時保存する。次にＳ２０２で、ＣＰＵ１１２は、作業領域内の印刷ジョブに基づいて、当該印刷ジョブの書誌情報を生成する。書誌情報には、例えば、ユーザ情報、機種依存性の無い設定情報（出力カラーモード、部数、片面／両面、ページ数等）、機種依存性のある設定情報（ステイプル、画像処理、給紙段、排紙段等）、及びページごとの設定情報（用紙サイズ等）が含まれうるが、これらに限定されない。その後、Ｓ２０３で、ＣＰＵ１１２は、生成した書誌情報と印刷ジョブとを記憶装置１２０に保存し、処理を終了する。
【００２３】
また、ＣＰＵ１１２は、図２（Ａ）の手順で書誌情報を生成すると、図２（Ｂ）の手順による処理を実行する。具体的には、Ｓ２１１で、ＣＰＵ１１２は、生成した書誌情報に含まれるユーザ情報を確認する。更に、Ｓ２１２で、ＣＰＵ１１２は、生成した書誌情報を、ユーザ情報に対応するユーザの書誌情報リストに追記することにより、当該書誌情報リストを更新し、処理を終了する。なお、書誌情報リストは記憶装置１２０に保存されている。Ｓ２１２において、ユーザ情報に対応するユーザの書誌情報リストが保存されていない場合には、ＣＰＵ１１２は、書誌情報リストを新たに生成し、記憶装置１２０に保存する。
【００２４】
＜先行処理の概要＞
図３は、ＰＣ１９１が印刷サーバ１００に印刷ジョブを送信する際の、ＰＣ１９１及び印刷サーバ１００による処理の例を示すシーケンス図である。図３には、ＰＣ１９１から印刷サーバ１００へ印刷ジョブが送信され、印刷サーバ１００によって当該印刷ジョブに対して先行処理が行われるまでのシーケンスを示している。
【００２５】
Ｓ３０１で、ユーザがＰＣ１９１にログインし、更にＳ３０２で、当該ユーザがＰＣ１９１を操作して、任意のアプリケーションからデータの印刷を要求する。ユーザの要求に応じて、ＰＣ１９１は、Ｓ３０３で、当該ユーザのユーザＩＤを取得し、Ｓ３０４で、取得したユーザＩＤ（ユーザ情報）を付与した印刷ジョブを生成する。その後、Ｓ３０５で、ＰＣ１９１は、生成した印刷ジョブを印刷サーバ１００へ送信する。
【００２６】
印刷サーバ１００は、ＰＣ１９１から印刷ジョブを受信すると、Ｓ３０６で、受信した印刷ジョブを記憶装置１２０に保存する。次にＳ３０７で、印刷サーバ１００は、印刷ジョブに含まれるユーザＩＤ（ユーザ情報）を抽出し、当該印刷ジョブの書誌情報を生成する。Ｓ３０８で、印刷サーバ１００は、生成した書誌情報を記憶装置１２０に保存する。書誌情報の保存を終えると、Ｓ３０９で、印刷サーバ１００は、受信した印刷ジョブに対する、図６を用いて後述する先行処理を開始する。この先行処理では、印刷ジョブを実行する印刷装置によって行われるレンダリング処理に先行して、当該印刷ジョブに対して部分的なレンダリング処理が行われる。
【００２７】
＜印刷処理の概要＞
図４は、印刷装置１０１〜１０３が印刷サーバ１００から印刷ジョブを受信する際の、印刷サーバ１００及び印刷装置１０１による処理の例を示すシーケンス図である。図４には、印刷サーバ１００に留め置かれている印刷ジョブが印刷装置１０１〜１０３によって要求され、印刷サーバ１００から送信された印刷ジョブが印刷装置１０１〜１０３によって実行されるまでのシーケンスを示している。なお、以下では、ユーザが印刷装置１０１にログインする場合を例に説明する。
【００２８】
Ｓ４０１で、ユーザが印刷装置１０１の操作部１５０を操作して印刷装置１０１にログインする。印刷装置１０１（ＣＰＵ１３２）は、認証部１８０によるユーザの認証に成功することによって当該ユーザが印刷装置１０１にログインすると、Ｓ４０２で、書誌情報リストの取得要求を印刷サーバ１００へ送信する。Ｓ４０３で、印刷サーバ１００は、当該取得要求に対する応答として、書誌情報リストを印刷装置１０１へ送信する。
【００２９】
印刷装置１０１は、書誌情報リストを印刷サーバ１００から受信すると、Ｓ４０４で、受信した書誌情報リストに基づいて、印刷ジョブの一覧を操作部１５０に表示する。Ｓ４０５で、ユーザが操作部１５０を操作して、特定の印刷ジョブを指定して印刷の実行を指示する。ユーザによる印刷指示が行われると、Ｓ４０６で、印刷装置１０１は、指定された印刷ジョブの書誌情報に記載されている、当該印刷ジョブが蓄積された機器（即ち、印刷サーバ１００）へ、印刷ジョブの取得要求を送信する。Ｓ４０７で、印刷サーバ１００は、当該取得要求に対する応答として、印刷ジョブを印刷装置１０１へ送信する。
【００３０】
印刷装置１０１は、印刷ジョブを印刷サーバ１００から受信すると、Ｓ４０７で、当該印刷ジョブに対するレンダリング処理を行い、Ｓ４０８で、レンダリング処理によって得られた画像データ（描画データ）の印刷処理を行う。
【００３１】
＜先行処理用の情報の管理＞
次に、図５を参照して、印刷サーバ１００による先行処理に用いられる情報の管理について説明する。印刷サーバ１００は、そのような情報の管理のために、図５（Ａ）に示すようなネットワークテーブルと、図５（Ｂ）に示すような印刷ジョブテーブルとを、ＲＡＭ１１６又は記憶装置１２０に保持している。
【００３２】
図５（Ａ）は、印刷サーバ１００による先行処理に用いられるネットワークテーブルの例を示している。ネットワークテーブル５００は、ネットワークテーブル５００は、印刷サーバ１００とネットワーク（ＬＡＮ１９０）を介して接続されている各装置の情報を保持している。ネットワークテーブル５００に保持される情報は、装置ＩＤ５０１、装置タイプ５０２、アドレス５０３、転送速度５０４、エンジン速度５０５、及びＲＩＰ（Raster Image Processor）能力５０６で構成される。
【００３３】
装置ＩＤ５０１は、接続されている装置（対象装置）の識別子（ＩＤ）である。装置タイプ５０２は、対象装置のタイプを示し、本実施形態では、印刷装置又はサーバを示す。アドレス５０３は、対象装置をネットワーク上で識別するための、当該対象装置に割り当てられたアドレス（ＩＰアドレス等）を示す。
【００３４】
転送速度５０４は、印刷サーバ１００と対象装置との間でデータを転送する際の実際の転送速度を示す。アドレス５０３及び転送速度５０４には、対象装置が起動した際に、又は印刷サーバ１００と対象装置との間でネットワーク接続が確立された際に取得された値が格納される。
【００３５】
エンジン速度５０５は、装置タイプ５０２が印刷装置である場合に、当該印刷装置が単位時間（本例では１分間）に印刷（出力）可能なシートの枚数を示す。ＲＩＰ能力５０６は、装置タイプ５０２が印刷装置である場合に、当該印刷装置のレンダリング能力（画像処理能力）を示す。印刷装置のレンダリング能力を示すＲＩＰ能力値は、印刷装置のハードウェア構成に依存して異なる。本実施形態では、印刷装置のＣＰＵのクロック数が、ＲＩＰ能力値として使用される。本実施形態では、印刷装置のエンジン速度及びＲＩＰ能力は、印刷装置の能力を示すパラメータの一例である。なお、装置タイプ５０２がサーバである場合には、エンジン速度５０５及びＲＩＰ能力５０６には値が格納されない。これは、サーバは印刷処理を行わないためである。
【００３６】
図５（Ｂ）は、印刷サーバ１００による先行処理に用いられる印刷ジョブテーブルの例を示している。印刷ジョブテーブル５５０は、印刷サーバ１００に留め置かれている各印刷ジョブを管理するためのテーブルである。印刷ジョブテーブル５５０に保持される情報は、ジョブＩＤ５５１、ユーザＩＤ５５２、ファイル格納場所５５３、印刷設定５５４、ページ数５５５、ＰＤＬ種類５５６、予測処理時間５５７、画像情報５５８、及びＰＤＬデータ５５９で構成される。
【００３７】
ジョブＩＤ５５１は、印刷サーバ１００に留め置かれている（印刷サーバ１００に蓄積されている）印刷ジョブを識別するためのＩＤを示す。ユーザＩＤ５５２は、印刷ジョブに対応するユーザ（ＰＣ１９１を操作して印刷ジョブを印刷サーバ１００へ送信させたユーザ）を識別するためのＩＤを示す。ファイル格納場所５５３は、印刷ジョブが実際に格納されている場所（ロケーション）を示し、印刷ジョブにおける印刷対象となるドキュメントのファイル名も含む。印刷設定５５４は、印刷ジョブに適用される印刷設定を示す。ページ数５５５は、印刷ジョブによって印刷されるページ数を示す。ＰＤＬ種類５５６は、印刷ジョブがいずれのＰＤＬに基づいて記述されているかを示す。
【００３８】
印刷ジョブテーブル５５０におけるこれらの項目５５１〜５５６は、先行処理が行われる前の印刷ジョブに関する情報を含んでいる。一方、項目５５８は、先行処理が行われた後の印刷ジョブに関する情報を含んでいる。
【００３９】
予測処理時間５５７は、印刷ジョブを実行することが想定される印刷装置においてレンダリング処理に要する時間（レンダリング時間）と、当該印刷装置へのデータの転送に要する時間（転送時間）とを予測することによって得られる。予測処理時間５５７は、印刷ジョブにおけるページごとに予測される、レンダリング時間と転送時間の和として得られる。予測処理時間５５７は、後述する図１０のＳ１００３の処理によって取得されうる。なお、先行処理が行われたページの予測処理時間５５７は、後述するように図６のＳ６０８の処理によって更新されうる。
【００４０】
レンダリング後の画像情報５５８は、先行処理においてレンダリング処理が行われた、レンダリング済みページの画像データの保存情報を示す。画像情報５５８には、レンダリング済みページの画像データに対応するファイルの名称及びサイズが格納される。なお、画像情報５５８は、レンダリング処理によって生成された画像データに関する情報を示すため、先行処理において、後述するように図６のＳ６０８の処理によって格納されうる。
【００４１】
ＰＤＬデータ５５９は、印刷ジョブに対応する実際のＰＤＬデータである。先行処理の前には、当該先行処理による加工前のＰＤＬデータが、印刷ジョブテーブル５５０に格納された状態で、印刷サーバ１００に蓄積（保存）される。一方、先行処理の後には、当該先行処理による加工後のＰＤＬデータが、印刷ジョブテーブル５５０に格納された状態で、印刷サーバ１００に蓄積（保存）される。
【００４２】
なお、本例では、先行処理による加工前のＰＤＬデータ及び加工後のＰＤＬデータのいずれかが保存されるが、加工前及び加工後の両方のＰＤＬデータが保存されてもよい。その場合、データの転送速度又は予測される転送時間等に応じて、いずれかのＰＤＬデータを印刷装置へ送信するよう、印刷サーバ１００を構成してもよい。その際、画像情報５５８に格納されているファイルサイズ及びネットワークテーブル５００に含まれる転送速度５０４等の情報を利用して、先行処理後のＰＤＬデータの転送時間を予測し、いずれのＰＤＬデータを送信するかを決定してもよい。
【００４３】
＜印刷ジョブに対する先行処理＞
図６は、本実施形態に係る、印刷サーバ１００において実行される先行処理（図３のＳ３０９）の手順を示すフローチャートである。この先行処理は、印刷サーバ１００に蓄積中の印刷ジョブに対して行われる。図６の各ステップの処理は、ＲＯＭ１１４又は記憶装置１２０に格納されたプログラムをＣＰＵ１１２がＲＡＭ１１６にロードして実行することによって、印刷サーバ１００において実現される。
【００４４】
Ｓ６０１で、ＣＰＵ１１２は、印刷サーバ１００の記憶装置１２０に蓄積（保存）されている、先行処理の対象となる印刷ジョブの解析処理を行うことにより、印刷ジョブにおける印刷対象の各ページのオブジェクト数及びデータサイズを取得する。なお、Ｓ６０１における解析処理は、後述するように、図７に示す手順で実行されうる。
【００４５】
次にＳ６０２で、ＣＰＵ１１２は、印刷ジョブを実行することが想定される印刷装置の能力を示す能力情報の取得処理を行う。取得される能力情報は、印刷ジョブを実行する印刷装置によって行われるレンダリング処理に先行して、印刷サーバ１００においてレンダリング処理を実行するか否かを判定するために用いられる。なお、Ｓ６０２における能力情報の取得処理は、後述するように、図８に示す手順で実行されうる。
【００４６】
次にＳ６０３で、ＣＰＵ１１２は、印刷ジョブの先行処理においてレンダリング処理の対象となるページの決定処理を行う。なお、Ｓ６０３における決定処理は、後述するように、図８に示す手順で実行されうる。当該決定処理では、印刷ジョブにおける印刷対象のページのうち、レンダリング処理に時間がかかるページが特定され、特定されたページがレンダリング処理の対象として決定される。
【００４７】
Ｓ６０４で、ＣＰＵ１１２はＳ６０３の処理の結果に基づいて、印刷ジョブに対する先行処理においてレンダリング処理が必要なページが存在するか否かを判定し、存在しない場合には処理を終了し、存在する場合には、Ｓ６０５へ処理を進める。なお、後述するＳ６０８から処理をＳ６０４に戻した場合には、ＣＰＵ１１２は、レンダリング処理が完了したページ以外で、レンダリング処理が必要なページが存在する（残っている）か否かを判定する。
【００４８】
Ｓ６０５で、ＣＰＵ１１２は、レンダリング処理の対象となるページに対してレンダリング処理を行うことにより、当該対象ページの描画データ（レンダリング処理後の画像データ）を生成し、Ｓ６０６へ処理を進める。更にＳ６０６で、ＣＰＵ１１２は、レンダリング済みのページの画像データをＰＤＬコマンド（図１２）に変換し、Ｓ６０７へ処理を進める。
【００４９】
Ｓ６０７で、ＣＰＵ１１２は、印刷装置への送信対象となる、印刷ジョブに対応するＰＤＬデータを、Ｓ６０６における変換後のＰＤＬコマンドによって更新する。具体的には、ＣＰＵ１１２は、ＰＤＬデータに含まれる、レンダリング処理の対象となったページの（レンダリング前の）ＰＤＬコマンドを、変換後の（レンダリング後の）ＰＤＬコマンドに差し替える。ＣＰＵ１１２は、更新後のＰＤＬデータ（印刷ジョブ）を、差替え済みの印刷ジョブを、ＲＡＭ１１６又は記憶装置１２０の作業領域に一時保存する。
【００５０】
次にＳ６０８で、ＣＰＵ１１２は、レンダリング処理の結果に基づいて、ＲＡＭ１１６又は記憶装置１２０に保持している印刷ジョブテーブル５５０を更新する。具体的には、ＣＰＵ１１２は、印刷ジョブテーブル５５０の予測処理時間５５７、画像情報５５８、及びＰＤＬデータ５５９を更新する。
【００５１】
ここで、予測処理時間５５７は、上述のレンダリング処理が行われたページについて、印刷装置におけるレンダリング時間及び当該印刷装置への転送時間を、後述するＳ１００３（図１０）と同様の処理により予測することによって得られる。その結果、レンダリング時間については、先行処理が行われる前と比べて大幅に短くなる。これは、レンダリング後の画像データによってＰＤＬデータが再構成され、印刷装置においてレンダリング処理の実行を要しないためである。一方、転送時間については、先行処理が行われる前と比べて、必ずしも短くなるとは限らない。これは、転送時間がＰＤＬコマンドのデータサイズに依存するためである。即ち、レンダリング処理によってＰＤＬコマンドのデータサイズが増加することで、転送時間も増加する。しかし、レンダリング時間と転送時間の和（即ち、予測処理時間）は、レンダリング時間の大幅な削減に起因して、先行処理が行われる前よりも短くなることが想定される。
【００５２】
ＣＰＵ１１２は、Ｓ６０８において印刷ジョブテーブル５５０の更新が完了すると、ＣＰＵ１１２は、処理をＳ６０４に戻す。
【００５３】
＜印刷ジョブの解析処理（Ｓ６０１）＞
図７は、本実施形態に係る、Ｓ６０１における印刷ジョブの解析処理の手順を示すフローチャートである。
【００５４】
まずＳ７０１で、ＣＰＵ１１２は、先行処理の対象となる、記憶装置１２０に保存されている印刷ジョブを取得する。次にＳ７０２で、印刷ジョブに含まれる（未処理の）１ページの画像データを処理対象に決定し、当該１ページ分の描画オブジェクトの生成処理を行うことにより、当該１ページの描画オブジェクト数及びデータサイズを取得する。当該生成処理が完了すると、Ｓ７０３で、ＣＰＵ１１２は、取得した描画オブジェクト数及びデータサイズを、ＲＡＭ１１６又は記憶装置１２０の作業領域に一次保存する。その後、Ｓ７０４で、ＣＰＵ１１２は、印刷ジョブにおける全ページの処理が完了したか否かを判定し、完了していない場合にはＳ７０２へ処理を戻し、完了した場合には処理を終了する。
【００５５】
＜想定能力情報の取得処理（Ｓ６０２）＞
図８は、本実施形態に係る、Ｓ６０２における想定能力情報の取得処理の手順を示すフローチャートである。
【００５６】
Ｓ８０１で、ＣＰＵ１１２は、印刷サーバ１００内の記憶装置１２０に保存されている印刷ジョブに、当該印刷ジョブを実行することが想定される印刷装置の能力を示す能力情報（想定能力情報）が含まれているか否かを判定する。図１２を用いて後述するように、印刷ジョブ（ＰＤＬデータ）には、コマンド「ＰｒｉｎｔＳｐｅｅｄ」１２０２の指定として、印刷装置能力の指定を含めることが可能である。
【００５７】
本実施形態では、ＣＰＵ１１２は、印刷ジョブにそのような指定が含まれる場合には、印刷ジョブに能力情報が含まれていると判定し、Ｓ８０２へ処理を進める。Ｓ８０２で、ＣＰＵ１１２は、印刷ジョブから能力情報を取得し、処理を終了する。一方、ＣＰＵ１１２は、印刷ジョブに、印刷装置能力の指定が含まれていない場合には、印刷ジョブに能力情報が含まれていないと判定し、Ｓ８０３へ処理を進める。
【００５８】
Ｓ８０３で、ＣＰＵ１１２は、ユーザによって印刷装置能力が設定されているか否か（ユーザ設定が存在するか否か）を判定する。ＣＰＵ１１２は、印刷装置能力がユーザによって設定されている場合には、Ｓ８０４へ処理を進め、設定されていない場合には、Ｓ８０５へ処理を進める。
【００５９】
ここで、図９（Ａ）は、印刷サーバ１００において設定可能な印刷設定の例を示す図である。本実施形態の印刷サーバ１００は、図９（Ａ）に示す各設定項目について、印刷ジョブに適用する印刷設定としてユーザによる設定が可能となるように構成されている。具体的には、用紙サイズ、用紙カセット、用紙種類、コピー部数、両面印刷、想定エンジン速度、及び想定ＲＩＰ能力の設定を行うことが可能であり、これらは一例である。
【００６０】
これらの設定項目のうち、想定エンジン速度及び想定ＲＩＰ能力は、印刷ジョブを実行することが想定される印刷装置の能力を示す設定項目である。想定エンジン速度として「５０枚／分」が設定されている場合、印刷装置が１分当たり５０枚の印刷を行うことが想定されている。想定ＲＩＰ能力として「１０００ＭＨｚ」が設定されている場合、印刷時のレンダリング処理を行うＣＰＵのクロック数が１０００ＭＨｚであることが想定されている。
【００６１】
Ｓ８０３では、想定エンジン速度及び想定ＲＩＰ能力の設定が行われている場合には、Ｓ８０４へ処理が進められる。Ｓ８０４では、ＣＰＵ１１２は、ユーザ設定から能力情報を取得し、処理を終了する。本実施形態では、図９（Ａ）に示す、想定エンジン速度及び想定ＲＩＰ能力の設定値が、印刷装置能力を示す能力情報として取得される。
【００６２】
一方、Ｓ８０５では、ＣＰＵ１１２は、印刷ジョブに対応するユーザ（対象ユーザ）の印刷履歴情報を取得し、処理をＳ８０６へ進める。ここで、図９（Ｂ）は、印刷サーバ１００が保持している印刷履歴情報の例を示す図である。印刷サーバ１００は、ユーザごとに、ユーザＩＤに対応付けて印刷履歴情報を保持している。各ユーザの印刷履歴情報には、当該ユーザに対応する印刷ジョブについて、最後に印刷を行った印刷装置から順に、過去５回の印刷をそれぞれ行った印刷装置を示す装置ＩＤ（装置ＩＤ１〜装置ＩＤ５）が、印刷履歴として含まれている。例えば、ユーザＩＤ「１２３４５」のユーザは、装置ＩＤ「１０１」の印刷装置を３回使用しており、過去５回の印刷において当該印刷装置を最も使用している。また、ユーザＩＤ「３４５６７」のユーザは、装置ＩＤ「１０５」の印刷装置を最後に使用している。各ユーザの印刷履歴情報は、印刷ジョブがいずれかの印刷装置で実行されるごとに（即ち、いずれかの印刷装置に対して、印刷ジョブを実行するようユーザが指示し、当該印刷装置が印刷サーバ１００から印刷ジョブを取得して実行するごとに）更新される。
【００６３】
Ｓ８０６で、ＣＰＵ１１２は、印刷履歴情報の取得の結果、対象ユーザの印刷履歴が存在するか否かを判定し、存在する場合にはＳ８０７へ処理を進める。Ｓ８０７で、ＣＰＵ１１２は、取得した印刷履歴情報に基づいて、対象ユーザによる使用頻度が最も高い印刷装置を特定する。あるいは、ＣＰＵ１１２は、使用頻度が最も高い印刷装置を特定できなければ、最後に使用された印刷装置を特定する。ＣＰＵ１１２は、特定した印刷装置を、印刷ジョブを実行することが想定される印刷装置として決定し、処理をＳ８０８へ進める。Ｓ８０８で、ＣＰＵ１１２は、決定した印刷装置の能力情報をネットワークテーブル５００から取得し、処理を終了する。具体的には、ＣＰＵ１１２は、決定した印刷装置の装置ＩＤに対応付けてネットワークテーブル５００に格納されている、エンジン速度及びＲＩＰ能力を取得する。
【００６４】
一方、対象ユーザの印刷履歴が存在しない場合には、ＣＰＵ１１２は、処理をＳ８０６からＳ８０９へ進める。Ｓ８０９で、ＣＰＵ１１２は、対象とする印刷ジョブが印刷装置へ投入されるか否かを、ネットワークテーブル５００の装置タイプ５０２に基づいて判定する。具体的には、ＣＰＵ１１２は、印刷サーバ１００自体が、印刷装置タイプである場合には、処理をＳ８１０へ進め、印刷装置タイプではなくサーバタイプである場合には、処理をＳ８１１へ進める。Ｓ８１０で、ＣＰＵ１１２は、印刷サーバ１００自体を、印刷ジョブを実行することが想定される印刷装置として決定し、処理をＳ８０８へ進め、上述の処理を行う。
【００６５】
また、Ｓ８１１で、ＣＰＵ１１２は、ネットワークテーブル５００から、最も条件が厳しい印刷装置の能力情報を取得し、処理を終了する。具体的には、ＣＰＵ１１２は、エンジン速度に対してＲＩＰ能力値が最も低い（ＲＩＰ能力／エンジン速度の値が最も低い）印刷装置を特定し、特定した印刷装置の能力情報を取得する。図５（Ａ）の例では、装置ＩＤ「１０１」の印刷装置（ＲＩＰ能力／エンジン速度＝２０）が特定される。
【００６６】
＜レンダリング対象ページの決定処理（Ｓ６０３）＞
図１０は、本実施形態に係る、Ｓ６０３におけるレンダリング対象ページの決定処理の手順を示すフローチャートである。
【００６７】
Ｓ１００１で、ＣＰＵ１１２は、上述のＳ６０２において取得された想定能力情報が示す能力値を取得する。以下では、エンジン速度として５０枚／分、ＲＩＰ能力値として１０００ＭＨｚが取得された場合を例に説明する。次にＳ１００２で、ＣＰＵ１１２は、取得した能力値に基づいて、１枚当たりの印刷処理に許容される処理時間（許容処理時間）を決定する。エンジン速度が５０枚／分である場合、１枚当たりの印刷処理に許容される処理時間は１．２秒（＝６０秒／５０枚）となる。
【００６８】
その後Ｓ１００３で、ＣＰＵ１１２は、印刷ジョブに含まれる（未処理の）１ページを処理対象に決定し、当該対象ページの印刷処理に要する時間（処理時間）を予測する。本実施形態では、ＣＰＵ１１２は、Ｓ７０３で保存された、対象ページの描画オブジェクト数及びデータサイズと、Ｓ１００１で取得されたＲＩＰ能力値とを用いて、対象ページのレンダリング処理に要する時間（レンダリング時間）を算出する。更に、ＣＰＵ１１２は、能力情報に対応する印刷装置へデータを転送する際の転送速度に基づいて、当該印刷装置へのデータの転送に要する時間（転送時間）を算出する。転送速度は、ネットワークテーブル５００から取得される。ＣＰＵ１１２は、得られたレンダリング時間と転送時間との和を、予測処理時間として決定する。
【００６９】
例えば、ＲＩＰ能力値「１（ＭＨｚ）」が、１秒間に１描画オブジェクトの処理が可能であることを示す場合、ＲＩＰ能力値「１０００（ＭＨｚ）」は、１０００描画オブジェクトの処理に１秒を要することを示す。なお、本例では、描画オブジェクトごとに同一の重みをＲＩＰ能力値に適用しているが、描画オブジェクトの内容に応じて異なる重みをＲＩＰ能力値に適用してもよい。また、転送速度が１０２４ＫＢｙｔｅ／秒、データサイズが２５６ＫＢｙｔｅである場合、転送時間として０．２５秒が算出される。したがって、予測処理時間として１．２５秒（＝１秒＋０．２５秒）であると決定される。
【００７０】
予測処理時間を決定すると、次にＳ１００４で、ＣＰＵ１１２は、対象ページの予測処理時間が許容処理時間より長い（予測処理時間＞許容処理時間）か否かを判定する。ＣＰＵ１１２は、予測処理時間が許容処理時間より長い場合には、Ｓ１００５へ処理を進め、予測処理時間が許容処理時間より長くない場合には、Ｓ１００６へ処理を進める。Ｓ１００５で、ＣＰＵ１１２は、対象ページを、レンダリング対象のページ（レンダリング処理が必要なページ）として登録し、Ｓ１００６へ処理を進める。
【００７１】
レンダリング対象のページに関する情報は、図１１に示すようなテーブルに登録される。図１１は、印刷サーバ１００に蓄積中の印刷ジョブにおいてレンダリング処理が必要なページ及び当該ページの描画オブジェクト数を保持するテーブルである。当該テーブルは、ＲＯＭ１１４又は記憶装置１２０に格納されている。図１１のテーブルには、印刷ジョブによる印刷対象のドキュメント名に対応付けて、印刷サーバ１００におけるレンダリング処理の対象となるページの番号、及び当該ページの描画オブジェクト数が登録されている。図１１の例では、ドキュメント「ＡＢＣ．Ｄｏｃ」に対して、描画オブジェクト数が「１０００」である２ページ目と、描画オブジェクト数が「１２００」である４ページ目とが、レンダリング処理の対象となるページとして登録されている。
【００７２】
Ｓ１００６で、ＣＰＵ１１２は、印刷ジョブにおける全ページの処理が完了したか否かを判定し、完了していない場合にはＳ１００３へ処理を戻し、完了した場合には処理を終了する。
【００７３】
なお、上述の例では、レンダリング時間及び転送時間の予測に基づいて予測処理時間を決定しているが、レンダリング時間のみを予測処理時間の決定に用いてもよい。また、エンジン速度及びＲＩＰ能力以外の、印刷装置能力を示すパラメータが、レンダリング対象のページを決定するために使用されてもよい。
【００７４】
＜ＰＤＬデータの構成＞
図１２は、本実施形態における印刷ジョブ（ＰＤＬデータ）に含まれるＰＤＬコマンド群の構成例を示す図であり、（Ａ）は、先行処理前のＰＤＬコマンド群、（Ｂ）は、先行処理後のＰＤＬコマンド群を示している。
【００７５】
図１２（Ａ）に示すように、先行処理前のＰＤＬコマンド群は、ＰＤＬの言語仕様に基づいて予め定義されたコマンド群１２２１と、各コマンドに付加されて指示内容を規定する、又は描画データの詳細を示すパラメータ群１２２２とを含む。パラメータ群１２２２には、ＰＤＬの言語仕様に基づいて、例えば、各コマンドに対して必須の項目、及び初期値が決まっていて必要に応じて付加すればよい項目が存在する。
【００７６】
本構成例では、印刷ジョブの開始及び終了をそれぞれ示すコマンド「ＢｅｇｉｎＪｏｂ」１２０１とコマンド「ＥｎｄＪｏｂ」１２２０とに挟まれた、２ページ分のＰＤＬコマンド群が階層構造を成している印刷ジョブを示している。即ち、この印刷ジョブ構造には、２つのページ構造が含まれる。ページ記述の開始及び終了をそれぞれ示すページ開始コマンド「ＢｅｇｉｎＰａｇｅ」１２０３，１２１５及びページ終了コマンド「ＥｎｄＰａｇｅ」１２１４，１２１９がそれぞれ対となって、２つのページ構造を構成している。これら２つのページ構造内に、各種描画処理に用いられるコマンド群が含まれている。
【００７７】
また、本実施形態のＰＤＬデータでは、印刷ジョブを実行することが想定される印刷装置の能力を、コマンド「ＰｒｉｎｔＳｐｅｅｄ」１２０２によって指定することができる。図１２（Ａ）の例では、コマンド「ＰｒｉｎｔＳｐｅｅｄ」１２０２には、エンジン速度が５０枚／分（ＰＰＭ＝５０）であり、ＣＰＵクロック数が１０００ＭＨｚ（ＣＰＵ＝１０００）であることを示すパラメータが指定されている。なお、コマンド「ＰｒｉｎｔＳｐｅｅｄ」１２０２による印刷装置能力の指定が含まれていない場合には、図８を用いて上述したように、他の方法により能力情報が取得される。
【００７８】
ここで、図１２（Ａ）には、描画処理のためのコマンド群の例として、記憶装置１４０に登録されている、リソースであるフォントデータを用いて印刷を行うためのコマンド群を示している。具体的には、ページ１には、フォントを指定するためのＩＤ、及び共通データであるフォントヘッダをパラメータとする「ＤｏｗｎｌｏａｄＦｏｎｔ」１２０４と、文字単位のフォントデータを登録する「ＤｏｗｎｌｏａｄＣｈａｒ」１２０５〜１２０７とが含まれる。「ＤｏｗｎｌｏａｄＣｈａｒ」は、文字を特定するためのＣｈａｒＩＤ、及びグリフ形状を表現したパターンデータをパラメータとして有する。また、ＣｈａｒＩＤをパラメータとして有するコマンド「ＤｒａｗＣｈａｒ」１２０８によって、登録された文字パターンが印刷される。以下では、上述のような、文字を印刷するためのフォントデータを登録又は削除するコマンド群を「リソース制御コマンド」と称する。ただし、「ＤｒａｗＣｈａｒ」はリソース制御コマンドに含まれない。
【００７９】
また、図１２（Ａ）には、描画処理のためのコマンド群の例として、グラフィック又はイメージを印刷するためのコマンド群も示している。グラフィックを描画するためのコマンド「ＤｒａｗＲｅｃｔ」１２０９及び「ＤｒａｗＰｏｌｙｇｏｎ」１２１３は、矩形等のグラフィックを表現することが可能である。イメージを描画するためのコマンド「ＢｅｇｉｎＩｍａｇｅ」１２１０、「ＲｅａｄＩｍａｇｅ」１２１１、及び「ＥｎｄＩｍａｇｅ」１２１２は、これら３つのコマンドのセットにより１枚のイメージを表現することが可能である。
【００８０】
本例のＰＤＬデータでは、登録されたフォントデータは、コマンドにより明確に削除指示がなされるか、ジョブ終了コマンドが発行されるまでの間、複数のページにまたがって有効となる（即ち、リソース継承レベルがジョブである）。そのため、ページ２では、コマンド「ＤｏｗｎｌｏａｄＦｏｎｔ」１２１６でフォント登録時と同じフォントＩＤ＝１を指定することにより、ページ１と同じＦｏｎｔＳｅｔコマンドを発行して、ページ１で登録したフォントを処理対象としている。また、コマンド「ＤｏｗｎｌｏａｄＣｈａｒ」１２１７によって、ＣｈａｒＩＤ＝３の文字を追加登録し、コマンド「ＤｒａｗＣｈａｒ」１２１８によって、ページ１及びページ２で登録された文字（ＣｈａｒＩＤ＝０，３，２）を印刷している。
【００８１】
なお、実際には、文字サイズ、印刷方向、印刷色、及び修飾指定等、様々なパラメータが指定されるのが通常であるが、簡単化のために、ここではその説明を省略する。本例で示したように、リソース継承レベルがジョブである場合は、リソース制御コマンドによって登録された文字（ＣｈａｒＩＤ＝０，１，２）は、後続するページ内でも参照をすることによって印刷が可能である。
【００８２】
図１２（Ｂ）は、ページ１を先行してレンダリングし、レンダリング前のＰＤＬコマンドを、レンダリング後の画像から変換されたＰＤＬコマンドに差し替えることによって得られたＰＤＬデータの構成例を示している。ページ１のレンダリング処理によって、レンダリング後の画像は、イメージコマンド「ＢｅｇｉｎＩｍａｇｅ」１２３７、「ＲｅａｄＩｍａｇｅ」１２３８及び「ＥｎｄＩｍａｇｅ」１２３９に変換される。ページ１では、ＰＤＬコマンドの差し替えのために、レンダリング前のＰＤＬコマンドを削除している。しかし、ページ１に含まれていたリソース制御コマンド１２０３〜１２０６は、ページ１以降のページでも参照される可能性があるため、リソース制御コマンド１２３３〜１２３６として削除せずに残してある。これにより、コマンド「ＤｏｗｎｌｏａｄＦｏｎｔ」１２３３によりフォント登録時と同じフォントＩＤ＝１を指定し、ページ１においてＦｏｎｔＳｅｔコマンドを発行して、ページ１において登録したフォントを処理対象とする。ページ１では、リソース制御コマンド以外のコマンドが削除され、イメージコマンド「ＢｅｇｉｎＩｍａｇｅ」１２３７、「ＲｅａｄＩｍａｇｅ」１２３８及び「ＥｎｄＩｍａｇｅ」１２３９による差し替えが行われている。
【００８３】
また、ページ２では、コマンド「ＤｏｗｎｌｏａｄＣｈａｒ」１２３４〜１２３６によりページ１の文字を継承し、コマンド「ＤｏｗｎｌｏａｄＦｏｎｔ」１２４２及び「ＤｏｗｎｌｏａｄＣｈａｒ」１２４３により、ＣｈａｒＩＤ＝３を追加登録している。更に、コマンド「ＤｒａｗＣｈａｒ」１２４４によって、ページ１及びページ２で登録された文字（ＣｈａｒＩＤ＝０，３，２）を印刷している。
【００８４】
図１２（Ａ）及び（Ｂ）から分かるように、印刷サーバ１００における上述の先行処理の結果、印刷装置１０１〜１０３のＣＰＵ１３２による解析が必要なＰＤＬコマンドの数が減少している。このため、印刷装置１０１〜１０３におけるレンダリング処理の際に必要なＰＤＬコマンドの解析処理の負荷を軽減できる。また、先行処理後のＰＤＬデータには、イメージコマンド１２３７〜１２３９として、レンダリング済みの画像データが格納されるため、当該画像データについての印刷装置１０１〜１０３によるレンダリング処理を省くことが可能となる。
【００８５】
なお、図１２（Ａ）のリソース１２０５（ＣｈａｒＩＤ＝１）は、ページ１のみで参照されているため、ページ２を構成するコマンド１２３５として残す必要はない。しかし、このように残しておいても、リソースを参照しているページを特定する必要がないため、印刷ジョブのレンダリング処理を高速に行うことができる。また、図１２の例では、リソース継承レベルがジョブのリソース制御コマンドであるが、リソース継承レベルがページのリソース制御コマンドであってもよい。また、リソース制御コマンドが無いページでは、ページ内の描画コマンドを全てイメージコマンド１２３７〜１２３９で差し替えることも可能である。このようなページであれば、印刷ジョブのレンダリング処理を更に高速に行うことができる。
【００８６】
＜印刷装置による印刷処理＞
図１３は、印刷装置１０１〜１０３において実行される印刷処理の手順を示すフローチャートである。図１３の各ステップの処理は、ＲＯＭ１３４又は記憶装置１４０に格納されたプログラムをＣＰＵ１３２がＲＡＭ１３６にロードして実行することによって、印刷装置１０１において実現される。以下では、印刷装置１０１における処理を例に説明するが、印刷装置１０２，１０３における処理も同様である。
【００８７】
Ｓ１３０１で、ＣＰＵ１３２は、認証部１８０を用いて、印刷装置１０１にログインするユーザの認証を行う。ＣＰＵ１３２は、ユーザが認証部１８０に入力したユーザ情報に基づいてユーザ認証（予め印刷装置１０１に登録されているユーザ情報との照合）を行い、当該ユーザ認証に成功すると、Ｓ１３０２へ処理を進める。なお、予め登録されているユーザ情報は、印刷装置１０１内のＲＡＭ１３６又は記憶装置１４０に保存されていてもよい。あるいは、外部装置（例えば、印刷サーバ１００やＰＣ１９１等）に保存されていてユーザ情報を利用してユーザ認証が行われてもよし、入力されたユーザ情報を外部装置へ送信し、当該外部装置によってユーザ認証が行われてもよい。
【００８８】
Ｓ１３０２で、ＣＰＵ１３２は、ログインしたユーザから、操作部１５０を介して、印刷ジョブについての印刷指示を受け付けたか否かを判定し、印刷指示を受け付けた場合には、Ｓ１３０３へ処理を進める。一方、ＣＰＵ１３２は、印刷指示以外の指示を受け付けた場合には、図１３の手順による処理を終了する。
【００８９】
Ｓ１３０３で、ＣＰＵ１３２は、ＬＡＮ１９０を介して、印刷ジョブの取得要求を印刷サーバ１００へ送信することによって、印刷サーバ１００から印刷ジョブを取得する。この取得要求には、ユーザ情報と、印刷処理の対象となる印刷ジョブを示す情報とが含められる。なお、印刷ジョブの取得要求の送信前に、ＣＰＵ１３２は、ログインしたユーザの書誌情報リストを印刷サーバ１００から取得し、当該書誌情報リストに基づいて、印刷ジョブの一覧を操作部１５０に表示する。更に、ＣＰＵ１３２は、表示した印刷ジョブの一覧からユーザによって選択された印刷ジョブを、印刷サーバ１００から取得する。
【００９０】
次にＳ１３０４で、ＣＰＵ１３２は、取得した印刷ジョブの印刷設定に基づいて、印刷対象の各ページのレンダリング処理を行うことにより、印刷用の画像データを生成する。このとき、ＣＰＵ１３２は、印刷サーバ１００による先行処理においてレンダリング処理が行われていないページのみレンダリング処理を行えばよい。レンダリング処理に時間がかかるページのレンダリング処理は、印刷サーバ１００によって先行して実行されているため、印刷装置１０１において当該ページのレンダリング処理を行う必要がない。このため、印刷サーバ１００において先行処理が行われない場合よりも、Ｓ１３０４におけるレンダリング処理に要する時間の短縮が可能である。
【００９１】
その後Ｓ１３０５で、ＣＰＵ１３２は、Ｓ１３０４におけるレンダリング処理後の画像データに基づく印刷処理を開始する。ＣＰＵ１３２は、印刷対象の全ページの画像のシートへの印刷が完了すると、図１３の手順による処理を終了する。
【００９２】
以上説明したように、本実施形態の印刷サーバ１００において、ＣＰＵ１１２は、外部装置（例えばＰＣ１９１）から受信した印刷ジョブを記憶装置１２０に保存（蓄積）する。ＣＰＵ１１２は、記憶装置１２０に保存された印刷ジョブの各ページについて、印刷サーバ１００においてレンダリング処理の対象とするか否かを判定する。レンダリング処理の対象とするページの判定は、印刷ジョブごとに、当該印刷ジョブを実行する印刷装置の能力を示す能力情報に基づいて実行される。当該判定に使用される能力情報は、例えば、印刷ジョブを実行する印刷装置のエンジン速度及び画像処理能力を示す情報である。ＣＰＵ１１２は、当該判定の結果に従って、印刷ジョブにおける対象ページに対してレンダリング処理を行う。更に、ＣＰＵ１１２は、レンダリング処理が行われた印刷ジョブを、当該印刷ジョブを実行する印刷装置からの要求に応じて当該印刷装置へ送信する。
【００９３】
このように、印刷サーバ１００は、蓄積中に印刷ジョブに対してページごとにレンダリング処理を行うべきか否かを、当該印刷ジョブを実行する印刷装置の能力に基づいて実行する。このため、印刷ジョブを実行する印刷装置への当該印刷ジョブの送信前に、当該印刷装置の能力（エンジン速度等）に適応して、印刷サーバ１００において事前にレンダリング処理を行うことが可能である。したがって、印刷装置において印刷ジョブの実行時間を短縮でき、印刷装置の前でユーザが印刷処理の完了を待つ時間を短縮できる。また、印刷サーバ１００において、印刷ジョブに対してレンダリング処理を必要以上に実行することを防止できる。このため、印刷サーバ１００の負荷を最小限にとどめることが可能になり、印刷システムの負荷を減らすことができる。
【００９４】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９５】
１００：印刷サーバ      １０１〜１０３：印刷装置  １９０：ＬＡＮ
１１０，１３０：制御部  １２０，１４０：記憶装置  １９１：ＰＣ
１１２，１３２：ＣＰＵ  １１４，１３４：ＲＯＭ
１１６，１３６：ＲＡＭ
【図１】
2019040528.tif 000003
【図２】
2019040528.tif 000004
【図３】
2019040528.tif 000005
【図４】
2019040528.tif 000006
【図５】
2019040528.tif 000007
【図６】
2019040528.tif 000008
【図７】
2019040528.tif 000009
【図８】
2019040528.tif 000010
【図９】
2019040528.tif 000011
【図１０】
2019040528.tif 000012
【図１１】
2019040528.tif 000013
【図１２】
2019040528.tif 000014
【図１３】
2019040528.tif 000015