説明

文書画像レイアウト装置

【課題】印刷データをテンプレートのデータ配置領域に印刷データを配置して印刷する文書画像レイアウト装置において、印刷データの可読性の向上を可能にする。
【解決手段】印刷データの配置位置を特定するための複数のデータ配置領域を有するテンプレートを備え、複数の印刷データを前記テンプレートの印刷位置にそれぞれ配置して印刷する文書画像レイアウト装置であって、データ配置領域に対する印刷データのはみ出しを判定するはみ出し判定手段(ステップ206)と、印刷データ毎にテキスト、非テキストの属性を判定する属性判定手段と、印刷データがテキストデータの場合に、隣接する少なくとも2以上のデータ配置領域を一つのデータ配置領域とみなして、テキストデータをこれらデータ配置領域に配置可能なブロックデータに分割する分割手段と、複数のデータ配置領域に対する複数のブロックデータの分割処理後の配置順を、分割処理前のテキストデータの配置順に基づいて決定する配置順決定手段(ステップ205)とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、予め定められた複数のテンプレートのデータ配置領域にそれぞれ印刷データを配置して合成印刷する文書画像レイアウト装置に関する。
【背景技術】
【0002】
従来、テンプレートに従って、ページ上の所定の位置に、図形や文字列などの描画要素を配置することがなされている。ここで「ページ」とは、A4用紙など、限られた領域であって、そこに図形、表等の非テキスト、文字列等のテキストを配置する領域をいう。
【0003】
従来のページレイアウト技術としては、例えば、画像を配置する領域として紙面上をいくつかの領域に分割し、記事をその領域に割り当てるものがある(例えば、特許文献1参照)。また、画像を切り出して再配置するものが知られている(例えば、特許文献2参照)。
【特許文献1】特開平9−146949
【特許文献2】特開平5−153371
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、印刷データが配置されるデータ配置領域のサイズが固定であるのに対し、データ配置領域に対する印刷データのサイズは一定ではないため、データ配置領域から印刷データがはみ出してしまうことがある。
【0005】
例えば、原稿をスキャナによりスキャンし、スキャンデータから切り出したデータ(画像データ)を、印刷データとしてデータ配置領域に配置して印刷するケースが考えられる。この場合に、印刷データがデータ配置領域からはみ出してしまう場合は、印刷データ単位又はページ単位で印刷データのサイズを収縮することが必要となることがある。
【0006】
しかし、データ配置領域に対する印刷データのサイズは様々であるので、図35に示すように、過度な縮小により、印刷データ、特に、テキスト属性の印刷データの可読性が著しく低下することがある。
また、データ配置領域のサイズは一定であるが、印刷データのサイズの縮小により、無駄な空白が大きくなるという問題もある。
【0007】
なお、特許文献1の技術では、画像を配置する領域のパターンを複数生成し、それぞれに配置することでそれらの評価を行うために、処理に多大な時間が必要になる虞がある。また、データ配置領域のパターンによっては、無駄な空白が発生することがある。
【0008】
また、特許文献2の技術は、所定の線分を認識し、それを画像切り出しの拠り所として多様な形状と大きさの記事データを合成するが、この場合に、データ配置領域に印刷データを収めることができないという虞がある。また、この場合もページ内に無駄な空白が発生する虞がある。
【0009】
なお、OCRのような文字認識を行い、テキストデータを、文字コードに変換してテンプレートTPに配置する場合、誤認識や言語(日本語、英語など)依存性により、情報の欠落が発生する問題がある。
【0010】
本発明は、印刷データをテンプレートのデータ配置領域に印刷データを配置して印刷する文書画像レイアウト装置において、印刷データの可読性の向上を可能にすることを目的とする。
【課題を解決するための手段】
【0011】
本発明は、上記課題を解決するため、印刷データの配置位置を特定するための複数のデータ配置領域を有するテンプレートを備え、複数の印刷データを前記テンプレートのデータ配置領域にそれぞれ配置して印刷する文書画像レイアウト装置であって、データ配置領域に対する印刷データのはみ出しを判定するはみ出し判定手段と、印刷データ毎にテキスト、非テキストの属性を判定する属性判定手段と、印刷データがテキストデータの場合に、隣接する少なくとも2以上のデータ配置領域を一つのデータ配置領域とみなして、テキストデータをこれらデータ配置領域に配置可能な複数のブロックデータに分割する分割手段と、複数のデータ配置領域に対する複数のブロックデータの分割処理後の配置順を、分割処理前のテキストデータの配置順に基づいて決定する配置順決定手段と、を有する。
【発明の効果】
【0012】
本発明によれば、テキストデータの可読性が大幅に向上することができる。また、データ配置領域内の無駄な空白も減少するので、印刷用紙を無駄なく有効に使用することができる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態について添付図面を用いて説明する。
(第1実施形態)
図1は本発実施形態にかかるレイアウト装置を示す。レイアウト装置は、画像の編集及びレイアウトを実行するためのコンピュータ101を有する。
【0014】
コンピュータ101は、演算、判断等、制御を実行するプロセッサーユニット(以下、CPUという)135を備える。さらにコンピュータ101は、ランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリユニット136、ビデオインターフェース137を含むI/Oインターフェース138、データを記憶する記憶装置139を有する。また、コンピュータ101には、不揮発性のデータソースとしてCD−ROMドライブ142が設けられる。
【0015】
コンピュータ101は、LINUXやマイクロソフトウィンドウズ(登録商標)のようなオペレーションシステムや相互接続バス134を介して通信を行うコンポーネント(図示せず)からI/Oインターフェース143を利用する。
【0016】
コンピュータ101には、キーボード132やマウス133のようなポインティングデバイスなどの入力装置と、画像を表示するビデオディスプレイ装置144と、印刷のためのプリンタ145と、読み取り装置としてのスキャナ146とが接続される。
【0017】
I/Oインターフェース138には、他のコンピュータを、ネットワーク接続107により接続することができる。典型的なネットワーク接続107としては、ローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)がある。
【0018】
記憶装置139は、典型的には、ハードディスクドライブ140やフレキシブルディスクドライブ141から構成される。記憶装置139には磁気テープドライブも含まれるものとする。
【0019】
記憶装置139、例えば、ハードディスクドライブ140には、オペレーションソフト(OS)の他、コンピュータモジュール101は、レイアウト編集プログラムにより、本実施形態にかかる文書画像レイアウト装置として機能する。
【0020】
このレイアウト処理プログラムは、コンピュータ101のハードウエア資源を、後述するはみ出し判定手段属性判定手段、分割手段、配置順決定手段と、を有する文書画像レイアウト装置として機能させる。なお、本実施形態では、はみ出し判定手段、分割手段、配置順決定手段は、レイアウト編集部として統合されている。
【0021】
図2はレイアウト処理プログラムの制御内容を示すフローチャートである。レイアウト編集プログラムは、起動すると、レイアウト編集部に対してI/Oインターフェース143を経由してテンプレートTPを選択する選択指示を発行する。なお、レイアウト編集部における演算、比較、制御は、CPU135とそれに連携するコンピュータモジュール101のハードウエアが実行するものとする。
【0022】
図2に示すように、レイアウト編集部は、テンプレートTPの選択指示を受信すると、印刷用紙のサイズに基づいて記憶装置139に格納されているテンプレート群から印刷用紙のサイズに対応したテンプレートTPを選択する。そして、レイアウト編集部は、選択されたテンプレートTPに基づいてメモリユニット136上にテンプレートテーブルを展開する(ステップ201)。
【0023】
図6はステップ201で選択したテンプレートTPであり、図10はテンプレートテーブルの一例である。図6に示すように、テンプレート上TPには、印刷データを配置するため、複数のデータ配置領域Tが相隣接して他列、多段に配置される。
【0024】
図10に示すように、テンプレートテーブルには、テンプレートTPのデータ配置領域Tの幅、高さ、及び割付位置から構成される。割付位置は、テンプレートTPの幅方向のアドレス(A、B、…)と、高さ方向のアドレス(1、2、3…)との組み合わせによって生成される。
【0025】
図2に戻って、ステップS202では、レイアウト編集部が、I/Oインターフェース143を経由してスキャナ146にスキャン指示を送信し、スキャナ146からレイアウト編集部にスキャンデータが送信される。レイアウト編集部は、スキャン信号を受信すると、これを、印刷用紙に対する印刷データとして、記憶装置139、例えば、ハードディスクドライブ140に格納する。また、受信したスキャンデータを、ビデオディスプレイ装置144に送信し、画面上に表示させる(原稿スキャン処理)。
【0026】
次に、レイアウト編集部は、スキャンデータの切り取り指示を発行し、切り取り指示に従ってスキャンデータから必要なデータを切り出して、印刷データとしてメモリユニット136に保存する(ステップ203、記事データ選択処理)。以下、スキャンデータから切り出した印刷データを、特に、「記事データ」と呼称する。
【0027】
図11はスキャンデータから切り出した記事データの一例である。図11に示すように、記事データには、テキストデータと非テキストデータとを含む記事データ1101、1103と、テキストデータのみの記事データ1102、1104との二種類がある。もちろん、非テキストデータのみの記事データがあっても良い。また、記事データ1102、1104は、縦書き、横書きの二種類に分類される。
【0028】
レイアウト編集部は、まず、分割手段として機能し、記事データをテキスト、非テキストの属性に基づいて分割する領域分割処理を行う(ステップ204、領域分割処理)。
【0029】
以下、領域分割により得られたテキストデータ、非テキストデータを、領域分割の必要のない他の記事データと区別するため、それぞれテキスト記事データ、非テキスト記事データと呼ぶ。
【0030】
図12は、記事データ1101を、テキスト記事データ1201と、非テキスト記事データ1202とに分割した例を示す。ステップ204を終了すると、レイアウト編集部は配置順決定手段として機能する。レイアウト編集部は、分割前の記事データ内の配置順に基づいて、隣接するデータ配置領域Tに対するテキスト記事データ1201と、非テキスト記事データ1202の配置順を決定する(ステップ205、配置順決定処理)。
【0031】
図3はステップ205にかかる配置順決定処理の一例を示すフローチャートである。
まず、レイアウト編集部は、ステップ204の分割処理後のテキスト記事データ1201、非テキスト記事データ1202に対して、配置順を決定する。この配置順を決定するために、レイアウト処理部は、図13に示すように、テキスト記事データ1201、非テキスト記事データ1202の重心座標(Xs1,Ys1),(Xs1,Ys2)を抽出する(ステップ301、重心座標抽出処理)。
【0032】
次に、レイアウト編集部は、分割処理で得られたテキスト記事データ1201からテキストデータを抽出する(ステップ302、テキストデータ抽出処理)。
【0033】
次に、レイアウト編集部は、ステップ302において抽出されたテキストデータの本文行方向を検出する(ステップ303、本文方向検出処理)。
【0034】
次に、レイアウト編集部は、テキスト記事データ1201の本文行方向が、縦書きか又は横書きかを判定する(ステップ304)。
ステップ304にて、テキスト記事データ1201が横書きであれば、レイアウト編集部はソーティングルール選択手段として機能し、予めメモリユニット136に記憶してある横書き用ソーティングルールを選択する(ステップ305)。
【0035】
本実施形態では、横書きソーティングルールには、以下のルールを用いる。
(1)横書きの場合、重心のx座標が左側にあるものを優先とする。
(2)重心のx座標が同じ位置の場合、重心のy座標が上側にある領域を優先とする。
【0036】
また、ステップ304にて、テキスト領域が縦書きの場合もレイアウト編集部はソーティングルール選択手段として機能し、予めメモリユニット136に記憶してある縦書き用ソーティングルールを選択する(ステップ306)
【0037】
本実施形態では、縦書きソーティングルールには、以下のルールを用いる。
(1)縦書きの場合、重心のx座標が右側にあるものを優先とする。
(2)重心のx座標が同じ場合、重心のy座標が上にある領域が優先とする。
【0038】
次に、レイアウト編集部は、各領域の重心座標を、選択したソートルールでソートする(ステップ307、ソート処理)。
【0039】
レイアウト編集部は、印刷データ内配置順決定手段として機能する。すなわち、レイアウト編集部は、ソートした結果に基づいて、、分割処理前の記事データに属するテキスト記事データ1201、非テキスト記事データ1202の配置順序を決定する(ステップ308、配置順序決定処理)。
【0040】
続いて、レイアウト編集部は記録手段として機能する。レイアウト編集部は、ステップ308にて決定した配置順序にしたがい、図14(a)に示すように、各データ(例えばデータ1201、1202)の各領域の記事ID、分割領域ID、データ属性等を、記事情報テーブル1401に記憶する(ステップ309)。
【0041】
次に、レイアウト編集部ははみ出し検出手段として機能する。レイアウト編集部は、テンプレートテーブル(図10参照)のデータ配置領域Tのサイズに対して、分割処理で得られたテキスト記事データ1201、非テキスト記事データ1202のはみ出しの有無を判定する(ステップ206、はみ出し判定処理)。
【0042】
図4は、ステップ206のはみ出し検知処理の一例を示すフローチャートである。
まず、レイアウト編集部は、テキスト記事データ1201、非テキスト記事データ1202を順次参照し、それぞれデータ配置領域Tからはみ出している方向を検知する(ステップ401、はみ出し方向検知処理)。
【0043】
次に、レイアウト編集部は水平方向はみ出し判定手段として機能する。レイアウト編集部は、図15に示すように、テキスト記事データ1201、非テキスト記事データ1202がデータ配置領域Tの水平方向のサイズ1501に対して、水平方向にはみ出しているか否かを判定する(ステップ402)。
【0044】
ステップ402にて、テキスト記事データ1201、非テキスト記事データ1202が、データ配置領域Tから水平方向にはみ出している場合、レイアウト編集部は、さらに、水平方向のはみ出し量(n)(図15の1502)を算出する(ステップ403)。ステップ403においてレイアウト編集部は、水平方向はみ出し量検知手段及として機能する。
【0045】
次に、レイアウト処理部は水平方向のはみ出し比を算出する水平方向はみ出し比算出手段として機能し、算出した水平方向はみ出し量(n)から、水平方向はみ出し比(Dn)を算出する(ステップ404)。
【0046】
下式(1)〜(3)は水平方向はみ出し比(Dn)の算出式である。
データ配置領域の幅(図15の1501)=W…(1)
水平方向はみ出し量(図15の1502)=n…(2)
水平方向はみ出し比Dn=(W+n)/W…(3)
【0047】
次に、レイアウト編集部は垂直方向はみ出し判定手段として機能し、テキスト記事データ1201、非テキスト記事データ1202がデータ配置領域Tの垂直方向のサイズに対して、垂直方向にはみ出しているか否かをチェックする(ステップ405)。
【0048】
ステップ405にて、テキスト記事データ1201、非テキスト記事データ1202がデータ配置領域Tの垂直方向のサイズ1503に対して、垂直方向にはみ出している場合、レイアウト編集部は垂直方向はみ出し量検知手段として機能する。その後、レイアウト編集部は垂直方向はみ出し比算出手段として機能し、テキスト記事データ1201、非テキスト記事データ1202の垂直方向のはみ出し量(m)を検知する(ステップ406)。
そして、検知した垂直方向はみ出し量(m)から、垂直方向はみ出し比(Dm)を算出する(ステップ407)。
【0049】
下式(4)〜(6)は、垂直方向はみ出し比(Dm)の算出式の例である。
データ配置領域の高さ(図15の1503)=H…(4)
垂直方向はみ出し量(図15の1504)=m…(5)
垂直方向はみ出し比Dm=(H+m)/H…(6)
【0050】
次に、図14(a)に示すように、レイアウト編集部は、得られた、はみ出し方向、はみ出し量、はみ出し比を、メモリユニット136上の記事情報テーブル1401に記憶する(ステップ408)。
【0051】
続いて、レイアウト編集部は属性判定手段として機能する。レイアウト編集部は、領域分割で得られたテキスト記事データ1201、非テキスト記事データ1202を順次参照して、記事情報テーブル1401のデータ属性からこれらがテキストデータか、非テキストデータかを判別する(ステップ207)。
【0052】
ステップ207の判別にて、参照した画像のデータ属性がテキストデータである場合、レイアウト編集部は、テキストデータに対してテキスト領域用サイズ調整処理を行う(ステップ208)。
【0053】
図8は、ステップ208におけるテキスト領域用サイズ調整処理の一例を示すフローチャートである。なお、このフローチャートの説明においては、図12、図14(a)も参照する。
【0054】
まず、レイアウト編集部は、読み出し処理801において、図14に示した記事情報テーブル1401から、現在、参照しているテキスト記事データ1201のはみ出しに関する情報を参照する。そして、レイアウト編集部は、水平方向はみ出し比(Dn)と垂直方向はみ出し比(Dm)とを読み出す(ステップ801)。
【0055】
次に、レイアウト編集部は、水平方向はみ出し比(Dn)が1より小さい場合、参照した記事データのデータ配置領域Tの水平方向のサイズ内に収まっていることを意味する。このため、ステップ802では、テキスト記事データの水平方向はみ出し比(Dn)が1よりも大きいか否かをチェックする。
【0056】
ステップ802の比較にて、水平方向はみ出し比(Dn)が1よりも大きい場合、レイアウト編集部は、続いて、垂直方向はみ出し比(Dm)が1よりも大きいか否かをチェックする(ステップ803)。
【0057】
ステップ803の比較にて、垂直方向はみ出し比(Dm)が1よりも大きい場合、レイアウト編集部は、垂直方向はみ出し比(Dm)と水平方向はみ出し比(Dn)を比較する(ステップ804)。
【0058】
ステップ804の比較により、垂直方向はみ出し比(Dm)の方が水平方向はみ出し比(Dn)よりも大きい場合、レイアウト編集部は、垂直方向はみ出し比(Dm)と閾値(Dt)を比較する(ステップ805)。
【0059】
ステップ805の比較にて、垂直方向はみ出し比(Dm)が閾値(Dt)以下の場合、レイアウト編集部は、垂直方向のはみ出し量が微量であると判断し、垂直方向はみ出し比を用いて対象とする記事データの圧縮処理を行う。
【0060】
すなわち、画像の圧縮比として垂直方向はみ出し比の逆数(1/Dm)を用いて基準サイズ内に画像が収まるように対象とする記事データを圧縮する(ステップ806、画像圧縮処理)。このような条件下で圧縮すると、テキスト記事データ1201は、ほぼ元のままなので、可読性が低下することはない。
【0061】
また、ステップ803の比較にて、垂直方向はみ出し比(Dm)が1以下の場合、レイアウト編集部は、水平方向はみ出し比(Dn)と閾値(Dt)を比較する(ステップ808)。
【0062】
同様に、ステップ804の比較にて、垂直方向はみ出し比(Dm)が水平方向はみ出し比(Dn)以下の場合、レイアウト編集部は、水平方向はみ出し比(Dn)と閾値(Dt)を比較する(ステップ808)。
同様に、ステップ805の比較にて、垂直方向はみ出し比(Dm)が閾値(Dt)以上の場合、レイアウト編集部は、水平方向はみ出し比(Dn)と閾値(Dt)を比較する(ステップ808)。
【0063】
ステップ808の比較にて、水平方向はみ出し比(Dn)が閾値(Dt)よりも小さい場合、レイアウト編集部は、水平方向のはみ出し量が微量であると判断し、水平方向はみ出し比(Dn)を用いて対象領域の画像の圧縮処理を行う。
【0064】
すなわち、画像の圧縮比として水平方向はみ出し比の逆数(1/Dn)を用いて基準サイズ内に画像が収まるように対象領域の画像を圧縮する(ステップ809、画像圧縮処理)。このような条件下で圧縮しても、テキスト記事データ1201は、ほぼ元のままなので、可読性が低下することはない。
【0065】
ステップ808の比較にて、水平方向はみ出し比(Dn)が閾値(Dt)以上の場合、レイアウト編集部は、はみ出し量が微量ではなく、圧縮すると、可読性が低下するとみなして、画像圧縮処理は行わずに、テキスト領域用サイズ調整処理のフローを抜け出す。
【0066】
また、ステップ802の比較にて、水平方向はみ出し比(Dn)が1よりも小さい場合、レイアウト編集部は、垂直方向はみ出し比(Dm)が1よりも大きいか否かをチェックする(ステップ807)。
【0067】
ステップ807の比較にて、垂直方向はみ出し比(Dm)が1よりも大きい場合、レイアウト編集部は、垂直方向はみ出し比(Dm)と閾値(Dt)を比較する(ステップ805)。尚,ステップ805以降の処理であるステップ806、808は既に説明されているため、省略する。
【0068】
ステップ807の比較にて、垂直方向はみ出し比(Dm)が1以下の場合、レイアウト編集部は、いずれもはみ出しはないと判断し、画像圧縮処理は行わない。
上記のようにして、レイアウト編集部は、対象領域のサイズ調整処理を行う。
【0069】
テキスト領域用サイズ調整処理を終了すると、次に、レイアウト編集部は、テキストデータを、データ配置領域Tの配置に適したサイズに分割する(ステップ209)。
【0070】
なお、この例では、テキスト記事データについて複数のブロックデータに分割する説明をしたが、このような手順は、テキストデータのみからなる記事データについても適用されるものとする。
【0071】
図5は、ステップ209におけるブロック分割処理のフローチャートである。なお、このフローチャートの説明においては、図12、図14(a)、図15及び図16を参照する。
まず、レイアウト編集部が、テキスト記事データ1201について本文行方向を検出する(ステップ501)。
【0072】
次に、レイアウト編集部は、記事情報テーブル1401(図14(a))から、ブロック分割の対象とする記事データ、すなわち、テキスト記事データ1201の本文行方向が縦書きか横書きかを検出する(ステップ502)。
【0073】
ステップ502にて、テキスト記事データ1201の本文行方向が横書きの場合、レイアウト編集部は、テキスト記事データ1201が、データ配置領域Tの水平方向のサイズ1501(図15参照)に対してはみ出しているかをチェックする(ステップ503)。なお、この判定処理は、記事情報テーブル1401の情報に基づいて実行される。
【0074】
ステップ503にて、水平方向のはみ出しが無い場合、レイアウト編集部は、テキスト記事データ1201が、データ配置領域Tの垂直方向のサイズ1503(図15参照)に対して垂直方向にはみ出しているか否かを判定する(ステップ511)。
【0075】
ステップ511にて、垂直方向のはみ出しが有る場合、レイアウト編集部はテキスト行抽出手段として機能し、テキスト行矩形を抽出する(ステップ513)。この処理により、例えば図12の1行目の「個人情報〜(中略)〜意識を」が1つ目のテキスト行矩形として抽出される。同様に図12の2行目の「高め、〜(中略)〜漏洩事件」が2つ目のテキスト行矩形として抽出される。以上の処理により、図12のテキスト記事データから、13個のテキスト行矩形が抽出される。
【0076】
また、ステップ503にて、水平方向のはみ出しが有る場合、レイアウト編集部は、図16(a)に示すように、対象とするテキスト行矩形を抽出する(ステップ505、図16(a)、1601参照)。
【0077】
次に、レイアウト編集部は文字矩形抽出手段として機能し、図16(b)に示すように、テキスト記事データ1201の文字矩形1602を抽出する(ステップ506)。なお、文字矩形1602とは、図16(b)の黒い矩形を指す。
次に、レイアウト編集部は行分割位置決定手段として機能し、水平方向のはみ出し比(Dn)からテキスト記事データ1201の行分割位置1603を決定する(ステップ507)。なお、行分割位置を決定する場合、レイアウト編集部は、ステップ506にて抽出された1つの文字矩形1602が分割されない位置も考慮して行分割位置を決定する。
【0078】
続いて、レイアウト編集部は行分割手段として機能し、ステップ507にて決定された行分割位置で、テキストデータを行分割する(ステップ508、図16(b)、1603参照)。
次に、レイアウト編集部は、データ再構築手段として機能し、分割されたテキスト行矩形を移動して、テキスト記事データ1201のテキストデータを並べ直して再構築(画像構築)する(ステップ509)。その結果、図16(c)の1604が生成される。
【0079】
次に、レイアウト編集部は、再構築したテキスト記事データ11604と、図15の1503とを比較して、再度、はみ出し検知処理を行う(ステップ510)。
【0080】
次に、レイアウト編集部は、更新したテキスト記事データ1604がデータ配置領域Tの垂直方向のサイズ1503に対して垂直方向にはみ出しているか否かを判定する(ステップ511)。
【0081】
ステップ511にて、垂直方向のはみ出しが有る場合、レイアウト編集部は、テキスト行矩形検出手段として機能し、更新したテキスト記事データ1201におけるテキスト行矩形を抽出する(ステップ513)。この処理により、図16(c)の「個人情報〜施行」が1つのテキスト行矩形として抽出される。同様に「以来〜プライ」、「アンス〜意識を」等がテキスト行矩形として抽出される。このステップ513の後にステップ520が実行されるが詳細は後述する。
また、ステップ502にて、更新したテキスト記事データの本文行方向が縦書きの場合、レイアウト編集部は、更新したテキスト記事データ1201が、データ配置領域Tの垂直方向のサイズから、はみ出しているか否かをチェックする(ステップ504)。
【0082】
レイアウト編集部は、ステップ504にて、垂直方向のはみ出しが無い場合、更新したテキスト記事データ1201が、データ配置領域Tの水平方向のサイズ1503に対して水平方向にはみ出しているか否かを判定する(ステップ512)。
【0083】
ステップ512での判定により、水平方向のはみ出しが有る場合、レイアウト編集部は、テキスト矩形行検出手段として機能し、更新したテキスト記事データ1201におけるテキスト行矩形を抽出する(ステップ513)。
【0084】
また、ステップ504にて、垂直方向のはみ出しが有る場合もレイアウト編集部は、テキスト行検出手段として機能し、テキスト記事データ1201からテキスト行矩形を抽出する(ステップ514)。なお、ここでのテキスト行矩形とは、例えば図11の1102における「そこで〜べー」、「スにした〜電子デ」などを指す。
【0085】
次に、レイアウト編集部文字矩形抽出手段として機能し、文字矩形を抽出する(ステップ515)。
次に、レイアウト編集部は、水平方向のはみ出し比(Dn)から所定の行分割位置を決定する(ステップ516)。
【0086】
次に、レイアウト編集部は、決定した分割位置で、テキスト記事データ1201を分割する(ステップ517)。
次に、レイアウト編集部は、データ再構築手段として機能し、分割したテキスト行を移動して、対象とするテキスト記事データ1201を再構築(画像構築)する(ステップ518)。
【0087】
次に、レイアウト編集部は、テキスト行矩形抽出手段として機能し、再構築したテキスト記事データ1201の外接矩形を新たな対象領域として、再度、はみ出し検知処理を行う(ステップ519、はみ出し検知処理)。
【0088】
次に、レイアウト編集部は、新たに更新したテキスト記事データがデータ配置領域Tの基準サイズに対して水平方向にはみ出しているか否かを判定する(ステップ512)。この判定により、垂直方向のはみ出しが有る場合、レイアウト編集部は、新たな対象領域におけるテキスト行を抽出する(ステップ513)。
【0089】
ステップ520では、レイアウト編集部は、水平方向のはみ出し比(Dn)から、図16(c)に示すようにテキスト記事データに対してデータ配置領域Tに配置可能なプロック1605に分割する分割するブロック分割位置を決定する。なお、ブロック分割位置も、テキスト行矩形と重ならない位置に決定される。
【0090】
次に、レイアウト編集部は、ブロック分割手段としてテキスト記事データ1201を、図16(d)に示すように、ブロック分割位置でテキスト記事データ1201を複数のブロックデータ1606に分割する(ステップ521、ブロック分割処理)。
ブロック分割処理を終了すると、レイアウト編集部は、テンプレートTPに対する複数のブロックデータ1606の配置位置を決定する(ステップ210)。
【0091】
なお、この例では、テキスト記事データから生成された複数のブロックデータを配置する場合について説明をしたが、このような手順を、テキストデータのみからなる記事データをブロックデータに分割した場合にも適用されるものとする。
【0092】
図7はデータ配置位置決定処理の一例を示すフローチャートである。
まず、レイアウト編集部は、図14に示した記事情報テーブル1401の属性領域から、データ配置領域Tに配置しようとする記事データが、テキストデータか非テキストデータかを判定する(ステップ701)。
【0093】
記事データが、前記ブロックデータの場合、当該ブロックデータはテキストデータから生成されているため、ステップ702に進む。ステップ702では、レイアウト編集部が、ブロックデータの本文行方向を検出してステップ703に進む。
ステップ703では、記事情報テーブル1401から、ブロックデータの本文行方向を、縦書きか横書きかを判定する。
【0094】
ステップ703にて、ブロックデータの本文行方向が横書きの場合(例えば、ブロックデータ1606の場合)、レイアウト編集部は探索手段として機能し、テンプレートTP(図10参照)の左上から、右側に向ってデータ配置領域Tの空きを探索する。
そして、検出により得られた、データ配置領域Tの空きを、図17に示すように、配置位置決定処理における第1のブロックデータ(最初のブロックデータ)の配置位置と決定する。そして、レイアウト編集部は、図14(b)に示すように、配置位置情報テーブル1402のページ内配置位置記号の欄に記録する(ステップ704)。
【0095】
この例では、テンプレートTPの行方向のアドレスと、列方向のアドレスを組み合わせて、ブロックデータ1606の位置を特定し、この位置を配置位置として配置位置情報テーブル1402のページ内配置位置記号の欄に記録する。
次に、レイアウト編集部は、配置位置決定の対象としたテキスト記事データ内、例えば、テキスト記事データ1201において、第1のブロックの他に、他のブロックデータが有るか否かをチェックする(ステップ705)。
【0096】
ステップ705にて、他のブロックデータが有る場合、レイアウト編集部は探索手段として機能し、第1のブロックデータ1606の配置位置を基点に、その右方向に、データ配置領域Tの空きを探索する(ステップ706)。
ステップ707にて、データ配置領域Tに空きが存在する場合、レイアウト編集部は、検出したデータ配置領域Tの空きを他のブロックデータの配置位置と決定する(ステップ708)。そして、レイアウト編集部は、その配置位置を、配置位置情報テーブル1402のページ内配置位置記号の欄に記録する(ステップ709)。
【0097】
データ配置領域Tに空きが無い場合、レイアウト編集部は、テンプレートTP上の第1のブロックデータ1606を配置した位置を基点に、図17に示すように、その下方を、左側から右側に向かって空き配置領域を探索する(ステップ710)。
ステップ711にて、データ配置領域Tに空きが無い場合、レイアウト編集部は、下方の全領域が探索済みかどうかをチェックする(ステップ712)。
【0098】
ステップ712にて、下方の全領域について探索済みの場合、レイアウト編集部は探索範囲拡大手段として機能し、図17に示すように、探索範囲を次ページのテンプレートTPに拡大し、前後のテンプレートTPを仮想的に結合する(ステップ713)。
【0099】
その後、ステップ713にて、探索範囲を次ページに拡大する。この場合、レイアウト編集部は、仮想的に結合したテンプレートTPを対象に、下方検査を行う(ステップ710)。
ステップ711にて、データ配置領域Tに空きが存在する場合、レイアウト編集部は、このデータ配置領域Tの空きを、他のブロックデータの配置位置と決定する(ステップ708)。そして、レイアウト編集部は、その配置位置を、前記配置位置情報テーブル1402(図14(b)参照)のページ内配置位置記号の欄に記録する(ステップ709)。なお、探索範囲を次ページに拡大している場合、配置位置を、仮想的に結合したテンプレートTP上の配置位置から、ページ情報と単ページにおける配置位置に変換して、配置位置情報テーブル1402のページ内配置位置記号の欄に記録する。
【0100】
ステップ703にて、対象とするブロックデータの本文行方向が縦書きの場合、レイアウト編集部は、テンプレートTPの右上からデータ配置領域Tの空きを探索する。
そして、検出したデータ配置領域Tの空きを、データ配置の対象とする領域における第1のブロックデータ1701の配置位置と決定し、配置位置を配置位置情報テーブル1402のページ内配置位置記号の欄に記録する(ステップ714)。
【0101】
次に、レイアウト編集部は、配置の対象とするテキストデータに関して他の分割ブロックが有るか否かをチェックする(ステップ715)。
ステップ715にて、他の分割ブロックが有る場合、レイアウト編集部は探索手段として機能し、テンプレートTP上の第1のブロックデータを配置した位置を基点に、その下方向にデータ配置領域Tの空きを探索する(ステップ716)。
【0102】
ステップ717にて、テンプレートTPのデータ配置領域Tに空きが有る場合、レイアウト編集部は、データ配置領域Tの空きを、他のブロックデータ1701の配置位置として決定する(ステップ718)。そして、レイアウト編集部は、その配置位置を配置位置情報テーブル1402のページ内配置位置記号の欄に記録する(ステップ719)。
ステップ717にて、テンプレートTPのデータ配置領域Tに空きが無い場合、レイアウト編集部は、テンプレートTP上の第1のブロックデータを配置した位置を基点に、その左側を、上から下に向って順に探索する(ステップ720)。
【0103】
ステップ721にて、データ配置領域Tに空きが有る場合、レイアウト編集部は、検出したデータ配置領域Tの空きを、他のブロックデータの配置位置と決定する(ステップ718)。そして、レイアウト編集部は、その配置位置を配置位置情報テーブル1402のページ内配置位置記号の欄に記録する(ステップ719)。
ステップ721にて、データ配置領域Tに空きが無い場合、レイアウト編集部は、左側の全領域が探索済みかどうかをチェックする(ステップ722)。
【0104】
ステップ722にて、左側の全領域が探索済みの場合、レイアウト編集部は探索範囲拡大手段として機能し、探索範囲を次ページのテンプレートTPに拡大し、現ページと次ページ、すなわち、前後のテンプレートTPを仮想的に結合する(ステップ723)。
ステップ723にて、探索範囲を次ページに拡大した場合、レイアウト編集部は探索範囲拡大手段として機能し、仮想的に結合したテンプレートTPを対象として下方探索を行う(ステップ716)。
【0105】
探索範囲を次ページに拡大した結果、データ配置領域Tに空きが有る場合(ステップ717)、レイアウト編集部は、データ配置領域Tの空きを、ブロックデータの他の配置位置と決定する(ステップ718)。
そして、その配置位置を配置位置情報テーブル1402のページ内配置位置記号の欄に記録する際に、レイアウト編集部は、仮想的に結合したテンプレートTP上の配置位置を、ページ数と単ページにおける配置位置に変換する。そして、レイアウト編集部は、配置位置情報テーブル1402のページ内配置位置記号の欄に記録する(ステップ719)。
【0106】
ステップ719を終了すると、レイアウト編集部は第1のブロック配置処理手段として機能する。レイアウト編集部は、配置位置情報テーブル1402のページ内配置位置記号に記録した配置位置に基づいて、第1のブロックデータを、テンプレートTPのデータ配置欄にブロックデータの配置順に従って図34に示すように配置する(図2、ステップ211)。つまり、横方向のテキスト記事データから生成されたブロックデータは横方向に配置され、縦方向のテキスト記事データから生成されたブロックデータは縦方向に配置される。この際、関連する図面も、テキストのブロックデータに隣接するように配置されるため、ユーザが読みやすい再レイアウト結果が得られる。
【0107】
下式(7)、(8)は、仮想的に結合したテンプレートTP上の配置位置がxDとなっていた場合の変換式である。
P=((x−1)/4の整数値)+1…(7)
Q=((x−1)/4の余り)+1…(8)
ページ情報:Pページ、単ページにおける配置位置:QD
【0108】
一方、ステップ207の比較にて、レイアウト対象の記事データの対象領域がテキスト領域でない場合、すなわち、非テキスト記事データの場合、レイアウト編集部は、非テキスト領域用サイズ調整処理を行う(ステップ213)。
図9は、ステップ213における非テキスト領域用サイズ調整処理のフローチャートである。なお、この例では、非テキストデータとして、図12に示した非テキスト記事データ1202を参照して説明する。
【0109】
まず、レイアウト編集部は、ステップ901のはみ出し情報読み出し処理にて、記事情報テーブル1401(図14参照)を参照し、非テキスト記事データ1202の水平方向はみ出し比(Dn)と、垂直方向はみ出し比(Dm)を読み出す(ステップ901)。
前記したように、水平方向はみ出し比(Dn)が1よりも小さい場合、データ配置領域Tの水平方向のサイズ内に収まっていることなるので、まず、水平方向はみ出し比(Dn)が1よりも大きいか否かをチェックする(ステップ902)。
【0110】
ステップ902の比較にて、水平方向はみ出し比(Dn)が1よりも大きい場合、レイアウト編集部は、次に、垂直方向はみ出し比(Dm)が1よりも大きいか否かをチェックする(ステップ903)。
ステップ903の比較にて、垂直方向はみ出し比(Dm)が1よりも大きい場合、レイアウト編集部は、垂直方向はみ出し比(Dm)と水平方向はみ出し比(Dn)を比較する(ステップ904)。
【0111】
ステップ904の比較にて、垂直方向はみ出し比(Dm)の方が水平方向はみ出し比(Dn)よりも大きい場合、レイアウト編集部は、垂直方向はみ出し比(Dm)を用いて非テキスト記事データ1202の圧縮処理を行う。
すなわち、画像データの圧縮比として垂直方向はみ出し比の逆数(1/Dm)を用いてデータ配置領域Tのサイズ内に非テキスト記事データ1202が収まるように圧縮する(ステップ905、画像圧縮処理)。
【0112】
また、ステップ903の比較にて、垂直方向はみ出し比(Dm)が1以下の場合、レイアウト編集部は、水平方向のみはみ出しているため、水平方向はみ出し比(Dn)を用いて対象領域の画像の圧縮処理を行う。
すなわち、画像の圧縮比として水平方向はみ出し比の逆数(1/Dn)を用い、非機器ストデータがデータ配置領域Tに収まるように非テキストデータを圧縮する(ステップ907、画像圧縮処理)。
【0113】
同様に、ステップ904の比較にて、垂直方向はみ出し比(Dm)が水平方向はみ出し比(Dn)以下の場合、レイアウト編集部は、水平方向はみ出し比(Dn)を用いて対象領域の非テキスト記事データの圧縮処理を行う。
すなわち、非テキスト記事データの圧縮比として水平方向はみ出し比の逆数(1/Dn)を用いてデータ配置領域Tの水平方向のサイズ内に非テキスト記事データ1202が収まるように非テキスト記事データを圧縮する(ステップ907、画像圧縮処理)。
【0114】
また、ステップ902の比較にて、水平方向はみ出し比(Dn)が1以下の場合、レイアウト編集部は、垂直方向はみ出し比(Dm)が1よりも大きいか否かをチェックする(ステップ906)。
【0115】
ステップ906の比較にて、垂直方向はみ出し比(Dm)が1よりも大きい場合、レイアウト編集部は、垂直方向はみ出し比(Dm)を用いて対象領域の画像の圧縮処理を行う。
すなわち、画像の圧縮比として垂直方向はみ出し比の逆数(1/Dm)を用いてデータ配置領域Tの垂直方向のサイズ内に非テキスト記事データ1202が収まるように非テキスト記事データを圧縮する(ステップ905)。
【0116】
ステップ902の比較にて、垂直方向はみ出し比(Dm)が1以下の場合、レイアウト編集部は、水平方向、垂直方向のいずれもはみ出しはないと判断し、非テキスト記事データの画像圧縮処理は行わない。
【0117】
上記のようにして、レイアウト編集部は、圧縮の対象とする非テキスト記事データ1202のサイズ調整処理を行う。
【0118】
次に、レイアウト編集部は、テンプレートTPに対する非テキスト記事データ1202の配置位置を決定する(ステップ210)。
図7を参照して説明すると、レイアウト編集部が、記事情報テーブル1401のデータ属性から配置の対象とする記事データに対して、テキスト記事データか非テキスト記事データかの属性を判定する(ステップ701)。対象とする記事データが、非テキストデータの場合、ステップ704に進む。対象とする記事データがテキスト記事データの場合については、すでに説明したので省略する。
【0119】
非テキストデータの場合、テキスト領域を有しておらず、判定の対象とする領域は非テキスト領域となるので、この場合、ステップ724に進む。ステップ724では、同一記事、すなわち、記事領域内に、テキスト領域があるか否かを判定する。非テキストデータの場合、テキスト領域がないので、ステップS704に進む。
【0120】
ステップ704では、横書きの場合と同様に、レイアウト編集部が探索手段として機能し、テンプレートTPの左上から、データ配置領域Tの空きを探索する。
そして、検出したデータ配置領域Tの空きを、対象とする記事データにおける第1の分割ブロックの配置位置と決定し、配置位置を配置位置情報テーブル1402のページ内配置位置記号欄に記録する(ステップ704)。
【0121】
そして、レイアウト編集部は、検出したデータ配置領域Tの空きを、対象とする記事データにおける第1の分割ブロックの配置位置と決定し、この配置位置を配置位置情報テーブル1402のページ内配置位置記号の欄に記録する(ステップ704)。
【0122】
次に、レイアウト編集部は、対象とする非テキスト記事データにおいて、他のブロックデータの有無をチェックするが(ステップ705)、非テキストデータの場合、他の分割ブロックが無いため、この処理を終了する。次に、レイアウト編集部は、配置位置情報テーブル(1402)に記録されている配置位置情報(ページ内配置位置記号の欄の配置位置)にしたがって図18に示すように非テキスト記事データをテンプレートTPのデータ配置領域Tに配置する(ステップ211)。
【0123】
図34は、この実施の形態にかかるレイアウト処理プログラムにより、レイアウトを終了した後、プリンタ145により合成印刷を行った印刷ページである。同図に示すように、横書きのテキスト記事データ1201は、複数のブロックデータにされ、横並びに印刷されている。また、テキスト記事データ1201もブロックデータに分割された後、縦並びに印刷されている。
【0124】
これらのデータの文字及び領域は、分割前と同じ大きさなので、可読性がよい。また、無駄な空白が発生することがないので、紙面を有効に利用することができる。また、テキスト記事データ1201やテキストデータのみの記事データ1101、1102は、水平方向、垂直方向のはみだし量が微量の場合にのみ圧縮される。一方、はみ出し量が大きい場合は、前述したように、ブロックデータに分割して、複数の隣接するデータ配置領域に配置されるので、可読性が低下することがない。また、非テキスト記事データも水平方向、垂直方向のはみだし量が微量の場合に、はみだし比に基づいて圧職するので、可読性が低下することがない。
【0125】
本実施例1により、従来のように、テキストデータが収縮されず、可読性が大幅に向上する。また、ページ内の無駄な空白も従来よりも大幅に減少する。
【0126】
(第2の実施形態)
第1実施形態によれば、上述の効果が得られる。しかしながら、図34に示すように、テキストデータからなる複数のブロックデータが同じページ上に配置されると、同じ印刷データに属する最初のブロックデータを一目で認識することができず、隣接するブロックデータ同士の相互関係から判断せざるを得ない。したがって、改善の余地がある。
【0127】
この実施形態は、テキスト記事データを分割した複数のブロックデータや相互に関連するテキスト記事データ同士を補助線で取り囲みことにより、識別性を改善し、実施形態1の課題を解決する。
【0128】
図19は、第2実施形態にかかるレイアウト処理プログラムの主フローチャートである。
なお、図19において、図2と同じ構成については説明を省略する。
本実施形態に係るレイアウト処理プログラムは、図2に示したレイアウト処理プログラムのステップ211の後に、グループ化処理1914と、補助線追加処理を加えたものである。まず、ステップ211の配置処理の後、残領域が無い場合、配置位置情報テーブル2202は、図22(b)に示すように完成している。そのため、レイアウト編集部は、グループ化手段として機能し、配置位置情報テーブル2202に基づいてグループ化処理を行う(ステップ1914)。
【0129】
図20はグループ化処理の一例を示すフローチャートである。
まず、レイアウト編集部は、配置位置情報テーブル2202において、各ブロックデータの処置フラグを一旦”未処置”に初期化する(ステップ2001)。なお、ここでは、ブロックデータとは、分割処理によりブロック化したブロックデータだけでなく、分割処理を行わずに、圧縮により、データ配置領域Tに配置か可能とした非テキストデータも含むものとする。
【0130】
次に、レイアウト編集部は、配置位置情報テーブル2202のブロックIDの欄を参照する。ブロックIDの欄には、テキスト記事データの各ブロックデータのIDが、分割順に格納されている。ブロックデータの参照を終了すると(ステップ2002)、レイアウト編集部は、ステップ2003に進む。
【0131】
ステップ2003にて、レイアウト編集部は、参照ブロックがある場合、配置位置情報テーブル2202から、参照ブロックが未処置か否かを判定する(ステップ2004)。
ステップ2004にて、参照ブロックが未処置である場合、レイアウト編集部は、その参照ブロックをグループ化処理の基準ブロック(以下、グループ化処理基準ブロックという)とする(ステップ2005)。
【0132】
次に、レイアウト編集部は、配置位置情報テーブル2202から、グループ化処理基準ブロックと同じテキスト記事データ内のブロックデータを探索し抽出する(ステップ2006)。
次に、レイアウト編集部はグループ化手段として機能し、抽出したブロックデータの各配置位置を仮想的に結合してグループ領域を生成する(ステップ2007)。
【0133】
次に、レイアウト編集部は、生成したグループ領域の外周線分を抽出し、抽出した線分を記事IDに関連付けて、図22に示すように、記事情報テーブル2201に記録する(ステップ2008)。この際、仮想的な結合に使用したブロックデータや、仮想的に結合したブロックデータのページ内配置位置等も、記事情報テーブル2201に記録する。
次に、レイアウト編集部は、仮想的な結合に使用したブロックデータを使用済みブロックデータとして配置位置情報テーブル2202の処置フラグにフラグとして、例えば、”済み”を記録する(ステップ2009)。
【0134】
上記のようにして、レイアウト編集部は、同一テキスト記事データに属するブロックデータをグループ化し、ブロック状の記事を仮想的に結合した記事領域を生成してその領域の外周線分の抽出を行う。
【0135】
次に、レイアウト編集部は補助線付加手段として機能し、補助線付加処理のステップ1914にて抽出され相互に関連するブロックデータ毎の外周に、記事識別のための補助線を描画する(ステップ1915)。
【0136】
図21は、識別補助線付加処理の一例を示すフローチャートである。
まず、レイアウト編集部は、図22に示す記事情報テーブル2203から、レイアウト対象のページについて、ページ内の記事数、すなわち、ブロックデータ数を算出する(ステップ2101)。
【0137】
次に、レイアウト編集部は、対象ページ内のブロックデータ数が複数か否かを判定する(ステップ2102)。
ステップ2102にて、対象ページ内のブロックデータ数が複数有る場合、レイアウト編集部は、図22に示す記事情報テーブル2203から、記事データ毎に、各ブロックデータを順次参照する。そして、レイアウト編集部は、データ配置領域Tに配置する各ブロックデータの外側を包囲する包絡線を元に、図18に示すように、複数のブロックデータの外周の包絡線に沿わせて記事識別補助線1801を描画する(ステップ2103、ステップ2104)。
【0138】
次に、ステップ2105にて、記事データが有る場合、レイアウト編集部は、次の記事データを対象として処理を繰り返す。
図18に示すように、記事データを構成するブロックデータの外周に記事識別補助線1801を描画することによって、多様な形状と大きさの記事データを合成印刷させた場合でも、一目で記事データを判別できる。さらに、記事データを構成する複数のブロックデータにより、内容を読み取ることができる。また、ブロックデータ毎に、データを拡大することもないので、印刷ページ内の無駄な空白の発生を抑制でき、可読性を向上することができる。
【0139】
(第3の実施形態)
実施形態2では、記事データ同士を、一目で区別するために記事識別補助線1801を描画する手順について説明したが、インパクトの点で改良の余地がある。
【0140】
そこで、この実施形態では、記事データ同士の境界及び野に記事データの周囲にそれぞれ区別可能な背景を設けることによって、記事データ同士を明確に区別する。
すなわち、第2実施形態では、補助線付加処理1915に代えて、背景付加処理を設ける。他の構成は、第2実施形態と同じであるので、同一構成部については、同一符号を付し、説明を省略する。
【0141】
図24は、この背景付加処理のフローチャートである。
まず、レイアウト編集部は背景付加手段として機能し、ステップ2314で抽出した記事データのブロックデータの背景に、記事識別のための背景を描画する(ステップ2315)。レイアウト編集部は、記事情報テーブル2203から、対象ページ内の記事データ数を算出する(ステップ2401)。
【0142】
次に、レイアウト編集部は、対象ページ内の記事数が複数か否かを判定する(ステップ2402)。
ステップ2402にて、対象ページ内の記事数が複数有る場合、レイアウト編集部は、印刷に用いるプリンタの種類がカラー機種か否かを判定する(ステップ2403)。
【0143】
ステップ2403にて、印刷に使用するプリンタ145の種類がカラー機種の場合、レイアウト編集部は、例えば、図25に示す背景テーブルから背景番号iの「色」背景を選出する(ステップ2404)。この時、背景番号iは、記事を順次参照するとともに加算されるカウンターの値である。
【0144】
次に、レイアウト編集部は、記事情報テーブル2203のテキスト記事データ、非テキスト記事データ、テキストのみの記事データ等の記事データグループブロックID等を参照し、背景を描画すべき記事データを選択する(ステップ2405)。
次に、レイアウト編集部は、選択した記事データの抽出線分を元に、背景を描画する記事領域の境界(以下、背景描画境界という)を決定する(ステップ2406)。
【0145】
次に、レイアウト編集部は、図26に示すように、背景描画境界とブロックデータとの間に、ステップ2404で選択した「色」の背景を描画する(ステップ2407)。
レイアウト編集部は、上記の処理を、残記事がなくなるまで繰り返すことで、記事識別のための背景を描画する。
【0146】
ステップ2403にて、プリンタ種類がモノクロ機の場合、レイアウト編集部は、図25に示す如き、背景テーブルから背景番号iの「模様」背景を選出する(ステップ2409)。この時、背景番号iは、記事を順次参照するとともに加算されるカウンターの値である。
【0147】
次に、レイアウト編集部は、記事情報テーブル2203から、カラー機の場合と同様に各記事データを順次参照し、背景を描画する記事を選択する(ステップ2410)。
次に、レイアウト編集部は、選択した記事データの抽出線分を元に、背景を描画する記事領域の境界を決定する(ステップ2411)。
【0148】
次に、レイアウト編集部は、図27に示すように、背景描画境界とブロックデータとの間に、ステップ2404で選択した「模様」を背景として描画する(ステップ2412)。
レイアウト編集部は、上記の処理を残記事がなくなるまで繰り返すことで、記事データ同士、すなわち、記事データ間、記事データを構成している複数のブロックデータ間の識別のための背景を描画する。
【0149】
このように記事データ同士を識別するために背景2601、2603、2604を描画することによって、多様な形状と大きさの記事データを合成印刷した場合でも、ページ内の無駄な空白の発生を抑制しつつ、記事データの可読性を向上することができる。また、モノクロ印刷の場合でも、模様の異なる背景2701、2703、2703、2704にてカラー印刷の場合と同様に記事データ同士を識別することができる。
【0150】
(第4の実施形態)
実施形態2、実施形態3では、仮想的にブロックデータを結合して新たな記事領域を生成し、記事データ同士を、補助線や色彩、模様の異なる背景で識別する説明をした。このようにすると所定の識別が得られるものの、印刷のためのインクの消耗度が増加し、印刷コストが大きくなるという課題がある。
そこで、本実施の形態では、印刷コストを低減し、記事データ同士の識別性を改善する。
【0151】
図28は、本実施形態の主フローチャートである。
ステップ2811の配置処理の後、残領域が無い場合、配置位置情報テーブル2202が完成しており、レイアウト編集部はブロックデータ同士を結合するブロック統合化処理手段として機能し、ブロック統合化処理を行う(ステップ2814)。
まず、レイアウト編集部は、ブロック統合化処理の第1の統合処理として、同一の記事データに属するブロックデータを、本文行方向に沿った方向に探索して統合する。
【0152】
図29は、本実施形態のブロック統合化処理の第1の統合処理のフローチャートである。
まず、レイアウト編集部は、配置位置情報テーブル2202において、各ブロックデータの処置フラグを一旦”未処置”に初期化する(ステップ2901)。
次に、レイアウト編集部は、配置位置情報テーブル2202のブロックデータを順次参照する(ステップ2902)。
【0153】
ステップ2903にて、参照するブロックデータがある場合、レイアウト編集部は、配置位置情報テーブル2202から、参照すべきブロックデータが未処置か否かを判定する(ステップ2904)。
ステップ2904にて、参照ブロックが未処置である場合、レイアウト編集部は、そのブロックデータがテキストデータか否かを判定する(ステップ2905)。
【0154】
ステップ2905にて、参照ブロックがテキストデータである場合、レイアウト編集部は、参照したブロックデータを第1次統合化処理の基準ブロックとする(ステップ2906)。
ステップ2904の判定で、参照したブロックデータが非テキストである場合、配置位置情報テーブル2202の処置フラグに、フラグとして”済み”を記録する(ステップ2919)。
【0155】
次に、レイアウト編集部は、基準ブロックのデータが横書きか否かを判定する。(ステップ2907)
ステップ2907にて、基準ブロックが横書きである場合、レイアウト編集部は第1ブロックデータ抽出手段として機能する。そして、レイアウト編集部は、基準ブロックの横並び方向、すなわち、本文方向に沿った方向に探索して同一の記事データに属するブロックデータを、配置位置情報テーブル(図22、2202)から抽出する(ステップ2908)。
【0156】
次に、レイアウト編集部は仮想領域生成手段として機能し、抽出したブロックデータの各配置位置を仮想的に結合して仮想領域を生成する(ステップ2909)。
次に、レイアウト編集部は、生成した仮想領域の幅を抽出する(ステップ2910)。
次に、レイアウト編集部は文字列再構築手段として機能し、仮想領域内に含まれるブロックデータ内の文字列(文字画像)、抽出した仮想領域の幅に合わせて再配置する(ステップ2911)。
【0157】
また、ステップ2907にて、基準ブロックのデータが縦書きである場合、レイアウト編集部は第1ブロックデータ抽出手段として機能する。そして、レイアウト編集部は、基準ブロックの縦並び方向に存在する同一の記事データに属するブロックデータ(テキストデータ)を、配置位置情報テーブル2202から抽出する(ステップ2912)。
【0158】
次に、レイアウト編集部は、抽出したブロックデータの各配置位置を仮想的に結合して仮想領域を生成する(ステップ2913)。
次に、レイアウト編集部は、生成した仮想領域の高さを抽出する(ステップ2914)。
【0159】
次に、レイアウト編集部は文字列再構築手段として機能し、仮想領域に含まれるブロックデータ内の文字データを、抽出した仮想領域の高さに合わせて再配置する(ステップ2915)。
次に、レイアウト編集部は、テキストデータを再配置した仮想領域を、新たなテキストブロックデータとしてハードディスクドライブ140等の記憶装置139に保存する。そして、レイアウト編集部は、図31に示す記事情報テーブル3101および配置位置情報テーブル3102の情報を更新する(ステップ2016)。
【0160】
次に、レイアウト編集部はブロックデータ置き換え手段として機能し、配置位置情報テーブル3102を元に、新たなテキストデータのブロックデータ(テキストデータ)を、既存のブロックデータに置き換える(ステップ2917)。
次に、レイアウト編集部は、テキストデータの再配置が終了している統合済みブロックデータを使用済みのブロックデータとして配置位置情報テーブル(図31、3102)の処置フラグにフラグとして”済み”を記録する(ステップ2918)。
【0161】
上記のようにして、レイアウト編集部は、第1のブロックデータ抽出手段、仮想領域生成手段、ブロック置き換え手段からなる第1の統合手段の第1の統合処理として、同じ記事データに属するブロックデータを本文行方向に沿った方向に探索して統合化する。
次に、レイアウト編集部は、第2ブロックデータ抽出手段、情報統合手段として機能することにより、ブロック統合化処理の第2の統合処理として、第1の統合処理で統合したブロックデータ同士や図形ブロックを統合する。
【0162】
図30は、本実施形態のブロック統合化処理の第2の統合処理のフローチャートである。
まず、レイアウト編集部は、図31に示す配置位置情報テーブル3102において、各ブロックデータの処置フラグを一旦”未処置”のフラグに初期化する(ステップ3001)。
次に、レイアウト編集部は、配置位置情報テーブル3102のブロックデータを順次参照する(ステップ3002)。
【0163】
ステップ3003にて、参照するブロックデータがある場合、レイアウト編集部は、配置位置情報テーブル3102から、参照するブロックデータが未処置か否かを判定する(ステップ3004)。
ステップ3004にて、参照するブロックデータのフラグが未処置である場合、レイアウト編集部は、参照するブロックデータを第2次統合化処理の基準ブロックとする(ステップ3005)。
【0164】
次に、レイアウト編集部は第2ブロックデータ抽出手段として機能し、基準ブロックと同一の記事データに属するブロックデータを、図31に示す配置位置情報テーブル3102から抽出する(ステップ3006)。
このときの抽出対象とするブロックデータは、第1次統合処理と異なり、テキストデータ以外のブロックデータも含まれるものとする。
【0165】
また、統合する方向も、本文行方向と逆方向のブロックデータも対象とする。
次に、レイアウト編集部は情報統合手段として機能する。そして、レイアウト編集部は、抽出したブロックデータの情報と、基準ブロックの情報を統合し、図32に示す配置位置情報テーブル3202および記事情報テーブル3201のブロックIDや、ページ内配置位置等を更新する(ステップ3007)。
次に、レイアウト編集部は、基準ブロックと統合が済んでいるブロックデータを使用済みのブロックデータとして配置位置情報テーブル3202の処置フラグにフラグとして”済み”を記録する(ステップ3008)。
【0166】
上記の様にして、レイアウト編集部は、ブロック統合化処理の第2の統合処理として、第1の統合処理で統合したブロック同士や 図形ブロックを統合する。
【0167】
図33は、実施形態4に係るレイアウト処理プログラムによって印刷した印刷ページである。
このように、記事データ3301、3302、3303は、多様な形状と大きさであるが、印刷ページ内の無駄な空白の発生を抑制しつつ、印刷ページに印刷したテキスト、及び非テキストの可読性を向上することが可能になる。また、図33に示すように、実施の形態2で説明したように、印刷データ同士を区別する補助線を設けると、より、明確になる。また、テキスト記事データと非テキストデータとからなる記事データを統括すると、可読性が一層、向上する。また、印刷コストも実施形態3に比べて大幅に向上する。
(他の実施形態)
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録したコンピュータ可読の記憶媒体を、システムあるいは装置に供給することによっても、達成されることは言うまでもない。また、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたコンピュータプログラムを読出し実行することによっても、達成されることは言うまでもない。 この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。 プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータプログラムが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される。また、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0168】
【図1】本発明の実施形態1に係る文書画像レイアウト装置のシステム図である。
【図2】本発明の実施形態1に係るレイアウト処理プログラムの主フローチャートである。
【図3】本発明の実施形態1に係るレイアウト処理プログラムの配置順決定処理のフローチャートである。
【図4】本発明の実施形態1に係るレイアウト処理プログラムのはみ出し検知処理のフローチャートである。
【図5】本発明の実施形態1に係るレイアウト処理プログラムのブロック分割処理のフローチャートである。
【図6】テンプレートの一例を示す解説図である。
【図7】本発明の実施形態1に係るレイアウト処理プログラムの配置位置決定処理のフローチャートである。
【図8】本発明の実施形態1に係るレイアウト処理プログラムのテキスト領域用サイズ調整処理のフローチャートである。
【図9】本発明の実施形態1に係るレイアウト処理プログラムの非テキスト領域用サイズ調整処理のフローチャートの一例を示す解説図である。
【図10】テンプレートテーブルの一例を示す解説図である。
【図11】本発明の実施形態1に係り、スキャンデータから切り出した記事データの一例を示す解説図である。
【図12】本発明の実施形態1に係る領域分割処理の一例を示す解説図である。
【図13】本発明の実施形態1に係る重心座標抽出の一例を示す解説図である。
【図14】本発明の実施形態1に係る記事情報テーブルおよび配置位置情報テーブルの例である。
【図15】本発明の実施形態1に係るはみ出し検知の一例を示す解説図である。
【図16】本発明の実施形態1に係るブロック分割処理の一例を示す解説図である。
【図17】本発明の実施形態1に係るテンプレート拡大の一例を示す解説図である。
【図18】本発明の実施形態2に係る記事識別補助線の描画の一例を示す解説図である。
【図19】本発明の実施形態2に係るレイアウト処理プログラムの主フローチャートである。
【図20】本発明の実施形態2に係るレイアウト処理プログラムのグループ化処理のフローチャートである。
【図21】本発明の実施形態2に係るレイアウト処理プログラムの記事識別補助線付加処理のフローチャートである。
【図22】本発明の実施形態2に係る記事情報テーブルおよび配置位置情報テーブルの一例を示す解説図である。
【図23】本発明の実施形態3に係るレイアウト処理プログラムの主フローチャートである。
【図24】本発明の実施形態3に係るレイアウト処理プログラムの記事識別背景付加処理のフローチャートである。
【図25】本発明の実施形態3に係る背景テーブルの一例を示す解説図である。
【図26】本発明の実施形態3に係る「色」を背景とした記事識別背景描画の一例を示す解説図である。
【図27】本発明の実施形態3に係る「模様」を背景とした記事識別背景描画の一例を示す解説図である。
【図28】本発明の実施形態4に係るレイアウト処理プログラムの主フローチャートである。
【図29】本発明の実施形態4に係るレイアウト処理プログラムのブロック統合化処理の第1の統合処理のフローチャートである。
【図30】本発明の実施形態4に係るレイアウト処理プログラムのブロック統合化処理の第2の統合処理のフローチャートである。
【図31】本発明の実施形態4に係る記事情報テーブルおよび配置位置情報テーブルの一例を示す解説図である。
【図32】本発明の実施形態4に係る更新後の記事情報テーブルおよび配置位置情報テーブルの一例を示す解説図である。
【図33】本発明の実施形態4に係るブロック統合化処理後のページレイアウトの例である。
【図34】本発明の実施形態4に係るページレイアウトの一例を示す解説図である。
【図35】従来のページレイアウトの一例を示す解説図である。
【符号の説明】
【0169】
T データ配置領域
TP テンプレート
135 CPU
136 メモリユニット
143 I/インタフェース

