(57)【要約】【課題】フォントを指定するのに十分な操作インタフェースを持たないプリンタであっても、Ｕｎｉｃｏｄｅに対応した複数言語のフォントの中から、印字に使用するフォントを任意に指定できるようにする。【解決手段】ホストコンピュータ１００において、プリンタ２００が有している複数言語のフォントデータの優先順位を設定するためのコマンドをプリンタ２００に出力するコマンド出力部１２と、プリンタ２００において、印刷に使用するフォントデータの優先順位をコマンドに従って設定する優先順位設定部２２と、設定された優先順位に基づいて何れかの言語のフォントデータを使用して印刷を行う印刷実行部２４とを備え、フォントを指定するのに十分な操作インタフェースをプリンタ２００が有していなくても、ホストコンピュータ１００からプリンタ２００に送信するコマンドによって優先順位をプリンタ２００に設定することができるようにする。【選択図】図４
2019020892.tif 000002
【特許請求の範囲】
【請求項１】
複数言語の文字を共通の文字集合にて利用できるようにしたＵｎｉｃｏｄｅによる文字コードを送信するホストコンピュータと、当該ホストコンピュータから上記文字コードを受信して印刷を実行するプリンタとを備えた印刷システムであって、
上記ホストコンピュータは、
上記プリンタが有している複数言語のフォントデータの優先順位を上記プリンタに設定するためのコマンドを上記プリンタに対して出力するコマンド出力部と、
上記プリンタに対し、印刷すべき文字の上記文字コードを含む印刷データを送信する印刷データ送信部とを備え、
上記プリンタは、
上記Ｕｎｉｃｏｄｅに対応した複数言語のフォントデータを記憶したフォントデータ記憶部と、
上記コマンド出力部により出力された上記コマンドに従って、印刷に使用するフォントデータの言語の優先順位を設定する優先順位設定部と、
上記優先順位設定部により設定された優先順位に基づいて何れかの言語のフォントデータを使用して、上記印刷データ送信部により送信された上記印刷データに基づいて、当該印刷データに含まれる上記文字コードに対応した文字を含む文書の印刷を実行する印刷実行部とを備えたことを特徴とする印刷システム。
【請求項２】
上記コマンド出力部は、上記印刷データ送信部が上記印刷データを上記プリンタに送信するタイミングとは非同期で、上記コマンドを上記プリンタに対してあらかじめ出力し、
上記優先順位設定部は、上記コマンドに従って設定した優先順位を、次に上記コマンドが送られてくるまで保持することを特徴とする請求項１に記載の印刷システム。
【請求項３】
上記コマンド出力部は、上記印刷データ送信部が上記印刷データを上記プリンタに送信する際に、上記印刷データに上記コマンドを１つ付与する態様で、上記コマンドを上記プリンタに対して出力し、
上記優先順位設定部は、上記印刷データに付与されている上記コマンドに従って、上記印刷実行部が上記文書の印刷を実行する都度、当該印刷に使用するフォントデータの言語の優先順位を設定することを特徴とする請求項１に記載の印刷システム。
【請求項４】
上記コマンド出力部は、上記印刷データ送信部が送信する上記印刷データに含まれる複数の上記文字コードの間に１つ以上の上記コマンドを付与する態様で、上記コマンドを上記プリンタに対して出力し、
上記優先順位設定部は、上記印刷実行部が上記文書の印刷を実行する際に、上記印刷データに付与されている上記コマンドに従って、上記コマンドが現れる都度、当該印刷に使用するフォントデータの言語の優先順位を設定することを特徴とする請求項１に記載の印刷システム。
【請求項５】
上記プリンタは、上記印刷データ送信部により送信された上記印刷データに含まれる複数の上記文字コードの並びに基づいて、上記文書内に含まれる文字列の区切りを判定する区切り判定部を更に備え、
上記印刷実行部は、上記優先順位設定部により設定された優先順位に基づいて、上記区切り判定部により判定される上記文字列の区切り毎に、印刷に使用する言語のフォントデータを決定し、一の文字列の先頭で決定した言語のフォントデータを上記一の文字列の末尾まで使用して印刷を実行することを特徴とする請求項２または３に記載の印刷システム。
【請求項６】
上記印刷実行部は、上記優先順位設定部により優先順位が設定された言語のフォントデータが何れも上記フォントデータ記憶部に記憶されていない文字コードについては、他の文字コードに置き換えた上で、上記優先順位設定部により設定された優先順位に基づいて何れかの言語のフォントデータを使用して印刷を実行することを特徴とする請求項１〜５の何れか１項に記載の印刷システム。
【請求項７】
上記ホストコンピュータは、
上記プリンタが有している複数言語のフォントデータの優先順位をユーザ操作に基づいて指定するための優先順位指定部を更に備え、
上記コマンド出力部は、上記優先順位指定部により指定された優先順位を上記プリンタに設定するためのコマンドを上記プリンタに対して出力することを特徴とする請求項１〜６の何れか１項に記載の印刷システム。
【請求項８】
上記優先順位指定部は、指定可能な優先順位を示す複数のパターンを画面表示させ、上記複数のパターンの中から何れかのパターンを指定するユーザ操作に基づいて、上記優先順位を指定することを特徴とする請求項７に記載の印刷システム。
【請求項９】
上記優先順位指定部は、複数言語の優先順位を１つずつ指定するユーザ操作に基づいて、上記優先順位を指定することを特徴とする請求項７に記載の印刷システム。
【請求項１０】
上記優先順位指定部は、所定数の言語の優先順位を指定する際に、上記所定数に満たない数の言語についてユーザ操作に基づいて優先順位が指定された場合、当該ユーザ操作に基づいて指定された言語の優先順位に続けて、他の言語の優先順位をデフォルト順に従って指定することを特徴とする請求項９に記載の印刷システム。
【請求項１１】
複数言語の文字を共通の文字集合にて利用できるようにしたＵｎｉｃｏｄｅによる文字コードをホストコンピュータから入力して印刷を実行するプリンタであって、
上記Ｕｎｉｃｏｄｅに対応した複数言語のフォントデータを記憶したフォントデータ記憶部と、
上記複数言語のフォントデータの優先順位を設定するためのコマンドを上記ホストコンピュータから入力するコマンド入力部と、
上記コマンド入力部により入力された上記コマンドに従って、印刷に使用するフォントデータの言語の優先順位を設定する優先順位設定部と、
上記優先順位設定部により設定された優先順位に基づいて何れかの言語のフォントデータを使用して、上記ホストコンピュータから送信された印刷データに基づいて、当該印刷データに含まれる上記文字コードに対応した文字を含む文書の印刷を実行する印刷実行部とを備えたことを特徴とするプリンタ。
【請求項１２】
上記コマンド入力部は、上記ホストコンピュータから送信される上記印刷データとは異なるタイミングにて非同期で送られてくる上記コマンドを入力し、
上記優先順位設定部は、上記コマンドに従って設定した優先順位を、上記コマンド入力部が次のコマンドを入力するまで保持することを特徴とする請求項１１に記載のプリンタ。
【請求項１３】
上記コマンド入力部は、上記ホストコンピュータから送信される上記印刷データに１つ付与する態様で送られてくる上記コマンドを入力し、
上記優先順位設定部は、上記印刷データに付与されている上記コマンドに従って、上記印刷実行部が上記文書の印刷を実行する都度、当該印刷に使用するフォントデータの言語の優先順位を設定することを特徴とする請求項１１に記載のプリンタ。
【請求項１４】
上記コマンド入力部は、上記ホストコンピュータから送信される上記印刷データに含まれる複数の上記文字コードの間に１つ以上付与する態様で送られてくる上記コマンドを入力し、
上記優先順位設定部は、上記印刷実行部が上記文書の印刷を実行する際に、上記印刷データに付与されている上記コマンドに従って、上記コマンドが現れる都度、当該印刷に使用するフォントデータの言語の優先順位を設定することを特徴とする請求項１１に記載のプリンタ。
【請求項１５】
上記ホストコンピュータから送信される上記印刷データに含まれる複数の上記文字コードの並びに基づいて、上記文書内に含まれる文字列の区切りを判定する区切り判定部を更に備え、
上記印刷実行部は、上記優先順位設定部により設定された優先順位に基づいて、上記区切り判定部により判定される上記文字列の区切り毎に、印刷に使用する言語のフォントデータを決定し、一の文字列の先頭で決定した言語のフォントデータを上記一の文字列の末尾まで使用して印刷を実行することを特徴とする請求項１２または１３に記載のプリンタ。
【請求項１６】
上記印刷実行部は、上記優先順位設定部により優先順位が設定された言語のフォントデータが何れも上記フォントデータ記憶部に記憶されていない文字コードについては、他の文字コードに置き換えた上で、上記優先順位設定部により設定された優先順位に基づいて何れかの言語のフォントデータを使用して印刷を実行することを特徴とする請求項１１〜１５の何れか１項に記載のプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷システムおよびこれに用いるプリンタに関し、特に、複数言語の文字を共通の文字集合にて利用できるようにしたＵｎｉｃｏｄｅによる文字コードをホストコンピュータからプリンタに送信するとともに、何れかの言語のフォントデータを使用して文字列の印刷を実行する印刷システムに用いて好適なものである。
【背景技術】
【０００２】
従来、ホストコンピュータとプリンタとを接続し、ホストコンピュータで作成した文書等の印刷データをプリンタに送信して印刷するようにした印刷システムが広く使われている。この種の印刷システムでは、文字を符号化した文字コードを含む印刷データをホストコンピュータからプリンタに送信するともに、使用するフォントを指定して印刷を実行するようになされている。
【０００３】
ところで、近年のグローバル化に伴って、画面表示の際に用いる文字コードとして、複数言語の文字を共通の文字集合にて利用できるようにしたＵｎｉｃｏｄｅを採用するホストコンピュータが増えてきている。これに伴い、最近ではＵｎｉｃｏｄｅに対応した複数言語のフォントを搭載したプリンタも使われるようになってきている。
【０００４】
Ｕｎｉｃｏｄｅは、世界中の言語を対象とした１００万超のコードポイントを有している。これらの中には、各国で字形・フォントの異なっている文字が、Ｕｎｉｃｏｄｅ上では同じ文字コードに対応付けられているものがある。そのため、その文字コードに基づいて文字を印字する場合、どの国のフォントを使用するかを指定する必要がある。
【０００５】
しかしながら、操作インタフェースを全く持たないプリンタや、特定の専用機能に関する少数の操作ボタンやディップスイッチ等しか持たない（キーボードまたはタッチパネル等の操作インタフェースを持たない）プリンタを用いる場合は、使用するフォントをユーザが指定することができない。そのため、このようにユーザがフォントを指定するのに十分な操作インタフェースを持たないプリンタにおいては、プリンタにあらかじめ設定された優先順位に従ってフォントを指定し、印字していた。この場合、各文字コードに対応する文字を第１優先のフォントで印字するが、第１優先のフォントに対応付けがない文字コードについては、次の優先順位のフォントで印字を行うことになる。
【０００６】
なお、表示画面に対する文字列の描画に用いる言語の優先順位に関し、ユーザが使用する言語を最優先とし、デフォルトで設定されている言語を次に優先するフォント優先リストに基づいて、文字列の描画を行うようにした情報処理装置が知られている（例えば、特許文献１参照）。
【０００７】
また、処理対象の文字が、ユニコード文字データに対応する言語固有の文字コードが１つのみの「言語特有文字」であるか否かを文字列の先頭文字から順に判定していき、最初に発見された言語特有文字の言語、または、文字列中に言語特有文字が発見されなかった場合は既定値として設定されている地域の言語に対応するフォントを指定するようになされた情報処理装置も知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１６−７１６６８号公報
【特許文献２】特開２００７−１７２３８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記特許文献１，２に記載の技術は何れも、情報処理装置において文字列を表示する際に使用するフォントの指定方法について開示したものである。一方、プリンタで印字を実行する際に使用するフォントに関しては、上述したように、プリンタにあらかじめ設定された優先順位に従ってフォントを指定するようになされている。そのため、フォントを指定するのに十分な操作インタフェースを持たないプリンタでは、印字に使用するフォントを任意に指定することができないという問題があった。
【００１０】
本発明は、このような問題を解決するために成されたものであり、ユーザがフォントを指定するのに十分な操作インタフェースを持たないプリンタであっても、Ｕｎｉｃｏｄｅに対応した複数言語のフォントの中から、印字に使用するフォントを任意に指定することができるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
上記した課題を解決するために、本発明では、プリンタが有している複数言語のフォントデータの優先順位を設定するためのコマンドをホストコンピュータからプリンタに対して送信する。プリンタでは、ホストコンピュータから送られてくるコマンドに従って、印刷に使用するフォントデータの優先順位を設定し、設定された優先順位に基づいて何れかの言語のフォントデータを使用して、印刷データに含まれる文字コードに対応した文字を含む文書の印刷を実行するようにしている。
【発明の効果】
【００１２】
上記のように構成した本発明によれば、印刷に使用するフォントを指定するために十分な操作インタフェースをプリンタが有していなくても、ホストコンピュータからプリンタにコマンドを送信することによって、Ｕｎｉｃｏｄｅに対応した複数言語のフォントデータの優先順位をプリンタに設定することができる。プリンタでは、以上のように設定された優先順位に従って、何れかの言語のフォントデータを使用して印刷が実行されることとなる。これにより、ユーザがフォントを指定するのに十分な操作インタフェースを持たないプリンタであっても、Ｕｎｉｃｏｄｅに対応した複数言語のフォントの中から、印字に使用するフォントを任意に指定することができるようになる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態による印刷システムの構成例を示す図である。
【図２】ホストコンピュータのハードウェア構成例を示す図である。
【図３】プリンタのハードウェア構成例を示す図である。
【図４】第１の実施形態による印刷システムの機能構成例を示す図である。
【図５】優先順位指定画面の一例を示す図である。
【図６】優先順位指定画面の他の例を示す図である。
【図７】印刷される文書の一例を示す図である。
【図８】Ｕｎｉｃｏｄｅと各言語のフォントとの対応関係を示す図である。
【図９】第１の実施形態において、フォントの優先順位を設定する際の動作例を示すフローチャートである。
【図１０】第１の実施形態において、印刷を実行する際の動作例を示すフローチャートである。
【図１１】第２の実施形態による印刷システムの機能構成例を示す図である。
【図１２】第２の実施形態において、印刷データ送信部がプリンタに送信するデータの一例を示す図である。
【図１３】第２の実施形態において、印刷を実行する際の動作例を示すフローチャートである。
【図１４】第３の実施形態による印刷システムの機能構成例を示す図である。
【図１５】印刷される文書の他の例を示す図である。
【図１６】第３の実施形態において、印刷を実行する際の動作例を示すフローチャートである。
【図１７】第４の実施形態による印刷システムの機能構成例を示す図である。
【図１８】第４の実施形態において、印刷を実行する際の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
（第１の実施形態）
以下、本発明の第１の実施形態を図面に基づいて説明する。図１は、第１の実施形態による印刷システムの構成例を示す図である。図１に示すように、第１の実施形態による印刷システムは、ホストコンピュータ１００と、当該ホストコンピュータ１００から印刷データを受信して印刷を実行するプリンタ２００とを備えて構成されている。
【００１５】
ホストコンピュータ１００は、例えば据え置き型のＰＯＳ端末であり、プリンタ２００との間はＵＳＢ（Universal Serial Bus）ケーブル３００により接続されている。なお、ホストコンピュータ１００を携帯型のＰＯＳ端末（スマートフォン、タブレット端末など）とし、プリンタ２００との間を無線ＬＡＮまたはブルートゥース（登録商標）等の無線ネットワークにより接続してもよい。なお、ここではホストコンピュータ１００をＰＯＳ端末としているが、これに限定されるものではない。
【００１６】
本実施形態では、ホストコンピュータ１００は、複数言語の文字を共通の文字集合にて利用できるようにしたＵｎｉｃｏｄｅによる文字コードをプリンタ２００に送信する。例えば、ホストコンピュータ１００は、Ｕｎｉｃｏｄｅに対応のアプリケーションがインストールされた端末であり、当該アプリケーションにおいてＵｎｉｃｏｄｅによる文字コードを含む印刷データを生成し、当該印刷データをプリンタ２００に送信する。
【００１７】
プリンタ２００は、例えば、ＰＯＳ端末等のホストコンピュータ１００に接続してレシート等を印字するＰＯＳプリンタである。なお、ここではプリンタ２００をＰＯＳプリンタとしているが、これに限定されるものではない。
【００１８】
本実施形態のプリンタ２００は、Ｕｎｉｃｏｄｅに対応する複数言語のフォントセットのデータ（以下、「フォントデータ」または単に「フォント」という）を記憶しており、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データをホストコンピュータ１００から受信して印刷を実行する。このとき、プリンタ２００は、複数言語のフォントデータのうち、あらかじめ設定された優先順位に従って選択される言語のフォントデータを使用して印刷を実行する。
【００１９】
第１の実施形態において、プリンタ２００でどの言語のフォントを使用して印刷を実行するかを定めるフォントの優先順位（使用言語の優先順位）は、ホストコンピュータ１００で指定し、その指定内容を含めたコマンドをプリンタ２００に送信することにより、フォントの優先順位をプリンタ２００に設定する。プリンタ２００に対してフォントの優先順位をいったん設定すると、次にホストコンピュータ１００からプリンタ２００にコマンドを送信するまでの間は、優先順位の設定は変わらない。
【００２０】
プリンタ２００は、ホストコンピュータ１００から印刷データを受信する都度、当該印刷データに含まれる文字コードと、以上のように設定されたフォントの優先順位に従って選択される言語のフォントデータとに基づいて、文字コードに対応した文字を含む文書の印刷を実行する。なお、印刷データの中に、文字コード以外の情報（図形、画像など）が含まれる場合、プリンタ２００は、文字の他にその図形や画像などの情報を含む文書の印刷を実行する。以下では、説明の簡略のため、文字の印刷についてのみ言及する。
【００２１】
図２は、ホストコンピュータ１００のハードウェア構成例を示す図である。図２に示すように、ホストコンピュータ１００は、そのハードウェア構成として、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、フラッシュ等の不揮発性メモリ１０４、ハードディスク１０５、ＵＳＢ通信部１０６、操作部１０７および表示部１０８を備えている。
【００２２】
ＣＰＵ１０１は、ＲＯＭ１０２、不揮発性メモリ１０４またはハードディスク１０５に記憶されたプログラムに従って、ＲＡＭ１０３をワークメモリとして用いながら、ホストコンピュータ１００の動作を制御する。ハードディスク１０５は、各種プログラムおよびデータを記憶する。ハードディスク１０５が記憶するデータの中には、印刷データも含まれる。
【００２３】
ＵＳＢ通信部１０６は、プリンタ２００との間でＵＳＢケーブル３００を介してデータ通信を行う。例えば、ＵＳＢ通信部１０６は、ホストコンピュータ１００で生成された印刷データをプリンタ２００に送信する。また、ＵＳＢ通信部１０６は、ホストコンピュータ１００で指定されたフォントの優先順位をプリンタ２００に設定するためのコマンドをプリンタ２００に送信する。
【００２４】
操作部１０７は、印刷データの生成や印刷指示などに関する操作、フォントの優先順位の指定やプリンタ２００に対する設定に関する操作をユーザが行うためのものであり、キーボードおよびマウス、またはタッチパネル等により構成される。表示部１０８は、印刷データに係る文書や、フォントの優先順位の指定画面などを表示するためのものであり、例えば液晶ディスプレイ、有機ＥＬディスプレイ等により構成される。
【００２５】
図３は、プリンタ２００のハードウェア構成例を示す図である。図３に示すように、プリンタ２００は、そのハードウェア構成として、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、フラッシュ等の不揮発性メモリ２０４、ＵＳＢ通信部２０５および印刷部２０６を備えている。プリンタ２００は、ユーザがフォントを指定するための操作部や表示部を備えておらず、プリンタ２００において自らフォントの優先順位を設定することはできない。
【００２６】
ＣＰＵ２０１は、ＲＯＭ２０２または不揮発性メモリ２０４に記憶されたプログラムに従って、ＲＡＭ２０３をワークメモリとして用いながら、プリンタ２００の動作を制御する。例えば、ＣＰＵ２０１は、ホストコンピュータ１００から送信される印刷データに基づく印刷の実行を制御する。また、ＣＰＵ２０１は、ホストコンピュータ１００から送信されるコマンドに基づくフォントの優先順位の設定を実行する。
【００２７】
ＵＳＢ通信部２０５は、ホストコンピュータ１００との間でＵＳＢケーブル３００を介してデータ通信を行う。例えば、ＵＳＢ通信部２０５は、ホストコンピュータ１００で生成された印刷データを受信する。また、ＵＳＢ通信部２０５は、ホストコンピュータ１００で指定されたフォントの優先順位をプリンタ２００に設定するためのコマンドを受信する。当該コマンドに従って設定されるフォントの優先順位に関する情報は、不揮発性メモリ２０４に記憶される。
【００２８】
印刷部２０６は、ＣＰＵ２０１から印刷実行の指示を受けて、印刷データに基づく印刷処理を実行する。すなわち、印刷部２０６は、ホストコンピュータ１００から受信した印刷データに含まれる文字コードに基づいて、当該文字コードで表わされる文字列の印刷を実行する。ここで、プリンタ２００は、Ｕｎｉｃｏｄｅにより表された文字コードから成る文字列を、あらかじめ設定されたフォントの優先順位に従って選択される言語のフォントデータを使用して印刷する。
【００２９】
図４は、第１の実施形態による印刷システムの機能構成例を示す図である。図４に示すように、ホストコンピュータ１００は、その機能構成として、優先順位指定部１１、コマンド出力部１２、印刷データ生成部１３および印刷データ送信部１４を備えている。また、プリンタ２００は、その機能構成として、コマンド入力部２１、優先順位設定部２２、印刷データ受信部２３、印刷実行部２４およびフォントデータ記憶部２５を備えている。
【００３０】
ここで、ホストコンピュータ１００の各機能ブロック１１〜１４は、図２に示したＣＰＵ１０１の制御に従って、ＲＯＭ１０２、不揮発性メモリ１０４またはハードディスク１０５に記憶されたプログラムが動作することによって実現される。このプログラムは、例えば、ホストコンピュータ１００にインストールされているアプリケーションプログラムの一部である。なお、優先順位指定部１１およびコマンド出力部１２の機能を実現するプログラムと、印刷データ生成部１３および印刷データ送信部１４の機能を実現するプログラムとが別に構成されていてもよい。
【００３１】
また、プリンタ２００の各機能ブロック２１〜２４は、図３に示したＣＰＵ２０１の制御に従って、ＲＯＭ２０２または不揮発性メモリ２０４に記憶されたプログラムが動作することによって実現される。フォントデータ記憶部２５は、図３のＲＯＭ２０２または不揮発性メモリ２０４により構成される。あるいは、フォントデータ記憶部２５をハードディスク等の他の記憶媒体により構成してもよい。
【００３２】
ホストコンピュータ１００の優先順位指定部１１は、ユーザが操作部１０７に対して行う操作を通じて、プリンタ２００が有している複数言語のフォントデータの優先順位を指定する。どのようなユーザ操作に基づいて優先順位を指定するかは、任意である。例えば、優先順位指定部１１は、指定可能な優先順位を示す複数のパターンを表示部１０８に画面表示させ、複数のパターンの中から何れかのパターンを指定するユーザ操作に基づいて、優先順位を指定するようにすることが可能である。
【００３３】
例えば、プリンタ２００が日本語、中国語、台湾語、韓国語の４つの言語のフォントデータをフォントデータ記憶部２５に記憶しているものとする。この場合、優先順位指定部１１は、当該４つの言語の優先順位を指定する。４つの言語の場合、優先順位の組み合わせは全部で２４パターンある（４×３×２×１＝２４）。優先順位指定部１１は、図５に示すように、この２４パターンの優先順位の組み合わせを表示部１０８にリスト表示させ、何れかのパターンをユーザに選択させることにより、フォントの優先順位を指定する。
【００３４】
あるいは、優先順位指定部１１は、複数言語の優先順位を１つずつ指定するユーザ操作に基づいて、優先順位を指定するようにしてもよい。例えば、図６に示すように、優先順位指定部１１は、第１優先から第４優先まで１つずつ言語を入力可能な入力欄を表示部１０８に表示させ、各入力欄に日本語、中国語、台湾語、韓国語を１つずつユーザに入力させることによって、フォントの優先順位を指定する。各入力欄には、言語をテキスト入力するようにしてもよいし、プルダウンメニューを表示させて４つの言語の中から何れか１つを選択できるようにしてもよい。
【００３５】
図６のように第１優先から順に１つずつ言語を指定していく場合、第４優先まで全てユーザが指定しなくてもよいようにすることも可能である。例えば、優先順位指定部１１は、所定数の言語（今の例では日本語、中国語、台湾語、韓国語の４つの言語）の優先順位を指定する際に、所定数に満たない数の言語についてユーザ操作に基づいて優先順位が指定された場合、当該ユーザ操作に基づいて指定された言語の優先順位に続けて、他の言語の優先順位をデフォルト順に従って指定するようにしてもよい。
【００３６】
例えば、デフォルトの優先順位を日本語→中国語→台湾語→韓国語のように決めておくものとする。この場合、ユーザが第１優先の言語として中国語を指定するとともに、第２優先の言語として台湾語を指定し、第３優先の言語と第４優先の言語は指定しなかったとする。この場合、優先順位指定部１１は、残りの日本語と韓国語については、デフォルトの優先順位に従って第３優先を日本語、第４優先を韓国語に自動的に指定する。このようにすれば、ユーザが気にしなくてもよいフォントについては優先順位を指定する必要がないので、指定が簡便にできるというメリットを有する。
【００３７】
コマンド出力部１２は、優先順位指定部１１により指定された優先順位をプリンタ２００に設定するためのコマンドをプリンタ２００に対して出力する。例えば、図５または図６に示す優先順位指定画面においてフォントの優先順位を指定した後、画面下方の確定ボタンをユーザが操作すると、コマンド出力部１２は、指定された優先順位の情報を含むコマンドを発行し、プリンタ２００に対して出力する。
【００３８】
第１の実施形態において、コマンド出力部１２は、印刷データ送信部１４が印刷データをプリンタ２００に送信するタイミングとは非同期で、コマンドをプリンタ２００に対してあらかじめ送信する。
【００３９】
印刷データ生成部１３は、ユーザが操作部１０７に対して行う操作を通じて、任意の文字列を含む印刷データを生成する。本実施形態では、印刷データ生成部１３は、文字列をＵｎｉｃｏｄｅによる文字コードで表した印刷データを生成する。印刷データ送信部１４は、印刷データ生成部１３により生成された印刷データをプリンタ２００に送信する。すなわち、印刷データ送信部１４は、印刷すべき文字の文字コードを含む印刷データをプリンタ２００に送信する。
【００４０】
プリンタ２００のフォントデータ記憶部２５は、Ｕｎｉｃｏｄｅに対応した複数言語のフォントデータを記憶する。例えば、フォントデータ記憶部２５は、日本語、中国語、台湾語、韓国語の４つの言語のフォントデータを記憶する。
【００４１】
コマンド入力部２１は、ホストコンピュータ１００のコマンド出力部１２により出力されたコマンドを入力する。第１の実施形態において、コマンド入力部２１は、ホストコンピュータ１００から送信される印刷データとは異なるタイミングにて非同期で送られてくるコマンドを入力する。
【００４２】
優先順位設定部２２は、コマンド入力部２１により入力されたコマンドに従って、印刷に使用するフォントデータの言語の優先順位をプリンタ２００に設定する。すなわち、優先順位設定部２２は、コマンド内に含まれる優先順位の情報を不揮発性メモリ２０４に記憶させることにより、ホストコンピュータ１００で指定されたフォントの優先順位をプリンタ２００に設定する。
【００４３】
第１の実施形態において、優先順位設定部２２は、コマンドに従って設定した優先順位を、コマンド入力部２１が次のコマンドを入力するまで保持する。すなわち、不揮発性メモリ２０４に記憶された優先順位の情報は、次にコマンドがホストコンピュータ１００から送られてきて優先順位設定部２２により書き換えられるまでの間、維持される。
【００４４】
印刷データ受信部２３は、ホストコンピュータ１００の印刷データ送信部１４により送信された印刷データを受信する。すなわち、印刷データ受信部２３は、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データをホストコンピュータ１００から受信する。
【００４５】
印刷実行部２４は、優先順位設定部２３により設定された優先順位（不揮発性メモリ２０４に記憶された優先順位の情報）に基づいて、フォントデータ記憶部２５に記憶されている複数言語のフォントデータのうち何れかの言語のフォントデータを使用して、印刷データ受信部２３により受信された印刷データに基づいて、当該印刷データに含まれる文字コードに対応した文字を含む文書の印刷を実行する。
【００４６】
ここで、印刷実行部２４は、印刷データに含まれる文字コードの１つずつについて、あらかじめ設定された優先順位に基づいて、何れかの言語のフォントデータを使用して印刷を実行する。このとき、印刷実行部２４は、文字コードに対応するフォントデータが第１優先の言語に存在すれば、当該第１優先の言語のフォントデータを使用してその文字を印刷する。
【００４７】
一方、文字コードに対応するフォントデータが第１優先の言語に存在しなければ、第２優先の言語のフォントデータを使用してその文字を印刷する。文字コードに対応するフォントデータが第２優先の言語にも存在しなければ、第３優先の言語のフォントデータを使用してその文字を印刷する。同様に、文字コードに対応するフォントデータが第３優先の言語にも存在しなければ、第４優先の言語のフォントデータを使用してその文字を印刷する。
【００４８】
図７は、印刷される文書の一例を示す図である。また、図８は、Ｕｎｉｃｏｄｅと各言語のフォントとの対応関係を示す図である。なお、図８中に示す「整」、「理」、「券」等の各漢字は、言語を問わずＵｎｉｃｏｄｅにより統一された画面表示用のフォントによる表記を示したものであり、必ずしもプリンタ２００が有するフォントにより印刷される各漢字の表記とは一致しない。
【００４９】
図７（ａ）に示す文書の中には、「整理券」という３文字の漢字が含まれている。図８に示すように、各漢字のＵｎｉｃｏｄｅによる文字コード（コードナンバー）は、「整」＝Ｕ＋６５７４、「理」＝Ｕ＋７４０６、「券」＝Ｕ＋５２３８である。日本語、中国語、台湾語、韓国語の何れのフォントデータ（プリンタ２００が記憶しているフォントデータ）も、「整」、「理」、「券」のＵｎｉｃｏｄｅに対応する字形を有している。よって、この場合はどの言語のフォントを第１優先に設定しても、「整理券」という文字を統一したフォントで正しく印刷することができる。
【００５０】
一方、図７（ｂ）に示す文書の中には、「▼編▲号票」という３文字の漢字が含まれている。「▼編▲」は、「編」の簡体字であることを意味している。図８に示すように、各漢字のＵｎｉｃｏｄｅによる文字コード（コードナンバー）は、「▼編▲」＝Ｕ＋７Ｆ１６、「号」＝Ｕ＋５３Ｆ７、「票」＝Ｕ＋７９６８である。「票」に関しては、日本語、中国語、台湾語、韓国語の何れのフォントデータも、Ｕｎｉｃｏｄｅに対応する字形を有している。しかしながら、「▼編▲」に関しては、これのＵｎｉｃｏｄｅに該当する字形を有しているのは中国語のフォントだけであり、「号」に関しては、これのＵｎｉｃｏｄｅに該当する字形を有しているのは日本語と中国語のフォントだけである。
【００５１】
したがって、図７（ｂ）に示す文書の場合、「▼編▲号票」という３文字を全て統一したフォントで正しく印刷するためには、中国語のフォントを使用する必要がある。例えば、日本語のフォントを第１優先に設定すると、「号」の文字コード“Ｕ＋５３Ｆ７”および「票」の文字コード“Ｕ＋７９６８”に関してはこれに対応する日本語の字形のフォントデータが存在するので、第１優先に設定した日本語のフォントで印刷が実行される。これに対し、「▼編▲」に関しては、その文字コード“Ｕ＋７Ｆ１６”に対応する日本語の字形のフォントデータが存在しないので、第２優先以降に設定されている中国語のフォントで印刷が実行される。このため、図７（ｂ）に示す文書のように、「▼編▲」は中国語のフォント、「号票」は日本語のフォントで印刷され、フォントが統一されずアンバランスな表記となってしまう。
【００５２】
これに対して、中国語のフォントを第１優先に設定すると、「▼編▲」、「号」、「票」の全てが中国語のフォントで印刷され、フォントが統一される。よって、ホストコンピュータ１００にインストールされているアプリケーションが中国語に対応したアプリケーションである場合には、優先順位指定部１１において中国語を第１優先に指定すればよい。中国語に対応したアプリケーションとは、Ｕｎｉｃｏｄｅにおいて中国語に割り振られた文字コード群を使用するアプリケーションを意味する。なお、ホストコンピュータ１００にインストールされているアプリケーションが日本語に対応したアプリケーションであれば、優先順位指定部１１において日本語を第１優先に指定すればよい。
【００５３】
このように、第１の実施形態によれば、ユーザがフォントを指定するのに十分な操作部をプリンタ２００が有しておらず、プリンタ２００においてフォントの優先順位を設定できない場合であっても、アプリケーションの用途や仕様等に合わせてホストコンピュータ１００でフォントの優先順位を指定し、優先順位設定のためのコマンドをホストコンピュータ１００からプリンタ２００に送信することによって、プリンタ２００で印刷の際に使用するフォントの優先順位を自由に設定することができる。
【００５４】
なお、ここでは、図５または図６のような優先順位指定画面を通じて、ホストコンピュータ１００のユーザが、印刷に使用するフォントの優先順位を任意に指定する例について説明したが、この方法に限定されない。例えば、アプリケーションを設計・開発する業者が、そのアプリケーションの用途や仕様等に合わせてフォントの優先順位を決定し、その優先順位の情報をアプリケーションの中にあらかじめ組み込んでおくようにしてもよい。このようにすれば、アプリケーション毎に、フォントの優先順位を設定することが可能である。
【００５５】
この場合、優先順位指定部１１は、例えば、優先順位の設定を指示するユーザ操作に応じて、アプリケーションに組み込まれた優先順位の情報を読み取ることによってフォントの優先順位を指定する。あるいは、アプリケーションが起動されたときに、優先順位指定部１１がアプリケーションに組み込まれた優先順位の情報を読み取ることによってフォントの優先順位を自動的に指定し、コマンド出力部１２がその優先順位をプリンタ２００に設定するためのコマンドをプリンタ２００に対して自動的に出力するようにしてもよい。
【００５６】
また、別の例として、ホストコンピュータ１００にインストールされているアプリケーションの動作環境を設定するための環境設定画面の１つとして、図５または図６のような優先順位指定画面を表示させることにより、優先順位指定部１１による優先順位の指定を行うようにしてもよい。すなわち、アプリケーションの動作環境としてフォントの優先順位をあらかじめ設定しておくようにしてもよい。このようにすれば、アプリケーションを設計・開発する業者ではなく、印刷システムを利用するユーザの操作により、アプリケーション毎にフォントの優先順位を自由に設定することが可能である。
【００５７】
図９および図１０は、以上のように構成した第１の実施形態による印刷システムの動作例を示すフローチャートである。図９は、フォントの優先順位を設定する際の動作例を示すフローチャートである。図１０は、印刷を実行する際の動作例を示すフローチャートである。図９に示すフローチャートは、フォントの優先順位の設定の実行がユーザにより指示されたときに開始する。また、図１０に示すフローチャートは、ユーザにより印刷の実行が指示されたときに開始する。
【００５８】
まず、図９に基づいて、フォントの優先順位を設定する際の動作を説明する。ホストコンピュータ１００の優先順位指定部１１は、プリンタ２００が有している複数言語のフォントデータの優先順位をユーザ操作に基づいて指定する（ステップＳ１）。次いで、コマンド出力部１２は、優先順位指定部１１により指定された優先順位をプリンタ２００に設定するためのコマンドをプリンタ２００に対して出力する（ステップＳ２）。
【００５９】
プリンタ２００では、コマンド出力部１２により出力されたコマンドをコマンド入力部２１が入力すると（ステップＳ３）、優先順位設定部２２は、当該入力されたコマンド内に含まれる優先順位の情報を不揮発性メモリ２０４に記憶させることにより、印刷に使用するフォントデータの言語の優先順位をプリンタ２００に設定する（ステップＳ４）。これにより、図９に示すフローチャートの処理は終了する。
【００６０】
次に、図１０に基づいて、印刷を実行する際の動作を説明する。ホストコンピュータ１００の印刷データ生成部１３は、ホストコンピュータ１００にインストールされているアプリケーションに対するユーザ操作を通じて、任意の文字列を含む印刷データを生成する（ステップＳ１１）。印刷データ送信部１４は、印刷データ生成部１３により生成された印刷データをプリンタ２００に送信する（ステップＳ１２）。
【００６１】
プリンタ２００では、印刷データ送信部１４により送信された印刷データを印刷データ受信部２３が受信すると（ステップＳ１３）、印刷実行部２４は、ステップＳ１４以降の処理によって、受信した印刷データに基づいて、文字およびその他の情報（図形、画像など）を含む文書の印刷を実行する。まず、印刷実行部２４は、印刷データの先頭から情報を読み取り、読み取った情報が文字コードか否かを判定する（ステップＳ１４）。文字コードでなければ、その他の情報の印刷を実行した後（ステップＳ１５）、処理はステップＳ１４に戻る。
【００６２】
ステップＳ１４において、読み取った情報が文字コードであると判定された場合、印刷実行部２４は、不揮発性メモリ２０４に記憶されている優先順位の設定情報およびフォントデータ記憶部２５に記憶されているフォントデータを参照して、その文字コードに関して、第１優先に設定されている言語のフォントデータが存在するか否かを判定する（ステップＳ１６）。第１優先に設定されている言語のフォントデータが存在する場合、印刷実行部２４は、当該第１優先の言語のフォントデータを使用して、文字コードに対応する文字を印刷する（ステップＳ１７）。
【００６３】
その後、印刷実行部２４は、印刷データに基づく印刷が全て終了したか否かを判定する（ステップＳ１８）。まだ印刷が終了していない場合、処理はステップＳ１４に戻り、印刷データに含まれる次の情報を読み取って同様の処理を実行する。一方、印刷データに基づく印刷が全て終了した場合、図１０に示すフローチャートの処理は終了する。
【００６４】
一方、ステップＳ１６において、第１優先に設定されている言語のフォントデータが存在しないと判定された場合、印刷実行部２４は、参照する対象を次の優先順位の言語に切り替える（ステップＳ１９）。この場合は、第２優先の言語に切り替える。そして、印刷実行部２４は、処理対象の文字コードに関して、第２優先に設定されている言語のフォントデータが存在するか否かを判定する（ステップＳ２０）。
【００６５】
ここで、第２優先に設定されている言語のフォントデータが存在する場合、印刷実行部２４は、当該第２優先の言語のフォントデータを使用して、文字コードに対応する文字を印刷する（ステップＳ１７）。一方、第２優先に設定されている言語のフォントデータも存在しないと判定された場合、印刷実行部２４は、参照する対象を次の優先順位の言語に切り替える（ステップＳ１９）。この場合は、第３優先の言語に切り替える。
【００６６】
そして、印刷実行部２４は、処理対象の文字コードに関して、第３優先に設定されている言語のフォントデータが存在するか否かを判定する（ステップＳ２０）。ここで、第３優先に設定されている言語のフォントデータが存在する場合、印刷実行部２４は、当該第３優先の言語のフォントデータを使用して、文字コードに対応する文字を印刷する（ステップＳ１７）。以下同様にして、必要に応じて第４優先の言語に切り替えて、第４優先の言語のフォントデータを使用して文字コードに対応する文字を印刷する。
【００６７】
その後、印刷実行部２４は、印刷データに基づく印刷が全て終了したか否かを判定する（ステップＳ１８）。まだ印刷が終了していない場合、処理はステップＳ１４に戻り、印刷データに含まれる次の情報を読み取って同様の処理を実行する。一方、印刷データに基づく印刷が全て終了した場合、図１０に示すフローチャートの処理は終了する。
【００６８】
以上詳しく説明したように、第１の実施形態では、ホストコンピュータ１００において、プリンタ２００が有している複数言語のフォントデータの優先順位を指定し、ホストコンピュータ１００からプリンタ２００にコマンドを送信することによって、印刷に使用するフォントデータの優先順位をプリンタ２００にあらかじめ設定する。その後、ホストコンピュータ１００からプリンタ２００に印刷データを送信して印刷を行うときは、あらかじめ設定された優先順位に基づいて何れかの言語のフォントデータを使用して、印刷データに含まれる文字コードに対応した文字を含む文書の印刷を行うようにしている。
【００６９】
このように構成した第１の実施形態によれば、印刷に使用するフォントを指定するための操作インタフェースをプリンタ２００が有していなくても、Ｕｎｉｃｏｄｅに対応した複数言語のフォントデータの優先順位をホストコンピュータ１００にて指定し、ホストコンピュータ１００からプリンタ２００にコマンドを送信することによって優先順位をプリンタ２００に設定することができる。プリンタ２００では、以上のように設定された優先順位に従って、何れかの言語のフォントデータを使用して印刷が実行されることとなる。これにより、ユーザがフォントを指定するのに十分な操作インタフェースを持たないプリンタ２００であっても、Ｕｎｉｃｏｄｅに対応した複数言語のフォントの中から、印字に使用するフォントを任意に指定することができるようになる。
【００７０】
（第２の実施形態）
次に、本発明の第２の実施形態を図面に基づいて説明する。第２の実施形態による印刷システムの全体構成は、図１と同様である。ただし、第１の実施形態と区別するために、ホストコンピュータの符号を１００Ａ、プリンタの符号を２００Ａとする。また、ホストコンピュータ１００Ａおよびプリンタ２００Ａのハードウェア構成は、それぞれ図２および図３と同様である。
【００７１】
図１１は、第２の実施形態による印刷システムの機能構成例を示すブロック図である。なお、この図１１において、図４に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図１１に示すように、ホストコンピュータ１００Ａは、その機能構成として、優先順位指定部１１、コマンド出力部１２Ａ、印刷データ生成部１３および印刷データ送信部１４Ａを備えている。また、プリンタ２００Ａは、その機能構成として、コマンド入力部２１Ａ、優先順位設定部２２Ａ、印刷データ受信部２３Ａ、印刷実行部２４およびフォントデータ記憶部２５を備えている。
【００７２】
ホストコンピュータ１００Ａのコマンド出力部１２Ａは、印刷データ送信部１４Ａが印刷データをプリンタ２００Ａに送信する際に、印刷データにコマンドを１つ付与する態様で、コマンドをプリンタ２００Ａに対して出力する。すなわち、コマンド出力部１２Ａは、優先順位指定部１１により指定された優先順位の情報を含むコマンドを発行し、当該コマンドを印刷データ送信部１４Ａに供給する。印刷データ送信部１４Ａは、印刷データ生成部１３により生成された印刷データと共に、コマンド出力部１２Ａより供給されたコマンドをプリンタ２００Ａに送信する。
【００７３】
なお、優先順位指定部１１による優先順位の指定は、例えば、印刷データ送信部１４Ａにより印刷データを送信する際に、ホストコンピュータ１００にインストールされているプリンタドライバのプロパティ画面として図５または図６のような優先順位指定画面を表示させて行うようにしてもよい。このようにすれば、印刷を行う文書毎に、フォントの優先順位を指定することが可能である。なお、プリンタドライバのプロパティ画面を通じて指定した優先順位の情報は、プリンタドライバの印刷環境設定情報として保持し、次に設定を変えるまで維持するようにしてもよい。
【００７４】
別の例として、第１の実施形態で説明したように、フォントの優先順位の情報をアプリケーションの中にあらかじめ組み込んでおくようにしてもよい。この場合は、印刷データ送信部１４Ａにより印刷データを送信する際に、アプリケーションに組み込まれた優先順位の情報を優先順位指定部１１が読み取ることによってフォントの優先順位を指定する。
【００７５】
図１２は、印刷データ送信部１４Ａがプリンタ２００Ａに送信するデータの一例を示す図である。図１２に示すように、印刷データ送信部１４Ａは、印刷データ生成部１３により生成された印刷データの先頭に、優先順位指定部１１により指定された優先順位に基づいてコマンド出力部１２Ａにより発行されたコマンドを付加する。そして、印刷データ送信部１４Ａは、先頭にコマンドが付加された印刷データをプリンタ２００Ａに送信する。
【００７６】
印刷データ受信部２３Ａは、先頭にコマンドが付加された印刷データを受信する。コマンド入力部２１Ａは、ホストコンピュータ１００Ａから送信された印刷データの先頭に１つ付与する態様で送られてくるコマンドを、印刷データ受信部２３Ａを介して入力する。すなわち、コマンド入力部２１Ａは、印刷データ受信部２３Ａが受信した印刷データの先頭に付加されているコマンドを取得する。このように、第２の実施形態では、ホストコンピュータ１００Ａのコマンド出力部１２Ａは、印刷データ送信部１４Ａを介してコマンドをプリンタ２００Ａに出力し、プリンタ２００Ａのコマンド入力部２１Ａは、印刷データ受信部２３Ａを介してコマンドを入力する。
【００７７】
優先順位設定部２２Ａは、コマンド入力部２１Ａが印刷データ受信部２３Ａを介して入力したコマンド、すなわち、印刷データ受信部２３Ａが受信した印刷データに付与されているコマンドに従って、印刷データ受信部２３Ａが受信した印刷データに基づいて印刷実行部２４が文書の印刷を実行する都度、当該印刷に使用するフォントデータの優先順位を設定する。すなわち、優先順位設定部２２Ａは、コマンド入力部２１Ａが印刷データの先頭から取得したコマンド内に含まれる優先順位の情報を不揮発性メモリ２０４に記憶させることにより、ホストコンピュータ１００Ａで指定されたフォントの使用言語の優先順位をプリンタ２００Ａに設定する。なお、第２の実施形態では、不揮発性メモリ２０４に代えてＲＡＭ２０３に優先順位の情報を記憶させるようにしてもよい。
【００７８】
図１３は、以上のように構成した第２の実施形態による印刷システムの動作例を示すフローチャートである。この図１３は、印刷を実行する際の動作例を示すものである。なお、図１３において、図１０に示したステップ番号と同じ番号を付したものは同一の処理を実行するものであるので、ここでは重複する説明を省略する。この図１３に示すフローチャートは、ユーザにより印刷の実行が指示されたときに開始する。ここでは、アプリケーションの動作環境またはプリンタドライバの印刷環境として、印刷に使用するフォントの優先順位が優先順位指定部１１により既に設定されているものとする。
【００７９】
まず、ホストコンピュータ１００Ａの印刷データ生成部１３は、ホストコンピュータ１００Ａにインストールされているアプリケーションに対するユーザ操作を通じて、任意の文字列を含む印刷データを生成する（ステップＳ２１）。次に、コマンド出力部１２Ａは、アプリケーションの動作環境またはプリンタドライバの印刷環境としてあらかじめ設定された優先順位の情報を含むコマンドを発行し、当該コマンドを印刷データ送信部１４Ａに供給する。印刷データ送信部１４Ａは、印刷データ生成部１３により生成された印刷データの先頭にコマンドを付加する（ステップＳ２２）。そして、印刷データ送信部１４Ａは、先頭にコマンドが付加された印刷データをプリンタ２００Ａに送信する（ステップＳ２３）。
【００８０】
プリンタ２００Ａでは、印刷データ送信部１４Ａにより送信されたコマンド付きの印刷データを印刷データ受信部２３Ａが受信すると（ステップＳ２４）、コマンド入力部２１Ａは、印刷データ受信部２３Ａが受信した印刷データに付与されているコマンドを取得する（ステップＳ２５）。
【００８１】
そして、優先順位設定部２２Ａは、コマンド入力部２１Ａにより取得されたコマンド内に含まれる優先順位の情報を不揮発性メモリ２０４に記憶させることにより、今回の印刷に使用するフォントデータの優先順位を設定する（ステップＳ２６）。その後、印刷実行部２４は、図１０で説明したステップＳ１４以降と同様の処理によって、ホストコンピュータ１００Ａから受信した印刷データに基づいて文書の印刷を実行する。
【００８２】
以上詳しく説明したように、第２の実施形態では、ホストコンピュータ１００Ａからプリンタ２００Ａに印刷データを送信する際に、その印刷データに付加する態様でコマンドを送信することによって、印刷に使用するフォントデータの優先順位を印刷の都度プリンタ２００Ａに設定する。そして、設定した優先順位に基づいて何れかの言語のフォントデータを使用して、印刷データに含まれる文字コードに対応した文字を含む文書の印刷を行うようにしている。
【００８３】
このように構成した第２の実施形態によれば、印刷に使用するフォントを指定するために十分な操作インタフェースをプリンタ２００Ａが有していなくても、ホストコンピュータ１００Ａからプリンタ２００Ａにコマンドを送信することによって優先順位をプリンタ２００Ａに設定することができる。特に、第２の実施形態では、例えばプリンタドライバのプロパティ画面で印刷の都度フォントの優先順位を指定することにより、プリンタ２００Ａで印刷を実行する文書毎に、印刷に使用するフォントの優先順位を自由に設定することもできる。これにより、Ｕｎｉｃｏｄｅに対応した複数言語のフォントの中から、印字に使用するフォントを任意に指定することの自由度が大きくなるというメリットを有する。
【００８４】
（第３の実施形態）
次に、本発明の第３の実施形態を図面に基づいて説明する。第３の実施形態による印刷システムの全体構成は、図１と同様である。ただし、第１の実施形態と区別するために、ホストコンピュータの符号を１００Ｂ、プリンタの符号を２００Ｂとする。また、ホストコンピュータ１００Ｂおよびプリンタ２００Ｂのハードウェア構成は、それぞれ図２および図３と同様である。
【００８５】
図１４は、第３の実施形態による印刷システムの機能構成例を示すブロック図である。なお、この図１４において、図４に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図１４に示すように、ホストコンピュータ１００Ｂは、その機能構成として、優先順位指定部１１Ｂ、印刷データ生成部１３Ｂおよび印刷データ送信部１４Ｂを備えている。また、プリンタ２００Ｂは、その機能構成として、印刷データ受信部２３Ｂ、印刷実行部２４Ｂおよびフォントデータ記憶部２５を備えている。
【００８６】
第３の実施形態では、１つの文書内に含まれる複数の文字を、複数の言語のフォントデータを使用して印刷することができるようにする。例えば、図１５に示すように、日本語と中国語の２ヵ国語に対応した文書を印刷することを想定する。図１５に示す文書は、同じ意味を表す日本語の「整理券」と中国語の「▼編▲号票」とを含んでいる。第３の実施形態は、このような文書について、「整理券」を日本語のフォントで印刷し、「▼編▲号票」を中国語のフォントで印刷できるようにするものである。
【００８７】
ホストコンピュータ１００Ｂの優先順位指定部１１Ｂは、印刷対象の文書上の１つ以上の任意の位置において、文字の印刷に使用するフォントの優先順位を指定する。例えば、印刷対象の文書を表示部１０８の画面上に表示させ、ユーザが優先順位を指定したい文字列の先頭位置にカーソルを合わせた状態で、図５または図６のような優先順位指定画面を表示させることによって、文書上の任意の位置において優先順位を指定する。
【００８８】
印刷データ生成部１３Ｂは、印刷データを生成する際に、優先順位指定部１１Ｂにより指定された位置に対応して、複数の文字コードの間に１つ以上のコマンドを付与する態様で、印刷データを生成する。例えば、図１５に示す文書の例において、文書の先頭において第１優先の言語として日本語を指定したコマンドを付加し、「券」の文字コードと「▼編▲」の文字コードとの間に第１優先の言語として中国語を指定したコマンドを付加し、「票」の文字コードの直後に第１優先の言語として日本語を指定したコマンドを再び付加する。
【００８９】
印刷データ送信部１４Ｂは、コマンドが埋め込まれた印刷データをプリンタ２００Ｂに送信する。第３の実施形態において、印刷データ送信部１４Ｂは、コマンド出力部の機能を備えている。すなわち、印刷データ送信部１４Ｂは、プリンタ２００Ｂに送信する印刷データに含まれる複数の文字コードの間に１つ以上のコマンドを付与する態様で、コマンドをプリンタ２００Ｂに対して出力する。
【００９０】
なお、図１５に示すような整理券の文書の場合、これを何枚印刷しても、「整理券」および「▼編▲号票」の文字は固定で、常に変わらない。そして、「整理券」を日本語のフォントで印刷し、「▼編▲号票」を中国語のフォントで印刷することも固定で、常に変わらない。よって、ホストコンピュータ１００Ｂにインストールして使用するアプリケーションを設計・開発する業者が、印刷データの生成時に上述した各位置にコマンドが自動的に組み込まれるように、アプリケーションを作成するようにしてもよい。
【００９１】
この場合、印刷データ内におけるコマンドの組み込み位置だけをアプリケーションの機能によってあらかじめ決めておいて、フォントの優先順位についてはユーザ操作に基づいて任意に指定できるようにすることが可能である。あるいは、コマンドの組み込み位置に加え、それぞれの位置で指定するフォントの優先順位も含めて、業者があらかじめアプリケーションの機能として定義しておくようにしてもよい。後者の場合、印刷データ生成部１３Ｂが印刷データを生成する際に、優先順位指定部１１Ｂがアプリケーションに組み込まれた優先順位の情報を読み取ることによってフォントの優先順位を自動的に指定する。
【００９２】
プリンタ２００Ｂの印刷データ受信部２３Ｂは、複数の文字コードの間に１つ以上のコマンドが付与された印刷データを受信する。このように、第３の実施形態において、印刷データ受信部２３Ｂは、コマンド入力部の機能を備えている。すなわち、印刷データ受信部２３Ｂは、ホストコンピュータ１００Ｂから送信された印刷データに含まれる複数の文字コードの間に１つ以上付与する態様で送られてくるコマンドを入力する。
【００９３】
印刷実行部２４Ｂは、印刷データ受信部２３Ｂにより受信された印刷データに基づいて文書の印刷を実行する際に、印刷データに付与されているコマンドに従って、コマンドが現れる都度、当該印刷に使用するフォントデータの優先順位を設定しながら、印刷を実行する。このように、第３の実施形態において、印刷実行部２４Ｂは、優先順位設定部の機能を備えている。
【００９４】
例えば、図１５に示す文書の例において、上述したように、文書の先頭において第１優先の言語として日本語を指定したコマンドが付加され、「券」の文字コードと「▼編▲」の文字コードとの間に第１優先の言語として中国語を指定したコマンドが付加され、「票」の文字コードの直後に第１優先の言語として日本語を指定したコマンドが付加されている場合、「▼編▲号票」の３文字のみが中国語のフォントを第１優先として印刷され、その他の文字が日本語のフォントを第１優先として印刷されることになる。
【００９５】
図１６は、以上のように構成した第３の実施形態による印刷システムの動作例を示すフローチャートである。この図１６は、印刷を実行する際の動作例を示すものである。なお、図１６において、図１０に示したステップ番号と同じ番号を付したものは同一の処理を実行するものであるので、ここでは重複する説明を省略する。この図１６に示すフローチャートは、ユーザにより印刷の実行が指示されたときに開始する。ここでは、アプリケーションに組み込まれた機能によって、印刷データ中の所定の位置に、所定の優先順位を指定するためのコマンドを付加することがあらかじめ決まっているものとする。
【００９６】
まず、ホストコンピュータ１００Ｂの印刷データ生成部１３Ｂは、ホストコンピュータ１００Ｂにインストールされているアプリケーションに対するユーザ操作を通じて、任意の文字列を含む印刷データを生成する（ステップＳ３１）。また、印刷データ生成部１３Ｂは、印刷データ中の所定の位置に、所定の優先順位を指定するためのコマンドを付加する（ステップＳ３２）。そして、印刷データ送信部１４Ｂは、１つ以上のコマンドが付加された印刷データをプリンタ２００Ｂに送信する（ステップＳ３３）。
【００９７】
プリンタ２００Ｂでは、印刷データ送信部１４Ｂにより送信されたコマンド付きの印刷データを印刷データ受信部２３Ｂが受信すると（ステップＳ３４）、印刷実行部２４Ｂは、印刷データの先頭から情報を読み取り、読み取った情報がコマンドか否かを判定する（ステップＳ３５）。読み取った情報がコマンドの場合、印刷実行部２４Ｂは、そのコマンド内に含まれる優先順位の情報を不揮発性メモリ２０４に記憶させることにより、文字の印刷に使用するフォントの優先順位を設定する（ステップＳ３６）。一方、読み取った情報がコマンドではない場合、ステップＳ３６の処理は行わない。
【００９８】
なお、印刷データの先頭から情報を読み取ったときに、その先頭の情報が、所定の優先順位を指定するためのコマンドではなかった場合、コマンドを読み取るまでに処理される文字コードの印刷に係る優先順位は、別の方法で設定する。例えば、同じプリンタ２００Ｂで以前に印刷を実行した際に最後に設定された優先順位を保存しておき、その保存した優先順位を設定することが可能である。または、プリンタ２００Ｂにデフォルトの優先順位を設定しておき、そのデフォルトの優先順位を用いるようにしてもよい。
【００９９】
その後、印刷実行部２４Ｂは、図１０で説明したステップＳ１４以降と同様の処理によって、１つの文字コードまたはその他の情報の印刷を実行する。１つの文字コードまたはその他の情報の印刷が終了すると、処理はステップＳ３５に戻り、以上の同様の処理を実行する。これにより、印刷データ中からコマンドを読み取る都度、そのコマンドに従ってフォントの優先順位を設定しながら、印刷データに基づいて文書の印刷を実行する。
【０１００】
以上詳しく説明したように、第３の実施形態では、ホストコンピュータ１００Ｂからプリンタ２００Ｂに送信する印刷データの中に含まれる複数の文字コードの間に１つ以上のコマンドを付与する態様で、コマンドをプリンタ２００Ｂに対して出力することにより、印刷に使用するフォントデータの優先順位を文書内の指定位置毎に設定する。そして、設定した優先順位に基づいて何れかの言語のフォントデータを使用して、印刷データに含まれる文字コードに対応した文字を含む文書の印刷を行うようにしている。
【０１０１】
このように構成した第３の実施形態によれば、印刷に使用するフォントを指定するために十分な操作インタフェースをプリンタ２００Ｂが有していなくても、ホストコンピュータ１００Ｂからプリンタ２００Ｂにコマンドを送信することによって優先順位をプリンタ２００Ｂに設定することができる。特に、第３の実施形態では、文書内の指定位置毎に、印刷に使用するフォントの優先順位を設定することができる。これにより、１つの文書内に含まれる複数の文字を、複数の言語のフォントデータを使用して印刷することができる。
【０１０２】
（第４の実施形態）
次に、本発明の第４の実施形態を図面に基づいて説明する。第４の実施形態による印刷システムの全体構成は、図１と同様である。ただし、第１の実施形態と区別するために、プリンタの符号を２００Ｃとする。また、ホストコンピュータ１００およびプリンタ２００Ｃのハードウェア構成は、それぞれ図２および図３と同様である。
【０１０３】
図１７は、第４の実施形態による印刷システムの機能構成例を示すブロック図である。なお、この図１７において、図４に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図１７に示すように、ホストコンピュータ１００は、図４と同様の機能構成を有している。また、プリンタ２００Ｃは、その機能構成として、区切り判定部２６を更に備えるとともに、印刷実行部２４に代えて印刷実行部２４Ｃを備えている。
【０１０４】
第４の実施形態においても第３の実施形態と同様に、１つの文書内に含まれる複数の文字を、複数の言語のフォントデータを使用して印刷することができるようにするものである。例えば、図１５に示す文書において、「整理券」を日本語のフォントで印刷し、「▼編▲号票」を中国語のフォントで印刷できるようにするものである。
【０１０５】
区切り判定部２６は、印刷データ受信部２３により受信された印刷データに含まれる複数の文字コードの並びに基づいて、文書内に含まれる文字列の区切りを判定する。例えば、区切り判定部２６は、スペースの文字コードがある位置を、文書内に含まれる文字列の区切りと判定する。例えば、図１５に示す文書の場合、「整理券」の文字列と「▼編▲号票」の文字列との間にスペースがある。区切り判定部２６は、このスペースの位置を文字列の区切りと判定する。また、「▼編▲号票」と「１１４」との間にもスペースがある。区切り判定部２６は、このスペースの位置も文字列の区切りと判定する。
【０１０６】
印刷実行部２４Ｃは、優先順位設定部２２により設定された優先順位（不揮発性メモリ２０４に記憶された優先順位）に基づいて、区切り判定部２６により判定される文字列の区切り毎に、印刷に使用する言語のフォントデータを決定する。そして、一の文字列の先頭で決定した言語のフォントデータを、当該一の文字列の末尾まで使用して印刷を実行する。
【０１０７】
すなわち、印刷実行部２４Ｃは、まず「整理券」の文字列の先頭で、優先順位に基づいて印刷に使用する言語のフォントデータを決定し、当該決定した言語のフォントデータを使用して、「整理券」の文字列の末尾まで印刷を実行する。その後、スペースの存在によって区切り判定部２６により区切りと判定された次の「▼編▲号票」の文字列の先頭で、再び優先順位に基づいて印刷に使用する言語のフォントデータを決定し、当該決定した言語のフォントデータを使用して、「▼編▲号票」の文字列の末尾まで印刷を実行する。以下同様である。
【０１０８】
ここで、優先順位設定部２２により第１優先のフォントの言語として日本語が設定されていたとする。この場合、上述した第１の実施形態を適用して図１５に示す文書を印刷すると、図７を用いて説明したように、「整理券」は日本語のフォントで統一して印刷されるが、「▼編▲号票」は「▼編▲」のみが中国語のフォントで印刷され、「号票」が日本語のフォントで印刷されてしまう。「▼編▲」に関しては、その文字コードに対応する日本語の字形のフォントデータが存在しないので、第２優先以降に設定されている中国語のフォントで印刷が実行されるのに対し、「号票」に関しては、その文字コードに対応する日本語の字形のフォントデータが存在するので、第１優先に設定されている日本語のフォントで印刷が実行されるからである。
【０１０９】
これに対し、第４の実施形態によれば、「整理券」の文字列を印刷する際に、その先頭の文字「整」に対して、第１優先に設定された日本語のフォントデータを使用することが決定され、当該決定した日本語のフォントデータを使用して、「整理券」の文字列の末尾まで印刷が実行される。一方、「▼編▲号票」の文字列を印刷する際には、その先頭の文字「▼編▲」について、第１優先に設定された日本語のフォントデータが存在しないため、第２優先以降に設定された中国語のフォントデータを使用することが決定され、当該決定した中国語のフォントデータを使用して、「▼編▲号票」の文字列の末尾まで印刷が実行される。
【０１１０】
図１８は、以上のように構成した第４の実施形態による印刷システムの動作例を示すフローチャートである。図１８は、印刷を実行する際の動作例を示すフローチャートである。なお、フォントの優先順位を設定する際の動作例は、図９に示したフローチャートと同様である。また、図１８において、図１０に示したステップ番号と同一の番号を付したものは同一の処理を実行するものであるので、ここでは重複する説明を省略する。図１８に示すフローチャートは、ユーザにより印刷の実行が指示されたときに開始する。
【０１１１】
図１８に示すフローチャートにおいて、ステップＳ１７で１つの文字コードに対応する文字を印刷した後、区切り判定部２６は、次の文字コードがスペースか否かを判定する（ステップＳ４１）。次の文字コードがスペースでない場合は、文字列がまだ続いているということなので、ステップＳ１７に戻り、ステップＳ１６，Ｓ１９，Ｓ２０のループで決定された言語のフォントデータをそのまま使用して、次の文字コードに関する印刷を実行する。
【０１１２】
一方、ステップＳ４１において、次の文字コードがスペースであると判定された場合は、文字列が末尾まで終了したということなので、処理はステップＳ１８に進む。ここで、印刷実行部２４は、印刷データに基づく印刷が全て終了したか否かを判定する。まだ印刷が終了していない場合、処理はステップＳ１４に戻り、印刷データに含まれる次の情報を読み取って同様の処理を実行する。一方、印刷データに基づく印刷が全て終了した場合、図１８に示すフローチャートの処理は終了する。
【０１１３】
以上のように構成した第４の実施形態によれば、第３の実施形態のように印刷データの中に含まれる複数の文字コードの間に１以上のコマンドを付与しなくても、１つの文書内に含まれる複数の文字列を、複数の言語のフォントデータを使用して印刷することができる。しかも、文字列毎にフォントの優先順位を指定していないにもかかわらず、１つの文字列については１つのフォントで統一して印刷を行うことができる。
【０１１４】
なお、上記第４の実施形態では、第１の実施形態で示した構成をもとに、プリンタ２００Ｃの構成を変形する例について説明したが、第２の実施形態で示したプリンタ２００Ａの構成において、区切り判定部２６を更に設けるとともに、印刷実行部２４に代えて印刷実行部２４Ｃを備えるようにしてもよい。
【０１１５】
なお、上記第１〜第４の実施形態では、所定数の言語（日本語、中国語、台湾語、韓国語の４つの言語）の優先順位を全て設定する例について説明したが、本発明はこれに限定されない。例えば、所定数に満たない数だけ優先順位を設定し、残りは「非対応」を設定するようにしてもよい。この場合、印刷実行部２４，２４Ｂ，２４Ｃは、優先順位が設定された言語のフォントデータが何れもフォントデータ記憶部２５に記憶されていない文字コードについては、印刷を実行しない。あるいは、他の文字コードに置き換えた上で、優先順位に基づいて何れかの言語のフォントデータを使用して印刷を実行するようにしてもよい。置き換える他の文字コードは、例えば、「・」または「□」とする。このようにすれば、ユーザが希望する言語のフォントがない場合には、印刷しないまたは別の文字でダミー印刷するという選択をすることが可能となる。
【０１１６】
その他、上記第１〜第４の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１１７】
１１，１１Ｂ  優先順位指定部
１２，１２Ａ  コマンド出力部
１３，１３Ｂ  印刷データ生成部
１４，１４Ａ，１４Ｂ  印刷データ送信部
２１，２１Ａ  コマンド入力部
２２，２２Ａ  優先順位設定部
２３，２３Ａ，２３Ｂ  印刷データ受信部
２４，２４Ｂ，２４Ｃ  印刷実行部
２５  フォントデータ記憶部
２６  区切り判定部
１００，１００Ａ，１００Ｂ  ホストコンピュータ
２００，２００Ａ，２００Ｂ，２００Ｃ  プリンタ
【図１】
2019020892.tif 000003
【図２】
2019020892.tif 000004
【図３】
2019020892.tif 000005
【図４】
2019020892.tif 000006
【図５】
2019020892.tif 000007
【図６】
2019020892.tif 000008
【図７】
2019020892.tif 000009
【図８】
2019020892.tif 000010
【図９】
2019020892.tif 000011
【図１０】
2019020892.tif 000012
【図１１】
2019020892.tif 000013
【図１２】
2019020892.tif 000014
【図１３】
2019020892.tif 000015
【図１４】
2019020892.tif 000016
【図１５】
2019020892.tif 000017
【図１６】
2019020892.tif 000018
【図１７】
2019020892.tif 000019
【図１８】
2019020892.tif 000020