(57)【要約】【課題】印刷ジョブによっては、印刷ジョブ全体ではなく一部をレンダリングして送信した方が、印刷ジョブの送信時間及びレンダリング処理時間が短くなる場合があるが、従来は、これらは考慮されていないため、ユーザは必ずしも、最小の待機時間で印刷物を得ることができるとは限らない。【解決手段】受信した印刷ジョブを格納し、印刷ジョブに対する印刷指示に応じて当該印刷ジョブを印刷装置に送信するプリントサーバであって、格納している印刷ジョブが、先行レンダリングが必要なページを含むか否か判定し、先行レンダリングが必要と判定された前記ページに含まれる描画データを含む領域であって、先行レンダリングの対象となる領域を特定する。そして、その特定された前記領域のレンダリングを実行し、印刷ジョブの前記領域の描画データを、そのレンダリングされた画像データに基づく描画データで置き換える。【選択図】  図１０
2019049822.tif 000002
【特許請求の範囲】
【請求項１】
受信した印刷ジョブを格納し、印刷ジョブに対する印刷指示に応じて当該印刷ジョブを印刷装置に送信するプリントサーバであって、
印刷ジョブを格納する格納手段と、
前記格納手段に格納している印刷ジョブが、先行レンダリングが必要なページを含むか否か判定する判定手段と、
前記判定手段により先行レンダリングが必要と判定された前記ページに含まれる描画データを含む領域であって、先行レンダリングの対象となる領域を特定する特定手段と、
前記特定手段により特定された前記領域のレンダリングを実行するレンダリング手段と、
前記印刷ジョブの前記領域の描画データを、前記レンダリング手段によりレンダリングされた画像データに基づく描画データで置き換える置き換え手段と、
を有することを特徴とするプリントサーバ。
【請求項２】
前記レンダリング手段は、前記領域のレンダリングを実行しているときに印刷装置から前記印刷ジョブの取得要求を受信すると前記レンダリングを中止し、
前記置き換え手段は、その時点でレンダリングが完了している領域の描画データを、前記レンダリング手段によりレンダリングされた画像データに基づく描画データで置き換えることを特徴とする請求項１に記載のプリントサーバ。
【請求項３】
前記判定手段は、前記格納手段に格納している印刷ジョブを送信できる印刷装置の内で最もエンジン速度の大きい印刷装置が１ページを印刷する時間と、前記印刷ジョブに含まれる各ページのレンダリング予測時間とに基づいて、前記印刷ジョブが先行レンダリングが必要なページを含むか否か判定することを特徴とする請求項１又は２に記載のプリントサーバ。
【請求項４】
前記特定手段は、前記描画データを含む領域それぞれのレンダリング予測時間の内、前記ページのレンダリング予測時間に最も影響を与えるレンダリング予測時間を有する領域を、前記先行レンダリングの対象となる領域として特定することを特徴とする請求項３に記載のプリントサーバ。
【請求項５】
前記特定手段は、前記描画データを含む領域それぞれのレンダリング予測時間の内、最大のレンダリング予測時間から大きい順に前記ページのレンダリング予測時間から差し引き、その差分が前記最もエンジン速度の大きい印刷装置が１ページを印刷する時間よりも小さくなったときに、それら差し引いたレンダリング予測時間に対応する領域を、前記先行レンダリングの対象となる領域として特定することを特徴とする請求項４に記載のプリントサーバ。
【請求項６】
前記領域は、当該ページに含まれる描画データの外接矩形であることを特徴とする請求項１乃至５のいずれか１項に記載のプリントサーバ。
【請求項７】
前記領域は、前記外接矩形が前記ページに含まれる他の描画データの外接矩形と交差する場合、前記外接矩形と前記他の描画データの外接矩形とを合成した外接矩形となることを特徴とする請求項６に記載のプリントサーバ。
【請求項８】
前記印刷ジョブがページ集約を含む場合、前記領域は、集約された各ページに対応することを特徴とする請求項１乃至５のいずれか１項に記載のプリントサーバ。
【請求項９】
請求項１乃至８のいずれか１項に記載のプリントサーバと、
前記プリントサーバと接続された印刷装置とを有する印刷システムであって、
前記印刷装置は、
認証されたユーザの指示に応じて前記プリントサーバに対して、当該プリントサーバが格納している印刷ジョブの情報を要求し、当該情報に基づいて対象の印刷ジョブを取得する取得手段と、
前記取得手段が取得した印刷ジョブのレンダリング処理を行って画像データを生成する生成手段と、を有し、
前記生成手段は、前記プリントサーバで先行レンダリングされたページ、或いは前記先行レンダリング処理済みの領域以外のレンダリングを行う印刷システム。
【請求項１０】
受信した印刷ジョブを格納し、印刷ジョブに対する印刷指示に応じて当該印刷ジョブを印刷する印刷装置であって、
印刷ジョブを格納する格納手段と、
前記格納手段に格納している印刷ジョブが、先行レンダリングが必要なページを含むか否か判定する判定手段と、
前記判定手段により先行レンダリングが必要と判定された前記ページに含まれる描画データを含む領域であって、先行レンダリングの対象となる領域を特定する特定手段と、
前記特定手段により特定された前記領域のレンダリングを実行するレンダリング手段と、
前記印刷ジョブの前記領域の描画データを、前記レンダリング手段によりレンダリングされた画像データに基づく描画データで置き換える置き換え手段と、
印刷指示に応じて、前記格納手段に格納されている対象の印刷ジョブを印刷する印刷手段と、
を有することを特徴とする印刷装置。
【請求項１１】
受信した印刷ジョブを格納し、印刷ジョブに対する印刷指示に応じて当該印刷ジョブを印刷装置に送信するプリントサーバを制御する制御方法であって、
格納している印刷ジョブが、先行レンダリングが必要なページを含むか否か判定する判定工程と、
前記判定工程で先行レンダリングが必要と判定された前記ページに含まれる描画データを含む領域であって、先行レンダリングの対象となる領域を特定する特定工程と、
前記特定工程で特定された前記領域のレンダリングを実行するレンダリング工程と、
前記印刷ジョブの前記領域の描画データを、前記レンダリング工程でレンダリングされた画像データに基づく描画データで置き換える置き換え工程と、
を有することを特徴とする制御方法。
【請求項１２】
コンピュータを、請求項１乃至８のいずれか１項に記載の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリントサーバとその制御方法、印刷システム、印刷装置、及びプログラムに関する。
【背景技術】
【０００２】
近年、ネットワーク環境の普及に伴い、複数のユーザが複数の画像形成装置を共有して利用することが一般的になっている。それに伴い、情報処理装置から一意に画像形成装置を指定して印刷を行うのではなく、所望の画像形成装置から印刷を行える「リモート印刷」が実施されている。この「リモート印刷」は、情報処理装置から入稿された印刷ジョブをプリントサーバで一時的に蓄積する。「リモート印刷」は、所望の画像形成装置でユーザが認証され、そのユーザが印刷ジョブを指定して印刷の実行を指示すると、その印刷ジョブがプリントサーバから、その所望の画像形成装置に送信されて印刷物を生成するものである。このようにユーザは、複数の画像形成装置の内の空いている画像形成装置で印刷したり、エンジン速度の速い画像形成装置で印刷するなど、その時の状況に応じて画像形成装置を使い分けることができる。しかし、ユーザが印刷ジョブを実行する際、そのユーザは画像形成装置の前で、サーバから画像形成装置への印刷ジョブの送信と印刷ジョブのレンダリング処理を待つ必要がある。そのため、「リモート印刷」において、印刷ジョブの送信時間及びレンダリング処理時間を短くする要望が高まっている。例えば特許文献１には、レンダリング処理可能な印刷ジョブ送信装置を用いた技術が記載されている。この技術では、印刷ジョブ送信装置でレンダリング処理を行い、レンダリング後の画像データを画像形成装置に送信する時間と、印刷ジョブを画像形成装置に送信して画像形成装置でレンダリング処理を行う時間とを予測し、予測時間の短い方で処理している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２２５２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１に記載の技術では、印刷開始を指示した後、印刷ジョブの送信及びレンダリング処理に要する時間分、最初から最後まで、ユーザは画像形成装置の前で待たなければならない。
【０００５】
また特許文献１の技術では、「印刷ジョブ全体をレンダリング後に送信」、又は、「印刷ジョブ全体を送信後にレンダリング」のどちらかで処理を行っている。「印刷ジョブ全体をレンダリング後に送信」する処理は、レンダリング処理により生成された画像データのデータ量が大きい場合には送信時間が長くなる。一方で、「印刷ジョブ全体を送信後にレンダリング」する処理は、印刷ジョブによっては、レンダリング処理に時間がかかってしまう。このように印刷ジョブによっては、印刷ジョブ全体ではなく一部をレンダリングして送信した方が、印刷ジョブの送信時間及びレンダリング処理時間が短くなる場合がある。しかし特許文献１の技術では、これらは考慮されていないため、ユーザは必ずしも、最小の待機時間で印刷物を得ることができるとは限らない。
【０００６】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００７】
本発明の目的は、格納されている印刷ジョブの中で、先行レンダリング処理が効果的であるページの領域に対して先行レンダリングを行い、それを印刷ジョブに反映しすることにより、印刷ジョブの印刷に要する時間を短縮する技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係るプリントサーバは以下のような構成を備える。即ち、
受信した印刷ジョブを格納し、印刷ジョブに対する印刷指示に応じて当該印刷ジョブを印刷装置に送信するプリントサーバであって、
印刷ジョブを格納する格納手段と、
前記格納手段に格納している印刷ジョブが、先行レンダリングが必要なページを含むか否か判定する判定手段と、
前記判定手段により先行レンダリングが必要と判定された前記ページに含まれる描画データを含む領域であって、先行レンダリングの対象となる領域を特定する特定手段と、
前記特定手段により特定された前記領域のレンダリングを実行するレンダリング手段と、
前記印刷ジョブの前記領域の描画データを、前記レンダリング手段によりレンダリングされた画像データに基づく描画データで置き換える置き換え手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、格納されている印刷ジョブの中で、先行レンダリング処理が効果的であるページの領域に対して先行レンダリングを行い、それを印刷ジョブに反映することにより、印刷ジョブの印刷に要する時間を短縮できるという効果がある。
【００１０】
本発明のその他の特徴及び利点は、添付図面を参照した以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１１】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係る印刷システムの構成例を説明するブロック図。
【図２】実施形態１に係る印刷ジョブ送信装置による印刷ジョブの蓄積、書誌情報の生成及び格納処理を説明するフローチャート。
【図３】実施形態１に係る印刷ジョブ送信装置による書誌情報の更新処理を説明するフローチャート。
【図４】実施形態１に係る印刷システムにおいてホストコンピュータが印刷ジョブ送信装置に印刷ジョブを送信して留め置く処理の概要を説明するシーケンス図。
【図５】実施形態１に係る印刷ジョブ送信装置が記憶部に記憶している印刷装置の管理テーブル５０１のデータ構成例を示す図。
【図６】実施形態１に係る印刷ジョブ送信装置が留め置いている印刷ジョブを管理するジョブ管理テーブルのデータ構成例を示す図。
【図７】実施形態１に係る印刷システムにおいて、印刷ジョブ送信装置に印刷ジョブが留め置かれている状態でユーザが印刷装置にログインして印刷する処理の概要を説明するシーケンス図。
【図８】実施形態１に係る印刷ジョブ送信装置が実行する、蓄積している印刷ジョブの先行レンダリング処理を説明するフローチャート。
【図９】図８のＳ８０２の先行レンダリング処理が必要なページを特定する処理を説明するフローチャート。
【図１０】図８のＳ８０４のページの先行レンダリング処理を説明するフローチャート。
【図１１】図１０のＳ１００１のページ内の独立矩形の抽出処理を説明するフローチャート。
【図１２】集約印刷が指定された印刷ジョブのページの独立矩形を説明する図。
【図１３】本発明の実施形態１において集約印刷か否かを判定する例を説明する図。
【図１４】図１０のＳ１００２の矩形のレンダリング処理時間の予測処理を説明するフローチャート。
【図１５】図１０のＳ１００３の先行レンダリング処理が必要な矩形を特定する処理を説明するフローチャート。
【図１６】実施形態１における先行レンダリング処理の前後のＰＤＬコマンドの一例を説明する図。
【図１７】実施形態１に係る印刷装置による印刷処理を説明するフローチャート。
【図１８】実施形態２における印刷ジョブ送信装置による図１０のＳ１００１のページ内の独立矩形の抽出処理を説明するフローチャート。
【図１９】実施形態２における、独立矩形の抽出を説明する図（Ａ）と、独立矩形を合成した外接矩形を示す図（Ｂ）。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
［実施形態１］
図１は、本発明の実施形態１に係る印刷システムの構成例を説明するブロック図である。
【００１４】
この印刷システムは、印刷ジョブ送信装置（プリントサーバ）１００と、複数の印刷装置（画像形成装置）１０１〜１０３と、ホストコンピュータ（ＰＣ）１９１とを有している。そしてこれらの装置が、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ Ｎｅｔｗｏｒｋ）１９０、ＴＣＰ／ＩＰ１９２を介して互いに通信可能に接続されている。尚、通信に用いるプロトコルは、ＴＣＰ／ＩＰ以外のＵＤＰなどのプロトコルであってもよい。
【００１５】
印刷装置１０１〜１０３は、複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）であり、ホストコンピュータ１９１からの印刷指示に応じて処理を実行する。尚、これら印刷装置１０１〜１０３は、ＭＦＰ以外のＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）、ＬＢＰ（Ｌａｓｅｒ  Ｂｅａｍ  Ｐｒｉｎｔｅｒ）であってもよい。また印刷装置１０１〜１０３は、ＭＦＰ、ＳＦＰ、ＬＢＰ以外のプリント方式のプリンタであってもよい。印刷装置１０１と印刷装置１０２，１０３とは同一の構成を有するため、以下、印刷装置１０１の構成について説明する。
【００１６】
印刷装置１０１は、リーダ部１４０、操作部１５０、記憶部１６１、認証部１７０、プリンタ部１８０、及び、これらを制御する制御部１３０を有している。制御部１３０は、ＣＰＵ１３２、ＲＯＭ１３４、ＲＡＭ１３６等を有し、ＣＰＵ１３２がＲＯＭ１３４又は他の記憶媒体（不図示）に格納されたプログラムをＲＡＭ１３６に展開し、その展開したプログラムを実行して印刷装置１０１全体を統括制御する。ＲＡＭ１３６は、ＣＰＵ１３２の作業領域として用いられる。例えば、制御部１３０は、ＣＰＵ１３２にレンダリング処理等を行うための予め決められたプログラムをロードする構成をとる。またレンダリング処理は、ここでは記述しないが、専用のハードウェアにより実行されるようにしても良い。
【００１７】
リーダ部１４０は、制御部１３０の指示に従って原稿の画像の読み取りを行う。プリンタ部１８０は、制御部１３０の指示に従ってプリンタエンジン（不図示）を用いて画像データに基づく印刷を行う。操作部１５０は、ユーザが操作を行うための操作キー、及び画像データの表示や、ユーザに各種機能の表示／設定等を行わせるための表示器を備え、ユーザによる操作情報等を制御部１３０へ通知する。記憶部１６１は、ＣＰＵ１３２の作業領域として利用され、また印刷データなどのデータの保存に利用される。認証部１７０は、ＩＤカードなどからのユーザの認証情報を取得して、その認証結果を印刷装置１０１の制御部１３０や印刷ジョブ送信装置１００の制御部１１０へ通知する。
【００１８】
次に、ホストコンピュータ１９１で実行される処理の概要を説明する。尚、ホストコンピュータ１９１は、一般的なコンピュータと同一の構成要素を有するため、そのハードウェア構成等の説明を省略する。
【００１９】
ホストコンピュータ１９１は、アプリケーションからＯＳを介して依頼された印刷命令を基にプリンタドライバを用いて、印刷装置１０１〜１０３や印刷ジョブ送信装置１００に印刷ジョブを送信する。この印刷ジョブは、印刷装置１０１〜１０３や印刷ジョブ送信装置１００が解釈可能なページ記述言語（ＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述されたＰＤＬデータを含んでいる。こうして印刷命令ごとに変換及び生成されるＰＤＬコマンドで構成されたＰＤＬデータに基づいて印刷ジョブが生成される。そしてホストコンピュータ１９１は、その印刷ジョブを、ＬＡＮ１９０、ＴＣＰ／ＩＰ１９２を経由して印刷ジョブ送信装置１００へ送信する。この印刷ジョブには、その印刷ジョブを生成、又は送信したユーザを識別するためのユーザ情報が埋め込まれているものとする。
【００２０】
印刷ジョブ送信装置１００はプリントサーバであり、ホストコンピュータ１９１から送信される印刷ジョブを保存する役割や、保存された印刷ジョブの書誌情報を管理する書誌管理サーバの役割を果たすものとして説明を行う。印刷ジョブ送信装置１００は、記憶部１６０と、各部を制御する制御部１１０とを有している。制御部１１０は、ＣＰＵ１１２、ＲＯＭ１１４、ＲＡＭ１１６等を有している。ＣＰＵ１１２は、ＲＯＭ１１４又は他の記憶媒体（不図示）に格納されたプログラムをＲＡＭ１１６に展開し、その展開したプログラムを実行することにより、この印刷ジョブ送信装置１００全体を統括制御する。ＲＡＭ１１６は、ＣＰＵ１１２の作業領域として用いられる。
【００２１】
図２は、実施形態１に係る印刷ジョブ送信装置１００による印刷ジョブの蓄積、書誌情報の生成及び格納処理を説明するフローチャートである。この処理は、例えばＣＰＵ１１２が、ＲＯＭ１１４からＲＡＭ１１６に展開したプログラムを実行することにより達成される。
【００２２】
先ずＳ２０１でＣＰＵ１１２は、ホストコンピュータ１９１からＬＡＮ１９０、ＴＣＰ／ＩＰ１９２を経由して印刷ジョブを受信し、ＲＡＭ１１６又は記憶部１６０の作業領域に一時保存する。次にＳ２０２に進みＣＰＵ１１２は、その作業領域の印刷ジョブに基づいて書誌情報を生成する。この書誌情報は、ユーザ情報、カラーモード、部数、片面／両面、ページ数などの機種依存性の無い情報、またステイプル、画像処理、給排紙段などの機種依存性のある情報や、用紙サイズ等のページごとの情報などの情報を含む。尚、ここで挙げた情報はあくまでも一例であり、書誌情報はこれら情報に限定されるものではない。次にＳ２０３に進みＣＰＵ１１２は、作業領域の印刷ジョブと書誌情報を記憶部１６０に保存して、この処理を終了する。
【００２３】
図３は、実施形態１に係る印刷ジョブ送信装置１００による書誌情報の更新処理を説明するフローチャートである。この処理は、例えばＣＰＵ１１２が、ＲＯＭ１１４からＲＡＭ１１６に展開したプログラムを実行することにより達成される。
【００２４】
まずＳ３０１でＣＰＵ１１２は、印刷ジョブに基づいて書誌情報を生成し、ＲＡＭ１１６或いは記憶部１６０の作業領域に一時保存する。次にＳ３０２に進みＣＰＵ１１２は、その作業領域の書誌情報に基づいてユーザ情報を確認する。次にＳ３０３に進みＣＰＵ１１２は、その書誌情報を、そのユーザの書誌情報リストに追記して書誌情報を更新して、この処理を終了する。尚、そのユーザの書誌情報リストが無い場合には、新規に書誌情報リストの作成を行うものとする。
【００２５】
図４は、実施形態１に係る印刷システムにおいてホストコンピュータ１９１が印刷ジョブ送信装置１００に印刷ジョブを送信して留め置く処理の概要を説明するシーケンス図である。
【００２６】
先ずＳ４０１で、ユーザがホストコンピュータ１９１にログインし、任意のアプリケーションを実行して、Ｓ４０２でデータの印刷を要求する。これによりホストコンピュータ１９１はＳ４０３で、そのユーザのＩＤ（ユーザ識別子）を取得する。そしてＳ４０４で、その取得したユーザ識別子を印刷ジョブに付与し、Ｓ４０５で、その印刷ジョブをホストコンピュータ１９１から印刷ジョブ送信装置１００に送信する。
【００２７】
これにより印刷ジョブ送信装置１００は、その印刷ジョブを受信するとＳ４０６で、その受信した印刷ジョブを記憶部１６０に保存する。次にＳ４０７で印刷ジョブ送信装置１００は、その印刷ジョブに付与されたユーザ識別子を抽出して書誌情報を作成する。そしてＳ４０８で印刷ジョブ送信装置１００は、その作成した書誌情報を記憶部１６０に保存する。印刷ジョブ送信装置１００は、書誌情報の保存を終えるとＳ４０９で、図８を参照して後述する先行処理を開始する。この先行処理で、印刷ジョブの部分的な先行レンダリング処理を行う。尚、Ｓ４０６〜Ｓ４０７の処理は、印刷ジョブ送信装置１００のＣＰＵ１１２が、ＲＡＭ１１６に展開したプログラムを実行することにより達成される。
【００２８】
図５は、実施形態１に係る印刷ジョブ送信装置１００が記憶部１６０に記憶している印刷装置の管理テーブル５０１のデータ構成例を示す図である。
【００２９】
この管理テーブル５０１は、この印刷ジョブ送信装置１００とネットワーク１９０を介して接続されている装置を管理している。装置ＩＤ５０２は、ネットワーク１９０を介して接続されている印刷装置の識別子である。ここでは図１の印刷装置１０１〜１０３の参照番号に対応させている。装置タイプ５０３は、ネットワーク１９０を介して接続されている装置のタイプ、即ち、印刷装置又はサーバを示す。ここでは装置ＩＤ５０２は、印刷装置であるため、装置タイプ５０３は「印刷装置」となっている。アドレス５０４はネットワークアドレスで、ネットワークのプロトコルとネットワーク上で接続を識別するためのアドレスを示す。転送速度５０５は、印刷ジョブ送信装置１００と印刷装置との間の実際の転送速度を示す。アドレス５０４及び転送速度５０５に格納する情報は、印刷ジョブ送信装置１００が起動したとき、或いは印刷装置とネットワーク接続されたときに、その情報を印刷装置から取得して、この管理テーブル５０１へ適時格納する。エンジン速度５０６は、対応する印刷装置が１分間に最大何枚印刷可能かを示す情報である。ここでは印刷装置１０１のエンジン速度が最も速く、印刷装置１０２のエンジン速度が最も遅くなっている。
【００３０】
図６は、実施形態１に係る印刷ジョブ送信装置１００が留め置いている印刷ジョブを管理するジョブ管理テーブル６１０のデータ構成例を示す図である。
【００３１】
ジョブＩＤ６０１は、留め置き印刷ジョブを識別するためのジョブＩＤである。ユーザＩＤ６０２は、その留め置き印刷ジョブを送信したユーザを識別するためのユーザＩＤである。ファイル格納場所６０３は、その印刷ジョブに含まれるドキュメントのファイル名と、その印刷ジョブが格納されている保存先を含んでいる。印刷設定情報６０４は、その印刷ジョブに適用する印刷設定情報で、カラーモード、片面／両面等の印刷モード、２ｉｎ１等のページ集約情報などを含んでいる。ページ数６０５は、印刷するページ数を示す。ＰＤＬ種類６０６は、送られてきた印刷ジョブがどのＰＤＬに基づいて記述されているかを示す。（レンダリング予測時間＋転送時間）６０７は、予測して得られたページごとのレンダリングに要する予測時間と、予測して得られたデータ転送時間を示す。レンダリング後画像情報６０８は、上述の予測の結果、先行レンダリングを実施して得られたレンダリング済みページの画像データの保存情報を示す。即ち、レンダリング後の画像データのファイル名と、そのファイルサイズ（データサイズ）とが一時的に格納される。ＰＤＬデータ６０９は、実際のＰＤＬデータである。
【００３２】
このジョブ管理テーブル６１０の項目６０１〜６０７は、先行レンダリング前の情報である。レンダリング後画像情報６０８は、先行レンダリング後に生成された画像データに基づく情報であり、先行レンダリング後に、その画像データのファイル名とファイルサイズとを取得して、このジョブ管理テーブル６１０を更新する。ＰＤＬデータ６０９は、先行レンダリング前であれば、印刷ジョブに含まれているＰＤＬデータそのものであり、先行レンダリング後であれば、レンダリング済みのＰＤＬデータに代えて、加工後のＰＤＬデータを格納する。
【００３３】
尚、ここでは、ＰＤＬデータ６０９は、先行レンダリング前のＰＤＬ、又は、先行レンダリング後のＰＤＬデータを格納する構成を取っているが、両方格納し、転送速度などの状況に応じて、印刷装置に送信するＰＤＬデータを決める構成でもよい。その際、レンダリング後画像情報６０８に格納されているファイルサイズと、転送速度５０５などを用いて、先行レンダリング後のＰＤＬデータの転送時間を予測して、いずれのデータを送信するか判定するようにしてもよい。
【００３４】
図７は、実施形態１に係る印刷システムにおいて、印刷ジョブ送信装置１００に印刷ジョブが留め置かれている状態でユーザが印刷装置１０１にログインして印刷する処理の概要を説明するシーケンス図である。尚、ここでは印刷装置１０１を例に説明するが、印刷装置１０２，１０３でも同様である。
【００３５】
まずＳ７０１でユーザは、印刷装置１０１の操作部１５０を介してユーザ情報を入力して印刷装置１０１にログインする。ユーザが認証部１７０によってユーザの認証に成功しログインに成功するとＳ７０２で印刷装置１０１のＣＰＵ１３２は、印刷ジョブ送信装置１００に書誌情報リストを要求する。これによりＳ７０３で印刷ジョブ送信装置１００から送信された書誌情報リストを受信し、印刷装置１０１のＣＰＵ１３２はＳ７０４で、操作部１５０に印刷ジョブの一覧を表示する。そしてユーザがＳ７０５で、操作部１５０を介して所望の印刷ジョブを指定してプリントを指示する。これによりＳ７０６で印刷装置１０１のＣＰＵ１３２は、その書誌情報に記載されている保管機器（印刷ジョブ送信装置１００）に対して、印刷ジョブの取得要求を行う。これにより印刷ジョブ送信装置１００はＳ７０７で、その要求された印刷ジョブを印刷装置に１０１に送信する。そしてＳ７０８で印刷装置１０１のＣＰＵ１３２により、その印刷ジョブのレンダリング処理を実行し、Ｓ７０９でそのレンダリング処理の結果に基づいてプリンタ部１９０を使用して印刷処理を行う。
【００３６】
尚、Ｓ７０８のレンダリング処理では、受信した印刷ジョブが、印刷ジョブ送信装置１００で、後述する先行レンダリング処理が完了していれば、印刷装置１０１は、そのレンダリング済の画像データに基づいて印刷することができる。また、その印刷ジョブの一部がレンダリング処理済であれば、その一部はレンダリング済の画像データに基づいて印刷し、その他の未処理の部分は、印刷装置１０１がレンダリングして印刷することになる。また受信した印刷ジョブのレンダリングがなされていないときは、従来と同様に、印刷装置１０１が、その印刷ジョブをレンダリングして印刷する。
【００３７】
図８は、実施形態１に係る印刷ジョブ送信装置１００が実行する、留め置いている印刷ジョブの先行レンダリング処理を説明するフローチャートである。この処理は、例えば印刷ジョブ送信装置１００のＣＰＵ１１２が、ＲＯＭ１１４からＲＡＭ１１６に展開したプログラムを実行することにより達成される。
【００３８】
先ずＳ８０１でＣＰＵ１１２は、記憶部１６０に保存されている印刷ジョブの各ページのレンダリング処理に要する時間を予測する。次にＳ８０２に進みＣＰＵ１１２は、図９を参照して後述するページ特定処理により、その印刷ジョブにおいて、レンダリング処理に多くの時間を要するページを特定する。次にＳ８０３に進みＣＰＵ１１２は、先行してレンダリング処理を行う必要があるページが存在するかどうか判定し、必要なページが存在しない場合はこの処理を終了する。一方、Ｓ８０３でＣＰＵ１１２は、先行レンダリング処理が必要なページが存在すると判定するとＳ８０４へ進む。Ｓ８０４でＣＰＵ１１２は、図１０を参照して後述する、ページの先行レンダリング処理により、先行してレンダリング処理が必要な、特定されたページをレンダリング処理する。そしてＳ８０５に進みＣＰＵ１１２は、先行レンダリング処理が必要なページで、まだレンダリング処理を行っていないページがあるかどうか判定する。まだレンダリング処理を行っていないページがあればＳ８０４に戻り、先行レンダリング処理が必要なページのレンダリング処理が完了していれば、この処理を終了する。
【００３９】
図９は、図８のＳ８０２の先行レンダリング処理が必要なページを特定する処理を説明するフローチャートである。
【００４０】
まずＳ９０１でＣＰＵ１１２は、印刷ジョブ送信装置１００とネットワーク１９０を介して接続されている印刷装置１０１〜１０３の内、最も高速のエンジン速度を取得する。図５の例では、印刷装置１０１のエンジン速度が最も高速で５０枚／分である。次にＳ９０２に進みＣＰＵ１１２は、Ｓ９０１で取得したエンジン速度を基に、１枚当たりの理想の印刷時間を算出する。ここでは、エンジン速度が５０枚／分であるため、１枚当たりの理想の印刷時間は１．２秒となる。次にＳ９０３に進みＣＰＵ１１２は、先行レンダリングの必要なページを特定するために、その印刷ジョブのページ数分、以下の処理を繰り返し実行する。
【００４１】
Ｓ９０４でＣＰＵ１１２は、該当ページのレンダリングに要する時間を予測する。次にＳ９０５に進みＣＰＵ１１２は、Ｓ９０４で取得したページのレンダリングの予測時間が、Ｓ９０２で求めた１枚当たりの理想の印刷時間よりも長いか否かを判定する。ここで、レンダリングの予測時間の方が短いときは、そのページは先行レンダリング処理の対象でないためＳ９０７へ進んで、次のページの処理を行う。一方、レンダリングの予測時間の方が長いと判定するとＳ９０６に進みＣＰＵ１１２は、そのページを先行レンダリング処理が必要な対象ページとして、そのページのレンダリング予測時間と共に登録してＳ９０７に進む。Ｓ９０７でＣＰＵ１１２は、次のページへと処理を進める。Ｓ９０７で次に処理するページがなければ処理を終了とする。
【００４２】
尚、上述の例では、１ページのレンダリング予測時間と１枚当たりの理想の印刷時間とに基づいて先行レンダリング処理が必要なページを特定したが、本発明はこれに限定されない。例えば、そのページのレンダリング予測時間と、データの転送時間の予測時間との合計が所定値以上かどうかにより、ページを特定するようにしても良い。また、先行レンダリング処理が必要なページを特定する際の基準として、エンジン速度を例として挙げたが、他のパラメータを利用するようにしても良い。
【００４３】
図１０は、図８のＳ８０４のページの先行レンダリング処理を説明するフローチャートである。
【００４４】
まずＳ１００１でＣＰＵ１１２は、図１１を参照して後述するページ内の独立矩形抽出処理により、そのページの独立矩形を抽出する。尚、この独立矩形とは、全ての描画が矩形内に収まっており、矩形の内外に跨る描画が無い矩形を意味する。次にＳ１００２に進みＣＰＵ１１２は、図１４を参照して後述する矩形のレンダリング処理時間の予測処理により、Ｓ１００１で抽出された各矩形のレンダリング処理に要する時間を予測する。次にＳ１００３に進みＣＰＵ１１２は、図１５を参照して後述する矩形特定処理により、先行レンダリング処理が必要な矩形を特定する。
【００４５】
そしてＳ１００４に進みＣＰＵ１１２は、先行レンダリング処理が必要な矩形が存在するかどうか判定し、存在しないと判定するこの処理を終了して呼び出し元に戻る。一方、先行レンダリング処理が必要な矩形が存在すると判定するとＳ１００５へ進む。Ｓ１００５でＣＰＵ１１２は、先行レンダリング処理が必要な矩形が複数ページあった場合には、レンダリング処理に最も時間を要する矩形から順にレンダリング処理を実行する。そしてＳ１００６に進みＣＰＵ１１２は、先行レンダリング処理を行っている際に、印刷装置１０１〜１０３から、現在処理中の印刷ジョブの取得要求があるか否かを判定する。ここで印刷ジョブの取得要求があればレンダリング処理を中止してＳ１００８へ進み、印刷ジョブの取得要求がなければＳ１００７へ進む。Ｓ１００７でＣＰＵ１１２は、先行レンダリング処理が必要な矩形を全てをレンダリングできたか否かを判定し、全てレンダリングできていればＳ１００８へ進み、そうでないときはＳ１００５へ戻り、レンダリング処理を続行する。
【００４６】
Ｓ１００８は、印刷装置１０１から印刷ジョブの取得要求を受け取ったとき、又は、レンダリング処理が必要な矩形のレンダリング処理を全て完了した後に実行される。Ｓ１００８でＣＰＵ１１２は、その時点でレンダリングを完了している矩形の画像データをＰＤＬコマンドに変換する。そしてＳ１００９に進みＣＰＵ１１２は、レンダリング処理により画像データに変換した元のＰＤＬコマンドを削除する。そしてＳ１０１０に進みＣＰＵ１１２は、Ｓ１００８で画像データから変換した後のＰＤＬコマンドを印刷ジョブに追加する。そしてＣＰＵ１１２は、ＰＤＬコマンドを追加した印刷ジョブを、ＲＡＭ１１６又は記憶部１６０の作業領域に一時保存して呼び出し元に戻る。
【００４７】
図１１は、図１０のＳ１００１のページ内の独立矩形の抽出処理を説明するフローチャートである。
【００４８】
まずＳ１１０１でＣＰＵ１１２は、ページ全体を矩形として算出し、ＲＡＭ１１６又は記憶部１６０の作業領域に一時保存する。次にＳ１１０２に進みＣＰＵ１１２は、その印刷ジョブに、集約印刷されたジョブであることを示すコマンドかあるか否か判定し、集約印刷されたジョブであればＳ１１０３へ進む。Ｓ１１０３でＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に一時保存された矩形を取り出し、矩形の長辺を均等に二分割した二つの矩形を算出し、矩形情報を更新する。
【００４９】
図１２は、集約印刷が指定された印刷ジョブのページの独立矩形を説明する図である。図１２（Ａ）は、２ページを１ページに集約する集約印刷を示し、図１２（Ｂ）は、４ページを１ページに集約する集約印刷を示している。
【００５０】
図１２（Ａ）では、ページ１２０１を、矩形１２０２と矩形１２０３の２つの矩形に分割した例を示している。
【００５１】
Ｓ１１０４でＣＰＵ１１２は、集約印刷処理されたジョブが、２ページを集約したことを示すコマンドであるか否かを判定し、２ページの集約であれば呼び出し元に戻り、２ページの集約でなければＳ１１０５へ進む。Ｓ１１０５でＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に一時保存された全ての矩形を取り出し、それぞれの矩形の長辺を均等に二分割した二つの矩形を算出して矩形情報を更新し、呼び出し元に戻る。
【００５２】
図１２（Ｂ）は、ページ１２０４を、矩形１２０５〜１２０８の４つの矩形に分割した例を示している。
【００５３】
一方、Ｓ１１０２でＣＰＵ１１２は、集約印刷されたジョブでないときはＳ１１０６に進みＣＰＵ１１２は、ページ全体の長辺を均等に二分割した位置を算出する。
【００５４】
図１３（Ａ）は、２ページを１ページに集約したと判定可能であることを示す図で、線１３０１は、ページの長辺を均等に二分割した位置を示している。
【００５５】
そしてＳ１１０７に進みＣＰＵ１１２は、その印刷ジョブの対象ページの描画データを取得する。次にＳ１１０８に進みＣＰＵ１１２は、描画データがあるか否かを判定し、あればＳ１１０９へ進み、なければＳ１１１０へ進む。Ｓ１１０９でＣＰＵ１１２は、Ｓ１１０６で算出した位置を跨ぐ図形か否かを判定し、跨ぐ図形でなければＳ１１０７へ戻り、跨ぐ図形であれば呼び出し元に戻る。
【００５６】
図１３（Ａ）は、いずれの描画データも線１３０１を跨がないことを示す図である。また、図１３（Ｂ）は、図形１３０２が線１３０１を跨ぐ図形であることを示す図である。つまり、図１３（Ａ）は２ページを１ページに集約したページと判定でき、一方、図１３（Ｂ）は、２ページを１ページに集約したページでないと判定できる。
【００５７】
Ｓ１１１０でＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に一時保存された矩形を取り出し、矩形の長辺を均等に二分割した二つの矩形を算出し、矩形情報を更新する。次にＳ１１１１に進みＣＰＵ１１２は、ページ全体の短辺を均等に二分割した位置を算出する。
【００５８】
図１３（Ｃ）は、４ページを１ページに集約したと判定可能であることを示す図で、線１３０３は、ページの短辺を均等に二分割した位置を示している。
【００５９】
次にＳ１１１２に進みＣＰＵ１１２は、印刷ジョブ中の対象ページの描画データを取得する。次にＳ１１１３に進みＣＰＵ１１２は、描画データがあるか否かを判定し、あればＳ１１１４へ進み、なければＳ１１１５へ進む。Ｓ１１１４でＣＰＵ１１２は、Ｓ１１１１で算出した位置を跨ぐ図形か否かを判定し、跨ぐ図形でなければＳ１１１２へ戻り、跨ぐ図形であれば呼び出し元に戻る。
【００６０】
図１３（Ｃ）は、いずれの描画データも線１３０３を跨がないことを示す図である。また、図１３（Ｄ）は図形１３０４が線１３０３を跨ぐ図形であることを示す図である。つまり、図１３（Ｃ）は４ページを１ページに集約したページと判定でき、一方、図１３（Ｄ）は、４ページを１ページに集約したページでないと判定できる。
【００６１】
またＳ１１１５でＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に一時保存された全ての矩形を取り出し、それぞれの矩形の長辺を均等に二分割した二つの矩形を算出して矩形情報を更新し、呼び出し元に戻る。
【００６２】
この処理により、ページ集約を含む印刷ジョブであっても、その印刷ジョブのページに含まれる、図形を跨がない独立した矩形領域を抽出することができる。
【００６３】
図１４は、図１０のＳ１００２の矩形のレンダリング処理時間の予測処理を説明するフローチャートである。
【００６４】
まずＳ１４０１でＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に一時保存された未処理の矩形情報を取得する。次にＳ１４０２に進みＣＰＵ１１２は、未処理の矩形の有無を判定し、あればＳ１４０３へ進み、なければ呼び出し元に戻る。Ｓ１４０３でＣＰＵ１１２は、取得した矩形に対応するレンダリング予測時間をゼロに初期化する。尚、矩形ごとのレンダリング予測時間はＲＡＭ１１６又は記憶部１６０の作業領域に一時保存する。次にＳ１４０４に進みＣＰＵ１１２は、その印刷ジョブの対象ページの描画データから、対象矩形内の描画データを取得する。ここでは、描画データの描画位置が矩形内の座標であるか否かを判定し、描画位置が矩形内にある描画データを取得すればよい。次にＳ１４０５に進みＣＰＵ１１２は、矩形内の描画データの有無を判定し、描画データがあればＳ１４０６へ進み、なければ次の矩形の処理を行うためＳ１４０１に戻る。Ｓ１４０６でＣＰＵ１１２は、その矩形内の描画データのレンダリング予測時間を取得する。尚、レンダリング予測時間の取得は、一例として描画データごとに描画指定のパラメータ等に応じた係数を予め情報として保持しておき、その情報と実際の描画データとに基づいて取得することができる。そしてＳ１４０７に進みＣＰＵ１１２は、Ｓ１４０６で取得した予測時間を、その矩形に対するレンダリング予測時間に加算してＳ１４０４に進む。
【００６５】
この処理により、抽出されたページの各矩形領域に含まれる描画データのレンダリング予測時間を取得することにより、各矩形領域のレンダリング予測時間を取得することができる。
【００６６】
図１５は、図１０のＳ１００３の先行レンダリング処理が必要な矩形を特定する処理を説明するフローチャートである。
【００６７】
まずＳ１５０１でＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に一時保存された、各矩形ごとのレンダリング予測時間から、最も予測時間の大きい矩形を抽出する。次にＳ１５０２に進みＣＰＵ１１２は、抽出した矩形を先行レンダリングの対象矩形として、ＲＡＭ１１６又は記憶部１６０の作業領域に登録する。次にＳ１５０３に進みＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に登録されている対象ページのレンダリング予測時間から、Ｓ１５０２で登録した対象矩形の予測時間を差し引く。そしてＳ１５０４に進みＣＰＵ１１２は、Ｓ１５０３で得られた対象ページの差分レンダリング予測時間が、１枚当たりの理想の印刷時間よりも長いかどうか判定する。ここで、その差分が、理想の印刷時間よりも長いと判定するとＳ１５０５へ進み、そうでないときは、レンダリング対象の領域が特定できたので呼び出し元に戻る。Ｓ１５０５でＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に一時保存された、そのページの各矩形のレンダリング予測時間から、次に予測時間の大きい矩形を抽出する。そしてＳ１５０６に進みＣＰＵ１１２は、矩形が抽出できたかを判定し、抽出できたと判定するとＳ１５０２へ進み、矩形が抽出できないと判定すると呼び出し元に戻る。
【００６８】
これにより、その対象ページにおいて先行レンダリングを行う必要のある矩形、即ち、その矩形の先行レンダリング予測を実施しないと、その対象ページのレンダリング予測時間が理想の印刷時間よりも長くなる矩形を全て抽出することができる。言い換えれば、対象ページのレンダリング予測時間に最も大きく影響する一つ或いは複数の矩形を、先行レンダリングを行う必要のある矩形として特定できる。
【００６９】
図１６は、実施形態１における先行レンダリング処理の前後のＰＤＬコマンドの一例を説明する図である。図１６（Ａ）は、先行レンダリング処理の前の印刷ジョブのＰＤＬコマンドの構成例を示し、図１６（Ｂ）は、先行レンダリング処理後の印刷ジョブのＰＤＬコマンドの構成例を示している。
【００７０】
図１６（Ａ）において、ＰＤＬコマンドの構成は、ＰＤＬの言語仕様に基づいて予め定義されたコマンド群１６２２と、各コマンドに付加されて指示内容を規定し、或いは描画データの詳細を示すパラメータ群１６２３とを含む。パラメータ群１６２３には、ＰＤＬ言語仕様に基づいて、各コマンドに必須の項目や、初期値が決まっていて必要に応じて付加すればよい項目などが存在する。
【００７１】
実施形態１において、印刷ジョブの開始及び終了を示すコマンド「ＢｅｇｉｎＪｏｂ」１６０１と、コマンド「ＥｎｄＪｏｂ」１６２１とに挟まれた２ページ分のＰＤＬコマンドが階層構造を成している印刷ジョブを例として示している。即ち、この印刷ジョブの構造には、ページ記述の開始及び終了をそれぞれ示すページ開始コマンド「ＢｅｇｉｎＰａｇｅ」１６０２，１６１６、及びページ終了コマンド「ＥｎｄＰａｇｅ」１６１５，１６２０が、それぞれ対となった２つのページ構造が含まれている。そして、これらページ構造内に、各種描画処理に用いるコマンド群が含まれている。
【００７２】
ここで描画処理のためのコマンド群の例として、リソースであるフォントデータを記憶部１６１に登録し、印刷するためのコマンド群が示されている。具体的には、ページ１において、フォントを指定するためのＩＤや共通データであるフォントヘッダをパラメータとする「ＤｏｗｎｌｏａｄＦｏｎｔ」１６０３、文字単位のフォントデータを登録する「ＤｏｗｎｌｏａｄＣｈａｒ」１６０４〜１６０６が含まれる。「ＤｏｗｎｌｏａｄＣｈａｒ」は、文字を特定するためのＣｈａｒＩＤ、及びグリフ形状を表現したパターンデータをパラメータとして持つ。そして、ＣｈａｒＩＤをパラメータとして持つコマンド「ＤｒａｗＣｈａｒ」１６０７によって、登録された文字パターンが印刷される。以下、このような文字を印刷するためのフォントデータを登録したり削除したりするコマンド群をリソース制御コマンドと呼ぶ。但し、リソース制御コマンドは、ＤｒａｗＣｈａｒを含まない。
【００７３】
また、描画処理のためのコマンド群の例として、グラフィックやイメージを印刷するためのコマンド群についても示している。グラフィックを描画するためのコマンド「ＤｒａｗＲｅｃｔ」１６０８や「ＤｒａｗＰｏｌｙｇｏｎ」１６０９，１６１０，１６１４は、矩形などのグラフィックを表現することが可能である。イメージを描画するためのコマンド「ＢｅｇｉｎＩｍａｇｅ」１６１１、「ＲｅａｄＩｍａｇｅ」１６１２、「ＥｎｄＩｍａｇｅ」１６１３は、この３つのコマンドがセットになっており、この３つのコマンドで１枚のイメージを表現することが可能である。
【００７４】
実施形態１に示したＰＤＬコマンドでは、登録されたフォントデータは、コマンドにより明確に削除指示がなされるか、ジョブ終了コマンドが発行されるまでの間、複数のページにまたがって有効となる（リソース継承レベルがジョブ）。そのため、ページ２で、「ＤｏｗｎｌｏａｄＦｏｎｔ」１６１７で、フォント登録時と同じフォントＩＤ＝１を指定し、ページ１と同じＦｏｎｔＳｅｔコマンドを発行して、ページ１で登録したフォントを処理対象とする。そして、「ＤｏｗｎｌｏａｄＣｈａｒ」１６１８で、ＣｈａｒＩＤ＝３の文字を追加登録し、コマンド「ＤｒａｗＣｈａｒ」１６１９によって、ページ１及びページ２で登録された文字（ＣｈａｒＩＤ＝０，３，２）を印刷している。
【００７５】
尚、実際には、文字サイズや印刷方向、あるいは印刷色や修飾指定など、様々なパラメータが指定されるのが通常であるが、簡単化のために、ここではその説明を省略する。
【００７６】
ここで示したように、リソース継承レベルがジョブの場合は、リソース制御コマンドによって登録された文字（ＣｈａｒＩＤ＝０，１，２）は、後続するページ内でも参照して印刷することが可能である。
【００７７】
図１６（Ｂ）は、ページ１の一部のコマンド群１６２４を先行レンダリングし、レンダリング後の画像をＰＤＬコマンドに変換し、レンダリング前のＰＤＬコマンドと差し替えたＰＤＬの構成例を示している。ページ１のコマンド群１６２４を先行レンダリング指示に応じて、レンダリング後の画像をコマンド群１６５１で示すイメージコマンド「ＢｅｇｉｎＩｍａｇｅ」１６３７、「ＲｅａｄＩｍａｇｅ」１６３８、「ＥｎｄＩｍａｇｅ」１６３９に変換する。そして、ページ１で先行レンダリングした部分を、変換したコマンドで置き換えるために、レンダリング前のＰＤＬコマンドを削除する。しかし、リソース制御コマンド１６０３〜１６０６は、ページ１以降も参照する可能性があるため、リソース制御コマンド１６３３〜１６３６として削除せずに残しておく。これにより、「ＤｏｗｎｌｏａｄＦｏｎｔ」１６３３でフォント登録時と同じフォントＩＤ＝１を指定し、ページ１でＦｏｎｔＳｅｔコマンドを発行して、ページ１で登録したフォントを処理対象とする。そして「ＤｏｗｎｌｏａｄＣｈａｒ」１６３４〜１６３６でページ１の文字を継承し、ページ２の「ＤｏｗｎｌｏａｄＦｏｎｔ」１６１７と「ＤｏｗｎｌｏａｄＣｈａｒ」１６１８で、ＣｈａｒＩＤ＝３を追加登録している。そしてコマンド「ＤｒａｗＣｈａｒ」１６１９によって、ページ１及びページ２で登録された文字（ＣｈａｒＩＤ＝０，３，２）を印刷している。また、ページ１のコマンド群１６５１は、描画コマンドが削除され、イメージコマンド「ＢｅｇｉｎＩｍａｇｅ」１６３７、「ＲｅａｄＩｍａｇｅ」１６３８、「ＥｎｄＩｍａｇｅ」１６３９に差し替えられたことを示している。
【００７８】
印刷装置１０１のＣＰＵ１３２は、図１６（Ｂ）に示すようなデータ構造に加工されたＰＤＬコマンドを受信してレンダリングリンする。このため、印刷装置１０１は解析するコマンド数が減っているので、レンダリング処理の際に必要なＰＤＬコマンドの解析処理の負荷を軽減できる。また、イメージコマンド１６３７〜１６３９は、レンダリング済みの画像データを格納しているため、レンダリングの手間も省略することが可能となる。尚、図１６（Ａ）のリソース１６０５（ＣｈａｒＩＤ＝１）は、ページ１のコマンド群１６２４のみで参照されているため、ページ２を構成するコマンド１６３５として残す必要はない。しかし、このように残しておいても、印刷ジョブのレンダリング処理への影響はない。
【００７９】
尚、実施形態１では、リソース継承レベルがジョブのリソース制御コマンドについて説明した。しかし、リソース継承レベルが、ページのリソース制御コマンドや、リソース制御コマンドのないページであれば、ページ内の描画コマンドを全てイメージコマンド１６３７〜１６３９で置き換えることも可能である。このようなページであれば、更に印刷ジョブのレンダリング処理を高速に行うことができる。
【００８０】
図１７は、実施形態１に係る印刷装置１００による印刷処理を説明するフローチャートである。この処理は、例えば印刷装置１００のＣＰＵ１３２が、ＲＯＭ１３４からＲＡＭ１３６に展開したプログラムを実行することにより達成される。
【００８１】
先ずＳ１７０１で、ユーザが認証部１７０にユーザ情報を入力すると、入力されたユーザ情報が制御部１３０に伝わる。これによりＣＰＵ１３２は、入力されたユーザ認証情報と予め登録されているユーザ情報とを照合し、そのユーザに印刷装置１０１の操作を許可するか否かを判定する。予め登録されているユーザ情報は、印刷装置１０１のＲＡＭ１３６又は記憶部１６１に保存されているものとする。尚、外部の情報処理装置（例えば印刷ジョブ送信装置１００やホストコンピュータ１９１等）に保存されているユーザ情報を利用して照合を行う構成であってもよいし、Ｓ１７０１の判定処理を外部の情報処理装置で行ってもよい。Ｓ１７０１でＣＰＵ１３２は、ユーザの認証に成功したと判定すると認証通知を行ってＳ１７０２へ進み、認証ＮＧと判定すれば、ユーザが再度認証を行う場合にはＳ１７０１に戻るが、行わない場合には、この処理を終了する。Ｓ１７０２でＣＰＵ１３２は、ユーザから操作部１５０を介して、印刷ジョブをプリントするか、キャンセルするかの選択を受け付ける。プリントが選択された場合にはＳ１７０３へ進み、キャンセルが選択された場合は、この処理を終了する。Ｓ１７０３でＣＰＵ１３２は、ＬＡＮ１９０、ＴＣＰ／ＩＰ１９２を経由して、印刷ジョブ送信装置１００にユーザ情報と、指定された印刷ジョブを通知する。ＣＰＵ１３２は、この通知に対応する応答として、印刷ジョブ送信装置１００からＬＡＮ１９０、ＴＣＰ／ＩＰ１９２を経由して、その印刷ジョブと書誌情報を受信する。次にＳ１７０４に進みＣＰＵ１３２は、受信した印刷ジョブと書誌情報とを解釈し、解釈した印刷設定に基づいてレンダリング処理を行って画像データを生成する。このとき、図８を参照して説明した先行レンダリング処理で、印刷ジョブ送信装置１００は、その印刷ジョブで、レンダリング処理に時間を要するページの一部を先行してレンダリング処理していると考えられる。その場合は、Ｓ１７０４でＣＰＵ１３２は、レンダリング処理に時間がかからないページ、即ち、レンダリング処理済みの領域以外のレンダリング処理だけを実行すればよいため、印刷時間の短縮が可能となる。そしてＳ１７０５でＣＰＵ１３２は、レンダリングされた画像データに基づいて、紙などの出力媒体に印刷する一連の印刷処理を行って、この処理を終了する。
【００８２】
以上説明したように実施形態１によれば、印刷ジョブ送信装置１００は、保存している印刷ジョブを一時保存している時間を用いて、その印刷ジョブにおいてレンダリング処理が必要なページの一部を特定する。そして、その特定処理によって、先行レンダリング処理しないか、又は印刷ジョブのページの一部を先行レンダリング処理するかを選択して処理する。そして、先行レンダリングした部分の画像データをＰＤＬコマンドに変換し、先行レンダリングした部分の元のＰＤＬコマンドを、変換後のＰＤＬコマンドで置き換える（図１６）。
【００８３】
これにより印刷ジョブ送信装置１００は、先行レンダリングした部分の画像データの順番や複雑な制御を行うことなく、これまでの印刷ジョブと同じ形式で印刷装置に印刷ジョブを送信することができる。
【００８４】
従来は、印刷ジョブ送信装置で先行レンダリングする際、印刷ジョブ送信装置で印刷ジョブ全体（全ページ）をレンダリングして送信するか、送信してから印刷装置でレンダリング処理する方が効率的かを判定して処理していた。しかし、印刷ジョブの一部をレンダリングして、印刷ジョブとレンダリング済みページの画像データを送信する方が効率的か否かまでは判定していなかった。そのため、必ずしも印刷時間を最適化できていなかった。
【００８５】
これに対して実施形態１では、印刷ジョブの一部だけを先行レンダリングする方が良いかどうかも判定するため、従来よりも、印刷ジョブに応じた先行レンダリング処理を実行できる。
【００８６】
また、留め置いている印刷ジョブで、先行レンダリングが必要なページを判定し、そのページの先行レンダリング処理を行うため、レンダリング処理の負荷を軽減できる。
【００８７】
また、印刷ジョブと画像データを、印刷ジョブとして扱うことで、ここでは記述しないが、ドライバでの印刷設定に対し、後から印刷装置の操作部で設定変更できるなど「留め置き印刷」ならではの機能を活用することも可能となる。
【００８８】
更に、集約印刷のように、１ページに複数ページ分のデータが集約されたページのレンダリングは、その処理に時間が掛かるため、部分的な先行レンダリング処理が有効である。また、先行レンダリングを実施する部分の抽出も容易に行うことが可能となる。
【００８９】
また、先行レンダリングの対象領域を小さくすることで、印刷装置から印刷ジョブの要求を受信することにより先行レンダリング処理が中断されても、先行レンダリング処理済の部分のレンダリング結果を使用して、印刷時間を短縮することができる。
【００９０】
［実施形態２］
次に本発明の実施形態２を説明する。尚、実施形態２に係る印刷システムの構成及び印刷ジョブ送信装置１００、印刷装置１０１〜１３０のハードウェア構成等は前述の実施形態１と同様であるため、その説明を省略する。
【００９１】
図１８は、実施形態２における印刷ジョブ送信装置１００による図１０のＳ１００１のページ内の独立矩形の抽出処理を説明するフローチャートである。この処理は、例えばＣＰＵ１１２が、ＲＯＭ１１４からＲＡＭ１１６に展開したプログラムを実行することにより達成される。
【００９２】
まずＳ１８０１でＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に矩形なしとして矩形の情報を初期化する。次にＳ１８０２に進みＣＰＵ１１２は、印刷ジョブの対象ページの描画データを取得する。次にＳ１８０３に進みＣＰＵ１１２は、そのページ描画データがあるか否かを判定し、あればＳ１８０４へ進み、なければ呼び出し元に戻る。Ｓ１８０４でＣＰＵ１１２は、その描画データの外接矩形を取得して登録する。
【００９３】
図１９（Ａ）は、独立矩形の抽出を説明する図で、枠１９０１〜枠１９０４は各描画データの外接矩形を示している。
【００９４】
次にＳ１８０５に進みＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に登録された全ての矩形に対し、Ｓ１８０５で算出した矩形と交差するか否かを判定する。ここで交差しないと判定するとＳ１８０７へ進み、交差すると判定するとＳ１８０６へ進む。Ｓ１８０６でＣＰＵ１１２は、ＲＡＭ１１６又は記憶部１６０の作業領域に登録された矩形の内、交差する全ての矩形と合成した外接する矩形を取得する。そしてその取得した矩形を再登録してＳ１８０２に戻る。
【００９５】
図１９（Ｂ）は、独立矩形を合成した例を示す図で、交差する枠１９０１〜枠１９０３を合成した枠１９０５で示す外接矩形が独立矩形として取得され、またどの矩形とも交差しない枠１９０６が独立矩形として取得された例を示している。
【００９６】
Ｓ１８０７でＣＰＵ１１２は、Ｓ１８０４で算出した外接矩形をＲＡＭ１１６又は記憶部１６０の作業領域に新たな矩形として登録してＳ１８０２に戻る。
【００９７】
以上説明したように実施形態２によれば、印刷ジョブ送信装置１００は、先行レンダリングする部分を決定する際、独立した矩形の検出を集約印刷でないページに対しても行うことができるため、全ての描画データに対しても矩形部分を抽出できる。
【００９８】
こうして先行レンダリングを行うページの矩形を特定することにより、上述の実施形態１と同様の効果を奏することができる。
【００９９】
尚、上記実施形態１，２では、印刷ジョブ送信装置１００と印刷装置とが別体の例で説明したが本発明はこれに限らず、例えば印刷装置１０１が、印刷ジョブ送信装置１００の留め置き印刷機能を有する構成であっても良い。その場合、印刷装置１０１は、ホストＰＣから、直接、印刷ジョブを受信して格納しておき、ユーザから印刷指示があるまでの間に、その印刷ジョブの先行レンダリングを実行する。そして、認証ユーザによる印刷指示が入力されると、先行レンダリング済みの部分のレンダリング処理時間の分、短い待機時間で印刷することができる。
【０１００】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１０１】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【０１０２】
１００…印刷ジョブ送信装置、１０１〜１０３…印刷装置、１１０，１３０…制御部、１１２，１３２…ＣＰＵ
【図１】
2019049822.tif 000003
【図２】
2019049822.tif 000004
【図３】
2019049822.tif 000005
【図４】
2019049822.tif 000006
【図５】
2019049822.tif 000007
【図６】
2019049822.tif 000008
【図７】
2019049822.tif 000009
【図８】
2019049822.tif 000010
【図９】
2019049822.tif 000011
【図１０】
2019049822.tif 000012
【図１１】
2019049822.tif 000013
【図１２】
2019049822.tif 000014
【図１３】
2019049822.tif 000015
【図１４】
2019049822.tif 000016
【図１５】
2019049822.tif 000017
【図１６】
2019049822.tif 000018
【図１７】
2019049822.tif 000019
【図１８】
2019049822.tif 000020
【図１９】
2019049822.tif 000021