(57)【要約】【課題】共通のプリンタドライバを有するクライアントサーバシステムにおいて、クライアント側で既存のプリンタドライバの更新が可能な印刷システムおよび方法を提供すること。【解決手段】本発明の印刷システムは、共通のプリンタドライバを有するサーバおよびクライアントを含む印刷システムであって、印刷装置の機種毎の機能を規定する機種情報をサーバに送信し、サーバが有するプリンタドライバがアクセス可能な第１の記憶領域に機種情報を保存する。【選択図】  図１
2014215814.tif 000002
【特許請求の範囲】
【請求項１】
共通のプリンタドライバを有するサーバおよびクライアントを含む印刷システムであって、
印刷装置の機種毎の機能を定義する機種情報をサーバに送信する送信手段と、
サーバが有するプリンタドライバがアクセス可能な第１の記憶領域に前記機種情報を保存する保存手段と、
を備える、印刷システム。
【請求項２】
前記送信手段は、前記機種情報を印刷データと共にサーバに送信する、請求項１に記載の印刷システム。
【請求項３】
前記保存手段は、サーバが備える記憶領域であってクライアントが参照可能な共有の記憶領域に前記機種情報を保存し、
前記印刷システムは、
前記共有の記憶領域から機種情報を取得し、クライアントが有するプリンタドライバがアクセス可能な第２の記憶領域に前記機種情報を保存する保存手段をさらに備える、請求項１または２に記載の印刷システム。
【請求項４】
前記サーバは、クライアントの要求に応じて、サーバが備える記憶領域であってクライアントが参照可能な共有の記憶領域および前記第１の記憶領域から機種情報を削除する削除手段をさらに備える、請求項１〜３のいずれか１項に記載の印刷システム。
【請求項５】
前記クライアントは、前記共有の記憶領域から削除された機種情報を前記第２の記憶領域から削除する削除手段をさらに備える、請求項３または４に記載の印刷システム。
【請求項６】
前記サーバは、
前記サーバが有するプリンタドライバのバージョンと、前記送信手段が送信した機種情報のバージョンとが相違する場合に、前記機種情報のバージョンが前記サーバのプリンタドライバのバージョンに適合するように、前記機種情報を変換する変換手段をさらに備える、請求項１〜５のいずれか１項に記載の印刷システム。
【請求項７】
前記クライアントは、
前記クライアントが有するプリンタドライバのバージョンと、サーバが備える記憶領域であってクライアントが参照可能な共有の記憶領域に保存されている機種情報のバージョンとが相違する場合に、前記機種情報のバージョンが前記クライアントのプリンタドライバのバージョンに適合するように、前記機種情報を変換する変換手段をさらに備える、請求項１〜６のいずれか１項に記載の印刷システム。
【請求項８】
共通のプリンタドライバを有するサーバおよびクライアントを含む印刷システムが実行する方法であって、前記方法は、
前記クライアントが、印刷装置の機種毎の機能を定義する機種情報をサーバに送信するステップと、
前記サーバが、前記サーバが有するプリンタドライバがアクセス可能な第１の記憶領域に前記機種情報を保存するステップと
を含む、方法。
【請求項９】
前記方法は、
前記サーバが、クライアントの要求に応じて、サーバが備える記憶領域であってクライアントが参照可能な共有の記憶領域および前記第１の記憶領域から機種情報を削除するステップを含む、請求項８に記載の方法。
【請求項１０】
前記方法は、前記サーバが、
前記サーバが有するプリンタドライバのバージョンと、前記クライアントが送信した機種情報のバージョンとが相違する場合に、前記機種情報のバージョンが前記サーバのプリンタドライバのバージョンに適合するように、前記機種情報を変換するステップを含む、請求項８または９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共通のプリンタドライバを有する印刷システムに関し、より詳細には、印刷装置の機種毎の機能を規定する機種情報を共有する印刷システムおよび方法に関する。
【背景技術】
【０００２】
従来、既存のプリンタドライバに対し、新たな機種の機種情報を記載したファイルを追加して、プリンタドライバの対応機種を追加する技術が存在する。
【０００３】
このようなプリンタドライバの対応機種を追加する技術の一例として、特許文献１は、追加機能データファイルを検出して所定の情報格納領域に格納し、当該追加機能データファイルに基づいて、追加機能のデータファイルの内容をデバイスドライバに反映させる情報処理装置を開示する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１が開示する情報処理装置は、サーバで追加機能データファイルを所定の情報格納領域に格納して当該データファイルの内容をデバイスドライバに反映させるため、クライアント側で既存のプリンタドライバを更新することができない。
【０００５】
このため、例えば、大企業等において１の事業所に存在するサーバでプリンタドライバを一元的に管理する場合、各事業所でプリンタを新たに設置するときは、当該１の事業所で当該プリンタの追加機能データファイルを追加しなければならず、ユーザビリティが低いという問題があった。
【０００６】
本発明は、上記従来技術の問題に鑑みてなされたものであり、共通のプリンタドライバを有するクライアントサーバシステムにおいて、クライアント側で既存のプリンタドライバの更新が可能な印刷システムおよび方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の印刷システムは、共通のプリンタドライバを有するサーバおよびクライアントを含む印刷システムであって、印刷装置の機種毎の機能を規定する機種情報をサーバに送信し、サーバが有するプリンタドライバがアクセス可能な第１の記憶領域に機種情報を保存する。
【発明の効果】
【０００８】
本発明は、上記手段を採用することにより、共通のプリンタドライバを有するクライアントサーバシステムにおいて、クライアント側で既存のプリンタドライバを更新することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の印刷システムの一実施形態を示す図。
【図２】図１に示すサーバ１００、クライアントＡ１１０およびクライアントＢ１２０が実行する処理を示すフローチャート。
【図３】本発明の印刷システムの別の実施形態を示す図。
【図４】図３に示すクライアントＡ１１０が実行する処理の一実施形態を示すフローチャート。
【図５】機種情報が付加された印刷データの一実施形態を示す図。
【図６】図３に示すサーバ１００が実行する処理の一実施形態を示すフローチャート。
【図７】図３に示すクライアントＡ１１０が実行する処理の別の実施形態を示すフローチャート。
【図８】図３に示すサーバ１００が実行する処理の別の実施形態を示すフローチャート。
【図９】図３に示すサーバ１００が実行する処理の他の実施形態を示すフローチャート。
【図１０】本発明の印刷システムの他の実施形態を示す図。
【図１１】図１０に示すサーバ１００が実行する処理を示すフローチャート。
【図１２】図１０に示すクライアントＢ１２０が実行する処理を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、本発明の印刷システムの一実施形態を示す図である。図１に示す印刷システム１０は、サーバ１００と、クライアントＡ１１０と、クライアントＢ１２０とを含む。サーバ１００、クライアントＡ１１０およびクライアントＢ１２０は、インターネットやＬＡＮ等のネットワークを介して通信可能に接続されている。
【００１１】
サーバ１００は、印刷システム１０に含まれるネットワークプリンタ（図示せず）を制御するプリントサーバとして機能する情報処理装置である。クライアントＡ１１０およびクライアントＢ１２０は、サーバ１００を介して印刷処理を実行する情報処理装置である。
【００１２】
サーバ１００、クライアントＡ１１０およびクライアントＢ１２０は、種々のＣＰＵを搭載し、プログラムを実行するための実行空間を提供するＲＡＭ、プログラムやデータなどを持続的に保持するためのハードディスク装置を含んでいる。
【００１３】
サーバ１００、クライアントＡ１１０およびクライアントＢ１２０は、ＷＩＮＤＯＷＳ（登録商標）ＯＳ、ＭＡＣ（登録商標）ＯＳ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などのＯＳの管理下で、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、ＶＩＳＵＡＬ  ＢＡＳＩＣ（登録商標）、ＪＡＶＡ（登録商標）、ＪＡＶＡ  ＳＣＲＩＰＴ（登録商標）、ＰＥＲＬ、ＲＵＢＹ、ＰＹＴＨＯＮなどの種々のプログラム言語で記述可能な本発明のプログラムを実行することにより、後述する機能手段を実現する。
【００１４】
以下、サーバ１００、クライアントＡ１１０およびクライアントＢ１２０のＯＳとしてＷＩＮＤＯＷＳ（登録商標）ＯＳを採用する実施形態について説明する。サーバ１００は、ＷＩＮＤＯＷＳ（登録商標）ＯＳが提供するポイント・アンド・プリント機能により、ネットワークプリンタを制御するプリンタドライバ１１１，１２１をクライアントＡ１１０およびクライアントＢ１２０に提供する。
【００１５】
プリンタドライバ１０１は、ドライバコア１０２と、機種情報１０３，１０４とを含んで構成される。ドライバコア１０２は、プリンタドライバ１０１の中核的な機能を有するプログラムファイルであり、プリンタドライバ１０１を制御するＧＵＩの表示や描画データの生成、機種情報の処理等を行う。
【００１６】
機種情報１０３，１０４は、印刷システム１０に含まれるネットワークプリンタの機種毎の機能や動作を実現するための定義データを記述した情報である。図１に示す機種情報１０３は、ネットワークプリンタの機種Ａ用の機種情報であり、機種情報１０４は、ネットワークプリンタの機種Ｂ用の機種情報である。本実施形態では、プリンタドライバ１０１は、デフォルトで機種情報１０３，１０４を有している。
【００１７】
クライアントＡ１１０は、ポイント・アンド・プリント機能によってサーバ１００から取得したプリンタドライバ１１１を有する。プリンタドライバ１１１は、サーバ１００が有するプリンタドライバ１０１と共通のドライバコア１１２および機種情報１１３，１１４を有する。
【００１８】
また、クライアントＡ１１０は、プリンタドライバ１１１のインストール時に存在しなかった機種情報が登録される記憶領域であるレジストリ１１５を備える。レジストリ１１５は、ＷＩＮＤＯＷＳ（登録商標）ＯＳが提供するデータベースであり、印刷設定情報等の種々の情報が登録される。
【００１９】
クライアントＢ１２０は、ポイント・アンド・プリント機能によってサーバ１００から取得したプリンタドライバ１２１を有する。プリンタドライバ１２１は、サーバ１００が有するプリンタドライバ１０１と共通のドライバコア１２２および機種情報１２３，１２４を有する。
【００２０】
以下、図１を参照して、クライアントＡ１１０の管理者権限を有するユーザが、新たな機種情報を追加する場合に実行される処理について説明する。
【００２１】
まず、クライアントＡ１１０のユーザが、新たな機種情報である機種情報１１６をレジストリ１１５に登録する。機種情報１１６は、ネットワークプリンタの機種Ｄ用の機種情報であり、クライアントＡ１１０の管理者権限を有するユーザのみがアクセス可能なレジストリ１１５の「ＨＫＥＹ＿ＬＯＣＡＬ＿ＭＡＣＨＩＮＥ」に保存される。機種情報１１６がレジストリ１１５に保存されると、クライアントＡ１１０のＯＳが、機種情報１１６をサーバ１００にアップロードする。
【００２２】
サーバ１００は、管理者権限を有するユーザがログインした状態のクライアントＡ１１０から機種情報１１６を受信すると、レジストリ１０７の「ＨＫＥＹ＿ＬＯＣＡＬ＿ＭＡＣＨＩＮＥ」に機種情報１１６を保存すると共に、所定の記憶領域１０５に機種情報１１６を保存する。
【００２３】
所定の記憶領域１０５は、サーバ１００のＯＳが管理する記憶領域であり、プリンタドライバ１０１がアクセス可能な記憶領域である。サーバ１００は、機種情報１１６をファイルとして、所定の記憶領域１０５を構成する任意のフォルダに保存する。他の実施形態では、サーバ１００は、レジストリ１０７の「ＨＫＥＹ＿ＣＵＲＲＥＮＴ＿ＵＳＥＲ」に機種情報１１６を保存してもよい。
【００２４】
レジストリ１０７の「ＨＫＥＹ＿ＬＯＣＡＬ＿ＭＡＣＨＩＮＥ」は、クライアントＢ１２０が参照可能な共有の記憶領域である。クライアントＢ１２０は、レジストリ１０７を参照し、新たな機種情報が登録されているか判断する。新たな機種情報が登録されている場合、クライアントＢ１２０は、レジストリ１０７から当該新たな機種情報を取得し、クライアントＢ１２０の所定の記憶領域１２５に保存する。
【００２５】
所定の記憶領域１２５は、クライアントＢ１２０のＯＳが管理する記憶領域であり、プリンタドライバ１２１がアクセス可能な記憶領域である。クライアントＢ１２０は、機種Ｄ用の機種情報１１６をファイルとして、所定の記憶領域１２５を構成する任意のフォルダに保存する。他の実施形態では、クライアントＢ１２０は、クライアントＢ１２０が有するレジストリ（図示せず）の「ＨＫＥＹ＿ＣＵＲＲＥＮＴ＿ＵＳＥＲ」に機種情報１１６を保存してもよい。
【００２６】
図２は、図１に示すサーバ１００、クライアントＡ１１０およびクライアントＢ１２０が実行する処理を示すフローチャートである。以下、図２を参照して、クライアントＡ１１０の管理者権限を有するユーザが新たな機種情報を追加する場合に、クライアントＡ１１０、サーバ１００およびクライアントＢ１２０が実行する処理について説明する。
【００２７】
ステップＳ２００〜ステップＳ２０５の処理はクライアントＡ１１０が実行する処理であり、ステップＳ２００でユーザが、プリンタドライバ１１１のＧＵＩの表示を要求することによって開始する。ステップＳ２０１では、プリンタドライバ１１１が、ネットワークプリンタの新たな機種を追加可能なＧＵＩを表示する。ステップＳ２０２では、プリンタドライバ１１１は、当該ＧＵＩを介して新たな機種の追加が指示されたか否か判断する。新たな機種の追加が指示されていない場合には（ｎｏ）、ステップＳ２０２の処理が反復する。一方、新たな機種の追加が指示された場合には（ｙｅｓ）、ステップＳ２０３に処理が分岐する。
【００２８】
ステップＳ２０３では、プリンタドライバ１１１は、ユーザが指定した追加すべき機種の機種情報をレジストリ１１５に登録する。ステップＳ２０４では、クライアントＡ１１０のＯＳが、当該機種情報をサーバ１００にアップロードし、ステップＳ２０５で処理が終了する。
【００２９】
ステップＳ２０６〜ステップＳ２０９の処理はサーバ１００が実行する処理である。当該処理は、ステップＳ２０６でサーバ１００がクライアントＡ１１０から機種情報を受信することによって開始する。ステップＳ２０７では、サーバ１００が、当該機種情報をレジストリ１０７に保存する。ステップＳ２０８では、サーバ１００は、当該機種情報を所定の記憶領域１０５に保存し、ステップＳ２０９で処理が終了する。
【００３０】
ステップＳ２１０〜ステップＳ２１４の処理はクライアントＢ１２０が実行する処理である。本実施形態では、当該処理は、クライアントＢ１２０の起動時やクライアントＢ１２０のプリンタドライバ１２１の起動時に実行される。
【００３１】
当該処理は、ステップＳ２１０から開始し、ステップＳ２１１でクライアントＢ１２０のＯＳが、サーバ１００のレジストリ１０７を参照し、レジストリ１０７の機種情報とクライアントＢ１２０の所定の記憶領域１２５の機種情報とを比較し、新たな機種情報が追加されているか否か判断する。
【００３２】
新たな機種情報が追加されていない場合には（ｎｏ）、ステップＳ２１４で処理が終了する。一方、新たな機種情報が追加されている場合には（ｙｅｓ）、ステップＳ２１２に処理が分岐する。ステップＳ２１２では、クライアントＢ１２０のＯＳは、サーバ１００のレジストリ１０７から当該機種情報を取得する。ステップＳ２１３では、クライアントＢ１２０のＯＳは、当該機種情報を所定の記憶領域１２５に保存し、ステップＳ２１４で処理が終了する。
【００３３】
図３は、本発明の印刷システムの別の実施形態を示す図である。以下、図３を参照して、クライアントＡ１１０の管理者権限を有しないユーザが新たな機種情報を追加する場合に、クライアントＡ１１０、サーバ１００およびクライアントＢ１２０が実行する処理について、図１に示す実施形態との相違点を中心に説明する。
【００３４】
図３に示す実施形態では、クライアントＡ１１０は、印刷処理の実行時に印刷データと共に、新たな機種情報１１６をサーバ１００に送信する。より詳細には、サーバサイドレンダリングの場合、クライアントＡ１１０のプリンタドライバ１１１は、中間データであるＥＭＦ形式の印刷データを生成した後、所定の記憶領域１１７に保存されている機種情報１１６を、印刷データの書誌情報を保存するデータ構造体であるＤｅｖｍｏｄｅ構造体に格納する。そして、プリンタドライバ１１１は、印刷データおよびＤｅｖｍｏｄｅ構造体をサーバ１００に送信する。他の実施形態では、機種情報１１６をＥＭＦ形式の印刷データに埋め込んでサーバ１００に送信してもよい。
【００３５】
サーバ１００は、クライアントＡ１１０からＥＭＦ形式の印刷データを受信すると、プリンタドライバ１０１を呼び出す。プリンタドライバ１０１のドライバコア１０２は、Ｄｅｖｍｏｄｅ構造体または印刷データから機種情報１１６を抽出すると共に、ＥＭＦ形式の印刷データからプリンタ１３０が解釈可能なＲＡＷ形式の印刷データを作成する。ＲＡＷ形式の印刷データは、プリンタ１３０が解釈可能な印刷コマンド（ＰＪＬ（Printer Job Language）やＰＣＬ（Printer Command Language）等）で構成される。そして、ドライバコア１０２は、当該印刷データをプリンタ１３０に送信すると共に、機種情報１１６を所定の記憶領域１０５およびレジストリ１０７に保存する。
【００３６】
一方、クライアントサイドレンダリングの場合、クライアントＡ１１０のプリンタドライバ１１１は、ＲＡＷ形式の印刷データを生成し、当該印刷データを構成する印刷コマンドに機種情報１１６を付加してサーバ１００に送信する。
【００３７】
サーバ１００がクライアントＡ１１０からＲＡＷ形式の印刷データを受信すると、サーバ１００のＯＳは、ランゲージモニタ（Language Monitor）等の印刷データ解析手段（図示せず）を呼び出す。印刷データ解析手段は、当該印刷データを解析し、当該印刷データを構成する印刷コマンドに付加されている機種情報１１６を抽出する。そして、サーバ１００のＯＳは、当該印刷データをプリンタ１３０に送信すると共に、機種情報１１６を所定の記憶領域１０５およびレジストリ１０７に保存する。
【００３８】
図３に示す実施形態では、サーバ１００のプリンタドライバ１０１は、機種リスト１０９を有している。機種リスト１０９には、所定の記憶領域１０５およびレジストリ１０７に保存されている機種情報が有する機種の識別情報（以下、「機種識別情報」とする。）が登録される。プリンタドライバ１０１のドライバコア１０２は、機種情報１１６を所定の記憶領域１０５およびレジストリ１０７に保存すると、機種情報１１６の識別情報を機種リスト１０９に登録する。
【００３９】
クライアントＢ１２０は、図１および図２の実施形態と同様に、サーバ１００のレジストリ１０７を参照して新たな機種情報が追加されたか否か判断し、新たな機種情報が追加された場合には、当該機種情報を所定の記憶領域１２５に保存する。
【００４０】
図４は、図３に示すクライアントＡ１１０が実行する処理の一実施形態を示すフローチャートである。以下、図４を参照して、クライアントＡ１１０の管理者権限を有しないユーザが新たな機種情報を追加する場合に、クライアントＡ１１０が実行する処理について説明する。
【００４１】
図４に示す処理は、ステップＳ４００でユーザが、プリンタドライバ１１１の提供するＧＵＩを用いて印刷を指示することにより開始する。ステップＳ４０１では、プリンタドライバ１１１のドライバコア１１２がレンダリング方法を判断する。本実施形態では、レンダリング方法は、ユーザがプリンタドライバ１１１の提供するＧＵＩを用いて指定することができる。
【００４２】
レンダリング方法がサーバサイドレンダリングであると判断した場合は、ステップＳ４０２に処理が分岐する。ステップＳ４０２では、ドライバコア１１２は、ＥＭＦ形式の印刷データを生成する。ステップＳ４０３では、ドライバコア１１２は、追加対象の機種情報を送信するか否か判断する。
【００４３】
本実施形態では、ユーザは、プリンタドライバ１１１の提供するＧＵＩを用いて、追加対象の機種情報を送信するか否か指定することができる。他の実施形態では、実行しようとする印刷処理が、機種情報を所定の記憶領域１１７に追加した直後である場合、ドライバコア１１２は、追加対象の機種情報を送信すると判断することができる。
【００４４】
さらに、他の実施形態では、ドライバコア１１２は、ユーザが所定の記憶領域１１７に追加した機種情報が示す機種のプリンタが、印刷を行うプリンタとしてＧＵＩで指定されているか否か判断し、当該プリンタが指定されている場合には、当該機種情報を送信すると判断することができる。
【００４５】
ステップＳ４０３で追加対象の機種情報を送信すると判断した場合には（ｙｅｓ）、ステップＳ４０４に処理が分岐する。ステップＳ４０４では、ドライバコア１１２は、追加対象の機種情報をＤｅｖｍｏｄｅ構造体に格納する。ステップＳ４０５では、ドライバコア１１２は、ＥＭＦ形式の印刷データおよびＤｅｖｍｏｄｅ構造体をサーバ１００に送信し、ステップＳ４１２で処理が終了する。
【００４６】
一方、ステップＳ４０３で追加対象の機種情報を送信しないと判断した場合には（ｎｏ）、ステップＳ４０６に処理が分岐する。ステップＳ４０６では、ドライバコア１１２は、ＥＭＦ形式の印刷データをサーバ１００に送信し、ステップＳ４１２で処理が終了する。
【００４７】
ステップＳ４０１の判定でレンダリング方法がクライアントサイドレンダリングであると判断した場合には、ステップＳ４０７に処理が分岐する。ステップＳ４０７では、ドライバコア１１２は、ＲＡＷ形式の印刷データを生成する。
【００４８】
ステップＳ４０８では、ドライバコア１１２は、追加対象の機種情報を送信するか否か判断する。追加対象の機種情報を送信すると判断した場合には（ｙｅｓ）、ステップＳ４０９に処理が分岐する。ステップＳ４０９では、ドライバコア１１２は、ＲＡＷ形式の印刷データを構成する印刷コマンドに追加対象の機種情報を付加する。ステップＳ４１０では、ドライバコア１１２は、機種情報が付加されたＲＡＷ形式の印刷データをサーバ１００に送信し、ステップＳ４１２で処理が終了する。
【００４９】
一方、ステップＳ４０８で追加対象の機種情報１１６を送信しないと判断した場合には（ｎｏ）、ステップＳ４１１に処理が分岐する。ステップＳ４１１では、ドライバコア１１２は、ＲＡＷ形式の印刷データをサーバ１００に送信し、ステップＳ４１２で処理が終了する。
【００５０】
図５は、機種情報が付加された印刷データの一実施形態を示す図である。図５に示す実施形態では、印刷データを構成する印刷コマンドは、開始位置を示す識別子「ＪＯＢ  ＮＡＭＥ＝“ＸＸＸＸＸ”」と、終了位置を示す識別子「ＥＯＪ  ＮＡＭＥ＝“ＸＸＸＸＸ”」とで画定された部分に記述される。
【００５１】
機種情報は、開始位置を示す識別子「ＭＯＤＥＬＩＮＦＯ＿ＳＴＡＲＴ」と、終了位置を示す識別子「ＭＯＤＥＬＩＮＦＯ＿ＥＮＤ」とで画定された部分に記述される。機種情報には、当該機種のプリンタが提供する機能情報の他、機種識別情報やバージョン情報等の属性情報が含まれる。図５に示す機種情報の機種識別情報は「Ｄ」であり（ｐｒｉｎｔｅｒ  ｍｏｄｅｌ＝“Ｄ”）、バージョンは「１．０」である（ｖｅｒ＝“１．０”）。機種情報は、圧縮した形式で記述してもよく、また、圧縮していない形式で記述してもよい。
【００５２】
図６は、図３に示すサーバ１００が実行する処理の一実施形態を示すフローチャートである。以下、図３を参照して、クライアントＡ１１０の管理者権限を有しないユーザが新たな機種情報を追加する場合に、サーバ１００が実行する処理の一実施形態について説明する。
【００５３】
ステップＳ６００〜Ｓ６０６の処理は、サーバサイドレンダリングの場合にサーバ１００が実行する処理である。当該処理は、ステップＳ６００でサーバ１００がＥＭＦ形式の印刷データを受信することにより開始する。
【００５４】
ステップＳ６０１では、プリンタドライバ１０１のドライバコア１０２が、印刷データと共に受信したＤｅｖｍｏｄｅ構造体から機種情報を抽出する。ステップＳ６０２では、ドライバコア１０２は、ＥＭＦ形式の印刷データからＲＡＷ形式の印刷データを作成する。ステップＳ６０３では、ドライバコア１０２は、ＲＡＷ形式の印刷データをプリンタ１３０に送信する。ステップＳ６０４では、ドライバコア１０２は、ステップＳ６０１で抽出した機種情報を所定の記憶領域１０５およびレジストリ１０７に保存する。ステップＳ６０５では、ドライバコア１０２は、機種情報から機種識別情報を取得し、当該機種識別情報を機種リスト１０９に追加し、ステップＳ６０６で処理が終了する。
【００５５】
ステップＳ６０７〜Ｓ６１２の処理は、クライアントサイドレンダリングの場合に実行される処理である。当該処理は、ステップＳ６０７でサーバ１００がＲＡＷ形式の印刷データを受信することにより開始する。
【００５６】
ステップＳ６０８では、サーバ１００の印刷データ解析手段が、ＲＡＷ形式の印刷データを解析し、当該印刷データを構成する印刷コマンドに付加された機種情報を抽出する。ステップＳ６０９では、サーバ１００のＯＳが印刷データをプリンタ１３０に送信する。ステップＳ６１０では、サーバ１００のＯＳは、ステップＳ６０８で抽出した機種情報を所定の記憶領域１０５およびレジストリ１０７に保存する。ステップＳ６１１では、サーバ１００のＯＳは、機種情報から機種識別情報を取得し、当該機種識別情報を機種リスト１０９に追加し、ステップＳ６１２で処理が終了する。
【００５７】
本実施形態では、上記構成要件を採用することにより、クライアントの管理者権限を有しないユーザが、クライアント装置を利用して機種情報を追加することができる。
【００５８】
図７は、図３に示すクライアントＡ１１０が実行する処理の別の実施形態を示すフローチャートである。以下、図７を参照して、クライアントＡ１１０の管理者権限を有しないユーザが機種情報を削除する場合に、クライアントＡ１１０が実行する処理について説明する。
【００５９】
図７に示す処理は、ステップＳ７００でユーザが、プリンタドライバ１１１の提供するＧＵＩを用いて印刷を指示することにより開始する。ステップＳ７０１では、プリンタドライバ１１１のドライバコア１１２がレンダリング方法を判断する。レンダリング方法がサーバサイドレンダリングであると判断した場合には、ステップＳ７０２に処理が分岐する。
【００６０】
ステップＳ７０２では、ドライバコア１１２は、ＥＭＦ形式の印刷データを生成する。ステップＳ７０３では、ドライバコア１１２は、削除対象の機種情報を送信するか否か判断する。本実施形態では、ユーザは、プリンタドライバ１１１の提供するＧＵＩを用いて削除対象の機種情報を指定することができる。
【００６１】
ステップＳ７０３で削除対象の機種情報を送信すると判断した場合には（ｙｅｓ）、ステップＳ７０４に処理が分岐する。ステップＳ７０４では、ドライバコア１１２は、削除対象の機種情報をＤｅｖｍｏｄｅ構造体に格納する。ステップＳ７０５では、ドライバコア１１２は、ＥＭＦ形式の印刷データおよびＤｅｖｍｏｄｅ構造体をサーバ１００に送信し、ステップＳ７１２で処理が終了する。
【００６２】
一方、ステップＳ７０３で削除対象の機種情報１１６を送信しないと判断した場合には（ｎｏ）、ステップＳ７０６に処理が分岐する。ステップＳ７０６では、ドライバコア１１２は、ＥＭＦ形式の印刷データをサーバ１００に送信し、ステップＳ７１２で処理が終了する。
【００６３】
ステップＳ７０１の判定でレンダリング方法がクライアントサイドレンダリングであると判断した場合には、ステップＳ７０７に処理が分岐する。ステップＳ７０７では、ドライバコア１１２は、ＲＡＷ形式の印刷データを生成する。ステップＳ７０８では、ドライバコア１１２は、削除対象の機種情報を送信するか否か判断する。
【００６４】
削除対象の機種情報を送信すると判断した場合には（ｙｅｓ）、ステップＳ７０９に処理が分岐する。ステップＳ７０９では、ドライバコア１１２は、ＲＡＷ形式の印刷データを構成する印刷コマンドに削除対象の機種情報を付加する。ステップＳ７１０では、ドライバコア１１２は、機種情報が付加されたＲＡＷ形式の印刷データをサーバ１００に送信し、ステップＳ７１２で処理が終了する。
【００６５】
一方、ステップＳ７０８で削除対象の機種情報を送信しないと判断した場合には（ｎｏ）、ステップＳ７１１に処理が分岐する。ステップＳ７１１では、ドライバコア１１２は、ＲＡＷ形式の印刷データをサーバ１００に送信し、ステップＳ７１２で処理が終了する。
【００６６】
図８は、図３に示すサーバ１００が実行する処理の別の実施形態を示すフローチャートである。以下、図３を参照して、クライアントＡ１１０の管理者権限を有しないユーザが機種情報を削除する場合に、サーバ１００およびクライアントＢ１２０が実行する処理について説明する。
【００６７】
ステップＳ８００〜Ｓ８０６の処理は、サーバサイドレンダリングの場合にサーバ１００が実行する処理である。当該処理は、ステップＳ８００でサーバ１００がＥＭＦ形式の印刷データを受信することにより開始する。
【００６８】
ステップＳ８０１では、プリンタドライバ１０１のドライバコア１０２が、印刷データと共に受信したＤｅｖｍｏｄｅ構造体から削除対象の機種情報を抽出する。ステップＳ８０２では、ドライバコア１０２は、ＥＭＦ形式の印刷データからＲＡＷ形式の印刷データを作成する。ステップＳ８０３では、ドライバコア１０２は、ＲＡＷ形式の印刷データをプリンタ１３０に送信する。
【００６９】
ステップＳ８０４では、ドライバコア１０２は、ステップＳ８０１で抽出した削除対象の機種情報と同一の機種情報を、所定の記憶領域１０５およびレジストリ１０７から削除する。ステップＳ８０５では、ドライバコア１０２は、削除対象の機種情報に含まれる機種識別情報と同一の機種識別情報を機種リスト１０９から削除して更新し、ステップＳ８０６で処理が終了する。
【００７０】
ステップＳ８０７〜Ｓ８１２の処理は、クライアントサイドレンダリングの場合にサーバ１００が実行する処理である。当該処理は、ステップＳ８０７でサーバ１００がＲＡＷ形式の印刷データを受信することにより開始する。
【００７１】
ステップＳ８０８では、サーバ１００の印刷データ解析手段が、ＲＡＷ形式の印刷データを解析し、当該印刷データを構成する印刷コマンドに付加された削除対象の機種情報を抽出する。ステップＳ８０９では、サーバ１００のＯＳがＲＡＷ形式の印刷データをプリンタ１３０に送信する。
【００７２】
ステップＳ８１０では、サーバ１００のＯＳは、ステップＳ８０８で抽出した削除対象の機種情報と同一の機種情報を、所定の記憶領域１０５およびレジストリ１０７から削除する。ステップＳ８１１では、サーバ１００のＯＳは、削除対象の機種情報に含まれる機種識別情報と同一の機種識別情報を機種リスト１０９から削除し、ステップＳ８１２で処理が終了する。
【００７３】
ステップＳ８１３〜ステップＳ８１６の処理はクライアントＢ１２０が実行する処理である。本実施形態では、当該処理は、クライアントＢ１２０の起動時やクライアントＢ１２０のプリンタドライバ１２１の起動時に実行される。
【００７４】
当該処理は、ステップＳ８１３から開始し、ステップＳ８１４でクライアントＢ１２０のＯＳが、サーバ１００のレジストリ１０７を参照し、レジストリ１０７の機種情報と、クライアントＢ１２０の所定の記憶領域１２５の機種情報とを比較し、機種情報が削除されているか否か判断する。
【００７５】
機種情報が削除されていない場合には（ｎｏ）、ステップＳ８１６で処理が終了する。一方、機種情報が削除されている場合には（ｙｅｓ）、ステップＳ８１５に処理が分岐する。ステップＳ８１５では、クライアントＢ１２０のＯＳは、削除対象の機種情報を所定の記憶領域１２５から削除し、ステップＳ８１６で処理が終了する。
【００７６】
本実施形態では、上記構成要件を採用することにより、クライアントの管理者権限を有しないユーザが、クライアント装置を利用して機種情報を削除することができる。
【００７７】
図９は、図３に示すサーバ１００が実行する処理の他の実施形態を示すフローチャートである。以下、図９を参照して、クライアントＡ１１０の管理者権限を有しないユーザによる機種情報の追加を管理者が許可した場合に、サーバ１００が実行する処理について説明する。
【００７８】
ステップＳ９００〜Ｓ９０５の処理は、サーバサイドレンダリングの場合にサーバ１００が実行する処理である。当該処理は、ステップＳ９００でサーバ１００がＥＭＦ形式の印刷データを受信することにより開始する。
【００７９】
ステップＳ９０１では、プリンタドライバ１０１のドライバコア１０２が、ＥＭＦ形式の印刷データと共に受信したＤｅｖｍｏｄｅ構造体から機種情報を抽出し、サーバ１００のバッファメモリに保持する。ステップＳ９０２では、ドライバコア１０２は、ＥＭＦ形式の印刷データからＲＡＷ形式の印刷データを作成する。ステップＳ９０３では、ドライバコア１０２は、ＲＡＷ形式の印刷データをプリンタ１３０に送信する。ステップＳ９０４では、ドライバコア１０２は、機種情報の追加要求があったことを管理者に通知し、ステップＳ９０５で処理が終了する。
【００８０】
本実施形態では、管理者に通知する方法として、機種情報の追加要求があったことを示すメールを管理者のメールアドレスに送信する方法や、管理者がサーバ１００のプリンタドライバ１０１を操作したタイミングで当該追加要求があったことを示すポップアップ画面を表示するなどの種々の方法を採用することができる。
【００８１】
ステップＳ９０６〜Ｓ９１０の処理は、クライアントサイドレンダリングの場合にサーバ１００が実行する処理である。当該処理は、ステップＳ９０６でサーバ１００がＲＡＷ形式の印刷データを受信することにより開始する。
【００８２】
ステップＳ９０７では、サーバ１００の印刷データ解析手段が、ＲＡＷ形式の印刷データを解析し、当該印刷データを構成する印刷コマンドに付加された機種情報を抽出し、サーバ１００のバッファメモリに保持する。ステップＳ９０８では、サーバ１００のＯＳが印刷データをプリンタ１３０に送信する。ステップＳ９０９では、ドライバコア１０２は、機種情報の追加要求があったことを管理者に通知し、ステップＳ９１０で処理が終了する。
【００８３】
ステップＳ９１１〜Ｓ９１４の処理は、管理者が機種情報の追加を許可した場合にサーバ１００が実行する処理である。当該処理は、ステップＳ９１１で管理者が、プリンタドライバ１０１の提供するＧＵＩを用いて機種情報の追加を許可することにより開始する。
【００８４】
ステップＳ９１２では、プリンタドライバ１０１が、サーバ１００のバッファメモリに保存されている機種情報を、所定の記憶領域１０５およびレジストリ１０７に保存する。ステップＳ９１３では、プリンタドライバ１０１は、機種情報から機種識別情報を取得し、当該機種識別情報を機種リスト１０９に追加し、ステップＳ９１４で処理が終了する。
【００８５】
図９に示す処理は、管理者が機種情報の追加を許可した場合に実行される処理であるが、同様に、プリンタドライバ１０１は、管理者が機種情報の削除を許可した場合に、削除対象の機種情報を削除することができる。
【００８６】
具体的には、プリンタドライバ１０１は、Ｄｅｖｍｏｄｅ構造体または印刷コマンドから削除対象の機種情報を抽出し、印刷データをプリンタに送信した後、当該機種情報の削除要求があったことを管理者に通知する。管理者が機種情報の削除を許可すると、プリンタドライバ１０１は、削除対象の機種情報と同一の機種情報を、所定の記憶領域１０５およびレジストリ１０７から削除し、当該機種情報に含まれる機種識別情報と同一の機種識別情報を機種リスト１０９から削除する。
【００８７】
本実施形態では、上記構成要件を採用することにより、管理者が、クライアントの管理者権限を有しないユーザによる機種情報の追加を許可または拒否することができる。
【００８８】
図１０は、本発明の印刷システムの他の実施形態を示す図である。以下、図１０を参照して、クライアントＡ１１０の管理者権限を有しないユーザが新たな機種情報を追加する場合であって、クライアントＡ１１０とサーバ１００およびクライアントＢ１２０が有するプリンタドライバのバージョンに差異がある場合に、クライアントＡ１１０、サーバ１００およびクライアントＢ１２０が実行する処理について、図３に示す実施形態との相違点を中心に説明する。
【００８９】
図１０に示す実施形態では、サーバ１００、クライアントＡ１１０およびクライアントＢ１２０のプリンタドライバのバージョンは、それぞれ「１．２」、「１．１」および「１．０」である。サーバ１００は、プリンタドライバ１０１の機種情報（バージョン：１．２）と、クライアントＡ１１０のプリンタドライバ１１１の機種情報（バージョン：１．１）またはクライアントＢ１２０のプリンタドライバ１２１の機種情報（バージョン：１．０）との差分情報１４０を保持する。
【００９０】
クライアントＡ１１０は、印刷処理の実行時に印刷データと共に、追加対象の機種情報（バージョン：１．１）１１６をサーバ１００に送信する。サーバ１００は、クライアントＡ１１０から印刷データを受信すると、プリンタドライバ１０１を呼び出し、プリンタドライバ１０１のドライバコア１０２が、Ｄｅｖｍｏｄｅ構造体若しくはＥＭＦ形式の印刷データ、またはＲＡＷ形式の印刷データを構成する印刷コマンドから機種情報１１６を抽出する。
【００９１】
ドライバコア１０２は、サーバ１００のプリンタドライバ１０１のバージョンと、クライアントＡ１１０のプリンタドライバ１１１のバージョンが相違するか否か判断する。これらのバージョンが相違する場合には、ドライバコア１０２は、差分情報１４０を使用して、クライアントＡ１１０が送信した機種情報（バージョン：１．１）１１６を、プリンタドライバ１０１のバージョンに適合する機種情報（バージョン：１．２）１０６に変換する。
【００９２】
サーバ１００は、バージョンを変換した機種情報１０６を所定の記憶領域１０５に保存すると共に、機種情報１０６および差分情報１４０をレジストリ１０７に保存する。具体的には、サーバ１００は、機種情報１０６（バージョン：１．２）と、機種情報１０６のバージョンとは異なるバージョン（例えば、１．０等）の機種情報との差分情報を、機種情報１０６と共にレジストリ１０７に保存する。
【００９３】
クライアントＢ１２０は、レジストリ１０７を参照し、新たな機種情報が追加されている場合には、レジストリ１０７に保存されている機種情報１０６および差分情報を取得する。そして、クライアントＢ１２０は、サーバ１００のプリンタドライバ１０１のバージョンと、クライアントＢ１２０のプリンタドライバ１２１のバージョンが相違するか否か判断する。
【００９４】
これらのバージョンが相違する場合には、クライアントＢ１２０は、当該差分情報を使用して、サーバ１００から取得した機種情報（バージョン：１．２）を、プリンタドライバ１２１のバージョンに適合する機種情報（バージョン：１．０）１２６に変換し、所定の記憶領域１２５に保存する。
【００９５】
図１１は、図１０に示すサーバ１００が実行する処理を示すフローチャートである。以下、図１１を参照して、クライアントＡ１１０の管理者権限を有しないユーザが新たな機種情報を追加する場合に、サーバ１００が実行する処理の他の実施形態について説明する。
【００９６】
ステップＳ１１００〜Ｓ１１０８の処理は、サーバサイドレンダリングの場合にサーバ１００が実行する処理である。当該処理は、ステップＳ１１００でサーバ１００がＥＭＦ形式の印刷データを受信することにより開始する。
【００９７】
ステップＳ１１０１では、プリンタドライバ１０１のドライバコア１０２が、印刷データと共に受信したＤｅｖｍｏｄｅ構造体から機種情報を抽出する。ステップＳ１１０２では、ドライバコア１０２は、当該機種情報が示すクライアントＡ１１０のプリンタドライバ１１１のバージョンと、サーバ１００のプリンタドライバ１０１のバージョンとが一致するか否か判断する。これらのバージョンが一致する場合には（ｙｅｓ）、ステップＳ１１０４に処理が分岐する。
【００９８】
一方、これらのバージョンが相違する場合には（ｎｏ）、ステップＳ１１０３に処理が分岐する。ステップＳ１１０３では、ドライバコア１０２は、差分情報１４０を使用して、クライアントＡ１１０が送信した機種情報を、プリンタドライバ１０１のバージョンに適合する機種情報に変換する。
【００９９】
ステップＳ１１０４では、ドライバコア１０２は、ＥＭＦ形式の印刷データからＲＡＷ形式の印刷データを作成する。ステップＳ１１０５では、ドライバコア１０２は、ＲＡＷ形式の印刷データをプリンタ１３０に送信する。ステップＳ１１０６では、ドライバコア１０２は、ステップＳ１１０１で抽出した機種情報を所定の記憶領域１０５およびレジストリ１０７に保存する。ステップＳ１１０７では、ドライバコア１０２は、機種情報から機種識別情報を取得し、当該機種識別情報を機種リスト１０９に追加し、ステップＳ１１０８で処理が終了する。
【０１００】
ステップＳ１１０９〜Ｓ１１１６の処理は、クライアントサイドレンダリングの場合にサーバ１００が実行する処理である。当該処理は、ステップＳ１１０９でサーバ１００がＲＡＷ形式の印刷データを受信することにより開始する。ステップＳ１１１０では、サーバ１００の印刷データ解析手段が、ＲＡＷ形式の印刷データを解析し、当該印刷データを構成する印刷コマンドに付加された機種情報を抽出する。
【０１０１】
ステップＳ１１１１では、サーバ１００のＯＳが、当該機種情報が示すクライアントＡ１１０のプリンタドライバ１１１のバージョンと、サーバ１００のプリンタドライバ１０１のバージョンとが一致するか否か判断する。これらのバージョンが一致する場合には（ｙｅｓ）、ステップＳ１１１３に処理が分岐する。一方、これらのバージョンが相違する場合には（ｎｏ）、ステップＳ１１１２に処理が分岐する。ステップＳ１１１２では、サーバ１００のＯＳは、差分情報１４０を使用して、クライアントＡ１１０が送信した機種情報を、プリンタドライバ１０１のバージョンに適合する機種情報に変換する。
【０１０２】
ステップＳ１１１３では、サーバ１００のＯＳが印刷データをプリンタ１３０に送信する。ステップＳ１１１４では、サーバ１００のＯＳは、ステップＳ１１１０で抽出した機種情報を所定の記憶領域１０５およびレジストリ１０７に保存する。ステップＳ１１１５では、サーバ１００のＯＳは、機種情報から機種識別情報を取得し、当該機種識別情報を機種リスト１０９に追加し、ステップＳ１１１６で処理が終了する。
【０１０３】
図１２は、図１０に示すクライアントＢ１２０が実行する処理を示すフローチャートである。以下、図１２を参照して、クライアントＡ１１０の管理者権限を有しないユーザが新たな機種情報を追加する場合に、クライアントＢ１２０が実行する処理の他の実施形態について説明する。本実施形態では、当該処理は、クライアントＢ１２０の起動時やクライアントＢ１２０のプリンタドライバ１２１の起動時に実行される。
【０１０４】
図１２に示す処理は、ステップＳ１２００から開始し、ステップＳ１２０１でクライアントＢ１２０のＯＳが、サーバ１００のレジストリ１０７を参照し、レジストリ１０７の機種情報とクライアントＢ１２０の所定の記憶領域１２５の機種情報とを比較し、新たな機種情報が追加されているか否か判断する。
【０１０５】
新たな機種情報が追加されていない場合には（ｎｏ）、ステップＳ１２０６で処理が終了する。一方、新たな機種情報が追加されている場合には（ｙｅｓ）、ステップＳ１２０２に処理が分岐する。ステップＳ１２０２では、クライアントＢ１２０のＯＳは、サーバ１００のレジストリ１０７から当該機種情報および差分情報を取得する。
【０１０６】
ステップＳ１２０３では、クライアントＢ１２０のＯＳは、当該機種情報が示すサーバ１００のプリンタドライバ１０１のバージョンと、クライアントＢ１２０のプリンタドライバ１２１のバージョンが一致するか否か判断する。これらのバージョンが一致する場合には（ｙｅｓ）、ステップＳ１２０５に処理が分岐する。一方、これらのバージョンが相違する場合には（ｎｏ）、ステップＳ１２０４に処理が分岐する。
【０１０７】
ステップＳ１２０４では、クライアントＢ１２０のＯＳは、ステップＳ１２０２で取得した差分情報を使用して、サーバ１００のレジストリ１０７から取得した機種情報を、プリンタドライバ１２１のバージョンに適合する機種情報に変換する。ステップＳ１２０５では、クライアントＢ１２０のＯＳは、当該機種情報を所定の記憶領域１２５に保存し、ステップＳ１２０６で処理が終了する。
【０１０８】
本実施形態では、上記構成要件を採用することにより、クライアントの管理者権限を有しないユーザが追加要求する機種情報のバージョンが、サーバおよびクライアント間で相違する場合でも、機種情報を追加および共有することができる。
【０１０９】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、本実施形態の構成要素を変更若しくは削除し、または本実施形態の構成要素を他の構成要素を追加するなど、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【０１１０】
１０…印刷システム、１００…サーバ、１０１…プリンタドライバ、１０２…ドライバコア、１０３…機種Ａ用の機種情報、１０４…機種Ｂ用の機種情報、１０５…所定の記憶領域、１０７…レジストリ、１１０…クライアントＡ、１１１…プリンタドライバ、１１２…ドライバコア、１１３…機種Ａ用の機種情報、１１４…機種Ｂ用の機種情報、１１５…レジストリ、１１６…機種Ｄ用の機種情報、１２０…クライアントＢ、１２１…プリンタドライバ、１２２…ドライバコア、１２３…機種Ａ用の機種情報、１２４…機種Ｂ用の機種情報、１２５…レジストリ、１２６…機種Ｄ用の機種情報
【先行技術文献】
【特許文献】
【０１１１】
【特許文献１】特開２００９−０２５８６５号公報
【図１】
2014215814.tif 000003
【図２】
2014215814.tif 000004
【図３】
2014215814.tif 000005
【図４】
2014215814.tif 000006
【図５】
2014215814.tif 000007
【図６】
2014215814.tif 000008
【図７】
2014215814.tif 000009
【図８】
2014215814.tif 000010
【図９】
2014215814.tif 000011
【図１０】
2014215814.tif 000012
【図１１】
2014215814.tif 000013
【図１２】
2014215814.tif 000014