(57)【特許請求の範囲】
【請求項１】
情報処理装置に組み込まれたプリンタドライバと、前記プリンタドライバの付加機能を実行するプラグインモジュールを保持し、前記プリンタドライバからの要求に応じて、対応する前記プラグインモジュールを実行し、前記プリンタドライバへ処理データを返すプラグインサーバとを備え、
前記プラグインサーバは、前記情報処理装置に組み込まれたプログラムにより、前記情報処理装置内に前記プリンタドライバとは別プロセスとして構成され、且つ、インプロセス形態で実行する前記プラグインモジュールを有するとともに、
前記プラグインサーバは、前記情報処理装置内に形成されアウトプロセス形態で実行する前記プラグインモジュールを実行させる機能を有し、前記情報処理装置のＯＳ起動時に起動されて前記インプロセス形態で実行する前記プラグインモジュールがロードされることを特徴とする印刷装置制御システム。
【請求項２】
前記情報処理装置外に構成された前記プラグインサーバを具備し、
前記プリンタドライバは、前記情報処理装置外の前記プラグインサーバ又は前記情報処理装置内の前記プラグインサーバから実行可能な前記プラグインサーバおよびプリンタの情報を受け取り、選択された処理が行える前記プラグインサーバに実行させることを特徴とする請求項１に記載の印刷装置制御システム。
【請求項３】
前記プリンタドライバは、共有メモリを介して処理データを返すことを特徴とする請求項１又は２に記載の印刷装置制御システム。
【請求項４】
情報処理装置に、アプリケーションから付加機能の必要な印刷指令を受信する手順、前記付加機能を実行するためインプロセス形態で実行するプラグインモジュールを保持するプラグインサーバであって、前記情報処理装置に組み込まれたプログラムによって前記プリンタドライバとは別プロセスとして前記情報処理装置内に構成され、且つ、前記情報処理装置のＯＳ起動時に起動されて前記インプロセス形態で実行する前記プラグインモジュールをロードするプラグインサーバに対し前記付加機能の処理を実行させる手順、前記付加機能を実行するため前記情報処理装置内に構成されアウトプロセス形態で実行するプラグインモジュールを前記プラグインサーバを介して実行させる手順、処理データを受け取る手順を実行させることを特徴とするプリンタドライバ。
【請求項５】
共有メモリを介して処理データを受け取る手順を実行させることを特徴とする請求項４に記載のプリンタドライバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置で印刷を行う際に、印刷装置を制御するための印刷装置制御システム及びプリンタドライバに関するものであり、特に、プリンタトライバに追加する新たな機能を実行するためのプラグインモジュールをプリンタドライバ本体にたん組み込まず、プラグインサーバに保持するように構成した印刷装置制御システムに関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ等において、アプリケーションソフトで作成した印刷データは、プリンタドライバで印刷装置が解釈できるデータに変換してから印刷を行う。そのプリンタドライバには、複数ページ分のデータを縮小して１ページに割り付ける機能、製本のために綴じ代を付ける機能等数多くの付加機能が備わっているが、そのような付加機能として、必要に応じて新たな機能も追加できる。
【０００３】
新たな機能を追加する方法としては、例えば、特許文献１（特開２００４−３２６６０１号公報）に示されるように、プリンタドライバ本体に、新たな機能を果たすプラグインモジュールを組み込むという方法がある。そのようにすれば、必要な機能をプリンタドライバに適宜追加できて、所望の印刷が可能になる。
【０００４】
すなわち、この特許文献１に開示された印刷制御装置は、ドライバ本体モジュールに接続されているプラグインモジュールを用いて機能の追加、更新、及び削除を行えるようにしたものである。そのため、印刷制御装置は、ホストコンピュータ動作する検索対象情報リストＵＩ制御モジュール内の検索対象情報リストに記述されている検索対象範囲に存在している機能情報を取得して機能情報リストに書き込み、この書き込んだ機能情報（の一部）をプリンタ機能設定画面内の表示欄に表示して、表示した機能情報に対応する機能の追加、更新、及び削除の指示を受け付け、受け付けた指示に従って、機能の追加、更新、及び削除を実行するように構成している。
【０００５】
【特許文献１】特開２００４−３２６６０１号公報（図１、図１２）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に開示された印刷制御装置のような従来の方法では、プリンタドライバに、プラグインモジュールを組み込んで機能追加をしていった場合、ドライバの仕組みが複雑化、かつ大型化し、メモリ消費が増大するという問題点があった。
また、プラグインモジュールは、プリンタドライバの一部なり、全体が一つのプロセスとして動作するため、プラグインモジュールがクラッシュすると、ドライバ全体が停止してしまうという問題点もあった。
【０００７】
さらに、プラグインモジュールは、プリンタドライバ本体と同じメモリ領域を使用するため、バッファオーバーランなどが起きると、プリンタドライバ本体あるいは他のプラグインモジュールが使っているメモリ領域を破壊してしまうおそれもあるという問題点もあった。このような問題は、ユーザ自身がプラグインモジュールを作成して、必要な機能を追加するような場合、プラグインモジュールのプログラムの信頼性が低下するため、高い確率で起こりうる。
【０００８】
本発明者は上記の問題点を解消すべく種々検討を重ねた結果、情報処理装置に組み込まれたプリンタドライバとは別に、プリンタドライバの付加機能を実行するプラグインモジュールを保持し、前記プリンタドライバからの要求に応じて、対応するプラグインモジュールを実行し、プリンタドライバへ処理データを返すプラグインサーバを設けるようになせば上記問題点を解消し得ることに想到して本発明を完成するに至ったものである。
【０００９】
すなわち、本発明は、上記の問題点を解消することを課題とし、プリンタドライバの機能追加のためのプラグインモジュールに欠陥が発生しても、プリンタドライバ本体や他のプラグインモジュールに及ぼす影響が最少になるようにすることを目的とするものである。
【課題を解決するための手段】
【００１０】
前記課題を解決するために、請求項１にかかる印刷装置制御システムの発明は、情報処理装置に組み込まれたプリンタドライバと、前記プリンタドライバの付加機能を実行するプラグインモジュールを保持し、前記プリンタドライバからの要求に応じて、対応する前記プラグインモジュールを実行し、前記プリンタドライバへ処理データを返すプラグインサーバとを備え、前記プラグインサーバは、前記情報処理装置に組み込まれたプログラムにより、前記情報処理装置内に前記プリンタドライバとは別プロセスとして構成され、且つ、インプロセス形態で実行する前記プラグインモジュールを有するとともに、前記プラグインサーバは、前記情報処理装置内に形成されアウトプロセス形態で実行する前記プラグインモジュールを実行させる機能を有し、前記情報処理装置のＯＳ起動時に起動されて前記インプロセス形態で実行する前記プラグインモジュールがロードされることを特徴とする。
【００１１】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記情報処理装置外に構成された前記プラグインサーバを具備し、前記プリンタドライバは、前記情報処理装置外の前記プラグインサーバ又は前記情報処理装置内の前記プラグインサーバから実行可能な前記プラグインサーバおよびプリンタの情報を受け取り、選択された処理が行える前記プラグインサーバに実行させるよう構成されることを特徴とする。
【００１２】
また、請求項３にかかる発明は、請求項１又は２にかかる発明において、前記プリンタドライバは、共有メモリを介して処理データを返すことを特徴とする。
【００１３】
また、請求項４にかかるプリンタドライバの発明は、情報処理装置に、アプリケーションから付加機能の必要な印刷指令を受信する手順、前記付加機能を実行するためインプロセス形態で実行するプラグインモジュールを保持するプラグインサーバであって、前記情報処理装置に組み込まれたプログラムによって前記プリンタドライバとは別プロセスとして前記情報処理装置内に構成され、且つ、前記情報処理装置のＯＳ起動時に起動されて前記インプロセス形態で実行する前記プラグインモジュールをロードするプラグインサーバに対し前記付加機能の処理を実行させる手順、前記付加機能を実行するため前記情報処理装置内に構成されアウトプロセス形態で実行するプラグインモジュールを前記プラグインサーバを介して実行させる手順、処理データを受け取る手順を実行させることを特徴とする。
【００１４】
また、請求項５にかかる発明は、請求項４にかかる発明において、共有メモリを介して処理データを受け取る手順を実行させることを特徴とする。
【発明の効果】
【００１５】
本発明の印刷装置制御システム及びプリンタドライバは、次のような効果を奏する。
すなわち、請求項１にかかる発明においては、プリンタドライバの付加機能を実行するプラグインモジュールを保持し、プリンタドライバからの要求に応じて、対応するプラグインモジュールを実行し、プリンタドライバへ処理データを返すプラグインサーバをプリンタドライバと分けて設けた。その結果、機能追加のためのプラグインモジュールに欠陥が発生しても、プリンタドライバ本体や他のプラグインモジュールに及ぼす影響を最少にすることができるようになる。
また、請求項１にかかる発明においては、プラグインサーバは、情報処理装置に組み込まれたプログラムにより、プリンタドライバとは別プロセスとして構成されるようにしたので、１台の情報処理装置の中でプラグインサーバの機能を実現することができるようになる。
【００１６】
また、請求項２にかかる発明においては、請求項１にかかる印刷装置制御システムにおいて、情報処理装置内のプラグインサーバあるいは情報処理装置外のプラグインサーバから、実行可能なプラグインとプリンタの情報を受け取り、ユーザの選択した処理を行えるプラグインサーバないしはプラグインサーバに実行させることができるようになる。
【００１７】
また、請求項３にかかる発明においては、請求項１又は２にかかる印刷装置制御システムにおいて、プリンタドライバは、共有メモリを介して処理データを返すようにしたので、処理データの受け渡しが容易になる。
【００１８】
また、請求項４にかかる発明においては、アプリケーションから付加機能の必要な印刷指令を受けたとき、該付加機能を実行するためのプラグインモジュールを保持するプラグインサーバに対して付加機能の処理を実行させ、処理データを受け取るようにしたので、機能追加のためのプラグインモジュールに欠陥が発生しても、それによる影響を受けにくくなる。
さらに、請求項４にかかる発明においては、情報処理装置に組み込まれたプログラムにより、プリンタドライバとは別プロセスとして構成されるようにしたので、１台の情報処理装置の中でプラグインサーバの機能を実現することができるようになる。
【００１９】
また、請求項５にかかる発明においては、請求項４にかかるプリンタドライバにおいて、共有メモリを介して処理データを受け取るようにしたので、処理データの受け渡しが容易になる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の具体例を実施例及び図面を用いて詳細に説明する。但し、以下に示す実施例は、本発明の技術思想を具体化するための印刷制御システムを例示するものであって、本発明をこの印刷制御システムに特定することを意図するものではなく、特許請求の範囲に含まれるその他の実施形態の印刷制御システムにも等しく適用し得るものである。
【実施例１】
【００２１】
図１は、実施例１の概略構成を示すブロック図である。ホストコンピュータ１において動作するアプリケーション１ａは、ホストコンピュータ１のＯＳ（Operating System）のＧＤＩ（Graphic Device Interface）１ｂを通じて、プリンタドライバ１ｃに描画命令を発行する。プリンタドライバ１ｃは、アプリケーション１ａから発行された描画命令を、最終的にはプリンタ言語に翻訳する。また、必要に応じて、ＬＡＮ４を介して外部コンピュータ３内に起動されたプラグインサーバ３ａとの通信を行う。
【００２２】
プラグインサーバ３ａは、プリンタドライバ１ｃからの通信を受けて、プラグイン機能を実行する。プリンタドライバ１ｃより送信されたプリンタ識別子、プラグイン識別子に応じて、該当するプラグインモジュールを起動する。プラグインサーバ３ａは、プラグインモジュールＡ，Ｂを持ち、それらは、プラグインサーバ３ａ内で実行される。
【００２３】
プラグインサーバ３ａ内にはディスパッチャ３ａ１と設定ファイル３ａ２が存在し、プリンタドライバ１ｃからの要求にしたがってプラグインサーバ３ａが起動できるプラグインモジュールの情報を提供する。設定ファイル３ａ２には、プリンタ識別子とプラグイン識別子の対応表、すなわち、プリンタ名と実行できるプラグインモジュールＡ，Ｂとの関係、及び、プラグインモジュールＡ、Ｂの動作設定が格納されており、ディスパッチャ３ａ１は、この情報に基づいて、プリンタドライバ１ｃに実行できるプラグインモジュールの情報を提供し、またプリンタドライバ１ｃより送信される実行の要求を設定ファイルに照らし合わせた後、プラグインモジュールＡ、Ｂのいずれかを選択し、処理を起動する。
【００２４】
例えば、２台のプリンタ２−１，２−２が存在し、プリンタ２−１では、バナー（表紙）ページ挿入とフッタ印刷を行い、プリンタ２−２ではフッタ印刷のみを行う場合、図３に示すような設定ファイルを使って処理が行われる。図３において、プリンタ２−１は「Ｐｒｉｎｔｅｒ１」、プリンタ２−２は「Ｐｒｉｎｔｅｒ２」として識別される。
【００２５】
プラグインサーバ３aがプリンタドライバ１ｃから印刷ジョブを受け取ると、図３の設定ファイルから、該当するプリンタの設定情報とプラグイン情報を探し、その際、該当する設定がなければ、一切の付加的処理は行わないが、該当する設定があったら、その中のＰｌｕｇＩｎタグを順に実行する。以下、該当するプリンタがＰｒｉｎｔｅｒ１であった場合で説明する。
【００２６】
まず、ＰｌｕｇＩｎタグで設定された「ＢａｎｎｅｒＰａｇｅ」プラグインの処理を実行することになるが、まず、バナーページを文書の先頭に挿入する。その後、「ＢａｎｎｅｒＩｍａｇｅ１．ｔｉｆ」の画像をハードディスク等から読み出して、バナーページ上に書き込む。次に、ＰｌｕｇＩｎタグで設定された「ＨｅａｄｅｒＦｏｏｔｅｒ１」プラグインの処理を実行する。すなわち、各ページの下端部に右寄せで日付とユーザ名を書き込む。
【００２７】
プリンタドライバ１ｃとプラグインサーバ３ａとのデータのやりとりは、ホストコンピュータ１内に共有メモリ１ｄを設け、それを介して行う。例えば、プリンタドライバ１ｃ側が描画した画像を共有メモリ１ｄに書き込み、プラグインサーバ３ａ内で起動されているプラグインモジュールＡ，Ｂ側がその画像に任意のスタンプ等を描画するという形で、共有メモリ１ｄは利用される。あるいは、ディスクファイルを使ってプリンタドライバ１ｃに戻すこともできる。
【００２８】
プリンタドライバ１ｃは、プラグインサーバ３ａから戻ったデータをプリンタ２−１，２−２に送信して、印刷を実行する。
【００２９】
なお、プラグインモジュールで実行される追加的機能としては、上記の例以外にも、ウォーターマーク，スタンプ等の重ね合わせ印刷、印刷枚数のカウント処理、印刷設定（用紙サイズ等）の一時的変更等が考えられる。
【００３０】
また、複数台のホストコンピュータ１でプラグインサーバ３aを利用することを考えれば、複数の印刷ジョブを処理するためにそれに対応した個別のプラグインサーバ３ａを起動してもよい。もちろんプラグインサーバ３ａが起動される共有コンピュータ３のハードウェアの処理能力、プラグインサーバ３ａを起動するために必要なリソースにもよるが、これによりある印刷ジョブが引き起こした致命的な誤動作が他の印刷ジョブに波及することを回避することができる。各プラグインサーバ３ａの起動・終了をそれぞれのプリンタドライバ１ｃが制御できることにしてもよい。
【００３１】
上記制御の際、各プリンタドライバ１ｃは各々が制御するプラグインサーバ３ａの状態を監視し、もし異常があるようであればそれを検知し、ユーザに伝えることができる。もちろん、一つのプラグインサーバ３ａを共有する場合でもプリンタドライバ１ｃはプラグインサーバ３ａの状態を監視し、それをユーザに伝えることができる。
【００３２】
また、設定ファイル３ａ２の記載内容によってはプリンタドライバ１ｃより送信されていないプリンタの設定情報とプラグイン情報を設定ファイル３ａ２の情報に従って自動的に実行するよう設定することもできる。もちろん自動実行するプラグインモジュールとプリンタの設定情報は印刷前にプリンタドライバ１ｃに提供されており、プリンタドライバ１ｃを通じて事前にユーザが確認することができるようなインターフェイスにもできる。
【００３３】
また、プラグインサーバ３ａが立ち上げられる外部コンピュータ３は、プラグインサーバ３ａが実行されるためだけにある専用のものであっても、個別のホストコンピュータのどれかであってもよい。大規模かつ複雑な処理が必要な環境であれば専用の外部コンピュータ３内に個別のプラグインサーバ３ａが立ち上げられる形が望ましい。
【実施例２】
【００３４】
図２は、実施例２の概略構成を示すブロック図である。この実施例では、プラグインサーバ５を、独立した常設のサービスプロセスとしてホストコンピュータ１内に設ける。また、プラグインサーバ５は、インプロセス形態でプラグインサーバ５内で実行されるプラグインモジュールＡ，Ｂを持ち、さらに、アウトプロセスとして、プラグインモジュールＣ，Ｄに処理を実行させることもできるようにしている。処理に必要なプリンタ情報、プラグイン情報は設定ファイル１ｅに記載されている。
【００３５】
このプラグインサーバ５は、ホストコンピュータ１のＯＳ起動時等に自動的に起動され、設定ファイル１ｅ等を参照して、プラグインモジュールＡ，Ｂをロードする。
【００３６】
プラグインサーバ５は、実施例１と同様にプリンタドライバ１ｃより送信されたプリンタ情報、プラグイン情報に基づきプラグインモジュールA，Ｂ、あるいは、プラグインモジュールＣ，Ｄを実行する。
【実施例３】
【００３７】
さらに、実施例１と実施例２を併用することもできる。その際には、プリンタドライバ１ｃは外部コンピュータ３内のプラグインサーバ３ａ、あるいは、ホストコンピュータ１内のプラグインサーバ５から、実行可能なプラグインとプリンタの情報を受け取り、ユーザの選択した処理を行えるプラグインサーバ３ａないしはプラグインサーバ５に実行させる。
【図面の簡単な説明】
【００３８】
【図１】実施例１の概略構成を示すブロック図である。
【図２】実施例２の概略構成を示すブロック図である。
【図３】設定ファイルの一例を示す図である。
【符号の説明】
【００３９】
１・・・・ホストコンピュータ
２・・・・プリンタ
３・・・・共有コンピュータ
４・・・・ＬＡＮ
５・・・・プラグインサーバ
【図１】
0004828296.tif 000002
【図２】
0004828296.tif 000003
【図３】
0004828296.tif 000004