JP2011242994A - Driver control system, and driver control method - Google Patents
Driver control system, and driver control method Download PDFInfo
- Publication number
- JP2011242994A JP2011242994A JP2010114426A JP2010114426A JP2011242994A JP 2011242994 A JP2011242994 A JP 2011242994A JP 2010114426 A JP2010114426 A JP 2010114426A JP 2010114426 A JP2010114426 A JP 2010114426A JP 2011242994 A JP2011242994 A JP 2011242994A
- Authority
- JP
- Japan
- Prior art keywords
- plug
- driver
- file
- client
- information
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、ドライバを用いて処理を行うドライバ制御システム、及びドライバ制御方法に関する。 The present invention relates to a driver control system that performs processing using a driver, and a driver control method.
従来より、プリンタは、機種によって搭載されている機能が異なっている。そして、ユーザの要求の多様化に伴い、プリンタに対して、必要な機能のみ利用できるようにカスタマイズした上で、販売することへのニーズが向上している。このようなニーズに対応するために、各機能をプラグインとして追加できるプリンタが提案されている。当該プリンタに対して機能が追加する場合、当該プリンタを制御するためのプリンタドライバに対しても、追加された機能を使えるように機能拡張する必要となる。 Conventionally, printers have different functions depending on the model. With the diversification of user demands, needs for selling printers after customizing them so that only necessary functions can be used are increasing. In order to meet such needs, printers capable of adding functions as plug-ins have been proposed. When a function is added to the printer, it is necessary to expand the function so that the added function can be used for a printer driver for controlling the printer.
また、プリンタの機能拡張に伴うプリンタドライバの機能拡張のほか、当該プリンタドライバ単体に対する機能拡張の要求も存在する。 In addition to the printer driver function expansion accompanying the printer function expansion, there is a request for function expansion for the printer driver alone.
このような機能拡張を行うために、プリンタドライバを再コンパイルし、顧客の環境に再インストールすることは、ユーザの利便性が低下する。そこで、再コンパイレーションや再インストールを行わずに、機能拡張を行う技術として、プラグインとしてプリンタドライバに機能を追加する技術が既に知られている。 In order to perform such function expansion, recompiling the printer driver and re-installing it in the customer's environment reduces the convenience for the user. Therefore, a technique for adding a function to a printer driver as a plug-in is already known as a technique for expanding functions without performing recompilation or reinstallation.
ところで、近年、サーバPCがプリンタドライバを管理し、クライアントPCに対してインストールを行う傾向にある。このような環境で、各クライアントPCに対してプラグインで機能拡張する技術として、プリンタドライバの構成ファイル以外のファイルを、プラグインとして追加したり、構成ファイルを書き換えて機能拡張する技術(例えば、特許文献1)が提案されている。これにより、再インストール等を行わずに、プリンタドライバに対して機能拡張が可能となる。 In recent years, server PCs tend to manage printer drivers and install them on client PCs. In such an environment, as a technique for extending the function of each client PC with a plug-in, a technique for adding a function other than the printer driver configuration file as a plug-in or rewriting the configuration file to expand the function (for example, Patent Document 1) has been proposed. This makes it possible to expand the function of the printer driver without performing reinstallation or the like.
しかしながら、プリンタドライバの構成ファイル以外のファイルを、プラグインとして追加する技術では、クライアントPCから、サーバPCが管理するプリンタドライバをインストール(例えばMicrosoft(登録商標)が提案しているポイント・アンド・プリントを用いたインストール)する場合、サーバPC側にプラグインが予め追加されていても、クライアントPC側には当該プラグインはインストールされない。このため、クライアントPCでは、拡張機能を利用できない。 However, in the technique of adding files other than the configuration file of the printer driver as a plug-in, the printer driver managed by the server PC is installed from the client PC (for example, point-and-print proposed by Microsoft (registered trademark)) When the plug-in is added to the server PC side in advance, the plug-in is not installed on the client PC side. For this reason, the extended function cannot be used in the client PC.
また、特許文献1に示されるように、構成ファイルを書き換えて機能拡張を行う技術では、例えば、クライアントPC側のOSがWindows(登録商標)の場合、ドライバの構成が変わっていないことを示すカタログ(cat)ファイルの整合性が崩れてしまうため、OSから安全性が保障されなくなる。特に、OSがWindows(登録商標)Vista(登録商標)の場合、ドライバストアの機能によって、書き換えられた構成ファイルが、書き換えられる前の状態に書き戻されることで、拡張した機能が消えてしまうなどの問題があった。
Further, as shown in
本発明は、上記に鑑みてなされたものであって、ドライバをインストールする際に、クライアントPCに対して、プラグインとして追加された拡張機能を継承できるドライバ制御システム、及びドライバ制御方法を提供することを目的とする。 The present invention has been made in view of the above, and provides a driver control system and a driver control method capable of inheriting an extended function added as a plug-in to a client PC when a driver is installed. For the purpose.
上述した課題を解決し、目的を達成するために、本発明にかかるドライバ制御システムは、ドライバをインストールする対象であるクライアントと、当該ドライバを管理するサーバと、で構成されるドライバ制御システムであって、前記サーバは、前記ドライバのプラグインがまとめてアーカイブされた所定のファイルと、前記ファイルに格納されたプラグインが示された一覧情報と、を送信対象として特定する特定手段と、前記ドライバと、前記特定手段により特定された前記ファイル及び前記一覧情報と、を前記クライアントに送信する送信手段と、を備え、前記クライアントは、前記サーバから、前記ドライバと、前記ファイルと、前記一覧情報と、を受信する受信手段と、前記受信手段により受信した前記ドライバをインストールするインストール手段と、前記受信手段により受信した前記ファイルと前記一覧情報とを記憶手段に格納する格納手段と、前記ファイルにアーカイブされている前記プラグインを前記一覧情報に従って呼び出す前記ドライバを、制御する制御手段と、を備えたこと、を特徴とする。 In order to solve the above-described problems and achieve the object, a driver control system according to the present invention is a driver control system including a client to which a driver is to be installed and a server that manages the driver. The server includes a specifying unit that specifies a predetermined file in which the plug-ins of the driver are collectively archived and list information indicating the plug-ins stored in the file as a transmission target, and the driver And transmitting means for transmitting the file and the list information specified by the specifying means to the client, wherein the client receives the driver, the file, and the list information from the server. , Receiving means for installing the driver received by the receiving means Control for controlling the driver that calls the plug-in archived in the file according to the list information, installation means, storage means for storing the file and list information received by the receiving means in a storage means And means.
また、本発明にかかるドライバ制御方法は、ドライバをインストールする対象であるクライアントと、当該ドライバを管理するサーバと、で実行されるドライバ制御方法であって、前記サーバでは、特定手段が、前記ドライバのプラグインがまとめてアーカイブされた所定のファイルと、前記ファイルに格納されたプラグインが示された一覧情報と、を送信対象として特定する特定ステップと、送信手段が、前記ドライバと、前記特定ステップにより特定された前記ファイル及び前記一覧情報と、を前記クライアントに送信する送信ステップと、を含み、前記クライアントでは、受信手段が、前記サーバから、前記ドライバと、前記ファイルと、前記一覧情報と、を受信する受信ステップと、前記受信ステップにより受信した前記ドライバをインストールするインストールステップと、格納手段が、前記受信ステップにより受信した前記ファイルと前記一覧情報とを記憶手段に格納する格納ステップと、制御手段が、前記ファイルにアーカイブされている前記プラグインを前記一覧情報に従って呼び出す前記ドライバを、制御する制御ステップと、を含むこと、を特徴とする。 The driver control method according to the present invention is a driver control method executed by a client to which a driver is to be installed and a server that manages the driver. In the server, the specifying means includes the driver A specifying step for specifying a predetermined file in which the plug-ins of the archive are collectively archived and list information indicating the plug-ins stored in the file as transmission targets; and a transmitting means, the driver, and the specifying Transmitting the file identified by the step and the list information to the client. In the client, the receiving means receives the driver, the file, and the list information from the server. , And receiving the driver received in the receiving step. An installation step for installing, a storage unit for storing the file and the list information received in the reception step in a storage unit, and a control unit for storing the plug-ins archived in the file in the list. And a control step of controlling the driver to be called according to the information.
本発明によれば、ドライバのプラグインをインストールする際の操作負担を軽減するという効果を奏する。 According to the present invention, there is an effect of reducing an operation burden when installing a driver plug-in.
以下に添付図面を参照して、この発明にかかるドライバ制御システム、及びドライバ制御方法の一実施の形態を詳細に説明する。 Exemplary embodiments of a driver control system and a driver control method according to the present invention will be explained below in detail with reference to the accompanying drawings.
(第1の実施の形態)
図1は、第1の実施の形態にかかる印刷制御システムの構成を示すブロック図である。図1に示すように、印刷制御システムは、ネットワーク160を介して、サーバPC100と、クライアントPC110と、プリンタ150と、が接続されている。サーバPC100は、クライアントPC110に対してドライバのインストール制御を行うことが可能なPCとする。このインストール制御には、例えば、ポイント・アンド・プリントを用いてもよい。
(First embodiment)
FIG. 1 is a block diagram illustrating a configuration of a print control system according to the first embodiment. As shown in FIG. 1, a server PC 100, a client PC 110, and a
図2は、本実施の形態にかかるサーバPC100の機能ブロックを示した図である。図2に示すようにサーバPC100は、OS201が搭載されており、当該OS201が、サーバPC100に搭載された(図示しない)アプリケーションや、ハードウェアを制御する。
FIG. 2 is a diagram illustrating functional blocks of the server PC 100 according to the present embodiment. As shown in FIG. 2, the server PC 100 is equipped with an
OS201は、プリンタドライバ250と、制御部202と、送信部203と、書込部204と、レジストリ210と、DEVMODE211と、ドライバ設定ディレクトリ212と、プラグインディレクトリ213と、を備えている。本実施の形態においては、OS201として、MS-Windows(登録商標)が搭載されている例について説明する。
The OS 201 includes a
つまり、本実施の形態では、MS-Windows(登録商標)で提供されているポイント・アンド・プリントを用いたドライバのインストールを例に説明する。しかしながら、当該ポイント・アンド・プリントと同等のインストールを実現する機能があれば他のOSであっても良い。 That is, in the present embodiment, driver installation using point-and-print provided by MS-Windows (registered trademark) will be described as an example. However, another OS may be used as long as it has a function that realizes installation equivalent to the point-and-print.
プリンタドライバ250は、描画ドライバ251と、ポイント・アンド・プリント・ライブラリ252と、設定管理部253と、UIドライバ254と、プラグイン管理部255と、を備えている。そして、このプリンタドライバ250は、プリンタ150を制御するためのドライバであり、サーバPC100からクライアントPC110に対して提供可能なドライバとする。
The
描画ドライバ251は、OS(サーバPC100のOS201や、クライアントPCのOS)からプリンタ150を制御するために必要なプリンタドライバ250の構成モジュールである。そして、描画ドライバ251は、描画処理を行い、描画データを生成する。
The drawing
ポイント・アンド・プリント・ライブラリ252は、特定部261を備え、サーバPC100に対して、クライアントPC110からポイント・アンド・プリントが行われた際に、呼び出されるダイナミック・リンク・ライブラリ(モジュール群)とする。本実施の形態にかかるポイント・アンド・プリント・ライブラリ252は、ポイント・アンド・プリント時に呼び出された場合、クライアントPC110又はサーバPC100のどちらかで呼び出されたのかに応じてそれぞれ異なる制御を行う。これにより、クライアントPC110及びサーバPC100の間で、プリンタドライバ250の構成ファイル以外のファイルを送信するため制御が行われる。
The point-and-
特定部261は、ポイント・アンド・プリント時に、サーバPC100側から呼び出された場合、クライアントPC110に送信するファイルを特定する。本実施の形態にかかる特定部261は、プリンタドライバ250のプラグインがまとめてアーカイブされた所定のファイル(以下、プラグインアーカイブと称す)と、プラグインアーカイブに格納されたプラグインを認識するためのプラグイン一覧情報と、をクライアントPC110へ送信するファイルとして特定する。
The
また、特定部261は、ポイント・アンド・プリント時に、クライアントPC110側で呼び出された場合、プラグインの格納先となるパスを特定する。
In addition, the
つまり、ポイント・アンド・プリント・ライブラリ252を、プリンタドライバ250に含ませて、ポイント・アンド・プリント時に、サーバPC100及びクライアントPC110で呼び出されることで、プリンタドライバ250のプラグインのインストールを実現する。このインストールを実現するための制御として、サーバPC100側においては、送信する対象となるファイルを特定している。
That is, the point-and-
設定管理部253は、プリンタドライバ250の機能や設定を管理するモジュールとする。設定管理部253が管理する設定としては、例えば、現在の設定値、各機能の値域、及び各機能間の禁則とする。これらの機能や設定の書き出しや読み出しは、レジストリ210や、DEVMODE211に対して行う。
The
UIドライバ254は、OS201からプリンタ150を制御するために必要なプリンタドライバの構成モジュールであり、設定画面や、インストール時の初期設定画面などを表示するGUI(Graphic User Interface)として機能する。
The
プラグイン管理部255は、プラグインに関する制御を行うモジュールとする。本実施の携帯にかかるプラグイン管理部255は、プリンタドライバ250本体に対する設定と、プラグインに対する設定と、をマージして、呼び出し側にプラグインの構成を意識させないよう制御する。
The plug-in
また、プラグイン管理部255は、各印刷命令に従って、インストールされたプラグインに含まれる描画拡張モジュールの該当する処理を呼び出し、プラグイン毎に行われる制御(例えば描画制御)を実現する。
In addition, the plug-in
具体的には、プラグイン管理部255は、プリンタドライバ250による制御を行う際、プラグイン一覧情報に従って、プラグインアーカイブにまとめてアーカイブされている、各プラグインを用いた制御を行う。
Specifically, when performing control by the
次に、プリンタドライバ250以外の構成について説明する。制御部202は、プリンタドライバ250など、OS201に搭載された様々なドライバの制御を行う。
Next, configurations other than the
書込部204は、情報の書き込み制御を行う。例えば、書込部204は、プリンタドライバ250に対してプラグインを追加する際、当該プラグインのインストーラからの呼び出しに応じて、プラグインアーカイブにプラグインを追加する書き込みを行うとともに、プラグインアーカイブに追加するプラグインを認識させるプラグイン情報を、プラグイン一覧情報に書き込む。本実施の形態にかかるプラグイン情報は、プラグインの名称と、当該プラグインのバージョン情報と、を含む。
The writing unit 204 performs information writing control. For example, when the writing unit 204 adds a plug-in to the
送信部203は、クライアントPC110に対して、情報を送信する制御を行う。送信対象としては、プリンタドライバ250等のドライバと、当該ドライバに対して追加されたプラグインがまとめてアーカイブされたプラグインアーカイブと、プラグイン一覧情報などがある。
The
なお、バージョン情報は、プラグインを追加するか否かを基準として用いられる。例えば、新たにプラグインが追加される場合、同一名称のプラグインがすでに追加されているのであれば、バージョン情報を確認し、バージョン情報が新しい場合に限ってインストールを継続する等とする。 The version information is used based on whether or not a plug-in is added. For example, when a new plug-in is added, if a plug-in with the same name has already been added, the version information is confirmed, and the installation is continued only when the version information is new.
ドライバ設定ディレクトリ212は、プリンタドライバ250が処理を行う際に参照する設定情報が格納されたディレクトリとする。ドライバ設定ディレクトリ212は、機能情報と、画面レイアウト情報と、を保持する。
The
機能情報は、プリンタドライバ250の各機能の機能名、ユーザ・インターフェイスの種類(選択肢か、文字列か、数値か)、値域、機能間の禁則が記述された情報を示している。本実施の形態においては、機能情報はXML形式で記述されているものとする。
The function information indicates information describing the function name of each function of the
図3は、プリンタドライバ250で用いられる機能情報の例を示した図である。図3に示すように、プリンタドライバ250で利用可能な機能毎に、“item”タグが定義されている。
FIG. 3 is a diagram illustrating an example of function information used in the
つまり機能毎の設定を示す情報が、各“item”タグ内に格納されている。この“item”タグは、“name”と“type”の属性を有している。属性“name”は、各機能設定の名前を示している。属性typeは、入力される設定値の形式を示している。 That is, information indicating the setting for each function is stored in each “item” tag. The “item” tag has “name” and “type” attributes. The attribute “name” indicates the name of each function setting. The attribute type indicates the format of the input setting value.
属性“name”が“layout”のタグは集約設定を保持していることを示している。属性“name”が“booklet”のタグは製本設定を保持していることを示している。属性“name”が“papersize”のタグは印刷用紙設定を保持していることを示している。属性“name”が“copies”のタグは部数設定を保持していることを示している。属性“name”が“userid”のタグは利用者別ID設定を保持していることを示している。 A tag whose attribute “name” is “layout” indicates that the aggregation setting is held. A tag whose attribute “name” is “booklet” indicates that bookbinding settings are held. A tag whose attribute “name” is “papersize” indicates that the print paper setting is held. A tag whose attribute “name” is “copies” indicates that the number of copies setting is retained. A tag whose attribute “name” is “userid” indicates that the ID setting for each user is held.
また、属性“type”として設定される値について説明する。“pickone”は、選択肢形式であることを示している。“string”は、文字列入力形式であることを示している。“number”は、数値入力形式であることを示している。 A value set as the attribute “type” will be described. “Pickone” indicates an option format. “String” indicates a character string input format. “Number” indicates a numeric input format.
また、“item”タグは、図3の集約設定のように、“constraint”タグ301を保持することができる。“constraint”タグ301は、親タグである“item”タグの設定の禁則情報を表している。属性“fixvalue”は、“constraint”タグに禁則条件が合致している場合に強制的に変更するか否かを示す属性とする。
Further, the “item” tag can hold a “constraint”
また、“constraint”タグは、図3の集約設定のように“condition”タグ302を保持することができる。“condition”タグは、親タグである“constraint”タグの禁則条件を保持している。例えば、属性“expression”は、当該禁則条件を示している。具体的には、“layout”は、“booklet”に“on”が設定されている場合に禁則条件に合致し、“off”という設定値に強制的に変更される。
Further, the “constraint” tag can hold the “condition”
“pickone”タグは、親タグである“item”タグの“type”が選択肢形式の場合に、選択肢毎の情報を保持している。“pickone”タグ内の属性“name”は、当該タグの選択肢を表す設定値とする。また、図3に示す例では、記述されていないが、“constraint”タグを有することができる。このように、“pickone”タグ自体、すなわち選択肢自体も、禁則情報を保持することができる。 The “pickone” tag holds information for each option when the “type” of the “item” tag that is the parent tag is an option format. The attribute “name” in the “pickone” tag is a set value that represents an option of the tag. In the example shown in FIG. 3, although not described, it can have a “constraint” tag. Thus, the “pickone” tag itself, that is, the option itself, can also hold prohibition information.
次に、“pickone”タグの属性“name”の各設定値について説明する。タグ“layout”内における、“off”は機能オフ、“2in1”は2in1印刷、“4in1”は4in1印刷、“on”は機能オン、“a3”はA3用紙、“a4”はA4用紙、という選択肢を示している。 Next, each setting value of the attribute “name” of the “pickone” tag will be described. In the tag “layout”, “off” is function off, “2in1” is 2in1 printing, “4in1” is 4in1 printing, “on” is function on, “a3” is A3 paper, “a4” is A4 paper Shows options.
“range”タグは、親タグ“item”タグの“type”が数値形式の場合に、選択可能な範囲が定義されている。この“range”タグ内の属性“min”は設定可能な最小値を、“max”は設定可能な最大値を保持している。 The “range” tag defines a selectable range when the “type” of the parent tag “item” tag is a numeric format. The attribute “min” in the “range” tag holds a settable minimum value, and “max” holds a settable maximum value.
“string”タグは、親タグ“item”タグの“type”が文字列形式の場合に、選択可能な文字列が定義されている。この“string”タグ内の属性“min”は最小文字数を、属性“max”は最大文字数を保持している。また、属性“chartype”は文字の種類を保持している。例えば属性“chartype”が、“alphanumeric”の場合に、数値とアルファベットの文字列が入力可能であることを示している。 The “string” tag defines a selectable character string when the “type” of the parent tag “item” tag is a character string format. The attribute “min” in the “string” tag holds the minimum number of characters, and the attribute “max” holds the maximum number of characters. The attribute “chartype” holds the character type. For example, when the attribute “chartype” is “alphanumeric”, it indicates that a numerical value and an alphabetic character string can be input.
画面レイアウト情報は、プリンタドライバ250に関する設定画面が表示された際、当該設定画面のレイアウト(UIの種類、座標、紐付けられる機能名)を特定するための情報が記述されている。
The screen layout information describes information for specifying the layout (UI type, coordinates, function name to be associated) of the setting screen when the setting screen related to the
図4は、プリンタドライバ250で用いられる画面レイアウト情報の例を示した図である。図4に示す例は、画面レイアウト情報をJSON形式で記述した例とする。
FIG. 4 is a diagram illustrating an example of screen layout information used in the
図4のように、画面レイアウト情報では、UIコンポーネント毎にレイアウトを特定するための情報(レイアウトデータと称す)が記述されている。このUIコンポーネント毎のレイアウトデータは、それぞれ属性“type”、属性“name”、属性“axis”を有している。 As shown in FIG. 4, the screen layout information describes information (referred to as layout data) for specifying a layout for each UI component. The layout data for each UI component has an attribute “type”, an attribute “name”, and an attribute “axis”.
属性“type”は、UIコンポーネントの種類を示している。“type”の値において、“ComboBox“が設定されている場合はコンボボックスコンポーネントを、“CheckBox“が設定されている場合はチェックボックスコンポーネントを、“SpinBox“が設定されている場合はスピンボックスコンポーネントを、“EditBox“が設定されている場合はエディットボックスコンポーネントで表示することを示している。 The attribute “type” indicates the type of UI component. When “ComboBox” is set in the “type” value, the combo box component is set. When “CheckBox” is set, the check box component is set. When “SpinBox” is set, the spin box component is set. When “EditBox” is set, it is displayed in the edit box component.
属性“name”は、設定の名前を示している。属性“name“の値として、“layout“が設定されている場合は集約設定、“booklet“が設定されている場合は製本設定、“papersize“が設定されている場合は印刷用紙設定、“copies“が設定されている場合は部数設定、“userid“が設定されている場合は利用者別ID設定であることを示している。 The attribute “name” indicates the name of the setting. If "layout" is set as the value of the attribute "name", aggregation settings are set, if "booklet" is set, bookbinding settings, if "papersize" is set, print paper settings, "copies" When “is set, it indicates that the number of copies is set, and when“ userid ”is set, the ID is set for each user.
属性“axis”は、表示位置の座標を示している。属性“axis”が保持する属性“x”はダイアログボックスの左上原点からの水平方向座標を、属性“y”は垂直方向座標を指定している。 The attribute “axis” indicates the coordinates of the display position. An attribute “x” held by the attribute “axis” designates a horizontal coordinate from the upper left origin of the dialog box, and an attribute “y” designates a vertical coordinate.
例えば、欄401内で設定された集約設定は、コンボボックスコンポーネントで水平位置“25”、垂直位置“30”に表示することが記述されている。
For example, it is described that the aggregation setting set in the
レジストリ210は、サーバPC100のOS201や、OS201上で動作するアプリケーションの設定が格納されたデータベースとする。本実施の形態にかかるレジストリ210は、ポイント・アンド・プリントを行う際に、ドライバの構成ファイル以外のファイルを送信するために必要な設定を保持している。この必要な設定の例としては、送信対象となるプラグインのファイルが格納されたディレクトリを示すパスや、送信対象となるファイルを特定するファイル名などがある。
The
図5は、ポイント・アンド・プリントを行うためにレジストリ210に格納された設定の例を示した図である。当該設定がなされたことで、ポイント・アンド・プリント時にドライバ構成ファイル以外のファイルを送信させることが可能となる。
FIG. 5 is a diagram illustrating an example of settings stored in the
レジストリキーとしては、例えば、「\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\ドライバ名」の下に「CopyFiles\任意の名前」のキーが存在し、その下に図5で示したサブキーが格納されているものとする。本実施の形態では、「\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\DriverA\CopyFiles\Plugin」の下に格納されているものとする。次にサブキーの意味について説明する。 As a registry key, for example, the key “CopyFiles \ arbitrary name” exists under “\ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Print \ Printers \ driver name”, and the subkeys shown in FIG. Assume that it is stored. In this embodiment, it is assumed that it is stored under “\ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Print \ Printers \ DriverA \ CopyFiles \ Plugin”. Next, the meaning of the subkey will be described.
“Dierectory”は、クライアントPC110に送信するファイルが置いてあるディレクトリを示すパスを保持している。このディレクトリを示すパスは、ポイント・アンド・プリント・ライブラリ252のGenerateCopyFilePathsAPIを呼び出すことで変更できる。本実施の形態にかかる“Dierectory”には、プラグインディレクトリ213を表す“C:\Documents and Settings\All Users\Application Data\DriverA\Plugin”が保持されている。
“Dierectory” holds a path indicating a directory in which a file to be transmitted to the
“Files”は、“Directory”で示されたディレクトリ(プラグインディレクトリ213)内に格納されたファイルのうち、送信するファイルの一覧を保持している。本実施の形態にかかる“Files”には、プラグイン一覧情報“plugin_info.json”と、プラグインアーカイブ“plugin_archive.zip”を示すファイル名を保持している。 “Files” holds a list of files to be transmitted among the files stored in the directory (plug-in directory 213) indicated by “Directory”. “Files” according to the present embodiment holds plug-in list information “plugin_info.json” and a file name indicating the plug-in archive “plugin_archive.zip”.
“Module”は、ポイント・アンド・プリントの処理を行う際に、呼び出すライブラリ(ダイナミック・リンク・ライブラリ)を示すファイル名を保持している。本実施の形態にかかる“Module”は、ポイント・アンド・プリント・ライブラリ252を示すファイル名“ppmodule.dll”を保持している。
“Module” holds a file name indicating a library (dynamic link library) to be called when the point-and-print process is performed. “Module” according to the present embodiment holds a file name “ppmodule.dll” indicating the point-and-
この呼び出す対象となるライブラリ(ポイント・アンド・プリント・ライブラリ252)は、GenerateCopyFilePaths()と、SpoolerCopyFileEvent()のAPIを実装したダイナミック・リンク・ライブラリとする。 The library to be called (point and print library 252) is a dynamic link library in which APIs of GenerateCopyFilePaths () and SpoolerCopyFileEvent () are implemented.
GenerateCopyFilePathsは、サーバPC100、クライアントPC110のそれぞれで呼び出されるAPIであり、図2の特定部261に相当する。このGenerateCopyFilePaths(特定部261)は、送信元や送信先のディレクトリのパス等を特定する際に呼び出される。
GenerateCopyFilePaths is an API called by each of the
SpoolerCopyFileEventは、クライアントPC110で動作するAPIであり、ポイント・アンド・プリントの接続開始/終了などのイベントを通知する。なお、具体的な通知制御については省略する。
SpoolerCopyFileEvent is an API that runs on the
DEVMODE211は、プリンタドライバ250の設定を保存するために、OS201側によって提供された構造体とする。例えば、DEVMODE211は、プリンタドライバ250に対して行われた現在の設定値などを保持する。
The
プラグインディレクトリ213は、プリンタドライバ250のプラグインを保存するためのディレクトリとする。本実施の形態にかかるプラグインディレクトリ213は、プラグイン一覧情報と、プラグインアーカイブとを、格納する。
The plug-in
プリンタドライバ250のインストール直後に、プリンタドライバ250が所定のパスに、プラグインディレクトリ213を生成する。そして、プリンタドライバ250が、初期のプラグイン一覧情報と、初期のプラグインアーカイブと、をプラグインディレクトリ213に生成する(なお、コピー等であっても良い)。
Immediately after installation of the
その後、プリンタドライバ250に対してプラグインが追加される際、当該ディレクトリのプラグイン一覧情報とプラグインアーカイブとに、プラグインに関する情報が追加されていく。これにより、プリンタドライバ250の機能を拡張できる。
Thereafter, when a plug-in is added to the
具体的には、プリンタドライバ250に対してプラグインが追加された場合、当該プラグインを認識させるプラグイン情報をプラグイン一覧情報に対して追加するとともに、当該プラグインが追加されたプラグインアーカイブを生成する。なお、本実施の形態において、プラグインの追加は、プリンタドライバ250自体は関与せず、外部のツールなどによって行われるものとする。
Specifically, when a plug-in is added to the
次に、プラグイン一覧情報の初期状態について説明する。図6は、プラグイン一覧情報の初期状態を示した図である。図6に示すように、プラグイン一覧情報は、初期状態ではなんの情報も格納されていない。つまり、プリンタドライバ250のインストール直後においては、利用可能なプラグインが存在しないことを示している。そして、プラグインが追加される毎に、追加されたプラグインの名称や、当該プラグインに関する情報が書込部204により書き込まれる。また、本実施の形態は、プラグイン一覧情報のフォーマットとして、JSON(Java(登録商標)Script Object Notation)形式を用いた例とするが、他のフォーマットを用いても良い。
Next, the initial state of plug-in list information will be described. FIG. 6 is a diagram showing an initial state of plug-in list information. As shown in FIG. 6, the plug-in list information does not store any information in the initial state. That is, immediately after installation of the
また、プラグインアーカイブも初期状態で、何の情報も格納されていないものとする。本実施の形態では、プラグインアーカイブは、各プラグインをまとめてZIP圧縮したアーカイブファイルとする。つまり、プラグインアーカイブは、プラグインが追加されていない初期状態では空のZIPファイルであり、プラグインが追加される毎に今まで追加されたプラグインをまとめたZIPファイルが生成される。 It is also assumed that the plug-in archive is in an initial state and no information is stored. In the present embodiment, the plug-in archive is an archive file in which the plug-ins are collectively ZIP-compressed. In other words, the plug-in archive is an empty ZIP file in the initial state where no plug-in is added, and a ZIP file in which plug-ins that have been added so far are generated each time a plug-in is added.
次に、プラグインが追加されたプラグイン一覧情報と、プラグインアーカイブと、について説明する。なお、当該説明では、borderlineプラグインとstampプラグインとの2つのプラグインが追加された例とする。 Next, plug-in list information to which plug-ins have been added and plug-in archives will be described. In the description, it is assumed that two plug-ins, a borderline plug-in and a stamp plug-in, are added.
図7は、2つのプラグインが追加されたプラグイン一覧情報の例を示した図である。図7に示すように、プラグイン一覧情報は、JSON形式によるテーブルとして機能する。そして、プラグイン一覧情報において、プラグインの名称が、キーとして機能するObjectとする。そして、キーに対応する値は、当該プラグインに対応する参照可能な情報として設定されている。なお、図7に示す例は、参照可能な情報として、プラグインのバージョンが記述された例とする。 FIG. 7 is a diagram illustrating an example of plug-in list information in which two plug-ins are added. As shown in FIG. 7, the plug-in list information functions as a table in the JSON format. In the plug-in list information, the name of the plug-in is an object that functions as a key. The value corresponding to the key is set as the referable information corresponding to the plug-in. The example shown in FIG. 7 is an example in which a plug-in version is described as referenceable information.
図8は、2つのプラグインが追加されたプラグインアーカイブの例を示した図である。図8に示すように、プラグインアーカイブは、プラグイン一覧情報に記述されているプラグインの名称と同一のディレクトリを有する。つまり、プラグインアーカイブには、Borderlineディレクトリ801と、Stampディレクトリ802と、の2つが含まれている。そして、プリンタドライバ250は、プラグイン一覧情報に書き込まれたプラグインの名称に基づいて、プラグインアーカイブ内の、各プラグインのモジュールの格納されたディレクトリを特定する。
FIG. 8 is a diagram showing an example of a plug-in archive in which two plug-ins are added. As shown in FIG. 8, the plug-in archive has the same directory as the name of the plug-in described in the plug-in list information. That is, the plug-in archive includes two items, a
図8の、プラグインアーカイブ内の各ディレクトリには、機能情報と、画面レイアウト情報と、描画拡張モジュールと、の3つのモジュールが格納されている。この機能情報、及び画面レイアウト情報は、ドライバ設定ディレクトリ212に格納された、プリンタドライバ250の機能情報、画面レイアウト情報と同様の形式の情報とする。具体的には、プラグインアーカイブ内の各ディレクトリに格納された機能情報には、プラグインで追加される機能が定義されている。また、プラグインアーカイブ内の各ディレクトリに格納された画面レイアウト情報には、プラグインに関する画面レイアウトが記述されている。
Each directory in the plug-in archive in FIG. 8 stores three modules: function information, screen layout information, and a drawing extension module. The function information and screen layout information are information in the same format as the function information and screen layout information of the
描画拡張モジュールは、プラグインが提供する機能による描画処理を行うモジュールとする。例えば、borderlineプラグインの描画拡張モジュールは、集約時にページの区切り線を引く機能を提供する。さらに、stampプラグインの描画拡張モジュールは、スタンプ印字を行う機能を提供する。これら各プラグインの描画拡張モジュールは、ジョブの開始/終了、ページの開始/終了、各種描画オブジェクトの描画など、描画ドライバに対応したAPIが実装されている。 The drawing extension module is a module that performs drawing processing by the function provided by the plug-in. For example, the drawing extension module of the borderline plug-in provides a function for drawing a page separator line at the time of aggregation. Further, the drawing extension module of the stamp plug-in provides a function for performing stamp printing. These plug-in drawing extension modules are implemented with APIs corresponding to drawing drivers, such as job start / end, page start / end, and drawing of various drawing objects.
なお、本実施の形態にかかるプラグインの追加は、通常プラグインインストーラなどによって行われる。しかしながら、プラグインの追加は、インストーラを用いるものに制限するものではなく、プラグイン一覧情報に対して、追加するプラグインの情報を書き込み制御しても良い。また、ユーザの操作に従って、プラグインアーカイブにプラグインのファイルを追加してもよい。 Note that the addition of the plug-in according to the present embodiment is normally performed by a plug-in installer or the like. However, the addition of a plug-in is not limited to that using an installer, and information on the plug-in to be added may be written and controlled with respect to the plug-in list information. Further, a plug-in file may be added to the plug-in archive in accordance with a user operation.
なお、本実施の形態では、初期状態でプラグインがインストールされていない例について説明した。しかしながら、プラグインがインストールされてない例に制限するものではなく、最初から、プラグインが記載されたプラグイン一覧情報と、当該プラグイン一覧情報に矛盾が生じないようプラグインがアーカイブされたプラグインアーカイブと、を初期状態として予め作成してもよい。これにより、プリンタドライバ250のインストール直後からプラグインを利用することも可能となる。
In the present embodiment, an example in which no plug-in is installed in the initial state has been described. However, the present invention is not limited to an example in which the plug-in is not installed. From the beginning, the plug-in list information in which the plug-in is described and the plug-in in which the plug-in is archived so that no inconsistency occurs between the plug-in list information. In-archive may be created in advance as an initial state. As a result, the plug-in can be used immediately after the
次に、本実施の形態にかかるサーバPC100における、ドライバのインストールの処理について説明する。図9は、本実施の形態にかかるサーバPC100における上述した処理の手順を示すシーケンス図である。図9に示すシーケンスでは、プリンタドライバ250をインストールする例とする。
Next, driver installation processing in the
まず、OS201は、プリンタドライバ250のインストール要求を受け付けた場合に、当該プリンタドライバの構成ファイルをインストールする(ステップS901)。つまり、OS201は、プリンタドライバ250の構成ファイルを、全てのドライバの格納先となるインストールディレクトリにコピーする。このコピーされる構成ファイルとは、図2のプリンタドライバ250に含まれる構成とする。
First, when receiving an installation request for the
その後、OS201は、構成ファイルがインストールされたプリンタドライバ250のUIドライバ254に対して、ドライバインストールのイベントを送出する(ステップS902)。
Thereafter, the
UIドライバ254は、プラグイン管理部255に対して、プラグインの初期設定を要求する(ステップS903)。
The
当該要求に従って、プラグイン管理部255は、プラグインディレクトリ213のパスを生成する(ステップS904)。本実施の形態においては、OS201が有するAPI(例えば、Windows(登録商標)API)の、フォルダパスを特定するコマンド(例えば、SHGetSpecialFolderPath)を利用して、所定のフォルダのパス(例えばComonApplicationDataのパス)を取得する。そして、プラグイン管理部255は、取得した所定のフォルダのパスに対して、“ドライバ名\Plugin”を連結したパスを、プラグインディレクトリ213として生成する。生成されたプラグインディレクトリ213は、以降、プラグインの格納等に利用される。
In accordance with the request, the plug-in
例えば、インストールするドライバ名が“DriverA”の場合、プラグイン管理部255は、プラグインディレクトリ213のパスとして、“C:\Documents and Settings\All Users\Application Data\DriverA\Plugin”を生成する。
For example, when the driver name to be installed is “DriverA”, the plug-in
次に、プラグイン管理部255が、生成したプラグインディレクトリ213のパスに対して、初期状態のプラグイン一覧情報を生成する(ステップS905)。なお、この初期状態のプラグイン情報は、プリンタドライバ250の構成ファイルとして含まれていたものをコピーしても良い。
Next, the plug-in
さらに、プラグイン管理部255が、生成したプラグインディレクトリ213のパスに対して、初期状態のプラグインアーカイブを生成する(ステップS906)。この初期状態のプラグインアーカイブは、プリンタドライバ250の構成ファイルとして含まれていたものをコピーしても良い。
Further, the plug-in
なお、通常、初期状態ではプラグインは空であるが、最初からドライバパッケージにプラグインを含めて配布したい場合、図7に示すプラグイン一覧情報や、図8に示すプラグインアーカイブのように最初からプラグインが含まれた構成であっても良い。このような構成であれば、ドライバのインストール直後からプラグインの機能が利用可能となる。 Normally, the plug-in is empty in the initial state, but if you want to distribute the driver package including the plug-in from the beginning, the plug-in list information shown in FIG. 7 or the plug-in archive shown in FIG. The plug-in may be included. With such a configuration, the plug-in function can be used immediately after the driver is installed.
これは、まず第1に、プリンタドライバ250のインストールは、プラグイン一覧情報とプラグインアーカイブとの内部と関係なく行われるものだからである。第2に、プリンタドライバ250のインストール後において、プラグインを動作させるために必要な情報は全て、プラグインディレクトリ内のプラグイン一覧情報と、プラグインアーカイブと、に持たせているためである。このため、最初に、プラグイン一覧情報と、プラグインアーカイブとに含ませていても、問題なく機能する。
This is because, first of all, the installation of the
そして、プラグイン管理部255は、レジストリ210に対して、プラグインを利用するために必要な情報を設定する(ステップS907)。この必要な情報の例としては、クライアントPC110によるポイント・アンド・プリント時に、プリンタドライバ250のプラグインに関するファイルを送信させるための情報であって、図5に示した情報とする。
Then, the plug-in
上述した処理手順によりサーバPC100に対してプリンタドライバ250がインストールされる。次に、サーバPC100からプリンタドライバ250のインストール先となるクライアントPC110について説明する。
The
図10は、本実施の形態にかかるクライアントPC110の機能ブロックを示した図である。図10に示すようにクライアントPC110は、OS1001が搭載されており、当該OS1001が、クライアントPC110に搭載された(図示しない)アプリケーションや、ハードウェアを制御する。
FIG. 10 is a diagram showing functional blocks of the
OS1001は、プリンタドライバ250と、制御部1002と、受信部1003と、インストール部1004と、格納部1005と、展開部1006と、表示部1007と、レジストリ1010と、DEVMODE1011と、ドライバ設定ディレクトリ1012と、プラグインディレクトリ1013と、を備えている。本実施の形態においては、OS1001として、MS-Windows(登録商標)が搭載されている例について説明する。このように、クライアントPC110に搭載されるOS1001の種類は、サーバPC100と同一のOSであってもよいし、他のOSが搭載されていても良い。
The
レジストリ1010は、クライアントPC110のOS1001や、OS1001上で動作するアプリケーションの設定が格納されたデータベースとする。
The registry 1010 is a database that stores the settings of the
DEVMODE1011は、プリンタドライバ250の設定を保存するために、OS201側によって提供された構造体とする。
The
制御部1002は、OS1001にインストールされたドライバ(例えばプリンタドライバ250を含む)を制御する。制御部1002により制御される各ドライバは、プラグインアーカイブにアーカイブされているプラグインを、プラグイン一覧情報に従って呼び出す。このため、制御部1002による制御に基づいて、インストールされた各プラグインの機能を利用できる。
The
受信部1003は、サーバPC100から情報を受信する。受信する情報の例としては、インストールするドライバ、当該プリンタドライバで用いるプラグインアーカイブ、及び当該プリンタドライバで用いるプラグイン一覧情報等とする。
The receiving
インストール部1004は、受信部1003が受信したドライバのインストール制御を行う。本実施の形態にかかるインストール部1004は、ポイント・アンド・プリントでプリンタドライバのインストールを行う。
The installation unit 1004 performs installation control of the driver received by the
また、インストール部1004は、ドライバのインストールの際に、当該ドライバで用いる設定情報を、ドライバ設定ディレクトリ1012に格納する。 The installation unit 1004 stores setting information used by the driver in the driver setting directory 1012 when the driver is installed.
ドライバ設定ディレクトリ1012は、プリンタドライバ250が処理を行う際に参照する設定情報が格納されたディレクトリとする。ドライバ設定ディレクトリ1012には機能情報、及び画面レイアウト情報が格納される。当該機能情報、及び画面レイアウト情報は、サーバPC100のドライバ設定ディレクトリ212に格納された機能情報、及び画面レイアウト情報と同様とする。
The driver setting directory 1012 is a directory that stores setting information to be referred to when the
プリンタドライバ250は、インストール部1004によりインストールされたドライバとする。このプリンタドライバ250は、サーバPC100からインストールされたため、サーバPC100に搭載されたものと同一構成とする。
The
表示部1007は、プリンタドライバ250に関する設定画面等を表示する。例えば、表示部1007は、ドライバ設定ディレクトリ212に格納された画面レイアウト情報、及びプラグイン毎の画面レイアウト情報に従って生成された、設定画面を表示する。なお、プラグインが追加されていない場合、表示部1007は、ドライバ設定ディレクトリ212に格納された画面レイアウト情報のみから生成された設定画面を表示する。
A
図11は、ドライバ設定ディレクトリ1012の画面レイアウト情報のみから生成される印刷設定画面の例を示した図である。図11に示す印刷設定画面の例では、プリンタドライバ250の構成モジュールにおいて使用可能な項目が表示されている。そして、図11で示した印刷設定画面に表示された各項目に対する設定は、機能情報を読み込んだ設定管理部253で管理する。
FIG. 11 is a diagram illustrating an example of a print setting screen generated only from the screen layout information of the driver setting directory 1012. In the example of the print setting screen illustrated in FIG. 11, items usable in the configuration module of the
図11の「OK」ボタンは印刷設定の変更を保存するボタンであり、「Cancel」ボタンは印刷設定の変更をキャンセルするボタンとする。そして、これら「OK」ボタン、及び「Cancel」ボタンは、画面レイアウト情報に従って表示されるボタンではなく、画面レイアウト情報とは関係なく実装しているボタンとする。 The “OK” button in FIG. 11 is a button for saving the print setting change, and the “Cancel” button is a button for canceling the print setting change. These “OK” button and “Cancel” button are not displayed according to the screen layout information, but are implemented regardless of the screen layout information.
なお、サーバPC100にプリンタドライバ250にプラグインが追加されている場合、サーバPC100からプリンタドライバ250のインストールを行ったクライアントPC110では、図11に示す印刷設定画面を表示せず、プラグインの画面レイアウト情報を含めた印刷設定画面を表示する。
If a plug-in is added to the
プラグインディレクトリ1013は、プリンタドライバ250のプラグインを保存するためのディレクトリとする。プラグインディレクトリ1013に格納されたプラグイン一覧情報及びプラグインアーカイブは、プラグインディレクトリ213に格納されたプラグイン一覧情報及びプラグインアーカイブと同様とする。
The plug-in
展開部1006は、アーカイブを展開する。本実施の形態にかかる展開部1006は、プラグインディレクトリ1013内の、ZIP形式で圧縮されたプラグインアーカイブから、各プラグインに展開する。
The
また、展開部1006は、プラグインアーカイブを展開する際、各プラグインの構成ファイルとして、プラグイン毎に画面レイアウト情報と、機能設定情報と、描画拡張モジュールと、を展開する。
Further, when expanding the plug-in archive, the
描画拡張モジュールは、当該プラグインの処理に対するAPIを有する実行可能なファイルとする。 The drawing extension module is an executable file having an API for the processing of the plug-in.
プラグイン毎の画面レイアウト情報には、各GUIの種類、機能名及び座標情報の配列構造で記述されている。また、プラグイン毎の機能情報には、当該機能を利用するための設定が含まれている。次に、各プラグインの機能情報、及び画面レイアウト情報を説明する。 The screen layout information for each plug-in is described by an array structure of GUI types, function names, and coordinate information. Further, the function information for each plug-in includes a setting for using the function. Next, function information and screen layout information of each plug-in will be described.
図12は、“borderline”プラグインの機能情報の例を示した図である。“borderline”プラグインは、集約時に区切り線を引く機能なので、図12に示す例では、集約設定が“off”の場合、“borderline”機能が強制的にoffになるよう設定されている。 FIG. 12 is a diagram illustrating an example of function information of the “borderline” plug-in. Since the “borderline” plug-in is a function for drawing a separator line at the time of aggregation, in the example shown in FIG. 12, when the aggregation setting is “off”, the “borderline” function is set to be forcibly turned off.
図13は、“borderline”プラグインの画面レイアウト情報の例を示した図である。図13に示すように、“borderline”に関する設定を行うためにチェックボックスを表示すること、当該チェックボックスをx座標=“170”、y座標=“30”に表示することが定義されている。この設定により、集約設定の右側にチェックボックスによるユーザ・インターフェイス(UI)が表示される。 FIG. 13 is a diagram illustrating an example of screen layout information of the “borderline” plug-in. As shown in FIG. 13, it is defined that a check box is displayed in order to make a setting relating to “borderline”, and that the check box is displayed at x coordinate = “170” and y coordinate = “30”. With this setting, a user interface (UI) by a check box is displayed on the right side of the aggregation setting.
図14は、“stamp”プラグインの機能情報の例を示した図である。“stamp”プラグインは、入力された文字列をスタンプ印字する機能とする。図14に示す例では、フォントサイズの範囲等が設定されている。 FIG. 14 is a diagram illustrating an example of function information of the “stamp” plug-in. The “stamp” plug-in has a function that stamps the input character string. In the example shown in FIG. 14, a font size range and the like are set.
図15は、“stamp”プラグインの画面レイアウト情報の例を示した図である。図13に示すように、“stamp”に関する設定を行うためにエディットボックスを表示すること、当該エディットボックスをx座標=“170”、y座標=“120”に表示することが定義されている。この設定により、画面の右下にエディットボックスによるユーザ・インターフェイス(UI)が表示される。 FIG. 15 is a diagram illustrating an example of screen layout information of the “stamp” plug-in. As shown in FIG. 13, it is defined that an edit box is displayed in order to make a setting relating to “stamp”, and that the edit box is displayed at x-coordinate = “170” and y-coordinate = “120”. By this setting, an edit box user interface (UI) is displayed at the lower right of the screen.
そして、制御部1002で制御されるプリンタドライバ250は、展開部1006により展開されたプラグインを用いて、印刷を制御する。本実施の形態にかかるプリンタドライバ250は、展開されたプラグインの描画拡張モジュールのAPIを呼び出して、プラグインを用いた制御を行う。
The
特定部261は、クライアントPC110のインストール部1004からポイント・アンド・プリントを行うために呼び出された場合、プラグインアーカイブとプラグイン一覧情報とを格納するパスを特定する。本実施の形態にかかる特定部261は、プラグインディレクトリ1013を格納先のパスとして特定する。
When called from the installation unit 1004 of the
格納部1005は、受信部1003により受信したプラグインアーカイブとプラグイン一覧情報とを、プラグインディレクトリ1013に格納する。格納部1005は、特定部261により特定されたパスに対して、プラグインアーカイブとプラグイン一覧情報とを格納する。
The
次に、本実施の形態にかかる印刷制御システムにおけるドライバのインストールの処理について説明する。図16は、本実施の形態にかかる印刷制御システムにおける上述した処理の手順を示すフローチャートである。図16に示す例では、サーバPC100から、クライアントPC110に対して、プリンタドライバ250をインストールする際の手順とする。
Next, driver installation processing in the print control system according to the present embodiment will be described. FIG. 16 is a flowchart showing a procedure of the above-described processing in the print control system according to the present embodiment. In the example illustrated in FIG. 16, a procedure for installing the
まず、ユーザが、クライアントPC110から、サーバPC100側にインストールされているプリンタを指定してPoint and Printを実行する(ステップS1601)。これにより、クライアントPC110のOS1001に含まれる、インストール部1004が、サーバPC100のOS201に対して、ポイント・アンド・プリントに基づくドライバのインストールを要求する(ステップS1602)。
First, the user designates a printer installed on the
これに伴い、サーバPC100における、OS201の送信部203が、クライアントPC110のOS1001に含まれる受信部1003に対して、プリンタドライバ250本体の構成ファイルを送信する(ステップS1603)。そして、クライアントPC110のインストール部1004が、受信した構成ファイルに基づいて、プリンタドライバ250のインストール制御を行う(ステップS1606)。これにより、クライアントPC110にプリンタドライバ250がインストールされる。また、プリンタドライバ250の構成ファイルの1つであるポイント・アンド・プリント・ライブラリ252も、サーバPC100からクライアントPC110にコピーされる。
Accordingly, the
一方、サーバPC100において、OS201が、ポイント・アンド・プリント・ライブラリ252のGenerateCopyFilePaths()を呼び出す(ステップS1604)。このポイント・アンド・プリント・ライブラリ252は、レジストリ210の“Module”で予め設定されている。つまり、本実施の形態では、レジストリ210を参照することで、特定されたAPIに対してOS201が呼び出しを行っている。また、当該APIを呼び出す際、引数として、ファイル送信元のディレクトリのパス、ファイル送信先のディレクトリのパス、サーバ側で呼び出していることを示すフラグ、を受け渡す。なお、ファイル送信元のディレクトリ名、及びファイル送信先のディレクトリ名は、レジストリ210のDirectoryキーで設定されたディレクトリのパスとする。
On the other hand, in the
そして、GenerateCopyFilePaths()がサーバPC100側から呼び出された場合、サーバPC100内の特定部261は、送信するファイルが格納されたディレクトリのパスを特定する(ステップS1605)。つまり、特定部261は、GenerateCopyFilePaths()がサーバPC100側として呼び出された際、GenerateCopyFilePaths()の処理として、プラグイン一覧情報及びプラグインアーカイブが格納されたパスを返す。必要があればこれらのディレクトリのパスを書き換えて返すことで、送信元、送信先のディレクトリを変更する。
When GenerateCopyFilePaths () is called from the
一方、クライアントPC110においても、OS1001が、ポイント・アンド・プリント・ライブラリ252のGenerateCopyFilePaths()を呼び出す(ステップS1607)。なお、当該APIを呼び出す際、引数として、ファイル送信元のディレクトリのパス、ファイル送信先のディレクトリのパス、クライアント側で呼び出していることを示すフラグ、を受け渡す。
On the other hand, also in the
そして、GenerateCopyFilePaths()がクライアントPC110側から呼び出された場合、クライアントPC110内の特定部261は、プラグインの格納先となるプラグインディレクトリ1013のパスを特定する(ステップS1608)。なお、特定する手順については後述する。その後、ポイント・アンド・プリント・ライブラリ252が、特定されたプラグインディレクトリ1013のパスを、OS1001に返す(ステップS1609)。
When GenerateCopyFilePaths () is called from the
そして、クライアントPC110のOS1001は、サーバPC100に対して、プラグインの送信要求を行う(ステップS1610)。当該送信要求を受けて、サーバPC100の特定部261は、ステップS1605で特定されたパスが指し示すディレクトリと、レジストリ210のFilesキーに設定されたファイル名と、から、送信するファイル群(プラグインアーカイブ及びプラグイン一覧情報)を特定し、送信部203が、特定されたファイル群を、クライアントPC110の受信部1003に対して送信する(ステップS1611)。
Then, the
その後、格納部1005が、受信したファイル群を、ステップS1609で特定されたプラグインディレクトリ1013のパスに格納する(ステップS1612)。
Thereafter, the
上述した処理手順により、クライアントPC110に対して、プリンタドライバ250と、当該プリンタドライバ250のプラグインとがインストールされる。
The
つまり、本実施の形態においては、レジストリ210で設定したパス及びファイル名が指し示すプラグイン一覧情報とプラグインアーカイブとを、クライアントPC110に送信することで、ドライバのプラグインのインストールを行うこととした。
In other words, in this embodiment, the plug-in list information indicated by the path and file name set in the
ところで、本実施の形態においては、追加、削除などドライバにインストールされたプラグインが変化しても、当該プラグインアーカイブのファイル名は変化しない。このプラグインアーカイブのファイル名はレジストリ210に予め登録されているため、サーバPC100が、当該レジストリ210を参照して特定されたプラグインアーカイブを、クライアントPC110に送信するだけで、クライアントPC110が利用可能なプラグインが全て送信されたことになる。そして、クライアントPC110側では、プラグインアーカイブとともに送信されたプラグイン一覧情報を参照することで、プラグインアーカイブにまとめられた全てのプラグインを認識できる。
By the way, in this embodiment, even if the plug-in installed in the driver changes such as addition or deletion, the file name of the plug-in archive does not change. Since the file name of the plug-in archive is registered in the
つまり、本実施の形態にかかる印刷制御システムにおいては、サーバPC100側ではドライバにどのようなプラグインがインストールされているか認識することなく、レジストリ210を参照して特定されたプラグインアーカイブ及びプラグイン一覧情報を送信するだけで、クライアントPC110に全てのプラグインをインストールできる。このように、サーバPC100が、各プラグインを認識することなく、プラグインのインストール処理を行うことができるので、プラグインのインストールの処理負担を軽減できる。
That is, in the print control system according to the present embodiment, the plug-in archive and plug-in specified by referring to the
次に、図16のステップS1605及びステップS1608で示した特定部261のGenerateCopyFilePaths()に基づく処理について説明する。図17は、本実施の形態にかかる特定部261における上述した処理の手順を示すフローチャートである。
Next, processing based on GenerateCopyFilePaths () of the specifying
特定部261が、GenerateCopyFilePaths()で呼び出された場合、引数を参照し、サーバPC側で実行されているか否か判定する(ステップS1701)。サーバPC側で実行されていると判定した場合(ステップS1701:Yes)、特に処理を行わず、引数で指定された送信元のディレクトリのパスなどを、呼び出し元(例えばOS1001)に返して終了する。
When the specifying
一方、特定部261が、サーバPC側で実行されていないと判定した場合(ステップS1701:No)、OS201のAPIのSHGetSpecialFolderPathを利用して、ComonApplicationDataのパスを取得する(ステップS1702)。そして、特定部261は、取得したComonApplicationDataのパスに、“ドライバ名\Plugin”を連結し、送信先のディレクトリパスを生成する(ステップS1703)。
On the other hand, if the identifying
そのあと、特定部261が、生成した送信先のディレクトリパスで、引数として受け取った送信先のディレクトリパスを書き換えた後、書き換えた送信先のディレクトリパスを、OS201に返す(ステップS1704)。
After that, the identifying
これにより、クライアントPC110において、プラグインの送信先のディレクトリのパスが設定される。図17の処理を行うため、クライアントPC110がGenerateCopyFilePaths()を呼び出す際に、引数でクライアント側を示すフラグを設定したのであれば、送信先のディレクトリパスが空のまま呼び出しても良い。
As a result, the path of the plug-in transmission destination directory is set in the
上述した処理手順で、サーバPC100の送信元のディレクトリから、クライアントPC110の送信先のディレクトリに対して、プラグイン一覧情報とプラグインアーカイブとが送信される。
In the processing procedure described above, the plug-in list information and the plug-in archive are transmitted from the transmission source directory of the
このとき、プリンタドライバの構成ファイルは、ドライバのインストール後から一切変更されていないので、OS201(例えばWindows(登録商標))の親和性を崩さずに、プラグインで拡張された機能をサーバPC100からクライアントPC110に引き継ぐことができる。
At this time, since the configuration file of the printer driver is not changed at all after the driver is installed, the function extended by the plug-in can be obtained from the
次に、本実施の形態にかかるクライアントPC110における、設定画面の表示処理について説明する。図18は、本実施の形態にかかるクライアントPC110における上述した処理の手順を示すフローチャートである。
Next, setting screen display processing in the
まず、OS1001が、プリンタドライバ250本体のUIドライバ254に対して画面表示を行うよう指示する(ステップS1801)。
First, the
次に、UIドライバ254が、プラグイン管理部255に対して初期化を要求する(ステップS1802)。そして、プラグイン管理部255は、プラグイン名の一覧を生成する(ステップS1803)。
Next, the
その生成の過程で、プラグイン管理部255は、レジストリ1010を参照してプラグインディレクトリ1013のパスを生成し、その下に格納されているプラグイン一覧情報を読み込む(ステップS1804)。
In the generation process, the plug-in
その後、UIドライバ254が、設定管理部253に対して、初期化を要求する(ステップS1805)。その後、設定管理部253が、プラグイン管理部255に対して機能情報の取得を要求する(ステップS1806)。
Thereafter, the
これにより、プラグイン管理部255が、プリンタドライバ250本体の機能情報と、各プラグインの機能情報と、をマージする(ステップS1807)。当該マージの過程で、プラグイン管理部255は、ドライバ設定ディレクトリ1012に格納されている機能情報を読み込む(ステップS1808)。さらに、プラグイン管理部255は、OS1001に対して、プラグインアーカイブの展開を要求する(ステップS1809)。当該要求に従って、OS1001の展開部1006が、プラグインアーカイブを展開する(ステップS1810)。
Accordingly, the plug-in
そして、プラグイン管理部255は、展開された各プラグインの機能情報を読み込む。図18に示すシーケンスでは、プラグイン管理部255は、borderlineプラグインの機能情報を読み込む(ステップS1811)とともに、stampプラグインの機能情報を読み込む(ステップS1812)。読み込んだ各機能情報は、XML形式で記載されている。このため、読み込んだ各機能情報のXMLノードを、プラグイン管理部255がマージする。そして、プラグイン管理部255がマージしたXMLノードを設定管理部253に受け渡す。そして、設定管理部253は、取得したXMLノードを、(図示しない)メモリ上に保持する。
Then, the plug-in
その後、プラグイン管理部255が、DEVMODE1011の読み込みを行う(ステップS1813)。これにより、現在の設定値などを取得できる。
Thereafter, the plug-in
そして、プラグイン管理部255が、読み込んだ現在の設定値等について、読み込んだ機能情報で設定されている定義(例えば、機能情報で定義されている値域や禁則)を鑑みて妥当か否か判定する(ステップS1814)。
Then, the plug-in
次に、UIドライバ254が、プラグイン管理部255に対して、画面レイアウト情報の取得を要求する(ステップS1815)。
Next, the
これにより、プラグイン管理部255が、プリンタドライバ250本体の画面レイアウト情報と、各プラグインの画面レイアウト情報と、をマージする(ステップS1816)。当該マージの過程で、プラグイン管理部255は、ドライバ設定ディレクトリ1012に格納されている機能情報を読み込む(ステップS1817)。
Thereby, the plug-in
そして、プラグイン管理部255は、各プラグインの画面レイアウト情報を読み込む。図18に示すシーケンスでは、プラグイン管理部255は、borderlineプラグインの画面レイアウト情報を読み込む(ステップS1818)とともに、stampプラグインの画面レイアウト情報を読み込む(ステップS1819)。このようにして読み込んだ各画面レイアウト情報のJSONオブジェクトを、プラグイン管理部255がマージする。そして、マージされたJSONオブジェクトは、UIドライバ254に送られる。
Then, the plug-in
その後、UIドライバ254が、JSONオブジェクトを元に設定画面の画面レイアウトを生成する(ステップS1820)。そして、OS1001の表示部1007が、生成された設定画面を表示する。
Thereafter, the
さらに、UIドライバ254は、設定管理部253から、設定値を取得する(ステップS1821)。次に、UIドライバ254は、設定画面の画面レイアウトに対して、設定値を反映する(ステップS1822)。これにより、表示部1007が、設定値が反映された設定画面を表示する。
Further, the
上述した処理手順により、クライアントPC110において、ドライバ本体及びプラグインの情報(機能情報や画面レイアウト情報)がマージされた設定画面を表示することができる。
With the above-described processing procedure, the
図19は、上述した処理手順により、表示部1007により表示される設定画面の例を示した図である。図19に示す設定画面では、図11の設定画面の例と比べて、“Borderline”のチェックボックス1901と、“Stamp”のエディットボックス1902と、が追加されている。
FIG. 19 is a diagram illustrating an example of a setting screen displayed by the
図19に示す画面例では、“Borderline”のチェックボックス1901が利用不可能かつOFF固定で表示されている。また、網線で囲っている“Borderline”も半輝度で表示される。これは、図19の画面例で、“Layout”の項目で“off”が選択されている場合、“Borderline”の機能情報(図12)の「<constraint fixvalue=“off”><condition expression = “layout!=off”/></constraint>」の記述に基づき、禁則を受けるためである。
In the screen example shown in FIG. 19, the “Borderline”
次に、本実施の形態にかかるクライアントPC110における、印刷制御について説明する。図20は、本実施の形態にかかるクライアントPC110における上述した処理の手順を示すフローチャートである。
Next, print control in the
なお、印刷処理では、ジョブの開始/終了、ページの開始/終了、描画オブジェクトなどのイベントごとに該当する描画ドライバのAPIがOS1001から呼ばれるが、図20に示すシーケンスでは、ページの開始の例のみを示した。それ以外のAPIにおいても全く同じシーケンスで処理が行われるものとする。
In the printing process, the API of the rendering driver corresponding to each event such as job start / end, page start / end, and drawing object is called from the
まず、OS1001が、プリンタドライバ250本体の描画ドライバ251に対してページ印刷を開始するよう指示する(ステップS2001)。
First, the
次に、描画ドライバ251が、プラグイン管理部255に対して初期化を要求する(ステップS2002)。そして、プラグイン管理部255は、プラグイン名の一覧を生成する(ステップS2003)。
Next, the drawing
そのプラグイン名の生成の過程で、プラグイン管理部255は、レジストリ1010を参照してプラグインディレクトリ1013のパスを生成し、その下に格納されているプラグイン一覧情報を読み込む(ステップS2004)。
In the process of generating the plug-in name, the plug-in
その後、描画ドライバ251が、設定管理部253に対して、初期化を要求する(ステップS2005)。その後、設定管理部253が、プラグイン管理部255に対して機能情報の取得を要求する(ステップS2006)。
Thereafter, the drawing
これにより、プラグイン管理部255が、プリンタドライバ250本体の機能情報と、各プラグインの機能情報と、をマージする(ステップS2007)。当該マージの過程で、プラグイン管理部255は、ドライバ設定ディレクトリ1012に格納されている機能情報を読み込む(ステップS2008)。
As a result, the plug-in
そして、プラグイン管理部255は、各プラグインの機能情報を読み込む。図20に示すシーケンスでは、プラグイン管理部255は、borderlineプラグインの機能情報を読み込む(ステップS2009)とともに、stampプラグインの機能情報を読み込む(ステップS2010)。読み込んだ各機能情報は、XML形式で記載されている。このため、読み込んだ各機能情報のXMLノードを、プラグイン管理部255がマージする。そして、プラグイン管理部255がマージしたXMLノードを設定管理部253に受け渡す。そして、設定管理部253は、取得したXMLノードを、(図示しない)メモリ上に保持する。
Then, the plug-in
その後、プラグイン管理部255が、DEVMODE1011の読み込みを行う(ステップS2011)。これにより、現在の設定値などを取得できる。
Thereafter, the plug-in
そして、プラグイン管理部255が、読み込んだ現在の設定値等について、読み込んだ機能情報で設定されている定義(例えば、機能情報で定義されている値域や禁則)を鑑みて妥当か否か判定する(ステップS2012)。
Then, the plug-in
次に、描画ドライバ251が、プラグイン管理部255に対して、機能情報の取得を要求する(ステップS2013)。これにより、描画ドライバ251が、読み込んだ現在の設定値等を取得する。
Next, the drawing
その後、描画ドライバ251が、印刷するページの描画処理を行い、描画データを生成する(ステップS2014)。
Thereafter, the drawing
次に、描画ドライバ251が、引数として描画データと、設定値の一覧と、を受け渡した上で、ページに関する処理を、プラグイン管理部255に対して要求する(ステップS2015)。
Next, the drawing
プラグイン管理部255は、ステップS2003で生成したプラグイン名の一覧を参照して、各プラグインの描画拡張モジュールを認識する。そして、プラグイン管理部255は、プラグインアーカイブから展開された各プラグインの描画拡張モジュールに対して、ページ開始のAPIを呼び出す。図20で示すシーケンスでは、プラグイン管理部255は、borderlineプラグインの描画拡張モジュールのページ開始のAPIを呼び出す(ステップS2016)。その際に、描画データと、設定値の一覧とを、受け渡す。さらに、プラグイン管理部255は、stampプラグインの描画拡張モジュールのページ開始のAPIを呼び出す(ステップS2017)。その際に、描画データと、設定値の一覧とを、受け渡す。これら描画拡張モジュールのページ開始のAPIが呼び出された際、各プラグインの描画拡張モジュールは、引数として受け渡された設定値の一覧を参照し、描画処理を行う必要がある場合に、描画データに対して、必要な描画を行う。そして、描画などがなされた後、描画ドライバ251に描画データが返される。
The plug-in
その後、描画ドライバ251が、返された描画データを、OS1001に出力する(ステップS2018)。そして、OS1001が、描画データを、プリンタ150に対して送信する(ステップS2019)。これにより、描画データに基づく印刷がなされる。
Thereafter, the drawing
以上のように、クライアントPC110では、ドライバ本体とプラグインとを組み合わせた描画処理を実行することが可能となる。
As described above, the
次に、サーバPC100に対してプラグインを追加する際の処理について説明する。図21は、プラグインインストーラパッケージの構成を示した図である。図21に示すようにプラグインインストーラパッケージ2100は、プラグインインストーラ2101と、プラグイン情報2102と、プラグイン“stamp”の構成ファイル2103と、を含むディレクトリとする。なお、当該ディレクトリをアーカイブしたものでも良い。
Next, processing when a plug-in is added to the
プラグインインストーラ2101は、プラグインインストーラの実行形式ファイルとする。
The plug-in
プラグイン“stamp”の構成ファイル2103は、stamp機能を実現するための機能情報、画面レイアウト情報、描画拡張モジュールを含んだ構成とする。 The configuration file 2103 of the plug-in “stamp” includes a function information for realizing the stamp function, screen layout information, and a drawing extension module.
プラグイン情報2102は、プラグイン“stamp”に関する設定が記述された情報である。図22は、プラグインインストーラパッケージ2100に含まれるプラグイン情報の例を示した図である。図22に示すように、当該プラグインの名称が“stamp”であること、及びバージョンが“1.1.010”であることが記載されている。そして、当該プラグイン情報2102は、インストール時に、プラグイン一覧情報に追加される。
The plug-in
サーバPC100に対してプラグインインをインストールする際の処理について説明する。図23は、本実施の形態にかかるサーバPC100における上述した処理の手順を示すフローチャートである。図23に示すフローチャートでは、プラグインインストーラを実行して、プラグインディレクトリに新たなプラグインを追加する。
Processing when installing a plug-in on the
まず、プラグインインストーラパッケージ2100に含まれるプラグインインストーラ2101が起動される。起動したプラグインインストーラ2101は、プラグインを追加する対象となるドライバ名を取得する(ステップS2301)。例えば、プラグインインストーラ2101は、OS201からインストール済みのドライバ一覧を取得し、当該一覧の中からいずれのドライバに対してプラグインを追加するかをユーザに問い合せる等が考えられる。そして、ユーザに選択されたドライバに対して、プラグインを追加していくことになる。
First, the plug-in
そして、プラグインインストーラ2101は、レジストリ210から、取得したドライバ名が指し示すドライバのプラグインディレクトリのパスを取得する(ステップS2302)。このプラグインディレクトリの特定手法は、上述した手法と同様とする。そして、取得したプラグインディレクトリのパスにプラグインがインストールされる。
Then, the plug-in
次に、プラグインインストーラ2101は、特定したプラグインディレクトリに、既に同じプラグインが追加されているか否かを判定する(ステップS2303)。当該判定では、例えば、プラグインディレクトリ213内のプラグイン一覧情報に、プラグインインストーラパッケージ2100内のプラグイン情報2102のプラグインと同一名称が含まれているか否かに基づいて判定する。
Next, the plug-in
そして、プラグインインストーラ2101が、追加されていないと判定した場合(ステップS2303:No)、継続してプラグインの追加処理を行う。図23に示すシーケンス図では、プラグインインストーラ2101は、書込部204を呼び出して、プラグインディレクトリ213のプラグイン一覧情報に対して、プラグインインストーラ2101内のプラグイン情報2102をマージする(ステップS2305)。本実施の形態では、プラグインインストーラ2101に呼び出された書込部204が、プラグイン一覧情報の末尾に、プラグイン情報を追加する書き込みを行う。
If the plug-in
その後、プラグインインストーラ2101が、プラグインアーカイブに対して、新しいプラグインの構成ファイル(例えば“stamp”の構成ファイル2103)を追加する(ステップS2306)。例えば、“borderline”プラグインがインストールされた後の状態で、そして、プラグインインストーラ2101が、“stamp”プラグインを追加する場合、プラグインインストーラパッケージ内の“stamp”の構成ファイル2103を、プラグインアーカイブに追加すると、図8に示すようなプラグインアーカイブが生成される。また、プラグイン情報2102が追加されると、図7に示すようなプラグイン一覧情報が生成される。そしてインストールの処理が、終了する。
Thereafter, the plug-in
一方、プラグインインストーラ2101が、同じプラグインが追加されていると判定した場合(ステップS2303:Yes)、まず、プラグインインストーラ2101は、プラグインディレクトリ内にすでに追加されている同一プラグインのバージョン情報と比べて、プラグインインストーラパッケージ2100内のプラグインのバージョン情報が新しいか否かを判定する(ステップS2304)。新しくないと判定した場合(ステップS2304:No)、処理を終了する。
On the other hand, if the plug-in
一方、プラグインインストーラ2101が、プラグインインストーラパッケージ2100内のプラグインのバージョン情報が新しいと判定した場合(ステップS2304:Yes)、プラグインインストーラ2101が書込部204を呼び出し、書込部204が、すでにプラグイン一覧情報に記載されているプラグイン情報を、新しいプラグイン情報で上書きする(ステップS2307)。
On the other hand, when the plug-in
さらに、プラグインインストーラ2101は、プラグインアーカイブに対して、新しいプラグインの構成ファイルで上書きし、処理を終了する(ステップS2308)。例としては、すでにプラグインアーカイブに格納されている“stamp”プラグインのバージョンが1.0.0.0で、追加しようとしている“stamp”プラグインのバージョンが1.1.0.0の場合、プラグインインストーラ2101は、プラグイン情報の“stamp”のバージョン情報を1.1.0.0で上書きし、“stamp”ディレクトリ内のファイルもすべて新しいファイルで上書きする。
Further, the plug-in
上述した処理手順により、サーバPC100にインストールされているドライバについて、プラグインの追加、更新を行うことができる。これにより、サーバPC100にプラグインの追加、更新が行われた場合、それ以降、クライアントPC110が、当該ドライバをインストールする際、追加、更新がなされたプラグインも同時にインストールされる。これにより、ユーザがドライバをインストールする際の負担を軽減できる。
The plug-in can be added or updated for the driver installed in the
このように、本実施の形態では、ドライバをプラグインで拡張した機能であっても、OSとの親和性を崩さずに、ポイント・アンド・プリントでクライアントPC110側に引き継げる。
As described above, in this embodiment, even if the function is an extension of the driver by plug-in, it can be handed over to the
このように、本実施の形態では、ポイント・アンド・プリントで、クライアントPC側に拡張機能を引き継げる、ドライバのプラグインの仕組みを実現することを可能とした。 As described above, in the present embodiment, it is possible to realize a driver plug-in mechanism that can take over the extended function on the client PC side by point-and-print.
さらに、ポイント・アンド・プリントを行うダイナミック・リンク・ライブラリをドライバの構成ファイルに含めることで、クライアントPC及びサーバPCに当該ライブラリがインストールされることになる。これにより、ポイント・アンド・プリントのイベント時に、クライアントPC及びサーバPCのそれぞれから当該ライブラリを呼び出すことで、クライアントPC及びサーバPCのそれぞれがプラグインを送信するために適切な処理を行うことができる。つまり、容易にプラグインのファイルをサーバPCからクライアントPCに送信させることができる。 Further, by including a dynamic link library for performing point and print in the driver configuration file, the library is installed in the client PC and the server PC. Accordingly, by calling the library from each of the client PC and the server PC at the time of the point-and-print event, each of the client PC and the server PC can perform an appropriate process for transmitting the plug-in. . That is, the plug-in file can be easily transmitted from the server PC to the client PC.
(変形例1)
第1の実施の形態では、クライアントPCと、サーバPCと別構成として示した。しかしながら、第1の実施の形態は、説明を容易にするために、クライアントPCと、サーバPCと、別の構成として示したものであり、クライアントPCと、サーバPCと、が同一構成でも良い。
(Modification 1)
In the first embodiment, the client PC and the server PC are shown as separate configurations. However, in the first embodiment, for ease of explanation, the client PC and the server PC are shown as different configurations, and the client PC and the server PC may have the same configuration.
そこで、変形例として、クライアントPCとサーバPCとが同一構成の例について説明する。当該変形例では、クライアントPC及びサーバPCともに、プリンタドライバと、送信部と、書込部と、受信部と、インストール部と、格納部と、展開部と、表示部と、を備えている。なお、各構成が行う処理は、第1の実施の形態と同様として説明を省略する。 Therefore, as a modification, an example in which the client PC and the server PC have the same configuration will be described. In the modified example, both the client PC and the server PC include a printer driver, a transmission unit, a writing unit, a reception unit, an installation unit, a storage unit, a development unit, and a display unit. Note that the processing performed by each component is the same as in the first embodiment, and a description thereof is omitted.
(変形例2)
第1の実施の形態では、ポイント・アンド・プリントでプリンタドライバを、サーバPCからクライアントPCにインストールする例について説明した。しかしながら、プリンタドライバのインストール制限するものではなく、他のオフィス機器等であっても良い。オフィス機器の例としては、例えば、ネットワークスキャナなどであってもよい。変形例2においては、ネットワークスキャナのドライバを管理するサーバPCに対して、クライアントPCが、ドライバのインストールを要求する。これにより、ネットワークスキャナのドライバのインストールと、当該ドライバのプラグインのインストールとが行われる。なお、その際の手順は、第1の実施の形態と同様として説明を省略する。また、オフィス機器以外でもよく、例えばデジタルスチルカメラ等などのPCに接続可能な周辺機器でも良い。
(Modification 2)
In the first embodiment, the example in which the printer driver is installed from the server PC to the client PC by the point-and-print has been described. However, the printer driver installation is not limited, and other office devices may be used. As an example of the office device, for example, a network scanner may be used. In the second modification, the client PC requests the server PC that manages the driver of the network scanner to install the driver. Thereby, the installation of the driver of the network scanner and the installation of the plug-in of the driver are performed. Note that the procedure at that time is the same as that of the first embodiment, and a description thereof will be omitted. Further, it may be other than office equipment, for example, peripheral equipment that can be connected to a PC such as a digital still camera.
図24は、本実施の形態及び変形例のサーバPC及びクライアントPCのハードウェア構成を示した図である。図24に示すように上述した実施の形態及び変形例のサーバPC及びクライアントPCは、CPU2401と、ROM(Read Only Memory)2402やRAM2403と、HDD2406と、通信I/F2404と、ディスプレイ装置などの表示装置2405と、これらを接続するバス2407と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
FIG. 24 is a diagram illustrating a hardware configuration of the server PC and the client PC according to the present embodiment and the modification. As shown in FIG. 24, the server PC and client PC according to the embodiment and the modification described above are displayed on a
上述した実施の形態及び変形例のサーバPC又はクライアントPCで実行されるOSやプリンタドライバは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。 The OS and printer driver executed on the server PC or client PC according to the above-described embodiments and modifications are files in an installable or executable format, such as a CD-ROM, a flexible disk (FD), a CD-R, The program is recorded on a computer-readable recording medium such as a DVD (Digital Versatile Disk).
また、上述した実施の形態及び変形例のサーバPC又はクライアントPCで実行されるOSやプリンタドライバを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のOSやプリンタドライバをインターネット等のネットワーク経由で提供または配布するように構成しても良い。 Further, the OS and printer driver executed by the server PC or client PC according to the above-described embodiments and modifications are stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. You may comprise. Further, the OS and printer driver of the present embodiment may be configured to be provided or distributed via a network such as the Internet.
上述した実施の形態及び変形例のサーバPC又はクライアントPCで実行されるOSやプリンタドライバは、それぞれ上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはCPU2401が上記記憶媒体からOSやプリンタドライバを読み出して実行することにより上記各部が主記憶装置上にロードされ、上記各部が主記憶装置上に生成されるようになっている。
The OS and printer driver executed on the server PC or client PC according to the above-described embodiment and modification have a module configuration including the above-described units. As actual hardware, the
100 サーバPC
110 クライアントPC
150 プリンタ
160 ネットワーク
201、1001 OS
202、1002 制御部
203 送信部
204 書込部
210、1010 レジストリ
211、1011 DEVMODE
212、1012 ドライバ設定ディレクトリ
213、1013 プラグインディレクトリ
250 プリンタドライバ
251 描画ドライバ
252 ポイント・アンド・プリント・ライブラリ
253 設定管理部
254 UIドライバ
255 プラグイン管理部
261 特定部
1003 受信部
1004 インストール部
1005 格納部
1006 展開部
1007 表示部
100 server PC
110 Client PC
150
202, 1002
212, 1012
Claims (15)
前記サーバは、
前記ドライバのプラグインがまとめてアーカイブされた所定のファイルと、前記ファイルに格納されたプラグインが示された一覧情報と、を送信対象として特定する特定手段と、
前記ドライバと、前記特定手段により特定された前記ファイル及び前記一覧情報と、を前記クライアントに送信する送信手段と、を備え、
前記クライアントは、
前記サーバから、前記ドライバと、前記ファイルと、前記一覧情報と、を受信する受信手段と、
前記受信手段により受信した前記ドライバをインストールするインストール手段と、
前記受信手段により受信した前記ファイルと前記一覧情報とを記憶手段に格納する格納手段と、
前記ファイルにアーカイブされている前記プラグインを前記一覧情報に従って呼び出す前記ドライバを、制御する制御手段と、を備えたこと、
を特徴とするドライバ制御システム。 A driver control system comprising a client on which a driver is installed and a server that manages the driver,
The server
A specifying unit for specifying a predetermined file in which the plug-ins of the driver are collectively archived and list information indicating the plug-ins stored in the file as transmission targets;
Transmission means for transmitting the driver and the file and list information specified by the specifying means to the client;
The client
Receiving means for receiving the driver, the file, and the list information from the server;
Installation means for installing the driver received by the receiving means;
Storage means for storing the file and the list information received by the receiving means in a storage means;
Control means for controlling the driver that calls the plug-in archived in the file according to the list information;
A driver control system characterized by
前記インストール手段による前記ドライバのインストールでなされた設定に従って、前記ファイルと前記一覧情報とを格納する格納先のパスを特定するクライアント側特定手段を、さらに備え、
前記格納手段は、前記特定手段により特定された前記パスに対して、前記ファイルを格納すること、
を特徴とする請求項1に記載のドライバ制御システム。 The client
Client-side specifying means for specifying a storage destination path for storing the file and the list information according to the setting made in the installation of the driver by the installation means,
The storage means stores the file for the path specified by the specifying means;
The driver control system according to claim 1.
前記特定手段が、記憶手段に記憶されたファイル名に従って、前記所定のファイルを特定すること、
を特徴とする請求項1又は2に記載のドライバ制御システム。 In the server,
The specifying unit specifies the predetermined file according to a file name stored in a storage unit;
The driver control system according to claim 1, wherein:
プラグインのインストーラからの呼び出しに応じて、前記ファイルに対して前記プラグインを追加する書き込みを行うとともに、前記ファイルに追加するプラグインを認識する情報を、前記一覧情報に書き込む書込手段を、
さらに備えることを特徴とする請求項1乃至3のいずれか一つに記載のドライバ制御システム。 The server
In response to a call from a plug-in installer, writing for adding the plug-in to the file, and writing means for writing information for identifying the plug-in to be added to the file to the list information,
The driver control system according to any one of claims 1 to 3, further comprising:
前記書込手段は、前記一覧情報に対して、プラグインを追加するか否かの基準となる、前記プラグインのバージョン情報を書き込むこと、
を特徴とした請求項4に記載のドライバ制御システム。 In the server,
The writing means writes version information of the plug-in, which is a criterion as to whether or not to add a plug-in, to the list information;
The driver control system according to claim 4, wherein:
前記アーカイブから、前記ドライバで利用されるプラグインを展開する展開手段をさらに備え、
前記制御手段で制御されるドライバは、前記展開手段により展開された前記プラグインを用いて制御を行うこと、
を特徴とする請求項1乃至5のいずれか一つに記載のドライバ制御システム。 The client
The archive further comprises expansion means for expanding the plug-in used by the driver from the archive,
The driver controlled by the control unit performs control using the plug-in expanded by the expansion unit,
The driver control system according to claim 1, wherein:
前記制御手段で制御されるドライバは、前記APIを呼び出すことで、プラグインを用いた制御を行うこと、
を特徴とした請求項6に記載のドライバ制御システム。 The plug-in configuration file expanded by the expansion means is an executable file having an API corresponding to the processing of each plug-in,
The driver controlled by the control means performs control using a plug-in by calling the API.
The driver control system according to claim 6.
前記展開手段により展開された前記プラグインの構成ファイルには、前記プラグイン毎のレイアウト情報が含まれており、
前記レイアウト情報に従って、前記プラグイン毎の設定を行うための項目を、設定画面上に表示する表示手段を、
を特徴とした請求項6又は7に記載のドライバ制御システム。 In the client,
The plug-in configuration file expanded by the expansion means includes layout information for each plug-in,
In accordance with the layout information, display means for displaying an item for setting for each plug-in on a setting screen,
The driver control system according to claim 6 or 7, wherein
請求項8に記載のドライバ制御システム。 The layout information for each plug-in includes a type of user interface to be displayed, a function name, and coordinate information.
The driver control system according to claim 8.
前記サーバでは、
特定手段が、前記ドライバのプラグインがまとめてアーカイブされた所定のファイルと、前記ファイルに格納されたプラグインが示された一覧情報と、を送信対象として特定する特定ステップと、
送信手段が、前記ドライバと、前記特定ステップにより特定された前記ファイル及び前記一覧情報と、を前記クライアントに送信する送信ステップと、を含み、
前記クライアントでは、
受信手段が、前記サーバから、前記ドライバと、前記ファイルと、前記一覧情報と、を受信する受信ステップと、
前記受信ステップにより受信した前記ドライバをインストールするインストールステップと、
格納手段が、前記受信ステップにより受信した前記ファイルと前記一覧情報とを記憶手段に格納する格納ステップと、
制御手段が、前記ファイルにアーカイブされている前記プラグインを前記一覧情報に従って呼び出す前記ドライバを、制御する制御ステップと、を含むこと、
を特徴とするドライバ制御方法。 A driver control method executed by a client on which a driver is installed and a server that manages the driver,
In the server,
A specifying step for specifying, as a transmission target, a predetermined file in which the plug-ins of the driver are collectively archived and list information indicating the plug-ins stored in the file;
A transmission means including: the transmission step of transmitting the driver and the file and the list information identified by the identification step to the client;
In the client,
A receiving step for receiving the driver, the file, and the list information from the server;
An installation step of installing the driver received in the reception step;
A storage step of storing in the storage means the file and the list information received by the receiving step;
Control means for controlling the driver that calls the plug-in archived in the file according to the list information,
A driver control method characterized by the above.
クライアント側特定手段が、前記インストールステップによる前記ドライバのインストールでなされた設定に従って、前記ファイルと前記一覧情報とを格納する格納先のパスを特定するクライアント側特定ステップを、さらに含み、
前記格納ステップは、前記特定ステップにより特定された前記パスに対して、前記ファイルを格納すること、
を特徴とする請求項10に記載のドライバ制御方法。 In the client,
The client side specifying means further includes a client side specifying step of specifying a storage destination path for storing the file and the list information according to the setting made in the installation of the driver by the installation step,
The storing step stores the file with respect to the path specified by the specifying step;
The driver control method according to claim 10.
前記特定ステップが、記憶手段に記憶されたファイル名に従って、前記所定のファイルを特定すること、
を特徴とする請求項10又は11に記載のドライバ制御方法。 In the server,
The specifying step specifies the predetermined file according to a file name stored in a storage means;
12. The driver control method according to claim 10 or 11, wherein:
書込手段が、プラグインのインストーラからの呼び出しに応じて、前記ファイルに対して前記プラグインを追加する書き込みを行うとともに、前記ファイルに追加するプラグインを認識する情報を、前記一覧情報に書き込む書込ステップを、
さらに含むことを特徴とする請求項10乃至12のいずれか一つに記載のドライバ制御方法。 In the server,
The writing means performs writing to add the plug-in to the file in response to a call from a plug-in installer, and writes information for identifying the plug-in to be added to the file to the list information. Write step
The driver control method according to claim 10, further comprising:
前記書込ステップは、前記一覧情報に対して、プラグインを追加するか否かの基準となる、前記プラグインのバージョン情報を書き込むこと、
を特徴とした請求項13に記載のドライバ制御方法。 In the server,
The writing step writes version information of the plug-in, which is a criterion for determining whether or not to add a plug-in to the list information;
The driver control method according to claim 13.
展開手段が、前記アーカイブから、前記ドライバで利用されるプラグインを展開する展開ステップをさらに含み、
前記制御ステップで制御されるドライバは、前記展開ステップにより展開された前記プラグインを用いて制御を行うこと、
を特徴とする請求項10乃至14のいずれか一つに記載のドライバ制御方法。 In the client,
An expansion means further includes an expansion step of expanding a plug-in used by the driver from the archive,
The driver controlled in the control step performs control using the plug-in expanded in the expansion step;
The driver control method according to any one of claims 10 to 14, wherein:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010114426A JP5625477B2 (en) | 2010-05-18 | 2010-05-18 | Driver control system and driver control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010114426A JP5625477B2 (en) | 2010-05-18 | 2010-05-18 | Driver control system and driver control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011242994A true JP2011242994A (en) | 2011-12-01 |
JP5625477B2 JP5625477B2 (en) | 2014-11-19 |
Family
ID=45409578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010114426A Active JP5625477B2 (en) | 2010-05-18 | 2010-05-18 | Driver control system and driver control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5625477B2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014038417A (en) * | 2012-08-13 | 2014-02-27 | Ricoh Co Ltd | Program, information processor, and information processing system |
JP2014085749A (en) * | 2012-10-22 | 2014-05-12 | Oki Data Corp | Driver installer, image processor, image forming system and image forming apparatus |
JP2015060291A (en) * | 2013-09-17 | 2015-03-30 | 株式会社リコー | Program, information processing apparatus, and information processing system |
JP2017174253A (en) * | 2016-03-25 | 2017-09-28 | 京セラドキュメントソリューションズ株式会社 | Pull print system |
JP2017174258A (en) * | 2016-03-25 | 2017-09-28 | 京セラドキュメントソリューションズ株式会社 | Pull print system |
US10073792B2 (en) | 2013-09-17 | 2018-09-11 | Ricoh Company Limited | Device, system, and method for detecting, identifying, and communicating with a storage medium |
US10873676B2 (en) | 2017-02-07 | 2020-12-22 | Ricoh Company, Ltd. | Information processing apparatus, installation method, and recording medium |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005050062A (en) * | 2003-07-31 | 2005-02-24 | Canon Inc | Print processing system, method for processing information of system, information processor, method for processing information of processor, client apparatus, and information processing program |
JP2005173701A (en) * | 2003-12-08 | 2005-06-30 | Canon Inc | Information processor, information processing method, and program therefor |
JP2005338940A (en) * | 2004-05-24 | 2005-12-08 | Canon Inc | Installation method, information processor and device driver |
JP2006261970A (en) * | 2005-03-16 | 2006-09-28 | Ricoh Co Ltd | Image forming system, image forming apparatus, management device, and method of matching and managing plugin |
JP2006260354A (en) * | 2005-03-18 | 2006-09-28 | Ricoh Co Ltd | Image formation system, image formation device, terminal device, and method of updating driver of terminal device |
JP2008234577A (en) * | 2007-03-23 | 2008-10-02 | Canon Inc | Client device, server device and information processing method |
JP2009199261A (en) * | 2008-02-20 | 2009-09-03 | Ricoh Co Ltd | Information processing system, information processing method, and program |
JP2010282505A (en) * | 2009-06-05 | 2010-12-16 | Ricoh Co Ltd | Printer driver program, storage medium and information processing apparatus |
-
2010
- 2010-05-18 JP JP2010114426A patent/JP5625477B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005050062A (en) * | 2003-07-31 | 2005-02-24 | Canon Inc | Print processing system, method for processing information of system, information processor, method for processing information of processor, client apparatus, and information processing program |
JP2005173701A (en) * | 2003-12-08 | 2005-06-30 | Canon Inc | Information processor, information processing method, and program therefor |
JP2005338940A (en) * | 2004-05-24 | 2005-12-08 | Canon Inc | Installation method, information processor and device driver |
JP2006261970A (en) * | 2005-03-16 | 2006-09-28 | Ricoh Co Ltd | Image forming system, image forming apparatus, management device, and method of matching and managing plugin |
JP2006260354A (en) * | 2005-03-18 | 2006-09-28 | Ricoh Co Ltd | Image formation system, image formation device, terminal device, and method of updating driver of terminal device |
JP2008234577A (en) * | 2007-03-23 | 2008-10-02 | Canon Inc | Client device, server device and information processing method |
JP2009199261A (en) * | 2008-02-20 | 2009-09-03 | Ricoh Co Ltd | Information processing system, information processing method, and program |
JP2010282505A (en) * | 2009-06-05 | 2010-12-16 | Ricoh Co Ltd | Printer driver program, storage medium and information processing apparatus |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014038417A (en) * | 2012-08-13 | 2014-02-27 | Ricoh Co Ltd | Program, information processor, and information processing system |
JP2014085749A (en) * | 2012-10-22 | 2014-05-12 | Oki Data Corp | Driver installer, image processor, image forming system and image forming apparatus |
JP2015060291A (en) * | 2013-09-17 | 2015-03-30 | 株式会社リコー | Program, information processing apparatus, and information processing system |
US10073792B2 (en) | 2013-09-17 | 2018-09-11 | Ricoh Company Limited | Device, system, and method for detecting, identifying, and communicating with a storage medium |
JP2017174253A (en) * | 2016-03-25 | 2017-09-28 | 京セラドキュメントソリューションズ株式会社 | Pull print system |
JP2017174258A (en) * | 2016-03-25 | 2017-09-28 | 京セラドキュメントソリューションズ株式会社 | Pull print system |
US10873676B2 (en) | 2017-02-07 | 2020-12-22 | Ricoh Company, Ltd. | Information processing apparatus, installation method, and recording medium |
Also Published As
Publication number | Publication date |
---|---|
JP5625477B2 (en) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5625477B2 (en) | Driver control system and driver control method | |
US10152332B2 (en) | Information processing apparatus, information processing method, and storage medium | |
JP5609269B2 (en) | Image processing apparatus, display apparatus, screen control system, screen control method, screen control program, and recording medium recording the program | |
JP3720740B2 (en) | Distributed printing system, distributed printing control method, storage medium, and program | |
US7639378B2 (en) | Printing system and document management system | |
JP6413691B2 (en) | Data communication apparatus, data communication method, and data communication program | |
US20110075177A1 (en) | Image forming apparatus and method thereof | |
US20100011290A1 (en) | Print management method, recording medium storing a program, and print management apparatus | |
EP3376391A1 (en) | Information processing apparatus, updating method, and carrier means | |
US8643893B2 (en) | Apparatus, method, system, and computer program product for creating operation definition file, and image forming apparatus | |
JP2011059806A (en) | Printer driver, information processor, and computer readable recording medium with the printer driver recorded thereon | |
US20210326081A1 (en) | Information processing apparatus, control method, and storage medium | |
US8767253B2 (en) | Information processing apparatus and computer program product | |
JP4946141B2 (en) | Configuration change program and information processing apparatus | |
US9086938B2 (en) | Information processing apparatus, control method thereof, and storage medium | |
JP4590341B2 (en) | Data processing apparatus, setting processing method, information processing apparatus, and control program | |
JP3774684B2 (en) | Information processing apparatus, printer setting method of information processing apparatus, program, and recording medium | |
JP2010287055A (en) | Information processing apparatus, data conversion method, and program | |
JP2019067131A (en) | Image forming device and control method thereof | |
US10310780B2 (en) | System and control method for installing printer driver | |
JP2016173771A (en) | Program, information processing apparatus, information processing method, and storage medium | |
JP2008219087A (en) | Function execution apparatus | |
JP2019008673A (en) | Information processing apparatus and driver installing method | |
JP2015232896A (en) | Information processing apparatus, information processing method and program | |
JP2020071693A (en) | Information processing apparatus, control method therefor, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130218 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140305 |
|
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: 20140902 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140915 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5625477 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |