(57)【特許請求の範囲】
【請求項１】
複数のドキュメントを含むジョブを解析して印刷を行う画像形成装置であって、
前記ジョブにて指定される印刷すべきページの情報を取得し、印刷範囲として管理する管理手段と、
前記ジョブを解析する解析手段と、
を備え、
前記解析手段は、前記ジョブに含まれるドキュメントを構成するページ数に基づいて、前記印刷範囲が示す前記複数のドキュメントのうちの印刷対象となるページを特定し、
前記管理手段が取得する印刷すべきページの情報は、前記ジョブに含まれる前記複数のドキュメントにて構成される複数のページの通し番号で指定されていることを特徴とする画像形成装置。
【請求項２】
前記ジョブに含まれる複数のドキュメントは、異なるフォーマットにて定義されていることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
ドキュメントのページ数の算出方法は、ドキュメントのフォーマットの種類に応じて切り替えられることを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記解析手段は、解析可能なドキュメントのフォーマットが異なる複数の解析部から構成されることを特徴とする請求項１乃至３のいずれか一項に記載の画像形成装置。
【請求項５】
前記複数のドキュメントのうち、前記解析手段にて特定された前記印刷範囲が示す印刷対象のページを印刷部に印刷させる制御手段を更に有することを特徴とする請求項１乃至４のいずれか一項に記載の画像形成装置。
【請求項６】
前記解析手段は、前記複数のドキュメントの全ての解析が完了した後に、前記印刷範囲が示す前記複数のドキュメントのうちの印刷対象となるページを特定することを特徴とする請求項１乃至５のいずれか一項に記載の画像形成装置。
【請求項７】
複数のドキュメントを含むジョブを解析して印刷を行う画像形成装置の制御方法であって、
前記ジョブにて指定される印刷すべきページの情報を取得し、印刷範囲として記憶部にて管理する管理工程と、
前記ジョブを解析部にて解析する解析工程と、
を有し、
前記解析工程において、前記ジョブに含まれるドキュメントを構成するページ数に基づいて、前記印刷範囲が示す前記複数のドキュメントのうちの印刷対象となるページを特定し、
前記管理工程にて取得する印刷すべきページの情報は、前記ジョブに含まれる前記複数のドキュメントにて構成される複数のページの通し番号で指定されていることを特徴とする画像形成装置の制御方法。
【請求項８】
コンピュータを、
複数のドキュメントを含むジョブにて指定される印刷すべきページの情報を取得し、印刷範囲として管理する管理手段、
前記ジョブを解析する解析手段、
として機能させ、
前記解析手段は、前記ジョブに含まれるドキュメントを構成するページ数に基づいて、前記印刷範囲が示す前記複数のドキュメントのうちの印刷対象となるページを特定し、
前記管理手段が取得する印刷すべきページの情報は、前記ジョブに含まれる前記複数のドキュメントにて構成される複数のページの通し番号で指定されていることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のドキュメントを含むジョブを印刷する画像形成装置およびその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、複数のドキュメントに対して、印刷範囲を指定して印刷する技術がある（例えば、特許文献１）。この技術では、各ドキュメントの設定情報にそのドキュメントで印刷すべきページ範囲の情報を付与することで、各ドキュメントの任意のページを印刷できる。
【０００３】
一方、ユーザが扱うドキュメントには、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）やＰＳ（ＰｏｓｔＳｃｒｉｐｔ）など、数多くのフォーマットがある。そこで、印刷ワークフローの中で、ユーザがフォーマットを意識せずドキュメントを扱えるよう、ＪＤＦ（Ｊｏｂ  Ｄｅｆｉｎｉｔｉｏｎ  Ｆｏｒｍａｔ）のように複数のドキュメントのページをひとつのジョブとして管理できるフォーマットが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２１０４０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数のドキュメントのページをひとつのジョブとして扱えるフォーマットを利用すると、例えば、図８に示すようなジョブが、アプリケーションによって生成される。ジョブ８０１には、ドキュメント８０２ａ，８０２ｂ，８０２ｃがこの順番で含まれ、それぞれの総ページ数は２、３、２である。各ドキュメントのフォーマットは異なっていてもよい。また、ジョブ８０１には、印刷すべきページ範囲の情報として、印刷範囲指定８０３が付与される。印刷範囲指定８０３は、各ドキュメントのページ番号ではなく、ジョブ全体に対するページの通し番号で指定される。ここでは、全７ページのジョブ８０１に対し、４ページから６ページが印刷範囲として指定されているため、ドキュメント８０２ｂの２、３ページ目と、ドキュメント８０２ｃの１ページ目が印刷対象となる。このとき、ジョブ８０１に含まれるドキュメント８０２ａ〜８０２ｃそれぞれに対しては印刷範囲指定が付与されない。
【０００６】
印刷装置は、このようなジョブを受信した時点では、ジョブに含まれる各ドキュメントのページ数が分からないため、例えば、ジョブ８０１に対する４ページ目が、どのドキュメントのどのページに該当するかについて把握できない。
【０００７】
したがって、ジョブの中に複数の異なるフォーマットのドキュメントが含まれ、かつ印刷範囲指定がジョブ全体に対するページの通し番号にて指定されているジョブに対しても、印刷装置は印刷できることが求められる。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本願発明は以下の構成を有する。複数のドキュメントを含むジョブを解析して印刷を行う画像形成装置であって、前記ジョブにて指定される印刷すべきページの情報を取得し、印刷範囲として管理する管理手段と、前記ジョブを解析する解析手段と、を備え、前記解析手段は、前記ジョブに含まれるドキュメントを構成するページ数に基づいて、前記印刷範囲が示す前記複数のドキュメントのうちの印刷対象となるページを特定し、前記管理手段が取得する印刷すべきページの情報は、前記ジョブに含まれる前記複数のドキュメントにて構成される複数のページの通し番号で指定されている。
【発明の効果】
【０００９】
複数の異なるフォーマットのドキュメントが含まれ、かつ印刷範囲がジョブ全体に対するページの通し番号で指定されるジョブを印刷できる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るハードウェアの構成例を示す図。
【図２】本実施形態に係るソフトウェアの構成例を示す図。
【図３】第一の実施形態に係るフローチャート。
【図４】第二の実施形態に係る全体フローチャート。
【図５】第二の実施形態に係るＳ４０３の詳細処理のフローチャート。
【図６】ＰＤＦ、ＸＰＳの構造とファイルを説明するための図。
【図７】第三の実施形態に係るフローチャート。
【図８】本願発明にて処理するジョブを説明するための図。
【図９】本実施形態に係るジョブの生成例を説明するための図。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１２】
＜第一の実施形態＞
［ハードウェア構成］
図１は、本実施形態に係る画像形成装置における、複数のドキュメントが含まれるジョブを受け付け、印刷を行うためのハードウェアの構成例を示す。なお、本願発明に係る画像形成装置は、ネットワークプリンタやＭＦＰ（Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）などが該当するが特に限定するものではない。
【００１３】
ＣＰＵ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。図２で後述するソフトウェアモジュールはＣＰＵ１０１がプログラムを読み出して実行することにより実現される。メモリ１０２は、ＣＰＵ１０１がアクセスできるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ１０２は、各種ソフトウェアの動作に必要な記憶領域の確保先として利用され、ソフトウェアモジュールの解析部２０２が生成する中間データや、レンダラ１０３が生成するビットマップ画像の保存先としても利用される。
【００１４】
レンダラ１０３は、ソフトウェアモジュールの解析部２０２が生成する中間データから、ビットマップ画像を生成するハードウェアである。入力部１０４は、複数のドキュメントが含まれるジョブの入力を受け付ける。エンジン１０５は、レンダラ１０３が生成したビットマップ画像を印刷用紙に出力する印刷部である。ＲＯＭ１０６は、不揮発性の記憶部である。図２で後述するソフトウェアモジュールは、ＲＯＭ１０６に格納され、ＣＰＵ１０１に読み出され、実行される。
【００１５】
［ソフトウェア構成］
図２は、本実施形態に係る画像形成装置において、複数のドキュメントが含まれるジョブを受け付け、印刷を行うためのソフトウェアモジュールの構成例を示す。
【００１６】
ジョブ制御部２０１は、複数のドキュメントが含まれるジョブを受け付け、各ドキュメントの解析を、そのドキュメントを解析可能な解析部２０２（２０２ａ，２０２ｂ，２０２ｃのいずれか）に依頼する。本実施形態では、各ドキュメントを定義するフォーマットの種類が異なるため、解析可能なフォーマットが異なる複数の解析部が設けられているものとする。そして、ジョブ制御部２０１は、解析部２０２が解析結果として生成する中間データをレンダラ１０３に渡し、レンダラ１０３が生成するビットマップ画像が、エンジン１０５によって印刷用紙（記録媒体）に出力される。
【００１７】
解析部２０２は、ジョブ制御部２０１から依頼を受けたドキュメントを解析し、ビットマップ画像の生成に必要な中間データを生成する。ドキュメントのフォーマットの例としては、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）、ＰＳ（ＰｏｓｔＳｃｒｉｐｔ）、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）などが挙げられる。本実施形態では、解析部２０２ａ，２０２ｂ，２０２ｃがそれぞれ、ＰＤＦ，ＰＳ，ＸＰＳのドキュメントフォーマットを解析可能な解析部とする。なお、ドキュメントのフォーマットは上記に限定するものではなく、他のフォーマットであってもよい。この場合には、そのフォーマットを解析可能な解析部が別途設けられるものとする。データ部２０３には、印刷処理の過程で、ジョブで印刷すべきページ範囲の情報（ｓｔａｒｔ＿ｐａｇｅ２０３ａ，ｅｎｄ＿ｐａｇｅ２０３ｂ）やドキュメントのページ数（ｐａｇｅ＿ｎｕｍ２０３ｃ）が格納され、管理される。ｓｔａｒｔ＿ｐａｇｅ２０３ａは、ページ範囲のうちの最初のページを示し、ｅｎｄ＿ｐａｇｅ２０３ｂはページ範囲のうちの最後のページを示す。ジョブ制御部２０１と解析部２０２は、データ部２０３にアクセスして、印刷処理を実行する。
【００１８】
本実施形態において扱うジョブの構成例は、図８に示したとおりである。ジョブは、ＰＣ（不図示）や携帯端末（不図示）などの外部の情報処理装置にて利用するアプリケーションによりユーザの指示に基づいて生成される。図９は、ジョブの生成例を示す。
【００１９】
ユーザは、アプリケーション９０１で、３つのドキュメント９０３ａ、９０３ｂ、９０３ｃを１つのグループ９０２として開く。アプリケーション上には、各ドキュメントのページがサムネイル表示され、ユーザはサムネイルを選択する形で印刷したいページを指定する。ここでは、印刷したいページとして、ドキュメント９０３ｂの２、３ページ目、ドキュメント９０３ｃの１ページ目を、ユーザが選択したとする。なお、図８、図９では、選択したページを白塗りで示し、選択していないページを斜線にて示している。
【００２０】
ドキュメントを開いているアプリケーション９０１は、各ドキュメントのページ数を把握しているため、印刷すべきページをグループ９０２全体に対する通し番号で指定できる。この場合、アプリケーション９０１は、印刷対象をグループ９０２のうち４、５、６ページ目であると判定し、印刷用のジョブとしてジョブ９０４（すなわち、図８のジョブ８０１）を生成する。図９において、括弧付で示されるページ番号はジョブ９０４全体に対する通し番号である。印刷範囲指定９０５は、その通し番号に基づいて指定されている。
【００２１】
一方、このようなジョブを受信した画像形成装置は、ジョブに含まれる各ドキュメントのページ数が分からないため、指定された通し番号に対応する各ドキュメントのページが分からない。そこで、本実施形態では、以下に説明する方法で印刷を行う。
【００２２】
［処理フロー］
図３は、本実施形態に係る処理を示すフローチャートである。本処理は、ＣＰＵ１０１がＲＯＭ１０６等に格納されたプログラムを読み出して実行することにより実現される。以下、図８に示すジョブの構成を用いて具体的な例と共に説明する。
【００２３】
Ｓ３０１にて、ジョブ制御部２０１は、ジョブに印刷範囲指定の情報があるか否かを確認する。印刷範囲指定の情報がある場合は（Ｓ３０１にてＹＥＳ）Ｓ３０２の処理へ進み、ない場合は（Ｓ３０１にてＮＯ）Ｓ３１１の処理へ進む。
【００２４】
Ｓ３０２にて、ジョブ制御部２０１は、ジョブに含まれている印刷範囲指定の情報をデータ部２０３に格納する。ここでは、ジョブの印刷範囲指定の情報が、図８に示すように４〜６ページであるため、ｓｔａｒｔ＿ｐａｇｅ２０３ａに“４”が格納され、ｅｎｄ＿ｐａｇｅ２０３ｂに“６”が格納される。
【００２５】
Ｓ３０３にて、ジョブ制御部２０１は、ジョブに含まれるドキュメントの解析を解析部２０２に依頼し、ドキュメント解析が開始される。ここでは、ジョブに含まれる３つのドキュメント８０２ａ，８０２ｂ，８０２ｃのフォーマットがそれぞれＰＤＦ、ＰＳ、ＸＰＳであるとする。この場合、ジョブ制御部２０１は、最初のドキュメント８０２ａ（ＰＤＦ）の解析を、ＰＤＦの解析が可能な解析部２０２ａに依頼する。
【００２６】
Ｓ３０４にて、解析部２０２ａは、ドキュメントのページ数の情報を“０”で初期化する。初期化の結果、データ部２０３のｐａｇｅ＿ｎｕｍ２０３ｃに“０”が格納される。
【００２７】
Ｓ３０５にて、解析部２０２ａは、解析を行うページが印刷範囲指定内のページか否かを判定する。印刷範囲指定内のページの場合は（Ｓ５０３にてＹＥＳ）Ｓ３０６の処理へ進み、印刷範囲外のページの場合は（Ｓ５０３にてＮＯ）Ｓ３０７の処理へ進む。具体的には、次の式が成り立つ場合は印刷範囲指定内のページであると判定し、成り立たない場合は印刷範囲外のページであると判定する。
ｓｔａｒｔ＿ｐａｇｅ≦ｐａｇｅ＿ｎｕｍ＋１≦ｅｎｄ＿ｐａｇｅ
ここでは、ｓｔａｒｔ＿ｐａｇｅ＝４、ｅｎｄ＿ｐａｇｅ＝６、（ｐａｇｅ＿ｎｕｍ＋１）＝０＋１＝１となり、上記の式が成り立たず、印刷範囲指定外のページと判定され、Ｓ３０７の処理へ進む。
【００２８】
Ｓ３０７にて、解析部２０２ａは、ドキュメントのページ数を次のように更新し、データ部２０３のｐａｇｅ＿ｎｕｍ２０３ｃに更新した値を格納する。
ｐａｇｅ＿ｎｕｍ＝ｐａｇｅ＿ｎｕｍ＋１
ここでは、ｐａｇｅ＿ｎｕｍ＝ｐａｇｅ＿ｎｕｍ＋１＝０＋１＝１となり、ｐａｇｅ＿ｎｕｍ２０３ｃには“１”が格納される。
【００２９】
Ｓ３０８にて、解析部２０２ａは、ドキュメント解析終了か否かを判定する。依頼を受けたドキュメントにおいて解析すべき次のページがある場合は（Ｓ３０８にてＮＯ）、ドキュメント解析を継続するため、Ｓ３０５の処理へ戻る。解析すべき次のページがない場合は（Ｓ３０８にてＹＥＳ）、ドキュメント解析終了であると判定して、Ｓ３０９の処理へ進む。
【００３０】
ここでは、次のページ（ドキュメント８０２ａ（ＰＤＦ）の２ページ目）があるため、Ｓ３０５の処理へ進む。そして、Ｓ３０５以降、次の処理を経て、Ｓ３０９に到達する。
Ｓ３０５：ｓｔａｒｔ＿ｐａｇｅ＝４、ｅｎｄ＿ｐａｇｅ＝６、（ｐａｇｅ＿ｎｕｍ＋１）＝（１＋１）＝２→印刷範囲指定外
Ｓ３０７：ｐａｇｅ＿ｎｕｍ＝ｐａｇｅ＿ｎｕｍ＋１＝１＋１＝２
Ｓ３０８：次ページなし（Ｓ３０８にてＹＥＳ）→ドキュメント解析終了（Ｓ３０９へ）
【００３１】
Ｓ３０９にて、ジョブ制御部２０１は、ジョブ終了か否か判定する。ジョブ中に次のドキュメントがある場合は（Ｓ３０９にてＮＯ）、その解析処理を行うためにＳ３１０の処理へ進み、次のドキュメントがない場合は（Ｓ３０９にてＹＥＳ）、ジョブ終了であると判定する。ここでは、次のドキュメント８０２ｂ（ＰＳ）があるので、Ｓ３１０に進む。
【００３２】
Ｓ３１０にて、ジョブ制御部２０１は、印刷範囲指定の情報を次のように更新する。
ｓｔａｒｔ＿ｐａｇｅ＝ｓｔａｒｔ＿ｐａｇｅ−ｐａｇｅ＿ｎｕｍ
ｅｎｄ＿ｐａｇｅ＝ｅｎｄ＿ｐａｇｅ−ｐａｇｅ＿ｎｕｍ
ここでは、ｓｔａｒｔ＿ｐａｇｅ−ｐａｇｅ＿ｎｕｍ＝４−２＝２、ｅｎｄ＿ｐａｇｅ−ｐａｇｅ＿ｎｕｍ＝６−２＝４となり、データ部２０３のｓｔａｒｔ＿ｐａｇｅ２０３ａには“２”が格納され、ｅｎｄ＿ｐａｇｅ２０３ｂには“４”が格納される。
【００３３】
Ｓ３０３に戻り、ジョブ制御部２０１は、ジョブに含まれる次のドキュメントの解析を解析部２０２に依頼することで、ドキュメント解析を開始する。ここでは、次のドキュメント８０２ｂのフォーマットはＰＳであるため、ジョブ制御部２０１は、ＰＳを解析可能な解析部２０２ｂにドキュメントの解析を依頼する。その後、Ｓ３０４以降、次の処理を経て、Ｓ３０６に到達する。
Ｓ３０４：ｐａｇｅ＿ｎｕｍ＝０
Ｓ３０５：ｓｔａｒｔ＿ｐａｇｅ＝２、ｅｎｄ＿ｐａｇｅ＝４、（ｐａｇｅ＿ｎｕｍ＋１）＝（０＋１）＝１→印刷範囲指定外（Ｓ３０５にてＮＯ）
Ｓ３０７：ｐａｇｅ＿ｎｕｍ＝ｐａｇｅ＿ｎｕｍ＋１＝０＋１＝１
Ｓ３０８：次ページあり（Ｓ３０８にてＮＯ）→ドキュメント解析継続（Ｓ３０５へ）
Ｓ３０５：ｓｔａｒｔ＿ｐａｇｅ＝２、ｅｎｄ＿ｐａｇｅ＝４、（ｐａｇｅ＿ｎｕｍ＋１）＝（１＋１）＝２→印刷範囲指定内（Ｓ３０５にてＹＥＳ）
【００３４】
Ｓ３０６にて、解析部２０２ｂは、解析するページの中間データを生成する。先述の通り、ジョブ制御部２０１は、この中間データをレンダラ１０３に渡し、レンダラ１０３が中間データから生成するビットマップ画像が、エンジン１０５によって印刷用紙に出力される。つまり、ジョブ８０１に含まれるドキュメント８０２ｂ（ＰＳ）の２ページ目は、このタイミングで出力される。同様にＳ３０７以降は、次の処理を経て、ドキュメント８０２ｂ（ＰＳ）の３ページ目を出力し、再びＳ３０９に到達する。
Ｓ３０７：ｐａｇｅ＿ｎｕｍ＝ｐａｇｅ＿ｎｕｍ＋１＝１＋１＝２
Ｓ３０８：次ページあり（Ｓ３０８にてＮＯ）→ドキュメント解析継続（Ｓ３０５へ）
Ｓ３０５：ｓｔａｒｔ＿ｐａｇｅ＝２、ｅｎｄ＿ｐａｇｅ＝４、（ｐａｇｅ＿ｎｕｍ＋１）＝２＋１＝３→印刷範囲指定内（Ｓ３０５にてＹＥＳ）
Ｓ３０６：中間データ生成（ドキュメント８０２ｂの３ページ目の出力）
Ｓ３０７：ｐａｇｅ＿ｎｕｍ＝ｐａｇｅ＿ｎｕｍ＋１＝２＋１＝３
Ｓ３０８：次ページなし（Ｓ３０８にてＹＥＳ）→ドキュメント解析終了（Ｓ３０９へ）
Ｓ３０９：次のドキュメント８０２ｂ（ＸＰＳ）あり（Ｓ３１０へ）
【００３５】
Ｓ３１０にて、ジョブ制御部２０１は、印刷範囲指定ｓｔａｒｔ＿ｐａｇｅ２０３ａ、ｅｎｄ＿ｐａｇｅ２０３ｂを次のように更新する。
ｓｔａｒｔ＿ｐａｇｅ＝ｓｔａｒｔ＿ｐａｇｅ−ｐａｇｅ＿ｎｕｍ＝２−３＝−１
ｅｎｄ＿ｐａｇｅ＝ｅｎｄ＿ｐａｇｅ−ｐａｇｅ＿ｎｕｍ＝４−３＝１
【００３６】
印刷範囲指定の更新後はＳ３０３に戻る。ジョブ制御部２０１は、ジョブに含まれる次のドキュメントの解析を解析部２０２に依頼することで、ドキュメント解析を開始する。ここでは、次のドキュメント８０２ｃのフォーマットＸＰＳであるため、ＸＰＳを解析可能な解析部２０２ｃにドキュメントの解析を依頼する。その後、Ｓ３０４以降、次の処理を経て、ドキュメント８０２ｃ（ＸＰＳ）の１ページ目を出力して、Ｓ３０９に到達する。
Ｓ３０４：ｐａｇｅ＿ｎｕｍ＝０
Ｓ３０５：ｓｔａｒｔ＿ｐａｇｅ＝−１、ｅｎｄ＿ｐａｇｅ＝１、（ｐａｇｅ＿ｎｕｍ＋１）＝０＋１＝１→印刷範囲指定内（Ｓ３０５にてＹＥＳ）
Ｓ３０６：中間データ生成（ドキュメント８０２ｃの１ページ目の出力）
Ｓ３０７：ｐａｇｅ＿ｎｕｍ＝ｐａｇｅ＿ｎｕｍ＋１＝０＋１＝１
Ｓ３０８：次ページあり（Ｓ３０８にてＮＯ）→ドキュメント解析継続（Ｓ３０５へ）
Ｓ３０５：ｓｔａｒｔ＿ｐａｇｅ＝−１、ｅｎｄ＿ｐａｇｅ＝１、（ｐａｇｅ＿ｎｕｍ＋１）＝１＋１＝２→印刷範囲指定外（Ｓ３０５にてＮＯ）
Ｓ３０７：ｐａｇｅ＿ｎｕｍ＝ｐａｇｅ＿ｎｕｍ＋１＝１＋１＝２
Ｓ３０８：次ページなし（Ｓ３０８にてＹＥＳ）→ドキュメント解析終了（Ｓ３０９へ）
【００３７】
ジョブ８０１には次のドキュメントはないため（Ｓ３０９にてＹＥＳ）、ジョブ制御部２０１は、本処理フローをする。結果として次の３ページが印刷される。
・ドキュメント８０２ｂ（ＰＳ）の２ページ目
・ドキュメント８０２ｂ（ＰＳ）の３ページ目
・ドキュメント８０２ｃ（ＸＰＳ）の１ページ目
【００３８】
Ｓ３１１〜Ｓ３１４は、受信した複数のドキュメントが含まれるジョブに印刷範囲指定の情報がなかった場合の処理である。印刷範囲指定の情報がない場合（Ｓ３０１にてＮＯ）、ジョブ制御部２０１は、ジョブに含まれるドキュメントを順々に解析し、印刷する。
【００３９】
Ｓ３１１にて、ジョブ制御部２０１は、ジョブに含まれるドキュメントの解析を解析部２０２（２０２ａ、２０２ｂ、２０２ｃのいずれか）に依頼し、ドキュメント解析を開始する。先述の通り、ジョブ制御部２０１は、そのドキュメントを解析可能な解析部に解析を依頼する。
【００４０】
Ｓ３１２にて、解析部２０２は、解析するページの中間データを生成する。先述の通り、ジョブ制御部２０１は、生成した中間データをレンダラ１０３に渡し、レンダラ１０３が中間データから生成するビットマップ画像が、エンジン１０５によって印刷用紙に出力される。
【００４１】
Ｓ３１３にて、解析部２０２は、ドキュメント解析が終了か否かを判定する。解析すべき次のページがある場合は（Ｓ３１３にてＮＯ）、ドキュメント解析を継続するため、Ｓ３１２の処理へ戻る。解析すべき次のページがない場合は（Ｓ３１３にてＹＥＳ）、解析部２０２は、ドキュメント解析終了と判定して、Ｓ３１４の処理へ進む。
【００４２】
Ｓ３１４にて、ジョブ制御部２０１は、ジョブ終了か否かを判定する。ジョブ中に次のドキュメントがある場合は（Ｓ３１４にてＮＯ）、そのドキュメントの解析処理を行うためにＳ３１１の処理へ進み、ない場合は（Ｓ３１４にてＹＥＳ）ジョブ終了と判定する。
【００４３】
以上、本実施形態によって、印刷装置は、複数の異なるフォーマットのドキュメントが含まれ、かつ印刷範囲がジョブ全体に対するページの通し番号で指定されるジョブを印刷できるようになり、ユーザの利便性が向上する。
【００４４】
なお、本実施形態では、印刷範囲指定として連続したページを指定した例を示したが、これに限定するものではない。例えば、複数のドキュメントにおいて連続していないページを通し番号にて指定したジョブであってもよい。
【００４５】
＜第二の実施形態＞
本実施形態の処理は、第一の実施形態を改善するものであり、処理全体のフローチャートを図４に示す。本実施形態（図４）と第一の実施形態（図３）との差分は、図１のＳ３０３の処理が図４のＳ４０３の条件分岐に変わった点のみであるため、ここではＳ４０３の条件分岐処理の詳細説明を行い、その他については説明を省略する。Ｓ４０３の詳細処理について、図５に示す。図４、図５の処理は、ＣＰＵ１０１がＲＯＭ１０６等に格納されたプログラムを読み出して実行することで実現される。
【００４６】
Ｓ５０１にて、ジョブ制御部２０１は、ジョブに含まれるドキュメントの解析を解析部２０２に依頼し、ドキュメント解析を開始する。
【００４７】
Ｓ５０２では、ジョブ制御部２０１は、ドキュメント解析を開始した直後で、解析するドキュメントに応じてｐａｇｅ＿ｎｕｍの更新方法を切り替える。ドキュメントがＰＤＦの場合はＳ５０３の処理へ、ＸＰＳの場合はＳ５０４の処理へ、ＪＰＥＧの場合はＳ５０５の処理へ、ＰＳの場合はＳ５０７へ処理を進める。ＰＳは、データ構造上、ファイルの先頭から終端まで逐次解析しないとページ数がわからない。そのため、Ｓ５０７以降で、第一の実施形態と同じように各ページを順々に解析してドキュメントのページ数を算出する。
【００４８】
Ｓ５０３にて、ＰＤＦが解析可能な解析部２０２ａは、ページ数の情報を、ＰＤＦに含まれるページツリーから取得する。第一の実施形態ではＰＤＦのドキュメントのページ数を取得するのに、各ページを順々に解析した。しかし、ＰＤＦはツリー構造を持つフォーマットであり、ページのツリーを参照することによりドキュメントのページ数を取得できる。
【００４９】
図６（ａ）は、３ページのＰＤＦのツリー構造とファイルの中身を示す例である。この場合、ファイルに記載された「Ｃｏｕｎｔ  ３」の“３”がページ数に相当し、解析部２０２ａはデータ部のｐａｇｅ＿ｎｕｍ２０３ｃに“３”を格納する。
【００５０】
Ｓ５０４にて、ＸＰＳが解析可能な解析部２０２ｃは、ページ数の情報を、ＸＰＳに含まれるＦｉｘｅｄＤｏｃｕｍｅｎｔパーツから取得する。第一の実施形態ではＸＰＳのページ数を取得するのに、各ページを順々に解析した。しかし、ＸＰＳはフォルダ構成を持つフォーマットであり、特定のフォルダに存在するファイルを参照することによりドキュメントを構成するページ数を取得できる。
【００５１】
図６（ｂ）は、３ページのＸＰＳが持つフォルダ構成と、特定のフォルダ（Ｄｏｃｕｍｅｎｔｓ）に存在するファイル（ＦｉｘｅｄＤｏｃ．ｆｄｏｃ）の中身を示す例である。この場合、ファイルに記載された＜／ＰａｇｅＣｏｎｔｅｎｔ＞の出現回数（ここでは３回）がページ数に相当し、解析部２０２ｃはデータ部２０３のｐａｇｅ＿ｎｕｍ２０３ｃに“３”を格納する。
【００５２】
Ｓ５０５にて、ＪＰＥＧが解析可能な解析部（不図示）は、データ部２０３のｐａｇｅ＿ｎｕｍ２０３ｃに“１”を格納する。ＪＰＥＧの場合、そのフォーマットの規格上、常に１ページであるためページ数は“１”になり、ＪＰＥＧの解析部（不図示）はデータ部２０３のｐａｇｅ＿ｎｕｍ２０３ｃに“１”を格納する。
【００５３】
Ｓ５０６にて、解析部２０２は、ドキュメントのページ数から、印刷範囲指定内のドキュメントか否かを判定する。印刷範囲指定内のドキュメントの場合は（Ｓ５０６にてＹＥＳ）Ｓ５０７の処理へ進み、印刷範囲指定外のドキュメントの場合は（Ｓ５０６にてＮＯ）Ｓ５０８の処理へ進む。ここでは、次の式が成り立つ場合は印刷範囲指定内のドキュメント、成り立たない場合は印刷範囲指定外のドキュメントと判定する。
ｎｕｍ＿ｐａｇｅ≧ｓｔａｒｔ＿ｐａｇｅ
【００５４】
Ｓ５０７にて、解析部２０２は、ドキュメント解析を継続する。つまり、図４のＳ４０４以降の処理を続ける。
【００５５】
Ｓ５０８にて、解析部２０２は、ドキュメント解析を終了する。つまり、図４のＳ４０９以降の処理を続ける。
【００５６】
第一の実施形態と同様、図８のジョブ８０１に含まれる３つのドキュメント８０２ａ，８０２ｂ，８０２ｃがそれぞれＰＤＦ、ＰＳ、ＸＰＳとする。この場合、（図４の）Ｓ４０１以降、次の処理を経て、Ｓ５０６の処理に到達する。
Ｓ４０１：印刷範囲指定あり（Ｓ４０１にてＹＥＳ）
Ｓ４０２：ｓｔａｒｔ＿ｐａｇｅ＝４、ｅｎｄ＿ｐａｇｅ＝６
Ｓ５０１：ドキュメント解析開始
Ｓ５０２：ドキュメント＝ＰＤＦ
Ｓ５０３：ｐａｇｅ＿ｎｕｍ＝２
【００５７】
Ｓ５０６にて、ｓｔａｒｔ＿ｐａｇｅ＝４、ｐａｇｅ＿ｎｕｍ＝２であるため、ドキュメント８０２ａ（ＰＤＦ）は印刷範囲指定外のドキュメントと判定される（Ｓ５０６にてＮＯ）。そして、Ｓ５０８で解析部２０２ａは、ＰＤＦのドキュメント解析を終了し、図４のＳ４０９以降の処理に移る。このように処理することで、印刷範囲指定外のドキュメント８０２ａ（ＰＤＦ）の各ページの解析を一切せず、第一の実施形態よりも早く次のドキュメント８０２ｂ（ＰＳ）の解析を開始できる。
【００５８】
本実施形態によれば、ページ数を低コストで算出できるドキュメントについてはページ数を算出し、印刷範囲指定外のドキュメントの解析処理を省くことで、第一の実施形態よりも印刷処理の高速化が可能になる。
【００５９】
＜第三の実施形態＞
図７は、第三の実施形態に係る処理を示すフローチャートである。第一、第二の実施形態では、ドキュメントの解析と印刷を、ジョブに含まれるドキュメントの順に実行した。本実施形態では、ジョブに含まれる全ドキュメントの解析を最初に行い、その解析が全て完了した後に、全ドキュメントの印刷を実行する。図７の処理は、ＣＰＵ１０１がＲＯＭ１０６等に格納されたプログラムを読み出して実行することで実現される。
【００６０】
Ｓ７０１は、ジョブ制御部２０１が、ジョブに含まれる各ドキュメント［ｉ］（ｉ＝０，１，２．．．）に対して、Ｓ７０６までの処理を繰り返すことを示す。
【００６１】
Ｓ７０２にて、ジョブ制御部２０１は、ジョブに含まれるドキュメント［ｉ］の解析を解析部２０２に依頼し、ドキュメント解析を開始する。
【００６２】
Ｓ７０３にて、解析部２０２は、ドキュメント［ｉ］のページ数の情報を初期化し、データ部２０３のｐａｇｅ＿ｎｕｍ［ｉ］（不図示）に“０”を格納する。
【００６３】
Ｓ７０４にて、解析部２０２は、ドキュメント［ｉ］の解析を行い、ページ数の情報を更新する。第一の実施形態と異なり、解析部２０２はドキュメント［ｉ］の解析だけを行い、中間データの生成は行わない。
【００６４】
Ｓ７０５にて、解析部２０２は、ドキュメント［ｉ］の解析が終了したか否かを判定する。解析が終了した場合は（Ｓ７０５にてＹＥＳ）Ｓ７０６の処理へ進み、終了してない場合は（Ｓ７０５にてＮＯ）Ｓ７０４の処理へ戻り、解析処理を継続する。
【００６５】
Ｓ７０６にて、ジョブ制御部２０１は、各ドキュメント［ｉ］（ｉ＝０，１，２．．．）に対して、Ｓ７０５までの処理が全て終了したと判定した場合、Ｓ７０７の処理へ進む。
【００６６】
Ｓ７０７にて、ジョブ制御部２０１は、印刷範囲指定の情報をデータ部２０３のｓｔａｒｔ＿ｐａｇｅ２０３ａ、ｅｎｄ＿ｐａｇｅ２０３ｂに格納する。
【００６７】
Ｓ７０８は、ジョブ制御部２０１が、ジョブに含まれる各ドキュメント［ｉ］（ｉ＝０，１，２．．．）に対して、Ｓ７１４までの処理を繰り返すことを示す。Ｓ７０９〜Ｓ７１２では、第一の実施形態と同様に解析部２０２によりドキュメント解析が行われ、印刷範囲指定内のページについては、中間データが生成される。
【００６８】
Ｓ７１３にて、ジョブ制御部２０１は、印刷範囲指定の情報を次のように更新する。
ｓｔａｒｔ＿ｐａｇｅ＝ｓｔａｒｔ＿ｐａｇｅ−ｐａｇｅ＿ｎｕｍ［ｉ］
ｅｎｄ＿ｐａｇｅ＝ｅｎｄ＿ｐａｇｅ−ｐａｇｅ＿ｎｕｍ［ｉ］
【００６９】
Ｓ７１４にて、ジョブ制御部２０１は、各ドキュメント［ｉ］（ｉ＝０，１，２．．．）に対して、Ｓ７１３までの処理が全て終了したと判定した場合、本処理フローを終了する。
【００７０】
本実施形態の処理は、例えば、ジョブに含まれるページをプレビューなどで、ジョブ全体の総ページ数をすぐに求めたり、表示したりするケースで有効である。また、本実施形態ではドキュメントに対して解析処理が二度実行される。そこで、パフォーマンス向上のために、第二の実施形態で示した、ドキュメントのページ数の算出方法をドキュメント種別によって切り替える処理を併用してもよい。
【００７１】
＜その他の実施例＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７２】
１０１…ＣＰＵ、２０１…ジョブ制御部、２０２…解析部、２０３…データ部、８０１…ジョブ、８０２…ドキュメント
【図１】
0006434775.tif 000002
【図２】
0006434775.tif 000003
【図３】
0006434775.tif 000004
【図４】
0006434775.tif 000005
【図５】
0006434775.tif 000006
【図６】
0006434775.tif 000007
【図７】
0006434775.tif 000008
【図８】
0006434775.tif 000009
【図９】
0006434775.tif 000010