(57)【特許請求の範囲】
【請求項１】
フォントを選択する選択手段と、
前記選択手段により選択されたフォントが置き換えフォントであるか判別する判別手段と、
前記判別手段により置き換えフォントでないと判別された場合、前記選択手段により選択されたフォントに対応するフォントデータをユーザ指定のサイズでスケーリングして文字パターンを生成し、前記判別手段により置き換えフォントであると判別された場合、前記選択手段により選択されたフォントに対応するフォントデータを置換え情報の文字サイズを参照してスケーリングして文字パターンを生成する生成手段と、
印字位置の調整が必要であるか判別する判定手段と、
前記判定手段により印字位置の調整が必要であると判定された場合、前記作成手段により作成された文字パターンを印字位置調整情報に従い補正した位置に描画する描画手段と、
現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報を印字位置調整情報に従い補正して修飾を行う修飾手段とを有することを特徴とする文字処理装置。
【請求項２】
前記生成手段により生成された文字パターンを出力する出力手段を有することを特徴とする請求項１記載の文字処理装置。
【請求項３】
前記出力手段は、プリンタであることを特徴とする請求項２記載の文字処理装置。
【請求項４】
前記修飾手段は、現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報をセル位置補正のオフセット情報を含む印字位置調整情報に従い補正して網掛けまたは白黒反転修飾を行うことを特徴とする請求項１記載の文字処理装置。
【請求項５】
前記修飾手段は、現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報をアンダーラインの位置補正情報を含む印字位置調整情報に従い補正してアンダーライン修飾を行うことを特徴とする請求項１記載の文字処理装置。
【請求項６】
フォントを選択する選択ステップと、
前記選択ステップにより選択されたフォントが置き換えフォントであるか判別する判別ステップと、
前記判別ステップにより置き換えフォントでないと判別された場合、前記選択ステップにより選択されたフォントに対応するフォントデータをユーザ指定のサイズでスケーリングして文字パターンを生成し、前記判別ステップにより置き換えフォントであると判別された場合、前記選択ステップにより選択されたフォントに対応するフォントデータを置換え情報の文字サイズを参照してスケーリングして文字パターンを生成する生成ステップと、
印字位置の調整が必要であるか判別する判定ステップと、
前記判定ステップにより印字位置の調整が必要であると判定された場合、前記作成ステップにより作成された文字パターンを印字位置調整情報に従い補正した位置に描画する描画ステップと、
現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報を印字位置調整情報に従い補正して修飾を行う修飾ステップとを有することを特徴とする文字処理方法。
【請求項７】
前記生成ステップにより生成された文字パターンを出力手段により出力する出力ステップを有することを特徴とする請求項６記載の文字処理方法。
【請求項８】
前記出力手段は、プリンタであることを特徴とする請求項７記載の文字処理方法。
【請求項９】
前記修飾ステップは、現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報をセル位置補正のオフセット情報を含む印字位置調整情報に従い補正して網掛けまたは白黒反転修飾を行うことを特徴とする請求項６記載の文字処理方法。
【請求項１０】
前記修飾ステップは、現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報をアンダーラインの位置補正情報を含む印字位置調整情報に従い補正してアンダーライン修飾を行うことを特徴とする請求項６記載の文字処理方法。
【請求項１１】
フォントを選択する選択プログラムと、
前記選択プログラムにより選択されたフォントが置き換えフォントであるか判別する判別プログラムと、
前記判別プログラムにより置き換えフォントでないと判別された場合、前記選択プログラムにより選択されたフォントに対応するフォントデータをユーザ指定のサイズでスケーリングして文字パターンを生成し、前記判別プログラムにより置き換えフォントであると判別された場合、前記選択プログラムにより選択されたフォントに対応するフォントデータを置換え情報の文字サイズを参照してスケーリングして文字パターンを生成する生成プログラムと、
印字位置の調整が必要であるか判別する判定プログラムと、
前記判定プログラムにより印字位置の調整が必要であると判定された場合、前記作成ステップにより作成された文字パターンを印字位置調整情報に従い補正した位置に描画する描画プログラムと、
現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報を印字位置調整情報に従い補正して修飾を行う修飾プログラムとを記憶したことを特徴とするプロセッサによりアクセスされるメモリ。
【請求項１２】
前記修飾プログラムは、現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報をセル位置補正のオフセット情報を含む印字位置調整情報に従い補正して網掛けまたは白黒反転修飾を行うことを特徴とする請求項１１記載のメモリ。
【請求項１３】
前記修飾ステップは、現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報をアンダーラインの位置補正情報を含む印字位置調整情報に従い補正してアンダーライン修飾を行うことを特徴とする請求項１１記載のメモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フォントを用いて文字パターンを出力する文字処理装置、文字処理方法、及び、メモリに関する。
【０００２】
【従来の技術】
従来、プリンタに搭載されているフォントは、ビットマップフォントが主流であった。フォントデータとして、文字のサイズ毎に文字パターンを持ち、高速に品位の高い文字を印字可能であった。しかしながら最近は、プリンタの高解像度化／多書体化にともない、パターンを記憶するメモリが巨大化したことや、変形等の自由度をもとめたことから、スケーラブルフォントが主流となってきている。
【０００３】
また、ビットマップフォントとは別に、スケーラブルフォントの高速出力のために、スケーラブルフォントをあらかじめ展開したビットマップパターンとして、使用頻度の高い文字パターンのみフォントＲＯＭに格納しておき、使用頻度の低い文字は、スケーラブルデータから展開、使用するような、スケーラブルとビットマップの中間的存在のＳドットフォントを搭載するプリンタもある。
【０００４】
【発明が解決しようとする課題】
しかしながら、新規プリンタでない限り、従来からの互換出力のために、ビットマップフォントをなくすことは難しく、スケーラブルフォントと、ビットマップフォントと、Ｓドットフォントのすべてを搭載するため、フォントＲＯＭの占めるコストが大きくなっている。そのために、フォントデータを圧縮したり、より、データ量の少ないスケーラブルフォントデータを採用するなど、削減は計っているが限界がある。このことから、スケーラブルフォントを用いて、ビットマップフォントのサイズを指定、展開することによりエミュレーションし、従来互換の出力を得られるようにすることが考えられる。
【０００５】
しかしながら、ビットマップフォントでは、最適なパターンの位置情報や、最適な修飾の情報（例えばアンダーラインの位置や網かけの大きさ・位置）をそれぞれのサイズ毎にデザインし、持っている。さらには、同じ、１０ポイントの文字パターンといっても、実際の字の大きさは、書体毎、デザイン毎に若干ことなる。
【０００６】
例えば、図７に示したように、スケーラブルフォントと、ビットマップフォントで、同じ文字サイズの漢字のパターンを比べても、枠は同じ大きさでも、その中には位置される文字のパターンの大きさや印字する際の基準位置はことなる。さらに、図８に示したように、ビットマップフォントどうしでも、文字サイズと、印字位置の関係は、それぞれ独自にデザインされており、比例関係ではない。これらにより、互換出力を、得られるパターンをスケーラブルフォントで実現するためには、フォント毎に調整が必要となる。具体的にいうなれば、解像度２４０ｄｐｉのプリンターの９．６ポイント（３２ｄｏｔ×３２ｄｏｔ）のＫ３２Ｍ．Ｊ８３というビットマップフォントは従来互換のために持たなければならず、その他に、明朝書体のスケーラブルフォントとそのスケーラブルフォントの高速出力のための１０ポイントのＳドットフォントを搭載しているプリンタの場合、９．６ポイントのビットマップフォントと１０ポイントのＳドットフォントは、文字のパターン自体の大きさとしては、ほぼ同じであるのに、上記のように、枠の大きさがことなり、印字の基準位置や、その他の情報が共有できないために双方のデータを持たなくてはならない。
【０００７】
本発明は、上記のような問題点を解決するためになされたもので、従来との互換を図りながらフォントのメモリ容量を削減できる文字処理装置、文字処理方法及び、メモリを提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記課題を解決するために本発明の文字処理装置は、
フォントを選択する選択手段と、
前記選択手段により選択されたフォントが置き換えフォントであるか判別する判別手段と、
前記判別手段により置き換えフォントでないと判別された場合、前記選択手段により選択されたフォントに対応するフォントデータをユーザ指定のサイズでスケーリングして文字パターンを生成し、前記判別手段により置き換えフォントであると判別された場合、前記選択手段により選択されたフォントに対応するフォントデータを置換え情報の文字サイズを参照してスケーリングして文字パターンを生成する生成手段と、
印字位置の調整が必要であるか判別する判定手段と、
前記判定手段により印字位置の調整が必要であると判定された場合、前記作成手段により作成された文字パターンを印字位置調整情報に従い補正した位置に描画する描画手段と、
現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報を印字位置調整情報に従い補正して修飾を行う修飾手段とを有することを特徴とする。
【０００９】
上記課題を解決するために本発明の文字処理方法は、
フォントを選択する選択ステップと、
前記選択ステップにより選択されたフォントが置き換えフォントであるか判別する判別ステップと、
前記判別ステップにより置き換えフォントでないと判別された場合、前記選択ステップにより選択されたフォントに対応するフォントデータをユーザ指定のサイズでスケーリングして文字パターンを生成し、前記判別ステップにより置き換えフォントであると判別された場合、前記選択ステップにより選択されたフォントに対応するフォントデータを置換え情報の文字サイズを参照してスケーリングして文字パターンを生成する生成ステップと、
印字位置の調整が必要であるか判別する判定ステップと、
前記判定ステップにより印字位置の調整が必要であると判定された場合、前記作成ステップにより作成された文字パターンを印字位置調整情報に従い補正した位置に描画する描画ステップと、
現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報を印字位置調整情報に従い補正して修飾を行う修飾ステップとを有することを特徴とする。
【００１０】
上記課題を解決するために本発明のメモリは、
フォントを選択する選択プログラムと、
前記選択プログラムにより選択されたフォントが置き換えフォントであるか判別する判別プログラムと、
前記判別プログラムにより置き換えフォントでないと判別された場合、前記選択プログラムにより選択されたフォントに対応するフォントデータをユーザ指定のサイズでスケーリングして文字パターンを生成し、前記判別プログラムにより置き換えフォントであると判別された場合、前記選択プログラムにより選択されたフォントに対応するフォントデータを置換え情報の文字サイズを参照してスケーリングして文字パターンを生成する生成プログラムと、
印字位置の調整が必要であるか判別する判定プログラムと、
前記判定プログラムにより印字位置の調整が必要であると判定された場合、前記作成ステップにより作成された文字パターンを印字位置調整情報に従い補正した位置に描画する描画プログラムと、
現在印字中の文字に修飾が指定されており、修飾の補正が必要である場合、修飾の情報を印字位置調整情報に従い補正して修飾を行う修飾プログラムとを記憶したことを特徴とする。
【００１１】
【発明の実施の形態】
（第１の発明の実施の形態）
本発明の実施の形態の構成を説明する前に、本発明の実施の形態を適用するに好適なレーザビームプリンタの構成について図１を参照しながら説明する。なお、本発明の実施の形態を適用するプリンタは、レーザビームプリンタに限られるものではなく、他のプリント方式のプリンタでも良いことは言うまでもない。
【００１２】
図１は本発明を適用可能な第１の出力装置の構成を示す断面図であり、例えばレーザビームプリンタ（ＬＢＰ）の場合を示す。
【００１３】
図において、１０００はＬＢＰ本体であり、外部に接続されているホストコンピュータから供給される印刷情報（文字コード等）やフォーム情報あるいはマクロ命令等を入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターン等を作成し、記録媒体である記録紙等に像を形成する。１０１２は操作のための複数のスイッチおよびＬＥＤ／ＬＣＤ表示器等が配されている操作パネルである。１００１はＬＢＰ本体１０００全体の制御およびホストコンピュータから供給される文字情報等を解析するプリンタ制御ユニットである。このプリンタ制御ユニット１００１は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１００２に出力する。レーザドライバ１００２は半導体レーザ１００３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１００３から発射されるレーザ光１００４をオン・オフ切り換えする。レーザ光１００４は回転多面鏡１００５で左右方向に振らされて静電ドラム１００６上を走査露光する。これにより、静電ドラム１００６上には文字パターンの静電潜像が形成されることになる。この潜像は、静電ドラム１００６周囲に配設された現像ユニット１００７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１０００に装着した用紙カセット１００８に収納され、給紙ローラ１００９および搬送ローラ１０１０と搬送ローラ１０１１とにより、装置内に取り込まれて、静電ドラム１００６に供給される。またＬＢＰ本体１０００には、図示しないカードスロットまたはＲＯＭＳＩＭＭのスロットを少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード，言語系の異なる制御カード（エミュレーションカード）を追加接続できるように構成されている。
【００１４】
図２は本発明の実施の形態を示すプリンタ制御システムの構成を説明するブロック図である。ここでは、レーザビームプリンタ（図１）を例にして説明する。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ等のネットワークを介して処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【００１５】
図において、３０００はホストコンピュータで、ＲＯＭ３のプログラム用ＲＯＭに記憶された文書処理プログラム等に基づいて図形，イメージ，文字，表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムデバイス４に接続される各デバイスをＣＰＵ１が総括的に制御する。
【００１６】
また、このＲＯＭ３のプログラム用ＲＯＭには、前記文書処理を実行した結果出力される情報をプリンタが解析可能なデータへ変換／プリンタ用言語を付加するプリンタドライバ等ＣＰＵ１の制御プログラム等を記憶し、ＲＯＭ３のフォント用ＲＯＭには上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３のデータ用ＲＯＭは上記文書処理等を行う際に使用する各種データを記憶する。２はＲＡＭで、ＣＰＵ１の主メモリ，ワークエリア等として機能する。５はキーボードコントローラ（ＫＢＣ）で、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。７はメモリコントローラ（ＭＣ）で、ブートプログラム、，種々のアプリケーション，フォントデータ，ユーザファイル，編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。８はプリンタコントローラ（ＰＲＴＣ）で、所定の双方向性インタフェース（インタフェース）２１を介してプリンタ１５００に接続されて、プリンタ１０００との通信制御処理を実行する。なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００１７】
プリンタ１０００において、１２はプリンタＣＰＵで、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等或は外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続される各種のデバイスとのアクセスを総括的に制御し、印刷部インタフェース１６を介して接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、このＲＯＭ１３のプログラムＲＯＭには、図４、図６のフローチャートで示されるようなＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ＲＯＭ１３のデータ用ＲＯＭにはハードディスク等の外部メモリ１４が無いプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。ＣＰＵ１２は入力部１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。１９はＣＰＵ１２の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、フォントテーブル作成領域等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００１８】
以上のように、このように構成されたプリンタ制御システムにおいて、フォント選択を行ない、文字パターンを出力する。図５、図６を用いて、以下に、フォント選択についての説明を行なう。
【００１９】
フォント選択の方法としては、フォントの名称を指定する方法と、フォントの属性により指定する方法とがある。フォントの属性による選択方法とは、フォントの属性を数種規定し、フォント毎にその情報をテーブル（フォントテーブル）に記憶、属性の優先順位が高いものから、指定された属性と異なるフォントを候補から落していき、最後に残ったフォントを、選択する方法である。
【００２０】
図５は、プリンタ立ち上げ時にＲＡＭ１９内に作成されるフォントテーブルの詳細であり、印刷装置内（フォントＲＯＭ１３／外部メモリ１４／ＲＡＭ１９）に持っているフォント全ての名称・属性・ポインタ及びフラグによって構成されている。このテーブル内のフォントの順番は、内蔵されているフォントから、フォントカード（外部フォントメモリ）内フォント、ユーザー登録フォントの順に並んでいる。
【００２１】
このテーブルの中から、指定されたフォントを検索し、印字を行う。
【００２２】
名称選択については、このテーブルないから指定された名称のフォントを検索することにより選択し、また、属性選択については、属性の優先順位に従い、ふるいにかけていく。
【００２３】
属性の優先順位は、高い方から、
グラフィックセット（パターンの並びを定義する）
文字ピッチ（文字の幅）
文字サイズ（文字の高さ）
スタイル（直立体等の属性を表す）
ストロークウェイト（文字のストロークの幅を示す）
主書体番号（明朝／ゴシック等の書体デザイン）
副書体番号（書体デザインの細かい違いを識別する）
となっており、この優先順位に従いフォントが決定される。
【００２４】
図６はＣＰＵ１２の属性選択処理手順を説明するためのフローチャートである。なお、このフローチャートに係るプログラムはＲＯＭ１３に記憶されている。
【００２５】
コマンドで、フォントの属性指示がきた場合には、その時点で設定されている他の属性も含めて、フォントの検索処理を行う。
【００２６】
まずステップＳ１でフォントテーブル内フォント全てのフラグをセットする。そして、ステップＳ２で指定されたグラフィックセット以外のフォントのフラグをすべてクリアした後、フラグの立っているフォントが１つになっているかを調べる（ステップＳ３）。１つになっていた場合には、そのフォントを用いて印字を行う。また、フラグの立っているフォントがなくなっていた場合には、グラフィックセットの選択規則に乗っ取り、現在設定されているグラフィックセットのフォントのフラグがセットされる（ステップＳ４）。更に、フラグのセットされているふぉんとが複数個残っていた場合には、ステップＳ５に進み、指定された文字ピッチ以外のフォントのフラグをクリアし、前記グラフィックセットの場合と同様に、残ったフォントの数をチェックし（ステップＳ６）、１つならば決定、１つもなければその属性の選択基準に従い処理され（ステップＳ７）、複数個残った場合には次の属性の処理に進む。以下、文字サイズ、スタイル、ストロークウェイト、書体、副書体と、同様に処理を行う。そして、最後まで１つに絞れなかった場合には、フォントテーブル内一番最後にあるフラグがセットされたフォントを選択する（ステップＳ２３）。
【００２７】
そして、文字出力のための文字コードを受信したさいには、上記フォント選択で選択されたフォントを用いて文字パターン出力を行なう。
【００２８】
スケーラブルフォントであった場合には、制御コマンドによって指定された文字サイズ及び、文字のピッチから、指定通りの文字パターンを生成する。
【００２９】
連続して、文字コードを受信した場合には、特別に移動のコマンドが来ない限り、フォントの情報として規定されている移動量分位置を移動する。また、アンダーラインや網掛け修飾、白黒反転処理についても、フォントの情報として規定されている修飾情報に従い修飾される。
【００３０】
また、生成した文字パターンはＲＡＭ１９上にある１ページ分のイメージエリアに展開された排紙コマンドによって印刷部１７に送られる。
【００３１】
これら、フォントの情報は、前記ＲＡＭ１９内に作成されるフォントテーブル内フォントポインタに示されたアドレスに決まったフォーマットにしたがって格納されている。
【００３２】
図３を用いて詳細に説明を行なう。
【００３３】
図３は、フォントＲＯＭ１３内の格納されているフォントデータのフォーマットを示したものである。また、このフォーマットにしたがったフォントデータの先頭のアドレス（スケーラブルフォント識別子の格納されているアドレス）が、前記フォントテーブルのフォントポインタに格納されている。
【００３４】
フォントフォーマットの内容としては、好けーラブルフォントのヘダー情報が格納されているということを示すスケーラブルふぉんと識別子、ヘダーの情報の総バイト数（Ｎｂｙｔｅ）、スケーリングに必要な、基準となるデータサイズおよび、印字位置の基準となる基準移動量、その後ろに、文字セットの属性情報（グラフィックセット番号、ストロークウェイト、スタイル、書体番号、副書体番号）、修飾情報（基準アンダーラインオフセット、網掛け／白黒反転基準サイズ）、そして、文字パターンデータへのオフセットが格納されているテーブルへのフォーマット先頭アドレスからのオフセット量（０ｂｙｔｅ）、そして、格納されているパターンの開始文字コード、終了文字コードの情報の後ろに、実際のパターン情報へのオフセットが開始コードから終了コードまでのパターン数分格納されている。また、実際の文字パターンデータは、パターン情報識別子を先頭として、パターンデータの総バイト数（Ｐｂｙｔｅ）、その後ろに、実際のパターンが文字コード順に格納されている。
【００３５】
フォントテーブル作成時には、フォントＲＯＭ１３内をサーチし、上記スケーラブルフォントのヘダー識別子や、ビットマップのヘダー識別子が見つかると、ＲＡＭ１９内フォントテーブルにその情報を書き込む。
【００３６】
また、文字パターン出力の際には、フォントテーブル上の選択されたフォントアドレスから、上記ヘダー情報を読みだし、スケーラブルフォントであれば、指定された、文字サイズと、基準データサイズや基準移動量、各修飾情報から、実際に出力するためのスケーリング情報を算出し、文字コードから、パターンデータへのオフセットを算出、パターンデータをとりだし、前記算出したスケーリング情報を元にパターンを出力する。
【００３７】
本発明の実施の形態としては、図４に示したフォーマットを用いてスケーラブルフォントデータをビットマップフォントとしても使用する。
【００３８】
図４において、スケーラブルフォントのヘダー情報および文字のパターンデータについては図３と同様である。
【００３９】
図３と異なるのは疑似ビットマップ識別子から始まる擬似ビットマップヘダー情報を持つ。また、ヘダーの内容としては、出力データサイズおよび選択用データサイズを持ち、フォント選択時には選択用データサイズを用いて選択を行ない、文字のパターン出力時には出力データサイズと、基準データサイズからパターン出力のためのスケーリング情報を算出する。また、実際の属性情報とは別に、疑似グラフィックセット番号情報を持ち実際のグラフィックセット番号と異なるグラフィックセットでフォント選択を行なう際に使用する。このヘダー情報は、１つのスケーラブルフォントパターンデータに対し複数設定可能であり、明朝のスケーラブルフォントパターンに対し、スケーラブルのフォント情報ヘダーはもちろん、７．２ポイント，９．６ポイント，１２ポイントの３つの異なる擬似ビットマップのヘダーを持つことも可能である。また、これらのヘダー情報は、内蔵されていなければならないものではなく、外部メモリ１４によってオプションで供給されることも可能であり、ホストコンピュータからダウンロードすることにより、同じフォーマットをＲＡＭ１９上に作成することも可能である。これらの場合には、フォントＲＯＭ１３のみをサーチしフォントテーブルを作成するのではなく、ＲＡＭ１９および、外部メモリ１４内もサーチし、フォントテーブルを作成することはもちろんである。
【００４０】
以上のようにフォントのヘダー情報として、疑似ビットマップの情報を持つことにより、ビットマップのパターンを記憶することなく、ヘダー情報のみでフォント選択のアルゴリズムを大きく変えることなく、容易にビットマップフォントの互換が保てる。
【００４１】
以上のフォーマットや、選択の手順等は、上記に限ったものではなく、他のフォーマットおよび選択手順でも可能であることはいうまでもない。
【００４２】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用しても良い。また、本発明はシステム或は装置にプログラムを供給することによって実施される場合にも適用できることは言うまでもない。この場合、本発明に係るプログラムを格納した記憶媒体が、本発明を構成することになる。そして、該記憶媒体からそのプログラムをシステム或は装置に読み出すことによって、そのシステム或は装置が、予め定められた仕方で動作する。
【００４３】
（第２の発明の実施の形態）
上記第１の発明の実施の形態においては、フォントＲＯＭ内ヘダー情報により、疑似ビットマップを実現したが、ヘダー情報には重複する情報も多いため、次にフォントテーブルに疑似情報を持つ発明の実施の形態について説明を行なう。
【００４４】
図８に示したように、ＲＡＭ１９上に作成するフォントテーブルに、置き換え情報（疑似）インデックスの項目、および、印字位置調整情報（位置）インデックスの項目を設け、置き換え情報のテーブルと、印字位置調整情報テーブルのインデックス番号を記憶しておく。ビットマップの属性選択をするための文字サイズおよび文字ピッチの情報はフォントテーブル本体の方に記憶され、置き換え情報のテーブルには、フォントパターンを出力するための、スケーラブルフォントの名称、文字サイズおよび文字ピッチが記憶されている。また、印字位置調整情報のテーブルには、疑似ビットマップフォントと置換えのスケーラブルフォントのベースラインの違いを補整するベースラインオフセット情報や、パターンの位置を補整する印字位置置換オフセット情報（縦／横）、網掛けや白黒反転等修飾のための、セル位置補正のオフセット情報（縦／横）および、アンダーラインの位置補整情報を持っている。
【００４５】
これらの情報は、フォントＲＯＭ１３内及び、外部メモリ１４及びダウンロードされた情報として図９のようなフォーマットで記憶およびダウンロードされ、フォントテーブル作成時に、ＲＡＭ１９に図８のようにインデックス番号を用いてリンクされる。また、その際、テーブル内フォントポインタには、置き換え情報テーブル内のスケーラブルフォントの名称を用いて、置き換えるスケーラブルフォントのフォントポインタをサーチし、格納する。
【００４６】
また、これらの置換えのための情報は、コマンドにより、情報の書換え等の処理も可能である。
【００４７】
これらの情報を用いて印刷をする場合には、テーブルの容量や、判定処理などが必要となるために、あらかじめ、これらの情報のどこまでを用いて出力するか（修飾情報は使用しない。印字位置補整は行なわない等）、または、互換ビットマップの必要のないユーザーは、一切のテーブル処理を行なわないよう設定するよう、パネル操作部１０１２やコマンドを用いて選択可能であるよう構成することももちろん可能である。また、テーブルの構成や、データのフォーマットは説明に限ったものではなく、他のものでも実現可能である。
【００４８】
図１６のフローチャートを用いてフォントの出力手順を詳細に説明する。なお、このフローチャートに係るプログラムはＲＯＭ１３に記憶されている。フォント選択の結果、選択されたフォントを用いて与えられた文字コードを文字パターンとしてＲＡＭ１９上にある１ページ分のイメージエリアに展開する。まず、選択されたフォントが置き換えフォントでないかどうかを、フォントテーブル内擬似インデックスが−１かどうかで判断する（ステップ１０１）。ホストコンピュータ（プリンタドライバ）より従来モードでないモードが指定され置き換えフォントとして用いない場合には、ビットマップフォントかどうかを判定し（ステップ１０２）、ビットマップフォントであった場合には、フォントポインタに文字コード分のオフセットを加算したアドレスからパターンを取り出す（ステップ１０３）。また、スケーラブルフォントであった場合には、フォントポインタに文字コード分のオフセットを加算したアドレスからデータをとりだし、ユーザー指定の文字サイズ／文字ピッチにスケーリングする（ステップ１０４）。また、ホストコンピュータ（プリンタドライバ）より従来モードが指定され置き換えフォントとして用いる場合には、疑似インデックスを用いて、置き換えテーブル内の文字サイズ／文字ピッチを参照し、フォントテーブル内フォントポインタのフォントをスケーリングする（ステップ１０５）。そして、印字位置の調整が必要かどうかを、位置補正インデックスが−１かどうかで判定し（ステップ１０６）、−１であった場合には補正が必要でないため、イメージエリア内の現在の出力位置（カレントポイント）に描画する（ステップ１０７）。補正が必要であった場合には、位置補正インデックスを用いて、印字位置調整テーブル内の補正情報を読みだし、カレントポイントから補正した位置（アドレス）に描画する（ステップ１０８）。
【００４９】
また、現在印字中の文字に修飾が指定されている場合には（ステップ１０９）、フォントポインタから修飾の大きさや位置の情報を読みだし、その値にしたがいアンダーライン／網掛け／白黒反転等の修飾を行なう（ステップ１１１）。位置補正インデックスがある場合には、フォントポインタから修飾の情報を読みだし、その情報を印字位置調整情報にしたがい補正して修飾を行なう（ステップ１１２）。現在の文字コードのパターン出力処理が終了したのち、フォントポインタから基準移動量を読みだし、カレントポイントを更新する（ステップ１１３）。
【００５０】
したがって、スケーラブルフォントのＭｉｎｃｈｏ−Ｍｅｄｉｕｍ．Ｊ７８の「亜」（３０２１ｈ）を１０ｐｏｉｎｔｓ７．２ｃｐｉで出力する場合には、フォントテーブル内フォントポインタを用いて、フォントＲＯＭ内基準ピッチ／基準サイズを読みだし、ユーザー指定の１０ｐｏｉｎｔｓ７．２ｃｐｉとの比を計算しスケーリングに備える。そして、文字のパターンへのオフセットが格納されているアドレスを文字コードから算出しパターンを取り出しスケーリングしてビットマップのパターンを作成する。これをイメージエリア内カレントポイントに格納し、ユーザーの指定ピッチ分カレントポイントを移動する。また、上記Ｍｉｎｃｈｏ−Ｍｅｄｉｕｍ．Ｊ７８を置き換えフォントとして出力するＫ３２Ｍ．Ｊ７８の場合には、置き換え情報テーブル内文字サイズ文字ピッチを用いてスケーリングを行ない、イメージエリア内カレントポイントに格納する際、印字位置調整テーブルの印字位置オフセット分格納位置をずらして格納する。そして、置き換え情報テーブル内ピッチ情報分カレントポイントを移動して終了する。
【００５１】
上記説明においては、補正情報は、文字サイズと、印字位置の情報のみだったが、網かけや、白黒反転等の修飾を行なう範囲（大きさ）を通常はセルの大きさとしているが、セルのサイズで修飾するのでは完全互換が取れない場合、置換えの際の補正情報を持つことにより、さらに細かい調整が可能である。
【００５２】
また、テーブルとして互換情報を持たない場合に、名称選択されたビットマップのみ、従来に近い出力を得るよう以下のように処理することも可能である。
【００５３】
まず、プログラムＲＯＭ１３のプログラムにより、指定された名称のフォントがＲＡＭ１９上のフォントテーブルにないことを確認した後、前記プログラム上で規定されたルールに則った名称かどうかを判定する。ここでは、名称は以下のようにルール付けられていることとする。
【００５４】
〔AorK〕  〔240dpiでのドット数〕 〔MorG〕 〔グラフィックセット名称〕
Ａ：半角…横、縦                Ｍ：明朝        J83,J78
Ｋ：全角…縦のみ                Ｇ：ゴシック    FOMA,KATA,HIRA
したがって、Ｋ３２Ｍ．Ｊ８３は、全角明朝、３２ｄｏｔ×３２ｄｏｔ（９．６ｐｏｉｎｔ）のＪＩＳ８３グラフィックセットのフォントである、ということになる。
【００５５】
このルールにしたがい、明朝、９．６ポイント、ＪＩＳ８３グラフィックセットのフォントを属性選択する。属性選択を行なうことにより、近い属性のフォントが選択され、出力される。また、ビットマップフォントとスケーラブルフォントのパターンの大きさの比や、印字位置調整の情報を、テーブル情報としてプログラム上に持って調整することも可能である。
【００５６】
さらに、第１の発明の実施の形態も含めて、スケーラブルから、疑似ビットマップを出力する説明を行なったが、ビットマップフォントをスケーラブルフォントの高速化に使用するＳドットフォントとして使用するための、置き換え情報をフォントデータとして、および、置き換え情報テーブルとして持つことも可能である。
【００５７】
（第３の発明の実施の形態）
次に、フォント毎の情報としてだけでなく、文字パターン毎の情報として、個別情報を持ち、パターンの共有を行なう場合について説明を行なう。
【００５８】
図１１に示したように、フォントのヘダー情報と、そのフォントの文字パターンへのオフセットを持って、実際のパターン情報を出力する手順において、パターンデータは、図１２に示すように枠の大きさは違うが文字自体の大きさはほぼ同じ場合に、図１３に示したように、実際の文字の部分だけをパターンとして持ち、枠からのオフセットは、文字毎の情報として個別に持ち、制御することにより、文字毎に調整が可能である。図に示したように、パターン毎の情報のインデックス番号はオフセット情報の一部として、パターンへのオフセットの上位２ビットをインデックス情報として管理することにより、処理手順はほとんど変えることなく、実現可能となる。
【００５９】
また、図１４に示したように、縦書き用のパターンと横書き用のパターンが位置だけでなく、９０度回転したパターンであるような場合にも、文字毎のヘダー情報として回転情報を持つことにより、パターンの共有が可能である。
【００６０】
回転情報として、変換マトリクスを持つことにより、回転だけでなく変形による斜体等のパターン共有も可能である。さらに、これらのパターン毎の情報は、内蔵のフォントデータとしてだけでなく、ＲＡＭ上の登録データはもちろん、文字パターンのキャッシング処理においても有効である。キャッシング処理とは、スケーラブルフォントの同じパターンを、文章中に繰り返し使用する場合に、一度展開したものをＲＡＭ上に記憶しておき、２回目以降は、スケーラブルデータから展開せずに、記憶してあるパターンを出力することにより高速化を計る処理である。ここにおいて、パターン毎の情報も、キャッシングすることにより、より、効果の高いキャッシングが可能となる。
【００６１】
これらパターン毎の情報を持つ場合、パターンデータがスケーラブルデータであろうが、ビットマップデータであろうが有効であることはいうまでもない。また、フォーマットについて、他のフォーマットを用いても実現が可能である。
【００６２】
【発明の効果】
以上述べたように本発明によれば、選択されたフォントを置き換えて処理できるため、従来との互換を図りながらフォントのメモリ容量を削減できる。
【図面の簡単な説明】
【図１】本発明を適用可能な第１の出力装置の構成を示す断面図である。
【図２】本発明の実施の形態を示すプリンタ制御システムの構成を説明するブロック図である。
【図３】従来処理におけるフォントデータフォーマットを示す図である。
【図４】発明の実施の形態の処理におけるフォントデータフォーマットを示す図である。
【図５】フォント選択に使用するフォントテーブルの詳細図である。
【図６】フォント選択（属性選択）の手順を示すフローチャートである。
【図７】従来のフォント処理における文字パターンの説明図である。
【図８】従来のフォント処理における文字パターンの説明図である。
【図９】各種テーブルを説明する図である。
【図１０】他の実施例におけるフォントデータの詳細図である。
【図１１】パターン情報を出力する手順を説明する図である。
【図１２】出力用パターンを説明する図である。
【図１３】フォントデータを説明する図である。
【図１４】横書き用縦書き用ビットマップパターンを説明する図である。
【図１５】フォントデータを説明する図である。
【図１６】フォントの出力手順を示すフローチャートである。
【符号の説明】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
１２  ＣＰＵ
１３  ＲＯＭ
１９  ＲＡＭ
３０００  ホストコンピュータ
１０００  プリンタ
【図１】
0003814330.tif 000002
【図２】
0003814330.tif 000003
【図３】
0003814330.tif 000004
【図４】
0003814330.tif 000005
【図５】
0003814330.tif 000006
【図６】
0003814330.tif 000007
【図７】
0003814330.tif 000008
【図８】
0003814330.tif 000009
【図９】
0003814330.tif 000010
【図１０】
0003814330.tif 000011
【図１１】
0003814330.tif 000012
【図１２】
0003814330.tif 000013
【図１３】
0003814330.tif 000014
【図１４】
0003814330.tif 000015
【図１５】
0003814330.tif 000016
【図１６】
0003814330.tif 000017