(57)【要約】【課題】新しいアーキテクチャであるＶ４プリンタードライバーでは、ＧＰＤはＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓで表現可能な、「機能を選択肢として提供するＦｅａｔｕｒｅとＯｐｔｉｏｎに関する項目」を定義することが可能だが、「機能を数値や文字列の入力として提供するＰａｒａｍｅｔｅｒＤｅｆに関する項目」を定義することができない。そのため、ＧＰＤの記載で対応できていたマルチリンガルの機能が、Ｐａｒａｍｅｔｅｒの項目に関しては実現できない。【解決手段】ＧＰＤに定義できないＰａｒａｍｅｔｅｒＤｅｆの生成処理に関して、Ｌｏｃａｌｅ情報によって参照するＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇを切り替えて「機能表示名の文字列」を追加することで、マルチリンガルに対応したＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓを提供することができる。【選択図】図６
2017033052.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と印刷装置から構成されている情報処理方法において、
ＸＭＬ形式の印刷設定機能情報を受信する手段（ステップＳ６０１）と、
ログインしているＯＳにおけるＬｏｃａｌｅ情報を取得する手段（ステップＳ６０２）と、
前記Ｌｏｃａｌｅ情報に合致するＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇの情報を取得する手段（ステップＳ６０３）と、
前記印刷設定機能情報におけるＰａｒａｍｅｔｅｒ部がすでに存在しているかを判定する手段（ステップＳ６０４）と、
前記印刷設定機能情報におけるＰａｒａｍｅｔｅｒ部が前記Ｌｏｃａｌｅ情報と合致した機能名文字列となっているかを判断する手段（ステップＳ６０５）と、
前記ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇの情報を印刷設定機能情報に反映する手段（ステップＳ６０６）と、
を有することを特徴とする画像形成装置およびその制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、新しいアーキテクチャにおけるプリンタードライバーのローカライズ文言を制御するプログラムに関する。
【背景技術】
【０００２】
Ｍｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）８では、Ｖ４プリンタードライバーと呼ばれる新しいアーキテクチャで動作するプリンタードライバーが導入されている。Ｖ４プリンタードライバーは、Ｖ３プリンタードライバーのアーキテクチャとして提供されていたＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）プリンタードライバーの後継となるアーキテクチャであり、ＸＰＳ文書を利用した印刷パスを利用している。
【０００３】
このＸＰＳ印刷パスにおいて、印刷物の体裁を決定するために利用されるものがＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓと呼ばれるＸＭＬ形式で記述された印刷機能情報と、ＰｒｉｎｔＴｉｃｋｅｔと呼ばれるＸＭＬ形式で記述された印刷設定情報である。Ｖ４プリンタードライバーでは、ＧＰＤ（Ｇｅｎｅｒｉｃ  Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ）と呼ばれる印刷設定定義ファイルに各印刷機能情報を記載し、このＧＰＤを含んだプリンタードライバーをＯＳにインストールすることで、ユーザーに対してＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓやＰｒｉｎｔＴｉｃｋｅｔを利用した印刷設定変更機能を提供することができる。
【０００４】
また、ＧＰＤには各印刷機能情報における「機能表示名」を定義することができる。これは、あらかじめリソースＤＬＬに文字列を定義しておき、その定義ＩＤをリソースＩＤとしてＧＰＤに記載することで、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの機能表示名を表す「ＤｉｓｐｌａｙＮａｍｅ」属性に該当の文字列が定義されるＯＳの仕組みが存在する。
「ＤｉｓｐｌａｙＮａｍｅ」属性とは、ＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓにおけるＸＭＬ形式で記載されたＸＭＬＮｏｄｅの一部を指し、ここで記述されたＶａｌｕｅ属性が「機能表示名」として定義されることとなる。リソースＤＬＬには、各種印刷設定における各国言語の「機能表示名の文字列」を定義することができ、リソースＩＤを記載したＧＰＤと、各国言語の「機能表示名の文字列」が定義されたリソースＤＬＬがあればマルチリンガルのプリンタードライバーを提供することができる。
【０００５】
ただし、これらのリソースＩＤを定義することができるのはＧＰＤに記載されている印刷設定の項目のみとなる。ＧＰＤはＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓで表現可能な、「機能を選択肢として提供するＦｅａｔｕｒｅとＯｐｔｉｏｎに関する項目」を定義することが可能だが、「機能を数値や文字列の入力として提供するＰａｒａｍｅｔｅｒＤｅｆに関する項目」を定義することができない。そこで、ＧＰＤにダミーのＦｅａｔｕｒｅとＯｐｔｉｏｎの項目を定義し、作成されたダミー機能の「機能表示名の文字列」を利用して、ＰａｒａｍｅｔｅｒＤｅｆの「ＤｉｓｐｌａｙＮａｍｅ」属性に「機能表示名」を追加する手段が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−１９７２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記手段を利用するとダミー機能がＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓに定義されてしまうことになり、ＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓを利用する様々なアプリケーションで利用できない印刷設定項目が使用されてしまう。また、アプリケーションはプリンタードライバーが定義した文言をそのまま表示したい場合が存在する。例えば、ストアアプリ用の印刷設定ＵＩであるＷＳＤＡ（Ｗｉｎｄｏｗｓ  Ｓｔｏｒｅ  Ｄｅｖｉｃｅ  Ａｐｐ）は機種共通で開発される場合もあり、機種固有機能の表示文字列はドライバーの文言をそのままユーザーに表示する。その場合、ＷＳＤＡはプリンタードライバーが提供するＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓのＤｉｓｐｌａｙＮａｍｅを利用して印刷設定ＵＩに表示する。その場合ＰａｒａｍｅｔｅｒＤｅｆに定義された「機能表示名」は必要不可欠であり、正しいローカライズ文字列をＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓに定義する必要がある。
【０００８】
そこで、本発明は、上記問題を解決する手段として、ＰａｒａｍｅｔｅｒＤｅｆの「機能表示名」に対してどの言語の文字列を定義すべきかを判別し、ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓにＤｉｓｐｌａｙＮａｍｅ属性として文字列を追加する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明に係る画像形成装置およびその制御方法は、
情報処理装置と印刷装置から構成されている情報処理方法において、
ＸＭＬ形式の印刷設定機能情報を受信する手段（ステップＳ６０１）と、
ログインしているＯＳにおけるＬｏｃａｌｅ情報を取得する手段（ステップＳ６０２）と、
前記Ｌｏｃａｌｅ情報に合致するＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇの情報を取得する手段（ステップＳ６０３）と、
前記印刷設定機能情報におけるＰａｒａｍｅｔｅｒ部がすでに存在しているかを判定する手段（ステップＳ６０４）と、
前記印刷設定機能情報におけるＰａｒａｍｅｔｅｒ部が前記Ｌｏｃａｌｅ情報と合致した機能名文字列となっているかを判断する手段（ステップＳ６０５）と、
前記ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇの情報を印刷設定機能情報に反映する手段（ステップＳ６０６）と、
を有することを特徴とする。
【発明の効果】
【００１０】
本発明に係る画像形成装置およびその制御方法によれば、ＧＰＤに定義できないＰａｒａｍｅｔｅｒＤｅｆの生成処理に関して、Ｌｏｃａｌｅ情報によって参照するＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇを切り替えて「機能表示名の文字列」を追加することで、マルチリンガルに対応したＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態としての、コンピューターシステムのハードウェアとソフトウェアのブロック構成図である。
【図２】本発明の一実施形態としての、印刷処理システムのブロック構成図である。
【図３（Ａ）】本発明の一実施形態としての、印刷設定定義ファイル（ＧＰＤ）の一部である。
【図３（Ｂ）】本発明の一実施形態としての、リソースＤＬＬファイルの定義内容の一部である。
【図４（Ａ）】本発明の一実施形態としての、日本語で表示されたＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓ（Ｆｅａｔｕｒｅ−Ｏｐｔｉｏｎ）の一部である。
【図４（Ｂ）】本発明の一実施形態としての、英語で表示されたＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓ（Ｆｅａｔｕｒｅ−Ｏｐｔｉｏｎ）の一部である。
【図５（Ａ）】本発明の一実施形態としての、日本語用のＰａｒａｍｅｔｅｒ情報が定義されたＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇの定義部の一部である。
【図５（Ｂ）】本発明の一実施形態としての、英語用のＰａｒａｍｅｔｅｒ情報が定義されたＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇの定義部の一部である。
【図６】本発明の一実施形態としての、印刷設定編集モジュール処理のフローチャートである。
【図７（Ａ）】本発明の一実施形態としての、日本語で表示されたＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓ（ＰａｒａｍｅｔｅｒＤｅｆ）の一部である。
【図７（Ｂ）】本発明の一実施形態としての、英語で表示されたＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓ（ＰａｒａｍｅｔｅｒＤｅｆ）の一部である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１３】
［実施形態１］
図１は本発明の実施形態を示す一般的なコンピューターを用いたシステムのブロック構成図である。
【００１４】
ＣＰＵ１０１は主記憶装置１０２のＲＯＭ１０２１あるいはＲＡＭ１０２２あるいは補助記憶装置１０５に格納されたプログラムに従って装置全体の制御を行う。ＲＡＭ１０２２はＣＰＵ１０１が各種処理を行う際のワークエリアとしても使用される。本実施形態における各コンポーネントの処理はすべてＲＡＭ１０２に読み込んで動作する。補助記憶装置１０５はアプリケーション１０５１やプリンタードライバー１０５２、オペレーティングシステム（ＯＳ）１０５３等を記録する。プリンタードライバー１０５２は、印刷機能を持つデバイスに対して、印刷指示を行うことができる。
【００１５】
キーボード１０３１やマウス・タッチパネルなどに代表されるポインティングデバイス１０３２などの入力機器は、入力Ｉ／Ｆ１０３を通じて、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。出力Ｉ／Ｆ１０４は、データを外部に出力するためのインターフェースであり、モニタ１０４１やプリンター１０４２などの出力機器に対してデータを出力する。プリンター１０４２とは直接接続されるローカルＩ／Ｏのみならず、通信Ｉ／Ｆ１０６を通じて接続されるネットワーク１０６１を通して接続されていてもよい。また、１０７は共通データシステムバスで、Ｉ／Ｆやモジュール間でデータのやりとりを行う。
【００１６】
図２はドライバー印刷システムのブロック構成図である。
【００１７】
ドライバー印刷システムはＸＰＳファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。ドライバー印刷システムは、オペレーティングシステム１０５３上で動作している。プリントマネージャ２１８、ＧＤＩｔｏＸＰＳ変換モジュール２０７、フィルタパイプラインマネージャ２１２、ポートモニター２１９はオペレーティングシステム１０５３に含まれるモジュールである。ＧＤＩとはプリンターの印刷イメージの生成を行うグラフィックスコンポーネントであり、ＧＤＩｔｏＸＰＳ変換モジュール２０７は、ＧＤＩで描画されたデータをＸＰＳデータへ変換する機能を持つ。フィルタパイプラインマネージャ２１２は、ＸＰＳ印刷パスの特徴であるフィルタ印刷処理の管理を行うモジュールである。
【００１８】
ポートモニター２１９は、デバイスにアクセスするプリントマネージャ２０８とプリンタードライバー間で通信を制御することができプリンタードライバーはポートモニター２１９を経由して印刷処理を行う。ＧＤＩｔｏＸＰＳ変換モジュール２０７、コンフィグレーションモジュール２０８、フィルタパイプラインマネージャ２１２は、プリンタードライバー１０５２に含まれているが、オペレーティングシステム１０５３から提供されているプリンタードライバー１０５２のモジュールという位置づけである。
【００１９】
コンフィグレーションモジュール２０８は、プリンタードライバーが提供する印刷設定編集モジュール２０８１を使用して印刷設定情報を編集することができ、印刷設定編集モジュール２０８１は、スクリプト言語、特にＪａｖａＳｃｒｉｐｔ（登録商標）で記載されたプログラムのことを指し、プリンタードライバーが提供するプロパティバッグ２０８２を利用して印刷設定情報を編集する。プロパティバッグ２０８２とは、プリンターの機種依存情報として利用するためのＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇと呼ばれるデータ群と、プリントキューに紐づいたＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇと呼ばれるデータ群が保持された領域を指す。
【００２０】
ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇは、ドライバーパッケージ内に存在するプリンターの機種依存データであり、プリンタードライバーインストール後にＯＳ内の特定の領域に読み取り専用としてデータ群が保持される。
【００２１】
ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇは、Ｋｅｙ−Ｖａｌｕｅペアのｘｍｌ定義ファイルをＯＳに登録することで利用することが可能であり、Ｖａｌｕｅに関して一定の権限上で編集が可能である。
【００２２】
プリンタードライバー１０５２とフィルタパイプラインマネージャ２１２の各フィルタは、図１の補助記憶装置１０５にプリンタードライバー１０５２として格納されている。ＧＤＩ印刷アプリケーション２０１とＸＰＳ印刷アプリケーション２０２は、図１の補助記憶装置１０５にアプリケーション１０５１として格納されている。ユーザーはキーボード１０３１やタッチパネル／マウスなどに代表されるポインティングデバイス１０３２などといった入力装置を使用して、出力装置のモニタ１０４１に映し出されたＧＤＩ印刷アプリケーション２０１（以下、ＧＤＩアプリと略す）、もしくはＸＰＳ印刷アプリケーションプログラム２０２（以下、ＸＰＳアプリと略す）から印刷処理を実行する。印刷処理はプリンターの選択、印刷設定の作成、描画データの変換と３つの処理を順番に行うことで実行する。
【００２３】
まずは、印刷したいプリンター１０４２の選択をする。ユーザーから見るとプリンター１０４２の選択は、印刷を実行するプリンター１０４２に対応したプリンタードライバー１０５２を選択することと同義である。１０５２の選択には、不図示のプリントキューを利用する。
【００２４】
次に印刷設定を作成する。印刷設定はまず、アプリケーション１０５１が印刷設定用のメモリ領域をＲＡＭ１０２２に確保する。そして、アプリケーション１０５１は、プリンタードライバー１０５２のコンフィギュレーションモジュール２０４を呼び出して、印刷設定データを作成して格納する。ＧＤＩアプリ２０１では印刷設定データとしてバイナリのＤＥＶＭＯＤＥ構造体２０３を用い、ＸＰＳアプリ２０２ではマークアップ言語のＸＭＬで記載されたＰｒｉｎｔＴｉｃｋｅｔ２０４を用いる。
【００２５】
ＤＥＶＭＯＤＥ構造体２０３は、オペレーティングシステムが定義する標準領域とプリンタードライバーが独自で定義する拡張領域を持つ。ＰｒｉｎｔＴｉｃｋｅｔ２０４は、ＸＭＬ形式で記述された印刷設定情報で、標準領域と拡張領域は名前空間によって記載が分かれている。印刷設定データには機種固有の情報も含まれているので、コンフィギュレーションモジュール２０８は、機種依存ファイル２０９を利用して、印刷設定データを作成する。このＤＥＶＭＯＤＥ構造体２０３もしくはＰｒｉｎｔＴｉｃｋｅｔ２０４が印刷設定を保持しており、アプリケーションが直接、値を書き換えることで印刷設定を変更する。機種依存ファイル２０９は、ＧＰＤと呼ばれる印刷設定定義ファイルを指し、図３（Ａ）のようにテキストベースで記載されている。
【００２６】
図３（Ａ）の内容について、詳細に説明する。
【００２７】
３０１は機能を表わすＦｅａｔｕｒｅを定義している。図３（Ａ）では例として「両面設定」を表わすＤｕｐｌｅｘというＦｅａｔｕｒｅを定義する。特に、３１０のようにＰｒｉｎｔＳｃｈｅｍａＫｅｙｗｏｒｄＭａｐを定義すると、ここに記載された名称のＰｒｉｎｔＳｃｈｅｍａがＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓで定義される。また、両面設定の設定項目であるＯｐｔｉｏｎとして、Ｓｉｍｐｌｅｘ（片面印刷（３０２））、ＬｏｎｇＥｄｇｅ（両面長辺とじ（３０３））、ＳｈｏｒｔＥｄｇｅ（両面短辺とじ（３０４））を定義する。そして各項目において、＊ｒｃＮａｍｅＩＤとよばれる「機能表示名を表わすリソースＩＤ」を定義している（３２０）。ここで示すのはＩＤ値であり、リソースＤＬＬにはリソースＩＤ値と「機能表示名の文字列」が紐づかれいている（図３（Ｂ））。実際にＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの各項目におけるＤｉｓｐｌａｙＮａｍｅ属性に表現されるのはこれらで定義した文字列である。そして、このリソースＤＬＬには各言語の文字列を記載することが可能であり、同ＩＤで紐づいた各言語の文字列をＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓのＤｉｓｐｌａｙＮａｍｅ属性に反映する機能がＯＳによって提供されている。
【００２８】
実際に、図４（Ａ）は日本語で示したＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを図示したものであり、図４（Ｂ）は英語で示したＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを図示ししたものとなる。これは、図３のリソースＩＤと各言語の「機能表示名」の対応がなされているために生成することができる。本プリンタードライバーでは、このＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを基準としたＰｒｉｎｔＴｉｃｋｅｔ２０４を利用して印刷設定を制御している。
【００２９】
プリンター１０４２に依存した専用の設定は、プリンターエクステンション２１０が持つユーザーインターフェースで設定する。プリンターエクステンション２１０は、プリンタードライバー１０５２の一種ではあるが、別のアプリケーションとしてインストールを行う。プリンタードライバー１０５２は、ユーザーインターフェースの設定に従い、ＤＥＶＭＯＤＥ構造体２０３もしくはＰｒｉｎｔＴｉｃｋｅｔ２０４のプリンター１０４２に依存した設定を変更する。印刷設定とは具体的に、出力する用紙サイズを「Ａ４」にする、印刷の向きを「横」にする、など印刷を行うのに必要なデータのことを指す。
【００３０】
ＰｒｉｎｔＴｉｃｋｅｔ２０４は印刷設定がＸＭＬ形式で記述されているので、ＸＰＳアプリ２０２がすべての設定値を直接変更して書き換えることは容易だが、プリンターエクステンション２１０のユーザーインターフェースを使って設定変更してもかまわない。印刷設定は文書印刷のたびに作成するが、プリンター１０４２のオプション機器や、ユーザーごとの環境設定など設定を保持しておきたいものは、ユーザーインターフェースがオペレーティングシステムのレジストリデータベース２０５に保存する。レジストリデータベース２０５が使用できないときは、ユーザーインターフェースは、アプリケーションデータ２２０に設定を保存する。印刷設定のデフォルト値はオペレーティングシステムのプリントマネージャ２１８が、レジストリデータベース２０５に保存する。レジストリデータベース２０５や、アプリケーションデータ２２０は、補助記憶装置１０５に保存される。最後に描画データの変換を行う。
【００３１】
印刷設定が確定したら、ユーザーはアプリケーションから印刷処理を実行する。ＧＤＩアプリ２０１から印刷する場合は、プリンタードライバーの形態を取るＧＤＩｔｏＸＰＳ変換モジュール２０７に描画データが送られ、ＸＰＳスプールファイル２０６が作成される。このときＧＤＩｔｏＸＰＳ変換モジュール２０７はコンフィギュレーションモジュール２０８を呼び出し、印刷設定をＤＥＶＭＯＤＥ構造体２０３からＰｒｉｎｔＴｉｃｋｅｔ２０４に変換する。変換する際には、印刷設定編集モジュール２０８１が使用される。ＸＰＳアプリ２０２から印刷する場合は、ＸＰＳファイルをＸＰＳアプリ自身が生成するのと、オペレーティングシステムがＸＰＳアプリからの描画命令に応じてＸＰＳファイルを生成するのと２通りの方法がある。どちらの方法であっても、印刷の途中でＸＰＳスプールファイル２０６を生成する。
【００３２】
ＸＰＳスプールファイル２０６が生成されたら、プリントフィルタパイプライン２１１に処理が渡される。プリントフィルタパイプライン２１１は複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィギュレーションファイル２１６でフィルタの数や順番を制御する。プリントフィルタパイプライン２１１で動作するフィルタパイプラインマネージャ２１２はフィルタコンフィギュレーションファイル２１６に従って、この実施例では通信フィルタ２１３、レイアウトフィルタ２１４、レンダラフィルタ２１５の順に処理を行う。フィルタはプリンタードライバー１０５２の構成によって、数や種類が異なる。印刷処理はＸＰＳスプールファイル２０６をフィルタに受け渡すことで行われ、フィルタがそれぞれＸＰＳスプールファイル２０６を加工し次のフィルタに渡していくことで処理が進む。
【００３３】
通信フィルタ２１３は、プリントマネージャ２１８およびポートモニターを経由してプリンター１０４２と通信する機能と、直接プリンター１０４２と通信する機能を持つ。レイアウトフィルタ２１４は、倍率の変更や製本の面付けレイアウトやスタンプなどレイアウトに関する処理を行う。レンダラフィルタ２１５では、ＸＰＳスプールファイル２０６をレンダリングしてＰＤＬ（ＰａｇｅＤｅｓｃｒｉｐｔｉｏｎＬａｎｇｕａｇｅ）に変換する。ＰＤＬデータは印刷処理のスケジュール管理を行うプリントマネージャ２１８で管理され、キュー（待ち行列）に印刷ジョブが次々と登録される。プリンター１０４２が印刷できる状態になったら、キューに登録した順にポートモニター２１９を通して送信する。このようにして、アプリケーションからの印刷データをＰＤＬデータに変換することがプリンタードライバーの主な役目であり、印刷処理が行われる。
【００３４】
ここで、本実施形態で示すプロパティバッグ２０８２のＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇについて説明する。ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇとは、機種依存情報が定義されたデータ群のことを指し、本実施例では図５（Ａ）、図５（Ｂ）のようなＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）と呼ばれる形式の文字列を保持することとする。ＪＳＯＮは、ＪａｖａＳｃｒｉｐｔが利用しやすいデータ形式であり、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇの定義に沿った形で定義されているものとする。本実施形態では、これらのデータを各言語分作成して格納する。例えば、図５（Ａ）、図５（Ｂ）のように日本語用と英語用のＰａｒａｍｅｔｅｒ追加用のデータを持たせることを想定する。本実施形態では文字列以外のパラメータも定義しているが、文字列の箇所のみ各言語分に分けてもよい。
【００３５】
次に、ＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓに各言語の文字列を追加する処理について、図６のフローチャートを用いて説明する。本実施形態では、ＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓを生成する際に動作する印刷設定編集モジュール１０８１の処理について説明する。
【００３６】
まずステップＳ６００にて印刷編集モジュール１０８１の処理を開始する。具体的にはＯＳによって呼び出されるｃｏｍｐｌｅｔｅＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓという関数の処理が該当する。以降、記載がない限り印刷設定編集モジュール１０８１の処理についての説明となるため、主語は印刷設定編集モジュール１０８１となる。
【００３７】
ステップＳ６０１において、ＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓを受信する。ｃｏｍｐｌｅｔｅＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓが呼び出される場合には、関数の引数にＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓのＸＭＬＮｏｄｅのＩ／Ｆが渡されるため、印刷設定編集モジュール１０８１は引数で渡されたＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓのＸＭＬＮｏｄｅを編集することとなる。
【００３８】
ステップＳ６０２において、追加すべき文言のためにＬｏｃａｌｅ情報を取得する。これはＯＳのＡＰＩを利用してもよいが、Ｌｏｃａｌｅ情報を取得するためにＰｒｉｎｔＴｉｃｋｅｔに存在するＪｏｂＬｏｃａｌｅとよばれるＦｅａｔｕｒｅのＯｐｔｉｏｎを参照してもよい。これはＯＳが提供するＬｏｃａｌｅ．ｇｐｄと呼ばれるＯＳが提供するＧＰＤファイルを取り込むことでＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓに追加される印刷設定項目である。これは、インストールされているＯＳの場所を特定することができる印刷設定であり、印刷設定編集モジュール１０８１は、このＪｏｂＬｏｃａｌｅの設定値を参照することで追加する文言の判断を行う。また、プリンターエクステンション２１０にて、現在のＬｏｃａｌｅ情報をプロパティバッグ２０８１に保存しておき、印刷設定編集モジュール１０８１がその情報を参照しても構わない。
【００３９】
ステップＳ６０３において、Ｌｏｃａｌｅ情報に応じたＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇを参照する。これは前述したような図５（Ａ）、図５（Ｂ）など、各言語で分けられたＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ情報のどれを参照するかを判断する。また、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ以外のＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇを参照してもよい。これは、ドライバーインストール後にドライバーパッケージに存在しない言語のマルチリンガルに対応するために、外部からのアクセスが可能なＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇに同情報を定義することで、ローカライズのカスタマイズが可能になるためである。その場合、ＦｅａｔｕｒｅやＯｐｔｉｏｎの項目もＤｉｓｐｌａｙＮａｍｅ属性の編集対象になる。
【００４０】
ステップＳ６０４において、ＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓ内のＰａｒａｍｅｔｅｒＤｅｆがすでに存在しているかを確認する。本関数のｃｏｍｐｌｅｔｅＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓでは、すでに印刷設定編集モジュール１０８２が追加処理を行った後のＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓが渡される場合もあるため、該当のＰａｒａｍｅｔｅｒＤｅｆが存在しているかを判断する必要がある。また、追加されている場合でも正しい文字列になっているかを判定する必要がある。もし、ＰａｒａｍｅｔｅｒＤｅｆが存在していない場合は、ステップＳ６０６に進む。もし、ＰａｒａｍｅｔｅｒＤｅｆが存在する場合は、ステップＳ６０５に進み、現在の文字列がＬｏｃａｌｅ情報にあった文字列が定義されているかを判断する。
【００４１】
ステップＳ６０５において、現在のＬｏｃａｌｅ情報にあった表示文字列であった場合は、処理を行わずステップＳ６０７に進み、印刷設定編集モジュールの処理を終了する。もし、該当文字列が異なっている場合は、ステップＳ６０６に進む。
【００４２】
ステップＳ６０６において、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇから取得した情報をＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓに反映する。そしてステップＳ６０７へ進み、印刷設定編集モジュール１０８１の処理を終了する。本処理が完了した場合、図７（Ａ）、図７（Ｂ）のようにＤｉｓｐｌａｙＮａｍｅ属性の箇所が各Ｌｏｃａｌｅ情報に応じて正しい文字列が定義されたＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓを提供することができる。
【００４３】
上記手段により、ＧＰＤに定義できないＰａｒａｍｅｔｅｒＤｅｆの生成処理に関して、Ｌｏｃａｌｅ情報によって参照するＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇを切り替えて「機能表示名の文字列」を追加することで、マルチリンガルに対応したＰｒｉｎｔＣａｐａｂｉｌｉｔｅｓを提供することができる。
【符号の説明】
【００４４】
１０１  ＣＰＵ、１０２  主記憶装置、１０５  補助記憶装置
【図１】
2017033052.tif 000003
【図２】
2017033052.tif 000004
【図３（Ａ）】
2017033052.tif 000005
【図３（Ｂ）】
2017033052.tif 000006
【図４（Ａ）】
2017033052.tif 000007
【図４（Ｂ）】
2017033052.tif 000008
【図５（Ａ）】
2017033052.tif 000009
【図５（Ｂ）】
2017033052.tif 000010
【図６】
2017033052.tif 000011
【図７（Ａ）】
2017033052.tif 000012
【図７（Ｂ）】
2017033052.tif 000013