(57)【特許請求の範囲】
【請求項１】
行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形に関する情報の指定に応じて、前記文字列の文字数と前記文字列の文字サイズと行間値とを用いて図形のサイズを決定する図形サイズ決定手段と、
前記文字列を前記図形サイズ決定手段よりサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施手段と、
を有するコンピュータ・システム。
【請求項２】
前記図形サイズ決定手段によりサイズが決定された図形に前記文字列を埋め込んだ結果、当該図形内に空きが生じた又は当該図形から文字がはみ出した場合には、前記図形のサイズを修正する図形サイズ修正手段をさらに有し、
前記埋め込み処理実施手段が、前記図形サイズ修正手段により修正された図形に前記文字列を埋め込む
ことを特徴とする請求項１記載のコンピュータ・システム。
【請求項３】
前記図形サイズ決定手段が、
前記行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形に関する情報及び見出し領域に応じて、見出しサイズと前記文字列の文字数と前記文字列の文字サイズと行間値とを用いて図形のサイズを決定する
ことを特徴とする請求項１記載のコンピュータ・システム。
【請求項４】
前記図形サイズ決定手段が、
前記図形に関する情報に含まれる図形の高さと前記文字列の文字サイズとを用いて１行に埋め込む最大文字数を計算し、前記最大文字数と１行に埋め込む最小文字数である初期字詰め数とから１行に埋め込む平均文字数として取扱われる特定文字数を計算し、前記文字列の文字数を前記特定文字数で除することにより行数を計算し、前記文字列の文字サイズと行間値と前記行数とを用いて図形のサイズを決定する
ことを特徴とする請求項１記載のコンピュータ・システム。
【請求項５】
プログラムを格納した記録媒体であって、
前記プログラムは、コンピュータに、
文字列を埋め込むための図形であって文字領域が非矩形の図形に関する情報の指定に応じて、前記文字列の文字数と前記文字列の文字サイズと行間値とを用いて図形のサイズを決定する図形サイズ決定ステップと、
前記文字列を前記図形サイズ決定ステップにおいてサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施ステップと、
を実行させるためのプログラムである、記録媒体。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、文字列及び図形を処理して当該図形内に文字を配置して表示等を行うための文字列及び図形処理技術に関する。
【０００２】
【従来の技術】
例えば特開平１−１９４０７６号公報は、以下のような技術を開示している。すなわち、検出手段が図形シンボル（例えばひし形、楕円）の重心を検出する。例えば、図形シンボルの垂直方向及び水平方向について夫々計った最外周座標間の各中点を求め、その座標を当該図形シンボルの重心とする。文字枠設定手段は、検出した重心を略中心とすべき文字ますの中心又は文字ます間の境界と定め、かつ残りの複数の文字ますを図形シンボルの外周と内接する方向に展開する。文字ますは、指定の文字列が入るように決定され、例えば文字サイズ、文字間隔、行間隔などにより変更され得る。すなわち、図形シンボルに合わせて、文字領域が変更されている。
【０００３】
また特開平８−１０１８３４号公報は、以下のような技術を開示している。すなわち、入力部から複数のテキスト項目及びレイアウト情報が入力されると、項目位置計算部で入力部から入力されたレイアウト情報に含まれる指定図形（例えば三角形、楕円など）の内部領域をテキスト項目の個数に応じて複数段に分割し、さらに各段をその段に配置するテキスト項目の個数で均等に分割して各テキスト項目の配置位置を算出する。文字列サイズ計算部及び判定部は各配置領域に配置される各テキスト項目間に所定間隔を確保し得るテキスト項目の行数・文字ポイント数を算出する。そしてこれらのデータを図形データ生成部でイメージデータに変換して表示部においてディスプレイ等の表示装置に表示する。この公報においても文字列サイズ計算部により、指定図形に合わせて文字サイズなどが変更される。
【０００４】
さらに特開平４−３４７７７９号公報は、以下のような技術を開示している。すなわち、マンガ絵に吹き出し付きセリフを描く場合、最初に適当な位置にセリフを描く。次に、セリフを囲う吹き出し図形を選択する。算出手段は、先に入力したセリフの大きさおよび位置を基準として、適切な吹き出し図形の大きさ及び位置を算出する。なお、この吹き出し図形の大きさの計算では、まず、文字列の外接矩形の大きさを算出する。文字列の外接矩形の大きさは、例えば横書きの文字列であれば、文字列の中で一番長い行の文字数に１文字分の幅を掛けたものと、文字列の行数に１文字分の高さを掛けたものとを算出すればよい。なお、文字列の属性に文字間隔や行間隔が指定できるようになっている場合にはこれらを考慮して外接矩形を算出する。次に、選択された吹き出し図形データの文字列矩形標準サイズを、文字列の外接矩形の大きさに一致させるような拡大縮小比率を計算し、算出した比率に従い吹き出し図形の大きさを求める。そして、表示手段はセリフを先に描いた位置に、吹き出し図形を算出された大きさで表示する。この公報においては、文字領域が外接矩形であるとの前提の下に議論されており、そのために単純な拡大縮小比率の計算で簡単に図形の大きさが調整されている。
【０００５】
【発明が解決しようとする課題】
以上説明したように、従来技術では図形のサイズなどが固定で、文字を調整して図形に文字列を埋め込むか、文字列に合わせて図形のサイズなどを変更する場合であっても、文字を埋め込む文字領域を矩形とみなしてそれに合わせて図形のサイズなどを拡大縮小する技術のみが開示されている。文字領域が矩形であるということは、文字列の行数及び列数が決定されているということである。また、通常の文字列のほか、新聞などで用いられる見出しについては考慮されていない。
【０００６】
よって、本発明の目的は、行数及び列数のうち少なくとも何れかが不定である文字列を埋め込み可能な図形を決定するための技術を提供することである。
【０００７】
また、本発明の他の目的は、文字列を埋め込むための図形であって文字領域が非矩形の図形を決定するための技術を提供することである。
【０００８】
さらに、本発明の他の目的は、見出し領域を考慮して、文字列を埋め込むための図形であって文字領域が非矩形の図形を決定するための技術を提供することである。
【０００９】
また、非矩形の図形において文字列の行間を均等割付するための技術を提供することも目的である。
【００１０】
【課題を解決するための手段】
本発明の第１の態様に係るコンピュータ・システムは、行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形（又は文字列を埋め込むための図形であって文字領域が非矩形の図形）に関する情報（例えば図形種類、高さ）の指定に応じて、文字列の文字数及び文字に関する情報（例えば文字サイズ、行間値、初期字詰め数等）を用いて図形のサイズを決定する図形サイズ決定手段と、文字列を図形サイズ決定手段によりサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施手段とを有する。
【００１１】
例えば、図形の種類と文字列の文字数と文字サイズ等とを用いて、図形サイズ並びに文字列の行数及び各行の文字数を仮に確定する。そして、文字列を、仮確定された文字列の行数及び各行の文字数で表される文字領域に埋め込んだ場合に、埋め込みができなかった文字が生じたり（オーバーフローが発生した場合）、文字が埋め込まれない空欄が所定数以上発生した（アンダーフローが生じた場合）か否かを判断する。オーバーフロー又はアンダーフローが発生していなければ、仮確定された図形サイズ並びに文字列の行数及び各行の文字数を確定させる。もし、オーバーフロー及びアンダーフローが発生した場合には、再度図形サイズ並びに文字列の行数及び各行の文字数を変更して、再度オーバーフロー又はアンダーフローが発生しているか否か判断する。これにより利用者が手作業で図形サイズの変更をせずとも済むようになる。また、記事量等が変更になっても自動的に図形サイズが調整される。
【００１２】
また、本発明の第２の態様に係るコンピュータ・システムは、予め定められた非矩形の図形（例えば、円、楕円、ひし形、扇型、三角形、平行四辺形、多角形、同一変位図形、対称図形等）に文字列を埋め込む埋込手段と、埋込手段による埋め込みの結果、非矩形の図形内に空きが生じたアンダーフロー状態又は当該図形から文字がはみ出したオーバーフロー状態のいずれかが発生したか検査する検査手段と、検査手段によりアンダーフロー状態又はオーバーフロー状態が検出された場合には、非矩形の図形に対して矩形の文字領域を仮定した場合における行間値を計算する行間値計算手段とを有する。そして、埋込手段が、行間値計算手段により計算された行間値を用いて文字列を埋め込む。
【００１３】
非矩形の図形では非矩形の文字領域が設けられているため、簡単には行間値を変更することはできない。しかし本発明の第２の態様では、例えば各行の文字数を平均して、当該各行の平均文字数で矩形の文字領域を仮定して行間値を計算し、この値を用いて非矩形の文字領域に文字を埋め込む。なお、これでもアンダーフロー状態又はオーバーフロー状態が検出された場合には、再度調整すればよい。
【００１４】
【発明の実施の形態】
図１に本発明の一実施の形態における図形処理システムの機能ブロック図を示す。本実施の形態に係る図形処理システムは、図形処理装置１と当該図形処理装置１に接続され且つ処理結果を表示する表示装置３とから構成される。なお、図形処理装置１には例えばプリンタなどの出力装置がさらに接続されている場合もある。図形処理装置１は、利用者から文字列や図形に関する情報についての選択指示・入力を受け付ける入力部１１と、文字列を埋め込む図形のサイズを決定する図形サイズ決定部１３と、図形に文字列を埋め込む文字埋め込み処理部１５と、図形に文字列を埋め込んだ結果図形に埋め込めなかった文字が存在するオーバーフロー状態又は図形に文字が埋め込まれなかった空白部分が存在するアンダーフロー状態が生じたか否かを検査するアンダーフロー・オーバーフロー検出部１８と、アンダーフロー・オーバーフロー検出部１８によりアンダーフロー・オーバーフローを検出した場合に図形サイズを修正する図形サイズ修正部１７と、固定の図形に行間を均等にして文字列を埋め込む場合の行間値を計算する行間値計算部１９とを含む。
【００１５】
［実施の形態１］
まず文字列を埋め込む図形を確定させるための処理について図２乃至図１０を用いて説明する。最初に入力部１１が利用者から図形に埋め込むべき文字列の選択指示を受け付ける（ステップＳ１）。なお、この時点において文字列を入力するようにしても良い。また、文字列には、通常の文字のほか、半角文字を指定した場合に半角文字を挟む形で挿入される制御文字等も含まれる。次に、入力部１１は、文字情報の指定を受け付ける（ステップＳ３）。例えば、文字サイズや、行間値、初期字詰め数（最初の行の文字数）、フォントの種類などの指定を受け付ける。
【００１６】
次に、入力部１１は図形の選択指示を受け付ける（ステップＳ５）。ここで図形の種類の選択指示を受け付ける。図形の種類としては、例えば、円（ａ）、楕円（ｂ）、ひし形（ｃ）、正三角形（ｄ）、二等辺三角形（ｅ）、平行四辺形（ｆ）、同一変位図形（ｇ）、対称図形（ｈ）である（図３参照）。入力部１１はさらに図形情報の指定を受け付ける（ステップＳ７）。図形情報とは、例えば図形の高さの指定や、その他図形の輪郭線の種類の指定などを含む。但し、円や正三角形の場合には他のパラメータにて高さは決定されるので、高さ指定はできない。そして、見出しが存在する場合には、入力部１１は見出しに関する情報の指定を受け付ける（ステップＳ９）。見出しに関する情報は、例えば見出し領域の高さ及び幅の情報である。但し、本実施の形態では、見出しが存在する場合には、見出し領域の高さに図形の高さは依存することとする。また、見出しが存在しない場合もある。
【００１７】
次に、図形サイズ決定部１３は入力部１１が受け付けた情報を用いて図形サイズの仮確定処理を実施する（ステップＳ１１）。この処理は図形の種類によって多少異なるが、ここではひし形の例を用いて説明する。
【００１８】
（１）見出しの指定がない場合
例えば以下のような値がステップＳ１乃至Ｓ９で取得されているものとする。
文字サイズ：moji_x（横）×moji_y（縦）  ［６０×５０］
行間値    ：gyokan                      ［２５］
全文字数  ：text_size                   ［１００］
図形の高さ：high                        ［６００］
初期字詰め：jitsume                     ［４］
なお［］内は具体例を示している。単位はピクセルである。
【００１９】
まず行数を仮確定する。例えば、行数Ｘ1は以下の式で計算される。
Ｘ1＝text_size／（（high_moji−jitsume）／２＋jitsume）
なお、high_moji＝high／moji_y である。この式では、１行に割り付けられる最大文字数high_mojiと最低文字数jitsumeの差の半分に最低文字数jitsumeを加えた数を、例えば平均的な１行当りの文字数として、全文字数text_sizeを除している。これにて行数が計算される。なお、行数は整数しかありえないので、除算結果を切り上げ又は切捨てる。上で述べた具体例では行数Ｘ1＝１２．５であり、切り上げてＸ1＝１３とする。
【００２０】
Ｘ1＝１３であるとすると、図４のようなひし形が構成される。すなわち、右から行Ｌ1乃至Ｌ13が設けられる。また、初期字詰め数jitsumeの文字が割り当てられる行Ｌ1の文字領域の上端から図形高さhighまでの長さＹ1は、以下の式で表される。
Ｙ1＝high／２−jitsume／２×moji_y
図形高さhighの半分から行Ｌ1の文字数jitsumeの半分の長さ（jitsume／２×moji_y）を引いたものということである。本具体例では、Ｙ1＝２００ピクセルである。
【００２１】
また、行Ｌ7の中心線でありひし形の縦の中心線から行Ｌ1の右端までの長さＸ2は以下の式で表される。
Ｘ2＝moji_x／２＋（moji_x＋gyokan）×（Ｘ1−１）／２
第１項は行Ｌ7の半分を表しており、第２項は文字の幅と行間とを足したものに図形の右半分の行数を掛けたものを表している。上で述べた具体例では、Ｘ2＝５４０ピクセルである。
【００２２】
さらに、ひし形の横の半分の長さであるＸ3は図５に示すような関係を用いて計算できる。すなわち、high/2：Ｘ3＝Ｙ1：Ｘ2であり、以下のように表すことができる。
Ｘ3＝high／２×Ｘ2／Ｙ1
上で述べた具体例では、Ｘ3＝８１０ピクセルである。
【００２３】
これらの数値が計算されると、行Ｌ1乃至Ｌ13の各行の文字数が計算できる。ここでは図６のような関係を用いる。すなわち、行Ｌ1の右端の長さ（半分の長さ）をＹ10とすると、high/2：Ｘ3＝Ｙ10：（Ｘ3−Ｘ2）となり、Ｙ10＝high/2／Ｘ3×（Ｘ3−Ｘ2）となる。また、行Ｌ2の右端の長さ（半分の長さ）をＹ11とすると、high/2：Ｘ3＝Ｙ11：（Ｘ3−Ｘ2＋８５）となり、Ｙ11＝high/2／Ｘ3×（Ｘ3−Ｘ2＋８５）となる。一般的には、Ｙ1z＝high/2／Ｘ3×（Ｘ3−Ｘ2＋８５×ｚ）である。Ｙ1zは行の半分の長さであるから、２Ｙ1z＝high／Ｘ3×（Ｘ3−Ｘ2＋８５×ｚ）が行の全体の長さである。これを１文字の高さmoji_yで割れば１行の文字数が計算される。具体例では、図４に示したような文字数が計算される。すなわち、行Ｌ1は４文字、行Ｌ2は５文字、行Ｌ3は６文字、行Ｌ4は７文字、行Ｌ5は９文字、行Ｌ6は１０文字、行Ｌ7は１１文字である。
【００２４】
次にこの図形に埋め込まれる文字数を確認する。上で述べた具体例では、（４＋５＋６＋７＋９＋１０）×２＋１１＝９３文字である。但し、全文字数text_size＝１００であるから、これではオーバーフローの可能性がある。よって、行数が足りないということで、行数を例えば１５行（行数を奇数とする場合）にして再度上で述べたような処理を実施する。一方、全文字数text_sizeには、制御文字も含まれるため実際に埋め込まれる文字数text_sizeと同じでなく少ない可能性もある。よって、仮確定した図形に埋め込むことができる文字数≧全文字数text_sizeとなるように行数を変更する処理を実施する場合もあれば、実施せず以下の処理にて本当にオーバーフローするか否かを確認することにしてもよい。
【００２５】
（２）見出しの指定がある場合
例えば以下のような値がステップＳ１乃至Ｓ９で取得されているものとする。
文字サイズ  ：moji_x（横）×moji_y（縦）  ［６０×５０］
行間値      ：gyokan                      ［２５］
全文字数    ：text_size                   ［１００］
見出しサイズ：midashi_x（横）×midashi_y（縦）  ［２３０×６００］
初期字詰め  ：jitsume                     ［４］
なお［］内は具体例を示している。単位はピクセルである。
【００２６】
まず行数を仮確定する。例えば、行数Ｘ1は以下の式で計算される。
Ｘ1＝text_size／（（high_moji−jitsume）／２＋jitsume）
なお、high_moji＝midashi_y／moji_y である。この式では、１行に割り付けられる最大文字数high_mojiと最低文字数jitsumeの差の半分に最低文字数jitsumeを加えた数を、例えば平均的な１行当りの文字数として、全文字数text_sizeを除している。これにて行数が計算される。なお、行数は整数しかありえない。また本実施の形態では見出しは図形内の中央に配置されるので、行数は偶数にしなければならない。よって、除算結果を切り上げ又は切捨て、さらに偶数化する。上で述べた具体例では行数Ｘ1＝１２．５であり、補正するとＸ1＝１４となる。
【００２７】
Ｘ1＝１４であるとすると、図７のようなひし形が構成される。すなわち、右から行Ｌ1乃至Ｌ14が設けられる。また、初期字詰め数jitsumeの文字が割り当てられる行Ｌ1の文字領域の上端から図形高さhighまでの長さＹ1は、以下の式で表される。
Ｙ1＝midashi_y／２−jitsume／２×moji_y
見出しの高さmidashi_yの半分から行Ｌ1の文字数jitsumeの半分の長さ（jitsume／２×moji_y）を引いたものということである。本具体例では、Ｙ1＝２００ピクセルである。
【００２８】
また、見出しの右端から行Ｌ1の右端までの長さＸ2は以下の式で表される。
Ｘ2＝（moji_x＋gyokan）×Ｘ1／２
これは、文字の幅と行間とを足したものに図形の右半分の行数を掛けたものを表している。上で述べた具体例では、Ｘ2＝５９５ピクセルである。
【００２９】
Ｘ3は見出し領域の横幅の半分であり、Ｘ3＝midashi_x／２である。
【００３０】
さらに、図７に示すように、見出し領域の下端とひし形の縦の中心線を通る頂点との間の長さＹ2は、以下の式で表される。
Ｙ2＝Ｘ3×Ｙ1／Ｘ2
ひし形の辺の傾きがＹ1／Ｘ2であり、これに上で計算したＸ3を掛けたものである。上で述べた具体例では、Ｙ2＝３９ピクセルである。
【００３１】
また、ひし形の高さの半分Ｙ3は、以下のような式で表される。
Ｙ3＝Ｙ1＋Ｙ2＋jitsume／２×moji_y
第３項は、行Ｌ1の半分の長さを表している。上で述べた具体例では、Ｙ3＝３３９ピクセルである。
【００３２】
以上の計算結果を用いて、ひし形の横幅の半分の長さＸ4は、以下のように表される。
Ｘ4＝Ｘ２×Ｙ3／Ｙ1
これは図８に示した関係を用いている。すなわち、Ｙ1：Ｙ3＝Ｘ2：Ｘ4である。上で述べた具体例ではＸ4＝１００９ピクセルである。
【００３３】
これらの数値が計算されると、行Ｌ1乃至Ｌ14の各行の文字数が計算できる。ここでは図９のような関係を用いる。すなわち、行Ｌ1の右端の長さ（半分の長さ）をＹ20とすると、midashi_y/2：（Ｘ4−Ｘ3）＝Ｙ20：（Ｘ4−Ｘ3−Ｘ2）となり、Ｙ20＝midashi_y/2／（Ｘ4−Ｘ3）×（Ｘ4−Ｘ3−Ｘ2）となる。また、行Ｌ2の右端の長さ（半分の長さ）をＹ21とすると、midashi_y/2：（Ｘ4−Ｘ3）＝Ｙ21：（Ｘ4−Ｘ3−Ｘ2＋８５）となり、Ｙ21＝midashi_y/2／（Ｘ4−Ｘ3）×（Ｘ4−Ｘ3−Ｘ2＋８５）となる。一般的には、Ｙ2z＝midashi_y/2／（Ｘ4−Ｘ3）×（Ｘ4−Ｘ3−Ｘ2＋８５×ｚ）である。Ｙ2zは行の半分の長さであるから、２Ｙ2z＝midashi_y/2／（Ｘ4−Ｘ3）×（Ｘ4−Ｘ3−Ｘ2＋８５×ｚ）が行の全体の長さである。これを１文字の高さmoji_yで割れば１行の文字数が計算される。具体例では、図７に示したような文字数が計算される。すなわち、行Ｌ1は４文字、行Ｌ2は５文字、行Ｌ3は６文字、行Ｌ4は７文字、行Ｌ5は９文字、行Ｌ6は１０文字、行Ｌ7は１１文字である。
【００３４】
次にこの図形に埋め込まれる文字数を確認する。上で述べた具体例では、（４＋５＋６＋７＋９＋１０＋１１）×２＝１０４文字である。なお、全文字数text_size＝１００であるから、これではアンダーフローの可能性がある。よって、行数が多いということで、行数を例えば１２行（行数は偶数）にして再度上で述べたような処理を実施する。但し、全文字数text_sizeには、制御文字も含まれるため実際に生ずるアンダーフローとなる文字数を計算すべく、上で述べた処理で仮確定した図形に文字列を埋め込む処理を実施するようにしても良い。
【００３５】
以上のように図形サイズの仮確定処理を実施する（図２：ステップＳ１１）。なお、上の説明ではひし形であるということ（例えば図５及び図６、図８及び図９に示された関係）を用いて計算している。よって、ステップＳ５で指定された図形の種類に従って、図形サイズを決定するための計算を行わなければならない。
【００３６】
図２の説明に戻って、文字埋め込み処理部１５はステップＳ１１で仮確定された図形にステップＳ１で選択指示を受け付けた文字列を埋め込む処理を実施する（ステップＳ１３）。ここでは、例えば文字を半角にすることを表す制御文字が存在すれば、その制御文字に従って文字を半角にしたり、禁則処理を実施する。禁則処理は、例えば文頭に読点が来た場合には、前の行に句点又は読点があれば当該句点又は読点を半角にして且つ文頭にあった読点を半角にして前の行に入れたり、前の行に空文字を入れたりする。また、図１０に示したように、例えば文頭に句点が来た場合には、前の行に句点又は読点があれば当該句点又は読点を半角にして且つ文頭にあった句点を半角にして前の行に入れたり、前の行に空文字１００を入れたりする。なお、図１０は空文字１００を強調するように描かれており、実際は同じ行の文字間隔に空文字１００を均等に割り付けて空文字１００が目立たないようにする。
【００３７】
次に、アンダーフロー・オーバーフロー検出部１８が、文字埋め込み処理部１５により仮確定された図形への埋め込み結果を検査して、オーバーフロー又はアンダーフローが存在しているか否かを判断する（ステップＳ１５）。仮確定された図形に埋め込めなかった文字が一文字でも存在していた場合にはオーバーフローとして検出する。しかし、アンダーフローの場合には、一つの空文字をも発生させずに文字列を埋め込むのは不可能な場合が多いので、例えば空行が発生した場合にのみアンダーフローであると判断するような構成であってもよい。なお、ステップＳ１５で、オーバーフローともアンダーフローとも判断されなかった場合には、適切な図形が決定され適切に文字列が埋め込まれたことを意味するため、表示装置３に処理結果を表示して処理を終了する。
【００３８】
もし、アンダーフロー・オーバーフロー検出部１８がアンダーフロー又はオーバーフローを検出した場合には、図形サイズ修正部１７が図形サイズの補正を行う（ステップＳ１７）。もし、アンダーフローが発生したことが検出された場合には、行数を一単位減らして、図形を新たに確定させる。オーバーフローが発生したことが検出されれば、行数を一単位増加させる。一単位とは、例えば偶数行数又は奇数行数しか許されていない場合には２行であり、制限が無ければ１行である。そして、ステップＳ１１で行った処理を実施する。なお、図形サイズ修正部１７を図形サイズ決定部１３に統合してしまって、ステップＳ１７についても図形サイズ決定部１３が実施するような構成であってもよい。
【００３９】
ステップＳ１７において修正された図形に対して、文字埋め込み処理部１５は、再度文字埋め込み処理を実施する（ステップＳ１９）。そして、アンダーフロー・オーバーフロー検出部１８は、適切な埋め込み状態になったか否かを検査する（ステップＳ２１）。ここでもステップＳ１５と同じ判断基準にてアンダーフロー又はオーバーフローが発生していないか判断するようにすることも可能である。又は、何回か図形サイズ修正を行った後に、所定数以上の空文字が存在していてアンダーフロー状態であると判断されるが、図形サイズを修正してもこれ以上空文字数が減らないと判断できる場合には、その状態を適切と判断して、処理を終了させる場合もある。なお、図形サイズを修正してアンダーフローもオーバーフローも検出されなければ、処理を終了させる。
【００４０】
以上説明したように、実施の形態１では、図形に埋め込むべき文字列の行数も列数も決定されておらず、図形に設けられる文字領域も単純な矩形でない場合であっても、文字列を適切に埋め込むことができる図形を自動的に確定させることができるようになる。
【００４１】
また、図形に埋め込むべき文字列の行数も列数も決定されておらず、図形に設けられる文字領域も単純な矩形でなく、さらに見出し領域が指定された場合であっても、文字列を適切に埋め込むことができ且つ指定された見出し領域が確保された図形を自動的に確定させることができる。
【００４２】
［実施の形態２］
次に図形は固定で、文字列の行間を均等に割り付け、文字列を図形に適切に埋め込むための処理を説明する。これは例えば図１１（ａ）に示すように文字列の図形への初期的な埋め込みで空行１１０が存在した場合に、空行１１０を行間に均等に割り付けて、すなわち行間値を拡大して再度文字列を埋め込み、例えば図１１（ｂ）のように適切な文字列の埋め込み状態を達成するものである。
【００４３】
このための処理フローを図１２に示す。最初に入力部１１は、文字列の選択指示を受け付ける（ステップＳ３１）。この段階において新たに文字列を入力しても良い。次に、入力部１１は図形の選択指示を受け付ける（ステップＳ３３）。ここでは図形そのものの選択を受け付ける。すなわち、実施の形態２では図形は固定であるから、このステップＳ３３において、図形の種類及び図形サイズが全て指定されたものを選択するか又は図形の種類を指定しさらに図形サイズを指定するようにしてもよい。なお、図形は、図３（ａ）乃至（ｈ）に示したものの他、扇形（ｉ）、直角三角形（ｊ）、多角形（ｋ）であってもよい。
【００４４】
そして、文字埋め込み処理部１５が、ステップＳ３３で選択指示された図形に、ステップＳ３１で選択指示された文字列を埋め込む処理を実施する（ステップＳ３５）。この際上で述べたように半角についての処理や禁則処理を実施する。そして、この文字埋め込み処理に対して、アンダーフロー・オーバーフロー検出部１８は、オーバーフロー又はアンダーフローの発生を検出する（ステップＳ３７）。実施の形態１でも述べたように、オーバーフローが一文字でもあればオーバーフロー状態であるが、例えば空行が存在しない状態をアンダーフローがない状態と定義することも可能である。もし、アンダーフローもオーバーフローも存在しない場合には、処理を終了する。
【００４５】
一方、アンダーフロー又はオーバーフローが検出された場合には、アンダーフロー・オーバーフロー検出部１８は、アンダーフロー又はオーバーフロー量を計算する（ステップＳ３９）。本実施の形態では行間を調整することを目的とするため、このアンダーフロー又はオーバーフロー量は、横幅のピクセル数又は行数がアンダーフロー又はオーバーフロー量である。次に、アンダーフロー又はオーバーフロー量を用いた行間値の補正を、行間値計算部１９が実施する（ステップＳ４１）。この計算例を以下に簡単に説明する。
【００４６】
文字領域が矩形であれば、文字列の行数及び列数は簡単に分かるため、空行の補正は簡単に計算できる。例えば、アンダーフロー量が５行であって、埋め込まれた文字列の行数が９行である場合には、以下の計算で行間値が計算できる。
空行の横幅：（５０＋２５）×５−２５＝３５０
なお、文字の横幅は５０ピクセルで基本行間値が２５ピクセルである。（−２５）ピクセル分は最後の行には行間が無いことを示している。
各行間に割り振るピクセル数：３５０／（９−１）≒４５
埋め込まれた文字列の行数が９である場合には行間数は８＝９−１である。
よって新行間値は４５＋２５＝７０となる。
【００４７】
しかし、文字領域が矩形でなければ、簡単に文字列の行数及び列数は確定しない。本実施の形態では、文字領域が仮に矩形であるとした場合の新行間値を計算して、再度文字を埋め込んでみる。そして、オーバーフローやアンダーフローが発生するようであれば、再度見直すこととする。空行の横幅については上で計算したのと同じように計算できる。次に、当該図形において１行当りの平均的な文字数を計算する。そしてその場合の行数を、全文字数／（１行当りの平均的な文字数）で計算する。これで矩形の文字領域を仮想的に用意したことになる。これで（行数−１）で行間数が計算できるため、上で述べたのと同じように各行間に割り振るべきピクセル数が計算できる。同じようにして新行間値も計算できる。
【００４８】
なお、文字領域が矩形でなくても矩形として計算できる場合もある。例えば図３（ｇ）の場合には、行ごとに行内の文字数が変化しないためである。よって、この場合であっても文字領域が矩形であるとしているのと同じである。
【００４９】
次に行間補正後の文字埋め込み処理を、文字埋め込み処理部１５が実施する（ステップＳ４３）。この処理については上で述べたのと同じである。そして、アンダーフロー・オーバーフロー検出部１８は、適切な埋め込み状態になっているか判断する（ステップＳ４５）。この適切な埋め込み状態になっているかの基準についても実施の形態１と同じような基準とすることができる。もしステップＳ４５で適切な状態になっていると判断されれば、表示装置３に処理結果を表示して、処理を終了する。適切ではないと判断されればステップＳ３９に戻る。
【００５０】
なお、アンダーフローが発生した場合には問題とならないが、オーバーフローを発生した場合には問題が生じ得る。新行間値が余りに小さくなると、文字が読みずらくなったり、文字が重なったりするからである。オーバーフローについては本実施の形態では取り扱わないようにしたり、ステップＳ４１で新行間値が所定値未満となった場合には、本実施の形態では取扱い不可能であるという表示を表示装置３に表示させるような構成も可能である。
【００５１】
以上述べたように、実施の形態２により、図形は固定されていても、行間を均等にして、オーバーフローやアンダーフローが生じないような行間値を得ることができるようになる。これにより、文字列が図形に見易く且つ見栄え良く埋め込まれる。
【００５２】
また、自動的に行間値を調整できるため、文字列の文字数が変更になっても簡単に対処できる。
【００５３】
以上述べた実施の形態は一例であって様々な変形が可能である。すなわち、図１に示した図形処理装置１内の機能ブロック分けは一例であってさらに細かく機能ブロックを設けてそれに合わせたモジュールを用意しても良いし、さらに大きな機能ブロックを用意して対応するモジュールを用意しても良い。また図１では中間的な処理結果を記憶するメモリや、データなどを保管する記憶装置については図示していないが、図形処理装置１にはそれらが設けられており、適宜用いられる。
【００５４】
さらに、上述した図形処理システムはコンピュータに当該システム用のプログラムをインストールすることによっても実現可能である。この場合、このプログラムは、例えばフロッピーディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメモリに一時保管される。
【００５５】
（付記１）
行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形に関する情報の指定に応じて、前記文字列の文字数及び文字に関する情報を用いて図形のサイズを決定する図形サイズ決定手段と、
前記文字列を前記図形サイズ決定手段によりサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施手段と、
を有するコンピュータ・システム。
【００５６】
（付記２）
前記図形サイズ決定手段によりサイズが決定された図形に前記文字列を埋め込んだ結果、当該図形内に空きが生じた又は当該図形から文字がはみ出した場合には、前記図形のサイズを修正する図形サイズ修正手段をさらに有し、
前記埋め込み処理実施手段が、前記図形サイズ修正手段により修正された図形に前記文字列を埋め込む
ことを特徴とする付記１記載のコンピュータ・システム。
【００５７】
（付記３）
前記図形サイズ決定手段が、
前記行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形に関する情報及び見出し領域の指定に応じて、前記文字列の文字数及び文字に関する情報を用いて図形のサイズを決定する
ことを特徴とする付記１記載のコンピュータ・システム。
【００５８】
（付記４）
文字列を埋め込むための図形であって文字領域が非矩形の図形に関する情報の指定に応じて、前記文字列の文字数及び文字に関する情報を用いて図形のサイズを決定する図形サイズ決定手段と、
前記文字列を前記図形サイズ決定手段によりサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施手段と、
を有するコンピュータ・システム。
【００５９】
（付記５）
予め定められた非矩形の図形に文字列を埋め込む埋込手段と、
前記埋込手段による埋め込みの結果、前記非矩形の図形内に空きが生じたアンダーフロー状態又は当該図形から文字がはみ出したオーバーフロー状態のいずれかが発生したか検査する検査手段と、
前記検査手段によりアンダーフロー状態又はオーバーフロー状態が検出された場合には、前記非矩形の図形に対して矩形の文字領域を仮定した場合における行間値を計算する行間値計算手段と、
を有し、
前記埋込手段が、前記行間値計算手段により計算された前記行間値を用いて文字列を埋め込む
ことを特徴とするコンピュータ・システム。
【００６０】
（付記６）
プログラムを格納した記録媒体であって、
前記プログラムは、コンピュータに、
行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形に関する情報の指定に応じて、前記文字列の文字数及び文字に関する情報を用いて図形のサイズを決定する図形サイズ決定ステップと、
前記文字列を前記図形サイズ決定ステップにおいてサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施ステップと、
を実行させるためのプログラムである、記録媒体。
【００６１】
（付記７）
プログラムを格納した記録媒体であって、
前記プログラムは、コンピュータに、
文字列を埋め込むための図形であって文字領域が非矩形の図形に関する情報の指定に応じて、前記文字列の文字数及び文字に関する情報を用いて図形のサイズを決定する図形サイズ決定ステップと、
前記文字列を前記図形サイズ決定ステップにおいてサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施ステップと、
を実行させるためのプログラムである、記録媒体。
【００６２】
（付記８）
プログラムを格納した記憶媒体であって、
前記プログラムは、コンピュータに、
予め定められた非矩形の図形に文字列を埋め込む埋込ステップと
前記埋込ステップにおける埋め込みの結果、前記非矩形の図形内に空きが生じたアンダーフロー状態又は当該図形から文字がはみ出したオーバーフロー状態のいずれかが発生したか検査する検査ステップと、
前記検査ステップにおいてアンダーフロー状態又はオーバーフロー状態が検出された場合には、前記非矩形の図形に対して矩形の文字領域を仮定した場合における行間値を計算する行間値計算ステップと、
前記行間値計算ステップにおいて計算された前記行間値を用いて文字列を埋め込むステップと
を実行させるためのプログラムである、記録媒体。
【００６３】
【発明の効果】
本発明により、行数及び列数のうち少なくとも何れかが不定である文字列を埋め込み可能な図形を決定するための技術を提供することができた。
【００６４】
また、文字列を埋め込むための図形であって文字領域が非矩形の図形を決定するための技術を提供することができた。
【００６５】
さらに、見出し領域を考慮して、文字列を埋め込むための図形であって文字領域が非矩形の図形を決定するための技術を提供することができた。
【００６６】
また、非矩形の図形において文字列の行間を均等割付するための技術を提供することもできた。
【図面の簡単な説明】
【図１】本発明の実施の形態にかかる図形処理システムの概要を説明するための機能ブロック図である。
【図２】実施の形態１の処理フローを示すフローチャートである。
【図３】本実施の形態において取り扱う図形の一例を示す図である。
【図４】見出しなしの場合におけるひし形図形の確定処理を説明するための模式図である。
【図５】見出しなしの場合におけるひし形図形の確定処理を説明するための模式図である。
【図６】見出しなしの場合におけるひし形図形の確定処理を説明するための模式図である。
【図７】見出しありの場合におけるひし形図形の確定処理を説明するための模式図である。
【図８】見出しありの場合におけるひし形図形の確定処理を説明するための模式図である。
【図９】見出しありの場合におけるひし形図形の確定処理を説明するための模式図である。
【図１０】禁則処理を説明するための模式図である。
【図１１】行間補正を説明するための模式図であり、（ａ）は処理前の状態、（ｂ）は処理後の状態を示す。
【図１２】実施の形態２の処理フローを示すフローチャートである。
【符号の説明】
１  図形処理装置    ３  表示装置
１１  入力部    １３  図形サイズ決定部    １５  文字埋め込み処理部
１７  図形サイズ修正部
１８  アンダーフロー・オーバーフロー検出部
１９  行間値計算部
【図１】
0003763729.tif 000002
【図２】
0003763729.tif 000003
【図３】
0003763729.tif 000004
【図４】
0003763729.tif 000005
【図５】
0003763729.tif 000006
【図６】
0003763729.tif 000007
【図７】
0003763729.tif 000008
【図８】
0003763729.tif 000009
【図９】
0003763729.tif 000010
【図１０】
0003763729.tif 000011
【図１１】
0003763729.tif 000012
【図１２】
0003763729.tif 000013