(57)【特許請求の範囲】
【請求項１】
プリンタドライバよりプリンタの能力情報を取得する第１の取得手段と、
前記第１の取得手段より取得したプリンタの能力情報に基づき機能に対応した文字列情報を取得する第２の取得手段と、
プリンタドライバの画面に表示される機能の文字を前記第２の取得手段により取得された文字列情報の文字で表示させるための指示を行う指示手段と、
を有することを特徴とする情報処理装置。
【請求項２】
プリンタの能力情報をアプリケーションに出力する出力手段と、
前記出力手段によりアプリケーションに出力されたプリンタの能力情報に基づき取得された機能に対応した文字列情報でプリンタドライバの画面に表示される機能の文字を表示させるためのアプリケーションからの指示を受信する受信手段と、
前記受信手段により受信された指示に基づき画面に表示される機能の文字を表示させる表示手段と、
を有することを特徴とする情報処理装置。
【請求項３】
前記表示手段は、あらかじめ設定される機能を表示する文字列の最大表示文字数を超える文字列を表示しないことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記表示手段で表示される機能を示す文字列がユーザの操作で指示されることに応じて、指示されている文字列の文字数が最大表示文字数を超えているかどうかを判断する判断手段を備え、
前記表示手段は、前記判断手段が最大表示文字数を超えていると判断した場合、表示されていない文字列を含む全ての文字列を表示することを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記表示手段は、前記最大表示文字数を超えて表示されない文字列と、前記全ての文字列との双方を表示することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記表示手段で表示される機能を示す文字列がユーザの操作で指示されることに応じて、プリンタドライバの画面に表示される機能の文字が置き換えられているかどうかを判別する判別手段と、
前記判別手段がプリンタドライバの画面に表示される機能の文字が置き換えられていると判断した場合、
前記表示手段は、前記受信手段により受信された指示に基づき画面に表示される機能の文字と、プリンタドライバの画面に表示される機能の文字との双方を表示することを特徴とする請求項２記載の情報処理装置。
【請求項７】
プリンタドライバよりプリンタの能力情報を取得する第１の取得工程と、
前記第１の取得工程より取得したプリンタの能力情報に基づき機能に対応した文字列情報を取得する第２の取得工程と、
プリンタドライバの画面に表示される機能の文字を前記第２の取得工程により取得された文字列情報の文字で表示させるための指示を行う指示工程と、
を有することを特徴とする情報処理方法。
【請求項８】
プリンタの能力情報をアプリケーションに出力する出力工程と、
前記出力工程によりアプリケーションに出力されたプリンタの能力情報に基づき取得された機能に対応した文字列情報でプリンタドライバの画面に表示される機能の文字を表示させるためのアプリケーションからの指示を受信する受信工程と、
前記受信工程により受信された指示に基づき画面に表示される機能の文字を表示させる表示工程と、
を有することを特徴とする情報処理方法。
【請求項９】
前記表示工程は、あらかじめ設定される機能を表示する文字列の最大表示文字数を超える文字列を表示しないことを特徴とする請求項８記載の情報処理方法。
【請求項１０】
前記表示工程で表示される機能を示す文字列がユーザの操作で指示されることに応じて、指示されている文字列の文字数が最大表示文字数を超えているかどうかを判断する判断工程を備え、
前記表示工程は、前記判断工程が最大表示文字数を超えていると判断した場合、表示されていない文字列を含む全ての文字列を表示することを特徴とする請求項９記載の情報処理方法。
【請求項１１】
前記表示工程は、前記最大表示文字数を超えて表示されない文字列と、前記全ての文字列との双方を表示することを特徴とする請求項１０記載の情報処理方法。
【請求項１２】
前記表示工程で表示される機能を示す文字列がユーザの操作で指示されることに応じて、プリンタドライバの画面に表示される機能の文字が置き換えられているかどうかを判別する判別工程と、
前記判別工程がプリンタドライバの画面に表示される機能の文字が置き換えられていると判断した場合、
前記表示工程は、前記受信工程により受信された指示に基づき画面に表示される機能の文字と、プリンタドライバの画面に表示される機能の文字との双方を表示することを特徴とする請求項８記載の情報処理方法。
【請求項１３】
請求項７乃至１２のいずれか１項に記載の情報処理方法をコンピュータに実行させるためのプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項１４】
請求項７乃至１２のいずれか１項に記載の情報処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷設定を行うためのユーザインタフェースを制御する情報処理装置の情報処理に関するものである。
【背景技術】
【０００２】
Microsoft社のオペレーティングシステム（OS）であるMicrosoft Windows（登録商標）Vistaにおいて印刷システムが大きく変更された。
【０００３】
従来のGDI（Graphic Device Interface）ベースの印刷システムと置換可能な、XPS（XML Paper Specification）ベースの新しい印刷システムが導入された（下記非特許文献１）。
【０００４】
XPSとは、電子文書フォーマットの一つであり、その中身は、文書構造、描画情報、印刷設定などの情報を保持するXMLとビットマップやフォントなどのバイナリリソースといった様々なパーツから構成される。
【０００５】
XPSを構成する特に重要なパーツを図２８に示す。
【０００６】
図２８は、情報処理装置で処理可能な電子文書フォーマットの構造を説明する図である。
【０００７】
図２８において、１つの電子文書は、ジョブに対応すべくFixedDocumentSequenceパーツを必ず存在し、ドキュメントに対応すべくFixedDocument１〜DocumentNパーツを含み、さらに、各ドキュメントに対応すべくFixedDocument１〜DocumentNパーツは、FixedPage１〜FixedPageNパーツを含む構成となっている例である。
【０００８】
さらに、これら任意のFixedDocumentSequenceパーツ、FixedDocumentパーツ、FixedPageパーツには、図２９に示すように、各々印刷設定を関連付けることができる。
【０００９】
図２９は、図２８に示す電子文書の各パーツに関連づけ可能な印刷設定の一例を示す図である。
【００１０】
図２９に示すように、電子文書の各パーツに関連づけ可能な印刷設定をプリントチケットと呼ぶ。
【００１１】
ここで、FixedDocumentSequenceパーツに関連付けた印刷設定をジョブレベルのプリントチケットと呼ぶ。また、FixedDocumentパーツに関連付けた印刷設定をドキュメントレベルのプリントチケットと呼ぶ。さらに、FixedPageパーツに関連付けた印刷設定をページレベルのプリントチケットと呼ぶ。
【００１２】
なお、ジョブレベルのプリントチケットはジョブの印刷設定を行う。ドキュメントレベルのプリントチケットはドキュメントの印刷設定を行う。ページレベルのプリントチケットはページの印刷設定を行う。
【００１３】
次に、従来の印刷設定形式とプリンタドライバのインタフェースについて説明する。
【００１４】
従来のMicrosoft Windows（登録商標）の印刷システムにおいて、Win32アプリケーションが使用するDEVMODEと呼ばれるメモリブロックが印刷設定データとして重要な役割を担ってきた。
【００１５】
図３０は、従来の印刷システムにおけるメモリブロックを説明する図である。本例は、Win32アプリケーションが使用するDEVMODE全体像を簡略化して示したものである。
【００１６】
DEVMODE構造体の特徴は、仕様が公開されているパブリック部３０１と仕様が公開されないプリンタドライバのみアクセス可能なプライベート部３０２の２つの領域から構成されることにある。
【００１７】
一般に、DEVMODE構造体のパブリック部３０１は、用紙、用紙の向き、解像度などのごく基本の部分を記述するのみで、大部分を占める残りの全てをプライベート部３０２に記述する。
【００１８】
図３１は、図３０に示したDEVMODEパブリック部３０１の一例を示す図である。
【００１９】
図３１に示すように、DEVMODE構造体はMicrosoft社によってC言語のヘッダファイルとして厳密に規定されている。
【００２０】
DEVMODEパブリック部３０１には、スコープの概念が無いことわかる。一方、プリンタドライバを開発する各社が独自に定義するプライベート部３０２は、この構造体の直後に続き、その拡張サイズはdmDriverExtraで指定される。
【００２１】
Microsoft Windows（登録商標）Vista から導入されたプリントチケットは、このようなレガシーな印刷設定フォーマットに替わる新しいフォーマットである。
【００２２】
以上をまとめると、従来形式であるDEVMODEは、（１）〜（８）に示す特徴を備える。
【００２３】
（１）構造体で記述される。大部分を占めるプライベート部の仕様は非オープン。
【００２４】
（２）バイナリなので可読性なし。
【００２５】
（３）プリンタドライバのみアクセス可能。
【００２６】
（４）各印刷設定にスコープの概念が無い。
【００２７】
という次第であるのに対し、新形式であるプリントチケットは、XMLで記述される。
【００２８】
（５）仕様はオープン。
【００２９】
（６）テキストなので可読性あり。
【００３０】
（７）プリンタドライバ以外にアプリケーションなども自由にアクセス可能。
【００３１】
（８）各印刷設定にスコープを指定する。
【００３２】
このようにプリントチケットはDEVMODEに比べ大きく機能拡張されている。
【００３３】
従来印刷システムでは、アプリケーションがデバイスの能力情報を取得するために、DeviceCapabilities APIが用意されていた。
【００３４】
アプリケーションは、DeviceCapabilities APIを用いて、デバイスのサポート用紙サイズ情報や両面印刷の能力情報などを取得し、アプリケーションの印刷画面を構築していた。
【００３５】
DeviceCapabilities API では、Windows（登録商標）システムで定義された特定の機能の情報は取得できるが、それ以外の能力情報が取得できないという課題があった。
【００３６】
これに対して、Windows（登録商標）Vistaでは、DeviceCapabilitiesに代わる仕組みとして、PrintCapabilitiesと呼ばれるXML形式のデバイス能力情報を導入している。
【００３７】
図３２は、情報処理装置にインストールされるプリンタドライバがアプリケーションに返すPrintCapabilitiesの一例を示す図である。
【００３８】
図３２において、１つのPrintCapabilitiesタグ１３０１内に、機能を示すFeatureタグ１３０２が複数存在する。さらにFeatureタグ１３０２内の複数のOptionタグ１３０３が機能の設定項目候補となる。
【００３９】
PrintCapablitiesはデバイスでサポートしている機能とそれらの設定項目のすべてを列挙する。アプリケーションは、このPrintCapabilitiesを元に各機能の設定を選択し、印刷設定としてプリントチケットを作成する。
【００４０】
また、PrintCapabilitiesでは、機能の一覧とその選択肢に加え、DisplayNameプロパティを記述する仕様がある。DisplayNameプロパティには、それぞれの機能と設定項目に対する表示用の文字列を格納する。アプリケーションでは、プリンタドライバから取得したPrintCapabilities内のDisplayNameプロパティを参照し、印刷設定画面のUI文字列として表示することができる。
【００４１】
DeviceCapabilities APIに比べ、PrintCapabilitiesでは、システムの規定の印刷機能以外の能力およびUI表示用の文字列が取得できるので、より高度な印刷設定画面を構成することができる。
【００４２】
図３３は、情報処理装置における印刷制御モジュールの構造を説明するブロック図である。本例は、印刷設定の処理において、アプリケーション層からOS層、そしてドライバ層に至る各階層でDEVMODEやプリントチケットがどのようにやり取りされるかを示した図である。
【００４３】
まず、左上にあるWin32アプリケーション５０４がWin32API５０３を介して、プリンタドライバ５０１とDEVMODEをやり取りする。また、デバイスの能力情報をWin32API５０３ APIを通じてDeviceCapabilitiesを取得している。
【００４４】
一方、右上にあるフローは、プリントチケット対応アプリケーション５０６がプリンタドライバ５０１とプリントチケット、PrintCapabilitiesをやり取りする処理例である。
【００４５】
プリントチケット対応アプリケーション５０６は、プリントチケットAPI５０５を通じて能力情報をPrintCapabilitiesで取得し、印刷設定をプリントチケットにより指定する。
【００４６】
実際にプリントチケット対応アプリケーション５０６からプリンタデバイスに印刷する場合は、プリントチケット対応アプリケーション５０６とプリンタドライバのそれぞれの印刷設定画面を操作して、ユーザは最終的な印刷設定を確定させる。
【００４７】
このとき、プリントチケット対応アプリケーション５０６の印刷設定UIでは、プリンタドライバのUIの内容と同じ機能を選択させる場合がある。
【００４８】
このようなアプリケーションとプリンタドライバの重複する機能をユーザに通知する技術として、下記特許文献１に記載のような技術がある。
【００４９】
特許文献１では、支援ソフトを使ってプリンタドライバとアプリケーションＵＩを同時に表示させることでユーザに重複した機能を通知している。
【特許文献１】特開平１１−１４３６６４号公報
【非特許文献１】http://www.microsoft.com/japan/whdc/device/print/default.mspx
【発明の開示】
【発明が解決しようとする課題】
【００５０】
情報処理装置にインストールされているアプリケーションからプリンタドライバのUIを情報処理装置に接続される表示装置に表示すると、たとえ同じ機能を示すものであっても異なる文字列で機能名が表示されることがある。このため、ユーザにとって操作ミスを誘発する要因となっている。
【００５１】
例えば、複数部数印刷する場合に、１部毎に出力する機能を示す用語が、「部単位印刷」と「ソート」となっている場合である。これは一例であって、その他にも１枚の物理用紙に複数の論理ページを割り付けて印刷する機能を示す用語が、「割り付け印刷」と「１枚あたりのページ数」となっている場合などがある。
【００５２】
その他の問題としては、アプリケーションの表示言語と、プリンタドライバの表示言語が異なる場合にも、対応付けがわかりづらいという課題がある。
【００５３】
上記特許文献１の技術では、同時に表示させて重複した機能がわかるようになってはいるが、特別な支援ソフトを必要があり、ユーザにとって煩わしい作業が発生していた。
【００５４】
先に述べたとおり、オペレーティングシステム、例えばWindows（登録商標）Vistaでは、PrintCapabilitiesを使ってプリンタの能力情報をアプリケーションに通知する際に、各機能のUI表示文字列を提供する仕組みがある。
【００５５】
本機能を使用すると、プリンタドライバの用語でアプリケーションの用語は統一される。
【００５６】
しかしながら、この仕組みをアプリケーションのUIで使用すると、印刷対象となるプリンタのドライバ毎に表示するUI文字列が異なることが考えられる。特に、出力デバイスが複数のプリンタベンダーのものである場合などである。
【００５７】
このようにアプリケーションで出力デバイスを切り替えると、同じ機能でも異なる文言で表示され、一つのアプリケーション内で一貫性がなくなるため、ユーザにとってわかりづらいという課題があった。このように、アプリケーションとプリンタドライバとの関係において、ユーザインタフェースを介してアプリケーションから印刷機能を設定する場合と、プリンタドライバから印刷機能を設定する場合とで、ＵＩ上に表示される文字列が異なる場合が生じる。このため、ユーザが印刷設定項目を明確に認識できないという課題があった。
【００５８】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、プリンタドライバの機能で表示される文字をアプリケーションの機能で表示する文字に合わせて表示できる仕組みを提供することである。
【課題を解決するための手段】
【００５９】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
【００６０】
プリンタドライバよりプリンタの能力情報を取得する第１の取得手段と、前記第１の取得手段より取得したプリンタの能力情報に基づき機能に対応した文字列情報を取得する第２の取得手段と、プリンタドライバの画面に表示される機能の文字を前記第２の取得手段により取得された文字列情報の文字で表示させるための指示を行う指示手段と、
を有することを特徴とする。
【発明の効果】
【００６１】
本発明によれば、プリンタドライバの機能で表示される文字をアプリケーションの機能で表示する文字に合わせて表示できる。
【発明を実施するための最良の形態】
【００６２】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００６３】
＜システム構成の説明＞
〔第１実施形態〕
図１は、本発明の第１実施形態を示す情報処理装置、印刷装置を含むプリンタ制御システムの一例を示すブロック図である。
【００６４】
なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ，ＷＡＮ等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できる。
【００６５】
図１において、３００はホストコンピュータで、双方向インタフェース２１Ａを介してプリンタ１５０と通信可能に接続されている。
【００６６】
ホストコンピュータ３００において、１はＣＰＵで、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行する。なお、ＣＰＵ１は、システムバス４に接続される各デバイスを総括的に制御する。また、外部メモリ１１は、フレキシブルディスクやハードディスク等が含まれる。
【００６７】
また、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等が記憶されている。さらに、ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には上記文書処理の際に使用するフォントデータ等が記憶されている。
【００６８】
また、ＲＯＭ３のデータ用ＲＯＭあるいは外部メモリ１１には上記文書処理等を行う際に使用する各種データが記憶されている。
【００６９】
２はＲＡＭで、ＣＰＵ１の主メモリ、ワークエリア等として機能する。また、ＲＡＭ２は、オプションＲＡＭを装着することで、メモリ容量を増量することができるように構成されている。
【００７０】
５はキーボードＩ／Ｆで、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。６はディスプレイＩ／Ｆで、ディスプレイ１０の表示を制御する。
【００７１】
７は外部メモリＩ／Ｆで、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等を記憶するハードディスク（ＨＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。
【００７２】
８はプリンタＩ／Ｆで、所定の双方向インタフェース２１Ａを介してプリンタ１５０に接続されて、プリンタ１５０との通信制御処理を実行する。
【００７３】
なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ディスプレイ１０上でのＷＹＳＩＷＹＧを可能としている。
【００７４】
また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００７５】
ユーザは、印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行う。
【００７６】
プリンタ１５０において、１２はプリンタＣＰＵ（ＣＰＵ）で、システムバス１５に接続されるデバイスを総括的に制御する。
【００７７】
また、ＣＰＵ１２は、ＲＯＭ１４のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部メモリ２１に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部１７に出力情報としての画像信号を出力する。
【００７８】
また、このＲＯＭ１４のプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１４のフォント用ＲＯＭには出力情報を生成する際に使用するフォントデータ等を記憶し、ＲＯＭ１４のデータ用ＲＯＭにはハードディスク等の外部メモリ２１がないプリンタの場合には、ホストコンピュータ３００上で利用される情報等を記憶している。
【００７９】
ＣＰＵ１２は、入力部１６を介してホストコンピュータ３００との通信処理が可能となっており、プリンタ１５０内の情報等をホストコンピュータ３００に通知可能に構成されている。
【００８０】
１３はＲＡＭで、ＣＰＵ１２の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００８１】
なお、ＲＡＭ１３は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ２１は、外部メモリＩ／Ｆ１８によりアクセスが制御される。
【００８２】
外部メモリ２１は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。１７は印刷部インタフェースで、印刷部１９へ画像データを出力するとともに、印刷部１９の各種センサから検出される情報をＣＰＵ１２に通知する。
【００８３】
また、２０は操作部で、操作のためのスイッチおよびＬＥＤ表示器等が配されている。また、前述した外部メモリ２１は１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
【００８４】
さらに、図示しないＮＶＲＡＭを有し、操作パネル２０からのプリンタモード設定情報を記憶するようにしてもよい。なお、操作パネル２０は、タッチパネル型の液晶ディスプレイを備え、ユーザに機能設定画面を表示可能に構成されている。
【００８５】
図２は、図１に示したホストコンピュータ３００のモジュール構成を説明するブロック図である。本例は、ホストコンピュータ３００における典型的な印刷データ生成処理を行うモジュールに対応する。
【００８６】
図２において、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１に保存されたファイルとして存在する。これらのファイルは、ＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされＣＰＵ１により実行されるプログラムモジュールである。
【００８７】
また、アプリケーション２０１およびプリンタドライバ２０３は、外部メモリ１１のＦＤや不図示のＣＤ−ＲＯＭ、あるいは不図示のネットワークを経由して外部メモリ１１に追加することが可能となっている。
【００８８】
なお、外部メモリ１１は、例えばハードディスク（ＨＤ）等で構成される。
【００８９】
外部メモリ１１に保存されているアプリケーション２０１は、ＲＡＭ２にロードされてＣＰＵ１により実行される。
【００９０】
一方、アプリケーション２０１からプリンタ１５０に対して印刷を行う際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００９１】
グラフィックエンジン２０２は、プリンタ毎に用意されたプリンタドライバ２０３を、外部メモリ１１からＲＡＭ２にロードし、プリンタドライバ２０３は、アプリケーション２１０の出力をプリンタの制御コマンドに変換する。
【００９２】
このようにして、プリンタドライバ２０３により変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経て双方向インタフェース２１Ａ経由でプリンタ１５０へ出力される仕組みとなっている。
【００９３】
図３は、図１に示したホストコンピュータ３００にインストールされるアプリケーションと、各プリンタ用のプリンタドライバとの関係を説明する模式図である。
【００９４】
図３において、アプリケーション３１１は、オペレーティングシステム（ＯＳ）３１２が提供する各種関数（API）をコールして処理を行う。ＯＳ３１２は印刷に関わる処理を選択されているプリンタのプリンタドライバ３１３、３１４が提供する関数（DDI）をコールして処理を行い、アプリケーション３１１から選択されたプリンタへの印刷が可能となっている。なお、図中では、プリンタドライバ３１３とプリンタドライバ３１４の違いを、プリンタドライバＡ、プリンタドライバＢと表記する。
【００９５】
このときプリンタドライバ３１３，３１４とＯＳ３１２、及び、アプリケーション間で、図４に示すようにプリンタの印刷設定データがやり取りされる。
【００９６】
図４は、図１に示したホストコンピュータ３００にインストールされるアプリケーションと、各プリンタ用のプリンタドライバとの関係を詳細に説明する模式図である。
【００９７】
図４において、Win32アプリケーション５０４やプリントチケット対応アプリケーション５０６から印刷設定する場合については図３３にて説明済みなので、ここでは説明を省略する。
【００９８】
プリンタドライバ５０１にプリントチケットの入出力を直接管理するプリントチケット入出力部９０１を設ける。そして、図５に示すようなＯＳの関与しない独自のインタフェースを設ける。
【００９９】
この新インタフェース対応アプリケーション９０２（以下、アプリケーション９０２と呼ぶ）は、プリントチケットAPI５０５を呼び出すことなく、図５に示すプリンタドライバが公開する独自のインタフェースを呼び出す。これにより、アプリケーション９０２から直接プリントチケットをプリントチケット入出力部９０１へ渡すことができる。
【０１００】
図５、図６は、本実施形態を示す情報処理装置にインストールされるプリンタドライバが公開するインタフェース関数の一例を示す図である。また、本例は、プリンタドライバが公開する独自のインタフェースの一部である。
【０１０１】
図５は、プリンタドライバが公開する独自のインタフェース関数をC言語の関数として定義している例である。OSが定義するプリンタドライバインタフェース関数DrvDocumentPropertySheetsとは名前が異なるだけで関数仕様はほぼ同等なので、ここでは説明を省略する。
【０１０２】
なお、DrvDocumentPropertySheets関数の詳細については、例えばhttp://msdn2.microsoft.com/en-us/library/ms801131.aspxにて確認することができる。
【０１０３】
図６は、図５に示した関数で使用される構造体の一部を説明する図である。
【０１０４】
本例は、OSが定義するDOCUMENTPROPERTYHEADER構造体を模した仕様になっている例である。なお、DOCUMENTPROPERTYHEADER構造体の詳細については、例えばhttp://msdn2.microsoft.com/en-us/library/aa506306.aspxにて確認することができる。
【０１０５】
以下、DOCUMENTPROPERTYHEADER構造体とCN_DOCUMENTPROPERTYHEADER構造体の違いのみを説明する。
【０１０６】
DOCUMENTPROPERTYHEADER構造体には、入出力するDEVMODE構造体をメンバとして保持し、さらに出力用DEVMODEのサイズもメンバとして保持しているが、これらはCN_DOCUMENTPROPERTYHEADER構造体には一切存在しない。
【０１０７】
その代わりに、入出力するプリントチケットをメンバ（IStream *pPrintTicket（引数））として保持する。
【０１０８】
以下では、アプリケーションの印刷設定画面の表示フローと、図５、図６に示すインタフェース関数を用いて、プリンタドライバの印刷設定画面の表示フローについて説明する。
【０１０９】
図７Ａは、本実施形態を示す情報処理装置におけるユーザインタフェースの表示制御を説明する図である。本例は、アプリケーションのユーザインタフェースで表示される印刷設定機能を示す文字列に合わせて、プリンタドライバが提供するユーザインタフェースで表示される印刷設定機能文字列を置き換える表示制御に対応する。なお、図４と同一のものには同一の符号を付してある。
【０１１０】
図７Ａにおいて、７０００ＡはＵＩ文字テーブルで、機能名とそれに対応したＵＩの文字列テーブル情報１５０１を保持する。
【０１１１】
ＡＰ−ＵＩはアプリケーションによる印刷設定画面で、アプリケーション９０２が文字列テーブル情報１５０１を参照してディスプレイ１０に表示する。
【０１１２】
７０００ＢはＵＩ文字テーブルで、ドライバ側の機能名とそれに対応したＵＩの文字列テーブル情報１６０１を保持する。
【０１１３】
７０００Ｃは文字列テーブルで、ＵＩ文字テーブル７０００Ｂの文字列ＩＤに対応する文字列データをＩＤ別に保持する。
【０１１４】
ＤＲ−ＵＩはドライバによる印刷設定画面で、通常は、印刷設定画面ＡＰ−ＵＩで表示される機能の文字列と異なるが、後述する置き換え処理実行後のため、印刷設定画面ＤＲ−ＵＩと印刷設定画面ＡＰ−ＵＩとが同じ表示としている状態に対応する。
【０１１５】
以下、アプリケーション９０２側の処理について説明する。なお、図７Ａにおいて、（１）〜（７）はそれぞれ処理を示す。
【０１１６】
まず、処理（１）では、プリンタドライバ５０１から図３２に示すデータ構造を備えるプリンタの能力情報（以下、PrintCapabilitiesと呼ぶ）を取得する。
【０１１７】
次に、処理（２）で、アプリケーション９０２は、プリンタドライバ５０１から取得したPrintCapabilities 内でアプリケーション９０２のUIで表示している機能を判別する。
【０１１８】
次に、処理（３）で、アプリケーション９０２は、ＵＩ文字テーブル７０００Ａ内に保持される文字列テーブル情報１５０１を参照して、処理（２）で判別された機能に対応する文字列情報を取得する。
【０１１９】
これにより、アプリケーション９０２は、図７Ａに示すように、例えばプリンタドライバ５０１から取得したPrintCapabilities 内の機能が「Collate」であれば、「部単位印刷」という文字列を文字列テーブル情報１５０１から取得する。
【０１２０】
次に、処理（４）で、後述する図１０に示す処理に基づき、ドライバUIオープン時に指定する図１１に示すPrintTicket内に、文字列置き換え対象となる機能の記述部分に処理（３）で取得した文字列をReplaceDisplayStringとして指定する。
【０１２１】
以下、指定するPrintTicket の記述例を示す。
【０１２２】
＜feature name="Collate"＞
＜property name="ReplaceDisplayString"＞
＜value＞部単位印刷＜/value＞
＜/property＞
＜option name="ON"/＞
＜/feature＞
次に、プリンタドライバ５０１側の処理について説明する。
【０１２３】
まず、処理（５）で、プリンタドライバ５０１内の文字列テーブル７０００Ｃを参照して、印刷設定画面ＤＲ−ＵＩの機能を表示するための文字列を取得する。この状態では、プリンタドライバ５０１で設定される機能に対する文字列がＵＩ画面に表示されるため、印刷設定画面ＤＲ−ＵＩと印刷設定画面ＡＰ−ＵＩとで機能に関わる文字列が異なる場合がある。
【０１２４】
次に、プリンタドライバ５０１は、ＵＩ文字テーブル７０００Ｂに保持されるドライバ側の機能名とそれに対応したＵＩの文字列テーブル情報１６０１を参照する。
【０１２５】
次に、プリンタドライバ５０１は、アプリケーション９０２から生成されるPrintTicketで指示されるReplaceDisplayStringが指示された機能のUI文字列を、指定された文字列で置き換える。
【０１２６】
そして、処理（７）で、ドライバUIオープン時に、処理（６）で置き換えた文字列を印刷設定画面ＤＲ−ＵＩとして表示することで、印刷設定画面ＤＲ−ＵＩと印刷設定画面ＡＰ−ＵＩとが同じ表示とする。
【０１２７】
なお、プリンタドライバ５０１から取得されるＰrintCapabilitiesに含まれていない機能に対応する文字列については、後述するようにグレイ表示される。
【０１２８】
このように本実施形態では、アプリケーション９０２がプリンタドライバ５０１に提供するUIを表示する際に、アプリケーション９０２は、プリンタドライバ５０１に指示するPrintTicket内で、自身のUIに表示している機能名称を指定する。
【０１２９】
そして、プリンタドライバ５０１は、アプリケーション９０２から取得するPrintTicketで指定されたアプリケーションの機能名称に置き換えてドライバUIを構成する。
【０１３０】
これにより、アプリケーションのＵＩ表示に対する表示言語と、プリンタドライバのＵＩ表示に対する表示言語が異なる場合にも、アプリケーション９０２に対応する機能文字列でドライバ側の機能文字列を統一することができる。
【０１３１】
したがって、ユーザはプリンタドライバが提供するＵＩ画面の機能を示す文字列が、アプリケーション９０２が提供するＵＩ画面の機能を示す文字列とに違和感がなくなり、操作性が向上する。
【０１３２】
図７Ｂは、本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。本例は、図４に示したアプリケーション９０２が自身で管理している印刷設定画面を表示する処理例である。なお、Ｓ１９０１〜Ｓ１９０８は各ステップを示す。また、各ステップは、ＣＰＵ１がＲＡＭ２にアプリケーション９０２をロードして実行することで実現される。
【０１３３】
アプリケーション９０２のプログラムは、ホストコンピュータ３００の外部メモリ１１に記憶されており、ＲＡＭ２に読み出されＣＰＵ１によって実行される。
【０１３４】
まず、Ｓ１９０１で、アプリケーション９０２は、プリンタデバイスの能力情報を取得する。プリンタデバイスのPrintCapabilitiesは、プリントチケットAPI５０５を通じて取得する。ここで、図３２に示すようなXML形式のPrintCapabilities をアプリケーション９０２に返す。なお、アプリケーション９０２がプリンタデバイス５０１のPrintCapabilitiesを取得する処理が第１の取得処理であり、アプリケーション９０２が後述するＳ２００４で機能に対応した文字列を取得する処理が第２の取得処理に対応する。
【０１３５】
図３２の例に示すPrintCapabilitiesには、Collate、Duplex、MediaSize、OutputBinの４つのFeatureが含まれる。また、それぞれのFeatureには、DisplayNameプロパティが指定されている。
【０１３６】
その後、Ｓ１９０２で、アプリケーション９０２は、図８に示すような、機能名とそれに対応したアプリケーション側のＵＩの文字列テーブル情報１５０１を取得する。
【０１３７】
図８に示すように、文字列テーブル情報１５０１には、機能名（Feature名）１５０２に応じたUI文字列１５０３、UIのコントロールID１５０４が格納されている。
【０１３８】
次に、Ｓ１９０３で、アプリケーション９０２は、Ｓ１９０２にて取得した文字列テーブル情報１５０１を参照し、最初の機能の情報を取得する。
【０１３９】
次に、Ｓ１９０４で、アプリケーション９０２は、Ｓ１９０３にて文字列テーブル情報１５０１より取得した機能がＳ１９０１にてプリンタドライバ５０１より取得したPrintCapabilities内に含まれる機能か否かを判別する。ここで、アプリケーション９０２がPrintCapabilities内に存在すると判別された場合には、Ｓ１９０５へ進む。
【０１４０】
そして、Ｓ１９０５で、アプリケーション９０２は、文字列テーブル情報１５０１内に格納されたFeature名（機能名）１５０２に応じた文字列を用いて、アプリケーションUIを、ホストコンピュータ３００のディスプレイ１０に表示する。ここで、アプリケーションUIとは、図７Ａに示した印刷設定画面ＡＰ−ＵＩに対応する。
【０１４１】
次に、Ｓ１９０６で、アプリケーション９０２は、現在取得している機能情報が文字列テーブル情報１５０１の最後の項目であるか否かを判別し、最後であると判断されたら、本処理を終了する。
【０１４２】
一方、Ｓ１９０６で、アプリケーション９０２が最後の項目でないと判断された場合は、Ｓ１９０８に進み、文字列テーブル情報１５０１内の次の項目を取得した後、Ｓ１９０４〜Ｓ１９０６までの処理を繰り返す。
【０１４３】
一方、Ｓ１９０４にて、アプリケーション９０２がプリンタドライバ５０１より取得したPrintCapabilities内に機能が存在しないと判別された場合には、Ｓ１９０７へ進む。そして、Ｓ１９０７で、機能に対応したUIコントロールをグレイ表示し、使用不可の機能として通知して、Ｓ１９０４へ戻る。
【０１４４】
図９は、図１に示したディスプレイ１０に表示されるアプリケーションの印刷設定画面１２０１の一例を示す図である。本画面は、アプリケーション９０２による表示画面例である。
【０１４５】
図９に示す画面では、用紙設定コントロール１２０２、両面設定コントロール１２０３、部単位印刷設定コントロール１２０５がそれぞれ文字列テーブル情報１５０１内のUI文字列で表示されている例である。
【０１４６】
また、PrintCapabilitiesに含まれていない機能に対応するステイプル設定コントロール１２０６がグレイ表示（図９では網掛けで示す）されている。
【０１４７】
アプリケーションの印刷設定画面１２０１には、さらにプリンタを選択するプリンタ選択コントロール１２０４、プリンタドライバ５０１の印刷設定画面を表示するためのプロパティボタン１２０７を備える。さらに、アプリケーションの印刷設定画面１２０１には、印刷設定画面を確定させるOKボタン１２０８、キャンセルボタン１２０９を含んで構成されている。
【０１４８】
次に、アプリケーションの印刷設定画面１２０１のプロパティボタン１２０７が押下され、アプリケーション９０２からプリンタドライバ５０１の印刷設定画面を表示する処理について説明する。
【０１４９】
図１０は、本実施形態を示す情報処理装置における第２のデータ処理手順の一例を示すフローチャートである。本例は、アプリケーション９０２が表示した図９に示す画面において、ユーザの操作により、プロパティボタン１２０７が押下された際に実行される、アプリケーションからプリンタドライバの印刷設定画面を表示させる指示例である。
【０１５０】
なお、Ｓ２００１〜Ｓ２００７は各ステップを示す。また、各ステップは、ＣＰＵ１がＲＡＭ２にアプリケーション９０２をロードして実行することで実現される。
【０１５１】
Ｓ２００１で、アプリケーション９０２は、印刷設定画面１２０１内の印刷設定に関わるコントロールの選択状態を取得する。次に、Ｓ２００２で、アプリケーション９０２は、Ｓ１９０１でプリンタドライバ５０１より取得したPrintCapabilities内のFeature一覧のうち、Ｓ２００１で状態を取得したコントロールに対応したFeatureを参照する。
【０１５２】
次に、Ｓ２００３で、アプリケーション９０２は、参照したFeatureのOptionの一覧の中で、選択状態の設定項目に対応した項目以外のOptionを削除する。その結果、アプリケーション９０２は、図１１に示すように、Featureに特定の設定項目のOptionのみが記述された状態のPrintTicket１４０１を生成する。
【０１５３】
図１１は、本実施形態を示す情報処理装置で生成されるPrintTicketの一例を示す図である。本例は、アプリケーション９０２によりFeature１４０２に特定の設定項目のOption１４０４のみが記述された状態のPrintTicketを生成した例である。
【０１５４】
図１１の例では、"Collate"Featureでは、"On"Optionが、"Duplex"Featureでは、"OFF"Optionがそれぞれ選択されている状態に対応する。
【０１５５】
次に、Ｓ２００４で、アプリケーション９０２は、文字列テーブル情報１５０１を取得する。そして、Ｓ２００５で、アプリケーション９０２は、文字列テーブル情報１５０１を参照して、現在のコントロールに関連する機能の文字列情報を取得し、ReplaceDisplayStringプロパティとして図１１に示すPrintTicket１４０１に指定する。
【０１５６】
図１１の例では、"Collate"FeatureのReplaceDisplayStringプロパティ１４０３として、アプリケーションの文字列テーブル情報１５０１内のCollateに対応した文字列、"部単位印刷"が記述されている。
【０１５７】
次に、Ｓ２００６で、アプリケーション９０２は、Ｓ２００１で参照した印刷設定のコントロールが最後の設定項目か否かを判別する。ここで、アプリケーション９０２が、最後であると判定した場合、次のＳ２００７へ進む。そして、Ｓ２００７で、アプリケーション９０２は、プリンタドライバの印刷設定画面を表示する指示に従い、生成した図６に示すPrintTicketを指定してプリンタドライバ５０１の印刷設定画面表示を指示して、本処理を終了する。
【０１５８】
一方、Ｓ２００６で、最後の設定項目でないとアプリケーション９０２が判定した場合には、Ｓ２００１に戻り、次の印刷設定のコントロールの状態を取得して、全ての印刷設定コントロールが終了するまで、処理を繰り返す。
【０１５９】
最終的には、図６に示すAPIの引数pPrintTicketには、アプリケーションの印刷設定画面の状態が反映される。さらに、UI文字列がReplaceDisplayStringプロパティに記述された、図１１に示すようなPrintTicketが指定される。
【０１６０】
図１２は、本実施形態を示す情報処理装置における第３のデータ処理手順の一例を示すフローチャートである。
【０１６１】
本例は、アプリケーション９０２が表示した図９に示す画面において、ユーザの操作により、プロパティボタン１２０７が押下される後のプリンタドライバ側の印刷設定画面を表示する処理例である。
【０１６２】
より具体的にいえば、本処理は、図５に示したCN_DrvDocumentPropertySheets関数の呼び出しにおいて、プリンタドライバ５０１に対しユーザインタフェースの表示が指示された場合の処理フローの一部に対応する。なお、ユーザインタフェースの表示の指示は、図６に示したCN_DOCUMENTPROPERTYHEADER構造体のfModeメンバにDM_IN_PROMPTが設定された場合に相当する。
【０１６３】
また、Ｓ２１０１〜Ｓ２１１１は各ステップを示す。また、各ステップは、ＣＰＵ１がＲＡＭ２にサブモジュール５０２をロードして実行することで実現される。なお、プリンタドライバ５０１のプログラムはコンピュータの外部メモリ１１に記憶されており、ＲＡＭ２に読み出されＣＰＵ１によって実行される。
【０１６４】
Ｓ２１０１で、サブモジュール５０２は、図１０に示したアプリケーション９０２によるＳ２００７における印刷設定画面の表示指示に応じた、プリンタドライバ側のコマンドを受信する。
【０１６５】
次に、Ｓ２１０２で、サブモジュール５０２は、図６に示したＡＰＩのpPrintTicketに指定されているPrintTicketを取得する。
【０１６６】
次に、Ｓ２１０３で、サブモジュール５０２は、図１３に示すようなサブモジュール５０２内で保持している文字列テーブル情報１６０１を取得し、メモリ中に展開する。
【０１６７】
図１３は、図４に示したサブモジュール５０２内で保持される文字列テーブル情報１６０１の一例を示す図である。
【０１６８】
図１３において、文字列テーブル情報１６０１には、機能名１６０２とその機能に対応したＵＩのコントロールＩＤ１６０３、ＵＩ文字列１６０４が関連付けられて格納されている。
【０１６９】
Ｓ２１０４では、サブモジュール５０２がＳ２１０２でアプリケーション９０２より取得したPrintTicket内の最初のFeatureを参照し、Ｓ２１０５で、サブモジュール５０２は、参照したFeature内にReplaceDisplayStringプロパティが存在するか否かを判別する。
【０１７０】
ここで、サブモジュール５０２がＳ２１０５でReplaceDisplayStringがあると判断した場合には、Ｓ２１０６で、サブモジュール５０２がＳ２１０３で取得した文字列テーブル情報１６０１内で現在参照しているFeatureと一致する機能名を検索する。
【０１７１】
次に、Ｓ２１０７では、サブモジュール５０２がＳ２１０６で一致する機能名が存在する否かを判断する。ここでサブモジュール５０２がＳ２１０６で一致する機能名が存在すると判断した場合、Ｓ２１０８に進む。そして、Ｓ２１０８で、サブモジュール５０２は、一致する機能名のＵＩ文字列１６０３を、指定されたPrintTicket内のReplaceDisplayString文字列で置き換える。これにより、図１３に示すＵＩ文字列「ソート」は、アプリケーション９０２が生成したPrintTicketで指定される文字列「部単位印刷」に置き換えられる。
【０１７２】
一方、Ｓ２１０７で、サブモジュール５０２が一致した機能名が検索できないと判断した場合は、何もせずにＳ２１０９に進む。そして、Ｓ２１０９では、サブモジュール５０２が現在参照しているFeatureがPrintTicket内の最後のFeatureであるか否かを判別する。ここで、サブモジュール５０２が最後のFeatureであると判定された場合には、Ｓ２１１１で、ＵＩ文字列が置き換えられた、図１４に示すような文字列テーブル情報２２０１のＵＩ文字列２２０４に従って、プリンタドライバのＵＩ画面をディスプレイ１０上に表示する。
【０１７３】
図１４は、図４に示したサブモジュール５０２が保持する文字列テーブル情報２２０１の一例を示す図である。
【０１７４】
この際、文字列テーブル情報２２０１内の各機能の機能名２２０２に関連付けられたコントロールＩＤ２２０３の文字列は、アプリケーション９０２から取得するPrintTicketで指定されたＵＩ文字列２２０４に置き換えられて保持する。
【０１７５】
図１４に示す文字列テーブル情報２２０１では、CollateのＵＩ文字列（ソート）が、"部単位印刷"に、MediaSizeのＵＩ文字列（用紙名称）が"用紙"に、それぞれアプリケーションが指定した文字列に置き換えられている状態を示す。
【０１７６】
この結果、図１５に示すようなアプリケーションの文字列に置き換えられたプリンタドライバの印刷設定画面１８００がディスプレイ１０に表示される。
【０１７７】
図１５、図１６は、本実施形態を示す情報処理装置で表示可能なユーザインタフェースの一例を示す図である。なお、図１５は、サブモジュール５０２による文字列の置き換えが実行された印刷設定画面に対応し、図１６は、サブモジュール５０２による文字列の置き換えが実行さていない通常の印刷設定画面に対応する。
【０１７８】
図１６では、通常のプリンタドライバの印刷設定画面を示しているが、用紙名称１７０１と、ソート１７０２のＵＩ文字列が、図１５に示す設定画面では、それぞれ"用紙"、"部単位印刷"とアプリケーションの文字列に置き換えられていることを示している。
【０１７９】
以上の手順により、アプリケーションのUI文字列で、プリンタドライバのUI文字列の置換えが実現可能となる。
【０１８０】
〔第２実施形態〕
以下では、アプリケーションの印刷設定画面の表示フローと、図５、図６に示したインタフェース関数を用いて、プリンタドライバの印刷設定画面を表示する処理について図７Ｂに示すフローチャートを参照して説明する。
【０１８１】
本実施形態では、アプリケーションのUI文字列で、プリンタドライバのUI文字列の置換えた際に、文字列表示がＵＩ表示可能な文字数を超えて表示すべき文字列の一部が切る状態となる場合でも、正しく置き換えた機能を示す文字列を表示可能とする例である。
【０１８２】
図７Ｂは、図４に示したアプリケーション９０２が自身で管理している印刷設定画面を表示する処理フローである。
【０１８３】
アプリケーション９０２のプログラムは、コンピュータの外部メモリ１１に記憶されており、ＲＡＭ２に読み出されＣＰＵ１によって実行される。
【０１８４】
アプリケーション９０２は、Ｓ１９０１で、プリンタデバイスの能力情報を取得するために、プリントチケットAPI５０５を通じて、プリンタドライバ５０１よりPrintCapabilitiesを取得する。
【０１８５】
ここで、アプリケーション９０２は、図１３に示すようなXML形式のPrintCapabilities をプリンタドライバ５０１より取得する。図１３の例に示すPrintCapabilitiesの例では、Collate、Duplex、MediaSize、OutputBinの４つのFeatureが含まれる場合である。また、それぞれのFeatureには、DisplayNameプロパティが指定されている。
【０１８６】
その後、Ｓ１９０２にて、アプリケーション９０２は、図８に示すような、機能名とそれに対応したＵＩの文字列テーブル情報１５０１を取得する。
【０１８７】
ここで、文字列テーブル情報１５０１には、機能名１５０２に応じたUI文字列１５０３、UIのコントロールID１５０４が格納されている。
【０１８８】
Ｓ１９０３では、アプリケーション９０２は、Ｓ１９０２にて取得した文字列テーブル情報１５０１を参照し、最初の機能の情報を取得する。次に、Ｓ１９０４で、アプリケーション９０２は、Ｓ１９０３で取得した機能がＳ１９０１でプリンタドライバ５０１より取得したPrintCapabilities内に含まれる機能か否かを判別する。
【０１８９】
ここで、アプリケーション９０２がＳ１９０１で取得した機能がPrintCapabilities内に存在すると判別した場合には、Ｓ１９０５へ進む。そして、Ｓ１９０５で、アプリケーション９０２は、文字列テーブル情報１５０１内に格納されたFeature名に応じた文字列を用いて、アプリケーションUIをディスプレイ１０に表示する。
【０１９０】
次に、Ｓ１９０６で、アプリケーション９０２は、現在取得している機能情報が文字列テーブル情報１５０１の最後の項目であるか否かを判別し、最後であると判断したら、本処理を終了する。
【０１９１】
一方、Ｓ１９０５で、アプリケーション９０２が現在取得している機能情報が最後の項目でないと判断された場合は、Ｓ１９０８に進む。そして、Ｓ１９０８で、アプリケーション９０２は、文字列テーブル情報１５０１内の次の項目を取得した後、Ｓ１９０４〜Ｓ１９０６までの処理を繰り返す。
【０１９２】
一方、Ｓ１９０４にて、アプリケーション９０２がＳ１９０２で取得した機能がＳ１９０１でプリンタドライバ５０１よりPrintCapabilities内に存在しないと判別された場合には、その機能に対応したUIコントロールをグレイ表示し、使用不可の機能として通知する。
【０１９３】
図９は、図７に示したのフローにより構成されたアプリケーションの印刷設定画面１２０１の一例を示す。
【０１９４】
図９において、用紙設定コントロール１２０２、両面設定コントロール１２０３、部単位印刷設定コントロール１２０５がそれぞれ文字列テーブル情報１５０１内のUI文字列で表示されている。
【０１９５】
また、プリンタドライバ５０１より取得するPrintCapabilitiesに含まれていない機能、例えばステイプル機能に対応するステイプル設定コントロール１２０６はグレイ表示されている。ここでは、ステイプル機能がグレイ表示（図中では、網掛けで示す）されている例を示す。
【０１９６】
アプリケーションの印刷設定画面１２０１には、さらにプリンタを選択するプリンタ選択コントロール１２０４、プリンタドライバの印刷設定画面を表示するためのプロパティボタン１２０７を備える。さらに、アプリケーションの印刷設定画面１２０１には、印刷設定画面を確定させるOKボタン１２０８、キャンセルボタン１２０９を備える。
【０１９７】
次に、アプリケーションの印刷設定画面１２０１のプロパティボタン１２０７が押下され、アプリケーション９０２からプリンタドライバ５０１に対して印刷設定画面を表示させる指示について説明する。
【０１９８】
図１０は、図９に示したアプリケーションのプロパティボタン１２０７が押下された際に、アプリケーション９０２からプリンタドライバ５０１の印刷設定画面を表示させる指示を行う処理フローである。
【０１９９】
なお、本フローに係わるアプリケーション９０２のプログラムはコンピュータの外部メモリ１１に記憶されており、ＲＡＭ２に読み出されＣＰＵ１によって実行される。
【０２００】
Ｓ２００１で、アプリケーション９０２は、図９に示す印刷設定画面１２０１内の印刷設定に関わるコントロールの選択状態を取得する。次に、Ｓ２００２で、アプリケーション９０２は、図７に示したＳ１９０１でプリンタドライバ５０１より取得したPrintCapabilities内のFeature一覧のうち、Ｓ２００１で印刷設定画面１２０１の状態から取得したコントロールに対応したFeatureを参照する。
【０２０１】
そして、Ｓ２００３では、アプリケーション９０２は、参照したFeatureのOptionの一覧の中で、選択状態の設定項目に対応した項目以外のOptionを削除する。
【０２０２】
その結果、図１１に示すように、Featureに特定の設定項目のOptionのみが記述された状態のPrintTicket１４０１が生成される。図１１の例では、"Collate"Featureでは、"On"Optionが、"Duplex"Featureでは、"OFF"Optionがそれぞれ選択されている状態を示す。
【０２０３】
次に、Ｓ２００４で、アプリケーション９０２は、文字列テーブル情報１５０１を取得する。そして、Ｓ２００５で、アプリケーション９０２は、文字列テーブル情報１５０１内を参照して、現在のコントロールに関連する機能の文字列情報を取得し、ReplaceDisplayStringプロパティとしてPrintTicket１４０１に指定する。
【０２０４】
図１１に示す例では、"Collate"FeatureのReplaceDisplayStringプロパティとして、アプリケーションの文字列テーブル情報１５０１内のCollateに対応した文字列、"部単位印刷"が記述されている。
【０２０５】
次に、Ｓ２００６で、アプリケーション９０２は、Ｓ２００１で参照した印刷設定のコントロールが最後の設定項目か否かを判別する。Ｓ２００６で、アプリケーション９０２が最後であると判定された場合、Ｓ２００７へ進む。そして、Ｓ２００７で、アプリケーション９０２は、プリンタドライバ５０１の印刷設定画面を表示させる指示のためのAPI５０５に、作成したPrintTicketを指定してプリンタドライバ５０５の印刷設定画面の表示を指示する。
【０２０６】
一方、Ｓ２００７で、アプリケーション９０２が最後の設定項目でないと判定された場合には、Ｓ２００１に戻り、次の印刷設定のコントロールの状態を取得して、全ての印刷設定コントロールが終了するまで、処理を繰り返す。
【０２０７】
そして、最終的には図６に示すAPIの引数pPrintTicketには、アプリケーションの印刷設定画面の状態が反映され、UI文字列がReplaceDisplayStringプロパティに記述された、図１１に示すようなPrintTicketが指定される。
【０２０８】
次に、図１２を用いて、ユーザの操作に従いプロパティボタン１２０７が押下された後のプリンタドライバ５０１側の印刷設定画面を表示する処理について説明する。
【０２０９】
本フローに係わるプリンタドライバを構成する新ドライバサブモジュール（以下、サブモジュールと呼ぶ）５０２のプログラムはコンピュータの外部メモリ１１に記憶されており、ＲＡＭ２に読み出されＣＰＵ１によって実行される。
【０２１０】
図５に示したCN_DrvDocumentPropertySheets関数の呼び出しにおいて、プリンタドライバ５０１に対しユーザインタフェースの表示が指示された場合の処理フローの一部である。
【０２１１】
ユーザインタフェースの表示の指示は、図６に示したCN_DOCUMENTPROPERTYHEADER構造体のfModeメンバにDM_IN_PROMPTが設定された場合に相当する。
【０２１２】
Ｓ２１０１で、サブモジュール５０２は、図１０に示したアプリケーション９０２によるＳ２００７の印刷設定画面の表示指示に応じたコマンドを受信する。次に、Ｓ２１０２では、サブモジュール５０２は、図６に示すＡＰＩのpPrintTicketに指定されているPrintTicket取得する。
【０２１３】
次に、Ｓ２１０３で、サブモジュール５０２は、図１７に示すように、プリンタドライバ５０１内で保持している文字列テーブル情報２５０１を取得し、メモリ中に展開する。
【０２１４】
図１７は、図５に示したプリンタドライバ５０１が保持する文字列テーブル情報の一例を示す図である。
【０２１５】
図１７に示すように、文字列テーブル情報には、機能名２５０２とその機能に対応したＵＩのコントロールＩＤ２５０３、ＵＩ文字列２５０４、最大ＵＩ表示文字数２５０５が関連付けられて格納されている。
【０２１６】
Ｓ２１０４では、サブモジュール５０２は、Ｓ２１０２で取得したPrintTicket内の最初のFeatureを参照し、Ｓ２１０５で参照したFeature内にReplaceDisplayStringプロパティが存在するか否かを判別する。
【０２１７】
ここで、サブモジュール５０２がＳ２１０５で、ReplaceDisplayStringがあると判断された場合には、Ｓ２１０６へ進む。そして、Ｓ２１０６で、サブモジュール５０２は、Ｓ２１０３で取得した文字列テーブル情報１６０１内で現在参照しているFeatureと一致する機能名を検索する。
【０２１８】
次に、Ｓ２１０７で、サブモジュール５０２がＳ２１０６で一致する機能名が存在するかどうかを判断する。ここで、サブモジュール５０２が一致する機能名が存在すると判断した場合、Ｓ２１０８に進む。
【０２１９】
そして、Ｓ２１０８で、サブモジュール５０２が一致する機能名のＵＩ文字列２５０３を、指定されたPrintTicket内のReplaceDisplayString文字列で置き換える。
【０２２０】
一方、Ｓ２１０７で、サブモジュール５０２が一致した機能名が検索できないと判断した場合は、何もせずにＳ２１０９に進む。
【０２２１】
そして、Ｓ２１０９では、サブモジュール５０２は現在参照しているFeatureがPrintTicket内の最後のFeatureであるか否かを判別する。ここで、サブモジュール５０２が最後のFeatureであると判別した場合には、Ｓ２１１１へ進む。そして、Ｓ２１１１で、ＵＩ文字列が置き換えられた、例えば図１４に示すような文字列テーブル情報２２０１のＵＩ文字列２２０４に従って、プリンタドライバのＵＩ画面をディスプレイ１０に表示する。
【０２２２】
この際、サブモジュール５０２は、図１７に示す文字列テーブル情報２５０１を、図１８に示す文字列テーブル情報２６０１内の各機能に関連付けられたコントロールＩＤの文字列をアプリケーション９０２から取得したPrintTicketに従って置き換えて保持する。
【０２２３】
図１８は、図５に示したプリンタドライバ５０１が保持する文字列テーブル情報の一例を示す図である。
【０２２４】
図１８に示す文字列テーブル情報２６０１では、機能名２６０２がCollateのＵＩ文字列（ソート）２６０４が、"部単位印刷"に、MediaSizeのＵＩ文字列（用紙名称）が"用紙"に、それぞれアプリケーションが指定した文字列に置き換えられている。なお、２６０３はコントロールＩＤを示す。
【０２２５】
この結果、図１８に示す文字列テーブル情報２６０１に従って図１９に示すようなアプリケーション９０２の文字列に置き換えられたプリンタドライバ５０１の印刷設定画面がディスプレイ１０に表示される。
【０２２６】
ここでは、プリンタドライバ５０１の印刷設定画面で設定された最大表示文字数２６０５を超える文字は表示されない。つまり、部単位印刷は、５文字から構成されるため、最大表示文字数「４」に従い、４文字分となる「部単位印」のみが表示された状態となる。したがって、ユーザは、一見してその項目名を正確に認識できない場合がある。
【０２２７】
そこで、以下、プリンタドライバ５０１が図２０に示す表示処理を行うことで、置き換えられた文字列すべてを、図２１に示すように表示された項目名の近傍に表示する。これにより、置き換えられた全ての文字列と、表示されなかった文字列とを対向して表示することが可能となる。
【０２２８】
図２０は、本実施形態を示す情報処理装置における第４のデータ処理手順の一例を示すフローチャートである。本例は、プリンタドライバの印刷設定画面上のコントロールにマウスオーバーした際の表示処理例である。なお、Ｓ２４０１〜Ｓ２４０６は各ステップを示す。また、各ステップは、ＣＰＵ１がＲＡＭ２にプリンタドライバ５０１をロードして実行することで実現される。
【０２２９】
まず、Ｓ２４０１で、プリンタドライバ５０１がマウスオーバイベントが発生したことを検出したら、Ｓ２４０２で、プリンタドライバ５０１は、イベントが発生したＵＩのコントロール情報を取得する。
【０２３０】
次に、Ｓ２４０３では、プリンタドライバ５０１は、Ｓ２４０２で取得したコントロール情報のコントロールＩＤが図１８に示す文字列テーブル情報２６０１内に存在するか否かを判別する。
【０２３１】
ここで、プリンタドライバ５０１が文字列テーブル情報にコントロールＩＤが存在すると判別した場合は、プリンタドライバ５０１は、Ｓ２４０４で文字列テーブル情報２６０１の最大表示文字数２６０５（内容「４」）を取得する。
【０２３２】
一方、Ｓ２４０３で、プリンタドライバ５０１が文字列テーブル情報にコントロールＩＤが存在しないと判別した場合は、何もせずに処理を終了する。
【０２３３】
そして、Ｓ２４０５では、プリンタドライバ５０１は、該コントロールに対応した最大表示文字数２６０５とＵＩ文字列２６０４のＵＩ表示文字数を比較する。
【０２３４】
そして、プリンタドライバ５０１は、最大表示文字数２６０５よりＵＩ文字列２６０４のＵＩ表示文字数の方が大きいかどうかを判断する。ここで、プリンタドライバ５０１が最大表示文字数２６０５よりＵＩ文字列２６０４のＵＩ表示文字数の方が大きいと判断された場合には、Ｓ２４０６へ進む。
【０２３５】
具体的には、プリンタドライバ５０１は、ＵＩ文字列である「部単位印刷」の場合、５文字から構成されるため、最大文字数「４」を超えると判断する。
【０２３６】
そして、Ｓ２６０４で、プリンタドライバ５０１は、ツールチップを用いてすべてのＵＩ文字列２６０４の文字列すべてを、置き換えられた文字列「部単位印」の近傍に、総文字数が５文字の「部単位印刷」をディスプレイ１０にポップアップするように表示制御して、本処理を終了する。なお、本例は、言語が日本語の場合を示すが、仕向け地に応じて、表示する文字列の言語やその文字数や表示態様は本実施形態に限定されることはない。
【０２３７】
図２１は、図１に示したディスプレイ１０に表示されるユーザインタフェースの一例を示す図である。
【０２３８】
本例は、ツールチップにより、プリンタドライバ５０１で置き換えられたＵＩ文字列が表示された印刷設定画面例である。
【０２３９】
図２１に示すように、本実施形態では、４文字目で切れている「部単位印刷」の表示がツールチップで全体が表示される。
【０２４０】
一方、Ｓ２４０５にて、プリンタドライバ５０１が最大表示文字数２６０５よりＵＩ文字列２６０４が小さいと判断した場合には、何もせずに本処理を終了する。
【０２４１】
以上の手順により、アプリケーションのUI文字列で、プリンタドライバのUI文字列の置換えた際に、上述した文字列表示が切れる状態となる場合においても、置き換えた文字列を全て表示することができる。これにより、ユーザは、文字列を指示する操作を行うと、その機能文字列の内容を確認できる。
【０２４２】
〔第３実施形態〕
以下では、アプリケーションの印刷設定画面の表示フローと、図５、図６に示したインタフェース関数を用いて、プリンタドライバの印刷設定画面の表示フローについて説明する。
【０２４３】
本実施形態は、アプリケーション９０２のUI文字列で、プリンタドライバ５０１のUI文字列の置換えた際に、プリンタドライバの元のＵＩ文字列と置き換えた文字列とを同時に表示させる例である。
【０２４４】
図７に、アプリケーション９０２が自身で管理している印刷設定画面を表示する際のフローを示す。
【０２４５】
なお、アプリケーション９０２のプログラムはコンピュータの外部メモリ１１に記憶されており、ＲＡＭ２に読み出されＣＰＵ１によって実行される。
【０２４６】
アプリケーション９０２は、Ｓ１９０１で、プリンタデバイスの能力情報を取得するために、プリントチケットAPI５０５を通じて、PrintCapabilitiesを取得する。
【０２４７】
具体的には、アプリケーション９０２は、図３２に示すようなXML形式のPrintCapabilities をプリンタドライバ５０１より取得する。図３２の例に示すPrintCapabilitiesには、Collate、Duplex、MediaSize、OutputBinの４つのFeatureが含まれる。また、それぞれのFeatureには、DisplayNameプロパティが指定されている例である。
【０２４８】
その後、アプリケーション９０２は、図７に示したＳ１９０２にて、図８に示すような、機能名とそれに対応したＵＩの文字列テーブル情報１５０１を取得する。
【０２４９】
図８に示すように、文字列テーブル情報１５０１には、機能名１５０２に応じたUI文字列１５０３、UIのコントロールID１５０４が格納されている。
【０２５０】
そして、Ｓ１９０３で、アプリケーション９０２は、Ｓ１９０２にて取得した文字列テーブル情報１５０１を参照し、最初の機能の情報を取得する。
【０２５１】
次に、Ｓ１９０４で、アプリケーション９０２は、Ｓ１９０３で文字列テーブル情報１５０１から取得した機能がＳ１９０１でプリンタドライバ５０１より取得したPrintCapabilities内に含まれる機能か否かを判別する。
【０２５２】
ここで、アプリケーション９０２がＳ１９０３で取得した機能がプリンタドライバ５０１より取得したPrintCapabilities内に存在すると判別された場合には、Ｓ１９０５へ進む。そして、Ｓ１９０５で、アプリケーション９０２は、文字列テーブル情報１５０１内に格納されたFeature名に応じた文字列を用いて、アプリケーションUIをディスプレイ１０に表示する。
【０２５３】
次に、Ｓ１９０６で、アプリケーション９０２は、現在取得している機能情報が文字列テーブル情報１５０１の最後の項目であるか否かを判別し、最後であると判断されたら、本処理を終了する。
【０２５４】
一方、Ｓ１９０５で、アプリケーション９０２が最後の項目でないと判別した場合は、Ｓ１９０８に進み、文字列テーブル情報１５０１内の次の項目を取得した後、Ｓ１９０４〜Ｓ１９０６までの処理を繰り返す。
【０２５５】
一方、Ｓ１９０４にて、アプリケーション９０２がＳ１９０３で取得した機能がＳ１９０１でプリンタドライバ５０１より取得したPrintCapabilities内に存在しないと判別された場合には、Ｓ１９０７へ進む。そして、Ｓ１９０７で、アプリケーション９０２は、機能に対応したＵＩコントロールをＵＩ画面上でグレイ表示（図中では、網掛けで示す）し、使用不可の機能として、ユーザに認知させる。
【０２５６】
図９は、図７に示した表示制御処理により構成されたアプリケーションの印刷設定画面１２０１である。
【０２５７】
図９において、用紙設定コントロール１２０２、両面設定コントロール１２０３、部単位印刷設定コントロール１２０５がそれぞれ文字列テーブル情報１５０１内のUI文字列で表示されている状態に対応する。また、プリンタドライバ５０１より取得したPrintCapabilitiesに含まれていないステイプル設定コントロール１２０６がグレイ表示されている状態に対応する。
【０２５８】
アプリケーションの印刷設定画面１２０１には、さらにプリンタを選択するプリンタ選択コントロール１２０４、プリンタドライバの印刷設定画面を表示するためのプロパティボタン１２０７を含んで構成されている。さらに、アプリケーションの印刷設定画面１２０１には、印刷設定画面を確定させるOKボタン１２０８、キャンセルボタン１２０９を含んで構成されている。
【０２５９】
次に、アプリケーションの印刷設定画面１２０１のプロパティボタン１２０７が押下され、アプリケーション９０２からプリンタドライバの印刷設定画面の表示を指示する処理について説明する。
【０２６０】
図１０は、アプリケーション９０２のプロパティボタン１２０７が押下された際に、アプリケーション９０２からプリンタドライバ５０１の印刷設定画面を表示させる指示を行う処理フローである。
【０２６１】
なお、本フローに係わるアプリケーション９０２のプログラムは、コンピュータの外部メモリ１１に記憶されており、ＲＡＭ２に読み出されＣＰＵ１によって実行される。
【０２６２】
Ｓ２００１で、アプリケーション９０２は、印刷設定画面１２０１内の印刷設定に関わるコントロールの選択状態を取得する。次に、Ｓ２００２で、アプリケーション９０２は、図７に示したＳ１９０１において、プリンタドライバ５０１より取得したPrintCapabilities内のFeature一覧のうち、Ｓ２００１で状態を取得したコントロールに対応したFeatureを参照する。
【０２６３】
次に、Ｓ２００３では、アプリケーション９０２は、参照したFeatureのOptionの一覧の中で、選択状態の設定項目に対応した項目以外のOptionを削除する。
【０２６４】
その結果、アプリケーション９０２は、図１１に示すように、Featureに特定の設定項目のOptionのみが記述された状態のPrintTicket１４０１を生成する。
【０２６５】
図１１に示す例では、"Collate"Featureでは、"On"Optionが、"Duplex"Featureでは、"OFF"Optionがそれぞれ選択されている例である。
【０２６６】
次に、Ｓ２００４で、アプリケーション９０２は、文字列テーブル情報１５０１を取得する。そして、Ｓ２００５で、アプリケーション９０２は、文字列テーブル情報１５０１内を参照して、現在のコントロールに関連する機能の文字列情報を取得し、ReplaceDisplayStringプロパティとしてPrintTicket１４０１に指定する。
【０２６７】
図１１の例では、"Collate"FeatureのReplaceDisplayStringプロパティとして、アプリケーションの文字列テーブル情報１５０１内のCollateに対応した文字列、"部単位印刷"が記述されている。
【０２６８】
次に、Ｓ２００６で、アプリケーション９０２は、Ｓ２００１で参照した印刷設定のコントロールが最後の設定項目か否かを判別する。ここで、アプリケーション９０２がＳ２００６で最後であると判定した場合、Ｓ２００７へ進む。そして、Ｓ２００７で、アプリケーション９０２は、図６に示すプリンタドライバの印刷設定画面を表示させる指示のためのAPIに、生成したPrintTicketを指定してプリンタドライバ５０１に印刷設定画面を表示させる指示を行う。
【０２６９】
一方、Ｓ２００７で、アプリケーション９０２が最後の設定項目でないと判定した場合には、Ｓ２００１に戻り、次の印刷設定のコントロールの状態を取得して、全ての印刷設定コントロールが終了するまで、処理を繰り返す。
【０２７０】
最終的には図６に示すAPIの引数pPrintTicketには、アプリケーションの印刷設定画面の状態が反映され、UI文字列がReplaceDisplayStringプロパティに記述された、図１１に示すようなPrintTicketが指定される。
【０２７１】
図２２は、本実施形態を示す情報処理装置における第５のデータ処理手順の一例を示すフローチャートである。本例は、図９に示したプロパティボタン１２０７が押下された後のプリンタドライバ５０１側の印刷設定画面を表示する処理例である。
【０２７２】
より具体的には、図５に示すCN_DrvDocumentPropertySheets関数の呼び出しにおいて、プリンタドライバに対しユーザインタフェースの表示が指示された場合の処理フローの一部である。
【０２７３】
また、ユーザインタフェースの表示の指示は、図６に示したCN_DOCUMENTPROPERTYHEADER構造体のfModeメンバにDM_IN_PROMPTが設定された場合に相当する。
【０２７４】
なお、Ｓ３２０１〜Ｓ３２１２は各ステップを示す。また、各ステップに係わるサブモジュール５０２のプログラムはコンピュータの外部メモリ１１に記憶されており、ＲＡＭ２に読み出されＣＰＵ１によって実行される。
【０２７５】
Ｓ３２０１で、サブモジュール５０２は、Ｓ２００７の印刷設定画面を表示する指示に応じた、プリンタドライバ側のコマンドを受信する。Ｓ３２０２では、サブモジュール５０２は、図６に示すＡＰＩのpPrintTicketに指定されているPrintTicketをアプリケーション９０２より取得する。
【０２７６】
次に、Ｓ３２０３で、サブモジュール５０２は、図２３に示すようなプリンタドライバ内で保持している文字列テーブル情報２９０１を取得し、ＲＡＭ２上中に展開する。
【０２７７】
図２３，図２４は、本実施形態を示す情報処理装置のプリンタドライバが保持する文字列テーブル情報の一例を示す図である。
【０２７８】
図２３に示す文字列テーブル情報２９０１には、機能名２９０２とその機能に対応したＵＩのコントロールＩＤ２９０３、ＵＩ文字列２９０４、置換えフラグ２９０５、オリジナル文字列２９０６が関連付けられて格納されている。
【０２７９】
次に、Ｓ３２０４では、サブモジュール５０２は、Ｓ３２０２でアプリケーション９０２より取得したPrintTicket内の最初のFeatureを参照する。そして、Ｓ３２０５で、サブモジュール５０２は、参照したFeature内にReplaceDisplayStringプロパティが存在するか否かを判別する。
【０２８０】
ここで、サブモジュール５０２が」ReplaceDisplayStringがあると判断した場合には、Ｓ３２０６へ進む。そして、Ｓ３２０６で、サブモジュール５０２は、Ｓ３２０３で取得した文字列テーブル情報１６０１内で現在参照しているFeatureと一致する機能名を検索する。
【０２８１】
そして、Ｓ３２０７で、サブモジュール５０２は、Ｓ３２０６による検索で、一致する機能名が存在するかどうかを判断する。ここで、サブモジュール５０２が一致する機能名が存在すると判断した場合、Ｓ３２０８に進む。そして、Ｓ３２０８で、サブモジュール５０２は、一致する機能名のＵＩ文字列２９０３を、指定されたPrintTicket内のReplaceDisplayString文字列で置き換える。
【０２８２】
一方、Ｓ３２０７で、サブモジュール５０２が一致した機能名が検索できないと判断した場合は、何もせずにＳ３２１０に進む。
【０２８３】
次に、Ｓ３２０９で、サブモジュール５０２は、ＵＩ文字列を置き換えたことを示す図２３に示す置換えフラグ２９０５をＴＲＵＥに設定する。次に、Ｓ３２１０では、サブモジュール５０２は、現在参照しているFeatureがPrintTicket内の最後のFeatureであるか否かを判別する。ここで、サブモジュール５０２が最後のFeatureであると判定された場合には、Ｓ３２１２へ進む。そして、Ｓ３２１２で、サブモジュール５０２は、ＵＩ文字列が置き換えられた、図２４に示すような文字列テーブル情報３００１のＵＩ文字列３００４に従って、ＵＩ画面をディスプレイ１０に表示する。
【０２８４】
この際、サブモジュール５０２は、文字列テーブル情報３００１内の各機能に関連付けられたコントロールＩＤの文字列を置き換える。
【０２８５】
図２４に示す文字列テーブル情報３００１では、機能名３００２がCollateのＵＩ文字列（ソート）３００４が、"部単位印刷"に、MediaSizeのＵＩ文字列（用紙名称）が"用紙"に、それぞれアプリケーションが指定した文字列に置き換えられる例を示している。なお、図２４において、３００３はコントロールＩＤを示し、３００５は置換えフラグを示し、３００６はオリジナル文字列を示す。
【０２８６】
この結果、サブモジュール５０２は、図１９のユーザインタフェースに示すようなアプリケーションの文字列に置き換えられた印刷設定画面をディスプレイ１０に表示する。
【０２８７】
図２５は、本実施形態を示す情報処理装置における第５のデータ処理手順の一例を示すフローチャートである。本例は、サブモジュール５０２の印刷設定画面上のコントロールにマウスオーバーした際の処理例である。なお、Ｓ２８０１〜Ｓ２８０６は各ステップに係わるサブモジュール５０２のプログラムはコンピュータの外部メモリ１１に記憶されており、ＲＡＭ２に読み出されＣＰＵ１によって実行される。
【０２８８】
まず、Ｓ２８０１で、サブモジュール５０２が、ユーザがポインティングデバイスを操作することに従い、図２６に示すように、マウスが移動するマウスオーバイベントが発生したことを検出すると、Ｓ２８０２へ進む。
【０２８９】
そして、Ｓ２８０２で、サブモジュール５０２は、マウスオーバイベントが発生したＵＩのコントロール情報を取得する。ここでは、図２６に示すように機能を示す、例えば「用紙」の付近に移動したことを検出した場合であるので、「collate」が取得される。
【０２９０】
次に、Ｓ２８０３では、サブモジュール５０２は、Ｓ２８０２で取得したコントロール情報のコントロールＩＤが文字列テーブル情報３００１内に存在するか否かを判別する。ここで、サブモジュール５０２がＳ２８０３で文字列テーブル情報にコントロールＩＤが存在すると判別した場合は、Ｓ２８０４で文字列テーブル情報３００１の置換えフラグ２９０５を取得する。
【０２９１】
一方、サブモジュール５０２がＳ２８０３で文字列テーブル情報３００１にコントロールＩＤが存在しないと判定した場合は、何もせずに処理を終了する。
【０２９２】
次に、Ｓ２８０５では、サブモジュール５０２は、置換え文字列がＴＲＵＥであるか否かを文字列テーブル情報３００１の置換えフラグ３００５を参照して判断する。ここで、サブモジュール５０２が、置換えフラグ３００５がＴＲＵＥであると判断した場合には、Ｓ２８０６にて、該コントロールのオリジナル文字列３００５をツールチップによりディスプレイ１０に表示する。
【０２９３】
図２６は、図１に示したディスプレイ１０に表示されるユーザインタフェースの一例を示す図である。本例は、プリンタドライバの印刷設定画面例である。
【０２９４】
図２６に示すように、本実施形態では、ツールチップにより、アプリケーション９０２で置き換えられたＵＩ文字列（部単位印刷）と共に元々のプリンタドライバ５０１の文字列（ソート）が、同一のＵＩ画面上に表示される。しかも、部単位印刷とソートとが近接した位置関係を維持した状態で表示される。これにより、簡単な操作を行うだけでユーザはドライバＵＩ画面上で、文字列を置き換える前と置き換えた後の状態を容易に視認できる。
【０２９５】
一方、Ｓ２８０５にて、置換えフラグ３００５がＦＡＬＳＥであるとサブモジュール５０２が判断した場合には、何もせずに、本処理を終了する。
【０２９６】
以上の手順により、アプリケーションのUI文字列で、プリンタドライバのUI文字列の置換えた際に、プリンタドライバの元のＵＩ文字列を同時に表示させることが可能となる。
【０２９７】
なお、第２実施形態と第３実施形態による表示制御を有効とするモードを備えて、初期設定される当該モードに応じて、文字列の表示制御を切り換えるように構成してもよい。
【０２９８】
また、コマンドキー等の操作を行うことで、機能文字列の表示制御を第２実施形態に示す表示制御から第３実施形態に示す表示制御に切り換え可能に構成してもよい。この際、いずれの表示を優先させるかは、初期設定で決定される表示制御から他の表示制御に切り換えるものとする。
【０２９９】
〔第４実施形態〕
以下、図２７に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０３００】
図２７は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０３０１】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０３０２】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０３０３】
本実施形態における図７Ｂ、図１０、図１２、図２０、図２２、図２５に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０３０４】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０３０５】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０３０６】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０３０７】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０３０８】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０３０９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０３１０】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０３１１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０３１２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０３１３】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【０３１４】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０３１５】
【図１】本発明の第１実施形態を示す情報処理装置、印刷装置を含むプリンタ制御システムの一例を示すブロック図である。
【図２】図１に示したホストコンピュータのモジュール構成を説明するブロック図である。
【図３】図１に示したホストコンピュータにインストールされるアプリケーションと、各プリンタ用のプリンタドライバとの関係を説明する模式図である。
【図４】図１に示したホストコンピュータにインストールされるアプリケーションと、各プリンタ用のプリンタドライバとの関係を詳細に説明する模式図である。
【図５】情報処理装置にインストールされるプリンタドライバが公開するインタフェース関数の一例を示す図である。
【図６】情報処理装置にインストールされるプリンタドライバが公開するインタフェース関数の一例を示す図である。
【図７Ａ】本実施形態を示す情報処理装置におけるユーザインタフェースの表示制御を説明する図である。
【図７Ｂ】本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【図８】本実施形態を示す情報処理装置で管理される文字列テーブル情報の一例を示す図である。
【図９】図１に示したディスプレイに表示されるアプリケーション印刷設定画面の一例を示す図である。
【図１０】本実施形態を示す情報処理装置における第２のデータ処理手順の一例を示すフローチャートである。
【図１１】本実施形態を示す情報処理装置で生成されるPrintTicketの一例を示す図である。
【図１２】本実施形態を示す情報処理装置における第３のデータ処理手順の一例を示すフローチャートである。
【図１３】図４に示したサブモジュール内で保持される文字列テーブル情報の一例を示す図である。
【図１４】図４に示したサブモジュールが保持する文字列テーブル情報の一例を示す図である。
【図１５】本実施形態を示す情報処理装置で表示可能なユーザインタフェースの一例を示す図である。
【図１６】本実施形態を示す情報処理装置で表示可能なユーザインタフェースの一例を示す図である。
【図１７】図５に示したドライバ本体が保持する文字列テーブル情報の一例を示す図である。
【図１８】図５に示したドライバ本体が保持する文字列テーブル情報の一例を示す図である。
【図１９】本実施形態を示す情報処理装置で表示可能なユーザインタフェースの一例を示す図である。
【図２０】本実施形態を示す情報処理装置における第４のデータ処理手順の一例を示すフローチャートである。
【図２１】図１に示したディスプレイ１０に表示されるユーザインタフェースの一例を示す
【図２２】本実施形態を示す情報処理装置における第５のデータ処理手順の一例を示すフローチャートである。
【図２３】本実施形態を示す情報処理装置のプリンタドライバが保持する文字列テーブル情報の一例を示す図である。
【図２４】本実施形態を示す情報処理装置のプリンタドライバが保持する文字列テーブル情報の一例を示す図である。
【図２５】本実施形態を示す情報処理装置における第６のデータ処理手順の一例を示すフローチャートである。
【図２６】図１に示したディスプレイに表示されるユーザインタフェースの一例を示す図である。
【図２７】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図２８】情報処理装置で処理可能な電子文書フォーマットの構造を説明する図である。
【図２９】図２８に示す電子文書の各パーツに関連づけ可能な印刷設定の一例を示す図である。
【図３０】従来の印刷システムにおけるメモリブロックを説明する図である。
【図３１】図３０に示したDEVMODEパブリック部の一例を示す図である。
【図３２】情報処理装置にインストールされるプリンタドライバがアプリケーションに返すPrintCapabilitiesの一例を示す図である。
【図３３】情報処理装置における印刷制御モジュールの構造を説明するブロック図である。
【符号の説明】
【０３１６】
５０１  プリンタドライバ
５０２  サブモジュール
５０５  プリントチケットＡＰＩ
９０１  プリントチケット入出力部
９０２  新インタフェース対応アプリケーション
【図１】
0004963663.tif 000002
【図２】
0004963663.tif 000003
【図３】
0004963663.tif 000004
【図４】
0004963663.tif 000005
【図５】
0004963663.tif 000006
【図６】
0004963663.tif 000007
【図７Ａ】
0004963663.tif 000008
【図７Ｂ】
0004963663.tif 000009
【図８】
0004963663.tif 000010
【図９】
0004963663.tif 000011
【図１０】
0004963663.tif 000012
【図１１】
0004963663.tif 000013
【図１２】
0004963663.tif 000014
【図１３】
0004963663.tif 000015
【図１４】
0004963663.tif 000016
【図１５】
0004963663.tif 000017
【図１６】
0004963663.tif 000018
【図１７】
0004963663.tif 000019
【図１８】
0004963663.tif 000020
【図１９】
0004963663.tif 000021
【図２０】
0004963663.tif 000022
【図２１】
0004963663.tif 000023
【図２２】
0004963663.tif 000024
【図２３】
0004963663.tif 000025
【図２４】
0004963663.tif 000026
【図２５】
0004963663.tif 000027
【図２６】
0004963663.tif 000028
【図２７】
0004963663.tif 000029
【図２８】
0004963663.tif 000030
【図２９】
0004963663.tif 000031
【図３０】
0004963663.tif 000032
【図３１】
0004963663.tif 000033
【図３２】
0004963663.tif 000034
【図３３】
0004963663.tif 000035