(57)【特許請求の範囲】
【請求項１】
印刷処理の要求を行う印刷装置が有する機能に関する機能情報と、前記印刷装置に要求する印刷処理に関する設定を受け付けるための設定画面に関する設定画面情報とに基づいて、前記設定画面を表示する表示制御手段と、
前記表示制御手段によって表示された設定画面を介した所定の操作に応じて、前記印刷処理に関する設定それぞれの記憶先を指定する記憶先情報により記憶装置の所定の記憶領域を記憶先として指定された、前記印刷装置に要求する印刷処理に関する設定を、前記設定の設定値と前記設定の設定名とを対応付けて文字列化し、圧縮する変換手段と、
前記変換手段によって圧縮された設定を、前記記憶装置の前記所定の記憶領域に記憶する記憶制御手段と、
前記記憶制御手段によって記憶された設定を解凍し、該解凍した設定と、前記機能情報とに基づいて、前記印刷装置に対して印刷処理を要求する印刷対象を生成する生成手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記記憶先は、
レジストリまたはＤＥＶＭＯＤＥ構造体の少なくとも１つである
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記設定画面情報は、
画面内に表示される少なくとも１つの表示部品それぞれに関する属性を含む
ことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記属性は、
前記表示部品の種類、名称または前記画面における表示位置の少なくとも１つである
ことを特徴とする請求項３記載の情報処理装置。
【請求項５】
情報処理装置を、
印刷処理の要求を行う印刷装置が有する機能に関する機能情報と、前記印刷装置に要求する印刷処理に関する設定を受け付けるための設定画面に関する設定画面情報とに基づいて、前記設定画面を表示する表示制御手段と、
前記表示制御手段によって表示された設定画面を介した所定の操作に応じて、前記印刷処理に関する設定それぞれの記憶先を指定する記憶先情報により記憶装置の所定の記憶領域を記憶先として指定された、前記印刷装置に要求する印刷処理に関する設定を、前記設定の設定値と前記設定の設定名とを対応付けて文字列化し、圧縮する変換手段と、
前記変換手段によって圧縮された設定を、前記記憶装置の前記所定の記憶領域に記憶する記憶制御手段と、
前記記憶制御手段によって記憶された設定を解凍し、該解凍した設定と、前記機能情報とに基づいて、前記印刷装置に対して印刷処理を要求する印刷対象を生成する生成手段と
して機能させることを特徴とする印刷制御プログラム。
【請求項６】
前記記憶先は、
レジストリまたはＤＥＶＭＯＤＥ構造体の少なくとも１つである
ことを特徴とする請求項５記載の印刷制御プログラム。
【請求項７】
前記設定画面情報は、
画面内に表示される少なくとも１つの表示部品それぞれに関する属性を含む
ことを特徴とする請求項５記載の印刷制御プログラム。
【請求項８】
前記属性は、
前記表示部品の種類、名称または前記画面における表示位置の少なくとも１つである
ことを特徴とする請求項７記載の印刷制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
プリンタは機種によって機能が異なり、オプションの追加によって機能が拡張される場合がある。例えば、プリンタ本体にフィニッシャーなどを取り付けたり、取り外したりすると利用できる機能が増減する。このような機能の増減があると、プリンタドライバが保存しなければならない設定値等の情報も増減する。
【０００３】
このような状況に対して、印刷装置の機能拡張に依らずに印刷装置が処理可能なデータを生成することができるようにした技術が提案されている。例えば、特許文献１に開示された技術では、まず、印刷設定を格納するためのデータ構造体（例えば、Ｄｅｖｍｏｄｅ構造体）に、印刷装置の機能に関する機能設定情報に基づき設定される印刷設定値を割り当てるための領域を確保して、この領域に印刷設定値を割り当てている。そして、上記機能設定情報を参照することによってデータ構造体に割り当てられた印刷設定値から印刷装置が処理可能なデータを生成している。特許文献１の技術では、このような構成をとることにより、印刷装置の機能拡張に依らずに印刷装置が処理可能なデータを生成することができるようにしている。
【０００４】
ところで、従来のプリンタドライバでは、上記特許文献１でもそうであるが、設定値はデータ構造体という形式で保存するのが常であった。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、このデータ構造体は、プログラム上でデータを格納する形式で、コーディング時にそのデータ構造が静的に決定するものである。よって、プリンタの機能が増減すると、特に機能が増えたときには、このデータ構造体を更新（再設計）しなければならない。つまり再度コーディングおよびコンパイルをして印刷設定を格納するデータ構造体を拡張しなければならない。このようにして、プリンタの機能拡張に対応するため、修正したプリンタドライバを再作成し再配布しなければならなくなるという問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであって、プリンタの機能が増加して、それに伴い保存すべき設定値が増加しても、データ構造体のサイズの変更を必要とせず、従って、プリンタドライバの再コーディング等を伴わずに、機能の増加に応じた設定値を保存できるようにした、プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明の情報処理装置は、印刷処理の要求を行う印刷装置が有する機能に関する機能情報と、前記印刷装置に要求する印刷処理に関する設定を受け付けるための設定画面に関する設定画面情報とに基づいて、前記設定画面を表示する表示制御手段と、前記表示制御手段によって表示された設定画面を介した所定の操作に応じて、前記印刷処理に関する設定それぞれの記憶先を指定する記憶先情報により記憶装置の所定の記憶領域を記憶先として指定された、前記印刷装置に要求する印刷処理に関する設定を、前記設定の設定値と前記設定の設定名とを対応付けて文字列化し、圧縮する変換手段と、前記変換手段によって圧縮された設定を、前記記憶装置の前記記憶装置の所定の記憶領域に記憶する記憶制御手段と、前記記憶制御手段によって記憶された設定を解凍し、該解凍した設定と、前記機能情報とに基づいて、前記印刷装置に対して印刷処理を要求する印刷対象を生成する生成手段とを有することを特徴とする。
【０００８】
また、本発明の印刷制御プログラムは、情報処理装置を、印刷処理の要求を行う印刷装置が有する機能に関する機能情報と、前記印刷装置に要求する印刷処理に関する設定を受け付けるための設定画面に関する設定画面情報とに基づいて、前記設定画面を表示する表示制御手段と、前記表示制御手段によって表示された設定画面を介した所定の操作に応じて、前記印刷処理に関する設定それぞれの記憶先を指定する記憶先情報により記憶装置の所定の記憶領域を記憶先として指定された、前記印刷装置に要求する印刷処理に関する設定を、前記設定の設定値と前記設定の設定名とを対応付けて文字列化し、圧縮する変換手段と、前記変換手段によって圧縮された設定を、前記記憶装置の前記記憶装置の所定の記憶領域に記憶する記憶制御手段と、前記記憶制御手段によって記憶された設定を解凍し、該解凍した設定と、前記機能情報とに基づいて、前記印刷装置に対して印刷処理を要求する印刷対象を生成する生成手段として機能させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、プリンタの機能の増加に応じて増加した設定値を、この設定値を保存するデータ構造体のサイズを変更することなく保存することができるため、設定値を保存するデータ構造体の再設計や、プリンタドライバの再コーディングおよび再コンパイルや、修正したプリンタドライバの再配布が必要なくなるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の第１の実施の形態にかかるプリンタシステムの全体構成図を示した図である。
【図２】図２は、第１の実施形態におけるＰＣの構成を示すブロック図である。
【図３】図３は、第１の実施形態におけるＤＥＶＭＯＤＥ構造体の構造を示す図である。
【図４】図４は、第１の実施形態におけるレイアウト情報の一例を示した図である。
【図５】図５は、第１の実施形態における、図４のレイアウト情報および図７の機能情報に基づいた印刷設定画面の例を示した図である。
【図６】図６は、第１の実施形態における保存先情報の一例を示した図である。
【図７】図７は、第１の実施形態における機能情報の一例を示した図である。
【図８】図８は、第１の実施形態における印刷設定部の動作（設定時）を説明するフローチャートである。
【図９】図９は、第１の実施形態における印刷設定部の動作（ＧＵＩ表示時）を説明するフローチャートである。
【図１０】図１０は、第１の実施形態における描画部の動作を説明するフローチャートである。
【図１１】図１１は、第１の実施形態におけるアプリケーションからの印刷設定画面呼出しおよび印刷要求に対するプリンタドライバの動作を説明するシーケンス図である。
【図１２】図１２は、第２の実施形態におけるＤＥＶＭＯＤＥ構造体の構造を示す図である。
【図１３】図１３は、第２の実施形態における保存先情報の一例を示した図である。
【図１４】図１４は、第２の実施形態におけるレイアウト情報の一例を示した図である。
【図１５】図１５は、第２の実施形態における機能情報の一例を示した図である。
【図１６】図１６は、第２の実施形態における、図１４のレイアウト情報および図１５の機能情報に基づいた印刷設定画面の例を示した図である。
【図１７】図１７は、第２の実施形態における印刷設定部の動作（設定時）を説明するフローチャートである。
【図１８】図１８は、第２の実施形態における印刷設定部の動作（ＧＵＩ表示時）を説明するフローチャートである。
【図１９】図１９は、第２の実施形態における印刷設定部の動作（ＧＵＩ表示を伴わないＶａｌｉｄａｔｉｏｎ処理実行）を説明するフローチャートである。
【図２０】図２０は、第２の実施形態における描画部の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかるプリンタシステムの実施の形態を詳細に説明する。
［第１の実施形態］
【００１３】
（プリンタシステムの全体構成）
図１は、本発明の第１の実施の形態にかかるプリンタシステムの全体構成図を示した図である。図１に示すように、本実施の形態ではＰＣ１００とプリンタ１５０とがネットワーク１６０を介して接続されているものとする。そして、ＰＣ１００からの印刷要求に応じて、プリンタ１５０が印刷処理を行う。
【００１４】
（ＰＣ１００の構成）
図２は、ＰＣ１００の構成を示すブロック図である。図２に示すように、ＰＣ１００は、処理部１０１と、記憶部１０２と、通信部１０３とを備えている。処理部１０１は、図示しない制御手段としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＯＭおよびメインメモリとなるＲＡＭを有するメモリ群とを含んで構成されている。ＰＣ１００の起動・実行時には、ＲＯＭおよび記憶部１０２からアプリケーション１０４と、ＯＳ１０５と、各種ドライバ（図２においては、プリンタドライバ１０６のみ記載）が、メインメモリ上にロードされ展開されて、これらがＣＰＵにより実行される。なお、ＰＣ１００は、キーボードやマウスなどの入力装置やディスプレイなどの出力装置等を備える通常のコンピュータを利用したハードウェア構成を有するが、図２においては説明の簡単のため省略している。
【００１５】
図２に示すプリンタドライバ１０６内の機能ブロックは、プリンタ１５０の制御を実現するための主要部となる機能又は手段である。
【００１６】
通信部１０３は、ネットワーク１６０を介して接続されたプリンタ１５０と情報の送受信を行う。
【００１７】
アプリケーション１０４は、ユーザが印刷指示をすることができるソフトウェアとする。ユーザはアプリケーション１０４で編集したデータを印刷したい場合、アプリケーション１０４が、ユーザによる印刷指示を受け付ける。この場合、アプリケーション１０４は、単体でプリンタ１５０に対する印刷データの生成を行わず、上記印刷指示に応じた印刷要求と共に、印刷対象の情報をＯＳ１０５に渡す。
【００１８】
ＯＳ１０５は、ＰＣ１００のハードウェアとソフトウェアとを管理するプログラムである。ＯＳ１０５は、プログラムの起動、情報の読み込みや保存の制御等を行う。ＯＳのうち代表的なものとしては、ＭＳ  Ｗｉｎｄｏｗｓ（登録商標）やＵＮＩＸ（登録商標）等が知られている。また、ＯＳ１０５は、アプリケーション１０４から渡された印刷要求と共に、印刷対象の情報（ドキュメントデータ、画像データ等）を、プリンタドライバ１０６に渡す。
【００１９】
記憶部１０２は、様々な情報を記憶する記憶手段である。具体的にはＨＤＤ等である。記憶される情報には、プリンタドライバ１０６が有する機能を実現するための処理に関する情報（処理に用いる設定値や、設定値の変更をするための表示情報など、処理に必要なあらゆる情報）を定義した設定情報がある。この設定情報の例としては、レイアウト情報、保存先情報、及び機能情報等が挙げられる。その他、ＯＳ１０５により提供されるＤＥＶＭＯＤＥ構造体やレジストリ等も記憶部１０２に記憶される。
【００２０】
レイアウト情報は、設定画面に表示されるＧＵＩコンポーネントのレイアウトが記述された情報である。保存先情報は、各設定値の保存場所についての情報が記述された情報である。機能情報は、接続されたプリンタの機能（仕様）に関する情報や、各設定値の設定可能な範囲や各設定間の禁則が記述された情報である。
【００２１】
プリンタドライバ１０６は、このドライバが有する機能を果たすためのモジュール群として、ＵＩの制御を行う印刷設定部１１１および描画の制御を行う描画部１１２を備える。
【００２２】
印刷設定部１１１は、設定画面表示部１２１、振分部１２２、文字列化部１２３、圧縮部１２４、設定保存部１２５、圧縮データ取得部１２６、および解凍部１２７を有している。
【００２３】
設定画面表示部１２１は、ＵＩとしてモニタ画面に表示するＧＵＩ（印刷設定画面）の表示制御をする。本実施形態にかかる設定画面表示部１２１は、記憶部１０２に記憶されたレイアウト情報に基づいて印刷設定画面を表示する。また、印刷設定画面の表示時には、機能情報に基づいて、禁則に従った使用可能な機能、および設定可能な設定（設定範囲、設定値）についてのみＧＵＩコンポーネントの表示を行う。
【００２４】
振分部１２２は、保存先情報を参照し、各設定値を保存先情報で指定された保存先毎に振分ける処理を行う。
【００２５】
文字列化部１２３は、振分部１２２によって振分けられた設定値を、保存先毎に、各設定値を設定名と設定値の組みからなる可変長の文字列とする文字列化を行う。例えば、｛“Ｄｕｐｌｅｘ”：“ｏｎ”，“Ｏｒｉｅｎｔａｔｉｏｎ”：“ｐｏｒｔｒａｉｔ”，…｝といった文字列を生成する。この文字列においては、設定名が各設定値を識別するための識別子あるいは設定値のアドレスとして機能するものとなる。
【００２６】
圧縮部１２４は、文字列化部１２３によって生成された保存先毎の各文字列に対しＺｉｐ圧縮等の圧縮処理を施し、保存先毎の圧縮データを生成する。この圧縮処理によってデータサイズを削減することにより、設定値が増加したとしても、固定サイズのデータ構造体であるＤＥＶＭＯＤＥ構造体に格納する圧縮データの増加量を抑えることができる。なお、ここで用いる圧縮方式は任意である。
【００２７】
設定保存部１２５は、圧縮部１２４により生成された各圧縮データをそれぞれの保存先（レジストリまたはＤＥＶＭＯＤＥ構造体）に保存する。なお、ＤＥＶＭＯＤＥ構造体は、図３に示すように、ＯＳ１０５によって用途が定められた固定領域となるＰｕｂｌｉｃＤＥＶＭＯＤＥ（Ｐｕｂｌｉｃ領域）と、ドライバ作成者側が自由に情報を管理できる自由領域となるＰｒｉｖａｔｅＤＥＶＭＯＤＥ（Ｐｒｉｖａｔｅ領域）とからなっている。本実施形態では、ＤＥＶＭＯＤＥ構造体に保存する圧縮データは、ＤＥＶＭＯＤＥ構造体のＰｒｉｖａｔｅ領域に保存するものとする。
【００２８】
圧縮データ取得部１２６は、レジストリおよびＤＥＶＭＯＤＥ構造体から保存されている圧縮データを読み取る。
【００２９】
解凍部１２７は、圧縮データ取得部１２６によりレジストリおよびＤＥＶＭＯＤＥ構造体から取得された圧縮データを解凍し、内部メモリに展開する。
【００３０】
一方、描画部１１２は、圧縮データ取得部１３１、解凍部１３２および印刷データ生成部１３３を有している。
【００３１】
圧縮データ取得部１３１は、レジストリおよびＤＥＶＭＯＤＥ構造体から保存されている圧縮データを読み取る。
【００３２】
解凍部１３２は、圧縮データ取得部１３１により、レジストリおよびＤＥＶＭＯＤＥ構造体から取得された圧縮データを解凍し、内部メモリに展開する。
【００３３】
印刷データ生成部１３３は、解凍後の印刷設定（現在値）について、この設定値が禁則に従っているかどうか、印刷設定の正当性の確認を行い、正当性が確認された印刷設定と、アプリケーション１０４から印刷を要求された描画データとからプリンタ１５０が解釈可能な印刷データを生成する。そして生成された印刷データを、通信部１０３を介して、プリンタ１５０に送信する。
【００３４】
次に、上記設定情報（レイアウト情報、保存先情報、および機能情報）の具体例を挙げ説明する。
【００３５】
（レイアウト情報）
図４は、レイアウト情報の一例を示した図である。なお、図４では、一部のみを例示している。また、図４に示すレイアウト情報は、ＪＳＯＮ形式で記述しているが他の形式でも良い。
【００３６】
図４に示すように、レイアウト情報には、印刷設定画面に表示するＧＵＩコンポーネント毎のレイアウトデータが記述されている。このレイアウトデータは、属性としてｔｙｐｅ，ｎａｍｅ，ａｘｉｓを有している。
【００３７】
ｔｙｐｅは、ＧＵＩコンポーネントの種類を表している。ｔｙｐｅの値であるＣｈｅｃｋＢｏｘは、チェックボックスコンポーネントで表示することを示している。ＣｏｍｂｏＢｏｘはコンボボックスコンポーネントで表示することを示している。また、ＳｐｉｎＢｏｘは、スピンボックスコンポーネントで表示することを示している。図示しないが、その他にもＥｄｉｔＢｏｘやＬｉｓｔＢｏｘなどを記述することにより、エディットボックスコンポーネントやリストボックスコンポーネント等でＧＵＩコンポーネントを表示することもできる。
【００３８】
ｎａｍｅは、設定の名前を表している。ｎａｍｅの値のうち、ｄｕｐｌｅｘは両面印刷設定であることを示している。ｏｒｉｅｎｔａｔｉｏｎは、印刷の向き設定であることを示している。また、ｃｏｐｉｅｓは、部数設定であることを示している。図示しないが、ｐａｐｅｒｓｉｚｅやｌａｙｏｕｔなどを記述することにより、用紙サイズ設定や集約設定等を指定することもできる。
【００３９】
ａｘｉｓは、ＧＵＩコンポーネントの表示位置の座標を表している。ａｘｉｓの属性である、ｘはダイアログボックスの左上原点からの水平方向座標を示し、ｙはダイアログボックスの左上原点からの垂直方向座標を示している。例えば、図４に示す両面印刷設定（ｄｕｐｌｅｘ）のａｘｉｓには、属性ｔｙｐｅで指定されたチェックボックスコンポーネントを水平位置２５、垂直位置３０に表示することが記述されている。
【００４０】
そして、設定画面表示部１２１は、記憶部１０２からレイアウト情報を読み込み、読み込んだレイアウト情報に従って設定画面を生成し、ＰＣ１００の表示装置（図示せず）に生成した印刷設定画面を表示する。なお、このとき、印刷設定部１１１は、レイアウト情報に記述されている各ＧＵＩコンポーネントのうち、後述の機能情報を基に設定可能な項目のみを表示する。
【００４１】
図５は、図４のレイアウト情報および後述の図７に示す機能情報を読み込んだ場合に、プリンタドライバ１０６の設定画面表示部１２１が表示する印刷設定画面の例を示した図である。図５に示すように、両面印刷設定用に表示名“Ｄｕｐｌｅｘ”と共にチェックボックスコンポーネントが配置され、印刷の向き設定用に表示名“Ｏｒｉｅｎｔａｔｉｏｎ”と共にコンボボックスコンポーネントが配置され、部数設定用に表示名“Ｃｏｐｉｅｓ”と共にスピンボックスボックスコンポーネントが配置されている（印刷の向き設定および部数設定のデフォルトの設定値は後述の機能情報による）。なお、図５に示す、ＯＫボタンは、変更された印刷設定を保存するボタンであり、Ｃａｎｃｅｌボタンは、変更をキャンセルするボタンである。
【００４２】
（保存先情報）
保存先情報は、各設定値の保存場所を指定する情報が記述されている。図６は、保存先情報の一部のみを例示している。なお、図６に示す例では、保存先情報はＪＳＯＮ形式で記述されているが他の形式であっても良い。
【００４３】
保存先情報のｒｅｇｉｓｔｏｒｙとｄｅｖｍｏｄｅというキーで指定される部分に記述された各設定名は、レイアウト情報および機能情報に記述されている各設定名と対応関係を有している。そして、ｒｅｇｉｓｔｏｒｙというキー内に記述された各設定名（図６の例では、ｆｉｎｉｓｈｅｒ，ｈｄｄ，ｆｏｌｄ…）に対応する設定値は、レジストリに保存される。一方、ｄｅｖｍｏｄｅというキー内に記述された各設定名（図６の例では、ｄｕｐｌｅｘ，ｏｒｉｅｎｔａｔｉｏｎ，…）に対応する設定値は、ＤＥＶＭＯＤＥ構造体に保存される。なお、ｆｉｎｉｓｈｅｒ，ｈｄｄ，ｆｏｌｄはそれぞれ、プリンタ１５０がもつ機能のフィニッシャー、ハーディスク、紙折り機を表わしている。
【００４４】
（機能情報）
図７は、機能情報の一例を示した図である。図７では、説明の簡単のため、両面印刷設定（ｄｕｐｌｅｘ）と印刷の向き設定（ｏｒｉｅｎｔａｔｉｏｎ）と部数設定（ｃｏｐｉｅｓ）のみ例示するが、機能情報は各設定値の設定可能な範囲や各設定間の禁則等が記述された情報であって、実際には、用紙サイズ設定やステープル設定など印刷に係わる種々の設定について記述される。なお、図７に示す機能情報は、ＸＭＬ形式で記述するが他の形式（例えば、ＪＳＯＮ等）でも良い。
【００４５】
図７に示す機能情報の例では、各設定の情報を、ｆｅａｔｕｒｅタグ毎に定義している。このｆｅａｔｕｒｅタグは、ｎａｍｅとｄｅｆａｕｌｔとｔｙｐｅの属性を持っている。もちろん、図７に示す例は一例であって、その他の属性を定義し利用することができる。
【００４６】
属性ｎａｍｅは、設定の名前であり、レイアウト情報のｎａｍｅと対応している。図７の例では、属性ｎａｍｅの値であるｄｕｐｌｅｘは両面印刷設定であることを、ｏｒｉｅｎｔａｔｉｏｎは印刷の向き設定であることを、ｃｏｐｉｅｓは部数設定であることを指定している。また、属性ｄｅｆａｕｌｔは、選択肢の初期値を表わしている。また、属性ｔｙｐｅは、入力される設定値の形式を表している。ｔｙｐｅの値である、ｐｉｃｋｏｎｅは、選択肢形式を指定している。このｐｉｃｋｏｎｅの他にも、文字列入力形式を指定するｓｔｒｉｎｇや、数値入力形式を指定するｎｕｍｂｅｒ等がある。
【００４７】
ｐｉｃｋｏｎｅタグは、選択可能な設定値を表すものであり、ｐｉｃｋｏｎｅタグ内の属性ｎａｍｅで、設定値が設定されている。ｐｉｃｋｏｎｅの属性であるｎａｍｅの値は、印刷の向き設定においては、ｐｏｒｔｒａｉｔが縦向き、ｌａｎｄｓｃａｐｅが横向きを表わしている。両面印刷設定においては、ｏｆｆが機能オフ、ｏｎが機能オンを表している。また、部数設定においては、ｍｉｎが最小部数、ｍａｘが最大部数を表している。
【００４８】
ｆｅａｔｕｒｅタグで囲まれる部分には、図示しないがｃｏｎｓｔｒａｉｎｔタグを記述することができる。このｃｏｎｓｔｒａｉｎｔタグを用いて記述された部分は、親タグであるｆｅａｔｕｒｅタグの設定についての禁則情報を表わす（一例：＜ｃｏｎｓｔｒａｉｎｔ  ｆｉｘｖａｌｕｅ＝”ｏｆｆ”＞）。また、このｃｏｎｓｔｒａｉｎｔタグ内の属性であるｆｉｘｖａｌｕｅを用いて、禁則条件が合致している場合に強制的に変更される設定値（上記例では”ｏｆｆ”）を設定することができる。
【００４９】
禁則条件は、ｃｏｎｓｔｒａｉｎｔタグで囲まれる部分に、ｃｏｎｄｉｔｉｏｎタグを用いて記述することができる（一例：＜ｃｏｎｄｉｔｉｏｎ  ｅｘｐｒｅｓｓｉｏｎ＝”ＡＡＡＡ！＝”ｏｎ”＞。このｃｏｎｄｉｔｉｏｎタグは親タグであるｃｏｎｓｔｒａｉｎｔタグの禁則条件を表し、属性であるｅｘｐｒｅｓｓｉｏｎを用いて、その条件を指定することができる（上記例では、設定ＡＡＡＡがｏｎ以外のとき条件を満たすこととなる）。なお、ｐｉｃｋｏｎｅタグに対しても、このタグで囲まれる部分にｃｏｎｓｔｒａｉｎｔタグを記述することができ、ｐｉｃｋｏｎｅタグ自体、すなわち選択肢自身も禁則情報を持つことができる。
【００５０】
以上のように、機能情報には、印刷に関する各設定に対するプリンタドライバ１０６の行うべき管理のための情報が記述されている。この機能情報は、サポートするプリンタの機種毎に用意され、そのオプションを含めて各プリンタが備えるすべての機能についての記述がなされている。印刷設定部１１１および描画部１１２は、これらの機能情報を参照して、使用可能な機能の判定や、設定値（現在値）の正当性の評価を行う。
【００５１】
（印刷設定部１１１の動作（設定時））
次に、本実施形態のプリンタドライバ１０６の印刷設定部１１１の動作（設定時）を、図８を用いて説明する。図８は、印刷設定部１１１の動作（設定時）を説明するフローチャートである。
【００５２】
はじめに、ＰＣ１００の内部メモリ中に設定値等を一時保存するための作業領域が確保される（ステップＳ８０１）。
【００５３】
次に、ユーザ操作により印刷設定画面の起動操作がなされると、設定画面表示部１２１は、印刷設定画面（ＧＵＩ）をＰＣ１００に接続された表示装置（図示せず）に表示させる（ステップＳ８０２）。
【００５４】
次いで、設定画面表示部１２１は、表示した印刷設定画面（ＧＵＩ）を介したユーザによる設定値の設定（設定の変更など）を受け付ける（ステップＳ８０３）。
【００５５】
そして、入力された設定値をＰＣ１００の内部メモリに保存する（ステップＳ８０４）。
【００５６】
その後、ユーザの操作が終了すると（例えば、図５に示した印刷設定画面で“ＯＫ”ボタンが押下されると）（ステップＳ８０５でＹｅｓ）、ステップＳ８０６に移行し、そうでなければ（ステップＳ８０５でＮｏ）、ステップＳ８０３へ戻り、引き続きユーザによる設定操作を受け付ける。
【００５７】
ステップＳ８０６では、振分部１２２が、保存先情報を参照し、各設定値をその設定名に対応付けられている保存先（レジストリまたはＤＥＶＭＯＤＥ構造体）に振り分ける。つまり、図６に示すような保存先情報において、ｒｅｇｉｓｔｒｙというキーで指定される部分に記述された設定名に対応する設定値は、レジストリを保存先として振り分けられ、ｄｅｖｍｏｄｅというキーで指定される部分に記述された設定名に対応する設定値は、ＤＥＶＭＯＤＥ構造体を保存先として振り分けられる。
【００５８】
次に、文字列化部１２３が、レジストリに保存する各設定値およびＤＥＶＭＯＤＥ構造体に保存する各設定値をそれぞれ、文字列化する（ステップＳ８０７）。
【００５９】
さらに、圧縮部１２４が、文字列化した設定値に対して、Ｚｉｐ圧縮などによりデータ圧縮を施す（ステップＳ８０８）。
【００６０】
そして、設定保存部１２５が、圧縮された設定値（圧縮データ）を、それぞれの保存先（レジストリまたはＤＥＶＭＯＤＥ構造体）に保存する（ステップＳ８０９）。
【００６１】
以上、設定時におけるプリンタドライバ１０６の印刷設定部１１１の動作を説明した。
【００６２】
（印刷設定部１１１の動作（ＧＵＩ表示時））
次に、本実施形態のプリンタドライバ１０６の印刷設定部１１１の動作（ＧＵＩ表示時）を、図９を用いて説明する。図９は、印刷設定部１１１の動作（ＧＵＩ表示時）を説明するフローチャートである。
【００６３】
はじめに、圧縮データ取得部１２６が、ＤＥＶＭＯＤＥ構造体（図中、ＤＥＶＭＯＤＥと略記、以下同様）内のＰｒｉｖａｔｅ領域に本実施形態による圧縮データがあるか判定し、あれば（ステップＳ９０１でＹｅｓ）、ステップＳ９０２へ移行し、なければ（ステップＳ９０１でＮｏ）、ステップＳ９０３へ移行する。
【００６４】
ステップＳ９０２では、圧縮データ取得部１２６が、ＤＥＶＭＯＤＥ構造体に保存されている設定値の圧縮データを取得する。
【００６５】
ステップＳ９０３では、圧縮データ取得部１２６が、レジストリに、本実施形態による圧縮データがあるか判定し、あれば（ステップＳ９０３でＹｅｓ）、ステップＳ９０４へ移行し、なければ（ステップＳ９０３でＮｏ）、ステップＳ９０５へ移行する。
【００６６】
ステップＳ９０４では、圧縮データ取得部１２６が、レジストリ内に保存されている設定値の圧縮データを取得する。
【００６７】
次に、解凍部１２７が、ステップＳ９０２およびステップＳ９０４で取得した圧縮データを解凍し、内部メモリ中に展開する（ステップＳ９０５）。
【００６８】
そして、設定画面表示部１２１が、内部メモリに展開された設定値を用いて、印刷設定画面（ＧＵＩ）を表示する（ステップＳ９０６）。以後、ユーザはこの印刷設定画面から設定済みの設定値を変更することができる。なお、初期の設定が行われる段階では、デフォルトの設定値を用いてＧＵＩの表示がなされる。また、印刷設定画面の表示の際には、機能情報に基づいて、禁則に従った使用可能な機能、および設定可能な設定（設定範囲、設定値）についてのみＧＵＩコンポーネントの表示が行われる。なお、機能情報に基づいて行われるＶａｌｉｄａｔｉｏｎ処理により、上記の、禁則に従った使用可能な機能、および設定可能な設定（設定範囲、設定値）が定められる。
【００６９】
以上、再表示時におけるプリンタドライバ１０６の印刷設定部１１１の動作を説明した。
【００７０】
（描画部１１２の動作）
次に、本実施形態のプリンタドライバ１０６の描画部１１２の動作を、図１０を用いて説明する。図１０は、描画部１１２の動作を説明するフローチャートである。なお、以下では、描画部１１２が、アプリケーション１０４から印刷要求とともに描画データを受けているものとする。
【００７１】
はじめに、圧縮データ取得部１３１が、ＤＥＶＭＯＤＥ構造体内のＰｒｉｖａｔｅ領域に、本実施形態による圧縮データがあるか判定し、あれば（ステップＳ１００１でＹｅｓ）、ステップＳ１００２へ移行し、なければ（ステップＳ１００１でＮｏ）、ステップＳ１００３へ移行する。
【００７２】
ステップＳ１００２では、圧縮データ取得部１３１が、ＤＥＶＭＯＤＥ構造体に保存されている設定値の圧縮データを取得する。
【００７３】
さらに、圧縮データ取得部１３１は、レジストリに、本実施形態による圧縮データがあるか判定し、あれば（ステップＳ１００３でＹｅｓ）、ステップＳ１００４へ移行し、なければ（ステップＳ１００３でＮｏ）、ステップＳ１００５へ移行する。
【００７４】
ステップＳ１００４では、圧縮データ取得部１３１が、レジストリ内に保存されている設定値の圧縮データを取得する。
【００７５】
次に、解凍部１３２が、ステップＳ１００２およびステップＳ１００４で取得した圧縮データを解凍し、内部メモリ中に展開する（ステップＳ１００５）。
【００７６】
そして、印刷データ生成部１３３が、内部メモリに展開された設定値（現在値）に対して機能情報に記述された禁則を反映させた設定値と、アプリケーション１０４から受けた描画データに基づき、プリンタ１５０が解釈可能な印刷データを生成する（ステップＳ１００６）。
【００７７】
最後に、印刷データ生成部１３３が、生成した印刷データをプリンタ１５０に送信する（ステップＳ１００７）。
【００７８】
以上、プリンタドライバ１０６の描画部１１２の動作を説明した。
【００７９】
次に、図１１のシーケンス図を参照し、アプリケーション１０４からの印刷設定画面呼出しおよび印刷要求に対するプリンタドライバ１０６内部の動作を、アプリケーション１０４の動作と関連づけて説明する。なお、印刷設定部１１１および描画部１１２による各動作は、前述の設定画面表示部１２１、振分部１２２、文字列化部１２３、圧縮部１２４、設定保存部１２５、圧縮データ取得部１２６、解凍部１２７、圧縮データ取得部１３１、解凍部１３２および印刷データ生成部１３３が主体となって実行される。
【００８０】
ユーザが、プリンタ１５０への印刷設定要求を行った場合、はじめに、プリンタ１５０の印刷設定をするための印刷設定画面を表示させるため、アプリケーション１０４から印刷設定部１１１へ印刷設定画面呼出しがなされる（ｔ１）。
【００８１】
印刷設定部１１１は、アプリケーション１０４から印刷設定画面呼出しを受けると、レイアウト情報および機能情報に基づいて、プリンタ１５０の各種機能を設定する設定画面を生成し、ＰＣ１００の表示部（図示せず）に表示する（ｔ２）。このとき、前述のように、機能情報に基づいて、禁則に従った使用可能な機能、および設定可能な設定（設定範囲、設定値）についてのみＧＵＩコンポーネントの表示が行われる。
【００８２】
次いで、ユーザが印刷設定画面を介して入力した、プリンタ１５０に対する印刷設定値を受け付ける（ｔ３）。
【００８３】
ユーザによる印刷設定の入力操作が終了すると（例えば、印刷設定画面のＯＫボタンが押下されると）、印刷設定部１１１は、記憶部１０２に保存されている保存先情報を参照して、ユーザが入力した設定値をその保存先（レジストリおよびＤＥＶＭＯＤＥ構造体）毎に振り分ける（ｔ４）。
【００８４】
次いで、印刷設定部１１１において、上記ｔ４で振り分けられた設定値を、振り分け先毎に文字列化を行い（ｔ５）、さらに、文字列化した設定値に対しＺｉｐ圧縮等により圧縮を施す（ｔ６）。
【００８５】
そして、圧縮後の設定値（圧縮データ）をそれぞれの保存先（レジストリおよびＤＥＶＭＯＤＥ構造体）に保存する（ｔ７）。
【００８６】
次いで、印刷設定部１１１は、圧縮データを保存したＤＥＶＭＯＤＥ構造体をアプリケーション１０４に返す（ｔ８）。
【００８７】
その後、ユーザが、アプリケーション１０４上でプリンタ１５０に対する印刷要求を行うとアプリケーション１０４はこれを受け付け（ｔ９）、アプリケーション１０４から描画部１１２へ印刷要求が送られる（ｔ１０）。このとき印刷要求とともに描画データも送られる。
【００８８】
印刷要求を受けて、描画部１１２は、前述のように、レジストリおよびＤＥＶＥＭＯＤＥ構造体に保存された圧縮データを読み込み、各圧縮データを取得する（ｔ１１）。
【００８９】
次いで、描画部１１２は、取得した圧縮データを解凍し内部メモリに展開する（ｔ１２）。
【００９０】
次いで、描画部１１２は、記憶部１０２に保存されたプリンタ１５０の機能情報を参照して、展開後の設定値（現在値）の正当性を判定し、機能情報にて規定された禁則を設定値（現在値）に反映させる。そして、この設定値と描画データとからプリンタ１５０が解釈可能な印刷データを生成する（ｔ１３）。
【００９１】
生成された印刷データは、描画部１１２から、通信部１０３を介してプリンタ１５０へ送信される（ｔ１４）。
【００９２】
印刷データの送信後、描画部１１２は、印刷データ送信の完了通知をアプリケーション１０４へ送信する（ｔ１５）。
【００９３】
アプリケーション１０４は、描画部１１２からの送信完了通知（ｔ１５）を受けて、印刷処理を完了する（ｔ１６）。
【００９４】
以上、アプリケーション１０４からの印刷設定画面呼出しおよび印刷要求に対するプリンタドライバ１０６内部の動作を、アプリケーション１０４の動作と関連づけて説明した。
【００９５】
以上説明したように、本実施形態では、印刷設定に係る各設定値を（特に、ＤＥＶＭＯＤＥ構造体等のデータ構造体に対して）、設定名との組として、可変長の文字列とする文字列化をし、さらに圧縮して保存する構成としている。これにより、プリンタ側の機能の増加等により保存する設定値が増加しても（極端に増加しなければ）、従来のように設定値を保存するデータ構造体（ＤＥＶＭＯＤＥ構造体）のサイズを変更する必要がなくなる。つまりデータ構造体の再設計やプリンタドライバ１０６の再作成等をする必要がなくなる。また、各設定値は設定名との組として文字列化されるので、圧縮データを解凍した後、容易に設定値を抽出することができる。
【００９６】
［第２の実施形態］
次に、本発明に係る第２の実施形態について、図１２〜２０を用いて説明する。本実施形態におけるハードウェア構成は前述の第１の実施形態と同様である。以下では、第１の実施形態と異なる部分について説明する。
【００９７】
（ＤＥＶＭＯＤＥ構造体）
図１２に、本実施形態におけるＤＥＶＭＯＤＥ構造体を示す。同図に示すように、ＤＥＶＭＯＤＥ構造体のＰｒｉｖａｔｅ領域であるＰｒｉｖａｔｅＤＥＶＭＯＤＥを、ｃｏｒｅ領域とｐｌｕｇｉｎ領域に区分けする。そして、ｃｏｒｅ領域には、プラグイン拡張される前の設定値を保存し、ｐｌｕｇｉｎ領域には、プラグインで機能が拡張されたときに追加される設定値を保存するようにする。このため、本実施形態における保存先情報は以下の構成とする。
【００９８】
（保存先情報）
保存先情報は、第１の実施形態と同様に、各設定値の保存場所を指定する情報が記述される。図１３は、保存先情報の一部のみを例示している。なお、図１３に示す例では、保存先情報はＪＳＯＮ形式で記述されているが他の形式であっても良い。
【００９９】
保存先情報のｒｅｇｉｓｔｏｒｙ、ｄｅｖｍｏｄｅおよびｐｌｕｇｉｎというキーで指定される部分に記述された各設定名は、レイアウト情報および機能情報に記述されている各設定名と対応関係を有している（図１４、１５参照）。そして、ｒｅｇｉｓｔｏｒｙというキー内に記述された各設定名（図１３の例では、ｆｉｎｉｓｈｅｒ，ｈｄｄ，ｆｏｌｄ…）に対応する設定値は、レジストリに保存される。一方、ｄｅｖｍｏｄｅというキー内に記述された各設定名（図１３の例では、ｄｕｐｌｅｘ，ｏｒｉｅｎｔａｔｉｏｎ，…）に対応する設定値は、ＤＥＶＭＯＤＥ構造体のｃｏｒｅ領域に保存される。他方、ｐｌｕｇｉｎというキー内に記述された各設定名（図１３の例では、ｗａｔｅｒｍａｒｋ＿ｔｅｘｔ，ｗａｔｅｒｍａｒｋ＿ｃｏｌｏｒ，…）に対応する設定値は、ＤＥＶＭＯＤＥ構造体のｐｌｕｇｉｎ領域に保存される。なお、本実施形態では、プラグインにより、ウォーターマークを印刷する機能が追加されているものとして説明するが、プラグインにより追加される機能は任意である。
【０１００】
このように、“ｒｅｇｉｓｔｏｒｙ”、“ｄｅｖｍｏｄｅ”および“ｐｌｕｇｉｎ”というキーで保存先を指定し、これらのキー内に記述された各設定名に対応する設定値はキーで指定された保存先に保存される。なお、ｗａｔｅｒｍａｒｋ＿ｔｅｘｔ，ｗａｔｅｒｍａｒｋ＿ｃｏｌｏｒは、それぞれウォーターマークとして印字するテキストとその色に対応している。
【０１０１】
また、図１４に示すレイアウト情報の例では、ｗａｔｅｒｍａｒｋ＿ｔｅｘｔ，ｗａｔｅｒｍａｒｋ＿ｃｏｌｏｒに対応し、ウォーターマークとして印字するテキストとその色を設定するためのＧＵＩコンポーネント（図１４の例ではコンボボックス）のレイアウトデータを記述する部分として、第１の実施形態において図４に示したレイアウト情報に、ウォーターマーク・テキスト設定のレイアウトデータおよびウォーターマーク・カラー設定のレイアウトデータを付加している。
【０１０２】
また、図１５に示す機能情報の例では、第１の実施形態において図７に示した機能情報に、ｗａｔｅｒｍａｒｋ＿ｔｅｘｔ，ｗａｔｅｒｍａｒｋ＿ｃｏｌｏｒに対応する設定の情報を付加し、これらについて定義している。図１５の例では、ウォーターマークとして印字するテキストとその色を設定するためのＧＵＩコンポーネント（ここではコンボボックス）で選択を行う際の選択可能な設定値の記述をしている（図１５の例では、ウォーターマーク・テキストの選択肢として“ｔｏｐ  ｓｅｃｒｅｔ”、“ｃｏｎｆｉｄｅｎｔｉａｌ”等を記述し、ウォーターマーク・カラーの選択肢として“ｇｒａｙ”、“ｒｅｄ”等を記述している）。図１６に、図１４に示したレイアウト情報および図１５に示した機能情報を読み込んだ場合に、プリンタドライバ１０６の設定画面表示部１２１が表示する印刷設定画面の例を示す。なお、当該印刷設定画面における選択肢およびデフォルトの設定値は機能情報による。
【０１０３】
（印刷設定部１１１の動作（設定時））
続いて、本実施形態におけるプリンタドライバ１０６の印刷設定部１１１の動作（設定時）について説明する。
【０１０４】
本実施形態における印刷設定部１１１の動作において、前述した第１の実施形態における印刷設定部１１１の動作と異なるのは、図８に示し前述したステップＳ８０６〜Ｓ８０８における具体的な動作である。基本的な処理の流れは、図８に示した処理の流れと同様であるので、以下では、図８に示したステップＳ８０６〜Ｓ８０８に対応する本実施形態の印刷設定部１１１によるステップＳ８０６’〜Ｓ８０８’（図１７）の処理の詳細について説明する。
【０１０５】
本実施形態においても、振分部１２２が、保存先情報を参照し、各設定値をその設定名に対応付けられている保存先に振り分ける点で第１の実施形態と共通しているが、保存先のＤＥＶＭＯＤＥ構造体のＰｒｉｖａｔｅ領域をｃｏｒｅ領域とｐｌｕｇｉｎ領域に区分けしたことにより、保存先が第１の実施形態ではレジストリとＤＥＶＭＯＤＥ構造体のＰｒｉｖａｔｅ領域の２つの領域であったものが、本実施形態ではレジストリとＤＥＶＭＯＤＥ構造体のＰｒｉｖａｔｅ領域内のｃｏｒｅ領域とｐｌｕｇｉｎ領域の３つの領域となっている。このため、本実施形態では、ステップＳ８０６’にて、振分部１２２が、保存先情報を参照し、保存先情報に記述されているキー（ｒｅｇｉｓｔｏｒｙとｄｅｖｍｏｄｅとｐｌｕｇｉｎ）に従って、各設定値をその設定名に対応付けられている保存先（レジストリとＤＥＶＭＯＤＥ構造体のｃｏｒｅ領域とｐｌｕｇｉｎ領域のいずれか）に振り分ける。
【０１０６】
次いで、ステップＳ８０７’にて、文字列化部１２３が、レジストリに保存する各設定値、ＤＥＶＭＯＤＥ構造体のｃｏｒｅ領域に保存する各設定値、およびＤＥＶＭＯＤＥ構造体のｐｌｕｇｉｎ領域に保存する各設定値をそれぞれ、文字列化する。
【０１０７】
さらに、ステップＳ８０８’にて、圧縮部１２４が、文字列化した各保存先用の各設定値に対して、Ｚｉｐ圧縮などによりデータ圧縮を施す。そして、このようにして生成された圧縮データが対応する保存先へ保存されることになる。
【０１０８】
（印刷設定部１１１の動作（ＧＵＩ表示時））
本実施形態におけるプリンタドライバ１０６の印刷設定部１１１の動作（ＧＵＩ表示時）において（図１８）、前述の第１の実施形態におけるプリンタドライバ１０６の印刷設定部１１１の動作（ＧＵＩ表示時）と異なる点は、保存先のＤＥＶＭＯＤＥ構造体のＰｒｉｖａｔｅ領域をｃｏｒｅ領域とｐｌｕｇｉｎ領域に区分けしたことにより、圧縮データの取得先がレジストリとｃｏｒｅ領域とｐｌｕｇｉｎ領域の３つの領域になった点である。すなわち、第１の実施形態において前述した図９に示すステップＳ９０２の処理段階において、本実施形態において圧縮データを取得する場合には、ＤＥＶＭＯＤＥ構造体のｃｏｒｅ領域とｐｌｕｇｉｎ領域とから、圧縮データを取得する（ステップＳ９０２’）。その他の動作は、第１の実施形態のフローと同様である。
【０１０９】
なお、本動作例は、プラグイン拡張された状態でｐｌｕｇｉｎ領域の圧縮データを必要としない下記の例とは異なり、ｐｌｕｇｉｎ領域の圧縮データを必要とするものとする。従って、ＤＥＶＭＯＤＥ構造体のｃｏｒｅ領域とｐｌｕｇｉｎ領域とから、圧縮データを取得している。なお、プラグイン拡張されていない場合や設定値を伴わないプララグインにより拡張されている場合は、ｐｌｕｇｉｎ領域に圧縮データが存在しないので、ｃｏｒｅ領域のみから圧縮データを取得することになる。
【０１１０】
（印刷設定部１１１の動作（ＧＵＩ表示を伴わないＶａｌｉｄａｔｉｏｎ処理実行））
アプリケーションからプリンタドライバへ渡される指令には印刷設定部１１１によるＧＵＩ表示を伴うものと伴わないものがある。また、ｐｌｕｇｉｎ領域の（設定値の情報を含む）圧縮データを必要としないものもある。そのような場合の動作例として、図１９に、印刷設定部１１１によるＧＵＩ表示を伴わずＶａｌｉｄａｔｉｏｎ処理を行う場合の動作を示す。
【０１１１】
図１９に示す動作が、上述した印刷設定部１１１の動作（ＧＵＩ表示時）と異なる点の１つは、上記ステップＳ９０２’に対応する図１９のステップＳ９０２”にてｐｌｕｇｉｎ領域から圧縮データを取得せずｃｏｒｅ領域のみから取得する点である。これは、例えば、その設定値に対する処理（ここでは、Ｖａｌｉｄａｔｉｏｎ処理）が不要なプラグインが利用されることを前提としている。このような場合には、プラグインがインストールされていても、ｃｏｒｅ領域のみから圧縮データを取得する。本動作例は、アプリケーションからの指令によっては、ｐｌｕｇｉｎ領域の圧縮データを必要としない場合があることから、そのような場合には、ｃｏｒｅ領域とｐｌｕｇｉｎ領域の双方に圧縮データがあったとしても、必要なｃｏｒｅ領域のデータのみ取得することを示している。このようにすることで、ｃｏｒｅ領域とｐｌｕｇｉｎ領域の双方の領域から圧縮データを取得する場合よりも、速度性能が改善する。
【０１１２】
また、本動作における他の相違点は、図１８に示すステップＳ９０６に対応する図１９のステップＳ１９０６において、ＧＵＩ表示をせずにＶａｌｉｄａｔｉｏｎ処理のみを行う点である。このＶａｌｉｄａｔｉｏｎ処理により、禁則に従った使用可能な機能、および設定可能な設定（設定範囲、設定値）が定められる。その他の処理は、図９および図１８に示した処理と同様である。
【０１１３】
なお、印刷設定部１１１の動作は、上記動作例に限るものではない。図１８および図１９を用いて上述した印刷設定部１１１の動作例に限らず、アプリケーションからの指令に応じて、プラグインで機能が拡張されたときに追加された設定値が必要とされない場合には、その指令に応じた処理において、ｃｏｒｅ領域のみからデータを取得することで、速度性能を改善することができる。
【０１１４】
（描画部１１２の動作）
本実施形態におけるプリンタドライバ１０６の描画部１１２の動作において、前述の第１の実施形態におけるプリンタドライバ１０６の描画部１１２の動作と異なる点は、保存先のＤＥＶＭＯＤＥ構造体のＰｒｉｖａｔｅ領域をｃｏｒｅ領域とｐｌｕｇｉｎ領域に区分けしたことにより、レジストリとｃｏｒｅ領域とｐｌｕｇｉｎ領域の３つの領域から圧縮データを取得する点である。すなわち、第１の実施形態において前述した図１０に示すステップＳ１００２の処理段階において、本実施形態においては、ＤＥＶＭＯＤＥ構造体のｃｏｒｅ領域とｐｌｕｇｉｎ領域とから、圧縮データを取得する（ステップＳ１００２’）。その他の動作は、図１０に示した第１の実施形態のフローと同様である。なお、プラグイン拡張されていない場合や設定値を伴わないプララグインにより拡張されている場合は、ｐｌｕｇｉｎ領域に圧縮データが存在しないので、ｃｏｒｅ領域のみから圧縮データを取得することになる。
【０１１５】
なお、第１の実施形態において図１１を用いて説明した、アプリケーションからの印刷設定画面呼出しおよび印刷要求に対するプリンタドライバの動作における一連の処理の流れは、本実施形態においても同様のものとなる。
【０１１６】
以上、第２の実施形態における第１の実施形態との相違点の詳細を説明した。本実施形態においても、第１の実施形態と同様に、印刷設定に係る各設定値を（特に、ＤＥＶＭＯＤＥ構造体等のデータ構造体に対して）、設定名との組として、可変長の文字列とする文字列化をし、さらに圧縮して保存する構成としている。ただし、本実施形態では、データ構造体（ＤＥＶＭＯＤＥ構造体）における圧縮データの保存先を２つの領域（ｃｏｒｅ領域およびｐｌｕｇｉｎ領域）に区分けし、ｃｏｒｅ領域には、プラグイン拡張される前の設定値を保存し、ｐｌｕｇｉｎ領域には、プラグインで機能が拡張されたときに追加される設定値を保存する。これにより、第１の実施形態と同様の効果に加え、アプリケーションからの指令に応じて、プラグインで機能が拡張されたときに追加された設定値が必要とされない場合には、プラグイン拡張されていてもｃｏｒｅ領域のみからデータを取得するようにすることで、速度性能を改善することができる。
【０１１７】
なお、上述した実施形態のプリンタドライバ１０６は、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１１８】
また、これらのプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【符号の説明】
【０１１９】
１００…ＰＣ
１０１…処理部
１０２…記憶部
１０３…通信部
１０４…アプリケーション
１０５…ＯＳ
１０６…プリンタドライバ
１１１…印刷設定部
１１２…描画部
１２１…設定画面表示部
１２２…振分部
１２３…文字列化部
１２４…圧縮部
１２５…設定保存部
１２６…圧縮データ取得部
１２７…解凍部
１３１…圧縮データ取得部
１３２…解凍部
１３３…印刷データ生成部
１５０…プリンタ
１６０…ネットワーク
【先行技術文献】
【特許文献】
【０１２０】
【特許文献１】特開２００８−０９７５７４号公報
【図１】
0005621336.tif 000002
【図２】
0005621336.tif 000003
【図３】
0005621336.tif 000004
【図４】
0005621336.tif 000005
【図５】
0005621336.tif 000006
【図６】
0005621336.tif 000007
【図７】
0005621336.tif 000008
【図８】
0005621336.tif 000009
【図９】
0005621336.tif 000010
【図１０】
0005621336.tif 000011
【図１１】
0005621336.tif 000012
【図１２】
0005621336.tif 000013
【図１３】
0005621336.tif 000014
【図１４】
0005621336.tif 000015
【図１５】
0005621336.tif 000016
【図１６】
0005621336.tif 000017
【図１７】
0005621336.tif 000018
【図１８】
0005621336.tif 000019
【図１９】
0005621336.tif 000020
【図２０】
0005621336.tif 000021