(57)【特許請求の範囲】
【請求項１】
画像データに応じた画像を用紙に出力する画像形成装置において、
画像データに応じて１ページに配置されている複数のオブジェクトを該画像データから分離する手段と、
分離した夫々のオブジェクトについて文字オブジェクトか否かを判定する手段と、
文字オブジェクトであると判定されたオブジェクトについて、所定サイズの複数のブロックに分割し、当該分割された複数のブロック毎に文字を構成する画素の画素数をカウントし、当該カウントされた画素数のうち最大のものを、前記所定サイズのブロック内の全画素の数で割ることにより、割合を計算する手段と、
ユーザが設定したサイズの用紙に該サイズに合わせて前記複数のオブジェクトを配置する手段であって、前記１ページにおける前記複数のオブジェクトを変倍して該用紙に配置した場合に前記割合が一定の基準値を超える文字オブジェクトについて、前記１ページとは別のページに配置し直す配置手段と
を備えたことを特徴とする画像形成装置。
【請求項２】
請求項１の画像形成装置において、
前記配置手段は、前記複数のオブジェクトのうち、前記割合が一定の基準値を超える前記文字オブジェクトと関連する他のオブジェクトを、該文字オブジェクトとともに前記別のページにレイアウトすることを特徴とする画像形成装置。
【請求項３】
請求項１または２の画像形成装置において、
前記配置手段は、前記複数のオブジェクトの夫々について描画に必要なサイズおよび位置を示すページレイアウトテーブルと、前記１ページにおける前記複数のオブジェクトを変倍して前記用紙に配置した場合に前記割合が一定の基準値を超える前記文字オブジェクトを該ページレイアウトテーブルから削除して、削除した文字オブジェクトを含めた他のページレイアウトテーブルを作成する手段とを有することを特徴とする画像形成装置。
【請求項４】
画像データに応じた画像を用紙に出力する画像形成装置において、
画像データに応じて１ページに配置されている複数のオブジェクトを該画像データから分離する手段と、
分離した夫々のオブジェクトについて文字オブジェクトか否かを判定する手段と、
文字オブジェクトであると判定されたオブジェクトについて、所定サイズの複数のブロックに分割し、当該分割された複数のブロック毎に文字を構成する画素の画素数をカウントし、当該カウントされた画素数のうち最大のものを、前記所定サイズのブロック内の全画素の数で割ることにより、割合を計算する手段と、
該手段による計算の結果、ユーザが設定したサイズの用紙に前記１ページにおける前記複数のオブジェクトを変倍して配置した場合に前記割合が一定の基準値を超える文字オブジェクトがあると、エラーメッセージを出す手段
とを備えたことを特徴とする画像形成装置。
【請求項５】
コンピュータを、
画像データに応じて１ページに配置されている複数のオブジェクトを該画像データから分離する手段、
分離した夫々のオブジェクトについて文字オブジェクトか否かを判定する手段、
文字オブジェクトであると判定されたオブジェクトについて、所定サイズの複数のブロックに分割し、当該分割された複数のブロック毎に文字を構成する画素の画素数をカウントし、当該カウントされた画素数のうち最大のものを、前記所定サイズのブロック内の全画素の数で割ることにより、割合を計算する手段、
ユーザが設定したサイズの用紙に該サイズに合わせて前記複数のオブジェクトを配置する手段であって、前記１ページにおける前記複数のオブジェクトを変倍して該用紙に配置した場合に前記割合が一定の基準値を超える文字オブジェクトについて、前記１ページとは別のページに配置し直す配置手段、
として機能させるためのコンピュータプログラム。
【請求項６】
コンピュータを、
画像データに応じて１ページに配置されている複数のオブジェクトを該画像データから分離する手段、
分離した夫々のオブジェクトについて文字オブジェクトか否かを判定する手段、
文字オブジェクトであると判定されたオブジェクトについて、所定サイズの複数のブロックに分割し、当該分割された複数のブロック毎に文字を構成する画素の画素数をカウントし、当該カウントされた画素数のうち最大のものを、前記所定サイズのブロック内の全画素の数で割ることにより、割合を計算する手段、
該手段による計算の結果、ユーザが設定したサイズの用紙に前記１ページにおける前記複数のオブジェクトを変倍して配置した場合に前記割合が一定の基準値を超える文字オブジェクトがあると、エラーメッセージを出す手段、
として機能させるためのコンピュータプログラム。
【請求項７】
画像データに応じた画像を用紙に出力させる画像形成方法であって、
分離手段が、画像データに応じて１ページに配置されている複数のオブジェクトを該画像データから分離する工程と、
判定手段が、前記分離した夫々のオブジェクトについて文字オブジェクトか否かを判定する工程と、
計算手段が、前記文字オブジェクトであると判定されたオブジェクトについて、所定サイズの複数のブロックに分割し、当該分割された複数のブロック毎に文字を構成する画素の画素数をカウントし、当該カウントされた画素数のうち最大のものを、前記所定サイズのブロック内の全画素の数で割ることにより、割合を計算する工程と、
配置手段が、ユーザが設定したサイズの用紙の１ページに該サイズに合わせて前記複数のオブジェクトを変倍して配置する場合に、前記割合が一定の基準値を超える文字オブジェクトについて、前記１ページとは別のページに配置し直す配置工程と
を備えたことを特徴とする画像形成方法。
【請求項８】
画像データに応じた画像を用紙に出力させる画像形成方法において、
分離手段が、画像データに応じて１ページに配置されている複数のオブジェクトを該画像データから分離する工程と、
判定手段が、前記分離した夫々のオブジェクトについて文字オブジェクトか否かを判定する工程と、
計算手段が、前記文字オブジェクトであると判定されたオブジェクトについて、所定サイズの複数のブロックに分割し、当該分割された複数のブロック毎に文字を構成する画素の画素数をカウントし、当該カウントされた画素数のうち最大のものを、前記所定サイズのブロック内の全画素の数で割ることにより、割合を計算する工程と、
エラーメッセージ手段が、前記計算の結果、ユーザが設定したサイズの用紙に前記１ページにおける前記複数のオブジェクトを変倍して配置した場合に前記割合が一定の基準値を超える文字オブジェクトがあると、エラーメッセージを出す工程と
を備えたことを特徴とする画像形成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像形成装置に関する。詳細には本発明は、印刷時に用紙サイズ、所望のレイアウトに従って画像データを変倍し再配置するための適応型自動レイアウト機能を持った画像形成装置に関する。
【背景技術】
【０００２】
従来、画像形成装置が文書処理装置等により作成したドキュメントを出力するに際して印刷設定が行われる。印刷際設定では、一枚の用紙の中に n ページ分の画像データを割り付けて印刷するn in 1 印刷機能や、画像データを拡大/縮小して指定用紙サイズにフィットさせる変倍機能がよく使われている。
【０００３】
特許文献１では、出力されるドキュメントの文字サイズが一定のサイズ以下にならないように制限する方法が提案されているが、認識できる文字サイズの下限はフォントの種類、文字の種類（ひらがな、漢字,アルファベット）によって違う。
【０００４】
【特許文献１】特開２００６−２３８２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記変倍機能にあっては、決められた領域に合わせ込むために画像データが過度に縮小された場合に、文字が認識不可能になることや、細線が消えてしまうことがあった。
【０００６】
本発明の目的は、上記の課題を解決することのできる適応型自動レイアウト機能を持った画像形成装置を提供することである。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために案出された本発明は、画像データに応じた画像を用紙に出力する画像形成装置において、画像データに応じて１ページに配置されている複数のオブジェクトを該画像データから分離する手段と、分離した夫々のオブジェクトについて文字オブジェクトか否かを判定する手段と、文字オブジェクトであると判定されたオブジェクトについて、所定サイズの複数のブロックに分割し、当該分割された複数のブロック毎に文字を構成する画素の画素数をカウントし、当該カウントされた画素数のうち最大のものを、前記所定サイズのブロック内の全画素の数で割ることにより、割合を計算する手段と、ユーザが設定したサイズの用紙に該サイズに合わせて前記複数のオブジェクトを配置する手段であって、前記１ページにおける前記複数のオブジェクトを変倍して該用紙に配置した場合に前記割合が一定の基準値を超える文字オブジェクトについて、前記１ページとは別のページに配置し直す配置手段とを備えた画像形成装置を提供する。
【発明の効果】
【００１３】
本発明装置によれば、文字が縮小されすぎて認識できなくならない範囲で変倍して縮小レイアウトを行うことにより、指定したとおりの枠内にドキュメントを収めることができる。その際に、縮小されすぎて認識できなくならない範囲をブロックごとに適切に設定できる。
【発明を実施するための最良の形態】
【００１４】
〔実施形態１〕
図１は本発明の実施形態１である画像形成装置に係るシステム全体の構成を示すブロック図である。該構成は他の実施形態においても共通に用いられる。  
図１に示した画像形成装置はコントロール部１００，画像読み取り部２００，操作部３００およびプリンタ部４００を備え、ネットワーク５００を介してＰＣ６００に接続することができる。
【００１５】
操作部３００の構成を図２に示す。表示部１２３はＣＰＵ１０３によって制御され、操作画面を表示する。また、表示部１２３上にはタッチパネルシートが貼られており、使用者が表示部１２３上をタッチすると、表示部１２３はタッチされた位置の情報をＣＰＵ１０３に送信する。そして、ＣＰＵ１０３が操作画面とタッチされた位置の情報を参照することにより、選択された操作を認識する。スタートキー１２４１は画像読み取り動作などを開始するときなどに、ユーザにより押圧操作される。スタートキー１２４１の近傍には緑色のＬＥＤ１２４４と赤色のＬＥＤ１２４３があり、点灯されたＬＥＤの色によってスタートキーが使える状態にあるかどうかを示す。ストップキー１２４２は稼動中の動作を止めるために押圧操作される。
【００１６】
図１に示した画像読み取り部２００は、紙原稿を光学的に読み取り、該原稿上のイメージを電子データに変換する。一般的にはＲＧＢ、各色８ビットのコントーン（連続調の濃度）データに原稿イメージが変換される。画像読み取り部２００で作成された電子データは専用のＩ／Ｆ経由でコントローラ１００に送信される。
【００１７】
コントローラ部１００では、画像読み取り部２００で作成された入力電子データに対してスキャナ画像処理部１０６で画像読み取り部２００の特性に応じた補正を含む画像処理を行い、さらに、図３に示すように各画素に属性を示す属性データ２００１を付加する。属性データ２００１は複数ビットで構成され、対応する画素が文字を構成する画素であることを示すＣｈａｒ Ｆｌａｇ ２００２，細線を構成する画素であることを示すＴｈｉｎ Ｌｉｎｅ Ｆｌａｇ ２００３等を含む。
【００１８】
スキャナ画像処理部１０６で処理されたデータは、その後、オブジェクト分離部１０１で複数のオブジェクトに分離される。図４は入力画像を５つのオブジェクトＯｂｊｅｃｔ１〜５（３１０１〜３１０５）に分離して入力画像から抽出しＨＤＤ１０７に保存する例を示す。
【００１９】
オブジェクト分離部１０１により複数のオブジェクトに分離する際に、それぞれのオブジェクトについて属性データ２００１を参照することで、該オブジェクトが文字オブジェクトか、それともイメージデータ等の他のオブジェクトであるかを判定する。
【００２０】
判定結果は分離されたオブジェクトと共に、メインメモリ１０４に一時保存される。データの転送は、ＣＰＵ１０３の制御に従ってクロスバススイッチ１１６を介して行われる。以下の、各構成要素間でのデータの転送を含む処理は、同様にＣＰＵ１０３の制御に従って行われる。各オブジェクトをメインメモリ１０４に保存する際には、同時に、図５(Ａ)および(Ｂ)に示すページレイアウトテーブル３００１およびＯｂｊｅｃｔ Ｇｒｏｕｐ Ｌｉｓｔ３００６がオブジェクト分離部１０１により作成され保存される。
【００２１】
ページレイアウトテーブル３００１は、座標情報Ｐｏｓｉｔｉｏｎ（３００２）、アドレスＯｂｊｅｃｔ Ｐｏｉｎｔｅｒ（３００５）、グループ情報Ｇｒｏｕｐ（３００３）、および、判定フラグＣｈａｒ Ｆｌａｇ（３００４）で構成される。アドレスＯｂｊｅｃｔ Ｐｏｉｎｔｅｒ（３００５）はオブジェクトの実体が格納されているアドレスを示す。グループ情報Ｇｒｏｕｐ（３００３）はオブジェクトが属するグループを示す。判定フラグＣｈａｒ Ｆｌａｇ（３００４）はオブジェクトが文字であるか否かを示す。座標情報Ｐｏｓｉｔｉｏｎ（３００２）は各オブジェクトがページのどこにどんなサイズで配置されるべきかをｘおよびｙ座標で示す。座標情報Ｐｏｓｉｔｉｏｎ（３００２）は原点（０，０）に最も近い頂点の座標（ｘ０，ｙ０）と原点（０，０）から最も遠い頂点の座標（ｘｍａｘ，ｙｍａｘ）とで構成され、オブジェクトを描画するのに最低限必要な矩形の位置／サイズとして表現される。したがって、背景であるＯｂｊｅｃｔ０の座標情報Ｐｏｓｉｔｉｏｎ（３００２）は全オブジェクトを描画するために必要なページサイズを表す。
【００２２】
なお、図５(Ａ)中のＴｈｉｎ Ｌｉｎｅ Ｆｌａｇ（３００７）は、同図を別の実施形態と共通に用いて少ない図面枚数で本願の諸実施形態を説明するために表したもので、本実施形態の要素ではない。参照符号３００２，３００３，３００４，３００５で示される要素が本実施形態のページレイアウトテーブルの要素である。
【００２３】
Ｏｂｊｅｃｔ Ｇｒｏｕｐ Ｌｉｓｔ ３００６(図５(Ｂ))は各グループに属するオブジェクトの一覧を示し、オブジェクトごとに割り振られるＩＤのリストとして表現される。図４に示した入力画像の例では、表を構成する罫線Ｏｂｊｅｃｔ５（３１０５）と該表中の文字Ｏｂｊｅｃｔ４（３１０４）は、オブジェクトの移動、回転、拡大／縮小などの処理を同期して行う必要がある。このため、オブジェクト３１０４とオブジェクト３１０５は一つのグループとして扱われる。
【００２４】
メインメモリ１０４に一時保存されたオブジェクトデータは、所定サイズの複数のブロック（４００１）に分割され、各ブロックごとに特定画素カウント部１０８に送信される。図６はオブジェクトＯｂｊｅｃｔ５（３１０５）を所定サイズの１００ブロックに分割する例を示す。
【００２５】
特定画素カウント部１０８では、分割され送信された所定サイズのブロック毎に別途設定された属性データを持つ画素の数をカウントし、該カウント値および分割されたオブジェクトデータパケットをパケット生成部１０９に転送する。文字と判定されたオブジェクトを送信する場合には、オブジェクトデータを送信する前に予め特定画素カウント部１０８に文字属性を示す属性データの値を設定しておいてから、データを送信する。それにより、特定画素カウント部１０８は文字属性を示す画素の数をカウントし、該カウント値を所定サイズのブロック毎にパケット生成部１０９に通知する。
【００２６】
パケット生成部１０９は、受信したオブジェクトデータを、図７に示す通りに規定されたフォーマットに従ったＰａｃｋｅｔ（５０００）に格納する。
【００２７】
図７に示したパケットフォーマットの例におけるＰａｃｋｅｔ（５０００）は、Ｐａｃｋｅｔ Ｈｅａｄｅｒ（５１００），Ｏｂｊｅｃｔ Ｄａｔａ（５２００），およびＭｅｔａ Ｄａｔａ（５３００）で構成される。Ｐａｃｋｅｔ Ｈｅａｄｅｒ（５１００）はＰａｃｋｅｔ Ｔｙｐｅ（５１０１），Ｐａｃｋｅｔ Ｓｉｚｅ（５１０２），Ｍｅｔａ Ｄａｔａ Ｏｆｆｓｅｔ（５１０３）等を含む。Ｐａｃｋｅｔ Ｔｙｐｅ（５１０１）はＰａｃｋｅｔの種類を記入するためのフィールドであり、オブジェクトデータを格納したＰａｃｋｅｔの場合には、オブジェクトデータを格納したＰａｃｋｅｔに割り当てられたＩＤが記入される。Ｐａｃｋｅｔ Ｓｉｚｅ（５１０２）はＰａｃｋｅｔ全体のサイズを記入するためのフィールドである。Ｍｅｔａ Ｄａｔａ Ｏｆｆｓｅｔ（５１０３）はＰａｃｋｅｔ（５０００）の先頭からＭｅｔａ Ｄａｔａ（５３００）の先頭までのサイズを記入するフィールドであり、Ｍｅｔａ Ｄａｔａ（５３００）の先頭アドレスは以下の計算式により求められる。  
Meta Dataの先頭アドレス ＝ Packet の先頭アドレス ＋ Meat Data Offset
【００２８】
Ｏｂｊｅｃｔ Ｄａｔａ（５２００）内にはオブジェクトを構成する実体のデータが保存される。
【００２９】
また、オブジェクトに対応するＭｅｔａ Ｄａｔａ（５３００）を作成しＰａｃｋｅｔ（５０００）に格納する。Ｍｅｔａ Ｄａｔａ（５３００）としては、そのオブジェクトが文字であるか否かを示すフラグＣｈａｒ Ｆｌａｇ（５３０１）を記録する。そのオブジェクトが文字オブジェクトであるならばさらに、文字画素の割合Ｃｈａｒ Ｐｉｘｅｌ Ｒａｔｉｏ（５３０２）を記録する。
【００３０】
なお、図６中のＴｈｉｎ Ｌｉｎｅ Ｆｌａｇ（５３０３）およびＴｈｉｎ Ｌｉｎｅ Ｐｉｘｅｌ Ｒａｔｉｏｎ（５３０４）は、図６を別の実施形態と共通に用いて少ない図面枚数で諸実施形態を説明するために表したもので、本実施形態の要素ではない。
【００３１】
本実施形態においてフラグＣｈａｒ Ｐｉｘｅｌ Ｒａｔｉｏ（５３０２）が示す文字画素の割合は、所定サイズのブロック毎にカウントした文字属性を持つ画素数のうち最大のものを、所定サイズブロック全体の全画素の数で割った値である。
【００３２】
すなわち、図８に示すような、所定ブロックサイズ４００１が１０ｐｉｘｅｌ×１０ｐｉｘｅｌからなるオブジェクトの例では、文字属性を持つ画素数のカウント値が１８画素であった場合、文字画素が全画素に対し占める割合は１８％となる。
【００３３】
パケット化されたデータは、クロスバススイッチ１１６を介してＨＤＤ（ＢＯＸ）１１７に保存される。パケットデータをＨＤＤ（ＢＯＸ）１１７に保存する際には、ページレイアウトテーブル３００１も同時に保存し、ページレイアウトテーブル３００１のＯｂｊｅｃｔ Ｐｏｉｎｔｅｒ（３００５）はＨＤＤ（Ｂ０Ｘ）１１７上の適切なアドレスに置換される。
【００３４】
ＨＤＤ（ＢＯＸ）１１７に保存した画像データを紙に印刷する場合は、ＨＤＤ（ＢＯＸ）１０７に保存したページレイアウトテーブル３００１を基に、パケットデータをメインメモリ１０４に戻し、それに従ってページレイアウトテーブル３００１も復元するする。
【００３５】
その後、図９のフローチャートに示した処理にしたがい、ユーザまたはオペレータの指示に応じた印刷出力がなされる。すなわち、ユーザまたはオペレータの印刷設定に応じプリントレイアウト部１１０に用紙サイズを設定し（Ｓ６００１）、ページレイアウトテーブルを設定し起動する（Ｓ６００２）。
【００３６】
すると、プリントレイアウト部１１０は図５(Ａ)のページレイアウトテーブル３００１に従って、まず最初のＯｂｊｅｃｔ０をパケットデータから取り出す（Ｓ６００３）。
【００３７】
Ｏｂｊｅｃｔ０は背景なので、そのサイズから出力用紙のページサイズを決定する。そして、ステップＳ６００１で設定した用紙サイズと決定したページサイズを比較し、ページサイズが用紙サイズよりも小さいかどうか（縮小しなくても用紙サイズに収まるか）を判定する（Ｓ６００４）。
【００３８】
縮小する必要が無ければ、オブジェクトデータをメインメモリ１０４から取り出し、復元したページレイアウトテーブル３００１により決められた位置に配置して行くことで印刷されるべきラスターイメージを構成していく（Ｓ６００５）。ラスターイメージはプリンタ画像処理部１１１でプリンタ部４００の特性に応じた処理が行われ（Ｓ６００７）、プリンタ部４００で用紙に印刷される（Ｓ６００８）。
【００３９】
ステップＳ６００２では複数のページレイアウトテーブルを設定することが可能であり、ステップＳ６００２で設定したすべてのページレイアウトテーブルについてプリント部４００での印刷が終わると終了する（Ｓ６１００）。
【００４０】
一方、ステップＳ６００４においてページサイズよりも用紙サイズの方が小さい場合には、プリントレイアウト部１１０は出力画像のページサイズを設定した用紙サイズに合わせるための変倍率を計算する（Ｓ６１００）。
【００４１】
そして、各Ｏｂｊｅｃｔをメインメモリ１０４から取り出し、変倍部１１３を使い、ステップＳ６１００で計算した変倍率で縮小し、縮小されたデータを特定画素カウント部１０８に送信して文字画素の割合を再度計算する（Ｓ６１０１）。
【００４２】
全ての文字オブジェクト内で、ステップＳ６１０１で再計算した文字画素の割合が、予め決められた一定の基準値以下であった場合、ページレイアウトテーブル３００１をステップＳ６１０１で縮小したオブジェクトに合うように更新する（Ｓ６１０４）。
【００４３】
予め決めておく文字画素の割合の基準値はプリンタ部４００の特性に依存する。このため、プリンタ部４００の種類毎に実験的に基準値を求め、ＨＤＤ（ＢＯＸ）１０７等に記録しておく。
【００４４】
一方、ステップＳ６１０１で再計算した文字画素の割合が予め決められた基準値を超えている文字オブジェクトが有った場合はステップＳ６２００以降を行う。すなわち、Ｏｂｊｅｃｔ ＧｒｏｕｐＬｉｓｔ（３００６）を参照してその文字オブジェクトに関連付けられたオブジェクトを特定し（Ｓ６２００）、これら関連する２つのオブジェクトを元のページレイアウトテーブル３００１から削除する（Ｓ６２０１）。次に、元のページレイアウトテーブル３００１から削除された関連するオブジェクトおよび背景を含んで構成され、その他のオブジェクトは含まないページレイアウトテーブルを作成する（Ｓ６２０２）。この新規なページレイアウトテーブルは、関連する２つのオブジェクトを元のページとは別のページに配置し直すために使用される。
【００４５】
作成するページレイアウトテーブルのページサイズは、ステップＳ６２０１で特定されたオブジェクト全てを含む最小矩形サイズとする。ステップＳ６２０２で作成したページレイアウトテーブルはステップＳ６１０４でプリントレイアウト部１１０に追加設定され、再度ステップＳ６００３からの処理が実行される。
【００４６】
図１０は、Ｏｂｊｅｃｔ４についてステップＳ６１０１で再計算した文字画素の割合が基準値を超えたとステップＳ６１０２において判断された場合に、元のページレイアウトテーブルを更新しおよび新たにページレイアウトテーブルを作成する例を示す。
【００４７】
まず、ページレイアウトテーブル（３００１）からＯｂｊｅｃｔ４がＧｒｏｕｐ１に属することが分かり、Ｏｂｊｅｃｔ Ｇｒｏｕｐ Ｌｉｓｔ（３００６）からＧｒｏｕｐ１に属する他のＯｂｊｅｃｔがＯｂｊｅｃｔ５であることが分かる（Ｓ６２００）。すると、元のページレイアウトテーブル（３００１）からＯｂｊｅｃｔ４，５を除いた図１０（Ａ）のページレイアウトテーブル１（８１００）と、Ｏｂｊｅｃｔ０，４，５を含む図１０（Ｂ）の新しいページレイアウトテーブル（８２００）の２つが作成される。ページレイアウトテーブル（８２００）２におけるページサイズ（Ｏｂｊｅｃｔ０のサイズ）はＯｂｊｅｃｔ４，５を含む最小矩形であるので、ここではＯｂｊｅｃｔ５を描画するの最低必要な矩形となる。
【００４８】
このようにページレイアウトテーブルは更新され（Ｓ６１０４）、それぞれステップＳ６００３から再度処理される。
【００４９】
上記２つのページレイアウトテーブルに従った配置／サイズで各オブジェクトを印刷することにより、元の画像データでは１ページに含まれる複数のオブジェクトが、自動的に２ページに分離されて配置され印刷される。１ページはページレイアウトテーブル１に従ったページとして印刷される。文字画素の割合が基準値を超える文字オブジェクトを含む別のページがページレイアウトテーブル２に従って印刷され、ページサイズがＯｂｊｅｃｔ４，５を含む最小矩形となるようにＯｂｊｅｃｔ４の文字が縮小されすぎて認識できなくならない範囲に印刷される。
【００５０】
〔実施形態２〕
図１０は本発明の実施形態２による処理を説明するフローチャートである。
【００５１】
実施形態１ではステップＳ６１０１で再計算した文字画素の割合が一定の基準値を超えた文字オブジェクトについては別のページに配置し直したが、本実施形態はこの場合にエラーメッセージを表示するように構成した。すなわち、図１０においてステップＳ１０１０１で再計算した文字画素の割合が一定の基準値を超えた文字オブジェクトについては、ステップＳ１０５００において表示部123にエラーメッセージを表示し終了する。
【００５２】
なお、別のページに配置し直すことに替えてエラーメッセージを表示するのではなく、別のページに配置し直すことと、配置が変えられた旨のメッセージを表示することを併せて実施しても良い。
【００５３】
〔実施形態３〕
本実施形態について、図１を参照して説明する。
【００５４】
図１に示した画像読み取り部２００は、紙原稿を光学的に読み取り、該原稿上のイメージを電子データに変換する。一般的にはＲＧＢ、各色８ビットのコントーン（連続調の濃度）データに原稿イメージが変換される。画像読み取り部２００で作成された電子データは専用のＩ／Ｆ経由でコントローラ１００に送信される。
【００５５】
コントローラ部１００では、画像読み取り部２００で作成された入力電子データに対してスキャナ画像処理部１０６で画像読み取り部２００の特性に応じた補正を含む画像処理を行い、さらに、図３に示すように各画素に属性を示す属性データ２００１を付加する。属性データ２００１は複数Ｂｉｔで構成され、対応する画素が文字を構成する画素であることを示すＣｈａｒ Ｆｌａｇ ２００２，細線を構成する画素であることを示すＴｈｉｎ Ｌｉｎｅ Ｆｌａｇ ２００３等を含む。
【００５６】
スキャナ画像処理部１０６で処理されたデータは、その後、オブジェクト分離部１０１で複数のオブジェクトに分離される。図４は入力画像を５つのオブジェクトＯｂｊｅｃｔ１〜５（３１０１〜３１０５）に分離して入力画像から抽出しＨＤＤ１０７に保存する例を示す。
【００５７】
オブジェクト分離部１０１により複数のオブジェクトに分離する際に、それぞれのオブジェクトについて属性データ２００１を参照することで、該オブジェクトが細線オブジェクトか、それともイメージデータ等の他のオブジェクトであるかを判定する。
【００５８】
判定結果は分離されたオブジェクトと共に、メインメモリ１０４に一時保存される。データの転送は、ＣＰＵ１０３の制御に従ってクロスバススイッチ１１６を介して行われる。以下の、各構成要素間でのデータの転送を含む処理は、同様にＣＰＵ１０３の制御に従って行われる。各オブジェクトをメインメモリ１０４に保存する際には、同時に、図５(Ａ)および(Ｂ)に示すページレイアウトテーブル３００１およびＯｂｊｅｃｔ Ｇｒｏｕｐ Ｌｉｓｔ３００６がオブジェクト分離部１０１により作成され保存される。
【００５９】
ページレイアウトテーブル３００１は、座標情報Ｐｏｓｉｔｉｏｎ（３００２）、アドレスＯｂｊｅｃｔ Ｐｏｉｎｔｅｒ（３００５）、グループ情報Ｇｒｏｕｐ（３００３）、および、判定フラグＴｈｉｎ Ｌｉｎｅ Ｆｌａｇ（３００７）で構成される。アドレスＯｂｊｅｃｔ Ｐｏｉｎｔｅｒ（３００５）はオブジェクトの実体が格納されているアドレスを示す。グループ情報Ｇｒｏｕｐ（３００３）はオブジェクトが属するグループを示す。判定フラグＴｈｉｎ Ｌｉｎｅ Ｆｌａｇ（３００７）はオブジェクトが細線であるかを示す。座標情報Ｐｏｓｉｔｉｏｎ（３００２）は各オブジェクトがページのどこにどんなサイズで配置されるべきかをｘおよびｙ座標で示す。座標情報Ｐｏｓｉｔｉｏｎ（３００２）は原点（０，０）に最も近い頂点の座標（ｘ０，ｙ０）と原点（０，０）から最も遠い頂点の座標（ｘｍａｘ，ｙｍａｘ）とで構成され、オブジェクトを描画するのに最低限必要な矩形の位置／サイズとして表現される。したがって、背景であるＯｂｊｅｃｔ０の座標情報Ｐｏｓｉｔｉｏｎ（３００２）は全オブジェクトを描画するために必要なページサイズを表す。
【００６０】
なお、図５(Ａ)中のＴｈｉｎ Ｌｉｎｅ Ｆｌａｇ（３００４）は、同図を実施形態１と共通に用いて少ない図面枚数で本願の諸実施形態を説明するために表したもので、本実施形態の要素ではない。参照符号３００２，３００３，３００５，３００７で示される要素が本実施形態のページレイアウトテーブルの要素である。
【００６１】
Ｏｂｊｅｃｔ Ｇｒｏｕｐ Ｌｉｓｔ ３００６(図５(Ｂ))は各グループに属するオブジェクトの一覧を示し、オブジェクトごとに割り振られるＩＤのリストとして表現される。図４に示した入力画像の例では、表を構成する罫線Ｏｂｊｅｃｔ５（３１０５）と該表中の文字Ｏｂｊｅｃｔ４（３１０４）は、オブジェクトの移動、回転、拡大／縮小などの処理を同期して行う必要がある。このため、オブジェクト３１０４とオブジェクト３１０５は一つのグループとして扱われる。
【００６２】
メインメモリ１０４に一時保存されたオブジェクトデータは、所定サイズの複数のブロック（４００１）に分割され、各ブロックごとに特定画素カウント部１０８に送信される。図６はオブジェクトＯｂｊｅｃｔ５（３１０５）を所定サイズの１００ブロックに分割する例を示す。
【００６３】
特定画素カウント部１０８では、分割され送信された所定サイズのブロック毎に別途設定された属性データを持つ画素の数をカウントし、該カウント値および分割されたオブジェクトデータパケットを生成部１０９に転送する。細線と判定されたオブジェクトを送信する場合には、オブジェクトデータを送信する前に予め特定画素カウント部１０８に細線属性を示す属性データの値を設定しておいてから、データを送信する。それにより、特定画素カウント部１０８は細線属性を示す画素の数をカウントし、該カウント値を所定サイズのブロック毎にパケット生成部１０９に通知する。
【００６４】
パケット生成部１０９は、受信したオブジェクトデータを、図７に示す通りに規定されたフォーマットに従ったＰａｃｋｅｔ（５０００）に格納する。
【００６５】
図７に示したパケットフォーマットの例におけるＰａｃｋｅｔ（５０００）は、Ｐａｃｋｅｔ Ｈｅａｄｅｒ（５１００），Ｏｂｊｅｃｔ Ｄａｔａ（５２００），およびＭｅｔａ Ｄａｔａ（５３００）で構成される。Ｐａｃｋｅｔ Ｈｅａｄｅｒ（５１００）はＰａｃｋｅｔ Ｔｙｐｅ（５１０１），Ｐａｃｋｅｔ Ｓｉｚｅ（５１０２），Ｍｅｔａ Ｄａｔａ Ｏｆｆｓｅｔ（５１０３）等を含む。Ｐａｃｋｅｔ Ｔｙｐｅ（５１０１）はＰａｃｋｅｔの種類を記入するためのフィールドであり、オブジェクトデータを格納したＰａｃｋｅｔの場合には、オブジェクトデータを格納したＰａｃｋｅｔに割り当てられたＩＤが記入される。Ｐａｃｋｅｔ Ｓｉｚｅ（５１０２）はＰａｃｋｅｔ全体のサイズを記入するためのフィールドである。Ｍｅｔａ Ｄａｔａ Ｏｆｆｓｅｔ（５１０３）はＰａｃｋｅｔ（５０００）の先頭からＭｅｔａ Ｄａｔａ（５３００）の先頭までのサイズを記入するフィールドであり、Ｍｅｔａ Ｄａｔａ（５３００）の先頭アドレスは以下の計算式により求められる。  
Meta Dataの先頭アドレス ＝ Packet の先頭アドレス ＋ Meat Data Offset
【００６６】
Ｏｂｊｅｃｔ Ｄａｔａ（５２００）内にはオブジェクトを構成する実体のデータが保存される。
【００６７】
また、オブジェクトに対応するメタデータ（５３００）を作成しＰａｃｋｅｔ（５０００）に格納する。Ｍｅｔａ Ｄａｔａ（５３００）としては、そのオブジェクトが細線であるか否かを示すフラグＴｈｉｎ Ｌｉｎｅ Ｆｌａｇ（５３０３）を記録する。そのオブジェクトが細線オブジェクトであるならばさらに、細線画素の割合Ｔｈｉｎ Ｌｉｎｅ Ｐｉｘｅｌ Ｒａｔｉｏｎ（５３０４）を記録する。
【００６８】
なお、図６中のＣｈａｒ Ｆｌａｇ（５３０１）およびＣｈａｒ Ｐｉｘｅｌ Ｒａｔｉｏ（５３０２）は、図６を実施形態１と共通に用いて少ない図面枚数で本願の諸実施形態を説明するために表したもので、本実施形態の要素ではない。
【００６９】
本実施形態においてフラグＴｈｉｎ  Ｌｉｎｅ  Ｐｉｘｅｌ  Ｒａｔｉｏｎ（５３０４）が示す細線画素の割合は、所定サイズのブロック毎にカウントした細線属性を持つ画素数のうち最大のものを、所定サイズブロック全体の全画素の数で割った値であるる。
【００７０】
パケット化されたデータは、クロスバススイッチ１１６を介してＨＤＤ（ＢＯＸ）１１７に保存される。パケットデータをＨＤＤ（ＢＯＸ）１１７に保存する際には、ページレイアウトテーブル３００１も同時に保存し、ページレイアウトテーブル３００１のＯｂｊｅｃｔ Ｐｏｉｎｔｅｒ（３００５）はＨＤＤ（Ｂ０Ｘ）１１７上の適切なアドレスに置換する。
【００７１】
ＨＤＤ（ＢＯＸ）１１７に保存した画像データを紙に印刷する場合は、ＨＤＤ（ＢＯＸ）１０７に保存したページレイアウトテーブル３００１を基に、パケットデータをメインメモリ１０４に戻し、それに従ってページレイアウトテーブル３００１も復元するする。
【００７２】
その後、図９のフローチャートに示した処理にしたがい、ユーザまたはオペレータの指示に応じた印刷出力がなされる。すなわち、ユーザまたはオペレータの印刷設定に応じプリントレイアウト部１１０に用紙サイズを設定し（Ｓ１１００１）、ページレイアウトテーブルを設定し起動する（Ｓ１１００２）。
【００７３】
すると、プリントレイアウト部１１０は図５(Ａ)のページレイアウトテーブル３００１に従って、まず最初のＯｂｊｅｃｔ０をパケットデータから取り出す（Ｓ１１００３）。
【００７４】
Ｏｂｊｅｃｔ０は背景なので、そのサイズから出力用紙のページサイズを決定する。そして、ステップＳ１１００１で設定した用紙サイズと決定したページサイズを比較し、ページサイズが用紙サイズよりも小さいかどうか（縮小しなくても用紙サイズに収まるか）を判定する（Ｓ１１００４）。
【００７５】
縮小する必要が無ければ、オブジェクトデータをメインメモリ１０４から取り出し、復元したページレイアウトテーブル３００１により決められた位置に配置して行くことで印刷されるべきラスターイメージを構成していく（Ｓ１１００５）。ラスターイメージはプリンタ画像処理部１１１でプリンタ部４００の特性に応じた処理が行われ（Ｓ１１００７）、プリンタ部４００で用紙に印刷される（Ｓ１１００８）。
【００７６】
ステップＳ１１００２では複数のページレイアウトテーブルを設定することが可能であり、ステップＳ１１００２で設定したすべてのページレイアウトテーブルについてプリント部４００での印刷が終わると終了する（Ｓ１１１００）。
【００７７】
一方、ステップＳ１１００４においてページサイズよりも用紙サイズの方が小さい場合には、プリントレイアウト部１１０は出力画像のページサイズを設定した用紙サイズに合わせるための変倍率を計算する（Ｓ１１１００）。
【００７８】
そして、各Ｏｂｊｅｃｔをメインメモリ１０４から取り出し、変倍部１１３を使い、ステップＳ１１１００で計算した変倍率で縮小し、縮小されたデータを特定画素カウント部１０８に送信して細線画素の割合を再度計算する（Ｓ１１１０１）。
【００７９】
全ての文字オブジェクト内で、ステップＳ１１１０１で再計算した細線画素の割合が、予め決められた一定の基準値以下であった場合、ページレイアウトテーブル３００１をステップＳ１１１０１で縮小したオブジェクトに合うように更新する（Ｓ１１１０４）。
【００８０】
予め決めておく文字画素の割合の基準値はプリンタ部４００の特性に依存する。このため、プリンタ部４００の種類毎に実験的に基準値を求め、ＨＤＤ（ＢＯＸ）１０７等に記録しておく。
【００８１】
一方、ステップＳ１１１０１で再計算した文字画素の割合が、予め決められた基準値に満たない細線オブジェクトが有った場合はステップＳ１１２００以降を行う。すなわち、Ｏｂｊｅｃｔ ＧｒｏｕｐＬｉｓｔ（３００６）を参照してその文字オブジェクトに関連付けられたオブジェクトを特定し（Ｓ１１２００）、これら関連する２つのオブジェクトを元のページレイアウトテーブル３００１から削除する（Ｓ１１２０１）。次に、元のページレイアウトテーブル３００１から削除された関連するオブジェクトおよび背景を含んで構成され、その他のオブジェクトは含まないページレイアウトテーブルを作成する（Ｓ１１２０２）。この新規なページレイアウトテーブルは、関連する２つのオブジェクトを元のページとは別のページに配置し直すために使用される。
【００８２】
作成するページレイアウトテーブルのページサイズは、ステップＳ１１２０１で特定されたオブジェクト全てを含む最小矩形サイズとする。ステップＳ１１２０２で作成したページレイアウトテーブルはステップＳ１１１０４でプリントレイアウト部１１０に追加設定され、再度ステップＳ１１００３からの処理が実行される。
【００８３】
図１０は、Ｏｂｊｅｃｔ４についてステップＳ１１１０１で再計算した細線画素の割合が基準値に満たないとステップＳ１１１０２において判断された場合に、元のページレイアウトテーブルを更新しおよび新たにページレイアウトテーブルを作成する例を示す。
【００８４】
まず、ページレイアウトテーブル（３００１）からＯｂｊｅｃｔ５がＧｒｏｕｐ１に属することが分かり、Ｏｂｊｅｃｔ Ｇｒｏｕｐ Ｌｉｓｔ（３００６）からＧｒｏｕｐ１に属する他のＯｂｊｅｃｔがＯｂｊｅｃｔ４であることが分かる（Ｓ１１２００）。すると、元のページレイアウトテーブル（３００１）からＯｂｊｅｃｔ４，５を除いた図１０（Ａ）のページレイアウトテーブル１（８１００）と、Ｏｂｊｅｃｔ０，４，５を含む図１０（Ｂ）の新しいページレイアウトテーブル（８２００）の２つが作成される。ページレイアウトテーブル（８２００）２におけるページサイズ（Ｏｂｊｅｃｔ０のサイズ）はＯｂｊｅｃｔ４，５を含む最小矩形であるので、ここではＯｂｊｅｃｔ５を描画するの最低必要な矩形となる。
【００８５】
このようにページレイアウトテーブルは更新され（Ｓ１１１０４）、それぞれステップＳ１１００３から再度処理される。
【００８６】
〔実施形態４〕
図１３は本発明の実施形態４による処理を説明するフローチャートである。
【００８７】
実施形態３ではステップＳ１１１０１で再計算した細線画素の割合が一定の基準値を超えた細線オブジェクトについては別のページに配置し直したが、本実施形態はこの場合にエラーメッセージを表示するように構成した。すなわち、図１３においてステップＳ１２１０１で再計算した細線画素の割合が一定の基準値を超えた文字オブジェクトについては、ステップＳ１２５００において表示部１２３にエラーメッセージを表示し終了する。
【００８８】
なお、別のページに配置し直すことに替えてエラーメッセージを表示するのではなく、別のページに配置し直すことと、配置が変えられた旨のメッセージを表示することを併せて実施しても良い。
【００８９】
［その他の実施形態］
本発明は、さらに、複数の機器（例えばコンピュータ、インターフェース機器、スキャナ、プリンタなど）から構成されるシステムに適用することも、一つの機器からなる装置（複合機、ファクシミリ装置など）に適用することも可能である。
【００９０】
また本発明の目的は、上述した実施例で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が、そのプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が、上述した実施形態の機能をコンピュータに実現させるためのコンピュータプログラムである。そのため、このプログラムコード及びプログラムコードを記憶／記録したコンピュータ読み取り可能な記憶媒体も本発明の一つを構成することになる。
【００９１】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００９２】
また、前述した実施形態の機能は、コンピュータが、読み出したプログラムを実行することによって実現される。また、このプログラムの実行とは、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行う場合も含まれる。
【００９３】
さらに、前述した実施形態の機能は、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットによっても実現することもできる。この場合、まず、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行う。こうした機能拡張ボードや機能拡張ユニットによる処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９４】
【図１】本発明の画像形成装置に係るシステム全体の構成を示すブロック図である。
【図２】図１中の操作部の構成を示す図である。
【図３】入力画像の各画素への、属性を示す属性データの付加を説明する説明図である。
【図４】画像データから複数のオブジェクトを分離抽出して保存する例を説明する説明図である。
【図５】ページレイアウトテーブルおよびオブジェクトグループリストを説明する説明図である。
【図６】オブジェクトを所定サイズブロックへ分割する例を説明する説明図である。
【図７】オブジェクトを図１中のＨＤＤ（ＢＯＸ）へ保存する方法を説明する説明図である。
【図８】文字画素が占める割合を計算する方法を説明する説明図である。
【図９】本発明の実施形態１による処理を説明するフローチャートである。
【図１０】実施形態１による処理において文字画素が占める割合が基準値を超える文字オブジェクトがある場合のページレイアウトを説明する説明図である。
【図１１】本発明の実施形態２による処理を説明するフローチャートである。
【図１２】本発明の実施形態３による処理を説明するフローチャートである。
【図１３】本発明の実施形態４による処理を説明するフローチャートである。
【符号の説明】
【００９５】
１００  コントロール部
１０１  オブジェクト分離部
１０２  レンダリング部
１０３  ＣＰＵ
１０４  メインメモリ
１０５  操作部コントローラ
１０６  スキャナ画像処理部
１０７  ＨＤＤ
１０８  特定画素カウント部
１０９  パケット生成部
１１０  プリントレイアウト部
１１１  プリンタ画像処理部
１１２  回転部
１１３  変倍部
２００  画像読み取り部
３００  操作部
４００  プリンタ部
５００  ネットワーク
６００  ＰＣ
【図１】
0005230134.tif 000002
【図２】
0005230134.tif 000003
【図３】
0005230134.tif 000004
【図４】
0005230134.tif 000005
【図５】
0005230134.tif 000006
【図６】
0005230134.tif 000007
【図７】
0005230134.tif 000008
【図８】
0005230134.tif 000009
【図９】
0005230134.tif 000010
【図１０】
0005230134.tif 000011
【図１１】
0005230134.tif 000012
【図１２】
0005230134.tif 000013
【図１３】
0005230134.tif 000014