(57)【特許請求の範囲】
【請求項１】
プラグインにより追加された機能を含む複数の機能のうちのいずれかの機能を用いた印刷で印刷される文字列を取得する取得部と、
前記複数の機能それぞれを識別する機能識別情報と文字コードを識別する文字コード識別情報とを、プラットフォームを識別するプラットフォーム識別情報毎に対応付けた文字コード識別テーブルを記憶する文字コード識別テーブル記憶部と、
印刷装置と双方向通信を行って、該印刷装置のプラットフォーム識別情報を受信するプラットフォーム識別情報受信部と、
前記文字コード識別テーブルから、前記プラットフォーム識別情報受信部によって受信された前記プラットフォーム識別情報及び前記取得部によって取得された前記文字列の前記機能識別情報に対応する文字コード識別情報を取得し、取得した前記文字コード識別情報が示す文字コードに前記文字列を変換する変換部と、
変換された前記文字列を含む印刷データを前記印刷装置に送信する通信制御部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記プラグインは、当該プラグインにより追加される機能を示す機能識別情報及び文字コード識別情報を対応付けたプラグイン文字コード情報を有しており、
前記プラグインをインストールし、前記プラグイン文字コード情報を前記文字コード識別テーブルにマージするインストール部を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プラグインは、プラットフォーム識別情報毎に、当該プラグインにより追加される機能を示す機能識別情報及び文字コード識別情報を対応付けたプラグイン文字コード情報を有しており、
前記プラグインをインストールし、前記文字コード識別テーブルの前記プラットフォーム識別情報毎に、当該プラットフォーム識別情報と一致する前記プラグイン文字コード情報のプラットフォーム識別情報に対応付けられた機能識別情報及び文字コード識別情報をマージするインストール部を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記変換部により変換された前記文字列のデータ量が予め定められた範囲内に収まるか否かを判定し、予め定められた範囲内に収まらない場合、前記取得部により取得された前記文字列から所定位置の文字を削除する削除部を更に備え、
前記変換部は、前記所定位置の文字が削除された前記文字列を、前記文字コード識別テーブルから取得した前記文字コード識別情報が示す文字コードで変換し、
前記通信制御部は、データ量が予め定められた範囲内に収まると判定された文字列を含む印刷データを前記印刷装置に送信することを特徴とする請求項１〜３のいずれか１つに記載の情報処理装置。
【請求項５】
プラグインにより追加された機能を含む複数の機能のうちのいずれかの機能を用いた印刷で印刷される文字列を取得する取得ステップと、
印刷装置と双方向通信を行って、該印刷装置のプラットフォーム識別情報を受信するプラットフォーム識別情報受信ステップと、
前記複数の機能それぞれを識別する機能識別情報と文字コードを識別する文字コード識別情報とを、プラットフォームを識別するプラットフォーム識別情報毎に対応付けた文字コード識別テーブルを記憶する文字コード識別テーブル記憶部から、前記プラットフォーム識別情報受信ステップによって受信された前記プラットフォーム識別情報及び前記取得ステップによって取得された前記文字列の前記機能識別情報に対応する文字コード識別情報を取得し、取得した前記文字コード識別情報が示す文字コードに前記文字列を変換する変換ステップと、
変換された前記文字列を含む印刷データを前記印刷装置に送信する送信ステップと、
をコンピュータに実行させるためのドライバプログラム。
【請求項６】
前記変換ステップにより変換された前記文字列のデータ量が予め定められた範囲内に収まるか否かを判定し、予め定められた範囲内に収まらない場合、前記取得ステップにより取得された前記文字列から所定位置の文字を削除する削除ステップを更にコンピュータに実行させ、
前記変換ステップでは、前記所定位置の文字が削除された前記文字列を、前記文字コード識別テーブル記憶部から取得した前記文字コード識別情報が示す文字コードで変換し、
前記送信ステップでは、データ量が予め定められた範囲内に収まると判定された文字列を含む印刷データを前記印刷装置に送信することを特徴とする請求項５に記載のドライバプログラム。
【請求項７】
請求項５に記載のドライバプログラムにプラグインをインストールするためのインストーラプログラムであって、
前記プラグインは、当該プラグインにより追加される機能を示す機能識別情報及び文字コード識別情報を対応付けたプラグイン文字コード情報を有しており、
前記プラグインをインストールし、前記プラグイン文字コード情報を前記文字コード識別テーブルにマージするインストールステップ
をコンピュータに実行させるためのインストーラプログラム。
【請求項８】
請求項５に記載のドライバプログラムにプラグインをインストールするためのインストーラプログラムであって、
前記プラグインは、プラットフォーム識別情報毎に、当該プラグインにより追加される機能を示す機能識別情報及び文字コード識別情報を対応付けたプラグイン文字コード情報を有しており、
前記プラグインをインストールし、前記文字コード識別テーブルの前記プラットフォーム識別情報毎に、当該プラットフォーム識別情報と一致する前記プラグイン文字コード情報のプラットフォーム識別情報に対応付けられた機能識別情報及び文字コード識別情報をマージするインストールステップ
をコンピュータに実行させるためのインストーラプログラム。
【請求項９】
請求項５又は６に記載のドライバプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１０】
請求項７又は８に記載のインストーラプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ドライバプログラム、インストーラプログラム及び記憶媒体に関する。
【背景技術】
【０００２】
従来から、ＰＣ（Personal  Computer）などの印刷要求元の情報処理装置にインストールされているプリンタドライバの機能を、プラグインをインストールすることにより追加する技術が知られている。
【０００３】
プリンタドライバがインストールされている情報処理装置は、描画データ及び印刷設定データを含む印刷データを印刷装置に送信して印刷を行わせる。印刷設定データは、機能毎に様々な情報を有しており、文字列も含んでいる。
【０００４】
ここで、印刷設定データに含まれる文字列を印刷装置で正しく印刷するためには、当該文字列が印刷装置で対応している文字コードで記述されている必要がある。
【０００５】
例えば特許文献１には、印刷制御装置が、印刷装置で記憶している文字コードのコード体系の情報を受信し、印刷制御装置自身で記憶している文字コードのコード体系のうち印刷装置から受信したコード体系で属性情報を入力する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したような従来技術では、印刷データに含まれる文字列がどのような機能の文字列であったとしても、印刷装置側で１種類の文字コードで対応していることが前提となっている。しかしながら、例えば、プラグインのインストールによりプリンタドライバに追加された機能の文字列は、印刷装置において、プリンタドライバが予め有している機能の文字列と異なる文字コードで対応している場合がある。
【０００７】
このため、上述したような従来技術では、印刷装置側で対応する文字コードがプリンタドライバの機能に応じて異なる場合、対応できない。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、印刷装置側で対応する文字コードがプリンタドライバの機能に応じて異なる場合であっても、印刷対象の文字列を印刷装置に正しく印刷させることができる情報処理装置、ドライバプログラム、インストーラプログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明の一態様にかかる情報処理装置は、プラグインにより追加された機能を含む複数の機能のうちのいずれかの機能を用いた印刷で印刷される文字列を取得する取得部と、前記複数の機能それぞれを識別する機能識別情報と文字コードを識別する文字コード識別情報とを、プラットフォームを識別するプラットフォーム識別情報毎に対応付けた文字コード識別テーブルを記憶する文字コード識別テーブル記憶部と、印刷装置と双方向通信を行って、該印刷装置のプラットフォーム識別情報を受信するプラットフォーム識別情報受信部と、前記文字コード識別テーブルから、前記プラットフォーム識別情報受信部によって受信された前記プラットフォーム識別情報及び前記取得部によって取得された前記文字列の前記機能識別情報に対応する文字コード識別情報を取得し、取得した前記文字コード識別情報が示す文字コードに前記文字列を変換する変換部と、変換された前記文字列を含む印刷データを前記印刷装置に送信する通信制御部と、を備えることを特徴とする。
【００１０】
また、本発明の別の態様にかかるドライバプログラムは、プラグインにより追加された機能を含む複数の機能のうちのいずれかの機能を用いた印刷で印刷される文字列を取得する取得ステップと、印刷装置と双方向通信を行って、該印刷装置のプラットフォーム識別情報を受信するプラットフォーム識別情報受信ステップと、前記複数の機能それぞれを識別する機能識別情報と文字コードを識別する文字コード識別情報とを、プラットフォームを識別するプラットフォーム識別情報毎に対応付けた文字コード識別テーブルを記憶する文字コード識別テーブル記憶部から、前記プラットフォーム識別情報受信ステップによって受信された前記プラットフォーム識別情報及び前記取得ステップによって取得された前記文字列の前記機能識別情報に対応する文字コード識別情報を取得し、取得した前記文字コード識別情報が示す文字コードに前記文字列を変換する変換ステップと、変換された前記文字列を含む印刷データを前記印刷装置に送信する送信ステップと、をコンピュータに実行させるためのものである。
【００１１】
また、本発明の別の態様にかかるインストーラプログラムは、上記ドライバプログラムにプラグインをインストールするためのインストーラプログラムであって、前記プラグインは、当該プラグインにより追加される機能を示す機能識別情報及び文字コード識別情報を対応付けたプラグイン文字コード情報を有しており、前記プラグインをインストールし、前記プラグイン文字コード情報を前記文字コード識別テーブルにマージするインストールステップをコンピュータに実行させるためのものである。
【００１２】
また、本発明の別の態様にかかる記憶媒体は、上記ドライバプログラムを記憶したコンピュータ読み取り可能なものである。また、本発明の別の態様にかかる記憶媒体は、上記インストーラプログラムを記憶したコンピュータ読み取り可能なものである。
【発明の効果】
【００１３】
本発明によれば、印刷装置側で対応する文字コードがプリンタドライバの機能に応じて異なる場合であっても、印刷対象の文字列を印刷装置に正しく印刷させることができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、本実施形態の印刷システムの一例を示す構成図である。
【図２】図２は、本実施形態のＰＣの構成の一例を示すブロック図である。
【図３】図３は、本実施形態の文字コード識別テーブルの一例を示す図である。
【図４】図４は、本実施形態のインストール対象のプラグインのデータ構造の一例を示す図である。
【図５】図５は、本実施形態のプラグイン文字コード情報の一例を示す図である。
【図６】図６は、図３に示す文字コード識別テーブルに図５に示すプラグイン文字コード情報をマージした後の文字コード識別テーブルの一例を示す図である。
【図７】図７は、本実施形態のプリンタドライバの構成の一例を示すブロック図である。
【図８】図８は、本実施形態のプラットフォーム識別情報記憶部に記憶されているプラットフォーム識別情報の一例を示す図である。
【図９】図９は、本実施形態のコアドライバ部の画面表示部により表示される文字列設定画面の一例を示す図である。
【図１０】図１０は、本実施形態のプラグイン部の画面表示部により表示される文字列設定画面の一例を示す図である。
【図１１】図１１は、本実施形態の文字列記憶部に記憶されている文字列の一例を示す図である。
【図１２】図１２は、本実施形態のコアドライバ部の描画部及びプラグイン部の描画部により生成される印刷データの一例を示す図である。
【図１３】図１３は、本実施形態の印刷装置の構成の一例を示すブロック図である。
【図１４】図１４は、本実施形態のＰＣで行われるインストール処理の一例を示すフローチャートである。
【図１５】図１５は、本実施形態のＰＣで行われる文字列設定処理の一例を示すフローチャートである。
【図１６】図１６は、本実施形態の印刷システムで行われるプラットフォーム名取得処理の一例を示すシーケンス図である。
【図１７】図１７は、本実施形態のＰＣで行われる印刷用文字列変換処理の一例を示すフローチャートである。
【図１８】図１８は、本実施形態のＰＣで行われる表示用文字列変換処理の一例を示すフローチャートである。
【図１９】図１９は、本実施形態のＰＣで行われる記憶用文字列変換処理の一例を示すフローチャートである。
【図２０】図２０は、本実施形態のＰＣで行われる印刷処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照しながら、本発明にかかる情報処理装置、ドライバプログラム、インストーラプログラム及び記憶媒体の実施形態を詳細に説明する。なお、本実施形態では、情報処理装置としてＰＣ（Personal  Computer）を例にとり説明するが、これに限定されるものではない。
【００１６】
まず、本実施形態のＰＣを含む印刷システムの構成について説明する。
【００１７】
図１は、本実施形態の印刷システム１の一例を示す構成図である。図１に示すように、印刷システム１は、印刷要求元のＰＣ１０と、ＰＣ１０からの印刷要求に従って印刷を行う印刷装置２０とを、備える。印刷装置２０は、例えば、プリンタや複合機など印刷を行うことができるものであればよい。複合機は、印刷機能に加え、複写機能、スキャナ機能、及びファクシミリ機能の少なくともいずれかの機能を有するものである。なお、印刷システム１は、ＰＣ１０を複数備えるようにしてもよいし、印刷装置２０を複数備えるようにしてもよい。
【００１８】
ＰＣ１０及び印刷装置２０は、ネットワーク５を介して接続されている。ネットワーク５は、例えば、ＬＡＮ（Local  Area  Network）などにより実現できる。なお、ＰＣ１０と印刷装置２０とをＵＳＢ（Universal  Serial  Bus）などのシリアルポート（serial  port）で直接接続するようにしてもよい。
【００１９】
図２は、本実施形態のＰＣ１０の構成の一例を示すブロック図である。図２に示すように、ＰＣ１０は、通信部１１０と、操作部１２０と、表示部１３０と、記憶部１４０と、制御部１５０とを、備える。
【００２０】
通信部１１０は、ネットワーク５を介して、印刷装置２０などの外部装置と通信するものであり、通信インターフェースなどの既存の通信装置により実現できる。
【００２１】
操作部１２０は、各種操作の入力を行うものであり、キーボード、マウス、タッチパッド、及びタッチパネルなどの既存の入力装置の少なくともいずれかにより実現できる。
【００２２】
表示部１３０は、各種画面を表示するものであり、液晶ディスプレイやタッチパネル式ディスプレイなどの既存の表示装置により実現できる。
【００２３】
記憶部１４０は、ＰＣ１０で実行される各種プログラムやＰＣ１０で行われる各種処理に使用される各種情報などを記憶する。記憶部１４０は、例えば、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、メモリカード、光ディスク、ＲＯＭ（Read  Only  Memory）、及びＲＡＭ（Random  Access  Memory）などの磁気的、光学的、又は電気的に記憶可能な既存の記憶装置の少なくともいずれかにより実現できる。記憶部１４０は、文字コード識別テーブル記憶部１４２と、プラットフォーム識別情報記憶部１４４と、文字列記憶部１４６とを、含む。なお、文字コード識別テーブル記憶部１４２、プラットフォーム識別情報記憶部１４４、及び文字列記憶部１４６の詳細については後述する。
【００２４】
制御部１５０は、ＰＣ１０の全体を制御するものであり、ＣＰＵ（Central  Processing  Unit）などの既存の制御装置により実現できる。制御部１５０は、ＯＳ１５２と、アプリケーション１５４と、インストーラ１５６と、プリンタドライバ１７０とを含む。なお、ＯＳ１５２、アプリケーション１５４、インストーラ１５６、プリンタドライバ１７０は、それぞれ記憶部１４０に記憶されているＯＳプログラム、アプリケーションプログラム、インストーラプログラム、プリンタドライバプログラムが制御部１５０により起動（実行）されることで実現されるものである。また、プリンタドライバ１７０は、プラグインをインストールすることにより機能を追加（拡張）できる。
【００２５】
ＯＳ１５２は、ＰＣ１０の各部（詳細には、ＰＣ１０のハードウェア及びソフトウェア）を制御するものであり、例えば、Ｗｉｎｄｏｗｓ（登録商標）やＵＮＩＸ（登録商標）などの基本ソフトウェアにより実現できる。
【００２６】
アプリケーション１５４は、文書の作成、文書の閲覧、又は数値計算など所定の作業をＰＣ１０で行うためのものであり、例えば、基本ソフトウェア上で動作する文書作成ソフトウェア、閲覧ソフトウェア、又は表計算ソフトウェアなどにより実現できる。アプリケーション１５４は、操作部１２０から印刷設定画面の表示を指示する操作入力や印刷を指示する操作入力を受け付け、ＯＳ１５２を介してプリンタドライバ１７０にその旨を通知する。
【００２７】
ここで、文字コード識別テーブル記憶部１４２について説明する。文字コード識別テーブル記憶部１４２は、プリンタドライバ１７０の複数の機能それぞれを識別する機能識別情報と文字コードを識別する文字コード識別情報とを対応付けた文字コード識別テーブルを記憶する。具体的には、文字コード識別テーブルは、印刷装置のプラットフォームを識別するプラットフォーム識別情報毎に、機能識別情報と文字コード識別情報とを対応付けている。
【００２８】
図３は、本実施形態の文字コード識別テーブルの一例を示す図である。図３に示す文字コード識別テーブルは、ＪＳＯＮ（Java（登録商標）  Script  Object  Notation）形式で記述されているが、記述方式はこれに限定されるものではない。図３に示す例では、プラットフォーム識別情報がプラットフォーム名（ＰｌａｔｆｏｒｍＡ、ＰｌａｔｆｏｒｍＢ）であり、機能識別情報が機能名（ｕｓｅｒｃｏｄｅ、ｇｒｏｕｐｃｏｄｅ）であり、文字コード識別情報が文字コード名（ｓｈｉｆｔｊｉｓ、ｕｔｆ−８、ＩＳＯ−２０２２−ＪＰ）となっている。
【００２９】
なお、機能名ｕｓｅｒｃｏｄｅで表されるＵｓｅｒＣｏｄｅ機能及び機能名ｇｒｏｕｐｃｏｄｅで表されるＧｒｏｕｐＣｏｄｅ機能は、プリンタドライバ１７０が予め有している機能である。ＵｓｅｒＣｏｄｅ機能は、印刷者（使用ユーザ）を示す文字列を設定する機能であり、ＧｒｏｕｐＣｏｄｅ機能は、印刷者（使用ユーザ）が属するグループを設定する機能である。
【００３０】
そして図３に示すように、ＰｌａｔｆｏｒｍＡに、ｕｓｅｒｃｏｄｅとｓｈｉｆｔｊｉｓとが対応付けられているとともに、ｇｒｏｕｐｃｏｄｅとｕｔｆ−８とが対応付けられている。これは、ＰｌａｔｆｏｒｍＡでは、ＵｓｅｒＣｏｄｅ機能の文字コードがＳｈｉｆｔＪＩＳであり、ＧｒｏｕｐＣｏｄｅ機能の文字コードがＵＴＦ−８であることを示している。同様に、ＰｌａｔｆｏｒｍＢに、ｕｓｅｒｃｏｄｅとＩＳＯ−２０２２−ＪＰとが対応付けられているとともに、ｇｒｏｕｐｃｏｄｅとＩＳＯ−２０２２−ＪＰとが対応付けられている。これは、ＰｌａｔｆｏｒｍＢでは、ＵｓｅｒＣｏｄｅ機能の文字コードがＩＳＯ−２０２２−ＪＰであり、ＧｒｏｕｐＣｏｄｅ機能の文字コードがＩＳＯ−２０２２−ＪＰであることを示している。
【００３１】
インストーラ１５６（インストール部の一例）は、インストール対象のプラグインをプリンタドライバ１７０（プリンタドライバプログラム）にインストールするものであり、インストール作業を支援するソフトウェアなどにより実現できる。なお本実施形態では、インストーラ１５６がプリンタドライバ１７０に１つのプラグインをインストールする場合を例に取り説明するが、インストーラ１５６は、プリンタドライバ１７０に複数のプラグインをインストールすることもできる。
【００３２】
ここで、インストール対象のプラグインについて説明する。図４は、本実施形態のインストール対象のプラグインのデータ構造の一例を示す図である。インストール対象のプラグインは、インストーラ１５６のインストーラプログラムに含まれており、図４に示すように、画面表示モジュール、描画データ生成モジュール及び印刷設定データ生成モジュールを含む描画モジュール、並びにプラグイン文字コード情報を有する。
【００３３】
画面表示モジュールは、インストール対象のプラグインにより追加される機能を用いた印刷の印刷設定を行うための画面表示機能をプリンタドライバ１７０に実現させるためのモジュールである。描画モジュールは、インストール対象のプラグインにより追加される機能を用いた印刷の印刷設定データや描画データを生成する機能をプリンタドライバ１７０に実現させるためのモジュールである。
【００３４】
プラグイン文字コード情報は、インストール対象のプラグインにより追加される機能を示す機能識別情報及び文字コードを示す文字コード識別情報を対応付けた情報である。具体的には、プラグイン文字コード情報は、プラットフォーム識別情報毎に機能識別情報と文字コード識別情報とを対応付けた情報である。
【００３５】
図５は、本実施形態のプラグイン文字コード情報の一例を示す図である。図５に示すプラグイン文字コード情報も、ＪＳＯＮ形式で記述されているが、記述方式はこれに限定されるものではない。図５に示す例では、プラットフォーム識別情報がプラットフォーム名（ＰｌａｔｆｏｒｍＡ、ＰｌａｔｆｏｒｍＢ）を示しており、機能識別情報が機能名（ｗａｔｅｒｍａｒｋｔｅｘｔ）を示しており、文字コード識別情報が文字コード名（ｕｔｆ−８、ＩＳＯ−２０２２−ＪＰ）を示している。なお、機能名ｗａｔｅｒｍａｒｋｔｅｘｔで表されるＷａｔｅｒＭａｒｋ（電子透かし）機能は、プラグインのインストールによりプリンタドライバ１７０に追加される機能である。
【００３６】
そして図５に示すように、ＰｌａｔｆｏｒｍＡに、ｗａｔｅｒｍａｒｋｔｅｘｔとｕｔｆ−８とが対応付けられており、ＰｌａｔｆｏｒｍＢに、ｗａｔｅｒｍａｒｋｔｅｘｔとＩＳＯ−２０２２−ＪＰとが対応付けられている。これは、ＰｌａｔｆｏｒｍＡでは、ＷａｔｅｒＭａｒｋ機能の文字コードがＵＴＦ−８であり、ＰｌａｔｆｏｒｍＢでは、ＷａｔｅｒＭａｒｋ機能の文字コードがＩＳＯ−２０２２−ＪＰであることを示している。
【００３７】
インストーラ１５６は、インストール対象のプラグインをプリンタドライバ１７０にインストールする場合、当該プラグインの画面表示モジュール及び描画モジュールを記憶部１４０のプリンタドライバ１７０がアクセス可能な領域（読み込める場所）にインストールする。更にインストーラ１５６は、当該プラグインのプラグイン文字コード情報を文字コード識別テーブル記憶部１４２に記憶されている文字コード識別テーブルにマージする。具体的には、インストーラ１５６は、文字コード識別テーブルのプラットフォーム識別情報毎に、当該プラットフォーム識別情報と一致するプラグイン文字コード情報のプラットフォーム識別情報に対応付けられた機能識別情報及び文字コード識別情報をマージする。
【００３８】
図６は、図３に示す文字コード識別テーブルに図５に示すプラグイン文字コード情報をマージした後の文字コード識別テーブルの一例を示す図である。図６に示す例では、ＰｌａｔｆｏｒｍＡに、更に、ｗａｔｅｒｍａｒｋｔｅｘｔとｕｔｆ−８とが対応付けられており、ＰｌａｔｆｏｒｍＢに、更に、ｗａｔｅｒｍａｒｋｔｅｘｔとＩＳＯ−２０２２−ＪＰとが対応付けられている。
【００３９】
プリンタドライバ１７０は、ＰＣ１０から印刷装置２０を動作させるためのものであり、ＯＳ１５２と印刷装置２０との差分を吸収するためのソフトウェアにより実現できる。また、プリンタドライバ１７０は、インストーラ１５６を用いてプラグインをインストールすることにより機能を追加できるように構成されている。
【００４０】
図７は、本実施形態のプリンタドライバ１７０の構成の一例を示すブロック図である。図７に示すように、プリンタドライバ１７０は、コアドライバ部１７１とプラグイン部１８１とを含む。コアドライバ部１７１は、プラグインのインストールの有無に関わらず、プリンタドライバ１７０が当初から備えている機能部であり、通信制御部１７２と、画面表示部１７３と、変換部１７４と、描画部１７５とを、を含む。プラグイン部１８１は、インストーラ１５６によるプラグインのインストールによりプリンタドライバ１７０に追加された機能部であり、画面表示部１８２と、描画部１８３とを、含む。なお、画面表示部１８２、描画部１８３は、それぞれインストールされたプラグインの画面表示モジュール、描画モジュールにより実現されるものである。
【００４１】
通信制御部１７２は、通信部１１０を制御して印刷装置２０と双方向通信を行い、印刷装置２０のプラットフォーム識別情報を受信し、受信したプラットフォーム識別情報をＤＥＶＭＯＤＥ、レジストリ、又はファイルとしてプラットフォーム識別情報記憶部１４４に記憶（保存）する。
【００４２】
図８は、本実施形態のプラットフォーム識別情報記憶部１４４に記憶されているプラットフォーム識別情報の一例を示す図である。図８に示す例では、プラットフォーム識別情報記憶部１４４に印刷装置２０のプラットフォーム名であるＰｌａｔｆｏｒｍＡが記憶されている。
【００４３】
また通信制御部１７２は、後述の描画部１７５及び描画部１８３により生成される印刷データを、通信部１１０を制御して印刷装置２０に送信する。
【００４４】
コアドライバ部１７１の画面表示部１７３（取得部、削除部の一例）は、アプリケーション１５４からＯＳ１５２を介して印刷設定画面の表示指示を受け付けると、印刷設定画面を表示部１３０に表示させる。
【００４５】
また、画面表示部１７３は、印刷設定画面の表示中に、アプリケーション１５４からＯＳ１５２を介してコアドライバ部１７１が有している機能を用いた印刷で印刷される文字列の文字列設定画面の表示指示を受け付けると、文字列設定画面を表示部１３０に表示させる。そして画面表示部１７３は、操作部１２０から文字列設定画面に対する文字列の入力を受け付け、入力された文字列を取得し、取得した文字列を後述の変換部１７４に変換させる。
【００４６】
また、画面表示部１７３は、後述の変換部１７４により変換された文字列のデータ量が予め定められた範囲内に収まるか否かを判定し、予め定められた範囲内に収まらない場合、取得した文字列から所定位置の文字を削除する。具体的には、画面表示部１７３は、後述の変換部１７４に変換させた印刷用の文字列を受け取り、当該印刷用の文字列のバイト数が印刷装置２０（プラットフォーム）で予め定められた範囲内に収まるか否かを判定する。なお本実施形態では、プラットフォーム毎に予め定められた範囲内を定義したテーブルが記憶部１４０に記憶されており、画面表示部１７３は、当該テーブルを参照して判定する。そして画面表示部１７３は、予め定められた範囲内に収まらない場合、取得した文字列から末尾１文字を削除し、再度、後述の変換部１７４に印刷用の文字列に変換させる。これは、文字列の長さを、印刷装置２０（プラットフォーム）で対応可能な文字列の長さに収めるための処理である。文字列のバイト数は、文字コードや文字の種類によっても異なるため、文字列の長さをチェックする処理は、文字数ではなく、バイト数で行う。また画面表示部１７３は、後述の変換部１７４に変換させた印刷用の文字列のデータ量が予め定められた範囲内に収まり、操作部１２０から保存指示を受け付けると、当該文字列を後述の変換部１７４に記憶用の文字列に変換させ、ＤＥＶＭＯＤＥ、レジストリ、又はファイルとして文字列記憶部１４６に記憶（保存）する。
【００４７】
図９は、本実施形態の画面表示部１７３により表示される文字列設定画面の一例を示す図である。図９に示す文字列設定画面では、ＵｓｅｒＣｏｄｅ機能及びＧｒｏｕｐＣｏｄｅ機能を用いた印刷で印刷される文字列の入力が可能となっている。図９に示す例では、ＵｓｅｒＣｏｄｅ機能を用いた印刷で印刷される文字列として“あいうえお”が入力されており、ＧｒｏｕｐＣｏｄｅ機能を用いた印刷で印刷される文字列として“子会社Ａ”が入力されている。そして、操作部１２０を用いてＯＫボタン１９１が押下されると、ＵｓｅｒＣｏｄｅ機能及びＧｒｏｕｐＣｏｄｅ機能を用いた印刷で印刷される文字列が保存（設定）され、文字列設定画面が閉じられる。一方、操作部１２０を用いてＣａｎｃｅｌボタン１９２が押下されると、当該文字列の入力がキャンセルされ、文字列設定画面が閉じられる。
【００４８】
また、画面表示部１７３は、印刷設定画面の表示中に、アプリケーション１５４からＯＳ１５２を介してプラグイン部１８１が有している機能を用いた印刷で印刷される文字列の文字列設定画面の表示指示を受け付けると、プラグイン部１８１の画面表示部１８２を呼び出し、文字列設定画面を表示部１３０に表示させる。
【００４９】
プラグイン部１８１の画面表示部１８２（取得部、削除部の一例）は、コアドライバ部１７１の画面表示部１７３から呼び出されると、文字列設定画面を表示部１３０に表示させる。そして画面表示部１８２は、操作部１２０から文字列設定画面に対する文字列の入力を受け付け、入力された文字列を取得し、取得した文字列を後述の変換部１７４に変換させる。
【００５０】
また、画面表示部１８２は、後述の変換部１７４により変換された文字列のデータ量が予め定められた範囲内に収まるか否かを判定し、予め定められた範囲内に収まらない場合、取得した文字列から所定位置の文字を削除する。具体的には、画面表示部１８２は、後述の変換部１７４に変換させた印刷用の文字列を受け取り、当該印刷用の文字列のバイト数が印刷装置２０（プラットフォーム）で予め定められた範囲内に収まるか否かを判定する。なお本実施形態では、プラットフォーム毎に予め定められた範囲内を定義したテーブルが記憶部１４０に記憶されており、画面表示部１８２は、当該テーブルを参照して判定する。そして画面表示部１８２は、予め定められた範囲内に収まらない場合、取得した文字列から末尾１文字を削除し、再度、後述の変換部１７４に印刷用の文字列に変換させる。また画面表示部１８２は、後述の変換部１７４に変換させた印刷用の文字列のデータ量が予め定められた範囲内に収まり、操作部１２０から保存指示を受け付けると、当該文字列を後述の変換部１７４に記憶用の文字列に変換させ、ＤＥＶＭＯＤＥ、レジストリ、又はファイルとして文字列記憶部１４６に記憶（保存）する。
【００５１】
図１０は、本実施形態の画面表示部１８２により表示される文字列設定（Ｐｌｕｇｉｎ  Ｗａｔｅｒｍａｒｋ）画面の一例を示す図である。図１０に示す文字列設定画面では、ＷａｔｅｒＭａｒｋ機能を用いた印刷で印刷される文字列の入力が可能となっている。図１０に示す例では、ＷａｔｅｒＭａｒｋ機能を用いた印刷で印刷される文字列として“マル秘”が入力されている。そして、操作部１２０を用いてＯＫボタン１９３が押下されると、ＷａｔｅｒＭａｒｋ機能を用いた印刷で印刷される文字列が保存（設定）され、文字列設定画面が閉じられる。一方、操作部１２０を用いてＣａｎｃｅｌボタン１９４が押下されると、当該文字列の入力がキャンセルされ、文字列設定画面が閉じられる。
【００５２】
図１１は、本実施形態の文字列記憶部１４６に記憶されている文字列の一例を示す図である。図１１に示す例では、文字列記憶部１４６に、ＵｓｅｒＣｏｄｅ機能を用いた印刷で印刷される文字列として“あいうえお”、ＧｒｏｕｐＣｏｄｅ機能を用いた印刷で印刷される文字列として“子会社Ａ”、及びＷａｔｅｒＭａｒｋ機能を用いた印刷で印刷される文字列として“マル秘”が記憶されている。なお、図１１に示す例では、各文字列はＪＳＯＮ形式で記憶されており、文字コードはＵＴＦ−８となっている。これは、ＪＳＯＮ形式では、文字コードがＵＴＦ−８に規定されているためである。
【００５３】
変換部１７４は、コアドライバ部１７１の画面表示部１７３により取得された文字列の印刷に用いられる機能を示す機能識別情報に対応する文字コード識別情報を文字コード識別テーブル記憶部１４２に記憶されている文字コード識別テーブルから取得する。具体的には、変換部１７４は、文字コード識別テーブルから、通信制御部１７２により受信された（プラットフォーム識別情報記憶部１４４に記憶されている）プラットフォーム識別情報及び画面表示部１７３により取得された文字列の機能識別情報に対応する文字コード識別情報を取得する。なお、画面表示部１７３は、機能毎に当該機能を用いた印刷で印刷される文字列を取得しており、変換部１７４は、画面表示部１７３から、文字列とともに当該文字列の印刷に用いられる機能を示す機能識別情報を取得している。
【００５４】
そして変換部１７４は、取得した文字コード識別情報が示す文字コードで画面表示部１７３により取得された文字列を変換する。具体的には、変換部１７４は、取得した文字コード識別情報が示す文字コードを記憶部１４０から取得し、取得した文字コードで画面表示部１７３により取得された文字列を印刷用に変換し、画面表示部１７３に返却する。
【００５５】
また変換部１７４は、画面表示部１７３により印刷用に変換された文字列のデータ量が予め定められた範囲内に収まらないと判定されると、画面表示部１７３により所定位置の文字が削除された文字列を、文字コード識別テーブルから取得した前記文字コード識別情報が示す文字コードで印刷用に再変換し、画面表示部１７３に返却する。
【００５６】
また変換部１７４は、画面表示部１７３により印刷用に変換された文字列のデータ量が予め定められた範囲内に収まると判定されると、当該文字列を表示用の文字コードで表示用に変換し、その後、記憶用の文字コードで記憶用に変換し、画面表示部１７３に返却する。
【００５７】
なお、詳細な説明は省略するが、変換部１７４は、プラグイン部１８１の画面表示部１８２により取得された文字列についても同様の手法で各種変換を行う。また変換部１７４は、後述のコアドライバ部１７１の描画部１７５及び後述のプラグイン部１８１の描画部１８３により取得される記憶用の文字列についても上述した手法で印刷用に変換する。
【００５８】
コアドライバ部１７１の描画部１７５及びプラグイン部１８１の描画部１８３は、印刷データを生成する。描画部１７５は、描画データ生成部１７６と印刷設定データ生成部１７７とを含み、描画部１８３は、描画データ生成部１８４と印刷設定データ生成部１８５とを含む。
【００５９】
コアドライバ部１７１の描画データ生成部１７６は、アプリケーション１５４からＯＳ１５２を介して印刷対象の画像データなどを受け付けて描画データを生成し、生成した描画データを印刷装置２０が解釈可能な描画コマンド（描画命令）に変換する。なお描画データ生成部１７６は、プラグイン部１８１が有している機能に関する描画データの生成については、プラグイン部１８１の描画データ生成部１８４を呼び出し、描画データを生成させる。
【００６０】
プラグイン部１８１の描画データ生成部１８４は、コアドライバ部１７１の描画データ生成部１７６から呼び出されると、プラグイン部１８１が有している機能に関する描画データを生成し、生成した描画データを印刷装置２０が解釈可能な描画コマンド（描画命令）に変換する。
【００６１】
コアドライバ部１７１の印刷設定データ生成部１７７（取得部の一例）は、画面表示部１７３により印刷設定画面及び文字列設定画面上で設定された内容から描画データ生成部１７６により生成される描画データの印刷方法を設定する。例えば、印刷設定データ生成部１７７は、文字列記憶部１４６からコアドライバ部１７１の機能を用いた印刷で印刷される文字列を取得し、変換部１７４に印刷用の文字列に変換させる。そして印刷設定データ生成部１７７は、設定した印刷方法（印刷用に変換された文字列など）を印刷装置２０が解釈可能な印刷設定コマンド（印刷設定命令）に変換する。なお印刷設定データ生成部１７７は、プラグイン部１８１が有している機能に関する描画データの印刷方法の設定については、プラグイン部１８１の印刷設定データ生成部１８５を呼び出し、印刷方法を設定させる。
【００６２】
プラグイン部１８１の印刷設定データ生成部１８５（取得部の一例）は、コアドライバ部１７１の印刷設定データ生成部１７７から呼び出されると、プラグイン部１８１が有している機能に関する描画データの印刷方法を設定する。例えば、印刷設定データ生成部１８５は、文字列記憶部１４６からプラグイン部１８１の機能を用いた印刷で印刷される文字列を取得し、変換部１７４に印刷用の文字列に変換させる。そして印刷設定データ生成部１８５は、設定した印刷方法（印刷用に変換された文字列など）を印刷装置２０が解釈可能な印刷設定コマンド（印刷設定命令）に変換する。
【００６３】
図１２は、本実施形態の描画部１７５及び描画部１８３により生成される印刷データの一例を示す図である。図１２に示す印刷データは、コアドライバ部１７１の印刷設定データ生成部１７７により生成された印刷設定コマンド、プラグイン部１８１の印刷設定データ生成部１８５により生成された印刷設定コマンド、コアドライバ部１７１の描画データ生成部１７６により生成された描画コマンド、及びプラグイン部１８１の描画データ生成部１８４により生成された描画コマンドを含む。
【００６４】
図１２に示す例では、印刷設定データ生成部１７７により生成された印刷設定コマンドが、ＵｓｅｒＣｏｄｅ機能の印刷設定コマンドであるＳｈｉｆｔＪＩＳの文字列“あいうえお”、及びＧｒｏｕｐＣｏｄｅ機能の印刷設定コマンドであるＵＴＦ−８の文字列“子会社Ａ”となっている。また、印刷設定データ生成部１８５により生成された印刷設定コマンドが、ＷａｔｅｒＭａｒｋ機能の印刷設定コマンドであるＵＴＦ−８の文字列“マル秘”となっている。
【００６５】
図１３は、本実施形態の印刷装置２０の構成の一例を示すブロック図である。図１３に示すように、印刷装置２０は、通信部２１０と、記憶部２２０と、プラットフォーム２３０と、印刷部２４０とを備える。
【００６６】
通信部２１０は、ネットワーク５を介して、ＰＣ１０などの外部機器との間で通信するものであり、ＰＣ１０同様、既存の通信装置により実現できる。
【００６７】
記憶部２２０は、印刷装置２０で実行される各種プログラムや印刷装置２０で行われる各種処理に使用される各種情報などを記憶するものあり、ＰＣ１０同様、既存の記憶装置により実現できる。記憶部２２０は、印刷装置２０のプラットフォーム識別情報を記憶するプラットフォーム識別情報記憶部２２２を含む。プラットフォーム識別情報記憶部２２２は、例えば、プラットフォーム２３０のプラットフォーム名であるＰｌａｔｆｏｒｍＡを記憶する。
【００６８】
プラットフォーム２３０は、印刷装置２０の全体を制御するものであり、ＣＰＵ（Central  Processing  Unit）などにより実現できる。プラットフォーム２３０は、印刷装置２０の動作を制御する。例えば、プラットフォーム２３０は、通信部２１０を制御してＰＣ１０と双方向通信を行い、プラットフォーム識別情報記憶部２２２に記憶されている印刷装置２０のプラットフォーム識別情報をＰＣ１０に送信する。またプラットフォーム２３０は、プラグインの追加を管理する。追加可能なプラグインはプラットフォームの種別に応じて異なる。プラットフォーム２３０は、プラグインをインストールすることにより機能を追加（拡張）できるように構成されており、プラグイン部２３２を含む。なお、プラグイン部２３２は、インストールされたプラグインにより実現されるものである。そしてプラットフォーム２３０は、通信部２１０を制御してＰＣ１０から印刷データを受信し、プラグイン部２３２とともに印刷データを解釈し、印刷部２４０に印刷を行わせる。
【００６９】
印刷部２４０は、プラットフォーム２３０の指示に従って記録紙等の記録媒体に画像を印刷する。
【００７０】
次に、本実施形態のＰＣを含む印刷システムの動作について説明する。
【００７１】
図１４は、本実施形態のＰＣ１０で行われるインストール処理の一例を示すフローチャートである。
【００７２】
まず、インストーラ１５６は、インストール対象のプラグインの画面表示モジュール及び描画モジュールを記憶部１４０のプリンタドライバ１７０がアクセス可能な領域（読み込める場所）にインストールする（ステップＳ１００）。
【００７３】
続いて、インストーラ１５６は、文字コード識別テーブルのプラットフォーム識別情報毎に、当該プラットフォーム識別情報と一致するインストール対象のプラグインのプラグイン文字コード情報のプラットフォーム識別情報に対応付けられた機能識別情報及び文字コード識別情報をマージする（ステップＳ１０２）。
【００７４】
図１５は、本実施形態のＰＣ１０で行われる文字列設定処理の一例を示すフローチャートである。
【００７５】
まず、通信制御部１７２は、プラットフォーム名取得処理を行い、印刷装置２０から印刷装置２０のプラットフォーム名を取得する（ステップＳ２００）。なお、プラットフォーム名取得処理の詳細については後述する。
【００７６】
続いて、アプリケーション１５４からプリンタドライバ１７０が有している機能を用いた印刷で印刷される文字列の文字列設定画面の表示が指示されると（ステップＳ２０２でＹｅｓ）、文字列設定画面が表示部１３０に表示される（ステップＳ２０４）。なお、コアドライバ部１７１が有している機能を用いた印刷で印刷される文字列の文字列設定画面の表示制御は画面表示部１７３が行い、プラグイン部１８１が有している機能を用いた印刷で印刷される文字列の文字列設定画面の表示制御は画面表示部１８２が行う。一方、文字列設定画面の表示が指示されない場合（ステップＳ２０２でＮｏ）、文字列設定処理は終了となる。
【００７７】
続いて、操作部１２０からの文字列設定画面に対する表示用文字列の入力が受け付けられる（ステップＳ２０６）。なお、画面表示部１７３が文字列設定画面を表示している場合、画面表示部１７３が表示用文字列の入力を受け付け、画面表示部１８２が文字列設定画面を表示している場合、画面表示部１８２が表示用文字列の入力を受け付ける。
【００７８】
続いて、変換部１７４は、画面表示部１７３又は画面表示部１８２から渡された表示用文字列を印刷用文字列に変換する印刷用文字列変換処理を行う（ステップＳ２０８）。なお、印刷用文字列変換処理の詳細については後述する。
【００７９】
続いて、印刷用文字列変換処理による変換後の印刷用文字列のバイト数が予め定められた範囲内に収まるか否かが判定される（ステップＳ２１０）。そして、変換後の印刷用文字列のバイト数が予め定められた範囲内に収まらない場合（ステップＳ２１０でＮｏ）、ステップＳ２０６で受け付けられた表示用文字列から末尾１文字が削除され（ステップＳ２１２）、ステップＳ２０８に戻る。なお、画面表示部１７３が表示用文字列を変換部１７４に渡した場合、画面表示部１７３がステップＳ２１０、Ｓ２１２の処理を行い、画面表示部１８２が表示用文字列を変換部１７４に渡した場合、画面表示部１８２がステップＳ２１０、Ｓ２１２の処理を行う。
【００８０】
一方、変換後の印刷用文字列のバイト数が予め定められた範囲内に収まると（ステップＳ２１０でＹｅｓ）、変換部１７４は、画面表示部１７３又は画面表示部１８２から渡された当該印刷用文字列を表示用文字列に変換する表示用文字列変換処理を行う（ステップＳ２１４）。なお、表示用文字列変換処理の詳細については後述する。
【００８１】
続いて、操作部１２０からの文字列設定画面上のＯＫボタンの押下など表示用文字列の保存（設定）指示が受け付けられる（ステップＳ２１６）。なお、画面表示部１７３が文字列設定画面を表示している場合、画面表示部１７３が保存指示を受け付け、画面表示部１８２が文字列設定画面を表示している場合、画面表示部１８２が保存指示を受け付ける。
【００８２】
続いて、変換部１７４は、画面表示部１７３又は画面表示部１８２から渡された表示用文字列を記憶用文字列に変換する記憶用文字列変換処理を行う（ステップＳ２１８）。なお、記憶用文字列変換処理の詳細については後述する。
【００８３】
続いて、記憶用文字列変換処理による変換後の記憶用文字列が文字列記憶部１４６に記憶（保存）され（ステップＳ２２０）、文字列設定画面の表示が終了され（ステップＳ２２２）、ステップＳ２０２へ戻る。なお、画面表示部１７３が表示用文字列を変換部１７４に渡した場合、画面表示部１７３がステップＳ２２０、Ｓ２２２の処理を行い、画面表示部１８２が表示用文字列を変換部１７４に渡した場合、画面表示部１８２がステップＳ２２０、Ｓ２２２の処理を行う。
【００８４】
図１６は、本実施形態の印刷システム１で行われるプラットフォーム名取得処理の一例を示すシーケンス図である。
【００８５】
まず、プリンタドライバ１７０の通信制御部１７２は、印刷装置２０へプラットフォーム名取得コマンドを送信する（ステップＳ３００）。
【００８６】
続いて、印刷装置２０のプラットフォーム２３０は、プラットフォーム名取得コマンドを受信すると、プラットフォーム識別情報記憶部２２２からプラットフォーム２３０のプラットフォーム名を取得し（ステップＳ３０２）、ＰＣ１０へ送信する（ステップＳ３０４）。
【００８７】
続いて、プリンタドライバ１７０の通信制御部１７２は、プラットフォーム名を受信すると、受信したプラットフォーム名をプラットフォーム識別情報記憶部１４４に記憶（保存）する（ステップＳ３０６）。
【００８８】
図１７は、本実施形態のＰＣ１０で行われる印刷用文字列変換処理の一例を示すフローチャートである。
【００８９】
まず、変換部１７４は、変換対象の文字列及び当該文字列の印刷に用いられる機能の機能名を取得する（ステップＳ４００）。
【００９０】
続いて、変換部１７４は、プラットフォーム識別情報記憶部１４４からプラットフォーム名を取得する（ステップＳ４０２）。
【００９１】
続いて、変換部１７４は、取得したプラットフォーム名及び取得した機能名に対応する印刷用の文字コード名を、文字コード識別テーブル記憶部１４２に記憶されている文字コード識別テーブルから取得する（ステップＳ４０４）。
【００９２】
続いて、変換部１７４は、取得した変換対象の文字列を、取得した印刷用の文字コード名の文字コードに変換する（ステップＳ４０６）。
【００９３】
続いて、変換部１７４は、変換した印刷用の文字列を返却する（ステップＳ４０８）。
【００９４】
図１８は、本実施形態のＰＣ１０で行われる表示用文字列変換処理の一例を示すフローチャートである。
【００９５】
まず、変換部１７４は、変換対象の文字列を取得する（ステップＳ５００）。
【００９６】
続いて、変換部１７４は、取得した変換対象の文字列を、表示用の文字コードに変換する（ステップＳ５０２）。
【００９７】
続いて、変換部１７４は、変換した表示用の文字列を返却する（ステップＳ５０４）。
【００９８】
図１９は、本実施形態のＰＣ１０で行われる記憶用文字列変換処理の一例を示すフローチャートである。
【００９９】
まず、変換部１７４は、変換対象の文字列を取得する（ステップＳ６００）。
【０１００】
続いて、変換部１７４は、取得した変換対象の文字列を、記憶用の文字コードに変換する（ステップＳ６０２）。
【０１０１】
続いて、変換部１７４は、変換した記憶用の文字列を返却する（ステップＳ６０４）。
【０１０２】
図２０は、本実施形態のＰＣ１０で行われる印刷処理の一例を示すフローチャートである。
【０１０３】
まず、通信制御部１７２は、プラットフォーム名取得処理を行い、印刷装置２０から印刷装置２０のプラットフォーム名を取得する（ステップＳ７００）。なお、プラットフォーム名取得処理の詳細は、図１６に示すとおりである。
【０１０４】
続いて、コアドライバ部１７１の印刷設定データ生成部１７７は、文字列記憶部１４６からコアドライバ部１７１の機能を用いた印刷で印刷される記憶用の文字列を取得する（ステップＳ７０２）。
【０１０５】
続いて、変換部１７４は、印刷設定データ生成部１７７から渡された記憶用文字列を印刷用文字列に変換する印刷用文字列変換処理を行う（ステップＳ７０４）。なお、印刷用文字列変換処理の詳細は、図１７に示すとおりである。
【０１０６】
続いて、印刷設定データ生成部１７７は、印刷用文字列変換処理による変換後の印刷用文字列を印刷設定コマンドに変換する（ステップＳ７０６）。
【０１０７】
続いて、通信制御部１７２は、変換された印刷設定コマンドを印刷装置２０に送信する（ステップＳ７０８）。
【０１０８】
なお、詳細な説明は省略するが、ステップＳ７０２、Ｓ７０６の処理は、プラグイン部１８１の印刷設定データ生成部１８５も行い、ステップＳ７０８において、通信制御部１７２は、印刷設定データ生成部１８５により変換された印刷設定コマンドを印刷装置２０に送信する。
【０１０９】
続いて、コアドライバ部１７１の描画データ生成部１７６は、コアドライバ部１７１が有している機能に関する描画データを生成する（ステップＳ７１０）。
【０１１０】
続いて、描画データ生成部１７６は、生成した描画データを描画コマンドに変換する（ステップＳ７１２）。
【０１１１】
続いて、通信制御部１７２は、変換された描画コマンドを印刷装置２０に送信する（ステップＳ７１４）。
【０１１２】
なお、詳細な説明は省略するが、ステップＳ７１０、Ｓ７１２の処理は、プラグイン部１８１の描画データ生成部１８４も行い、ステップＳ７１４において、通信制御部１７２は、描画データ生成部１８４により変換された描画コマンドを印刷装置２０に送信する。
【０１１３】
そして、印刷装置２０において、印刷設定データ生成部１７７により変換された印刷設定コマンド、印刷設定データ生成部１８５により変換された印刷設定コマンド、描画データ生成部１７６により変換された描画コマンド、及び描画データ生成部１８４により変換された描画コマンドに従った印刷が実行される。
【０１１４】
以上のように本実施形態によれば、プリンタドライバの機能毎に印刷装置側で対応する文字コードを対応付けた文字コード識別テーブルを有しているので、印刷装置側で対応する文字コードがプリンタドライバの機能に応じて異なる場合であっても、文字化けなどを生じさせずに印刷対象の文字列を印刷装置に正しく印刷させることができる。
【０１１５】
また本実施形態によれば、プラグインのインストール時に当該プラグインの機能に印刷装置側で対応する文字コードを文字コード識別テーブルにマージするので、印刷装置側で対応する文字コードがプリンタドライバの標準機能と追加機能とで異なる場合であっても、印刷対象の文字列を印刷装置に正しく印刷させることができる。
【０１１６】
また本実施形態によれば、文字コード識別テーブルは、印刷装置のプラットフォーム毎にプリンタドライバの機能と印刷装置側で対応する文字コードとを対応付けているので、機種共通ドライバのように複数のプラットフォームに対応可能なプリンタドライバにも適用できる。
【０１１７】
また本実施形態によれば、文字コード識別テーブルは、プラットフォーム毎にプリンタドライバの機能と印刷装置側で対応する文字コードとを対応付けており、プラグインのインストール時に当該プラグインの機能に印刷装置（プラットフォーム）側で対応する文字コードを文字コード識別テーブルにマージするため、機種共通ドライバであってもプリンタドライバは、印刷装置からプラットフォーム識別情報を取得するだけでよい。このため、プリンタドライバと印刷装置との通信量を抑えることができ、印刷待ち時間などのユーザ負担を抑えることができる。
【０１１８】
また本実施形態によれば、印刷対象の文字列を印刷装置側で対応する文字コードに変換した後にバイト数チェックを行っているため、印刷装置側で対応可能なバイト数で印刷させることができる。
【０１１９】
（変形例）
なお上記実施形態では、文字列設定時と印刷時の両方でプラットフォーム名取得処理（双方向通信）を行っているが、文字列設定時のみ行うようにしてもよいし、これらと異なるタイミングで行うようにしてもよい。
【０１２０】
例えば、プラットフォーム名取得処理（双方向通信）の実行頻度を高くすれば、印刷装置側で対応する文字コードの変化（例えば、接続印刷装置の変更、印刷装置のプラグインの追加や削除など）に迅速に対応できる。プラットフォーム名取得処理（双方向通信）の通信量は少ないため、このようにしても、ユーザに与える負担は少ない。
【０１２１】
（ハードウェア構成）
次に、本実施形態のＰＣ１０のハードウェア構成の一例について説明する。
【０１２２】
本実施形態のＰＣ１０は、ＣＰＵなどの制御装置と、ＲＯＭやＲＡＭなどの記憶装置と、ＨＤＤやリムーバブルドライブ装置などの外部記憶装置と、ディスプレイなどの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１２３】
本実施形態のＰＣ１０で実行されるドライバプログラムやインストーラプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ（Digital  Versatile  Disk）、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【０１２４】
また、本実施形態のＰＣ１０で実行されるドライバプログラムやインストーラプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、本実施形態のＰＣ１０で実行されるドライバプログラムやインストーラプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、本実施形態のＰＣ１０で実行されるドライバプログラムやインストーラプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【０１２５】
本実施形態のＰＣ１０で実行されるドライバプログラムは、上述したプリンタドライバ１７０の各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、ＣＰＵがＨＤＤからドライバプログラムをＲＡＭ上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【０１２６】
同様に、本実施形態のＰＣ１０で実行されるインストーラプログラムは、上述したインストーラ１５６をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、ＣＰＵがＨＤＤからインストーラプログラムをＲＡＭ上に読み出して実行することにより、インストーラ１５６がコンピュータ上で実現されるようになっている。
【符号の説明】
【０１２７】
１  印刷システム
５  ネットワーク
１０  ＰＣ
２０  印刷装置
１１０  通信部
１２０  操作部
１３０  表示部
１４０  記憶部
１４２  文字コード識別テーブル記憶部
１４４  プラットフォーム識別情報記憶部
１４６  文字列記憶部
１５０  制御部
１５２  ＯＳ
１５４  アプリケーション
１５６  インストーラ
１７０  プリンタドライバ
１７１  コアドライバ部
１７２  通信制御部
１７３  画面表示部
１７４  変換部
１７５  描画部
１７６  描画データ生成部
１７７  印刷設定データ生成部
１８１  プラグイン部
１８２  画面表示部
１８３  描画部
１８４  描画データ生成部
１８５  印刷設定データ生成部
２１０  通信部
２２０  記憶部
２２２  プラットフォーム識別情報記憶部
２３０  プラットフォーム
２３２  プラグイン部
２４０  印刷部
【先行技術文献】
【特許文献】
【０１２８】
【特許文献１】特開２００７−１１８１０号公報
【図１】
0005779917.tif 000002
【図２】
0005779917.tif 000003
【図３】
0005779917.tif 000004
【図４】
0005779917.tif 000005
【図５】
0005779917.tif 000006
【図６】
0005779917.tif 000007
【図７】
0005779917.tif 000008
【図８】
0005779917.tif 000009
【図９】
0005779917.tif 000010
【図１０】
0005779917.tif 000011
【図１１】
0005779917.tif 000012
【図１２】
0005779917.tif 000013
【図１３】
0005779917.tif 000014
【図１４】
0005779917.tif 000015
【図１５】
0005779917.tif 000016
【図１６】
0005779917.tif 000017
【図１７】
0005779917.tif 000018
【図１８】
0005779917.tif 000019
【図１９】
0005779917.tif 000020
【図２０】
0005779917.tif 000021