(57)【要約】【課題】従来技術に従ってページの余白を検知して、その余白を除いた画像データを集約印刷することにより印刷画像の視認性を向上させるためには、デバイス余白とユーザが意図して付加した余白とを判別する必要がある。【解決手段】印刷ジョブに含まれる描画コマンドを集約印刷する際、前記描画コマンドの印刷対象のページがデバイス余白に相当する余白を含むかどうか判定し、デバイス余白に相当する余白を含むと判定すると、前記ページに含まれるオブジェクトを前記余白を除いた縮小率で縮小して描画する。またデバイス余白に相当する余白を含まないと判定すると、前記ページに含まれるオブジェクトを前記集約印刷に基づく縮小率で縮小して描画し、こうして描画された画像データを出力する。【選択図】  図１０
2018069499.tif 000002
【特許請求の範囲】
【請求項１】
印刷ジョブに含まれる描画コマンドを集約印刷する際、前記描画コマンドの印刷対象のページがデバイス余白に相当する余白を含むかどうか判定する判定手段と、
前記判定手段が前記デバイス余白に相当する余白を含むと判定すると、前記ページに含まれるオブジェクトを前記余白を除いた縮小率で縮小して描画する第１描画手段と、
前記判定手段が前記デバイス余白に相当する余白を含まないと判定すると、前記ページに含まれるオブジェクトを前記集約印刷に基づく縮小率で縮小して描画する第２描画手段と、
前記第１或いは第２描画手段により描画された画像データを出力する出力手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記判定手段は、前記描画コマンドに含まれる余白が、前記集約印刷で使用される用紙のサイズ、及び集約数に応じて決まる閾値以下のときに、前記デバイス余白に相当する余白を含むと判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１描画手段は、前記縮小率で縮小する前のオブジェクトの第１の原点を前記縮小率に基づいて変換した第２の原点から、前記縮小率で縮小したオブジェクトを描画することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記第２描画手段は、前記縮小率で縮小したオブジェクトを前記用紙の原点に基づく原点から描画することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
受信した印刷ジョブを格納する格納手段と、
前記格納手段に格納された印刷ジョブから印刷対象の印刷ジョブを選択する選択手段と、
前記選択手段により選択された印刷ジョブの印刷設定を変更する変更手段と、
を更に有することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記格納手段は、各印刷ジョブに対応して、当該印刷ジョブを作成したユーザの情報、当該印刷ジョブに設定された印刷設定を格納することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記印刷設定は、集約印刷の設定を含むことを特徴とする請求項５又は６に記載の画像処理装置。
【請求項８】
前記デバイス余白は、印刷に使用される用紙のマージンに相当することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
画像処理装置を制御する制御方法であって、
判定手段が、印刷ジョブに含まれる描画コマンドを集約印刷する際、前記描画コマンドの印刷対象のページがデバイス余白に相当する余白を含むかどうか判定する判定工程と、
第１描画手段が、前記判定工程が前記デバイス余白に相当する余白を含むと判定すると、前記ページに含まれるオブジェクトを前記余白を除いた縮小率で縮小して描画する第１描画工程と、
第２描画手段が、前記判定工程が前記デバイス余白に相当する余白を含まないと判定すると、前記ページに含まれるオブジェクトを前記集約印刷に基づく縮小率で縮小して描画する第２描画工程と、
出力手段が、前記第１或いは第２描画工程で描画された画像データを出力する出力工程と、
を有することを特徴とする画像処理装置の制御方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
機密性の高い印刷物を出力するために、他のユーザに見られないように画像処理装置でユーザ認証を実行してから印刷実行を行う留め置き印刷がある。この留め置き印刷では、画像処理装置でユーザの認証に成功した後、その画像処理装置で表示される印刷ジョブリストの画面から、ユーザが留め置かれた印刷データの印刷設定を変更できる。この印刷設定には、集約印刷の設定も含まれる。集約印刷とは、１ページ内に複数ページを印刷する機能で、ここでは１枚の用紙に１ページを割り当てることを１-in-１、１枚の用紙に２ページを割り当てることを２-in-１、１枚の用紙にＮページを割り当てることをＮ-in-１と呼んでいる。この技術は、印刷データに含まれる描画コマンドのうち、変倍に適合するオブジェクト用の描画コマンドを変換することによって達成される（例えば、特許文献１参照）。
【０００３】
一方、集約印刷をすると画像サイズが大幅に小さくなるため、その印刷物における視認性が低下する。例えば特許文献２には、留め置き印刷ではないが、例えばラスタライズした画像データを走査してページの余白を検知し、そのページの画像データから余白を除いた部分を、集約印刷のサイズに合わせて縮小することが記載されている。この特許文献２に記載の技術によれば、集約印刷された画像の視認性を向上できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１３５６６６号公報
【特許文献２】特開２００７−２０６１１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献２では、ラスタライズされた画像データから余白を検知しているため、例えば、ユーザが意図して画像データに付加した余白部分を消してしまうことがある。これに対して、ユーザが意図しない余白の例としては、印刷範囲を限定するために設けられる余白（デバイス余白（マージン））がある。従って、上述の従来技術に従ってページの余白を検知して、その余白を除いた画像データを集約印刷することにより印刷画像の視認性を向上させるためには、上記デバイス余白とユーザが意図して付加した余白とを判別する必要がある。
【０００６】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００７】
本発明の目的は、集約印刷時に、ユーザが意図して付加した余白とデバイス余白とを識別してオブジェクトを縮小する技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
印刷ジョブに含まれる描画コマンドを集約印刷する際、前記描画コマンドの印刷対象のページがデバイス余白に相当する余白を含むかどうか判定する判定手段と、
前記判定手段が前記デバイス余白に相当する余白を含むと判定すると、前記ページに含まれるオブジェクトを前記余白を除いた縮小率で縮小して描画する第１描画手段と、
前記判定手段が前記デバイス余白に相当する余白を含まないと判定すると、前記ページに含まれるオブジェクトを前記集約印刷に基づく縮小率で縮小して描画する第２描画手段と、
前記第１或いは第２描画手段により描画された画像データを出力する出力手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、集約印刷時に、ユーザが意図して付加した余白とデバイス余白とを識別してオブジェクトを縮小することができため、集約印刷された画像の視認性を向上することができる。
【００１０】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。尚、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１１】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態に係る、留め置き印刷を行なう印刷システムの構成例を示す図。
【図２】実施形態に係るＭＦＰのソフトウェア構成例を説明する機能ブロック図。
【図３】本実施形態に係るＭＦＰにおける印刷ジョブの留め置き処理の流れを説明するフローチャート。
【図４】図３のＳ３０４で作成されて、ＭＦＰの操作部に表示された印刷ジョブリストの一例を示す図。
【図５】本実施形態に係るＭＦＰによる留め置き印刷処理の流れを説明するフローチャート。
【図６】実施形態に係るＭＦＰによる図５のＳ５０８のコマンド変換処理の流れを説明するフローチャート。
【図７】実施形態において、集約印刷が設定される前と集約印刷が設定された後の各ページのコマンドの変換例を説明する図。
【図８】各ページ内でオブジェクトがデバイス余白を設けて位置づけられているとき、１-in-１から２-in-１に集約印刷設定が変更された場合のオブジェクトのサイズと位置の変換例を説明する図。
【図９】各ページ内でオブジェクトがデバイス余白でなく、ユーザが意図した余白を空けて位置づけられているとき、１-in-１から２-in-１に集約印刷設定が変更された場合のオブジェクトのサイズと位置の変換例を説明する図。
【図１０】図６のＳ６０６のレイアウト決定処理を説明するフローチャート。
【図１１】実施形態に係るＭＦＰの操作部に表示される集約印刷を設定する画面例を示す図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
図１は、本発明の実施形態に係る、留め置き印刷を行なう印刷システムの構成例を示す図である。
【００１４】
ＭＦＰ１００は、コピー、プリンタ、ＦＡＸ、スキャナ等の複数の機能を有する画像処理装置である複合機（Multi-Function Peripheral）である。この画像処理装置は、例えばＳＦＰ（Single Function Printer）であってもよい。また、プリンタの方式にも制限はなく、例えば、レーザビーム方式やインクジェット方式等の、如何なる方式のプリンタであってもよい。ＭＦＰ１００は、イーサネット（登録商標）等のＬＡＮ１２０を介して各種指示を行う情報処理装置であるホストコンピュータ１１０と接続され、ホストコンピュータ１１０からの印刷ジョブに応じて印刷処理を実行する。また実施形態に係るＭＦＰ１００は、印刷対象となる文書の書誌情報を管理する書誌情報サーバとしても動作する。
【００１５】
ＭＦＰ１００は、コントローラ（制御部）１０１、印刷部１０２、認証部１０３、操作部１０４を備える。以下、各部について説明する。
【００１６】
コントローラ１０１は、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３を有し、ＣＰＵ１１１はＲＯＭ１１２に記憶されたプログラムをＲＡＭ１１３に展開し、それを実行することによってＭＦＰ１００全体の動作を制御する。ＨＤＤ（ハードディスクドライブ）１１４はコントローラ１０１に接続されており、受信した印刷ジョブや画像データ等を記憶するのに使用される。コントローラ１０１は、認証部１０３及び操作部１０４からの操作指示をシステムバス等を通じて受け取り、各種処理を実行する。またコントローラ１０１は、ホストコンピュータ１１０から受け取った印刷ジョブの内容に基づいて印刷ジョブのリストを作成して管理する。印刷部１０２は、コントローラ１０１の指示に従って、印刷を実行するプリンタエンジンである。認証部１０３は、カードリーダ機能を有し、ユーザのＩＤカードから読み取ったユーザ情報をコントローラ１０１へ通知する。これによりコントローラ１０１は、予め登録されているユーザ情報を参照し、そのユーザがこのＭＦＰ１００を使用する権限を有しているか否かを判定する、所謂、ユーザ認証を行う。こうして認証に成功したユーザは、そのユーザに割り当てられている権限内で、このＭＦＰ１００を使用することができる。操作部１０４は表示部と、各種ハードキーを有するキーボード部とを備え、ユーザとの間のインタフェースを司っている。尚、表示部はタッチパネル機能を有していても良い。尚、認証部１０３は、カードリーダ機能を有する以外にも、例えば操作部１０４から入力されたユーザＩＤやパスワードを基に、そのユーザの認証を行っても良い。
【００１７】
図２は、実施形態に係るＭＦＰ１００のソフトウェア構成例を説明する機能ブロック図である。これら機能は、前述したように、コントローラ１０１のＣＰＵ１１１がＲＡＭ１１３に展開したプログラムを実行することにより達成される。
【００１８】
ここでは、ネットワーク制御部２００、認証制御部２０１、プリンタ制御部２０２、パネル入出力制御部２０３、ジョブ制御部２０４、ジョブ管理部２０５、コマンド特定部２０６、コマンド変換部２０７が含まれている。
【００１９】
ネットワーク制御部２００は、ホストコンピュータ１１０からＬＡＮ１２０を介して受信した印刷ジョブや印刷データの情報をプリンタ制御部２０２へ通知する。プリンタ制御部２０２は、ネットワーク制御部２００、認証制御部２０１、パネル入出力制御部２０３から通知された情報に応じて印刷部１０２を制御して印刷を行う。ジョブ制御部２０４は、受信した印刷ジョブを解析し、その印刷ジョブを基に生成した画像データを印刷部１０２へ渡して印刷処理を実行する。認証制御部２０１は、認証部１０３よりユーザの認証情報を受け取ってユーザを認証し、その認証結果をプリンタ制御部２０２へ通知する。パネル入出力制御部２０３は、操作部１０４の入出力制御を行う。ジョブ管理部２０５は、ユーザが入力した印刷ジョブを、コントローラ１０１に接続されたＨＤＤ１１４の記憶装置に記憶して管理（留め置き）する。またプリンタ制御部２０２より通知されたユーザ情報を基に、そのユーザ情報に対応する印刷ジョブの情報をプリンタ制御部２０２やジョブ制御部２０４へ通知する。コマンド特定部２０６は、印刷ジョブに含まれる、余白量及び余白量の閾値を計算するための描画コマンド等を特定する処理を行う。余白量を示す描画コマンドとしては、例えば原点座標を変更するための描画コマンドがある。また余白量の閾値を計算するための描画コマンドとしては、画像の解像度、用紙サイズ、用紙の向きを示す描画コマンドがある。コマンド変換部２０７は、印刷設定の変更に応じて印刷ジョブのコマンドの変換処理を行う。
【００２０】
次に、ジョブ管理部２０５が実行する、印刷ジョブをＨＤＤ１１４に一旦留め置く処理について説明する。
【００２１】
図３は、本実施形態に係るＭＦＰ１００における印刷ジョブの留め置き処理の流れを説明するフローチャートである。尚、このフローチャートで示す一連の処理は、この手順を記述したコンピュータで実行可能なプログラムを、ＣＰＵ１１１がＲＯＭ１１２からＲＡＭ１１３に展開し、ＣＰＵ１１１がその展開したプログラムを実行することによって達成される。
【００２２】
まずＳ３０１でＣＰＵ１１１はジョブ管理部２０５として機能し、ネットワーク制御部２００を通じてホストコンピュータ１１０などから送信された印刷ジョブを受信する。次にＳ３０２に進みＣＰＵ１１１はジョブ管理部２０５として機能し、受信した印刷ジョブに含まれるユーザ情報を取得する。尚、このユーザ情報は、印刷ジョブに含まれていなくてもよく、例えば印刷ジョブの送信元であるホストコンピュータ１１０から別途受け取る構成でも構わない。ここで、ユーザ情報とは、印刷ジョブを作成して送信したユーザを一意に識別できるユーザ名やユーザＩＤといった情報であり、その形式はどのようなものであってもよい。次にＳ３０３に進みＣＰＵ１１１はジョブ管理部２０５として機能し、受信した印刷ジョブから印刷設定情報及び文書名を取得する。この印刷設定情報には、印刷部数を示す部数情報、両面印刷か片面印刷かを示す両面／片面印刷情報、１-in-１の通常印刷、或いは２-in-１等のＮ−up印刷（集約印刷）を示す集約印刷設定が含まれる。
【００２３】
次にＳ３０４に進みＣＰＵ１１１はジョブ管理部２０５として機能し、印刷ジョブのリストを作成する。具体的には、Ｓ３０２で取得したユーザ情報と、Ｓ３０３で取得した印刷設定情報及び文書名とを関連付け、これら関連付けられた情報を一つのレコードとして、そのユーザ情報に対応する印刷ジョブリストに格納する。
【００２４】
図４は、図３のＳ３０４で作成されて、ＭＦＰ１００の操作部１０４に表示された印刷ジョブリストの一例を示す図である。
【００２５】
図４の例では、入力された印刷ジョブ毎に、文書名、印刷部数、両面／片面印刷、及び集約印刷の各情報が一つのレコード（一行）で示され、これらが印刷ジョブを入力したユーザのユーザ名「t.yamada」と関連付けて登録されている。ここでは、ユーザ（t.yamada）が送信した印刷ジョブのリストが表示されている。
【００２６】
このＳ３０４で新たに一つのレコードが追加された印刷ジョブリストは、ＨＤＤ１１４等の記憶装置に保存される。また受信した印刷ジョブも、今回追加された一つのレコードに対応する印刷ジョブとしてＨＤＤ１１４等の記憶装置に保存される。
【００２７】
以上が、ＭＦＰ１００が印刷ジョブを受信した時に、その印刷処理を実行せずにＨＤＤ１１４等の記憶装置に保存する印刷ジョブの留め置き処理の内容である。こうしてユーザは、ホストコンピュータ１１０から印刷データを入力してＭＦＰ１００内に留め置いた後、ユーザがＭＦＰ１００で認証を行った後、そのユーザの印刷指示に応じて、指定された印刷ジョブに基づく印刷処理を実行する。
【００２８】
続いて、認証済のユーザの印刷指示に応じてなされる、ＭＦＰ１００による印刷処理を説明する。
【００２９】
図５は、本実施形態に係るＭＦＰ１００による留め置き印刷処理の流れを説明するフローチャートである。尚、このフローチャートで示す一連の処理は、この手順を記述したコンピュータで実行可能なプログラムを、ＣＰＵ１１１がＲＯＭ１１２からＲＡＭ１１３に展開し、ＣＰＵ１１１がその展開したプログラムを実行することによって達成される。
【００３０】
まずＳ５０１でＣＰＵ１１１は認証制御部２０１として機能し、ユーザの認証を行なう。ここでは例えば、ユーザに、自身のＩＤカードを認証部１０３のカードリーダにかざさせるようにして、そのユーザのユーザ情報をＩＤカードから読み取る。こうして読み取られたユーザ情報をプリンタ制御部２０２へ送って、そのユーザの認証を行う。実施形態では、ユーザが持つＩＤカードからそのユーザ情報を読み取る例を説明したが、例えば操作部１０４等からユーザのＩＤ情報とパスワードを入力させる方式など公知の認証方法を用いればよい。
【００３１】
次にＳ５０２に進みＣＰＵ１１１はプリンタ制御部２０２として機能し、ユーザ認証に成功すると、そのユーザが作成して留め置いている印刷ジョブのリストを操作部１０４に表示する。具体的には、Ｓ５０１で取得したユーザ情報で特定されるユーザ名に対応する印刷ジョブのリストをジョブ管理部２０５より取得し、その取得した印刷ジョブのリストをパネル入出力制御部２０３へ渡す。これによりパネル入出力制御部２０３は、操作部１０４の表示部に、例えば図４に示すような、Ｓ５０１で取得したユーザ情報で特定されるユーザ名に対応する印刷ジョブのリストを表示する。こうしてユーザは、操作部１０４上に表示された印刷ジョブのリストの中から、印刷の指示、或いは印刷設定を変更したいレコードを、その文書名にタッチすることで選択する。
【００３２】
次にＳ５０３に進みＣＰＵ１１１はパネル入出力制御部２０３として機能し、操作部１０４の表示部でユーザが選択した文書名（レコード）に対応する印刷ジョブを取得する。そして、このとき、その印刷ジョブとともに、ユーザに対して印刷設定を変更するか、或いは印刷を実行するかを確認する画面を表示する。
【００３３】
図１１は、このとき印刷ジョブの画面とともに、ＭＦＰ１００の操作部１０４に表示される集約印刷を設定する画面例を示す図である。
【００３４】
この画面は、集約印刷を設定するためのボタン１１０１と、選択した印刷ジョブの実行開始を指示する印刷実行ボタン１１０２とを備えており、この画面は例えば、図４の画面にポップアップ画面として表示されても良い。ここで、例えば１-in-１ボタンがタッチされると、通常の１-in-１印刷が設定され、２-in-１ボタンがタッチされると、１-in-１での集約印刷が設定される。尚、図１１の画面には、例えば部数設定、片面／両面印刷等の印刷設定を行うボタンが設けられていても良いが、ここではそれらを省略している。
【００３５】
次にＳ５０４に進みＣＰＵ１１１はパネル入出力制御部２０３として機能し、図１１に示す画面で、ユーザが指示した内容を判定する。ここでユーザが、ボタン１１０１にタッチして集約印刷、或いは通常印刷を設定したときはＳ５０５に処理を進め、その指示された印刷の設定をプリンタ制御部２０２を介してジョブ管理部２０５へ送る。Ｓ５０５でＣＰＵ１１１はジョブ管理部２０５として機能し、受け取った印刷設定に応じて印刷設定情報の書き換え等を行なう。具体的には、例えば、部数情報、両面／片面印刷情報のように印刷設定情報の書き換えのみで足りるものは、選択された印刷ジョブに対する印刷設定情報の書き換えを行い、同時に対応するレコードの印刷設定情報の書き換えも行う。一方、集約印刷の設定が変更された場合は、印刷データ内の描画コマンド（ＰＤＬコマンド）の変更が必要となるため、集約印刷設定が変更されたことを示す情報（例えば、変更フラグをオンにする）を、その印刷ジョブのレコードに対応付けて保存する。
【００３６】
一方、Ｓ５０４で印刷実行ボタン１１０２が押下されたときはＳ５０６に処理を進め、選択された印刷ジョブの印刷開始を指示する情報（以下、印刷指示情報）をプリンタ制御部２０２へ送る。そしてＳ５０６でＣＰＵ１１１はプリンタ制御部２０２として機能し、印刷開始の指示に先立って、印刷設定が変更されているかどうかを判定する。ここで印刷設定の変更が行われていた場合はＳ５０７へ処理を進め、印刷設定の変更が行われていなかった場合はＳ５０９へ処理を進めて、その印刷ジョブを実行する。Ｓ５０９でＣＰＵ１１１はジョブ制御部２０４として機能し、印刷開始の指示に係る選択された印刷ジョブをレンダリングし、そのレンダリングにより生成された画像データを印刷部１０２へ転送する。尚、レンダリングの対象となる印刷ジョブは、Ｓ５０８のコマンド変換処理によってその内容が変更された描画コマンドを含む印刷データの場合もある。そして印刷部１０２は、その転送された画像データに基づいて記録媒体（シート）上に画像を印刷する。
【００３７】
一方、Ｓ５０７でＣＰＵ１１１はプリンタ制御部２０２として機能し、印刷設定情報のうち集約印刷設定に変更があったかどうかを判定する。具体的には、印刷開始の指示に係る印刷ジョブに対応するレコードに、集約印刷設定が変更されたことを示す変更フラグがオンになっているかどうかを、ジョブ管理部２０５を介して印刷ジョブのリストを参照することにより判定する。ここで変更フラグがオン、即ち、集約印刷が設定されている場合はＳ５０８へ進むが、そうでないときはＳ５０９へ進む。Ｓ５０８でＣＰＵ１１１はコマンド変換部２０７として機能し、印刷設定の変更内容に応じて描画コマンドの変換処理を行ってＳ５０９に進む。ここでは、余白量の閾値を計算し、余白量を決定し、縮小率の計算を行い、変倍処理をする。このコマンド変換処理の詳細は後述する。
【００３８】
尚、詳細は後述するが、Ｓ５０８のコマンド変換処理によって必要な変倍等の処理がなされているため、Ｓ５０９における印刷実行時には、印刷ジョブの描画コマンドを順次処理することが可能となる。尚、上述の例では、印刷開始の指示後にコマンド変換処理を行っているが、印刷設定を変更した時点でコマンド変換処理を行うように構成しても構わない。
【００３９】
次に実施形態に係るコマンド変換部２０７において実行される上述のコマンド変換処理について説明する。
【００４０】
図６は、実施形態に係るＭＦＰ１００による図５のＳ５０８のコマンド変換処理の流れを説明するフローチャートである。尚、このフローチャートで示す一連の処理は、この手順を記述したコンピュータで実行可能なプログラムを、ＣＰＵ１１１がＲＯＭ１１２からＲＡＭ１１３に展開し、ＣＰＵ１１１がその展開したプログラムを実行することによって達成される。
【００４１】
まずＳ６０１でＣＰＵ１１１はコマンド変換部２０７として機能し、集約印刷設定をジョブ管理部２０５から取得する。この集約印刷設定には、何ページを１枚に集約するか（Ｎ-in-１）を指定する情報と、そのレイアウト（Ｎページを左上から配置するのか右上から配置するのか等）に関する情報が含まれる。次にＳ６０２に進みＣＰＵ１１１はコマンド変換部２０７として機能し、印刷ジョブにおける処理対象ページ（Ｘページ）のページ情報を取得する。このページ情報には、処理対象となるＸページのページ開始コマンドと、そのＸページのページ情報（後述の図７におけるＰ１＝［Ａ１，Ｂ１］、Ｐ２＝［Ａ２，Ｂ２］）が含まれる。
【００４２】
次にＳ６０３に進みＣＰＵ１１１はコマンド変換部２０７として機能し、処理対象ページ（ここではＸページ）が、集約される複数のページの最初のページかどうか、（集約後の物理ページにおける先頭ページかどうか）を判定する。具体的には、ＸをＮで割った余りが１となるかどうかをチェックし、余りが１であれば最初のページであると判定する。ここでＮは、集約印刷設定（Ｎ-in-１）におけるＮに対応している。例えば、全１０頁からなる印刷ジョブに対し４-in-１の印刷設定がなされている場合、処理対象ページが５ページ目であれば、Ｘ（５）をＮ（４）で割った余りは１となり、最初のページであると判定される。ここでＣＰＵ１１１が、処理対象ページが最初のページであると判定するとＳ６０４へ進み、そうでないときはＳ６０５へ進む。Ｓ６０５でＣＰＵ１１１はコマンド変換部２０７として機能し、Ｓ６０２で取得したページ情報を削除してＳ６０６に進む。これは処理対象ページが、集約される複数のページにおける最初のページでない時は、そのページ情報は集約後の印刷データにおいて不要だからである。
【００４３】
Ｓ６０４でＣＰＵ１１１はコマンド変換部２０７として機能し、Ｓ６０２で取得したページ情報をＲＡＭ１１３等に保存する。これは処理対象ページが、集約される複数のページにおける最初のページの時は、そのページ情報を集約後の印刷データでも用いるためである。次にＳ６０６に進みＣＰＵ１１１はコマンド変換部２０７として機能し、処理対象ページ内の描画コマンドを取得し、取得した描画コマンドに係るオブジェクトを集約印刷設定に応じて縮小する。
【００４４】
具体的には、例えば図８の場合、１ページ目と２ページ目のオブジェクト８０２及び８０４のサイズが［Ｃ１，Ｄ１］，［Ｃ２，Ｄ２］で表されるとき、縮小率Ｎ１，Ｎ２を基に導出した新たなサイズ［Ｃ３，Ｄ３］，［Ｃ４，Ｄ４］が決定される。詳細は後述するが、縮小率Ｎ１，Ｎ２は、２-in-１や４-in-１といったＳ６０１で取得した集約印刷設定及びＰＤＬデータに含まれる余白によって決まる値である。またコマンド変換部２０７は、縮小されたオブジェクトの描画コマンドについての新たなレイアウト（座標変更）を、集約印刷設定に基づいて決定する。例えば、図８の１ページ目における変倍可能なオブジェクトは、縮小後はページ左側のデバイス余白に相当する座標（ａ３，ｂ３）に配置される。また２ページ目における縮小可能なオブジェクトは、縮小後は、Ｎ-in-１のレイアウトのデバイス余白に相当する座標（ａ４，ｂ４）に配置される。尚、これら座標（ａ３，ｂ３）、（ａ４，ｂ４）は、集約印刷情報（Ｎ-in-１）で示される集約数Ｎごとに予め決められた座標であり、例えばａ３＝５[mm]、ｂ３＝５[mm]である。こうして全ての描画コマンドの処理が完了した後Ｓ６０７へ進む。Ｓ６０７でＣＰＵ１１１はコマンド変換部２０７として機能し、印刷ジョブに未処理のページが存在するかどうかを判定する。ここで未処理のページが無く、全てのページの処理が完了している場合は、この処理を終了する。一方、未処理のページがある場合はＳ６０２に戻り、次のページを処理対象ページとして、上述したＳ６０２〜６０７の処理を行なう。
【００４５】
以上が、Ｓ５０８のコマンド変換処理の内容である。
【００４６】
次に、コマンド変換部２０７において実行される、図６のＳ６０６のレイアウト決定処理を図１０を参照して説明する。このフローチャートの説明に入る前に、本実施形態によって実現されるレイアウト決定処理について図７〜図９を参照して説明する。
【００４７】
図７は、実施形態において、集約印刷が設定される前と集約印刷が設定された後の各ページのコマンドの変換例を説明する図である。ここではページＰ１とＰ２が１-in-１で集約印刷される場合を示している。
【００４８】
Ｐ１＝［Ａ１，Ｂ１］は、１ページ目のコマンドを示し、当該ページのサイズが［Ａ１（横），Ｂ１（縦）］であることを表している。そして集約後の印刷データでは、ページコマンドは、Ｐ１＝［Ａ３，Ｂ３］に変換されている。印刷方向の変換方法は、ＰＤＬコマンドを用いてページの方向を変換する場合も含む。
【００４９】
集約前のOrigin＝（ａ１，ｂ１）、Origin＝（ａ２，ｂ２）は、変換前のページＰ１，Ｐ２のオブジェクトが、それぞれ原点（ａ１，ｂ１）、（ａ２，ｂ２）を基準に描画されていることを表している。また集約後のOrigin＝（ｃ１，ｄ１）、Origin＝（ｃ２，ｄ２）は、変換後のオブジェクトはそれぞれ、原点（ｃ１，ｄ１）、（ｃ２，ｄ２）を基準に描画されていることを表している。
【００５０】
集約前のImage＝（α１，β１）［Ｃ１，Ｄ１］、Image＝（α２，β２）［Ｃ２，Ｄ２］は、集約前の各ページの印刷データであるオブジェクトを指定する描画コマンドである。ここで（α１，β１），（α２，β２）はそれぞれ、変換前の各ページのオブジェクトの描画開始位置を表し、［Ｃ１，Ｄ１］，［Ｃ２，Ｄ２］は、各オブジェクトのサイズを表している。
【００５１】
また集約後のImage＝（α３，β３）［Ｃ３，Ｄ３］、Image＝（α４，β４）［Ｃ４，Ｄ４］は、集約後の各オブジェクトの印刷データを示し、集約前の各ページ目に存在した各オブジェクトに対応するオブジェクトを指定する描画コマンドである。（α３，β３），（α３，β３）はそれぞれ集約後のオブジェクトの原点を示し、［Ｃ３，Ｄ３］，［Ｃ４，Ｄ４］は、各オブジェクトの変換後のサイズを表している。
【００５２】
図８は、各ページ内でオブジェクトがデバイス余白を設けて位置づけられているとき、１-in-１から２-in-１に集約印刷設定が変更された場合のオブジェクトのサイズと位置の変換例を説明する図である。図８において、図７と共通する部分は同じ符号で示している。
【００５３】
図８において、ページ８０１，８０３はそれぞれ、変換前のページ全面にオブジェクト８０２，８０４が描画され、そこにデバイス余白がついた印刷データを１-in-１で印刷した結果を示している。即ち、ここではページ８０１上にオブジェクト８０２が描画され、ページ８０３上にオブジェクト８０４が描画され、ページ８０１とオブジェクト８０２及びページ８０２とオブジェクト８０４の間にはデバイス余白が付加されている。
【００５４】
ここで、このプリントデータを２-in-１に変換する場合、オブジェクト８０２は領域８０６に、オブジェクト８０４は領域８０８に適合するように縮小されてレイアウトされる。この結果、２-in-１に変換すると、オブジェクト８０２は領域８０６のサイズになり、オブジェクト８０４は領域８０８のサイズになる。
【００５５】
図９は、各ページ内でオブジェクトがデバイス余白でなく、ユーザが意図した余白を空けて位置づけられているとき、１-in-１から２-in-１に集約印刷設定が変更された場合のオブジェクトのサイズと位置の変換例を説明する図である。
【００５６】
図９において、ページ９０１，９０２はそれぞれ、変換前のページの中央付近にオブジェクト９０２，９０４が描画されて、かつデバイス余白がついていないデータを１-in-１で印刷した結果である。即ち、ページ９０１上にオブジェクト９０２が描画され、ページ９０３上にオブジェクト９０４が描画され、ページ９０１とオブジェクト９０２及びページ９０２とオブジェクト９０４の間はデバイス余白ではなく、ユーザが意図した余白が設けられている。
【００５７】
ここで、このプリントデータを２-in-１に変換すると、ページ９０１は領域９０６に、ページ９０３は領域９０７に適合するように縮小されてレイアウトされる。この結果、２-in-１に変換すると、オブジェクト９０２は領域９０８のサイズになり、オブジェクト９０４は領域９０９のサイズになる。
【００５８】
ここで図８と図９のレイアウト方法のいずれでレイアウトするかは、１-in-１レイアウト時の各オブジェクトの原点（ａ１，ｂ１）及び（ａ２，ｂ２）と、レイアウト変換前後の用紙サイズ、集約数に応じて決まる閾値と比較することで決定される。例えば、変換前の用紙サイズが（Ａ１，Ｂ１）、変換後の用紙サイズが（Ａ３，Ｂ３）、集約数が２（２-in-１印刷）であれば、閾値は（ａ３×（Ａ１／Ａ３／２））、（ｂ３×（Ｂ１／Ｂ３））と決定される。より具体的には、ａ３＝５[mm]、ｂ３＝５[mm]、変換前後の用紙サイズがＡ４、集約数が２であれば、閾値は、およそ７．１[mm]，７．１[mm]となる。尚、ここでＡ１＝Ｂ３＝２１０[mm]、Ａ３＝Ｂ１＝２９７[mm]とする。このように、変換前後で占める領域の大きさの比率が閾値の決定に関わる。尚、４-in-１，９-in-１等、異なるＮ-in-１印刷のレイアウトの場合でも、変換の前後で占める領域の大きさの比率を計算することで同等の処理ができる。
【００５９】
図１０は、図６のＳ６０６のレイアウト決定処理を説明するフローチャートである。尚、この処理はＣＰＵ１１１がコマンド変換部２０７として機能することにより達成される。
【００６０】
まずＳ１００１でＣＰＵ１１１は、図６のＳ６０２で取得した処理対象のページ情報から余白情報及び閾値を計算するために必要なコマンドを抽出する。次にＳ１００２に進みＣＰＵ１１１は、余白量候補のコマンドがあるかどうかを判定する。ここで余白量候補のコマンドがあると判定したときは、その座標を取得してＳ１００３に進むが、そうでないときはＳ１００６に進む。ここで余白量候補のコマンドとは、描画コマンドに含まれるマージンなどの情報、及び空白部分であることを示す、例えばスペースや空き領域などを示すコマンドを含む。
【００６１】
Ｓ１００３でＣＰＵ１１１は、Ｓ１００１で抽出した情報から余白量の閾値を計算する。この時点では、余白量候補のコマンドによる余白量と、集約印刷設定が決まっているので、これらから算出する。ここで抽出する情報には、例えば解像度、ページサイズ、ページの向き、ＰＤＬの座標系を意味するコマンドがある。次にＳ１００４に進みＣＰＵ１１１は、Ｓ１００３で算出した閾値と、Ｓ１００１で抽出した余白量候補のコマンドの余白量とを比較して、余白量が閾値以下の場合はデバイス余白と判定してＳ１００５に進む。一方、余白量が閾値よりも大きい場合は、その余白は、その印刷ジョブを作成したユーザが意図して付加した余白部分と判定してＳ１００６に進む。
【００６２】
Ｓ１００５でＣＰＵ１１１は、例えば図８で説明したように、図８のページ８０１［Ａ１，Ｂ１］から原点（ａ１，ｂ１）のオブジェクト８０２を除いた領域が、変換後のページ８０５［Ａ３／２、Ｂ３］から原点（ａ３，ｂ３）のオブジェクト８０６を除いた領域に合うように縮小率Ｎ１を計算する。例えば、２-in-１の場合では、横方向の縮小率（Ａ３／２−２×ａ３）／（Ａ１−２×ａ１））と、縦方向の縮小率（（Ｂ３−２×ｂ３）／（Ｂ１−２×ｂ１））を求めて、小さい方を縮小率Ｎ１とする。
【００６３】
同様に、ページ８０３［Ａ２，Ｂ２］から原点（ａ２，ｂ２）のオブジェクト８０４を除いた領域を、変換後のページ８０５［Ａ３／２、Ｂ３］から原点（ａ４，ｂ４）のオブジェクトを除いた領域に合うように縮小率Ｎ２を計算する。上記計算式は一例であり、例えばデバイス余白として想定される最大の値に対して印刷データに含まれる解像度を考慮して閾値を求めるという計算方法も含む。
【００６４】
次にＳ１００７に進みＣＰＵ１１１は、図８で説明した結果になるように、図８におけるページ８０１を縮小したオブジェクトの原点（ａ１，ｂ１）が、変換後のページ８０５のオブジェクトの原点（ａ３，ｂ３）と一致するように位置を調整する。Ｎ-in-１後のデバイス余白は、例えば、「（ｃ１，ｄ１）＝（ａ３，ｂ３）−Ｎ１×（ａ１，ｂ１）」、「（ｃ２，ｄ２）＝（ａ４，ｂ４）−Ｎ２×（ａ２，ｂ２）」とすることで、計算することができる。ここで求められる（ｃ１，ｄ１）は、レイアウト変換前の元データに存在する原点コマンドに対しても後述のＳ１００９で縮小変倍されることを考慮した値である。（ｃ２，ｄ２）も同様にして求められる。
【００６５】
一方、Ｓ１００６でＣＰＵ１１１は、図９で説明した結果になるように、ページ９０１［Ａ１，Ｂ１］が、変換後のページ［Ａ３／２，Ｂ３］に合うように拡縮率Ｎ１’を計算する。例えば、２-in-１の場合では、横方向の縮小率（（Ａ３／２）／Ａ１）と、縦方向の縮小率（Ｂ３／Ｂ１）を求めて、小さい方を縮小率Ｎ１’とする。同様に、ページ９０３［Ａ２，Ｂ２］変換後のページ［Ａ３／２，Ｂ３］に合うように拡縮率Ｎ２’を計算する。
【００６６】
次にＳ１００８に進みＣＰＵ１１１は、図９で説明した結果になるように、図９における変換前のページ９０１を縮小したイメージが、変換後のページ９０６の原点（ａ３，ｂ３）から描画されるように原点を設定する。Ｎ-in-１後の各オブジェクトの原点は、例えば、「（ｃ１，ｄ１）＝（０，０）」、「（ｃ２、ｄ２）＝（Ａ３／２，０）」とすることで計算できる。
【００６７】
こうしてＳ１００７或いはＳ１００８を実行した後Ｓ１００９に進みＣＰＵ１１１は、Ｓ１００５或いはＳ１００６で計算した縮小率Ｎ１，Ｎ２を用いて変換後の描画データを縮小する。ここでは、元データの原点コマンドに対しても縮小変倍が行われる。次にＳ１０１０に進みＣＰＵ１１１は、Ｓ１００７或いはＳ１００８で計算した縮小率Ｎ１’，Ｎ２’を用いて求めたオブジェクトの描画開始位置から、その縮小したオブジェクトを描画する。そしてＳ１０１１に進みＣＰＵ１１１は、処理対象ページ内の全ての描画コマンドについて縮小処理と、新たなレイアウトの決定処理（変換処理）が完了したかどうかを判定する。この判定は、当該ページ内の終了コマンドに従って判定してもよいし、次ページの開始コマンドの存在に基づいて判定してもよい。こうして全ての描画コマンドの処理が完了している場合はこの処理を終了し、未処理の描画コマンドがある場合はＳ１００９に戻って、次の描画コマンドに係るオブジェクトの縮小処理を行なう。
【００６８】
このように本実施形態によれば、デバイス余白がある場合は、集約印刷が設定されると、その縮小率（集約比率）とデバイス余白の縮小率により、縮小した各オブジェクトの描画位置を求めて描画する。一方、デバイス余白がない場合は、集約印刷が設定されると、その縮小率に基づいて縮小した各オブジェクトを、その縮小率に基づいて決定される位置に描画する。
【００６９】
本実施形態によれば、画像処理装置に留め置かれた後の印刷データに含まれるデバイス余白を高精度に抽出することができる。これによって印刷データに忠実な縮小率を伴う画像を作れるようになる。
【００７０】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７１】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００７２】
１００…複合機（ＭＦＰ），１０１…コントローラ、１０２…印刷部、１０４…操作部、１１０…ホストコンピュータ、１１１…ＣＰＵ、１１２…ＲＯＭ、１１３…ＲＡＭ、１１４…ＨＤＤ、２０７…コマンド変換部
【図１】
2018069499.tif 000003
【図２】
2018069499.tif 000004
【図３】
2018069499.tif 000005
【図４】
2018069499.tif 000006
【図５】
2018069499.tif 000007
【図６】
2018069499.tif 000008
【図７】
2018069499.tif 000009
【図８】
2018069499.tif 000010
【図９】
2018069499.tif 000011
【図１０】
2018069499.tif 000012
【図１１】
2018069499.tif 000013