以下、本発明の実施の形態を図面を参照して詳細に説明する。
図1は、本発明の実施の形態に係る文書編集装置の機能構成を示す図である。
図1において、文書編集装置101は、例えば、PC(Personal Computer)やWS(Work Station)等の情報処理装置から成る。文書編集装置101は、文書の編集処理を行うための機能構成要素として、レイアウト編集部10と、レイアウト管理部20と、データ受付部30と、文書情報生成部40と、レイアウト変更候補算出部50と、文書情報管理部60とを備える。
レイアウト編集部10は、文書編集装置101を使用するユーザからの操作指示に基づき、コンテナの作成、変更方法等が定義されたレイアウト情報を作成する機能を有する。コンテナは、文書のページ上にテキスト情報、画像情報、表情報などのコンテンツを仮想的に配置するために設けられたデータ配置領域である。
レイアウト管理部20は、レイアウト編集部10の機能によって作成されたレイアウト情報の編集要求を受け付けたり、当該レイアウト情報を保存・管理する機能を有する。
データ受付部30は、ユーザからの操作指示に基づき、レイアウト情報に対してコンテンツの配置処理を行うための情報が記載されたタグ付きテキストを指定する機能を有する。タグ付きテキストは、XML(eXtensible Markup Language)文書のような構成を有し、作成されたレイアウト情報に流し込むためのコンテンツ(テキスト、画像、表)が記載されている。なお、レイアウト情報に対して配置処理を行うコンテンツについては、例えば、レイアウト情報のデータ配置領域に属性データとして、当該データ領域に配置するデータを特定する情報(例えばコンテンツが含まれるファイルへのパス情報)を設定しても勿論よい。
文書情報生成部40は、レイアウト情報に定義されているコンテナに対して、タグ付きテキストで示されるコンテンツを、該タグ付きテキストに定義されたコンテンツのコンテナへの配置を行うための情報及びレイアウト情報に定義された前記コンテナへのコンテンツの配置条件に応じて配置処理し、文書情報を生成する機能を有する。
レイアウト変更候補算出部50は、文書情報生成部40の機能により実行される処理において、コンテナの配置処理が適切に行われないと判断した場合に、代替となるレイアウト情報を算出する機能を有する。文書情報管理部60は、文書情報生成部40の機能により生成された文書情報を保存・管理する機能を有する。
図2は、図1の文書編集装置101のハードウェア構成を示すブロック図である。
図2において、文書編集装置101は、CPU(Central Processing Unit)201と、RAM(Random Access Memory)202と、ROM(Read Only Memory)203と、HDD(Hard Disk Drive)204と、ネットワークI/F(Interface)205と、記録媒体ドライブ206と、キーボード207と、ポインティングデバイス208と、ビデオI/F(Interface)209と、ディスプレイ装置210と、外部機器I/F(Interface)211と、システムバス212とを備える。
CPU201は、RAM202又はROM203に格納されているプログラムやデータを用いて、文書編集装置101全体の制御を行うと共に、後述する各種処理を実行する。
RAM202は、CPU201によりHDD204からロードされるプログラムやデータを一時的に記憶するための記憶装置であり、CPU201が後述する各種処理を実行する際に使用するワークエリアを備える。ROM203は、文書編集装置101のブートプログラムやBIOS等を記憶する。
HDD204は、CPU201がOS(Operating System)や後述する各種処理を実行し、文書編集装置101を機能させるためのプログラムやデータを格納する。これらのプログラムやデータは、CPU201の制御により必要に応じてRAM202に読み出され実行されることになる。
ネットワークI/F205は、文書編集装置101を不図示のLAN(Local Area Network)等のネットワークに接続するためのものである。例えば、文書編集装置101は、ネットワークI/F205を介してLANに接続し、該LAN上のコンピュータやネットワーク機器等とデータ通信を行うことが可能である。
記録媒体ドライブ206は、CPU201からの指示に基づき、例えば、CD−ROM、CD−R/RW、DVD−ROM、DVD±R/RW、DVD−RAM等で構成される記録媒体に記録されているデータを読み取ることが可能である。また、前述の記録媒体のうち、書き込み可能な記録媒体に対して、データの書き込みを行うことも可能である。読み取られたデータは、RAM202やHDD204に格納される。キーボード207及びポインティングデバイス208は、ユーザの操作による指示をCPU201に入力することができ、入力部として機能する。
ビデオI/F209は、ディスプレイ装置210に接続され、CPU201とディスプレイ装置201との間のデータの送受信を仲介する。ディスプレイ装置210は、CRT(Cathode Ray Tube)や液晶モニタ等で構成され、ビデオI/F209を介して送られた信号に基づいて文字や画像などを画面上に表示する機能を有する。ビデオI/F209及びディスプレイ装置201は表示部として機能する。
外部機器I/F211は、USBやIEEE1394等で構成され、文書編集装置101に外部の周辺機器を接続するためのポートである。文書編集装置101は、外部機器I/F211を介して周辺機器とのデータの送受信を行うことが可能である。文書編集装置101は、通常、複数の外部機器I/F211を有する。なお、周辺機器との接続形態は有線/無線を問わない。システムバス212は、上述した各部を互いに接続するバスとして機能する。
次に、図1の文書編集装置101における文書編集処理について説明する。
図3は、図2のCPU201により実行される文書編集処理のフローチャートである。
図3において、まずレイアウト編集処理を実行する(ステップS301)。本ステップは、レイアウト編集部10及びレイアウト管理部20の機能により実行され、コンテナの配置や複数のコンテナ間のリンク設定、コンテナ間の優先度設定等が行われる。
次に、ステップS302では、コンテナに配置するデータを取得する。本ステップは、データ受付部30の機能により実行される。取得するデータには、テキストデータ、画像データ、及び表データ等が含まれる。例えば、コンテナにデータを配置するための情報が記載されたタグ付きテキストをユーザが指定し、該指定されたタグ付きテキストを取得する。
次に、ステップS303では、文書作成処理を実行する。本ステップは、文書情報生成部40及びレイアウト変更候補算出部50の機能により実行される。本ステップでは、ステップS302で取得したタグ付きテキストに基づいて、コンテンツデータをコンテナに配置し、該コンテナにデータが適合するか否かを判断する。
次に、ステップS304では、レイアウトの変更が有るか否かを判別する。本ステップは、レイアウト管理部20の機能により実行される。本ステップでは、ステップS303でコンテナにデータが配置された結果、入力部を介してユーザからレイアウト変更の指示が有るか否かをCPU201により判断する。
ステップS304の判別の結果、レイアウトの変更有りと判断した場合には(ステップS304でYES)、ステップS301へ移行して再度レイアウト編集処理を行う。一方、レイアウトの変更無しと判断した場合には(ステップS304でNO)、ステップS305へ進む。
ステップS305では、コンテナに配置したデータに対して修正が有るか否かを判別する。本ステップでは、入力部を介してユーザからタグ付きテキストの修正指示が有るか否かをCPU201により判断する。
ステップS305の判別の結果、データの修正有りと判断した場合には(ステップS305でYES)、ユーザによる入力部からの操作指示に応じてデータの修正処理を行い(ステップS306)、ステップS302へ移行する。一方、データの修正無しと判断した場合には(ステップS305でNO)、ステップS307へ進む。
ステップS307では、ステップS301〜S306の処理により作成された文書をHDD204等に保存する。本ステップは、情報管理部60の機能により実行される。なお、ステップS306でデータの修正処理がなされた場合は修正されたデータを含む文書が保存される。
図4は、図3のステップS301におけるレイアウト編集処理の詳細を示すフローチャートである。
図4において、ステップS401では、まずコンテナの変更を行うか否かを判別する。本ステップでは、編集対象の文書に対して、新たなコンテナの追加や既に配置されているコンテナの削除、移動(配置変更)、及びサイズ変更等の操作指示が入力部を介してユーザから行われたか否かを判断する。対象となるコンテナには、少なくとも「文字枠」、「画像枠」、及び「表枠」が含まれる。
ステップS401の判別の結果、コンテナの変更を行わないと判断した場合には(ステップS401でNO)、ステップS403へ進む一方、コンテナの変更を行うと判断した場合には(ステップS401でYES)、ステップS402へ進む。
ステップS402では、コンテナの変更処理を行う。本ステップでは、ユーザによる入力部からの操作指示に応じて、コンテナの追加、削除、移動、及びサイズ変更等を行う。その際、少なくともコンテナの配置及びサイズが設定される。コンテナが新たに追加された場合には、追加されたコンテナの識別情報と当該コンテナに配置されるデータ種別が少なくとも設定される。
ステップS403では、コンテナの詳細設定を行うか否かを判別する。本ステップでは、コンテナに対して詳細設定を行う操作指示が入力部を介してユーザから行われたか否かを判断する。
ステップS403の判別の結果、コンテナの詳細設定を行わないと判断した場合には(ステップS403でNO)、ステップS409へ進む。一方、コンテナの詳細設定を行うと判断した場合には(ステップS403でYES)、ステップS404へ進む。
ステップS404では、詳細設定の対象となるコンテナが選択される。次に、ステップS405では、ステップS404で選択されたコンテナに配置するデータの種別を判別する。本ステップでは、データ種別として、テキスト(文字)データ、画像データ、及び表データを判別する。
ステップS404の判別の結果、選択されたコンテナに配置するデータの種別が「テキスト(文字)」の場合は、ステップS406へ進み、文字枠の詳細設定処理を行う。一方、データの種別が「画像」の場合は、ステップS407へ進み、画像枠の詳細設定処理を行う。更に、データの種別が「表」の場合は、ステップS408へ進み、表枠の詳細設定処理を行う。
次に、ステップS409では、コンテナ間の相互接続(リンク)設定を行うか否かを判別する。本ステップでは、レイアウト上のコンテナ間のリンク、優先度等を設定する操作指示が入力部を介してユーザから行われたか否かを判断する。
ステップS409の判別の結果、コンテナ間のリンク設定を行わないときは、ステップS411へ進む一方、コンテナ間のリンク設定を行うときは、ステップS410へ進む。
ステップS410では、コンテナ間のリンク設定処理を行う。本ステップでは、コンテナ間のリンク及び優先度、コンテナの配置制約、コンテナのサイズ制約等の設定を行う。コンテナの配置制約としては、コンテナ間の距離、上辺を揃える、左辺を揃える、中心を揃える等が含まれる。コンテナのサイズ制約としては、高さを揃える、サイズを揃える、サイズの比率を一定にする等が含まれる。
次に、ステップS411では、終了指示が有るか否かを判別する。本ステップでは、入力部からユーザによる終了指示が有るか否かを判断する。この判別の結果、終了指示が無いときは(ステップS411でNO)、ステップS401へ戻る。一方、終了指示が有ったときは(ステップS411でYES)、本処理を終了する。本処理により、文書の紙面上に配置されたコンテナの配置例を図13に示す。
図13において、コンテナ130a,130b,130c,130d,130eは、テキストデータが配置される紙面上の文字枠である。コンテナ131は、画像データが配置される紙面上の画像枠である。コンテナ132a,132bは、表データが配置される紙面上の表枠である。
コンテナ130aとコンテナ130b、コンテナ130bとコンテナ130cは、上記コンテナ間のリンク設定処理により関連付けられている。同様に、コンテナ132aとコンテナ132bとは、上記コンテナ間のリンク設定処理により関連付けられている。
図5は、図4のステップS406におけるテキスト枠(テキスト(文字)用コンテナ)詳細設定処理の詳細を示すフローチャートである。
図5において、ステップS501では、組み方向の設定を行う。本ステップでは、ユーザによる入力部からの操作指示に応じて、テキスト用コンテナに配置されるテキストデータを縦組みにするか横組みにするかを設定する。
次に、ステップS502では、フォント情報の設定を行う。本ステップでは、ユーザによる入力部からの操作指示に応じて、テキスト用コンテナに配置されるテキストデータのフォントの種類、サイズ、色等を設定する。なお、この設定についてはタグ付きテキストに定義しても勿論よい。
次に、ステップS503では、ルビについての情報の設定を行う。本ステップでは、テキスト用コンテナに配置されるテキストデータのルビについて、ユーザによる入力部からの操作指示に応じて、フォントの種類、サイズ等を設定する。なお、これらの設定に限らず、配置する行数、その行に配置される文字数、行間設定等を行うことも可能である。
また、コンテナが移動されて印刷不可領域にかかってしまった場合に、当該コンテナのサイズを変更するか、移動を許すか等の設定も行うことが可能である。
次に、ステップS504では、リンク先コンテナの設定を行うか否かを判別する。本ステップでは、ユーザによる入力部からの操作指示に応じて、対象のコンテナに対してリンク先のコンテナを設定するか否かの判断を行う。リンク先コンテナとは、対象のコンテナにデータを配置する際に、予め設定されたコンテナにデータが収まらなかった分のデータを続けて配置するコンテナであり、リンク設定がされている複数のコンテナは同一の属性を持つコンテナ群として機能する。リンク先コンテナは、同一ページ上に少なくとも1つ設定することができ、他のページに設定することも可能である。
ステップS504の判別の結果、リンク先コンテナの設定を行わない場合は(ステップS504でNO)、ステップS506へ進む。一方、リンク先コンテナの設定を行う場合は(ステップS504でYES)、ステップS505へ進む。
ステップS505では、リンク先コンテナの設定処理を行う。本ステップでは、新たにコンテナを作成し、作成されたコンテナをリンク先コンテナとして設定する。なお、既に作成されているコンテナをリンク先コンテナとして設定する場合には新たにコンテナを作成しない。そして、上記ステップS501からステップS503で対象のコンテナに対して行われた各種設定は、リンク先として設定されたリンク先コンテナにも引き継がれる。なお、これに限らず、1つ1つのコンテナについてデータ配置条件を変えるような設定を行うことも勿論可能である。
ステップS506では、配置対象のテキストデータが、予め設定されたコンテナ内に収まらなかった場合に行う処理の設定を行う。本実施の形態では、予め文書のレイアウト設定を行い、その後、当該文書にテキストデータを流し込む形で文書の編集を行うため、当初設定したレイアウトに収まり切れない場合が発生する。そのような事態に対処するため、予め配置対象のコンテナにテキストデータが収まらなかった場合に行う処理を設定しておく。設定可能な項目としては、コンテナ・サイズの拡大、拡大する場合には拡大する方向、フォントサイズの変更、エラー通知を行う、何もしない等が含まれる。なお、コンテナ・サイズを拡大する場合は、拡大可能サイズの上限を設定することが可能である。これらの設定が行われた後にリターンする。
図6は、図4のステップS407における画像枠(画像用コンテナ)詳細設定処理の詳細を示すフローチャートである。
図6において、ステップS601では、配置対象の画像データが、予め設定されたコンテナ内に収まらなかった場合に行う処理の設定を行う。設定可能な項目としては、コンテナを画像データに揃える、画像データをコンテナ・サイズに合わせてトリミングする、画像データをコンテナに収まるよう縮小する等が含まれる。設定が行われた後にリターンする。
図7は、図4のステップS408における表枠(表用コンテナ)詳細設定処理の詳細を示すフローチャートである。
図7において、ステップS700では、組み方向の設定を行う。本ステップでは、ユーザによる入力部からの操作指示に応じて、表用コンテナに配置されるテキストデータを縦組みにするか横組みにするかを設定する。
次に、ステップS701では、表の行数・列数の設定を行う。本ステップでは、ユーザによる入力部からの操作指示に応じて、表用コンテナに配置される表データの行数や列数を設定する。また、行の高さ制限や列の幅制限及び見出しとして固定する行数・列数の設定等を行うことが可能である。
次に、ステップS702では、フォント情報の設定を行う。本ステップでは、表用コンテナに配置される表データ上のテキストのフォントの種類、サイズ、色等を設定する。なお、この設定についてはタグ付きテキストに定義しても勿論よい。また、コンテナの移動により印刷不可領域にかかってしまった場合、当該コンテナのサイズを変更するか、移動を許すか等の設定も行うことが可能である。
次に、ステップS703では、リンク先コンテナの設定を行うか否かを判別する。本ステップでは、図5のステップS504と同様に、ユーザによる入力部からの操作指示に応じて、対象のコンテナに対してリンク先のコンテナを設定するか否かの判断を行う。
ステップS703の判別の結果、リンク先コンテナの設定を行わない場合は(ステップS703でNO)、ステップS705へ進む。一方、リンク先コンテナの設定を行う場合は(ステップS703でYES)、ステップS704へ進む。
ステップS704では、リンク先コンテナの設定処理を行う。本ステップでは、新たにコンテナを作成し、作成されたコンテナをリンク先コンテナとして設定する。なお、既に作成されているコンテナをリンク先コンテナとして設定する場合には新たにコンテナを作成しない。そして、上記ステップS701,S702で対象のコンテナに対して行われた各種設定は、リンク先として設定されたリンク先コンテナにも引き継がれる。行数、列数については、優先されるものの設定が引き継がれる。例えば、表が横組みの場合には、列数の設定は引き継がれるが、行数の設定は必ずしも引き継がれなくてもよい。
ステップS705では、配置対象の表データが、予め設定されたコンテナ内に収まらなかった場合に行う処理の設定を行う。本実施の形態では、予め文書のレイアウト設定を行い、その後、当該文書に表データを流し込む形で文書の編集を行うため、当初設定したレイアウトに収まり切れない場合が発生する。そのような事態に対処するために、予め配置対象の表データが収まらなかった場合に行う処理を設定しておく。設定可能な項目としては、コンテナ・サイズの拡大、フォントサイズの変更、画像を表のサイズにあわせる、エラー通知を行う、何もしない等が含まれる。なお、コンテナ・サイズを拡大する場合は、拡大可能サイズの上限を設定することが可能である。これらの設定が行われた後にリターンする。
図8は、図3のステップS303における文書作成処理の詳細を示すフローチャートである。
図8において、まずコンテナへのデータの配置処理を行う(ステップS801)。次に、ステップS802では、配置されたコンテナへの適合化処理を行う。
次に、ステップS803では、ステップS802の適合化処理の結果、コンテナに適合不可コンテナが有るか否かを判別する。適合不可コンテナとは、コンテナに配置すべきデータを適切に配置できなかったコンテナである。
ステップS803の判別の結果、適合不可コンテナが存在しないときは(ステップS803でNO)、そのままリターンする一方、適合不可コンテナが存在するときは(ステップS803でYES)、ステップS804へ進む。
ステップS804では、適合不可コンテナの表示方法を変えて表示を行う。本ステップでは、適合不可コンテナが発生してしまったことや、どのコンテナが適合不可コンテナかをユーザが認識し易いように、適合不可コンテナの表示方法を他のコンテナの表示方法と変えてディスプレイ装置210に表示する。表示装置201に表示する画面の一例を図17に示す。
図17において、表示画面179には、文書をページ単位で一覧表示する第1の画面175と、ページ内のコンテンツを表示する第2の画面176の2画面で構成される。
第1の画面175には、編集中の文書を構成する各紙面がページ単位で表示されており、上記文書編集処理が適切に行えなかった適合不可コンテナを含むページのみが太枠(図示の点線)で囲まれて表示されている。第2の表示画面176には、第1の表示画面175内でポインティングデバイス208等により選択されたページ上の詳細なコンテンツが表示されており、上記文書編集処理が適切に行えなかった適合不可コンテナのみが太枠(図示の一点鎖線)で囲まれて表示されている。これにより、ユーザが適合不可コンテナの存在や該コンテナが存在するページをより認識し易くなり、使い勝手を向上させることができる。
図9は、図8のステップS801におけるデータの配置処理の詳細を示すフローチャートである。
図9において、まず、データの配置処理を行うコンテナを複数のコンテナの中から選択する(ステップS901)。次に、ステップS902では、選択されたコンテナに配置するデータを取得する。本ステップでは、タグ付きテキストを検索し、該コンテナに配置するデータを取得する。
次に、ステップS903では、選択されたコンテナに対してステップS902で取得したデータの配置処理を行う。本ステップでは、取得したデータに対してコンテナのサイズが小さい等の理由で全データがコンテナに配置できない場合もあるが、配置可能なコンテナのみを配置処理する。
次に、ステップS904では、データ配置がOKか否かを判別する。本ステップでは、ステップS902で取得したデータをステップS901で選択したコンテナに配置する際に、コンテナに設定された条件を変更することなくデータの配置処理が可能か否かを判断する。コンテナに設定された条件とは、例えば、コンテナ・サイズ、文字を配置する際のフォントサイズ、コンテナの配置条件等である。
ステップS904の判別の結果、データ配置がOKの場合は(ステップS904でYES)、ステップS907へ進む一方、データの配置できないデータがある場合は(ステップS904でNO)、ステップS905へ進む。
ステップS905では、対象のコンテナにリンク先のコンテナが設定されているか否かを判別する。この判別の結果、リンク先コンテナが設定されていないときは(ステップS905でNO)、ステップS908へ進む一方、リンク先コンテナが設定されている場合は(ステップS905でYES)、対象のコンテナに対して配置可能なデータについて配置処理を行い、該対象のコンテナに配置し切れなかった残りのデータをリンク先コンテナに配置するデータとして設定し(ステップS906)、ステップS907へ進む。
ステップS907では、データの配置処理がなされたコンテナを適合化済みコンテナとして設定する。適合化済みコンテナとは、データの配置処理等の設定が終了したコンテナである。
一方、ステップS908では、配置すべき全てデータの配置を行うことができず、且つ配置できなかったデータの配置対象コンテナとしてのリンク先コンテナが設定されていないコンテナを適合化未処理コンテナとして設定する。適合化未処理コンテナについては、後述する適合化処理においてコンテナのサイズの変更等を行い、データを配置できるように適合化処理が行われる。
次に、ステップS909において、全コンテナについて上記処理が終了したか否かを判別し、終了したときは(ステップS909でYES)、リターンする。
図10〜図12は、図8のステップS802における適合化処理の詳細を示すフローチャートである。
図10において、ステップS1001では、編集中の文書の中に適合化未処理ページが存在するか否かを判別する。適合化未処理ページとは、適合化未処理コンテナが存在するページである。
ステップS1001の判別の結果、適合化未処理ページが存在しないときは(ステップS1001でNO)、図12のステップS1201へ進む一方、存在するときは(ステップS1001でYES)、ステップS1002へ進む。
ステップS1002では、編集中の文書の適合化未処理ページ群の中で先頭ページを選択する。なお、適合化未処理ページが1ページのみであった場合は、当該ページが選択される。
次に、ステップS1003では、当該ページ内に適合化未処理コンテナが存在するか否かを判別する。この判別の結果、当該ページ内に適合化未処理コンテナが存在しないときは(ステップS1003でNO)、ステップS1001へ移行する。そして、他の適合化未処理ページの有無を判別する。一方、当該ページ内に適合化未処理コンテナが未だに存在するときは(ステップS1003でYES)、当該ページ内に存在する適合化未処理コンテナを1つ選択する(ステップS1004)。ここでの選択は、コンテナ間の優先度設定等に応じて行われる。
次に、ステップS1005では、ステップS1004で選択されたコンテナにデータを配置するためにどれぐらいの配置・サイズ変更が必要かを計算する。本ステップでは、図5のステップS506(文字データ)、図6のステップS601(画像データ)、及び図7のステップS705で設定された内容を考慮した形でサイズ計算を行う。
次に、ステップS1006では、ステップS1005におけるサイズ計算の結果、コンテナの配置やサイズの変更が必要であるか否かを判別する。本ステップでは、適合化処理を行っているコンテナに対してデータを配置するために、当該コンテナの設定を変更する必要があるか否かを判断する。
ステップS1006の判別の結果、コンテナの配置やサイズの変更が必要ないときは(ステップS1006でNO)、図11のステップS1101へ進む一方、必要があるときは(ステップSYES1006でYES)、ステップS1007へ進む。
ステップS1007では、当該コンテナに対して配置・サイズ変更処理が可能か否かを判別する。この判断は、図4のステップS410で設定されたコンテナ間のリンク設定等を考慮して行われる。
ステップS1007の判別の結果、当該コンテナの配置・サイズ変更処理が可能でないときは(ステップS1007でNO)、ステップS1009へ進む一方、可能であるときは(ステップSYES1007でYES)、ステップS1008へ進む。
ステップS1008では、当該コンテナの配置・サイズ変更処理を行う。本ステップでは、ステップS1005で算出された配置・サイズに当該コンテナの配置・サイズを変更する。コンテナは、移動やサイズ調整が可能になっている。コンテナのサイズ変更による他のコンテナへの影響の一例を図14、図15(a)、図15(b)、図16(a)、図16(b)に示す。
図14において、画像枠であるコンテナ131のサイズがコンテナ141にサイズ変更された場合、当該コンテナ131の右隣に配置されていた文字枠であるコンテナ130a,130bは、サイズ変更されたコンテナ141と重ならないように、コンテナ140a,140bにサイズ変更される。
また、文字枠であるコンテナ130a,130bに対して、画像枠であるコンテナ131の優先度を高く設定しているので、コンテナ131がサイズ変更された場合は、該サイズ変更に応じてコンテナ130a,130bのサイズも変更される。
図15(a)及び図15(b)において、コンテナ150a,150b,151a,151bは、いずれも表データが配置されたコンテナである。コンテナ150aとコンテナ150b、コンテナ151aとコンテナ151bは、それぞれコンテナ間のリンク設定処理により関連付けられている。
図15(a)のコンテナ150aが図15(b)のコンテナ151aにサイズ変更された場合、コンテナ151aに収まり切れなくなった分の表データがリンク先コンテナに移動し、図15(b)のコンテナ151bに変わる。
図16(a)及び図16(b)において、コンテナ160a,160b,161a,161bは、いずれも表データが配置されたコンテナである。コンテナ160aとコンテナ160b、コンテナ161aとコンテナ161bは、それぞれコンテナ間のリンク設定処理により関連付けられている。
また、コンテナ162は、画像データが配置されたコンテナである。コンテナ162は、コンテナ160a,160b,161a,161bより優先度が高く設定されているものとする。
図16(a)において、ページ163上には、コンテナ160aとコンテナ160bが配置されている。そして、コンテナ162がページ163上に配置された場合は、図16(b)に示すように、コンテナ161aに収まり切れなくなった分の表データがリンク先コンテナに移動することにより、図16(b)のコンテナ161bに変わる。
図10に戻り、ステップS1009では、配置可能なデータのみについてデータの配置処理を行う。次に、ステップS1010では、当該コンテナを適合不可コンテナとして設定して、図11のステップS1011へ移行する。
図11において、ステップS1101では、適合化処理を実行しているコンテナに対して、配置対象となるデータの配置処理を行う。次に、ステップS1102では、データの配置がOKか否かを判別する。本ステップでは、ステップS1101におけるデータの配置処理でデータを適切に配置処理できたか否かを判断する。
ステップS1102の判別の結果、データの配置がOKであるときは(ステップS1102でYES)、ステップS1106へ進む一方、そうでないときは(ステップS1102でNO)、ステップS1103へ進む。
ステップS1103では、当該コンテナにリンク先コンテナの設定が有るか否かを判別する。この判別の結果、リンク先コンテナの設定が無いときは(ステップS1103でNO)、図10のステップS1010へ移行する一方、設定が有るときは(ステップS1103でYES)、ステップS1104へ進む。
ステップS1104では、ステップS1101で配置処理し切れなかったデータをリンク先コンテナへ配置するデータとして設定する。
次に、ステップS1105では、リンク先コンテナを適合化未処理コンテナに設定する。これは、リンク先コンテナに対して適合化処理を行わせるためであり、リンク先コンテナを適合化未処理コンテナとして設定する。
次に、ステップS1106では、上記処理を行った当該コンテナを適合化済みコンテナとして設定する。次に、ステップS1011では、当該コンテナに対する変更処理により影響を受ける他のコンテナが存在するか否かを判別する。この判別の結果、影響を受けるコンテナが存在しないときは(ステップS1011でNO)、図10のステップS1003へ移行する。一方、影響を受けるコンテナが存在するときは(ステップS1011でYES9)、それらコンテナ全てを適合化未処理コンテナとして設定し、図10のステップS1003へ移行する。
図12において、ステップS1201では、適合不可コンテナが存在するか否かを判別する。この判別の結果、適合不可コンテナが存在しないときは(ステップS1201でNO)、リターンする。一方、適合不可コンテナが存在するときは(ステップS1201でYES)、ステップS1202へ進む。
ステップS1202では、適合不可コンテナにリンク設定が有るか否かを判別する。この判別の結果、リンク設定が無いときは(ステップS1202でNO)、リターンする。一方、リンク設定が有るときは(ステップS1202でYES)、当該適合不可コンテナとリンク設定があるコンテナ(相互接続関係があるコンテナ)を全て適合不可コンテナに設定し(ステップS1203)、リターンする。即ち、ステップS1202において、適合不可コンテナにリンク先のコンテナがある場合には、該適合不可コンテナとリンク関係にあるリンク元コンテナも適合不可コンテナとして設定する。
上記実施の形態によれば、タグ付きテキストに定義されたコンテナ配置条件に基づいて、テキストデータ、画像データ、及び表データ等のコンテンツをコンテナに配置する。そして、コンテンツがコンテナに配置できないときに、当該コンテナに相互接続先としとリンク先コンテナが設定されているかを判断する(図11のステップS1103)。そして、リンク先コンテナが設定されているときは、コンテンツの配置対象のコンテナに収まり切らなかった分のコンテンツをリンク先コンテナに配置すべきコンテンツとして設定する(ステップS1104)。そして、設定されたコンテンツをリンク先コンテナに配置する。これにより、文書編集の際に紙面上に設定されたさまざまな制約により発生するレイアウトの変更に応じた適切な文書編集が可能となる。
上記実施の形態では、図17に示すように、文書編集処理が適切に行えなかった適合不可コンテナと該適合不可コンテナを含むページを太枠で表示していたが、これに限定されるものではない。例えば、適合不可コンテナや該適合不可コンテナを含むページを囲む枠をユーザが識別し易い色でそれぞれ構成するようにしてもよい。これにより、ユーザが適合不可コンテナの存在をより容易に認識することができる。
また、適合不可コンテナが複数存在する場合は、キーボード等のスクロール操作により単一ページ上の適合不可コンテナにポインタが移動(ジャンプ)するように構成してもよい。また、複数の適合不可コンテナが複数のページにリンクされて存在する場合にも、スクロール操作によりポインタが移動するように構成してもよい。これにより、ユーザが適合不可コンテナの存在をより容易に認識することができると共に、使い勝手を向上させることができる。
また、本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW等の光ディスク、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、次のプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれる。
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけではない。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合も、本発明に含まれることは云うまでもない。
この場合、上記プログラムは、該プログラムを記憶した記憶媒体から直接又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続された不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。