(57)【要約】      （修正有）【課題】オンライン印刷と同等に文字資源を管理でき、通常の印刷だけでなく障害発生時に行われるリカバリ印刷でも正しく印刷することができる印刷装置、印刷支援装置、印刷方法、及び印刷支援方法を提供する。【解決手段】エミュレーションコンポーネント３０は、文字コードが対応付けられた文字パターンをホストからダウンロードしたときに、該文字パターンを文字資源記憶部４６の該ダウンロード毎に異なる記憶領域に格納する。更に、文字コードにより文字パターンが指定された印刷データを、該文字パターンが格納された記憶領域のアドレスにより該文字パターンを指定した共通ＰＤＬデータに変換し、コントローラ４０により描画コンポーネント４４に出力される。描画コンポーネント４４は、該共通ＰＤＬデータに基づいて文字資源記憶部４６から文字パターンを読み出して画像データに展開し、プリントエンジン４８にて印刷する。【選択図】図１
2006188024.tif 000002
【特許請求の範囲】
【請求項１】
文字資源を記憶するための記憶手段と、
文字コードが対応付けられた文字資源を外部からダウンロードするダウンロード手段と、
前記ダウンロード手段によりダウンロードされた文字資源を前記記憶手段の前記ダウンロード毎に異なる記憶領域に格納する格納手段と、
前記文字コードにより文字資源が指定された印刷情報を、該文字資源が格納された前記記憶領域のアドレスにより該文字資源を指定した印刷情報に変換する変換手段と、
前記変換手段により変換された印刷情報に基づいて前記記憶手段から文字資源を読み出して印刷する印刷手段と、
を含む印刷装置。
【請求項２】
前記文字コード、前記文字コードが対応付けられた文字資源を格納した記憶領域のアドレス、及び該文字資源を用いた印刷が完了したか否かを識別するための識別情報を対応付けて記憶した履歴テーブルを更に備え、
前記格納手段は、該履歴テーブルに基づいて前記文字資源を格納する記憶領域を決定し、該決定した記憶領域に前記文字資源を格納する
請求項１記載の印刷装置。
【請求項３】
文字資源を記憶するための記憶手段が設けられ且つ印刷情報に基づいて該記憶手段から文字資源を読み出して印刷する印刷装置の印刷を支援する印刷支援装置であって、
文字コードが対応付けられた文字資源を外部からダウンロードするダウンロード手段と、
前記ダウンロード手段によりダウンロードされた文字資源を前記記憶手段の前記ダウンロード毎に異なる記憶領域に格納する格納手段と、
前記文字コードにより文字資源が指定された印刷情報を、該文字資源が格納された前記記憶領域のアドレスにより該文字資源を指定した印刷情報に変換する変換手段と、
を含む印刷支援装置。
【請求項４】
前記文字コード、前記文字コードが対応付けられた文字資源を格納した記憶領域のアドレス、及び該文字資源を用いた印刷が完了したか否かを識別するための識別情報を対応付けて記憶した履歴テーブルを更に備え、
前記格納手段は、該履歴テーブルに基づいて前記文字資源を格納する記憶領域を決定し、該決定した記憶領域に前記文字資源を格納する
請求項３記載の印刷支援装置。
【請求項５】
前記ダウンロード手段によりダウンロードされた最新の文字資源を前記文字コード毎に記憶する最新文字資源記憶手段と、
前記最新文字資源記憶手段に記憶された最新の文字資源を、予め定められたタイミングで前記印刷装置の記憶手段に転送する転送手段と、
を更に含む請求項３または請求項４記載の印刷支援装置。
【請求項６】
前記最新文字資源記憶手段を複数個備え、
前記ダウンロード手段によりダウンロードされた最新の文字資源を、前記ダウンロード手段のダウンロードのタイミングに応じて該複数個の最新文字資源記憶手段のいずれかに記憶した
請求項５記載の印刷支援装置。
【請求項７】
文字コードが対応付けられた文字資源を外部からダウンロードし、
前記ダウンロードされた文字資源を、文字資源を記憶するための記憶手段の前記ダウンロード毎に異なる記憶領域に格納し、
前記文字コードにより文字資源が指定された印刷情報を、該文字資源が格納された前記記憶領域のアドレスにより該文字資源を指定した印刷情報に変換し、
前記変換された印刷情報に基づいて前記記憶手段から文字資源を読み出して印刷する
印刷方法。
【請求項８】
文字資源を記憶するための記憶手段が設けられ且つ印刷情報に基づいて該記憶手段から文字資源を読み出して印刷する印刷装置の印刷を支援する印刷支援方法であって、
文字コードが対応付けられた文字資源を外部からダウンロードし、
前記ダウンロードされた文字資源を前記記憶手段の前記ダウンロード毎に異なる記憶領域に格納し、
前記文字コードにより文字資源が指定された印刷情報を、該文字資源が格納された前記記憶領域のアドレスにより該文字資源を指定した印刷情報に変換する
印刷支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部から文字資源（文字パターン、フォント）をダウンロードして蓄積し、該文字資源を使用して印刷する印刷装置及び印刷方法、該印刷装置の印刷を支援する印刷支援装置、及び該印刷装置の印刷を支援する印刷支援方法に関する。
【背景技術】
【０００２】
ホストコンピュータ（ホスト）と印刷装置（プリンタ）がオンライン接続されている印刷システムでは、ダイナミックロードと呼ばれる機能が提供されている。ダイナミックロードとは、印刷データで印刷指示された文字の文字資源（文字パターン、フォント）がプリンタに内蔵されていない場合に、プリンタがホストから文字資源を取得（ダウンロード）し、印刷を続行する機能である。
【０００３】
文字の印刷では、文字を取り扱うためにそれぞれの文字にコード（文字コード）を割り当てて処理している。標準的な文字については、文字コードと文字資源とが１対１で対応付けられてプリンタの文字資源記憶部に標準的に内蔵されているが、ユーザやメーカが独自に定義した外字などの文字資源は上記標準的な文字の文字コード以外の文字コードに独自に割り当てられる（すなわち、文字コードと文字資源とが１対多の関係にあり、１つの文字コードに対して多数の文字資源が存在する）ため、プリンタには内蔵されない。従って、このような文字資源は、上記ダイナミックロードの機能により印刷データに応じてホストから取得する必要がある。以下、このような文字をダイナミックロード対象文字と呼称する。
【０００４】
また、プリンタ内部に印刷データを格納する記憶装置（スプール）を備えることで、印刷時にホストが稼動していなくとも該スプールに格納した印刷データを順次読み出すことにより印刷するオフライン印刷システムも考案されている。このようなプリンタにおいても、文字資源を蓄積するための文字資源記憶部が備えられ、上記標準的な文字の文字資源の他、ダイナミックロード対象文字の文字資源を、印刷データの取得に先立って予めホストからダウンロードして記憶しておくことができる。従って、必要なデータをホストからダウンロードした後はオフラインで印刷することができる。この方式では、一括大量印刷、ホストの運用コスト改善、操作性の向上等の優れた機能を提供できる。
【０００５】
更に、図１７（Ａ）に示されるように、複数のプリンタ（プリンタ１１Ａ、１１Ｂ）の各々が複数のホスト（ホスト５０Ａ〜５０Ｄ）と接続され、各プリンタが該複数のホストから受信した各ホスト独自の形式の印刷データ（例えばページ記述言語（PDL））を共通のＰＤＬ形式の印刷データ（共通ＰＤＬデータ）に変換して印刷する印刷システムも考案されている。
【０００６】
以下、ホスト５０Ａ〜５０Ｄを特に区別しないで説明するときにはホスト５０と呼称する。また、プリンタ１１Ａ、１１Ｂは同一構成であり、プリンタ１１Ａ、１１Ｂを特に区別しないで説明するときにはプリンタ１１と呼称する。
【０００７】
図１７（Ｂ）に示されるように、従来のプリンタ１１は、ホスト５０から印刷データを受信して、ホスト５０毎に対応した印刷データ（図１７では、ＰＤＬ−Ａ、ＰＤＬ−Ｂ、ＰＤＬ−Ｃ、ＰＤＬ−Ｄ）を共通ＰＤＬデータに変換する変換手段（エミュレーションコンポーネント）１２Ａ〜１２Ｄ、エミュレーションコンポーネント１２Ａ〜１２Ｄから出力された共通ＰＤＬデータをスプール１６に蓄積したり、該スプール１６に蓄積した共通ＰＤＬデータを読み出して出力するコントローラ１４、コントローラ１４から出力された共通ＰＤＬデータのコマンドを解析して画像データを出力する描画コンポーネント１８、描画コンポーネント１８から出力された画像データを印刷するプリントエンジン２２が備えられている。また、描画コンポーネント１８には、文字資源を蓄積するための文字資源記憶部２０が備えられている。文字資源記憶部２０には、標準的な文字資源が文字コードに対応して予め蓄積されている。また、文字資源記憶部２０には、必要に応じてホストコンピュータ５０から送信された外字などの文字資源が一時的に蓄積される。描画コンポーネント１８は、印刷データで文字コードにより指定された文字資源を該文字資源記憶部２０から読み出してプリントエンジン２２に出力することができる。
【０００８】
従って、ホストとオフラインで印刷することができると共に、プリンタにエミュレーションコンポーネントを追加するだけで、複数種類の印刷データの印刷ができる。これにより、プリンタのラインナップ化、高い汎用性、開発コストダウンが実現される。以下、このようにエミュレーションコンポーネントを複数装備したプリンタをマルチエミュレーションプリンタと呼称する。
【０００９】
その他、ホストとプリンタとを接続するインタフェースの情報を与えることにより文字化けなどの発生を抑える技術として、サーバのリクエスタがアプリケーションからの印刷要求をもとに印刷データにプリンタのインタフェース情報を付加してネットワークを介して該当するプリンタの端末（クライアント）に転送し、該クライアントが、ネットワークから受信したインタフェース情報をもとにプリンタを制御して上記受信した印刷データを当該プリンタに印刷させることにより文字化けなどのない正常な印刷を行うプリンタ制御システムが知られている（例えば、特許文献１参照。）。
【特許文献１】特開平９−１２８１７３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
印刷中に紙ジャムや用紙切れなどの印刷不具合があった場合、ホストとオンライン接続される印刷システムでは、印刷データだけでなく、該印刷データで使用されるダイナミックロード対象文字が再度ホストコンピュータからプリンタにダウンロードされ、自動的に再印刷（リカバリ印刷）が行われ、正しい印刷が保証される。通常、リカバリ印刷では、障害が発生した頁より数頁前から再印刷されるが、オンライン接続の印刷システムでは、数頁前からの印刷データと該印刷データで指定された文字コードの文字資源とが同期して再度プリンタにダウンロードされるため、正しく印刷することができる。
【００１１】
ところが、オフラインで運用するプリンタ（マルチエミュレーションプリンタを含む）では、文字資源記憶部に蓄積されたダイナミックロード対象文字の文字資源は、障害が発生した時点の印刷データに対応した最新の文字資源であるため、障害発生時にオフライン状態で数頁前からリカバリ印刷を行っても、リカバリ印刷対象の印刷データで指定された文字資源と、文字資源記憶部に蓄積された文字資源とが正しく対応していない場合があり、正常に印刷することができないことがある。
【００１２】
ここで、図１８を参照しながら、連続紙を印刷するプリンタであって、障害が発生したときには２頁前まで遡って再印刷するプリンタを例に挙げて説明する。
【００１３】
同図の印刷物に印刷されたダイナミックロード対象文字は、同一文字コードに対応付けられた文字資源により印刷された文字である。ここでは、プリンタは各頁の印刷データと共に（あるいは印刷データのダウンロード直前に）該文字コードの文字資源をホストからダウンロードし、ダウンロード後はオフライン状態で印刷する。なお、ダウンロードされ文字資源記憶部などに記憶された文字資源は、新たに同一文字コードの文字資源がダウンロードされた時点で上書きされるため、プリンタには、文字コードに対して常に最新の文字資源のみが保持される。
【００１４】
図１８に示されるように、５頁めの印刷で障害が発生した時には、３頁めから再印刷されるが、文字資源記憶部に記憶された文字資源は、５頁目の印刷データに対応した最新の文字資源であるため、スプールから３頁めの印刷データを読み出して再印刷したとしても、５頁めの文字資源が印刷されてしまう。このように、遡って印刷された３頁〜４頁めの印刷物には、正しい文字が印刷されない、という問題が発生する。
【００１５】
この場合、仮に文字資源の同期をとろうとすると、再度ホストから該当の文字資源を送出しなくてはならず、オフライン印刷のメリットである「ホスト無しでの印刷」が不可能となり、システムのメリットが大幅に縮小してしまう。
【００１６】
また、このような文字資源の問題は、上記特許文献１記載のプリンタ制御システムでは、何ら考慮されていない。
【００１７】
本発明は、上述した問題を解決するためになされたものであり、オフライン印刷においても、オンライン印刷と同等に文字資源を管理でき、通常の印刷だけでなく障害発生時に行われるリカバリ印刷でも正しく印刷することができる印刷装置、印刷支援装置、印刷方法、及び印刷支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために本発明の印刷装置は、文字資源を記憶するための記憶手段と、文字コードが対応付けられた文字資源を外部からダウンロードするダウンロード手段と、前記ダウンロード手段によりダウンロードされた文字資源を前記記憶手段の前記ダウンロード毎に異なる記憶領域に格納する格納手段と、前記文字コードにより文字資源が指定された印刷情報を、該文字資源が格納された前記記憶領域のアドレスにより該文字資源を指定した印刷情報に変換する変換手段と、前記変換手段により変換された印刷情報に基づいて前記記憶手段から文字資源を読み出して印刷する印刷手段と、を含んで構成されている。
【００１９】
すなわち、この印刷装置は、文字コードが対応付けられた文字資源を外部からダウンロードしたときに、該文字資源を記憶手段の該ダウンロード毎に異なる記憶領域に格納する。更に、文字コードにより文字資源が指定された印刷情報を、該文字資源が格納された記憶領域のアドレスにより該文字資源を指定した印刷情報に変換し、該変換した印刷情報に基づいて記憶手段から文字資源を読み出して印刷する。
【００２０】
従って、同一の文字コードに対して異なる文字資源が対応付けられる場合であっても、各文字資源が異なるアドレスに格納され、最新の文字資源だけでなく過去にダウンロードした文字資源についても保存されると共に、印刷情報も、印刷する文字資源をアドレスにより指定するように変換するため、オフライン印刷においても、オンライン印刷と同等に文字資源を管理でき、通常の印刷だけでなく障害発生時に行われるリカバリ印刷でも文字化けせずに正しく印刷することができる。
【００２１】
なお、文字には、漢字やカタカナ、英数字などの文字の他、符号や記号、図形等が含まれる。また、文字資源は、該文字を表現する資源であって、字形データ、文字パターン、フォント等をいう。
【００２２】
上記印刷装置は、前記文字コード、前記文字コードが対応付けられた文字資源を格納した記憶領域のアドレス、及び該文字資源を用いた印刷が完了したか否かを識別するための識別情報を対応付けて記憶した履歴テーブルを更に備え、前記格納手段は、該履歴テーブルに基づいて前記文字資源を格納する記憶領域を決定し、該決定した記憶領域に前記文字資源を格納することができる。
【００２３】
例えば、格納手段は、該履歴テーブルに基づいて、既に文字資源が記憶された記憶領域を除く記憶領域や、既に印刷済みであってこれ以降印刷に使用されない文字資源が記憶されている記憶領域に文字資源を格納することができる。
【００２４】
これにより、ダウンロードされた文字資源を確実に異なるアドレスに記憶することができる。また、記憶手段に格納された文字資源を用いた印刷が完了すれば、該文字資源は不要になるため、格納手段は、識別情報を参照することにより、該文字資源を格納した記憶領域に該新たな文字資源を格納することができ、記憶手段の記憶領域を有効に使用することができる。
【００２５】
また、本発明の印刷支援装置は、文字資源を記憶するための記憶手段が設けられ且つ印刷情報に基づいて該記憶手段から文字資源を読み出して印刷する印刷装置の印刷を支援する印刷支援装置であって、文字コードが対応付けられた文字資源を外部からダウンロードするダウンロード手段と、前記ダウンロード手段によりダウンロードされた文字資源を前記記憶手段の前記ダウンロード毎に異なる記憶領域に格納する格納手段と、前記文字コードにより文字資源が指定された印刷情報を、該文字資源が格納された前記記憶領域のアドレスにより該文字資源を指定した印刷情報に変換する変換手段と、を含んで構成されている。
【００２６】
すなわち、この印刷支援装置は、文字コードが対応付けられた文字資源を外部からダウンロードしたときに、該文字資源を印刷装置の記憶手段の該ダウンロード毎に異なる記憶領域に格納する。更に、文字コードにより文字資源が指定された印刷情報を、該文字資源が格納された記憶領域のアドレスにより該文字資源を指定した印刷情報に変換する。
【００２７】
印刷装置は、該変換された印刷情報に基づいて記憶手段から文字資源を読み出して印刷することができる。なお、この印刷支援装置が支援する印刷装置は１台であってもよいし、複数台であってもよい。複数台の場合には、各々の印刷装置の記憶手段毎に、ダウンロードされた文字資源を格納する記憶領域をダウンロード毎に異ならせることができる。
【００２８】
従って、同一の文字コードに対して異なる文字資源が対応付けられる場合であっても、各文字資源が異なるアドレスに格納され、最新の文字資源だけでなく過去にダウンロードした文字資源についても保存されると共に、印刷情報も、印刷する文字資源をアドレスにより指定するように変換するため、オフライン印刷においても、オンライン印刷と同等に文字資源を管理でき、通常の印刷だけでなく障害発生時に行われるリカバリ印刷でも文字化けせずに正しく印刷することができる。
【００２９】
また、上記印刷支援装置は、前記文字コード、前記文字コードが対応付けられた文字資源を格納した記憶領域のアドレス、及び該文字資源を用いた印刷が完了したか否かを識別するための識別情報を対応付けて記憶した履歴テーブルを更に備え、前記格納手段は、該履歴テーブルに基づいて前記文字資源を格納する記憶領域を決定し、該決定した記憶領域に前記文字資源を格納することもできる。
【００３０】
例えば、格納手段は、該履歴テーブルに基づいて、既に文字資源が記憶された記憶領域を除く記憶領域や、既に印刷済みであってこれ以降印刷に使用されない文字資源が記憶されている記憶領域に文字資源を格納することができる。
【００３１】
これにより、ダウンロードされた文字資源を確実に異なるアドレスに記憶することができる。また、記憶手段に格納された文字資源を用いた印刷が完了すれば、該文字資源は不要になるため、格納手段は、識別情報を参照することにより、該文字資源を格納した記憶領域に該新たな文字資源を格納することができ、記憶手段の記憶領域を有効に使用することができる。
【００３２】
また、上記印刷支援装置は、前記ダウンロード手段によりダウンロードされた最新の文字資源を前記文字コード毎に記憶する最新文字資源記憶手段と、前記最新文字資源記憶手段に記憶された最新の文字資源を、予め定められたタイミングで前記印刷装置の記憶手段に転送する転送手段と、を更に含むことができる。
【００３３】
例えば、一連の印刷物を複数の印刷装置を切替えて使用して印刷する場合には、印刷装置を切替えた直後でも、継続して該切替えた印刷装置で確実に正しい文字資源が印刷されるようにしなくてはならない。従って、印刷装置の切替え時に、切替え直前にダウンロードした文字資源を切替えた印刷装置に格納するために、最新の文字資源を前記文字コード毎に記憶する最新文字資源記憶手段を設け、該文字資源を、予め定められたタイミングで（例えば印刷装置の切替え時に）切替えた印刷装置の記憶手段に転送するようにすれば、印刷装置を頻繁に切替えて使用しても各印刷装置で正しい文字資源を使用して正常に印刷することができる。
【００３４】
また、本発明の印刷支援装置は、前記最新文字資源記憶手段を複数個備え、前記ダウンロード手段によりダウンロードされた最新の文字資源を、前記ダウンロード手段のダウンロードのタイミングに応じて該複数個の最新文字資源記憶手段のいずれかに記憶するようにすることもできる。
【００３５】
このように、複数の最新文字資源記憶手段を備えることにより、ダウンロードするタイミングが異なる文字資源を該タイミングに応じて異なる最新文字資源記憶手段に記憶することができ、文字資源の管理が容易となる。
【００３６】
また、本発明の印刷方法は、文字コードが対応付けられた文字資源を外部からダウンロードし、前記ダウンロードされた文字資源を、文字資源を記憶するための記憶手段の前記ダウンロード毎に異なる記憶領域に格納し、前記文字コードにより文字資源が指定された印刷情報を、該文字資源が格納された前記記憶領域のアドレスにより該文字資源を指定した印刷情報に変換し、前記変換された印刷情報に基づいて前記記憶手段から文字資源を読み出して印刷するものである。
【００３７】
本発明の印刷方法も、本発明の印刷装置と同様に作用するため、オフライン印刷においても、オンライン印刷と同等に文字資源を管理でき、通常の印刷だけでなく障害発生時に行われるリカバリ印刷でも正しく印刷することができる。
【００３８】
また、本発明の印刷支援方法は、文字資源を記憶するための記憶手段が設けられ且つ印刷情報に基づいて該記憶手段から文字資源を読み出して印刷する印刷装置の印刷を支援する印刷支援方法であって、文字コードが対応付けられた文字資源を外部からダウンロードし、前記ダウンロードされた文字資源を前記記憶手段の前記ダウンロード毎に異なる記憶領域に格納し、前記文字コードにより文字資源が指定された印刷情報を、該文字資源が格納された前記記憶領域のアドレスにより該文字資源を指定した印刷情報に変換するものである。
【００３９】
本発明の印刷支援方法も、本発明の印刷支援装置と同様に作用するため、オフライン印刷においても、オンライン印刷と同等に文字資源を管理でき、通常の印刷だけでなく障害発生時に行われるリカバリ印刷でも正しく印刷することができる。
【発明の効果】
【００４０】
以上説明したように、本発明によれば、オフライン印刷においても、オンライン印刷と同等に文字資源を管理でき、通常の印刷だけでなく障害発生時に行われるリカバリ印刷でも正しく印刷することができる、という優れた効果を奏する。
【発明を実施するための最良の形態】
【００４１】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
【００４２】
［第１の実施の形態］
本実施の形態では、例えば図１７（Ａ）に示されるように１台のプリンタに複数のホストコンピュータ（ホスト）が接続され、各ホストからダウンロードされた各ホスト独自のＰＤＬ形式の印刷データを共通のＰＤＬ形式の印刷データに変換して印刷する印刷システムを例に挙げて説明する。ただし、本実施の形態において、プリンタの構成は、図１７（Ｂ）とは異なる。以下、本実施の形態のプリンタの構成について詳細に説明する。
【００４３】
図１は、本実施の形態の印刷システムを構成するプリンタ１０の構成を機能的に示した構成図である。
【００４４】
プリンタ１０は、複数のエミュレーションコンポーネント３０Ａ〜３０Ｃ、コントローラ４０、スプール４２、描画コンポーネント４４、文字資源記憶部４６、及びプリントエンジン４８を備えている。
【００４５】
文字資源記憶部４６には、文字コードと文字パターンが１対１で対応付けられた標準的な文字パターン（プリンタ内蔵の文字パターン）が予め記憶されている。また、プリンタに内蔵されておらず、文字コードと文字パターンが１対多で対応付けられた文字（以下、ダイナミックロード対象文字）の文字パターンがダウンロードされたときには、該ダウンロードされた文字パターンも文字資源記憶部４６に（プリンタ内蔵の文字パターンの記憶領域とは異なる記憶領域に）記憶される。
【００４６】
複数のエミュレーションコンポーネント３０Ａ〜３０Ｃは、複数の印刷データ形式に対応して設けられている。なお、エミュレーションコンポーネント３０Ａ〜３０Ｃは同一の構成であるので、以下、エミュレーションコンポーネント３０Ａ〜３０Ｃを区別しないで説明するときは単にエミュレーションコンポーネント３０と呼称して説明する。
【００４７】
エミュレーションコンポーネント３０は、主変換部３２、アドレス変換部３４、及び文字コード−アドレス管理部３６から構成されている。この主変換部３２、アドレス変換部３４、及び文字コード−アドレス管理部３６は、ここでは、エミュレーションコンポーネント３０用のモジュールに予め組み込まれたファームウェアにより実現される。
【００４８】
主変換部３２は、ホストから入力されたホスト独自のＰＤＬ（ページ記述言語）形式の印刷データをプリンタ１０内部で使用する共通のＰＤＬ形式のデータ（以下、共通ＰＤＬ形式のデータ、あるいは共通ＰＤＬデータと呼称する）に変換する。
【００４９】
また、ホストからロードパターンコマンドを入力したときには、ダイナミックロード対象文字の文字パターンをホストからダウンロードし（ダイナミックロード機能）、該ダウンロードした文字パターンを文字資源記憶部４６に格納するための「ダウンロードコマンド」を共通ＰＤＬ形式で生成してコントローラ４０に出力する。
【００５０】
図２は、このダウンロードコマンドの構成を示した図である。同図に示されるように、先頭２バイトには制御コード、次の４バイトには文字資源を格納する文字資源記憶部４６の記憶領域のアドレス（以下、ダウンロードアドレス）、７バイトめ以降には文字パターンのデータ列が格納される。なお、ダウンロードアドレスは、アドレス変換部３４から取得する。
【００５１】
また、印刷データの共通ＰＤＬデータへの変換過程で、印刷データ内に文字コードにより指定されたダイナミックロード対象の文字を描画（印刷）するデータが含まれていた場合には、「ダイナミックロード対象文字の描画コマンド」を生成する。
【００５２】
図３は、ダイナミックロード対象文字の描画コマンドの構成を示した図である。同図に示されるように、先頭２バイトには制御コード、次の２バイトにはダイナミックロード対象文字を描画するＸ軸方向の位置を指定するＸ座標値、次の２バイトにはダイナミックロード対象文字を描画するＹ軸方向の位置を指定するＹ座標値、最後の４バイトにはダウンロードアドレスが格納される。このダウンロードアドレスは、文字コード−アドレス管理部３６から取得する。
【００５３】
アドレス変換部３４は、主変換部３２から要求があったときに（すなわち、主変換部３２がダウンロードコマンドを生成するときに）、ダイナミックロード対象文字の文字パターンを格納するための適切なダウンロードアドレスを取得して主変換部３２に渡す。具体的には、主変換部３２からダイナミックロード対象文字を指定した文字コードを受け取ると、該文字コードと共にアドレス取得要求を文字コード−アドレス管理部３６に送出する。文字コード−アドレス管理部３６は、該アドレス取得要求に従って適切なダウンロードアドレスを検索し、アドレス変換部３４に返す。主変換部３２は、アドレス変換部３４からダウンロードアドレスを取得することにより、上記ダウンロードコマンドを生成することができる。
【００５４】
文字コード−アドレス管理部３６は、図４に示されるような文字コード−アドレス記憶テーブル８０を備えている。この文字コード−アドレス記憶テーブル８０には、文字コードと最新のダウンロードアドレスが対応付けて記憶される。本実施の形態では、文字コード−アドレス記憶テーブル８０において、文字コードが重複するレコードは存在しない。
【００５５】
更に文字コード−アドレス管理部３６は、図５に示されるようなアドレス使用割当てテーブル８２を備えている。このアドレス使用割当てテーブルには、各レコードは、ダウンロードアドレス、該ダイナミックロードアドレスに格納した文字パターンを指定した文字コード、該文字パターンを用いた全ての印刷が既に完了したか否かを示す既印刷フラグにより構成されている。アドレス使用割当てテーブル８２は、所謂、ダウンロードされた文字パターンの文字資源記憶部４６への格納履歴を示すものであるため、同一文字コードを有するレコードが複数存在する場合もある。
【００５６】
なお、既印刷フラグが「０」のときは対応する文字パターンを用いた印刷が未完了であることを示し、「１」のときには、該印刷が全て完了したことを示す。既印刷フラグの初期値は「０」である。また、本実施の形態のプリンタ１０は、障害が発生したときには、障害が発生した印刷頁から２頁前まで遡って再印刷（リカバリ印刷）するため、該リカバリ印刷を考慮して、該文字パターンを用いた頁の印刷が完了してから該頁に続く２頁分の印刷が完了するまでは該既印刷フラグを「１」にはせずに、「０」の状態を維持する。
【００５７】
文字コード−アドレス管理部３６は、アドレス変換部３４からアドレス取得要求があったときに、アドレス使用割当てテーブル８２を検索し、検索結果からダウンロードアドレスを決定し、該決定したダウンロードアドレスをアドレス変換部３４に渡す。また、このとき、文字コード−アドレス管理部３６は、文字コード−アドレス記憶テーブル８０及びアドレス使用割当てテーブル８２を更新する。
【００５８】
また、文字コード−アドレス管理部３６は、主変換部３２が、ダイナミックロード対象文字の描画コマンドを生成するときに、文字コード−アドレス記憶テーブル８０から、該当の文字コードに対する最新のダウンロードアドレスを検索して、主変換部３２に渡す。これにより、主変換部３２は上記描画コマンドを生成することができる。
【００５９】
コントローラ４０は、ＣＰＵ、ＲＯＭ、ＲＡＭにより構成されている。コントローラ４０は、ＲＯＭに記憶されたプログラムを実行することにより所定の処理を行う。コントローラ４０は、エミュレーションコンポーネント３０に接続され、エミュレーションコンポーネント３０から共通ＰＤＬデータが入力されたときには、該共通ＰＤＬデータをスプール４２に格納する。更に、スプール４２に格納した共通ＰＤＬデータを順次読み出して描画コンポーネント４４に出力する。また、障害が発生したときには、障害が発生した頁から２頁前まで遡ってリカバリ印刷されるように、スプール４２から共通ＰＤＬデータを読み出して描画コンポーネント４４に出力する。
【００６０】
描画コンポーネント４４は、コントローラ４０から出力された共通ＰＤＬデータを順次解釈し、ページ毎にビットマップ形式の画像データに変換してプリントエンジン４８に出力する。このとき、共通ＰＤＬデータに、ダイナミックロード対象文字の描画コマンドが含まれていた場合には、該描画コマンドに基づいて文字資源記憶部４６から該当のダウンロードアドレスに格納された文字パターンを読み出して画像データに展開して、プリントエンジン４８に出力する。なお、共通ＰＤＬデータには、標準的な文字コードにより指定された文字パターン（プリンタ内蔵の文字パターン）の描画コマンドも存在するが、この描画コマンドの場合には、文字資源記憶部４６から該文字コードに対応付けられた文字パターンを読み出して出力する。また、入力された共通ＰＤＬデータが、共通ＰＤＬ形式のダウンロードコマンドであった場合には、文字資源記憶部４６の該ダウンロードコマンドで指定されたダウンロードアドレスに文字パターンを格納する。
【００６１】
プリントエンジン４８は、描画コンポーネント４４から出力された画像データに基づいて連続紙などの用紙に印刷する。
【００６２】
次に、ホストから何らかのデータが入力されたときにエミュレーションコンポーネント３０で実行される処理の流れについて、図６のフローチャートを参照しながら説明する。
【００６３】
ここでは、ホストからプリンタ１０に出力されるデータが、ロードパターンコマンド（文字パターン）、印刷データ、プリンタ１０（プリントエンジン４８）を制御するためのプリンタ制御コードのいずれかであり、これ以外の他のデータをプリンタ１０で受信した場合には、該データに対しては何の処理も行わないこととする。
【００６４】
ステップ１００では、主変換部３２が、入力されたデータがロードパターンコマンドであるか否かを判定する。例えば、通常、データのヘッダ部分にはデータ種別を識別することができる識別符号が含まれているため、該識別符号から判定することができる。ここで、ロードパターンコマンドであると判定した場合には、ステップ１０２で、該コマンドに従ってホストから文字パターンを取得（ダウンロード）する。
【００６５】
ステップ１０４で、アドレス変換部３４を介してアドレス使用割当てテーブル８２を参照して、該文字パターンを格納するダウンロードアドレスを取得する。具体的には、アドレス変換部３４が、アドレス取得要求を文字コード−アドレス管理部３６に送出する。文字コード−アドレス管理部３６は、アドレス使用割当てテーブル８２から、文字パターンが記憶されていない未記憶の記憶領域を示すアドレス、または、既に何らかの文字パターンが記憶されてはいるが既印刷フラグが「１」となっているレコードのダウンロードアドレスを、要求のあった文字パターンを格納するためのダウンロードアドレスとして決定する。このように決定されたダウロードアドレスが主変換部３２に送出される。
【００６６】
ステップ１０６では、主変換部３２は、該ダウンロードアドレスを用いて共通ＰＤＬ形式のダウンロードコマンドを生成し、コントローラ４０に出力する。
【００６７】
コントローラ４０は該ダウンロードコマンドを受け取ると、一端スプール４２に格納する。更にコントローラ４０はスプール４２からダウンロードコマンドを読み出して、描画コンポーネント４４に出力する。描画コンポーネント４４は、該ダウンロードコマンドに含まれる文字データを、該ダウンロードコマンドで指定されたダウンロードアドレスに格納する。
【００６８】
ステップ１０８では、文字コード−アドレス管理部３６が、文字コード−アドレス記憶テーブル８０を更新する。具体的には、文字コード−アドレス記憶テーブル８０を検索し、上記ダウンロードアドレスを決定した文字パターンの文字コードと同一の文字コードのレコードが記憶されているかを検索する。該同一の文字コードのレコードが記憶されていれば、該レコードのダウンロードアドレスを、上記決定したダウンロードアドレスに変更する。また、該同一の文字コードのレコードが記憶されていなければ、該文字コードと上記決定したダウンロードアドレスとが対応付けられた新たなレコードを生成して、文字コード−アドレス記憶テーブル８０に追加する。これにより、文字コード−アドレス記憶テーブル８０には常に最新のダウンロードアドレスが記憶される。
【００６９】
ステップ１１０では、文字コード−アドレス管理部３６が、アドレス使用割当てテーブル８２を更新する。具体的には、上記アドレス取得要求に応じて決定したダウンロードアドレスと、該ダウンロードアドレスを決定した文字パターンの文字コードと、既印刷フラグ「０」とを対応付けた新たなレコードを生成して、アドレス使用割当てテーブル８２に追加する。すなわち、文字コード−アドレス管理部３６は、新たに文字パターンがダウンロードされる毎に新たなレコードを生成し、アドレス使用割当てテーブル８２に追加する。
【００７０】
一方、ステップ１００で、主変換部３２が、ホストから入力されたデータはロードパターンコマンドではないと判定した場合には、ステップ１２０に移行し、入力されたデータが印刷データであるか否かを判定する。ここで、入力されたデータが印刷データであると判定したときには、ステップ１２２で、該入力された印刷データを共通ＰＤＬデータに変換する変換処理を開始する。変換処理では、入力した印刷データを先頭から順に解釈して共通ＰＤＬデータに変換していくが、印刷データのデータがダイナミックロード対象文字を描画（印刷）するデータであるか否かを常に判定しながら変換処理を続行する（ステップ１２４）。ホストからの印刷データでは、印刷する文字パターンが文字コードにより指定されている。ここでは、印刷データに含まれる文字コードがプリンタ内蔵の文字パターンに対応付けられた文字コードでなければ、該文字コードにより指定された文字（文字パターン）は、ダイナミックロード対象文字であると判別する。
【００７１】
ステップ１２４で、処理対象のデータが、ダイナミックロード対象文字を描画（印刷）するデータであると判定した場合には、ステップ１３２に移行し、そのまま変換処理を続行する。
【００７２】
ステップ１２４で、処理対象のデータが、ダイナミックロード対象文字を描画（印刷）するデータであると判定した場合には、ステップ１２６で、文字コード−アドレス管理部３６を介して、文字コード−アドレス記憶テーブル８０から該文字コードに対応付けられた最新のダウンロードアドレスを取得する。
【００７３】
ステップ１２８では、取得したダウンロードアドレスを用いて、ダイナミックロード対象文字の描画コマンドを共通ＰＤＬ形式で生成する。すなわち、印刷する文字パターンが文字コードにより指定されたデータを、該文字パターンが格納されたダウンロードアドレスにより該文字パターンを指定した共通ＰＤＬ形式のデータに変換する。
【００７４】
ステップ１３０では、入力された印刷データ全ての変換が完了したか否かを判定する。ここで、否定判断したときには、ステップ１３２に移行し、変換処理を続行する。入力された印刷データ全ての変換が完了するまで、ステップ１２４からステップ１３２の処理を継続する。
【００７５】
ステップ１３０で、入力された印刷データ全ての変換が完了したと判定した場合には、ステップ１３４で、変換した共通ＰＤＬデータをコントローラ４０に出力する。該共通ＰＤＬデータはコントローラ４０によりスプール４２に格納される。
【００７６】
一方、ステップ１２０で、入力されたデータが印刷データではないと判定した場合には、ステップ１４０に移行し、入力されたデータがプリンタ制御コードであるか否かを判定する。ここで、プリンタ制御コードであると判定した場合には、該プリンタ制御コードに対して何の処理も施さずにスルーでコントローラ４０に出力する。コントローラ４０は、該プリンタ制御コードを入力したときには、プリントエンジン４８に対して所定の制御信号を送出し、プリントエンジン４８の動作設定を行う。また、ステップ１４０で、入力されたデータがプリンタ制御コードではないと判定した場合には、何の処理も行わずに本処理ルーチンを終了する。
【００７７】
なお、本実施の形態において、ホストからロードパターンコマンド、印刷データ、及びプリンタ制御コードのいずれかが入力された後は、次に何らかのデータが入力されるまではホストとの間はオフライン状態となる。上述したように、プリンタ１０では、入力した印刷データを変換した共通ＰＤＬデータがスプールに格納され、必要な文字パターンも文字資源記憶部４６に格納されるため、必要なデータが入力された後はオフライン状態でも印刷処理が可能となる。
【００７８】
次に、コントローラ４０で実行される処理の流れについて、図７及び図８のフローチャートを参照しながら説明する。
【００７９】
図７は、共通ＰＤＬデータを読み出して描画コンポーネント４４に出力する通常の処理の流れを示したフローチャートである。
【００８０】
ステップ２００では、スプール４２から共通ＰＤＬデータを読み出す。ステップ２０２では、該読み出した共通ＰＤＬデータを描画コンポーネント４４に出力する。ステップ２０４では、全ての共通ＰＤＬデータの出力が完了したか否かを判定し、ここで全ての共通ＰＤＬデータの出力が完了していないと判定した場合には、ステップ２００に戻って、処理を継続する。
【００８１】
なお、描画コンポーネント４４に出力された共通ＰＤＬデータは、描画コンポーネント４４で順次解釈され、ページ毎にビットマップ形式の画像データに変換されてプリントエンジン４８に出力される。このとき、共通ＰＤＬデータがダイナミックロード対象文字の描画コマンドであった場合には、該描画コマンドに基づいて文字資源記憶部４６から該当のダウンロードアドレスに格納された文字パターンを読み出して展開し、プリントエンジン４８に出力する。また、共通ＰＤＬデータがダウンロードコマンドであった場合には、文字資源記憶部４６の該ダウンロードコマンドで指定されたダウンロードアドレスに文字パターンを格納する。プリントエンジン４８は、描画コンポーネント４４から出力された画像データに基づいて連続紙などの用紙に印刷する。
【００８２】
一方、ステップ２０４で、全ての共通ＰＤＬデータの出力が完了したと判定した場合には、ステップ２０６で、エミュレーションコンポーネント３０に対して印刷完了通知を出力する。
【００８３】
なお、印刷完了通知を受け取ったエミュレーションコンポーネント３０では、アドレス使用割当てテーブル８２を更新する。具体的には、該当の既印刷フラグに「１」をセットする。これにより、印刷済みの文字パターンを格納したダウンロードアドレスが開放され、次に文字パターンをダウンロードしたときに、該開放されたアドレスも文字パターンの格納先として選択できる。なお、前述したように、本実施の形態のプリンタ１０では、障害が発生したときには、障害が発生した印刷頁から２頁前まで遡って再印刷（リカバリ印刷）するため、エミュレーションコンポーネント３０は、該文字パターンを用いた頁の印刷が完了してから該頁に続く２頁分の印刷が完了するまでは該当の既印刷フラグは「１」にせず、「０」の状態を維持する。
【００８４】
図８は、紙ジャムなどの障害が発生したときにコントローラ４０で行われる処理の流れを示したフローチャートである。
【００８５】
ステップ３００では、所定頁（ここでは２頁）前に遡ってスプール４２から共通ＰＤＬデータを読み出す。ステップ３０２では、該読み出した共通ＰＤＬデータを描画コンポーネント４４に出力する。ステップ３０４では、全ての共通ＰＤＬデータの出力が完了したか否かを判定し、ここで全ての共通ＰＤＬデータの出力が完了していないと判定した場合には、ステップ３０６に移行し、続けて次の共通ＰＤＬデータを読み出し、ステップ３０２に戻る。また、ステップ３０４で、全ての共通ＰＤＬデータの出力が完了したと判定した場合には、ステップ３０８で、エミュレーションコンポーネント３０に対して印刷完了通知を出力する。
【００８６】
描画コンポーネント４４は、コントローラ４０から出力された共通ＰＤＬデータを順次解釈して画像データに展開してプリントエンジン４８に出力する。プリントエンジン４８では、障害が発生した頁より所定頁遡ってリカバリ印刷することができる。
【００８７】
なお、共通ＰＤＬデータにダイナミックロード対象文字を描画するコマンドが含まれていた場合であっても、該コマンドでは、文字パターンは、文字コードではなく、ダウンロードアドレスにより指定されているため、描画コマンドは該当する文字パターンを正しく読み出して出力することができる。また、前述したように、該ダウンロードアドレスに格納された文字パターンは、該文字パターンを用いた印刷が完全に終了するまで（印刷完了通知が発行されるまで）文字資源記憶部４６に保持されるため、オフライン状態でリカバリ印刷しても、文字化けせず正常に印刷することができる。
【００８８】
次に、本プリンタ１０の動作について、より具体的な例を挙げて説明する。
【００８９】
図９は、コントローラ４０及び描画コンポーネント４４（プリントエンジン４８）との間のデータの授受の状態、及び印刷状態の一例を示したシーケンス図である。ここでは、ダウンロード対象の文字コード0x80A1が印刷データ毎に異なる文字パターン（ここでは「あ」「い」「う」「え」「お」）に対応付けられ、各文字パターンが各印刷データの直前にダウンロードされ格納される場合を例に挙げて説明する。
【００９０】
図１０は、図９のシーケンス図の（１）〜（５）の各々の時点における文字資源記憶部４６の文字パターンの格納状態を示したテーブルである。
【００９１】
図９に示されるように、コントローラ４０から描画コンポーネント４４に対して、文字パターン（共通ＰＤＬ形式のダウンロードロードコマンド）と該文字パターンを用いて印刷する共通ＰＤＬデータとが交互に送出される。
【００９２】
描画コンポーネント４４は、ダウンロードロードコマンドを受け取った場合には、該ダウンロードコマンドに含まれるダウンロードアドレスに文字パターンを記憶する。図９及び図１０に示される例では、文字コード0x80A1が対応づけられた文字パターン「あ」「い」「う」「え」「お」が、文字資源記憶部４６の互いに異なる記憶領域（0x3000、0x3200、0x3400、0x3600、0x3800）に格納される。
【００９３】
また、コントローラ４０から描画コンポーネント４４に送出される各共通ＰＤＬデータは、文字パターンをダウンロードアドレスにより指定した共通ＰＤＬデータである。描画コンポーネント４４は、共通ＰＤＬデータを受け取ると、該ダウンロードアドレスから該当の文字パターンを読み出してプリントエンジン４８に出力する。これにより、各頁の文字パターンを正しく印刷することができる。
【００９４】
図９の（５）の後、５頁めの印刷中に紙ジャムなどの障害が発生した場合には、所定頁前（ここでは２頁前）まで遡ってリカバリ印刷する。このとき、図１０の（５）に示されるように、文字資源記憶部４６には、５頁めの印刷データで使用する文字パターン「お」だけでなく、遡って印刷する３頁めの印刷データで使用する文字パターン「う」、及び４頁めの印刷データで使用する文字パターン「え」も各々異なるダウンロードアドレスに保持されている。また、各共通ＰＤＬデータにおいて、各文字パターン「う」「え」「お」は、文字コード0x80A1ではなくダウンロードアドレス（0x3400、0x3600、0x3800）により指定されているため、各ページに対応した文字パターンを確実に読み出して出力することができ、文字化けせずに正常にリカバリ印刷することができる。
【００９５】
以上説明したように、文字パターンをダウンロードしたときに、該文字パターンをダウンロード毎に異なる記憶領域に格納すると共に、文字コードにより文字パターンが指定された印刷データを、該文字パターンが格納された記憶領域のアドレス（ダウンロードアドレス）により該文字パターンを指定した共通ＰＤＬデータに変換するようにしたため、オフライン印刷においても、オンライン印刷と同等に文字資源を管理でき、通常の印刷だけでなく障害発生時に行われるリカバリ印刷でも正しく印刷することができる。
【００９６】
なお、本実施の形態において、エミュレーションコンポーネント３０、コントローラ４０、スプール４２、描画コンポーネント４４、文字資源記憶部４６、及びプリントエンジン４８を１台のプリンタ１０に装備した場合を例に挙げて説明したが、これに限定されず、例えば、プリンタとは別の外部装置にエミュレーションコンポーネント３０を装備し、外部装置から共通ＰＤＬデータや文字パターンを描画コンポーネント４４、文字資源記憶部４６、プリントエンジン４８等を備えたプリンタに送出するように構成することもできる。
【００９７】
また、本実施の形態では、エミュレーションコンポーネント３０Ａ〜３０Ｃの各々を、主変換部３２、アドレス変換部３４、及び文字コード−アドレス管理部３６により構成した例について説明したが、これに限定されず、例えば、エミュレーションコンポーネント３０Ａ〜３０Ｃの各々を主変換部３２のみで構成し、エミュレーションコンポーネント３０外部に、アドレス変換部３４及び文字コード−アドレス管理部３６により構成されたモジュールを１つ設けるようにしてもよい。このように、ダウンロードアドレスの決定・管理を行う機能をエミュレーションコンポーネント３０の外部に設けることにより、装置構成の冗長性を排除し、ダウンロードアドレスを一元的に決定・管理できる。
【００９８】
［第２の実施の形態］
図１１は、第２の実施の形態の印刷システムの構成を示した図である。同図に示されるように、この印刷システムは、ホスト５０、フロントエンドコントローラ（ＦＥＣ）５２、及び２台のプリンタ５４Ａ、５４Ｂにより構成されている。この印刷システムでは、用紙の切り替えや、一方のプリンタの消耗品交換などを目的に、印刷するプリンタが切り替えられる。なお、図示は省略するが、ＦＥＣ５２には複数台のホスト５０を接続することができ、複数台のホスト５０からの形式の異なる印刷データを処理することができる。
【００９９】
以下、プリンタ５４Ａ、５４Ｂは同一の構成であるので、プリンタ５４Ａ、５４Ｂを区別しないで説明するときは、単にプリンタ５４と呼称して説明する。
【０１００】
図１２は、ＦＥＣ５２及びプリンタ５４の構成を機能的に示した構成図である。図１２において、図１と同一もしくは同等の部分には同じ記号を付し、その説明を省略する。
【０１０１】
ＦＥＣ５２は、複数のエミュレーションコンポーネント６０Ａ〜６０Ｃ、及び分配部７０を備えている。
【０１０２】
複数のエミュレーションコンポーネント６０Ａ〜６０Ｃは、複数のホストから出力される印刷データの形式に対応して設けられている。なお、エミュレーションコンポーネント６０Ａ〜６０Ｃは同一の構成であるので、以下、エミュレーションコンポーネント６０Ａ〜６０Ｃを区別しないで説明するときは単にエミュレーションコンポーネント６０と呼称して説明する。
【０１０３】
エミュレーションコンポーネント６０は、主変換部３２、アドレス変換部３４、文字コード−アドレス管理部３６、資源イメージ保存部６２、及び資源イメージダウンロード部６４から構成されている。本実施の形態における主変換部３２、アドレス変換部３４、及び文字コード−アドレス管理部３６は、第１の実施の形態と同一の機能を有するため説明を省略する。
【０１０４】
ただし、本実施の形態では、文字コード−アドレス記憶テーブル８０及びアドレス使用割当てテーブル８２が、各プリンタ５４Ａ、５４Ｂ毎に備えられている。文字コード−アドレス管理部３６は、主変換部３２やアドレス変換部３４から要求があったときには、指定されたプリンタ５４に対応する文字コード−アドレス記憶テーブル８０及びアドレス使用割当てテーブル８２を検索して応答する。
【０１０５】
資源イメージ保存部６２には、文字コード毎に該文字コードに対応付けられた最新の文字パターンが保存される。資源イメージ保存部６２は、図１３に示されるような資源イメージ保存テーブル８４を備え、この資源イメージ保存テーブル８４に、エミュレーションコンポーネント６０がホストからダウンロードしたダイナミックロード対象文字の文字コード、文字パターン、及び該文字パターンを格納するダウンロードアドレスが対応付けて記憶される。すなわち、この資源イメージ保存テーブル８４には、文字コード−アドレス記憶テーブル８０に記憶される情報に加えて、ダウンロードした文字パターンそのものが対応付けられて記憶される。
【０１０６】
資源イメージダウンロード部６４は、資源イメージ保存部６２に保存した文字パターンを、分配部７０を介し対象のプリンタ５４に対して印刷させるプリンタの切替えに一括して送出する。送出する際には、資源イメージ保存部６２に保存されている文字パターンを切替え先のプリンタ５４の文字資源記憶部４６に格納するための「ダウンロードコマンド」（第１の実施の形態と同様）を共通ＰＤＬ形式で生成し、分配部７０を介して送出する。本実施の形態では、プリンタ切替え時以外のタイミングで送出されるダウンロードコマンドは、第１の実施の形態と同様に主変換部３２で生成され、プリンタの切替え時に送出されるダウンロードコマンドは資源イメージダウンロード部６４で生成される。
【０１０７】
分配部７０は、エミュレーションコンポーネント６０で変換された共通ＰＤＬデータを、指定されたプリンタ５４に送出する。なお、本実施の形態では、どのタイミングで印刷させるプリンタを切替えるかについては、予めＦＥＣ５２に設定されている（印刷先の設定）。分配部７０は、該設定に従って、共通ＰＤＬデータの送出先（プリンタ）を切替える。
【０１０８】
プリンタ５４は、コントローラ４０、スプール４２、描画コンポーネント４４、文字資源記憶部４６、及びプリントエンジン４８を備えている。コントローラ４０、スプール４２、描画コンポーネント４４、文字資源記憶部４６、及びプリントエンジン４８は、第１の実施の形態と同一の機能を有するため説明を省略する。ただし、本実施の形態において、コントローラ４０は、ＦＥＣ５２の分配部７０から共通ＰＤＬデータを取得する。
【０１０９】
以下、本実施の形態におけるＦＥＣ５２及びプリンタ５４の動作について説明する。
【０１１０】
まず、ホスト５０から何らかのデータが入力されたときにＦＥＣ５２のエミュレーションコンポーネント６０で実行される処理の流れについて上記第１の実施の形態で用いた図６のフローチャートを参照しながら説明する。
【０１１１】
ステップ１００〜１０２で、主変換部３２は、ホスト５０からロードパターンコマンドが発行されたときに、該ロードコマンドに従って、文字パターンをダウンロードする。このとき、ダウンロードした文字パターンを、資源イメージ保存部６２（資源イメージ保存テーブル８４）に格納する。ここで、資源イメージ保存テーブル８４にダウンロードした文字パターンの文字コードと同一文字コードのレコードが格納されていた場合には、該ダウンロードした文字パターンを該レコードに上書きする。資源イメージ保存テーブル８４に同一文字コードのレコードが格納されていなければ、新規にレコードを生成して該テーブルに追加する。
【０１１２】
ステップ１０４では、主変換部３２は、予め定められた印刷先の設定に従い、アドレス変換部３４を介して、該文字パターンを使用して印刷するプリンタ５４に対応したアドレス使用割当てテーブル８２を参照して、該文字パターンを格納するダウンロードアドレスを取得する。また、ここで取得したダウンロードアドレスを、資源イメージ保存テーブル８４の上記文字パターンを格納したレコードに格納する。
【０１１３】
ステップ１０６では、主変換部３２は、文字パターンを上記取得したダウンロードアドレスに格納するためのダウンロードコマンドを共通ＰＤＬ形式で生成し、分配部７０に出力する。分配部７０は、該ダウンロードコマンドを受け取ると、上記印刷先の設定に従って、該ダウンロードコマンドの送出先を選定し、該選定した送出先のプリンタ５４に送出する。プリンタ５４のコントローラ４０は該ダウンロードコマンドを受け取ると、上記第１の実施の形態と同様に、描画コンポーネント４４を介して、該ダウンロードコマンドに含まれる文字データを、該ダウンロードコマンドで指定されたダウンロードアドレスに格納する。
【０１１４】
ステップ１０８では、文字コード−アドレス管理部３６が、上記文字パターンを送出したプリンタ５４に対応した文字コード−アドレス記憶テーブル８０を更新する。
【０１１５】
ステップ１１０では、文字コード−アドレス管理部３６が、上記文字パターンを送出したプリンタ５４に対応したアドレス使用割当てテーブル８２を更新する。
【０１１６】
一方、ステップ１００で、主変換部３２が、ホスト５０から入力されたデータはロードパターンコマンドではないと判定し、ステップ１２０で、入力されたデータが印刷データであると判定した場合には、ステップ１２２〜１３２の処理を繰り返して、該入力された印刷データを共通ＰＤＬデータに変換する。なお、この変換処理過程で、ダイナミックロード対象文字を描画（印刷）するデータを変換する際には、印刷先のプリンタに対応した文字コード−アドレス記憶テーブル８０から最新のダウンロードアドレスを取得し、該ダウンロードアドレスを用いてダイナミックロード対象文字の描画コマンドを生成する。
【０１１７】
印刷データが全て共通ＰＤＬデータに変換されたときに、ステップ１３４で、変換した共通ＰＤＬデータを分配部７０に出力する。分配部７０は、該共通ＰＤＬデータを、印刷先の設定に従って、該当のプリンタ５４に送出する。該共通ＰＤＬデータを受信したプリンタ５４のコントローラ４０は、該共通ＰＤＬデータをスプール４２に格納し、適宜スプールから共通ＰＤＬデータを読み出して描画コンポーネント４４に送出し、プリントエンジン４８に印刷させる。なお、このプリンタ５４には、該共通ＰＤＬデータで使用されるダイナミックロード対象文字の文字パターンが既に文字資源記憶部４６に格納されているため、該文字パターンを使用して正しく印刷することができる。
【０１１８】
一方、ステップ１２０で、入力されたデータが印刷データではないと判定し、ステップ１４０で、入力されたデータがプリンタ制御コードであると判定した場合には、該プリンタ制御コードに対して何の処理も施さずにスルーで分配部７０に送出する。分配部７０は、該当のプリンタ５４に対して該プリンタ制御コードを送出する。
【０１１９】
ステップ１４０で、入力されたデータがプリンタ制御コードではないと判定した場合には、何の処理も行わずに本処理ルーチンを終了する。
【０１２０】
次に、印刷させるプリンタを切替える時の切替え処理について説明する。
【０１２１】
プリンタ５４を切替えるタイミングが到来したときには、エミュレーションコンポーネントの資源イメージダウンロード部６４は、資源イメージ保存機構６２に格納されている最新の文字パターンと、切替え先のプリンタ５４に送出するためのダウンロードコマンドを生成して、分配部７０に送出する。分配部７０は、印刷先の設定に従って、該ダウンロードコマンドをプリンタ５４Ａまたは５４Ｂのいずれか一方に送出する。
【０１２２】
該ダウンロードコマンドを受信したプリンタ５４では、該ダウンロードコマンドに従って、指定されたダウンロードアドレスに文字パターンを格納する。なお、プリンタ５４のコントローラ４０での処理は、第１の実施の形態において図７及び図８を用いて説明した処理と同様であるため、説明を省略する。
【０１２３】
次に、本実施の形態における印刷システムの動作について、図１４〜図１６を参照しながら、より具体的な例を挙げて説明する。
【０１２４】
図１４及び図１５は、ホスト５０、ＦＥＣ５２、及び各プリンタ５４Ａ、５４Ｂの各装置間のデータの授受の状態、及び印刷状態の一例を示したシーケンス図であって、プリンタ５４Ａで、文字パターン「あ」「い」を使用して印刷し、次にプリンタ５４Ｂに切替えて文字パターン「い」「う」「え」を使用して印刷し、更にプリンタ５４Ａに再度切替えて文字パターン「え」「お」を使用して印刷する処理の流れが示されている。なお、該文字パターン「あ」「い」「う」「え」「お」には、同一の文字コード0x80A1が対応付けられている。
【０１２５】
図１６（Ａ）は、図１４及び図１５のシーケンス図に示される（１）〜（７）の各々の時点での、ＦＥＣ５２の資源イメージ保存部６２における文字コード0x80A1に対する文字パターンの格納状態を示した図である。また、図１６（Ｂ）は、プリンタ５４Ａの文字資源記憶部４６の文字パターンの記憶状態を示した図である。図１６（Ｃ）は、図１４及び図１５に示される（１）〜（７）の各々の時点でのプリンタ５４Ｂの文字資源記憶部４６の文字パターンの記憶状態を示した図である。なお、図１６（Ｂ）及び図１６（Ｃ）において、下線で示された文字パターンは、ＦＥＣ５２の資源イメージ保存部６２に格納された最新の文字パターンと同期している文字パターンを示している。
【０１２６】
ＦＥＣ５２は、ホスト５０から文字パターンを受信したときには、ダウンロードコマンドを生成し、印刷先の設定に従ってプリンタ５４Ａまたはプリンタ５４Ｂのいずれか一方に送信する。プリンタ５４Ａまたはプリンタ５４Ｂは、該ダウンロードコマンドを受け取ると、該ダウンロードコマンドに含まれるダウンロードアドレスに文字パターンを記憶する。
【０１２７】
図１４の（１）及び（２）の時点では、プリンタ５４Ａにダウンロードコマンドが送出される。プリンタ５４Ａは、該ダウンロードコマンドに従って、図１６（Ｂ）の（１）及び（２）に示されるように、各文字パターン「あ」「い」を異なるダウンロードアドレス（0x3000、0x3200）に格納する。
【０１２８】
また、それぞれの文字パターンのダウンロードの後には、印刷データがホスト５０から送信され、ＦＥＣ５２のエミュレーションコンポーネント６０は、各印刷データを、印刷する文字パターンをダウンロードアドレスで指定した共通ＰＤＬデータに変換して印刷先として設定されているプリンタ５４に送出する。図１４では、文字パターン「あ」をダウンロードアドレス0x3000で指定した共通ＰＤＬデータ１＿１、文字パターン「い」をダウンロードアドレス0x3200で指定した共通ＰＤＬデータ１＿２がプリンタ５４Ａに送出される。
【０１２９】
プリンタ５４Ａの描画コンポーネント４４は、共通ＰＤＬデータ１＿１をコントローラ４０を介して入力すると、ダウンロードアドレス0x3000で指定された文字パターン「あ」を読み出して、プリントエンジン４８に出力する。プリントエンジン４８は、描画コンポーネント４４からの画像データに基づいて、印刷頁１＿１を正しく印刷することができる。また、共通ＰＤＬデータ１＿２を入力すると、上記同様に、ダウンロードアドレス0x3200で指定された文字パターン「い」を読み出して、プリントエンジン４８に出力する。プリントエンジン４８は、描画コンポーネント４４からの画像データに基づいて、印刷頁１＿２を正しく印刷することができる。
【０１３０】
印刷先をプリンタ５４Ｂに切替える時には、資源イメージ保存部６２に記憶された最新の文字パターンを転送してプリンタ５４Ｂの文字資源記憶部４６に格納するためのダウンロードコマンドをプリンタ５４Ｂに送出する。
【０１３１】
ここでは、資源イメージ保存部６２に、プリンタ５４Ａで既に印刷に使用された文字パターン「い」が最新の文字パターンとして記憶されており、この文字パターンはプリンタ５４Ｂでも使用される。従って、ダウンロードコマンドが、資源イメージダウンロード部６４により、資源イメージ保存部６２に記憶された最新の文字パターン「い」及び文字コード−アドレス管理部３６で決定されたプリンタ５４Ｂのダウンロードアドレスを用いて生成される。
【０１３２】
なお、ＦＥＣ５２のエミュレーションコンポーネント６０は、プリンタ５４Ｂのダウンロードアドレスについて、ホスト５０から文字パターン「い」をダウンロードしたときに、プリンタ５４Ａのダウンロードアドレスだけでなく、プリンタ５４Ｂのダウンロードアドレスも同時に決定し、双方のアドレスを文字コード−アドレス記憶テーブル８０やアドレス使用割当てテーブル８２に格納しておくようにしてもよいし、プリンタ切替え時に、プリンタ５４Ｂのダウンロードアドレスを決定するようにしてもよい。
【０１３３】
プリンタ５４Ｂは、ダウンロードコマンドを受け取ると、該ダウンロードコマンドに従って文字パターン「い」を文字資源記憶部４６の指定されたダウンロードアドレスに格納する（資源マージ）。図１４の（３）の時点では、図１６（Ｃ）に示されるように、ダウンロードアドレス0x3000に文字パターン「い」が格納される。
【０１３４】
その後、ＦＥＣ５２は、上記と同様の処理を行い、ホスト５０からの印刷データを、ダウンロードアドレスにより文字パターンを指定した共通ＰＤＬデータに変換し、プリンタ５４Ｂに送出して印刷頁２＿３を印刷させる。
【０１３５】
文字パターン「う」、文字パターン「え」についても、上記と同様にダウンロードコマンドを生成してプリンタ５４Ｂの文字資源記憶部４６に格納し、ホスト５０からの印刷データを、ダウンロードアドレスにより文字パターンを指定した共通ＰＤＬデータに変換し、プリンタ５４Ｂに送出して印刷頁２＿４、２＿５を印刷させる。
【０１３６】
図１４に示されるように、印刷頁２＿５の印刷途中で紙ジャムが発生した場合には、プリンタ５４Ｂのプリントエンジン４８で復旧作業が行われる。復旧した後は、前述の図８に示されるように所定頁前から遡ってリカバリ印刷が行われる。ここでは２頁前から遡ってリカバリ印刷されるため、印刷頁２＿３から再印刷される。図１６（Ｃ）の（５）に示されるように、各頁の印刷に必要な文字パターン「い」「う」「え」が消去されずに異なるアドレスに記憶された状態にあり、上記変換した共通ＰＤＬデータにおいては、各文字パターンがダウンロードアドレスにより指定されているため、図１４に示されるように、該ダウンロードアドレスから各頁毎に適切に文字パターンを読み出して正常にリカバリ印刷することができる。
【０１３７】
プリンタ５４Ｂでの印刷が完了すると、図１５に示されるように、ＦＥＣ５２は、前述のように、印刷先の設定に従って、プリンタの切替え処理（資源マージ）を行う。続いて、必要な文字パターン、共通ＰＤＬデータを送出して、文字パターン「え」を含む印刷頁１＿６、文字パターン「お」を含む印刷頁１＿７をプリンタ５４Ａに印刷を行わせる。
【０１３８】
このように、最新の文字パターンを記憶する資源イメージ保存部６２を設けると共に、印刷先のプリンタ５４を切替える場合には、該資源イメージ保存部６２に記憶された文字パターンを一括して送出するようにしたため、プリンタ５４毎に正しい文字パターンを用いて確実に印刷できる。また、障害が発生した場合であっても、各プリンタ５４に設けられた文字資源記憶部４６に必要な文字パターンが格納されているため、オフライン印刷においても、文字化けせずに正常に印刷することができる。さらにまた、各プリンタ５４の文字資源記憶部４６には、各プリンタ５４の印刷で使用されない不要な文字パターンは格納されないため、最小限の記憶領域で正常に印刷を行うことができ、全ての文字パターンを送出して格納する場合に比べて無駄を省くことができる。
【０１３９】
また、本実施の形態のように印刷システムを構成すると、プリンタ５４を交互使用して印刷できるため、一方のプリンタ５４は、共通ＰＤＬデータを送出するまで電源を投入しなくて良いなど、省エネルギー効果もある。
【０１４０】
なお、本実施の形態では、複数のエミュレーションコンポーネント６０の各々を、主変換部３２、アドレス変換部３４、文字コード−アドレス管理部３６、資源イメージ保存部６２、及び資源イメージダウンロード部６４により構成した例について説明したが、これに限定されず、例えば、複数のエミュレーションコンポーネント６０の各々を、主変換部３２のみで構成し、複数のエミュレーションコンポーネント６０外部に、各エミュレーションコンポーネント６０に共通の、アドレス変換部３４、文字コード−アドレス管理部３６、資源イメージ保存部６２、及び資源イメージダウンロード部６４を設けるようにしてもよい。このように、ダウンロードアドレスの決定・管理を行う機能、最新の文字パターンを記憶しておく記憶部、及び該文字パターンを各プリンタに送出して格納する機能をエミュレーションコンポーネント６０の外部に設けることにより、装置構成の冗長性を排除し、ダウンロードアドレスを一元的に管理できる。
【０１４１】
また、上述した第１及び第２の実施の形態では、文字資源として文字パターンを例に挙げて説明したが、フォントや字形データとしてもよい。
【０１４２】
また、上述した第１及び第２の実施の形態では、ダイナミックロード対象文字を、１文字単位でダウンロードして格納する例について説明したが、複数文字単位でダウンロードして格納するようにしてもよい。例えば、ダウンロードするタイミングに応じて、ダウンロードして格納する文字数の単位を異ならせて処理することもできる。すなわち、上記第１及び第２の実施の形態では、１文字単位でダウンロードし、ダウンロード毎に使用する文字パターンが切替えられる場合を例に挙げて説明したが、切替えタイミングが異なる文字パターンが複数存在する場合でも、上記と同様に処理できる。
【０１４３】
具体的には、例えば、一連の印刷データに先だって最初に複数文字単位で送出される文字パターン（プレロード文字）と、印刷頁の途中で１文字単位で送出される文字パターン（ダウンロード文字）とを混在させて処理する場合が挙げられる。
【０１４４】
このようにダウンロードするタイミングが異なる文字パターンを取り扱う場合には、上記第２の実施の形態において、資源イメージ保存部６２を切替えタイミングに応じて複数設け、タイミングに応じて使用する資源イメージ保存部６２を切替えるようにすることが好ましい。これによりプリンタ切替え時に適切に処理できる。
【図面の簡単な説明】
【０１４５】
【図１】第１の実施の形態のプリンタの構成を機能的に示した構成図である。
【図２】ダウンロードコマンドの構成を示した図である。
【図３】ダイナミックロード対象文字の描画コマンドの構成を示した図である。
【図４】文字コード−アドレス記憶テーブルの一例を示した図である。
【図５】アドレス使用割当てテーブルの一例を示した図である。
【図６】ホストから何らかのデータが入力されたときにエミュレーションコンポーネントで実行される処理の流れを示したフローチャートである。
【図７】共通ＰＤＬデータを読み出して描画コンポーネントに出力する通常のコントローラの処理の流れを示したフローチャートである。
【図８】紙ジャムなどの障害が発生したときに行われるコントローラの処理の流れを示したフローチャートである。
【図９】コントローラ及び描画コンポーネント（プリントエンジン）との間のデータの授受の状態、及び印刷状態の一例を示したシーケンス図である。
【図１０】図９のシーケンス図の（１）〜（５）の各々の時点における文字資源記憶部の文字パターンの格納状態を示したテーブルである。
【図１１】第２の実施の形態の印刷システムの構成を示した図である。
【図１２】ＦＥＣ及びプリンタの構成を機能的に示した構成図である。
【図１３】資源イメージ保存テーブルの一例を示した図である。
【図１４】ホスト、ＦＥＣ、及び各プリンタの各装置間のデータの授受の状態、及び印刷状態の一例を示したシーケンス図である。
【図１５】図１４に続くシーケンス図である。
【図１６】（Ａ）は、図１４及び図１５のシーケンス図に示される（１）〜（７）の各々の時点での、ＦＥＣ５２の資源イメージ保存部６２における文字コード0x80A1に対する文字パターンの格納状態を示した図であり、（Ｂ）は、プリンタ５４Ａの文字資源記憶部の文字パターンの記憶状態を示した図であり、（Ｃ）は、図１４及び図１５に示される（１）〜（７）の各々の時点でのプリンタ５４Ｂの文字資源記憶部の文字パターンの記憶状態を示した図である。
【図１７】（Ａ）は、複数のプリンタの各々が複数のホストと接続され、各プリンタが該複数のホストから受信した各ホスト独自の形式の印刷データを共通のＰＤＬ形式の印刷データ（共通ＰＤＬデータ）に変換して印刷する印刷システムを示した図であり、（Ｂ）は、該印刷システムの各プリンタの従来の構成を示した図である。
【図１８】連続紙を印刷する従来のプリンタによる印刷結果を示した一例である。
【符号の説明】
【０１４６】
１０  プリンタ
３０（３０Ａ、３０Ｂ、３０Ｃ）  エミュレーションコンポーネント
３２  主変換部
３４  アドレス変換部
３６  文字コード−アドレス管理部
４０  コントローラ
４２  スプール
４４  描画コンポーネント
４６  文字資源記憶部
４８  プリントエンジン
５４（５４Ａ、５４Ｂ）  プリンタ
６０（６０Ａ、６０Ｂ、６０Ｃ）  エミュレーションコンポーネント
６２  資源イメージ保存部
６４  資源イメージダウンロード部
７０  分配部
８０  文字コード−アドレス記憶テーブル
８２  アドレス使用割当てテーブル
８４  資源イメージ保存テーブル
【図１】
2006188024.tif 000003
【図２】
2006188024.tif 000004
【図３】
2006188024.tif 000005
【図４】
2006188024.tif 000006
【図５】
2006188024.tif 000007
【図６】
2006188024.tif 000008
【図７】
2006188024.tif 000009
【図８】
2006188024.tif 000010
【図９】
2006188024.tif 000011
【図１０】
2006188024.tif 000012
【図１１】
2006188024.tif 000013
【図１２】
2006188024.tif 000014
【図１３】
2006188024.tif 000015
【図１４】
2006188024.tif 000016
【図１５】
2006188024.tif 000017
【図１６】
2006188024.tif 000018
【図１７】
2006188024.tif 000019
【図１８】
2006188024.tif 000020