JP4174117B2 - 情報処理装置及び情報処理方法並びに記憶媒体 - Google Patents
情報処理装置及び情報処理方法並びに記憶媒体 Download PDFInfo
- Publication number
- JP4174117B2 JP4174117B2 JP03128699A JP3128699A JP4174117B2 JP 4174117 B2 JP4174117 B2 JP 4174117B2 JP 03128699 A JP03128699 A JP 03128699A JP 3128699 A JP3128699 A JP 3128699A JP 4174117 B2 JP4174117 B2 JP 4174117B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- character
- layout
- text
- line
- 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
- Processing Or Creating Images (AREA)
- Document Processing Apparatus (AREA)
- Editing Of Facsimile Originals (AREA)
- Preparing Plates And Mask In Photomechanical Process (AREA)
Description
【発明の属する技術分野】
本発明は、編集機能を有する情報処理装置及び情報処理方法並びに記憶媒体に関し、例えば、高精細の版下を作成するための情報処理装置及び情報処理方法並びに記憶媒体に用いて好適なものである。
【0002】
【従来の技術】
上述した編集機能を有する情報処理装置の一例として、印刷データ、特に、製品本体やその外装パッケージやマニュアル類などに表示する、図形や文字やイラストなどの版下用の印刷データを作成する、CADやDTP(Desk Top Publishing)などの、対話形式の作図システムがある。このようなシステムを用いて印刷データを作成する場合には、従来、次のような方法があった。
(1)印刷した時のイメージとは異なる、おおまかなイメージを表示装置に表示しながら、対話形式で図形や文字の編集やレイアウトを行なった後に、印刷に必要な属性を付加した、印刷用のデータを別に作成して、印刷装置で印刷する方法。
(2)印刷した時のイメージと同様のイメージを表示装置に表示しながら、対話形式で図形や文字の編集やレイアウトを行なった後に、表示装置に表示されたデータを、ほぼそのままの形で、印刷装置で印刷する方法。
【0003】
この(2)の方法は、表示装置に表示されるイメージが、印刷装置で印刷されるイメージと同じ表示形態となる、WYSIWYG(What You See Is What You Get)と呼ばれる技術による方法である。
【0004】
また、印刷データを、対話形式の作図システムを用いずに作成する場合には、従来、次のような方法があった。
(3)TeXなどのマークアップ言語を用いて、図形や文字のデータとともに、印刷に必要な属性や、レイアウト情報などを記述したプログラムを作成し、そのプログラムを一括処理で実行することにより、印刷データを生成して、印刷装置で印刷する方法。
【0005】
【発明が解決しようとする課題】
しかしながら、上記従来例は、それぞれ、以下に述べるような課題を有している。なお、以下に述べる課題は、それぞれ上記従来例に付した番号に対応した番号を付して記載している。
(1)印刷装置で印刷した時のイメージが、表示装置に表示した時のイメージとかなり異なるために、ユーザーが思った通りの印刷結果を得るためには、何度も印刷し直しては修正する必要があり、ユーザーインターフェイスがよくない、という問題があった。
【0006】
また、印刷用のデータを、表示用のデータとは別に作成しなければならないため、データ作成の効率がよくない、という問題があった。
(2)また、上述したようなWYSIWYGの機能を用いて、対話形式で図形や文字をレイアウトする場合、ユーザーは、表示装置に表示されたイメージに従ってレイアウトのための操作を行なうことになる。
【0007】
しかしながら、その際の精度は、表示装置の解像度に依存するので、表示装置よりも格段に解像度の高い印刷装置で印刷するような場合には、表示装置に表示された内容と印刷装置による印刷結果との間に、解像度の違いによる誤差が生じてしまう、という問題があった。
【0008】
例えば、版下などの印刷データを作成する際に、「文字や図形の可視部分の外接矩形の端点を、既存の点に合わせて配置する」などといった精密なレイアウトが必要な場合、ユーザーには、表示装置上で正しくレイアウトされているように見える場合でも、実際に、表示装置の5〜30倍程度の解像度を持つような高精細な印刷装置で印刷してみると、多少の誤差が生じてしまい、精密な位置合わせを行うことは、極めて困難だった。
(3)また、TeXなどのマークアップ言語を用いる場合は、正しいレイアウトの指示さえしておけば、上記(2)の方法のような解像度の違いによる誤差は生じないが、対話形式による処理ではないために、ユーザーが、レイアウトの結果を見ながらレイアウトのための操作を行なうことができず、上記(1)の方法よりもさらに、ユーザーインターフェイスがよくない、という問題があった。また、精密なレイアウトを必要としない場合でも、すべて正確にレイアウトの指示をしておかなければならないため、印刷データを作成する手間や不要な操作が増加して、ユーザーの作業効率が低下してしまう、という問題があった。
【0009】
本発明は、上記従来の技術の様々な問題点を解決するためになされたものであり、ユーザーの作業効率を低下させることなく、しかも、精度の高い印刷データ、特に、文字データを含む印刷データを正確かつ容易に作成することのできる、情報処理装置及び情報処理方法並びに記憶媒体を提供することを目的とする。
【0010】
【課題を解決するための手段】
上述の目的を達成するために、本発明の情報処理装置は、書体情報と文字サイズ情報とを含む印刷属性データおよび文字列データを有するテキスト印刷データを記憶する記憶手段と、前記テキスト印刷データに基づき出力されるテキスト画像の輪郭を抽出する輪郭抽出手段と、前記抽出された輪郭から外接矩形を計算する計算手段と、前記外接矩形の幅と基準文字高さとからレイアウト基準矩形を設定するレイアウト基準矩形設定手段と、レイアウト位置を設定するレイアウト位置設定手段と、前記レイアウト基準矩形と前記レイアウト位置とに基づき、前記テキスト画像をレイアウトするレイアウト手段とを有し、前記基準文字高さは、前記書体情報に対応する基準文字高さ比率と前記文字サイズ情報とから算出されることを特徴とする。
【0013】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について、詳細に説明する。
【0014】
(第1の実施形態)
〔ハードウエア構成の説明〕
図1は、本発明の一実施形態に係る情報処理装置のハードウエア構成を示すブロック図である。
【0015】
この図1において、21は中央処理装置(CPU)であり、本装置の全体の制御や演算処理を行なう。また、11は、文字や数値の入力を行なうためのキーボードであり、12は、座標や図形を指示するためのマウスである。また、41は表示装置であり、図形データおよび文字データ、各種操作パネルやボタンを表示する。
【0016】
また、31は読出専用記憶装置(ROM)であり、本実施形態に係るプログラムは、このROM31に格納され、CPU21によって実行される。32は読出書込記憶装置(RAM)であり、本実施形態に係るプログラムの実行中、CPU21は、必要に応じて、RAM32に、データを読み書きしながら処理を行なう。33は、フロッピーディスク装置(FD)やハードディスク装置(HD)などの外部記憶装置であり、文字の書体情報やコード情報などのデータが格納されている。
【0017】
なお、本実施形態に係るプログラムを、外部記憶装置33に格納させておき、RAM32に読み込んでから、CPU21によって実行するようにしてもよいし、また、文字の書体情報やコード情報などのデータを、ROM31に格納させておき、CPU21が、必要に応じて、それらのデータを読み出して使用するようにしてもよい。
【0018】
また、51はレーザープリンタであり、本装置によって作成された印刷データを、校正刷り(印刷データの確認のための出力)し、また、印刷ログファイルの内容を出力する。52はイメージセッターであり、本装置によって作成された印刷データを、清刷り(正式な版下となる高精度な出力)する。53はレーザーマーカーであり、本装置によって作成された印刷データを、レーザーで直接、製品に焼き付ける。
【0019】
以下、レーザープリンタ51と、イメージセッター52と、レーザーマーカー53の違いについて説明する。
【0020】
まず、レーザープリンタ51は、レーザーを感光ドラムに照射してトナーを吸着させ、それを紙に転写するプリンタであり、解像度は、1500DPI程度まで可能である。また、イメージセッター52は、レーザーを直接、感光紙に照射するプリンタであり、解像度は、4000DPI程度まで可能であり、また、用紙サイズは、A1程度まで可能である。また、レーザーマーカー53は、レーザーを直接、成形品に照射し、樹脂材料を溶融して黒化させるか、充填材を配合した特殊材料を使用して発色させる印刷装置である。
【0021】
なお、22はシステムバスであり、本装置を構成するハードウエアの各要素は、全て、このシステムバス22を介して、プログラムおよびデータの受け渡しを行なっている。
【0022】
次に、本実施形態に係る表示装置41における表示機能について説明する。
【0023】
本実施形態に係る情報処理装置は、図形データおよび文字データを、印刷時の出力形態と同じ表示形態のイメージで、表示装置41へ表示する制御を行なう、いわゆるWYSIWYGの機能を有しており、これを説明する図が、図2である。
【0024】
図2(a)は、WYSIWYGの表示例であり、この図2(a)の表示形態は、印刷時の出力結果の例である図2(c)の出力形態と同じとなっている。一方、図2(b)は、WYSIWYGではない表示の例であり、この図2(b)の表示形態は、印刷時の出力結果の例である図2(c)の出力形態とは異なっている。
【0025】
次に、本実施形態に係る表示装置41上の操作画面について説明する。
【0026】
図3は、本実施形態に係るプログラム実行時に表示装置41に表示されるメインパネル61を示した図である。
【0027】
この図3において、61はメインパネル、62は作画エリア、63はマウスポインタ、64は文字入力エリア、65はボタン群、66は汎用ボタン、67はコマンドメニュー、68はガイダンスエリア、71はメインパネル以外のパネル、72はパネル71上のボタンである。また、これら図3上のボタンは、全てソフトキーである。
【0028】
このメインパネル61上で、キーボード11や、マウス12などの入力装置を操作することによって、対話的に、印刷データの作成および編集作業を行なう。作成された印刷データは、作画エリア62に表示される。
【0029】
また、必要に応じて、メインパネル61以外に、各種のパネル71が表示され、パネル71上で、操作を行なうこともある。
【0030】
以下、この図3を用いて、本実施形態における、さまざまな入力方法について説明する。
【0031】
キーボード11から入力を行なう場合には、文字入力エリア64を、マウス12またはキーボード11で指示してから、文字または数値を入力する。
【0032】
また、マウス12から入力を行なう場合には、以下の方法を用いる。
【0033】
まず、特定の要素やボタンを選択する方法としては、次の(1)と(2)の、2つの方法がある。
【0034】
(1)要素選択:作画エリア62に表示されている、印刷データのある場所に、マウスポインタ63を移動させて、その位置で、例えばマウス左ボタンを押し下げることによって、操作の対象とする要素を選択する。
【0035】
(2)ボタン選択:メインパネル61に表示されている、各種のボタン65や汎用ボタン66や、必要に応じて表示されるパネル71に表示されている、各種のボタン72の位置に、マウスポインタ63を移動させて、その位置で、例えばマウス左ボタンを押し下げることによって、操作の対象とするボタンを選択する。
【0036】
また、作画エリア62上の特定の位置を指定する方法として、次の(3)から(7)までの、5つの方法がある。
【0037】
(3)任意指定:作画エリア62上の、任意の位置に、マウスポインタ63を移動させて、その位置で、例えばマウス右ボタンを押し下げることによって、位置を指定する。
【0038】
(4)点指定:作画エリア62に表示されている、点を要素選択することによって、位置を指定する。
【0039】
(5)特徴点指定:作画エリア62に表示されている、点以外の要素を要素選択することによって、その要素の特徴となる点をCPU21が抽出し、位置を指定する。
【0040】
ここで、特徴点が複数存在する場合に、1点を特定する方法には、要素選択した際のマウスポインタ63の位置に最も近い特徴点をCPU21が自動的に抽出する方法、複数存在する特徴点の中からさらに1点を点指定する方法、などがある。
【0041】
図4に、図形データの各要素の特徴点の例を示す。図中、*印で示した点が、特徴点である。なお、これら特徴点の具体的な位置は、以下に示す通りである。
・線分:両端点、中点
・円:中心点、円の中心からXおよびY軸方向に引いた直線と円との交点(4点)
・円弧:中心点、両端点、中点(円弧の距離を二分する円弧上の点)
・楕円:中心点、楕円の短軸および長軸と楕円との交点(4点)
・楕円弧:中心点、両端点、楕円弧の短軸および長軸と楕円弧を含む楕円との交点(4点)、中点(楕円弧の距離を二分する楕円弧上の点)
・線分列:線分列を構成する各線分の両端点、中点
・自由曲線:両端点、曲線の制御点、中点(自由曲線の距離を二分する点)
【0042】
(6)交点指定:作画エリア62に表示されている、線分や円などの線要素を、1個または2個、要素選択することによって、それらの要素の交点をCPU21が算出し、位置を指定する。
【0043】
ここで、単一の線要素が、それ自体で交点を持つ場合、すなわち、自己交差している場合は、線要素を1個、要素選択するだけでよい。その他の場合は、2個の線要素を指定する。
【0044】
交点が複数存在する場合に、1点を特定する方法には、先または後に要素選択した際のマウスポインタ63の位置に最も近い交点をCPU21が自動的に抽出する方法、複数存在する交点の中からさらに1点を点指定する方法、などがある。
【0045】
図5に、線分と円弧を要素選択して、交点指定によって、位置を指定した例を示す。図中、レ印で示した位置で、線分、円弧、の順で、要素選択を行ない、*印の位置が、交点指定によって指定されたことを示している。
【0046】
(7)線上点指定:作画エリア62に表示されている、線分、円などの、線要素を1個、要素選択することによって、その時のマウスポインタ63の位置に最も近い、線要素上の点をCPU21が算出し、位置を指定する。
【0047】
図6に、円弧を要素選択して、線上点指定によって、位置を指定した例を示す。図中、レ印で示した位置で、要素選択を行ない、*印の位置が、線上点指定によって指定されたことを示している。レ印の点は、円弧近傍の点、*印の点は、円弧上の点である。
【0048】
次に、本実施形態で扱う「コマンド」について説明する。本実施形態では、印刷データの作成および編集作業の各単位を「コマンド」と呼んでいる。
【0049】
本実施形態で扱うコマンドには、点、直線、円、曲線、など、各要素を作成するコマンド(作図コマンド)や、移動、複写、削除、属性、など、各要素の形状や属性などを修正するコマンド(修正コマンド)や、その他、ファイル、プリント、トンボ、バーコード、等に関するコマンドなどがある。
【0050】
印刷データの作成や編集を行なうには、まず、作業単位に合わせた、任意のコマンドを1つ選択する。コマンドの選択には、文字入力エリア64で、コマンドの名称をキーボード11から入力する方法や、コマンドの名称があらかじめ設定されているメインパネル61上のボタン65を、ボタン選択する方法などがある。
【0051】
コマンドの選択が行なわれると、それまで、すでに選択されているコマンドがあった場合には、そのコマンドの終了処理が行なわれる。続いて、新たに選択されたコマンドの初期処理が行なわれ、コマンド内の処理に入る。
【0052】
コマンドが選択されると、表示装置41上に、選択されたコマンド内での、さらに細かい作業単位を選択するための、コマンドメニュー67が表示される。ユーザーは、コマンドメニュー67の任意のメニュー項目のボタンをボタン選択することによって、各種の編集作業を行なうことができる。ユーザーがどのような操作を行なえばよいかといった指示は、作業の状況に応じて、その都度、ガイダンスエリア68に表示されるので、ユーザーは、この指示に従って、操作を行なえばよい。
【0053】
〔印刷データの説明〕
○印刷データの要素
次に、本実施形態に係る情報処理装置で作成できる印刷データを構成する、図形データおよび文字データの要素に、どのような種類が存在するのかを、具体的に説明することにする。
【0054】
本実施形態に係る情報処理装置で作成できる、図形データおよび文字データの要素には、大きく分けて、以下の(A)〜(E)の5つの種類がある。
(A)基本図形:点、線分、線分列(開/閉)、円、円弧、楕円、楕円弧、自由曲線(開/閉)
(B)塗り潰し図形
(C)その他の図形:トンボ、バーコード
(D)テキスト
(E)グループ図形:シンボル、イラスト
【0055】
ここでいう要素とは、図形データまたは文字データに、印刷データとして必要な属性(印刷属性と呼ぶ)を付加して、実際に、印刷データとしてレイアウトされる、データの単位を意味している。また、印刷データとしてレイアウトされた複数の要素をまとめてグループ化すれば、それを1つの要素として扱うこともできる。
【0056】
それでは、以上の(A)〜(E)の5つの種別について、以下に詳細に説明することにする。
【0057】
まず、(A)の基本図形は、最も基本となる図形データの要素である。このほか、線分列によって構成される、矩形(各辺がXおよびY軸に平行である長方形)、正多角形などを、基本図形の要素として扱うこともできる。また、自由曲線としては、ベジェ、有理ベジェ、Bスプライン、エルミート、NURBSなどの表現形式を扱うことができる。
【0058】
また、(B)の塗り潰し図形は、(A)の要素(点を除く)を単独で、または、複数を連結させることで、閉領域を形成し、その内部を塗り潰した図形データの要素である。塗り潰しの方法には、次の4種類がある。
(1)フィルエリア:内部を均一に塗り潰す。
(2)ハッチング:一定の傾きと間隔を持った複数の線分で塗り潰す。塗り潰し図形内の特定の点を、ハッチングの基準点として指定することもできる。
(3)メッシュ:円、矩形、正多角形など、一定の形状の図形の繰り返しで塗り潰す。塗り潰し図形内の特定の点を、メッシュの基準点として指定することもできる。
(4)パターン:あらかじめ作成されたビットパターンの繰り返しで塗り潰す。
【0059】
また、(C)のその他の図形には、トンボ、バーコードなどがある。これらの要素は、図形データと、文字データの両方を含んでいる。
【0060】
また、(D)のテキストは、文字データの要素である。図形データの要素と同様に、印刷データとしてレイアウトすることができるが、印刷属性の種類や、レイアウトの方法は、図形データの要素とは異なる。
【0061】
最後に、(E)のグループ図形は、(A)の基本図形、(B)の塗り潰し図形、(C)のその他の図形、(D)のテキストの各要素を、1つ以上任意の数だけ選択して、まとめて1つの要素として扱うためのもので、シンボルとイラストがある。
【0062】
○印刷データの印刷属性
次に、本実施形態に係る情報処理装置で作成できる印刷データである、図形データおよび文字データの印刷属性に、どのような種類が存在するのかを、具体的に説明することにする。
【0063】
本実施形態に係る情報処理装置で作成できる、図形データおよび文字データの印刷属性には、大きく分けて、以下の(a)〜(g)の7つの種類がある。
【0064】
まず、図形データおよび文字データに共通の印刷属性には、次に示す(a)〜(c)の3つの種類がある。
(a)表示属性:要素を表示するか否か、また、表示する場合に、どのような上下関係で表示するか(表示プライオリティと呼ぶ)を指定する。
(b)選択属性:要素選択が可能であるか否かを指定する。要素選択を不可にすると、その要素に対しての操作は行なえなくなる。
(c)色属性:RGBあるいはHLSなどのカラーモデルの種別、および、カラーコードの値を与えることによって、要素の色を表現する。白と黒以外の色が表現できないモノクロームの、表示装置41またはレーザープリンタ51などの印刷装置を使用している場合、色属性に応じて、白または黒のどちらかの色に変換されて、出力される。
【0065】
次に、図形データ固有の印刷属性には、次に示す(d)〜(f)の3つの種類がある。
(d)点属性:点要素の場合、点のある位置に記号を表示したり、文字列を表示したりすることができる。
(e)線属性:点以外の基本図形の要素(線要素)の場合、次に示す、さまざまな線の属性を表現することができる。
・線種:線要素の形状を示し、実線、破線、一点鎖線、二点鎖線、などがある。・線幅:線要素の法線方向の大きさを示す。あらかじめ定められた、細線、中線、太線、などの種別を指定したり、実寸で指定したりすることができる。
・線幅方向:線幅を考慮しない場合から、法線方向のどちらに線幅分だけオフセットさせるかを示す。
・終端形状:線分や円弧などの開図形の終端の形状で、ラウンド、フラット、スクエア、などがある。
・接続形状:線分列や矩形などの図形の角の形状で、マイター、ラウンド、ベベル、などがある。
・線ピッチ:線種が実線以外の場合、線が存在する部分と、存在しない部分の長さを、それぞれ、実寸またはパラメータで与えることができる。
(f)塗り潰し属性:塗り潰し図形要素の場合、フィルエリア、ハッチング、メッシュ、パターン、などの内部の塗り潰し方法の種類や、ハッチングやメッシュの場合の、必要な詳細データ、パターンの場合の、パターン番号を与える。
【0066】
最後に、文字データ固有の印刷属性には、次に示す(g)の1種類のみがある。
(g)文字列属性:テキスト要素の場合、次に示すような、文字列全体の属性、および文字列を構成する各文字の属性を表現することができる。
【0067】
なお、文字列属性やテキストに関するその他の用語については、後に、テキストの作成の手順を説明する際に、必要に応じて解説する。
・書体:ひと組の文字のデザインを表し、クーリエ、ヘルベチカ、ゴシック、などがある。
・平体率:文字を、文字の行送り方向(高さ方向)にどれだけ縮めるかを比率で表す。
・長体率:文字を、文字の字送り方向(幅方向)にどれだけ縮めるかを比率で表す。
・文字サイズ:文字の大きさを表し、一般には(正確には、斜体角が0、平体率が1の場合には)1つの文字が専有する矩形領域(文字ボックス)の行送り方向の高さと等しい。
・ベース角:文字の字送り方向(幅方向)がX軸となす角度を表す。
・文字方向:文字の字送り方向(幅方向)に対する、文字の回転角度を表す。
・斜体角:文字の字送り方向(幅方向)に対する、文字の傾斜角度を表す。
・字間:同一行の隣接する2文字の字送り方向(幅方向)の間隔を表す。
・行間:複数行で構成される文字列の隣接する2行にある文字の行送り方向(高さ方向)の間隔を表す。
・横反転フラグ:文字列を横方向に反転する。文字列開始点座標(基本文字列のデータ:後述)を通り、文字の行送り方向(高さ方向)線を軸とする線対称の形状となる。
・縦反転フラグ:文字列を縦方向に反転する。文字列開始点座標(基本文字列のデータ:後述)を通り、文字の字送り方向(幅方向)線を軸とする線対称の形状となる。
【0068】
図47に、文字列属性のうち、ベース角を説明する図を示す。図中、各文字を囲む実線の矩形は各文字の文字ボックスを表している。点線の矩形は、ベース角が0の場合の文字ボックスの位置を表している。
【0069】
図48に、文字列属性のうち、文字方向を説明する図を示す。図中、各文字を囲む実線の矩形は各文字の文字ボックスを表している。点線の矩形は、文字方向が0の場合の文字ボックスの位置を表している。
【0070】
図49に、文字列属性のうち、斜体角を説明する図を示す。図中、各文字を囲む実線の平行四辺形は各文字の文字ボックスを表している。点線の矩形は、斜体角が0の場合の文字ボックスの位置を表している。
【0071】
図50に、文字列属性のうち、横反転フラグと縦反転フラグを説明する図を示す。図中、水平および鉛直の2本の直線は、反転させた場合の対称軸を表している。2本の直線の交点が、各文字列の文字列開始点である。
【0072】
○印刷データのデータ構造
次に、本実施形態における印刷データのデータ構造について説明する。本実施形態における印刷データは、一般に、既に説明したような、複数の要素データ、複数の印刷属性データから構成されている。
【0073】
ここで、各要素データは、基本的に、データ種別コード、データ番号、各要素ごとの必要データ、各要素ごとの必要印刷属性データのデータ番号、という構成になっている。
【0074】
そして、印刷データ内でユニークに付けられたデータ種別コードによって、印刷データ内の各要素データの種別を特定することができる。また、印刷データ内でユニークに付けられたデータ番号によって、印刷データ内の各要素データを特定することができる。各要素ごとに、必要データ、必要印刷属性の種類は異なるが、データ種別コードによって、CPU21は、これらを識別することが可能である。
【0075】
また、各印刷属性については、各要素データごとに保持するのではなく、各要素データでは、必要な印刷属性データのデータ番号のみを保持するようにしている。これによって、印刷属性データの重複を避け、印刷データの容量を縮小することや、複数の要素データの印刷属性を一度の操作で変更することなどが可能になっている。
【0076】
それでは、まず、図形データおよび文字データの各要素のデータ構造を、以下に具体的に示すことにする。
【0077】
(A)基本図形
(1)点
・データ種別コード
・データ番号
・点座標:c〔2〕
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・点属性のデータ番号
(2)線分
・データ種別コード
・データ番号
・始点座標:s〔2〕
・終点座標:e〔2〕
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
(3)線分列
・データ種別コード
・データ番号
・通過点数:np
・各通過点座標:pp〔2〕(np個)
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
(4)円
・データ種別コード
・データ番号
・中心座標:c〔2〕
・半径:r
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
(5)円弧
・データ種別コード
・データ番号
・始点座標:s〔2〕
・終点座標:e〔2〕
・中心座標:c〔2〕
・回り方向フラグ(時計回り/反時計回り)
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
(6)楕円
・データ種別コード
・データ番号
・中心座標:c〔2〕
・長軸ベクトル:a〔2〕
・短軸ベクトル:b〔2〕
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
(7)楕円弧
・データ種別コード
・データ番号
・始点座標:s〔2〕
・終点座標:e〔2〕
・中心座標:c〔2〕
・長軸ベクトル:a〔2〕
・短軸ベクトル:b〔2〕
・回り方向フラグ(時計回り/反時計回り)
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
(8)自由曲線(ベジェ曲線の場合)
・データ種別コード
・データ番号
・曲線数:nv
・各曲線の制御点データ(nv個):
制御点数:nc
各制御点座標:pc〔2〕(nc個)
重み係数:w
・通過点数:np
・各通過点座標:pp〔2〕(np個)
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
【0078】
(B)塗り潰し図形
・データ種別コード
・データ番号
・レイアウト基準矩形左下点座標:p1〔2〕
・レイアウト基準矩形右上点座標:p2〔2〕
・ループ数:nl
・各ループの構成要素データ(nl個):
構成要素数:nd
構成要素データ:点を除く基本図形要素データ(nd個)
・通過基準点座標:pp〔2〕
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・塗り潰し属性のデータ番号
・枠の表示属性のデータ番号
・枠の色属性のデータ番号
・枠の線属性のデータ番号
(塗り潰し図形では、印刷属性として、塗り潰し図形の内部の印刷属性の他に、塗り潰し図形の枠の印刷属性を別に持っている。例えば、内部の色属性と、枠の色属性を変えて表示することなどが可能である。)
【0079】
(C)その他の図形
(1)トンボ
・データ種別コード
・データ番号
・トンボ種別フラグ(トンボ/スケールトンボ)
・トンボ形状フラグ(トンボの場合は11種類/スケールトンボの場合は3種類)
・トンボオフセットフラグ(オフセットあり/なし)
・印刷データ名称(スケールトンボの場合)
・トンボ長さ(スケールトンボの場合)
・レイアウト基準点座標:pb〔2〕
・出力倍率:sc
・レイアウト基準矩形左下点座標:p1〔2〕
・レイアウト基準矩形右上点座標:p2〔2〕
・構成要素数:nd
・構成要素データ:トンボの場合は線分、スケールトンボの場合は線分、円、テキストのいずれかの要素データ(nd個)
(2)バーコード
・データ種別コード
・データ番号
・バーコード種別フラグ(4種類)
・コードデータ
・コード表示フラグ(コード表示あり/なし)
・レイアウト基準位置フラグ(左下/中央/右上など9種類)
・レイアウト基準点座標:pb〔2〕
・レイアウト角度:ang
・レイアウトスケール:sc
・レイアウト基準矩形左下点座標:p1〔2〕
・レイアウト基準矩形右上点座標:p2〔2〕
・構成要素数:nd
・構成要素データ:線分、テキストのいずれかの要素データ(nd個)
【0080】
(D)テキスト
(1)基本文字列(テキストを構成する要素)
・データ種別コード
・データ番号
・文字列開始点座標:pt〔2〕
・文字列バイト数:nch
・文字列データ:str(nchバイト)
・レイアウト角度:ang
・レイアウトスケール:sc
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・文字列属性のデータ番号
(2)テキスト
・データ種別コード
・データ番号
・文字列登録名称:rgnam
・制御文字列データ:ctext
・組形式フラグ(横組/縦組):form
・レイアウト対象種別(点/矩形):lytyp
・レイアウト基準点座標:pb〔2〕
・全体長さ:widln(点レイアウトの場合のみ有効)
・高さ優先フラグ:hfix(点レイアウトの場合のみ有効)
・レイアウト基準位置フラグ(左下/中央/右上など9種類):datum(点レイアウトの場合のみ有効)
・自動カーニングフラグ(あり/なし):aker
・レイアウト対象矩形幅:wrect(矩形レイアウトの場合のみ有効)
・レイアウト対象矩形高さ:hrect(矩形レイアウトの場合のみ有効)
・レイアウト対象矩形傾き:arect(矩形レイアウトの場合のみ有効)
・行揃えフラグ(左/中央/右/両端):adj(矩形レイアウトの場合のみ有効)
・テキストレイアウト矩形左下点座標:pll〔2〕
・テキストレイアウト矩形右上点座標:plr〔2〕
・テキスト外接矩形左下点座標:pdl〔2〕
・テキスト外接矩形右上点座標:pdr〔2〕
・構成要素数:nd
・基本文字列データ:基本文字列の要素データ(nd個)
・基本文字列レイアウト情報データ:基本文字列をレイアウトするためのデータ(nd個)
(テキスト要素は、複数の基本文字列要素を組み合わせて構成される。これによって、ひとつのテキスト要素の中で、複数の文字列属性を持った文字列を扱うことが可能となる。例えば、ひとつのテキストの途中で文字の書体を変更したり、文字の高さや幅を変更したり、といった制御が可能である。)
【0081】
(E)グループ図形
(1)シンボル
・データ種別コード
・データ番号
・フォルダー名称
・ファイル名称
・レイアウト基準位置フラグ(左下/中央/右上など9種類)
・レイアウト基準点座標:pb〔2〕
・レイアウト角度:ang
・レイアウトスケール:sc
・レイアウト基準矩形左下点座標:p1〔2〕
・レイアウト基準矩形右上点座標:p2〔2〕
・反転フラグ(反転あり/なし)
・線幅スケールフラグ(線幅スケールあり/なし)
・線幅スケール値
(2)イラスト
・データ種別コード
・データ番号
・フォルダー名称
・ファイル名称
・レイアウト基準位置フラグ(左下/中央/右上など9種類)
・レイアウト基準点座標:pb〔2〕
・レイアウト角度:ang
・レイアウトスケール:sc
・レイアウト基準矩形左下点座標:p1〔2〕
・レイアウト基準矩形右上点座標:p2〔2〕
・反転フラグ(反転あり/なし)
・構成要素数:nd
・構成要素データ:任意の要素データ(nd個)
(シンボルおよびイラストのデータ構造の特徴、およびシンボルデータファイルおよびイラストデータファイルのファイル構造については、後述する。)
【0082】
次に、上述したようなデータ構造を有する要素データに対する印刷属性データのデータ構造について説明する。
【0083】
ここで、各印刷属性データは、基本的に、データ種別コード、データ番号、属性設定フラグ、各印刷属性ごとの必要データ、という構成になっている。
【0084】
印刷データ内でユニークに付けられたデータ種別コードによって、印刷データ内の各印刷属性データの種別を特定することができる。また、印刷データ内でユニークに付けられたデータ番号によって、印刷データ内の各印刷属性データを特定することができる。各印刷属性ごとに、必要データは異なるが、データ種別コードによって、CPU21は、これらを識別することが可能である。
【0085】
また、属性設定フラグとは、その印刷属性データが有効であるか否かを指定するフラグである。属性設定フラグが有効である印刷属性データを指示している要素データでは、該当する印刷属性データに従って、要素が表示される。一方、属性設定フラグが無効である印刷属性データを指示している要素データでは、該当する印刷属性は設定されていない状態であると見なし、あらかじめROM31や外部記憶装置33に記憶されているデフォルトの印刷属性に従って、要素が表示される。
【0086】
また、各要素データに階層関係を持たせることが可能なデータ構造とした場合には、上位の(または下位の)要素の印刷属性に従って表示を行なったりする制御も可能である。
【0087】
それでは、各印刷属性データのデータ構造を、以下に具体的に示すことにする。
(a)表示属性
・データ種別コード
・データ番号
・属性設定フラグ(有効/無効)
・表示フラグ(表示/非表示)
・表示プライオリティ
(b)選択属性
・データ種別コード
・データ番号
・属性設定フラグ(有効/無効)
・要素選択フラグ(可/不可)
(c)色属性
・データ種別コード
・データ番号
・属性設定フラグ(有効/無効)
・カラーコード種別フラグ(RGB/HLS)
・カラーコード1、2、3
(d)点属性
・データ種別コード
・データ番号
・属性設定フラグ(有効/無効)
・マーカー文字列
(e)線属性
・データ種別コード
・データ番号
・属性設定フラグ(有効/無効)
・線種フラグ(実線/破線/一点鎖線/二点鎖線/任意破線/任意一点鎖線/任意二点鎖線)
・線幅フラグ(細線/中線/太線/極太線/任意線幅)
・線幅方向フラグ(中央/内側/外側)
・終端形状フラグ(ラウンド/フラット/スクエア)
・接続形状フラグ(マイター/ラウンド/ベベル)
・線種データ1、2、3、4(線種=任意のとき)
・線幅データ(線幅=任意のとき)
(f)塗り潰し属性
・データ種別コード
・データ番号
・属性設定フラグ(有効/無効)
・塗り潰し種別フラグ(塗り潰しあり/塗り潰しなし/ハッチング/メッシュ番号/パターン番号など)
・データグループ数:nd
・塗り潰しデータ1、2、3(nd個)
(g)文字列属性
・データ種別コード
・データ番号
・属性設定フラグ(有効/無効)
・書体コード:fontno
・平体率:rexp
・長体率:rcnd
・文字サイズ:hbox
・ベース角:abas
・文字方向:alet
・斜体角:asln
・字間:dflet
・行間:dflin
・横反転フラグ(あり/なし):hflp
・縦反転フラグ(あり/なし):vflp
【0088】
図7に、以上示した印刷データのデータ構造に基いて、本実施形態に係る情報処理装置で作成された、印刷データファイルの一例を示す。
【0089】
この図7に示された印刷データは、図8に示すような形状の図形を印刷するためのものであり、本実施形態においては、図7に示す印刷データにより表現される図形が、基本図形の要素から成り、1個の線分列と2個の円と、これら3要素の外接矩形の左下点および右上点の2点(この2点は非表示で選択不可)から構成されるものとし、また、これら1個の線分列と2個の円が、それぞれ同じ表示属性(表示)、選択属性(選択可)、線属性(実線、線幅20mm)を持ち、互いに異なる色属性を持っているものとする。
【0090】
○グループ図形のデータ構造
それでは、上述した印刷データのデータ構造のうち、特に、グループ図形であるシンボルとイラストのデータ構造について、詳しく説明することにする。
【0091】
まず、シンボルのデータ構造について説明する。
【0092】
本実施形態において、シンボルとは、規格で定められた記号や、ロゴマークのように、繰り返し使用される図形で、図形データの要素(線分や円など)や、文字データの要素(テキスト)を組み合わせて、作成される要素である。
【0093】
シンボルデータの場合、規格が変更されるなどして、シンボルデータファイルの内容が更新された場合には、既に印刷データの一部としてレイアウト済みである、該当するシンボルを、全て更新してデータの同期を維持できるようになっている。
【0094】
そこで、本実施形態に係る情報処理装置では、シンボルのデータを、次に示すようなデータ構造で保持している。
【0095】
すなわち、印刷データ内には、シンボルデータファイルの存在場所を特定するための、フォルダー名称およびファイル名称、そして、シンボルをレイアウトするために必要な情報のみを保持する。
【0096】
また、印刷データをファイルに保存した印刷データファイルとは別個に、シンボルデータファイルを作成する。シンボルデータファイルは、次に示すようなファイル構造となっている。
・レイアウト基準矩形左下点座標:p1〔2〕
・レイアウト基準矩形右上点座標:p2〔2〕
・構成要素データ:任意の要素データ(複数)
・印刷属性データ:必要な印刷属性データ(複数)
【0097】
レイアウト基準矩形については後述するが、レイアウト基準矩形を定めておけば、シンボルを印刷データとしてレイアウトする際に必要な、位置と大きさの情報を特定することが可能である。例えば、レイアウト基準矩形としては、シンボルの可視部分を囲む最小の矩形(外接矩形と呼ぶ)を指定しておくことなどが可能である。
【0098】
シンボルデータファイルを作成する際に、該当するシンボルの外接矩形のデータをレイアウト基準矩形として登録しておけば、シンボルデータファイルを再度、読み込んだ際などに、シンボルの外接矩形を再計算する必要がなくなる。
【0099】
シンボルの各構成要素データは、レイアウト基準矩形左下点を基準とする相対座標値で、表現されている。
【0100】
また、各印刷属性データについては、印刷データの場合と同様に、各構成要素データを表示する際に必要な印刷属性データを、要素データとは別に保持している。
【0101】
これによって、変更のあったシンボルを含む印刷データファイルの更新を行なわなくても、該当する印刷データファイルを、外部記憶装置33から、RAM32に再度、読み込んで来るだけで、印刷データ内のシンボルデータは最新のシンボルデータファイルの内容に置き換わり、データの同期が自動的に取れるようになっている。
【0102】
次に、もう一つのグループ図形であるイラストのデータ構造について説明する。
【0103】
本実施形態において、イラストとは、テンプレート図形のように、繰り返し使用される図形で、これもまた、シンボルと同様に、図形データの要素(線分や円など)や、文字データの要素(テキスト)を組み合わせて、作成される要素である。
【0104】
イラストは、シンボルとは異なり、いったん、印刷データの一部として、レイアウトされた後は、元のイラストデータファイルの内容とは、同期を取らずに、自由に変更を加えたい場合に使用される。
【0105】
従って、イラストデータの場合、シンボルデータとは異なり、イラストデータファイルの内容が更新された場合でも、既に印刷データの一部としてレイアウト済みである、該当するイラストを、更新して同期を維持することはない。
【0106】
そこで、本実施形態に係る情報処理装置では、イラストのデータを、次に示すようなデータ構造で保持している。
【0107】
すなわち、印刷データ内には、イラストデータファイルの存在場所を特定するための、フォルダー名称およびファイル名称、そして、イラストをレイアウトするために必要な情報、の他に、イラストデータファイルから読み込んだ、実際にイラストを構成する各要素データを保持している。
【0108】
また、印刷データファイルとは別個に、イラストデータファイルを作成する。イラストデータファイルは、次に示すようなファイル構造となっている。
・レイアウト基準矩形左下点座標:p1〔2〕
・レイアウト基準矩形右上点座標:p2〔2〕
・構成要素データ:任意の要素データ(複数)
・印刷属性データ:必要な印刷属性データ(複数)
【0109】
この構造は、シンボルデータファイルのファイル構造と同様である。これを印刷データに読み込む際には、指定したレイアウト基準点座標を原点とし、指定したレイアウト角度、レイアウトスケールに従って、イラストデータファイル内の各構成要素データを展開して(座標変換して)、印刷データのイラスト要素データとして、全て保持する点が、シンボルとは異なっている。
【0110】
〔印刷データの作成〕
それでは、具体的に印刷データを作成する手順を、図形データ、文字データ、の2つの場合に分けて、詳細に説明する。本実施形態においては、図形データの例として、シンボルを作成する場合を説明し、また、文字データの例として、テキストを作成する場合を説明する。
【0111】
○シンボルの作成
まず、図形データを作成する例として、図8に示すような図形を作成する場合について説明する。
【0112】
この図8に示すシンボルは、2個の円要素、1個の線分列要素、といった基本図形から構成されている。ここでは、
(A)基本図形を印刷データとしてレイアウトする
(B)シンボルの構成要素をグループ化し、シンボルとして登録する
(C)登録されたシンボルを呼び出して、印刷データとしてレイアウトする
という、3つのフローに分けて説明する。
【0113】
まず、基本図形を印刷データとしてレイアウトする処理について説明する。
【0114】
(A)基本図形のレイアウト
図9に、基本図形を印刷データとしてレイアウトする手順を説明するフローチャートを示す。
【0115】
まず、基本図形を作成するために必要な、座標値や半径などの、必要情報を入力する(ステップS0901)。この必要情報の入力処理については、後で詳しく説明する。次に、図形データに印刷属性を付加して、印刷データとして使用できるようにする(ステップS0902)。この印刷属性の付加処理については、後で詳しく説明する。
【0116】
そして、ステップS0902で印刷属性が付加されると、次に、CPU21は、作成された基本図形要素のデータを、印刷データとして、RAM32に登録する(ステップS0903)。そして、さらに、CPU21は、作成された基本図形要素を、作画エリア62に表示する(ステップS0904)。
【0117】
以下、ステップS0901における必要情報の入力処理について説明する。
【0118】
これは、基本図形の種類によって異なった操作となる。
【0119】
例えば、円を作成する場合には、次のような操作となる。
(1)円の中心の位置を、マウス12で既に存在する点を要素選択、または任意指定したり、キーボード11でXおよびYの座標値を入力することによって指定する。
(2)円周上の1点の位置を、マウス12で既に存在する点を要素選択、または任意指定したり、キーボード11でXおよびYの座標値を入力することによって、指定する。または、キーボード11で半径を入力する。
【0120】
中心と円周上の1点、または、中心と半径を指定する上記の方法以外にも、円周上の異なる3点を指定する方法、円周上の異なる2点と半径を指定する方法、などがある。
【0121】
また、これらの操作手順は、ガイダンスエリア68に表示されるので、ユーザーは、この指示に従って、操作を行なえばよい。
【0122】
線分列を作成する場合には、次のような操作となる。
(1)線分列の始点の位置を、マウス12で既に存在する点を要素選択、または任意指定したり、キーボード11でXおよびYの座標値を入力することによって、指定する。
(2)同様にして、通過点をいくつでも指定する。
(3)汎用ボタン66をボタン選択することなどによって、通過点の指定の終了を指示する。
【0123】
次に、以下、ステップS0902における印刷属性の付加処理について説明する。
【0124】
まず、図形データの印刷属性の種類については、前述した通りである。
【0125】
例として、図10に、印刷属性の付加されていない状態の図形データと、付加されている状態の図形データを示す。印刷属性が付加されていない状態では、線幅、終端形状、接続形状、などの違いが表現できていないことがわかる。印刷属性が付加されていない状態とは、前述した印刷属性データの構造の中で、属性設定フラグが無効となっている場合である。なお、属性設定フラグが無効となっている場合でも、図形データの形状は、所定の印刷属性で出力される。
【0126】
印刷属性を、図形データの要素に付加するには、表示装置41に表示される専用のパネルが必要である。
【0127】
図11に、そのような図形データの要素を付加するために使用する、図形データ印刷属性編集パネル1101を示す。ユーザーは、この図形データ印刷属性編集パネル1101で、印刷属性を編集することができる。
【0128】
図形データ印刷属性編集パネル1101が表示された状態で、線種として、実線以外の種別を選択し、さらに、図形データ印刷属性編集パネル1101の、「線ピッチ」ボタンを、ボタン選択すると、図12に示すような、破線、一点鎖線、二点鎖線のそれぞれの種別に応じた、線ピッチ編集パネル1201が表示される。そして、この線ピッチ編集パネル1201上で、線ピッチデータを編集することが可能となる。図12に示したのは、二点鎖線の場合の表示例である。
【0129】
印刷属性を編集するには、図形データ印刷属性編集パネル1101上で、編集したい印刷属性の文字入力エリアを、マウス12またはキーボード11で指示し、キーボード11で、数値データを入力するか、または、選択する項目のボタンを、ボタン選択してから、「設定」ボタンを、ボタン選択すればよい。
【0130】
これから作成しようとする印刷データに対して、印刷属性の設定を行なう場合には、図形データ印刷属性編集パネル1101上で、上記の方法で各印刷属性の入力を行なってから、図形データの各要素を作成すればよい。
【0131】
また、いったん、印刷属性を設定しておけば、CPU21はこれらを、カレントな印刷属性として、RAM32に保存しておくので、要素を作成するたびに、印刷属性を設定する必要はない。
【0132】
また、プログラムを終了する際に、CPU21は、カレントな印刷属性を、外部記憶装置33に保存し、次に、プログラムを実行する際に、再び、RAM32に、読み込んで来るので、プログラムを実行するたびに、カレントな印刷属性を設定し直す必要もない。カレントな印刷属性は、ユーザーによらず共通のものと、ユーザーが各自設定した個別のものを、別々に、RAM32や外部記憶装置33に、保存しておくこともできる。
【0133】
すでに作成された印刷データに対して、印刷属性の編集を行なう場合には、作画エリア62に表示されている要素を要素選択すれば、CPU21が、図形データか文字データかを判断して、図形データの場合は、図形データ印刷属性編集パネル1101を、表示装置41に表示する。
【0134】
この際、要素選択された要素の現在の印刷属性が、図形データ印刷属性編集パネル1101に表示されるので、上記の方法で印刷属性を編集してから、「設定」ボタンを、ボタン選択すればよい。作画エリア62上の対象要素は、編集された新しい印刷属性に従って、再描画される。
【0135】
以上、基本図形を印刷データとしてレイアウトする手順を説明した。
【0136】
次に、シンボルの構成要素をグループ化し、シンボルとして登録する処理について説明する。
【0137】
(B)要素のグループ化とシンボルの登録
図13に、シンボルの構成要素をグループ化し、シンボルとして登録する手順を説明するフローチャートを示す。
【0138】
まず、シンボルとして登録したい対象要素をグループ化する(ステップS1301)。この対象要素のグループ化処理については、後で詳しく説明する。
【0139】
次に、ステップS1301でシンボルを構成する要素が特定されると、CPU21は、この各要素について、印刷属性を考慮して、輪郭情報を抽出する(ステップS1302)。この輪郭情報の抽出処理については、後で詳しく説明する。
【0140】
ステップS1302で、対象となる各要素の輪郭情報を抽出した後、CPU21は、抽出した輪郭情報から、外接矩形を計算する(ステップS1303)。
【0141】
ここでいう外接矩形とは、要素の可視部分を囲む最小サイズの矩形、のことであり、対角の2点のXおよびY座標を与えることによって特定される。
【0142】
このように、要素の外接矩形は、対角の2点によって特定できるので、抽出した輪郭情報から、最大のXおよびY座標、最小のXおよびY座標の値を算出し、外接矩形の左下点と右上点を、
左下点(輪郭情報の最小のX座標,輪郭情報の最小のY座標)
右上点(輪郭情報の最大のX座標,輪郭情報の最大のY座標)
と与えれば、外接矩形を容易に得ることができる。
【0143】
そして、ステップS1303で、グループ化された要素の外接矩形が求まると、CPU21は、作画エリア62に既に表示されているグループ化された要素に重ねて、その外接矩形を表示する(ステップS1304)。その表示は、例えば、図21のようになる。
【0144】
次に、グループ化された要素のレイアウト基準情報を定義するレイアウト基準矩形を設定する(ステップS1305)。このレイアウト基準矩形の設定処理については、後で詳しく説明する。
【0145】
そして、以上の一連の処理により、シンボルとして登録するための要素がグループ化され、そのレイアウト基準矩形が求まったので、そのシンボルを識別するキーとしてユーザーによりキーボード11等から入力された文字列を、シンボルの名称として決定する(ステップS1306)。
【0146】
最後に、CPU21は、先に図7で示したような構造を持つシンボルデータファイルとして、当該シンボルに関するデータを、外部記憶装置33に保存する(ステップS1307)。
【0147】
なお、このようにレイアウト基準矩形を設定した場合、図7に示すシンボルデータファイルの構造におけるレイアウト基準位置を明示的に指定しているわけではないが、シンボルデータファイルに保存する際には、レイアウト基準矩形の、例えば左下点を、常にレイアウト基準位置としておけばよい。
【0148】
また、シンボルを構成する各要素の座標データは、レイアウト基準位置からの相対座標で表現する。
【0149】
以下、ステップS1301における対象要素のグループ化処理について説明する。
【0150】
要素をグループ化するには、次のような方法がある。この方法は、要素をグループ化する場合に限らず、複数の要素をまとめて、複写、移動、削除などの処理を一括して行なう場合にも、使うことができる方法である。
【0151】
(1)連続要素選択:グループ化の対象とする要素を、1要素ずつ要素選択していく。要素選択を終了する際には、メインパネル61上の、汎用ボタン66を押すか、作画エリア62上で、マウスのどれかのボタンをダブルクリック(ボタンを短時間に2度押し下げる)する。
【0152】
(2)矩形領域指定:グループ化の対象とする要素が含まれる領域を、矩形で囲むことによって指定する。矩形を特定するためには、対角の2点の位置を、任意指定や点指定などの方法で指定すればよい。この場合、指定した矩形の内部に全体が含まれる要素を対象とする。
【0153】
図14に、この方法によって、対象となる要素が選択された状態の一例を示す。
【0154】
この図14において、*印で示した位置を指定すると、作画エリア62に、領域を示す矩形が表示される。図中、「選択」と示されている要素が選択され、実際には、赤色などで表示されて、識別できるようになっている。
【0155】
なお、指定した矩形の内部に一部が含まれる要素を対象としたり、指定した矩形の内部に全く含まれない要素を対象としてもよい。
【0156】
(3)任意領域指定:グループ化の対象とする要素が含まれる領域を、多角形で囲むことによって指定する。多角形を構成する各点は、任意指定や点指定などの方法で指定すればよい。この場合、指定した多角形の内部に一部が含まれる要素を対象とする。
【0157】
図15に、この方法によって、対象となる要素が選択された状態の一例を示す。
【0158】
この図15において、*印で示した位置を指定すると、作画エリア62に、領域を示す多角形が表示される。図中、「選択」と示されている要素が選択され、実際には、赤色などで表示されて、識別できるようになっている。
【0159】
なお、指定した多角形の内部に全体が含まれる要素を対象としたり、指定した多角形の内部に全く含まれない要素を対象としてもよい。
【0160】
次に、ステップS1302における輪郭情報の抽出処理について説明する。
【0161】
図16は、図8に示すシンボルの輪郭情報を抽出した結果を示した図である。
【0162】
輪郭情報は、線分、円、円弧、楕円、楕円弧、自由曲線などの、線要素が連結したものとして表現できる。ただし、輪郭情報においては、線幅などの印刷属性は考慮する必要はなく、それ自体、領域を持たない図形であると見なす。
【0163】
印刷属性の付加された、図形データおよび文字データの輪郭情報を抽出する方法には、以下のものがある。
【0164】
(1)そのまま表示装置に表示する方法:
本実施形態に係る情報処理装置では、図2で示したように、WYSIWYGの機能が実現されているので、印刷属性の付加されたデータは、印刷時の出力形態と同じ表示形態のイメージで、表示装置41に表示される。
【0165】
例えば、このWYSIWYGの機能が、ディスプレイポストスクリプト(DPS)によって、実現されている場合には、図形データまたは文字データの、輪郭情報を抽出するための、ポストスクリプト(PS)の命令(オペレータ)を、表示されている、図形データまたは文字データに対して、発行してやればよい。
【0166】
これによって得られる輪郭情報の座標データは、表示装置41の画面上のドットの大きさが最小単位となる量子化されたデータである。そのため、この値は、一般に、誤差を含んでいる。
【0167】
表示装置41の1ドットの幅および高さをDd(インチ)とすると、図17に示すように、実際の座標が、(b)や(c)のように、2つのドットの境界や、(d)のように、4つのドットの角の位置に一致する場合を考慮すると、得られる座標データの誤差は、最大で、Dd*2(インチ)となる。
【0168】
図17の、*印で示した位置が、量子化されていない実際の座標位置、斜線で示した矩形が、その時の画面上のドット、すなわち、量子化された値を示している。
【0169】
表示装置41の解像度Rdが、およそ、Rd=100(DPI)であるとすると、誤差は、
Dd*2=(1/Rd)*2 = 1/50(インチ) (式1)
程度となる。
【0170】
イメージセッター52などの、高解像度の印刷装置では、解像度Rpはおよそ、Rp=3000(DPI)程度であり、1ドットの幅および高さをDp(インチ)とすると、出力時の誤差は、
Dp*2=(1/Rp)*2 = 1/1500(インチ)(式2)
程度となり、表示装置41に表示した結果から得られる座標データでは、必ずしも、十分な精度があるとは言えない可能性が高い。
【0171】
しかし、この方法は、PSのオペレータを呼ぶだけで、図形データおよび文字データの輪郭情報を容易に得ることができるので、特に、表示装置41の解像度以上の高い精度を要求しない印刷データ、例えば、出版物や包装紙などの印刷データを作成する場合や、表示装置41の解像度以上の高い精度を要求する部分のある印刷データでも、他の要素や特定の座標値に、正確に合わせて出力する必要がない部分には、この方法を用いて、輪郭情報を抽出すれば十分である。
【0172】
(2)一時的に拡大して表示装置に表示する方法:
しかしながら、上記(1)の方法では、イメージセッター52などの印刷装置の解像度に相当する、高い精度を要求する印刷データで、しかも、他の要素や特定の座標値に、正確に合わせて出力する必要がある部分については、表示装置41とイメージセッター52などの印刷装置との解像度が異なるために、表示装置41上では、正確に輪郭情報を抽出したつもりでも、イメージセッター52などの印刷装置で印刷した際には、目に見える誤差となってしまう場合がある。
【0173】
上記(1)の方法では、表示装置41上での1ドットの誤差が、イメージセッター52に出力した際には、30ドットもの誤差となって、現れてしまうことになる。
【0174】
そこで、図形データまたは文字データの、輪郭情報を抽出する際に、ポストスクリプト(PS)の命令(オペレータ)を、図形データまたは文字データに対して発行する前に、対象となるデータを、一時的に拡大して表示してやれば、解像度による誤差を軽減できる。
【0175】
ただし、ここで言う「表示」とは、表示装置41に対してデータを送信するという意味であって、必ずしも、可視である必要はない。
【0176】
図18に、一時的に要素を拡大して表示装置に表示し、輪郭情報を抽出する手順を説明するフローチャートを示す。
【0177】
まず、拡大の倍率を決定する(ステップS1801)。拡大の倍率は、表示装置41とイメージセッター52の解像度の比率より大きくとればよい。従って、上記(1)の方法で示した解像度の場合、
Rp/Rd=3000/100 =30(倍) (式3)
より大きい倍率で、輪郭情報を得たい要素を拡大してやればよい。このとき、要素の印刷属性のうち、拡大の影響を受ける、線幅、終端形状、接続形状なども同じ倍率で拡大するようにする。
【0178】
次に、ステップS1801で決定された倍率で拡大した要素を、表示装置41に表示する(ステップS1802)。
【0179】
次に、上記(1)の方法と同様に、PSのオペレータなどを使用することによって、拡大した要素の輪郭情報を抽出する(ステップS1803)。ここで抽出された輪郭情報の精度は、イメージセッター52の精度に匹敵するものとなる。
【0180】
次に、抽出した輪郭情報を、拡大する前の大きさに復元する(ステップS1804)。
【0181】
最後に、輪郭情報を抽出するために使用した、一時的に拡大した要素のデータは、輪郭情報を抽出した後は不要となるので、消去する(ステップS1805)。
【0182】
(3)幾何学的な手法による方法:
あらかじめ幾何学的な形状がわかっている図形データ、特に、線分、円、円弧、楕円、楕円弧、自由曲線などの、線要素の場合には、次のような方法を取ることによって、表示装置41の解像度とは無関係に、高い精度の輪郭情報を抽出することができる。
【0183】
図19に、幾何学的な手法によって、線要素の輪郭情報を抽出する手順を説明するフローチャートを示す。
【0184】
まず、線要素の線幅方向を考慮して、該線要素を線幅分だけオフセットさせた図形を作成する(ステップS1901)。
【0185】
次に、この線要素が、終端を持っているかどうかを判定する(ステップS1902)。終端を持っていると判定された場合には、ステップS1903に進み、そこで、終端形状に応じた図形を作成する。終端を持っていないと判定された場合には、ステップS1904に進む。
【0186】
次に、この線要素が、接続を持っているかどうかを判定する(ステップS1904)。接続を持っていると判定された場合には、ステップS1905に進み、そこで、接続形状に応じた図形を作成する。接続を持っていないと判定された場合には、ステップS1906に進む。
【0187】
そして、作成された図形に基づいて閉図形を作成して、その輪郭情報を抽出する(ステップS1906)。
【0188】
次に、一例として、図20に示すような、印刷属性を持つ線分列の輪郭情報を、幾何学的な手法によって抽出する方法を説明する。この例では、線幅が2d、線幅方向が両側、終端形状がラウンドキャップ、接続形状がマイタージョインであるとする。
【0189】
まず、ステップS1901において、線分列ABCの、線分ABを、線幅の1/2(=d)だけ、線分の法線方向、両側にオフセットさせた、線分DE、線分FGを作成する。同様に、線分BCを、線幅の1/2(=d)だけ、線分の法線方向、両側にオフセットさせた、線分HJ、線分KLを作成する。
【0190】
次に、ステップS1902において、この線分列は、終端を持っていると判断されるので、ステップS1903に進み、終端形状を作成する。この場合、終端形状はラウンドキャップなので、DFを直径とする半円弧、および、JLを直径とする半円弧、をそれぞれ作成すればよい。
【0191】
次に、ステップS1904において、この線分列は、接続を持っていると判断されるので、ステップS1905に進み、接続形状を作成する。この場合、接続形状はマイターキャップなので、線分DEと線分JHを、両者が交差する点Mまで延長してやればよい。また、線分FGと線分KLの交点をNとする。
【0192】
以上から、ステップS1906において、この線分列の輪郭情報を、点M、J、L、N、F、D、M、を接続してできる閉図形で表現することができる。JLおよびFDは円弧、その他の区間は線分で接続する。
【0193】
また、対象とする線要素が、自由曲線などの場合には、ステップS1901において線幅分だけオフセットさせた図形を作成する際に、どの程度の大きさの区間に曲線を分割してオフセット図形を作成するかを判断するのに、上記(1)または(2)の方法を使用することもある。
【0194】
(4)印刷装置に相当するソフトウエアまたはハードウエアに出力する方法:
上記(2)の方法では、一時的に要素を拡大してから、表示装置41に表示することによって、印刷装置との解像度の差によって生じる誤差を軽減しようとしたが、印刷装置の解像度に相当する精度を実現するソフトウエアまたはハードウエアに対してデータを出力することによって、高い精度の輪郭情報を抽出することもできる。
【0195】
上記のソフトウエアとは、イメージセッター52などの印刷装置が表現しうるドット数に相当するだけの十分な大きさを持った2次元の整数の配列に対して、データの読み書きを行なう機能を持ったソフトウエアのことである。
【0196】
また、上記のハードウエアとは、イメージセッター52などの印刷装置が表現しうるドット数に相当するだけの十分な大きさを持った2次元の表示データバッファに対して、データの読み書きを行なう機能を持ったハードウエアのことである。
【0197】
上記の、ソフトウエア、ハードウエア、のいずれの場合においても、描画命令(この例の場合は、PSのオペレータ)を解釈し、それをドットイメージに展開する機能を有することも必要である。
【0198】
次に、ステップS1305におけるレイアウト基準矩形の設定処理について説明する。
【0199】
まず、レイアウト基準矩形が定義するレイアウト基準情報について説明する。
【0200】
このレイアウト基準情報とは、要素を印刷データとしてレイアウトするための、位置と大きさの基準となる情報のことであり、要素ごとに保持する必要があり、本実施形態では、位置の基準を、レイアウト基準位置、大きさの基準を、レイアウト基準サイズ、と呼ぶ。
【0201】
また、レイアウト基準矩形を設定する場合に、該矩形の特徴点の1点を、後述するレイアウト処理時のレイアウト基準点に定めることができる。この矩形の特徴点には、図22に*印で示したように、矩形の角の点(4点)、各辺の中点(4点)、中心点、の9個の点がある。
【0202】
なお、レイアウト基準点は、あらかじめ特定の1点を決めておかなくても、レイアウト処理時に選択することもできる。その場合は、要素のレイアウト基準点を変更する変換(平行移動)が発生する。
【0203】
また、レイアウト基準矩形を設定するには、次のような方法がある。
【0204】
(1)任意矩形:作画エリア62上の任意の2点の位置を、任意指定、点指定、特徴点指定、交点指定、線上点指定、のいずれかの方法で指定することによって、指定した2点を対角点とする矩形を設定する。
【0205】
このうち、任意指定以外の、要素選択を伴う方法では、レイアウト基準矩形を設定する対象の要素、この例の場合では、グループ化された要素のいずれかを選択することが普通であるが、それ以外の要素を選択することも可能である。
【0206】
グループ化された要素に対して、構成要素の1つである円を選び、その円の中心点を特徴点指定、他の1点を任意指定して、レイアウト基準矩形とした場合の例を、図23に示す。
【0207】
(2)外接矩形:次のような外接矩形を算出する。
・要素全体の外接矩形:対象とする要素全体の外接矩形を算出する。グループ化された要素の場合は、グループを構成する全要素についての外接矩形を算出する。
【0208】
グループ化された要素に対して、外接矩形を算出し、それをレイアウト基準矩形とした場合の例は、すでに、図21に示した通りである。
・要素を構成する任意の要素の外接矩形:複数の要素を持つ、グループ図形の場合には、要素を構成する任意の要素を選択し、その外接矩形を算出することもできる。
【0209】
グループ化された要素に対して、構成要素の1つである円を選び、その円の外接矩形を算出し、それをレイアウト基準矩形とした場合の例を、図24に示す。
【0210】
以上、シンボルの構成要素をグループ化し、シンボルとして登録する手順を説明した。
【0211】
次に、登録されたシンボルを呼び出して、印刷データとしてレイアウトする処理について説明する。
【0212】
(C)シンボルの呼び出しとレイアウト
図25に、登録されたシンボルを呼び出して、印刷データとしてレイアウトする手順を説明するフローチャートを示す。
【0213】
まず、レイアウトしたいシンボルを選択する(ステップS2501)。
【0214】
具体的には、以下のような処理を行なう。
【0215】
まず、外部記憶装置33などに記憶されたシンボルを呼び出すために、メインパネル61上のボタン65中のコマンド「シンボル」のボタンを、ボタン選択するか、または、文字入力エリア64で、コマンド「シンボル」の名称を、キーボード11から入力する。
【0216】
すると、表示装置41には、図26に示すような、シンボルレイアウトパネル2601が、表示される。そして、保存されているシンボル名称一覧2602の中から、レイアウトしたいシンボルを、マウス12で選択する。また、その代わりに、シンボル名称入力エリア2604で、シンボル名称を、直接キーボード11から入力することもできる。その場合、シンボル名称一覧2602の選択状態は、シンボル名称入力エリア2604での入力処理と連動して変化する。
【0217】
記憶されているシンボルの数が多い場合には、シンボル検索条件入力エリア2603で、シンボル名称の一部をキーボード11から入力後に、リターンキーを押してもよい。その場合、入力した条件に該当するシンボル名称のみが、シンボル名称一覧2602に表示されるので、この中から、レイアウトしたいシンボルを、マウス12で選択すればよい。
【0218】
また、シンボルを選択する際に、名称だけでなく形状を見てから選択を行ないたい、という場合のために、必要に応じて、シンボルレイアウトパネル2601の、「一覧」ボタンを、ボタン選択することによって、図27に示すような、シンボル形状一覧パネル2701が、表示装置41に表示される。
【0219】
シンボル形状一覧が、複数ページにわたる場合は、総ページ数がシンボル形状一覧パネル2701に表示されるので、ページ番号入力エリア2702に、キーボード11で、直接ページ番号を入力するか、前ページボタン2703、または、次ページボタン2704を、ボタン選択することによって、現在表示されているページの、前後のページを表示することができる。
【0220】
そして、シンボル形状一覧2705から、レイアウトしたいシンボルを、マウス12で選択すると、シンボル名称一覧2602の選択状態は、これと連動して変化する。
【0221】
また、選択したシンボルの内容を、詳細に確認したい場合には、シンボルレイアウトパネル2601の、「内容」ボタンを、ボタン選択することによって、図28に示すような、シンボル内容確認パネル2801が、表示装置41に表示される。
【0222】
シンボル内容確認パネル2801には、シンボルの形状の他、レイアウト基準矩形などの情報も同時に表示される。図中、点線で示した矩形がレイアウト基準矩形であり、この図の場合、シンボル全体の外接矩形が、レイアウト基準矩形となっている。
【0223】
このようにして、レイアウトするシンボルが決まったら、次に、レイアウト基準位置を選択する(ステップS2502)。
【0224】
レイアウト基準位置は、シンボルレイアウトパネル2601上のレイアウト基準位置選択ボタン2605の中から1個を、ボタン選択することによって、選択することができる。このレイアウト基準位置選択ボタン2605の中に示された9つの基準位置は、それぞれレイアウト基準矩形の9個の特徴点に対応している。
【0225】
レイアウト基準位置を選択すると、シンボルデータファイルに保存されている、シンボルを構成する各要素の座標データは、RAM32に呼び出される際に、選択されたレイアウト基準位置からの相対座標での表現に変換される。
【0226】
また、レイアウトする際に必要な情報として、レイアウトサイズと、レイアウト角度を、入力する(ステップS2503)。
【0227】
レイアウトサイズとは、シンボルをレイアウトする際の大きさを指定するもので、例えば、レイアウト基準矩形の高さか幅の、一方を指定すればよい。その手順は、シンボルレイアウトパネル2601の、レイアウトサイズ選択ボタン2606の「高さ」ボタンまたは「幅」ボタンのいずれかを、ボタン選択した後に、レイアウトサイズ入力エリア2607に、キーボード11で、高さまたは幅の数値を入力すればよい。
【0228】
レイアウトサイズ入力エリア2607に、例えば、「0」などの特別な数値を入力した場合に、シンボルデータファイルに保存されている大きさのままで、シンボルをレイアウトするといったことも可能である。
【0229】
レイアウト角度とは、シンボルをレイアウトする際の角度を指定するもので、例えば、レイアウト基準矩形の、水平な辺(上辺または底辺)が、X軸の正方向となす角度で指定すればよい。その手順は、シンボルレイアウトパネル2601の、レイアウト角度入力エリア2608に、キーボード11から角度の数値を入力すればよい。
【0230】
以上の情報をすべて入力した後、シンボルのレイアウトを実行する場合には、シンボルレイアウトパネル2601の「実行」ボタンを、ボタン選択し、シンボルをレイアウトするのをやめる場合には、「取消」ボタンを、ボタン選択する。
【0231】
次に、選択されたシンボルを、作画エリア62においてレイアウトする位置を指定する(ステップS2504)。
【0232】
シンボルのレイアウト位置を指定する方法には、次のものがある。
(1)点レイアウト:作画エリア62上の任意の位置を、任意指定、点指定、特徴点指定、交点指定、線上点指定、のいずれかの方法で指定する。この場合、指定した位置に、レイアウトするシンボルの、レイアウト基準位置が一致するように、レイアウトされる。
(2)矩形レイアウト:作画エリア62上に、印刷データとしてすでに存在する矩形を、要素選択によって指定する。この場合、シンボルレイアウトパネル2601で指定したレイアウト基準位置とレイアウト角度によらず、指定した矩形の左上点に、レイアウトするシンボルの、レイアウト基準矩形の左上点が一致し、かつ、指定した矩形の左上点をはさむ2辺に、レイアウト基準矩形が沿うように、レイアウトされる。
【0233】
また、シンボルレイアウトパネル2601で、レイアウトサイズを、高さで指定している場合は、指定した矩形の高さに、レイアウト基準矩形の高さが一致するように、幅で指定している場合は、指定した矩形の幅に、レイアウト基準矩形の幅が一致するように、レイアウトされる。
【0234】
以上の操作が終わると、CPU21は、外部記憶装置33から呼び出されたシンボル要素のデータを、印刷データとして、RAM32に登録する(ステップS2505)。
【0235】
また、この際、ステップS1303で求めた、シンボル要素の外接矩形のデータを、シンボル要素のデータの一部として保存する(ステップS2506)。外接矩形のデータを要素データの一部として保持しておけば、例えば、指定した要素を作画エリア62いっぱいに表示したい、というような場合に、再度、輪郭情報を抽出する必要がない。
【0236】
そして、CPU21は、作成されたシンボル要素を、作画エリア62に表示する(ステップS2507)。
【0237】
なお、ステップS2506で保存した外接矩形を、明示的に作成するには、メインパネル61上のボタン65中の、矩形を描画するコマンド「矩形」のボタンを、ボタン選択するか、または、文字入力エリア64で、コマンド「矩形」の名称を、キーボード11から入力した後、コマンドメニュー67の「外接矩形」メニューを、ボタン選択してから、外接矩形を作成したい要素を、要素選択すればよい。
【0238】
以下、上記の方法で呼出したシンボルをレイアウトした場合の具体的な表示例を示す。
【0239】
図29は、シンボルの外接矩形をレイアウト基準矩形に設定し、矩形の左下点をレイアウト基準位置に選び、レイアウトサイズを高さで50mmと指定し、レイアウト角度を30度と指定して、当該シンボルを点レイアウトした場合の例である。なお、この図29では、説明のために、レイアウト基準矩形を同時に表示しているが、実際には、シンボルのみが表示される。もちろん、レイアウト基準矩形を同時に表示するように、仕様変更することも可能である。
【0240】
図30は、シンボルの外接矩形をレイアウト基準矩形に設定し、矩形レイアウトした場合の例である。図30(a)が、レイアウトサイズで高さを設定している場合であり、図30(b)が、レイアウトサイズで幅を設定している場合である。両図中において、破線で示した矩形が、レイアウトの対象となる矩形であり、実線で示した矩形が、レイアウト基準矩形である。なお、この図30では、説明のために、レイアウト基準矩形を同時に表示しているが、実際には、シンボルのみが表示される。もちろん、レイアウト基準矩形を同時に表示するように、仕様変更することも可能である。
【0241】
以上、登録されたシンボルを呼び出して、印刷データとしてレイアウトする手順を説明した。
【0242】
また、以上、図8に示すようなシンボルを作成する手順を、(A)基本図形を印刷データとしてレイアウトする、(B)シンボルの構成要素をグループ化し、シンボルとして登録する、(C)登録されたシンボルを呼び出して、印刷データとしてレイアウトする、という、3つのフローに分けて説明した。
【0243】
○テキストの作成
次に、文字データを作成する例として、図51に示すようなテキストを作成する場合について説明する。
【0244】
図31に、テキストを印刷データとしてレイアウトする手順を説明するフローチャートを示す。
【0245】
なお、以下の記述では、テキスト要素をレイアウトする場合について説明しているが、テキスト要素に限らず、シンボル、イラスト、トンボ、バーコードの各要素内に含まれるテキスト要素についても同様である。
【0246】
まず、メインパネル61上のボタン65中のコマンド「テキスト」のボタンを、ボタン選択するか、または、文字入力エリア64で、コマンド「テキスト」の名称を、キーボード11から入力する。
【0247】
すると、表示装置41には、コマンドメニュー67が表示される。コマンドメニュー67の項目には、
(1)新規:これから新規にテキストを作成する。
(2)修正:すでに作成されているテキストを修正する。
がある。ユーザーは、いずれかのメニュー項目をボタン選択することによって、テキストの編集を行なう。
【0248】
では、「新規」メニューを選択した場合について説明する。
【0249】
まず、テキストをレイアウトするために必要な情報(レイアウト必要情報)を入力し(ステップS3101)、次に、テキストの文字列データを入力し(ステップS3102)、文字データの印刷属性すなわち文字列属性を付加して、印刷データとして使用できるようにする(ステップS3103)。
【0250】
これらの、ステップS3101からステップS3103までの処理は、図39に示すテキスト新規作成パネル3901、図40に示す文字列入力パネル4001を使用して、どのような順序で行なってもよい。
【0251】
図55に、文字データに印刷属性を付加した例を示す。
【0252】
図55(a)に、印刷属性が付加されていない文字データの例を示す。印刷属性が付加されていない状態とは、前述した印刷属性データの構造の中で、属性設定フラグが無効となっている場合であり、文字データは、予め設定されているデフォルトの形状や大きさで表現される。従って、書体、平体率、長体率、文字サイズ、ベース角、斜体角、などが固定となっていることがわかる。
【0253】
一方、図55(b)に、印刷属性が付加された文字データの例を示す。印刷属性が付加されていると、書体、平体率、長体率、文字サイズ、ベース角、斜体角、などの印刷属性の違いが表現されていることがわかる。
【0254】
さて、「新規」メニューをボタン選択すると、表示装置41には、図39に示すような、テキスト新規作成パネル3901が、表示される。
【0255】
このテキスト新規作成パネル3901上で、テキストを作成するために必要な情報をキーボード11またはマウス12によるボタン選択によって入力する。
【0256】
テキスト新規作成パネル3901で入力する情報には、テキストをレイアウトするために必要な情報として、レイアウト基準位置の選択、組形式の選択、行揃えの選択、全体長さ、高さ優先の有無の選択、自動カーニングの有無の選択がある。これらの情報は、テキストのデータとして保存される。
【0257】
テキストの文字列データは、テキスト新規作成パネル3901の「文字列入力」ボタンをボタン選択することによって表示される、文字列入力パネル4001の文字列入力エリア4002に、キーボード11から入力する。この情報は、テキストおよび基本文字列のデータとして保存される。
【0258】
また、テキスト新規作成パネル3901では、文字データの印刷属性すなわち文字列属性である、書体名称、ベース角、平体率、長体率、斜体角、字間、行間、文字の大きさとしての基準文字高さまたは文字サイズ、を入力する。これらの情報は、テキストを構成する基本文字列の文字列属性のデータとして保存される。
【0259】
ここで、文字に関する用語の定義を行なっておく。図52に、文字に関する用語を説明する図を示す。
【0260】
文字ボックスとは、本実施形態では、1つの文字が専有する矩形(斜体角が0の場合)または平行四辺形(斜体角が0以外の場合)の仮想的な領域で、大部分の文字はこの文字ボックスの内部にデザインされるように定めている。文字の形状が文字ボックスの外側に出る場合もある。斜体角が0以外の場合は、文字ボックスも斜体がかかった平行四辺形となる。
【0261】
基準文字とは、書体ごとに、ユーザーがあらかじめ定めた1文字で、文字の大きさを指定する際や、文字のレイアウト位置を指定する際の基準となる文字である。一般に、矩形に近い形状の文字が定められることが多い。本実施形態では、英文書体の場合には、大文字の「E」を基準文字に定めている。
【0262】
文字サイズとは、文字の大きさを表す一般的な数値である。ただし、実際に文字の可視部分の高さを示すものではない。
【0263】
文字ボックス高さは、本実施形態では、文字サイズに平体率を考慮して、実際に表示される文字の高さ方向の大きさを示すように定めている。単一の基本文字列では、各文字の文字ボックス高さは共通である。文字ボックス高さと文字サイズの関係は、式4に示す通りである。
【0264】
文字ボックス高さ=文字サイズ*平体率 (式4)
【0265】
基準文字高さとは、本実施形態では、基準文字の可視部分の高さのことで、この数値で文字の大きさを指定することができる。実際に見えている部分をもとにして、文字のレイアウトを行ないたい場合には、基準文字高さで指定した方が有効である。
【0266】
文字サイズと基準文字高さは、書体ごとに、式5に示す一定の関係にある。文字高さ比率は、あらかじめ書体ごとに算出され、外部記憶装置33などに格納されている。
【0267】
基準文字高さ=文字サイズ*文字高さ比率 (式5)
【0268】
文字ベースラインとは、文字ボックス内での、文字の高さ方向の仮想的な基準線を示し、本実施形態では、基準文字「E」の外接矩形下辺を通る直線と定めている。文字ベースラインは、文字ボックス下辺に水平な直線となる。
【0269】
文字ボックス原点とは、文字ボックス内での、文字の位置を示すための仮想的な原点を示し、本実施形態では、文字ベースラインと文字ボックス左辺の交点と定める。
【0270】
文字ボックス幅は、文字ボックス原点から、同一基本文字列内の次の文字の文字ボックス原点までの水平距離(字送り方向距離)で定める。これは、字間が0の場合の数値である。一般に、文字ボックス幅は、同一の基本文字列であっても、文字によって異なる。特に、長体率が1の場合の文字ボックス幅を、その文字の文字幅と呼ぶ。文字ボックス幅と文字幅の関係は、式6に示す通りである。
【0271】
テキスト、基本文字列、文字列属性のデータ構造については、前述した通りである。
【0272】
文字ボックス幅=文字幅*長体率 (式6)
【0273】
文字ボックス原点から文字ボックスの上辺までの高さをアセンダ高さ、文字ボックスの下辺までの高さをディセンダ高さと呼ぶ。従って、次の式7が成り立つ。
【0274】
文字ボックス高さ=アセンダ高さ+ディセンダ高さ (式7)
【0275】
文字ボックスの左辺から文字の可視部分の左端までの水平距離(字送り方向距離)を左サイドベアリング、文字の可視部分の右端から文字ボックス右辺までの水平距離(字送り方向距離)を右サイドベアリングと呼ぶ。文字の斜体角が0である場合の数値で表す。言い換えれば、文字の斜体角によらない数値である。また、サイドベアリングには、字間は含まれないとする。文字ボックス内に文字の可視部分が含まれているとは限らないので、サイドベアリングは字送り方向を正とする、符号付きの数値である。
【0276】
図53に、サイドベアリングが負である文字の例を示す。この例では、左サイドベアリング、右サイドベアリングがともに負の場合を示している。このように、サイドベアリングが負の文字の場合、文字ボックスの外側に文字の可視部分が存在する。
【0277】
字間については、文字列属性の説明で定義した通りであるが、文字ボックスを使った表現を使えば、字間とは、同一行の隣接する2文字の文字ボックスの間隔を表す。しかし、本実施形態での行間とは、隣接する2行のテキスト行レイアウト矩形(後述)の間隔であり、隣接する2行にある文字の文字ボックスの間隔を表すわけではない。
【0278】
以上で、文字に関する用語の定義を終わる。
【0279】
書体名称は、書体名称一覧3902に使用可能な書体の一覧が表示されるので、その中から1つをマウス12で選択するか、書体名称入力エリアに直接、キーボード11から書体名称を入力する。書体名称一覧3902で選択した書体名称は、書体名称入力エリアに反映され、逆に、書体名称入力エリアで入力した書体名称は、それが使用可能な書体であれば、書体名称一覧3902の該当する項目が選択状態になる。
【0280】
文字の大きさ(文字大きさ)は、基準文字高さまたは文字サイズのいずれかで指定する。基準文字高さと文字サイズには、式5で示す関係があるので、基準文字高さと文字サイズの入力エリアのデータは、どちらか一方のデータを設定すれば、他方のデータはそれに応じて、自動的に更新される。
【0281】
ベース角は、キーボード11から角度を度単位で入力する。デフォルト値は0度である。点レイアウトの場合のみ有効である。
【0282】
平体率および長体率は、キーボード11から比率をパーセント単位で入力する。デフォルト値は、いずれも100%である。
【0283】
図54に、平体率および長体率を説明する図を示す。図中の矩形は各文字の文字ボックスを示している。
【0284】
斜体角は、キーボード11から角度を度単位で入力する。デフォルト値は0度である。点レイアウトの場合のみ有効である。
【0285】
字間は、キーボード11から文字の幅方向の大きさを基準としてパーセント単位で入力する。これを、字間比率と呼ぶことにする。文字の幅方向の大きさの基準としては、各文字によらない量として、文字サイズと長体率を使用する。字間比率と実際の字間の関係は、式8に示す通りである。
【0286】
字間=文字サイズ*長体率*字間比率 (式8)
【0287】
行間は、キーボード11から長さをmm単位で入力する。デフォルト値は0mmである。
【0288】
字間および行間を設定した場合の詳細については後述する。
【0289】
全体長さは、テキストの可視部分の幅を指定するもので、キーボード11から長さをmm単位で入力する。デフォルト値は0mmである。デフォルト値の0mmを指定したときは、全体長さの指定はないと見なされる。
【0290】
高さ優先の有無は、高さ優先選択ボタン3904における、あり/なしのボタンのどちらかを、ボタン選択することにより指定する。点レイアウトの場合でかつ、全体長さを指定した場合のみ有効である。
【0291】
全体長さを指定した場合の詳細については後述する。
【0292】
レイアウト基準位置は、レイアウト基準矩形選択ボタン3903における、レイアウト基準矩形の9個の特徴点を示すボタンの中から1個を、ボタン選択することにより指定する。点レイアウトの場合のみ有効である。
【0293】
テキストの場合の、レイアウト基準矩形およびレイアウト基準位置の設定方法の詳細については後述する。
【0294】
組形式は、テキストを横書きにするか縦書きにするかを、組形式選択ボタン3906における、横/縦のボタンのどちらかを、ボタン選択することにより指定する。
【0295】
行揃え位置は、行揃え位置選択ボタン3907における、左揃え、右揃え、中央揃え、両端揃え、の4個のボタンの中から1個を、ボタン選択することにより指定する。矩形レイアウトの場合のみ有効である。
【0296】
点レイアウト/矩形レイアウトの方法、矩形レイアウトの場合の行揃え位置の決定方法については後述する。
【0297】
上記の各項目のうち、キーボード11から数値データを入力する、書体名称、文字の大きさ、ベース角、平体率、長体率、斜体角、字間、行間、全体長さ、については、入力したい項目の文字入力エリアを、マウス12またはキーボード11で指示した後で、キーボード11から数値データを入力する。
【0298】
テキスト新規作成パネル3901上で、最後に設定したレイアウト必要情報および文字データの印刷属性は、CPU21によって、カレントな値(初期値と呼ぶ)として、RAM32に保存されるので、次にテキストを新規に作成する際には、テキスト新規作成パネル3901に表示される初期値の一部を変更するだけでよい。
【0299】
また、プログラムを終了する際に、CPU21は、初期値を、外部記憶装置33に保存し、次に、プログラムを実行する際に、再び、RAM32に読み込んで来るので、プログラムを実行するたびに、初期値を設定し直す必要もない。初期値は、ユーザーによらず共通のものと、ユーザーが各自設定した個別のものを、別々に、RAM32や外部記憶装置33に、保存しておくこともできる。
【0300】
以上の操作を終えたら、ユーザーは、文字列入力パネル4001の「設定」ボタンをボタン選択し、テキストを作成するために必要な情報(テキストをレイアウトするための情報、文字列データ、文字データの印刷属性)を確定する。
【0301】
このようにして、テキストを作成するために必要な情報が確定されると、CPU21は、設定された内容に従って、テキストのデータを作成し、その輪郭情報を抽出する(ステップS3104)。
【0302】
図56に、図51に示したテキストの輪郭情報を抽出した結果を示す。図中、実線で示した矩形はこのテキストのレイアウト基準矩形である。
【0303】
この輪郭情報を抽出する方法としては、前述した、
(1)そのまま表示装置に表示する方法
(2)一時的に拡大して表示装置に表示する方法
(3)幾何学的な手法による方法
(4)印刷装置に相当するソフトウエアまたはハードウエアに出力する方法
のいずれかの方法を取ることができる。
【0304】
なお、文字データの場合、(3)の方法を取るためには、文字データの形状が、幾何学的な形状で与えられている必要がある。
【0305】
次に、ステップS3104で抽出した輪郭情報から、CPU21は、テキストの外接矩形を計算する(ステップS3105)。外接矩形の計算方法は、図13のステップS1303における方法と同様である。
【0306】
なお、外接矩形を明示的に作成するには、矩形を描画するコマンド「矩形」のボタンを、メインパネル61上のボタン65からボタン選択するか、文字入力エリア64で、コマンド「矩形」の名称をキーボード11から入力し、さらに、コマンドメニュー67上の「外接矩形」メニューを、ボタン選択してから、外接矩形を作成したい要素を、要素選択すればよい。
【0307】
なお、テキストの場合、基準文字高さがレイアウトの基準として使われるので、あらかじめ、基準文字の輪郭情報から、式5の文字高さ比率を計算しておく。
【0308】
図32に、文字高さ比率を計算する手順を説明するフローチャートを示す。
【0309】
まず、一定の文字列属性で基準文字を作成する(ステップS3201)。
【0310】
文字サイズと基準文字高さの比率を求めるのが目的であるから、例えば、1つの書体について、文字サイズ=10mm、平体率=100%、長体率=100%、ベース角=0度、文字方向=0度、斜体角=0度、字間=0mm、行間=0mm、横反転フラグ=なし、縦反転フラグ=なし、という文字列属性で、基準文字の「E」を作成すればよい。
【0311】
次に、ステップS3104と同様の方法で、ステップS3201で作成された基準文字の輪郭情報を抽出する(ステップS3202)。
【0312】
次に、ステップS3105と同様の方法で、ステップS3202で抽出された輪郭情報から、基準文字の外接矩形を計算する(ステップS3203)。
【0313】
そして、ステップS3201で設定した文字サイズと、ステップS3203で求まった外接矩形の高さの比率から、式5に従って、この書体の文字高さ比率が求まる(ステップS3204)。
【0314】
求まった文字高さ比率は、外部記憶装置33に保存しておく(ステップS3205)。
【0315】
以上の処理を、各書体について繰り返す(ステップS3206)。
【0316】
次に、テキストのレイアウト基準情報として、レイアウト基準矩形を設定する(ステップS3106)。レイアウト基準矩形は、テキストの各行ごとに設定する。
【0317】
上述したシンボルの例では、レイアウト基準矩形を設定する際に、
(1)任意矩形
(2)外接矩形
を用いる場合を説明したが、テキストの場合は、
(3)基準文字高さと文字列の可視部分幅で決まる矩形
を、レイアウト基準矩形とすることがある。
【0318】
ここで、基準文字高さは、あらかじめ求まっており、また、文字列の可視部分幅は、ステップS3105で求めた外接矩形の幅に等しいので、これより、レイアウト基準矩形の左下点と右上点は、
左下点(輪郭情報の最小のX座標,文字列に基準文字が含まれていると仮定した場合の基準文字の輪郭情報の最小のY座標)
右上点(輪郭情報の最大のX座標,文字列に基準文字が含まれていると仮定した場合の基準文字の輪郭情報の最大のY座標)
と与えられる。
【0319】
図57に、図51で示したテキストに対して設定した、テキストのレイアウト基準矩形と、9個のレイアウト基準位置を示したものを示す。図中、実線で示した矩形が、テキストの各行のレイアウト基準矩形であり、また、図中、*印で示した点が、レイアウト基準位置である。
【0320】
この例の場合、「A」および「B」の文字外接矩形下線と文字ベースライン(基準文字「E」の文字外接矩形下線)は一致しており、かつ、「A」および「B」の文字外接矩形高さと基準文字高さが一致しているため、「A」および「B」の文字外接矩形上辺とレイアウト基準矩形上辺、文字外接矩形下辺とレイアウト基準矩形下辺は、
それぞれ一致している。しかし、「C」の場合など一般には、文字外接矩形(可視部分)とレイアウト基準矩形は一致しない。例えば、「C」の場合は、文字の可視部分は、レイアウト基準矩形の外部の領域にも存在する。
【0321】
次に、テキストを、作画エリア62にレイアウトする位置を指定する(ステップS3107)。
【0322】
テキストのレイアウト位置を指定する方法には、次のものがある。
【0323】
(1)点レイアウト:作画エリア62上の任意の位置を、任意指定、点指定、特徴点指定、交点指定、線上点指定、のいずれかの方法で指定する。この場合、指定した位置に、ステップS3101で指定された、テキストの先頭行のレイアウト基準位置が一致するように、レイアウトされる。
【0324】
図58に、レイアウト基準矩形の左下点をレイアウト基準位置に選び、テキストを点レイアウトした場合の例を示す。図中、*印で示した位置が、レイアウト位置である。なお、この図58では、説明のために、レイアウト基準矩形を、実線で同時に表示しているが、実際には、テキストのみが表示される。もちろん、レイアウト基準矩形を同時に表示するように、仕様変更することも可能である。この例では、1行のみのテキストを示しているが、複数行のテキストであっても、点レイアウトの場合のレイアウト位置は、先頭行のレイアウト基準位置で決定される。
【0325】
(2)矩形レイアウト:作画エリア62上に、印刷データとしてすでに存在する矩形を、要素選択によって指定する。この場合、テキストの先頭行のレイアウト基準矩形の上辺が、指定した矩形の上辺に沿うように、かつ、ステップS3101で指定された、行揃え位置に従って、次のようにレイアウトされる。
・左揃え:テキストの各行のレイアウト基準矩形を、指定した矩形の左辺に揃えてレイアウトする。
・右揃え:テキストの各行のレイアウト基準矩形を、指定した矩形の右辺に揃えてレイアウトする。
・中央揃え:テキストの各行のレイアウト基準矩形が、指定した矩形の幅の中央に位置するようにレイアウトする。
・両端揃え:テキストの各行のレイアウト基準矩形の幅が、指定した矩形の幅に一致するように、各行のテキストの字間を調整してレイアウトする。
【0326】
矩形レイアウトの各行揃え位置に応じたレイアウト方法については後述する。
【0327】
以上の処理が終わると、CPU21は、作成されたテキスト要素のデータを、印刷データとして、RAM32に登録する(ステップS3108)。
【0328】
また、この際、ステップS3105で求めた、テキスト要素の外接矩形のデータを、テキスト要素のデータの一部として保存する(ステップS3109)。
【0329】
このように、外接矩形のデータを、要素データの一部として保持しておけば、例えば、指定した要素を作画エリア62いっぱいに表示したい、というような場合に、再度、輪郭情報を抽出する必要がない。
【0330】
最後に、CPU21は、作成されたテキスト要素を、作画エリア62に表示する(ステップS3110)。
【0331】
さらに詳細に、テキストのレイアウトについて説明する。
【0332】
では、テキストのレイアウト情報を制御するさまざまな方法について説明する。
【0333】
まず、字間を設定する場合について説明する。
【0334】
字間を設定するには、テキスト新規作成パネル3901で、「字間」入力エリアに字間を入力すればよい。テキスト新規作成パネル3901で入力する字間は、字間比率であるから、実際の、例えばmm単位で表現される字間は、式8で求められる通りである。
【0335】
図59に、テキストの字間を設定した場合の例を示す。
【0336】
この例の場合、テキストは1個の基本文字列で構成される。一般に、基本文字列を構成する各データ、基本文字列の各属性データがテキストの途中で変更される場合に、テキストは、複数の基本文字列に分割される。従って、後述するが、改行される(文字列開始点座標が変わる)、カーニングが設定される(文字列開始点座標が変わる)、書体情報が変更される(文字列属性が変わる)などの場合には、テキストは複数の基本文字列から構成されることになる。
【0337】
図中、各文字を囲む矩形は、各文字の文字ボックスである。また、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。
【0338】
ここで、1行のテキストのレイアウト基準矩形(基準文字高さと文字列の可視部分幅で決まる矩形)を、テキスト行レイアウト矩形、テキスト行レイアウト矩形の高さと幅を、それぞれ、テキスト行高さ、テキスト行幅と呼ぶことにする。1行のテキストは、このテキスト行レイアウト矩形をもとにしてレイアウトされる。
【0339】
図59(a)は、字間がない場合の例を示し、図59(b)は、字間がある場合の例を示している。図59(a)では、各文字の文字ボックスの字送り方向の間隔はないが、図59(b)では、各文字ボックスの字送り方向の間隔が字間となっている。
【0340】
次に、行間を設定する場合について説明する。
【0341】
行間を設定するには、テキスト新規作成パネル3901で、「行間」入力エリアに行間を入力すればよい。テキスト新規作成パネル3901で入力する行間は、例えばmm単位で表現される実寸値である。
【0342】
図60に、テキストの行間を設定した場合の例を示す。
【0343】
この例の場合、改行があるので、各行ごとに別の基本文字列となる。
【0344】
図中、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。
【0345】
図60(a)は、行間がない場合の例を示し、図60(b)は、行間がある場合の例を示している。図60(a)では、各行のテキスト行レイアウト矩形の行送り方向の間隔はないが、図60(b)では、行送り方向の間隔が行間となっている。
【0346】
次に、字間カーニングを設定する場合について説明する。
【0347】
字間カーニングとは、同一行にある特定の文字の出力位置を左右方向、上下方向に微調整するための手法で、それぞれ、左右字間カーニング、上下字間カーニングと呼ぶことにする。
【0348】
また、後述する行間カーニングとは、隣接する2行の行間を上下方向に微調整するための手法で、特定の行間だけを変更するために主に使用される。
【0349】
字間カーニングを設定するには、文字列入力パネル4001で「カーニング入力」ボタンをボタン選択することによって表示される、カーニング入力パネル4101の「字間左右」入力エリアに、字間左右カーニングの数値を、「字間上下」入力エリアに、字間上下カーニングの数値を、入力すればよい。
【0350】
その際、文字列入力パネル4001の「文字列」入力エリアに入力されている文字列の、字間カーニングを設定したい位置にカーソルを移動させておく。
【0351】
カーニング入力パネル4101で入力する字間カーニングは、基準文字高さを基準として、それを例えば96分割した値を単位とするパラメータ(カーニングパラメータ)で入力する。実際の、例えばmm単位で表現される字間カーニングは、式9および式10で求められる通りである。
【0352】
字間カーニングは、符号を持つ数値で、右方向、上方向をそれぞれ正方向とする。
【0353】
左右字間カーニング=(左右字間カーニングパラメータ/96)*基準文字高さ*長体率 (式9)
上下字間カーニング=(上下字間カーニングパラメータ/96)*基準文字高さ*平体率 (式10)
【0354】
図61に、テキストの字間カーニングを設定した場合の例を示す。
【0355】
この例の場合、字間カーニングの前後で、別の基本文字列となる。
【0356】
図中、各文字を囲む矩形は、各文字の文字ボックスである。また、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。
【0357】
図61(a)は、左右字間カーニングがある場合の例を示し、図61(b)は、上下字間カーニングがある場合の例を示している。簡単のため字間は設定されていない。
【0358】
図61(a)では、右方向に24の左右字間カーニングパラメータが設定されており、基本文字列「A」と基本文字列「BC」の文字ボックスの字送り方向の間隔が式9で求められる値(正値)になっている。
【0359】
図61(b)では、下方向に24の上下字間カーニングパラメータが設定されており、基本文字列「A」と基本文字列「BC」の文字ボックスの行送り方向の間隔が式10で求められる値(負値)になっている。
【0360】
カーニング入力パネル4101での、字間カーニングの入力フォーマットは、例えば、次のようにすればよい。
・右方向の字間カーニング入力:「>数値」または「+数値」
・左方向の字間カーニング入力:「<数値」または「−数値」
・上方向の字間カーニング入力:「^数値」または「+数値」
・下方向の字間カーニング入力:「v数値」または「−数値」
【0361】
字間カーニングを入力して、カーニング入力パネル4101の「設定」ボタンをボタン選択すると、字間カーニング量が決定され、カーニング入力パネル4101は消去され、文字列入力パネル4001が表示された状態に戻る。
【0362】
すると、文字列入力パネル4001の「文字列」入力エリアに入力されている文字列のカーソル位置には、字間カーニングが設定されたことを示す、例えば、次のような制御フォーマットが表示される。
・右方向の字間カーニング制御:「¥t>数値@」
・左方向の字間カーニング制御:「¥t<数値@」
・上方向の字間カーニング制御:「¥t^数値@」
・下方向の字間カーニング制御:「¥tv数値@」
【0363】
もちろん、左右字間カーニングと上下字間カーニングを同時に設定することも可能であり、その場合の制御フォーマットは、次のようになる。
・「¥t>数値¥tv数値@」
【0364】
この、文字列入力パネル4001の「文字列」入力エリアに入力されている文字列を、制御文字列と呼び、テキストのデータとして保持される。
【0365】
図61(a)の例では、制御文字列は、次のようになる。
・「A¥t>24@BC」
【0366】
図61(b)の例では、制御文字列は、次のようになる。
・「A¥tv24@BC」
【0367】
次に、行間カーニングを設定する場合について説明する。
【0368】
行間カーニングを設定するには、文字列入力パネル4001で「カーニング入力」ボタンをボタン選択することによって表示される、カーニング入力パネル4101の「行間上下」入力エリアに、行間カーニングの数値を入力すればよい。
【0369】
その際、文字列入力パネル4001の「文字列」入力エリアに入力されている文字列の、字間カーニングを設定したい行と行の間に空行を1行作成して、そこにカーソルを移動させておく。
【0370】
カーニング入力パネル4101で入力する行間カーニングは、基準文字高さを基準として、それを例えば96分割した値を単位とするパラメータ(カーニングパラメータ)で入力する。実際の、例えばmm単位で表現される行間カーニングは、式11で求められる通りである。
【0371】
行間カーニングは、符号を持つ数値で、上方向を正方向とする。
【0372】
行間カーニング=(行間カーニングパラメータ/96)*基準文字高さ*平体率 (式11)
【0373】
図62に、テキストの行間カーニングを設定した場合の例を示す。
【0374】
この例の場合、行間カーニングの前後で、別の基本文字列となるが、改行時には、もともと別の基本文字列になるので、行間カーニングの有無によってテキストの基本文字列の構成は変わらない。図62の例の場合、「ABC」「DE」「FG」の3個の基本文字列で構成されるテキストである。
【0375】
図中、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。
【0376】
図62(a)は、行間カーニングがない場合の例を示し、図62(b)は、行間カーニングがある場合の例を示している。図62(a)、図62(b)両者とも、各行間には、一定の行間が設定されている。
【0377】
図62(a)では、各行間に一定の行間のみが設定されており、各行のテキスト行レイアウト矩形の行送り方向の間隔が、設定された行間になっている。
【0378】
図62(b)では、1行目と2行目の行間に下方向に24の行間カーニングパラメータが設定されており、1行目と2行目のテキスト行レイアウト矩形の行送り方向の間隔が式11で求められる値(負値)の絶対値に行間を加えた値になっている。2行目と3行目の行間は(a)の場合と同じである。
【0379】
カーニング入力パネル4101での、行間カーニングの入力フォーマットは、例えば、次のようにすればよい。これは、上下字間カーニングの場合と同様である。
・上方向の行間カーニング入力:「^数値」または「+数値」
・下方向の行間カーニング入力:「v数値」または「−数値」
【0380】
行間カーニングを入力して、カーニング入力パネル4101の「設定」ボタンをボタン選択すると、行間カーニング量が決定され、カーニング入力パネル4101は消去され、文字列入力パネル4001が表示された状態に戻る。
【0381】
すると、文字列入力パネル4001の「文字列」入力エリアに入力されている文字列のカーソル位置には、行間カーニングが設定されたことを示す、例えば、次のような制御フォーマットが表示される。
・上方向の行間カーニング制御:「¥l^数値@」
・下方向の行間カーニング制御:「¥lv数値@」
【0382】
図62(a)の例では、制御文字列は、次のようになる。
【0383】
図62(b)の例では、制御文字列は、次のようになる。
【0384】
次に、書体情報を変更する場合について説明する。
【0385】
書体情報とは、書体名称、文字の大きさ、平体率、長体率、斜体角、字間、行間、の文字列属性を総称している。書体情報を変更することによって、同一のテキスト内で、さまざまな形状を持った文字が表現できる。
【0386】
書体情報を変更するには、文字列入力パネル4001で「書体情報変更」ボタンをボタン選択することによって表示される、書体情報変更パネル4401の変更したい項目の文字入力エリアを、マウス12またはキーボード11で指示した後で、キーボード11から変更したい書体情報の数値データを入力する。
【0387】
書体名称は、書体名称一覧4402に使用可能な書体の一覧が表示されるので、その中から1つをマウス12で選択するか、書体名称入力エリアに直接、キーボード11から書体名称を入力する。書体名称一覧4402で選択した書体名称は、書体名称入力エリアに反映され、逆に、書体名称入力エリアで入力した書体名称は、それが使用可能な書体であれば、書体名称一覧4402の該当する項目が選択状態になる。
【0388】
その際、文字列入力パネル4001の「文字列」入力エリアに入力されている文字列の、書体情報を変更したい位置にカーソルを移動させておく。
【0389】
書体情報変更パネル4401で入力する各項目の内容は、テキスト新規作成パネル3901の同名称の項目と同様である。
【0390】
図63に、テキストの書体情報を変更した場合の例を示す。
【0391】
この例の場合、書体情報変更の前後で、別の基本文字列となる。
【0392】
図中、各文字を囲む矩形は、各文字の文字ボックスである。また、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。1行の間で基準文字高さが変わる場合など、テキスト行レイアウト矩形の計算方法については後述する。
【0393】
図63(a)は、文字サイズを変更した場合の例を示し、図63(b)は、書体を変更した場合の例を示している。簡単のため字間は設定されていない。
【0394】
図63(a)では、「A」と「B」の間で、文字サイズを例えば40mmから60mmに変更する書体情報変更が設定されている。
【0395】
図63(b)では、「A」と「B」の間で、書体を例えばHelveticaからTimesに変更する書体情報変更が設定されている。
【0396】
書体情報を変更して、書体情報変更パネル4401の「設定」ボタンをボタン選択すると、書体情報が変更され、書体情報変更パネル4401は消去され、文字列入力パネル4001が表示された状態に戻る。
【0397】
すると、文字列入力パネル4001の「文字列」入力エリアに入力されている文字列のカーソル位置には、書体情報が変更されたことを示す、例えば、次のような制御フォーマットが表示される。
・書体名称変更制御:「¥FONT{書体名称}@」
・文字サイズ変更制御:「¥h^数値@」
・平体率変更制御:「¥EX数値@」
・長体率変更制御:「¥CO数値@」
・斜体角変更制御:「¥/数値@」
・字間変更制御:「¥#数値@」
・行間変更制御:「¥!数値@」
【0398】
ここで、文字サイズの数値は、直前の値に対する相対値で表される。こうしておけば、初期値、すなわち先頭の文字の文字サイズを変更するだけで、テキスト全体を拡大または縮小することができるので好都合である。
【0399】
図63(a)の例では、制御文字列は、次のようになる。
・「A¥h^1.50@BC」
【0400】
図63(b)の例では、制御文字列は、次のようになる。
・「A¥FONT{Times}@BC」
【0401】
次に、書体情報の初期値を変更する場合について説明する。
【0402】
書体情報の初期値とは、テキスト新規作成時に、テキスト新規作成パネル3901で入力した書体情報のことである。
【0403】
初期値を変更するには、文字列入力パネル4001で「初期値変更」ボタンをボタン選択することによって表示される、テキスト新規作成パネル3901の変更したい項目の文字入力エリアを、マウス12またはキーボード11で指示した後で、キーボード11から変更したい書体情報の数値データを入力する。テキスト新規作成パネル3901の各項目の内容およびその設定方法については、前述した通りである。
【0404】
初期値を変更して、テキスト新規作成パネル3901の「設定」ボタンをボタン選択すると、初期値が変更され、テキスト新規作成パネル3901は消去され、文字列入力パネル4001が表示された状態に戻る。
【0405】
初期値を変更しても、文字列入力パネル4001の「文字列」入力エリアに入力されている文字列には、制御フォーマットは表示されない。
【0406】
次に、書体情報を初期値に復帰する場合について説明する。
【0407】
前述した方法で、テキストのある位置で書体情報を任意の回数だけ変更した後に、それより後ろのある位置で書体情報を初期値に復帰させたい場合には、文字列入力パネル4001で「初期値復帰」ボタンをボタン選択すればよい。
【0408】
その際、文字列入力パネル4001の「文字列」入力エリアに入力されている文字列の、書体情報を初期値に復帰したい位置にカーソルを移動させておく。
【0409】
図64に、テキストの書体情報を初期値に復帰した場合の例を示す。
【0410】
この例の場合、書体情報を変更した位置の前後、書体情報を初期値に復帰した位置の前後で、別の基本文字列となる。図64の例の場合、「AB」「CD」「EF」「GH」「JK」の5個の基本文字列で構成されるテキストである。
【0411】
図中、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。
【0412】
図64では、「B」と「C」の間で、文字サイズを1.5倍に書体変更し、「D」と「E」の間で、斜体角を15度に書体変更し、改行後、「H」と「J」の間で、初期値に復帰した場合の例を示している。
【0413】
書体情報を初期値に復帰すると、文字列入力パネル4001の「文字列」入力エリアに入力されている文字列のカーソル位置には、書体情報が初期値に復帰されたことを示す、例えば、次のような制御フォーマットが表示される。
・初期値復帰制御:「¥DEF@」
【0414】
図64の例では、制御文字列は、次のようになる。
・「AB¥h^1.50@CD¥/15.00@EF
GH¥DEF@JK」
【0415】
なお、制御フォーマットと実際に表示される文字の区別がわかりやすいように、文字列入力パネル4001の「文字列」入力エリアの制御文字列は、両者が別の色で表示されるようになっている。
【0416】
例えば、図64の例では、実際に表示される文字である、「AB」「CD」「EF」「GH」「JK」は黒で表示され、制御フォーマットである、「¥h^1.50@」「¥/15.00@」「¥DEF@」は赤で表示される。
【0417】
では次に、テキストを点レイアウトする際のデータ作成方法について説明する。
【0418】
ここでは、テキストのレイアウト必要情報、文字列データ、書体情報、カーニングや書体変更の情報が全て与えられた時に、実際にテキストのデータおよびテキストを構成する各基本文字列のデータがどのように作成されるか、について説明する。
【0419】
テキストのレイアウト必要情報、文字列データ、書体情報、カーニングや書体変更の情報が全て与えられると、各基本文字列データへの分解、各基本文字列レイアウト情報データの作成が行なわれる。
【0420】
この、基本文字列レイアウト情報データは、テキストを構成する基本文字列をレイアウトするためのデータとして、各基本文字列ごとに作成されるデータである。前述したテキストのデータ構造に示すように、テキストのデータとして保持していてもよいが、テキストのデータから作成することも可能なので、データ量を削減したい場合には、テキストのデータとして保持しないことも可能である。
【0421】
基本文字列レイアウト情報データのデータ構造は、以下の通りである。
・欧文/和文種別:typef
・文字高さ比率:rhparm
・文字数:nn
・文字列幅:tw
・相対開始点:pw〔2〕
・左右字間カーニング:dhx
・上下字間カーニング:dhy
・行間カーニング:dln
・アセンダ高さ:has
・ディセンダ高さ:hds
・先頭文字左サイドベアリング:sbl
・末尾文字右サイドベアリング:sbr
【0422】
ここで、文字列幅とは、着目している基本文字列の先頭文字ボックス原点から、次の基本文字列の先頭文字ボックス原点までの字送り方向の距離であり、この値には字間は考慮されているが、字間カーニングは考慮されていない。
【0423】
また、相対開始点とは、カーニングがない場合の、テキストの先頭行先頭基本文字列の先頭文字ボックス原点を(0,0)とした時の、各基本文字列の先頭文字ボックス原点の相対的な座標値を示すものである。
【0424】
図33に、テキストを点レイアウトする際のデータ作成方法を説明するフローチャートを示す。
【0425】
また、図65に、テキストを点レイアウトした際の作成データの例を示す。ここでの各処理の説明は、この図の例に基づいて行なう。
【0426】
図中、各文字を囲む矩形(実線)は、各文字の文字ボックスである。また、各行の文字列全体を囲む矩形(点線)は、テキスト行レイアウト矩形である。
【0427】
このテキストは、書体名称=Helvetica、基準文字高さ=30mm、ベース角=0度、平体率=100%、長体率=100%、斜体角=0度、字間=5%、行間=10mm、全体長さ=0mm(指定なし)、レイアウト基準位置=左下、高さ優先=なし、自動カーニング=なし、組形式=横、で新規作成された後、以下のカーニング、書体変更、初期値復帰を実施したものである。
・「¥t<24@AB¥h^1.33@CD¥DEF@
EF¥t>24¥tv24@G
¥lv48@
¥t>24@HJ」
【0428】
レイアウト基準点は、図中「A」の文字外接矩形左下点を指定した。図では「A」の文字ボックス原点と同一の点に見えるが、実際はわずかに異なる点となる。
【0429】
この例では、基本文字列は、「AB」「CD」「EF」「G」「HJ」の5個であるので、各基本文字列の番号を順に1から5とする。
【0430】
まず、各基本文字列の相対開始点pw1〜pw5の計算を行なう(ステップS3301)。
【0431】
この時点で、テキスト、各基本文字列、各基本文字列レイアウト情報のうち、未設定のデータは、以下の通りである。これらを計算しなければならない。
(基本文字列レイアウト情報)
・相対開始点:pw〔2〕
(基本文字列)
・文字列開始点座標:pt〔2〕
(テキスト)
・テキストレイアウト矩形左下点座標:pll〔2〕
・テキストレイアウト矩形右上点座標:plr〔2〕
【0432】
まず、先頭行の先頭基本文字列の相対開始点pw1は、着目基本文字列の字間カーニングdhx1(負値)およびdhy1(=0)、行間カーニングdln1(=0)を考慮して、以下のように求められる。
【0433】
行間カーニングは、各行で一意に定まるので、各行の先頭基本文字列のデータのみ有効であるとする。この例の場合では、dln1、dln3、dln5のみが有効なデータである。文字列属性データの行間dflinも同様に、dflin1、dflin3、dflin5のみが有効なデータである。
【0434】
カーニングパラメータからカーニング値を求める方法は、式9から式11に示した通りである。
【0435】
pw1〔0〕=dhx1
pw1〔1〕=dhy1+dln1 (式12)
【0436】
次に、先頭行の2番目の基本文字列の相対開始点pw2は、直前の基本文字列の文字列幅tw1、着目基本文字列の字間カーニングdhx2(=0)およびdhy2(=0)を考慮して、以下のように求められる。
【0437】
pw2〔0〕=pw1〔0〕+tw1+dhx2
pw2〔1〕=pw1〔1〕+dhy2 (式13)
【0438】
書体変更で、文字サイズを大きくした効果は、文字列幅tw1に反映されている。
【0439】
各行の2番目以降の基本文字列の相対開始点は、同一行の直前の基本文字列の相対開始点と文字列幅を元にして、同様に求められる。各行の最終基本文字列の末尾文字の後ろに左右字間カーニングが設定されている場合には、後述するテキスト行幅の計算の際に考慮するために、文字列幅tw=0、左右字間カーニングdhxの基本文字列を便宜上、作成して対応する。
【0440】
次に、2行目の先頭基本文字列の相対開始点pw3は、前行の先頭基本文字列の相対開始点pw1、字間カーニングdhx1およびdhy1、着目基本文字列の字間カーニングdhx3(=0)およびdhy3(=0)、文字列高さth3、行間dflin3、行間カーニングdln3を考慮して、以下のように求められる。
【0441】
着目基本文字列の文字列高さth3は、基準文字高さに平体率をかけたもので、式14で表される。
【0442】
2行目の先頭基本文字列の相対開始点pw3は、式15で表される。文字列高さth3および行間dflin3は正値であるが、改行方向はyの負方向なので、符号が変わる。カーニング量は符号を持った数値なので、そのままの符号で加算すればよい。改行されたときは、前行の先頭基本文字列の字間カーニングを無効とするために、dhx1およびdhy1を減算している。
【0443】
th3=hbox3*rhparm3*rexp3 (式14)
pw3〔0〕=pw1〔0〕−dhx1+dhx3
pw3〔1〕=pw1〔1〕−dhy1+dhy3
−th3−dflin3+dln3 (式15)
【0444】
2行目以降の先頭基本文字列の相対開始点は、前行の先頭基本文字列の相対開始点、文字列高さ、字間カーニングを元にして、同様に求められる。
【0445】
以上の、式12から式15の計算を、各基本文字列について行なうことによって、各基本文字列の相対開始点pw〔2〕が求められる。
【0446】
次に、各行のテキスト行幅(テキスト行レイアウト矩形の幅)linew1〜linew3の計算を行なう(ステップS3302)。
【0447】
テキストの行数、各行を構成する基本文字列の番号は、この時点でわかっている。
【0448】
基本的にテキスト行幅は、着目行のテキストの可視部分幅であるが、例外として、行頭および行末の左右字間カーニングを考慮する。左右字間カーニングを考慮することによって、テキスト行幅は、テキストの可視部分幅より長くなったり、短くなったりする。
【0449】
図66に、この様子を示す。図66(a)は行頭および行末に左右字間カーニングがない場合、図66(b)は行頭に右方向の左右字間カーニングがある場合、図66(c)は行頭に左方向の左右字間カーニングがある場合、図66(d)は行末に右方向の左右字間カーニングがある場合、図66(e)は行末に左方向の左右字間カーニングがある場合、の例を示している。図中、実線の矩形はテキスト行レイアウト矩形である。点線は左右字間カーニングがなかった場合のテキスト行レイアウト矩形の位置を参考に示している。
【0450】
図66(b)および図66(d)では、テキスト行幅はテキストの可視部分幅より長くなり、図66(c)および図66(e)では、テキスト行幅はテキストの可視部分幅より短くなる。
【0451】
同様に、テキスト行幅を計算する際には、行頭および行末の空白文字も考慮する。しかし、特に欧文の場合、空白文字の文字幅がわかりにくいことから、行頭および行末の空白文字によって、出力位置を制御することは困難である。
【0452】
図65の例で、各行のテキスト行幅は、各行の最終基本文字列の相対開始点X座標、文字列幅、末尾文字右サイドベアリング、字間、各行の先頭基本文字列の先頭文字左サイドベアリングを考慮して、以下のように求められる。
【0453】
式16では、字間カーニングが考慮されていないように見えるが、ステップS3301で計算した相対開始点の値に含まれている。
【0454】
linew1=pw2〔0〕+(tw2−dflet2)
−sbl1+sbr2
linew2=pw4〔0〕+(tw4−dflet4)
−sbl3+sbr4
linew3=pw5〔0〕+(tw5−dflet5)
−sbl5+sbr5 (式16)
【0455】
式16によって、各行のテキスト行幅を計算する際に、最大テキスト行幅、最大テキスト行幅行番号を同時に計算し、RAM32に保存しておく。
【0456】
次に、各行のテキスト行高さ(テキスト行レイアウト矩形の高さ)lineh1〜lineh3の計算を行なう(ステップS3303)。
【0457】
テキスト行高さは、着目行を構成する基本文字列の文字列高さの最大値である。従って、図65の例では、各行のテキスト行高さは、式14で求められる文字列高さを用いて、以下のように表される。
【0458】
lineh1=tw2
lineh2=tw3(=tw4)
lineh3=tw5 (式17)
【0459】
式17によって、各行のテキスト行高さを計算する際に、最大テキスト行高さ、最大テキスト行高さ行番号を同時に計算し、RAM32に保存しておく。
【0460】
次に、各基本文字列の文字列開始点pt1〜pt5の計算を行なう(ステップS3304)。
【0461】
点レイアウトの場合、先頭行のテキスト行レイアウト矩形がレイアウトの際の基準となる。各基本文字列の文字列開始点は、ユーザーが指定したレイアウト基準点座標(テキストデータに保持されるpb〔2〕)に、先頭行のテキスト行レイアウト矩形の指定したレイアウト基準位置フラグの位置が合うように調整すればよい。
【0462】
まず、レイアウト基準位置フラグの位置に応じて平行移動を行なう。先頭行のテキスト行幅をlinew1、テキスト行高さをlineh1とすると、レイアウト基準位置フラグdatumの9種類の値に応じて、全ての相対開始点の平行移動量dvx、dvyは、次の通りである。
【0463】
datum=左下のとき、
dvx=0,dvy=0
datum=中下のとき、
dvx=−linew1/2,dvy=0
datum=右下のとき、
dvx=−linew1,dvy=0
datum=左中のとき、
dvx=0,dvy=−lineh1/2
datum=中中のとき、
dvx=−linew1/2,dvy=−lineh1/2
datum=右中のとき、
dvx=−linew1,dvy=−lineh1/2
datum=左上のとき、
dvx=0,dvy=−lineh1
datum=中上のとき、
dvx=−linew1/2,dvy=−lineh1
datum=右上のとき、
dvx=−linew1,dvy=−lineh1 (式18)
【0464】
さらに、可視部分を基準にX方向の出力位置の平行移動を行なう。各基本文字列の相対開始点の平行移動量は、以下の通りである。
【0465】
各基本文字列のdvx=
−着目行先頭基本文字列の先頭文字左サイドベアリング (式19)
【0466】
そして、先頭行先頭基本文字列のベース角(基本文字列の文字列属性データに保持されるabas)と、レイアウト基準点座標(テキストデータに保持されるpb〔2〕)を考慮して、回転移動、平行移動を、全ての基本文字列に対して行なえばよい。
【0467】
最後に、テキストレイアウト矩形の計算を行なう(ステップS3305)。
【0468】
テキストレイアウト矩形は、各行のテキスト行レイアウト矩形から求められるが、テキストレイアウト矩形幅textw、テキストレイアウト矩形高さtexthは、ステップS3301で求めた相対開始点を利用すれば、次のように求められる。
【0469】
textw=最大テキスト行幅
texth=先頭行のテキスト行高さ
−(最終行先頭基本文字列の相対開始点Y座標
−最終行先頭基本文字列の上下字間カーニング) (式20)
【0470】
図67に、テキストレイアウト矩形の計算結果の例を示す。図中、実線の矩形はテキストレイアウト矩形である。点線の矩形は各行のテキスト行レイアウト矩形である。
【0471】
図67(a)は、字間カーニングがある場合の例を示している。図67(b)は、先頭行の前と最終行の後に行間カーニングがある場合の例を示している。最終行の後の行間カーニングは無視される。図67(c)は、先頭行の前と最終行の後に空行(改行のみの行)がある場合の例を示している。最終行の後の空行は無視される。
【0472】
あとは、レイアウト基準位置フラグに応じた平行移動、ベース角に応じた回転移動、レイアウト基準点座標に応じた平行移動を行なって、テキストレイアウト矩形の位置、すなわち、
・テキストレイアウト矩形左下点座標:pll〔2〕
・テキストレイアウト矩形右上点座標:plr〔2〕
を求めればよい。
【0473】
では次に、テキストの点レイアウトで、全体長さおよび高さ優先を指定した場合のデータ作成方法について説明する。
【0474】
図34に、テキストの点レイアウトで全体長さおよび高さ優先を指定した際のデータ作成方法を説明するフローチャートを示す。
【0475】
前述した通り、全体長さの指定、全体長さを指定した際の高さ優先の有無の指定は、テキスト新規作成パネル3901上で行なう。いずれの指定も、点レイアウトの場合のみ有効である。
【0476】
まず、各基本文字列の相対開始点pw〔2〕の計算を行なう(ステップS3401)。この計算は、全体長さを指定していないものとして行なった、ステップS3301の計算と同様である。
【0477】
次に、各行のテキスト行幅linewの計算を行なう(ステップS3402)。この計算は、全体長さを指定していないものとして行なった、ステップS3302の計算と同様である。
【0478】
次に、各行のテキスト行高さlinehの計算を行なう(ステップS3403)。この計算は、全体長さを指定していないものとして行なった、ステップS3303の計算と同様である。
【0479】
以降の処理は、ステップS3404による、高さ優先が指定されているかどうかの判定と、ステップS3405による、最大テキスト行幅と指定した全体長さとの大小判定と、によって、
・図35に示す、高さ優先指定なしの場合、
・図36に示す、高さ優先指定あり、最大テキスト行幅≦全体長さの場合、
・図37に示す、高さ優先指定あり、最大テキスト行幅>全体長さの場合、
の3通りの処理に分かれる。
【0480】
なお、図68に、テキストの点レイアウトで、全体長さおよび高さ優先を指定した場合の例を示す。図中、実線の矩形はテキスト行レイアウト矩形を示す。
【0481】
図68(a)は、全体長さ指定がない場合(=0を入力)である。図68(b)は、高さ優先指定あり、最大テキスト行幅>全体長さの場合である。図68(c)は、高さ優先指定あり、最大テキスト行幅≦全体長さの場合である。図68(d)は、高さ優先指定なし、最大テキスト行幅>全体長さの場合である。図68(e)は、高さ優先指定なし、最大テキスト行幅≦全体長さの場合である。
【0482】
では、図35のフローチャートに基づき、高さ優先指定なしの場合について説明する。
【0483】
この場合は、図68(d)および図68(e)の例に示すように、1行のテキストが、指定した全体長さにおさまるように、文字サイズを調整する。図68(d)のように、最大テキスト行幅>全体長さの場合は、文字サイズは縮小され、図68(e)のように、最大テキスト行幅≦全体長さの場合は、文字サイズは拡大される。
【0484】
まず、指定した全体長さwidlnとステップS3402で求められた最大テキスト行幅linewmの比率scl(>1)を求める(ステップS3501)。
【0485】
scl=widln/linewm (式21)
【0486】
次に、テキストを構成する各基本文字列の文字列属性およびレイアウト情報データを変更する(ステップS3502)。文字サイズの変更に伴って、影響を生じるデータも同時に変更する。具体的には、文字サイズ、字間、行間、先頭文字左サイドベアリング、末尾文字右サイドベアリング、文字列幅の各データに、ステップS3501で求められたsclを乗じる。
【0487】
次に、各基本文字列の相対開始点を再計算する(ステップS3503)。
【0488】
相対開始点の計算方法はステップS3401と同様であるが、各文字列属性およびレイアウト情報データには、ステップS3502による変更後のデータを使用して再計算する。
【0489】
また、カーニング量は、式9から式11に基づき、ステップS3502による変更後のデータを使用してカーニングパラメータから再計算する。
【0490】
次に、各行のテキスト行幅を再計算する(ステップS3504)。
【0491】
テキスト行幅の計算方法はステップS3402と同様であるが、各文字列属性およびレイアウト情報データには、ステップS3502による変更後のデータを使用して再計算する。
【0492】
次に、各行のテキスト行高さを再計算する(ステップS3505)。
【0493】
テキスト行高さの計算方法はステップS3403と同様であるが、各文字列属性およびレイアウト情報データには、ステップS3502による変更後のデータを使用して再計算する。
【0494】
これ以降の、各基本文字列の文字列開始点の計算ステップS3409と、テキストレイアウト矩形の計算ステップS3410は、これらの計算は、全体長さを指定していない場合の、それぞれステップS3304およびステップS3305の計算と同様である。
【0495】
では、図36のフローチャートに基づき、高さ優先指定あり、最大テキスト行幅≦全体長さの場合について説明する。
【0496】
この場合は、図68(c)の例に示すように、1行のテキストが、指定した全体長さになるように、一定の字間を追加して調整する。本実施形態では、1行のテキストを構成する各基本文字列がそれぞれ異なる字間を設定している場合でも、一定の字間を追加するとしているが、既に設定されている各基本文字列の字間の比率が変わらないように字間を追加することや、各基本文字列の文字サイズの比率に応じて字間を追加することなども可能である。
【0497】
まず、指定した全体長さwidlnとステップS3402で求められた最大テキスト行幅linewmの差dif(正値)を求める(ステップS3601)。
【0498】
dif=widln−linewm (式22)
【0499】
次に、ステップS3402で求められた最大テキスト行幅行の1行の文字数nchを計算する。nchは、最大テキスト行幅行の各基本文字列の文字数nnの和である。文字数nchのとき、字間数は(nch−1)であるから、全体長さに合わせるための1文字あたりの追加字間difchは、次の式23で表される(ステップS3602)。
【0500】
difch=dif/(nch−1) (式23)
【0501】
次に、テキストを構成する各基本文字列の文字列属性およびレイアウト情報データを変更する(ステップS3603)。字間の変更に伴って、影響を生じるデータも同時に変更する。具体的には、字間のデータに、ステップS3602で求められたdifchを加え、文字列幅のデータに、difch*nnを加える。
【0502】
次に、各基本文字列の相対開始点を再計算する(ステップS3604)。
【0503】
相対開始点の計算方法はステップS3401と同様であるが、各文字列属性およびレイアウト情報データには、ステップS3603による変更後のデータを使用して再計算する。
【0504】
また、カーニング量は、式9から式11に基づき、ステップS3603による変更後のデータを使用してカーニングパラメータから再計算する。この場合、基準文字高さ、長体率、平体率は変わっていないので、カーニング量そのものは変わっておらず、変更前のカーニングデータが保存されていれば、再計算は不要である。
【0505】
次に、各行のテキスト行幅を再計算する(ステップS3605)。
【0506】
テキスト行幅の計算方法はステップS3402と同様であるが、各文字列属性およびレイアウト情報データには、ステップS3603による変更後のデータを使用して再計算する。
【0507】
これ以降の、各基本文字列の文字列開始点の計算ステップS3409と、テキストレイアウト矩形の計算ステップS3410は、全体長さを指定していない場合の、それぞれステップS3304およびステップS3305の計算と同様である。
【0508】
最後に、図37のフローチャートに基づき、高さ優先指定あり、最大テキスト行幅>全体長さの場合について説明する。
【0509】
この場合は、図68(b)の例に示すように、1行のテキストが、指定した全体長さにおさまるように、長体率を調整(小さく)する。
【0510】
まず、指定した全体長さwidlnとステップS3402で求められた最大テキスト行幅linewmの比率scl(>1)を求める(ステップS3701)。計算式は、式21に示した通りである。
【0511】
次に、テキストを構成する各基本文字列の文字列属性およびレイアウト情報データを変更する(ステップS3702)。長体率の変更の他に、各文字基本文字列の幅方向のデータも同時に変更する。具体的には、字間、先頭文字左サイドベアリング、末尾文字右サイドベアリング、文字列幅の各データに、ステップS3701で求められたsclを乗じる。
【0512】
次に、各基本文字列の相対開始点を再計算する(ステップS3703)。
【0513】
相対開始点の計算方法はS3401と同様であるが、各文字列属性およびレイアウト情報データには、ステップS3702による変更後のデータを使用して再計算する。
【0514】
また、カーニング量は、式9から式11に基づき、ステップS3702による変更後のデータを使用してカーニングパラメータから再計算する。
【0515】
次に、各行のテキスト行幅を再計算する(ステップS3704)。
【0516】
テキスト行幅の計算方法はステップS3402と同様であるが、各文字列属性およびレイアウト情報データには、ステップS3702による変更後のデータを使用して再計算する。
【0517】
これ以降の、各基本文字列の文字列開始点の計算ステップS3409と、テキストレイアウト矩形の計算ステップS3410は、全体長さを指定していない場合の、それぞれステップS3304およびステップS3305の計算と同様である。
【0518】
では次に、テキストを矩形レイアウトする際のデータ作成方法について説明する。
【0519】
図38に、テキストを矩形レイアウトする際のデータ作成方法を説明するフローチャートを示す。
【0520】
また、図69に、テキストを矩形レイアウトした際の作成データの例を示す。
【0521】
図中、実線で示した矩形は、矩形レイアウトの際のレイアウト対象矩形である。また、点線で示した各行の文字列を囲む矩形は、テキスト行レイアウト矩形である。
【0522】
図69(a)は、左揃えを指定した場合の例、図69(b)は、右揃えを指定した場合の例、図69(c)は、中央揃えを指定した場合の例、図69(d)は、両端揃えを指定した場合の例、をそれぞれ示している。
【0523】
まず、各行のテキスト行幅を計算する(ステップS3801)。
【0524】
テキスト行幅linewはステップS3402と同様の方法でも計算できるが、この時点では、各基本文字列の相対開始点は求められていないので、着目行について、各基本文字列の文字列幅tw1〜twn(nは着目行の基本文字列数)、左右字間カーニングdhx1〜dhxn、最終基本文字列の末尾文字右サイドベアリングsbrn、字間dfletn、先頭基本文字列の先頭文字左サイドベアリングsbl1を考慮して、以下のように求められる。字間dfletnを減算しているのは、最終基本文字列の末尾文字の後ろの字間を除くためである。
【0525】
linew=(dhx1+tw1)+...+(dhxn+twn)
−dfletn−sbl1+sbrn (式24)
【0526】
次に、各行のテキスト行幅とレイアウト対象矩形幅の大小判定をする。(ステップS3802)
【0527】
レイアウト対象矩形幅wrectは、テキストのデータとして格納されており、ステップS3107で、テキストのレイアウト位置を指定する際に、矩形を要素選択によって指定した場合、すなわち、矩形レイアウトを指定した場合に有効なデータである。
【0528】
各行について、テキスト行幅とレイアウト対象矩形幅の大小判定を行ない、テキスト行幅の方が大きかった場合には、その該当行について、テキスト行幅がレイアウト対象矩形幅を超えず、かつ、最もテキスト行幅が大きくなるように、CPU21は、自動的に改行を挿入する。(ステップS3803)
【0529】
例えば「ABCDEFG」というテキスト行について、「ABCDE」までのテキスト行幅を式24に基づいて計算した場合には、レイアウト対象矩形幅より小さく、または等しくなり、「ABCDEF」までのテキスト行幅を式24に基づいて計算した場合には、レイアウト対象矩形幅より大きくなるという例では、「E」と「F」の間に改行が挿入され、このテキスト行は「ABCDE」と「FG」の2行に分割される。
【0530】
ステップS3803で、改行が挿入された場合には、その前後で基本文字列が分割されることになるので、このテキストの基本文字列データ、基本文字列レイアウト情報データを再作成する。(ステップS3804)
【0531】
テキスト行幅とレイアウト対象矩形幅の大小判定を行ない、レイアウト対象矩形幅の方が大きかった場合には、そのテキスト行については、ステップS3803およびステップS3804の処理は行なう必要がない。
【0532】
次に、各基本文字列の相対開始点pw〔2〕の計算を行なう(ステップS3805)。この計算は、点レイアウトの場合の、ステップS3301の計算と同様である。
【0533】
次に、各行のテキスト行幅linewの計算を行なう(ステップS3806)。この計算は、点レイアウトの場合の、ステップS3302の計算と同様である。
【0534】
次に、各行のテキスト行高さlinehの計算を行なう(ステップS3807)。この計算は、点レイアウトの場合の、ステップS3303の計算と同様である。
【0535】
さて、矩形レイアウトの場合の行揃え位置には、前述したように、左揃え、右揃え、中央揃え、両端揃え、の4種類がある。これらは、テキスト新規作成パネル3901の、行揃え位置選択ボタン3907で指定されたものが、行揃えフラグadjとして、テキストのデータに格納されている。
【0536】
以降の処理は、行揃えフラグが両端揃えの場合と、両端揃え以外の、左揃え、右揃え、中央揃えの場合とで、処理が異なるので、その判定を行なう。(ステップS3808)
【0537】
ステップS3808で、行揃えフラグが両端揃え以外と判定された場合の処理を説明する。
【0538】
この場合は、レイアウト対象矩形幅wrectに合わせて、各テキスト行をX方向に移動させる。i行目のX方向移動量をdx〔i〕は、テキスト行幅をlinew〔i〕とすると、行揃えフラグに応じて、次の式で表される。なお、ここで、i行目のテキスト行幅linew〔i〕は、ステップS3806で計算済である。
【0539】
左揃えの場合、
dx〔i〕=0
右揃えの場合、
dx〔i〕=wrect−linew〔i〕
中央揃えの場合、
dx〔i〕=(wrect−linew〔i〕)/2 (式25)
【0540】
式25で求まったdx〔i〕を、i行目に存在する各基本文字列の相対開始点のX座標pw〔0〕に加算して、相対開始点を修正する。(ステップS3811)
【0541】
一方、ステップS3808で、行揃えフラグが両端揃えと判定された場合の処理は次のようになる。
【0542】
この場合は、レイアウト対象矩形幅wrectに合わせて、各テキスト行の基本文字列に適当な字間を追加して、両端をレイアウト矩形に揃えるようにする。
【0543】
i行目の基本文字列について、追加する字間の合計dif〔i〕は、次のように求められる。
【0544】
dif〔i〕=wrect−linew〔i〕 (式26)
【0545】
i行目の総文字数nch〔i〕は、i行目に存在する各基本文字列の文字数nnの和である。文字数nch〔i〕のとき、字間数は(nch〔i〕−1)であるから、レイアウト対象矩形幅に合わせるためのi行目の1文字あたりの追加字間difch〔i〕は、次の式で表される。
【0546】
difch〔i〕=dif〔i〕/(nch〔i〕−1)(式27)
【0547】
ただし、式27が適用されるのは、i行目の総文字数nch〔i〕が1より大きい場合に限られる。nch〔i〕が0または1の場合には、字間を追加しても、両端に揃えることはできないので、この行については、中央揃えと同じ処理を行なう。
【0548】
式26および式27に基づいて、i行目に存在する各基本文字列の字間のデータに、difch〔i〕を加え、文字列幅のデータに、difch〔i〕*nnを加える。その上で、i行目に存在する各基本文字列の相対開始点のX座標pw〔0〕を再計算して、相対開始点を修正する。(ステップS3809)
【0549】
次に、各行のテキスト行幅を再計算する(ステップS3810)。ステップS3809で再計算された相対開始点のデータ、字間のデータ、文字列幅のデータを使用して、ステップS3302と同様に計算すればよい。
【0550】
以降の処理は、行揃えフラグが両端揃えの場合でも、両端揃え以外の、左揃え、右揃え、中央揃えの場合でも、処理は同様である。
【0551】
次に、各基本文字列の文字列開始点pt〔2〕の計算を行なう(ステップS3812)。
【0552】
矩形レイアウトの場合も、点レイアウトの場合と同様、先頭行のテキスト行レイアウト矩形がレイアウトの際の基準となる。矩形レイアウトの場合は、先頭行のテキスト行レイアウト矩形が、レイアウト対象矩形の上辺、左辺、右辺に内接するように、全ての相対開始点をY方向に平行移動する。
【0553】
その移動量、dvx、dvyは、次の通りである。lineh1は、先頭行のテキスト行高さである。
【0554】
dvx=0
dvy=−lineh1 (式28)
【0555】
さらに、可視部分を基準にX方向の出力位置の平行移動を行なう。各基本文字列の相対開始点の平行移動量は、前述した式19に示した通りである。
【0556】
そして、レイアウト対象矩形傾き(テキストデータに保持されるarect)と、レイアウト基準点(矩形レイアウトの場合は回転基準点となる)座標(テキストデータに保持されるpb〔2〕)を考慮して、回転移動、平行移動を、全ての基本文字列に対して行なえばよい。
【0557】
最後に、テキストレイアウト矩形の計算を行なう(ステップS3813)。
【0558】
テキストレイアウト矩形は、各行のテキスト行レイアウト矩形から求められるが、テキストレイアウト矩形幅textw、テキストレイアウト矩形高さtexthは、ステップS3809またはステップS3811で求めた相対開始点を利用すれば、前述した式20のように求められる。
【0559】
あとは、式28に従った平行移動、レイアウト対象矩形傾きに応じた回転移動、レイアウト基準点座標に応じた平行移動を行なって、テキストレイアウト矩形の位置、すなわち、
・テキストレイアウト矩形左下点座標:pll〔2〕
・テキストレイアウト矩形右上点座標:plr〔2〕
を求めればよい。
【0560】
次に、文字データを修正する場合について説明する。
【0561】
前述したように、「テキスト」コマンドのコマンドメニュー67の項目には、(1)新規:これから新規にテキストを作成する。
(2)修正:すでに作成されているテキストを修正する。
があり、このうち「修正」メニューを選択した場合について説明する。
【0562】
図31に、テキストを印刷データとしてレイアウトする手順を説明するフローチャートを示したが、テキストを修正する場合も、新規作成する場合と同様に、このフローに従う。
【0563】
「修正」メニューをボタン選択した場合は、次に、修正するテキストを選択するように、ガイダンスエリア68に表示されるので、ユーザーは、この指示に従って、修正したいテキストを要素選択する。
【0564】
すると、要素選択したテキストの現在の状態が、図45に示すような、テキスト修正パネル4501に表示される。
【0565】
このテキスト修正パネル4501上で、テキストを作成するために必要な情報をキーボード11またはマウス12によるボタン選択によって入力する。これは「新規作成」メニューを選択した場合の、ステップS3101からステップS3103までの処理と同様である。ただし、修正の場合は、既に設定されている情報を変更したい場合のみ、編集を行なえばよい。
【0566】
テキスト修正パネル4501で入力する情報には、テキストをレイアウトするために必要な情報として、レイアウト基準位置の選択、組形式の選択、行揃えの選択、全体長さ、高さ優先の有無の選択、自動カーニングの有無の選択がある。いずれも、選択されたテキストの現在の状態が表示される。これらの情報は、テキストのデータとして再保存される。
【0567】
テキストの文字列データは、テキスト修正パネル4501の「文字列修正」ボタンをボタン選択することによって表示される、文字列入力パネル4001の文字列入力エリア4002に、キーボード11から入力する。選択されたテキストの現在の文字列が表示される。この情報は、テキストおよび基本文字列のデータとして再保存される。
【0568】
また、テキスト修正パネル4501では、文字データの印刷属性すなわち文字列属性である、書体名称、ベース角、平体率、長体率、斜体角、字間、行間、文字の大きさとしての基準文字高さまたは文字サイズ、を入力する。いずれも、選択されたテキストの現在の状態が表示される。これらの情報は、テキストを構成する基本文字列の文字列属性のデータとして再保存される。
【0569】
以上の操作を終えたら、ユーザーは、テキスト修正パネル4501の「設定」ボタンをボタン選択し、テキストを作成するために必要な情報(テキストをレイアウトするための情報、文字列データ、文字データの印刷属性)を確定する。
【0570】
なお、テキスト修正パネル4501では、修正対象として選択されたテキストの、テキスト高さ(テキストレイアウト矩形の高さ)、テキスト幅(テキストレイアウト矩形の幅さ)、各行のテキスト行高さ(テキスト行レイアウト矩形の高さ)、各行のテキスト行幅(テキスト行レイアウト矩形の幅)を、テキストレイアウト矩形情報表示エリア4508に表示し、ユーザーのテキスト修正作業を助ける。また、テキスト修正パネル4501で、各データを修正した後に、「再計算」ボタンをボタン選択すれば、修正されたデータに従って、テキストレイアウト矩形情報の再計算を行なう。
【0571】
また、テキスト修正パネル4501では、修正対象として選択されたテキストが、点レイアウトされたのか、矩形レイアウトされたのかを、レイアウト情報表示エリア4509に表示する。この際、レイアウトの対象となっている、点または矩形は、作画エリア62上で、赤色などでハイライト表示されて、識別できるようになっている。
【0572】
この後の、ステップS3104からステップS3110までの処理は、新規作成の場合と同様であるが、ステップS3107のレイアウト位置を指定する処理は、レイアウト位置の変更がなければ不要である。
【0573】
文字列入力パネル4001で入力された文字列データは、必要に応じて、その書体情報やカーニング情報とともに、外部記憶装置33に登録しておいて、呼び出すことができる。
【0574】
まず、文字列データの登録方法について説明する。
【0575】
「テキスト」コマンドのコマンドメニュー67の項目には、前述した「新規」「修正」の他に、「登録」メニューがあるので、これをボタン選択する。
【0576】
次に、登録するテキストを選択するように、ガイダンスエリア68に表示されるので、ユーザーは、この指示に従って、登録したいテキストを要素選択する。
【0577】
すると、図46に示すような、文字列登録パネル4601が表示される。登録名称一覧4602には、すでに登録されている文字列データの登録名称がリスト表示される。登録名称一覧4602の項目から1つをマウス12で選択すると、選択された登録名称が、登録名称入力エリア4603に、登録時に入力したメモがメモ入力エリア4604に表示される。
【0578】
すでに登録されている登録名称の文字列データの内容を変更したい場合には、ここで「登録」ボタンをボタン選択すればよい。この際、メモ入力エリア4604の内容を変更することはもちろん可能である。
【0579】
または、新しい登録名称で文字列データを登録したい場合には、登録名称一覧4602の項目から1つをマウス12で選択してから、登録名称、メモを編集して、「登録」ボタンをボタン選択するか、直接、登録名称入力エリア4603に登録名称を、メモ入力エリア4604にメモを、キーボード11から入力してから、「登録」ボタンをボタン選択すればよい。
【0580】
文字列データを登録する際には、文字列情報の他に、書体情報、カーニング情報も同時に保存される。
【0581】
一方、登録された文字列データの呼出方法は以下の通りである。
【0582】
第1の方法は、テキスト新規作成パネル3901の「文字列呼出」ボタンをボタン選択する方法である。すると、図42に示すような、文字列呼出パネル4201が表示される。第1の方法では、新規に作成される文字列データが、登録文字列のデータとなる。
【0583】
第2の方法は、文字列入力パネル4001の「文字列呼出」ボタンをボタン選択する方法である。するとやはり、図42に示すような、文字列呼出パネル4201が表示される。第2の方法では、「文字列」入力エリアのカーソル位置に、登録文字列のデータが挿入される。
【0584】
呼び出す文字列データの登録名称は、登録名称一覧4202にすでに登録されている文字列データの登録名称の一覧がリスト表示されるので、その中から1つをマウス12で選択するか、登録名称入力エリア4203に直接、キーボード11から登録名称を入力する。登録名称一覧4202で選択した登録名称は、登録名称入力エリア4203に反映され、逆に、登録名称入力エリア4203で入力した登録名称は、それがすでに登録されていれば、登録名称一覧4202の該当する項目が選択状態になる。
【0585】
登録されていない登録名称を登録名称入力エリア4203に表示した状態で、「確認」ボタン、または「呼出」ボタンをボタン選択すると、再入力を促す警告画面が表示されるので、ユーザーは、再度、呼び出す文字列データの登録名称を入力する必要がある。
【0586】
文字列データを呼び出す際には、文字列情報とともに、書体情報、カーニング情報も同時に呼び出すかどうかを選択することができる。
【0587】
例えば、図65のテキストを呼び出す場合を例にとって説明する。このテキストは、前述したように、制御文字列で表現すると、以下の通りである。
・「¥t<24@AB¥h^1.33@CD¥DEF@
EF¥t>24¥tv24@G
¥lv48@
¥t>24@HJ」
【0588】
文字列データのみを呼び出す場合には、書体情報呼出選択ボタン4204で「なし」を、カーニング情報呼出選択ボタン4205で「なし」を、ボタン選択すればよい。
【0589】
この場合に呼び出される情報を、制御文字列で表現すると、以下の通りである。
・「ABCD
EFG
HJ」
【0590】
文字列データに書体情報を付加して呼び出す場合には、書体情報呼出選択ボタン4204で「あり」を、カーニング情報呼出選択ボタン4205で「なし」を、ボタン選択すればよい。
【0591】
この場合に呼び出される情報を、制御文字列で表現すると、以下の通りである。
・「AB¥h^1.33@CD¥DEF@
EFG
HJ」
【0592】
文字列データにカーニング情報を付加して呼び出す場合には、書体情報呼出選択ボタン4204で「なし」を、カーニング情報呼出選択ボタン4205で「あり」を、ボタン選択すればよい。
【0593】
この場合に呼び出される情報を、制御文字列で表現すると、以下の通りである。
・「¥t<24@ABCD
EF¥t>24¥tv24@G
¥lv48@
¥t>24@HJ」
【0594】
文字列データに書体情報およびカーニング情報を付加して呼び出す場合には、書体情報呼出選択ボタン4204で「あり」を、カーニング情報呼出選択ボタン4205で「あり」を、ボタン選択すればよい。
【0595】
この場合に呼び出される情報を、制御文字列で表現すると、以下の通りで、登録文字列データと同じである。
・「¥t<24@AB¥h^1.33@CD¥DEF@
EF¥t>24¥tv24@G
¥lv48@
¥t>24@HJ」
【0596】
ここで、文字列呼出パネル4201の「確認」ボタンをボタン選択すると、図43に示すような、呼出内容確認パネル4301が表示されるので、ユーザーは、呼び出される文字列データの内容を確認できる。
【0597】
文字列呼出パネル4201の「呼出」ボタンをボタン選択すると、第1の方法、第2の方法のそれぞれに従って、登録文字列の制御文字列データが、文字列入力パネル4001の「文字列」入力エリアに呼び出される。
【0598】
字間カーニングの設定方法については前述した通りだが、各書体名称ごとに、あらかじめ、字間カーニング量を設定しておくことができる。これを、自動カーニングと呼ぶことにする。自動カーニングには、特定の2文字の間の字間カーニング量を設定する場合と、特定の文字の前または後の字間カーニング量を設定する場合と、がある。
【0599】
自動カーニングを有効にするには、テキスト新規作成パネル3901の自動カーニング選択ボタン3905、または、テキスト修正パネル4501の自動カーニング選択ボタン4505で、「あり」をボタン選択すればよい。この情報は、テキストデータの、自動カーニングフラグとして保存される。
【0600】
自動カーニングのデータは、あらかじめ、自動カーニングデータファイルとして、外部記憶装置33に、書体名称ごとに作成しておく。
【0601】
特定の2文字の間の字間カーニング量を設定するフォーマットは次の通りである。指定の方法には、2つの方法があり、文字を「”」〔”〕でくくって指定する方法と、文字コードを「<」「>」でくくって指定する方法がある。
【0602】
文字で指定する方法は、以下のフォーマットで表される。「A」は、文字で指定する方法を示すキーワードで、文字の前後関係も考慮して、ある書体の、”char1”と”char2”の間の字間カーニングパラメータを、
X方向にdxp、Y方向にdypに設定することを表している。
【0603】
A ”char1” ”char2” dxp dyp
【0604】
例えば、ある書体の文字「A」と文字「B」の間の字間カーニングパラメータを、X方向に−2、Y方向に+2に設定する場合は、次のように表現される。
【0605】
A ”A” ”B” −2 2
【0606】
文字コードで指定する方法は、以下のフォーマットで表される。「C」は、文字コードで指定する方法を示すキーワードで、文字の前後関係も考慮して、ある書体の、<code1>と<code2>の間の字間カーニングパラメータを、X方向にdxp、Y方向にdypに設定することを表している。
【0607】
C <code1> <code2> dxp dyp
【0608】
例えば、ある書体の文字コードdaと文字コードdbの間の字間カーニングパラメータを、X方向に4、Y方向に0に設定する場合は、次のように表現される。
【0609】
C <da> <db> 4 0
【0610】
特定の文字の前または後の字間カーニング量を設定するフォーマットは次の通りである。すなわち、特定の2文字の間の字間カーニング量を設定するフォーマットで、特定の文字の前の字間カーニングを設定する場合には、
”char1”の代わりに””を指定するか、<code1>の代わりに<00>を指定すればよい。また、特定の文字の後の字間カーニングを設定する場合には、”char2”の代わりに””を指定するか、<code2>の代わりに<00>を指定すればよい。
【0611】
A ”” ”char2” dxp dyp
C <00> <code2> dxp dyp
A ”char1” ”” dxp dyp
C <code1> <00> dxp dyp
【0612】
例えば、ある書体のハイフン「−」(文字コードは、例えば95)の前の字間カーニングパラメータを、X方向に−10、Y方向に+20に設定する場合は、次のどちらかの表現をすればよい。
【0613】
A ”” ”−” −10 20
C <00> <95> −10 20
【0614】
また例えば、ある書体のハイフン「−」(文字コードは、例えば95)の後の字間カーニングパラメータを、X方向に−10、Y方向に−20に設定する場合は、次のどちらかの表現をすればよい。
【0615】
A ”−” ”” −10 −20
C <95> <00> −10 −20
【0616】
自動カーニングデータは、文字列入力パネル4001の「文字列」入力エリアで、ユーザーが前述の方法で入力した字間カーニングのデータに加算して評価される。従って、基本文字列レイアウト情報データの左右字間カーニングdhx、上下字間カーニングdhyのデータには、自動カーニングを加味した値が設定される。
【0617】
また、自動カーニングデータの制御フォーマットは「文字列」入力エリアには表示されない。これは、自動カーニングには、ユーザーによらず一定の適切な字間カーニングを与えるという目的があるので、ユーザーが意図なしに容易に変更できないようにするためである。
【0618】
〔印刷データの印刷〕
次に、作成された印刷データを、レーザープリンタ51やイメージセッター52などの印刷装置で印刷する手順を説明する。
【0619】
印刷データが、例えば、版下として使用される場合、レーザープリンタ51は、印刷データを、校正刷り(印刷データの確認のための出力)し、また、印刷ログファイルの内容を出力するのに用いられ、イメージセッター52は、印刷データを、清刷り(正式な版下となる高精度な出力)するのに用いられる。
【0620】
本実施形態に係る情報処理装置においては、図形データおよび文字データを、印刷時の出力形態と同じ表示形態のイメージで、表示装置41へ表示する制御を行なう、いわゆるWYSIWYGの機能を有している、
しかしながら、WYSIWYGの機能を有していても、表示装置41は、100DPI程度の解像度しかないため、細かいレイアウトの確認や、ミスのチェックなどを行なうためには、500DPI程度といった、表示装置41よりはるかに高い解像度を持つ、レーザープリンタ51で、印刷データを印刷しなければならない。
【0621】
もちろん、直接、イメージセッター52で印刷データを印刷して、これらの確認を行なうことも可能ではあるが、イメージセッター52は、解像度が3000DPI程度と、極めて高いために、専用の用紙を使用しなければならず、また、印刷のコストがかかり、出力のスピードが遅いなどの欠点があるので、最終的にイメージセッター52で印刷するような場合でも、あらかじめ、レーザープリンタ51で印刷データを印刷して、出力形態の確認を行なっておくのが普通である。
【0622】
(実施形態による効果)
以上説明したように、本発明に係る第1の実施形態によれば、次のような効果がある。
【0623】
まず、版下などの印刷データとして、図形データや文字データ、特に文字データを印刷する場合に、容易に正確なレイアウトを実現することができる。
【0624】
また、単なる図形データや文字データだけではなく、イラストやシンボルといったようなグループデータも、容易に取り扱うことができる。
【0625】
また、レーザープリンターやイメージセッター等で印刷する場合に、その印刷装置の種類によって、校正刷りや清刷りなどの適切な印刷方法を選択することができる。
【0626】
【発明の効果】
以上説明したように、本発明によれば、ユーザーの作業効率を低下させることなく、しかも、精度の高い印刷データ、特に、文字データを含む印刷データを正確かつ容易に作成することが可能になるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施形態の情報処理装置のハードウエア構成を示すブロック図である。
【図2】WYSIWYGの機能を説明する図である。
【図3】本実施形態のプログラムのメインパネルを示す図である。
【図4】各要素の特徴点を示す図である。
【図5】交点指定による位置の指定の例を示す図である。
【図6】線上点指定による位置の指定の例を示す図である。
【図7】印刷データファイルの例を示す図である。
【図8】シンボルの例を示す図である。
【図9】基本図形を印刷データとしてレイアウトする手順を説明するフローチャートである。
【図10】図形データに印刷属性を付加した例を示す図である。
【図11】図形データ印刷属性編集パネルを示す図である。
【図12】線ピッチ編集パネル(二点鎖線の例)を示す図である。
【図13】要素のグループ化とシンボルの登録をする手順を説明するフローチャートである。
【図14】矩形領域指定によって対象となる要素が選択された様子を示す図である。
【図15】任意領域指定によって対象となる要素が選択された様子を示す図である。
【図16】シンボルの輪郭情報を抽出した結果の例を示す図である。
【図17】座標データの量子化を説明する図である。
【図18】一時的に要素を拡大表示して輪郭情報を抽出する手順を説明するフローチャートである。
【図19】幾何学的な手法で輪郭情報を抽出する手順を説明するフローチャートである。
【図20】線分列の輪郭情報を幾何学的な手法で抽出した例を示す図である。
【図21】グループ化された要素とその外接矩形を示す図である。
【図22】矩形の特徴点を示す図である。
【図23】任意矩形をグループ図形のレイアウト基準矩形に設定した例を示す図である。
【図24】構成要素の外接矩形をグループ図形のレイアウト基準矩形に設定した例を示す図である。
【図25】シンボルの呼び出しとレイアウトをする手順を説明するフローチャートである。
【図26】シンボルレイアウトパネルを示す図である。
【図27】シンボル形状一覧パネルを示す図である。
【図28】シンボル内容確認パネルを示す図である。
【図29】シンボルを点レイアウトした例を示す図である。
【図30】シンボルを矩形レイアウトした例を示す図である。
【図31】テキストを印刷データとしてレイアウトする手順を説明するフローチャートである。
【図32】文字高さ比率を計算する手順を説明するフローチャートである。
【図33】テキストを点レイアウトする際のデータ作成方法を説明するフローチャートである。
【図34】テキストの点レイアウトで全体長さおよび高さ優先を指定した際のデータ作成方法を説明するフローチャートである。
【図35】高さ優先指定なしの場合のデータ作成方法を説明するフローチャートである。
【図36】高さ優先指定あり、最大テキスト行幅≦全体長さの場合のデータ作成方法を説明するフローチャートである。
【図37】高さ優先指定あり、最大テキスト行幅>全体長さの場合のデータ作成方法を説明するフローチャートである。
【図38】テキストを矩形レイアウトする際のデータ作成方法を説明するフローチャートである。
【図39】テキスト新規作成パネルを示す図である。
【図40】文字列入力パネルを示す図である。
【図41】カーニング入力パネルを示す図である。
【図42】文字列呼出パネルを示す図である。
【図43】呼出内容確認パネルを示す図である。
【図44】書体情報変更パネルを示す図である。
【図45】テキスト修正パネルを示す図である。
【図46】文字列登録パネルを示す図である。
【図47】文字列属性のベース角を説明する図である。
【図48】文字列属性の文字方向を説明する図である。
【図49】文字列属性の斜体角を説明する図である。
【図50】文字列属性の横反転フラグと縦反転フラグを説明する図である。
【図51】テキストの例を示す図である。
【図52】文字に関する用語を説明する図である。
【図53】サイドベアリングが負である文字の例を示す図である。
【図54】平体率および長体率を説明する図である。
【図55】文字データに印刷属性を付加した例を示す図である。
【図56】テキストの輪郭情報を抽出した結果の例を示す図である。
【図57】テキストのレイアウト基準矩形とレイアウト基準位置を示す図である。
【図58】テキストを点レイアウトした場合の例を示す図である。
【図59】テキストの字間を設定した場合の例を示す図である。
【図60】テキストの行間を設定した場合の例を示す図である。
【図61】テキストの字間カーニングを設定した場合の例を示す図である。
【図62】テキストの行間カーニングを設定した場合の例を示す図である。
【図63】テキストの書体情報を変更した場合の例を示す図である。
【図64】テキストの書体情報を初期値に復帰した場合の例を示す図である。
【図65】テキストを点レイアウトした際の作成データの例を示す図である。
【図66】テキスト行幅の計算結果の例を示す図である。
【図67】テキストレイアウト矩形の計算結果の例を示す図である。
【図68】テキストの点レイアウトで全体長さおよび高さ優先を指定した場合の例を示す図である。
【図69】テキストを矩形レイアウトした際の作成データの例を示す図である。
【符号の説明】
11 キーボード
12 マウス
21 中央処理装置(CPU)
22 システムバス
31 読出専用記憶装置(ROM)
32 読出書込記憶装置(RAM)
33 外部記憶装置
41 表示装置
51 レーザープリンタ
52 イメージセッター
53 レーザーマーカー
61 メインパネル
62 作画エリア
63 マウスポインタ
64 文字入力エリア
65 ボタン
66 汎用ボタン
67 コマンドメニュー
68 ガイダンスエリア
71 パネル
72 ボタン
Claims (5)
- 書体情報と文字サイズ情報とを含む印刷属性データおよび文字列データを有するテキスト印刷データを記憶する記憶手段と、
前記テキスト印刷データに基づき出力されるテキスト画像の輪郭を抽出する輪郭抽出手段と、
前記抽出された輪郭から外接矩形を計算する計算手段と、
前記外接矩形の幅と基準文字高さとからレイアウト基準矩形を設定するレイアウト基準矩形設定手段と、
レイアウト位置を設定するレイアウト位置設定手段と、
前記レイアウト基準矩形と前記レイアウト位置とに基づき、前記テキスト画像をレイアウトするレイアウト手段とを有し、
前記基準文字高さは、前記書体情報に対応する基準文字高さ比率と前記文字サイズ情報とから算出されることを特徴とする情報処理装置。 - さらに、前記記憶手段に記憶されたテキスト印刷データに応じたテキスト画像を表示する表示手段を有し、
前記輪郭抽出手段は、前記表示手段の解像度を有する前記表示されるテキスト画像の画像データを用いて、前記輪郭を抽出することを特徴とする請求項1記載の情報処理装置。 - さらに、前記記憶手段に記憶されたテキスト印刷データに応じたテキスト画像を表示する表示手段を有し、
前記輪郭抽出手段は、前記表示されるテキスト画像の画像データに対して、前記表示手段の解像度と印刷手段の解像度とに応じた拡大率を用いて拡大し、該拡大された画像データを用いて前記輪郭を抽出することを特徴とする請求項1記載の情報処理装置。 - 記憶手段、輪郭抽出手段、計算手段、前記レイアウト基準矩形設定手段、レイアウト位置設定手段、レイアウト手段とを有する情報処理装置で実施される情報処理方法であって、
前記記憶手段が、書体情報と文字サイズ情報とを含む印刷属性データおよび文字列データを有するテキスト印刷データを記憶し、
前記輪郭抽出手段が、前記テキスト印刷データに基づき出力されるテキスト画像の輪郭を抽出し、
前記計算手段が、前記抽出された輪郭から外接矩形を計算し、
前記レイアウト基準矩形設定手段が、前記外接矩形の幅と基準文字高さとからレイアウト基準矩形を設定し、
前記レイアウト位置設定手段が、レイアウト位置を設定し、
前記レイアウト手段が、前記レイアウト基準矩形と前記レイアウト位置とに基づき、前記テキスト画像をレイアウトする情報処理方法であり、
前記基準文字高さは、前記書体情報に対応する基準文字高さ比率と前記文字サイズ情報とから算出されることを特徴とする情報処理方法。 - 請求項1乃至3のいずれかに記載の情報処理装置をコンピュータを用いて実現するためのプログラムがコンピュータが読み取り可能に記録された記録媒体。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03128699A JP4174117B2 (ja) | 1999-02-09 | 1999-02-09 | 情報処理装置及び情報処理方法並びに記憶媒体 |
US09/257,064 US6975425B1 (en) | 1998-02-26 | 1999-02-25 | Information processing apparatus and information processing method |
EP99301426A EP0952554A3 (en) | 1998-02-26 | 1999-02-25 | Information processing apparatus and information processing method |
US11/006,728 US7301672B2 (en) | 1998-02-26 | 2004-12-08 | Information processing apparatus and information processing method |
US11/691,010 US7786995B2 (en) | 1998-02-26 | 2007-03-26 | Information processing apparatus and information processing method for determining character layout |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03128699A JP4174117B2 (ja) | 1999-02-09 | 1999-02-09 | 情報処理装置及び情報処理方法並びに記憶媒体 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2000231556A JP2000231556A (ja) | 2000-08-22 |
JP2000231556A5 JP2000231556A5 (ja) | 2006-04-27 |
JP4174117B2 true JP4174117B2 (ja) | 2008-10-29 |
Family
ID=12327076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03128699A Expired - Fee Related JP4174117B2 (ja) | 1998-02-26 | 1999-02-09 | 情報処理装置及び情報処理方法並びに記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4174117B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009105674A (ja) * | 2007-10-23 | 2009-05-14 | Canon Inc | 画像処理装置及び方法 |
JP4577420B2 (ja) | 2008-07-10 | 2010-11-10 | 富士ゼロックス株式会社 | 画像処理装置及び画像処理プログラム |
JP4577419B2 (ja) | 2008-07-10 | 2010-11-10 | 富士ゼロックス株式会社 | 画像処理装置及び画像処理プログラム |
JP5601027B2 (ja) * | 2010-05-24 | 2014-10-08 | 富士ゼロックス株式会社 | 画像処理装置及び画像処理プログラム |
-
1999
- 1999-02-09 JP JP03128699A patent/JP4174117B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000231556A (ja) | 2000-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7301672B2 (en) | Information processing apparatus and information processing method | |
JP4174117B2 (ja) | 情報処理装置及び情報処理方法並びに記憶媒体 | |
JPH09134158A (ja) | 文字処理方法及び処理装置 | |
JP4124851B2 (ja) | 情報処理装置及び情報処理方法並びに記憶媒体 | |
JP4136123B2 (ja) | 情報処理装置及び方法及び記憶媒体 | |
André et al. | Dynamic optical scaling and variable-sized characters | |
JP4006113B2 (ja) | 図形処理方法及び装置 | |
JP4458640B2 (ja) | 描画指示装置及びその描画指示方法、並びにコンピュータ読み取り可能な記憶媒体 | |
JP4100779B2 (ja) | 情報処理装置及び方法並びに記憶媒体 | |
JP4434451B2 (ja) | 描画装置およびその描画方法 | |
JPS6091479A (ja) | 帳票デザインシステム | |
KR100223496B1 (ko) | 문자 발생 장치 및 방법 | |
US11170156B1 (en) | Drop word tool for digital typesetting | |
JPH03156668A (ja) | 文書作成装置 | |
JP2635311B2 (ja) | 文書処理装置 | |
Sherif et al. | Parameterized Arabic font development for AlQalam | |
JP3008555B2 (ja) | ベクトルフォント出力装置 | |
KR20040075466A (ko) | 구조적 단계를 통한 한글 폰트를 만드는 방법 | |
JP3432895B2 (ja) | 組版処理装置、組版領域分割方法、文書流し込み順位決定方法及び分割領域補正方法 | |
JP2856604B2 (ja) | 文字処理装置 | |
JP2000242260A (ja) | フォントの形成方法 | |
JP3067137B2 (ja) | 直線描画機能を備えた情報処理装置 | |
JPH05173537A (ja) | ニューラルネットワークによる文字フォント生成方法 | |
JPH06933A (ja) | 電子組版方法 | |
JPH06231222A (ja) | 図形処理装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060203 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060203 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080527 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080710 |
|
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: 20080805 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080818 |
|
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: 20110822 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120822 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120822 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130822 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |