(57)【特許請求の範囲】
【請求項１】
印刷設定情報のデータ形式を、アプリケーションが少なくとも一部の情報を変更できない第１形式からアプリケーションが変更可能な第２形式に変換する第１スクリプトと、前記印刷設定情報のデータ形式を前記第２形式から前記第１形式に変換する第２スクリプトと、前記アプリケーションで変更された前記第２形式の前記印刷設定情報が設定可能か否かを検証し、設定できない前記印刷設定情報を設定可能な前記印刷設定情報に修正する第５スクリプトと、を記憶する記憶部と、
前記アプリケーションからの要求に応じて前記第１スクリプトおよび前記第２スクリプトの少なくとも一方を実行し、前記アプリケーションからの要求に応じて前記第５スクリプトを実行するスクリプト実行部と、
を備えることを特徴とする情報処理装置。
【請求項２】
新たな機能を実行するプラグインが追加された場合に、前記プラグインの印刷設定情報を表す追加設定情報のデータ形式を前記第１形式から前記第２形式に変換する第３スクリプトと、前記追加設定情報のデータ形式を前記第２形式から前記第１形式に変換する第４スクリプトと、を前記記憶部に保存する保存部をさらに備えること、
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プラグインが削除されたときに、前記第３スクリプトと前記第４スクリプトとを前記記憶部から削除する削除部をさらに備えたこと、
を特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記スクリプト実行部は、前記プラグインが追加されている場合、前記第１スクリプトの実行とともに前記第３スクリプトを実行し、前記第２スクリプトの実行とともに前記第４スクリプトを実行すること、
を特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記記憶部は、さらに、プリンタの前記印刷設定情報として設定可能な設定値を取得する第６スクリプトを記憶し、
前記スクリプト実行部は、さらに、前記アプリケーションからの要求に応じて前記第６スクリプトを実行すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記第１形式は、ＤＥＶＭＯＤＥ形式であり、前記第２形式はプリントチケット形式であること、
を特徴とする請求項１に記載の情報処理装置。
【請求項７】
印刷設定情報のデータ形式を、アプリケーションが少なくとも一部の情報を変更できない第１形式からアプリケーションが変更可能な第２形式に変換する第１スクリプトと、前記印刷設定情報のデータ形式を前記第２形式から前記第１形式に変換する第２スクリプトと、前記アプリケーションで変更された前記第２形式の前記印刷設定情報が設定可能か否かを検証し、設定できない前記印刷設定情報を設定可能な前記印刷設定情報に修正する第５スクリプトと、を記憶する記憶部を備えるコンピュータを、
前記アプリケーションからの要求に応じて前記第１スクリプトおよび前記第２スクリプトの少なくとも一方を実行し、前記アプリケーションからの要求に応じて前記第５スクリプトを実行するスクリプト実行部、
として機能させるためのプログラム。
【請求項８】
前記コンピュータを、
新たな機能を実行するプラグインが追加された場合に、前記プラグインの印刷設定情報を表す追加設定情報のデータ形式を前記第１形式から前記第２形式に変換する第３スクリプトと、前記追加設定情報のデータ形式を前記第２形式から前記第１形式に変換する第４スクリプトと、を前記記憶部に保存する保存部
としてさらに機能させるための請求項７に記載のプログラム。
【請求項９】
前記コンピュータを、
前記プラグインが削除されたときに、前記第３スクリプトと前記第４スクリプトとを前記記憶部から削除する削除部
としてさらに機能させるための請求項８に記載のプログラム。
【請求項１０】
前記スクリプト実行部は、前記プラグインが追加されている場合、前記第１スクリプトの実行とともに前記第３スクリプトを実行し、前記第２スクリプトの実行とともに前記第４スクリプトを実行すること、
を特徴とする請求項８に記載のプログラム。
【請求項１１】
前記記憶部は、さらに、プリンタの前記印刷設定情報として設定可能な設定値を取得する第６スクリプトを記憶し、
前記スクリプト実行部は、さらに、前記アプリケーションからの要求に応じて前記第６スクリプトを実行すること、
を特徴とする請求項７に記載のプログラム。
【請求項１２】
前記第１形式は、ＤＥＶＭＯＤＥ形式であり、前記第２形式はプリントチケット形式であること、
を特徴とする請求項７に記載のプログラム。
【請求項１３】
請求項７から１２のいずれか１つに記載のプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラムおよび記憶媒体に関する。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ（登録商標）プリンタドライバには、ＰｒｉｎｔＴｉｃｋｅｔという仕組みがある。ＰｒｉｎｔＴｉｃｋｅｔは、ベンダー固有の機能をアプリケーションから直接変更可能にするための仕組みである。
【０００３】
従来、アプリケーションとプリンタドライバとの間でのプリンタを制御するための情報（以降、印刷設定情報と言う）は、ＤＥＶＭＯＤＥと呼ばれる構造体でやり取りされていた。印刷設定情報には、印刷をどのように行うのかを表す情報（部数、集約数、ステープルの有無など）が含まれている。例えば、コピー部数を２部にする場合は、印刷設定情報にコピー部数が２であると入力して印刷を実行することになる。
【０００４】
ＤＥＶＭＯＤＥは、パブリック領域とプライベート領域とに分かれている。パブリック領域には、ベンダー共通の基本的な機能が予め定義されており、その定義は公開されている。このように、パブリック領域の情報は公開されているため、アプリケーションから設定を変更することが可能である。パブリック領域に含まれる機能で代表的なものは部数、印刷方向などがある。
【０００５】
一方、プライベート領域は、ベンダーが独自に定義可能な領域であり、ベンダー固有の機能が定義されている。一般的に、プライベート領域の情報は公開されていない。そのため、アプリケーションから直接、プライベート領域の機能（ベンダー固有の機能）の設定を変更することはできない。プライベート領域に定義されているベンダー固有の機能の設定を変更する方法としては、プリンタドライバが提供する印刷設定画面でユーザが設定を変更する方法が一般的である。
【０００６】
したがって、ＤＥＶＭＯＤＥを印刷設定情報として使用した場合、ユーザの印刷設定画面操作なしでベンダー固有の機能を特定の設定値に変更して印刷を実行するということが難しい。例えば、印刷部数はＤＥＶＭＯＤＥのパブリック領域に定義されている機能であるため、「指定された文書を必ず２部印刷する」というアプリケーションは実現可能である。一方、「プライベート領域に定義されている特定の機能を強制的に変更して印刷をする」というアプリケーションの実現は難しい。
【０００７】
ＰｒｉｎｔＴｉｃｋｅｔを印刷設定情報として使用することで、アプリケーションからＤＥＶＭＯＤＥのプライベート領域の操作が可能になる。ＰｒｉｎｔＴｉｃｋｅｔは、ＸＭＬ形式での印刷設定情報である。ＰｒｉｎｔＴｉｃｋｅｔでは、ＤＥＶＭＯＤＥ形式の場合にはプライベート領域で隠蔽されていたベンダー特有の機能の設定もアプリケーションに公開される。アプリケーションは、このＸＭＬ形式の印刷設定情報（ＸＭＬ印刷設定情報）で印刷設定を行い、設定した印刷設定情報をプリンタドライバにＤＥＶＭＯＤＥに変換させる。これにより、ＤＥＶＭＯＤＥのプライベート領域の操作を行うことができる。
【０００８】
例えば、ステープル機能をアプリケーションから強制的にＯＮにする場合は、アプリケーションは、ステープルがＯＮであるという情報を含むＰｒｉｎｔＴｉｃｋｅｔ(ＸＭＬ印刷設定情報)を生成し、ドライバにそのＰｒｉｎｔＴｉｃｋｅｔをＤＥＶＭＯＤＥに変換するように依頼する。プリンタドライバは、ＰｒｉｎｔＴｉｃｋｅｔの情報を解読し、ＤＥＶＭＯＤＥのプライベート領域に定義されているステープルの設定をＯＮに変更し、そのＤＥＶＭＯＤＥをアプリケーションに返す。アプリケーションは、そのＤＥＶＭＯＤＥを使用して印刷を実行することで、ステープルをＯＮとして印刷を行うことができる。
【０００９】
特許文献１では、プリンタドライバに、制御対象デバイスの能力を示す情報（ＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓ）を記憶させ、指定されたＰｒｉｎｔＴｉｃｋｅｔをデバイスの制御に使用する指示を受け付けた場合に、そのＰｒｉｎｔＴｉｃｋｅｔの内容を、デバイスの制御に使用する設定内容に反映させる技術が提案されている。これにより、特定のデバイスドライバを用いて行った設定の内容を、他のデバイスドライバを用いる場合でも容易かつ適切に利用できるようになる。
【００１０】
新しい機能が登場し、プラグイン等でプリンタに機能が追加された場合、および、機能の設定値が追加または変更された場合は、ＰｒｉｎｔＴｉｃｋｅｔの機能名や設定値も同様に追加または変更する必要がある。すなわち、プリンタの機能の追加や変更によってＰｒｉｎｔＴｉｃｋｅｔで定義されている機能名および設定値は非常に影響を受けやすい。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、一般にＰｒｉｎｔＴｉｃｋｅｔを制御するモジュールはバイナリ形式であるため、ＰｒｉｎｔＴｉｃｋｅｔで定義される機能名や設定値に変更があった場合、再度モジュールをコンパイルしなおさなくてはならないという問題があった。
【００１２】
本発明は、上記に鑑みてなされたものであって、プリンタの機能の追加または変更等があった場合の作業負担を軽減することができる情報処理装置、プログラムおよび記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本発明は、印刷設定情報のデータ形式を、アプリケーションが少なくとも一部の情報を変更できない第１形式からアプリケーションが変更可能な第２形式に変換する第１スクリプトと、前記印刷設定情報のデータ形式を前記第２形式から前記第１形式に変換する第２スクリプトと、前記アプリケーションで変更された前記第２形式の前記印刷設定情報が設定可能か否かを検証し、設定できない前記印刷設定情報を設定可能な前記印刷設定情報に修正する第５スクリプトと、を記憶する記憶部と、前記アプリケーションからの要求に応じて前記第１スクリプトおよび前記第２スクリプトの少なくとも一方を実行し、前記アプリケーションからの要求に応じて前記第５スクリプトを実行するスクリプト実行部と、を備えることを特徴とする。
【００１４】
また、本発明は、印刷設定情報のデータ形式を、アプリケーションが少なくとも一部の情報を変更できない第１形式からアプリケーションが変更可能な第２形式に変換する第１スクリプトと、前記印刷設定情報のデータ形式を前記第２形式から前記第１形式に変換する第２スクリプトと、前記アプリケーションで変更された前記第２形式の前記印刷設定情報が設定可能か否かを検証し、設定できない前記印刷設定情報を設定可能な前記印刷設定情報に修正する第５スクリプトと、を記憶する記憶部を備えるコンピュータを、前記アプリケーションからの要求に応じて前記第１スクリプトおよび前記第２スクリプトの少なくとも一方を実行し、前記アプリケーションからの要求に応じて前記第５スクリプトを実行するスクリプト実行部、として機能させるためのプログラムである。
【００１５】
また、本発明は、上記プログラムを記録したコンピュータ読み取り可能な記憶媒体である。
【発明の効果】
【００１６】
本発明によれば、プリンタの機能の追加または変更等があった場合の作業負担を軽減することができるという効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】図１は、第１の実施の形態にかかる情報処理装置の構成例を示すブロック図である。
【図２】図２は、設定管理部が管理する印刷設定情報の一例を示す図である。
【図３】図３は、ＸＭＬ印刷設定情報のデータ構造の一例を示す図である。
【図４】図４は、ＸＭＬ印刷設定情報の操作インターフェイスの一例を示す図である。
【図５】図５は、ＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔを記述したスクリプトの一例を示す図である。
【図６】図６は、ＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅを記述したスクリプトの一例を示す図である。
【図７】図７は、ＶａｌｉｄａｔｅＰｒｉｎｔＴｉｃｋｅｔを記述したスクリプトの一例を示す図である。
【図８】図８は、ＤＥＶＭＯＤＥ形式の印刷設定情報をＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式に変換する処理の一例を示すシーケンス図である。
【図９】図９は、ＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式の印刷設定情報をＤＥＶＭＯＤＥ形式に変換する処理の一例を示すシーケンス図である。
【図１０】図１０は、ＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式の印刷設定情報を修正する処理の一例を示すシーケンス図である。
【図１１】図１１は、プリンタの性能情報を取得する処理の一例を示すシーケンス図である。
【図１２】図１２は、スクリプトファイル記憶部のファイルの保存形式の一例を示す図である。
【図１３】図１３は、機能が追加または変更された場合のファイルの差し替え作業を例示する図である。
【図１４】図１４は、第２の実施の形態にかかる情報処理装置の構成例を示すブロック図である。
【図１５】図１５は、プラグインで機能が追加された場合のスクリプトの管理方法の一例を示す図である。
【図１６】図１６は、プラグインがインストールされている場合のＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔの処理の一例を示すシーケンス図である。
【図１７】図１７は、情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照して、この発明にかかる情報処理装置、プログラムおよび記憶媒体の一実施の形態を詳細に説明する。
【００１９】
（第１の実施の形態）
図１は、第１の実施の形態にかかる情報処理装置の構成例を示すブロック図である。図１に示すように、情報処理装置１００は、アプリケーション１０１と、ＯＳ（オペレーティングシステム）１０２と、通信Ｉ／Ｆ１０３とを備えている。そして、通信Ｉ／Ｆ１０３は、プリンタ１５０とネットワークを介して接続している。これにより情報処理装置１００から、プリンタ１５０に対して印刷要求を行うことができる。
【００２０】
プリンタ１５０は、当該プリンタ１５０が備えた（図示しない）操作部から入力された印刷要求に応じて印刷処理を行う。さらに、プリンタ１５０は、情報処理装置１００と接続するインターフェイスを備え、ネットワークを介して接続された情報処理装置１００からの印刷要求に応じて印刷処理を行う。本実施の形態にかかるプリンタ１５０は、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも２つの機能を有する複合機を適用する。なお、複合機以外ではなく単なる印刷処理のみを行うプリンタであっても良い。
【００２１】
特に近年の複合機では、ユーザの要求に基づいて機能の追加、削除が容易になる傾向にある。例えば、ユーザがステープル機能を追加したい場合には、当該プリンタのメンテナンスに連絡を取ればよい。これにより、メンテナンスが、プリンタに機能（例えば、ステープル機能）を追加するためのプログラム等をインストールすることで、当該機能の利用が可能となる。このような機能（例えばステープル機能）の追加が行われた場合、情報処理装置から当該機能を使用するためには、当該機能に対応したプリンタドライバが必要になる。
【００２２】
しかしながら、プリンタドライバは、バイナリ形式で提供されているため、プリンタに追加した機能に対応するためには、プログラムを書き直し、再コンパイルしたプリンタドライバをインストールする必要があった。そこで、本実施の形態においてはこのような作業負担を軽減する技術について提案する。
【００２３】
情報処理装置１００のアプリケーション１０１は、後述するＯＳ１０２上で動作するソフトウェアであり、ＯＳ１０２内に対して印刷要求を行うものとする。
【００２４】
ＯＳ１０２は、プリンタドライバ１１１と、ＧＤＩ（Graphics  Device  Interface）１１２と、スプーラ１１３とを備え、情報処理装置１００全体の制御を行う。
【００２５】
ＧＤＩ１１２は、ＯＳ１０２が備えるサブシステムの１つであり、描画処理を行う。そして、ＧＤＩ１１２は、ＯＳ１０２がアプリケーション１０１等から印刷要求を受け付けた場合に、プリンタドライバ１１１を呼び出して、印刷処理を要求する。
【００２６】
スプーラ１１３は、ＯＳ１０２が備えるサブシステムの１つであり、プリンタ１５０に送信する印刷ジョブを一時的に蓄積するモジュールとする。
【００２７】
プリンタドライバ１１１は、描画部１２１と、印刷設定部１３０と、設定管理部１２２と、スクリプトファイル記憶部１２３と、を備え、プリンタ１５０に印刷要求を行うための処理を行う。
【００２８】
描画部１２１は、印刷部数やステープルなどのプリンタ１５０のジョブを制御するコマンドを生成し、プリンタ１５０に出力する。また、描画部１２１は、印刷物の内容をプリンタ１５０に描画するためのコマンドを生成し、プリンタ１５０に出力する。
【００２９】
設定管理部１２２は、印刷設定情報を管理する。例えば、設定管理部１２２は、現在設定されている印刷設定情報、印刷設定情報の設定値のデフォルト値、および、設定可能な設定値（印刷性能）を保持する。印刷設定情報は設定管理部１２２独自の機能名と設定値で管理されている。
【００３０】
図２は、設定管理部１２２が管理する印刷設定情報の一例を示す図である。図２は、設定管理部１２２が独自のＸＭＬ形式（以下、独自ＸＭＬ形式という）で印刷設定情報を管理する例を示している。例えば、印刷部数は「copies」という機能名で管理されている。なお、この機能名は、ＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式の印刷設定情報（ＸＭＬ印刷設定情報）の部数の機能名「psk:JobCopiesAllDocuments」とは異なっている。
【００３１】
なお、管理方法はこれに限られるものではなく、例えば、ＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式（ＸＭＬ印刷設定情報）またはＤＥＶＭＯＤＥ形式と同様の機能名および設定値で管理するように構成してもよい。
【００３２】
図３は、ＸＭＬ印刷設定情報のデータ構造の一例を示す図である。図３では、ＸＭＬ印刷設定情報として、「部数（psk:JobCopiesAllDocuments）」、「集約（psk:JobNUpAllDocumentsContiguously）」、および「ステープル（psk:JobStapleAllDocuments）」などの情報が記述された例が示されている。なお、それぞれの機能の記述形式は予め規定されている。
【００３３】
図１に戻り、設定管理部１２２は、不正な印刷設定情報を修正する禁則エンジンとしての機能をさらに備えている。例えば、設定管理部１２２は、設定可能な設定値以外が指定された場合に、デフォルト値を設定する、または、指定された設定値に変更せずに無視する、などの方法により、不正な印刷設定情報を修正する。
【００３４】
スクリプトファイル記憶部１２３は、後述するスクリプト実行部１３４が実行可能なスクリプトが記述されたテキストファイル（スクリプトファイル）を記憶する。当該スクリプトファイルは、テキストで記述されたスクリプトであって、プリンタ１５０が実行するコマンドの生成を行うためのスクリプトとする。本実施の形態においては、スクリプトファイルの形式としてＬｕａ形式を適用するが、周知の形式を問わず、様々な形式を適用して良い。
【００３５】
これらスクリプトファイルの利用手法としては、いずれの手法を用いても良く、例えば、テキストファイルとしてＯＳ１０２にデプロイされる形態や、複数のテキストファイルを１つのアーカイブファイルに圧縮して、実行時に（図示しない）メモリ上、またはファイルシステム上に展開して利用するという形態を適用しても良い。なお、具体的なスクリプトファイルの例については後述する。
【００３６】
印刷設定部１３０は、印刷設定情報の変更要求を受け付け、変更要求に応じて印刷設定情報を変更し、要求元に返す。印刷設定部１３０は、ＤＥＶＭＯＤＥ形式設定処理部１３１と、ＸＭＬ形式設定処理部１３２と、ＸＭＬ管理部１３３と、スクリプト実行部１３４と、を備えている。
【００３７】
ＤＥＶＭＯＤＥ形式設定処理部１３１は、ＤＥＶＭＯＤＥ形式で受け取った印刷設定情報を独自ＸＭＬ形式の印刷設定情報に変換して設定管理部１２２に入力する。また、ＤＥＶＭＯＤＥ形式設定処理部１３１は、設定管理部１２２から取得した独自ＸＭＬ形式の印刷設定情報をＤＥＶＭＯＤＥ形式に変換してＯＳ１０２に渡す。なお、要求元がアプリケーション１０１の場合など、アプリケーション１０１がＯＳ１０２を経由してＤＥＶＭＯＤＥ形式の印刷設定情報を取得する場合もある。
【００３８】
ＸＭＬ形式設定処理部１３２は、ＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式で受け取った印刷設定情報（ＸＭＬ印刷設定情報）を、スクリプト処理により独自ＸＭＬ形式の印刷設定情報に変換して設定管理部１２２に入力する。また、ＸＭＬ形式設定処理部１３２は、設定管理部１２２から取得した独自ＸＭＬ形式の印刷設定情報をスクリプト処理でＸＭＬ形式（ＸＭＬ印刷設定情報）に変換してＯＳ１０２に渡す。なお、要求元がアプリケーション１０１の場合など、アプリケーション１０１がＯＳ１０２を経由してＸＭＬ形式の印刷設定情報を取得する場合もある。
【００３９】
ＸＭＬ管理部１３３は、ＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式の印刷設定情報（ＸＭＬ印刷設定情報）を管理する。例えば、ＸＭＬ管理部１３３は、指定されたＰａｔｈに対する値の設定、および、指定されたＰａｔｈからの値の取得などを実行する。
【００４０】
スクリプト実行部１３４は、アプリケーション１０１等からの要求に応じてＸＭＬ形式設定処理部１３２から指定されたスクリプトを実行する。
【００４１】
次に、スクリプト（スクリプトファイル）の詳細について説明する。上述のように、スクリプトは、ＸＭＬ形式設定処理部１３２がＸＭＬ印刷設定情報を操作するために用いられる。
【００４２】
図４は、ＸＭＬ印刷設定情報の操作インターフェイスの一例を示す図である。この操作インターフェイスにより、ベンダー固有の機能をアプリケーションから直接変更可能にするＰｒｉｎｔＴｉｃｋｅｔ機能が実現される。本実施の形態では、この操作インターフェイスがスクリプトファイルに記述される。
【００４３】
図４に示すように、本実施の形態では４つの操作インターフェイスを用いる。
【００４４】
ＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔは、入力されたＤＥＶＭＯＤＥ形式の印刷設定情報を、ＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式（ＸＭＬ印刷設定情報）に変換して返すインターフェイスである。ＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔを記述したスクリプトが、印刷設定情報のデータ形式を、アプリケーション１０１が変更できない印刷設定情報（プライベート領域の情報）を含むＤＥＶＭＯＤＥ形式（第１形式）からアプリケーション１０１が変更可能なＸＭＬ印刷設定情報（第２形式）に変換するスクリプト（第１スクリプト）に相当する。
【００４５】
ＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅは、入力されたＸＭＬ印刷設定情報をＤＥＶＭＯＤＥ形式の印刷設定情報に変換して返すインターフェイスである。ＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅを記述したスクリプトが、印刷設定情報のデータ形式を、ＸＭＬ印刷設定情報（第２形式）からＤＥＶＭＯＤＥ形式（第１形式）に変換するスクリプト（第２スクリプト）に相当する。
【００４６】
ＶａｌｉｄａｔｅＰｒｉｎｔＴｉｃｋｅｔは、入力されたＸＭＬ印刷設定情報の妥当性を検証し、不正な設定値が入力された場合には不正な設定値を修正して返すインターフェイスである。ＶａｌｉｄａｔｅＰｒｉｎｔＴｉｃｋｅｔを記述したスクリプトが、ＸＭＬ印刷設定情報（第２形式）が設定可能か否かを検証し、設定できないＸＭＬ印刷設定情報を設定可能なＸＭＬ印刷設定情報に修正するスクリプト（第５スクリプト）に相当する。
【００４７】
ＧｅｔＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓは、プリンタ１５０のスペック、すなわち、プリンタ１５０の印刷設定情報として設定可能な設定値の情報を返すインターフェイスである。ＧｅｔＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを記述したスクリプトが、ＸＭＬ印刷設定情報に対して設定可能な設定値を取得するスクリプト（第６スクリプト)に相当する。
【００４８】
次に、スクリプトファイルの具体例について図５〜図７を用いて説明する。図５は、ＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔを記述したスクリプトの一例を示す図である。図６は、ＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅを記述したスクリプトの一例を示す図である。図７は、ＶａｌｉｄａｔｅＰｒｉｎｔＴｉｃｋｅｔを記述したスクリプトの一例を示す図である。
【００４９】
図５のＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔは、設定管理部１２２から独自ＸＭＬ形式の印刷設定情報の一覧を取得し、特定の機能の設定値を仕様通りにＸＭＬ管理部１３３に設定する。
【００５０】
ｘｍｌｍｏｄｕｌｅおよびｓｅｔｔｉｎｇｍｏｄｕｌｅは、それぞれＸＭＬ管理部１３３が管理するＸＭＬ印刷設定情報、および、設定管理部１２２が管理する独自ＸＭＬ形式の印刷設定情報に対応する。
【００５１】
「ｇｅｔ＿ｓｅｔｔｉｎｇｓ」は、印刷設定情報の一覧を取得する関数を表す。「ｓｅｔ＿ｅｌｅｍｅｎｔ」および「ｓｅｔ＿ａｔｔｒｉｂｕｔｅ」は、それぞれＸＭＬのエレメントおよび属性を設定するための関数を表す。これらの関数により、指定されたＰａｔｈに対する値の設定が実行できる。
【００５２】
なお、独自ＸＭＬ形式とＸＭＬ印刷設定情報との間で、機能名または設定値が異なる場合は、ＸＭＬ印刷設定情報の機能名または設定値への変換が必要になる。図５では、Ｓｔａｐｌｅの設定値の変換を行う例が示されている。すなわち、図５の例では独自ＸＭＬ形式の設定値である「ｏｆｆ」または「ｏｎ」が、ＸＭＬ印刷設定情報の設定値である「ｐｓｋ：Ｎｏｎｅ」または「ｐｓｋ：Ｏｎ」に変換される。
【００５３】
図６のＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅは、ＸＭＬ管理部１３３から特定のＰａｔｈの値を取得し、設定管理部１２２に取得した設定値を設定する。
【００５４】
「ｇｅｔ＿ｔｅｘｔ」は、設定されている設定値を取得する関数を表す。「ｓｅｔ＿ｖａｌｕｅ」は、設定値を設定する関数を表す。「ｇｅｔ＿ａｔｔｒｉｂｕｔｅ」は、設定されている機能名（属性）を取得する関数を表す。
【００５５】
図５と同様に、独自ＸＭＬ形式とＸＭＬ印刷設定情報との間で、機能名または設定値が異なる場合は、ＸＭＬ印刷設定情報の機能名または設定値への変換が必要になる。図６では、Ｓｔａｐｌｅの設定値の変換を行う例が示されている。
【００５６】
図７のＶａｌｉｄａｔｅＰｒｉｎｔＴｉｃｋｅｔは、ＸＭＬ管理部１３３が管理するＸＭＬ印刷設定情報の妥当性を検証する。具体的には、ＸＭＬ管理部１３３から特定のＰａｔｈの値を取得し、設定管理部１２２に取得した設定値を設定し、設定管理部１２２から独自ＸＭＬ形式の印刷設定情報の一覧を取得し、取得した特定の機能の設定値を仕様通りにＸＭＬ管理部１３３に設定する。上述のように、設定管理部１２２は禁則エンジンとして機能する。すなわち、特定の設定値を設定管理部１２２に設定したときに、不正な設定値であれば設定管理部１２２が正常な設定値に修正する。これにより、再度、設定管理部１２２から印刷設定情報を取得すれば、修正された正常なＸＭＬ印刷設定情報を得ることができる。
【００５７】
なお、この処理の流れは、ＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅとＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔと同等な処理である。すなわち、それぞれの関数を順に呼ぶことでＶａｌｉｄａｔｅＰｒｉｎｔＴｉｃｋｅｔが実現できる。
【００５８】
ＧｅｔＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓは、設定管理部１２２から情報を取得してＸＭＬに変換するという流れはＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔと同様である。すなわち、現在設定されている設定値等を取得する代わりに、設定可能なすべての設定値等を取得する点が異なるのみである。したがって、ＧｅｔＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓの詳細については省略する。
【００５９】
次に、各スクリプトが実行される各処理のシーケンスについて図８〜図１１を用いて説明する。図８は、ＤＥＶＭＯＤＥ形式の印刷設定情報をＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式に変換する処理の一例を示すシーケンス図である。この処理の中で、ＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔのスクリプト（図５）が実行される。
【００６０】
まず、アプリケーション１０１が、印刷設定情報をＤＥＶＭＯＤＥ形式からＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式へ変換することをＯＳ１０２に要求する（ステップＳ１０１）。ＯＳ１０２は、ＤＥＶＭＯＤＥ形式からＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式へ変換することを印刷設定部１３０に要求する（ステップＳ１０２）。
【００６１】
印刷設定部１３０は、ＤＥＶＭＯＤＥ形式の印刷設定情報を設定することをＤＥＶＭＯＤＥ形式設定処理部１３１に要求する（ステップＳ１０３）。ＤＥＶＭＯＤＥ形式設定処理部１３１は、ＤＥＶＭＯＤＥ形式の印刷設定情報を設定管理部１２２に設定する（ステップＳ１０４）。なお、例えば処理が正常に終了した場合は、正常に終了したことを表す情報が要求元に返される。図８〜図１１の各シーケンス図では、点線の矢印がこのようにして処理結果が要求元に返ることを表している。
【００６２】
次に、印刷設定部１３０が、ＸＭＬ形式の印刷設定情報（ＸＭＬ印刷設定情報）の生成をＸＭＬ形式設定処理部１３２に要求する（ステップＳ１０５）。ＸＭＬ形式設定処理部１３２は、ＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔのスクリプト（図５）の実行をスクリプト実行部１３４に依頼する（ステップＳ１０６）。
【００６３】
スクリプト実行部１３４は、ＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔのスクリプトを実行する（ステップＳ１０７）。このスクリプトの中では、設定管理部１２２に設定されている印刷設定情報の一覧取得処理（ステップＳ１０８）、機能名または設定値をＸＭＬ印刷設定情報用に変換する処理（ステップＳ１０９）、および、ＸＭＬ管理部１３３に設定値を設定する処理（ステップＳ１１０）などが、スクリプトファイル５０１の記述に応じて実行される。なお、スクリプトファイル５０１は、図５のようなＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔのスクリプトが記述されたファイルを表す。
【００６４】
次に、ＸＭＬ形式設定処理部１３２が、ＸＭＬ管理部１３３から、ＸＭＬ印刷設定情報を取得する（ステップＳ１１１）。この後、例えば、取得されたＸＭＬ印刷設定情報がＯＳ１０２を介してアプリケーション１０１に返される。
【００６５】
図９は、ＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式の印刷設定情報をＤＥＶＭＯＤＥ形式に変換する処理の一例を示すシーケンス図である。この処理の中で、ＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅのスクリプト（図６）が実行される。
【００６６】
まず、アプリケーション１０１が、印刷設定情報をＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式からＤＥＶＭＯＤＥ形式へ変換することをＯＳ１０２に要求する（ステップＳ２０１）。ＯＳ１０２は、ＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式からＤＥＶＭＯＤＥ形式へ変換することを印刷設定部１３０に要求する（ステップＳ２０２）。
【００６７】
印刷設定部１３０は、変換が要求されたＸＭＬ印刷設定情報の設定値を設定管理部１２２に設定する（ステップＳ２０３）。次に、印刷設定部１３０は、ＸＭＬ印刷設定情報の設定管理部１２２への設定をＸＭＬ形式設定処理部１３２に要求する（ステップＳ２０４）。ＸＭＬ形式設定処理部１３２は、ＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅのスクリプト（図６）の実行をスクリプト実行部１３４に依頼する（ステップＳ２０５）。
【００６８】
スクリプト実行部１３４は、ＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅのスクリプトを実行する（ステップＳ２０６）。このスクリプトの中では、ＸＭＬ管理部１３３に設定されている印刷設定情報の取得処理（ステップＳ２０７）、機能名または設定値を設定管理部１２２用（独自ＸＭＬ形式）に変換する処理（ステップＳ２０８）、および、設定管理部１２２に設定値を設定する処理（ステップＳ２０９）などが、スクリプトファイル５０２の記述に応じて実行される。なお、スクリプトファイル５０２は、図６のようなＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅのスクリプトが記述されたファイルを表す。
【００６９】
次に、印刷設定部１３０が、ＤＥＶＭＯＤＥ形式設定処理部１３１に対して、ＤＥＶＭＯＤＥ形式の印刷設定情報の生成を要求する（ステップＳ２１０）。ＤＥＶＭＯＤＥ形式設定処理部１３１は、設定管理部１２２から印刷設定情報の各設定値を取得する（ステップＳ２１１）。次に、ＤＥＶＭＯＤＥ形式設定処理部１３１は、取得した設定値を設定したＤＥＶＭＯＤＥ形式の印刷設定情報を生成する（ステップＳ２１２）。この後、例えば、生成されたＤＥＶＭＯＤＥ形式の印刷設定情報がＯＳ１０２を介してアプリケーション１０１に返される。
【００７０】
図１０は、ＰｒｉｎｔＴｉｃｋｅｔのＸＭＬ形式の印刷設定情報を修正する処理の一例を示すシーケンス図である。この処理の中で、ＶａｌｉｄａｔｅＰｒｉｎｔＴｉｃｋｅｔのスクリプト（図７）が実行される。
【００７１】
まず、アプリケーション１０１が、ＸＭＬ印刷設定情報の修正をＯＳ１０２に要求する（ステップＳ３０１）。ＯＳ１０２は、ＸＭＬ印刷設定情報の修正を印刷設定部１３０に要求する（ステップＳ３０２）。印刷設定部１３０は、修正が要求されたＸＭＬ印刷設定情報の設定値をＸＭＬ管理部１３３に設定する（ステップＳ３０３）。次に、印刷設定部１３０は、ＸＭＬ印刷設定情報の修正をＸＭＬ形式設定処理部１３２に要求する（ステップＳ３０４）。
【００７２】
この後、ＸＭＬ形式設定処理部１３２は、ＰｒｉｎｔＴｉｃｋｅｔＴｏＤｅｖｍｏｄｅ（ステップＳ３０５〜ステップＳ３０９）、ＸＭＬ印刷設定情報のクリア（ステップＳ３１０）、および、ＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔ（ステップＳ３１１〜ステップＳ３１５）を順次実行する。
【００７３】
ステップＳ３０５からステップＳ３０９は、図９のステップＳ２０５からステップＳ２０９までと同様であるため説明を省略する。また、ステップＳ３１１からステップＳ３１５は、図８のステップＳ１０６からステップＳ１１０までと同様であるため説明を省略する。なお、スクリプトファイル５０３は、図７のようなＶａｌｉｄａｔｅＰｒｉｎｔＴｉｃｋｅｔのスクリプトが記述されたファイルを表す。
【００７４】
ステップＳ３１０の後、ＸＭＬ形式設定処理部１３２が、ＸＭＬ管理部１３３から、修正されたＸＭＬ印刷設定情報を取得する（ステップＳ３１６）。この後、例えば、取得されたＸＭＬ印刷設定情報がＯＳ１０２を介してアプリケーション１０１に返される。
【００７５】
図１１は、プリンタの性能情報を取得する処理の一例を示すシーケンス図である。この処理の中で、ＧｅｔＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓのスクリプトが実行される。
【００７６】
まず、アプリケーション１０１が、ＸＭＬ形式のプリンタ性能情報の取得をＯＳ１０２に要求する（ステップＳ４０１）。ＯＳ１０２は、ＸＭＬ形式のプリンタ性能情報の取得を印刷設定部１３０に要求する（ステップＳ４０２）。印刷設定部１３０は、ＸＭＬ形式のプリンタ性能情報の取得をＸＭＬ形式設定処理部１３２に要求する（ステップＳ４０３）。
【００７７】
ＸＭＬ形式設定処理部１３２は、ＧｅｔＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓのスクリプトの実行をスクリプト実行部１３４に依頼する（ステップＳ４０４）。
【００７８】
スクリプト実行部１３４は、ＧｅｔＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓのスクリプトを実行する（ステップＳ４０５）。このスクリプトの中では、設定管理部１２２に設定可能な設定値を表す印刷性能情報の取得処理（ステップＳ４０６）、印刷性能情報をＸＭＬ印刷設定情報用に変換する処理（ステップＳ４０７）、および、ＸＭＬ管理部１３３に印刷設定情報を設定する処理（ステップＳ４０８）などが、スクリプトファイル５０４の記述に応じて実行される。なお、スクリプトファイル５０４は、ＧｅｔＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓのスクリプトが記述されたファイルを表す。
【００７９】
次に、印刷設定部１３０が、ＸＭＬ管理部１３３から、ＸＭＬ印刷設定情報を取得する（ステップＳ４０９）。この後、例えば、取得されたＸＭＬ印刷設定情報がＯＳ１０２を介してアプリケーション１０１に返される。
【００８０】
次に、スクリプトファイル記憶部１２３のファイルの保存形式について説明する。図１２は、スクリプトファイル記憶部１２３のファイルの保存形式の一例を示す図である。図１２では、図４で示した機能ごとにスクリプトファイルを分けて保存する形式の例がしめされている。なお、保存形式はこれに限られず、例えば１つのスクリプトファイルにすべての機能（スクリプト）を載せることも可能である。また、例えば複数のスクリプトファイルのそれぞれに、各スクリプトを任意の組み合わせで保存するように構成してもよい。
【００８１】
図１３は、機能が追加または変更された場合のファイルの差し替え作業を例示する図である。図１３では、スクリプトファイル５０２を、機能が追加または変更された新たなスクリプトファイル５０２−２に差し替える例が示されている。
【００８２】
以上のように、本実施の形態によれば、ＸＭＬ印刷設定情報を操作する機能がスクリプトファイルで構成されているので、機能が変更された場合でもスクリプトファイルの変更および差し替えのみだけで済み、モジュールのコンパイルが不要である。すなわち、プリンタの機能の追加または変更があった場合でもコンパイルが必要となるバイナリモジュールを変更することなく、プリンタに追加または変更された機能をＰｒｉｎｔＴｉｃｋｅｔでサポートすることができる。
【００８３】
（第２の実施の形態）
第２の実施の形態では、プラグインにより機能が追加可能な情報処理装置の構成例について説明する。
【００８４】
図１４は、第２の実施の形態にかかる情報処理装置２００の構成例を示すブロック図である。図１４に示すように、情報処理装置２００は、アプリケーション１０１と、ＯＳ２０２と、通信Ｉ／Ｆ１０３とを備えている。
【００８５】
第２の実施の形態では、ＯＳ２０２のプリンタドライバ２１１に保存部２２４と削除部２２５とを追加したことが第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる情報処理装置１００の構成を表すブロック図である図１と同様であるので、同一符号を付し、ここでの説明は省略する。
【００８６】
保存部２２４は、プラグインが追加された場合に、当該プラグインで用いる印刷設定情報（追加設定情報 ）のデータ形式を変換するためのスクリプトをスクリプトファイル記憶部１２３に保存する。削除部２２５は、プラグインが削除されたときに、当該プラグインで用いる印刷設定情報のデータ形式を変換するためのスクリプトをスクリプトファイル記憶部１２３から削除する。
【００８７】
図１５は、プラグインで機能が追加された場合のスクリプトの管理方法の一例を示す図である。図１５は、プラグインＡおよびプラグインＢの２つのプラグインが、プリンタドライバ２１１をインストールした後に追加された場合のスクリプトファイル記憶部１２３の構成例を示している。図１５に示すように、この例では、「プラグイン」というフォルダに「Ａ（プラグインＡ用）」および「Ｂ（プラグインＢ用）」という２つのフォルダが存在し、この２つのフォルダ内に、それぞれのＸＭＬ印刷設定情報を処理するためのスクリプトがインストールされている。
【００８８】
削除部２２５は、プラグインがアンインストール（削除）される際に、アンインストールされるプラグインに対応するフォルダ内のファイルおよび当該フォルダを削除する。
【００８９】
次に、プラグインがインストールされている際のスクリプトの処理について説明する。図１６は、プラグインＡとプラグインＢがインストールされている場合のＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔの処理の一例を示すシーケンス図である。なお、図１６は、図８のステップＳ１０７からステップＳ１１０に対応する処理のシーケンスを表す。その他の処理は図８と同様であるため省略している。
【００９０】
以下では、便宜上、プラグインを追加する前にスクリプトファイル記憶部１２３にインストールされているスクリプトファイルをＣｏｒｅのスクリプトファイルと呼ぶ。図１６では、スクリプトファイル６０１がＣｏｒｅのスクリプトファイルに相当する。なお、図１６では、スクリプトファイル６０２および６０３が、それぞれプラグインＡおよびＢに対応するスクリプトファイルを表す。
【００９１】
ステップＳ５０１からステップＳ５０４までは、図８のステップＳ１０７からステップＳ１１０までと同様の処理が実行される。
【００９２】
Ｃｏｒｅのスクリプトファイル６０１は、自ファイル内の処理が終わる段階で、スクリプト実行部１３４に対してスクリプトファイル記憶部１２３にインストールされている同名のスクリプトファイルを実行するように要求する（ステップＳ５０５）。
【００９３】
スクリプト実行部１３４は、この要求に応じて同名のスクリプトファイル（図１６の例では「ＤｅｖｍｏｅＴｏＰｒｉｎｔＴｉｃｋｅｔ．ｌｕａ」）をスクリプトファイル記憶部１２３から検索する（ステップＳ５０６）。
【００９４】
検索された場合は、スクリプト実行部１３４は、検索されたスクリプトファイルを順次実行する。図１６の例では、プラグインＡに対応するスクリプトファイル６０２（ステップＳ５０７〜ステップＳ５１０）、および、プラグインＢに対応するスクリプトファイル６０３（ステップＳ５１１〜ステップＳ５１４）を順次実行する。なお、各スクリプトファイルによる処理は、ステップＳ５０１からステップＳ５０４と同様である。
【００９５】
ＤｅｖｍｏｄｅＴｏＰｒｉｎｔＴｉｃｋｅｔ以外のスクリプトについても、同様の方法により追加されているプラグインに対応するスクリプトを実行する。
【００９６】
なお、プラグインに対応するスクリプトの実行方法は上記に限られるものではない。Ｃｏｒｅのスクリプトファイルを実行したときに、プラグインの対応するスクリプトファイルを併せて実行可能な方法であればあらゆる方法を適用できる。例えば、プラグインのスクリプトファイルを先に実行するように構成してもよい。また、スクリプトファイル名は同名である必要はない。例えば、対応する数値または文字列等を対応する各ファイルに割り当てることなどにより、スクリプトファイル間の対応が判断できる方法であればあらゆる方法を適用できる。
【００９７】
このように、第２の実施の形態では、新たな機能がプラグインにより追加された場合であっても、当該プラグインの機能に対応するＸＭＬ印刷設定情報を操作するスクリプトファイルを適切に実行できる。すなわち、プリンタの機能の追加または変更があった場合でもコンパイルが必要となるバイナリモジュールを変更することなく、プリンタに追加または変更された機能をＰｒｉｎｔＴｉｃｋｅｔでサポートすることができる。
【００９８】
上記各実施の形態の情報処理装置は、図１７に示すように、ＣＰＵ１２０１と、ＲＯＭ（Read  Only  Memory）１２０２と、ＲＡＭ１２０３と、通信Ｉ／Ｆ１０３と、外部記憶装置としてＨＤＤ１２０４と、ディスプレイ装置などの表示装置１２０５と、これらを接続するバス１２０６と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００９９】
各実施の形態の情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１００】
また、各実施の形態の情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、各実施の形態の情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１０１】
また、各実施の形態の情報処理装置で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１０２】
各実施の形態の情報処理装置で実行されるプログラムは、上述した各部（描画部、印刷設定部、設定管理部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ１２０１が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上（ＲＡＭ１２０３）にロードされ、上記各部がＲＡＭ１２０３上に生成されるようになっている。
【符号の説明】
【０１０３】
１００、２００  情報処理装置
１０１  アプリケーション
１０２  ＯＳ
１０３  通信Ｉ／Ｆ
１１１、２１１  プリンタドライバ
１１２  ＧＤＩ
１１３  スプーラ
１２１  描画部
１２２  設定管理部
１２３  スクリプトファイル記憶部
１３０  印刷設定部
１３１  ＤＥＶＭＯＤＥ形式設定処理部
１３２  ＸＭＬ形式設定処理部
１３３  ＸＭＬ管理部
１３４  スクリプト実行部
１５０  プリンタ
２２４  保存部
２２５  削除部
【先行技術文献】
【特許文献】
【０１０４】
【特許文献１】特開２００９−０６４４１５号公報
【図１】
0005581793.tif 000002
【図２】
0005581793.tif 000003
【図３】
0005581793.tif 000004
【図４】
0005581793.tif 000005
【図５】
0005581793.tif 000006
【図６】
0005581793.tif 000007
【図７】
0005581793.tif 000008
【図８】
0005581793.tif 000009
【図９】
0005581793.tif 000010
【図１０】
0005581793.tif 000011
【図１１】
0005581793.tif 000012
【図１２】
0005581793.tif 000013
【図１３】
0005581793.tif 000014
【図１４】
0005581793.tif 000015
【図１５】
0005581793.tif 000016
【図１６】
0005581793.tif 000017
【図１７】
0005581793.tif 000018