JPH04340590A - 文字フォント出力装置 - Google Patents

文字フォント出力装置

Info

Publication number
JPH04340590A
JPH04340590A JP3139486A JP13948691A JPH04340590A JP H04340590 A JPH04340590 A JP H04340590A JP 3139486 A JP3139486 A JP 3139486A JP 13948691 A JP13948691 A JP 13948691A JP H04340590 A JPH04340590 A JP H04340590A
Authority
JP
Japan
Prior art keywords
character
parts
data
font
base
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.)
Pending
Application number
JP3139486A
Other languages
English (en)
Inventor
Shin Mikuni
伸 三国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP3139486A priority Critical patent/JPH04340590A/ja
Publication of JPH04340590A publication Critical patent/JPH04340590A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Dot-Matrix Printers And Others (AREA)
  • Record Information Processing For Printing (AREA)
  • Document Processing Apparatus (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は日本語ワードプロセッ
サ、パーソナルコンピュータ等において、高品質フォン
トを出力する文字フォント出力装置に関する。
【0002】
【従来の技術】従来、文書処理(日本語処理)を行うデ
ータ処理装置には、文書データを高品質に表示・印字出
力する文字フォント出力装置が備えられている。この文
字フォント出力装置には例えば文字を構成する輪郭部分
を座標列や関数列で表現したフォントデータが個々の文
字に対応させてフォントメモリに記憶されている。
【0003】
【発明が解決しようとする課題】このように従来におい
ては、文字輪郭を表現したフォントデータを各種文字に
対応させて個別に持たせていた為、1書体当り2〜3M
バイトという大容量を必要とし、データ量が膨大なもの
となるという欠点があった。そこで、文字の構成要素を
階層的にパーツ化してそれらを組み合せて文字を構築で
きると共に文字自体も他の文字のパーツとして利用でき
れば、データ量を大幅に削減可能となることは明らかで
ある。この発明の課題は、文字の構成要素を階層的にパ
ーツ化してそれらを組み合せて文字を構築できると共に
文字自体も他の文字のパーツとして利用できるようにす
ることである。
【0004】
【課題を解決するための手段】この発明の手段は次の通
りである。文字情報記憶手段1(図1の機能ブロック図
を参照、以下同じ)は一画の線または点などの文字構成
要素であるベースパーツと、文字構成要素を組み合せて
部首等の共通部分を構成する上位パーツと、ベースパー
ツ、上位パーツを字形に応じて組み合せた文字フォント
と、ベースパーツ、上位パーツ、文字フォントとを字形
に応じて組み合せたその他の文字フォントとを記憶する
。なお、文字フォントは1または2以上のベースパーツ
のみから成るもの、ベースパーツと上位パーツとを組み
合せて成るもの、1または2以上の上位パーツを組み合
せて成るもの、ベースパーツおよび(または)上位パー
ツと文字フォントとから成るもの等、その組み合せ状態
は字形に応じたものとなるが、他の文字フォントを組み
込む場合、文字フォント自体もベースパーツや上位パー
ツと同様に文字の構成部品として取り扱われる。展開手
段2は文字情報記憶手段1から出力対象の文字フォント
を構成するベースパーツ、上位パーツ、文字フォントを
読み出して出力用のドットデータに展開する。出力手段
3は展開手段2によって展開されたドットデータを1つ
のフォントとして出力する表示装置や印字装置等である
【0005】
【作用】この発明の手段の作用は次の通りである。いま
、出力対象の文字が「仁」の場合、この文字「仁」は上
位パーツ“にんべん”とベースパーツである横線とから
成り、また出力対象文字「完」は上位パーツ“う冠”と
他の文字フォント「元」とから成り、更に出力対象文字
「一」はベースパーツ「一」のみから成る。このように
出力対象の文字に応じて展開手段2はその文字フォント
を構成するベースパーツ、上位パーツ、他の文字フォン
トを文字情報記憶手段1から読み出して展開する。する
と、出力手段3は展開手段2によって展開されたドット
データを1つのフォントとして出力する。したがって、
文字の構成要素を階層的にパーツ化してそれらを組み合
せて文字を構築できると共に文字自体も他の文字のパー
ツとして利用することができる。
【0006】
【実施例】以下、図2〜図21を参照して一実施例を説
明する。先ず、文字フォント等のデータ構造について説
明しておく。図2は文字構成要素を部品化した各種のパ
ーツを組み立てることにより文字フォント「完」が構築
される様子を示したもので、この文字フォントは大別す
ると、“へん”、“つくり”、“かんむり”等の部首を
構成する上位パーツである“う冠”と他の文字フォント
である「元」の文字をパーツとして組み合せたものとす
ることができる。上位パーツおよび文字フォントは複数
のベースパーツ等を字形に応じて組み合せて成るもので
あり、ベースパーツは一画の線、または点などの文字構
成要素を表わし、それ以上分解できない基本的なパーツ
で、それ自体で1つのアウトラインフォントを構成する
が、“う冠”(上位パーツ)は4つのベースパーツから
構成され、文字フォント「元」も複数のベースパーツ(
図示せず)から構成されている。
【0007】図3はパーツのデータ構造を説明する為の
図で、ベースパーツは骨格データ、肉付けデータ、両端
形状データ等から成る。骨格データは文字構成要素の中
心を通る線分を表わすもので、その種類として本実施例
においては(1)、骨格が直線で表わされたもの。 (2)、骨格がベジェール曲線で表わされたもの。 (3)、骨格が楕円の一部で表わされたものが存在する
。なお、骨格がないものとして記号などの小円が存在し
、これも骨格データの一部として取り扱う。肉付けデー
タは骨格からの距離を2次多項式(Ax2+Bx+c)
で表わしたものであり、骨格データ、太さデータに基づ
いて骨格からの太さを2次多項式に基づいて順次算出し
て輪郭データが作成される。両端の形状データは筆おき
ウロコ、円による終端等の線端形状を定義するものであ
り、線端形状を指定するだけで指定された種類の線端部
品が自動的に生成されると共に、この線端部品が接続さ
れる線の太さに応じて線端部品の大きさが自動的に制御
される。
【0008】文字フォントのデータ構造は上位パーツあ
るいはベースパーツのパーツ番号(もしくは他の文字認
識番号)、配置位置、拡大率等から成り、例えば図3に
示す如く文字フォント「三」はベースパーツ「一」を骨
格の長さおよび配置位置を変えて3回読み出すことによ
り構成することができる。なお、上位パーツのデータ構
造も文字フォントのデータ構造と同様にパーツ番号、配
置位置、拡大率等から成る。
【0009】図4はベースパーツの骨格を横1/2倍、
縦1.4倍に変形させたもので、文字フォントや上位パ
ーツ内にはこのような倍率が定義されているが、この場
合、ベースパーツの太さや両端形状は変らず、ベースパ
ーツの縦横の形だけが変化するようになる。なお、図5
は上述した図4と同様の倍率を“斜めの払い”に対して
かけたものである。この様な斜め線の場合にも骨格の縦
横に倍率をかけてやるだけでよい。なお、この場合、太
さは常に骨格に対して直角方向の距離として定義されて
いる為、疑似的に回転させた様な斜め線が得られること
になる。
【0010】図6は文字フォント出力装置の全体構成を
示したブロック図である。文字フォント出力装置はパー
ツ配置装置11、ドットデータ変換装置12、ビットマ
ップ印刷バッファ13、プリンタ14を有する構成で、
パーツ配置装置11は印字指令と共に印字対象の文字コ
ードを受け取ると、動作を開始し、その文字を構成する
ベースパーツを順次抽出してそのパーツ番号、配置位置
、倍率データをドットデータ変換装置12に与える。 ドットデータ変換装置12はこのパーツ番号に対応する
ベースパーツを呼び出し、その骨格に倍率をかけて骨格
データを変更し、これに肉付けデータ等を参照すること
によって輪郭データを生成し、ビットマップ印刷バッフ
ァ13上の指定配置位置に展開する動作を1ベースパー
ツ毎に実行する。なお、輪郭データの塗りつぶし処理は
輪郭データを生成したのちにドットデータ変換装置12
によって実行される。プリンタ14はビットマップ印刷
バッファ13内のドットデータを1ライン毎に印字出力
するサーマルプリンタである。
【0011】図7はパーツ配置装置11の構成を示した
ブロック図である。印刷コードレジスタ11−1は印刷
対象の文字コードがセットされるもので、この文字コー
ドは検索コードレジスタ11−2に渡される。検索コー
ドレジスタ11−2は印刷コードレジスタ11−1から
の文字コードあるいは主制御部11−3からのパーツコ
ード(または文字コード)が格納されるもので、この文
字コードやパーツコードに基づいてライブラリアドレス
インデックス11−4はフォントデータライブラリ11
−5の中の当該文字やパーツに対応する先頭アドレスを
索引する。フォントデータライブラリ11−5は各種の
文字、上位パーツに対応してそのデータ構造表を格納す
るもので、例えば文字「仁」に対応するデータ構造表の
他、この文字を構成する部首“にんべん”に対応するデ
ータ構造表を有する。ライブラリアドレスポインタ11
−6はライブラリアドレスインデックス11−4を参照
することによって求められた先頭アドレスがセットされ
るポインタで、この値にしたがってフォントデータライ
ブラリ11−5の該当するデータ構造表が指定される。 パーツポインタ11−7はライブラリアドレスポインタ
11−6の値によって指定されたデータ構造表の定義内
容をその先頭からパーツ単位で順次指定するポインタで
、この値にしたがってフォントデータライブラリ11−
5から読み出されたデータは主制御部11−3に取り込
まれる。ポインタスタックメモリ11−8はライブラリ
アドレスポインタ11−6、パーツポインタ11−7の
値を必要に応じて退避するメモリである。主制御部11
−3はフォントデータライブラリ11−5から読み出さ
れたデータが文字あるいは上位パーツであればその文字
コードあるいはパーツコードを検索コードレジスタ11
−2にセットするが、ベースパーツであれば、このベー
スパーツに関するデータ(パーツ番号、配置位置、倍率
)をドットデータ変換装置12に与える。
【0012】図8はドットデータ変換装置12の構成を
示したブロック図である。このドットデータ変換装置1
2は検索コードレジスタ12−1、ライブラリアドレス
インデックス12−2、ライブラリアドレスポインタ1
2−3、パーツポインタ12−4、ベースパーツデータ
ライブラリ12−5、主制御部12−6を有する構成で
、検索コードレジスタ12−1にはパーツ配置装置11
からパーツ番号が検索コードとして入力され、主制御部
12−6にはパーツ配置装置11から配置位置、倍率が
入力されている。ライブラリアドレスインデックス12
−2は検索コードレジスタ12−1にセットされたパー
ツコードに基づいてベースパーツデータライブラリ12
−5の中の該当パーツに対応する先頭アドレスを索引す
る。ベースパーツデータライブラリ12−5は各種のベ
ースパーツに対応してそのデータ構造表を格納するもの
で、ライブラリアドレスポインタ12−3の値にしたが
って該当するデータ構造表が指定され、また、パーツポ
インタ12−4の値にしたがってこの指定データ構造表
の定義内容がその先頭から骨格単位で順次指定されて読
み出される。これによってベースパーツデータライブラ
リ12−5から読み出されたデータは主制御部12−6
に送られる。主制御部12−6はベースパーツデータと
パーツ配置装置11からの倍率データに基づいて輪郭デ
ータを発生し、ビットマップ印刷バッファ13に展開す
ると共に、パーツポインタ12−4の値をインクリメン
トする。
【0013】図9はフォントデータライブラリ11−5
に格納されているデータ構造表を示したものである。こ
のデータ構造表は各種の文字、上位パーツ毎に設けられ
1つの文字あるいは上位パーツに対応するデータ構造表
はNブロック(N=1、2……)構成で、1ブロックは
6バイト、したがってNブロック×6バイトにヘッダー
(2バイト)を加算してデータ量となっている。ヘッダ
ー変数(16ビット)は文字、上位パーツを構成するブ
ロック数(7ビット)等を定義するもので、例えば、文
字「仁」は“にんべん”(上位パーツ)と2本の横線(
ベースパーツ)とから成る3ブロック構成、“にんべん
”は2種類のベースパーツ、つまり斜めの払いと縦線と
から成る2ブロック構成で、そのブロック数がヘッダー
変数として定義されている。
【0014】各ブロックデータは第1変数、第2変数…
…第5変数とから成る。第1変数の詳細は図9の表外に
示す如く、第1変数(16ビット)のうち最上位ビット
が“0”のとき他の文字フォントを呼び出すべきことを
定義し、残りの15ビットが文字識別コードとなり、こ
の残り15ビットで日本語のすべての文字コードを表わ
すことができる。第1変数の最上位ビットが“1”のと
きパーツを呼び出すべきことを定義し、上位2ビット目
が“0”のとき“へん”や“つくり”などの上位パーツ
を、“1”のときには通常の1画パーツ(ベースパーツ
)を呼び出すべきことを定義する。なお、ベースパーツ
はせいぜい200種類位である為、ビット数は十分であ
る。第2変数、第3変数はパーツの配置位置を定義し、
第2変数はX座標値、第3変数はY座標値を示す。 第4変数、第5変数はパーツの倍率を定義し、第4変数
はX軸方向、第5変数はY軸方向を示す。
【0015】図10はベースパーツデータライブラリ1
2−5に格納されているデータ構造表を示したものであ
る。ここで、ベースパーツはそれ以上分解することがで
きない最小の文字構成要素で、1骨格の他、2以上の骨
格から成るものも存在する。この為、データ構造表は骨
格数に対応してNブロック(N=1、2……)構成で、
1ブロックは4〜14バイト、したがってNブロック×
4〜14バイトにヘッダー(2バイト)を加算したデー
タ量となっている。ヘッダー変数(16ビット)のうち
7ビットでブロック数(骨格数)が定義されている。
【0016】各ブロックデータは骨格の形状によってそ
のデータ量が異なる。即ち骨格が直線の場合には第1変
数から第10変数までのデータ量となり、ベジェール曲
線の場合には第1変数から第14変数までのデータ量、
楕円の一部の場合には第1変数から第12変数までのデ
ータ量、更に小円の場合には第1変数から第4変数まで
のデータ量となる。第1変数(8ビット)はその下位2
ビットで骨格の形状(種類)を定義し、その値が“00
”のときには直線、“01”のときにはベジェール曲線
、“10”のときには楕円の一部、“11”のときには
小円を示す。第1変数において他のビット、つまり上位
6ビットは線端の形状を定義し、この6ビットのうち上
位3ビットは開始端の形状、他の3ビットは終了端の形
状を示す。なお、第1変数の線端形状は図10の表外に
示す如く、“000”が直線カット、“001”が半円
カット、……“111”が縦線終了の筆おきを示す。 このように線端形状は予め8種類用意されており、その
具体的形状は図11に示す。
【0017】第2変数〜第4変数は骨格形状が直線、ベ
ジェール曲線、楕円の一部の場合、太さを表わす肉付け
データを示し、小円の場合にはその大きさを示す。骨格
が直線の場合、第5変数〜第8変数は骨格データで線分
の開始点、終了点の位置座標を示す。骨格がベジェール
曲線の場合、第5変数〜第12変数は骨格データで、線
分の開始点、第1制御点、第2制御点、終了点の位置座
標を示す。骨格が楕円の一部の場合、第5変数〜第10
変数は楕円の中心座標、半径、開始角度、終了角度を示
す。骨格が直線の場合の第9変数、第10変数、またベ
ジェール曲線の場合の第13変数、第14変数、更に楕
円の一部の場合の第11変数、第12変数はそれぞれ開
始点の直線カット補正値、終了点の直線カット補正値を
示し、上位2ビットを除く残りの6ビットで補正値(+
31〜−32)が定義されている。この補正値は線端を
直線でカットした場合にカット面をどれだけ傾けるかを
示すもので、このカット面に沿って線端部品が付加され
る。他方、上位2ビットは書体変更用の制御データで、
この制御データは明朝体をゴシック体に変更するときに
用いられる。
【0018】次に、本実施例の動作を図12〜図21を
参照して説明する。いま、「仁」という文字が印刷対象
としてパーツ配置装置11の印刷コードレジスタ11−
1に入力されたものとする。ここで、図12は「仁」と
いう文字を本実施例のパーツの持ち方にしたがって組み
立てたもので、「仁」は1つの上位パーツと2つのベー
スパーツに対応してそのパーツ識別コード、配置位置、
倍率を定義するデータによって成り立っている。
【0019】先ず、「仁」の文字コードが検索コードと
して検索コードレジスタ11−2にセットされると、図
13のフローチャートにしたがった動作が実行開始され
る。即ち、検索コードレジスタ11−2に「仁」の文字
コードがセットされると、フォントデータライブラリ1
1−5に格納されている「仁」という文字フォントのデ
ータ構造表を指定する先頭アドレスがライブラリアドレ
スインデックス11−4から索引されてライブラリアド
レスポインタ11−6にセットされる(ステップA1)
。次いでパーツポインタ11−7に初期値「1」がセッ
トされ、最初のパーツデータを指定する(ステップA2
)。これによって「仁」の第1パーツである“にんべん
”がフォントデータライブラリ11−5から読み出され
る(ステップA3)。すると、主制御部11−3はフォ
ントデータライブラリ11−5から読み出されたパーツ
データが他の文字フォントまたは上位パーツか否かを調
べるが(ステップA4)、この場合、第1パーツは上位
パーツであるので、ステップA5に進み、ライブラリア
ドレスポインタ11−6およびパーツポインタ11−7
の値をポインタスタックメモリ11−8に退避しておく
。次いで、主制御部11−3が“にんべん”を示すコー
ドを検索コードレジスタ11−2にセットすると、この
コードに対応してフォントデータライブラリ11−5に
格納されているデータ構造表を指定する先頭アドレスが
ライブラリアドレスインデックス11−4から索引され
てライブラリアドレスポインタ11−6にセットされる
(ステップA1)。次いで、このデータ構造表の第1パ
ーツを指定する為にパーツポインタ11−7に初期値「
1」をセットする(ステップA2)。ここで、“にんべ
ん”は斜めの線と縦の線の2本の線で構成されているの
で、フォントデータライブラリ11−5からは先ずその
第1パーツである斜め線が読み出される(ステップA3
)。この斜め線はそれ以上分解することができないベー
スパーツであるのでそのことがステップA4で検出され
てステップA6に進み、このベースパーツに関するデー
タ(パーツ識別コード、配置位置、倍率)をドットデー
タ変換装置12に送出する。
【0020】ここで、ドットデータ変換装置12は図1
4のフローチャートにしたがって動作する。いま、検索
コードレジスタ12−1に“にんべん”を構成する斜め
線のパーツ識別コードがセットされると、このコードに
対応してベースパーツデータライブラリ12−5に格納
されているデータ構造表を指定する先頭アドレスがライ
ブラリアドレスインデックス12−2から索引されてラ
イブラリアドレスポインタ12−3にセットされる(ス
テップB1)。次いで、このベースパーツの第1骨格を
指定する為にパーツポインタ12−4に初期値「1」を
セットする(ステップB2)。なお、この“にんべん”
の斜め線は1つの骨格から成り立っているが、ベースパ
ーツの中には一画でも2以上の骨格から成るものも存在
する為、先ず、その第1骨格を指定する。これによって
ベースパーツデータライブラリ12−5から第1骨格に
関するベースパーツデータを受け取ると(ステップB3
)、主制御部12−6は上述した書体変更用の制御デー
タに基づいてショートベクトルの発生有無をチェックす
る(ステップB4)。なお、後述するがショートベクト
ルの発生を必要としないのは書体を明朝体からゴシック
体に変更するときであり、通常はショートベクトルの発
生を必要とする為、ステップB5に進み、ショートベク
トルを発生してビットマップ印刷バッファ13に書き込
む処理を行う。
【0021】図15はこのショートベクトルへの変換・
バッファ書込処理を示したフローチャートである。なお
、ベースパーツは骨格データ、肉付けデータ、両端形状
データとから成る為、それに応じて3つのアウトライン
データに変換される。即ち、第1は骨格のまわりに肉付
けされた形の輪郭(本体)であり、第2はこの本体の開
始点の線端形状を示す部分、第3は本体の終了点の線端
形状を示す部分である。このようにベースパーツは3つ
のアウトラインデータをそれぞれ個別に自動作成してそ
れを重ね合せることによりビットマップ印刷バッファ1
3上に展開させるが、その際、アウトラインデータの発
生は先ず本体のデータを発生させた後、線端部分のアウ
トラインを発生させる。いま、“にんべん”は図11に
示す如く、本体(斜め線)、線端部分(斜め線開始の筆
おき)とから成る為、先ず骨格形状およびその変数を参
照し(ステップC1)、それを用いて輪郭ベクトルデー
タを発生し(ステップC2)、ビットマップ印刷バッフ
ァ13に書き込む(ステップC3)。次いで、線端形状
および変数を参照し(ステップC4)、それを用いて輪
郭ベクトルデータを発生し(ステップC5)、ビットマ
ップ印刷バッファ13に書き込む(ステップC6)。
【0022】図16は“にんべん”を構成する斜め線、
図17はその開始筆おき部品をビットマップ印刷バッフ
ァ13上に展開する様子を示したものである。先ず、図
16に示す様に骨格としてS0からS1までをベジェー
ル曲線、太さを表わす式として2次式が用いられる。即
ち、S0を支点(媒介変数i=0)、S1を終点(媒介
変数i=1)とし、その間はV=(VX、VY)として
表わされる。なお、VX、VYはiの関数で、VX=P
i3+qi2+ri+s、VY=ti3+ui2+wi
+zである。そして、iについて骨格と直角方向にAi
2+Bi+Cだけ移動させた点が輪郭となる。なお、A
、B、Cは図10に示す如く、変数2=A、変数3=B
、変数4=Cの値である。ここで、各iについて骨格の
両側の点をX、Yをすると、
【数式】
で表わすことができる。そこでiを、骨格のベジェール
及びAの値に適合した間隔で変化させつつX、Yを求め
ることにより、輪郭データ(ショートベクトル形式)が
求められることになる。なお、感じには、縦の直線や横
の直線が多く含まれており、この場合、縦の直線であれ
ばp=q=r=0かつt=u=0、横の直線であればt
=u=w=0かつp=q=0であり、又はベジェール制
御点はない。更に、その場合は余程品質にこだわった物
でない限りA=B=0である。よって、線の太さが明確
にcで表された直線を引けば良いことになるので、上記
計算式を実行する必要もなくなる。さらに何本も横線が
ある時で、小さく縮小した時などに従来は座標計算の量
子化誤差で線の太さがまちまちになることがあったが今
回はどの直線も同じ様に太さが縮小される為、同じ太さ
が明示されることとなり、太さのバラつきを防ぐことが
でき、かつ直線をそのまま繰り返し書くだけであるので
従来の方式(エッジ検出→塗り潰し)よりもはるかに早
く描画することが可能となる。
【0023】次に、線端部品の展開であるが、線端部品
についてはその種類が示してあるだけであるので自動的
に発生せねばならない。図17の例では、図10の表外
に示した如く「010」型の部品を付ける場合である。 なお、ベースパーツのデータ構造表において、第1変数
の上位6ビットが線端情報、その他が本体情報となる為
、図17の場合、開始端が斜め線開始の筆おき、終了端
は太さが0の為直線カット(半円カットでも良い)、骨
格がベジェールなので第1変数は「01000001」
となる。このうち上位6ビットと、第13変数の内容か
らP1’とP2’の値を算出する。なお、P1、P2は
、ベジェール開始点なので、媒介変数=0のときのX、
Yそれぞれの関数の媒介変数による微分値から中心線の
垂直方向を求め、その方向に開始端の太さ分を中心線開
始端から移動することで求められる。P1’、P2’は
媒介変数の値を第13変数の値分−(P1’)、+(P
2’)して計算すれば求めることができる。次にP1’
とP2’をそれぞれ開始点、終了点とする直線で、太さ
が0から暫時太くなり、終了点において半円に接続され
る輪郭ベクトルと定義することで、「010」型の線端
部品は第1変数が「00000100」となるベースパ
ーツとして取り扱うことができ、ビットマップ印刷バッ
ファ13上にその輪郭データを展開することが可能とな
る。
【0024】これによってビットマップ印刷バッファ1
3には“にんべん”を構成する筆おき付きの斜め線が展
開される。これによってショートベクトルの発生・バッ
ファ書込処理(図14のステップB5)が終えると、ス
テップB6に進み、パーツポインタ12−4に「1」を
加算してその値を更新するが、“にんべん”の斜め線は
1つの骨格から成る為、ステップB7で骨格終了が検出
されてドットデータ変換装置12はその斜め線に対する
展開動作を終了する。
【0025】次に、パーツ配置装置11においては、図
13のステップA7に進み、パーツポインタ11−7に
「1」を加算してその値を更新する。これによってパー
ツポインタ11−7の値は「2」となるが、“にんべん
”は2つのパーツから成る為、ステップA8でパーツ終
了は検出されず、ステップA3に戻り、“にんべん”の
2番目のパーツである縦線を読み込む。この場合、縦線
はベースパーツである為、ステップA4からステップA
6に進み、この縦線に関するベースパーツデータをドッ
トデータ変換装置12に送る。これによって、ドットデ
ータ変換装置12においては縦線のアウトラインフォン
トを発生してビットマップ印刷バッファ13上に展開す
る。次いで、ステップA7に進みパーツポインタ11−
7の値を更新すると、その値は“にんべん”のパーツ数
「2」を越える為、ステップA8でパーツ終了が検出さ
れる。
【0026】このようにして“にんべん”をビットマッ
プ印刷バッファ13上に展開し終ったら、ポインタスタ
ックメモリ11−8にデータが退避されているか否かを
調べるが(ステップA9)、いま「仁」の文字に関して
その第1パーツを指定するポインタ値がポインタスタッ
クメモリ11−8に退避されているので、それをポイン
タスタックメモリ11−8から戻し(ステップA10)
、その値を更新する(ステップA7)。これによって、
「仁」の第2パーツが指定される。この場合、第2パー
ツは上下2本の横線のうち上の横線で、この横線もベー
スパーツである為、その輪郭データがビットマップ印刷
バッファ13上に展開される。続いて、第3パーツが指
定され、下の横線がビットマップ印刷バッファ13上に
展開されるが、この場合、同じベースパーツが骨格の長
さおよび配置位置を変えてビットマップ印刷バッファ1
3上に展開される。
【0027】以上の如く、「仁」という文字フォントは
1つの上位パーツと2つのベースパーツに対応してその
パーツ識別コード、配置位置、倍率を定義するデータだ
けで成り立っている為、従来の様に文字の輪郭を座標列
で持つものに比べデータ量を大幅に削減することができ
る。
【0028】図18は「i」という文字フォントを3つ
横に並べることにより他の文字「iii」が構成される
ことを示している。同様に図2で示した「完」は“う冠
”と他の文字フォント「元」を利用して構成することが
できる。このように本実施例においては、他の文字フォ
ントもパーツとして利用可能な為、全体的にデータ量の
大幅な削減が可能となる。
【0029】一方、文字を構成する線の中心である骨格
と、この骨格に肉付けされる骨格からの太さを示すデー
タを別々に持ち、かつ2次式で太さを表わすようにした
為、太さは一定となり、縮少した場合の横線、縦線の太
さのバラツキはなく、従来のドットフォントに比べて高
品質フォントを高速に出力することができる。更に、骨
格、太さを独立のデータとする為に、太さを変えずに形
を変えたり、形を変えずに太さを変えることもできる。
【0030】他方、文字構成要素であるベースパーツを
線本体と線端部品の形で記憶し、線端部品はその形状を
定義するだけで自動的に生成されると共にこの線端部品
の大きさはそれが接続される線本体の太さに応じたもの
となる為、線端部品をその種類、大きさに応じて用意し
ておかなくても良く、全体的にデータ量の削除が可能と
なる。また、すべてが輪郭ベクトルの為、パーツ化が容
易となる。次に、明朝体をゴシック体に変更する場合に
ついて説明する。
【0031】図19は明朝体の具体例を示し、この明朝
体を基本書体とし、その太さを一定に線の両端を円にす
ることで図20に示す様なゴシック体を得ることができ
る。この場合、上述したベースパーツデータライブラリ
12−5において、その第1変数の下位2ビットが「1
1」でない場合、つまり、骨格の形状が直線、ベジェー
ル曲線、楕円の一部の場合に、第2変数および第3変数
を“0”に、第4変数を一定値に、しかも第1変数の線
端形状「010」、「110」などを「001」に置き
換えることでゴシック体を得ることができるが、図20
に示すゴシック体では文字「あ」の縦線で筆をおくとこ
ろや横線で跳ねのところで不自然な線(図中ハッチング
を付して示す)が発生している。
【0032】このような線を削除するには上述した書体
変更用の制御データにその旨を設定しておく。即ち、図
10において、TS(開始点の直線カット補正値)、T
E(終了点の直線カット補正値)を定義する変数の上位
2ビットは書体変更用の制御データであり、このデータ
を用いてショートベクトルの発生不要を宣言しておけば
、図14のステップB4でそのことが検出されてステッ
プB5のショートベクトル発生処理はスキップされる。 したがって、「あ」の横線が3つの骨格、つまり第1骨
格……筆おきの部分、第2骨格……横線の部分、第3骨
格……跳ねの部分から成れば、その第3骨格についてシ
ョートベクトルの発生不要を設定しておく。同様に「あ
」の縦線が2つの骨格、つまり第1骨格……筆おきの部
分、第2骨格……縦線の部分から成れば、その第1骨格
についてショートベクトルの発生不要を設定しておく。 これによって図21に示す様に不自然な線が無いバラン
スの取れたゴシック体文字を得ることができる。即ち、
ある1つの書体を基本とし、その輪郭データを加工する
ことにより他の書体文字を得る場合、元の書体が持つ不
自然な線を消すことができるので、バランスのとれた文
字を印刷することができる。
【0033】なお、上記実施例では太さを表わすのに2
次式を用いたがこれは3次以上の多項式でも良く、その
場合、より多彩な太さの変化が可能となる。
【0034】
【発明の効果】この発明によれば、文字の構成要素を階
層的にパーツ化してそれらを組み合せて文字を構築でき
ると共に文字自体も他の文字のパーツとして利用するこ
とができるので、従来のように文字輪郭の座標列等でデ
ータを持つものに比べ、データ量大幅に削除することが
可能となる。その結果、小型文字情報機器の出力装置等
に有効である。
【図面の簡単な説明】
【図1】この発明の機能ブロック図。
【図2】実施例において各種パーツを組み立てることに
より文字「完」を構築する具体例を示した図。
【図3】ベースパーツ、上位パーツのデータ構造の概要
を示した図。
【図4】ベースパーツの骨格を変形させた例を示した図
【図5】図4と同様にベースパーツの骨格を変形させた
他の例を示した図。
【図6】実施例における文字フォント出力装置の全体構
成を示したブロック図。
【図7】図6で示したパーツ配置装置11のブロック構
成図。
【図8】図6で示したドットデータ変換装置12のブロ
ック構成図。
【図9】図7で示したフォントデータライブラリ11−
5に格納されているデータ構造表を示した図。
【図10】図8で示したベースパーツデータライブラリ
12−5に格納されているデータ構造表を示した図。
【図11】図8で示した線端形状を具体的に示す図。
【図12】「仁」という文字がパーツの組み立てによっ
て構築される様子を示した図。
【図13】パーツ配置装置11の動作を示したフローチ
ャート。
【図14】ドットデータ変換装置12の動作を示したフ
ローチャート。
【図15】図14で示したショートベクトル発生・バッ
ファ書込処理の詳細を示すフローチャート。
【図16】斜め線を展開する場合を例に挙げて図15の
処理内容を説明する為の図。
【図17】斜め線の開始筆おき部品を展開する場合を例
に挙げて図15の処理内容を説明する為の図。
【図18】文字自体をパーツとして他の文字が構築され
る場合の具体例を示した図。
【図19】明朝体の文字形態を具体的に示した図。
【図20】図19の明朝体文字をゴシック体文字に変更
した例を示した図。
【図21】図20で示したゴシック体文字から不自然な
線を消去したゴシック体の出力例を示した図。
【符号の説明】
11  パーツ配置装置 11−3、12−6  主制御部 11−4、12−2  ライブラリアドレスインデック
ス11−5  フォントデータライブラリ12  ドッ
トデータ変換装置 12−5  ベースパーツデータライブラリ13  ビ
ットマップ印刷バッファ 14  プリンタ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】一画の線、点などの文字構成要素であるベ
    ースパーツと、文字構成要素を組み合せて部首等の共通
    部分を構成する上位パーツと、ベースパーツ、上位パー
    ツを字形に応じて組み合せた文字フォントと、ベースパ
    ーツ、上位パーツ、文字フォントとを字形に応じて組み
    合せた他の文字フォントとを記憶する文字情報記憶手段
    と、この文字情報記憶手段から出力対象文字を構成する
    ベースパーツ、上位パーツ、文字フォントを読み出して
    出力用のドットデータに展開する展開手段と、この展開
    手段によって展開されたドットデータを1つのフォント
    として出力する出力手段と、を具備したことを特徴とす
    る文字フォント出力装置。
JP3139486A 1991-05-16 1991-05-16 文字フォント出力装置 Pending JPH04340590A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3139486A JPH04340590A (ja) 1991-05-16 1991-05-16 文字フォント出力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3139486A JPH04340590A (ja) 1991-05-16 1991-05-16 文字フォント出力装置

Publications (1)

Publication Number Publication Date
JPH04340590A true JPH04340590A (ja) 1992-11-26

Family

ID=15246376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3139486A Pending JPH04340590A (ja) 1991-05-16 1991-05-16 文字フォント出力装置

Country Status (1)

Country Link
JP (1) JPH04340590A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0981546A (ja) * 1995-09-07 1997-03-28 Kako Kagi Kaihatsu Kofun Yugenkoshi テキスト文字を有するドキュメントを符号化する方法及びその方法により符号化されたドキュメントを伝送する方法
US6011561A (en) * 1996-07-30 2000-01-04 Sharp Kabushiki Kaisha Apparatus for generating character pattern according to contour information based on corrected stroke information

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0981546A (ja) * 1995-09-07 1997-03-28 Kako Kagi Kaihatsu Kofun Yugenkoshi テキスト文字を有するドキュメントを符号化する方法及びその方法により符号化されたドキュメントを伝送する方法
US6011561A (en) * 1996-07-30 2000-01-04 Sharp Kabushiki Kaisha Apparatus for generating character pattern according to contour information based on corrected stroke information
CN1111838C (zh) * 1996-07-30 2003-06-18 夏普株式会社 字符生成器

Similar Documents

Publication Publication Date Title
KR0157245B1 (ko) 문자 합성 방법 및 장치
JPS6165290A (ja) ベクトル文字フオントの作成装置
JP3145509B2 (ja) 文字生成方法及びその装置
JPH0481892A (ja) アウトラインデータ処理装置
JPH04148475A (ja) 文書処理方法及び装置
JP3037854B2 (ja) 文字生成方法及びその装置
JPH09134158A (ja) 文字処理方法及び処理装置
JPH04340590A (ja) 文字フォント出力装置
JPH04340591A (ja) ベクトルフォント出力装置
JPH04340592A (ja) ベクトルフォント出力装置
JPH04340159A (ja) 文字フォント出力装置
Mergler et al. One approach to computer assisted letter design
KR100227178B1 (ko) 문자 생성 장치
JPS62211692A (ja) 異なるサイズ文字の作成方式
JPH0934434A (ja) 文字生成装置
JP6976524B2 (ja) 印刷用データの生成方法及び印刷用データを生成するためのソフトウェア
JP3146771B2 (ja) フォントラスタライズ装置およびその方法
JP3490703B2 (ja) アウトラインフォント情報に基づく文字処理方法及びその方法をコンピュータシステムに実行させるためのコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体
JP3066060B2 (ja) ベゼー曲線区間の多角形近似方式
JPH01272460A (ja) 文字の発生方法及び装置
JP2995311B2 (ja) 外字フォント作成装置
JP2785929B2 (ja) 文字処理装置
JP3084817B2 (ja) 文字出力装置
JP2861201B2 (ja) データ変換装置
JP3055306B2 (ja) データ出力装置