JP3763729B2 - コンピュータ・システム - Google Patents
コンピュータ・システム Download PDFInfo
- Publication number
- JP3763729B2 JP3763729B2 JP2000226306A JP2000226306A JP3763729B2 JP 3763729 B2 JP3763729 B2 JP 3763729B2 JP 2000226306 A JP2000226306 A JP 2000226306A JP 2000226306 A JP2000226306 A JP 2000226306A JP 3763729 B2 JP3763729 B2 JP 3763729B2
- Authority
- JP
- Japan
- Prior art keywords
- size
- graphic
- character string
- character
- characters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
- Editing Of Facsimile Originals (AREA)
Description
【発明が属する技術分野】
本発明は、文字列及び図形を処理して当該図形内に文字を配置して表示等を行うための文字列及び図形処理技術に関する。
【0002】
【従来の技術】
例えば特開平1−194076号公報は、以下のような技術を開示している。すなわち、検出手段が図形シンボル(例えばひし形、楕円)の重心を検出する。例えば、図形シンボルの垂直方向及び水平方向について夫々計った最外周座標間の各中点を求め、その座標を当該図形シンボルの重心とする。文字枠設定手段は、検出した重心を略中心とすべき文字ますの中心又は文字ます間の境界と定め、かつ残りの複数の文字ますを図形シンボルの外周と内接する方向に展開する。文字ますは、指定の文字列が入るように決定され、例えば文字サイズ、文字間隔、行間隔などにより変更され得る。すなわち、図形シンボルに合わせて、文字領域が変更されている。
【0003】
また特開平8−101834号公報は、以下のような技術を開示している。すなわち、入力部から複数のテキスト項目及びレイアウト情報が入力されると、項目位置計算部で入力部から入力されたレイアウト情報に含まれる指定図形(例えば三角形、楕円など)の内部領域をテキスト項目の個数に応じて複数段に分割し、さらに各段をその段に配置するテキスト項目の個数で均等に分割して各テキスト項目の配置位置を算出する。文字列サイズ計算部及び判定部は各配置領域に配置される各テキスト項目間に所定間隔を確保し得るテキスト項目の行数・文字ポイント数を算出する。そしてこれらのデータを図形データ生成部でイメージデータに変換して表示部においてディスプレイ等の表示装置に表示する。この公報においても文字列サイズ計算部により、指定図形に合わせて文字サイズなどが変更される。
【0004】
さらに特開平4−347779号公報は、以下のような技術を開示している。すなわち、マンガ絵に吹き出し付きセリフを描く場合、最初に適当な位置にセリフを描く。次に、セリフを囲う吹き出し図形を選択する。算出手段は、先に入力したセリフの大きさおよび位置を基準として、適切な吹き出し図形の大きさ及び位置を算出する。なお、この吹き出し図形の大きさの計算では、まず、文字列の外接矩形の大きさを算出する。文字列の外接矩形の大きさは、例えば横書きの文字列であれば、文字列の中で一番長い行の文字数に1文字分の幅を掛けたものと、文字列の行数に1文字分の高さを掛けたものとを算出すればよい。なお、文字列の属性に文字間隔や行間隔が指定できるようになっている場合にはこれらを考慮して外接矩形を算出する。次に、選択された吹き出し図形データの文字列矩形標準サイズを、文字列の外接矩形の大きさに一致させるような拡大縮小比率を計算し、算出した比率に従い吹き出し図形の大きさを求める。そして、表示手段はセリフを先に描いた位置に、吹き出し図形を算出された大きさで表示する。この公報においては、文字領域が外接矩形であるとの前提の下に議論されており、そのために単純な拡大縮小比率の計算で簡単に図形の大きさが調整されている。
【0005】
【発明が解決しようとする課題】
以上説明したように、従来技術では図形のサイズなどが固定で、文字を調整して図形に文字列を埋め込むか、文字列に合わせて図形のサイズなどを変更する場合であっても、文字を埋め込む文字領域を矩形とみなしてそれに合わせて図形のサイズなどを拡大縮小する技術のみが開示されている。文字領域が矩形であるということは、文字列の行数及び列数が決定されているということである。また、通常の文字列のほか、新聞などで用いられる見出しについては考慮されていない。
【0006】
よって、本発明の目的は、行数及び列数のうち少なくとも何れかが不定である文字列を埋め込み可能な図形を決定するための技術を提供することである。
【0007】
また、本発明の他の目的は、文字列を埋め込むための図形であって文字領域が非矩形の図形を決定するための技術を提供することである。
【0008】
さらに、本発明の他の目的は、見出し領域を考慮して、文字列を埋め込むための図形であって文字領域が非矩形の図形を決定するための技術を提供することである。
【0009】
また、非矩形の図形において文字列の行間を均等割付するための技術を提供することも目的である。
【0010】
【課題を解決するための手段】
本発明の第1の態様に係るコンピュータ・システムは、行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形(又は文字列を埋め込むための図形であって文字領域が非矩形の図形)に関する情報(例えば図形種類、高さ)の指定に応じて、文字列の文字数及び文字に関する情報(例えば文字サイズ、行間値、初期字詰め数等)を用いて図形のサイズを決定する図形サイズ決定手段と、文字列を図形サイズ決定手段によりサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施手段とを有する。
【0011】
例えば、図形の種類と文字列の文字数と文字サイズ等とを用いて、図形サイズ並びに文字列の行数及び各行の文字数を仮に確定する。そして、文字列を、仮確定された文字列の行数及び各行の文字数で表される文字領域に埋め込んだ場合に、埋め込みができなかった文字が生じたり(オーバーフローが発生した場合)、文字が埋め込まれない空欄が所定数以上発生した(アンダーフローが生じた場合)か否かを判断する。オーバーフロー又はアンダーフローが発生していなければ、仮確定された図形サイズ並びに文字列の行数及び各行の文字数を確定させる。もし、オーバーフロー及びアンダーフローが発生した場合には、再度図形サイズ並びに文字列の行数及び各行の文字数を変更して、再度オーバーフロー又はアンダーフローが発生しているか否か判断する。これにより利用者が手作業で図形サイズの変更をせずとも済むようになる。また、記事量等が変更になっても自動的に図形サイズが調整される。
【0012】
また、本発明の第2の態様に係るコンピュータ・システムは、予め定められた非矩形の図形(例えば、円、楕円、ひし形、扇型、三角形、平行四辺形、多角形、同一変位図形、対称図形等)に文字列を埋め込む埋込手段と、埋込手段による埋め込みの結果、非矩形の図形内に空きが生じたアンダーフロー状態又は当該図形から文字がはみ出したオーバーフロー状態のいずれかが発生したか検査する検査手段と、検査手段によりアンダーフロー状態又はオーバーフロー状態が検出された場合には、非矩形の図形に対して矩形の文字領域を仮定した場合における行間値を計算する行間値計算手段とを有する。そして、埋込手段が、行間値計算手段により計算された行間値を用いて文字列を埋め込む。
【0013】
非矩形の図形では非矩形の文字領域が設けられているため、簡単には行間値を変更することはできない。しかし本発明の第2の態様では、例えば各行の文字数を平均して、当該各行の平均文字数で矩形の文字領域を仮定して行間値を計算し、この値を用いて非矩形の文字領域に文字を埋め込む。なお、これでもアンダーフロー状態又はオーバーフロー状態が検出された場合には、再度調整すればよい。
【0014】
【発明の実施の形態】
図1に本発明の一実施の形態における図形処理システムの機能ブロック図を示す。本実施の形態に係る図形処理システムは、図形処理装置1と当該図形処理装置1に接続され且つ処理結果を表示する表示装置3とから構成される。なお、図形処理装置1には例えばプリンタなどの出力装置がさらに接続されている場合もある。図形処理装置1は、利用者から文字列や図形に関する情報についての選択指示・入力を受け付ける入力部11と、文字列を埋め込む図形のサイズを決定する図形サイズ決定部13と、図形に文字列を埋め込む文字埋め込み処理部15と、図形に文字列を埋め込んだ結果図形に埋め込めなかった文字が存在するオーバーフロー状態又は図形に文字が埋め込まれなかった空白部分が存在するアンダーフロー状態が生じたか否かを検査するアンダーフロー・オーバーフロー検出部18と、アンダーフロー・オーバーフロー検出部18によりアンダーフロー・オーバーフローを検出した場合に図形サイズを修正する図形サイズ修正部17と、固定の図形に行間を均等にして文字列を埋め込む場合の行間値を計算する行間値計算部19とを含む。
【0015】
[実施の形態1]
まず文字列を埋め込む図形を確定させるための処理について図2乃至図10を用いて説明する。最初に入力部11が利用者から図形に埋め込むべき文字列の選択指示を受け付ける(ステップS1)。なお、この時点において文字列を入力するようにしても良い。また、文字列には、通常の文字のほか、半角文字を指定した場合に半角文字を挟む形で挿入される制御文字等も含まれる。次に、入力部11は、文字情報の指定を受け付ける(ステップS3)。例えば、文字サイズや、行間値、初期字詰め数(最初の行の文字数)、フォントの種類などの指定を受け付ける。
【0016】
次に、入力部11は図形の選択指示を受け付ける(ステップS5)。ここで図形の種類の選択指示を受け付ける。図形の種類としては、例えば、円(a)、楕円(b)、ひし形(c)、正三角形(d)、二等辺三角形(e)、平行四辺形(f)、同一変位図形(g)、対称図形(h)である(図3参照)。入力部11はさらに図形情報の指定を受け付ける(ステップS7)。図形情報とは、例えば図形の高さの指定や、その他図形の輪郭線の種類の指定などを含む。但し、円や正三角形の場合には他のパラメータにて高さは決定されるので、高さ指定はできない。そして、見出しが存在する場合には、入力部11は見出しに関する情報の指定を受け付ける(ステップS9)。見出しに関する情報は、例えば見出し領域の高さ及び幅の情報である。但し、本実施の形態では、見出しが存在する場合には、見出し領域の高さに図形の高さは依存することとする。また、見出しが存在しない場合もある。
【0017】
次に、図形サイズ決定部13は入力部11が受け付けた情報を用いて図形サイズの仮確定処理を実施する(ステップS11)。この処理は図形の種類によって多少異なるが、ここではひし形の例を用いて説明する。
【0018】
(1)見出しの指定がない場合
例えば以下のような値がステップS1乃至S9で取得されているものとする。
文字サイズ:moji_x(横)×moji_y(縦) [60×50]
行間値 :gyokan [25]
全文字数 :text_size [100]
図形の高さ:high [600]
初期字詰め:jitsume [4]
なお[]内は具体例を示している。単位はピクセルである。
【0019】
まず行数を仮確定する。例えば、行数X1は以下の式で計算される。
X1=text_size/((high_moji−jitsume)/2+jitsume)
なお、high_moji=high/moji_y である。この式では、1行に割り付けられる最大文字数high_mojiと最低文字数jitsumeの差の半分に最低文字数jitsumeを加えた数を、例えば平均的な1行当りの文字数として、全文字数text_sizeを除している。これにて行数が計算される。なお、行数は整数しかありえないので、除算結果を切り上げ又は切捨てる。上で述べた具体例では行数X1=12.5であり、切り上げてX1=13とする。
【0020】
X1=13であるとすると、図4のようなひし形が構成される。すなわち、右から行L1乃至L13が設けられる。また、初期字詰め数jitsumeの文字が割り当てられる行L1の文字領域の上端から図形高さhighまでの長さY1は、以下の式で表される。
Y1=high/2−jitsume/2×moji_y
図形高さhighの半分から行L1の文字数jitsumeの半分の長さ(jitsume/2×moji_y)を引いたものということである。本具体例では、Y1=200ピクセルである。
【0021】
また、行L7の中心線でありひし形の縦の中心線から行L1の右端までの長さX2は以下の式で表される。
X2=moji_x/2+(moji_x+gyokan)×(X1−1)/2
第1項は行L7の半分を表しており、第2項は文字の幅と行間とを足したものに図形の右半分の行数を掛けたものを表している。上で述べた具体例では、X2=540ピクセルである。
【0022】
さらに、ひし形の横の半分の長さであるX3は図5に示すような関係を用いて計算できる。すなわち、high/2:X3=Y1:X2であり、以下のように表すことができる。
X3=high/2×X2/Y1
上で述べた具体例では、X3=810ピクセルである。
【0023】
これらの数値が計算されると、行L1乃至L13の各行の文字数が計算できる。ここでは図6のような関係を用いる。すなわち、行L1の右端の長さ(半分の長さ)をY10とすると、high/2:X3=Y10:(X3−X2)となり、Y10=high/2/X3×(X3−X2)となる。また、行L2の右端の長さ(半分の長さ)をY11とすると、high/2:X3=Y11:(X3−X2+85)となり、Y11=high/2/X3×(X3−X2+85)となる。一般的には、Y1z=high/2/X3×(X3−X2+85×z)である。Y1zは行の半分の長さであるから、2Y1z=high/X3×(X3−X2+85×z)が行の全体の長さである。これを1文字の高さmoji_yで割れば1行の文字数が計算される。具体例では、図4に示したような文字数が計算される。すなわち、行L1は4文字、行L2は5文字、行L3は6文字、行L4は7文字、行L5は9文字、行L6は10文字、行L7は11文字である。
【0024】
次にこの図形に埋め込まれる文字数を確認する。上で述べた具体例では、(4+5+6+7+9+10)×2+11=93文字である。但し、全文字数text_size=100であるから、これではオーバーフローの可能性がある。よって、行数が足りないということで、行数を例えば15行(行数を奇数とする場合)にして再度上で述べたような処理を実施する。一方、全文字数text_sizeには、制御文字も含まれるため実際に埋め込まれる文字数text_sizeと同じでなく少ない可能性もある。よって、仮確定した図形に埋め込むことができる文字数≧全文字数text_sizeとなるように行数を変更する処理を実施する場合もあれば、実施せず以下の処理にて本当にオーバーフローするか否かを確認することにしてもよい。
【0025】
(2)見出しの指定がある場合
例えば以下のような値がステップS1乃至S9で取得されているものとする。
文字サイズ :moji_x(横)×moji_y(縦) [60×50]
行間値 :gyokan [25]
全文字数 :text_size [100]
見出しサイズ:midashi_x(横)×midashi_y(縦) [230×600]
初期字詰め :jitsume [4]
なお[]内は具体例を示している。単位はピクセルである。
【0026】
まず行数を仮確定する。例えば、行数X1は以下の式で計算される。
X1=text_size/((high_moji−jitsume)/2+jitsume)
なお、high_moji=midashi_y/moji_y である。この式では、1行に割り付けられる最大文字数high_mojiと最低文字数jitsumeの差の半分に最低文字数jitsumeを加えた数を、例えば平均的な1行当りの文字数として、全文字数text_sizeを除している。これにて行数が計算される。なお、行数は整数しかありえない。また本実施の形態では見出しは図形内の中央に配置されるので、行数は偶数にしなければならない。よって、除算結果を切り上げ又は切捨て、さらに偶数化する。上で述べた具体例では行数X1=12.5であり、補正するとX1=14となる。
【0027】
X1=14であるとすると、図7のようなひし形が構成される。すなわち、右から行L1乃至L14が設けられる。また、初期字詰め数jitsumeの文字が割り当てられる行L1の文字領域の上端から図形高さhighまでの長さY1は、以下の式で表される。
Y1=midashi_y/2−jitsume/2×moji_y
見出しの高さmidashi_yの半分から行L1の文字数jitsumeの半分の長さ(jitsume/2×moji_y)を引いたものということである。本具体例では、Y1=200ピクセルである。
【0028】
また、見出しの右端から行L1の右端までの長さX2は以下の式で表される。
X2=(moji_x+gyokan)×X1/2
これは、文字の幅と行間とを足したものに図形の右半分の行数を掛けたものを表している。上で述べた具体例では、X2=595ピクセルである。
【0029】
X3は見出し領域の横幅の半分であり、X3=midashi_x/2である。
【0030】
さらに、図7に示すように、見出し領域の下端とひし形の縦の中心線を通る頂点との間の長さY2は、以下の式で表される。
Y2=X3×Y1/X2
ひし形の辺の傾きがY1/X2であり、これに上で計算したX3を掛けたものである。上で述べた具体例では、Y2=39ピクセルである。
【0031】
また、ひし形の高さの半分Y3は、以下のような式で表される。
Y3=Y1+Y2+jitsume/2×moji_y
第3項は、行L1の半分の長さを表している。上で述べた具体例では、Y3=339ピクセルである。
【0032】
以上の計算結果を用いて、ひし形の横幅の半分の長さX4は、以下のように表される。
X4=X2×Y3/Y1
これは図8に示した関係を用いている。すなわち、Y1:Y3=X2:X4である。上で述べた具体例ではX4=1009ピクセルである。
【0033】
これらの数値が計算されると、行L1乃至L14の各行の文字数が計算できる。ここでは図9のような関係を用いる。すなわち、行L1の右端の長さ(半分の長さ)をY20とすると、midashi_y/2:(X4−X3)=Y20:(X4−X3−X2)となり、Y20=midashi_y/2/(X4−X3)×(X4−X3−X2)となる。また、行L2の右端の長さ(半分の長さ)をY21とすると、midashi_y/2:(X4−X3)=Y 21:(X4−X3−X2+85)となり、Y21=midashi_y/2/(X4−X3)×(X4−X3−X2+85)となる。一般的には、Y2z=midashi_y/2/(X4−X3)×(X4−X3−X2+85×z)である。Y2zは行の半分の長さであるから、2Y2z=midashi_y/2/(X4−X3)×(X4−X3−X2+85×z)が行の全体の長さである。これを1文字の高さmoji_yで割れば1行の文字数が計算される。具体例では、図7に示したような文字数が計算される。すなわち、行L1は4文字、行L2は5文字、行L3は6文字、行L4は7文字、行L5は9文字、行L6は10文字、行L7は11文字である。
【0034】
次にこの図形に埋め込まれる文字数を確認する。上で述べた具体例では、(4+5+6+7+9+10+11)×2=104文字である。なお、全文字数text_size=100であるから、これではアンダーフローの可能性がある。よって、行数が多いということで、行数を例えば12行(行数は偶数)にして再度上で述べたような処理を実施する。但し、全文字数text_sizeには、制御文字も含まれるため実際に生ずるアンダーフローとなる文字数を計算すべく、上で述べた処理で仮確定した図形に文字列を埋め込む処理を実施するようにしても良い。
【0035】
以上のように図形サイズの仮確定処理を実施する(図2:ステップS11)。なお、上の説明ではひし形であるということ(例えば図5及び図6、図8及び図9に示された関係)を用いて計算している。よって、ステップS5で指定された図形の種類に従って、図形サイズを決定するための計算を行わなければならない。
【0036】
図2の説明に戻って、文字埋め込み処理部15はステップS11で仮確定された図形にステップS1で選択指示を受け付けた文字列を埋め込む処理を実施する(ステップS13)。ここでは、例えば文字を半角にすることを表す制御文字が存在すれば、その制御文字に従って文字を半角にしたり、禁則処理を実施する。禁則処理は、例えば文頭に読点が来た場合には、前の行に句点又は読点があれば当該句点又は読点を半角にして且つ文頭にあった読点を半角にして前の行に入れたり、前の行に空文字を入れたりする。また、図10に示したように、例えば文頭に句点が来た場合には、前の行に句点又は読点があれば当該句点又は読点を半角にして且つ文頭にあった句点を半角にして前の行に入れたり、前の行に空文字100を入れたりする。なお、図10は空文字100を強調するように描かれており、実際は同じ行の文字間隔に空文字100を均等に割り付けて空文字100が目立たないようにする。
【0037】
次に、アンダーフロー・オーバーフロー検出部18が、文字埋め込み処理部15により仮確定された図形への埋め込み結果を検査して、オーバーフロー又はアンダーフローが存在しているか否かを判断する(ステップS15)。仮確定された図形に埋め込めなかった文字が一文字でも存在していた場合にはオーバーフローとして検出する。しかし、アンダーフローの場合には、一つの空文字をも発生させずに文字列を埋め込むのは不可能な場合が多いので、例えば空行が発生した場合にのみアンダーフローであると判断するような構成であってもよい。なお、ステップS15で、オーバーフローともアンダーフローとも判断されなかった場合には、適切な図形が決定され適切に文字列が埋め込まれたことを意味するため、表示装置3に処理結果を表示して処理を終了する。
【0038】
もし、アンダーフロー・オーバーフロー検出部18がアンダーフロー又はオーバーフローを検出した場合には、図形サイズ修正部17が図形サイズの補正を行う(ステップS17)。もし、アンダーフローが発生したことが検出された場合には、行数を一単位減らして、図形を新たに確定させる。オーバーフローが発生したことが検出されれば、行数を一単位増加させる。一単位とは、例えば偶数行数又は奇数行数しか許されていない場合には2行であり、制限が無ければ1行である。そして、ステップS11で行った処理を実施する。なお、図形サイズ修正部17を図形サイズ決定部13に統合してしまって、ステップS17についても図形サイズ決定部13が実施するような構成であってもよい。
【0039】
ステップS17において修正された図形に対して、文字埋め込み処理部15は、再度文字埋め込み処理を実施する(ステップS19)。そして、アンダーフロー・オーバーフロー検出部18は、適切な埋め込み状態になったか否かを検査する(ステップS21)。ここでもステップS15と同じ判断基準にてアンダーフロー又はオーバーフローが発生していないか判断するようにすることも可能である。又は、何回か図形サイズ修正を行った後に、所定数以上の空文字が存在していてアンダーフロー状態であると判断されるが、図形サイズを修正してもこれ以上空文字数が減らないと判断できる場合には、その状態を適切と判断して、処理を終了させる場合もある。なお、図形サイズを修正してアンダーフローもオーバーフローも検出されなければ、処理を終了させる。
【0040】
以上説明したように、実施の形態1では、図形に埋め込むべき文字列の行数も列数も決定されておらず、図形に設けられる文字領域も単純な矩形でない場合であっても、文字列を適切に埋め込むことができる図形を自動的に確定させることができるようになる。
【0041】
また、図形に埋め込むべき文字列の行数も列数も決定されておらず、図形に設けられる文字領域も単純な矩形でなく、さらに見出し領域が指定された場合であっても、文字列を適切に埋め込むことができ且つ指定された見出し領域が確保された図形を自動的に確定させることができる。
【0042】
[実施の形態2]
次に図形は固定で、文字列の行間を均等に割り付け、文字列を図形に適切に埋め込むための処理を説明する。これは例えば図11(a)に示すように文字列の図形への初期的な埋め込みで空行110が存在した場合に、空行110を行間に均等に割り付けて、すなわち行間値を拡大して再度文字列を埋め込み、例えば図11(b)のように適切な文字列の埋め込み状態を達成するものである。
【0043】
このための処理フローを図12に示す。最初に入力部11は、文字列の選択指示を受け付ける(ステップS31)。この段階において新たに文字列を入力しても良い。次に、入力部11は図形の選択指示を受け付ける(ステップS33)。ここでは図形そのものの選択を受け付ける。すなわち、実施の形態2では図形は固定であるから、このステップS33において、図形の種類及び図形サイズが全て指定されたものを選択するか又は図形の種類を指定しさらに図形サイズを指定するようにしてもよい。なお、図形は、図3(a)乃至(h)に示したものの他、扇形(i)、直角三角形(j)、多角形(k)であってもよい。
【0044】
そして、文字埋め込み処理部15が、ステップS33で選択指示された図形に、ステップS31で選択指示された文字列を埋め込む処理を実施する(ステップS35)。この際上で述べたように半角についての処理や禁則処理を実施する。そして、この文字埋め込み処理に対して、アンダーフロー・オーバーフロー検出部18は、オーバーフロー又はアンダーフローの発生を検出する(ステップS37)。実施の形態1でも述べたように、オーバーフローが一文字でもあればオーバーフロー状態であるが、例えば空行が存在しない状態をアンダーフローがない状態と定義することも可能である。もし、アンダーフローもオーバーフローも存在しない場合には、処理を終了する。
【0045】
一方、アンダーフロー又はオーバーフローが検出された場合には、アンダーフロー・オーバーフロー検出部18は、アンダーフロー又はオーバーフロー量を計算する(ステップS39)。本実施の形態では行間を調整することを目的とするため、このアンダーフロー又はオーバーフロー量は、横幅のピクセル数又は行数がアンダーフロー又はオーバーフロー量である。次に、アンダーフロー又はオーバーフロー量を用いた行間値の補正を、行間値計算部19が実施する(ステップS41)。この計算例を以下に簡単に説明する。
【0046】
文字領域が矩形であれば、文字列の行数及び列数は簡単に分かるため、空行の補正は簡単に計算できる。例えば、アンダーフロー量が5行であって、埋め込まれた文字列の行数が9行である場合には、以下の計算で行間値が計算できる。
空行の横幅:(50+25)×5−25=350
なお、文字の横幅は50ピクセルで基本行間値が25ピクセルである。(−25)ピクセル分は最後の行には行間が無いことを示している。
各行間に割り振るピクセル数:350/(9−1)≒45
埋め込まれた文字列の行数が9である場合には行間数は8=9−1である。
よって新行間値は45+25=70となる。
【0047】
しかし、文字領域が矩形でなければ、簡単に文字列の行数及び列数は確定しない。本実施の形態では、文字領域が仮に矩形であるとした場合の新行間値を計算して、再度文字を埋め込んでみる。そして、オーバーフローやアンダーフローが発生するようであれば、再度見直すこととする。空行の横幅については上で計算したのと同じように計算できる。次に、当該図形において1行当りの平均的な文字数を計算する。そしてその場合の行数を、全文字数/(1行当りの平均的な文字数)で計算する。これで矩形の文字領域を仮想的に用意したことになる。これで(行数−1)で行間数が計算できるため、上で述べたのと同じように各行間に割り振るべきピクセル数が計算できる。同じようにして新行間値も計算できる。
【0048】
なお、文字領域が矩形でなくても矩形として計算できる場合もある。例えば図3(g)の場合には、行ごとに行内の文字数が変化しないためである。よって、この場合であっても文字領域が矩形であるとしているのと同じである。
【0049】
次に行間補正後の文字埋め込み処理を、文字埋め込み処理部15が実施する(ステップS43)。この処理については上で述べたのと同じである。そして、アンダーフロー・オーバーフロー検出部18は、適切な埋め込み状態になっているか判断する(ステップS45)。この適切な埋め込み状態になっているかの基準についても実施の形態1と同じような基準とすることができる。もしステップS45で適切な状態になっていると判断されれば、表示装置3に処理結果を表示して、処理を終了する。適切ではないと判断されればステップS39に戻る。
【0050】
なお、アンダーフローが発生した場合には問題とならないが、オーバーフローを発生した場合には問題が生じ得る。新行間値が余りに小さくなると、文字が読みずらくなったり、文字が重なったりするからである。オーバーフローについては本実施の形態では取り扱わないようにしたり、ステップS41で新行間値が所定値未満となった場合には、本実施の形態では取扱い不可能であるという表示を表示装置3に表示させるような構成も可能である。
【0051】
以上述べたように、実施の形態2により、図形は固定されていても、行間を均等にして、オーバーフローやアンダーフローが生じないような行間値を得ることができるようになる。これにより、文字列が図形に見易く且つ見栄え良く埋め込まれる。
【0052】
また、自動的に行間値を調整できるため、文字列の文字数が変更になっても簡単に対処できる。
【0053】
以上述べた実施の形態は一例であって様々な変形が可能である。すなわち、図1に示した図形処理装置1内の機能ブロック分けは一例であってさらに細かく機能ブロックを設けてそれに合わせたモジュールを用意しても良いし、さらに大きな機能ブロックを用意して対応するモジュールを用意しても良い。また図1では中間的な処理結果を記憶するメモリや、データなどを保管する記憶装置については図示していないが、図形処理装置1にはそれらが設けられており、適宜用いられる。
【0054】
さらに、上述した図形処理システムはコンピュータに当該システム用のプログラムをインストールすることによっても実現可能である。この場合、このプログラムは、例えばフロッピーディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメモリに一時保管される。
【0055】
(付記1)
行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形に関する情報の指定に応じて、前記文字列の文字数及び文字に関する情報を用いて図形のサイズを決定する図形サイズ決定手段と、
前記文字列を前記図形サイズ決定手段によりサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施手段と、
を有するコンピュータ・システム。
【0056】
(付記2)
前記図形サイズ決定手段によりサイズが決定された図形に前記文字列を埋め込んだ結果、当該図形内に空きが生じた又は当該図形から文字がはみ出した場合には、前記図形のサイズを修正する図形サイズ修正手段をさらに有し、
前記埋め込み処理実施手段が、前記図形サイズ修正手段により修正された図形に前記文字列を埋め込む
ことを特徴とする付記1記載のコンピュータ・システム。
【0057】
(付記3)
前記図形サイズ決定手段が、
前記行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形に関する情報及び見出し領域の指定に応じて、前記文字列の文字数及び文字に関する情報を用いて図形のサイズを決定する
ことを特徴とする付記1記載のコンピュータ・システム。
【0058】
(付記4)
文字列を埋め込むための図形であって文字領域が非矩形の図形に関する情報の指定に応じて、前記文字列の文字数及び文字に関する情報を用いて図形のサイズを決定する図形サイズ決定手段と、
前記文字列を前記図形サイズ決定手段によりサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施手段と、
を有するコンピュータ・システム。
【0059】
(付記5)
予め定められた非矩形の図形に文字列を埋め込む埋込手段と、
前記埋込手段による埋め込みの結果、前記非矩形の図形内に空きが生じたアンダーフロー状態又は当該図形から文字がはみ出したオーバーフロー状態のいずれかが発生したか検査する検査手段と、
前記検査手段によりアンダーフロー状態又はオーバーフロー状態が検出された場合には、前記非矩形の図形に対して矩形の文字領域を仮定した場合における行間値を計算する行間値計算手段と、
を有し、
前記埋込手段が、前記行間値計算手段により計算された前記行間値を用いて文字列を埋め込む
ことを特徴とするコンピュータ・システム。
【0060】
(付記6)
プログラムを格納した記録媒体であって、
前記プログラムは、コンピュータに、
行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形に関する情報の指定に応じて、前記文字列の文字数及び文字に関する情報を用いて図形のサイズを決定する図形サイズ決定ステップと、
前記文字列を前記図形サイズ決定ステップにおいてサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施ステップと、
を実行させるためのプログラムである、記録媒体。
【0061】
(付記7)
プログラムを格納した記録媒体であって、
前記プログラムは、コンピュータに、
文字列を埋め込むための図形であって文字領域が非矩形の図形に関する情報の指定に応じて、前記文字列の文字数及び文字に関する情報を用いて図形のサイズを決定する図形サイズ決定ステップと、
前記文字列を前記図形サイズ決定ステップにおいてサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施ステップと、
を実行させるためのプログラムである、記録媒体。
【0062】
(付記8)
プログラムを格納した記憶媒体であって、
前記プログラムは、コンピュータに、
予め定められた非矩形の図形に文字列を埋め込む埋込ステップと
前記埋込ステップにおける埋め込みの結果、前記非矩形の図形内に空きが生じたアンダーフロー状態又は当該図形から文字がはみ出したオーバーフロー状態のいずれかが発生したか検査する検査ステップと、
前記検査ステップにおいてアンダーフロー状態又はオーバーフロー状態が検出された場合には、前記非矩形の図形に対して矩形の文字領域を仮定した場合における行間値を計算する行間値計算ステップと、
前記行間値計算ステップにおいて計算された前記行間値を用いて文字列を埋め込むステップと
を実行させるためのプログラムである、記録媒体。
【0063】
【発明の効果】
本発明により、行数及び列数のうち少なくとも何れかが不定である文字列を埋め込み可能な図形を決定するための技術を提供することができた。
【0064】
また、文字列を埋め込むための図形であって文字領域が非矩形の図形を決定するための技術を提供することができた。
【0065】
さらに、見出し領域を考慮して、文字列を埋め込むための図形であって文字領域が非矩形の図形を決定するための技術を提供することができた。
【0066】
また、非矩形の図形において文字列の行間を均等割付するための技術を提供することもできた。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかる図形処理システムの概要を説明するための機能ブロック図である。
【図2】実施の形態1の処理フローを示すフローチャートである。
【図3】本実施の形態において取り扱う図形の一例を示す図である。
【図4】見出しなしの場合におけるひし形図形の確定処理を説明するための模式図である。
【図5】見出しなしの場合におけるひし形図形の確定処理を説明するための模式図である。
【図6】見出しなしの場合におけるひし形図形の確定処理を説明するための模式図である。
【図7】見出しありの場合におけるひし形図形の確定処理を説明するための模式図である。
【図8】見出しありの場合におけるひし形図形の確定処理を説明するための模式図である。
【図9】見出しありの場合におけるひし形図形の確定処理を説明するための模式図である。
【図10】禁則処理を説明するための模式図である。
【図11】行間補正を説明するための模式図であり、(a)は処理前の状態、(b)は処理後の状態を示す。
【図12】実施の形態2の処理フローを示すフローチャートである。
【符号の説明】
1 図形処理装置 3 表示装置
11 入力部 13 図形サイズ決定部 15 文字埋め込み処理部
17 図形サイズ修正部
18 アンダーフロー・オーバーフロー検出部
19 行間値計算部
Claims (5)
- 行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形に関する情報の指定に応じて、前記文字列の文字数と前記文字列の文字サイズと行間値とを用いて図形のサイズを決定する図形サイズ決定手段と、
前記文字列を前記図形サイズ決定手段よりサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施手段と、
を有するコンピュータ・システム。 - 前記図形サイズ決定手段によりサイズが決定された図形に前記文字列を埋め込んだ結果、当該図形内に空きが生じた又は当該図形から文字がはみ出した場合には、前記図形のサイズを修正する図形サイズ修正手段をさらに有し、
前記埋め込み処理実施手段が、前記図形サイズ修正手段により修正された図形に前記文字列を埋め込む
ことを特徴とする請求項1記載のコンピュータ・システム。 - 前記図形サイズ決定手段が、
前記行数及び列数のうち少なくともいずれかが不定の文字列を埋め込むための図形に関する情報及び見出し領域に応じて、見出しサイズと前記文字列の文字数と前記文字列の文字サイズと行間値とを用いて図形のサイズを決定する
ことを特徴とする請求項1記載のコンピュータ・システム。 - 前記図形サイズ決定手段が、
前記図形に関する情報に含まれる図形の高さと前記文字列の文字サイズとを用いて1行に埋め込む最大文字数を計算し、前記最大文字数と1行に埋め込む最小文字数である初期字詰め数とから1行に埋め込む平均文字数として取扱われる特定文字数を計算し、前記文字列の文字数を前記特定文字数で除することにより行数を計算し、前記文字列の文字サイズと行間値と前記行数とを用いて図形のサイズを決定する
ことを特徴とする請求項1記載のコンピュータ・システム。 - プログラムを格納した記録媒体であって、
前記プログラムは、コンピュータに、
文字列を埋め込むための図形であって文字領域が非矩形の図形に関する情報の指定に応じて、前記文字列の文字数と前記文字列の文字サイズと行間値とを用いて図形のサイズを決定する図形サイズ決定ステップと、
前記文字列を前記図形サイズ決定ステップにおいてサイズが決定された図形に埋め込む処理を実施する埋め込み処理実施ステップと、
を実行させるためのプログラムである、記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000226306A JP3763729B2 (ja) | 2000-07-27 | 2000-07-27 | コンピュータ・システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000226306A JP3763729B2 (ja) | 2000-07-27 | 2000-07-27 | コンピュータ・システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002044415A JP2002044415A (ja) | 2002-02-08 |
JP3763729B2 true JP3763729B2 (ja) | 2006-04-05 |
Family
ID=18719944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000226306A Expired - Fee Related JP3763729B2 (ja) | 2000-07-27 | 2000-07-27 | コンピュータ・システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3763729B2 (ja) |
-
2000
- 2000-07-27 JP JP2000226306A patent/JP3763729B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002044415A (ja) | 2002-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3354754B2 (ja) | カーニング処理方法 | |
US6078306A (en) | Basic input-output system (BIOS) read-only memory (ROM) with capability for vertical scrolling of bitmapped graphic text by columns | |
EP0062744B1 (en) | Method of character generation from compressed fonts | |
US5151975A (en) | Word processor with text layout display function | |
JP3763729B2 (ja) | コンピュータ・システム | |
US20090051689A1 (en) | Image processing method and apparatus | |
JP3192915B2 (ja) | 文字画像複合データ表示印刷方法および装置 | |
US5727224A (en) | Document image processor for inserting and editing bracket symbols and associated text | |
US6570562B1 (en) | Method for drawing patterned lines in a system supporting off-screen graphics | |
JPS6265080A (ja) | グラフ表示方式 | |
JP3056112B2 (ja) | 液晶ディスプレイ表示制御方式 | |
JP3173188B2 (ja) | 文字配置決定装置及びワークステーション | |
JP2677442B2 (ja) | 編集機におけるイラストの取り込み方法および編集機 | |
JP3815411B2 (ja) | フォント処理装置、端末装置、表示装置、フォント処理方法およびフォント処理プログラム | |
JP3725977B2 (ja) | 縁取り文字作成方法及びその装置並びにその処理を実行するためのプログラムを記録した記録媒体 | |
JPH11219160A (ja) | 画像表示装置 | |
JPH117493A (ja) | 文字認識処理装置 | |
JP2004093931A (ja) | フォント処理装置、端末装置、フォント処理方法およびフォント処理プログラム | |
JP3567728B2 (ja) | 画像処理方法および装置 | |
JP2794409B2 (ja) | 罫線作成装置 | |
JP2612402B2 (ja) | 表示制御方法 | |
JP2698348B2 (ja) | 文字処理装置 | |
JPH06232261A (ja) | Lsi内配置設計方式 | |
CN117036532A (zh) | 晶圆图生成方法、装置、电子设备和存储介质 | |
JPS63195696A (ja) | 高速描画方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050922 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051011 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051208 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060117 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100127 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110127 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110127 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120127 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |