(57)【要約】【課題】  複数部の印刷のため展開されている印刷ジョブを受信した場合において、当該印刷ジョブのデータ容量を削減しつつ、ユーザが所望する複数部数分の印刷物を出力できるデータを格納する仕組みを提供する【解決手段】  印刷制御装置は、外部装置から印刷ジョブを受信する。印刷ジョブに含まれる１以上のページを１セットとして当該セットごとに処理を行うための属性情報が前記受信した印刷ジョブに含まれている場合に、当該属性情報に基づき前記受信した印刷ジョブから１セットの印刷物の出力に用いるページを抽出する。印刷制御装置は、抽出した１セットの印刷物の出力に用いるページと前記属性情報に少なくとも基づき導出された部数を含むデータを記憶領域に格納する。【選択図】  図８
2019181866.tif 000002
【特許請求の範囲】
【請求項１】
印刷制御装置であって、
外部装置から印刷ジョブを受信する受信手段と、
印刷ジョブに含まれる１以上のページを１セットとして当該セットごとに処理を行うための属性情報が前記受信した印刷ジョブに含まれている場合に、当該属性情報に基づき前記受信した印刷ジョブから１セットの印刷物の出力に用いる印刷データを抽出する抽出手段と、
前記抽出手段によって抽出した１セットの印刷物の出力に用いる印刷データと前記属性情報に少なくとも基づき導出された部数を含むデータを記憶領域に格納する格納手段と、
を有することを特徴とする印刷制御装置。
【請求項２】
前記属性情報に少なくとも基づき部数を導出する導出手段を更に備えることを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記格納手段に格納されたデータの中から印刷すべきデータを選択する選択手段と、
前記選択された印刷すべきデータの設定に関わるユーザ指示を受け付けたことに従って、前記導出された部数を示す情報と前記抽出されたページ数を示す情報を表示する表示手段と、
を更に有することを特徴とする請求項１又は２に記載の印刷制御装置。
【請求項４】
前記選択手段によって選択された印刷すべきデータに基づきシートに画像を印刷する印刷手段を更に有することを特徴とする請求項３に記載の印刷制御装置。
【請求項５】
前記選択手段によって選択された印刷すべきデータを印刷装置に送信する送信手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の印刷制御装置。
【請求項６】
前記属性情報はＩＰＰで定義されたｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔ属性であり、属性値として１セットを示すページ数が指定されていることを特徴とする請求項１乃至５のいずれか１項に記載の印刷制御装置。
【請求項７】
印刷ジョブに含まれる１以上のページを１セットとして当該セットごとに処理を行うための属性情報が前記受信した印刷ジョブに含まれていない場合、前記格納手段は前記抽出手段による抽出を行うことなく、前記受信した印刷ジョブのデータを前記記憶領域に格納することを特徴とする請求項１乃至６のいずれか１項に記載の印刷制御装置。
【請求項８】
前記抽出手段は、当該属性情報に基づき前記受信した印刷ジョブから１セットの印刷物の出力に用いる描画データを残し、その他の描画データを破棄することで、１セットの印刷物を出力に用いる印刷データを抽出することを特徴とする請求項１乃至７のいずれか１項に記載の印刷制御装置。
【請求項９】
前記抽出手段によって抽出される印刷データは、ラスタデータであることを特徴とする請求項１乃至８のいずれか１項に記載の印刷制御装置。
【請求項１０】
印刷制御装置の制御方法であって、
外部装置から印刷ジョブを受信する受信工程と、
印刷ジョブに含まれる１以上のページを１セットとして当該セットごとに処理を行うための属性情報が前記受信した印刷ジョブに含まれている場合に、当該属性情報に基づき前記受信した印刷ジョブから１セットの印刷物の出力に用いるページを抽出する抽出工程と、
前記抽出工程によって抽出した１セットの印刷物の出力に用いるページと前記属性情報に少なくとも基づき導出された部数を含むデータを記憶領域に格納させる格納工程と、
を有することを特徴とする印刷制御装置の制御方法。
【請求項１１】
請求項１０に記載の印刷制御装置の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データを受信して印刷する印刷制御装置に関するものである。
【背景技術】
【０００２】
従来から、ネットワークを介して通信装置から印刷データを受信し、当該受信した印刷データに基づきシートに画像を形成する印刷装置が知られている。また、個々の印刷装置を使用するために設計されたプリンタドライバ（又はプリントアプリケーション）を使用して印刷装置に送信する印刷データを生成することも従来から知られている。
【０００３】
また、近年、個々の印刷装置を使用するために設計されたプリンタドライバ（又はプリントアプリケーション）を介さずに印刷データを生成することが知られている。例えば、通信装置のオペレーティングシステム（ＯＳ）の機能として提供される汎用のプリントクライアントによって印刷データを生成し、印刷装置に送信する手段が知られている。このような汎用のプリントクライアントでは、印刷装置に印刷を実行させるためのネットワークプロトコル（ＩＰＰ：Ｉｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ）に基づいて印刷を行う仕組みが実装されている。このプロトコルに従い印刷装置と通信装置が通信を行うことで印刷処理を実現する。
【０００４】
例えば特許文献１には、通信装置の画面で画像を選択して印刷を指示すると近くにある印刷装置を検索し、検索した印刷装置の一覧を表示することが開示されている。また、選択された印刷装置が対応するプロトコル情報に基づいて画像データの送信に適したプロトコルを選択して印刷用の画像データを送信することが記載されている。
【０００５】
また、留め置き印刷機能などと呼ばれる機能を有する印刷装置が知られている。留め置き印刷機能を有する印刷装置では、ＰＣのプリンタドライバや、汎用のプリントクライアント等から送信された印刷ジョブのデータを記憶領域に記憶する。当該記憶領域に記憶された印刷データは、印刷装置に対するユーザ操作がなされたことに応じて印刷される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１８７５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＩＰＰの仕様に準拠する印刷システムでは、印刷データの形式としてＰＤＦやＰＷＧ−Ｒａｓｔｅｒなどの形式を使用することができる。ＰＷＧ−Ｒａｓｔｅｒフォーマットなどのラスタ形式は、主にスプール領域などに制約がある廉価な印刷装置を使用して印刷を行う場合に使用される。上述の廉価な印刷装置では、複数ページ分のデータをスプールすることができない。ＩＰＰの仕様に準拠するプリントクライアントでは、スプール領域に制約のある印刷装置においても複数部数の印刷を行えるようにデータの展開処理を行うものがある。プリントクライアントは、複数部数（例えば、２部）の印刷設定がなされており、且つ、ラスタ形式で印刷ジョブを送信する場合、ページ数×部数のラスタデータに展開し、当該展開したラスタデータを含む印刷ジョブを送信する。例えば、２ページの文書を３部印刷する場合、印刷ジョブに含まれるラスタデータは６ページとなる。このように、プリントクライアントによってＰＷＧ−Ｒａｓｔｅｒフォーマットが選択されると、展開された冗長なデータが送信されることになる。
【０００８】
ところで、プリントクライアントは、前述した留め置き印刷機能を有する装置に対しても、ページ数×部数のラスタデータを展開した印刷ジョブデータを送信することがある。
【０００９】
この場合、留め置き印刷機能を有する装置が当該印刷ジョブデータを受信すると、展開された冗長なデータを含む印刷データを記憶領域に記憶することになる。この場合、留め置き印刷機能のために用意された記憶領域（ストレージ）が圧迫されてしまうといった問題がある。
【００１０】
本発明は上述の課題の少なくとも１つを鑑みなされたものである。本発明は、複数部数の印刷のために展開されている印刷ジョブを受信した場合において、当該印刷ジョブのデータ容量を削減しつつ、ユーザが所望する複数部数分の印刷物を出力できるデータを格納するための仕組みを提供することを目的の１つとする。
【課題を解決するための手段】
【００１１】
上記の少なくとも１つの目的を達成するために本発明の印刷制御装置は、外部装置から印刷ジョブを受信する受信手段と、印刷ジョブに含まれる１以上のページを１セットとして当該セットごとに処理を行うための属性情報が前記受信した印刷ジョブに含まれている場合に、当該属性情報に基づき前記受信した印刷ジョブから１セットの印刷物の出力に用いる印刷データを抽出する抽出手段と、前記抽出手段によって抽出した１セットの印刷物の出力に用いる印刷データと前記属性情報に少なくとも基づき導出された部数を含むデータを記憶領域に格納する格納手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数部数の印刷のために展開されている印刷ジョブを受信した場合において、当該印刷ジョブのデータ容量を削減しつつ、ユーザが所望する複数部数分の印刷物を出力できるデータを格納することができるようになる。
【図面の簡単な説明】
【００１３】
【図１】印刷システムの一例を示す図である。
【図２】印刷装置のハードウェア構成の一例を示す図である。
【図３】印刷装置のソフトウェア構成の一例を説明する図である。
【図４】通信装置のハードウェア構成の一例を示す図である。
【図５】通信装置のソフトウェア構成の一例を示す図である。
【図６】印刷システムにおける処理手順の一例を説明するシーケンス図である。
【図７】属性情報を取得するリクエスト及びレスポンスの一例を説明する図である。
【図８】印刷ジョブの一例を説明する図である。
【図９】印刷装置の制御の一例を説明するフローチャートである。
【図１０】通信装置の制御の一例を説明するフローチャートである。
【図１１】データの抽出を説明するため模式図である。
【図１２】印刷装置の操作部に表示される画面の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための実施形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせのすべてが発明の解決手段に必須のものとは限らない。
【００１５】
＜第１の実施形態＞
まず図１を用いて、本発明に係る印刷システムの構成を説明する。本実施形態に係る印刷システムは、通信装置１０３ａ〜ｃ、印刷装置１０１、ＡＰ（アクセスポイント）１０２を含む。ネットワーク１００上には、印刷装置１０１、ＡＰ１０２が互いに通信可能に接続されている。本実施形態では印刷制御装置の一例として印刷装置１０１を示している。また、通信装置の一例として、通信装置１０３ａ〜１０３ｂ、及び、通信装置１０３ｃを説明する。一例として、通信装置１０３ａがタブレット端末、通信装置１０３ｂがスマートフォンなどの携帯端末、通信装置１０３ｃがＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）である場合を示している。
【００１６】
通信装置１０３ａ〜ｃはＡＰ１０２を介してネットワーク１００上の印刷装置１０１と互いに通信することができる。なお、本実施形態では、印刷システムの一例として上記の構成を説明するが、これに限定されるものではない。１つ以上の通信装置と印刷装置とがネットワークを介して通信可能に接続されていればよい。なお、ＡＰ１０２を介した通信は例えばＩＥＥＥ８０２．１１シリーズに準拠する無線通信である。更に、通信装置１０３と印刷装置１０１がＷｉ−Ｆｉ  Ｄｉｒｅｃｔ（登録商標）や、Ｗｉ−Ｆｉ  Ａｗａｒｅ（登録商標）などのアドホックネットワークを介したダイレクト無線通信で相互通信することもできる。
【００１７】
まず、印刷装置１０１について説明する。印刷装置１０１は、ネットワークを介して外部装置から受信した印刷ジョブに基づいて印刷処理を実行することができる。また、本実施形態の印刷装置１０１は、留め置き印刷機能を有している。留め置き印刷機能が有効に設定されている場合、印刷装置１０１は、ＰＣのプリンタドライバや、汎用のプリントクライアント等の外部装置から送信された印刷ジョブのデータを記憶領域（後述のデータ蓄積部３１８）に記憶する。当該記憶領域に記憶された印刷データは、印刷装置に対するユーザ操作がなされたことに応じて印刷される。
【００１８】
＜印刷装置の構成＞
図２は、印刷装置１０１のハードウェア構成を示すブロック図である。なお、本実施形態では印刷制御装置の一例として印刷装置１０１を説明するが、これに限定されるものではない。例えば、印刷機能に加え、原稿を読み取る機能を有するＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）等の印刷制御装置であってもよい。
【００１９】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１１を含む制御部２１０は、印刷装置１０１全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１２又はストレージ２１４に記憶された制御プログラムを読み出して、印刷制御や読取制御などの各種制御を行う。ＲＯＭ２１２は、ＣＰＵ２１１で実行可能な制御プログラムを格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２１３は、ＣＰＵ２１１の主記憶メモリであり、ワークエリア又は各種制御プログラムを展開するための一時記憶領域として用いられる。ストレージ２１４は、印刷ジョブのデータ、画像データ、各種プログラム、及び各種設定情報を記憶する。留め置き機能により一時的に記憶する印刷ジョブのデータをストレージ２１４に記憶される。本実施形態ではストレージ２１４としてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の補助記憶装置を想定しているが、ＨＤＤの代わりにＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの不揮発性メモリを用いるようにしても良い。このように、ＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３、ストレージ２１４等のハードウェアは、いわゆるコンピュータを構成している。
【００２０】
なお、本実施形態の印刷装置１０１では、１つのＣＰＵ２１１が１つのメモリ（ＲＡＭ２１３）を用いて後述するフローチャートに示す各処理を実行するものとするが、他の様態であっても構わない。例えば複数のＣＰＵ、ＲＡＭ、ＲＯＭ、及びストレージを協働させて後述するフローチャートに示す各処理を実行することもできる。また、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のハードウェア回路を用いて一部の処理を実行するようにしてもよい。
【００２１】
操作部インタフェース（Ｉ／Ｆ）２１５は、操作部２１６と制御部２１０を接続する。操作部２１６には、タッチパネル機能を有する液晶表示部や各種ハードキーなどが備えられ、情報を表示する表示部やユーザの指示を受け付ける受付部として機能する。
【００２２】
画像処理部２１７は、印刷ジョブを展開して印刷に用いる印刷画像を生成するＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）機能を有する。また画像処理部２１７は、画像データの解像度変換や補正処理を行うこともできる。なお、本実施形態では、画像処理部２１７がハードウェア回路（ＡＳＩＣ又はＦＰＧＡなど）で実現されることを想定しているが、これに限定されるものではない。例えば、印刷装置が画像処理用途向けのプロセッサを更に備え、そのプロセッサが画像処理プログラムを実行することにより、画像処理や、印刷データへの展開処理を実現してもよい。この場合、このプロセッサとＣＰＵ２１１とが協働して後述するフローチャートを実現するものとする。更には、画像処理を行うためのプログラムをＣＰＵ２１１が実行し、画像処理や印刷データの展開処理を行うように構成することもできる。また、これらのいずれかの組み合わせにより画像処理を行うようにしてもよい。
【００２３】
印刷部Ｉ／Ｆ２１９は、印刷部２２０と制御部２１０を接続する。画像処理部２１７によって印刷データを解析して生成された印刷画像は印刷部Ｉ／Ｆ２１９を介して制御部２１０から印刷部２２０に転送される。印刷部２２０は制御部２１０を介して制御コマンド及び印刷画像を受信し、当該画像に基づいて給紙カセット（不図示）から給送されたシートに画像を印刷する。なお、印刷部２２０の印刷方式は、電子写真方式であってもよいし、インクジェット方式であってもよい。また、熱転写方式などその他の印刷方式を適用することもできる。シート処理部Ｉ／Ｆ２２１は、制御部２１０とシート処理部２２２を接続する。シート処理部２２２はＣＰＵ２１１からの制御コマンドを受信し、その制御コマンドに従って印刷部２２０により印刷されたシートに後処理を施す。例えば、複数のシートを揃える、シートにパンチ穴を開ける、複数のシートを綴じる、などの後処理を実行する。また、制御部２１０は、通信部Ｉ／Ｆ２２３を介してネットワーク１００に接続される。通信部Ｉ／Ｆ２２３は、ネットワーク１００上の通信装置に能力情報やステータス情報を送信したり、ネットワーク１００上の通信装置から印刷ジョブを受信したりする。
【００２４】
前述したように、本実施形態の印刷装置１０１は、留め置き印刷機能を有している。留め置き印刷機能を有効にするか否かは印刷装置１０１の管理者などにより予め設定され、ストレージ２１４に記憶されているものとする。留め置き印刷機能が印刷装置１０１の動作設定として有効に設定されている場合、印刷装置１０１は、ＰＣのプリンタドライバや、汎用のプリントクライアント等から送信された印刷ジョブのデータを記憶領域に記憶する。当該記憶領域に記憶された印刷データは、印刷装置に対するユーザ操作がなされたことに応じて印刷される。
【００２５】
ところで、ＩＰＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ）の仕様に準拠する印刷を行う場合、印刷データの形式としてＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）やＰＷＧ−Ｒａｓｔｅｒなどの形式が使用される。ＰＷＧ−Ｒａｓｔｅｒフォーマットなどのラスタ形式は、主にスプール領域などに制約がある廉価な印刷装置を使用して印刷を行う場合に使用される。上述の廉価な印刷装置では、複数ページ分のデータをスプールすることができない。通信装置１０３が有するＩＰＰの仕様に準拠するプリントクライアントでは、このような廉価な印刷装置においても複数部数の印刷を行えるようにデータの展開処理を行うものがある。プリントクライアントは、複数部数（例えば、２部）の印刷設定がなされており、且つ、ラスタ形式で印刷ジョブを送信する場合、ページ数×部数のラスタデータを展開し、当該展開したラスタデータを含む印刷ジョブを送信する。例えば、２ページの文書を３部印刷する場合、印刷ジョブに含まれるラスタデータは６ページとなる。
【００２６】
ここで、前述した留め置き印刷機能を有する装置上で、ページ数×部数のラスタデータを展開された印刷ジョブのデータを記憶すると、１部数の印刷に用いるデータがあれば印刷を行えるにも関わらず、展開された冗長なデータが記憶されることになる。この場合、留め置き印刷機能のために用意された記憶領域（ストレージ）が圧迫されてしまうといった問題がある。
【００２７】
上述の課題を鑑み、本実施形態では、複数部数の印刷のために展開されている印刷ジョブを受信した場合において、当該印刷ジョブのデータ容量を削減しつつ、同様の印刷物を出力できるデータを格納するための仕組みを提供する。以下具体的な実現方法について説明する。
【００２８】
図３は、印刷装置１０１のソフトウェア構成の一例を示すものである。図３に示す各機能ブロックは、ＣＰＵ２１１がＲＡＭ２１３に展開したプログラムを実行することにより実現される。
【００２９】
ＩＰＰプリントサービス制御部３１５は能力通知部３１６を有する。能力通知部３１６は通信装置から印刷装置への能力に関する問い合わせを受け、プリンタが有する能力を示す属性情報を通知する。属性情報には、印刷装置が受け入れ可能なデータ形式、受け入れ可能なデータの構成方法などの情報が含まれている。
【００３０】
通信装置１０３は、プリンタの属性情報を取得した後に、プリンタが受け入れ可能な形式の印刷ジョブを生成し印刷装置へ送信する。ＩＰＰプリントサービス制御部３１５は、通信装置から印刷装置１０１に対して送信されたＩＰＰに準拠する印刷ジョブを受信する。
【００３１】
ＩＰＰプリントサービス制御部３１５は、通信装置からＩＰＰに準拠する印刷ジョブを受信すると、ジョブ制御部３０７と協働して、印刷を管理するための新規ジョブを生成する。続いて、ＩＰＰ属性解析部３１７は、受信した印刷ジョブの属性を解析して得られた、ジョブ属性（印刷部数、束ごとのページ数、コレート指定、フィニッシング設定など）、ドキュメント属性（フォーマット指定など）をジョブ属性保存部３０８に格納する。
【００３２】
ＩＰＰプリントサービス制御部３１５は、属性の解析処理と並行して受信ジョブに含まれる描画データをデータ受信制御部３０５に転送しデータ蓄積部３１８に一時保存する。データ蓄積部３１８は、受信した印刷ジョブのデータを一時的に記憶するバッファ領域である。
【００３３】
続けて、ジョブ制御部３０７は印刷ジョブのデータ形式がＰＷＧ−Ｒａｓｔｅｒなどのラスタ形式である場合、ＰＤＬ解析部３０６と協働してデータ蓄積部３１８に蓄積した印刷ジョブのデータサイズの削減を試みる。なお、削減処理の詳細は後述のフローチャートにて説明する。この削減処理によって１部数の印刷に必要なデータを抽出し冗長なデータを削除することができる。また、ジョブ制御部３０７は、当該印刷ジョブに対応付けて記憶している印刷部数を更新し、印刷ジョブの留め置きを実現する。
【００３４】
データ蓄積部３１８に格納されたデータは、印刷装置の操作部を介して印刷指示がなされたことに応じて印刷が開始される。ＵＩ制御部３０１は、留め置き印刷に関する各種画面をユーザに提供する。具体的にはＵＩ制御部３１０は、留め置き機能によりデータ蓄積部３１８に蓄積された印刷ジョブの実行に関わる操作画面を操作部２１６上に表示する。また、印刷ジョブの設定変更画面や、実行状況を示すインジケータなどを操作部２１６上に表示する。ＵＩ制御部３１０は、操作部２１６を介して印刷ジョブを実行するユーザ操作がなされたことを検知すると、ジョブ制御部３０７に対応する印刷ジョブの実行を依頼する。
【００３５】
ジョブ制御部３０７は、ＰＤＬ解析部３０６に印刷ジョブの描画データの解析を依頼する。
【００３６】
ＰＤＬ解析部３０６はＰＤＦとＰＷＧ−Ｒａｓｔｅｒの２つのＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）言語に対応し、ＰＤＬデータからページデータを生成する。生成したページデータは、データサイズの削減処理や、印刷処理に用いられる。
【００３７】
まず、データサイズの削減処理について説明する。ＰＤＬ解析部３０６はジョブ制御部３０７からの依頼を受信すると、印刷ジョブに対応する描画データをデータ受信制御部３０５に対して要求する。データ受信制御部３０５は、描画データをＰＤＬ解析部３０６に転送する。ＰＤＬ解析部３０６は転送された描画データに基づき印刷に用いるページデータを生成し、ページ保存部３１０に転送する。ジョブ制御部３０７は、当該ページ保存部３１０に転送されたページデータと、ジョブ属性保存部３０８に記憶された印刷属性情報とに基づき、後述のフローチャートで用いるデータ削減処理を試みる。
【００３８】
続けて印刷処理について説明する。印刷を開始するユーザ指示を受け付けると、ジョブ制御部３０７は、当該指示に対応する印刷ジョブに対応する描画データの解析処理をＰＤＬ解析部３０６に依頼する。ＰＤＬ解析部３０６によって解析されたページデータは、ページ保存部３１０に転送される。また、ジョブ制御部３０７は、当該転送されたページデータに対応するページ属性情報をページ属性保存部３１１に格納する。
【００３９】
ページ保存部３１０に格納されたページデータは、必要に応じてＲＩＰ制御部３１３によってＲＩＰ処理され印刷画像に変換される。ＲＩＰ制御部３１３は、画像処理部２１７と協働して印刷画像を生成する。
【００４０】
印刷制御部３１２は、ＲＩＰ済みの印刷画像を取得、ＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）に色分解してエンジン制御部３１４に転送する。エンジン制御部３１４は、印刷制御部３１２からのページ単位でＣＭＹＫ別の画像データを受け取り、印刷部２２０を制御してシートに印刷画像を印刷する。
【００４１】
＜通信装置の構成＞
続いて通信装置１０３ａ〜１０３ｃの構成について説明する。通信装置１０３ａ〜１０３ｃは、ＩＰＰに準拠するプリントクライアントを有しており、印刷装置１０１に印刷ジョブを送信することができる。図４は、通信装置１０３ａ〜１０３ｃのハードウェア構成の一例を説明するための図である。ＣＰＵ４０１を含む制御部４００は、通信装置１０３全体の動作を制御する。ＣＰＵ４０１は、ＲＯＭ４０２又はストレージ４０４に記憶されたプログラムをＲＡＭ４０３に展開し、それを実行して印刷設定画面の制御や印刷データの生成、印刷ジョブの転送などの各種制御を行う。ＲＯＭ４０２は、ＣＰＵ４０１で実行可能な制御プログラムやブートプログラム等を格納する。ＲＡＭ４０３は、ＣＰＵ４０１の主記憶メモリであり、ワークエリア又は各種プログラムを展開するための一時記憶領域として用いられる。ストレージ４０４は、ＯＳ、アプリケーション、ＯＳ印刷フレームワーク、ＯＳ印刷フレームワークが生成する印刷ジョブ、及び各種設定情報を記憶する。通信部Ｉ／Ｆ４０５はネットワーク１００上の印刷装置との間でデータの送受信を行うことが可能なネットワークインタフェースである。
【００４２】
操作部４０８は操作部Ｉ／Ｆ４０７に接続されている。操作部４０８は、各アプリケーションや印刷設定画面に対する画面を表示する表示部や、ユーザの操作を受け付ける受付部として機能するタッチパネルである。
【００４３】
続けて、図５を用いて本実施形態における通信装置１０３ａ〜ｃのソフトウェア構成の一例を説明する。なお、図５に示す各機能ブロックは、ＣＰＵ４０１がＲＡＭ４０３に展開したプログラムを実行することにより実現するものとする。
【００４４】
アプリケーション５０１は、通信装置にユーザがインストールした任意のアプリケーションであり、ワードプロセッサ、表計算、メール、ウェブブラウザなどの一般的なアプリケーションである。また、ＯＳ印刷フレームワーク５０２は、ＩＰＰ印刷クライアント５０３、プリントスプーラー５０９、印刷画面制御部５１２から構成される。ＩＰＰ印刷クライアント５０３はプリンタ情報管理部５１１、印刷ジョブ生成部５０４から構成される。プリンタ情報管理部５１１はデータ通信制御部５１０を介して印刷装置１０１などのプリンタに属性情報の問い合わせを行い、印刷装置の属性情報を取得し、取得した属性情報を格納する。この情報は印刷ジョブ生成部５０４や印刷画面制御部５１２によって必要に応じて参照される。
【００４５】
印刷画面制御部５１２はアプリケーション５０１の呼び出しに応じて印刷設定画面を表示する。ユーザは印刷設定画面から印刷設定を行い印刷開始の指示を行う。なお、印刷画面制御部５１２により表示される設定画面や設定項目は、プリンタ情報管理部５１１に記憶された印刷装置の属性情報や、設定管理部５１３に記憶されたデフォルト設定など基づき印刷装置に適した設定ができるよう適宜カスタマイズされる。設定管理部５１３は、デフォルト設定や、設定画面を介して設定中の印刷設定などを管理する。
【００４６】
また、ＯＳ描画エンジン５１４はアプリケーション５０１からの指示に従い、印刷すべきコンテンツを、ＯＳ標準の描画フォーマットに変換する。ＯＳ標準の描画フォーマットに変換されたページデータは、印刷ジョブ生成部５０４のページ生成部５０７に転送される。
【００４７】
印刷ジョブ生成部５０４はジョブ属性生成部５０６、ページ生成部５０７、ページ蓄積部５１５、ＰＤＬ生成部５０８から構成される。印刷ジョブ生成部５０４は印刷画面制御部５１２の指示を受け、印刷ジョブを生成する。ジョブ属性生成部５０６は印刷画面の設定項目と、印刷装置の能力情報とに基づきＩＰＰジョブのジョブ属性とドキュメント属性を生成する。生成した属性情報は、ＩＰＰパケットとしてプリントスプーラー５０９、データ通信制御部５１０を通して印刷装置へ送信される。
【００４８】
ページ生成部５０７はアプリケーション５０１がＯＳ描画エンジン５１４を経由して生成したページデータをページ蓄積部５１５に保存する。
【００４９】
ＰＤＬ生成部５０８は、ページ蓄積部５１５に蓄積されたページデータを印刷装置のサポートするフォーマットに変換する。印刷ジョブ生成部５０４は、プリンタ情報管理部５１１から印刷装置のサポートするフォーマットを取得して、変換すべきフォーマットを決定する。ＰＤＬ生成部５０８は、当該決定されたフォーマットに基づいてＰＤＬを生成する。
【００５０】
本実施形態では、印刷装置１０１はＰＤＦとＰＷＧ−Ｒａｓｔｅｒをサポートしているものとする。通信装置１０３は、相手先の印刷装置がＰＤＦとＰＷＧ−Ｒａｓｔｅｒの両方をサポートしている場合にはＰＤＦを優先的に選択するよう制御するものとする。一方、相手先の印刷装置がＰＤＦをサポートしていない、あるいはＰＤＦによるジョブ生成が困難な場合はＰＷＧ−Ｒａｓｔｅｒを選択するものとする。なお、ＰＷＧ−Ｒａｓｔｅｒは一例であり、その他のラスタフォーマットであっても良い。また、ＰＤＦは一例であり、ＸＰＳなどのＰＤＬであっても良い。
【００５１】
印刷装置がサポートするフォーマットに変換されたページデータは、プリントスプーラー５０９に転送される。データ通信制御部５１０は、印刷装置とのＩＰＰに準拠するデータの送受信を制御する。ＯＳ印刷フレームワーク５０２は、データ通信制御部５１０と協働し、ジョブ属性生成部５０６が生成したジョブ属性、ドキュメント属性と、プリントスプーラー５０９に転送されたページデータを印刷装置１０１に送信する。
【００５２】
続けて、ＰＷＧ−Ｒａｓｔｅｒを使用する場合のページ展開処理について説明する。相手先の印刷装置がＰＤＦフォーマットに対応していない場合であって、複数部数の印刷を行うことがユーザ操作によって設定された場合、ＩＰＰクライアント５０３は、ページ数×部数にページデータを展開する展開処理を実行する。また、相手装置がＰＤＦをサポートする場合であっても、ＰＤＬ生成部５０８が生成したＰＤＦファイルが印刷装置から通知された受信可能サイズを超える場合、ＩＰＰクライアント５０３はＰＤＦの代替としてＰＷＧ−Ｒａｓｔｅｒによる送信を試みる。この場合において、複数部数の印刷を行うことが設定されている場合、ページ数×部数にページデータを展開する展開処理を実行する。
【００５３】
続けて、本実施形態におけるＩＰＰに準拠する印刷シーケンスの一例について図６を用いて説明する。
【００５４】
ユーザは情報処理装置のアプリケーション３１５の画面を介して印刷を実行する操作を行う（Ｓ６０１）。印刷を実行するユーザ操作を受け付けた通信装置１０３のプリンタ情報管理部５１１は、印刷装置に対して属性情報要求（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅｓＲｅｑｕｅｓｔ）を送信する（Ｓ６０２）。属性情報の要求を受け付けた印刷装置のプリンタ能力通知部３１６は、印刷装置の能力情報（ＧｅｔＰｒｉｎｔｅｒＡｔｔｒｉｂｕｔｅｓＲｅｓｐｏｎｓｅ）を生成し（Ｓ６０３）、当該生成した能力情報を応答する（Ｓ６０４）。属性情報について図７を用いて説明する。図７（Ａ）は属性情報の要求の一例を示しており、図７（Ｂ）は要求に対する応答の一例を示している。
【００５５】
属性情報の要求には７１１〜７１６に示すプリンタの能力を問い合わせるための情報が含まれている。情報７１１の「ｃｏｐｉｅｓ−ｓｕｐｐｏｒｔｅｄ」は、部数対応の可否を問い合わせるための情報である。また、情報７１２の「ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔ−ｓｕｐｐｏｒｔｅｄ」は、印刷ジョブ内で処理（例えば、後処理）を行うための処理単位を示すセット（束）を指定したジョブに対応しているか否かを問い合わせる情報である。また、情報７１３の「ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔ−ｔｙｐｅ」は、セット指定のサポートタイプを問い合わせる情報である。情報７１４の「ｄｏｃｕｍｅｎｔ−ｆｏｒｍａｔ−ｓｕｐｐｏｒｔｅｄ」は、印刷装置がサポート可能なデータ形式（デーフォーマット）を問い合わせる情報である。情報７１５の「ｊｏｂ−ｃｏｌｌａｔｉｏｎ−ｔｙｐｅ」は、コレート指定のサポートの可否を問い合わせる情報である。また情報７１６の「ｐｄｆ−ｋ−ｏｃｔｅｔｓ−ｓｕｐｐｏｒｔｅｄ」は、ＰＤＦ受信時の最大受信サイズを問い合わせる情報である。なお、上記以外の属性情報（例えば、後処理に関するサポート情報や用紙に関するサポート情報など）を問い合わせることもできる。
【００５６】
図７（Ｂ）は、図７（Ａ）の属性情報要求を受信した印刷装置１０１が当該要求に対する能力応答の一例を示している。
【００５７】
情報７２１は情報７１１に対する応答である。印刷装置１０１は部数指定に対応しているため９９９９部までの部数指定を受け付けることが可能であることを示す情報を応答する。情報７２２は、情報７１２に対する応答である。印刷装置１０１は、印刷ジョブ内で処理（例えば、後処理）を行うための処理単位を示すセット（束）を指定したジョブに対応しているため「ｔｒｕｅ」を示す情報を応答する。情報７２３は、情報７１３に対する応答である。印刷装置１０１は、セットの指定方式として通常ジョブと、マージプリントジョブに対応しているため、当該サポート方式を示す情報を応答する。なお、「ｍｅｒｇｅ−ｐｒｉｎｔ−ｊｏｂ」は、セット（束）単位でコンテンツを異ならせ、当該コンテンツごとに処理（例えば、後処理）を行うバリアブルプリントをサポートすることを表す属性タイプの一例である。また「ｎｏｒｍａｌ−ｊｏｂ」はセット（束）単位でコンテンツが同一のプリント処理をサポートすることを表す属性タイプの一例である。
【００５８】
情報７２４は、情報７１４に対する応答である。印刷装置１０１は、ＰＤＦフォーマットとＰＷＧ−Ｒａｓｔｅｒフォーマットに対応しているため、当該２つのフォーマットを示す情報を応答する。情報７２５は、情報７１５に対する応答である。印刷装置１０１は、コレートモードのサポートタイプを示す情報を応答する。
【００５９】
最後に情報７２６は、情報７１６に対する応答である。本実施形態の印刷装置１０１は、３００００［ｋｂｙｔｅ］までのサイズのＰＤＦを受け入れることが可能であるため、３００００ＫＯｃｔｅｔｓを示す情報を応答する。このようにして通信装置１０３は、相手先プリンタの属性情報を取得することができる。
【００６０】
なお、本実施形態では、属性情報の一例としてＰＷＧにより策定されたＩＰＰの仕様として定義されている７１１、７１２、７１４、７１５、７１６の属性情報を用いて能力を問い合わせる場合を例示している。また７１３は、ＩＰＰの仕様としては現在盛り込まれていない拡張仕様を例示している。この拡張仕様は「ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔ」と組み合わせ、ＩＰＰ印刷においてもバリアブル印刷を行えるようにすることを目的とする属性情報である。
【００６１】
図６の説明に戻り、Ｓ６０４の応答を受信した通信装置１０３は、当該応答に基づきプリンタ情報管理部５１１に相手先プリンタの属性情報を記憶する。続けて、当該属性情報に基づき印刷設定画面を表示する（Ｓ６０５）。
【００６２】
ユーザは印刷設定画面を介して印刷設定を変更し、印刷開始の操作を行う。ここでは、一例としたユーザ操作により部数Ｎが設定された場合を例示している。設定画面を介した印刷開始の操作を受け付けた通信装置１０３は、設定画面を介してなされた印刷設定及びプリンタ情報管理部５１１に記憶された属性情報などに基づきＰＤＬのデータフォーマットを決定する（Ｓ６０７）。
【００６３】
まず、ＰＤＬのデータフォーマットをＰＤＦで送信すると決定した場合について説明する。通信装置１０３は、ジョブリクエストを生成し、生成したジョブリクエストを印刷装置に対して送信する（Ｓ６０８ａ）。当該ジョブリクエストにはジョブの印刷属性として「Ｃｏｐｉｅｓ＝Ｎ」が設定される。印刷装置はＣｏｐｉｅｓの属性値を参照し、印刷部数を決定することができる。ジョブリクエストを受信した印刷装置１０１は、ＯＫであることを示すレスポンスを返す。続けて通信装置１０３は、ドキュメントデータ（ＰＤＦデータ）を印刷装置に対して送信する（Ｓ６０９ａ）。当該ドキュメントデータに付与されるドキュメント属性にはドキュメントフォーマットがＰＤＦであることを示す属性が付加される。
【００６４】
Ｓ６０８ａで送信されたジョブリクエストとＳ６０９ａで送信されたドキュメントデータを受信した印刷装置は、当該ジョブリクエストに含まれる印刷設定（印刷部数Ｎやその他の印刷設定）と、ＰＤＦデータとを関連付けて記憶領域に格納する（Ｓ６１０ａ）。ＰＤＦデータはデータ蓄積部３１８に記憶され、印刷設定はジョブ属性保存部３０８に保存される。
【００６５】
続けてＰＤＬのデータフォーマットをＰＷＧ−Ｒａｓｔｅｒで送信すると決定した場合について説明する。通信装置１０３は、相手先の印刷装置がＰＤＦフォーマットを対応していないケースや、ＰＤＦフォーマットをサポートしている場合であっても、最大受信サイズを超過してしまう場合に、ＰＷＧ−Ｒａｓｔｅｒに変換したドキュメントデータを送信する。
【００６６】
通信装置１０３は、ジョブ生成リクエストを印刷装置に対して送信する（Ｓ６０８ｂ）。当該ジョブ生成リクエストにはジョブの印刷属性として「Ｃｏｐｉｅｓ＝１」、及び「ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔ＝Ｍ」が設定される。なお、Ｍは１部数に相当するページ数を示している。ジョブリクエストを受信した印刷装置１０１は、ＯＫであることを示すレスポンスを返す。続けて通信装置１０３は、ドキュメントデータ（Ｎ部×Ｍページに展開したラスタデータ）を印刷装置に対して送信する（Ｓ６０９ｂ）。当該ドキュメントデータに付与されるドキュメント属性にはドキュメントフォーマットがＰＷＧ−Ｒａｓｔｅｒであることを示す属性が付加される。
【００６７】
Ｓ６０８ｂ、Ｓ６０９ｂで送信されたジョブリクエストとデータを受信した印刷装置は、当該リクエストに含まれる印刷設定（ｊｏｂ−ｐａｇｅｓ―ｐｅｒ−ｓｅｔやその他の印刷設定）と、ラスタデータとに基づき最適化を行う（Ｓ６１０ｂ）。最適化後のデータは、記憶領域に格納される。  図８はＰＷＧ−Ｒａｓｔｅｒ形式でページデータを送信する場合のジョブ生成リクエストと送信されるデータの一例を示している。図８（Ａ）はジョブ生成リクエストの一例である。ここでは一例として、Ｎ部、片面印刷、印刷品質は普通、印刷物の左上にステイプルすることが設定されている場合を例示している。また、Ｎ×Ｍページ分のラスタデータを展開して送信しているので、情報８１１の「Ｃｏｐｉｅｓ」の属性値には「１」がセットされる。また、情報８１２の「ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔ」の属性値には処理（例えば、後処理）を行うセット（束）を表す「Ｍ」（一部数に相当するページ数）がセットされる。また、情報８１３の「ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔ−ｔｙｐｅ」の属性値には、「ｎｏｒｍａｌ−ｊｏｂ」がセットされる。また、情報８１４の「ｊｏｂ−ｃｏｌｌａｔｉｏｎ−ｔｙｐｅ」には、コレートジョブであることを示す「ｃｏｌｌａｔｅｄ−ｄｏｃｕｍｅｎｔ」がセットされる。図８（Ｂ）は、送信されるドキュメントデータの一例を示している。ヘッダに含まれているドキュメント属性である情報８２１には、ドキュメントのタイプがＰＷＧ−Ｒａｓｔｅｒであることを示す属性値がセットされる。また、データ８２２はＮ部×Ｍページをラスタデータに展開したデータである。
【００６８】
なお、本実施形態では、属性情報の一例としてＩＰＰの仕様として定義されている８１１、８１２、８１４、８２１の属性名と属性値を用いて印刷属性やドキュメント属性を表現する場合を例示している。また８１３は、ＩＰＰの仕様としては現在盛り込まれていない拡張の印刷属性を例示している。この拡張仕様はセット（束）ごとの処理をバリアブル印刷のために使用しているか否かを明示する属性情報である。ここでは、バリアブル印刷ではないことを示す「Ｎｏｍａｒｌ−ｊｏｂ」がセットされている場合を例示している。
【００６９】
本実施形態において、印刷装置１０１は、図８（Ａ）及び（Ｂ）を組み合わせた印刷ジョブを受信した場合に、データサイズの削減処理を行う。具体的な制御方法について図９に示すフローチャートを用いて説明する。なお、図９に示すフローチャートは印刷装置１０１の留め置き機能が有効に設定されている場合に実行される。留め置き機能が有効に設定されていない場合は、印刷装置１０１は、当該フローに代えて、受信した印刷ジョブを逐次解析し、印刷する処理を実行する。
【００７０】
図９のフローチャートに示す各動作（ステップ）は、ＣＰＵ２１１がＲＯＭ２１２又はストレージ２０４に記憶された各制御モジュールを実現するためのプログラムをＲＡＭ２１３に読み出し、実行することにより実現される。なお、フローチャートで示す各処理は、図３で説明した制御モジュールを実現するためのプログラムをＣＰＵ２１１が実行することにより実現されるものとする。各制御モジュールによって提供される制御を説明する場合、ＣＰＵ２１１によって実現される当該制御モジュールを主語として説明する。また、一部の処理は、ＣＰＵ２１１によって実現される制御モジュールと画像処理部２１７や通信部Ｉ／Ｆ２２３などの各部とが協働して実現する。
【００７１】
Ｓ９００において、ＩＰＰプリントサービス制御部３１５は、印刷ジョブを受信する。ＩＰＰプリントサービス制御部３１５のＩＰＰ属性解析部３１７は、受信した印刷ジョブの印刷属性をジョブ制御部３０７のジョブ属性保存部３０８に保存する。また、ＩＰＰプリントサービス制御部３１５は、受信した印刷ジョブの描画データ（ＰＤＬデータ）をデータ受信制御部３０５を経由してデータ蓄積部３１８に格納する。
【００７２】
続けてＳ９０１において、ジョブ制御部３０７は、ジョブ属性保存部３０８に保存されたドキュメントフォーマットを示す属性を参照し、ラスタデータを格納するためのファイル形式であるかどうかを判断する。ファイル形式がＰＷＧ−Ｒａｓｔｅｒなどのラスタデータを格納するためのファイル形式であると判断した場合は、処理をＳ９０２に進める。ファイル形式がＰＷＧ−Ｒａｓｔｅｒなどのラスタデータを格納するための形式でない（例えば、ＰＤＦなど様々な形式、属性のデータを格納しうる形式である）と判断した場合は、一連の削減処理を行うことなく処理を終了する。
【００７３】
Ｓ９０２において、ジョブ制御部３０７は、ジョブ属性保存部３０８に保存されたＣｏｐｉｅｓ属性を参照し、複数部数が設定されているか否かを判断する。ジョブ制御部３０７は、部数＝１が設定されている、あるいは部数設定が明示的にセットされていない場合、複数部数がセットされていないと判断し、処理をＳ９０３へ進める。一方、Ｃｏｐｉｅｓ属性に１以上がセットされている場合は、複数部数がセットされていると判断し、処理を終了する。
【００７４】
Ｓ９０３において、ジョブ制御部３０７は、ジョブ属性保存部３０８のｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔを参照し、セット（束）の枚数情報が設定されているか否かを判断する。セット（束）の枚数情報が設定されている場合はＳ９０４に進み、セット（束）の枚数情報が設定されていない場合は処理を終了する。
【００７５】
Ｓ９０４において、ジョブ制御部３０７は、ジョブ属性保存部３０８のｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔ−ｔｙｐｅを参照し、セット（束）に関するタイプ設定として削減処理を行うべきでない属性が設定されているか否かを判断する。各セット（束）に対して異なるコンテンツを割り当てるバリアブルプリントのための属性（ｍｅｒｇｅ−ｐｒｉｎｔ−ｊｏｂ）や非サポートの属性がセットされている場合、削減処理を行うべきでない属性が設定されていると判断し処理を終了する。一方、各セット（束）が同一であり、セットごとに処理（例えば後処理）を行うための属性（ｎｏｒｍａｌ−ｊｏｂ）がセットされている場合は処理をＳ９０５に進める。
【００７６】
Ｓ９０５において、ジョブ制御部３０７はジョブ属性保存部３０８のｊｏｂ−ｃｏｌｌａｔｉｏｎ−ｔｙｐｅを参照し、コレートジョブであるか否かを判断する。ｃｏｌｌａｔｅｄ−ｄｏｃｕｍｅｎｔがセットされている場合は、処理をＳ９０６〜Ｓ９１３に進め、ｕｎｃｏｌｌａｔｅｄ−ｓｈｅｅｔｓがセットされている場合は処理をＳ９１４〜Ｓ９２４に進める。
【００７７】
Ｓ９０６において、ジョブ制御部３０７は、変数である部数カウンタを１へリセットし、ページ制御部３０９が持つページカウンタを０にリセットする。
【００７８】
Ｓ９０７において、ジョブ制御部３０７は、ＰＤＬ制御部３０６とページ制御部３０９と協働し、１ページ分のページ解析処理を行う。１ページ分の解析が完了するとページ処理部が保持するページカウンタをカウントアップ（インクリメント）する。
【００７９】
Ｓ９０８において、ページ制御部３０９はジョブ制御部３０７が記憶する変数である部数カウンタを参照し、処理中の部数が１部目の場合は処理をＳ９０９に進め、２部目以降の場合は処理をＳ９１０に進める。
【００８０】
Ｓ９０９において、ページ制御部３０９は、（ｉ）番目のページをデータ蓄積部３１８に保存して処理をＳ９１１へ進める。一方、Ｓ９１０において、ページ制御部３０９は（ｉ）番目のページを削除（破棄）して処理をＳ９１１へ進める。
【００８１】
Ｓ９１１において、ジョブ制御部３０７は、現在処理中のページ番号（ｉ）をｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔの値で除算し、その余りが０の場合は部の区切りと判断し処理をＳ９１２に進める。０以外の場合は部の途中と判断し、Ｓ９０７の処理に戻り次ページを解析する。
【００８２】
Ｓ９１２において、ジョブ制御部３０７は、ジョブデータの終端であるか否かを判断する。ジョブ制御部３０７は、ＰＤＬ制御部３０６に対して後続ページの有無を問い合わせる。ＰＤＬ解析部３０６はデータ蓄積部（３１８）に受信した印刷ジョブに対応するデータの終端まで到達したことに従って、ジョブ制御部３０７に対して後続ページがないことを通知する。一方、終端まで到達していない場合は、後続ページがあることを通知する。ジョブ制御部３０７は、後続ページがないこと受信すると、ジョブデータの終端であると判断して処理をＳ９２４に進める。一方後続ページがあることを受信すると、ジョブデータの終端でないと判断し、処理をＳ９１３に進める。
【００８３】
Ｓ９１３において、ジョブ制御部３０７は、部数カウンタをカウントアップ（インクリメント）して処理をＳ９０７に進める。
【００８４】
一方、Ｓ９２４において、ジョブ制御部３０７は、一連の処理によりカウントアップした部数情報（ｊ）で、ジョブ属性保存部（３０８）に格納されたＣｏｐｉｅｓ属性を上書きし、処理を終了する。また、ジョブ制御部３０７は、一連の処理で生成した新たなＰＤＬデータと、印刷属性を対応付けるとともに、データ削減処理を行う前のＰＤＬデータを削除する。
【００８５】
Ｓ９０６〜Ｓ９１３で説明した一連の処理によりコレートジョブのデータ削減を行うことができる。具体的な削減例について図１１を用いて説明する。１１１０、１１３０、１１５０は、通信装置１０３から受信した印刷ジョブを説明するための模式図であり、１１２０、１１４０、１１６０は記憶領域に格納するジョブ属性とＰＤＬデータを説明するための模式図である。１１１０は、セット（束）の区切りを示すｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔが「２」で、コレートジョブが指定された印刷ジョブの一例を示している。１１２０は、１１１０の印刷ジョブを受信した場合に、Ｓ９０６〜Ｓ９１３及びＳ９２４の処理でデータ削減及び部数更新処理を実行した結果を例示している。このケースでは、最初の２ページ（Ｐ１、Ｐ２）が抽出され、２部目、３部目の印刷を実現するために展開されたデータは削除される。また、部数を示す属性は、１部から３部に更新される。従って、データを削減したとしても同等の印刷物を出力することができるようになる。
【００８６】
続けて、非コレートジョブの属性がセットされた印刷ジョブを受信した場合のデータ削減処理について説明する。１１３０は非コレートジョブの属性がセットされた印刷ジョブを説明するための模式図である。１１１０で説明したコレートジョブでは部単位でデータがソートされていたが、非コレートジョブではＰ１が３ページ連続し、その後にＰ２が３ページ連続するといったページの順序となっている。従って、抽出すべきページと削除すべきページが異なる。
【００８７】
図９の説明に戻り、非コレートジョブの場合のデータ削減処理について説明する。Ｓ９１４において、変数である部数カウンタを１へリセットし、ページ制御部３０９が持つページカウンタを０にリセットする。
【００８８】
Ｓ９１５において、ジョブ制御部３０７は、ＰＤＬ制御部３０６とページ制御部３０９と協働し、Ｓ９０７と同様のページ解析処理を行う。１ページ分の解析が完了するとページ処理部が保持するページカウンタをカウントアップ（インクリメント）する。
【００８９】
Ｓ９１６において、ジョブ制御部３０７は、ジョブデータの終端であるか否かを判断する。処理の内容はＳ９１２と同様であるため省略する。ジョブデータの終端であると判断した場合、処理をＳ９１７に進め、ジョブデータの終端でないと判断した場合、Ｓ９１３の処理に戻り次ページの解析を行う。
【００９０】
Ｓ９１７において、ジョブ制御部３０７は、ページ制御部３０９に展開された全ページ数の情報をｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔの値で除算して部数（ｊ）を導出する。
【００９１】
Ｓ９１８において、ジョブ制御部３０７は、不要ページを判定する処理に使用する第２の変数であるページカウンタ（ｉｉ）を１にリセットし、処理をＳ９１９に進める。
【００９２】
Ｓ９１９において、ジョブ制御部３０７は、ページカウンタ（ｉｉ）を部数（ｊ）で除算した余り（Ｍｏｄ）を導出する。導出した余りが１の場合に、処理をＳ９２０に進める。除算した余りが１以外の場合は処理をＳ９２１に進める。
【００９３】
Ｓ９２０において、ジョブ制御部３０７は、ページ制御部３０９と協働して、当該ページ（ｉｉ）を蓄積部３１８に保存して、処理をＳ９２２に進める。Ｓ９２１において、ジョブ制御部３０７は、ページ制御部３０９と協働して、当該ページ（ｉｉ）を削除（破棄）して、処理をＳ９２２に進める。
【００９４】
Ｓ９２２において、ジョブ制御部３０７は、最終ページまでの判定が完了したか否かを判断する。ページカウンタ（ｉｉ）と、総ページ数に基づき、全ページデータの判定が完了したと判断すると処理をＳ９２４に進め、部数の更新処理、一連の処理で生成したＰＤＬデータと印刷ジョブの属性の対応付け、及び、元のＰＤＬデータの削除処理を行う。一方、全ページデータの判定が完了していないと判断すると処理をＳ９２３に進める。Ｓ９２３において、ジョブ制御部３０７は、ページカウンタ（ｉｉ）をカウントアップ（インクリメント）し、Ｓ９１９の処理に戻る。
【００９５】
Ｓ９１４〜Ｓ９２４で説明した一連の処理により非コレートジョブのデータ削減を行うことができる。図１１を用いて一連のデータ削減処理の一例を説明する。１１３０は、セット（束）の区切りを示すｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔが「２」で、非コレートジョブが指定された印刷ジョブの一例を示している。１１４０は、１１３０の印刷ジョブを受信した場合に、Ｓ９１４〜Ｓ９２４の処理でデータ削減及び部数更新処理を実行した結果を例示している。このケースでは、最初のページ（Ｐ１）、と先頭から数えて４ページ目（Ｐ２）のページデータが抽出され、２部目、３部目の印刷を実現するために展開されたデータ（先頭から数えて２、３、５、６ページ目のページデータ）は削除される。また、部数を示す属性は、１部から３部に更新される。従って、データを削減したとしても同等の印刷物を出力することができるようになる。
【００９６】
最後に、データ削減処理を行わないケースについて１１５０、１１６０を用いて説明する。１１５０は、バリアブルプリントであることを表す属性がセットされた印刷ジョブの一例を示している。１１６０は留め置き機能を実現するために格納するデータの一例を示している。この属性がセットされている場合は、各セット（束）に対して異なるコンテンツが割り当てられている恐れがある。従って、ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔ属性がセットされていたとしても、データ削減処理を行うことなく受信したＰＤＬデータをそのまま蓄積する。
【００９７】
以上説明した一連の処理により、複数部数の印刷のために展開されている印刷ジョブを受信した場合において、当該印刷ジョブのデータ容量を削減しつつ、同様の印刷物を出力できるデータを格納することができるようになる。
【００９８】
図９のフローチャートの各処理によって印刷装置１０１の記憶領域に格納された印刷ジョブは、図２で説明したように操作部２１６を介したユーザ操作によって選択され、適宜印刷される。この場合にＣＰＵ２１１と操作部２１６とが協働して実現する表示制御について図１２を用いて説明する。図１２（Ａ）〜（Ｃ）は留め置き機能に関する画面の一例を示している。図１２（Ａ）は留め置き機能により留め置かれたデータの選択画面の一例である。操作部２１６に表示された図示省略の機能選択画面から留め置き印刷機能を使用するためのアイコンを選択するユーザ操作を受け付けると、ＣＰＵ２１１は、操作部２１６に選択画面を表示する。選択画面には留め置かれたデータのリストが表示される。ユーザは所望のデータを選択し、印刷指示を行うことができる。
【００９９】
図１２（Ａ）では、説明のためユーザ操作によって項目１２１１が選択されている場合を例示している。また、項目１２１１は、図１１の１１２０で例示したデータ削減処理を行ったデータに対応するものとする。
【０１００】
ユーザは編集キー１２１２を使用して、印刷設定を変更することができる。編集キー１２１２が選択されたことを検知すると、ＣＰＵ２１１は、操作部２１６に編集画面を表示する。図１２（Ｂ）は編集画面の一例である。編集画面には総ページ数を示す情報１２２１や、部数の変更を受け付けることができる表示アイテム１２２３が表示される。これらの総ページ数や部数は、図９で示した一連の処理によって更新された属性に基づき表示されることになる。従ってユーザにとって違和感のない表示を行うことができる。また、部数を編集する場合においても違和感のない操作を行うことができる。また、図示省略のプレビュー画面などを表示するように構成することもできる。この場合においても抽出したページデータに基づくサムネイルが表示されるため、ユーザにとって違和感のない表示を行うことができる。ユーザは、印刷キー１２２３を使用して選択中のデータの印刷を指示することができる。印刷キー１２２３が選択されたことを検知すると、ＣＰＵ２１１は、ジョブ制御部３０７に当該ユーザ選択に対応する印刷ジョブの実行を指示する。ジョブ制御部３０７は、各部と協働して、印刷ジョブに基づく印刷物を生成する。
【０１０１】
続けて、図１０のフローチャートを用いて通信装置１０３ａ〜ｃにおいて実行される印刷ジョブの生成処理について説明する。ここでは、印刷のためにＩＰＰプリントクライアントが呼び出された後に実行される印刷ジョブの生成に関する処理を抜粋している。図１０の処理を実行する前に、Ｓ６０５のシーケンスで説明した印刷設定画面を介して印刷設定がなされていること、印刷装置１０１を使用して印刷する設定がなされていることを前提として説明する。
【０１０２】
図１０のフローチャートに示す各動作（ステップ）は、ＣＰＵ４０１がＲＯＭ４０２又はストレージ４０４に記憶された各制御モジュールを実現するためのプログラムをＲＡＭ４０３に読み出し、実行することにより実現される。なお、フローチャートで示す各処理は、図５で説明した制御モジュールを実現するためのプログラムをＣＰＵ４０１が実行することにより実現されるものとする。各制御モジュールによって提供される制御を説明する場合、ＣＰＵ４０１によって実現される当該制御モジュールを主語として説明する。また、一部の処理は、ＣＰＵ４０１によって実現される制御モジュールと通信部Ｉ／Ｆ４０６などの各部とが協働して実現する。
【０１０３】
Ｓ１０００において、ＩＰＰクライアント制御部は、印刷指示を受け付けたか否かを判断する。印刷指示を受け付けた場合は処理をＳ１００１に進め、印刷指示を受け付けていない場合は、操作部４０８を介した印刷指示の受け付けを待つ。
【０１０４】
Ｓ１００１において、印刷ジョブ生成部５０４は、相手先の印刷装置が複数部印刷に対応しているか否かを判断する。具体的には、プリンタ情報管理部５１１に対して相手先の印刷装置がＣｏｐｉｅｓ（複数部印刷）に対応しているか否かを問い合わせる。問い合わせの結果、相手先の印刷装置が複数部印刷をサポートする場合はＳ１００２に進み、サポートしない場合はＳ１００７に進む。
【０１０５】
Ｓ１００２において、印刷ジョブ生成部５０４は、相手先の印刷装置がＰＤＦフォーマットに対応しているか否かを判断する。具体的には、プリンタ情報管理部５１１に対して相手先の印刷装置が対応するフォーマットの一覧を示す属性値を問い合わせる。問い合わせの結果得られた属性値に基づき相手先の印刷装置がＰＤＦをサポートしていると判断すると処理をＳ１００３に進め、ＰＤＦをサポートしていないと判断すると。処理をＳ１００７へ進める。
【０１０６】
Ｓ１００３において、印刷ジョブ生成部５０４は、印刷設定画面を介してなされた部数の設定を取得し、印刷ジョブの属性に印刷部数を設定する。印刷ジョブ生成部５０４は、ジョブ属性生成部５０６にＣｏｐｉｅｓがＮであることを示す印刷属性を生成するよう依頼する。ここでは、印刷設定画面を介してＮ部が設定された場合を例として記載している。
【０１０７】
Ｓ１００４において、印刷ジョブ生成部５０４は、ページ生成部５０７、ＯＳ描画エンジン５１４、ＰＤＬ生成部５０８と連携し、ＰＤＦを生成する。生成したＰＤＦはページ蓄積部５１５に蓄積される。
【０１０８】
Ｓ１００５において、ページ生成部５０７は、ＯＳ描画エンジン５１４に後続ページの有無を確認し、最終ページまでの処理が完了したか否かを判断する。完了したと判断すると、処理をＳ１００６へ進め、完了していないと判断すると、Ｓ１００４の処理に戻り、ＯＳ描画エンジン５１４から後続ページを受信して、ＰＤＦの生成処理を継続する。
【０１０９】
Ｓ１００６において、印刷ジョブ生成部５０４は、相手先の印刷装置がサポートする最大サイズを超えているか否かを判断する。具体的には、プリンタ情報管理部５１１に対して相手先の印刷装置に対応付けて記憶しているｐｄｆ−ｋ−ｏｃｔｅｔｓ−ｓｕｐｐｏｒｔｅｄの属性値を問い合わせる。続けて、Ｓ１００４〜Ｓ１００５の処理で生成したＰＤＦのサイズと、取得した属性値に基づき、当該ＰＤＦを相手先の印刷装置が受信可能か否かを判断する。受信可能であると判断すると処理をＳ１０１４に進め、受信可能でないと判断すると処理をＳ１００７に進める。この処理は、相手先の印刷装置において、サイズ上限エラーとなり、印刷が行われないといったエラーを抑制するための例外処理である。
【０１１０】
Ｓ１０１４において、ＩＰＰクライアント５０３は、プリントスプーラー５０９、データ通信制御部５１０と協働して、相手先の印刷装置に印刷ジョブの生成をリクエストし、ページデータを送信する。リクエストに含まれる印刷属性やページデータのヘッダに含まれるドキュメント属性には、ユーザ操作により設定された印刷設定に基づく印刷属性や、ページデータのフォーマットを示す属性情報などが付与される。
【０１１１】
続けて、ＰＷＧ−Ｒａｓｔｅｒ形式などのラスタ形式の印刷ジョブを送信するケースについてＳ１００７以降で説明する。
【０１１２】
Ｓ１００７において、印刷ジョブ生成部５０４は、印刷属性として部数１をセットし、変数である部数カウンタを１にリセットする。具体的には、印刷ジョブ生成部５０４は、ジョブ属性生成部５０６に対してＣｏｐｉｅｓ属性を１に変更することを依頼する。また、印刷ジョブ生成部５０４内部に一時的に保持する変数である部数カウンタを１にリセットする。
【０１１３】
Ｓ１００８において、印刷ジョブ生成部５０４は、相手先の印刷装置が処理（例えば、後処理）を行うための処理単位を示すセット（束）を指定したジョブに対応しているか否かを判断する。具体的には、プリンタ情報管理部５１１に対して、ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔのサポート可否を問い合わせる。問い合わせの結果、相手先の通信装置が、ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔをサポートしていると判断した場合は処理をＳ１００９へ進め、サポートしていないと判断した場合はＳ１００９の処理をスキップし、処理をＳ１０１０へ進める。
【０１１４】
Ｓ１００９において、ジョブ属性生成部５０６は、ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔの属性に１部数ごとのページ数を設定し、処理をＳ１０１０へ進める。
【０１１５】
Ｓ１０１０において、印刷ジョブ生成部５０４は、ＯＳ描画エンジン５１４、ＰＤＬ生成部５０８と協働して、ＰＷＧ−Ｒａｓｔｅｒ形式のページを生成する。生成したＰＷＧ−Ｒａｓｔｅｒ形式のページはページ蓄積部５１５に格納される。
【０１１６】
Ｓ１０１１において、ページ生成部５０７は、最終ページか否かを判断する。最終ページであると判断した場合はＳ１０１２へ、最終ページでないと判断した場合は処理をＳ１０１へ進める。Ｓ１０１１の具体的な処理内容は、Ｓ１００５と同様であるため省略する。
【０１１７】
Ｓ１０１２において、印刷ジョブ生成部５０４は、部数カウンタをカウントアップ（インクリメント）する。
【０１１８】
Ｓ１０１４において、印刷ジョブ生成部５０４は、ユーザが設定した印刷部数に基づくページの展開が完了したか否かを判断する。部数カウンタとユーザにより設定された印刷部数が一致する場合、ページの展開が完了したと判断し、処理をＳ１０１４に進める。一方、部数カウンタとユーザにより設定された印刷部数が一致しない場合、Ｓ１０１０に戻り、ＯＳ描画データに基づくページデータの再生成を行う。なお、ページデータの再生成は、Ｓ１０１０で生成したラスタデータを複製する処理に置き換えることもできる。
【０１１９】
以上説明した処理により、通信装置１０３は、ＰＤＦフォーマットでの印刷ジョブの送信が行えないケースにおいて、ＰＷＧ−Ｒａｓｔｅｒフォーマットで印刷ジョブを送信することができる。また、通信装置１０３は、複数部数の印刷のために展開した印刷ジョブを送信する場合において、１以上のページを１セットとして当該セットごとに処理を行うための属性情報（例えば、ｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔ）を付加することができる。このように、通信装置１０３は、複数部数の印刷のためにデータが展開した場合、当該展開を行ったことを示唆する属性情報を付加した印刷ジョブを送信することができる。従って印刷装置１０１では、当該属性情報を手かがりとしてデータの削減処理を試みることが可能となる。
【０１２０】
＜変形例＞
なお、本実施形態では、印刷制御装置の一例として印刷部を有する印刷装置１０１を例示し、印刷装置１０１の記憶領域に印刷ジョブを格納する実施形態を例示したがこれに限定されるものではない。例えば、印刷装置と通信可能に接続されたプリントサーバなどの印刷制御装置に印刷ジョブを格納するケースにおいても適用することができる。この場合、プリントサーバは、仮想プリンタとしてふるまう。プリントサーバは、図９のフローチャートの各処理を実行し、ＩＰＰクライアントから受信した印刷ジョブに対するデータ削減処理を試み、印刷ジョブをサーバ内の記憶領域に格納する。プリントサーバは、印刷装置からの取得要求に応じて、記憶領域に記憶された印刷データを印刷装置に対して送信する。例えば、印刷装置は装置にユーザがログインすることに応じて、当該ユーザの印刷ジョブの取得要求をプリントサーバに送信する。プリントサーバは、該当する印刷ジョブを検索する。プリントサーバは、取得要求に対する応答として検索で見つかった印刷ジョブを送信する。これらのプリントサーバは、クラウドサーバ上で分散して実現されてもよい。
【０１２１】
また、本実施形態では、通信装置１０３側で実行される印刷ジョブの生成処理の一例として、ＰＤＦフォーマットをサポートしていない場合、一律に部数の展開処理を行う場合を例示したがこれに限定されるものではない。例えば、相手先の印刷装置がＣｏｐｉｅｓ＞１をサポートし、ＰＤＦをサポートしていない条件を満たす場合、通信装置１０３は、印刷属性としてＣｏｐｉｅｓ＝Ｎを付与し、１部数のＰＷＧ−Ｒａｓｔｅｒのデータを生成するようにしてもよい。
【０１２２】
また、上述の実施形態では、複数部数の印刷のためにデータを展開したことを示唆する属性情報として、ＩＰＰの後処理のための仕様として定義されたｊｏｂ−ｐａｇｅｓ−ｐｅｒ−ｓｅｔを活用する場合を例示したがこれに限定されるものではない。例えば、複数部数の印刷のためにデータを展開したことを示す属性情報を新たに定義し、当該属性情報を活用するようにしてもよい。この場合、通信装置１０３は、複数部数の印刷のためにデータを展開したことを示す属性情報に対応する属性値として１部数当りのページ数を示す情報を付与する。当該属性情報を含む印刷ジョブを受信した印刷装置１０１は、属性値を用いて前述したデータの削減処理を行うようにすればよい。
【０１２３】
＜その他の実施形態＞
本発明は、上述の各実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣやＦＰＧＡ）によっても実現可能である。
【符号の説明】
【０１２４】
１０１  印刷装置
１０３  通信装置
２１１  ＣＰＵ
２２３  通信部Ｉ／Ｆ
【図１】
2019181866.tif 000003
【図２】
2019181866.tif 000004
【図３】
2019181866.tif 000005
【図４】
2019181866.tif 000006
【図５】
2019181866.tif 000007
【図６】
2019181866.tif 000008
【図７】
2019181866.tif 000009
【図８】
2019181866.tif 000010
【図９】
2019181866.tif 000011
【図１０】
2019181866.tif 000012
【図１１】
2019181866.tif 000013
【図１２】
2019181866.tif 000014