(57)【要約】【課題】本発明は、ネットワーク上のサーバから不必要な印刷データを無駄なタイミングで取得してスプールし続けることなく、効率良く印刷データを取得して印刷処理を行うことができる情報処理システムを提供する。【解決手段】サーバ１０２は、印刷データの印刷設定情報と印刷データの個々のページを構成するデータの位置情報とを含む属性情報を生成して格納する。画像形成装置１０１は、サーバ１０２から属性情報を取得し、該属性情報における印刷設定情報と位置情報を用いて、サーバ１０２に格納された印刷データの印刷対象となるページのデータを取得する。そして、データを取得する際に、ページのサイズ及びデータの転送レートに応じて同時処理セッション数を変更する。【選択図】図８
2015099475.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを格納するサーバと、前記サーバに対して複数のネットワークセッションを使用して並列に前記印刷データを取得する画像形成装置とを備える情報処理システムにおいて、
前記サーバは、
前記印刷データのページ毎の位置情報を含む属性情報を生成する属性情報生成手段を備え、
前記画像形成装置は、
前記サーバから前記属性情報を取得する属性情報取得手段と、
前記属性情報取得手段により前記属性情報を取得したときの取得時間と、前記サーバから取得する印刷データの印刷対象ページのデータのサイズと、取得したデータを結合して復元する復元時間とから前記ネットワークセッションの数を決定する決定手段と、
前記印刷対象ページのデータを前記決定手段により決定されたネットワークセッションの数で取得するデータ取得手段とを備えることを特徴とする情報処理システム。
【請求項２】
前記属性情報取得手段は、前記属性情報を取得する際に、前記属性情報の取得開始から取得完了までの間にかかった時間を計測し、計測した時間と前記属性情報のサイズを基に、単位データサイズあたりの取得時間を計算し、前記属性情報を取得したときの取得時間とすることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記位置情報には、前記印刷データの個々のページを構成するデータの開始位置と終了位置が少なくとも含まれることを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記決定手段は、前記取得された前記属性情報に含まれる前記位置情報に基づいて、前記サーバに格納された印刷データのうち今回取得するデータのトータルサイズを計算し、計算したトータルサイズと、前記属性情報を取得したときの取得時間と、単位データサイズあたりのデータを結合して復元する復元時間とから前記ネットワークセッションの数が最少となるように前記ネットワークセッションの数を変更することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
前記決定手段は、前記取得された前記属性情報に含まれる前記位置情報に基づいて、前記サーバに格納された印刷データのうち今回取得するデータと次に取得するデータのトータルサイズを計算し、計算したトータルサイズと、前記属性情報を取得したときの取得時間と、前記復元時間とから前記ネットワークセッションの数が最少となるように前記ネットワークセッションの数を変更することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項６】
前記データ取得手段は、前記画像形成装置が実行している印刷処理の進捗率が特定の閾値を超えたタイミングで、前記サーバに格納された印刷データにおける次の取得位置から取得を開始し、前記閾値を超えない間は取得を一時中断することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理システム。
【請求項７】
前記属性情報生成手段は、前記位置情報と前記印刷データの印刷種別に基づいて前記属性情報を生成することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理システム。
【請求項８】
印刷データを格納するサーバと、前記サーバに対して複数のネットワークセッションを使用して並列に前記印刷データを取得する画像形成装置とを備える情報処理システムの制御方法において、
前記サーバが、前記印刷データのページ毎の位置情報を含む属性情報を生成する属性情報生成工程を備え、
前記画像形成装置が、前記サーバから前記属性情報を取得する属性情報取得工程と、
前記画像形成装置が、前記属性情報取得工程にて前記属性情報を取得したときの取得時間と、前記サーバから取得する印刷データの印刷対象ページのデータのサイズと、取得したデータを結合して復元する復元時間とから前記ネットワークセッションの数を決定する決定工程と、
前記印刷対象ページのデータを前記決定工程にて決定されたネットワークセッションの数で取得するデータ取得工程とを備えることを特徴とする制御方法。
【請求項９】
請求項８に記載の制御方法を実行させるためのコンピュータに読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム及びその制御方法、並びにプログラムに関し、特に、ネットワーク上のサーバから印刷データを取得する画像形成装置の印刷データの取得方法に関する。
【背景技術】
【０００２】
ネットワーク環境に配置された画像形成装置がもたらすサービスには、サーバ上に格納されているＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データを取得し、該ＰＤＬデータを解析して印刷処理を行うものがある。例えば、クラウド環境上にサーバを構築し、ローカルネットワーク上のパーソナルコンピュータ（ＰＣ）がドキュメントやイメージデータをサーバへ転送すると、該サーバがこれらのデータをＰＤＬデータに変換し、自身のストレージに格納するサービスがある。また、ＰＤＬデータの変換をサーバ側で行うのではなく、ＰＣ側で行った後、このデータをサーバへ転送し、サーバ内のストレージに格納するサービスもある。
【０００３】
サーバ内のストレージに格納されているＰＤＬデータを取得して解析し印刷処理するシステムでは、サーバの設置環境や該ストレージに格納されているＰＤＬデータのデータサイズによって、画像形成装置が取得するのに時間がかかる場合がある。この取得時間を向上させるための対策の１つとして、マルチセッションを用いた取得方法がある。例えば、１つのＰＤＬデータを複数のネットワークセッションを使用して並列に取得する。個々のセッションは１つのＰＤＬデータに対し、それぞれ別々のオフセット位置から他のセッションと重複しない範囲のデータを取得する。個々のセッションが取得したデータを画像形成装置側で結合することによって全データが取得完了するまでの取得時間を短縮させることができる。この方法は、サーバが画像形成装置に対して遠い（要求してから応答が返されるまでの時間が長い）程効果が高い。１セッションで取得する場合、サーバからの応答が遅いと画像形成装置は応答待ちとなり、画像形成装置には無駄な待ち時間となる。この待ち時間に複数のセッションで取得を行うことで全データの取得完了速度が向上する。
【０００４】
しかしながら、この待ち時間を使用して複数のセッションで取得することは画像形成装置のＣＰＵ負荷を増大させることにもつながる。画像形成装置が印刷処理を効率良く行うために必要なことは、今から印刷処理するページの全データがサーバ側から画像形成装置側に届いていること、また印刷処理を行うために必要なＣＰＵ等のリソースが十分であることがあげられる。画像形成装置が今から印刷するページに関係ないデータを取得した場合、一般的にメモリやストレージ等に一時的にスプールすることになる。スプールすることによって、今印刷しているページの次ページの印刷をスムーズに行うことが可能となるが、さらにその次のページ以降をスプールすることは印刷待ちとなるだけである。このデータを取得するために使用した時間とリソースはむしろ現在の印刷処理に回すべきである。一般的には、各ページを別々のデータとして分け、それぞれのページを個別に取得するという方法で印刷したいページを限定して取得することが可能となっている。そして、各ページを個別に取得することで無駄なデータの取得を避けることが可能である（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２８７６２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、マルチセッションを使用した場合、画像形成装置側からは、今から印刷するページに関係するデータがＰＤＬデータ内のどのオフセット位置に存在するかが分からない。また、マルチセッションでは、１つのセッションが１回に取得するデータのサイズは全セッションで固定であることが一般的である（例えば５つのセッションはそれぞれ１回につき１ＭＢｙｔｅを取得する等）。このため、マルチセッションを使用するとＰＤＬデータを高速に取得することができる半面、今から印刷するページに関係ないデータも高速に取得し、現在の印刷処理に無駄なデータをスプールすることになる。
【０００７】
さらに、今から印刷するページに関係ないデータを高速に取得している分、ＣＰＵ負荷が増大し、現在行っている印刷処理にＣＰＵ処理時間が回らなくなってしまう。各ページを別々のデータとして分け、それぞれのページを個別に取得するという方法だと印刷ジョブが各ページ単位で別れてしまう。印刷履歴が別々の情報として残ってしまう等、本来１つの印刷データだったものが個別の印刷データとして扱われることになり、データ管理、履歴管理が煩雑になってしまう。このように、画像形成装置が行う印刷処理と、印刷データの取得処理を効率良く行う手段が必要となる。
【０００８】
本発明は、上記問題に鑑みて成されたものであり、ネットワーク上のサーバから不必要な印刷データを無駄なタイミングで取得してスプールし続けることなく、効率良く印刷データを取得して印刷処理を行うことができる技術を提供する。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の情報処理システムは、印刷データを格納するサーバと、前記サーバに対して複数のネットワークセッションを使用して並列に前記印刷データを取得する画像形成装置とを備える情報処理システムにおいて、前記サーバは、前記印刷データのページ毎の位置情報を含む属性情報を生成する属性情報生成手段を備え、前記画像形成装置は、前記サーバから前記属性情報を取得する属性情報取得手段と、前記属性情報取得手段により前記属性情報を取得したときの取得時間と、前記サーバから取得する印刷データの印刷対象ページのデータのサイズと、取得したデータを結合して復元する復元時間とから前記ネットワークセッションの数を決定する決定手段と、前記印刷対象ページのデータを前記決定手段により決定されたネットワークセッションの数で取得するデータ取得手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ネットワーク上のサーバから印刷する必要のないデータを無駄なタイミングで取得し、スプールし続けることを回避することが可能となり、サーバからの印刷データの取得と印刷処理を効率良く行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る情報処理システムの一例を示す図である。
【図２】図１における画像形成装置のハードウェア構成を示すブロック図である。
【図３】画像形成装置のソフトウェア構成を示すブロック図である。
【図４】サーバのソフトウェア構成を示すブロック図である。
【図５】サーバが生成し、ＰＤＬデータと合わせて保持する属性情報の一例を示す図である。
【図６】サーバが画像形成装置１０１等のデバイス（リモートデバイス）からドキュメント等のデータを受信した場合の動作処理を示すフローチャートである。
【図７】サーバと画像形成装置との間で行うＰＤＬデータの取得方法を説明するための図である。
【図８】画像形成装置におけるＰＤＬデータ取得開始から印刷処理までの流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１３】
図１は、本発明の実施形態に係る情報処理システムの一例を示す図である。
【００１４】
画像形成装置１０１とサーバ１０２とがネットワーク（例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等）を介して接続され、相互に通信可能となっている。画像形成装置１０１は、例えば、コピー機能やプリント機能、ファクシミリ機能、ネットワーク通信機能等の各種機能を備える複合機である。サーバ１０２は、一般的なコンピュータ等の情報処理装置であり、ＣＰＵやＲＡＭ、ＲＯＭ、ハードディスクドライブ（ＨＤＤ）等の不揮発性の記憶装置を備え、各種データを該記憶装置に格納することが可能である。
【００１５】
図２は、図１における画像形成装置１０１のハードウェア構成を示すブロック図である。
【００１６】
画像形成装置１０１は、メインコントローラ２１０と、ＮＩＣ２３０と、操作部２４０と、スキャナ部２５０と、プリンタ部２６０と、ＵＳＢ２７０とを備える。
【００１７】
メインコントローラ２１０は、ＮＩＣ２３０を介してネットワーク１０３に接続されている。メインコントローラ２１０は、ＣＰＵ２１１、拡張Ｉ／Ｆ２１２、ＲＯＭ２１３、ＲＡＭ２１４，ＨＤＤ２１５、ＮＶＲＡＭ２１６、操作部Ｉ／Ｆ２１７、スキャナＩ／Ｆ２１８、プリンタＩ／Ｆ２１９、ＵＳＢ＿Ｉ／Ｆ２２０を備える。
【００１８】
ＣＰＵ２１１は、メインコントローラ２１０内のＲＯＭ２１３やＨＤＤ２１５に格納されたソフトウェアプログラムを実行し、装置全体の制御を行う。ＲＡＭ２１４は、ランダムアクセスメモリであり、ＣＰＵ２１１が装置を制御する際に、一時的なデータの格納などに使用される。ＲＯＭ２１３は、リードオンリーメモリであり、装置のブートプログラムや固定パラメータ等が格納されている。ＨＤＤ２１５は、ハードディスクドライブであり、様々なデータの格納に使用される。ＮＶＲＡＭ２１６は、不揮発性のメモリであり、メインコントローラ２１０の各種設定値を保存するためのものである。
【００１９】
操作部Ｉ／Ｆ（インターフェース）２１７は、操作部２４０を制御し、操作部２４０に備えられた液晶パネルに各種操作画面を表示させ、操作画面を介して入力される指示をＣＰＵ２１１に伝達する。スキャナＩ／Ｆ２１８は、スキャナ部２５０を制御する。スキャナ部２５０は、原稿上の画像を読み取って画像データを生成する。プリンタＩ／Ｆ２１９は、プリンタ部２６０を制御する。プリンタ部２６０は、画像データに基づく画像を用紙等の記録媒体上に印刷する。ＵＳＢ＿Ｉ／Ｆ２２０は、ＵＳＢ２７０を制御する。ＵＳＢ２７０は、外部から差し込まれる不揮発性のＵＳＢメモリを認識し、ＵＳＢ＿Ｉ／Ｆ２２０と連携してＵＳＢメモリ内のファイルシステムを制御することでファイルやディレクトリを認識する。拡張Ｉ／Ｆ２１２は、ＮＩＣ２３０と接続され、ＮＩＣ２３０を介してネットワーク１０３上の外部装置（例えばサーバ１０２）とのデータ通信を制御する。
【００２０】
図３は、画像形成装置１０１のソフトウェア構成を示すブロック図である。図示の各ブロックは、画像形成装置１０１のＲＯＭ２１３またはＨＤＤ２１５に記憶されたソフトウェアモジュールであり、画像形成装置１０１のＣＰＵ２１１が実行することにより以下に説明する所定の機能を実現する。
【００２１】
印刷処理部３０１は、ＰＤＬ解析部３０２から渡される印刷データを印刷する機能を有する。ＰＤＬ解析部３０２は属性解析／データ取得指示部３０３から渡されるＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データを解析し、印刷データへ変換する機能を有する。また、ＰＤＬ解析部３０２は、印刷データを印刷処理部３０１へ渡す機能を有する。
【００２２】
属性解析／データ取得指示部３０３は、セッション管理部３０４に対して、サーバ１０２から取得するＰＤＬデータや、ＰＤＬデータの属性情報を取得し、解析する機能を有する。これらデータの取得、解析の方法については図７、図８を参照して説明する。
【００２３】
また、属性解析／データ取得指示部３０３は、取得データ管理部３０５から、サーバ１０２から取得したＰＤＬデータを取得し、ＰＤＬ解析部３０２へ渡す機能を有する。ＰＤＬ解析部３０２は、属性解析／データ取得指示部３０３との間において、ＰＤＬデータの解析状況を共有する手段を有する。この手段は、属性解析／データ取得指示部３０３からＰＤＬ解析部３０２へのポーリングによる情報共有もしくはＰＤＬ解析部３０２から属性解析／データ取得指示部３０３への特定タイミングにおける通知でもよい。
【００２４】
セッション管理部３０４は、属性解析／データ取得指示部３０３から指示を受けた取得要求に対して、複数の通信部（通信部１、通信部２、・・・、通信部Ｎ）を生成し、それぞれに対してＰＤＬデータや属性情報の取得指示を行う機能を有する。
【００２５】
また、セッション管理部３０４は、生成した各通信部とサーバ１０２との間のネットワークセッションの接続、切断等の指示したり、ネットワークセッション管理を行う機能を有する。また、セッション管理部３０４は、属性解析／データ取得指示部３０３に対して、ＰＤＬデータや属性情報の取得開始、終了等の状況情報を通知する機能を有し、かつ取得した属性情報を属性解析／データ取得指示部３０３へ渡す機能を有する。
【００２６】
取得データ管理部３０５は、サーバ１０２から取得したＰＤＬデータを管理する機能を有する。取得データ管理部３０５は、各通信部が個別に取得したＰＤＬデータを受け取って結合し、印刷するために必要なページ分のＰＤＬデータを生成する。また、取得データ管理部３０５は、属性解析／データ取得指示部３０３に対して、生成したＰＤＬデータを渡す機能を有する。
【００２７】
通信部１＿３０６、通信部２＿３０７、・・・、通信部Ｎ＿３０８は、セッション管理部３０４からの指示を受けてサーバ１０２へ接続し、ＰＤＬデータや属性情報を取得する機能を有する。これらの各通信部は、取得したデータが属性情報の場合はセッション管理部３０４へ渡し、ＰＤＬデータの場合は取得データ管理部３０５へ渡す。
【００２８】
図４は、サーバ１０２のソフトウェア構成を示すブロック図である。図示の各ブロックは、サーバ１０２内のＲＯＭまたはＨＤＤに記憶されたソフトウェアモジュールであり、サーバ１０２内のＣＰＵが実行することにより以下に説明する所定の機能を実現する。
【００２９】
ＰＤＬデータ／属性情報生成部４０１は、リモートＰＣ（不図示）やデバイス（例えば画像形成装置１０１）から渡されるドキュメント等のデータをＰＤＬデータに変換する機能を有する。また、ＰＤＬデータ／属性情報生成部４０１は、ＰＤＬデータを生成する過程において、個々のページを生成するために必要なデータがＰＤＬデータ内のどこに配置しているかを示すオフセット位置の情報を含む属性情報を生成する機能を有する。さらに、ＰＤＬデータ／属性情報生成部４０１は、ファイルシステム４０３に対し、生成したＰＤＬデータ、属性情報をＨＤＤへ格納指示する機能を有する。
【００３０】
通信管理部４０２は、リモートＰＣやデバイスとのネットワーク接続やＨＤＤ（不図示）に格納している各種データの参照、編集、受け渡しを管理する。また、通信管理部４０２は、デバイス等から渡されるドキュメント等のデータに対して、デバイス等からＰＤＬデータ変換の指示があった場合に、このデータをＰＤＬデータ／属性情報生成部４０１へ渡す機能を有する。さらに、通信管理部４０２は、デバイス等から渡されるＰＤＬデータや属性データをＨＤＤ上の特定ファイルパスへ格納する指示があった場合に、受信したデータをファイルシステム４０３に対してＨＤＤへの格納指示を行う機能を有する。また、通信管理部４０２は、デバイス等からのＰＤＬデータ取得要求、属性情報取得要求を、ファイルシステム４０３に対して取得指示を行い、該当するデータをＨＤＤから読み出して応答する機能を有する。
【００３１】
ファイルシステム４０３は、ＨＤＤ内のディレクトリ／ファイル群を管理し、ＰＤＬデータ／属性情報生成部４０１や通信管理部４０２からのファイル格納指示や取得指示に対してＨＤＤ内の実ファイルを処理する機能を有する。
【００３２】
図５は、サーバ１０２が生成し、ＰＤＬデータと合わせて保持する属性情報の一例を示す図である。図示例では、ＸＭＬ形式で記述しているが、記述形式はＸＭＬに限定しない。
【００３３】
図５において、５０１は、ＰＤＬデータのＩＤを示す。本ＩＤは、サーバ１０２が生成するＰＤＬデータ毎に唯一の値となる。
【００３４】
５０２は、ＰＤＬデータ内のページ番号を示すタグである。ＰＤＬデータ内の個々のページ番号を区別し、サーバ１０２はこのタグ内にページ毎の情報を含める。
【００３５】
５０３は、ＰＤＬデータ内の個々のページを構成する箇所のオフセットを示すタグである。サーバ１０２は、このタグ内にページを構成するデータのオフセット位置を記述する。オフセット位置が複数存在する場合、サーバ１０２はそれぞれのオフセット位置を記述する。
【００３６】
５０４は、オフセットの開始位置を示す。併せて、５０５はオフセットの終了位置を示す。ページを構成するデータのオフセットは５０４の値を先頭とし、５０５の値を末尾とする。サーバ１０２は、この開始位置と終了位置の位置情報を記述する。
【００３７】
５０６は、両面印刷のあり／なしを区別する値を示す。両面印刷を行う場合、印刷処理対象となるのは１ページ分ではなく、２ページ分である。そのため、両面印刷の場合、画像形成装置１０１が印刷処理を行う対象となるページが通常印刷とは異なる。画像形成装置１０１の印刷処理を効率良く行うためには、印刷対象処理となっているページを特定することが必要であるため、サーバ１０２は両面印刷のあり／なしについても属性情報に記述する。
【００３８】
５０７は、印刷処理時における２ｉｎ１や４ｉｎ１の印刷を示す。２ｉｎ１や４ｉｎ１印刷の場合、印刷処理対象となるのは１ページ分ではなく、２ページ分であったり、４ページ分であったりする。そのため、２ｉｎ１、４ｉｎ１印刷の場合、画像形成装置が印刷処理を行う対象となるページが通常印刷とは異なる。画像形成装置１０１の印刷処理を効率良く行うためには、印刷対象処理となっているページを特定することが必要であるため、サーバ１０２は２ｉｎ１や４ｉｎ１印刷についても属性情報に記述する。ＰＤＬデータによっては、２ｉｎ１時は２ページ分を、４ｉｎ１時は４ページ分をまとめてＰＤＬデータの１ページ分とする記述形式が存在する。この場合、画像形成装置１０１の印刷処理を効率良く行うために必要なページは１ページのみとなることから、サーバ１０２は５０７の値を１（１ｉｎ１）で記述する。また、５０７の値は２ｉｎ１印刷を例として記述しているが、４ｉｎ１印刷の場合、５０７の値は４となる。
【００３９】
図６は、サーバ１０２が画像形成装置１０１等のデバイス（リモートデバイス）からドキュメント等のデータを受信した場合の動作処理を示すフローチャートである。本処理は、サーバ１０２内のＣＰＵがＨＤＤ等からプログラムを読み出して実行することにより実現される処理である。
【００４０】
図６において、サーバ１０２が画像形成装置１０１からネットワーク１０３を介してデータを受信すると、ＣＰＵは、受信データを解析し（ステップＳ６０１）、ドキュメント等の非ＰＤＬデータか、ＰＤＬデータと属性情報かを判定する（ステップＳ６０２）。サーバ１０２は、ドキュメントデータをＰＤＬデータに変換する機能を有しているが、例えば、リモートＰＣの場合、当該リモートＰＣ内の印刷ドライバがドキュメントを事前にＰＤＬ変換処理し、サーバ１０２へ送信することもある。この場合、サーバ１０２側で行うＰＤＬデータ変換と属性情報生成処理は、リモートＰＣ内の印刷ドライバが行う。このため、サーバ１０２は、受信したデータに対して、自身がＰＤＬデータ変換と属性情報生成処理を行うかどうかを判断する（ステップＳ６０２）。
【００４１】
ステップＳ６０２で受信したデータがＰＤＬデータと属性情報であると判断した場合、ステップＳ６０８へ進む。一方、受信したデータがドキュメント等の非ＰＤＬデータである場合、ＣＰＵは受信したデータをＰＤＬ変換処理し、ＰＤＬデータを生成する（ステップＳ６０３）。
【００４２】
次に、ステップＳ６０４では、ＣＰＵは、生成したＰＤＬデータに対してページ解析処理を行う。ページ解析処理では、個々のページに関する情報がＰＤＬデータ内のどのオフセット位置に含まれるかを解析し、該当するオフセットの開始位置と終了位置をチェックする。ＣＰＵは、ＰＤＬデータ内の全ページに対してページ解析処理を行う。また、ページ解析処理では、対象のＰＤＬデータの両面印刷の有無についてもチェックする。さらにページ解析処理では、１ｉｎ１や２ｉｎ１、４ｉｎ１印刷の印刷種別についてもチェックする。ＰＤＬデータによっては、２ｉｎ１時は２ページ分を、４ｉｎ１時は４ページ分をＰＤＬデータの１ページ内にまとめて記述する方式が存在する。この場合、画像形成装置１０１の印刷処理を効率良く行うために必要なページは１ページのみとなることから、本ケースでは２ｉｎ１、４ｉｎ１印刷であっても１（１ｉｎ１）印刷として扱う。
【００４３】
次に、ステップＳ６０５では、ＣＰＵは、ページ解析処理における個々のページ毎のオフセット開始位置と終了位置を記述し、図５に示すような属性情報を生成する。
【００４４】
次に、ステップＳ６０６では、ＣＰＵは、ページ解析処理における両面印刷の有無情報を生成した属性情報に記述する。
【００４５】
ステップＳ６０７では、ＣＰＵは、ページ解析処理における１ｉｎ１、２ｉｎ１、４ｉｎ１印刷の種別情報を生成した属性情報に記述する。
【００４６】
ステップＳ６０８では、ＣＰＵは、生成したＰＤＬデータと属性情報、もしくは受信したＰＤＬデータと属性情報をＨＤＤに格納して、本処理を終了する。なお、属性情報とＰＤＬデータは１つのファイルデータとして結合されていても別々のファイルデータになっていてもよい。
【００４７】
図７は、サーバ１０２と画像形成装置１０１との間で行うＰＤＬデータの取得方法を説明するための図である。
【００４８】
図７において、７０１は属性情報を示す。
【００４９】
属性解析／データ取得指示部３０３は、セッション管理部３０４を介して、通信部１＿３０６を使用して属性情報７０１をサーバ１０２から取得する。
【００５０】
通信管理部４０２は、通信部１＿３０６からの属性情報取得要求を受けると、ファイルシステム４０３を介してＨＤＤから該当する属性情報７０１を取得し、画像形成装置１０１へ送信する。
【００５１】
セッション管理部３０４は、属性情報７０１を取得する際、取得開始から取得完了までの間にかかった時間を計測する。そして、セッション管理部３０４は、取得した属性情報のサイズと計測時間を基に、相手先との間で１つの通信セッションにおいて、単位データサイズあたりにかかる取得時間を計算し、保持する（以降、これを「ダウンロード時間」と呼称する）。この属性情報の取得、取得時間の計測はＰＤＬデータを取得する前段階で行われる。
【００５２】
また、属性解析／データ取得指示部３０３は、ＰＤＬ解析部３０２との間において、ＰＤＬ解析部３０２が現在解析しているページの解析進捗状況を共有する。ＰＤＬ解析部３０２がＰＤＬデータを解析していない、もしくは解析進捗状況が特定の閾値以上完了した段階において、属性解析／データ取得指示部３０３は、取得した属性情報の中から次に取得すべきページを解析する。その解析結果を基に属性解析／データ取得指示部３０３は、セッション管理部３０４に対して、次に取得するＰＤＬデータ内のオフセットの開始位置と終了位置を含めたＰＤＬデータ取得要求を行う。
【００５３】
セッション管理部３０４は、オフセットの開始位置と終了位置からＰＤＬデータ内で今回取得するデータのトータルサイズを計算する。今回取得するデータのトータルサイズ、保持しているダウンロード時間等の情報を用いて、セッション管理部３０４は、今回のＰＤＬデータ取得のためにサーバ１０２に対して接続するセッションの数を決定する。そして、セッション管理部３０４は、決定した数分の通信部に対して個々がそれぞれ取得するデータの開始位置、終了位置、取得サイズを決定し、それぞれの通信部に対して通知すると同時にＰＤＬデータ取得要求を行う。ここで決定する開始位置、終了位置、取得サイズは、今回のＰＤＬデータ取得のトータルサイズをセッションの数で割った値や、特定のオフセット位置毎で決定してよい。
【００５４】
セッション管理部３０４から要求された各通信部は、通知された開始位置、終了位置、取得サイズを基にサーバ１０２に対してＰＤＬデータを取得する。
【００５５】
７０２はＰＤＬデータの全体を示す。７０３はＰＤＬデータ７０２のうち、メインコントローラ２１０が今回印刷処理するために必要なオフセット位置の例を示している。画像形成装置１０１から複数のセッションで７０３の取得要求が行われると、通信管理部４０２は、該複数のセッションにおけるそれぞれのセッションで要求される開始位置から終了位置までのデータを、ファイルシステム４０３を介してＨＤＤから取得する。そして、画像形成装置１０１へ送信する。
【００５６】
画像形成装置１０１の各通信部は、個別にＰＤＬデータを取得すると、これを取得データ管理部３０５へ送る。取得データ管理部３０５は、各通信部が取得した個別のデータを結合し、取得データ管理部３０５内で７０３のデータを復元、保持する等のデータ管理を行う。各セッションで個別データを並列に取得する場合、データ取得を完了するセッションの順番は不明である。これはメインコントローラ２１０のＣＰＵ処理が個々のセッションの処理に割り当てる時間やサーバ１０２が個々のセッションに対して処理する順番、ネットワーク環境が個々のセッションに与える影響によってデータ取得の完了時間が変わるためである。そこで、取得データ管理部３０５は、取得データの順番がバラバラで渡される個別のデータを、それぞれ取得したオフセット開始位置、終了位置、取得サイズを用いて順番に制御しながら結合する。７０３のＰＤＬデータが取得データ管理部３０５内で復元完了したことをもって、属性解析／データ取得指示部３０３は、このデータをＰＤＬ解析部３０２へ渡すことで印刷処理を行う。
【００５７】
図８は、画像形成装置１０１におけるＰＤＬデータ取得開始から印刷処理までの流れを示すフローチャートである。本処理は、実際には画像形成装置１０１内のＣＰＵ２１１がＨＤＤ２１５等からプログラムを読み出して実行することにより実現される処理であるが、図３に示す機能ブロックを利用して説明する。
【００５８】
ステップＳ８０１では、属性解析／データ取得指示部３０３は、セッション管理部３０４を介して、通信部１＿３０６を使用し、印刷対象のＰＤＬデータの属性情報をサーバ１０２から取得する。また、セッション管理部３０４は、上述したダウンロード時間を計算して保持する（ステップＳ８０１）。
【００５９】
ステップＳ８０２では、属性解析／データ取得指示部３０３は、取得した属性情報の中から次の印刷対象となっているページを解析する。このとき、属性解析／データ取得指示部３０３は、例えば、図５に示す属性情報内の５０６，５０７の値を取得し、次にサーバ１０２から取得すべきページ番号を決定する。そして、属性解析／データ取得指示部３０３は、決定したページ番号に該当するＰＤＬデータ内のオフセット開始位置と終了位置を属性情報から取得する。そして、属性解析／データ取得指示部３０３は、セッション管理部３０４に対し、次に取得するＰＤＬデータ内のオフセット開始位置と終了位置を含めたＰＤＬデータ取得要求を行う（ステップＳ８０２）。
【００６０】
ステップＳ８０３では、セッション管理部３０４は、オフセットの開始位置と終了位置からＰＤＬデータ内で今回取得するデータのトータルサイズを計算する。また、セッション管理部３０４は、今回のＰＤＬデータ取得のためにサーバ１０２に対して接続するネットワークセッションの数を決定する。セッション数を決定するために、今回取得するデータのトータルサイズ、保持しているダウンロード時間、取得データ管理部３０５が行うＰＤＬデータの復元時間を使用する。今回取得するＰＤＬデータの取得開始から、取得したデータをＰＤＬ解析部３０２に渡すまでにかかる時間は、ＰＤＬデータ取得時間＋ＰＤＬデータ復元時間となる。
【００６１】
ＰＤＬデータ取得時間は、ダウンロード時間とデータのトータルサイズ、加えてセッション数を使用して計算される。基本的に、セッション数が多くなる程、ＰＤＬデータ取得時間は小さくなる。
【００６２】
一方、ＰＤＬデータ復元時間は、基本的に、セッション数が多くなる程大きくなる。この理由としては、セッション数が多くなるとセッション毎に取得する個別データの数が多くなり、その分、取得データ管理部３０５が行うデータの結合、復元時間がかかるためである。
【００６３】
したがって、セッション数を増やす程、ＰＤＬデータ取得時間は小、ＰＤＬデータ復元時間は大となることから、セッション管理部３０４は、ＰＤＬデータ取得時間＋ＰＤＬデータ復元時間の値が最少となるようにセッション数を決定し、変更する。
【００６４】
さらに、セッション管理部３０４は、決定したセッション数分の通信部に対して個々がそれぞれ取得するデータの開始位置、終了位置、取得サイズを決定し、それぞれの通信部に対して通知すると同時に、ＰＤＬデータ取得要求を行う。
【００６５】
ステップＳ８０４では、セッション管理部３０４から要求された各通信部は、通知された開始位置、終了位置、取得サイズを基にサーバ１０２から個別データを取得する。
【００６６】
ステップＳ８０５では、各通信部は、サーバ１０２から個別データを取得すると、取得データ管理部３０５へ送る。取得データ管理部３０５は、各セッションが取得した個別のデータを結合し、印刷対象ページのＰＤＬデータを復元する。
【００６７】
ステップＳ８０６では、属性解析／データ取得指示部３０３は、復元したＰＤＬデータを取得データ管理部３０５から取得し、ＰＤＬ解析部３０２へ渡す。ＰＤＬ解析部３０２は、渡されたＰＤＬデータを解析し、印刷データへ変換する。そして、ＰＤＬ解析部３０２は、変換した印刷データを印刷処理部３０１へ渡す。印刷処理部３０１は、渡された印刷データを基に印刷処理を行う。
【００６８】
ステップＳ８０７では、属性解析／データ取得指示部３０３は、ＰＤＬ解析部３０２との間において、ＰＤＬ解析部３０２が現在解析しているページの解析進捗状況を共有する。
【００６９】
ステップＳ８０８では、属性解析／データ取得指示部３０３は、属性情報に記述されている各ページに対して、サーバ１０２から未取得のページが存在するか判定する。未取得のページが存在しないと判定した場合は、取得完了として本処理を終了する。一方、未取得のページが存在すると判定した場合はステップＳ８０９へ進む。
【００７０】
ステップＳ８０９では、属性解析／データ取得指示部３０３は、ページの解析進捗を、予め定めている次ページ取得開始閾値と比較する。これは、ページのＰＤＬデータ解析の進捗率が、予め定めている進捗率に達しているかによって、次のページをサーバ１０２から取得するのか、取得しないのかを判断することを意味する。ＰＤＬデータ解析の進捗率が次ページ取得開始閾値に満たない場合、次ページを取得してもスプールするのみになるだけでなく、次ページの取得処理にＣＰＵ負荷が増大してしまうため、現在のＰＤＬデータ解析や印刷処理が遅くなってしまう。これを避けるために、属性解析／データ取得指示部３０３は、次のページをサーバ１０２へ取得するのか、取得しないのかを判断する。
ＰＤＬデータ解析の進捗率が次ページ取得開始閾値を満たしている場合、属性解析／データ取得指示部３０３は、次ページのＰＤＬデータをサーバ１０２から取得するためにステップＳ８０２へ戻り、次の取得位置から取得を開始する。一方、ＰＤＬデータ解析の進捗率が次ページ取得開始閾値に満たない場合、属性解析／データ取得指示部３０３は、サーバ１０２に対して次の印刷対象ページのデータ取得を一時中断し、一定の待ち時間を設ける（ステップＳ８１０）。待ち時間経過後、属性解析／データ取得指示部３０３は、ステップＳ８０７以降の処理を再度行う。
【００７１】
上記実施形態によれば、画像形成装置は、サーバから属性情報を取得したときの取得時間と、サーバから取得する印刷データの印刷対象ページのデータのサイズと、取得したデータを結合して復元する復元時間とからネットワークセッションの数を決定する。そして、画像形成装置は、サーバから印刷対象ページのデータを、決定されたネットワークセッションの数で取得する。これにより、ネットワーク上のサーバから不必要な印刷データを無駄なタイミングで取得してスプールし続けることなく、効率良く印刷データを取得して印刷処理を行うことができる。
【００７２】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７３】
１０１  画像形成装置
１０２  サーバ
２１１  ＣＰＵ
３０１  印刷処理部
３０２  ＰＤＬ解析部
３０３  属性解析／データ取得指示部
３０４  セッション管理部
３０５  取得データ管理部
４０１  ＰＤＬデータ／属性情報生成部
４０３  ファイルシステム４０３
【図１】
2015099475.tif 000003
【図２】
2015099475.tif 000004
【図３】
2015099475.tif 000005
【図４】
2015099475.tif 000006
【図５】
2015099475.tif 000007
【図６】
2015099475.tif 000008
【図７】
2015099475.tif 000009
【図８】
2015099475.tif 000010