JPH0934882A - 文字出力装置 - Google Patents

文字出力装置

Info

Publication number
JPH0934882A
JPH0934882A JP7181619A JP18161995A JPH0934882A JP H0934882 A JPH0934882 A JP H0934882A JP 7181619 A JP7181619 A JP 7181619A JP 18161995 A JP18161995 A JP 18161995A JP H0934882 A JPH0934882 A JP H0934882A
Authority
JP
Japan
Prior art keywords
font
glyph
character
character code
data
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
JP7181619A
Other languages
English (en)
Inventor
Hirosuke Kurashige
宏輔 倉繁
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP7181619A priority Critical patent/JPH0934882A/ja
Publication of JPH0934882A publication Critical patent/JPH0934882A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Document Processing Apparatus (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 【課題】文字コードに対応するグリフがフォント内に存
在しない場合に、適正な代替えグリフを用いて文字コー
ドに対応する文字情報を出力することができる文字出力
装置を提供すること。 【解決手段】複数のフォントデータ16bのうちの所定
のフォントデータから指定文字コードに対応するグリフ
を検索して出力する際に、各フォントデータの文字コー
ドとグリフ名の対応関係を記憶するエンコーディングテ
ーブル16cを設けておき、指定フォントデータが文字
コードに対応するグリフを有しない場合に、エンコーデ
ィングテーブル16cを用いて文字コードに対応するグ
リフ名を取り出し、該グリフ名に基づいて他のフォント
データから代替グリフを検索する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、文字コードに対応
する文字字形をフォントから取り出して出力する文字出
力装置に関し、特にユーザが指定したフォント内に文字
コードに対応する文字字形がない場合に、該文字コード
に対応する文字字形を他のフォントから取り出して出力
する文字出力装置に関する。
【0002】
【従来の技術】従来、プリンタ等の文字出力装置を用い
て文書の文字出力を行う場合には、文書ファイル等から
順次文字コードを読み込み、該文字コードに対応する文
字の字形(以下、「グリフ(glyph)」と言う。)を用
いて文字出力が行われる。
【0003】例えば、ネットワークに接続されたプリン
トサーバの場合には、ユーザがワークステーション等を
用いて作成した文書ファイルをプリントサーバが受け付
けると、該プリントサーバは文書ファイル内の文字コー
ドに対応するグリフをフォントから取り出してページメ
モリ上に展開し、逐次ページメモリ上のデータをプリン
タに出力する。
【0004】このように、文字出力装置では、文字コー
ドと1対1に対応するグリフを有するフォントを予め備
えておき、文字コードを受け取る度に該当するグリフを
フォントから取り出して文字出力を行うため、文字出力
装置が適正な文字出力を行うためには、フォント内に各
文字コードに対応するグリフが存在する必要がある。
【0005】ところが、昨今のネットワークの進展に伴
い、文書を印字するプリントサーバが、文書を作成した
ワークステーション等と同じフォントを装備するとは限
らないため、文字コードに対応するグリフが存在しない
状況が生じ得る。
【0006】このため、特開平1−140193号公報
には、入力部で指定された書体の文字図形が記憶部に存
在しない場合に、出力可能な書体の文字図形の有無を調
査し、この調査結果に従って入力部で指定された書体を
他の書体の文字図形に変更するように構成した書体自動
変換装置が開示されている。
【0007】すなわち、この先行技術は、文字出力装置
が書体ごとに複数のフォントを有することに着目し、指
定された文字コードに対応するグリフが指定された書体
のフォント内に存在しなければ、他の書体のフォントを
文字コードで検索して代替グリフを選択するものであ
る。
【0008】また、特開平5−346777号公報に
は、主として使用する文字書体を主書体に登録するとと
もに主書体に準じて使用する文字書体を補助書体に登録
しておき、指定された文字の文字コードに対応する書体
データが主書体の書体データ中に存在しない場合には、
当該文字コードに対応する書体データを補助書体の書体
データから抽出して文字処理を行うよう構成した文字書
体処理方法が開示されている。
【0009】すなわち、この先行技術は、指定された文
字コードに対応するグリフが主書体になければ補助書体
を文字コードで検索して対応するグリフを取り出すとい
うものである。
【0010】このように、上記2つの先行技術は、文字
コードに対応するグリフがフォント内に存在しない場合
に、他のフォントを文字コードで検索して代替グリフを
取り出すという点で共通する。
【0011】
【発明が解決しようとする課題】しかしながら、文字コ
ードに対応するグリフがフォント内に存在しない場合
に、他のフォントを該文字コードで検索すると、誤った
グリフで文字出力がなされるおそれがある。
【0012】例えば、英字及び数字のみについて考えた
場合には、8ビットからなる「EBCDICコード」と
7ビットからなる「ASCIIコード」では、同じ文字
コードであっても意味するグリフが異なるため、上記先
行技術によるグリフの代替えを行うと意図しない文字出
力を招く結果となる。
【0013】また、JISの第2水準に含まれない漢字
及び特殊文字については、文字出力装置を提供するメー
カーごとに独自の文字コードを割り当てることが多いた
め、メーカーが異なる文字出力装置を用いて文字出力を
行う場合には、意図しないグリフを用いた文字出力を招
く結果となる。
【0014】このように、フォント内のグリフに対する
文字コードの割り振り、すなわちエンコーディングがフ
ォントごとに異なるために、上記先行技術のいずれを用
いたとしても作成した文書に含まれる文字情報を正確に
文字出力できないという問題があった。
【0015】そこで、本発明では、上記問題点を解決し
て、文字コードに対応するグリフがフォント内に存在し
ない場合に、適正な代替えグリフを用いて文字コードに
対応する文字情報を出力できる文字出力装置を提供する
ことを目的とする。
【0016】
【課題を解決するための手段】上記目的を達成するた
め、第1の発明は、指定フォントの指定文字コードに対
応する文字字形を出力する文字出力装置において、複数
種類のフォントを記憶するフォント記憶手段と、前記指
定フォントの指定文字コードに対応する文字字形を、前
記フォント記憶手段から検索する第1の検索手段と、前
記指定フォントの指定文字コードに対応する文字字形に
代替可能な字形の文字字形を、前記フォント記憶手段か
ら検索する第2の検索手段と、前記第1の検索手段によ
り文字字形が検索された場合には、該第1の検索手段に
より検索された文字字形を出力し、検索されない場合に
は、前記第2の検索手段により検索された文字字形を出
力する出力手段とを備えたことを特徴とする。
【0017】また、第2の発明は、フォントと、文字コ
ードと、該フォントの該文字コードに対応する文字字形
の字形を特定する識別情報とを対応づけて記憶する対応
関係記憶手段をさらに備え、前記第2の検索手段は、前
記対応関係記憶手段を参照して、前記指定フォントの指
定文字コードに対応づけられた文字字形の字形を特定す
る識別情報を得るとともに、該識別情報と所定の関係に
ある識別情報に対応づけられたフォントと文字コードを
特定し、該特定されたフォントと文字コードに対応する
文字字形を、代替可能な字形の文字字形として前記フォ
ント記憶手段から検索することを特徴とする。
【0018】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して説明する。なお、ここでは本発明をプ
リント装置に適用した場合を説明する。
【0019】図1は、本発明に係るプリント装置の構成
を示すブロック図である。
【0020】図1に示すプリント装置は、指定フォント
内に文字コードに対応するグリフが存在しない場合であ
っても、他のフォントから適切な代替グリフを選択して
代替印字を行うことができるよう構成している。
【0021】具体的には、指定フォント内に文字コード
に対応するグリフが存在しないことが判明した時点で、
印字しようとしたグリフがいかなるものであるかをグリ
フ名を用いて特定するとともに、このグリフ名を持つ他
のフォントが存在する場合には、該フォント内の当該グ
リフ名に対応するグリフを用いて印字を行う。
【0022】なお、このグリフ名とは、文字の字形を表
すグリフを特定するための識別情報であり、例えば’
★’のグリフに対しては”blackstar”というグリフ名
を付与している。
【0023】このように、グリフ名を用いて他のフォン
トを検索することにした理由は、文字コードに基づいて
他のフォントを検索することにすると、他のフォントと
指定フォントとのエンコーディングルールが異なる場合
に誤った代替グリフが選択されるおそれがあるからで
る。
【0024】なお、本実施の形態では、グリフ名を用い
て代替グリフを特定する場合について説明するが、グリ
フを一意に特定できる他の識別情報をグリフ名に代えて
使用することもできる。
【0025】次に、図1に示すプリント装置の構成につ
いて説明する。
【0026】図1に示すように、このプリント装置は、
入力部10と、入力処理部11と、コマンド処理部12
と、フォント処理部13と、エンコーディング処理部1
4と、描画処理部15と、フォント記憶部16と、描画
記憶部17と、出力制御部18と、出力部19とからな
る。
【0027】入力部10は、図示しない文書作成装置が
作成した文書データを印刷コマンドとともに印刷要求と
して受け付け、入力処理部11に出力するものである。
このため、例えばこのプリント装置をネットワークに接
続する場合には、入力部10はネットワークインターフ
ェース機能を有する。
【0028】入力処理部11は、入力部10が受け付け
た印刷要求をコマンドに分解してコマンド処理部12に
出力する処理部である。
【0029】コマンド処理部12は、入力処理部11が
出力したコマンドを処理する処理部であり、該コマンド
の内容に応じた処理依頼をフォント処理部13、描画処
理部15又は出力制御部18に対して行う。
【0030】例えば、フォントを用いた文字印字を行う
場合には、フォント処理部13にフォントの検索を依頼
するとともに、描画処理部15に対して描画の依頼を行
う。
【0031】フォント処理部13は、フォント管理テー
ブル16aを用いた指定フォントの検索や、文字コード
に対応するグリフの抽出等を行う処理部であり、フォン
ト検索部13a及びグリフ抽出部13bからなる。
【0032】フォント検索部13aは、印刷要求のコマ
ンドに含まれる指定フォントをフォント管理テーブル1
6aを用いて検索する処理部であり、該フォントのアド
レスを示すポインタを検索結果としてグリフ抽出部13
bに出力する。
【0033】グリフ抽出部13bは、フォント検索部1
3aが検索したフォントから文字コードに対応するグリ
フを抽出して、描画データ記憶部17aに出力する処理
部である。
【0034】ただし、当該フォント中に文字コードに対
応するグリフが存在しない場合には、このグリフ抽出部
13bは、エンコーディング処理部14に対して代替グ
リフの特定を依頼し、該代替グリフのフォント名及び文
字コードをエンコーディング処理部14から受け取った
ならば、該代替グリフを描画データ記憶部17aに出力
する。
【0035】エンコーディング処理部14は、グリフ抽
出部13bから代替グリフの特定を指示された際に、指
定フォントに対応するエンコーディングテーブルを調べ
て文字コードに対応するグリフ名を特定した後、他のエ
ンコーディングテーブルを用いて他のフォント内に当該
グリフ名が存在するか否かを確認し、当該グリフ名が存
在する場合にはそのフォント名と該グリフ名に対応する
文字コードをグリフ抽出部13bに出力する。
【0036】このエンコーディング処理部14は、エン
コーディングテーブル検索部14aと、代替グリフ特定
部14bとからなる。
【0037】エンコーディングテーブル検索部14a
は、フォント管理テーブル16aを検索して指定フォン
トに対応するエンコーディングテーブル14bのポイン
タを代替グリフ特定部14bに出力する処理部である。
【0038】代替グリフ特定部14bは、エンコーディ
ングテーブル検索部14aが検索したエンコーディング
テーブル14bを用いて文字コードに対応するグリフ名
を特定するとともに、該グリフ名を有する他のフォント
を調べて、他のフォント内に存在する当該グリフ名に対
応する文字コード及びフォント名をグリフ抽出部13b
に出力する処理部である。
【0039】描画処理部15は、コマンド処理部12の
描画依頼に基づいて描画を行う処理部であり、フォント
を用いた文字印字を行う場合には、描画データ記憶部1
7aに格納した描画データをページバッファ17bの所
定の位置に描画する。
【0040】フォント記憶部16は、フォント管理テー
ブル16aと、フォントのグリフデータを記憶する複数
のフォントデータ16bと、文字コードとグリフ名との
対応関係を記憶する複数のエンコーディングテーブル1
6cとを記憶する記憶部である。なお、このフォント管
理テーブル16a、フォントデータ16b及びエンコー
ディングテーブル16cの詳細については後述する。
【0041】描画記憶部17は、グリフ抽出部13bが
フォントデータ16bから読み出したグリフデータを記
憶する描画データ記憶部17aと、ページイメージを記
憶するページバッファ17bとを有する記憶部である。
【0042】出力制御部18は、コマンド処理部12の
処理依頼に基づいて出力部19を制御する制御部であ
り、例えばページ出力を行う場合にはパージバッファ1
7bに記憶したデータを読み出して出力部19に転送す
る。
【0043】出力部19は、入力文書を印字する出力デ
バイスであり、ここでは文書をページ単位で出力するペ
ージプリンタを用いている。
【0044】このように、このプリンタ装置では、指定
フォント内に文字コードに対応するグリフが存在しない
場合であっても、該文字コードに対応するグリフ名を検
索し、該グリフ名に対応する新たな文字コードを検索し
て印字するよう構成しているため、適切な代替グリフを
用いた印字を行うことができる。
【0045】次に、図1に示す上記フォント管理テーブ
ル16a、フォントデータ16b及びエンコーディング
テーブル16cの構造について図2〜図4を用いて説明
する。
【0046】図2は、図1に示すフォント管理テーブル
16aの構造を示す図である。
【0047】図2に示すように、このフォント管理テー
ブル16aは、フォントデータ16bに関する情報を示
すフォント情報20と、エンコーディングテーブル16
cに関する情報を示すエンコーディング情報21とを有
する。
【0048】なお、ここでは、各フォントデータ及び各
エンコーディングテーブルを一意に特定する整数からな
る一連番号により管理するとともに、フォント管理テー
ブル16aの各行が1ワードからなるものとする。
【0049】フォント情報20は、最小フォントID
(fmin)20a及び最大フォントID(fmax)
20bと、各フォントデータへのポインタ20c〜20
eとからなり、またエンコーディング情報21は、最小
エンコーディングID(emin)21a及び最大エン
コーディングID(emax)21bと、各フォントデ
ータへのポインタ20c〜20eとからなる。
【0050】ただし、フォントIDに対応するフォント
データが搭載されていない場合には、ポインタに代え
て’0’を格納する。
【0051】ここで、各ポインタ20c〜20e及び2
1c〜21eは、フォントデータ16b及びエンコーデ
ィングテーブル16cが格納されるフォント記憶部16
内でのアドレスを示す。
【0052】このため、フォントIDが’i’のフォン
トデータを検索するためには、フォント管理テーブル1
6aの(3+i−fmin)ワード目をアクセスして’
0’か否かを確認することにより、フォントIDに対応
するフォントデータが搭載されているか否かを容易に確
認することができる。
【0053】同様に、エンコーディングIDが’j’の
エンコーディングテーブルを検索するためには、フォン
ト管理テーブル16aの(6+fmax−fmin+j
−emin)ワード目をアクセスしてエンコーディング
IDに対応するエンコーディングテーブルのアドレスを
確認することができる。
【0054】なお、エンコーディングIDに対応するエ
ンコーディングテーブルが存在しない場合には、フォン
トIDの場合と同様にポインタに代えて’0’を格納す
る。
【0055】このように、上記フォント管理テーブル1
6aを用いることにより、フォントID又はエンコーデ
ィングIDに対応するフォントデータ及びエンコーディ
ングテーブルのアドレスを把握できるとともに、フォン
トIDに対応するフォントデータが存在するか否かを容
易に確認することができる。
【0056】次に、図1に示すフォントデータ16bの
データ構造について説明する。
【0057】図3は、図1に示すフォントデータ16b
のデータ構造を示す図である。
【0058】図3に示すように、フォントデータ16b
は、フォントID30a、エンコーディングID30
b、最小文字コード(cmin)30c及び最大文字コ
ード(cmax)30dと、各グリフデータに対するポ
インタ31と、各グリフデータ32とからなる。
【0059】このように、フォントデータ16bは、各
文字コードに対応するグリフデータをフォントごとに記
憶したデータであり、該フォントデータ16aにはエン
コーディングID30bが含まれる。
【0060】このため、指定フォントのフォントIDが
判明すると、該指定フォントのエンコーディングIDが
特定でき、またこのエンコーディングIDを用いて図2
に示すフォント管理テーブル16aを参照すれば、エン
コーディングテーブル16cのアドレスを入手すること
ができる。
【0061】なお、フォントID30a、エンコーディ
ングID30b、最小文字コード(cmin)30c、
最大文字コード(cmax)30dはそれぞれ1ワード
で構成するとともに、5ワード目以降に各グリフデータ
に対するポインタ31をそれぞれ1ワードで格納してい
る。
【0062】このため、文字コード’m’に対応するグ
リフデータを得るためには、フォントデータ16bの
(5+m−cmin)ワード目に格納されるポインタに
位置するグリフデータを読み出せば良いことが分かる。
【0063】ここで、文字コードに対応するグリフデー
タがフォントデータ16b内に存在しない場合には、’
0’がポインタとして格納される。
【0064】したがって、このポインタの値が’0’で
あるか否かを確認することにより、文字コードに対応す
るグリフデータが存在するか否かを容易に確認すること
ができる。
【0065】次に、図1に示すエンコーディングテーブ
ル16cの構造について説明する。
【0066】図4は、図1に示すエンコーディングテー
ブル16cの構造を示す図である。
【0067】図4に示すように、このエンコーディング
テーブル16cは、エンコーディングID40a、最小
文字コード(cmin)40b及び最大文字コード(c
max)40cと、各グリフ名41とからなる。
【0068】ここで、エンコーディングID40a、c
min40b及びcmax40cを1ワードとし、また
各グリフ名41a〜41cをwワードとすると、文字コ
ード’n’のグリフ名を得るためには、(4+n×w−
cmin)ワード目のグリフ名を参照すれば良い。
【0069】また、グリフの割り当てがない文字コード
については、グリフ名に代えて’0’が格納される。
【0070】なお、各グリフ名41a〜41cをグリフ
名へのポインタに代えて、他の記憶場所にグリフ名を格
納することも可能である。
【0071】このように、このエンコーディングテーブ
ル16cを用いることにより、エンコーディングIDと
文字コードが分かると、該文字コードに対応するグリフ
名を特定することが可能となる。
【0072】そして、かかるフォント管理テーブル16
a、フォントデータ16b及びエンコーディングテーブ
ル16cを組み合わせると、指定フォントのフォントI
Dが判明すれば、フォントデータ16bより該指定フォ
ントのエンコーディングIDが特定され、またこのエン
コーディングIDを用いてフォント管理テーブル16a
を参照することによりエンコーディングテーブル16c
のアドレスを入手でき、該エンコーディングテーブル1
6cを検索することにより、文字コードに対応するグリ
フ名を抽出することができる。
【0073】以上、フォント管理テーブル16a、フォ
ントデータ16b及びエンコーディングテーブル16c
の各構造について説明した。
【0074】次に、図1に示すグリフ抽出部13b及び
エンコーディング処理部14が行うグリフ検索処理につ
いて説明する。
【0075】図5は、図1に示すグリフ抽出部13b及
びエンコーディング処理部14が行うグリフ検索処理手
順を示すフローチャートである。
【0076】図5に示すように、まず最初に、フォント
検索部13aが検索した指定フォントのアドレスを示す
ポインタと印字を行う文字の文字コードをグリフ抽出部
13bが受け取ると、該指定フォント内に文字コードに
対応するグリフが存在するか否かを検索する(ステップ
501〜502)。
【0077】具体的には、グリフ抽出部13bは、図3
に示すフォントデータ16bの当該文字コードへのポイ
ンタを調べ、このポインタが’0’でなければ文字コー
ドに対応するグリフが存在し、ポインタが’0’であれ
ば文字コードに対応するグリフが存在しないと判断す
る。
【0078】そして、当該フォント内に文字コードに対
応するグリフが存在する場合には、指定フォントからグ
リフデータを取り出すとともに(ステップ503)、該
グリフデータを描画データ記憶部17aに設定して(ス
テップ504)処理を終了する。
【0079】一方、指定フォント内に文字コードに対応
するグリフが存在しない場合には、グリフ抽出部13b
は、代替グリフの特定をエンコーディング処理部14に
依頼する。
【0080】そして、エンコーディング処理部14がこ
の処理依頼を受け付けたならば、エンコーディングテー
ブル検索部14aが図3に示すフォントデータ16bか
ら指定フォントのエンコーディングIDを取り出す(ス
テップ505)。
【0081】次に、エンコーディングテーブル検索部1
4aは、図2に示すフォント管理テーブル16aを参照
して、エンコーディングIDに対応するエンコーディン
グテーブル16cへのポインタを入手して、代替グリフ
特定部14bに出力する。
【0082】このエンコーディングテーブル16cへの
ポインタを受け取った代替グリフ特定部14bは、この
エンコーディングテーブル16cを用いて文字コードに
対応するグリフ名を取り出す(ステップ506)。
【0083】なお、図示省略したが、エンコーディング
IDに対応するエンコーディングテーブルが登録されて
いない場合には、エラーとして処理を終了する。
【0084】その後、代替グリフ特定部14bは、フォ
ント管理テーブル16aを再度参照して、代替グリフを
選択するための候補となるフォント(以下。「候補フォ
ント」と言う。)を設定する(ステップ507)。
【0085】そして、この候補フォントが指定フォント
又は既に候補とした検索済みのフォントであるか否かを
確認し(ステップ508)、既に検索済みのフォントで
ある場合には、重複したグリフの検索を防ぐためにステ
ップ516に移行して次の候補フォントを探す。
【0086】これに対して、候補フォントが検索済みの
フォントでなければ、該候補フォントのフォントデータ
を参照してエンコーディングIDを入手するとともに
(ステップ509)、フォント管理テーブル16aを参
照して該エンコーディングIDに対応するエンコーディ
ングテーブル16cのポインタを得、該エンコーディン
グテーブル16cを参照してステップ506で取り出し
たグリフ名が存在するか否かを確認する(ステップ51
0〜511)。
【0087】その結果、当該エンコーディングテーブル
16c内に該当するグリフ名が存在しなければ、ステッ
プ516に移行して他の候補フォントを探し(ステップ
516)、該当するグリフ名が存在する場合には、この
エンコーディングテーブル16cを検索してグリフ名に
対応する文字コードを取得する(ステップ512)。
【0088】そして、この候補フォントを当該文字コー
ドで検索して該候補フォント内に当該文字コードに対応
するグリフデータが存在するか否かを確認し(ステップ
513〜514)、候補フォント内に当該文字コードに
対応するグリフデータが存在する場合には、該文字コー
ドに対応するグリフデータをフォントデータ16bから
取り出して(ステップ515)描画データ記憶部17a
に設定する(ステップ504)。
【0089】これに対して、候補フォント内に当該文字
コードが存在しない場合には、候補フォントとし得る他
のフォントが存在するか否かを確認し(ステップ51
6)、他のフォントが存在しなければグリフ無し記号を
描画データ記憶部17aに設定して(ステップ518)
処理を終了し、他のフォントが存在すれば該フォントを
新たな候補フォントに設定して(ステップ517)ステ
ップ508に移行する。
【0090】上記一連の処理を行うことにより、適正な
代替グリフを他のフォントから容易に入手することがで
きる。
【0091】次に、上記グリフ検索処理におけるフォン
ト管理テーブル16a、フォントデータ16b及びエン
コーディングテーブル16cがそれぞれ果たす役割を説
明する。
【0092】図6は、図1に示すフォント管理テーブル
16a、フォントデータ16b及びエンコーディングテ
ーブル16cが果たす役割を説明するための図である。
【0093】ただし、ここでは、フォントデータ1の文
字コード”13”に対応するグリフの代わりに、フォン
トデータ2の文字コード”14”のグリフを代替グリフ
として取り出す場合を示している。
【0094】図6に示すように、フォントデータ1の文
字コード”13”を取り出す場合は、最初にフォントデ
ータ1が参照され(ステップ601)、この文字コー
ド”13”に対応するグリフが存在しない場合には、該
フォントデータ1のエンコーディングIDが調べられる
(ステップ602)。
【0095】すなわち、かかるフォントデータ1には、
文字コードに対応するグリフの有無を確認する役割と、
エンコーディングを特定する役割がある。
【0096】次に、フォント管理テーブルを参照して
(ステップ603)このエンコーディングIDに対応す
るエンコーディングテーブル1のアドレスを示すポイン
タenctbl1を確認するとともに、このポインタe
nctbl1が示すエンコーディングテーブル1を参照
して(ステップ604)、文字コード”13”に対応す
るグリフ名(blackTriangle)を得る。
【0097】すなわち、フォント管理テーブルには、エ
ンコーディングIDに対応するエンコーディングテーブ
ルのアドレスを特定する役割があり、またエンコーディ
ングテーブルには、文字コードに対応するグリフ名を特
定する役割がある。
【0098】次に、フォント管理テーブルを再度参照し
て(ステップ605)、代替グリフの候補フォントを求
める。例えば、指定フォントを除き最小フォントから順
次候補フォントとすることができる。
【0099】ここで、この候補フォントをフォントデー
タ2とする場合には、このフォント管理テーブルからフ
ォントデータ2のアドレスを示すポインタfontpn
t2を取り出す。
【0100】すなわち、フォント管理テーブルには、候
補フォントを特定する役割と、該候補フォントのフォン
トデータのアドレスを特定する役割がある。
【0101】次に、このポインタfontpnt2が示
すフォントデータ2を参照して、フォントデータ2のエ
ンコーディングIDを確認するとともに、フォント管理
テーブルを参照して(ステップ607)、エンコーディ
ングテーブル2へのポインタenctbl2を取り出
す。
【0102】そして、このポインタenctbl2が示
すエンコーディングテーブル2を参照して(ステップ6
08)、グリフ名(blackTriangle)に対応する新たな
文字コード”14”を取得する。
【0103】すなわち、エンコーディングテーブルに
は、文字コードに対応するグリフ名を特定するだけでな
く、グリフ名に対応する文字コードを特定する役割があ
る。
【0104】そして、再度フォントデータ2を参照して
(ステップ609)、新たに特定した文字コード”1
4”に対応するグリフデータへのポインタgpnt1を
確認し、該ポインタgpnt1が示すグリフデータを代
替グリフをして取り出す(ステップ600〜611)。
【0105】すなわち、フォントデータには、文字デー
タに対応するグリフデータを有する役割がある。
【0106】このように、各フォントデータは、文字デ
ータに対応するグリフデータを有するだけでなく、文字
コードに対応するグリフの有無を確認するとともに、フ
ォントデータのエンコーディングを特定する役割があ
る。
【0107】また、フォント管理テーブルには、フォン
トID及びエンコーディングIDにそれぞれ対応するフ
ォントデータ及びエンコーディングテーブルのアドレス
を特定するとともに、候補フォントを特定する役割があ
る。
【0108】さらに、エンコーディングテーブルには、
文字コードに対応するグリフ名を特定するとともに、グ
リフ名に対応する文字コードを特定する役割がある。
【0109】次に、プリント装置が行うグリフ検索処理
を具体例を用いて説明する。
【0110】なお、この具体例では、プリント装置がフ
ォントデータ1、フォントデータ2及びフォントデータ
3の3種のフォントを備えるとともに、フォントデータ
1のエンコーディングはフォントデータ2及びフォント
データ3と異なり、フォントデータ2のエンコーディン
グがフォントデータ3のエンコーディングと同一である
場合を示している。
【0111】図7は、フォント管理テーブル、フォント
データ及びエンコーディングテーブルの具体例を示す図
である。
【0112】図7に示すように、フォント管理テーブル
70は、フォントデータ1〜3及びエンコーディングテ
ーブル1〜2のポインタを保持している。
【0113】フォントデータ1は、文字コード10に対
応するグリフ名”blackStar”のグリフと、文字コード
11に対応するグリフ名”blackSquare”のグリフと、
文字コード14に対応するグリフ名”blackCircle”の
グリフを有するフォントである。
【0114】すなわち、上記フォントデータ1は、エン
コーディングテーブル1に示す文字コードとグリフ名の
対応関係を持つため、フォントデータ1の2ワード目に
はエンコーディングID”1”が保持されている。
【0115】フォントデータ2は、文字コード12に対
応するグリフ名”blackDiamond”のグリフと、文字コー
ド13に対応するグリフ名”whiteDiamond”のグリフ
と、文字コード15に対応するグリフ名”whiteTriangl
e”のグリフと、文字コード16に対応するグリフ名”b
lackStar”のグリフとを有するフォントである。
【0116】フォントデータ3は、文字コード12に対
応するグリフ名”blackDiamond”のグリフと、文字コー
ド14に対応するグリフ名”blackTriangle”のグリフ
と、文字コード16に対応するグリフ名”blackStar”
のグリフとを有するフォントである。
【0117】すなわち、このフォントデータ2及びフォ
ントデータ3は、いずれもエンコーディングテーブル2
に示す文字コードとグリフ名の対応関係を持つため、フ
ォントデータ2及びフォントデータ3の2ワード目にエ
ンコーディングID”2”が保持されている。
【0118】ただし、フォントデータ2とフォントデー
タ3では、内部に保持するグリフの種類が異なり、フォ
ントデータ2には”blackStar”等がなく、フォントデ
ータ3には”whiteDiamond”等が無い。
【0119】ここで、指定フォントがフォントデータ1
で、文字コードが”13”の場合のグリフを検索する場
合について説明する。
【0120】まず最初に、指定フォントであるフォント
データ1の8ワード目71aを参照すると、ポインタ
値’0’が格納されていることから、フォントデータ1
には文字コード”13”が存在しないことが分かる。
【0121】このため、フォントデータ1の2ワード目
71bを参照すると、エンコーディングID’1’が格
納されていることから、フォントデータ1がエンコーデ
ィングテーブル1を使用していることを確認する。
【0122】そして、フォント管理テーブル70の8ワ
ード目70aを参照して、エンコーディングテーブル1
のアドレス”enctbl1”を確認するとともに、該アドレ
スに基づいてエンコーディングテーブル1の7ワード目
72aを参照することにより、文字コード”13”に対
応するグリフ名が”blackTriangle”であることを認識
する。
【0123】上記手順により、文字コードに対応するグ
リフ名が判明したので、次に該グリフ名に基づいて代替
グリフを検索する。
【0124】まず、候補フォントを探すためにフォント
管理テーブル70のフォント情報を参照すると、3ワー
ド目70bにフォントデータ1のアドレス”fontpnt1”
が格納されているが、このフォントデータ1は指定フォ
ントであるので、次の4ワード目70cを参照して、フ
ォントデータ2のアドレス”fontpnt2”を取り出す。
【0125】そして、このアドレスに基づいてフォント
データ2の2ワード目71cを参照して、フォントデー
タ2のエンコーディングIDが”2”であることを確認
したならば、エンコーディングID”2”に対応するエ
ンコーディングテーブル2のアドレス”enctbl2”をフ
ォント管理テーブル70の9バイト目70dを用いて確
認する。
【0126】次に、このアドレス”enctbl2”に基づい
てエンコーディングテーブル2をグリフ名”blackTrian
gle”で検索すると、6バイト目72bに該グリフ名が
存在することを確認できるため、該グリフ名に対応する
文字コード”14”を取り出す。
【0127】そして、フォントデータ2を文字コード”
14”で検索することとなるが、このフォントデータ2
には文字コード”14”に対応するグリフが存在しない
ため、このフォントデータ2には代替グリフが存在しな
いと判断する。
【0128】このため、新たな候補フォントを探すため
に再びフォント管理テーブル70の5ワード目70eを
参照して、フォントデータ3を新たな候補フォントとし
て設定する。
【0129】そして、フォントデータ2の場合と同様
に、フォントデータ3のエンコーディングIDが2であ
ることを確認した後、エンコーディングテーブル2の6
ワード目72bがグリフ名”blackTriangle”であり、
該グリフ名に対応する文字コードが”14”であると認
識する。
【0130】このため、フォントデータ3の7ワード目
71dを参照すると、アドレス”zzzz14”にグリ
フが格納されていることが判明するため、該アドレスか
らグリフ名”blackTriangle”に対応するグリフ71e
を取り出す。
【0131】このグリフ71eは、グリフ名”blackTri
angle”に対応するグリフであり、また指定フォント1
の文字コード”13”はグリフ名”blackTriangle”に
対応するグリフであることから、適正な代替グリフが検
索できることが分かる。
【0132】上述してきたように、本実施の形態では、
複数のフォントデータ16bのうちの所定のフォントデ
ータから指定文字コードに対応するグリフを検索して出
力する際に、各フォントデータの文字コードとグリフ名
の対応関係を記憶するエンコーディングテーブル16c
を設けておき、指定フォントデータが文字コードに対応
するグリフを有しない場合に、エンコーディングテーブ
ル16cを用いて文字コードに対応するグリフ名を取り
出し、該グリフ名に基づいて他のフォントデータから代
替フォントを検索するよう構成したので、文字コードに
対応するグリフが指定フォントデータ内に存在しない場
合に、適正な代替えグリフを出力することができる。
【0133】なお、本実施の形態では、グリフ名に基づ
いて他のフォントを検索することとしたが、本発明はこ
れに限定されるものではなく、グリフを識別できる他の
識別情報を用いることも可能である。
【0134】また、本実施の形態では、本発明をプリン
ト装置に適用した場合について説明したが、プリント装
置に接続する文字出力装置として構成することも可能で
ある。
【0135】さらに、フォントを追加できる装置を用い
る場合には、必要に応じてエンコーディングテーブルを
追加することにより、フォントの追加等に対応すること
もできる。
【0136】また、本実施の形態では、フォントIDと
エンコーディングIDとを整数値を用いて表現したが、
例えば文字列で表される名前などの他の形式を用いるこ
ともできる。
【0137】
【発明の効果】以上詳細に説明したように、第1の発明
では、指定フォントの指定文字コードに対応する文字字
形を、複数種類のフォントを記憶するフォント記憶手段
から検索された場合には該文字字形を出力し、検索され
ない場合には前記指定フォントの指定文字コードに対応
する文字字形に代替可能な字形の文字字形を、前記フォ
ント記憶手段から検索して出力するよう構成したので、
文字コードに対応するグリフが指定フォントデータ内に
存在するか否かに関わらず、指定文字コードに適合する
グリフを出力することが可能となる。
【0138】また、第2の発明では、指定フォントの指
定文字コードに対応する文字字形がフォント記憶手段か
ら検索されない場合に、フォントと、文字コードと、該
フォントの該文字コードに対応する文字字形の字形を特
定する識別情報とを対応づけて記憶する対応関係記憶手
段を参照して、指定フォントの指定文字コードに対応づ
けられた文字字形の字形を特定する識別情報を得るとと
もに、該識別情報と所定の関係にある識別情報に対応づ
けられたフォントと文字コードを特定し、該特定された
フォントと文字コードに対応する文字字形を、代替可能
な字形の文字字形として前記フォント記憶手段から検索
するよう構成したので、文字コードに対応するグリフが
指定フォントデータ内に存在しない場合に、適正な代替
えグリフを出力することが可能となる。
【図面の簡単な説明】
【図1】本発明に係るプリント装置の構成を示すブロッ
ク図。
【図2】図1に示すフォント管理テーブルの構造を示す
図。
【図3】図1に示すフォントデータのデータ構造を示す
図。
【図4】図1に示すエンコーディングテーブルの構造を
示す図。
【図5】図1に示すグリフ抽出部及びエンコーディング
処理部が行うグリフ検索処理手順を示すフローチャー
ト。
【図6】図1に示すフォント管理テーブル、フォントデ
ータ及びエンコーディングテーブルが果たす役割を説明
するための図。
【図7】図1に示すフォント管理テーブル、フォントデ
ータ及びエンコーディングテーブルの具体例を示す図。
【符号の説明】
10…入力部、 11…入力処理部、 12…コマンド
処理部、13…フォント処理部、 13a…フォント検
索部、13b…グリフ抽出部、 14…エンコーディン
グ処理部、14a…エンコーディングテーブル検索部、
14b…代替グリフ特定部、 15…描画処理部、16
…フォント記憶部、 16a…フォント管理テーブル、
16b…フォントデータ、 16c…エンコーディング
テーブル、17…描画記憶部、 17a…描画データ記
憶部、17b…ページバッファ、 18…出力制御部、
19…出力部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 指定フォントの指定文字コードに対応す
    る文字字形を出力する文字出力装置において、 複数種類のフォントを記憶するフォント記憶手段と、 前記指定フォントの指定文字コードに対応する文字字形
    を、前記フォント記憶手段から検索する第1の検索手段
    と、 前記指定フォントの指定文字コードに対応する文字字形
    に代替可能な字形の文字字形を、前記フォント記憶手段
    から検索する第2の検索手段と、 前記第1の検索手段により文字字形が検索された場合に
    は、該第1の検索手段により検索された文字字形を出力
    し、検索されない場合には、前記第2の検索手段により
    検索された文字字形を出力する出力手段とを備えたこと
    を特徴とする文字出力装置。
  2. 【請求項2】 フォントと、文字コードと、該フォント
    の該文字コードに対応する文字字形の字形を特定する識
    別情報とを対応づけて記憶する対応関係記憶手段をさら
    に備え、 前記第2の検索手段は、前記対応関係記憶手段を参照し
    て、前記指定フォントの指定文字コードに対応づけられ
    た文字字形の字形を特定する識別情報を得るとともに、
    該識別情報と所定の関係にある識別情報に対応づけられ
    たフォントと文字コードを特定し、該特定されたフォン
    トと文字コードに対応する文字字形を、代替可能な字形
    の文字字形として前記フォント記憶手段から検索するこ
    とを特徴とする請求項1記載の文字出力装置。
JP7181619A 1995-07-18 1995-07-18 文字出力装置 Pending JPH0934882A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7181619A JPH0934882A (ja) 1995-07-18 1995-07-18 文字出力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7181619A JPH0934882A (ja) 1995-07-18 1995-07-18 文字出力装置

Publications (1)

Publication Number Publication Date
JPH0934882A true JPH0934882A (ja) 1997-02-07

Family

ID=16103968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7181619A Pending JPH0934882A (ja) 1995-07-18 1995-07-18 文字出力装置

Country Status (1)

Country Link
JP (1) JPH0934882A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016055441A (ja) * 2014-09-05 2016-04-21 京セラドキュメントソリューションズ株式会社 画像形成装置および記号印刷プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016055441A (ja) * 2014-09-05 2016-04-21 京セラドキュメントソリューションズ株式会社 画像形成装置および記号印刷プログラム

Similar Documents

Publication Publication Date Title
US5526477A (en) System and method for generating glyphs of unknown characters
US5682158A (en) Code converter with truncation processing
US6944820B2 (en) Ensuring proper rendering order of bidirectionally rendered text
US7013304B1 (en) Method for locating digital information files
US5784071A (en) Context-based code convertor
EP0989499A2 (en) Unicode conversion into multiple encodings
US7219052B2 (en) Document based character ambiguity resolution
JPH0916598A (ja) エラー・パターンを用いた文字列修正システムおよび方法
KR100859766B1 (ko) 프레젠테이션 데이터 스트림의 복잡한 텍스트를 식별하기위한 시스템 및 방법
JPH0668298A (ja) 文書書式の文字認識及びデータ修復処理のためのデータ処理システム及び方法
US8161067B2 (en) Method and apparatus for managing complex presentation objects using globally-unique identifiers
JP4502615B2 (ja) 類似文検索装置、類似文検索方法、およびプログラム
JP2001043212A (ja) 電子文書における文字情報の正規化方法
WO2002001312A2 (en) Method and system of intelligent information processing in a network
KR100326936B1 (ko) 외국어로 표기된 한글을 한글표기로 변환하여 검색하는 시스템및 그 방법
US7031002B1 (en) System and method for using character set matching to enhance print quality
US7076423B2 (en) Coding and storage of phonetical characteristics of strings
US20020089503A1 (en) Character information processing apparatus, character information processing method and storage medium
WO1997010556A1 (en) Unicode converter
WO1997010556A9 (en) Unicode converter
JPH0934882A (ja) 文字出力装置
KR100399495B1 (ko) 소스 스트링의 타겟 스트링으로의 변환 방법, 이의 컴퓨터시스템 및 프로그램 제품
KR100712001B1 (ko) 중국어 데이타 및 사용자에 의해 정정된 데이타를작성하고 사용하는 방법 및 시스템
WO2002017129A2 (en) Method and system for case conversion
JPH11512543A (ja) ユニコード・コンバータ