(57)【特許請求の範囲】
【請求項１】
登録メモリの要求コマンドをプリンタに送信する送信手段と、
印字すべき文字の文字データがプリンタに登録されているか否かを判別する判別手段と、
前記判別手段により印字すべき文字の文字データがプリンタに登録されていないと判別された場合、前記登録メモリの要求コマンドによりプリンタで確保されるメモリ容量に基づき文字データを登録できるか否かを判断する判断手段と、
前記判断手段により文字データを登録できないと判断された場合、登録文字削除コマンドを発行する発行手段と、
前記判断手段により文字データを登録できると判断された場合、登録すべき文字データをプリンタに転送する転送手段と、
前記判別手段により印字すべき文字の文字データがプリンタに登録されていると判別された場合、プリンタに登録した文字データを印刷するための文字印字コマンドを転送する手段とを有することを特徴とする情報処理装置。
【請求項２】
前記登録文字削除コマンドにより登録文字を削除してもメモリ不足の場合、イメージ描画コマンドを転送する手段を有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記登録文字削除コマンドは、現在作成中のページで使用されていない登録文字を削除させることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記登録メモリの要求コマンドに基づきプリンタが登録メモリを確保できない場合、文字データの登録を行わないことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記発行手段により登録文字削除コマンドを発行した後、文字データを登録できるか否かを判断する第２判断手段を有し、
前記転送手段は、前記第２判断手段により文字データを登録できると判別された場合、登録すべき文字データをプリンタに転送することを特徴とする請求項１記載の情報処理装置。
【請求項６】
ステータス要求コマンドをプリンタに送信する手段と、
印字すべき文字の文字データがプリンタに登録されているか否かを判別する判別手段と、
前記判別手段により印字すべき文字の文字データがプリンタに登録されていないと判別された場合、前記ステータス要求コマンドに応じてプリンタから送信された登録メモリの容量に基づき文字データを登録できるか否かを判断する判断手段と、
前記判断手段により文字データを登録できないと判断された場合、登録文字削除コマンドを発行する発行手段と、
前記判断手段により文字データを登録できると判断された場合、登録すべき文字データをプリンタに転送する転送手段と、
前記判別手段により印字すべき文字の文字データがプリンタに登録されていると判別された場合、プリンタに登録した文字データを印刷するための文字印字コマンドを転送する手段とを有することを特徴とする情報処理装置。
【請求項７】
前記登録文字削除コマンドにより登録文字を削除してもメモリ不足の場合、イメージ描画コマンドを転送する手段を有することを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記登録文字削除コマンドは、現在作成中のページで使用されていない登録文字を削除させることを特徴とする請求項６記載の情報処理装置。
【請求項９】
前記発行手段により登録文字削除コマンドを発行した後、文字データを登録できるか否かを判断する第２判断手段を有し、
前記転送手段は、前記第２判断手段により文字データを登録できると判別された場合、登録すべき文字データをプリンタに転送することを特徴とする請求項６記載の情報処理装置。
【請求項１０】
登録メモリの要求コマンドをプリンタに送信する送信ステップと、
印字すべき文字の文字データがプリンタに登録されているか否かを判別する判別ステップと、
前記判別ステップにより印字すべき文字の文字データがプリンタに登録されていないと判別された場合、前記登録メモリの要求コマンドによりプリンタで確保されるメモリ容量に基づき文字データを登録できるか否かを判断する判断ステップと、
前記判断ステップにより文字データを登録できないと判断された場合、登録文字削除コマンドを発行する発行ステップと、
前記判断ステップにより文字データを登録できると判断された場合、登録すべき文字データをプリンタに転送する転送ステップと、
前記判別ステップにより印字すべき文字の文字データがプリンタに登録されていると判別された場合、プリンタに登録した文字データを印刷するための文字印字コマンドを転送するステップとを有することを特徴とする情報処理方法。
【請求項１１】
前記登録文字削除コマンドにより登録文字を削除してもメモリ不足の場合、イメージ描画コマンドを転送するステップを有することを特徴とする請求項１０記載の情報処理方法。
【請求項１２】
前記登録文字削除コマンドは、現在作成中のページで使用されていない登録文字を削除させることを特徴とする請求項１０記載の情報処理方法。
【請求項１３】
前記登録メモリの要求コマンドに基づきプリンタが登録メモリを確保できない場合、文字データの登録を行わないことを特徴とする請求項１０記載の情報処理方法。
【請求項１４】
前記発行ステップにより登録文字削除コマンドを発行した後、文字データを登録できるか否かを判断する第２判断ステップを有し、
前記転送ステップは、前記第２判断ステップにより文字データを登録できると判別された場合、登録すべき文字データをプリンタに転送することを特徴とする請求項１０記載の情報処理方法。
【請求項１５】
ステータス要求コマンドをプリンタに送信するステップと、
印字すべき文字の文字データがプリンタに登録されているか否かを判別する判別ステップと、
前記判別ステップにより印字すべき文字の文字データがプリンタに登録されていないと判別された場合、前記ステータス要求コマンドに応じてプリンタから送信された登録メモリの容量に基づき文字データを登録できるか否かを判断する判断ステップと、
前記判断ステップにより文字データを登録できないと判断された場合、登録文字削除コマンドを発行する発行ステップと、
前記判断ステップにより文字データを登録できると判断された場合、登録すべき文字データをプリンタに転送する転送ステップと、
前記判別ステップにより印字すべき文字の文字データがプリンタに登録されていると判別された場合、プリンタに登録した文字データを印刷するための文字印字コマンドを転送するステップとを有することを特徴とする情報処理方法。
【請求項１６】
前記登録文字削除コマンドにより登録文字を削除してもメモリ不足の場合、イメージ描画コマンドを転送するステップを有することを特徴とする請求項１５記載の情報処理方法。
【請求項１７】
前記登録文字削除コマンドは、現在作成中のページで使用されていない登録文字を削除させることを特徴とする請求項１５記載の情報処理方法。
【請求項１８】
前記発行ステップにより登録文字削除コマンドを発行した後、文字データを登録できるか否かを判断する第２判断ステップを有し、
前記転送ステップは、前記第２判断ステップにより文字データを登録できると判別された場合、登録すべき文字データをプリンタに転送することを特徴とする請求項１５記載の情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力されるコマンドに基づき印刷を行う印刷装置に接続される情報処理装置、該情報処理装置における情報処理方法、該情報処理装置を含む印刷システム、及び、メモリに関する。
【０００２】
【従来の技術】
従来、この種の印刷システムでは、プリンタにフォントを登録する場合にプリンタ側の登録メモリに空きメモリがあるか否かをホストコンピュータ側では認識してフォントの登録を行うことは行っていなかった。
【０００３】
また、揮発性の登録メモリ上にフォント登録を行うのが一般的であり、不揮発性の登録メモリに登録フォントを格納すること、不揮発性の登録メモリにフォント登録を行った際に登録フォント情報をホストコンピュータで認識することを行っていなかった。
【０００４】
さらに、登録メモリは圧縮した登録フォントを格納する際には、ホストコンピュータ、もしくはプリンタのどちから一方で圧縮処理を行うのが一般的であり、圧縮処理をホストコンピュータ、プリンタで分担することや、ホストコンピュータ上に格納している文字の使用頻度情報に基づいてフォント登録を行うことを行っていなかった。
【０００５】
【発明が解決しようとする課題】
ところが、従来ではホストコンピュータ側では登録メモリに空きメモリがあるか否かを認識できない為に空きメモリがなくても登録処理を続行してしまう。
【０００６】
一方、プリンタ側ではメモリ不足が発生した以降の登録処理を無視するため、メモリ不足が発生した以降の登録文字が印字されないという問題があった。
【０００７】
また、揮発性の登録メモリ上にフォント登録を行うのが一般的であり、プリンタの電源を切ると登録フォントが消去される為に登録フォントの再利用ができないという問題があった。
【０００８】
さらに、登録メモリ上へ圧縮した登録フォントを格納する際には、ホストコンピュータ側、もしくはプリンタ側のどちらか一方でのみ圧縮処理を行う為に、ホストコンピュータかプリンタのどちらかに圧縮による負荷が全てかかるという問題や、印刷データ中で一度しか使用しない文字までプリンタに登録する場合があり、登録メモリを有効に使用できていないという問題があった。
【０００９】
本発明はかかる問題点を解決するために、フォント登録を行う前にプリンタ内に登録フォントを格納する為の専用メモリを確保し、この専用メモリ内に格納できる範囲内でのフォント登録を行うことを目的とする。
【００１０】
また、不揮発性の登録メモリに対してフォント登録を行い、プリンタの電源を入れた際にプリンタからホストコンピュータに対して、不揮発性の登録メモリに格納されている登録フォント情報を返すことによって、ホストコンピュータ側で登録フォントの把握を行うことを目的とする。
【００１１】
さらに、圧縮を施してフォント登録を行う際には、ホストコンピュータとプリンタ側で圧縮処理を分担して登録を行うこと、また、文字の使用頻度情報に基づいてフォント登録を行うことを目的とする。
【００１２】
また、空き登録メモリ不足によるフォントの未登録の回避、不揮発性登録メモリに格納された登録フォントの再利用、圧縮処理の作業分担による圧縮処理時間の短縮化、そして、文字使用頻度に基づく登録による登録メモリの効率利用が可能となる装置を提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記目的を達成するために、本発明の情報処理装置は、
登録メモリの要求コマンドをプリンタに送信する送信手段と、
印字すべき文字の文字データがプリンタに登録されているか否かを判別する判別手段と、
前記判別手段により印字すべき文字の文字データがプリンタに登録されていないと判別された場合、前記登録メモリの要求コマンドによりプリンタで確保されるメモリ容量に基づき文字データを登録できるか否かを判断する判断手段と、
前記判断手段により文字データを登録できないと判断された場合、登録文字削除コマンドを発行する発行手段と、
前記判断手段により文字データを登録できると判断された場合、登録すべき文字データをプリンタに転送する転送手段と、
前記判別手段により印字すべき文字の文字データがプリンタに登録されていると判別された場合、プリンタに登録した文字データを印刷するための文字印字コマンドを転送する手段とを有することを特徴とする。
また、本発明の情報処理装置は、
ステータス要求コマンドをプリンタに送信する手段と、
印字すべき文字の文字データがプリンタに登録されているか否かを判別する判別手段と、
前記判別手段により印字すべき文字の文字データがプリンタに登録されていないと判別された場合、前記ステータス要求コマンドに応じてプリンタから送信された登録メモリの容量に基づき文字データを登録できるか否かを判断する判断手段と、
前記判断手段により文字データを登録できないと判断された場合、登録文字削除コマンドを発行する発行手段と、
前記判断手段により文字データを登録できると判断された場合、登録すべき文字データをプリンタに転送する転送手段と、
前記判別手段により印字すべき文字の文字データがプリンタに登録されていると判別された場合、プリンタに登録した文字データを印刷するための文字印字コマンドを転送する手段とを有することを特徴とする。
【００１４】
また、本発明の情報処理方法は、
登録メモリの要求コマンドをプリンタに送信する送信ステップと、
印字すべき文字の文字データがプリンタに登録されているか否かを判別する判別ステップと、
前記判別ステップにより印字すべき文字の文字データがプリンタに登録されていないと判別された場合、前記登録メモリの要求コマンドによりプリンタで確保されるメモリ容量に基づき文字データを登録できるか否かを判断する判断ステップと、
前記判断ステップにより文字データを登録できないと判断された場合、登録文字削除コマンドを発行する発行ステップと、
前記判断ステップにより文字データを登録できると判断された場合、登録すべき文字データをプリンタに転送する転送ステップと、
前記判別ステップにより印字すべき文字の文字データがプリンタに登録されていると判別された場合、プリンタに登録した文字データを印刷するための文字印字コマンドを転送するステップとを有することを特徴とする。
また、本発明の情報処理方法は、
ステータス要求コマンドをプリンタに送信するステップと、
印字すべき文字の文字データがプリンタに登録されているか否かを判別する判別ステップと、
前記判別ステップにより印字すべき文字の文字データがプリンタに登録されていないと判別された場合、前記ステータス要求コマンドに応じてプリンタから送信された登録メモリの容量に基づき文字データを登録できるか否かを判断する判断ステップと、
前記判断ステップにより文字データを登録できないと判断された場合、登録文字削除コマンドを発行する発行ステップと、
前記判断ステップにより文字データを登録できると判断された場合、登録すべき文字データをプリンタに転送する転送ステップと、
前記判別ステップにより印字すべき文字の文字データがプリンタに登録されていると判別された場合、プリンタに登録した文字データを印刷するための文字印字コマンドを転送するステップとを有することを特徴とする。
【００１６】
【発明の実施の形態】
本発明の実施の形態の構成を説明する前に、本発明の実施の形態を適用するのに好適なレーザビームプリンタの構成について図１を参照しながら説明する。なお、本発明の実施の形態を適用するプリンタは、レーザビームプリンタに限られるものではなく、インクジェットプリンタ等の他のプリント方式のプリンタでも良いことは言うまでもない。
【００１７】
図１は本発明を適用可能な第１の出力装置の構成を示す断面図であり、例えばレーザビームプリンタ（ＬＢＰ）の場合を示す。
【００１８】
図において、１０００はＬＢＰ本体であり、外部に接続されているホストコンピュータから供給される印刷情報（文字コード等）やフォーム情報あるいはマクロ命令等を入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターン等を作成し、記録媒体である記録紙等に像を形成する。１０１２は操作のためのスイッチおよびＬＥＤ表示器等が配されている操作パネル、１００１はＬＢＰ本体１０００全体の制御およびホストコンピュータから供給される文字情報等を解析するプリンタ制御ユニットである。このプリンタ制御ユニット１００１は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１００２に出力する。レーザドライバ１００２は半導体レーザ１００３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１００３から発射されるレーザ光１００４をオン・オフ切り換えする。レーザ光１００４は回転多面鏡１００５で左右方向に振らされて静電ドラム１００６上を走査露光する。これにより、静電ドラム１００６上には文字パターンの静電潜像が形成されることになる。この潜像は、静電ドラム１００６周囲に配設された現像ユニット１００７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１０００に装着した用紙カセット１００８に収納され、給紙ローラ１００９および搬送ローラ１０１０と搬送ローラ１０１１とにより、装置内に取り込まれて、静電ドラム１００６に供給される。またＬＢＰ本体１０００には、図示しないカードスロットを少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なる制御カード（エミュレーションカード）を接続できるように構成されている。
【００１９】
図２は本発明の実施の形態を示すプリンタ制御システムの構成を説明するブロック図である。
【００２０】
ここでは、レーザビームプリンタ（図１）を例にして説明する。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ等のネットワークを介して処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【００２１】
また、本発明はシステム或は装置にプログラムを供給することによって実施される場合にも適用できることは言うまでもない。この場合、本発明に係るプログラムを格納した記憶媒体が、本発明を構成することになる。そして、該記憶媒体からそのプログラムをシステム或は装置に読み出すことによって、そのシステム或は装置が、予め定められた仕方で動作する。
【００２２】
図２において、２１００はホストコンピュータで、ＲＯＭ２００３のプログラム用ＲＯＭに記憶された文書処理プログラム等に基づいて図形，イメージ，文字，表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ２００１を備え、システムデバイス２００４に接続される各デバイスをＣＰＵ２００１が総括的に制御する。
【００２３】
また、このＲＯＭ２００３のプログラム用ＲＯＭにはＣＰＵ２００１の後述するフローチャートに係るプログラムを含む制御プログラム等を記憶し、ＲＯＭ２００３のフォント用ＲＯＭには上記文書処理の際に使用するフォントデータ等を記憶する。２００２はＲＡＭで、ＣＰＵ２００１の主メモリ，ワークエリア等として機能する。２００５はキーボードコントローラ（ＫＢＣ）で、キーボード２００９や不図示のポインティングデバイスからのキー入力を制御する。２００６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）２０１０の表示を制御する。２００７はメモリコントローラ（ＭＣ）で、ブートプログラム，種々のアプリケーション，フォントデータ，ユーザファイル，編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ２０１１とのアクセスを制御する。２００８はプリンタコントローラ（ＰＲＴＣ）で、所定の双方向性インタフェース（インタフェース）２０２１を介してプリンタ１０００に接続されて、プリンタ１０００との通信制御処理を実行する。なお、ＣＰＵ２００１は、例えばＲＡＭ２００２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ２０１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ２００１は、ＣＲＴ２０１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００２４】
プリンタ１０００において、２０１２はプリンタＣＰＵで、ＲＯＭ２０１３のプログラム用ＲＯＭに記憶された制御プログラム等或いは外部メモリ２０１４に記憶された制御プログラム等に基づいてシステムバス２０１５に接続される各種のデバイスとのアクセスを総括的に制御し、印刷部インタフェース２０１６を介して接続される印刷部（プリンタエンジン）２０１７に出力情報としての画像信号を出力する。また、このＲＯＭ２０１３のプログラムＲＯＭには、図３のフローチャートで示されるようなＣＰＵ２０１２の制御プログラム等を記憶する。ＲＯＭ２０１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ＲＯＭ２０１３のデータ用ＲＯＭにはハードディスク等の外部メモリ２０１４が無いプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。ＣＰＵ２０１２は入力部２０１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ２１００に通知可能に構成されている。２０１９はＣＰＵ２０１２の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ２０１９は、出力情報展開領域（フレームバッファ）、環境データ格納領域、に用いられる。
【００２５】
また、ＲＡＭ２０１９はフォント等の登録を行う為にそのメモリの一部を登録メモリ２０２２としても割り当てる。
【００２６】
外部登録メモリ２０２３はフォント等の登録を行う為の外部メモリであり、ハードディスク（ＨＤ）、フラッシュメモリ等の不揮発性メモリで構成され、メモリコントローラ（ＭＣ）２０２０によりアクセスを制御される。
【００２７】
前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ２０１４は、メモリコントローラ（ＭＣ）２０２０によりアクセスを制御される。外部メモリ２０１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、２０１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００２８】
また、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。さらに、図示しないＮＶＲＡＭを有し、操作パネル１０１２からのプリンタモード設定情報や後述する登録フォント等を記憶するようにしても良い。
【００２９】
ここで、図３のフローチャートを参照してプリンタの処理の概略を説明する。プリンタはホストからデータが転送されるとデータ入力待ち状態（ステップ９０００）を抜けてデータ入力処理（ステップ９００１）を行う。次に入力されたデータを解析し（ステップ９００２）、各コマンドに従った処理を行うが、排紙コマンドを解析した場合、（ステップ９００４）フレームバッファの内容をビデオ信号に変換し、（ステップ９００４）プリントエンジン部に転送し印刷を行い（ステップ９００５）用紙を排紙する。（ステップ９００６）また、その他のコマンドの場合、各コマンドに従った描画処理等を行い、（ステップ９００７）フレームバッファに印刷イメージを形成する。
【００３０】
ここで、図４、図５、図６を参照してフォント登録時にプリンタ内部に登録専用メモリの確保を行う方法と、ホスト側とプリンタ側の登録専用メモリの残り容量の計算方法を説明する。
【００３１】
まず、ホストコンピュータ２１００（以下ホストとする）とプリンタ１０００は双方向Ｉ／Ｆケーブル２０２１で接続されていて、ホスト側からプリンタステータス要求コマンド３００１を発行し、プリンタ側で該コマンドを解析すると、現在の登録メモリ２０２２、２０２３の空き容量３００２と、１フォントを登録するために必要なメモリ容量３００３と、１文字登録する毎に必要なメモリサイズ３００４を情報としてホストへ返送する（図４）。
【００３２】
ホストへ返送された登録メモリの空き容量情報３００２より、ホスト側はフォント登録に使用するメモリ容量や、格納メモリ（揮発性メモリ２０２２、不揮発性メモリ２０２３）を決定し、該メモリ容量の確保を行う為に登録メモリの要求コマンド３００５を発行する（図５）。
【００３３】
プリンタ側では該コマンドを解析すると、登録メモリに対してメモリ容量の確保を行う。
【００３４】
ホスト側はこの登録メモリ要求コマンド３００５で指定した登録メモリ容量を記憶しておき、この登録メモリ容量内に収まる範囲内でフォント登録を行う。
【００３５】
この際、ホスト側は該登録メモリ容量情報を基に図６の計算式３１００から登録を行う際に随時プリンタ側の登録メモリ２０２２、２０２３の残りの容量を計算する。
【００３６】
また、ホスト側でフォント登録に使用するメモリ容量を決定する場合には、登録メモリ２０２２、２０２３の空き容量全てを使用すると決定しても良いし、または、空き容量の一部のみを使用すると決定しても良く、ホストユーザーが使用する登録メモリ２０２２、２０２３の容量を任意に指定するか、もしくはホスト側が空き登録メモリ２０２２、２０２３の何パーセントを使用するというふうに自動的に算出しても良い。
【００３７】
さらに、登録メモリの確保を行うタイミングとしては、印刷データの始めに該登録メモリの要求コマンド３００５を発行して登録メモリの確保を行っても良いし、印刷データの途中で該コマンドを発行して登録メモリの確保を行っても良いとする。
【００３８】
また、登録メモリの解放を行うタイミングとしては、印刷データの終りにプリンタが自動的に登録メモリの解放を行っても良いし、印刷データの終り、もしくは印刷データの途中でホストからプリンタへ登録メモリ解放要求コマンドを発行して登録メモリの解放を行っても良いとする。
【００３９】
図４、図５ではプリンタの返送する登録メモリの空き容量３００２情報に基づいて、ホスト側で登録メモリの確保容量を決定しているが、図７では該登録メモリの空き容量３００２情報の有無に関わらず、ホストからプリンタに対して一方的に登録メモリ要求コマンド３００５を発行する方法を説明する。
【００４０】
まず、ホスト側はプリンタステータス要求コマンド３００１を発行せずに、フォント登録に使用するメモリ容量を決定し、該メモリ容量の確保を行う為に登録メモリの要求コマンド３００５を発行する。
【００４１】
プリンタ側では該コマンドを解析すると、登録メモリに対してメモリ容量の確保を行う。
【００４２】
この方法においては、プリンタ側の空き登録メモリ容量をホスト側が意識せず、確保する登録メモリ容量を任意に決定している為、プリンタ側の空きメモリ不足から登録メモリの確保に失敗する可能性がある。
【００４３】
そこで、ホストが発行する登録メモリの要求コマンドに対して、プリンタ側は登録メモリの確保を行った後、登録メモリの確保に成功したか否か、もしくは、登録メモリの要求コマンド３００５で指定した容量分のメモリ確保には失敗したが、メモリ容量の一部のみ確保に成功した場合は、確保できたメモリ容量等の登録メモリの確保情報３００６をホストへ返送する。
【００４４】
ホスト側では、該情報３００６に基づき、登録メモリの確保に成功した場合は確保したメモリ容量に収まる範囲内でフォント登録を行うものとする。
【００４５】
また、登録メモリの確保に失敗し登録メモリが全く確保出来なかった場合にはフォント登録を行わないものとする。
【００４６】
一方、登録メモリ要求コマンド３００５で指定した容量分のメモリ確保には失敗したが、メモリ容量の一部のみ確保に成功した場合は、この容量に収まる範囲内でフォント登録を行うものとする。
【００４７】
ここで、ホスト側でのメモリ容量の決定方法としては、ホストユーザーが使用する登録メモリ２０２２、２０２３の容量を任意に指定するか、もしくはホスト側に登録メモリを何バイト使用するといった固定情報を格納しておき、これに基づいて使用する登録メモリ容量を決定するものとする。
【００４８】
図７では、登録メモリの確保情報３００６をプリンタからホストへ返送する場合について説明したが、図８では該情報３００６をホストへ返送しない場合について説明する。
【００４９】
ここで、ホスト側より登録メモリの要求コマンド３００５を発行し、プリンタ側において確保を行う処理については図７の処理と同様である。
【００５０】
異なるのは、登録メモリの確保情報３００６をホストへ返送しないところである。
【００５１】
この場合、登録メモリの確保の有無や確保できたメモリ容量に関わらず、ホストからプリンタへ一方的にフォント登録処理を行うものとする。
【００５２】
図９はプリンタ１０００がフォント登録時に使用する登録テーブルを説明する図である。
【００５３】
登録テーブル４０００は登録メモリ２０２２、２０２３に生成される。登録テーブル４０００はヘッダ部、ポインタ部、データ部から構成される。ヘッダ部には登録文字数が格納される。ポインタ部には文字データへのポインタ値が格納される。
【００５４】
また、文字データ４００１はビットマップデータのサイズ（バイト数）と、登録した文字を識別するための番号である登録ＩＤと、ビットマップの幅高と、印字指定位置からビットマップの左上の位置までのオフセット値（Ｘ方向とＹ方向）と、文字ピッチと、ビットマップデータ（バイナリ）で構成される。上記の情報はホストコンピュータ２１００から文字登録コマンドのパラメータとして与えられる。また、ここでは文字コードを登録ＩＤとして使用することにする。
【００５５】
図１０はホスト側の登録管理テーブルの構造を示す図である。
【００５６】
ホスト側の登録管理テーブル５０００は、プリンタに登録した文字のコードとデータのサイズを記憶するためのテーブルである。登録管理テーブル５０００はヘッダ部とデータ部から構成される。ヘッダ部はプリンタ側の登録メモリの総サイズと、現在登録に使用しているメモリサイズと登録文字数が格納される。
【００５７】
データ部は各文字データで構成され、各文字データはポインタによってリンクされている。文字データは登録ＩＤと、プリンタ側の文字データ４００１のサイズと、データが最後に参照されたページの番号と、次のデータへのポインタであるリンクから構成される。ページ番号は１印刷ジョブ内（１ファイル内）のページ数である。
【００５８】
また、図１１はホスト側の印刷文書ファイルの構造を説明する図である。
【００５９】
文書ファイル６０００はヘッダ部とデータ部から構成され、ヘッダ部には印刷時にホスト側で必要な情報が格納されている。またデータ部は各文字データで構成され、文字データ６００１はデータの識別子と、フォントを識別するためのフォントＩＤと文字コードと、文字サイズと、印字位置（座標）が格納されている。ホスト側では印刷時にこのファイルを参照しながらフォント選択、文字サイズ、文字印字位置を決定し、プリンタにコマンドを転送する。
【００６０】
ここで、図１２を参照して登録による効果を説明する。登録をしない場合、ホストコンピュータ内部では印刷イメージ６００４をメモリ上に作成する。印刷イメージとは実際には図１１で示されるような形式のファイルであり、用紙上のどの位置にどのフォントをどの大きさで印字するかが表示されている。そして実際に印刷に使用されるフォントデータはフォントメモリ６００５に格納されている。印刷を行う場合、印刷イメージ６００４を参照しながらフォントデータ（ビットマップ）をプリンタ１０００に転送する。プリンタは転送されたビットマップをＲＡＭ２０１９内部のフレームバッファ６００６上に展開する。
【００６１】
また、登録を使用する場合、ホストコンピュータ内部の印刷イメージ６００４、フォントメモリ６００５は上記登録を使用しない場合と同様である。印刷を行う場合、ホストはビットマップをプリンタに登録し、同一の文字を印字する場合は文字コードだけを転送する。
【００６２】
プリンタはビットマップを登録メモリ２０２２、２０２３内に格納し、登録メモリ内のビットマップを参照してフレームバッファ６００６を生成するので同一文字を印字する場合は登録ＩＤだけでビットマップを再度転送する必要はない。
【００６３】
図１３はホストコンピュータ側の印刷処理の概略を示すフローチャートである。
【００６４】
印刷が指定された場合、まず、ステータス要求コマンドをプリンタに送信し（ステップ１００００）、プリンタからのステータス返送を待ち（ステップ１０００１）、ステータスが返送されるとステータスを読み込み（ステップ１０００２）、各情報をホスト内部に記憶しておく。
【００６５】
ここで、図７、図８の場合については、上述のステップ１００００から１０００２までの処理は行わずに、ステップ１０００３から開始するものとする。
【００６６】
ステップ１０００３では、登録メモリとして確保を行う為の容量の決定を行うわけであるが、この際の決定方法としては図４、図５、図７、図８で説明したように、ステップ１０００２でプリンタから返送された登録メモリの空き容量３００２情報より登録容量を算出しても良いし、任意に設定しても良いとする。
【００６７】
さらに、印刷データの大きさに応じて登録メモリの確保を行うか否かを判断し、さらに登録メモリの確保を行う際には、その容量を印刷データの大きさから自動的に算出しても良いとする。
【００６８】
また、格納メモリ（揮発性メモリ２０２２、不揮発性メモリ２０２３）を設定する際には、ホストユーザーが任意に設定しても良いし、揮発性メモリから優先的に登録フォントを格納し、揮発性メモリ上に空きメモリが無くなれば不揮発性メモリ側へ登録を行うというように段階的にシフトさせても良いとする。
【００６９】
ステップ１０００４ではステップ１０００３で決定した登録メモリ容量を基に、プリンタに対して登録メモリの要求コマンド３００５を送信する。
【００７０】
ここでプリンタは該コマンドに従って登録メモリの確保を行う。
【００７１】
そして、プリンタ側は、登録メモリの確保を行った後、メモリの確保に失敗したか否か、もしくは何バイトメモリ確保ができたかといった登録メモリの確保情報３００６をホストへ返送する。ステップ１０００６では、返送された確保情報３００６を受信する。
【００７２】
ホスト側は、この確保情報を基に実際に文字登録を行う際に登録容量を再設定する。
【００７３】
ただし、図８の場合については、上述のステップ１０００６の処理を行わないものとする。
【００７４】
次に、文書ファイル６０００から文字データ６００１を読み込み（ステップ１０００７）、文書ファイルが終了であれば処理を終了する（ステップ１０００８）。
【００７５】
一方、文書ファイルが終了でなければフォントが変化したか否かを調べ（ステップ１０００９）、フォントが変化していればコマンドによりフォント選択を行った後（ステップ（１００１０）、登録処理を行う（ステップ１０００１１）。
【００７６】
以後、ステップ１０００７以降をファイル終了まで繰り返す。
【００７７】
図１４はステップ１００１１の登録処理の詳細を示すフローチャートである。
【００７８】
まず、登録管理テーブル５０００を検索し（ステップ１１０００）、同じ文字が登録されているか否かを調べる（ステップ１１００１）。
【００７９】
登録されている場合はステップ１１０１０へ進む。
【００８０】
一方、登録されていない場合は登録を行った後の空きメモリ容量を計算し（ステップ１１００２）、空き容量が不足していると判断すれば、登録管理テーブル５０００を検索して現在作成中のページ以前のページ番号である登録文字を検索し、該当する登録文字に対して登録文字削除コマンドを発行して登録メモリ２０２２、２０２３より削除を行う（ステップ１１００４）。
【００８１】
ここで、登録文字の削除を行う際には、上記条件を満たす文字を全て削除しても良いし、新たに文字登録を行う為に必要なサイズ分の空きができるまで、段階的に文字を削除する構成であっても良いとする。
【００８２】
ステップ１１００３において空き容量が足りていると判断すれば、登録文字の削除処理を行わずにステップ１１００８へ進む。
【００８３】
ステップ１１００５では再度空きメモリ容量を計算し、空き容量が不足していれば登録処理は行わずにイメージ描画コマンド、およびビットマップデータを転送してイメージとしてプリンタに描画させる（ステップ１１００７）。
【００８４】
一方、ステップ１１００６において、空き容量が足りていると判断すれば、文字をプリンタに転送し（ステップ１１００８）、登録管理テーブルを更新する（ステップ１１００９）。
【００８５】
ステップ１１０１０では文字コードを文字印字コマンドと共にプリンタへ転送し、プリンタは登録した文字の印字処理を行う。
【００８６】
以上のように、フォント登録を行う前にプリンタ内部に登録専用メモリを確保することによって、メモリ不足から生じるフォントの未登録を防ぐことが可能となる。
【００８７】
（第２の発明の実施の形態）
本第２の発明の実施の形態では、登録メモリの確保の際に、登録フォントの使用目的に応じて個別に登録メモリ領域を確保する場合について説明する。
【００８８】
本発明の実施の形態では、印刷時にフォームを用いた場合に、フォーム専用の登録メモリ通常印字専用の登録メモリ等をそれぞれ個別に確保した場合における構成を図１５を用いて説明する。
【００８９】
ホスト側の処理構成は、前記第１の発明の実施の形態の図１２と同様である。
【００９０】
異なるのは、プリンタ側においてフォーム７００１で使用されている文字を登録する為の登録メモリ７００３と、通常印字７００２で使用されている文字を登録する為の登録メモリ７００４をそれぞれ個別に確保するところである。
【００９１】
本発明の実施の形態におけるデータ処理を図１３のフローチャートに従って説明する。
【００９２】
ステップ１００００からステップ１０００２まで、及びステップ１０００６からステップ１００１１までのデータ処理については前記第１の発明の実施の形態と同様である。
【００９３】
異なるのは、ステップ１０００３からステップ１０００４までの処理に関して、フォント登録を行う際にホストコンピュータ側で通常印字、フォーム印字等の判断を行い、通常印字用、フォーム用それぞれ使用する登録メモリ容量を決定した後（ステップ１０００３）、登録メモリ要求コマンド３００５を発行して（ステップ１０００４）、そのコマンドに基づきプリンタはそれぞれ専用の登録メモリの確保を行う。
【００９４】
ただし、前記第１の発明の実施の形態と同様に図４、図５、図７、図８の構成も可能とする。
【００９５】
また、使用目的に応じて個別に確保する登録メモリは、各登録フォントが必要になった時点でそれぞれ個別に確保を行い、さらに各登録フォントが不用になった時点で、それぞれの個別にメモリの解放を行えるものとする。
【００９６】
以上のように、各登録フォントの使用目的に応じて、個別に登録メモリの確保を行うことによって、登録メモリの効率的な使用が可能となる。
【００９７】
（第３の発明の実施の形態）
本第３の発明の実施の形態では、ＲＡＭ等の揮発性メモリ２０２２上に登録メモリの確保が不可能な場合、揮発性メモリに格納されている登録フォントをハードディスクやフラッシュメモリ等の不揮発性メモリ２０２３上に退避させ揮発性メモリ上に空きメモリを確保し、揮発性メモリ上に新たなフォント登録を行う場合について説明する。
【００９８】
本発明の実施の形態におけるホスト側の登録処理を図１６のフローチャートに従って説明する。なお、このフローチャートに係るプログラムはＲＯＭ２００３に記憶され、ＣＰＵ２００１によって実行される。
【００９９】
ステップ１１０００からステップ１１００１まで、及びステップ１１００９からステップ１１０１０までのデータ処理については前記第１の発明の実施の形態と同様である。
【０１００】
異なるのは、ステップ１１００２においてプリンタ側で揮発性メモリ２０２２に格納される登録フォントを不揮発性メモリ２０２３に退避させるところである。
【０１０１】
ステップ１１００２において登録フォントをプリンタに転送した際のプリンタ側の登録処理を図１７のフローチャートに従って説明する。なお、このフローチャートに係るプログラムはＲＯＭ２０１３に記憶され、ＣＰＵ２０１２によって実行される。
【０１０２】
ステップ１２００１では、揮発性メモリ２０２２に対してフォント登録を行うだけの空きメモリが有るか否かを計算し、ステップ１２００２において揮発性メモリ上に空きメモリが有ると判断した場合には揮発性メモリ上へフォント登録を行い（ステップ１２００７）処理を終了する。
【０１０３】
一方、ステップ１２００２において揮発性メモリ上に空きメモリが無いと判断した場合には、ステップ１２００３にて不揮発性メモリ上に空きメモリが有るか否かを調べ、空きメモリが無いと判断した場合には登録に失敗したことをプリンタ上に表示させ（ステップ１２００８）処理を終了する。なお、ここで双方向インターフェースを利用して、プリンタに登録できず正しく印字できない旨をＣＲＴ２０１０に表示させてもよい。
【０１０４】
また、ステップ１２００８においてエラー表示させずに処理を終了しても良いとする。
【０１０５】
また、ステップ１２００４にて空きメモリが有ると判断した場合には、揮発性メモリに格納されている登録フォント内部の登録テーブル８０００（図１８）より使用頻度を調べ（ステップ１２００５）、使用頻度の低いものから順に不揮発性メモリへと移動を行う（ステップ１２００６）。
【０１０６】
その後、ステップ１２００１以降の処理を繰り返すことによって、揮発性メモリ上に空きメモリを確保して登録処理を終了するか、もしくは不揮発性メモリが不足した為に揮発性メモリ上でのメモリの確保が不可能であると判断されるまで処理を継続する。
【０１０７】
図１８は使用頻度情報を持ったプリンタ側の登録テーブルの構造を示す図である。
【０１０８】
図１８は使用頻度情報８００２、８００３を除けば、第１の発明の実施の形態の図９と構造は同様である。
【０１０９】
使用頻度情報８００２は１文字セット当たりの使用頻度情報であり、使用頻度情報８００３は１文字あたりの使用頻度情報である。
【０１１０】
登録フォントの移動を行う際には、文字セット単位、文字単位どちらの移動でも良く、その際にはそれぞれ使用頻度情報８００２、８００３を参照して使用頻度の低いものから移動を行うものとする。
【０１１１】
本発明の実施の形態では、高速アクセスが可能な揮発性メモリから揮発性メモリよりアクセス速度の落ちる不揮発性メモリへ、使用頻度の低い登録フォントを退避させることによって、揮発性メモリ上に空きメモリが確保でき、このメモリ上に新たなフォント登録が可能となる為、登録フォントの印字速度の低下を防ぐことが可能である。
【０１１２】
逆に、登録フォントを不揮発性メモリ上へ優先的に格納させることによって、プリンタの電源を切った後も不揮発性メモリ上に格納されている登録フォントが残ることを利用して、登録フォントの再利用を可能にすることもできるものとする。
【０１１３】
さらに、本発明の実施の形態では登録フォントの移動の際に、使用頻度の低いものから順に移動させるとしたが、使用頻度に関わらず登録メモリのアドレスの低いものから、もしくはアドレスの高いものから順に移動させても良いとする。
【０１１４】
また、本第３の発明の実施の形態の登録フォントの移動に関しては、プリンタ側が空きメモリに応じて自動的に登録フォントの移動を行うとしたが、あらかじめ、プリンタ内部の揮発性メモリ容量と不揮発性メモリ容量の情報をプリンタ側からホスト側へ返すことによって、揮発性メモリの容量管理と不揮発性メモリの容量管理をホスト側で行うことにより、ホストからプリンタに対して登録フォントの移動を行う為のコマンドの発行を行い、プリンタ側はこのコマンドに従って登録フォントの移動を行っても良いとする。
【０１１５】
また、登録フォントの移動に関しては、移動元から移動先へ登録フォントを退避させた後、登録フォントの削除により移動元に空きメモリが確保できた場合、移動先から移動元へ登録フォントを復帰させることも可能とする。
【０１１６】
（第４の発明の実施の形態）
本第４の発明の実施の形態では、ホストの電源を一旦切った後、再度電源を入れた場合に、ハードディスクやフラッシュメモリ等の不揮発性メモリ２０２３に格納されている登録フォントの情報をホストへ認識させる方法について説明する。
【０１１７】
図１９は本発明の実施の形態の構成図である。
【０１１８】
ホストの電源を入れた際に、ホスト側からプリンタへ登録フォント情報要求コマンド９００１を発行する。
【０１１９】
プリンタ側で該コマンドを解析すると、プリンタ内部の不揮発性メモリ２０２３に格納されている登録フォントを検索した後、登録フォント情報９００２をホストへ返送する。
【０１２０】
図２０は登録フォント情報９００２の構造を示す図である。
【０１２１】
登録フォント情報９００２は、ホスト側に登録管理テーブル５０００を作成する為に必要な情報から構成されており、ヘッダ部とデータ部から構成される。
【０１２２】
ヘッダ部はプリンタ側の登録メモリの総サイズと、現在登録に使用しているメモリサイズと登録文字数が格納される。
【０１２３】
データ部は各文字データで構成され、登録ＩＤとプリンタ側の文字データ４００１のサイズから構成される。
【０１２４】
ホスト側は該登録フォント情報９００２を基にホスト内部に登録管理テーブル５０００を作成し、第１の発明の実施の形態と同様に登録フォントの管理を行うものとする。
【０１２５】
以上のように、不揮発性メモリに格納されている登録フォント情報をホストへ返送することによって、ホスト側での登録フォントの把握が可能となる。
【０１２６】
（第５の発明の実施の形態）
本第５の発明の実施の形態では、登録フォントを圧縮してプリンタ内部の登録メモリへ格納する際に、登録フォントの一部をホスト側で圧縮してプリンタへ転送して登録メモリへ格納し、残りの登録フォントについてはホスト側では圧縮を行わずにプリンタへ転送し、プリンタ内部で圧縮して登録メモリへ格納する構成であっても良いとする。
【０１２７】
以上のように、圧縮処理をホスト側とプリンタ側で分担することによって、圧縮処理時間の短縮化が可能となる。
【０１２８】
（第６の発明の実施の形態）
本第６の発明の実施の形態では、ホスト側にあらかじめ文字の使用頻度テーブルを格納しておき、該使用頻度テーブルを参照して使用頻度の高いものから順にフォント登録を行う構成でも良いとする。
【０１２９】
以上のように、使用頻度テーブルに基づくフォント登録により、登録メモリの効率的な利用が可能となる。
【０１３０】
【発明の効果】
以上述べたように本発明によれば、プリンタ内部にフォント登録専用のメモリ領域を確保し、確保できたメモリ領域内に収まる範囲でフォント登録を行い、さらに登録フォントの使用目的に応じて個別に登録メモリを確保することによって、登録メモリ不足の発生を防ぎ、なおかつ確保したメモリ領域を効率的に使用することが可能となる。
【０１３１】
また、揮発性メモリと不揮発性メモリ間において登録フォントを必要に応じて退避、復帰させることによって、高速アクセスが可能なメモリの有効利用が可能となる。
【０１３２】
さらに、上位機器側に格納した文字の使用頻度テーブルに基づくフォント登録を行うことにより、登録メモリの効率的な利用が可能となる。
【０１３３】
また、上位機器によりプリンタの登録フォントを管理できるようになる。
【図面の簡単な説明】
【図１】出力装置の構成を示す断面図である。
【図２】プリンタ制御システムの構成を説明するブロック図である。
【図３】プリンタの処理概略を示すフローチャートを示す図である。
【図４】ホスト、プリンタ間のコマンド構成を示す図である。
【図５】ホスト、プリンタ間のコマンド構成を示す図である。
【図６】メモリ計算式を示す図である。
【図７】ホスト、プリンタ間のコマンド構成を示す図である。
【図８】ホスト、プリンタ間のコマンド構成を示す図である。
【図９】プリンタ側の登録テーブルの構造図である。
【図１０】ホスト側の登録管理テーブルの構造図である。
【図１１】ホスト側の文書ファイルの構造図である。
【図１２】ホスト、プリンタ間の登録フォント構成図である。
【図１３】ホスト側の印刷処理概略を示すフローチャートを示す図である。
【図１４】ホスト側の登録処理の詳細を示すフローチャートを示す図である。
【図１５】ホスト、プリンタ間の登録フォント構成図である。
【図１６】ホスト側の登録処理の詳細を示すフローチャートを示す図である。
【図１７】プリンタ側の退避処理の詳細を示すフローチャートを示す図である。
【図１８】プリンタ側の使用頻度情報を格納した登録テーブルの構造図である。
【図１９】ホスト、プリンタ間のコマンド構成を示す図である。
【図２０】プリンタ側の登録フォント情報の構造図である。
【符号の説明】
１０００  プリンタ
１００１  プリンタ制御ユニット
１０１２  操作部
２０１２  ＣＰＵ
２０１３  プログラムＲＯＭ、フォントＲＯＭ
２０１４  外部メモリ
２０１５  システムバス
２０１６  印刷部Ｉ／Ｆ
２０１７  印刷部
２０１８  入力部
２０１９  ＲＡＭ
２０２０  ＭＣ
２０２１  双方向Ｉ／Ｆケーブル
２０２２  登録メモリ
２０２３  外部登録メモリ
２１００  ホストコンピュータ
【図１】
0003618884.tif 000002
【図２】
0003618884.tif 000003
【図３】
0003618884.tif 000004
【図４】
0003618884.tif 000005
【図５】
0003618884.tif 000006
【図６】
0003618884.tif 000007
【図７】
0003618884.tif 000008
【図８】
0003618884.tif 000009
【図９】
0003618884.tif 000010
【図１０】
0003618884.tif 000011
【図１１】
0003618884.tif 000012
【図１２】
0003618884.tif 000013
【図１３】
0003618884.tif 000014
【図１４】
0003618884.tif 000015
【図１５】
0003618884.tif 000016
【図１６】
0003618884.tif 000017
【図１７】
0003618884.tif 000018
【図１８】
0003618884.tif 000019
【図１９】
0003618884.tif 000020
【図２０】
0003618884.tif 000021