文書編集装置およびその制御方法
【課題】文書データ内のオブジェクトとページ属性との関係の整合性を維持する。
【解決手段】複数ページから構成される文書データを編集する文書編集装置において、文書データに対して処理を実行する場合に、当該処理にページをまたいだオブジェクトの移動処理または複製処理が含まれるか否かを判定する判定手段と、移動処理または複製処理が含まれると判定された場合、オブジェクトが現在配置されている編集元ページのページ属性に関する情報をオブジェクトに合成し合成オブジェクトを生成する合成手段と、合成オブジェクトを移動先または複製先となる編集先ページのオブジェクトとして配置する配置手段と、を備える。
【解決手段】複数ページから構成される文書データを編集する文書編集装置において、文書データに対して処理を実行する場合に、当該処理にページをまたいだオブジェクトの移動処理または複製処理が含まれるか否かを判定する判定手段と、移動処理または複製処理が含まれると判定された場合、オブジェクトが現在配置されている編集元ページのページ属性に関する情報をオブジェクトに合成し合成オブジェクトを生成する合成手段と、合成オブジェクトを移動先または複製先となる編集先ページのオブジェクトとして配置する配置手段と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子文書を編集する技術に関するものであり、特に、電子文書に含まれるオブジェクトとページ属性との不整合を低減する技術に関するものである。
【背景技術】
【0002】
文書編集システムにおいて、編集対象のドキュメントを構成するページに対して「社外秘」「コピー禁止」などのウォーターマークをページ属性として付加する技術が知られている。また、前述したページ属性をドキュメント内で複数保持し、あるページ単位で異なるページ属性を切り替えて付加することができる技術も同様に知られている。一方、同じ文書編集システムにおいて、編集対象のドキュメントを構成するページ内の描画オブジェクト(例:文字、文字列、イメージ)の情報を抽出して、各種編集(例:移動、削除、複製)を行う技術が知られている。前述した2つの技術は、ユーザにとって一連のワークフローで使用できることが望ましく、1つの文書編集システム内で実現されることが一般的である。
【0003】
一般的には、ページ属性とページ内の描画オブジェクトとは別個に管理されることになるため、描画オブジェクトの編集はページ属性と連動しない。そのため、描画オブジェクトの編集内容によっては、設定したページ属性が意味を成さなくなってしまう可能性がある。例えば、「社外秘」のページ属性を設定していたにもかかわらず、社外秘対象となっていた描画オブジェクトが削除された場合に、「社外秘」のページ属性が設定されているにもかかわらず社外秘対象のオブジェクトが存在しないページが発生する。そこで、特許文献1には、描画オブジェクトのキーワード(“機密”などの文字列)とページ属性とを予め関連付けることにより、当該キーワードが存在するページに対し対応するページ属性を付加する技術が提案されている。
【特許文献1】特開2006−260136号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の技術を利用した場合においては、編集前および編集後におけるページのページ属性が異なっていた場合、本来ページ属性を付加させる必要がない既存の描画オブジェクトに対しても併せて新しいページ属性が付加されてしまう。つまり、描画オブジェクトとページ属性とを別個に管理しているため、あくまでページ単位での属性の移動となるためである。
【0005】
図36は上述の課題を図示したものである。3601はページ、3602はページ属性(ウォーターマーク)、3603,3604は、描画オブジェクトを示している。描画オブジェクト3604を2ページ目から1ページ目に移動した場合(3605)、2ページ目に設定されていたページ属性(ウォーターマーク)を、移動先である1ページ目のページ属性に設定する(3606)。そのため、元々1ページ目に存在した描画オブジェクト3607に対してもページ属性(この図の場合、円囲みの“秘”)の設定が反映されてしまうことになる。
【0006】
本発明は上述の問題点に鑑みなされたものであり、電子文書内のオブジェクトの編集に基づいて発生するオブジェクトとページ属性とのの不整合を低減可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上述の問題点を解決するため、本発明の文書編集装置は以下の構成を備える。すなわち、複数ページから構成される文書データを編集する文書編集装置において、文書データに対して処理を実行する場合に、当該処理にページをまたいだオブジェクトの移動処理または複製処理が含まれるか否かを判定する判定手段と、前記判定手段により前記処理に移動処理または複製処理が含まれると判定された場合、前記オブジェクトが現在配置されている編集元ページのページ属性に関する情報を前記オブジェクトに合成し、合成オブジェクトを生成する合成手段と、前記合成手段により生成された前記合成オブジェクトを移動先または複製先となる編集先ページのオブジェクトとして配置する配置手段と、を備える。
【0008】
上述の問題点を解決するため、本発明の文書編集装置の制御方法は以下の構成を備える。すなわち、複数ページから構成される文書データを編集する文書編集装置の制御方法において、文書データに対して処理を実行する場合に、当該処理にページをまたいだオブジェクトの移動処理または複製処理が含まれるか否かを判定する判定工程と、前記判定工程により前記処理に移動処理または複製処理が含まれると判定された場合、前記オブジェクトが現在配置されている編集元ページのページ属性に関する情報を前記オブジェクトに合成し、合成オブジェクトを生成する合成工程と、前記合成工程により生成された前記合成オブジェクトを移動先または複製先となる編集先ページのオブジェクトとして配置する配置工程と、を備える。
【発明の効果】
【0009】
本発明によれば、オブジェクトの編集に基づいて発生するページ属性の不整合を低減可能とする技術を提供することができる。
【発明を実施するための最良の形態】
【0010】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【0011】
(第1実施形態)
本発明に係る文書編集装置の第1実施形態として、情報処理装置(PC)により構成される文書編集装置を例に挙げて以下に説明する。
【0012】
<装置構成>
図1は、第1実施形態に係る文書編集装置を構成するPCのハードウェア構成図である。図1に示されるハードウェア構成は一般的な情報処理装置のハードウェア構成図に相当し、第1実施形態のPC110には一般的な情報処理装置のハードウェア構成を適用できる。
【0013】
図1において、CPU100は、ROM102に記憶された、或いは記憶部109からRAM101にロードされたオペレーティングシステム(OS)やアプリケーション等のプログラムを実行する。なお、後述する各処理はCPU100がプログラムを実行することにより実現する。RAM101は、CPU100の主メモリ、ワークエリア等として機能する。キーボードコントローラ103は、キーボードやポインティングデバイス(マウスなど)の入力デバイス108からの入力を制御する。ディスプレイコントローラ104は、ディスプレイ107の表示を制御する。ディスクコントローラ105は、各種データを記憶するハードディスク(HD)やフロッピー(登録商標)ディスク(FD)等の記憶部109におけるデータアクセスを制御する。ネットワークコントローラ(NC)106は、ネットワークに接続された他の機器との通信制御処理を実行する。
【0014】
図2は、第1実施形態に係る文書編集装置を構成するPCのソフトウェア構成図を示す。第1実施形態に係る文書編集装置200は、ハードウェア構成で説明したように、全ての機能をPC110上で実行されるプログラムによって実現される。
【0015】
文書編集装置200は、PC110のディスプレイ107上に表示され、キーボード/マウスなどの入力デバイス108からの入力を受け付けるグラフィックユーザインターフェース(GUI)部201を備える。また、ユーザのキーボードの操作を、GUI部201を通して検知して、操作に応じて文書の編集、ファイルの保存などを指示する、入力制御部202を備える。さらに、入力制御部202の編集指示に従い、文書編集装置で編集中の文書データに対して各種編集処理を制御する文書編集部203を備える。そして、入力制御部202の編集指示に従い、ファイルシステム206に文書データの保存・更新を指示する、保存/更新部204を備える。さらに、文書編集部203の制御に応じて、文書データを解析して、描画オブジェクトを生成するデータ解析部205を備える。
【0016】
文書編集装置200は文書データを読み込み、それを編集するための機能を利用者に提供する。読み込む文書データは、独自のフォーマットであっても良いし、一般アプリケーションのデータファイルであっても良い。
【0017】
図14は、文書編集装置のGUI部201の表示の一例を示す図である。GUI部201は、メインウインドウ1401、メニュー/ツールバー1402、ページリスト1403、ページプレビュー1404から構成される。
【0018】
<データ構造>
文書編集装置200の詳細を言及する前に、複数ページから構成される文書データのデータ構造について説明する。文書データは紙媒体の書物を模倣した3層の層構造を有する。まず、上位層は「ブック」と呼ばれ、1冊の本を模倣しており、その本全般に係る属性が定義されている。その下の中間層は、本でいう章に相当し、やはり「章」と呼ばれる。各章についても、章毎の属性が定義できる。そして、下位層は「ページ」であり、文書編集装置で定義された各ページに相当する。尚、各ページについてもページ毎の属性が定義できる。更に、一つのブックは複数の章を含んでいてよく、また一つの章は複数のページを含むこともできる。
【0019】
なお、「ブック」「章」「ページ」は文書データを3階層で構成していることを示すために用いた用語であり、同等の構成を成していれば他の用語であってもかまわない。
【0020】
図3の(A)および(B)は、文書データの形式を模式的に示す図である。この例では、文書データにおけるブック,章,ページは、それぞれに相当するノードにより示されている。一つの文書データは一つのブックを含む。ブック,章は、ブックとしての構造を定義するための概念であるから、定義された属性値と下位層へのリンクとをその実体として含む。ページは、ページ毎のデータを実体として有する。そのため、ページは、その属性値のほかに、原稿ページの実体(原稿ページデータ)と各原稿ページデータへのリンクを含む。
【0021】
図3(A)において、ブック301には、ブック属性が定義されていると共に、2つの章302A,302Bがリンクされている。このリンクにより、章302A,302Bがブック301に包含されていることが表示される。章302Aには、ページ303A,303Bがリンクされ、これらページが含まれることが示されている。各ページ303A,303Bにはそれぞれ属性値が定義され、その実体である原稿ページデータ(1),(2)へのリンクが含まれる。これらリンクは、図3(B)に示されるように、原稿ページデータ304のデータ(1),(2)を指し示し、ページ303A,303Bの実体が原稿ページデータ(1),(2)であることを示している。
【0022】
図4は、ブック属性のリストを示す図である。ブック属性より下位の層と重複して定義可能な項目に関しては、下位層の属性値が優先採用される。下位層と重複する項目については、下位層において定義されていない場合における既定値としての意味を有する。尚、図示された各項目は具体的に1項目に対応するのではなく、関連する複数の項目を含むものもある。
【0023】
”ウォーターマーク”と”ヘッダ・フッタ”と”コメント・注釈”は、ブックに属するページに対して描画する属性情報である。ここで、ウォーターマークとは、原稿データに重ねて印刷される、別途指定される画像や文字列など(一般的にスタンプと呼ばれる)である。ヘッダ・フッタは、それぞれ各ページの上余白及び下余白に印刷されるウォーターマークである。コメント・注釈描画は、ページ上もしくは余白に指定される画像、文字列である。
【0024】
第1実施形態においては、ウォーターマークと書いた場合、特に指定がない限り、ヘッダ・フッタ、コメント・注釈も含まれることとする。但し、ヘッダ・フッタには、ページ番号や日時など変数により指定可能な項目が用意されている。これらウォーターマークは、原稿ページを構成するテキスト・イメージというコンテンツデータ層ではなく、原稿ページの上にオーバーレイする形で行われる。
【0025】
前記リストで管理されるウォーターマークの情報は、具体的には後述するウォーターマークIDと、ページ上の位置情報である。ページ上の位置情報は、システム内で位置を特定できる形であれば、どのようなデータ形式であってもかまわないが、例えばページ上のXY座標で保持するような形式で良い。また、位置情報はウォーターマークの種類に応じても異なる形式で保持することが考えられる。例えば、スタンプの場合はページ上のある位置を点で保持する形式で構わないが、コメントでページ上のある範囲に対して網掛けをかける場合は、ある点からある点までの範囲として位置情報を保持することが考えられる。よって、図4のブックの属性リストおよび後述する図5,6のリストにおいて、位置情報は点および範囲どちらの形式でも保持可能であるものとする。
【0026】
図5は章属性の、図6はページ属性のリストである。章属性とページ属性との関係もブック属性と下位層の属性との関係と同様である。そのため、「ブック」「章」「ページ」の属性は、最下位のページの属性と言い換えることもできる。つまり、仮に「ブック」の属性のみ指定されている場合でも、個々のページにそのブックの属性が適用されることになる。第1実施形態においては、特に明示しない場合「ページ属性」という用語に、これらの属性が含まれることとする。
【0027】
図7は、ウォーターマーク属性のデータリストである。ウォーターマークは文字列/イメージの2種類がある。個々にIDと設定情報を保持する。
【0028】
ID1〜7は文字列型のウォーターマークを示している。文字列型には、文字列、フォント種類、フォントサイズ、スタイル、バイナリデータの情報を保持している。バイナリデータはイメージのバイナリを保持する属性であり、例えば文字の周りを円で囲む指定をして際は、円のイメージをバイナリデータで保持する。
【0029】
ID8,9は、イメージが他のウォーターマークを示している。イメージ型には、バイナリデータ、イメージ参照先の情報を保持している。イメージデータはバイナリ形式や、記憶部109に格納されている外部イメージを参照する形式で定義する。図7のデータリストで保持するデータは、ウォーターマーク自身の情報のみである。実際に原稿ページ上のどの位置にウォーターマークが配置されるのかは、前述した「ブック」「章」「ページ」の属性で定義される。
【0030】
図22は、ウォーターマーク属性のうちのコメント・注釈属性を管理するデータリストである。コメント・注釈には、テキストボックス・吹き出しテキスト・マーカー(アンダーラインなど)・網掛けなど、いろいろな種類が存在する。これらの種類は、文書編集装置によって可変し得、個々にIDと設定情報を保持する。設定情報は、前述した図7のデータリストと同等のものを保持する。コメント・注釈固有の設定情報(例えば、ID4のマーカーの塗りつぶし)がある場合は、それらの設定情報もデータリストに加えて管理する。
【0031】
図8は、文書データを構成するページ内のオブジェクト情報を管理するオブジェクトリストの例を示す図である。各オブジェクトにID801とオブジェクトの種類802、オブジェクトの位置を示す座標803と804、オブジェクト固有情報805がある。そのオブジェクトがリスト構造になって、オブジェクトリスト800に格納されている。オブジェクトリスト800は、原稿データ全体で1つのリストを保持する形式でも構わないし、ページごとに1つのリストを保持する形式でも構わない。オブジェクトの解析、リスト作成については後述する。
【0032】
<ページ属性設定>
ページ属性の設定方法について説明する。この処理は、GUI部201からの指示に従って、文書編集部203が実行し、前述した図4〜6の「ブック」、「章」、「ページ」の属性リストと図7のウォーターマークのデータリストに設定情報を登録していく。
【0033】
図15は、ウォーターマーク定義ダイアログ1501を示す図である。ウォーターマーク定義ダイアログ1501は、入力デバイス108からの指示に従ってGUI部201がディスプレイ107上に表示する。ユーザはダイアログ内の各コントロールに指示を入力することにより、GUI部201が文書編集部203へ指示を送り、文書編集部203がページ属性リストに登録を行う。
【0034】
ウォーターマーク定義ダイアログ1501は、
ウォーターマークに使用する文字列を指定する文字列指定コントロール1502、
文字列のフォント種類を指定するフォント指定コントロール1503、
文字列のスタイルを指定するスタイル指定コントロール1504、
文字列のフォントサイズを指定するフォントサイズ指定コントロール1505、
文字列の色を指定する色指定コントロール1506、
から構成される。
【0035】
ウォーターマーク定義ダイアログで指定された各設定は、図7の属性リストに登録される。
【0036】
図16は、ウォーターマーク指定ダイアログ1601を示す図である。ウォーターマーク指定ダイアログ1601は、「ブック」「章」「ページ」それぞれに対して指定することが可能である。例えば、ブックをGUI部201にて選択している状態で、ウォーターマーク指定ダイアログでウォーターマークを指定した場合は、「ブック」の属性として登録される。
【0037】
ウォーターマーク指定ダイアログ1601は、
ページ上にオーバーレイするウォーターマークを指定するウォーターマーク指定コントロール1602、
ページ上のどの位置にウォーターマークを配置するかを指定するウォーターマーク配置指定コントロール1603、
から構成される。
【0038】
図17は、図14に示したブックに対しウォーターマークを設定した例を示す図である。全9ページの文書データに対して、1〜3ページ目(1章目)には、「CONFIDENTIAL」のウォーターマークが指定されている。また、7ページ目、9ページ目には、「コピー禁止」のウォーターマークが指定されている。
【0039】
<オブジェクト解析>
次に、オブジェクト解析と前述したオブジェクトリストの登録方法について説明する。この処理は、文書編集部203からの指示に従って、データ解析部205が記憶部109に格納されている文書データにアクセスして実行する。図8は、オブジェクトリスト800に格納される情報の一例を示す図である。例えば、図9(A)に示される座標に位置する長方形オブジェクトは、図9(B)に示す内容によってリストとして登録される。
【0040】
図10は、文書データの内部フォーマットから、図9に示したものと同様の長方形オブジェクトを読み込み、オブジェクト情報として取り出す例を示す図である。
【0041】
図11は、第1実施形態で利用するオブジェクトのブロック化(グループ化)のための手順を示すフローチャートである。本処理は、データ解析部205が実行する。
【0042】
データ解析部205は、800で示したオブジェクトリストLOからオブジェクトをひとつ取得し(S1101)、新しいオブジェクトグループGを生成する(S1102)。オブジェクトグループは、オブジェクトリストと同等の形式をもち、かつ処理部がひとつのオブジェクトとして操作することのできるデータ形式である。
【0043】
データ解析部205は、オブジェクトグループGにS1101で取得したオブジェクトを追加し(S1103)、そのオブジェクトをLOから削除する(S1104)。オブジェクトがまだLOに残っているかを確認し(S1105)、残っていなければグループGをLOに追加して終了する(S1106)。
【0044】
オブジェクトがLOに残っていれば、データ解析部はさらに、次のオブジェクトをLOから取得し(S1107)、オブジェクトグループGの中のオブジェクトGOを取得(S1108)する。GOが取得できなければ(S1109)、ステップS1102に戻る。GOが取得できれば(S1109)、POとGOの間の垂直方向の距離を計算する(S1110)。
【0045】
図12は、オブジェクト間の”距離”を説明する図である。オブジェクト間の”距離”とは、オブジェクトを包む外接矩形を考え、ある外接矩形と外接矩形の間の、最短の距離のことをいう。図12で、1201は長方形オブジェクト、1202は楕円オブジェクト、1203は楕円オブジェクトの外接矩形を表しており、矢印1204の長さが、これらのオブジェクト間の距離に相当する。
【0046】
さらにデータ解析部は、計算した距離は閾値以内かを確認し(S1111)、閾値以上離れていればステップS1108に戻る。閾値以内であれば、ステップS1103に戻る。ここで”閾値”とは、システムで定められる一定の大きさの距離のことで、この距離の閾値でブロック化するオブジェクト同士を分離している。
【0047】
図13は、オブジェクトのブロック化の様子を示す図である。ページ1301上で、オブジェクト1311と1312がブロック化され、点線で示したブロック1321になっている。同様に、オブジェクト1313と1314が1322に、1315と1316が1323にそれぞれブロック化されている。
【0048】
第1実施形態では、ページ内の編集オブジェクトの単位は、最小の区分けによるオブジェクトではなく、ある程度のまとまったオブジェクト群からなる「ブロック」として考える。もちろん、最小の区分けを単位として扱う構成でもかまわない。そのため、第1実施形態におけるオブジェクト編集を行う手順においては、ブロックを対象とすることにする。そこで、以降では、”オブジェクト”と記載する場合、図13のようにオブジェクトをまとめた”ブロック”も含むこととする。
【0049】
<装置の動作>
図18は、第1実施形態に係る文書編集装置における編集操作のフローチャートである。第1実施形態において、編集操作とは、異なるページ間でのオブジェクトの移動処理(カット&ペースト)・複製処理(コピー&ペースト)である。例えば、3ページ目にあるオブジェクトを2ページ目に移動・複製する編集操作などである。以後、オブジェクトが現在配置されているページを“編集元ページ”、移動・複製後にオブジェクトがあるページを“編集先ページ”という言葉で表現する。
【0050】
ユーザが入力デバイス108に対してオブジェクトの移動・複製操作を行うと、GUI部201は入力デバイス108に対する操作を検知して、入力制御部202に操作に応じた指示を行う。指示を受けた入力制御部202は、操作に応じたオブジェクトの移動・複製を文書編集部203へ指示する。指示を受けた文書編集部203は、データ解析部205へアクセスして編集対象オブジェクトを取得し、指示された移動・複製操作を開始する。そのあと、入力制御部202から編集先ページが指定されて、文書編集部203が編集先ページへオブジェクトの移動・複製操作を実行する。
【0051】
その際、入力制御部202から指定された編集元のページ情報(例えば、図3の303B)と編集先のページ情報(例えば、図3の303A)が異なっている場合は、ページをまたぐ編集処理となり、図18に示すフローチャートに従って処理を行う。図19は、オブジェクト編集のGUI表示の一例を示す図である。
【0052】
1901はページ、1902はページ属性(図では“マル秘”スタンプを示している)を示している。1903は、ページ1901上に存在するオブジェクトを示している。なお、スタンプ1902は概念的に示しているものであり、実際にページ上に描画されているものではない。1904はマウスカーソルを示している。例えば、ユーザ操作としては2ページ目のオブジェクトをマウスカーソルで指定して、1ページ目に移動(1905は移動中のゴーストを示す)させて、配置位置を決定する操作をトリガーに、図18に示すフローチャートに従って、処理を行う。つまり、ユーザによる、ページ1901上に存在するオブジェクト1903をマウスカーソル1904で選択して、異なるページへ移動・複製する操作により開始される。なお、オブジェクト1903をマウスカーソル1904で選択するとゴースト1905が表示される。
【0053】
ステップS1801では、編集元ページの属性情報を、図4〜6で示した「ブック」「章」「ページ」属性リストから取得する。ステップS1802では、編集先ページの属性情報を同じく取得する。ページ属性リスト(図6)を例にとると、取得するページ属性情報は、No2,3,4のウォーターマークIDとなる。具体的な処理は、後述するS2001,S2006と同様である。なお、ステップS1802で、ウォーターマークIDが存在しない場合は、NULLを取得情報とする。
【0054】
ステップS1803では、S1801とS1802との各々で取得したページ属性を比較する。同一のページ属性であった場合は編集先ページへ指示されたオブジェクト編集を実行する。
【0055】
ステップS1804では、S1803にて異なるページ属性であった場合は、編集対象オブジェクトとS1801で取得したページ属性が重なりを持つかを判断する。重なっていないと判断した場合は、編集先ページへ指示されたオブジェクト編集を実行する。一方、重なっている場合は、ステップS1805に進む。
【0056】
ステップS1805では、S1801で取得したページ属性と編集対象オブジェクトとを合成する。
【0057】
ステップS1806では、S1805で合成処理された編集対象オブジェクト(合成オブジェクト)を編集先(移動先/複製先)ページへ移動/複製する。ここで、合成したオブジェクトの外接矩形を描画すると好適である。この処理は、S1805で合成した編集元のページ属性が、合成後にどのオブジェクトに影響を与えているのかを視覚的に示す効果を与えるためである。
【0058】
ステップS1807では、オブジェクト編集の結果、不要になったページ属性やページそのものを削除する。
【0059】
上述の一連の処理を実行後、合成したオブジェクトを編集先ページへオブジェクト編集を実行する。オブジェクトを移動した際は、編集元ページのオブジェリストから移動した編集オブジェクトの情報を削除し、編集先ページのオブジェクトリストに編集オブジェクトの情報を追加する。一方、オブジェクトを複製した際は、編集先ページのオブジェクトリストに編集オブジェクトの情報を追加する。なお、S1804,S1806,S1807の各ステップについては、必須の処理ではなく省略してもかまわない。
【0060】
<ページ属性取得処理(S1801)の詳細>
図20は、S1801の処理の詳細を示すフローチャートである。
【0061】
ステップS2001では、図4〜6で示した「ブック」「章」「ページ」属性リストから、編集元ページ属性の情報を取得する。図3のページ303Bを仮に編集元ページとすると、ページ303Bのページ属性(2)へアクセスし、ページ属性リスト(図6)を取得する処理となる。
【0062】
ステップS2002では、ステップS2001で取得したページ属性情報の中に、ウォーターマークが存在するか否かを判断する。ウォーターマークが存在しない場合は、通常の編集操作となる。例えば前述した図6のページ属性リストのNo2,3,4の属性が存在するか否かで判断する。ウォーターマークの存在する場合は、ステップS2003に進む。
【0063】
ステップS2003では、ウォーターマークがスタンプか否かを判断(図6のNo2が存在するか否か)する。
【0064】
スタンプのウォーターマークが存在した場合は、S2001で取得したページ属性情報から、スタンプに関する情報(図6のNo2)のみを取得する(S2006)。もしくは、スタンプに関するID(図6のNo2に保持されているウォーターマークID)を取得し、情報にアクセスできるようにしておく。
【0065】
ウォーターマークがスタンプではなかった場合は、コメント・注釈か否かを判断(図6のNo4が存在するか否か)する(S2004)。ウォーターマークがコメント・注釈であった場合は、S2001で取得したページ属性情報から、コメント・注釈に関する情報(図6のNo4)のみを取得する(S2005)。もしくは、コメント・注釈のID(図6のNo4に保持されているウォーターマークID)を取得し、情報にアクセスできるようにしておく。
【0066】
ステップS2005では、ページ属性として保持しているコメント・注釈の中で、編集対象オブジェクトと重なりをもつIDのみを取得する。これは、ページ内に複数のコメント・注釈が存在する場合(図6のNo4に複数のウォーターマークIDが保持されている場合)に、編集対象オブジェクトと関係のあるもののみを抽出するためである。重なりの判断は、ページ属性リスト(図4)のNo4ウォーターマークIDに保持しているページ上の位置情報と、オブジェクトリスト800に保持している編集対象オブジェクトの位置情報とを比較することで行う。
【0067】
上述のステップS2005,S2006で編集対象オブジェクトと連動して移動・複製すべきページ属性が取得できたら、S1802へ進む。
【0068】
なお、上述の処理においては、ウォーターマークのヘッダ・フッタ(図6のNo3)に関しては判断処理を行っていない。これは、ページ番号などのヘッダ・フッタはページとの依存性があり、オブジェクトの移動・複製に応じてページ間で変更してはいけない属性であるためである。したがって、ヘッダ・フッタは上述の合成処理(S1805)の対象外となるページ属性となる。ただし、ヘッダ・フッタで定義されるページ属性の中で、ページとの依存性がないデータが存在する場合は、判断処理を追加して、合成対象のページ属性としてもかまわない。
【0069】
<ページ属性比較処理(S1803)の詳細>
図21及び図23は、ステップS1803の処理を詳細に示したフローチャートである。
【0070】
図21は、ウォーターマークがスタンプの場合の比較処理を示す図である。S1801とS1802で取得したウォーターマークIDを比較し(S2101)、異なる値であった場合はS1804へ進む。ウォーターマークIDが同一の値であった場合は、それぞれのウォーターマークに差異はないと判断し、通常の編集操作となる。
【0071】
図23は、ウォーターマークがコメント・注釈の場合の比較処理を示す図である。S1801とS1802で取得したウォーターマークIDを比較し(S2301)、異なる値であった場合はS1804へ進む。ウォーターマークIDが同一の値であった場合は、それぞれのウォーターマークIDに対応する配置位置を比較する(S2302)。コメント・注釈の場合は、ページをまたいで同一の設定を行うことは少ない。しかし、例えばレビュー範囲を網掛け注釈で示す際に、複数ページ全体で同一の範囲(位置)で指定されることが考えられる。このようなケースを想定し、S2302で配置位置の判断処理を行っている。ウォーターマークIDに対応する配置位置が異なれば、S1804へ進む。ウォーターマークIDに対応する配置位置が同一であれば、それぞれのウォーターマークに差異はないと判断し、通常の編集操作となる。
【0072】
<オブジェクト領域とページ属性領域との重なり判定処理(S1804)の詳細>
図24は、S1804の処理を詳細に示したフローチャートである。S1804は、編集元のウォーターマーク属性がスタンプであるときに実行される処理である。スタンプ以外のウォーターマーク属性の場合は必須の処理ではない。ただし、スタンプと同様の性質であるウォーターマークであれば、本処理を実行するようにしても構わない。
【0073】
ステップS2401では、オブジェクトリスト800に保持ししている編集対象オブジェクトの位置(座標)情報(803,804など)より、編集対象オブジェクトの外接矩形領域を取得する。このとき、編集対象オブジェクトとして、同一ページに含まれる複数のオブジェクトが指定されていた場合は、指定されているそれぞれのオブジェクトを包含する矩形領域を、外接矩形領域として取得する。
【0074】
図33は、編集対象オブジェクトが同時に複数個指定されている場合の図を示している。2501はページ、2502,2503はオブジェクトを示している。オブジェクト2502,2503を同時に指定している場合は、双方を包含する矩形領域3301を外接矩形領域として取得する。
【0075】
ステップS2402では、編集元のページ属性より取得したウォーターマーク(図6のNo2に保持されるウォーターマークID)をメモリ上にビットマップ展開(描画)する。なお、編集元のページ属性は、例えば、ページ303Bのページ情報(2)よりアクセスできるページ属性リスト図6である。
【0076】
ステップS2403では、S2402で展開した描画データと、編集元のページ属性より取得可能な位置情報(図6に示したデータで保持されるウォーターマーク位置情報)より、ウォーターマークの描画領域(の外接矩形領域)を取得する。
【0077】
ステップS2404では、S2401とS2403で取得した外接矩形領域を比較する。重なりがあればS1805へ進む。重なりがなければ、通常の編集操作となる。
【0078】
上述の処理は、編集元ページ上で、ウォーターマークと編集対象オブジェクトが重なりを持っていれば、ウォーターマークをS1805の合成対象にするための処理である。
【0079】
図25は、重なりを持つケースと持たないケースとのそれぞれの例を示す図である。2504はウォーターマークおよび外接矩形領域を示している。オブジェクト2502とウォーターマーク2504は、外接矩形領域が重なりを持っているため、オブジェクト2502を編集対象オブジェクトとした場合は、ウォーターマーク2504は合成対象となる。一方、オブジェクト2503とウォーターマーク2504は、外接矩形領域が重なりを持っていないため、オブジェクト2503を編集対象オブジェクトとした場合は、ウォーターマーク2504は合成対象とならない。
【0080】
<合成処理(S1805)の詳細>
図26は、S1805の処理を詳細に示すフローチャートである。なお、ステップS2601〜S2604の各々は、上述したステップS2401〜S2403およびS2003の処理と同様であるため詳細な説明は省略する。
【0081】
ステップS2601〜S2603において、合成対象のウォーターマークをビットマップ変換し、外接矩形領域を取得する。つまり、ウォーターマークを、編集対象オブジェクトに合成可能な形式に変換する。なお、S2402にて既にウォーターマークをビットマップ展開している場合は、そのビットマップデータを再利用するよう構成してもかまわない。
【0082】
ステップS2604では、ウォーターマークがスタンプか否かを判断する。スタンプではなかった場合は編集対象オブジェクトにS2602で作成したビットマップデータを合成(S2607)する。ウォーターマークがスタンプであった場合は、S2605,S2606にて編集対象オブジェクトの大きさに合わせるように、ウォーターマークを拡縮する処理を実行する。
【0083】
ステップS2605では、S2601で取得した編集対象オブジェクトの外接矩形と、S2603で取得したウォーターマークの外接矩形のサイズを比較する。
【0084】
ステップS2606では、縦方向もしくは横方向のサイズが異なる場合は、編集対象オブジェクトの外接矩形サイズに合わせるように拡縮率を算出し、S2602のビットマップデータを拡縮処理する。
【0085】
図27は、S2602の拡縮処理の例を示す図である。2701は編集対象オブジェクトの外接矩形領域、2702はウォーターマークの外接矩形領域を示している。縦方向および横方向のサイズが異なるため、ウォーターマークの外接矩形2702を、編集対象オブジェクトの外接矩形領域に内包されるよう(2703)に拡縮率を算出し、ビットマップデータを外接矩形領域内に含まれるように拡縮処理する。拡縮は縦横等倍で行われる形式でも良いし、変倍で行われる形式でも良い。もちろん、ユーザが指定するよう構成しても構わない。
【0086】
ステップS2607では、S2602もしくは拡縮処理を施したS2606で作成したビットマップデータを、編集対象オブジェクトに合成する。合成処理は、編集対象オブジェクトとウォーターマークのビットマップデータの中心点を合わせるように処理される。なお、編集対象オブジェクトの中心点は、オブジェクトリスト800に保持される座標より算出する。また、ウォーターマークのビットマップデータの中心点は、S2603で取得した外接矩形サイズ、またはその外接矩形サイズに、S2606で拡縮処理を施したサイズより、算出する。さらに、合成したウォーターマークのビットマップデータの種類、位置(座標)は、オブジェクトリスト800へ新規IDで登録し、合成した編集対象オブジェクトと同じブロックとして管理する。
【0087】
ステップS2607にて合成処理を実行した後は、S1806へ進む。S1806は編集先ページへ、S2607で合成した編集対象オブジェクトを移動・複製する処理である。S2607で合成した編集対象オブジェクトとウォーターマークをオブジェクトリスト800から取得し、編集先ページのオブジェクトリスト800へ登録する。オブジェクトリスト800の座標データ(803,084など)には、GUI部201、入力制御部202から受け取った編集先ページ上の移動/複製位置情報を登録する。ページ毎にオブジェクトリスト800を管理していないデータ構造であれば、編集対象オブジェクトとウォーターマークのオブジェクトIDのページへのリンクを変更する処理となる。
【0088】
図28は、スタンプのウォーターマークをオブジェクトに合成して移動する様子を示す図である。2801は移動前の編集対象オブジェクト、2802はページ属性として保持されているスタンプ(円囲みの“秘”)を示している。マウスカーソル1904で、編集対象オブジェクト2801を1ページ目に移動させると、スタンプ(円囲みの“秘”)が編集対象オブジェクトに合成されて処理される(2803)。この処理により、“秘”として明示していたオブジェクトが、ページ移動後も“秘”として明示することが可能になる。
【0089】
図29は、コメント(レビュー対象を網掛けで示す)のウォーターマークを合成して移動する例を示す図である。2901は移動前の編集対象オブジェクト、2902はページ属性として保持されているコメントを示している。ここではコメントとして、“レビューして下さい”の文字列を含む網掛けが指定されている。マウスカーソル1904で、編集対象オブジェクト2901を1ページ目に移動させると、コメントが編集対象オブジェクトに合成されて処理される(2903)。この処理により、コメントで明示していたレビューの範囲が、オブジェクト移動のページ間での移動後も範囲を保ったまま明示することが可能になる。
【0090】
図30は、ウォーターマークをオブジェクトに合成してページ間移動を実行した際の編集対象オブジェクトを示す図である。3001は、編集対象オブジェクトの外接矩形を示しており、実際にページ上に描画されるものである。ウォーターマークを合成したオブジェクトの外接矩形を表示することで、ウォーターマークの効果範囲をユーザに明示することが可能になる。この外接矩形の描画処理は、必須の処理ではないため、省略することも可能である。また、ユーザの指定に従い外接矩形の描画処理を実行/非実行するよう構成しても構わない。
【0091】
<後処理(S1807)の詳細>
図31は、S1807の処理を詳細に示すフローチャートである。
【0092】
ステップS3101では、編集元ページのオブジェクトリストを取得して、ページ内にオブジェクトが存在するか否かを判断する。例えば、ページ毎にオブジェクトリストを管理している形式であれば、オブジェクトリストが空か否かを判断する。
【0093】
オブジェクトが存在しなければ、ステップS3102において編集元ページを削除し、処理を終了する。一方、オブジェクトが存在する場合は、ステップS3103において、合成したウォーターマーク属性をページ属性リストから削除するか否かを判断する。
【0094】
図34は、ユーザからの指定に基づいて判断処理を行なう場合のGUI表示の例を示す図である。3401はメッセージ外観、3403はメッセージ内容を承認してメッセージを終了するYESボタン、3404は、メッセージ内容を拒否してメッセージを終了するNOボタンを示している。3402は、編集元ページに設定されている合成処理したウォーターマーク属性を表示しているテキストボックスである。
【0095】
このGUI表示において、YESボタン(3403)が押されたことを入力制御部から受け取った時は、合成したウォーターマーク属性を削除すると判断し、ページ属性リストから対象のウォーターマーク属性を削除する(S3104)。NOボタン(3404)が押されたことを入力制御部から受け取った時は、合成したウォーターマーク属性を削除しないと判断し、処理を終了する。
【0096】
なお、ステップS3103の判断処理は、文書処理システムによって自動処理される構成でも構わない。
【0097】
図32および図35は、図31の処理を説明する図であり、3ページの原稿データにおいて、2ページ目のオブジェクトをウォーターマーク(円囲みの“秘”)と合成し1ページ目に移動した場合の例である。
【0098】
図32は、S3103で合成したウォーターマーク属性を削除すると判断した場合の処理を説明する図である。S3201はオブジェクトとウォーターマークの合成移動を示している。3202は、2ページ目のオブジェクトが1ページ目に移動された状態を示している。合成したウォーターマーク属性を削除すると判断した場合、2ページ目のウォーターマーク(円囲みの“秘”)が削除される(3203)。
【0099】
図35は、S3101で編集元ページのオブジェクトが存在しないと判断した場合の処理を説明する図である。S3501はオブジェクトとウォーターマークの合成移動を示している。3502は、2ページ目のオブジェクトが1ページ目に移動された状態を示している。編集元ページには、ウォーターマーク属性のみ残った状態となる。2ページ目にはオブジェクトが存在しないため、ページが削除され(3503)、2ページの原稿データとなる(3504)。
【0100】
以上説明したとおり、第1実施形態に係る文書編集装置によれば、文書データ内のオブジェクトの編集処理を行なった場合においても、当該オブジェクトとページ属性との不整合を低減することが可能となる。具体的には、ページ属性を編集対象となる描画オブジェクトに合成することにより、編集先ページに配置された描画オブジェクトにおいても編集元ページでのページ属性を表すことが可能となる。さらに、編集先ページにもともと配置されていた他の描画オブジェクトへ必要のないページ属性が付加されることを低減することも可能となる。
【0101】
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0102】
なお、本発明は、前述した実施形態の機能を実現するプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置が、供給されたプログラムコードを読み出して実行することによっても達成される。従って、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。
【0103】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0104】
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク(CD、DVD)、光磁気ディスク、磁気テープ、不揮発性のメモリカード、ROMなどがある。
【0105】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0106】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0107】
【図1】第1実施形態に係る文書編集装置を構成するPCのハードウェア構成図である。
【図2】第1実施形態に係る文書編集装置を構成するPCのソフトウェア構成図を示す。
【図3】文書データの形式を模式的に示す図である。
【図4】ブック属性のリストを示す図である。
【図5】章属性のリストを示す図である。
【図6】ページ属性のリストを示す図である。
【図7】ウォーターマーク属性のデータリストである。
【図8】文書データを構成するページ内のオブジェクト情報を管理するオブジェクトリストの例を示す図である。
【図9】長方形オブジェクトおよび対応するリストを示す図である。
【図10】文書データの内部フォーマットからオブジェクト情報を取り出す例を示す図である。
【図11】第1実施形態で利用するオブジェクトのブロック化のための手順を示すフローチャートである。
【図12】オブジェクト間の”距離”を説明する図である。
【図13】オブジェクトのブロック化の様子を示す図である。
【図14】文書編集装置のGUI部201の表示の一例を示す図である。
【図15】ウォーターマーク定義ダイアログ1501を示す図である。
【図16】ウォーターマーク指定ダイアログ1601を示す図である。
【図17】図14に示したブックに対しウォーターマークを設定した例を示す図である。
【図18】第1実施形態に係る文書編集装置における編集操作のフローチャートである。
【図19】オブジェクト編集のGUI表示の一例を示す図である。
【図20】S1801の処理の詳細を示すフローチャートである。
【図21】ウォーターマークがスタンプの場合の比較処理を示す図である。
【図22】ウォーターマーク属性のうちのコメント・注釈属性を管理するデータリストである。
【図23】ウォーターマークがコメント・注釈の場合の比較処理を示す図である。
【図24】S1804の処理を詳細に示したフローチャートである。
【図25】重なりを持つケースと持たないケースとのそれぞれの例を示す図である。
【図26】S1805の処理を詳細に示すフローチャートである。
【図27】S2602の拡縮処理の例を示す図である。
【図28】スタンプのウォーターマークをオブジェクトに合成して移動する様子を示す図である。
【図29】コメントのウォーターマークを合成して移動する例を示す図である。
【図30】ウォーターマークをオブジェクトに合成してページ間移動を実行した際の編集対象オブジェクトを示す図である。
【図31】S1807の処理を詳細に示すフローチャートである。
【図32】S3103で合成したウォーターマーク属性を削除すると判断した場合の処理を説明する図である。
【図33】編集対象オブジェクトが同時に複数個指定する場合を示す図である。
【図34】ユーザからの指定に基づいて判断処理を行なう場合のGUI表示の例を示す図である。
【図35】S3101で編集元ページのオブジェクトが存在しないと判断した場合の処理を説明する図である。
【図36】従来技術における課題の一例を説明する図である。
【技術分野】
【0001】
本発明は、電子文書を編集する技術に関するものであり、特に、電子文書に含まれるオブジェクトとページ属性との不整合を低減する技術に関するものである。
【背景技術】
【0002】
文書編集システムにおいて、編集対象のドキュメントを構成するページに対して「社外秘」「コピー禁止」などのウォーターマークをページ属性として付加する技術が知られている。また、前述したページ属性をドキュメント内で複数保持し、あるページ単位で異なるページ属性を切り替えて付加することができる技術も同様に知られている。一方、同じ文書編集システムにおいて、編集対象のドキュメントを構成するページ内の描画オブジェクト(例:文字、文字列、イメージ)の情報を抽出して、各種編集(例:移動、削除、複製)を行う技術が知られている。前述した2つの技術は、ユーザにとって一連のワークフローで使用できることが望ましく、1つの文書編集システム内で実現されることが一般的である。
【0003】
一般的には、ページ属性とページ内の描画オブジェクトとは別個に管理されることになるため、描画オブジェクトの編集はページ属性と連動しない。そのため、描画オブジェクトの編集内容によっては、設定したページ属性が意味を成さなくなってしまう可能性がある。例えば、「社外秘」のページ属性を設定していたにもかかわらず、社外秘対象となっていた描画オブジェクトが削除された場合に、「社外秘」のページ属性が設定されているにもかかわらず社外秘対象のオブジェクトが存在しないページが発生する。そこで、特許文献1には、描画オブジェクトのキーワード(“機密”などの文字列)とページ属性とを予め関連付けることにより、当該キーワードが存在するページに対し対応するページ属性を付加する技術が提案されている。
【特許文献1】特開2006−260136号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の技術を利用した場合においては、編集前および編集後におけるページのページ属性が異なっていた場合、本来ページ属性を付加させる必要がない既存の描画オブジェクトに対しても併せて新しいページ属性が付加されてしまう。つまり、描画オブジェクトとページ属性とを別個に管理しているため、あくまでページ単位での属性の移動となるためである。
【0005】
図36は上述の課題を図示したものである。3601はページ、3602はページ属性(ウォーターマーク)、3603,3604は、描画オブジェクトを示している。描画オブジェクト3604を2ページ目から1ページ目に移動した場合(3605)、2ページ目に設定されていたページ属性(ウォーターマーク)を、移動先である1ページ目のページ属性に設定する(3606)。そのため、元々1ページ目に存在した描画オブジェクト3607に対してもページ属性(この図の場合、円囲みの“秘”)の設定が反映されてしまうことになる。
【0006】
本発明は上述の問題点に鑑みなされたものであり、電子文書内のオブジェクトの編集に基づいて発生するオブジェクトとページ属性とのの不整合を低減可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上述の問題点を解決するため、本発明の文書編集装置は以下の構成を備える。すなわち、複数ページから構成される文書データを編集する文書編集装置において、文書データに対して処理を実行する場合に、当該処理にページをまたいだオブジェクトの移動処理または複製処理が含まれるか否かを判定する判定手段と、前記判定手段により前記処理に移動処理または複製処理が含まれると判定された場合、前記オブジェクトが現在配置されている編集元ページのページ属性に関する情報を前記オブジェクトに合成し、合成オブジェクトを生成する合成手段と、前記合成手段により生成された前記合成オブジェクトを移動先または複製先となる編集先ページのオブジェクトとして配置する配置手段と、を備える。
【0008】
上述の問題点を解決するため、本発明の文書編集装置の制御方法は以下の構成を備える。すなわち、複数ページから構成される文書データを編集する文書編集装置の制御方法において、文書データに対して処理を実行する場合に、当該処理にページをまたいだオブジェクトの移動処理または複製処理が含まれるか否かを判定する判定工程と、前記判定工程により前記処理に移動処理または複製処理が含まれると判定された場合、前記オブジェクトが現在配置されている編集元ページのページ属性に関する情報を前記オブジェクトに合成し、合成オブジェクトを生成する合成工程と、前記合成工程により生成された前記合成オブジェクトを移動先または複製先となる編集先ページのオブジェクトとして配置する配置工程と、を備える。
【発明の効果】
【0009】
本発明によれば、オブジェクトの編集に基づいて発生するページ属性の不整合を低減可能とする技術を提供することができる。
【発明を実施するための最良の形態】
【0010】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【0011】
(第1実施形態)
本発明に係る文書編集装置の第1実施形態として、情報処理装置(PC)により構成される文書編集装置を例に挙げて以下に説明する。
【0012】
<装置構成>
図1は、第1実施形態に係る文書編集装置を構成するPCのハードウェア構成図である。図1に示されるハードウェア構成は一般的な情報処理装置のハードウェア構成図に相当し、第1実施形態のPC110には一般的な情報処理装置のハードウェア構成を適用できる。
【0013】
図1において、CPU100は、ROM102に記憶された、或いは記憶部109からRAM101にロードされたオペレーティングシステム(OS)やアプリケーション等のプログラムを実行する。なお、後述する各処理はCPU100がプログラムを実行することにより実現する。RAM101は、CPU100の主メモリ、ワークエリア等として機能する。キーボードコントローラ103は、キーボードやポインティングデバイス(マウスなど)の入力デバイス108からの入力を制御する。ディスプレイコントローラ104は、ディスプレイ107の表示を制御する。ディスクコントローラ105は、各種データを記憶するハードディスク(HD)やフロッピー(登録商標)ディスク(FD)等の記憶部109におけるデータアクセスを制御する。ネットワークコントローラ(NC)106は、ネットワークに接続された他の機器との通信制御処理を実行する。
【0014】
図2は、第1実施形態に係る文書編集装置を構成するPCのソフトウェア構成図を示す。第1実施形態に係る文書編集装置200は、ハードウェア構成で説明したように、全ての機能をPC110上で実行されるプログラムによって実現される。
【0015】
文書編集装置200は、PC110のディスプレイ107上に表示され、キーボード/マウスなどの入力デバイス108からの入力を受け付けるグラフィックユーザインターフェース(GUI)部201を備える。また、ユーザのキーボードの操作を、GUI部201を通して検知して、操作に応じて文書の編集、ファイルの保存などを指示する、入力制御部202を備える。さらに、入力制御部202の編集指示に従い、文書編集装置で編集中の文書データに対して各種編集処理を制御する文書編集部203を備える。そして、入力制御部202の編集指示に従い、ファイルシステム206に文書データの保存・更新を指示する、保存/更新部204を備える。さらに、文書編集部203の制御に応じて、文書データを解析して、描画オブジェクトを生成するデータ解析部205を備える。
【0016】
文書編集装置200は文書データを読み込み、それを編集するための機能を利用者に提供する。読み込む文書データは、独自のフォーマットであっても良いし、一般アプリケーションのデータファイルであっても良い。
【0017】
図14は、文書編集装置のGUI部201の表示の一例を示す図である。GUI部201は、メインウインドウ1401、メニュー/ツールバー1402、ページリスト1403、ページプレビュー1404から構成される。
【0018】
<データ構造>
文書編集装置200の詳細を言及する前に、複数ページから構成される文書データのデータ構造について説明する。文書データは紙媒体の書物を模倣した3層の層構造を有する。まず、上位層は「ブック」と呼ばれ、1冊の本を模倣しており、その本全般に係る属性が定義されている。その下の中間層は、本でいう章に相当し、やはり「章」と呼ばれる。各章についても、章毎の属性が定義できる。そして、下位層は「ページ」であり、文書編集装置で定義された各ページに相当する。尚、各ページについてもページ毎の属性が定義できる。更に、一つのブックは複数の章を含んでいてよく、また一つの章は複数のページを含むこともできる。
【0019】
なお、「ブック」「章」「ページ」は文書データを3階層で構成していることを示すために用いた用語であり、同等の構成を成していれば他の用語であってもかまわない。
【0020】
図3の(A)および(B)は、文書データの形式を模式的に示す図である。この例では、文書データにおけるブック,章,ページは、それぞれに相当するノードにより示されている。一つの文書データは一つのブックを含む。ブック,章は、ブックとしての構造を定義するための概念であるから、定義された属性値と下位層へのリンクとをその実体として含む。ページは、ページ毎のデータを実体として有する。そのため、ページは、その属性値のほかに、原稿ページの実体(原稿ページデータ)と各原稿ページデータへのリンクを含む。
【0021】
図3(A)において、ブック301には、ブック属性が定義されていると共に、2つの章302A,302Bがリンクされている。このリンクにより、章302A,302Bがブック301に包含されていることが表示される。章302Aには、ページ303A,303Bがリンクされ、これらページが含まれることが示されている。各ページ303A,303Bにはそれぞれ属性値が定義され、その実体である原稿ページデータ(1),(2)へのリンクが含まれる。これらリンクは、図3(B)に示されるように、原稿ページデータ304のデータ(1),(2)を指し示し、ページ303A,303Bの実体が原稿ページデータ(1),(2)であることを示している。
【0022】
図4は、ブック属性のリストを示す図である。ブック属性より下位の層と重複して定義可能な項目に関しては、下位層の属性値が優先採用される。下位層と重複する項目については、下位層において定義されていない場合における既定値としての意味を有する。尚、図示された各項目は具体的に1項目に対応するのではなく、関連する複数の項目を含むものもある。
【0023】
”ウォーターマーク”と”ヘッダ・フッタ”と”コメント・注釈”は、ブックに属するページに対して描画する属性情報である。ここで、ウォーターマークとは、原稿データに重ねて印刷される、別途指定される画像や文字列など(一般的にスタンプと呼ばれる)である。ヘッダ・フッタは、それぞれ各ページの上余白及び下余白に印刷されるウォーターマークである。コメント・注釈描画は、ページ上もしくは余白に指定される画像、文字列である。
【0024】
第1実施形態においては、ウォーターマークと書いた場合、特に指定がない限り、ヘッダ・フッタ、コメント・注釈も含まれることとする。但し、ヘッダ・フッタには、ページ番号や日時など変数により指定可能な項目が用意されている。これらウォーターマークは、原稿ページを構成するテキスト・イメージというコンテンツデータ層ではなく、原稿ページの上にオーバーレイする形で行われる。
【0025】
前記リストで管理されるウォーターマークの情報は、具体的には後述するウォーターマークIDと、ページ上の位置情報である。ページ上の位置情報は、システム内で位置を特定できる形であれば、どのようなデータ形式であってもかまわないが、例えばページ上のXY座標で保持するような形式で良い。また、位置情報はウォーターマークの種類に応じても異なる形式で保持することが考えられる。例えば、スタンプの場合はページ上のある位置を点で保持する形式で構わないが、コメントでページ上のある範囲に対して網掛けをかける場合は、ある点からある点までの範囲として位置情報を保持することが考えられる。よって、図4のブックの属性リストおよび後述する図5,6のリストにおいて、位置情報は点および範囲どちらの形式でも保持可能であるものとする。
【0026】
図5は章属性の、図6はページ属性のリストである。章属性とページ属性との関係もブック属性と下位層の属性との関係と同様である。そのため、「ブック」「章」「ページ」の属性は、最下位のページの属性と言い換えることもできる。つまり、仮に「ブック」の属性のみ指定されている場合でも、個々のページにそのブックの属性が適用されることになる。第1実施形態においては、特に明示しない場合「ページ属性」という用語に、これらの属性が含まれることとする。
【0027】
図7は、ウォーターマーク属性のデータリストである。ウォーターマークは文字列/イメージの2種類がある。個々にIDと設定情報を保持する。
【0028】
ID1〜7は文字列型のウォーターマークを示している。文字列型には、文字列、フォント種類、フォントサイズ、スタイル、バイナリデータの情報を保持している。バイナリデータはイメージのバイナリを保持する属性であり、例えば文字の周りを円で囲む指定をして際は、円のイメージをバイナリデータで保持する。
【0029】
ID8,9は、イメージが他のウォーターマークを示している。イメージ型には、バイナリデータ、イメージ参照先の情報を保持している。イメージデータはバイナリ形式や、記憶部109に格納されている外部イメージを参照する形式で定義する。図7のデータリストで保持するデータは、ウォーターマーク自身の情報のみである。実際に原稿ページ上のどの位置にウォーターマークが配置されるのかは、前述した「ブック」「章」「ページ」の属性で定義される。
【0030】
図22は、ウォーターマーク属性のうちのコメント・注釈属性を管理するデータリストである。コメント・注釈には、テキストボックス・吹き出しテキスト・マーカー(アンダーラインなど)・網掛けなど、いろいろな種類が存在する。これらの種類は、文書編集装置によって可変し得、個々にIDと設定情報を保持する。設定情報は、前述した図7のデータリストと同等のものを保持する。コメント・注釈固有の設定情報(例えば、ID4のマーカーの塗りつぶし)がある場合は、それらの設定情報もデータリストに加えて管理する。
【0031】
図8は、文書データを構成するページ内のオブジェクト情報を管理するオブジェクトリストの例を示す図である。各オブジェクトにID801とオブジェクトの種類802、オブジェクトの位置を示す座標803と804、オブジェクト固有情報805がある。そのオブジェクトがリスト構造になって、オブジェクトリスト800に格納されている。オブジェクトリスト800は、原稿データ全体で1つのリストを保持する形式でも構わないし、ページごとに1つのリストを保持する形式でも構わない。オブジェクトの解析、リスト作成については後述する。
【0032】
<ページ属性設定>
ページ属性の設定方法について説明する。この処理は、GUI部201からの指示に従って、文書編集部203が実行し、前述した図4〜6の「ブック」、「章」、「ページ」の属性リストと図7のウォーターマークのデータリストに設定情報を登録していく。
【0033】
図15は、ウォーターマーク定義ダイアログ1501を示す図である。ウォーターマーク定義ダイアログ1501は、入力デバイス108からの指示に従ってGUI部201がディスプレイ107上に表示する。ユーザはダイアログ内の各コントロールに指示を入力することにより、GUI部201が文書編集部203へ指示を送り、文書編集部203がページ属性リストに登録を行う。
【0034】
ウォーターマーク定義ダイアログ1501は、
ウォーターマークに使用する文字列を指定する文字列指定コントロール1502、
文字列のフォント種類を指定するフォント指定コントロール1503、
文字列のスタイルを指定するスタイル指定コントロール1504、
文字列のフォントサイズを指定するフォントサイズ指定コントロール1505、
文字列の色を指定する色指定コントロール1506、
から構成される。
【0035】
ウォーターマーク定義ダイアログで指定された各設定は、図7の属性リストに登録される。
【0036】
図16は、ウォーターマーク指定ダイアログ1601を示す図である。ウォーターマーク指定ダイアログ1601は、「ブック」「章」「ページ」それぞれに対して指定することが可能である。例えば、ブックをGUI部201にて選択している状態で、ウォーターマーク指定ダイアログでウォーターマークを指定した場合は、「ブック」の属性として登録される。
【0037】
ウォーターマーク指定ダイアログ1601は、
ページ上にオーバーレイするウォーターマークを指定するウォーターマーク指定コントロール1602、
ページ上のどの位置にウォーターマークを配置するかを指定するウォーターマーク配置指定コントロール1603、
から構成される。
【0038】
図17は、図14に示したブックに対しウォーターマークを設定した例を示す図である。全9ページの文書データに対して、1〜3ページ目(1章目)には、「CONFIDENTIAL」のウォーターマークが指定されている。また、7ページ目、9ページ目には、「コピー禁止」のウォーターマークが指定されている。
【0039】
<オブジェクト解析>
次に、オブジェクト解析と前述したオブジェクトリストの登録方法について説明する。この処理は、文書編集部203からの指示に従って、データ解析部205が記憶部109に格納されている文書データにアクセスして実行する。図8は、オブジェクトリスト800に格納される情報の一例を示す図である。例えば、図9(A)に示される座標に位置する長方形オブジェクトは、図9(B)に示す内容によってリストとして登録される。
【0040】
図10は、文書データの内部フォーマットから、図9に示したものと同様の長方形オブジェクトを読み込み、オブジェクト情報として取り出す例を示す図である。
【0041】
図11は、第1実施形態で利用するオブジェクトのブロック化(グループ化)のための手順を示すフローチャートである。本処理は、データ解析部205が実行する。
【0042】
データ解析部205は、800で示したオブジェクトリストLOからオブジェクトをひとつ取得し(S1101)、新しいオブジェクトグループGを生成する(S1102)。オブジェクトグループは、オブジェクトリストと同等の形式をもち、かつ処理部がひとつのオブジェクトとして操作することのできるデータ形式である。
【0043】
データ解析部205は、オブジェクトグループGにS1101で取得したオブジェクトを追加し(S1103)、そのオブジェクトをLOから削除する(S1104)。オブジェクトがまだLOに残っているかを確認し(S1105)、残っていなければグループGをLOに追加して終了する(S1106)。
【0044】
オブジェクトがLOに残っていれば、データ解析部はさらに、次のオブジェクトをLOから取得し(S1107)、オブジェクトグループGの中のオブジェクトGOを取得(S1108)する。GOが取得できなければ(S1109)、ステップS1102に戻る。GOが取得できれば(S1109)、POとGOの間の垂直方向の距離を計算する(S1110)。
【0045】
図12は、オブジェクト間の”距離”を説明する図である。オブジェクト間の”距離”とは、オブジェクトを包む外接矩形を考え、ある外接矩形と外接矩形の間の、最短の距離のことをいう。図12で、1201は長方形オブジェクト、1202は楕円オブジェクト、1203は楕円オブジェクトの外接矩形を表しており、矢印1204の長さが、これらのオブジェクト間の距離に相当する。
【0046】
さらにデータ解析部は、計算した距離は閾値以内かを確認し(S1111)、閾値以上離れていればステップS1108に戻る。閾値以内であれば、ステップS1103に戻る。ここで”閾値”とは、システムで定められる一定の大きさの距離のことで、この距離の閾値でブロック化するオブジェクト同士を分離している。
【0047】
図13は、オブジェクトのブロック化の様子を示す図である。ページ1301上で、オブジェクト1311と1312がブロック化され、点線で示したブロック1321になっている。同様に、オブジェクト1313と1314が1322に、1315と1316が1323にそれぞれブロック化されている。
【0048】
第1実施形態では、ページ内の編集オブジェクトの単位は、最小の区分けによるオブジェクトではなく、ある程度のまとまったオブジェクト群からなる「ブロック」として考える。もちろん、最小の区分けを単位として扱う構成でもかまわない。そのため、第1実施形態におけるオブジェクト編集を行う手順においては、ブロックを対象とすることにする。そこで、以降では、”オブジェクト”と記載する場合、図13のようにオブジェクトをまとめた”ブロック”も含むこととする。
【0049】
<装置の動作>
図18は、第1実施形態に係る文書編集装置における編集操作のフローチャートである。第1実施形態において、編集操作とは、異なるページ間でのオブジェクトの移動処理(カット&ペースト)・複製処理(コピー&ペースト)である。例えば、3ページ目にあるオブジェクトを2ページ目に移動・複製する編集操作などである。以後、オブジェクトが現在配置されているページを“編集元ページ”、移動・複製後にオブジェクトがあるページを“編集先ページ”という言葉で表現する。
【0050】
ユーザが入力デバイス108に対してオブジェクトの移動・複製操作を行うと、GUI部201は入力デバイス108に対する操作を検知して、入力制御部202に操作に応じた指示を行う。指示を受けた入力制御部202は、操作に応じたオブジェクトの移動・複製を文書編集部203へ指示する。指示を受けた文書編集部203は、データ解析部205へアクセスして編集対象オブジェクトを取得し、指示された移動・複製操作を開始する。そのあと、入力制御部202から編集先ページが指定されて、文書編集部203が編集先ページへオブジェクトの移動・複製操作を実行する。
【0051】
その際、入力制御部202から指定された編集元のページ情報(例えば、図3の303B)と編集先のページ情報(例えば、図3の303A)が異なっている場合は、ページをまたぐ編集処理となり、図18に示すフローチャートに従って処理を行う。図19は、オブジェクト編集のGUI表示の一例を示す図である。
【0052】
1901はページ、1902はページ属性(図では“マル秘”スタンプを示している)を示している。1903は、ページ1901上に存在するオブジェクトを示している。なお、スタンプ1902は概念的に示しているものであり、実際にページ上に描画されているものではない。1904はマウスカーソルを示している。例えば、ユーザ操作としては2ページ目のオブジェクトをマウスカーソルで指定して、1ページ目に移動(1905は移動中のゴーストを示す)させて、配置位置を決定する操作をトリガーに、図18に示すフローチャートに従って、処理を行う。つまり、ユーザによる、ページ1901上に存在するオブジェクト1903をマウスカーソル1904で選択して、異なるページへ移動・複製する操作により開始される。なお、オブジェクト1903をマウスカーソル1904で選択するとゴースト1905が表示される。
【0053】
ステップS1801では、編集元ページの属性情報を、図4〜6で示した「ブック」「章」「ページ」属性リストから取得する。ステップS1802では、編集先ページの属性情報を同じく取得する。ページ属性リスト(図6)を例にとると、取得するページ属性情報は、No2,3,4のウォーターマークIDとなる。具体的な処理は、後述するS2001,S2006と同様である。なお、ステップS1802で、ウォーターマークIDが存在しない場合は、NULLを取得情報とする。
【0054】
ステップS1803では、S1801とS1802との各々で取得したページ属性を比較する。同一のページ属性であった場合は編集先ページへ指示されたオブジェクト編集を実行する。
【0055】
ステップS1804では、S1803にて異なるページ属性であった場合は、編集対象オブジェクトとS1801で取得したページ属性が重なりを持つかを判断する。重なっていないと判断した場合は、編集先ページへ指示されたオブジェクト編集を実行する。一方、重なっている場合は、ステップS1805に進む。
【0056】
ステップS1805では、S1801で取得したページ属性と編集対象オブジェクトとを合成する。
【0057】
ステップS1806では、S1805で合成処理された編集対象オブジェクト(合成オブジェクト)を編集先(移動先/複製先)ページへ移動/複製する。ここで、合成したオブジェクトの外接矩形を描画すると好適である。この処理は、S1805で合成した編集元のページ属性が、合成後にどのオブジェクトに影響を与えているのかを視覚的に示す効果を与えるためである。
【0058】
ステップS1807では、オブジェクト編集の結果、不要になったページ属性やページそのものを削除する。
【0059】
上述の一連の処理を実行後、合成したオブジェクトを編集先ページへオブジェクト編集を実行する。オブジェクトを移動した際は、編集元ページのオブジェリストから移動した編集オブジェクトの情報を削除し、編集先ページのオブジェクトリストに編集オブジェクトの情報を追加する。一方、オブジェクトを複製した際は、編集先ページのオブジェクトリストに編集オブジェクトの情報を追加する。なお、S1804,S1806,S1807の各ステップについては、必須の処理ではなく省略してもかまわない。
【0060】
<ページ属性取得処理(S1801)の詳細>
図20は、S1801の処理の詳細を示すフローチャートである。
【0061】
ステップS2001では、図4〜6で示した「ブック」「章」「ページ」属性リストから、編集元ページ属性の情報を取得する。図3のページ303Bを仮に編集元ページとすると、ページ303Bのページ属性(2)へアクセスし、ページ属性リスト(図6)を取得する処理となる。
【0062】
ステップS2002では、ステップS2001で取得したページ属性情報の中に、ウォーターマークが存在するか否かを判断する。ウォーターマークが存在しない場合は、通常の編集操作となる。例えば前述した図6のページ属性リストのNo2,3,4の属性が存在するか否かで判断する。ウォーターマークの存在する場合は、ステップS2003に進む。
【0063】
ステップS2003では、ウォーターマークがスタンプか否かを判断(図6のNo2が存在するか否か)する。
【0064】
スタンプのウォーターマークが存在した場合は、S2001で取得したページ属性情報から、スタンプに関する情報(図6のNo2)のみを取得する(S2006)。もしくは、スタンプに関するID(図6のNo2に保持されているウォーターマークID)を取得し、情報にアクセスできるようにしておく。
【0065】
ウォーターマークがスタンプではなかった場合は、コメント・注釈か否かを判断(図6のNo4が存在するか否か)する(S2004)。ウォーターマークがコメント・注釈であった場合は、S2001で取得したページ属性情報から、コメント・注釈に関する情報(図6のNo4)のみを取得する(S2005)。もしくは、コメント・注釈のID(図6のNo4に保持されているウォーターマークID)を取得し、情報にアクセスできるようにしておく。
【0066】
ステップS2005では、ページ属性として保持しているコメント・注釈の中で、編集対象オブジェクトと重なりをもつIDのみを取得する。これは、ページ内に複数のコメント・注釈が存在する場合(図6のNo4に複数のウォーターマークIDが保持されている場合)に、編集対象オブジェクトと関係のあるもののみを抽出するためである。重なりの判断は、ページ属性リスト(図4)のNo4ウォーターマークIDに保持しているページ上の位置情報と、オブジェクトリスト800に保持している編集対象オブジェクトの位置情報とを比較することで行う。
【0067】
上述のステップS2005,S2006で編集対象オブジェクトと連動して移動・複製すべきページ属性が取得できたら、S1802へ進む。
【0068】
なお、上述の処理においては、ウォーターマークのヘッダ・フッタ(図6のNo3)に関しては判断処理を行っていない。これは、ページ番号などのヘッダ・フッタはページとの依存性があり、オブジェクトの移動・複製に応じてページ間で変更してはいけない属性であるためである。したがって、ヘッダ・フッタは上述の合成処理(S1805)の対象外となるページ属性となる。ただし、ヘッダ・フッタで定義されるページ属性の中で、ページとの依存性がないデータが存在する場合は、判断処理を追加して、合成対象のページ属性としてもかまわない。
【0069】
<ページ属性比較処理(S1803)の詳細>
図21及び図23は、ステップS1803の処理を詳細に示したフローチャートである。
【0070】
図21は、ウォーターマークがスタンプの場合の比較処理を示す図である。S1801とS1802で取得したウォーターマークIDを比較し(S2101)、異なる値であった場合はS1804へ進む。ウォーターマークIDが同一の値であった場合は、それぞれのウォーターマークに差異はないと判断し、通常の編集操作となる。
【0071】
図23は、ウォーターマークがコメント・注釈の場合の比較処理を示す図である。S1801とS1802で取得したウォーターマークIDを比較し(S2301)、異なる値であった場合はS1804へ進む。ウォーターマークIDが同一の値であった場合は、それぞれのウォーターマークIDに対応する配置位置を比較する(S2302)。コメント・注釈の場合は、ページをまたいで同一の設定を行うことは少ない。しかし、例えばレビュー範囲を網掛け注釈で示す際に、複数ページ全体で同一の範囲(位置)で指定されることが考えられる。このようなケースを想定し、S2302で配置位置の判断処理を行っている。ウォーターマークIDに対応する配置位置が異なれば、S1804へ進む。ウォーターマークIDに対応する配置位置が同一であれば、それぞれのウォーターマークに差異はないと判断し、通常の編集操作となる。
【0072】
<オブジェクト領域とページ属性領域との重なり判定処理(S1804)の詳細>
図24は、S1804の処理を詳細に示したフローチャートである。S1804は、編集元のウォーターマーク属性がスタンプであるときに実行される処理である。スタンプ以外のウォーターマーク属性の場合は必須の処理ではない。ただし、スタンプと同様の性質であるウォーターマークであれば、本処理を実行するようにしても構わない。
【0073】
ステップS2401では、オブジェクトリスト800に保持ししている編集対象オブジェクトの位置(座標)情報(803,804など)より、編集対象オブジェクトの外接矩形領域を取得する。このとき、編集対象オブジェクトとして、同一ページに含まれる複数のオブジェクトが指定されていた場合は、指定されているそれぞれのオブジェクトを包含する矩形領域を、外接矩形領域として取得する。
【0074】
図33は、編集対象オブジェクトが同時に複数個指定されている場合の図を示している。2501はページ、2502,2503はオブジェクトを示している。オブジェクト2502,2503を同時に指定している場合は、双方を包含する矩形領域3301を外接矩形領域として取得する。
【0075】
ステップS2402では、編集元のページ属性より取得したウォーターマーク(図6のNo2に保持されるウォーターマークID)をメモリ上にビットマップ展開(描画)する。なお、編集元のページ属性は、例えば、ページ303Bのページ情報(2)よりアクセスできるページ属性リスト図6である。
【0076】
ステップS2403では、S2402で展開した描画データと、編集元のページ属性より取得可能な位置情報(図6に示したデータで保持されるウォーターマーク位置情報)より、ウォーターマークの描画領域(の外接矩形領域)を取得する。
【0077】
ステップS2404では、S2401とS2403で取得した外接矩形領域を比較する。重なりがあればS1805へ進む。重なりがなければ、通常の編集操作となる。
【0078】
上述の処理は、編集元ページ上で、ウォーターマークと編集対象オブジェクトが重なりを持っていれば、ウォーターマークをS1805の合成対象にするための処理である。
【0079】
図25は、重なりを持つケースと持たないケースとのそれぞれの例を示す図である。2504はウォーターマークおよび外接矩形領域を示している。オブジェクト2502とウォーターマーク2504は、外接矩形領域が重なりを持っているため、オブジェクト2502を編集対象オブジェクトとした場合は、ウォーターマーク2504は合成対象となる。一方、オブジェクト2503とウォーターマーク2504は、外接矩形領域が重なりを持っていないため、オブジェクト2503を編集対象オブジェクトとした場合は、ウォーターマーク2504は合成対象とならない。
【0080】
<合成処理(S1805)の詳細>
図26は、S1805の処理を詳細に示すフローチャートである。なお、ステップS2601〜S2604の各々は、上述したステップS2401〜S2403およびS2003の処理と同様であるため詳細な説明は省略する。
【0081】
ステップS2601〜S2603において、合成対象のウォーターマークをビットマップ変換し、外接矩形領域を取得する。つまり、ウォーターマークを、編集対象オブジェクトに合成可能な形式に変換する。なお、S2402にて既にウォーターマークをビットマップ展開している場合は、そのビットマップデータを再利用するよう構成してもかまわない。
【0082】
ステップS2604では、ウォーターマークがスタンプか否かを判断する。スタンプではなかった場合は編集対象オブジェクトにS2602で作成したビットマップデータを合成(S2607)する。ウォーターマークがスタンプであった場合は、S2605,S2606にて編集対象オブジェクトの大きさに合わせるように、ウォーターマークを拡縮する処理を実行する。
【0083】
ステップS2605では、S2601で取得した編集対象オブジェクトの外接矩形と、S2603で取得したウォーターマークの外接矩形のサイズを比較する。
【0084】
ステップS2606では、縦方向もしくは横方向のサイズが異なる場合は、編集対象オブジェクトの外接矩形サイズに合わせるように拡縮率を算出し、S2602のビットマップデータを拡縮処理する。
【0085】
図27は、S2602の拡縮処理の例を示す図である。2701は編集対象オブジェクトの外接矩形領域、2702はウォーターマークの外接矩形領域を示している。縦方向および横方向のサイズが異なるため、ウォーターマークの外接矩形2702を、編集対象オブジェクトの外接矩形領域に内包されるよう(2703)に拡縮率を算出し、ビットマップデータを外接矩形領域内に含まれるように拡縮処理する。拡縮は縦横等倍で行われる形式でも良いし、変倍で行われる形式でも良い。もちろん、ユーザが指定するよう構成しても構わない。
【0086】
ステップS2607では、S2602もしくは拡縮処理を施したS2606で作成したビットマップデータを、編集対象オブジェクトに合成する。合成処理は、編集対象オブジェクトとウォーターマークのビットマップデータの中心点を合わせるように処理される。なお、編集対象オブジェクトの中心点は、オブジェクトリスト800に保持される座標より算出する。また、ウォーターマークのビットマップデータの中心点は、S2603で取得した外接矩形サイズ、またはその外接矩形サイズに、S2606で拡縮処理を施したサイズより、算出する。さらに、合成したウォーターマークのビットマップデータの種類、位置(座標)は、オブジェクトリスト800へ新規IDで登録し、合成した編集対象オブジェクトと同じブロックとして管理する。
【0087】
ステップS2607にて合成処理を実行した後は、S1806へ進む。S1806は編集先ページへ、S2607で合成した編集対象オブジェクトを移動・複製する処理である。S2607で合成した編集対象オブジェクトとウォーターマークをオブジェクトリスト800から取得し、編集先ページのオブジェクトリスト800へ登録する。オブジェクトリスト800の座標データ(803,084など)には、GUI部201、入力制御部202から受け取った編集先ページ上の移動/複製位置情報を登録する。ページ毎にオブジェクトリスト800を管理していないデータ構造であれば、編集対象オブジェクトとウォーターマークのオブジェクトIDのページへのリンクを変更する処理となる。
【0088】
図28は、スタンプのウォーターマークをオブジェクトに合成して移動する様子を示す図である。2801は移動前の編集対象オブジェクト、2802はページ属性として保持されているスタンプ(円囲みの“秘”)を示している。マウスカーソル1904で、編集対象オブジェクト2801を1ページ目に移動させると、スタンプ(円囲みの“秘”)が編集対象オブジェクトに合成されて処理される(2803)。この処理により、“秘”として明示していたオブジェクトが、ページ移動後も“秘”として明示することが可能になる。
【0089】
図29は、コメント(レビュー対象を網掛けで示す)のウォーターマークを合成して移動する例を示す図である。2901は移動前の編集対象オブジェクト、2902はページ属性として保持されているコメントを示している。ここではコメントとして、“レビューして下さい”の文字列を含む網掛けが指定されている。マウスカーソル1904で、編集対象オブジェクト2901を1ページ目に移動させると、コメントが編集対象オブジェクトに合成されて処理される(2903)。この処理により、コメントで明示していたレビューの範囲が、オブジェクト移動のページ間での移動後も範囲を保ったまま明示することが可能になる。
【0090】
図30は、ウォーターマークをオブジェクトに合成してページ間移動を実行した際の編集対象オブジェクトを示す図である。3001は、編集対象オブジェクトの外接矩形を示しており、実際にページ上に描画されるものである。ウォーターマークを合成したオブジェクトの外接矩形を表示することで、ウォーターマークの効果範囲をユーザに明示することが可能になる。この外接矩形の描画処理は、必須の処理ではないため、省略することも可能である。また、ユーザの指定に従い外接矩形の描画処理を実行/非実行するよう構成しても構わない。
【0091】
<後処理(S1807)の詳細>
図31は、S1807の処理を詳細に示すフローチャートである。
【0092】
ステップS3101では、編集元ページのオブジェクトリストを取得して、ページ内にオブジェクトが存在するか否かを判断する。例えば、ページ毎にオブジェクトリストを管理している形式であれば、オブジェクトリストが空か否かを判断する。
【0093】
オブジェクトが存在しなければ、ステップS3102において編集元ページを削除し、処理を終了する。一方、オブジェクトが存在する場合は、ステップS3103において、合成したウォーターマーク属性をページ属性リストから削除するか否かを判断する。
【0094】
図34は、ユーザからの指定に基づいて判断処理を行なう場合のGUI表示の例を示す図である。3401はメッセージ外観、3403はメッセージ内容を承認してメッセージを終了するYESボタン、3404は、メッセージ内容を拒否してメッセージを終了するNOボタンを示している。3402は、編集元ページに設定されている合成処理したウォーターマーク属性を表示しているテキストボックスである。
【0095】
このGUI表示において、YESボタン(3403)が押されたことを入力制御部から受け取った時は、合成したウォーターマーク属性を削除すると判断し、ページ属性リストから対象のウォーターマーク属性を削除する(S3104)。NOボタン(3404)が押されたことを入力制御部から受け取った時は、合成したウォーターマーク属性を削除しないと判断し、処理を終了する。
【0096】
なお、ステップS3103の判断処理は、文書処理システムによって自動処理される構成でも構わない。
【0097】
図32および図35は、図31の処理を説明する図であり、3ページの原稿データにおいて、2ページ目のオブジェクトをウォーターマーク(円囲みの“秘”)と合成し1ページ目に移動した場合の例である。
【0098】
図32は、S3103で合成したウォーターマーク属性を削除すると判断した場合の処理を説明する図である。S3201はオブジェクトとウォーターマークの合成移動を示している。3202は、2ページ目のオブジェクトが1ページ目に移動された状態を示している。合成したウォーターマーク属性を削除すると判断した場合、2ページ目のウォーターマーク(円囲みの“秘”)が削除される(3203)。
【0099】
図35は、S3101で編集元ページのオブジェクトが存在しないと判断した場合の処理を説明する図である。S3501はオブジェクトとウォーターマークの合成移動を示している。3502は、2ページ目のオブジェクトが1ページ目に移動された状態を示している。編集元ページには、ウォーターマーク属性のみ残った状態となる。2ページ目にはオブジェクトが存在しないため、ページが削除され(3503)、2ページの原稿データとなる(3504)。
【0100】
以上説明したとおり、第1実施形態に係る文書編集装置によれば、文書データ内のオブジェクトの編集処理を行なった場合においても、当該オブジェクトとページ属性との不整合を低減することが可能となる。具体的には、ページ属性を編集対象となる描画オブジェクトに合成することにより、編集先ページに配置された描画オブジェクトにおいても編集元ページでのページ属性を表すことが可能となる。さらに、編集先ページにもともと配置されていた他の描画オブジェクトへ必要のないページ属性が付加されることを低減することも可能となる。
【0101】
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0102】
なお、本発明は、前述した実施形態の機能を実現するプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置が、供給されたプログラムコードを読み出して実行することによっても達成される。従って、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。
【0103】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0104】
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク(CD、DVD)、光磁気ディスク、磁気テープ、不揮発性のメモリカード、ROMなどがある。
【0105】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0106】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0107】
【図1】第1実施形態に係る文書編集装置を構成するPCのハードウェア構成図である。
【図2】第1実施形態に係る文書編集装置を構成するPCのソフトウェア構成図を示す。
【図3】文書データの形式を模式的に示す図である。
【図4】ブック属性のリストを示す図である。
【図5】章属性のリストを示す図である。
【図6】ページ属性のリストを示す図である。
【図7】ウォーターマーク属性のデータリストである。
【図8】文書データを構成するページ内のオブジェクト情報を管理するオブジェクトリストの例を示す図である。
【図9】長方形オブジェクトおよび対応するリストを示す図である。
【図10】文書データの内部フォーマットからオブジェクト情報を取り出す例を示す図である。
【図11】第1実施形態で利用するオブジェクトのブロック化のための手順を示すフローチャートである。
【図12】オブジェクト間の”距離”を説明する図である。
【図13】オブジェクトのブロック化の様子を示す図である。
【図14】文書編集装置のGUI部201の表示の一例を示す図である。
【図15】ウォーターマーク定義ダイアログ1501を示す図である。
【図16】ウォーターマーク指定ダイアログ1601を示す図である。
【図17】図14に示したブックに対しウォーターマークを設定した例を示す図である。
【図18】第1実施形態に係る文書編集装置における編集操作のフローチャートである。
【図19】オブジェクト編集のGUI表示の一例を示す図である。
【図20】S1801の処理の詳細を示すフローチャートである。
【図21】ウォーターマークがスタンプの場合の比較処理を示す図である。
【図22】ウォーターマーク属性のうちのコメント・注釈属性を管理するデータリストである。
【図23】ウォーターマークがコメント・注釈の場合の比較処理を示す図である。
【図24】S1804の処理を詳細に示したフローチャートである。
【図25】重なりを持つケースと持たないケースとのそれぞれの例を示す図である。
【図26】S1805の処理を詳細に示すフローチャートである。
【図27】S2602の拡縮処理の例を示す図である。
【図28】スタンプのウォーターマークをオブジェクトに合成して移動する様子を示す図である。
【図29】コメントのウォーターマークを合成して移動する例を示す図である。
【図30】ウォーターマークをオブジェクトに合成してページ間移動を実行した際の編集対象オブジェクトを示す図である。
【図31】S1807の処理を詳細に示すフローチャートである。
【図32】S3103で合成したウォーターマーク属性を削除すると判断した場合の処理を説明する図である。
【図33】編集対象オブジェクトが同時に複数個指定する場合を示す図である。
【図34】ユーザからの指定に基づいて判断処理を行なう場合のGUI表示の例を示す図である。
【図35】S3101で編集元ページのオブジェクトが存在しないと判断した場合の処理を説明する図である。
【図36】従来技術における課題の一例を説明する図である。
【特許請求の範囲】
【請求項1】
複数ページから構成される文書データを編集する文書編集装置であって、
文書データに対して処理を実行する場合に、当該処理にページをまたいだオブジェクトの移動処理または複製処理が含まれるか否かを判定する判定手段と、
前記判定手段により前記処理に移動処理または複製処理が含まれると判定された場合、前記オブジェクトが現在配置されている編集元ページのページ属性に関する情報を前記オブジェクトに合成し、合成オブジェクトを生成する合成手段と、
前記合成手段により生成された前記合成オブジェクトを移動先または複製先となる編集先ページのオブジェクトとして配置する配置手段と、
を備えることを特徴とする文書編集装置。
【請求項2】
前記編集元ページのページ属性と前記編集先ページのページ属性とを取得し、互いに異なるか否かを判定するページ属性比較手段をさらに備え、
前記合成手段は、前記ページ属性比較手段により、前記編集元ページのページ属性と前記編集先ページのページ属性とが互いに異なると判定された場合に前記合成を実行することを特徴とする請求項1に記載の文書編集装置。
【請求項3】
前記合成手段は、前記編集元ページのページ属性に関する情報を前記オブジェクトに合成可能な形式に変換し、該変換された情報を前記オブジェクトに合成することを特徴とする請求項1または2に記載の文書編集装置。
【請求項4】
前記合成手段は、前記編集元ページのページ属性に基づく画像を、前記オブジェクトに外接する矩形領域内に含まれるように拡縮して前記オブジェクトに合成し、前記合成オブジェクトを生成することを特徴とする請求項1乃至3の何れか一項に記載の文書編集装置。
【請求項5】
前記処理が同一ページに含まれる複数のオブジェクトに対し同時に行なわれる場合、
前記合成手段は、前記編集元ページのページ属性に関する情報を前記複数のオブジェクトに対し1つだけ合成することを特徴とする請求項1乃至4の何れか一項に記載の文書編集装置。
【請求項6】
複数ページから構成される文書データを編集する文書編集装置の制御方法であって、
文書データに対して処理を実行する場合に、当該処理にページをまたいだオブジェクトの移動処理または複製処理が含まれるか否かを判定する判定工程と、
前記判定工程により前記処理に移動処理または複製処理が含まれると判定された場合、前記オブジェクトが現在配置されている編集元ページのページ属性に関する情報を前記オブジェクトに合成し、合成オブジェクトを生成する合成工程と、
前記合成工程により生成された前記合成オブジェクトを移動先または複製先となる編集先ページのオブジェクトとして配置する配置工程と、
を備えることを特徴とする文書編集装置の制御方法。
【請求項7】
コンピュータを、請求項1乃至5の何れか一項に記載の文書処理装置の各手段として機能させるためのプログラム。
【請求項1】
複数ページから構成される文書データを編集する文書編集装置であって、
文書データに対して処理を実行する場合に、当該処理にページをまたいだオブジェクトの移動処理または複製処理が含まれるか否かを判定する判定手段と、
前記判定手段により前記処理に移動処理または複製処理が含まれると判定された場合、前記オブジェクトが現在配置されている編集元ページのページ属性に関する情報を前記オブジェクトに合成し、合成オブジェクトを生成する合成手段と、
前記合成手段により生成された前記合成オブジェクトを移動先または複製先となる編集先ページのオブジェクトとして配置する配置手段と、
を備えることを特徴とする文書編集装置。
【請求項2】
前記編集元ページのページ属性と前記編集先ページのページ属性とを取得し、互いに異なるか否かを判定するページ属性比較手段をさらに備え、
前記合成手段は、前記ページ属性比較手段により、前記編集元ページのページ属性と前記編集先ページのページ属性とが互いに異なると判定された場合に前記合成を実行することを特徴とする請求項1に記載の文書編集装置。
【請求項3】
前記合成手段は、前記編集元ページのページ属性に関する情報を前記オブジェクトに合成可能な形式に変換し、該変換された情報を前記オブジェクトに合成することを特徴とする請求項1または2に記載の文書編集装置。
【請求項4】
前記合成手段は、前記編集元ページのページ属性に基づく画像を、前記オブジェクトに外接する矩形領域内に含まれるように拡縮して前記オブジェクトに合成し、前記合成オブジェクトを生成することを特徴とする請求項1乃至3の何れか一項に記載の文書編集装置。
【請求項5】
前記処理が同一ページに含まれる複数のオブジェクトに対し同時に行なわれる場合、
前記合成手段は、前記編集元ページのページ属性に関する情報を前記複数のオブジェクトに対し1つだけ合成することを特徴とする請求項1乃至4の何れか一項に記載の文書編集装置。
【請求項6】
複数ページから構成される文書データを編集する文書編集装置の制御方法であって、
文書データに対して処理を実行する場合に、当該処理にページをまたいだオブジェクトの移動処理または複製処理が含まれるか否かを判定する判定工程と、
前記判定工程により前記処理に移動処理または複製処理が含まれると判定された場合、前記オブジェクトが現在配置されている編集元ページのページ属性に関する情報を前記オブジェクトに合成し、合成オブジェクトを生成する合成工程と、
前記合成工程により生成された前記合成オブジェクトを移動先または複製先となる編集先ページのオブジェクトとして配置する配置工程と、
を備えることを特徴とする文書編集装置の制御方法。
【請求項7】
コンピュータを、請求項1乃至5の何れか一項に記載の文書処理装置の各手段として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図26】
【図29】
【図31】
【図34】
【図25】
【図27】
【図28】
【図30】
【図32】
【図33】
【図35】
【図36】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図26】
【図29】
【図31】
【図34】
【図25】
【図27】
【図28】
【図30】
【図32】
【図33】
【図35】
【図36】
【公開番号】特開2010−160578(P2010−160578A)
【公開日】平成22年7月22日(2010.7.22)
【国際特許分類】
【出願番号】特願2009−1106(P2009−1106)
【出願日】平成21年1月6日(2009.1.6)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年7月22日(2010.7.22)
【国際特許分類】
【出願日】平成21年1月6日(2009.1.6)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]