(57)【要約】【課題】  座標変換可能な図形編集方法を持つ図形編集装置において、文字列が座標変換されていると可読性や操作性が低下、編集が難しくなってしまう。【解決手段】  座標系が反転しているかどうかを判定する座標系判定手段と、  テキストの中心線を求める中心線計算手段と、  心線を中心として座標系を反転する座標反転手段と、編集開始時に前記座標系判定手段によって座標系が反転していると判断された場合に前記座標反転手段が前記中心線計算手段を用いて計算した中心線を軸として文字列のベースライン位置を反転し編集を実行した後に、再び前記座標判定手段により前記中心線計算手段を用いて求めた編集後のデータの中心線を軸としてベースライン位置を反転する手段とを持つ。【選択図】  図１
2009181434.tif 000002
【特許請求の範囲】
【請求項１】
座標系を行列変換する事が可能な図形を編集できる図形編集方法であって、
図形を編集する際に行列変換の効果を打ち消した状態で編集する事が可能であり、
さらに編集を終えたときに前記行列変換の効果を元に戻した状態へと復元する事が可能であると共に、
座標系が反転しているかどうかを判定する、座標系判定工程と、
テキストの中心線を求める中心線計算工程と
中心線を中心として座標系を反転する、座標反転工程と、
編集開始時に前記座標系判定工程によって座標系が反転していると判断された場合に、前記座標反転工程が、前記中心線計算工程を経てて計算した中心線を軸として文字列のベースライン位置を反転し、編集を実行した後に、再び、
前記座標判定工程により、前記中心線計算工程を用いて求めた編集後のデータの中心線を軸としてベースライン位置を反転する
事を特徴とする図形編集方法。
【請求項２】
前記中心線計算工程は、複数行からなるテキスト図形に関しては、図形全体の中心線を求め、その中心線に対象になるように各行のベースライン位置を反転する事を特長とする請求項１に記載の図形編集方法。
【請求項３】
前記座標系判定工程は、反転以外に座標系の回転が設定されていると判断する事が可能であり、
回転の属性を実施する座標回転工程を持ち、前記座標系判定工程により回転が設定されていると判定された場合に、前記座標反転工程と共に前記座標回転工程により回転効果を打ち消すことを特長とする請求項１又は、請求項２に記載の図形編集方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は図形編集方法及びそのシステム、例えば図形編集プログラムや画像編集プログラム等、様々なプログラムによって生成される出力データをひとつの文書としてまとめ、その文書に対する編集機能を提供する図形編集方法及びそのシステムに関し、特にパーソナルコンピュータ等の情報処理とプリンタから成るシステムにおける図形編集方法及びそのシステムに関するものである。
【背景技術】
【０００２】
図形編集が可能なアプリケーションでは、様々な図形の編集機能を持っている。位置調整やサイズ変更の機能、Z軸方向の並び替等の基本的な機能だけではなく、図形の回転機能やX軸・Y軸反転機能を持っているものがある。
【０００３】
編集対象とする図形が直線や矩形のような簡単なものであれば、回転や反転をした状態で編集してもユーザが混乱する事は無い。ところが編集対象が図形や写真のように上下左右の方向の概念を持っている場合、回転や反転した状態ではユーザが混乱する場合がある。
【０００４】
図２は、回転や反転処理を実施していない文字列の例を示す。この場合、座標系は、X軸が水平方向右側へ、Y軸が垂直方向上側へそれぞれ伸びている。
【０００５】
図３は、回転や反転処理を実施した場合の文字列の例を示している。図３−１は反時計回り45度の回転を、図３−２はY軸方向の反転を、図３−３はX軸方向の反転をした場合の例である。
【０００６】
回転や反転すると文字自体が読みにくくなる。そして、文字列として編集する場合には更なる問題がある。文字列が左から右へと流れる言語の場合で考える。Y軸方向に反転すると、文字列は右から左へと流れるようになる。文字列から文字を削除しようとした場合、バックスペースで文字を消す場合、文字カーソル左右にある文字の内文字列の先頭側が削除される。通常は文字列の先頭が左側なので文字カーソルの左側の文字が消えるが、Y軸反転した文字列では文字の先頭が右側に来ているので文字カーソルの右側の文字が消える。このように、回転や反転した図形では、通常の使い勝手と変わるためユーザが混乱し、誤操作の原因となる。
【０００７】
ユーザの誤操作を防ぐために、文字編集時に一時的に回転角を変更し、その後元に戻すという処理をしているアプリケーションがある。
【０００８】
例えば、マイクロソフト社のプレゼンテーションソフトであるパワーポイントでは、文字列を90度単位の回転に戻している。例えば、文字列を40度回転させた場合は、文字編集時に文字列が０度回転の位置になり、文字列を50度回転させた場合は、文字編集時に９０度回転の位置になる。
【０００９】
また、特公平08-007760によれば、立体画像の編集・操作を容易にする目的で、編集対象立体図形の上下左右に鏡を置いてその鏡に移っている状態の図を表示するという先行技術がある。この技術を用いても、編集対称図形そのものは反転して表示されてはいないため、依然として回転や反転などの処理が施された図形を編集する際の誤操作の原因解消にはならない。
【００１０】
また、特開2007-004676によれば、テキスト向きが縦横で変わっている場合に、文字列の入力画面を表示する事で、文字の向きが正立していない場合であっても文字列の編集を容易にしようとするとう先行技術がある。この技術を用いた場合、文字の編集自体での誤操作防止に役立つ。しかし、別画面による編集であるため、文字列の編集後に文字列図形がどのような状態になるかは分かりにくくなるという新たな課題が生じていた。
【特許文献１】特公平08-007760号公報
【特許文献２】特開2007-004676号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
反転機能を持っている図形編集アプリケーションでは、反転した文字を編集する際に一時的に反転の効果を打ち消すように座標系の変更を行っている。しかし、従来は単純に座標系を元に戻しているだけで、文字列のベースラインの位置を考慮していないため、表示位置がずれてしまうという課題がある。
【課題を解決するための手段】
【００１２】
請求項１によれば、座標系が反転しているかどうかを判定する、座標系判定手段とテキストの中心線を求める中心線計算手段と心線を中心として座標系を反転する、座標反転手段と編集開始時に前記座標系判定手段によって座標系が反転していると判断された場合に、前記座標反転手段が、前記中心線計算手段を用いて計算した中心線を軸として文字列のベースライン位置を反転し、編集を実行した後に、再び前記座標判定手段により、前記中心線計算手段を用いて求めた編集後のデータの中心線を軸としてベースライン位置を反転する手段とを持つ。
【００１３】
請求項２によれば、前記中心線計算手段は、複数行からなるテキスト図形に関しては、図形全体の中心線を求め、その中心線に対象になるように各行のベースライン位置を反転する手段を有する。
【００１４】
請求項３によれば、前記座標系判定手段は、反転以外に座標系の回転が設定されていると判断する事が可能であり、回転の属性を実施する座標回転手段を持ち、前記座標系判定手段により回転が設定されていると判定された場合に、前記座標反転手段と共に前記座標回転手段により回転効果を打ち消す手段とを有する。
【発明の効果】
【００１５】
請求項１記載の図形編集装置によれば、座標系を変換されたテキスト図形を編集する際に、ベースライン位置も考慮して変換前の状態に戻して編集することが可能となるため、ユーザの操作性が向上する。
【００１６】
請求項２記載の図形編集装置によれば、複数行から成るテキスト図形を編集する際にも、ベースライン位置を各行の変換前の状態に戻して編集することが可能となるため、ユーザの操作性が向上する。
【００１７】
請求項３記載の図形編集装置によれば、回転処理と反転処理とが組み合わされた変換をされたテキスト図形を編集する際にも座標変換前の状態に戻して編集する事が可能となるためユーザの操作性が向上する。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の詳細を実施例の記述に従って説明する。
【００１９】
以下、添付図面に従って、本発明の実施形態を詳細に説明する。
【００２０】
［本実施形態の図形編集システムの概要］
本発明の第１の実施形態である図形編集システムの概要を、図１〜図１３を参照して説明する。この図形編集システムでは、一般アプリケーションにより作成されたデータファイルが、電子原稿ライタによって電子原稿ファイルに変換される。製本アプリケーションはその電子原稿ファイルを編集する機能を提供している。尚、本例では、それぞれの機能が明瞭になるように、一般アプリケーション、電子原稿ライタ、製本アプリケーション、電子原稿デスプーラと分離して示しているが、ユーザに提供されるパッケージはこれらに限定されず、これらを組み合わせたアプリケーションやグラフィックエンジンとして提供されてもよい。以下、その詳細は説明する。
【００２１】
＜本実施形態の図形編集システムのソフトウェア構成例＞
図１は、本実施形態の図形編集システムのソフトウェア構成を示す図である。
【００２２】
図形編集システムは、本発明の図形編集装置（情報処理装置）の好適な実施形態であるデジタルコンピュータ１００（以下、ホストコンピュータとも呼ばれる）によって実現されている。一般アプリケーション１０１は、ワードプロセシングやスプレッドシート、フォトレタッチ、ドローあるいはペイント、プレゼンテーション、テキスト編集などの機能を提供するアプリケーションプログラムであり、ＯＳに対する印刷機能を有している。これらアプリケーションは、作成された文書データや画像データなどのアプリケーションデータを印刷するにあたって、オペレーティングシステム（ＯＳ）により提供される所定のインタフェース（一般に、ＧＤＩと呼ばれる）を利用する。すなわち、アプリケーション１０１は、作成したデータを印刷するために、前記インタフェースを提供するＯＳの出力モジュールに対して、あらかじめ定められる、ＯＳに依存する形式の出力コマンド（ＧＤＩ関数と呼ばれる）を送信する。出力コマンドを受けた出力モジュールは、プリンタ等の出力デバイスが処理可能な形式にそのコマンドを変換し、変換されたコマンド（ＤＤＩ関数と呼ばれる）を出力する。出力デバイスが処理可能な形式はデバイスの種類やメーカ、機種などによって異なるために、デバイスごとにデバイスドライバが提供されており、ＯＳではそのデバイスドライバを利用してコマンドの変換を行い、印刷データを生成し、ＪＬ（Job Language）でくくることにより印刷ジョブが生成される。はＧＤＩ（Graphic Device Interface）と呼ばれるモジュールが相当する。
【００２３】
電子原稿ライタ１０２は、前述のデバイスドライバを改良したものであり、本図形編集システム実現のために提供されるソフトウェアモジュールである。ただし、電子原稿ライタ１０２は特定の出力デバイスを目的としておらず、後述の製本アプリケーション１０４やプリンタドライバ１０６により処理可能な形式に出力コマンドを変換する。この電子原稿ライタ１０２による変換後の形式（以後、「電子原稿形式」と呼ぶ。）は、ページ単位の原稿を詳細な書式をもって表現可能であれば特に問わない。実質的な標準形式のうちでは、例えばＰＤＦ形式や、ＳＶＧ形式などが電子原稿形式として採用できる。
【００２４】
アプリケーション１０１により電子原稿ライタ１０２を利用させる場合には、出力に使用するデバイスドライバとして電子原稿ライタ１０２を指定してから印刷を実行させる。ただし、電子原稿ライタ１０２によって作成されたままの電子原稿ファイルは、電子原稿ファイルとして完成した形式を備えていない。そのため、デバイスドライバとして電子原稿ライタ１０２を指定するのは製本アプリケーション１０４であり、その管理下でアプリケーションデータの電子原稿ファイルへの変換が実行される。製本アプリケーション１０４は、電子原稿ライタ１０２が生成した新規の未完成の電子原稿ファイルを後述する形式を備えた電子原稿ファイルとして完成させる。以下では、この点を明瞭に識別する必要がある際には、電子原稿ライタ１０２によって作成されたファイルを電子原稿ファイルと呼び、製本アプリケーションによって構造を与えられた電子原稿ファイルをブックファイルと呼ぶ。また、特に区別する必要がない場合は、アプリケーションにより生成されるドキュメントファイル、電子原稿ファイル、及びブックファイルをいずれも文書ファイル（または文書データ）と呼ぶ。
【００２５】
このようにデバイスドライバとして電子原稿ライタ１０２を指定し、一般アプリケーション１０１によりそのデータを印刷させることで、アプリケーションデータはアプリケーション１０１によって定義されたページ（以後、「論理ページ」あるいは「原稿ページ」と呼ぶ。）を単位とする電子原稿形式に変換され、電子原稿ファイル１０３としてハードディスクなどの記憶媒体に格納される。なお、ハードディスクは、本実施形態の図形編集システムを実現するコンピュータが備えているローカルドライブであってもよいし、ネットワークに接続されている場合にはネットワーク上に提供されるドライブであっても良い。
【００２６】
製本アプリケーション１０４は、電子原稿ファイルあるいはブックファイル１０３を読み込み、それを編集するための機能を利用者に提供する。ただし製本アプリケーション１０４は、各ページの内容を編集する機能は提供しておらず、ページを最小単位として構成される、後述する章やブックの構造を編集するための機能を提供している。
【００２７】
製本アプリケーション１０４によって編集されたブックファイル１０３を印刷する際には、製本アプリケーション１０４によって電子原稿デスプーラ１０５が起動される。電子原稿デスプーラ１０５は、製本アプリケーションと共にコンピュータ内にインストールされるプログラムモジュールであり、製本アプリケーションで利用するドキュメント（ブックファイル）を印刷する際に、プリンタドライバへ描画データを出力するために使用されるモジュールである。電子原稿デスプーラ１０５は、指定されたブックファイルをハードディスクから読み出し、ブックファイルに記述された形式で各ページを印刷するために、前述したＯＳの出力モジュールに適合する出力コマンドを生成し、不図示の出力モジュールに出力する。その際に、出力デバイスとして使用されるプリンタ１０７のドライバ１０６がデバイスドライバとして指定される。出力モジュールは、指定されたプリンタ１０７のプリンタドライバ１０６を用いて受信した出力コマンドを、プリンタ１０７で解釈実行可能なデバイスコマンドに変換する。そしてデバイスコマンドはプリンタ１０７に送信され、プリンタ１０７によってコマンドに応じた画像が印刷される。
【００２８】
＜電子原稿データの形式例＞
編集アプリケーション１０４の詳細を言及する前に、ブックファイルのデータ形式を説明する。ブックファイルは紙媒体の書物を模した３層の層構造を有する。上位層は「ブック」と呼ばれ、１冊の本を模しており、その本全般に係る属性が定義されている。その下の中間層は、本でいう章に相当し、やはり「章」と呼ばれる。各章についても、章ごとの属性が定義できる。下位層は「ページ」であり、アプリケーションプログラムで定義された各ページに相当する。各ページついてもページごとの属性が定義できる。ひとつのブックは複数の章を含んでいてよく、また、ひとつの章は複数のページを含むことができる。
【００２９】
図４は、ブックファイルの形式の一例を模式的に示す図である。この例のブックファイルにおける、ブック、章、ページは、それぞれに相当するノードにより示されている。ひとつのブックファイルはひとつのブックを含む。ブック、章は、ブックとしての構造を定義するための概念であるから、定義された属性値と下位層へのリンクとをその実体として含む。ページは、アプリケーションプログラムによって出力されたページごとのデータを実体として有する。そのため、ページは、その属性値のほか、原稿ページの実体（原稿ページデータ）と各原稿ページデータへのリンクを含む。尚、紙媒体等に出力する際の印刷ページは複数の原稿ページを含む場合がある。この構造に関してはリンクによって表示されず、ブック、章、ページ各階層における属性として表示される。
【００３０】
図４では、ブックファイルが１つの完結したブックである必要はないので、「ブック」を「文書」として一般化して記載している。
【００３１】
まず最上位に文書情報４０１を持つ。文書情報４０１は４０２〜４０４の３つのパートに大別できる。文書制御情報４０２は、文書ファイルのファイルシステムにおけるパス名などの情報を保持する。文書設定情報４０３は、ページレイアウトなどのレイアウト情報とステイプルなど印刷装置の機能設定情報を保持し、ブックの属性に相当する。章情報リスト４０４は、文書を構成している章の集合をリスト形式で保持する。リストが保持するのは章情報４０５である。
【００３２】
章情報４０５も４０６〜４０８の３つのパートに大別できる。章制御情報４０６は、章の名称などの情報を保持する。章設定情報４０７は、その章特有のページレイアウトやステイプルの情報を保持し、章の属性に相当する。章ごとに設定情報をもつことで最初の章は２UPのレイアウトその他の章は４UPのレイアウトのように複雑なレイアウトを持った文書を作成することが可能である。ページ情報リスト４０８は各章を構成する原稿ページの集合リスト形式で保持している。ページ情報リスト４０８が指示するのは、ページ情報データ４０９である。
【００３３】
ページ情報データ４０９も４１０〜４１２の３つのパートに大別される。ページ制御情報４１０は、ツリー上に表示するページ番号などの情報を保持する。ページ設定情報４１１は、ページ回転角やページの配置位置情報などの情報を保持し、原稿ページの属性に相当する。ページリンク情報４１２は、ページに対応する原稿データである。この例では、ページ情報４０９が直接原稿データを持つのではなく、リンク情報４１２だけをもち、実際の原稿データは、ページデータリスト４１３で保持する構成としている。
【００３４】
図５は、ブック属性（文書設定情報４０３）の例を示すリストである。通常、下位層と重複して定義可能な項目に関しては、下位層の属性値が優先採用される。そのため、ブック属性にのみ含まれる項目に関しては、ブック属性に定義された値はブック全体を通して有効な値となる。しかし、下位層と重複する項目については、下位層において定義されていない場合における既定値としての意味を有する。しかし、本例では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。なお、図示された各項目は具体的に１項目に対応するのではなく、関連する複数の項目を含むものもある。
【００３５】
ブック属性に固有の項目は、印刷方法、製本詳細、表紙／裏表紙、インデックス紙、合紙、章区切りの６項目である。これらは、ブックを通して定義される項目である。印刷方法属性としては、片面印刷、両面印刷、製本印刷の３つの値を指定できる。製本印刷とは、別途指定する枚数の用紙を束にして２つ折りにし、その束をつづり合わせることで製本が可能となる形式で印刷する方法である。製本詳細属性としては、製本印刷が指定されている場合に、見開き方向や、束になる枚数等が指定できる。
【００３６】
表紙／裏表紙属性は、ブックとしてまとめられる電子原稿ファイルを印刷する際に、表紙及び裏表紙となる用紙を付加することの指定、及び付加した用紙への印刷内容の指定を含む。インデックス紙属性は、章の区切りとして、印刷装置に別途用意される耳付きのインデックス紙の挿入の指定及びインデックス（耳）部分への印刷内容の指定を含む。この属性は、印刷用紙とは別に用意された用紙を所望の位置に挿入するインサート機能を持ったインサータが使用する印刷装置に備えられている場合か、あるいは、複数の給紙カセットを使用可能である場合に有効となる。これは合紙属性についても同様である。
【００３７】
合紙属性は、章の区切りとして、インサータからあるいは給紙カセットから供給される用紙の挿入の指定、及び、合紙を挿入する場合には、給紙元の指定などを含む。
【００３８】
章区切り属性は、章の区切り目において、新たな用紙を使用するか、新たな印刷ページを使用するか、特に何もしないか等の指定を含む。片面印刷時には新たな用紙の使用と新たな印刷ページの使用とは同じ意味を持つ。両面印刷時には、「新たな用紙の使用」を指定すれば連続する章が１枚の用紙に印刷されることは無いが、「新たな印刷ページの使用」を指定すれば、連続する章が１枚の用紙の表裏に印刷されることがあり得る。
【００３９】
図６は、章属性（章設定情報４０７）の、図７はページ属性（ページ設定情報４１１）の例を示すリストである。章属性とページ属性との関係もブック属性と下位層の属性との関係と同様である。
【００４０】
章属性に関しては、章に固有の項目はなく、すべてブック属性と重複する。したがって、通常は、章属性における定義とブック属性における定義とが異なれば、章属性で定義された値が優先する。しかし、本例では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。
【００４１】
ブック属性と章属性とにのみ共通する項目は、用紙サイズ、用紙方向、Ｎ−ｕｐ印刷指定、拡大縮小、排紙方法の５項目である。このうち、Ｎ−ｕｐ印刷指定属性は、１印刷ページに含まれる原稿ページ数を指定するための項目である。指定可能な配置としては、１×１や１×２、２×２、３×３、４×４などがある。排紙方法属性は、排出した用紙にステイプル処理を施すか否かを指定するための項目であり、この属性の有効性は使用する印刷装置がステイプル機能を有するか否かに依存する。
【００４２】
ページ属性に固有の項目には、ページ回転属性、ズーム、配置指定、アノテーション、ページ分割などがある。ページ回転属性は、原稿ページを印刷ページに配置する際の回転角度を指定するための項目である。ズーム属性は、原稿ページの変倍率を指定するための項目である。変倍率は、仮想論理ページ領域のサイズを１００％として指定される。仮想論理ページ領域とは、原稿ページを、Ｎ−ｕｐ等の指定に応じて配置した場合に、１原稿ページが占める領域である。例えば１×１であれば、仮想論理ページ領域は１印刷ページに相当する領域となり、１×２であれば、１印刷ページの各辺を約７０パーセントに縮小した領域となる。
【００４３】
ブック、章、ページについて共通な属性として、ウォーターマーク属性及びヘッダ・フッタ属性がある。ウォーターマークとは、アプリケーションで作成されたデータに重ねて印刷される、別途指定される画像や文字列などである。ヘッダ・フッタは、それぞれ各ページの上余白及び下余白に印刷されるウォーターマークである。ただし、ヘッダ・フッタには、ページ番号や日時など、変数により指定可能な項目が用意されている。なお、ウォーターマーク属性及びヘッダ・フッタ属性において指定可能な内容は、章とページとは共通であるが、ブックはそれらと異なっている。ブックにおいてはウォーターマークやヘッダ・フッタの内容を設定できるし、また、ブック全体を通してどのようにウォーターマークやヘッダ・フッタを印刷するかを指定することができる。一方、章やページでは、その章やページにおいて、ブックで設定されたウォーターマークやヘッダ・フッタを印刷するか否かを指定できる。
【００４４】
＜本実施形態の図形編集システムのUI例＞
図８は、製本アプリケーション１０４のＵＩ画面の一例である。ＵＩ画面８００は、ブックの構造を示すツリー部８０１と、印刷された状態を表示するプレビュー部８０２とを含む。ツリー部８０１には、ブックに含まれる章、各章に含まれるページが、図４のような木構造が分かるように表示される。ツリー部８０１に表示されるページは原稿ページである。プレビュー部８０２には、印刷ページの内容が縮小されて表示される。その表示順序は、ブックの構造を反映したものとなっている。
【００４５】
さて、開かれたブックファイルには、電子原稿ライタ１０２によって電子原稿ファイルに変換されたアプリケーションデータを、新たな章として追加することができる。この機能を電子原稿インポート機能と呼ぶ。この機能は、図８の画面にアプリケーションデータをドラッグアンドドロップ操作することで起動される。
【００４６】
図９は、製本アプリケーション１０４から起動したエディタ画面の一例である。ＵＩ画面９００は、機能を選択するメニューとツールバーを含む操作指示部９０１と、編集対象となるページを表示するプレビュー部９０２とを含む。プレビュー部９０２に表示されるページは原稿ページである。マウスの操作により、ページ中から編集対象となる図形を選択し、選択した図形に対して操作指示部９０１から操作を指示し、実行する。
【００４７】
＜本実施形態の図形編集システムの処理フロー例＞
図１０は、図９のエディタＵＩのプレビュー部９０２に表示された原稿から編集対象となる図形を選択・編集する場合の処理の概略を示すフローチャートである。
【００４８】
ステップ１で選択対象とする図形の種別を判定する。ここでは、単純のため図形をテキスト、イメージ、グラフィックの３種類に分類している。図形種別がテキストの場合はステップ２へ、イメージの場合はステップ６へ、グラフィックの場合ステップ５へそれぞれ分岐する。
【００４９】
ステップ２では、回転などを元に戻すノーマライズ処理を実施する。このステップの詳細は後で説明する。
【００５０】
次にステップ３へ進み、ノーマライズ後の図形に対して編集処理を実施する。これはノーマライズ処理をしない場合と同一で、例えばグラフィックスの場合は線幅を変更する事等が可能である。ユーザの編集が終わり、マウスで他の図形外をクリックするなどの操作により編集処理が終了したら、ステップ４へと進む。
ステップ４では、ノーマライズで取り除いた回転効果などを元に戻す復帰処理を実施する。
【００５１】
ステップ５では、選択されたグラフィックスがイメージによる塗りつぶしを含むかどうかを判定する。イメージによる塗りつぶしが有る場合は図形がイメージである場合と同様であるとみなしてステップ６へと進む。ステップ５でイメージによる塗りつぶしを含まないと判定された場合ステップ８へと進む。
【００５２】
ステップ６は、イメージに対してノーマライズを実施するかどうかの指示情報を取得する。この指示情報取得は、エディタのプリファレンスによって事前にユーザが指示する方式でも選択するたびにユーザに問い合わせる方式でも構わない。
【００５３】
次にステップ７へ進み、イメージをノーマライズ処理対象であるかどうかを判定する。ここでは、ステップ６で取得したユーザの指示に基づいて判定する。ノーマライズ対象でなければステップ８へと進み編集を実施する。ノーマライズ対象である場合はステップ２へ進みノーマライズ処理を実施する。
【００５４】
ステップ８では、選択した図形に対して編集処理を実施する。ステップ３の編集処理と違い、ステップ８での編集処理が終了しても復帰処理を経ずに終了する。
【００５５】
図１１は、図１０のステップ６で取得する指示情報を設定するためのＵＩの例である。ユーザがイメージあるいはイメージによる塗りつぶしを含むグラフィックスを編集対象に選択したときに表示され、ユーザがノーマライズ対象とするかを選択する事ができる。「はい」を選択した場合は、選択図形はノーマライズ処理対象となり、「いいえ」を選択した場合はノーマライズを実施しない。「キャンセル」を選択した場合は、図形の選択が解除される。
【００５６】
図１２は、図１０のステップ２で示したノーマライズ処理の詳細処理例を示すフローチャートである。この例では、回転・反転処理が実施されない場合の図形の座標軸は、Ｘ軸は水平方向右向き、Ｙ軸は垂直方向上向きの場合で説明している。
【００５７】
ステップ１で、Ｘ軸の方向を取得し、続いてステップ２でＹ軸の方向を取得する。
【００５８】
次にステップ３へと進み、ステップ１で取得したＸ軸の方向と水平方向右側とがなす角度Ａを求める。角度Ａが０度である場合、Ｘ軸方向には回転が無いのでステップ６へと進む。角度Ａが０度で無い場合は、ステップ５へと進む。
【００５９】
ステップ５では、-Ａ度回転し、Ｘ軸の回転角Ａを打ち消す処理を実施する。この処理の詳細も後述する。
【００６０】
ステップ６では、ステップ２で取得したＹ軸の方向と、垂直方向上方向とがなす角度Ｂを求める。
【００６１】
ステップ７では、ステップ６で求めた角度Ｂがプラスマイナス９０度の範囲内にあるかを判定する。範囲内にあれば、何もせずにステップ９へ、そうでなければステップ８へと進む。
【００６２】
ステップ８では、Ｙ軸の角度をプラスマイナス９０度の範囲内にするために、上下方向に反転する処理を実施する。この処理の詳細も後述する。
【００６３】
ステップ９では、現在編集対象となっている図形の種別がテキストであるかどうかを判定する。テキストである場合は更にステップ１０へと進み、そうでなければ終了する。
【００６４】
ステップ１０では、後述するベースライン処理を実施する。
【００６５】
図１３は、図１２のステップ５で示したＸ軸の回転打消し処理の詳細を示すフローチャートである。
【００６６】
まずステップ１で図形を−Ａ度回転する。次にステップ２へ進み、ステップ１で実施した−Ａ度の回転処理を記録し、図形編集後の復帰処理に備える。
【００６７】
図１４は、図１２のステップ８で示したＹ軸の角度補正処理の詳細を示すフローチャートである。
【００６８】
まずステップ１で図形を上下度回転する。次にステップ２へ進み、ステップ１で上下反転処理を実施した事を記録し、図形編集後の復帰処理に備える。
【００６９】
図１５は、図１０のステップ４で示した図形編集後の復帰処理の詳細例を示すフローチャートである。
【００７０】
まずステップ１で、ノーマライズ処理で回転処理を実施した記録の有無を調べる。回転処理の記録があれば、ステップ４へ、そうでなければステップ２へと進む。
【００７１】
ステップ２では、上下反転処理の実施した記録の有無を調べる。回転処理の記録があればステップ６へ、そうでなければステップ３へと進む。
【００７２】
ステップ３では、編集対象の図形がテキストであるかどうかを判定する。テキストでなければそのまま終了し、テキストであればステップ７へと進む。
【００７３】
ステップ４では、Ｘ軸の回転打消し処理時に記録した回転処理の記録から回転角度を調べる。−Ａ度の回転記録があった場合、記録されている回転角−Ａ度を取得する。
【００７４】
ステップ５は、編集中のＸ軸回転打消し処理を元に戻す処理である。ステップ４で取得した回転角−Ａ度を用いて、Ｘ軸をＡ度回転する。
【００７５】
ステップ６は、編集中のＹ軸の角度補正処理を元に戻す処理である。編集中にＹ軸を上下反転しているので、編集復帰時にはＹ軸を上下反転する。
【００７６】
ステップ７は、編集中のテキストベースラインの補正を元に戻す処理である。この処理の詳細は後述する。
【００７７】
図１６は、図１２のステップ１０および図１５のステップ７で示した、テキストのベースライン処理の詳細例を示すフローチャートである。
【００７８】
ステップ１で、ノーマライズ処理中にＹ軸の反転処理を実施した記録があるかどうかを判定する。記録がある場合はステップ２へ、そうでない場合は終了する。
【００７９】
ステップ２では、テキスト図形の中心を求める。ここでは、すでにノーマライズに置いて角度調整が終わっているので、テキスト図形の上端、下端のＹ座標の中心を求めればよい。
【００８０】
次にステップ３では、テキストのベースラインをステップ２で求めたテキスト図形の中心を基準として上下対称位置へと変更する。一つのテキスト図形に複数行の文字列が含まれている場合であれば、それぞれの行のベースラインをステップ２で求めた中心を基準として対称位置へと変更する。
【００８１】
図１７〜１９はテキストのベースライン処理の概略を説明した図である。
【００８２】
通常のテキストを図１７に示す。Ｘ軸は水平方向右へ、Ｙ軸は上下方向上へと伸びている。１の点線矩形で示す図形は、テキスト図形の領域を示す。２の点線ではテキストのベースライン位置を示している。
【００８３】
図１８は上下反転されたテキストを編集する際の例を示す。図１８−１は、上下反転されたテキストである。図中の１の点線は、テキスト図形の中心線を、点線２はテキストのベースラインをそれぞれ示す。編集中のＹ軸補正処理によって、図１８−２に示すようになることが望ましい。
【００８４】
図１９は図１８−１のテキストを単に上下反転した結果の例である。文字の向きは正立しているが図中の点線１で示すベースラインの位置が反転前と変わっていないため、文字列がテキスト図形の座標をはみ出してしまっている。
【００８５】
図２０は、複数行のテキスト図形が上下反転された場合の例を示す図である。この例では２行の文字列が含まれており、図中の点線１と２でそれぞれの行のベースラインを示している。
【００８６】
図２１は図２０のテキスト図形を上下反転した場合の図である。この例に示すように、各行のベースライン位置を、図中の鎖線１で示すテキスト図形の中心線に対して対称位置に変更する事で上下反転した図形を正しく復元する事ができる。
【００８７】
図２２は、Ｙ軸を10度程回転させることで斜体を表現している図形を左右反転させた文字列の例を示す。このように複雑な状態であっても、本発明に示した処理によってノーマライズする事が可能である。
【００８８】
図２３は、図２２に示した図形を本発明の処理でノーマライズしている途中の状態を示した図である。左右反転であるが、Ｘ軸が右方向から何度回転しているかを取得し（図１２ステップ１）、１８０度回転した図形であると判断（図１２のステップ３）する手順であるため、１８０度回転して（図１２のステップ５）本図の状態になる。
【００８９】
図２４は、図２３では、まだＹ軸が下向きであるため、上下反転処理（図１２のステップ８）を実施し、ベースラインの補正処理（図１２のステップ１０）を経てノーマライズが完了した状態を示す。
【００９０】
尚、本実施形態で示したフローチャートにおいて、その前後は処理が未完成にならない限り入れ替えることが可能である。
【００９１】
また、本発明は、複数の機器(例えばホストコンピュータ、インタフェース機
器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置（複写機、プリンタ、ファクシミリ装置など）に適用してもよい。
【００９２】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９３】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００９４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９５】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００９６】
【図１】本実施形態のスタンドアロン型の図形編集システムのソフトウェア構成例を示すブロック図である。
【図２】編集前の文字列の一例を示す図である。
【図３】図２の文字列を回転・反転処理した場合の例を示す図である。
【図４】ブックファイルの構造の一例を示す図である。
【図５】ブック属性の一覧を示す図である。
【図６】章属性の一覧を示す図である。
【図７】ページ属性の一覧を示す図である。
【図８】新規のブックファイルを開いた際のユーザインタフェース画面の一例を示す図である。
【図９】製本アプリケーション１０４から起動したエディタ画面の一例である。
【図１０】図９のエディタＵＩのプレビュー部９０２に表示された原稿から編集対象となる図形を選択・編集する場合の処理の概略を示すフローチャートである。
【図１１】図１０のステップ６で取得する指示情報を設定するためのＵＩの例である。
【図１２】図１０のステップ２で示したノーマライズ処理の詳細処理例を示すフローチャートである。
【図１３】図１２のステップ５で示したＸ軸の回転打消し処理の詳細を示すフローチャートである。
【図１４】図１２のステップ８で示したＹ軸の角度補正処理の詳細を示すフローチャートである。
【図１５】図１０のステップ４で示した図形編集後の復帰処理の詳細例を示すフローチャートである。
【図１６】図１２のステップ１０および図１５のステップ７で示した、テキストのベースライン処理の詳細例を示すフローチャートである。
【図１７】テキストのベースライン処理の概略を説明した図である。
【図１８】上下反転されたテキストを編集する際の例を示す。
【図１９】図１８−１のテキストを単に上下反転した結果の例である。
【図２０】複数行のテキスト図形が上下反転された場合の例を示す図である。
【図２１】図２０のテキスト図形を上下反転した場合の図である。
【図２２】Ｙ軸を10度程回転させることで斜体を表現している図形を左右反転させた文字列の例を示す。
【図２３】図２２に示した図形を本発明の処理でノーマライズしている途中の状態を示した図である。
【図２４】図２２で示した図形を本発明の処理でノーマライズが完了した状態を示す。
【図１】
2009181434.tif 000003
【図２】
2009181434.tif 000004
【図３】
2009181434.tif 000005
【図４】
2009181434.tif 000006
【図５】
2009181434.tif 000007
【図６】
2009181434.tif 000008
【図７】
2009181434.tif 000009
【図８】
2009181434.tif 000010
【図９】
2009181434.tif 000011
【図１０】
2009181434.tif 000012
【図１１】
2009181434.tif 000013
【図１２】
2009181434.tif 000014
【図１３】
2009181434.tif 000015
【図１４】
2009181434.tif 000016
【図１５】
2009181434.tif 000017
【図１６】
2009181434.tif 000018
【図１７】
2009181434.tif 000019
【図１８】
2009181434.tif 000020
【図１９】
2009181434.tif 000021
【図２０】
2009181434.tif 000022
【図２１】
2009181434.tif 000023
【図２２】
2009181434.tif 000024
【図２３】
2009181434.tif 000025
【図２４】
2009181434.tif 000026