【特許請求の範囲】
【請求項1】
印刷データの配置位置を特定するための複数のデータ配置領域を有するテンプレートを備え、複数の印刷データを前記テンプレートのデータ配置領域にそれぞれ配置して印刷する文書画像レイアウト装置であって、
データ配置領域に対する印刷データのはみ出しを判定するはみ出し判定手段と、
印刷データのテキスト、非テキストの属性を判定する属性判定手段と、
前記属性判定手段により印刷データがテキストデータと判定され、かつ、前記判定手段により前記印刷データが前記データ配置領域をはみ出すと判定された場合に、隣接する少なくとも2つ以上のデータ配置領域を一つのデータ配置領域とみなして、テキストデータをこれらデータ配置領域に配置可能な複数のブロックデータに分割する分割手段と、
複数のデータ配置領域に対する複数のブロックデータの分割処理後の配置順を、分割処理前のテキストデータの配置順に基づいて決定する配置順決定手段と、
を有する文書画像レイアウト装置。
【請求項2】
前記分割手段により分割されたテキストデータ及び非テキストデータを前記複数のデータ配置領域に配置する配置順を、分割処理前の印刷データ内での配置順に基づいて決定する印刷データ内配置順決定手段と、
を有する請求項1記載の文書画像レイアウト装置。
【請求項3】
前記配置順決定手段が、
前記テキストデータ及び非テキストデータを分割した後の配置順を、各データの分割前の印刷データにおける前記テキストデータ及び非テキストデータの重心座標に基づいて決定する請求項2記載の文書画像レイアウト装置。
【請求項4】
前記はみ出し判定手段が、
水平方向のはみ出しを判定する、水平方向はみ出し判定手段と、
水平方向のはみ出し量を検知する、水平方向はみ出し量検知手段と、
水平方向のはみ出し比を算出する、水平方向はみ出し比算出手段と、
垂直方向のはみ出しを判定する、垂直方向はみ出し判定手段と、
垂直方向のはみ出し量を検知する、垂直方向はみ出し量検知手段と、
垂直方向のはみ出し比を算出する、垂直方向はみ出し比算出手段と、
を有する請求項1〜3いずれか1項に記載の文書画像レイアウト装置。
【請求項5】
前記分割手段が、
前記テキストデータのテキスト行矩形を抽出する、テキスト行矩形抽出手段と、
前記テキストデータの文字矩形を抽出する、文字矩形抽出手段と、
前記はみ出し比に基づいて前記テキストデータの行分割位置を決定する、行分割位置決定手段と、
前記行分割位置に従って、前記テキストデータを分割する、行分割手段と、
前記行分割手段により分割された各テキストデータを、それぞれ前記データ配置領域に配置するブロックデータとして並べ直すデータ再構築手段と、
を有する請求項1〜3いずれか1項に記載の文書画像レイアウト装置。
【請求項6】
前記配置順決定手段が、
前記テキストデータの本文行方向に応じて、本文方向の最初のブロックデータを複数のデータ配置領域のうち、所定のデータ配置領域に配置する、第1のブロック配置処理手段と、
前記テキストデータの本文行方向に応じて、前記テキストデータの他のブロックデータを隣接させて配置するための、前記テンプレート上のデータ配置領域の空きを探索する、探索手段と、
前記テキストデータの本文行方向に応じて、前記テンプレート上の前記データ配置領域の空きの探索範囲を次ページに拡大する、探索範囲拡大手段と、
を有する請求項1〜5いずれか1項に記載の文書画像レイアウト装置。
【請求項7】
同一のテキストデータに属するブロックデータを選択して、グループ領域を生成し、グループ領域の外周線分を抽出する、グループ化手段と、
該グループ化手段によって得られた外周線分を用いて、同一のテキストデータに属するブロックデータの外周に識別のための補助線を描画する、補助線付加手段と、
を有する請求項1〜6いずれか1項に記載の文書画像レイアウト装置。
【請求項8】
同一のテキストデータに属するブロックデータを選択して、グループ領域を生成し、グループ領域の外周線分を抽出する、グループ化手段と、
該グループ化手段によって得られた外周線分を用いて、同一のテキストデータに属するブロックデータの背景に、識別のための背景を描画する、背景付加手段と、
を有する請求項1〜7いずれか1項に記載の文書画像レイアウト装置。
【請求項9】
同一のテキストデータに属するブロックデータを選択して、これらブロックデータを結合する、ブロック統合化処理手段を、
有する請求項1〜8いずれか1項に記載の文書画像レイアウト装置。
【請求項10】
前記ブロック統合化処理手段が、
同一のテキストデータに属するブロックデータを、その本文行方向に沿った方向に探索して抽出する、第1ブロックデータ抽出手段と、
抽出したブロックデータを前記データ配置領域に配置するための仮想領域を生成する、仮想領域生成手段と、
前記ブロックデータの本文行方向に応じて、前記仮想領域内の文字列を再構築する、文字列再構築手段と、
再構築した文字列を用いて、前記データ配置領域に配置するブロックデータを置き換える、ブロック置き換え手段と、
を有する、第1の統合手段と
前記第1の統合手段で置き換えたブロックデータと同一の記事に属する他のブロックデータを、本文行方向に沿って探索し抽出する、第2ブロックデータ抽出手段と、
第1の統合手段で置き換えたブロックデータと第2ブロックデータ抽出手段で抽出したブロックデータとを統合する、情報統合手段と、
を有する請求項9記載の文書画像レイアウト装置。
【請求項11】
印刷データの配置位置を特定するための複数のデータ配置領域を有するテンプレートを備え、複数の印刷データを前記テンプレートのデータ配置領域にそれぞれ配置して印刷する文書画像レイアウト方法であって、
データ配置領域に対する印刷データのはみ出しを判定するはみ出し判定工程と、
印刷データのテキスト、非テキストの属性を判定する属性判定工程と、
前記属性判定工程により印刷データがテキストデータと判定され、かつ、前記判定工程により前記印刷データが前記データ配置領域をはみ出すと判定された場合に、隣接する少なくとも2つ以上のデータ配置領域を一つのデータ配置領域とみなして、テキストデータをこれらデータ配置領域に配置可能な複数のブロックデータに分割する分割工程と、
複数のデータ配置領域に対する複数のブロックデータの分割処理後の配置順を、分割処理前のテキストデータの配置順に基づいて決定する配置順決定工程と、
を有する文書画像レイアウト方法。
【請求項12】
コンピュータを、請求項1から10のいずれかに記載の文書画像レイアウト装置として機能させるためのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図26】
image rotate


【公開番号】特開2010−123002(P2010−123002A)
【公開日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願番号】特願2008−297244(P2008−297244)
【出願日】平成20年11月20日(2008.11.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】