画像処理装置、画像処理方法、およびプログラム
【課題】文字認識性を確保しながら効率的に印刷する、画像処理装置、画像処理方法、およびプログラムを提供すること。
【解決手段】本発明の画像処理装置12は、設定されたフォントサイズ以上となるようにページ・データの変倍率を計算する変倍率計算部34と、前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを単位印刷領域内の割当可能領域に割当て、レイアウトを決定するレイアウト決定部30と、決定されたページ・データのレイアウトを使用して描画データを作成し、像形成装置44に送出する描画部32とを含んでおり、所定のフォントサイズ以上で文字を印刷させながら、集約印刷を行っている。
【解決手段】本発明の画像処理装置12は、設定されたフォントサイズ以上となるようにページ・データの変倍率を計算する変倍率計算部34と、前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを単位印刷領域内の割当可能領域に割当て、レイアウトを決定するレイアウト決定部30と、決定されたページ・データのレイアウトを使用して描画データを作成し、像形成装置44に送出する描画部32とを含んでおり、所定のフォントサイズ以上で文字を印刷させながら、集約印刷を行っている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字出力技術に関し、より詳細には文字認識性を確保しながら効率的に印刷する技術に関する。
【背景技術】
【0002】
文字を含む印刷物を、プリンタなどの像形成装置を使用して出力させる場合、印刷用紙の使用量を減らすため、1枚の印刷用紙内に複数のページ・データを出力する技術が知られている(以下、この印刷を集約印刷として参照し、1枚の印刷用紙に対する出力ページ・データを集約数として参照する。)。これに関連して、特開2004−1092712号公報(特許文献1)および特開2002−254773号公報(特許文献2)では、希望最小フォントサイズを指定し、それ以下のサイズのフォントを含まないような最大の集約数を計算し、計算された集約数を使用して印刷する技術が開示されている。
【特許文献1】特開2004−102712号公報
【特許文献2】特開2002−254773号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
従来の集約印刷では、1枚の印刷用紙に複数のページ・データを集約することは可能である。しかしながら、指定された集約数に応じて縮小してしまうため、フォントサイズが必要以上に縮小されてしまい、文字の視認性を損なうという問題があった。また、全ページ内での最小フォントサイズによって全ページの集約数が決まってしまうため、1つのページに小さい文字が存在する場合に他のページも大きく印刷しなければならず、使用する用紙数に無駄が生じてしまうというという問題があった。
【0004】
図18には、従来の集約印刷を示す。例えば、図18(a)に示すように、オリジナルのページ・データは、3ページであり、第1ページ・データの最小フォントサイズが10ptで、第2ページ・データの最小フォントサイズが20pt、第3ページ・データの最小フォントサイズが20ptとされているものとする。ここで、希望最小フォントサイズを6ptにして印刷を行うと、図18(b)に示すように、約7ptおよび14ptとされ、集約数=2となる。この理由は、第2ページ・データおよび第3ページ・データも50%の縮小率とされ、この結果、第1ページ・データと第2ページ・データとが、印刷用紙の1枚目に出力され、第3ページ・データは、別に2枚目の印刷用紙に印刷されることになるためである。
【課題を解決するための手段】
【0005】
本発明は、上述した従来技術の不都合に鑑みてなされたものであり、本発明では、文字の認識性を保ちつつ、原稿のページ・データごとに縮小して集約数を最適化することにより、単位印刷領域を効率的に使用して、適切な文字認識性を提供する。本発明では、所定のフォントサイズ以下のフォントが含まれないように、原稿のページ・データごとに最小の変倍率を算出する。その後、計算された縮小率で縮小したページ・データの単位印刷領域への配置位置を決定する。配置位置を決定するたびに、残りのページ・データの割当領域を更新して行くことで、次のページ・データの適切な配置位置を決定する。このとき、単位印刷領域に収まりきらないと判断された時点で次の単位印刷領域に対する印刷処理に進むことで、1枚の単位印刷領域に適切なページ・データを集約して印刷でき、印刷する際に文字の視認性を保ちつつ、効率的に単位印刷領域を使用することができる。
【0006】
すなわち、本発明によれば、
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算する変倍率計算手段と、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定するレイアウト決定手段と、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、像形成手段に送出する描画手段と
を含む、画像処理装置が提供される。
【0007】
本発明では、前記レイアウト決定手段は、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約し、前記描画手段に前記単位印刷領域の描画データを作成させることができる。さらに、本発明では、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定するユーザ・インタフェース手段を含むことができる。
【0008】
本発明では、前記画像処理装置は、前記フォントサイズについてデフォルト設定値を格納する記憶領域を含み、前記変倍率計算手段は、前記フォントサイズの指定を受付けない場合、前記デフォルト設定値を用いて前記変倍率を計算することができる。本発明では、前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストを含み、前記識別値を参照して前記ページ・データを前記単位印刷領域に割当てる領域割当手段を備えることができる。
【0009】
本発明の前記画像処理装置は、印刷装置であり、外部装置から前記ページ・データを受領することができる。本発明の前記画像処理装置は、コンピュータ装置とすることができる。
【0010】
本発明によれば、
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算するステップと、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定するステップと、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、像形成手段に送出するステップと
を含む、画像処理方法が提供される。
【0011】
本発明では、さらに、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられることを判断するステップと、前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約した描画データを作成させるステップとを含むことができる。
【0012】
本発明では、さらに、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定するユーザ・インタフェース手段を提供するステップを含むことができる。本発明では、前記フォントサイズの指定を受付けない場合、前記フォントサイズについてのデフォルト設定値を使用して変倍率を計算することができる。本発明の前記レイアウトを決定するステップは、前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストから前記識別値を参照し、前記ページ・データを前記単位印刷領域に割当てるステップを含むことができる。
【0013】
本発明によれば、
画像処理装置に対して画像処理を実行させるための装置実行可能なプログラムであって、前記プログラムは、
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算する機能手段と、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定する機能手段と、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、外部送出する機能手段と
を画像処理装置に実現する、プログラムが提供できる。
【0014】
本発明によれば、さらに、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約して描画データを作成させる機能手段を、画像処理装置に実現することができる。本発明によれば、さらに、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定する機能手段を前記画像処理装置に実現することができる。
【0015】
本発明によれば、前記フォントサイズの指定を受付けない場合、記憶領域から前記フォントサイズについてのデフォルト設定値を読出し、前記デフォルト設定値を使用して前記変倍率を計算する機能手段を、画像処理装置に実現する、ことができる。本発明の前記レイアウトを決定する機能手段は、前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストから前記識別値を参照して前記ページ・データを前記単位印刷領域に割当てる機能手段を、画像処理装置に実現することができる。
【0016】
本発明のプログラムは、コンピュータ装置のためのプリンタドライバとして機能することができる。本発明のプログラムは、MFPのプリンタアプリケーション・プログラムとして機能することができる。
【発明を実施するための最良の形態】
【0017】
以下、本発明を図面に示した特定の実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。
【0018】
図1は、本発明によるプリンタ・ネットワーク・システム10の実施形態を示す。図1に示したプリンタ・ネットワーク・システム10は、複数のコンピュータ装置12がイーサネット(登録商標)、無線ネットワーク、光ネットワークなどのローカルエリア・ネットワーク18により相互接続されていて、相互通信している。コンピュータ装置12は、LAN18を介して、プリンタ14やMFP(複合機:Multi Function Printer)16などの像形成装置に接続されていて、それぞれ、ローカル・プリンタまたはネットワーク・プリンタとして機能させている。
【0019】
プリンタ14は、コンピュータ装置12との間が、IEEE1294またはUSB(Universal
Serial Buss)などのバスにより接続されていて、コンピュータ装置12に実装されたプリンタドライバ・ソフトウェアによりプリント制御が行われている。また、MFP16は、イーサネット(登録商標)に、NIC(Network
Interface Card)などのカードまたはボードを介して接続されていて、コンピュータ装置12から伝送された描画データを印刷出力している。なお、本発明の他の実施形態では、プリンタドライバ22は、MFP16に搭載された場合に、MFP16のプリンタ・アプリケーションを提供するモジュールとして機能し、MFP16がプリンタとして機能する場合の印刷を行う。MFP16は、例えばMIPSなどの縮小命令CPUを搭載しており、UNIX(登録商標)、LINUX(登録商標)などのOSの下で、GDI(Graphics
Device Interface)およびDEVMODE構造体を実装するか、またはエミュレーションによりサポートする。
【0020】
本発明のコンピュータ装置12は、ディスプレイ画面上に表示されたグラフィカル・ユーザ・インタフェース(GUI)を参照しながら各種の印刷設定を行い、プリンタ14またはMFP16に印刷を実行させている。なお、本発明の他の実施形態では、プリンタ14が接続されたコンピュータ装置12は、プリンタ・サーバとすることができる。
【0021】
図2は、コンピュータ装置12の実施形態における機能ブロック図を示す。情報処理装置12は、WINDOWS(登録商標)XP、UNIX(登録商標)、LINUX(登録商標)などのOSの下で実行および管理されるアプリケーション20と、プリンタドライバ22とを備えている。アプリケーション20は、OSの管理下で、ワードプロセッサ、表計算、ウェブ・サービスなど、各種処理を実行する。アプリケーション20は、ユーザからの指令に応答して印刷出力を行うためのアプリケーション・プログラミング・インタフェース(API)24を起動し、プリンタドライバ22へとデータを渡している。
【0022】
なお、本発明の特定の実装形態においては、APIの他、DDI(Device
Driver Interface)を実装し、DDIコールを介してプリンタドライバ22の呼出しを実行し、アプリケーション20とプリンタドライバ22との間のトランザクションを行っても良い。
【0023】
コンピュータ装置12の特定の実装形態で、OSとしてWINDOWS(登録商標)XPを使用する場合には、API24は、GDIとして構成することができる。アプリケーション20は、ユーザからのプリント指令を受付けると、プリンタドライバ22のUI処理部28に通知し、プリント・ダイアログを表示させる。ユーザは、プリント・ダイアログに表示されたボタン、プルダウン・メニューなどのグラフィカル・ユーザ・インタフェース(GUI)にしたがって、プリント設定およびプリント指令を行う。
【0024】
アプリケーション20は、プリント・ダイアログを介したユーザからのプリント設定を受付けると、GDIコールを発行して、ドキュメントをAPI24へと渡し、同時に印刷設定をDEVMODE構造体内に記述してAPI24へと通知する。
【0025】
プリンタドライバ22は、API24からのDDIコールといった呼出しを受取り、描画部32を起動してDEVMODE構造体により設定される印刷設定に基づいてページング処理されたデータから、描画関数を呼出し、ラスタ・データ、文字データのフォント判断を行い、プリンタドライバ22が固有に使用するページ・データを、PDL(Page Description Language)などを使用して作成する。作成したページ・データは、一旦、アプリケーション20またはプリンタドライバ22がその処理のため、RAMなどに確保している記憶領域26に格納される。
【0026】
なお、本発明で、ページ・データとは、ドキュメントからDEVMODE構造体により指定される印刷設定にしたがって、描画部32が作成したページ・フォーマッティングされたデータを意味し、集約される単位データを意味する。また、ページとは、単位印刷領域を意味し、マージンを除く印刷用紙の領域を意味する。描画データとは、本発明の処理を経たページ・データが後述するレイアウト情報リストおよび描画可能領域リストにより集約されて形成された、像形成装置による像形成対象データを意味する。
【0027】
本発明では、描画部32により作成されたページ・データは、変倍率計算部34、レイアウト決定部30、領域分割部36、レイアウト再編部38による集約処理を受けて描画データとして作成され、スプーラ40、ポートモニタ42を介して、適切なバス・ラインまたはLAN18を介して、プリンタ14またはMFP16として提供される像形成装置44へと送られて、印刷が行われる。
【0028】
各機能処理部の機能について説明すると、変倍率計算部34は、UI部28からユーザ入力された設定フォントサイズまたは最小フォントサイズにつてのデフォルト設定値を記憶領域26から読出す。変倍率計算部34は、ページ・データに含まれるフォントサイズと、設定されたフォントサイズまたはデフォルト設定値のフォントサイズとから変倍率を計算し、計算した変倍率を描画部32に渡す。描画部32は、決定された変倍率をレイアウト決定部30に渡し、描画部32が生成したページ・データごとに判断される変倍率を使用して、1ページに対してページ・データを割当てる。
【0029】
また、レイアウト再編部38は、領域分割部36により分割された描画可能領域リストから当該ページで余った領域の座標、幅、高さなどのレイアウト・リストを受取り、レイアウトを再編し、次のページ・データが割当てられるデータを作成し、レイアウト決定部に渡す。印刷を行う単位印刷領域がページ・データで埋められた後、描画部32は、レイアウトを反映した描画データを再度作成する。再作成された描画データは、PJL(Printer Job Language)コマンドとともに、スプーラ40、ポートモニタ42を経て像形成装置44に送られる。
【0030】
図3は、プリンタドライバ22が実行する処理の実施形態である。図3に示した処理は、ステップS100から開始し、ステップS101で、アプリケーション20から希望最小フォントサイズを含む印刷設定、および描画データを受取る。ステップS102で、ループ処理のための初期化を行いステップS103〜ステップ114で、ドキュメントを第1ページ・データから順に処理して行く。
【0031】
まず、ステップS103では、ページ番号、変倍率、原稿ページの左上座標、幅、高さ、角度の情報(以下、レイアウト情報)を格納するレイアウト情報リストを、ページが変わるたびに空で初期化する。本発明の特定の実施形態では、ページ・データの角度とは、ページに対してページ・データを割当てる場合、右周りに計った角度のこととする。ステップS104では、まだ残っていて描画可能な矩形領域(以下、描画可能領域として参照する。)の左上座標、幅、高さの情報を格納する描画可能領域リストを、ページが変わるたびに、ページごとに、同一の左上座標、幅、高さのみが登録されている状態に初期化する。
【0032】
ステップS105では、処理していないページ・データがまだあるかを判断する。まだあれば(yes)、ステップS106で変倍率計算部に処理対象のページのページ・データと希望最小フォントサイズを渡し、変倍率を計算させる。ステップS107では変倍率を受取り、ステップS108で受取った変倍率をページ・データの高さおよび幅に乗算して、ページ・データのサイズを変倍率で修正し、ページ内での割当て処理を行う。そして、割当て処理を実行し、処理対象のページ・データについて、割当結果を反映させてレイアウト情報リスト、描画可能領域リストを更新した後、更新した各リストなどをレイアウト決定部30に渡して、処理対象のページのレイアウト、および未だプリンタへ送信していないページのレイアウトを決定させる。
【0033】
ステップS109で更新後のレイアウト情報リストと描画可能領域リスト、および処理対象のページ・データがページに収まるかを受取り、ステップS110で1ページに収まる場合(yes)、ステップS111で処理対象のページのレイアウト情報リストおよび描画可能領域リストなどのページ・レイアウトを指定するデータ構造を記憶領域に保存しておき、ステップS112で次のページ・データの処理へと進む。収まらない場合(no)、ステップS113で記憶領域26に保存されている、当該レイアウトを作成するためのページ・データをすべて読み出し、レイアウト情報リストに格納されているレイアウト情報に応じて描画データを再度作成し、1ページ分のデータとして像形成装置へ送信する。ステップS114では、次のページについて、ページ・データを割当てる処理へと進む。
【0034】
一方、ステップS105ですべてのページ・データの処理が済んだと判断された場合(no)は、ステップS115で、レイアウト決定部30に各リストを渡す。そして、ステップS116で描画部32は、レイアウト情報リストを受取り、ステップS117で、ステップS113と同様に記憶領域26に残っているページ・データを読出して修正したレイアウトで描画データを作成し、像形成装置へ送信し、処理を終了する。
【0035】
図4は、レイアウト情報リスト50および描画可能領域リスト(以下、領域リストとして参照する。)52の実施形態を示す。レイアウト情報リスト50は、単位印刷領域である1ページ当たりに割当てられるページ・データを指定するページ識別値、図示した実施形態では、ページ番号と、当該ページ・データの変倍率と、当該ページ・データを配置するページの左上座標と、幅、高さ、角度を含んだ領域分割データが登録されている。レイアウト決定部30は、図4(a)に示したレイアウト情報リスト50を参照して、レイアウトを決定する。レイアウト決定部30は、レイアウト情報リスト50のページ識別値の先頭からページに対してページ・データを割当てて行く。図4(b)は、領域リスト52の実施形態を示す。領域リスト52は、ページにページ・データを描画する場合に、ページ内にページ・データを割当てることができる領域を規定する。なお、図4に示した座標、幅、高さの数値は、特定の実施形態で、A4のページを、600dpiで印刷する場合のpixcelの値を意味するが、本発明は、印刷解像度および画素単位に関して特に制限はない。また、ページ識別値として使用される値は、ページ・データを固有に参照することができる限り、ページ番号に限定されるわけではない。
【0036】
図5は、ページに対し、ページ・データの割当てを修正して、描画データを再編成する、レイアウト再編部38の実施形態を示す。ドキュメントのページ・データは、P1〜P4まであるものとし、第1ページ・データが最小フォント14ptの文字で構成され、第2ページ・データは、最小フォント28ptの文字から構成され、第3ページ・データが最小フォント20pt、第4ページ・データが最小フォント6ptで構成されている。本発明のレイアウト再編部38は、図5(a)に示すように規定され、領域リスト52で与えられるページに、ページ・データを、レイアウト情報リスト50に登録された順に、レイアウト情報リスト50にエントリされたデータ内容にしたがって割当てて行く。
【0037】
図5で説明する実施形態では、ユーザが指定した希望最小フォントサイズは、6ptであるとする。まず、レイアウト再編部38は、レイアウト情報リスト50を図5(a)に示すように空に初期化する。この時点で領域リスト52には、ページと同等の領域1005が確保される。図5(b)では、第1ページ・データ1001が、最小フォントサイズが14ptである時、変倍率計算部34に変倍率を計算させると、変倍率計算部34は、変倍率を1/2として計算する。そこで、レイアウト決定部30にレイアウト情報を決定させると、第1ページ・データは、レイアウト1006として、レイアウト情報リスト50にエントリされる。また、領域リスト52が更新され、レイアウト1007、レイアウト1008の領域データが順に格納され、ページについてのレイアウト情報リスト50および領域リスト52は、記憶領域26に保存される。
【0038】
図5(c)に示すように、第2ページ・データ1002は、最小フォントサイズが28ptなので、変倍率計算部34は、変倍率を1/4(7pt)として計算する。そこで、レイアウト決定部30にレイアウト情報を決定させる。また、第2ページ・データは、レイアウト1010として配置され、レイアウト情報リスト50が更新され、レイアウト1009、レイアウト1010で示されるレイアウト情報が順に格納される。また、領域リスト52も更新されて、1011、1012、1013のような領域が順に格納される。このときのページのレイアウト情報リスト50および領域リスト52は、同様に、記憶領域26に保存される。
【0039】
さらに、図5(d)に示すように、第3ページ・データ1003の処理を行い、第3ページ・データは、最小フォントサイズが20ptなので、変倍率計算部34に変倍率を計算させると、変倍率は、1/(2*sqrt(2))となる(以下、sqrt()は、変数xの平方根を表す)。レイアウト決定部30は、第3ページ・データのレイアウト情報を、レイアウト1016として計算し、レイアウト情報リスト50を更新し、図5(d)で示すように、第1ページ・データ〜第3ページ・データのレイアウト情報が、レイアウト1014、レイアウト1015、レイアウト1016としてレイアウト情報リスト50として格納される。また、領域リスト52も更新されて、レイアウト1017で示される領域が格納される。
【0040】
第4ページ・データ1004は、最小フォントサイズが10ptなので、変倍率を1/2とすると、設定された最小フォントサイズ6ptよりも小さくなるので、変倍率計算部34は、変倍率を、1として計算する。このため、レイアウト決定部30は、第4ページ・データのレイアウト情報を参照し、4ページ目のページ・データは、領域リスト52に指定された空間に収まらないと判断し、レイアウト情報リスト50を更新せず、図5(e)で示すように、レイアウト1018、レイアウト1019、レイアウト1020で示される3ページ分のページ・データをページに割当てたままにする。
【0041】
その後、記憶領域26に保存されている第1ページ・データ、第2ページ・データ、第3ページ・データのページ・データを読出し、レイアウト情報リスト50に格納されているレイアウト情報に応じて、描画データ1021を修正し、像形成装置44へ送信し、次のページの処理へと進む。
【0042】
同様の処理を経て第4ページ・データは、次ページの処理で、処理対象とされ、説明している実施形態では、これ以上ページ・データがないので、描画データ1022が作成され、処理を終了する。この結果、図5(f)に示す印刷物が提供される。
【0043】
変倍率計算部34の処理を以下に説明する。変倍率計算部34は、DEVMODE設定により指定されるページ・データの最小フォントサイズを検出し、そのフォントサイズを変倍した際に、希望最小フォントサイズより小さくならない最小の変倍率を計算する。このとき、変倍率は、整数変数であり、かつ1、1/sqrt(2)、1/2、…の値をとる。すなわち、変倍率は、nを正の整数とすると、1/(sqrt(2)^n)となる(以下、x^yは、xのy乗を表す)。
【0044】
ここで、ドキュメントのページ・データ中の最小フォントサイズをs、希望最小フォントサイズをh、nを整数、変倍率をxとすると、xは、以下の計算で求められる(以下、log(x、y)は、xを底とするyの対数を表し、[x]は、xを超えない最大の整数を表す)。
【0045】
【数1】
レイアウト決定部30は、処理対象のページ・データについてのレイアウトを決定し、レイアウト再編部38と領域分割部36とを使用して、レイアウト情報リスト50に登録されているページ識別値のレイアウト情報と、領域リスト52とを更新し、ページに割当てるページ・データを登録する。
【0046】
図6は、レイアウト決定部30が、レイアウトを決定する場合の処理の実施形態を示す。処理は、ステップS200から開始し、ステップS201では、描画部32から変倍率、処理対象のページ・データの幅、高さ、レイアウト情報リスト50、領域リスト52を受取る。ステップS202では、処理対象のページ・データを変倍した場合の幅、高さを求め、ステップS203では、ループ処理のための初期化を行う。ステップS204〜ステップS210で、領域リスト52の先頭から順に、ページ識別値で指定される領域割当データを読出し、処理対象のページ・データがその領域に収まるかを確認することを繰返す。
【0047】
ステップS206で、描画可能領域に処理対象のページ・データが無駄なく収まるか判断する。無駄なく収まらない場合(no)は、ステップS207において、ページ・データを90°回転させた座標データを計算し、同様の確認を実行する。それでも無駄なく収まらない場合(no)、ステップS208で、処理対象とされている描画可能領域の座標、幅、高さを、余った領域の情報として、レイアウト情報リスト50とともにレイアウト再編部38に渡し、レイアウト情報リスト50を再編させる。ステップS209で再編後のレイアウト情報リスト50を受取り、ステップS210でnをインクリメントし、次の描画可能領域の確認へと処理を渡す。
【0048】
ステップS206、ステップS207で描画可能領域に処理対象のページ・データが収まると判断された場合は、ステップS211〜ステップS214の処理を使用して、レイアウトを決定し、レイアウト情報リスト50に追加する。この段階でレイアウトが決定しても、未だ描画可能領域の中で埋まってない部分があるため、それを分割して新たな描画可能領域とする。ステップS214において、領域分割部36に、決定したレイアウト情報と、描画可能領域の幅、高さを送り、埋まっていない部分の領域を分割させる。ステップS215で領域分割部36から分割後の領域リスト52を受取り、ステップS216で、領域データを領域リスト52の先頭に追加して、領域リスト52を再編する。
【0049】
ステップS217では、描画部32へ更新されたレイアウト情報リスト50と領域リスト52とを返し、処理対象のページ・データがページに収まったことを通知し、処理を終了する。また、領域リスト52をすべて参照しても、処理対象のページ・データが収まる領域がなかった場合は、更新されたレイアウト情報リスト50と領域リスト52とを返し、処理対象のページ・データが印刷用紙に収まらないことを通知して、受領したレイアウト情報を使用して描画データを作成するように指令して、ステップS219で処理を終了する。
【0050】
図7は、レイアウト決定部30がレイアウトを決定する際のレイアウト情報リスト50および領域リスト52の更新処理の実施形態を示す。図7に示すように、処理対象のページ・データを変倍すると、領域2001の大きさになるとする。また、レイアウト情報リスト50にはすでに領域割当データ2002、2003、2004で指定されるレイアウト情報が格納されていて、領域リスト52には、領域割当データ2005、2006が格納されているとする。
【0051】
まず、図7(a)に示すように、領域2001の矩形が領域割当データ2005の領域に無駄なく入るか確認する。説明している実施形態では、回転してもしなくても入らないので、領域割当データ2005の領域を余った領域と判断し、レイアウト情報リスト50とともにレイアウト再編部38へ送る。レイアウト再編部38によって再編されたレイアウト情報リスト50には、図7(b)で示すように、ページ識別値に対応して領域割当データ2007、2008、2009のレイアウト情報が格納される。
【0052】
次に、領域データ2001の矩形が領域データ2010の領域に無駄なく入るか確認する。図7(b)で示すように、領域割当データ2001を回転しない場合は、領域2011で示されるように割当てられ、描画可能領域の幅、高さを割切れる幅、高さになっていないので、無駄ができてしまう。一方、回転する場合は、領域2015で示されるように、描画可能領域の幅、高さを割切れる幅、高さになっているので、無駄なく入ると判断し、領域2015のレイアウト情報をレイアウト情報リスト50の末尾に追加する。この段階で、図7(c)のレイアウト情報リスト50には、領域割当データ2012、2013、2014、2015が格納される。
【0053】
次に、領域分割部36により、描画可能領域の埋まってない部分を分割する。領域分割部38から受取る分割後の領域リスト52には、領域データ2016、2017が格納される。それをレイアウト情報リスト50の先頭に追加すると、領域リスト52には、領域データ2016、2017が格納される。上述した処理により、領域2001の矩形は、ページに収めることができたので、描画部32へとレイアウト情報リスト50と領域リスト52とを戻し、処理対象のページ・データが1ページに収まったことを伝え、処理を終了する。なお、領域分割部36は、その後、描画可能領域を矩形領域に分割し、分割後の領域リスト52としてエントリする。
【0054】
図8は、領域分割部36が実行する処理の実施形態である。図8の処理は、ステップS300から開始し、ステップS301で、レイアウト決定部30から、直前に決まったレイアウト情報として座標、幅、高さを受取る。ステップS302では、処理済の領域の座標、幅、高さをそれぞれ、直前に決まったレイアウト情報の座標、幅、高さで初期化し、ステップS303では分割後の領域リスト52を初期化する。
【0055】
ステップS304〜ステップS310で、矩形領域を切取って分割後の領域リスト52に追加し、処理済の領域の幅、高さを更新する処理を繰返す。ステップS304〜ステップS306で、その時点以上の分割が可能か否かを判断し、分割できれば(yes)、ステップS307、ステップS308で矩形領域を分割後の領域リスト52に追加する。分割できなければ(no)、ステップS311でレイアウト決定部30に分割後の領域リスト52を返し、処理を終了する。
【0056】
図9は、領域分割部36が描画可能領域を分割する場合の、分割後の領域リスト52の実施形態を示す。領域分割部36は、図9(a)に示されるように、直前に決まった印刷領域3001を処理済の領域としてマークする。そして、処理済の領域と同じ大きさの領域を長辺側にとると領域3002となるので、図9(b)に示すように、その領域を分割後の領域リスト52に追加し、その後、に示すように、領域3001と領域3002とを合わせた領域に相当する領域3004を、処理済の領域とする。その後、処理済の領域の長辺側として領域3005を与え、その領域を分割後の領域リスト52に追加する。
【0057】
図9(c)では、残された領域3009を領域リスト52に追加する。このとき、さらに領域を確保しようとすると描画可能領域を超えてしまうので、これ以上分割できないと判断し処理を終了する。なお、多くの場合、複数のページ・データにわたり使用されているフォントサイズは、同一の場合が多いので、図9のように分割することが効率的であるが、本発明では、ページのサイズを整数分割することができる縦横サイズを使用する限り、分割および割当方法は、特に限定されない。
【0058】
レイアウト再編部38は、余った領域を埋めるように、レイアウト情報リスト50に格納されているレイアウト情報を変更する。図10には、レイアウト再編部38が実行する処理の実施形態を示す。図10の処理は、ステップS400から開始し、ステップS401では、レイアウト決定部から余った領域に関する情報として座標、幅、高さを受取り、ページ・データの現状のレイアウト情報リスト50を受取る。ステップS402では、ループ処理のための初期化を行い、ステップS403〜ステップS404で、レイアウト情報リスト50の末尾から順にレイアウト情報を取出して、変更する処理を繰返す。ステップS403では、取出した領域割当データを、ステップS404〜ステップS406の処理を使用して座標、幅、高さを変更し、ステップS407〜ステップS409で角度変更、ステップS410で変倍率変更する。
【0059】
その後、ステップS412で計算した領域割当データを、レイアウト情報リスト50にエントリする。その後、ステップS413で次のレイアウト情報を取出す処理に進む。また、ステップS411において、変更後のレイアウトが、領域リスト52で余っている領域に収まらないと判断された場合は、ステップS414でレイアウト決定部30にレイアウト情報リスト50を返し、処理を終了する。
【0060】
図11は、レイアウト再編部38が余った領域をタイリングする場合の、領域割当データの修正処理を示す。図11(a)に示すように、レイアウト情報リスト50に領域割当データ4001、4002、4003、4004が格納されていて、未割当の領域が領域4005であるとする。まず、領域割当データ4004に対応するページ・データについて、領域割当データを変倍、回転しながら位置を変更すると、図11(b)に示す領域割当データ4009に変化する。レイアウト情報リスト50には領域割当データ4006、4007、4008、4009の領域割当データが格納される。
【0061】
同様にして、領域割当データの処理領域を、4008→4012と変化させ、つづいて処理領域を4011→4015と変化させて行き、最終的には、図11(d)に示すように、レイアウト情報リスト50には、領域割当データ4014、4015、4016、4017の領域割当データを格納する。その後、領域割当データ4014は、どのように回転させても、ページに収まらないので処理を終了する。図11に示した実施形態では、ページの配置開始位置は左上であるが、開始位置を左上にするか右上にするかについては、ユーザがGUIから事前に選択させることができる。また、割当てるページ・データを回転する必要が生じた場合、図11に示した実施形態では右に90°回転するが、左に90°回転させても良い。また、ページ・データの第1ページ・データとステープルなどのとじ位置との関係に応じて、GUIを介した指令に応答して回転方向を自動決定することもできる。
【0062】
図12は、ユーザが最小フォントサイズを事前に設定するためのGUI60の実施形態を示す。ユーザは、コンピュータ装置12のデスクトップ図12に表示されるGUI60を参照し、事前に希望最小フォントサイズ、ページの配置開始位置を左上にするか右上にするか、方向が混在した時に左右のどちらに回転させるかを選択する。この選択の場合、設定ボックス、プルダウン・メニュー、ラジオ・ボタンなどのGUIを使用して入力を促すことができる。また、これらの設定は、あらかじめデフォルトの値が定められており、ユーザによる指定がない場合は、デフォルトの値で集約処理が実行される。
【0063】
図13は、プリンタドライバ22が実行する集約処理の他の実施形態を示す。図13に示した実施形態では、ドキュメントのページ・データを、希望最小フォントサイズに合わせて変倍して複数のページ・データを、単一のページに集約処理し印刷するが、回転方向は、ページで最初に配置したページ・データに一致させる処理を実行する。これらの処理は、プリンタドライバ22のレイアウト決定部30なお、レイアウト決定部30、レイアウト再編部38以外の処理と構成は、上述したと同様の処理を使用する。
【0064】
図13の処理は、ステップS500から開始し、ステップS501〜ステップS505およびステップS512〜ステップS520までは図6と同様に実行される。ステップS506でページの中で先頭となるべき領域割当データの角度を取得し、ステップS507、ステップS508、ステップS510で、描画可能領域に、処理対象のページ・データが収まるか否かを判断する。なお、ステップS504で、収まると判断された場合(yes)は、ステップS509、ステップS511で無駄なく収まるように変倍し、ステップS512の処理に進む。また、ステップS504の判断で収まらない場合(no)は、ステップS520の処理に進み、ステップS521で処理を終了させる。
【0065】
図14は、他の実施形態でレイアウト決定部30がレイアウトを決定する際のレイアウト情報リスト50および領域リスト52の更新処理の実施形態を示す。処理対象ページを変倍すると、印刷領域5001の大きさになるものとする。また、レイアウト情報リスト50にページ・データそれぞれに対応する領域割当データ5002、5003、5004が格納されているものとする。
【0066】
まず、領域割当データ5001が対応する矩形5005の領域に収まるか確認する。図14(a)に示した場合は、収まらないので、矩形5005の領域を余った領域と判断し、レイアウト情報リスト50とともにレイアウト再編部38に渡される。この段階では、レイアウト再編部38によって再編されたレイアウト情報リスト50には、図14(b)に示すように、領域割当データ5007、5008、5009がエントリされる。
【0067】
その後、領域5001が無駄なく入る領域データを検索する。このとき領域データ5006は領域5001を確保できるが、そのまま入れると、図14(b)で示す領域5010のようになるので、領域5001を無駄な領域ができないように変倍して、領域5015で示される領域割当データを生成する。決定された領域5015に対応する領域割当データをレイアウト情報リスト50に登録する。レイアウト情報リスト50には領域割当データ5012、5013、5014、5015の領域割当データがエントリされ、領域リスト52には、割当可能な領域データ5016が格納される。上述した処理により、領域5001は、ページ・データを収容することができたので、描画部32へレイアウト情報リスト50と領域リスト52とを返し、処理対象のページ・データがページ内に収まったことを伝え、処理を終了する。
【0068】
図15は、他の実施形態でのレイアウト再編部30が実行する処理の実施形態である。図15に示した処理は、ステップS601〜ステップS603までは図10と同等の処理が実行される。ステップS604で、処理中のページ・データの幅、高さ、角度、変倍率を変更し、ステップS605で領域リスト52に指定された領域データに含まれるか否かを判断する。領域リスト52に含まれる領域に収められる場合(yes)、ステップS606でレイアウトを変更する。変更した領域割当データをレイアウト情報リスト50に記入し、ページ・データの識別値をインクリメントして、ステップS609で処理を終了し、さらに後続する機能処理部の処理が実行される。また、収められない場合(no)には、レイアウト決定部30にレイアウト情報リスト50を修正することなく返却する。
【0069】
図16は、他の実施形態でユーザに表示されるGUI62の実施形態を示す。ユーザは、コンピュータ装置12のデスクトップに表示されるGUI62を参照し、事前に希望最小フォントサイズ、ページの配置開始位置を左上にするか右上にするか、方向が混在した時に左右のどちらに回転させるかを選択する。また、これらの設定は、あらかじめデフォルトの値が定められており、ユーザによる指定がない場合は、デフォルトの値で集約処理が実行される。また、GUI62には、「印刷用紙内の先頭ページに向きを揃える」ことを指定するラジオ・ボタンが追加されていて、ユーザは、当該ラジオ・ボタンをチェックすることにより、図13〜図15に説明した処理を指令することができる。
【0070】
図17は、本発明のデバイスドライバのさらに他の実施形態を示す。図17の実施形態は、プリンタドライバ22の機能がプリンタ14またはMFP16に実装された場合の実施形態である。コンピュータ装置12は、プリントするべきドキュメントおよびDEVMODE構造体により生成された、PDL(Page Description Language)などで記述されたページ・データを、LAN18がTCP/IPプロトコルで接続された場合には、パケットのペイロードに記入してプリンタ14またはMFP16に伝送する。また、NETBIOSを使用する場合には、フレームのペイロード内にページ・データを記述してLAN18に送出する。
【0071】
プリンタ14またはMFP16などの像形成装置は、コンピュータ装置12のGUIから指定された集約印刷の通知とともに、ページ・データを受領して記憶領域26に格納し、描画部32は、ページ・データからラスタ・データを含む描画データを作成し、PJL(Printer Job Language)コマンドとともに像形成部に渡され、印刷物として出力される。図17の実施形態では、コンピュータ装置12に対して描画データを作成させるオーベーヘッドを与えることなく集約印刷を可能とし、ネットワーク・プリンタに対して遠隔的に集約印刷を実行させることができる。
【0072】
以上説明したように、本発明によれば、文字認識性を低下させることなく、最適な集約処理を可能とする画像処理装置、画像処理方法、およびプログラム
が提供できる。
【0073】
これまで本発明を図面に示した実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【0074】
【図1】本発明によるプリンタ・ネットワーク・システムの実施形態を示した図。
【図2】コンピュータ装置の実施形態における機能ブロック図。
【図3】プリンタドライバが実行する処理の実施形態を示したフローチャート。
【図4】レイアウト情報リストおよび描画領域リストの実施形態を示した図。
【図5】印刷領域に対し、ページ・データの割当てを修正した描画データを再編成する、レイアウト再編部の処理の実施形態を示したフローチャート。
【図6】レイアウト決定部が、レイアウトを決定する場合の処理の実施形態を示した図。
【図7】レイアウト決定部がレイアウトを決定する際のレイアウト情報リストおよび領域リストの更新処理の実施形態を示した図。
【図8】領域分割部が実行する処理の実施形態のフローチャート。
【図9】領域分割部が描画可能領域を分割する場合の、分割後の領域リストの実施形態を示した図。
【図10】レイアウト再編部が実行する処理の実施形態を示したフローチャート。
【図11】レイアウト再編部が余った領域をタイリングする場合の、領域割当データの修正処理を示した図。
【図12】ユーザが最小フォントサイズを事前に設定するためのGUIの実施形態を示した図。
【図13】プリンタドライバが実行する集約処理での、他の実施形態のフローチャート。
【図14】他の実施形態でレイアウト決定部がレイアウトを決定する際のレイアウト情報リストおよび領域リストの更新処理の実施形態を示した図。
【図15】他の実施形態でのレイアウト再編部が実行する処理の実施形態のフローチャート。
【図16】他の実施形態でユーザに表示されるGUIの実施形態を示した図。
【図17】本発明のデバイスドライバのさらに他の実施形態を示した図。
【図18】従来の集約印刷を示した図。
【符号の説明】
【0075】
10…プリンタ・ネットワーク・システム、12…コンピュータ装置、14…プリンタ、16…MFP、18…LAN、20…アプリケーション、22…プリンタドライバ、24…API、26…記憶領域、28…UI部、30…レイアウト決定部、32…描画部、34…変倍率計算部、36…領域分割部、38…レイアウト再編部、40…スプーラ、42…ポートモニタ、44…像形成装置、50…レイアウト情報リスト、52…描画可能領域リスト、60…GUI、62…GUI
【技術分野】
【0001】
本発明は、文字出力技術に関し、より詳細には文字認識性を確保しながら効率的に印刷する技術に関する。
【背景技術】
【0002】
文字を含む印刷物を、プリンタなどの像形成装置を使用して出力させる場合、印刷用紙の使用量を減らすため、1枚の印刷用紙内に複数のページ・データを出力する技術が知られている(以下、この印刷を集約印刷として参照し、1枚の印刷用紙に対する出力ページ・データを集約数として参照する。)。これに関連して、特開2004−1092712号公報(特許文献1)および特開2002−254773号公報(特許文献2)では、希望最小フォントサイズを指定し、それ以下のサイズのフォントを含まないような最大の集約数を計算し、計算された集約数を使用して印刷する技術が開示されている。
【特許文献1】特開2004−102712号公報
【特許文献2】特開2002−254773号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
従来の集約印刷では、1枚の印刷用紙に複数のページ・データを集約することは可能である。しかしながら、指定された集約数に応じて縮小してしまうため、フォントサイズが必要以上に縮小されてしまい、文字の視認性を損なうという問題があった。また、全ページ内での最小フォントサイズによって全ページの集約数が決まってしまうため、1つのページに小さい文字が存在する場合に他のページも大きく印刷しなければならず、使用する用紙数に無駄が生じてしまうというという問題があった。
【0004】
図18には、従来の集約印刷を示す。例えば、図18(a)に示すように、オリジナルのページ・データは、3ページであり、第1ページ・データの最小フォントサイズが10ptで、第2ページ・データの最小フォントサイズが20pt、第3ページ・データの最小フォントサイズが20ptとされているものとする。ここで、希望最小フォントサイズを6ptにして印刷を行うと、図18(b)に示すように、約7ptおよび14ptとされ、集約数=2となる。この理由は、第2ページ・データおよび第3ページ・データも50%の縮小率とされ、この結果、第1ページ・データと第2ページ・データとが、印刷用紙の1枚目に出力され、第3ページ・データは、別に2枚目の印刷用紙に印刷されることになるためである。
【課題を解決するための手段】
【0005】
本発明は、上述した従来技術の不都合に鑑みてなされたものであり、本発明では、文字の認識性を保ちつつ、原稿のページ・データごとに縮小して集約数を最適化することにより、単位印刷領域を効率的に使用して、適切な文字認識性を提供する。本発明では、所定のフォントサイズ以下のフォントが含まれないように、原稿のページ・データごとに最小の変倍率を算出する。その後、計算された縮小率で縮小したページ・データの単位印刷領域への配置位置を決定する。配置位置を決定するたびに、残りのページ・データの割当領域を更新して行くことで、次のページ・データの適切な配置位置を決定する。このとき、単位印刷領域に収まりきらないと判断された時点で次の単位印刷領域に対する印刷処理に進むことで、1枚の単位印刷領域に適切なページ・データを集約して印刷でき、印刷する際に文字の視認性を保ちつつ、効率的に単位印刷領域を使用することができる。
【0006】
すなわち、本発明によれば、
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算する変倍率計算手段と、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定するレイアウト決定手段と、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、像形成手段に送出する描画手段と
を含む、画像処理装置が提供される。
【0007】
本発明では、前記レイアウト決定手段は、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約し、前記描画手段に前記単位印刷領域の描画データを作成させることができる。さらに、本発明では、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定するユーザ・インタフェース手段を含むことができる。
【0008】
本発明では、前記画像処理装置は、前記フォントサイズについてデフォルト設定値を格納する記憶領域を含み、前記変倍率計算手段は、前記フォントサイズの指定を受付けない場合、前記デフォルト設定値を用いて前記変倍率を計算することができる。本発明では、前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストを含み、前記識別値を参照して前記ページ・データを前記単位印刷領域に割当てる領域割当手段を備えることができる。
【0009】
本発明の前記画像処理装置は、印刷装置であり、外部装置から前記ページ・データを受領することができる。本発明の前記画像処理装置は、コンピュータ装置とすることができる。
【0010】
本発明によれば、
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算するステップと、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定するステップと、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、像形成手段に送出するステップと
を含む、画像処理方法が提供される。
【0011】
本発明では、さらに、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられることを判断するステップと、前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約した描画データを作成させるステップとを含むことができる。
【0012】
本発明では、さらに、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定するユーザ・インタフェース手段を提供するステップを含むことができる。本発明では、前記フォントサイズの指定を受付けない場合、前記フォントサイズについてのデフォルト設定値を使用して変倍率を計算することができる。本発明の前記レイアウトを決定するステップは、前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストから前記識別値を参照し、前記ページ・データを前記単位印刷領域に割当てるステップを含むことができる。
【0013】
本発明によれば、
画像処理装置に対して画像処理を実行させるための装置実行可能なプログラムであって、前記プログラムは、
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算する機能手段と、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定する機能手段と、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、外部送出する機能手段と
を画像処理装置に実現する、プログラムが提供できる。
【0014】
本発明によれば、さらに、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約して描画データを作成させる機能手段を、画像処理装置に実現することができる。本発明によれば、さらに、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定する機能手段を前記画像処理装置に実現することができる。
【0015】
本発明によれば、前記フォントサイズの指定を受付けない場合、記憶領域から前記フォントサイズについてのデフォルト設定値を読出し、前記デフォルト設定値を使用して前記変倍率を計算する機能手段を、画像処理装置に実現する、ことができる。本発明の前記レイアウトを決定する機能手段は、前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストから前記識別値を参照して前記ページ・データを前記単位印刷領域に割当てる機能手段を、画像処理装置に実現することができる。
【0016】
本発明のプログラムは、コンピュータ装置のためのプリンタドライバとして機能することができる。本発明のプログラムは、MFPのプリンタアプリケーション・プログラムとして機能することができる。
【発明を実施するための最良の形態】
【0017】
以下、本発明を図面に示した特定の実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。
【0018】
図1は、本発明によるプリンタ・ネットワーク・システム10の実施形態を示す。図1に示したプリンタ・ネットワーク・システム10は、複数のコンピュータ装置12がイーサネット(登録商標)、無線ネットワーク、光ネットワークなどのローカルエリア・ネットワーク18により相互接続されていて、相互通信している。コンピュータ装置12は、LAN18を介して、プリンタ14やMFP(複合機:Multi Function Printer)16などの像形成装置に接続されていて、それぞれ、ローカル・プリンタまたはネットワーク・プリンタとして機能させている。
【0019】
プリンタ14は、コンピュータ装置12との間が、IEEE1294またはUSB(Universal
Serial Buss)などのバスにより接続されていて、コンピュータ装置12に実装されたプリンタドライバ・ソフトウェアによりプリント制御が行われている。また、MFP16は、イーサネット(登録商標)に、NIC(Network
Interface Card)などのカードまたはボードを介して接続されていて、コンピュータ装置12から伝送された描画データを印刷出力している。なお、本発明の他の実施形態では、プリンタドライバ22は、MFP16に搭載された場合に、MFP16のプリンタ・アプリケーションを提供するモジュールとして機能し、MFP16がプリンタとして機能する場合の印刷を行う。MFP16は、例えばMIPSなどの縮小命令CPUを搭載しており、UNIX(登録商標)、LINUX(登録商標)などのOSの下で、GDI(Graphics
Device Interface)およびDEVMODE構造体を実装するか、またはエミュレーションによりサポートする。
【0020】
本発明のコンピュータ装置12は、ディスプレイ画面上に表示されたグラフィカル・ユーザ・インタフェース(GUI)を参照しながら各種の印刷設定を行い、プリンタ14またはMFP16に印刷を実行させている。なお、本発明の他の実施形態では、プリンタ14が接続されたコンピュータ装置12は、プリンタ・サーバとすることができる。
【0021】
図2は、コンピュータ装置12の実施形態における機能ブロック図を示す。情報処理装置12は、WINDOWS(登録商標)XP、UNIX(登録商標)、LINUX(登録商標)などのOSの下で実行および管理されるアプリケーション20と、プリンタドライバ22とを備えている。アプリケーション20は、OSの管理下で、ワードプロセッサ、表計算、ウェブ・サービスなど、各種処理を実行する。アプリケーション20は、ユーザからの指令に応答して印刷出力を行うためのアプリケーション・プログラミング・インタフェース(API)24を起動し、プリンタドライバ22へとデータを渡している。
【0022】
なお、本発明の特定の実装形態においては、APIの他、DDI(Device
Driver Interface)を実装し、DDIコールを介してプリンタドライバ22の呼出しを実行し、アプリケーション20とプリンタドライバ22との間のトランザクションを行っても良い。
【0023】
コンピュータ装置12の特定の実装形態で、OSとしてWINDOWS(登録商標)XPを使用する場合には、API24は、GDIとして構成することができる。アプリケーション20は、ユーザからのプリント指令を受付けると、プリンタドライバ22のUI処理部28に通知し、プリント・ダイアログを表示させる。ユーザは、プリント・ダイアログに表示されたボタン、プルダウン・メニューなどのグラフィカル・ユーザ・インタフェース(GUI)にしたがって、プリント設定およびプリント指令を行う。
【0024】
アプリケーション20は、プリント・ダイアログを介したユーザからのプリント設定を受付けると、GDIコールを発行して、ドキュメントをAPI24へと渡し、同時に印刷設定をDEVMODE構造体内に記述してAPI24へと通知する。
【0025】
プリンタドライバ22は、API24からのDDIコールといった呼出しを受取り、描画部32を起動してDEVMODE構造体により設定される印刷設定に基づいてページング処理されたデータから、描画関数を呼出し、ラスタ・データ、文字データのフォント判断を行い、プリンタドライバ22が固有に使用するページ・データを、PDL(Page Description Language)などを使用して作成する。作成したページ・データは、一旦、アプリケーション20またはプリンタドライバ22がその処理のため、RAMなどに確保している記憶領域26に格納される。
【0026】
なお、本発明で、ページ・データとは、ドキュメントからDEVMODE構造体により指定される印刷設定にしたがって、描画部32が作成したページ・フォーマッティングされたデータを意味し、集約される単位データを意味する。また、ページとは、単位印刷領域を意味し、マージンを除く印刷用紙の領域を意味する。描画データとは、本発明の処理を経たページ・データが後述するレイアウト情報リストおよび描画可能領域リストにより集約されて形成された、像形成装置による像形成対象データを意味する。
【0027】
本発明では、描画部32により作成されたページ・データは、変倍率計算部34、レイアウト決定部30、領域分割部36、レイアウト再編部38による集約処理を受けて描画データとして作成され、スプーラ40、ポートモニタ42を介して、適切なバス・ラインまたはLAN18を介して、プリンタ14またはMFP16として提供される像形成装置44へと送られて、印刷が行われる。
【0028】
各機能処理部の機能について説明すると、変倍率計算部34は、UI部28からユーザ入力された設定フォントサイズまたは最小フォントサイズにつてのデフォルト設定値を記憶領域26から読出す。変倍率計算部34は、ページ・データに含まれるフォントサイズと、設定されたフォントサイズまたはデフォルト設定値のフォントサイズとから変倍率を計算し、計算した変倍率を描画部32に渡す。描画部32は、決定された変倍率をレイアウト決定部30に渡し、描画部32が生成したページ・データごとに判断される変倍率を使用して、1ページに対してページ・データを割当てる。
【0029】
また、レイアウト再編部38は、領域分割部36により分割された描画可能領域リストから当該ページで余った領域の座標、幅、高さなどのレイアウト・リストを受取り、レイアウトを再編し、次のページ・データが割当てられるデータを作成し、レイアウト決定部に渡す。印刷を行う単位印刷領域がページ・データで埋められた後、描画部32は、レイアウトを反映した描画データを再度作成する。再作成された描画データは、PJL(Printer Job Language)コマンドとともに、スプーラ40、ポートモニタ42を経て像形成装置44に送られる。
【0030】
図3は、プリンタドライバ22が実行する処理の実施形態である。図3に示した処理は、ステップS100から開始し、ステップS101で、アプリケーション20から希望最小フォントサイズを含む印刷設定、および描画データを受取る。ステップS102で、ループ処理のための初期化を行いステップS103〜ステップ114で、ドキュメントを第1ページ・データから順に処理して行く。
【0031】
まず、ステップS103では、ページ番号、変倍率、原稿ページの左上座標、幅、高さ、角度の情報(以下、レイアウト情報)を格納するレイアウト情報リストを、ページが変わるたびに空で初期化する。本発明の特定の実施形態では、ページ・データの角度とは、ページに対してページ・データを割当てる場合、右周りに計った角度のこととする。ステップS104では、まだ残っていて描画可能な矩形領域(以下、描画可能領域として参照する。)の左上座標、幅、高さの情報を格納する描画可能領域リストを、ページが変わるたびに、ページごとに、同一の左上座標、幅、高さのみが登録されている状態に初期化する。
【0032】
ステップS105では、処理していないページ・データがまだあるかを判断する。まだあれば(yes)、ステップS106で変倍率計算部に処理対象のページのページ・データと希望最小フォントサイズを渡し、変倍率を計算させる。ステップS107では変倍率を受取り、ステップS108で受取った変倍率をページ・データの高さおよび幅に乗算して、ページ・データのサイズを変倍率で修正し、ページ内での割当て処理を行う。そして、割当て処理を実行し、処理対象のページ・データについて、割当結果を反映させてレイアウト情報リスト、描画可能領域リストを更新した後、更新した各リストなどをレイアウト決定部30に渡して、処理対象のページのレイアウト、および未だプリンタへ送信していないページのレイアウトを決定させる。
【0033】
ステップS109で更新後のレイアウト情報リストと描画可能領域リスト、および処理対象のページ・データがページに収まるかを受取り、ステップS110で1ページに収まる場合(yes)、ステップS111で処理対象のページのレイアウト情報リストおよび描画可能領域リストなどのページ・レイアウトを指定するデータ構造を記憶領域に保存しておき、ステップS112で次のページ・データの処理へと進む。収まらない場合(no)、ステップS113で記憶領域26に保存されている、当該レイアウトを作成するためのページ・データをすべて読み出し、レイアウト情報リストに格納されているレイアウト情報に応じて描画データを再度作成し、1ページ分のデータとして像形成装置へ送信する。ステップS114では、次のページについて、ページ・データを割当てる処理へと進む。
【0034】
一方、ステップS105ですべてのページ・データの処理が済んだと判断された場合(no)は、ステップS115で、レイアウト決定部30に各リストを渡す。そして、ステップS116で描画部32は、レイアウト情報リストを受取り、ステップS117で、ステップS113と同様に記憶領域26に残っているページ・データを読出して修正したレイアウトで描画データを作成し、像形成装置へ送信し、処理を終了する。
【0035】
図4は、レイアウト情報リスト50および描画可能領域リスト(以下、領域リストとして参照する。)52の実施形態を示す。レイアウト情報リスト50は、単位印刷領域である1ページ当たりに割当てられるページ・データを指定するページ識別値、図示した実施形態では、ページ番号と、当該ページ・データの変倍率と、当該ページ・データを配置するページの左上座標と、幅、高さ、角度を含んだ領域分割データが登録されている。レイアウト決定部30は、図4(a)に示したレイアウト情報リスト50を参照して、レイアウトを決定する。レイアウト決定部30は、レイアウト情報リスト50のページ識別値の先頭からページに対してページ・データを割当てて行く。図4(b)は、領域リスト52の実施形態を示す。領域リスト52は、ページにページ・データを描画する場合に、ページ内にページ・データを割当てることができる領域を規定する。なお、図4に示した座標、幅、高さの数値は、特定の実施形態で、A4のページを、600dpiで印刷する場合のpixcelの値を意味するが、本発明は、印刷解像度および画素単位に関して特に制限はない。また、ページ識別値として使用される値は、ページ・データを固有に参照することができる限り、ページ番号に限定されるわけではない。
【0036】
図5は、ページに対し、ページ・データの割当てを修正して、描画データを再編成する、レイアウト再編部38の実施形態を示す。ドキュメントのページ・データは、P1〜P4まであるものとし、第1ページ・データが最小フォント14ptの文字で構成され、第2ページ・データは、最小フォント28ptの文字から構成され、第3ページ・データが最小フォント20pt、第4ページ・データが最小フォント6ptで構成されている。本発明のレイアウト再編部38は、図5(a)に示すように規定され、領域リスト52で与えられるページに、ページ・データを、レイアウト情報リスト50に登録された順に、レイアウト情報リスト50にエントリされたデータ内容にしたがって割当てて行く。
【0037】
図5で説明する実施形態では、ユーザが指定した希望最小フォントサイズは、6ptであるとする。まず、レイアウト再編部38は、レイアウト情報リスト50を図5(a)に示すように空に初期化する。この時点で領域リスト52には、ページと同等の領域1005が確保される。図5(b)では、第1ページ・データ1001が、最小フォントサイズが14ptである時、変倍率計算部34に変倍率を計算させると、変倍率計算部34は、変倍率を1/2として計算する。そこで、レイアウト決定部30にレイアウト情報を決定させると、第1ページ・データは、レイアウト1006として、レイアウト情報リスト50にエントリされる。また、領域リスト52が更新され、レイアウト1007、レイアウト1008の領域データが順に格納され、ページについてのレイアウト情報リスト50および領域リスト52は、記憶領域26に保存される。
【0038】
図5(c)に示すように、第2ページ・データ1002は、最小フォントサイズが28ptなので、変倍率計算部34は、変倍率を1/4(7pt)として計算する。そこで、レイアウト決定部30にレイアウト情報を決定させる。また、第2ページ・データは、レイアウト1010として配置され、レイアウト情報リスト50が更新され、レイアウト1009、レイアウト1010で示されるレイアウト情報が順に格納される。また、領域リスト52も更新されて、1011、1012、1013のような領域が順に格納される。このときのページのレイアウト情報リスト50および領域リスト52は、同様に、記憶領域26に保存される。
【0039】
さらに、図5(d)に示すように、第3ページ・データ1003の処理を行い、第3ページ・データは、最小フォントサイズが20ptなので、変倍率計算部34に変倍率を計算させると、変倍率は、1/(2*sqrt(2))となる(以下、sqrt()は、変数xの平方根を表す)。レイアウト決定部30は、第3ページ・データのレイアウト情報を、レイアウト1016として計算し、レイアウト情報リスト50を更新し、図5(d)で示すように、第1ページ・データ〜第3ページ・データのレイアウト情報が、レイアウト1014、レイアウト1015、レイアウト1016としてレイアウト情報リスト50として格納される。また、領域リスト52も更新されて、レイアウト1017で示される領域が格納される。
【0040】
第4ページ・データ1004は、最小フォントサイズが10ptなので、変倍率を1/2とすると、設定された最小フォントサイズ6ptよりも小さくなるので、変倍率計算部34は、変倍率を、1として計算する。このため、レイアウト決定部30は、第4ページ・データのレイアウト情報を参照し、4ページ目のページ・データは、領域リスト52に指定された空間に収まらないと判断し、レイアウト情報リスト50を更新せず、図5(e)で示すように、レイアウト1018、レイアウト1019、レイアウト1020で示される3ページ分のページ・データをページに割当てたままにする。
【0041】
その後、記憶領域26に保存されている第1ページ・データ、第2ページ・データ、第3ページ・データのページ・データを読出し、レイアウト情報リスト50に格納されているレイアウト情報に応じて、描画データ1021を修正し、像形成装置44へ送信し、次のページの処理へと進む。
【0042】
同様の処理を経て第4ページ・データは、次ページの処理で、処理対象とされ、説明している実施形態では、これ以上ページ・データがないので、描画データ1022が作成され、処理を終了する。この結果、図5(f)に示す印刷物が提供される。
【0043】
変倍率計算部34の処理を以下に説明する。変倍率計算部34は、DEVMODE設定により指定されるページ・データの最小フォントサイズを検出し、そのフォントサイズを変倍した際に、希望最小フォントサイズより小さくならない最小の変倍率を計算する。このとき、変倍率は、整数変数であり、かつ1、1/sqrt(2)、1/2、…の値をとる。すなわち、変倍率は、nを正の整数とすると、1/(sqrt(2)^n)となる(以下、x^yは、xのy乗を表す)。
【0044】
ここで、ドキュメントのページ・データ中の最小フォントサイズをs、希望最小フォントサイズをh、nを整数、変倍率をxとすると、xは、以下の計算で求められる(以下、log(x、y)は、xを底とするyの対数を表し、[x]は、xを超えない最大の整数を表す)。
【0045】
【数1】
レイアウト決定部30は、処理対象のページ・データについてのレイアウトを決定し、レイアウト再編部38と領域分割部36とを使用して、レイアウト情報リスト50に登録されているページ識別値のレイアウト情報と、領域リスト52とを更新し、ページに割当てるページ・データを登録する。
【0046】
図6は、レイアウト決定部30が、レイアウトを決定する場合の処理の実施形態を示す。処理は、ステップS200から開始し、ステップS201では、描画部32から変倍率、処理対象のページ・データの幅、高さ、レイアウト情報リスト50、領域リスト52を受取る。ステップS202では、処理対象のページ・データを変倍した場合の幅、高さを求め、ステップS203では、ループ処理のための初期化を行う。ステップS204〜ステップS210で、領域リスト52の先頭から順に、ページ識別値で指定される領域割当データを読出し、処理対象のページ・データがその領域に収まるかを確認することを繰返す。
【0047】
ステップS206で、描画可能領域に処理対象のページ・データが無駄なく収まるか判断する。無駄なく収まらない場合(no)は、ステップS207において、ページ・データを90°回転させた座標データを計算し、同様の確認を実行する。それでも無駄なく収まらない場合(no)、ステップS208で、処理対象とされている描画可能領域の座標、幅、高さを、余った領域の情報として、レイアウト情報リスト50とともにレイアウト再編部38に渡し、レイアウト情報リスト50を再編させる。ステップS209で再編後のレイアウト情報リスト50を受取り、ステップS210でnをインクリメントし、次の描画可能領域の確認へと処理を渡す。
【0048】
ステップS206、ステップS207で描画可能領域に処理対象のページ・データが収まると判断された場合は、ステップS211〜ステップS214の処理を使用して、レイアウトを決定し、レイアウト情報リスト50に追加する。この段階でレイアウトが決定しても、未だ描画可能領域の中で埋まってない部分があるため、それを分割して新たな描画可能領域とする。ステップS214において、領域分割部36に、決定したレイアウト情報と、描画可能領域の幅、高さを送り、埋まっていない部分の領域を分割させる。ステップS215で領域分割部36から分割後の領域リスト52を受取り、ステップS216で、領域データを領域リスト52の先頭に追加して、領域リスト52を再編する。
【0049】
ステップS217では、描画部32へ更新されたレイアウト情報リスト50と領域リスト52とを返し、処理対象のページ・データがページに収まったことを通知し、処理を終了する。また、領域リスト52をすべて参照しても、処理対象のページ・データが収まる領域がなかった場合は、更新されたレイアウト情報リスト50と領域リスト52とを返し、処理対象のページ・データが印刷用紙に収まらないことを通知して、受領したレイアウト情報を使用して描画データを作成するように指令して、ステップS219で処理を終了する。
【0050】
図7は、レイアウト決定部30がレイアウトを決定する際のレイアウト情報リスト50および領域リスト52の更新処理の実施形態を示す。図7に示すように、処理対象のページ・データを変倍すると、領域2001の大きさになるとする。また、レイアウト情報リスト50にはすでに領域割当データ2002、2003、2004で指定されるレイアウト情報が格納されていて、領域リスト52には、領域割当データ2005、2006が格納されているとする。
【0051】
まず、図7(a)に示すように、領域2001の矩形が領域割当データ2005の領域に無駄なく入るか確認する。説明している実施形態では、回転してもしなくても入らないので、領域割当データ2005の領域を余った領域と判断し、レイアウト情報リスト50とともにレイアウト再編部38へ送る。レイアウト再編部38によって再編されたレイアウト情報リスト50には、図7(b)で示すように、ページ識別値に対応して領域割当データ2007、2008、2009のレイアウト情報が格納される。
【0052】
次に、領域データ2001の矩形が領域データ2010の領域に無駄なく入るか確認する。図7(b)で示すように、領域割当データ2001を回転しない場合は、領域2011で示されるように割当てられ、描画可能領域の幅、高さを割切れる幅、高さになっていないので、無駄ができてしまう。一方、回転する場合は、領域2015で示されるように、描画可能領域の幅、高さを割切れる幅、高さになっているので、無駄なく入ると判断し、領域2015のレイアウト情報をレイアウト情報リスト50の末尾に追加する。この段階で、図7(c)のレイアウト情報リスト50には、領域割当データ2012、2013、2014、2015が格納される。
【0053】
次に、領域分割部36により、描画可能領域の埋まってない部分を分割する。領域分割部38から受取る分割後の領域リスト52には、領域データ2016、2017が格納される。それをレイアウト情報リスト50の先頭に追加すると、領域リスト52には、領域データ2016、2017が格納される。上述した処理により、領域2001の矩形は、ページに収めることができたので、描画部32へとレイアウト情報リスト50と領域リスト52とを戻し、処理対象のページ・データが1ページに収まったことを伝え、処理を終了する。なお、領域分割部36は、その後、描画可能領域を矩形領域に分割し、分割後の領域リスト52としてエントリする。
【0054】
図8は、領域分割部36が実行する処理の実施形態である。図8の処理は、ステップS300から開始し、ステップS301で、レイアウト決定部30から、直前に決まったレイアウト情報として座標、幅、高さを受取る。ステップS302では、処理済の領域の座標、幅、高さをそれぞれ、直前に決まったレイアウト情報の座標、幅、高さで初期化し、ステップS303では分割後の領域リスト52を初期化する。
【0055】
ステップS304〜ステップS310で、矩形領域を切取って分割後の領域リスト52に追加し、処理済の領域の幅、高さを更新する処理を繰返す。ステップS304〜ステップS306で、その時点以上の分割が可能か否かを判断し、分割できれば(yes)、ステップS307、ステップS308で矩形領域を分割後の領域リスト52に追加する。分割できなければ(no)、ステップS311でレイアウト決定部30に分割後の領域リスト52を返し、処理を終了する。
【0056】
図9は、領域分割部36が描画可能領域を分割する場合の、分割後の領域リスト52の実施形態を示す。領域分割部36は、図9(a)に示されるように、直前に決まった印刷領域3001を処理済の領域としてマークする。そして、処理済の領域と同じ大きさの領域を長辺側にとると領域3002となるので、図9(b)に示すように、その領域を分割後の領域リスト52に追加し、その後、に示すように、領域3001と領域3002とを合わせた領域に相当する領域3004を、処理済の領域とする。その後、処理済の領域の長辺側として領域3005を与え、その領域を分割後の領域リスト52に追加する。
【0057】
図9(c)では、残された領域3009を領域リスト52に追加する。このとき、さらに領域を確保しようとすると描画可能領域を超えてしまうので、これ以上分割できないと判断し処理を終了する。なお、多くの場合、複数のページ・データにわたり使用されているフォントサイズは、同一の場合が多いので、図9のように分割することが効率的であるが、本発明では、ページのサイズを整数分割することができる縦横サイズを使用する限り、分割および割当方法は、特に限定されない。
【0058】
レイアウト再編部38は、余った領域を埋めるように、レイアウト情報リスト50に格納されているレイアウト情報を変更する。図10には、レイアウト再編部38が実行する処理の実施形態を示す。図10の処理は、ステップS400から開始し、ステップS401では、レイアウト決定部から余った領域に関する情報として座標、幅、高さを受取り、ページ・データの現状のレイアウト情報リスト50を受取る。ステップS402では、ループ処理のための初期化を行い、ステップS403〜ステップS404で、レイアウト情報リスト50の末尾から順にレイアウト情報を取出して、変更する処理を繰返す。ステップS403では、取出した領域割当データを、ステップS404〜ステップS406の処理を使用して座標、幅、高さを変更し、ステップS407〜ステップS409で角度変更、ステップS410で変倍率変更する。
【0059】
その後、ステップS412で計算した領域割当データを、レイアウト情報リスト50にエントリする。その後、ステップS413で次のレイアウト情報を取出す処理に進む。また、ステップS411において、変更後のレイアウトが、領域リスト52で余っている領域に収まらないと判断された場合は、ステップS414でレイアウト決定部30にレイアウト情報リスト50を返し、処理を終了する。
【0060】
図11は、レイアウト再編部38が余った領域をタイリングする場合の、領域割当データの修正処理を示す。図11(a)に示すように、レイアウト情報リスト50に領域割当データ4001、4002、4003、4004が格納されていて、未割当の領域が領域4005であるとする。まず、領域割当データ4004に対応するページ・データについて、領域割当データを変倍、回転しながら位置を変更すると、図11(b)に示す領域割当データ4009に変化する。レイアウト情報リスト50には領域割当データ4006、4007、4008、4009の領域割当データが格納される。
【0061】
同様にして、領域割当データの処理領域を、4008→4012と変化させ、つづいて処理領域を4011→4015と変化させて行き、最終的には、図11(d)に示すように、レイアウト情報リスト50には、領域割当データ4014、4015、4016、4017の領域割当データを格納する。その後、領域割当データ4014は、どのように回転させても、ページに収まらないので処理を終了する。図11に示した実施形態では、ページの配置開始位置は左上であるが、開始位置を左上にするか右上にするかについては、ユーザがGUIから事前に選択させることができる。また、割当てるページ・データを回転する必要が生じた場合、図11に示した実施形態では右に90°回転するが、左に90°回転させても良い。また、ページ・データの第1ページ・データとステープルなどのとじ位置との関係に応じて、GUIを介した指令に応答して回転方向を自動決定することもできる。
【0062】
図12は、ユーザが最小フォントサイズを事前に設定するためのGUI60の実施形態を示す。ユーザは、コンピュータ装置12のデスクトップ図12に表示されるGUI60を参照し、事前に希望最小フォントサイズ、ページの配置開始位置を左上にするか右上にするか、方向が混在した時に左右のどちらに回転させるかを選択する。この選択の場合、設定ボックス、プルダウン・メニュー、ラジオ・ボタンなどのGUIを使用して入力を促すことができる。また、これらの設定は、あらかじめデフォルトの値が定められており、ユーザによる指定がない場合は、デフォルトの値で集約処理が実行される。
【0063】
図13は、プリンタドライバ22が実行する集約処理の他の実施形態を示す。図13に示した実施形態では、ドキュメントのページ・データを、希望最小フォントサイズに合わせて変倍して複数のページ・データを、単一のページに集約処理し印刷するが、回転方向は、ページで最初に配置したページ・データに一致させる処理を実行する。これらの処理は、プリンタドライバ22のレイアウト決定部30なお、レイアウト決定部30、レイアウト再編部38以外の処理と構成は、上述したと同様の処理を使用する。
【0064】
図13の処理は、ステップS500から開始し、ステップS501〜ステップS505およびステップS512〜ステップS520までは図6と同様に実行される。ステップS506でページの中で先頭となるべき領域割当データの角度を取得し、ステップS507、ステップS508、ステップS510で、描画可能領域に、処理対象のページ・データが収まるか否かを判断する。なお、ステップS504で、収まると判断された場合(yes)は、ステップS509、ステップS511で無駄なく収まるように変倍し、ステップS512の処理に進む。また、ステップS504の判断で収まらない場合(no)は、ステップS520の処理に進み、ステップS521で処理を終了させる。
【0065】
図14は、他の実施形態でレイアウト決定部30がレイアウトを決定する際のレイアウト情報リスト50および領域リスト52の更新処理の実施形態を示す。処理対象ページを変倍すると、印刷領域5001の大きさになるものとする。また、レイアウト情報リスト50にページ・データそれぞれに対応する領域割当データ5002、5003、5004が格納されているものとする。
【0066】
まず、領域割当データ5001が対応する矩形5005の領域に収まるか確認する。図14(a)に示した場合は、収まらないので、矩形5005の領域を余った領域と判断し、レイアウト情報リスト50とともにレイアウト再編部38に渡される。この段階では、レイアウト再編部38によって再編されたレイアウト情報リスト50には、図14(b)に示すように、領域割当データ5007、5008、5009がエントリされる。
【0067】
その後、領域5001が無駄なく入る領域データを検索する。このとき領域データ5006は領域5001を確保できるが、そのまま入れると、図14(b)で示す領域5010のようになるので、領域5001を無駄な領域ができないように変倍して、領域5015で示される領域割当データを生成する。決定された領域5015に対応する領域割当データをレイアウト情報リスト50に登録する。レイアウト情報リスト50には領域割当データ5012、5013、5014、5015の領域割当データがエントリされ、領域リスト52には、割当可能な領域データ5016が格納される。上述した処理により、領域5001は、ページ・データを収容することができたので、描画部32へレイアウト情報リスト50と領域リスト52とを返し、処理対象のページ・データがページ内に収まったことを伝え、処理を終了する。
【0068】
図15は、他の実施形態でのレイアウト再編部30が実行する処理の実施形態である。図15に示した処理は、ステップS601〜ステップS603までは図10と同等の処理が実行される。ステップS604で、処理中のページ・データの幅、高さ、角度、変倍率を変更し、ステップS605で領域リスト52に指定された領域データに含まれるか否かを判断する。領域リスト52に含まれる領域に収められる場合(yes)、ステップS606でレイアウトを変更する。変更した領域割当データをレイアウト情報リスト50に記入し、ページ・データの識別値をインクリメントして、ステップS609で処理を終了し、さらに後続する機能処理部の処理が実行される。また、収められない場合(no)には、レイアウト決定部30にレイアウト情報リスト50を修正することなく返却する。
【0069】
図16は、他の実施形態でユーザに表示されるGUI62の実施形態を示す。ユーザは、コンピュータ装置12のデスクトップに表示されるGUI62を参照し、事前に希望最小フォントサイズ、ページの配置開始位置を左上にするか右上にするか、方向が混在した時に左右のどちらに回転させるかを選択する。また、これらの設定は、あらかじめデフォルトの値が定められており、ユーザによる指定がない場合は、デフォルトの値で集約処理が実行される。また、GUI62には、「印刷用紙内の先頭ページに向きを揃える」ことを指定するラジオ・ボタンが追加されていて、ユーザは、当該ラジオ・ボタンをチェックすることにより、図13〜図15に説明した処理を指令することができる。
【0070】
図17は、本発明のデバイスドライバのさらに他の実施形態を示す。図17の実施形態は、プリンタドライバ22の機能がプリンタ14またはMFP16に実装された場合の実施形態である。コンピュータ装置12は、プリントするべきドキュメントおよびDEVMODE構造体により生成された、PDL(Page Description Language)などで記述されたページ・データを、LAN18がTCP/IPプロトコルで接続された場合には、パケットのペイロードに記入してプリンタ14またはMFP16に伝送する。また、NETBIOSを使用する場合には、フレームのペイロード内にページ・データを記述してLAN18に送出する。
【0071】
プリンタ14またはMFP16などの像形成装置は、コンピュータ装置12のGUIから指定された集約印刷の通知とともに、ページ・データを受領して記憶領域26に格納し、描画部32は、ページ・データからラスタ・データを含む描画データを作成し、PJL(Printer Job Language)コマンドとともに像形成部に渡され、印刷物として出力される。図17の実施形態では、コンピュータ装置12に対して描画データを作成させるオーベーヘッドを与えることなく集約印刷を可能とし、ネットワーク・プリンタに対して遠隔的に集約印刷を実行させることができる。
【0072】
以上説明したように、本発明によれば、文字認識性を低下させることなく、最適な集約処理を可能とする画像処理装置、画像処理方法、およびプログラム
が提供できる。
【0073】
これまで本発明を図面に示した実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【0074】
【図1】本発明によるプリンタ・ネットワーク・システムの実施形態を示した図。
【図2】コンピュータ装置の実施形態における機能ブロック図。
【図3】プリンタドライバが実行する処理の実施形態を示したフローチャート。
【図4】レイアウト情報リストおよび描画領域リストの実施形態を示した図。
【図5】印刷領域に対し、ページ・データの割当てを修正した描画データを再編成する、レイアウト再編部の処理の実施形態を示したフローチャート。
【図6】レイアウト決定部が、レイアウトを決定する場合の処理の実施形態を示した図。
【図7】レイアウト決定部がレイアウトを決定する際のレイアウト情報リストおよび領域リストの更新処理の実施形態を示した図。
【図8】領域分割部が実行する処理の実施形態のフローチャート。
【図9】領域分割部が描画可能領域を分割する場合の、分割後の領域リストの実施形態を示した図。
【図10】レイアウト再編部が実行する処理の実施形態を示したフローチャート。
【図11】レイアウト再編部が余った領域をタイリングする場合の、領域割当データの修正処理を示した図。
【図12】ユーザが最小フォントサイズを事前に設定するためのGUIの実施形態を示した図。
【図13】プリンタドライバが実行する集約処理での、他の実施形態のフローチャート。
【図14】他の実施形態でレイアウト決定部がレイアウトを決定する際のレイアウト情報リストおよび領域リストの更新処理の実施形態を示した図。
【図15】他の実施形態でのレイアウト再編部が実行する処理の実施形態のフローチャート。
【図16】他の実施形態でユーザに表示されるGUIの実施形態を示した図。
【図17】本発明のデバイスドライバのさらに他の実施形態を示した図。
【図18】従来の集約印刷を示した図。
【符号の説明】
【0075】
10…プリンタ・ネットワーク・システム、12…コンピュータ装置、14…プリンタ、16…MFP、18…LAN、20…アプリケーション、22…プリンタドライバ、24…API、26…記憶領域、28…UI部、30…レイアウト決定部、32…描画部、34…変倍率計算部、36…領域分割部、38…レイアウト再編部、40…スプーラ、42…ポートモニタ、44…像形成装置、50…レイアウト情報リスト、52…描画可能領域リスト、60…GUI、62…GUI
【特許請求の範囲】
【請求項1】
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算する変倍率計算手段と、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定するレイアウト決定手段と、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、像形成手段に送出する描画手段と
を含む、画像処理装置。
【請求項2】
前記レイアウト決定手段は、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約し、前記描画手段に前記単位印刷領域の描画データを作成させる、請求項1に記載の画像処理装置。
【請求項3】
さらに、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定するユーザ・インタフェース手段を含む、請求項1または2に記載の画像処理装置。
【請求項4】
前記画像処理装置は、前記フォントサイズについてデフォルト設定値を格納する記憶領域を含み、前記変倍率計算手段は、前記フォントサイズの指定を受付けない場合、前記デフォルト設定値を用いて前記変倍率を計算する、請求項1〜3のいずれか1項に記載の画像処理装置。
【請求項5】
前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストを含み、前記識別値を参照して前記ページ・データを前記単位印刷領域に割当てる領域割当手段を備える、請求項
1〜4のいずれか1項に記載の画像処理装置。
【請求項6】
前記画像処理装置は、印刷装置であり、外部装置から前記ページ・データを受領する、請求項1〜5のいずれか1項に記載の画像処理装置。
【請求項7】
前記画像処理装置は、コンピュータ装置である、請求項1〜5のいずれか1項に記載の画像処理装置。
【請求項8】
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算するステップと、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定するステップと、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、像形成手段に送出するステップと
を含む、画像処理方法。
【請求項9】
さらに、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられることを判断するステップと、
前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約した描画データを作成させるステップと、
を含む、請求項8に記載の画像処理方法。
【請求項10】
さらに、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定するユーザ・インタフェース手段を提供するステップを含む、請求項8または9に記載の画像処理方法。
【請求項11】
前記フォントサイズの指定を受付けない場合、前記フォントサイズについてのデフォルト設定値を使用して変倍率を計算する、請求項8〜10のいずれか1項に記載の画像処理方法。
【請求項12】
前記レイアウトを決定するステップは、前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストから前記識別値を参照し、前記ページ・データを前記単位印刷領域に割当てるステップを含む、請求項8〜11のいずれか1項に記載の画像処理方法。
【請求項13】
画像処理装置に対して画像処理を実行させるための装置実行可能なプログラムであって、前記プログラムは、
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算する機能手段と、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定する機能手段と、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、外部送出する機能手段と
を画像処理装置に実現する、プログラム。
【請求項14】
さらに、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられることを判断する機能手段と、
前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約した描画データを作成させる機能手段とを、画像処理装置に実現する、請求項13に記載のプログラム。
【請求項15】
さらに、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定する機能手段を前記画像処理装置に実現する、請求項13または14に記載のプログラム。
【請求項16】
前記フォントサイズの指定を受付けない場合、記憶領域から前記フォントサイズについてのデフォルト設定値を読出し、前記デフォルト設定値を使用して前記変倍率を計算する機能手段を、画像処理装置に実現する、請求項13〜15のいずれか1項に記載のプログラム。
【請求項17】
前記レイアウトを決定する機能手段は、前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストから前記識別値を参照して前記ページ・データを前記単位印刷領域に割当てる機能手段を、画像処理装置に実現する請求項13〜15のいずれか1項に記載のプログラム。
【請求項18】
コンピュータ装置のためのプリンタドライバとして機能する、
請求項13〜17のいずれか1項に記載のプログラム。
【請求項19】
MFPのプリンタアプリケーション・プログラムとして機能する、請求項13〜17のいずれか1項に記載のプログラム。
【請求項1】
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算する変倍率計算手段と、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定するレイアウト決定手段と、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、像形成手段に送出する描画手段と
を含む、画像処理装置。
【請求項2】
前記レイアウト決定手段は、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約し、前記描画手段に前記単位印刷領域の描画データを作成させる、請求項1に記載の画像処理装置。
【請求項3】
さらに、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定するユーザ・インタフェース手段を含む、請求項1または2に記載の画像処理装置。
【請求項4】
前記画像処理装置は、前記フォントサイズについてデフォルト設定値を格納する記憶領域を含み、前記変倍率計算手段は、前記フォントサイズの指定を受付けない場合、前記デフォルト設定値を用いて前記変倍率を計算する、請求項1〜3のいずれか1項に記載の画像処理装置。
【請求項5】
前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストを含み、前記識別値を参照して前記ページ・データを前記単位印刷領域に割当てる領域割当手段を備える、請求項
1〜4のいずれか1項に記載の画像処理装置。
【請求項6】
前記画像処理装置は、印刷装置であり、外部装置から前記ページ・データを受領する、請求項1〜5のいずれか1項に記載の画像処理装置。
【請求項7】
前記画像処理装置は、コンピュータ装置である、請求項1〜5のいずれか1項に記載の画像処理装置。
【請求項8】
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算するステップと、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定するステップと、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、像形成手段に送出するステップと
を含む、画像処理方法。
【請求項9】
さらに、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられることを判断するステップと、
前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約した描画データを作成させるステップと、
を含む、請求項8に記載の画像処理方法。
【請求項10】
さらに、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定するユーザ・インタフェース手段を提供するステップを含む、請求項8または9に記載の画像処理方法。
【請求項11】
前記フォントサイズの指定を受付けない場合、前記フォントサイズについてのデフォルト設定値を使用して変倍率を計算する、請求項8〜10のいずれか1項に記載の画像処理方法。
【請求項12】
前記レイアウトを決定するステップは、前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストから前記識別値を参照し、前記ページ・データを前記単位印刷領域に割当てるステップを含む、請求項8〜11のいずれか1項に記載の画像処理方法。
【請求項13】
画像処理装置に対して画像処理を実行させるための装置実行可能なプログラムであって、前記プログラムは、
設定されたフォントサイズ以上となるようにページ・データの変倍率を計算する機能手段と、
前記変倍率で前記ページ・データのサイズを変更し、変更された前記サイズの前記ページ・データを、単位印刷領域内の割当可能領域に割当て、レイアウトを決定する機能手段と、
前記決定された前記ページ・データのレイアウトを使用して描画データを作成し、外部送出する機能手段と
を画像処理装置に実現する、プログラム。
【請求項14】
さらに、前記割当可能領域に、設定された前記フォントサイズ以上の前記変倍率で前記ページ・データが割当てられることを判断する機能手段と、
前記ページ・データが割当てられる場合に、前記ページ・データを単位印刷領域に集約した描画データを作成させる機能手段とを、画像処理装置に実現する、請求項13に記載のプログラム。
【請求項15】
さらに、前記フォントサイズの最小値、前記ページ・データの配置順、または配置時の回転を外部から指定する機能手段を前記画像処理装置に実現する、請求項13または14に記載のプログラム。
【請求項16】
前記フォントサイズの指定を受付けない場合、記憶領域から前記フォントサイズについてのデフォルト設定値を読出し、前記デフォルト設定値を使用して前記変倍率を計算する機能手段を、画像処理装置に実現する、請求項13〜15のいずれか1項に記載のプログラム。
【請求項17】
前記レイアウトを決定する機能手段は、前記ページ・データの識別値と前記ページ・データが使用する領域割当データとをエントリしたレイアウト情報リストから前記識別値を参照して前記ページ・データを前記単位印刷領域に割当てる機能手段を、画像処理装置に実現する請求項13〜15のいずれか1項に記載のプログラム。
【請求項18】
コンピュータ装置のためのプリンタドライバとして機能する、
請求項13〜17のいずれか1項に記載のプログラム。
【請求項19】
MFPのプリンタアプリケーション・プログラムとして機能する、請求項13〜17のいずれか1項に記載のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2008−71053(P2008−71053A)
【公開日】平成20年3月27日(2008.3.27)
【国際特許分類】
【出願番号】特願2006−248212(P2006−248212)
【出願日】平成18年9月13日(2006.9.13)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成20年3月27日(2008.3.27)
【国際特許分類】
【出願日】平成18年9月13日(2006.9.13)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]