JP5446625B2 - プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JP5446625B2
JP5446625B2 JP2009206303A JP2009206303A JP5446625B2 JP 5446625 B2 JP5446625 B2 JP 5446625B2 JP 2009206303 A JP2009206303 A JP 2009206303A JP 2009206303 A JP2009206303 A JP 2009206303A JP 5446625 B2 JP5446625 B2 JP 5446625B2
Authority
JP
Japan
Prior art keywords
information
plug
function
hierarchy
prohibition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009206303A
Other languages
English (en)
Other versions
JP2011059806A (ja
Inventor
滋朗 荒木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009206303A priority Critical patent/JP5446625B2/ja
Priority to US12/923,148 priority patent/US8786869B2/en
Publication of JP2011059806A publication Critical patent/JP2011059806A/ja
Application granted granted Critical
Publication of JP5446625B2 publication Critical patent/JP5446625B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、コアドライバにプラグインを追加することにより機能拡張できる、プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体に関する。
プリンタやMFP(複合機)などの画像形成装置は、様々なオフィス環境で利用されるため、現在では、必要な機能のみ利用可能となるようにカスタマイズできることが求められている。そこで、追加機能を後で追加できるプリンタなどが開発されている。このように追加機能をプリンタに追加する場合、プリンタを制御するプリンタドライバに対しても、追加した機能を使えるように機能拡張する必要がある。
一方、プリンタ自体に追加機能を追加しない場合でも、プリンタドライバ単体に対して、機能拡張のニーズが存在する。
しかしながら、プリンタドライバの機能を拡張する場合、通常は機能拡張したプリンタドライバをメーカー側で作成し、このドライバを顧客のコンピュータ環境に再インストールしてもらう必要がある。
そこで、プリンタドライバの機能を拡張するために、メーカー側での機能拡張したプリンタドライバの作成や、ユーザによるプリンタドライバの再インストールを行うことなく、拡張される機能部分にのみ対応したプログラムをプラグインとしてプリンタドライバに付加することによって、プリンタドライバに機能を追加する技術が提案されている。
例えば、特許文献1には、デバイスドライバにプラグインの追加を検知する手段を持たせ、検知したプラグインに、オペレーティングシステムからのイベント通知を転送しプラグインを機能させることで、機能拡張をする技術が開示されている。これにより、デバイスドライバの再インストールの必要なく動的拡張を可能としている。
しかしながら、プリンタドライバ等のドライバの核となるコアドライバと機能を追加するための各プラグインは開発時期が異なるため、お互いに必要な禁則(同時に設定することが許されない設定についての制約など、各種設定間の禁則)を自由に設けることができないという問題がある。つまり、開発時期が早いコアドライバにプラグインに対する禁則を追加したり、開発時期の早いプラグインに開発時期の遅いプラグインに対する禁則を追加することができない。
本発明は、上記に鑑みてなされたものであって、コアドライバおよび各プラグインの開発時期に依らず、コアドライバおよび各プラグインに、それらがもつ機能・設定について、自由に禁則を設けること可能としたプリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明のプリンタドライバは、記憶手段に記憶されている印刷設定の禁則を含む機能情報に基づいて印刷設定の禁則処理を行うコアドライバにプラグインの追加が可能なプリンタドライバであって、前記コアドライバは、前記コアドライバに対応した基本機能情報であって、前記コアドライバに含まれる基本機能を示す機能情報の子の階層に、該機能情報で示される前記基本機能が選択可能な設定値を示す設定値情報と、該機能情報で示される前記基本機能についての禁則処理を示す禁則情報とが記述された前記基本機能情報を、該基本機能情報の階層関係を維持した第1の階層情報としてメモリ上に展開し、前記プラグインに対応したプラグイン機能情報であって、前記プラグインに含まれる拡張機能を示す機能情報の子の階層に、該機能情報で示される前記拡張機能が選択可能な設定値を示す設定値情報が記述され、該設定値情報と同じ階層に、前記コアドライバに含まれる前記基本機能についての禁則処理を示す禁則情報が記述され、前記禁則情報の親の階層に、該禁則情報で示される禁則処理が適用される前記基本機能を指定する結合情報が記述された前記プラグイン機能情報が、前記記憶手段に記憶されている場合、前記プラグイン機能情報を、該プラグイン機能情報の階層関係を維持した第2の階層情報として前記メモリ上に展開し、前記基本機能情報から展開した前記第1の階層情報に、前記プラグイン機能情報から展開した前記第2の階層情報を、前記プラグイン機能情報に記述された前記結合情報の子以下の階層の情報が、前記基本機能情報に記述された前記機能情報であって、前記結合情報で指定された前記基本機能を示す前記機能情報の子以下の階層の情報となるように結合し、前記第2の階層情報が結合された前記第1の階層情報に基づいて、印刷設定の禁則処理を行うことを特徴とする。
また、本発明は、記憶手段に記憶されている印刷設定の禁則を含む機能情報に基づいて印刷設定の禁則処理を行うコアドライバにプラグインの追加が可能なプリンタドライバがインストールされた情報処理装置において、前記コアドライバは、前記コアドライバに対応した基本機能情報であって、前記コアドライバに含まれる基本機能を示す機能情報の子の階層に、該機能情報で示される前記基本機能が選択可能な設定値を示す設定値情報と、該機能情報で示される前記基本機能についての禁則処理を示す禁則情報とが記述された前記基本機能情報を、該基本機能情報の階層関係を維持した第1の階層情報としてメモリ上に展開し、前記プラグインに対応したプラグイン機能情報であって、前記プラグインに含まれる拡張機能を示す機能情報の子の階層に、該機能情報で示される前記拡張機能が選択可能な設定値を示す設定値情報が記述され、該設定値情報と同じ階層に、前記コアドライバに含まれる前記基本機能についての禁則処理を示す禁則情報が記述され、前記禁則情報の親の階層に、該禁則情報で示される禁則処理が適用される前記基本機能を指定する結合情報が記述された前記プラグイン機能情報が、前記記憶手段に記憶されている場合、前記プラグイン機能情報を、該プラグイン機能情報の階層関係を維持した第2の階層情報として前記メモリ上に展開し、前記基本機能情報から展開した前記第1の階層情報に、前記プラグイン機能情報から展開した前記第2の階層情報を、前記プラグイン機能情報に記述された前記結合情報の子以下の階層の情報が、前記基本機能情報に記述された前記機能情報であって、前記結合情報で指定された前記基本機能を示す前記機能情報の子以下の階層の情報となるように結合し、前記第2の階層情報が結合された前記第1の階層情報に基づいて、印刷設定の禁則処理を行うことを特徴とする。
また、本発明は、上記プリンタドライバを記録したコンピュータ読み取り可能な記録媒体である。
本発明によれば、コアドライバおよび各プラグインの開発時期に依らず、コアドライバおよび各プラグインに、それらがもつ機能・設定について、自由に禁則を設けることが可能となる。また、コアドライバの機能情報および各プラグインの機能情報を別個のファイルとして保存することにより、アンインストールも容易になる。
図1は、本発明の一実施の形態にかかるプリンタシステムの全体構成図を示した図である。 図2は、同実施形態におけるPCの構成を示すブロック図である。 図3は、レイアウト情報の一例を示した図である。 図4は、図3のレイアウト情報に基づいた印刷設定画面の例を示した図である。 図5は、コアドライバの保存先情報(一部分のみ)を例示した図である。 図6は、コアドライバの機能情報の一例を示した図である。 図7は、拡張集約プラグインの機能情報の一例を示した図である。 図8は、エコモードプラグインの機能情報の一例を示した図である。 図9は、拡張集約プラグインとエコモードプラグインを追加した後のプラグイン情報を示した図である。 図10は、拡張集約プラグインをインストールするための拡張集約プラグインインストーラの構成を示したブロック図である。 図11は、拡張集約プラグインインストーラの動作を示すフローチャートである。 図12は、コアドライバ111の機能情報(図6)に対応するDOMツリーを示した図である。 図13は、プラグインが追加されていない初期状態のコアドライバの設定管理部の構成を示す図である。 図14は、拡張集約プラグインの機能情報(図7)に対応するDOMツリーを示した図である。 図15は、エコモードプラグインの機能情報(図8)に対応するDOMツリーを示した図である。 図16は、図13に示したコアドライバの機能情報に対応するDOMツリーAに、図14に示した拡張集約プラグインの機能情報に対応するDOMツリーBをマージした結果のDOMツリーを示した図である。 図17は、図16のDOMツリーに、エコモードプラグインの機能情報に対応するDOMツリーCをさらにマージしたDOMツリーを示した図である。 図18は、設定管理部として生成される各コンポーネントを示した図である。 図19は、コアドライバの設定管理部のコンポーネント生成処理を示すフローチャートである。 図20は、他のモジュールからの印刷設定等の要求に対し、設定管理部の各コンポーネントが行う動作を示すシーケンス図である。
以下に添付図面を参照して、この発明にかかるプリンタシステムの一実施の形態を詳細に説明する。
(プリンタシステムの全体構成)
図1は、本発明の一実施の形態にかかるプリンタシステムの全体構成図を示した図である。図1に示すように、本実施の形態ではPC100とプリンタ150とがネットワーク160を介して接続されているものとする。そして、PC100からの印刷要求に応じて、プリンタ150が印刷処理を行う。
(PC100の構成)
図2は、PC100の構成を示すブロック図である。図2に示すように、PC100は、処理部101と、記憶部102と、通信部103とを備えている。処理部101は、図示しない制御手段としてのCPU(Central Processing Unit)と、ROMおよびメインメモリとなるRAMを有するメモリ群とを含んで構成されている。PC100の起動・実行時には、ROMおよび記憶部102からアプリケーション104と、OS105と、各種ドライバ(図2においては、プリンタドライバ106のみ記載)が、メインメモリ上にロードされ展開されて、これらがCPUにより実行される。なお、PC100は、キーボードやマウスなどの入力装置やディスプレイなどの出力装置等を備える通常のコンピュータを利用したハードウェア構成を有するが、図2においては説明の簡単のため省略している。
図2に示すプリンタドライバ106内の機能ブロックは、プリンタ150の制御を実現するための機能又は手段である。特に、コアドライバ111は、プリンタドライバ106の核となる部分であり、プリンタドライバとしての基本的な機能を有する。これに対し、各プラグイン(図2では、拡張集約プラグインおよびエコモードプラグインのみ例示)は、コアドライバ111のみからなるプリンタドライバ106に対してその機能を拡張するためのプログラムであり、コアドライバ111と組み合わさって(機能拡張された)プリンタドライバ106を構成する(詳細は後述)。
通信部103は、ネットワーク160を介して接続されたプリンタ150と情報の送受信を行う。
アプリケーション104は、ユーザが印刷指示をすることができるソフトウェアとする。ユーザはアプリケーション104で編集したデータを印刷したい場合、アプリケーション104が、ユーザによる印刷指示を受け付ける。この場合、アプリケーション104は、単体でプリンタ150に対する印刷データの生成を行わず、上記印刷指示に応じた印刷要求と共に、印刷対象の情報をOS105に渡す。
OS105は、PC100のハードウェアとソフトウェアとを管理するプログラムである。OS105は、プログラムの起動、情報の読み込みや保存の制御等を行う。OSのうち代表的なものとしては、MS Windows(登録商標)やUNIX(登録商標)等が知られている。
また、OS105は、アプリケーション104から渡された印刷要求と共に、印刷対象の情報(ドキュメントデータ、画像データ等)を、プリンタドライバ106に渡す。
記憶部102は、様々な情報を記憶する記憶手段である。具体的にはHDD等である。記憶される情報には、コアドライバ111や各プラグインが有する所定の機能(例えば、拡張集約や、エコモードなど)を実現するための部分的な処理に関する情報(処理に用いる設定値や、設定値の変更をするための表示情報など、処理に必要なあらゆる情報)を定義した設定情報がある。この設定情報の例としては、レイアウト情報、保存先情報、機能情報、及びプラグイン情報等が挙げられる。
レイアウト情報は、設定画面に表示されるGUIコンポーネントのレイアウトが記述された情報である。保存先情報は、各設定の保存場所についての情報が記述された情報である。機能情報は、各設定値の設定可能な範囲や各設定間の禁則が記述された情報である。これらの情報についての詳細は後述する。プラグイン情報は、追加されたプラグインに関して記述された情報である。
プリンタドライバ106は、コアドライバ111と、インターフェース部112と、プラグインとして、拡張集約プラグイン113と、エコモードプラグイン114とを備えている。もちろん、図2の例は一例であって、プラグインは任意に追加することができる。
コアドライバ111は、プリンタドライバ106としての標準機能を有する。また、コアドライバ111は、プリンタドライバ106としての機能を果たすためのモジュール群として、画面表示部121、設定保存部122、設定管理部123、および描画部124を備える。このコアドライバ111の画面表示部121、設定保存部122、及び設定管理部123は、インストールされたプラグインを確認する際に、上記プラグイン情報を参照する。これにより、コアドライバ111は、インストールされているプラグインを確認できる。
また、コアドライバ111に含まれる上記モジュール群は、標準的な印刷処理のみならず、インストールされたプラグインに含まれるモジュールではできない部分的な処理を、上述した設定情報(レイアウト情報、保存先情報、機能情報、プラグイン情報)に従って代行する。そして、記憶部102に記憶される設定情報が、プラグインのインストーラにより書き込まれ、コアドライバ111の画面表示部121、設定保存部122、設定管理部123、及び描画部124が、書き込まれた設定情報を参照することで、代行することを可能としている。なお、レイアウト情報、保存先情報、プラグイン情報については、各プラグインについての各情報がコアドライバ111のレイアウト情報、保存先情報、プラグイン情報に追記され、機能情報については、コアドライバ111および各プラグイン用の機能情報が、独立したファイルとして記憶部102に記憶される。なお、コアドライバ111の基本情報およびプラグインの機能情報はそれぞれ、基本機能情報およびプラグイン機能情報と略称される。
画面表示部121は、ユーザに対する印刷設定のためのGUIとなる印刷設定画面を表示する。本実施形態にかかる画面表示部121は、記憶部102に記憶されたレイアウト情報に基づいて印刷設定画面等を表示する。
設定保存部122は、設定管理部123で管理されている各設定値を、DevmodeやOS105のレジストリ等のデータ保存領域に保存する。その際、記憶部102に記憶された保存先情報を参照し、保存先を決定する。なお、Devmodeとは、印刷に関する様々な設定を保持するために、OS105が提供する構造体である。
設定管理部123は、記憶部102に記憶されたコアドライバ111の機能情報および各プラグインの機能情報に基づいて、印刷処理に用いられる設定(設定値や各設定間の禁則など)を管理する。本実施形態では、特に、設定管理部123が、コアドライバ111の持つ各設定に関する情報が記述されたXML(Extensible Markup Language)形式の機能情報から生成されるDOM(Document Object Model)ツリーに、各プラグインが保持する機能情報から生成されるDOMツリーをマージし、マージ後のDOMツリーに従って、設定値や各設定間の禁則等を管理するようにしている(詳細は後述)。また、設定管理部123は、記憶部102に記憶された保存先情報を参照し、設定保存部122により各保存先に保存された各設定値を読み出して、印刷処理に必要な設定を行う。
描画部124は、アプリケーション104から印刷を要求されたデータをプリンタが解釈可能な印刷命令に変換する。そして変換された印刷命令を、通信部103を介して、プリンタ150に送信する。
インターフェース(I/F)部112は、プラグインの追加を受け付けるインターフェースである。プリンタドライバ106にプラグインが追加された場合、コアドライバ111は、当該インターフェース部112を介して、追加されたプラグインの各モジュールを呼び出すことができる。また、追加されたプラグインも、当該インターフェース部112を介して、コアドライバ111の各モジュールを呼び出すことが可能となる。
図中破線130で囲まれた拡張集約プラグイン113、及びエコモードプラグイン114は、コアドライバ111に機能を追加するダイナミック・リンク・ライブラリとして構成されたプラグインとする。これらのプラグインは、所定の機能を実現するために、一つ以上のモジュールで構成されている。同図に示すプラグインは、画面表示部及び描画部を備えたものとなっているが、一般的にはその構成は任意である。
そして、プラグインの画面表示部(131,141)は、インターフェース部112を介して行われたコアドライバ111の画面表示部121からの表示命令に従って、プラグインが有する機能についての設定画面を表示する。一方、プラグインの描画部(132,142)は、インターフェース部112を介して行われたコアドライバ111の描画部124からの描画命令に従って、プラグインが有する機能を用いてなされる描画機能を実行する。
つまり、コアドライバ111の画面表示部121の拡張部分がプラグインの画面表示部となる。そして、コアドライバ111の描画部124の拡張部分がプラグインの描画部となる。
また、追加するプラグインによっては、コアドライバ111のモジュール(画面表示部121、描画部124)の機能を利用することで、すなわち、コアドライバ111が機能代行することで、プラグインに全てのモジュールを作成する必要がなくなった。これにより、プラグインの開発負担を軽減できる。
プラグインに必要な機能の一部をコアドライバ111のモジュールに代行させるために、コアドライバ111の各モジュールが参照する外部ファイルを更新する必要がある。つまり、プラグインは、コアドライバ111にはない機能を有する当該プラグインに固有のモジュールの追加と、コアドライバ111の各モジュールが参照する設定情報を更新するだけで、プラグインとして動作することができる。
なお、本実施形態にかかるプリンタドライバ106に対するプラグインの追加は、プラグイン自身のダイナミック・リンク・ライブラリの追加と、さらに、レイアウト情報、保存先情報、及びプラグイン情報のいずれか一つ以上に対する記述の追加ならびに機能情報の追加をすることで行う。これにより、PC100にインストール済みのプリンタドライバ106に対して、プラグインの追加を容易に行うことが可能となる。つまり、ユーザはプリンタドライバ自体の再インストールをする必要がなくなる。なお、プラグインの追加に伴い追加される機能情報に対する処理は、本実施形態における特徴的部分であり、後に詳述する。
次に、上記設定情報(レイアウト情報、保存先情報、機能情報、プラグイン情報)の具体例を挙げ説明する。
(レイアウト情報)
図3は、レイアウト情報の一例を示した図である。図3に示すレイアウト情報は、コアドライバ111のレイアウト情報であって、その一部分のみを例示している。なお、プラグインが追加されると、このレイアウト情報には、追加されたプラグインに関する記述が追記される。また、図3に示すレイアウト情報は、JSON形式で記述しているが他の形式でも良い。
図3に示すように、レイアウト情報には、印刷設定画面に表示するGUIコンポーネント毎のレイアウトデータが記述されている。このレイアウトデータは、属性としてtype,name,axisを有している。
typeは、GUIコンポーネントの種類を表している。typeの値であるComboBoxはコンボボックスコンポーネントで表示することを示している。また、CheckBoxは、チェックボックスコンポーネントで表示することを示している。図示しないが、その他にもSpinBoxやEditBoxなどを記述することにより、スピンボックスコンポーネントやエディットボックスコンポーネント等でGUIコンポーネントを表示することもできる。
nameは、設定の名前を表している。nameの値のうち、layoutは、集約設定であることを指定している。また、bookletは、製本設定(中綴じ設定)であることを示している。図示しないが、papersizeやcopiesなどを記述することにより、用紙サイズ設定や部数設定等を指定することもできる。
axisは、GUIコンポーネントの表示位置の座標を表している。axisの属性である、xはダイアログボックスの左上原点からの水平方向座標を示し、yはダイアログボックスの左上原点からの垂直方向座標を示している。例えば、図3に示す集約設定のaxis301には、属性typeで指定されたコンボボックスコンポーネントを水平位置25、垂直位置30に表示することが記述されている。
そして、画面表示部121は、記憶部102からレイアウト情報を読み込み、読み込んだレイアウト情報に従って設定画面を生成し、PC100の表示装置(図示せず)に生成した設定画面を表示する。なお、このとき、レイアウト情報に記述されている各GUIコンポーネントのうち、後述の機能情報を基に設定管理部123で管理されている設定可能な項目のみを表示する。
図4は、図3のレイアウト情報を読み込んだ場合に、コアドライバ111の画面表示部121が表示する印刷設定画面の例を示した図である。図4に示すように、集約設定用に表示名“Layout”と共にコンボボックスコンポーネントが配置され、製本設定用に表示名“Booklet”と共にチェックボックスコンポーネントが配置されている。なお、図4に示す、OKボタンは、変更された印刷設定を保存するボタンであり、Cancelボタンは、変更をキャンセルするボタンである。
(保存先情報)
保存先情報は、各設定の保存場所についての情報が記述されている。図5は、コアドライバ111の保存先情報であって、その一部分のみを例示している。なお、プラグインが追加されると、この保存先情報には、追加されたプラグインに関する記述が追記される。また、図5に示す例では、保存先情報はJSON形式で記述されているが他の形式であっても良い。
保存先情報のDevmodeとregistoryというキー内に記述された各設定名は、機能情報およびレイアウト情報に記述されている各設定名と対応関係を有している。そして、Devmodeというキー内に記述された各設定名で示された設定は、Devmode構造体に保存される。一方、registoryというキー内に記述された各設定名で示される設定は、レジストリに保存される。保存される各設定は、設定管理部123で管理されている設定値である。
(コアドライバの機能情報)
図6は、コアドライバ111の機能情報の一例を示した図である。図6では、説明の簡単のため、集約設定(layout)と製本設定(booklet)のみ例示するが、機能情報は各設定値の設定可能な範囲や各設定間の禁則が記述された情報であって、実際には、用紙サイズ設定や部数設定など印刷に係わる種々の設定について記述される。なお、図6に示す機能情報は、XML形式で記述するが他の形式(例えば、JSON等)でも良い。
図6に示す機能情報の例では、各設定の情報を、itemタグ毎に定義している。このitemタグは、nameとpriorityの属性を持っている。もちろん、図6に示す例は一例であって、その他の属性を定義し利用することができる。
属性nameは、設定の名前であり、レイアウト情報のnameと対応している。図6の例では、属性nameの値であるlayoutは集約設定であることを、bookletは製本設定であることを指定している。また、属性priorityは、禁則評価の優先順位を指定するものであり、このpriorityの値が小さい順に各設定に対する禁則評価を行う。
itemタグで囲まれる部分には、図6に示す製本設定501のようにconstraintタグを記述することができる。このconstraintタグを用いて記述された部分は、親タグであるitemタグの設定についての禁則情報である。constraintタグ内の属性であるfixvalueは、constraintタグに禁則条件が合致している場合に強制的に変更される設定値を表している。
また、constraintタグで囲まれる部分には、図6の製本設定(booklet)のようにconditionタグを記述することができる。conditionタグは親タグであるconstraintタグの禁則条件を表しており、属性であるexpressionで、その条件を指定している。
図6に例示する製本設定においては、例えば、layout(集約設定)がoff以外の場合に禁則条件に合致し、booklet(製本設定)の設定値がoffに強制的に変更される。
pickoneタグは、選択可能な設定値を表すものであり、pickoneタグ内の属性nameで、設定値が設定されている。また、図6には示していないが、pickoneタグに対しても、このタグで囲まれる部分にconstraintタグを記述することができ、pickoneタグ自体、すなわち選択肢自身も禁則情報を持つことができる。
pickoneの属性であるnameの値は、集約設定においては、offが機能オフ、2in1が2イン1印刷、4in1が4イン1印刷を表している。また、製本設定においては、offが機能オフ、onが機能オンを表している。
(拡張集約プラグインの機能情報)
続いて、図7に、拡張集約プラグインの機能情報の一例を示す。この拡張集約プラグインは、「集約」の機能を拡張させる機能を有している。図7に示す、rootタグの直下にあるitemタグ以下は、上記コアドライバ111の機能情報として示したitemタグ以下と同様の意味をもち、各属性の意味は、基本的に上記コアドライバ111の機能情報の場合と同様である(他のプラグインにおいても同様である)。
図7に示すname属性のextended_layoutは拡張集約設定であることを表している。この拡張集約設定には「off」と「9in1」という選択肢がある。この「9in1」という選択肢をもつこのプラグインによって9イン1印刷を行えるようにする。mergeタグは、既存のタグ(XMLノード)に対して、このmergeタグで囲まれた部分の内容を追加(マージ)することを意味しているタグである。その属性のtxpathは周知のXPATHで書かれており、例えば、一つめのmergeタグの”/item[@name=layout]”はname属性がlayoutのitemに対してconstraintタグで囲まれた部分を子ノードとして追加するということを意味している。つまり、集約設定に「拡張集約設定が、off以外のときにoffになる」という禁則を追加することを意味している。同様に、2つめのmergeタグは、製本設定に対して「拡張集約設定がoff以外のときにoffになる」という禁則を追加することを意味している。このような禁則を設けるのは、拡張集約設定が「off」以外のときには、集約設定や製本設定はoffになっている必要があるためである。
(エコモードプラグインの機能情報)
続いて、図8に、エコモードプラグインの機能情報の一例を示す。このエコモードプラグインは、紙やトナーの削減を推進する機能をプリンタドライバ106に付加するものである。
図8に示すname属性のeco_modeはエコモード設定を表している。エコモードは、紙やトナーの削減を推進する機能である。図8に示すエコモード設定には「off」「削減」「より削減」という選択肢があり、同図のnormalは「削減」を表わし、moreは「より削減」を表している。
また、<condition expression=“extended_layout is nothing”/>、は拡張集約設定という設定自体がないときに、条件に合致することを表している。また、同図のエコモード設定に示すようなpickoneタグの下にconstraintタグ及びconditionタグが付属しているものは、禁則に合致した場合にその選択肢が選択できない(設定表示において表示がされないあるいはグレー表示にする)という動作を行う。
エコモードでは、「削減」が選択されているときは、集約設定が「4in1」となるとともに使われるトナーの量が削減される。そのため、禁則として、集約設定は「4in1」となる必要がある。また、「より削減」が選択されているときは、拡張集約設定が「9in1」となるとともに使われるトナーの量が削減される。そのため、禁則として、拡張集約設定は「9in1」となる必要がある。一方、拡張集約設定がない場合(拡張集約プラグインがインストールされていない場合)は、「9in1」の選択肢がないので、「より削減」は選択できないようにする必要がある。
従って、図8に示すように、1つめのmergeタグで囲まれた部分の記述により、集約設定に対して「エコモード設定が、削減のときに4in1になる」という禁則と、さらに「エコモード設定が、より削減のときにoffになる」という禁則を追加する。また、2つめのmergeタグで囲まれた部分の記述により、拡張集約設定に対して「エコモード設定が、より削減のときに9in1になる」という禁則を追加する。
以上のように、コアドライバ111、機能拡張プラグイン113およびエコモードプラグイン114の、設定情報の1つである機能情報の各々が構成される。本実施形態においては、各プラグインは、コアドライバ111が作成された後に開発されていると仮定している。そのため、コアドライバ111の機能情報には各プラグインに関する情報は一切含まれていない。また、プラグインの作成時期は、拡張集約プラグイン、エコモードプラグインの順で開発されていると仮定している。そのため拡張集約プラグインの機能情報には、エコモードプラグインに関する情報は一切含まれていない。その他の設定情報(レイアウト情報、保存先情報)についても同様である。
以上のように、機能情報には、印刷に関する各設定に対するコアドライバ111の設定管理部123の行うべき管理のための情報が記述されている。コアドライバ111の機能情報および各プラグインの機能情報はそれぞれ別個のXMLファイルとして記憶部102に記憶される。
ところで、XMLファイルを一般にDOMパーサーと呼ばれるソフトウェアで読み込んだ場合、Domツリーというデータ構造がメモリ上に生成される。本実施形態のプリンタドライバ106は、機能情報(XMLファイル)をDOMパーサーによって解析させ、DOMツリーを生成させる。そして、生成したDOMツリーをマージする(詳細は後述)。その後、マージ後のDOMツリーにアクセスすることによって、メモリ上に、機能情報により規定された禁則を各設定に適用する禁則処理に必要なソフトウェアコンポーネントを生成する。そして、生成されたソフトウェアコンポーネントからなる設定管理部123が、設定値に対する禁則処理を行い、印刷処理に関する設定を決定することになる。
(プラグイン情報)
図9は、拡張集約プラグイン113とエコモードプラグイン114を追加した後のプラグイン情報を示した図である。当該プラグイン情報の記述は、いずれの形式でも良いが、本実施の形態では“ini”形式を用いている。
図9に示すプラグイン情報は、画面表示部に対応する“ui_plugin”と、 描画部に対応する“graphic_plugin”の2つのスコープを持っている。
“ui_plugin”は、画面表示部を有する各プラグインの名称と、各プラグインの画面表示部の実体であるダイナミック・リンク・ライブラリ(DLL)のファイル名とを対応付けて保持する。この“ui_plugin”に記述された各プラグインのファイル名を用いて、コアドライバ111などの画面表示部121から、各プラグインの画面表示部を呼び出すことができる。つまり、プラグインの画面表示部は、コアドライバ111の画面表示部121によってのみ呼び出される。
“graphic_plugin”は、描画部を有する各プラグインの名称と、各プラグインの描画部の実体であるDLLのファイル名とを対応付けて保持する。この“graphic_plugin”に記述された各プラグインのファイル名を指定することで、コアドライバ111の描画部124から、各プラグインの描画部を呼び出すことができる。つまり、プラグインの描画部は、コアドライバ111の描画部124によってのみ呼び出される。
図9に示すプラグイン情報の例では、拡張集約プラグイン113の各モジュールの実体となるDLLについて、同一のDLLファイルを指定しているが、プラグインが複数のDLLから構成される場合は、その構成に応じて別々のDLLが指定される。
(プラグインインストーラ)
次に、プラグインを追加するインストーラについて説明する。図10は、拡張集約プラグイン113をインストールするための拡張集約プラグインインストーラ1000の構成を示したブロック図である。図10に示すように、拡張集約プラグインインストーラ1000は、拡張集約プラグイン113と、追加レイアウト情報1001と、追加保存先情報1002と、追加機能情報1003と、起動部1004とを備えている。
追加レイアウト情報1001は、拡張集約プラグイン113の機能を実現するために、記憶部102のレイアウト情報に対して追加する情報が格納されている。追加保存先情報1002は、拡張集約プラグイン113の機能を実現するために、記憶部102の保存先情報に対して追加する情報が格納されている。追加機能情報1003は、拡張集約プラグイン113についての機能情報であり、追加レイアウト情報1001や追加保存先情報1002とは異なり、インストール後も独立したファイルとして管理される。なお、追加レイアウト情報1001および追加保存先情報1002はそれぞれ、コアドライバ111のレイアウト情報および保存先情報と同様の形式(例えば、JSON形式)で記述され、機能情報1003は、コアドライバ111の機能情報と同様の形式(例えば、XML形式)で記述される。
起動部1004は、追加部1011と、登録部1012を備え、プラグインのインストールを制御する。具体的には、起動部1004は、ユーザにより拡張集約プラグインインストーラ1000が起動された場合に、拡張集約プラグインを、プリンタドライバ106に追加する。
追加部1011は、追加情報(追加レイアウト情報、追加保存先情報、追加機能情報)を、記憶部102に記憶された各設定情報(レイアウト情報、保存先情報、機能情報)に追加する処理を行う。
登録部1012は、追加するプラグインのモジュールを示すファイル名を、記憶部102のプラグイン情報の各スコープに登録する。
上述した例では、拡張集約プラグインインストーラ1000の場合について説明したが、他のプラグインのインストーラも同様に、プラグイン本体と、追加する情報と、起動部とをもつ構成となる。
(プラグインのインストール処理)
次に、本実施の形態にかかる拡張集約プラグインインストーラ1000を用いたプラグインのインストール処理について、図11に示すフローチャートを用いて説明する。図11は、本実施の形態にかかるPC100における拡張集約プラグインインストーラ1000の動作を示すフローチャートである。
まずは、ユーザからの操作に従って、拡張集約プラグインインストーラ1000が実行されると、起動部1003が起動する(ステップS1101)。
次に、起動部1003が、プリンタドライバ106のインターフェース部112を呼び出す(ステップS1102)。そして、インターフェース部112が、インストールOKである旨を、拡張集約プラグインインストーラ1000に出力する(ステップS1103)。
そして、拡張集約プラグインインストーラ1000は、プラグインの追加対象となるドライバが保存されているインストールディレクトリに、当該プラグインの画面表示部131及び描画部132に相当するモジュールをインストール(コピー)する(ステップS1104)。
その後、拡張集約プラグインインストーラ1000の追加部1011が、プリンタドライバ106のコアドライバ111が参照するレイアウト情報および保存先情報にそれぞれ、拡張集約プラグインの追加レイアウト情報1001および追加保存先情報1002を追加(追記)する(ステップS1105)。
さらに、追加部1011は、拡張集約プラグイン113の追加機能情報1003を1つのファイルからなる機能情報として、コアドライバ111の機能情報が保存してある記憶部102の所定の保存先に保存する(ステップS1106)。
その後、登録部1012が、プリンタドライバ106のコアドライバ111が参照するプラグイン情報に、拡張集約プラグイン113の画面表示部131及び描画部132に相当するDLLのファイル名を各スコープに登録する(ステップS1107)。
上述した処理手順により、拡張集約プラグイン113のインストールが終了する。なお、上記手順は一例であって、処理の順序等、上記手順に限定するものではない。
次に、コアドライバ111の設定管理部123の構成とそのコンポーネントの生成について、前述した機能情報に対応させて説明する。
本実施形態では、XML形式の機能情報をDOMパーサと呼ばれるソフトウェアで読み込むことによりメモリ上にDOMツリーと呼ばれるデータ構造を生成させる。そして、生成したDOMツリーをマージし、マージ後のDOMツリーを基に、禁則処理に必要な設定管理部123の各コンポーネントをメモリ上に生成する。
(DOMツリー)
図12に、コアドライバ111の機能情報(図6)に対応するDOMツリーを示す。この図に示すように、XML形式の機能情報の各タグに対応してDOMツリーの各ノードが生成される。すなわち、rootタグからはrootノードが生成され、itemタグからはitemノードが、pickoneタグからはpickoneノードが、constraintタグからはconstraintノードが、conditionタグからはconditionノードが生成される。
図13に、プラグインが追加されていない初期状態のコアドライバ111の設定管理部123の構成を示す。管理部は、各Itemコンポーネントを管理するコンポーネントで、1つだけ生成される。また、他のモジュール(画面表示部121、設定保存部122、描画部124)とのインターフェースとしての役割を果たす。
itemコンポーネントは、itemノードから生成されるコンポーネントである。自身の設定名と現在値と禁則状態を保持している。itemコンポーネントは、その下にpickoneコンポーネントとconstraintコンポーネントを持つことができる。itemコンポーネントの下の、子となるpickoneコンポーネントの名前は、このitemコンポーネントのとりうる値(選択肢)である。一方constraintコンポーネントの値は、このitemコンポーネント自身に係る禁則についての情報(修正値:fixvalue)である。
pickoneコンポーネントは、pickoneノードから生成されるコンポーネントである。自身の名前と禁則状態を保持している。同図には示さないが、その下にconstraintコンポーネントをもつことができる。このconstraintコンポーネントのデータは、このpickoneコンポーネント自身に係る禁則についての情報である。
constraintコンポーネントは、constraintノードから生成されるコンポーネントである。自身がもつ禁則が合致した場合(すなわち、子のconditionコンポーネントで規定される条件が満たされた場合)に、親であるitemコンポーネントが持つべき値を保持している。
conditionコンポーネントは、禁則の基となる条件式(禁則条件)を有している。constraintコンポーネントは、このconditionコンポーネントが持つ条件が満たされた場合に、禁則状態である(on)、という情報をitemコンポーネントもしくはpickoneコンポーネントに返す。これに応じて、各コンポーネントの禁則状態が変更される。なお、各itemコンポーネントおよびpickoneコンポーネントがもつ禁則状態は、禁則処理が行われる前は初期値(off)をとるものとする。
図14に、拡張集約プラグインの機能情報(図7)に対応するDOMツリーを示し、図15に、エコモードプラグインの機能情報(図8)に対応するDOMツリーを示す。これらのDOMツリーには、上述のコアドライバ111の機能情報に対応するDOMツリー(図6)と同様に、itemノード、pickoneノード、constraintノードおよびconditionノードを有しているが、さらにmergeタグに対応してmergeノードが生成されている。
(DOMツリーのマージ)
図13に示したコアドライバ111の機能情報に対応するDOMツリーAに、図14に示した拡張集約プラグインの機能情報に対応するDOMツリーBをマージすると、図16に示すDOMツリーとなる(破線で囲まれた部分がDOMツリーBにあったノードである)。DOMツリーBのitemノードはrootノードに結合されるが、mergeノードの下のノードは、同図に示すように名前が“layout”のitemノードおよび“booklet”のitemノードの下に、それぞれに対応するノードが結合される。
上記のようにしてマージされたDOMツリーに、エコモードプラグインの機能情報に対応するDOMツリーCをさらにマージすると図17に示すDOMツリーとなる(破線で囲まれた部分がDOMツリーCにあったノードである)。DOMツリーCのitemノードはrootノードに結合されるが、mergeノードの下のノードは、同図に示すように名前が“layout”のitemノードおよび“extended_layout”のitemノードの下に、それぞれに対応するノードが結合される。
以上のように生成されたDOMツリーを基に、図18に示す設定管理部123の各コンポーネントがクラスインスタンスとして生成される。なお、各コンポーネントの役割は前述したとおりである。
もともとコアドライバ111の機能である集約と製本に対するコンポーネント群に、各プラグインの機能に対するconstraintコンポーネントが追加されている。このため、集約と製本は、各プラグインの機能からの禁則を受けることができる。また、先に開発された拡張集約プラグインの機能に対しても、これに対するコンポーネント群に後から開発されたエコモードプラグインの機能に対するconstraintコンポーネントが追加されているため、拡張集約は、エコモードプラグインの機能からの禁則を受けることができる。
(設定管理部123のコンポーネント生成)
次に、コアドライバ111の設定管理部123のコンポーネント生成処理について、図19を用いて説明する。
はじめに、コアドライバ111の機能により、設定管理部123の管理部となるクラスインスタンスを生成する(ステップS1901)。このとき管理部の初期化も行われる。
次に、ステップS1901で生成された管理部は、コアドライバ111の機能情報を読み込む(ステップS1902)。
続いて、管理部は、ステップS1902で読み込んだコアドライバ111の機能情報を、DOMパーサを利用して解析(パース)し、解析結果としてメモリ上にDOMツリーを生成する(ステップS1903)。
続いて、管理部は、読み込んでいないプラグインの機能情報があるか判断をし、読み込んでいないプラグインの機能情報がある場合(ステップS1904でYesの場合)はステップS1905に移行し、無い場合(ステップS1904でNoの場合)はステップS1908に移行する。
ステップS1905では、管理部は、未だ読み込んでいないプラグインであってその中で作成日が最も古いものの機能情報を読み込む。
そして、ステップS1905で読み込んだプラグインの機能情報を、DOMパーサを利用して解析(パース)し、解析結果としてメモリ上にDOMツリーを生成する(ステップS1906)。
続いて、管理部は、ステップS1906で生成したDOMツリーを、すでにあるDOMツリーにマージする(ステップS1907)。なお、ここで「すでにあるDOMツリー」とは、本ステップS1907の直前に生成されているDOMツリーのことである。すなわち、本ステップにおいて最初の処理では、ステップS1903で生成したDOMツリーのことであり、以降の処理では、本ステップの前回処理でマージ後のDOMツリーのことである。
一方、ステップS1908では、管理部は、コアドライバ111の機能情報に対応するDOMツリーおよびすべてのプラグインの機能情報に対応するDOMツリーをマージした結果のDOMツリーから、その情報を基に、クラスインスタンスとして設定管理部123の各コンポーネントを生成する。このとき、各コンポーネントは、マージ完了後のDOMツリーで示される親子関係を有するコンポーネント(クラスインスタンス)として生成される。
以上のようにして、コアドライバ111の設定管理部123の各コンポーネントが生成される。
(設定管理部123の動作)
続いて、コアドライバ111の設定管理部123による禁則処理について、すなわち設定管理部123の各コンポーネントの動作を、図20を用いて説明する。図20は、他のモジュールからの印刷設定等の要求に対し、設定管理部123の各コンポーネントが行う動作を示すシーケンス図である。
はじめに、他のモジュールとのインターフェースとなる管理部に対して、他のモジュール(例えば、画面表示部121)から、印刷設定の値がセットされる(t1)。
続いて、管理部は、他のモジュールから受け取った印刷設定の値を各itemコンポーネントにセットする(t2)。
続いて、管理部は、属性Priorityで示される値の順番で(本実施形態では、値が小さい順に)、各itemコンポーネントにその禁則状態を更新させるための要求をする(t3)。
各itemコンポーネントは、自身の子であるpickoneコンポーネントの禁則状態を更新させるための要求をする(t4)。
続いて、pickoneコンポーネントは、constraintコンポーネントに対し禁則判定情報(値が、禁則に合致しているか否かの情報)の取得要求をする(t5)。
この要求を受けて、constraintコンポーネントは、子のconditionコンポーネントに、itemコンポーネントの値(設定値)が、conditionコンポーネントにて規定されている条件を満たしているか問い合わせをする(t6)。
この問い合わせに対し、conditionコンポーネントは、自身の持つ条件について判別をするために必要なitemコンポーネントの値を取得するための要求を該当のitemコンポーネントにする(t7)。このとき、直系の親子関係にないitemコンポーネントに対しては管理部を介して該当itemコンポーネントに要求がなされる。
上記要求に応じて、該当のitemコンポーネントは、その値を、(管理部を介して要求を受けた場合は管理部を介して)要求を受けたconditionコンポーネントに返す(t8)。
conditionコンポーネントは、itemコンポーネントから返された値が、自身の持つ条件を満たしているかどうかを判定し、判定結果を、判定の要求をしたconstraintコンポーネントに返す(t9)。
constraintコンポーネントは、conditionコンポーネントからの判定結果に従って、禁則の条件に合致しているという情報(禁則状態:onに相当)および修正値(fixvalue)を、または、禁則の条件に合致していないという情報(禁則状態:offに相当)を、すなわち禁則判定情報をpickoneコンポーネントに返す(t10)。
禁則判定情報を受けたpickoneコンポーネントは、constraintコンポーネントからの禁則判定情報に従って自身の禁則状態を更新し(t11)、次いで、自身の禁則状態を親のitemコンポーネントに返す(t12)。
一方、図13に示した名前が“booklet”のitemコンポーネントのように、constraintコンポーネントを子にもつitemコンポーネントは、子のconstraintコンポーネントに対し禁則判定情報の取得命令をする(t13)。
この命令を受けて、constraintコンポーネントは、子のconditionコンポーネントに、親のitemコンポーネントの値がconditionコンポーネントにて規定されている条件を満たしているか問い合わせをする(t14)。
この問い合わせに対し、conditionコンポーネントは、自身の持つ条件について判定をするために必要なitemコンポーネントの値を取得するための要求を、該当のitemコンポーネントにする(t15)。このとき、直系の親子関係にないitemコンポーネントに対しては管理部を介して該当itemコンポーネントに要求がなされる。
上記要求に応じて、該当のitemコンポーネントは、その値を、(管理部を介して要求を受けた場合は管理部を介して)返す(t16)。
condtionコンポーネントは、itemコンポーネントから返された値が、自身の持つ条件を満たしているかどうかを判定し、判定結果を、判定の要求をしたconstraintコンポーネントに返す(t17)。
constraintコンポーネントは、conditionコンポーネントからの判定結果に従って、禁則に合致しているという情報(禁則状態:on)および修正値を、または、条件に合致していないという情報(禁則状態:off)を、すなわち禁則判定情報を親のitemコンポーネントに返す(t18)。
以上の過程を経て、itemコンポーネントは、子のpickoneコンポーネントの禁則状態、および、子のconstraintコンポーネントからの禁則判定情報に基づいて、自身の禁則状態を更新し(t19)、自身の値(現在値)を更新する(t20)。
次いで、他のモジュールから管理部に、各印刷設定値の取得要求がなされると(t21)、管理部は、各itemコンポーネントに対しその値の取得要求をする(t22)。
上記要求を受けたitemコンポーネントは自身の値を管理部に返し(t23)、管理部は、各itemコンポーネントから返された値を印刷設定値として他のモジュールに返す(t24)。
また、管理部は、他のモジュール(例えば、画面表示部121)から、各印刷設定と選択肢の禁則状態の取得要求を受けると(t25)、各itemコンポーネントに対し、印刷設定とその選択肢の禁則状態の取得要求をする(t26)。
管理部から上記要求を受けた各itemコンポーネントは、子の各pickoneコンポーネントに対し、その禁則状態の取得要求をする(t27)。
上記要求に応じて、各pickoneコンポーネントは、自身の禁則状態を親のitemコンポーネントに返す(t28)。
子のpickoneコンポーネントからその禁則状態を受けた各itemコンポーネントは、管理部に、印刷設定とその選択肢の禁則状態を返す(t29)。
管理部は、各itemコンポーネントから受けたそれらの印刷設定とその選択肢の禁則状態を、その取得の要求をした他のモジュールに返す(t30)。例えば、他のモジュールの1つである画面表示部121は、この情報を利用して、禁則状態に応じたGUIの表示を行うことができる。なお、図20に示すシーケンスは各コンポーネント間の動作を説明するための一例であって、これに限られるものではない。
以上説明したように、本実施形態のプリンタドライバ106(コアドライバ111およびプラグイン)では、コアドライバ111および各プラグインの開発時期に依らず、コアドライバ111および各プラグインに、それらがもつ機能・設定について、自由に禁則を追加することが可能となる。また、前述のように用いられるコアドライバ111の機能情報および各プラグインの機能情報は、独立したファイルとして保存・管理されるので、禁則が複雑に絡み合う機能情報であっても、プラグインのアンイストールの際は、ファイル単位でこれらを削除すればよく、アンインストールも容易に行うことができる。
なお、上述した実施形態のコアドライバやプラグインのプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、これらのプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
100…PC
101…処理部
102…記憶部
103…通信部
104…アプリケーション
105…OS
106…プリンタドライバ
111…コアドライバ
112…インターフェース部
113…拡張集約プラグイン
114…エコモードプラグイン
121…画面表示部
122…設定保存部
123…設定管理部
124…描画部
131…画面表示部
132…描画部
141…画面表示部
142…描画部
150…プリンタ
160…ネットワーク
特開2004−005608号公報

Claims (9)

  1. 憶手段に記憶されている印刷設定の禁則を含む機能情報に基づいて印刷設定の禁則処理を行うコアドライバにプラグインの追加が可能なプリンタドライバであって、
    前記コアドライバは、
    前記コアドライバに対応した基本機能情報であって、前記コアドライバに含まれる基本機能を示す機能情報の子の階層に、該機能情報で示される前記基本機能が選択可能な設定値を示す設定値情報と、該機能情報で示される前記基本機能についての禁則処理を示す禁則情報とが記述された前記基本機能情報を、該基本機能情報の階層関係を維持した第1の階層情報としてメモリ上に展開し、
    記プラグインに対応したプラグイン機能情報であって、前記プラグインに含まれる拡張機能を示す機能情報の子の階層に、該機能情報で示される前記拡張機能が選択可能な設定値を示す設定値情報が記述され、該設定値情報と同じ階層に、前記コアドライバに含まれる前記基本機能についての禁則処理を示す禁則情報が記述され、前記禁則情報の親の階層に、該禁則情報で示される禁則処理が適用される前記基本機能を指定する結合情報が記述された前記プラグイン機能情報が、前記記憶手段に記憶されている場合、前記プラグイン機能情報を、該プラグイン機能情報の階層関係を維持した第2の階層情報として前記メモリ上に展開し、
    前記基本機能情報から展開した前記第1の階層情報に、前記プラグイン機能情報から展開した前記第2の階層情報を、前記プラグイン機能情報に記述された前記結合情報の子以下の階層の情報が、前記基本機能情報に記述された前記機能情報であって、前記結合情報で指定された前記基本機能を示す前記機能情報の子以下の階層の情報となるように結合し、
    前記第2の階層情報が結合された前記第1の階層情報に基づいて、印刷設定の禁則処理を行う
    ことを特徴とするプリンタドライバ。
  2. 前記基本機能情報は、前記禁則情報の子の階層に、該禁則情報で示される禁則処理が行われる条件を示す条件情報が記述され、
    前記プラグイン機能情報は、前記禁則情報の子の階層に、該禁則情報で示される禁則処理が行われる条件であって、前記プラグインに含まれる前記拡張機能に関連する条件を示す条件情報が記述されていることを特徴とする請求項1に記載のプリンタドライバ。
  3. 前記コアドライバは、
    前記第2の階層情報が結合された前記第1の階層情報において、子の階層自身が有する情報および/またはその子の階層から受けた情報を親の階層に提供できるソフトウェアコンポーネント群を生成する設定管理手段を備え、
    前記ソフトウェアコンポーネント群の中で、前記第2の階層情報が結合された前記第1の階層情報において最上位の階層に位置し、かつ、コアドライバを構成する他のモジュールとのインターフェースとなる管理部が、その子となる各ソフトウェアコンポーネントから得られる情報を基に、印刷設定の禁則処理を行う
    ことを特徴とする請求項1または2に記載のプリンタドライバ。
  4. 前記基本機能情報および前記プラグイン機能情報は、別個のファイルとして前記記憶手段に保存され利用されることを特徴とする請求項1〜3のいずれか一項に記載のプリンタドライバ。
  5. 憶手段に記憶されている印刷設定の禁則を含む機能情報に基づいて印刷設定の禁則処理を行うコアドライバにプラグインの追加が可能なプリンタドライバがインストールされた情報処理装置において、
    前記コアドライバは、
    前記コアドライバに対応した基本機能情報であって、前記コアドライバに含まれる基本機能を示す機能情報の子の階層に、該機能情報で示される前記基本機能が選択可能な設定値を示す設定値情報と、該機能情報で示される前記基本機能についての禁則処理を示す禁則情報とが記述された前記基本機能情報を、該基本機能情報の階層関係を維持した第1の階層情報としてメモリ上に展開し、
    記プラグインに対応したプラグイン機能情報であって、前記プラグインに含まれる拡張機能を示す機能情報の子の階層に、該機能情報で示される前記拡張機能が選択可能な設定値を示す設定値情報が記述され、該設定値情報と同じ階層に、前記コアドライバに含まれる前記基本機能についての禁則処理を示す禁則情報が記述され、前記禁則情報の親の階層に、該禁則情報で示される禁則処理が適用される前記基本機能を指定する結合情報が記述された前記プラグイン機能情報が、前記記憶手段に記憶されている場合、前記プラグイン機能情報を、該プラグイン機能情報の階層関係を維持した第2の階層情報として前記メモリ上に展開し、
    前記基本機能情報から展開した前記第1の階層情報に、前記プラグイン機能情報から展開した前記第2の階層情報を、前記プラグイン機能情報に記述された前記結合情報の子以下の階層の情報が、前記基本機能情報に記述された前記機能情報であって、前記結合情報で指定された前記基本機能を示す前記機能情報の子以下の階層の情報となるように結合し、
    前記第2の階層情報が結合された前記第1の階層情報に基づいて、印刷設定の禁則処理を行う
    ことを特徴とする情報処理装置。
  6. 前記基本機能情報は、前記禁則情報の子の階層に、該禁則情報で示される禁則処理が行われる条件を示す条件情報が記述され、
    前記プラグイン機能情報は、前記禁則情報の子の階層に、該禁則情報で示される禁則処理が行われる条件であって、前記プラグインに含まれる前記拡張機能に関連する条件を示す条件情報が記述されていることを特徴とする請求項5に記載の情報処理装置。
  7. 前記コアドライバは、
    前記第2の階層情報が結合された前記第1の階層情報において、子の階層自身が有する情報および/またはその子の階層から受けた情報を親の階層に提供できるソフトウェアコンポーネント群を生成する設定管理手段を備え、
    前記ソフトウェアコンポーネント群の中で、前記第2の階層情報が結合された前記第1の階層情報において最上位の階層に位置し、かつ、コアドライバを構成する他のモジュールとのインターフェースとなる管理部が、その子となる各ソフトウェアコンポーネントから得られる情報を基に、印刷設定の禁則処理を行う
    ことを特徴とする請求項5または6に記載の情報処理装置。
  8. 前記基本機能情報および前記プラグイン機能情報は、別個のファイルとして前記記憶手段に保存され利用されることを特徴とする請求項5〜7のいずれか一項に記載の情報処理装置。
  9. 請求項1から請求項4のいずれか1項に記載のプリンタドライバを記録したコンピュータ読み取り可能な記録媒体。
JP2009206303A 2009-09-07 2009-09-07 プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体 Expired - Fee Related JP5446625B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009206303A JP5446625B2 (ja) 2009-09-07 2009-09-07 プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体
US12/923,148 US8786869B2 (en) 2009-09-07 2010-09-07 Updateable printer driver, information processing apparatus, and computer-readable recording medium recording therein printer driver

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009206303A JP5446625B2 (ja) 2009-09-07 2009-09-07 プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JP2011059806A JP2011059806A (ja) 2011-03-24
JP5446625B2 true JP5446625B2 (ja) 2014-03-19

Family

ID=43647541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009206303A Expired - Fee Related JP5446625B2 (ja) 2009-09-07 2009-09-07 プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体

Country Status (2)

Country Link
US (1) US8786869B2 (ja)
JP (1) JP5446625B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5650068B2 (ja) * 2011-07-26 2015-01-07 京セラドキュメントソリューションズ株式会社 プリンタドライバの印刷可能範囲エミュレート方法
JP5799698B2 (ja) 2011-09-14 2015-10-28 株式会社リコー 情報処理装置及びプログラム
JP6089558B2 (ja) * 2012-03-07 2017-03-08 ブラザー工業株式会社 ドライバ管理プログラム、アンインストールプログラム、及び、情報処理装置
JP5989537B2 (ja) * 2012-08-08 2016-09-07 アヲハタ株式会社 粘度測定方法及び粘度測定装置
JP6330361B2 (ja) * 2013-03-27 2018-05-30 株式会社リコー 印刷制御プログラム、情報処理装置及び印刷システム
JP5641159B1 (ja) * 2014-03-20 2014-12-17 富士ゼロックス株式会社 印刷指示装置、印刷システム、およびプログラム
WO2016035801A1 (ja) 2014-09-01 2016-03-10 株式会社リコー システム、情報処理方法および記憶媒体
JP2018015947A (ja) 2016-07-26 2018-02-01 キヤノン株式会社 画像形成装置、画像形成方法、およびプログラム
JP6961412B2 (ja) * 2016-07-26 2021-11-05 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、およびプログラム
JP6834402B2 (ja) * 2016-11-24 2021-02-24 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP6855964B2 (ja) 2017-07-11 2021-04-07 株式会社リコー 情報入力装置、情報処理システム、プログラム、情報処理方法
US10545708B2 (en) 2017-10-26 2020-01-28 Ricoh Company, Ltd. Information processing system and method of processing information
US11163432B2 (en) 2018-01-30 2021-11-02 Ricoh Company, Ltd. Information processing system, electronic blackboard apparatus, and recording medium
JP7070134B2 (ja) 2018-06-19 2022-05-18 株式会社リコー 情報処理システム、情報処理装置、プログラム及びファイル送信方法
JP7035840B2 (ja) 2018-06-19 2022-03-15 株式会社リコー 情報処理装置、情報処理システム及び遠隔共有方法
US11343292B2 (en) 2019-11-29 2022-05-24 Ricoh Company, Ltd. Information processing apparatus, information processing system, and remote sharing method

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6031527A (en) * 1996-07-12 2000-02-29 Sofmap Future Design, Inc. Methods and systems for developing computer applications
US7013313B1 (en) * 1999-11-24 2006-03-14 Pumatech, Inc. System and methods for inheriting information into a dataset
US7284246B2 (en) 2002-04-23 2007-10-16 Canon Kabushiki Kaisha Extensible device driver
JP4449398B2 (ja) * 2003-10-03 2010-04-14 セイコーエプソン株式会社 印刷装置および印刷方法並びに印刷装置用のプログラム
JP4481800B2 (ja) * 2003-12-02 2010-06-16 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US7930378B2 (en) * 2003-12-24 2011-04-19 Intel Corporation Method to support XML-based consoles in pre-boot and post operating system execution environments
JP2006048537A (ja) * 2004-08-06 2006-02-16 Canon Inc 印刷システム及び印刷処理方法
JP2006115482A (ja) * 2004-09-17 2006-04-27 Ricoh Co Ltd 設定管理装置、設定管理プログラムおよび画像形成装置
JP4529766B2 (ja) * 2005-03-31 2010-08-25 日本電気株式会社 情報提供システム、情報提供方法、サーバ及び情報提供プログラム
CN100407149C (zh) * 2005-08-26 2008-07-30 国际商业机器公司 父子应用集成的系统及方法
JP2007158929A (ja) * 2005-12-07 2007-06-21 Ricoh Co Ltd 設定管理装置及び設定管理プログラム
JP4810282B2 (ja) * 2006-03-31 2011-11-09 キヤノン株式会社 モジュールインストール方法、モジュールインストール装置、及びプログラム
JP4969324B2 (ja) 2006-09-14 2012-07-04 株式会社リコー 情報処理装置、プログラム及びその記録媒体
JP2008097215A (ja) * 2006-10-10 2008-04-24 Just Syst Corp データ処理装置
JP4799460B2 (ja) * 2007-03-26 2011-10-26 キヤノン株式会社 印刷制御装置及び方法
JP5343643B2 (ja) * 2009-03-17 2013-11-13 株式会社リコー プリンタドライバ、記憶媒体、及び情報処理装置
JP5391844B2 (ja) * 2009-06-05 2014-01-15 株式会社リコー 印刷制御プログラム、記憶媒体および情報処理装置
JP5278185B2 (ja) * 2009-06-12 2013-09-04 株式会社リコー 情報処理装置、インストーラプログラム、及び記憶媒体
JP5621336B2 (ja) * 2009-09-14 2014-11-12 株式会社リコー 情報処理装置、および印刷制御プログラム

Also Published As

Publication number Publication date
US8786869B2 (en) 2014-07-22
US20110058205A1 (en) 2011-03-10
JP2011059806A (ja) 2011-03-24

Similar Documents

Publication Publication Date Title
JP5446625B2 (ja) プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体
JP5532770B2 (ja) 印刷制御プログラム、情報処理装置、および印刷制御プログラムを記録したコンピュータ読み取り可能な記録媒体
US8705089B2 (en) Printer driver, storage medium, and information processing apparatus
US9785445B2 (en) Information processing apparatus, information processing method, and storage medium
JP6552189B2 (ja) 情報処理装置、制御方法およびドライバーインストールプログラム
JP4863450B2 (ja) デバイスドライバプログラムをカスタマイズするための情報処理装置及びデバイスドライバプログラムのカスタマイズ方法
JP4551784B2 (ja) カスタムプリンタドライバインストーラ
JP4810282B2 (ja) モジュールインストール方法、モジュールインストール装置、及びプログラム
JP5799698B2 (ja) 情報処理装置及びプログラム
JP2005338940A (ja) インストール方法、情報処理装置、及びデバイスドライバ
JP5391844B2 (ja) 印刷制御プログラム、記憶媒体および情報処理装置
JP2008305298A (ja) 情報処理装置、印刷設定方法、記憶媒体、プログラム
JP2009211695A (ja) プリントコンテナを構築するための方法及びguiプログラム
JP5581793B2 (ja) 情報処理装置、プログラムおよび記憶媒体
JP2017033052A (ja) 画像形成装置における制御装置およびプログラム
JP2020009055A (ja) 情報処理装置及びプログラム
US20180143794A1 (en) Information processing apparatus, information processing system, and information processing method
JP2012059106A (ja) カスタマイズ装置、印刷システム、カスタマイズ方法およびカスタマイズプログラム
JP2015204056A (ja) 印刷制御装置、印刷制御装置のデータ処理方法、及びプログラム、プリンタドライバ
JP2008257468A (ja) 情報処理装置及びその制御方法、コンピュータプログラム
JP5533382B2 (ja) プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体
JP5389219B2 (ja) 情報処理装置、印刷設定方法、及びプログラム
JP5409529B2 (ja) アプリケーション実行装置及びプログラム
JP7085920B2 (ja) 印刷制御プログラム、情報処理装置とその制御方法、およびプログラム
JP2008191954A (ja) 印刷制御装置、印刷制御方法、及び印刷制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R151 Written notification of patent or utility model registration

Ref document number: 5446625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees