(57)【特許請求の範囲】
【請求項１】
印刷対象データの描画処理を行う印刷サーバとネットワークを介して接続された情報処理装置を、
プリンタドライバによる印刷に関する設定情報を設定するための設定画面を表示させる表示手段、
前記設定画面が所定のアプリケーションからの要求に基づき表示されたか否かを判定する判定手段、
前記判定手段により前記設定画面が前記所定のアプリケーションからの要求に基づき表示されたと判定された場合、該設定画面において設定された設定情報のうち、特定の設定情報を所定の第１の印刷設定保存領域に保存させる一方、前記特定の設定情報以外の設定情報を所定の第２の印刷設定保存領域に保存させる設定情報保存手段、
前記プリンタドライバに対する印刷対象データの印刷指示に応じて、前記情報処理装置に搭載されているＯＳの機能により、前記所定の第２の印刷設定保存領域に保存されている前記特定の設定情報以外の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する第１の送信手段、
前記プリンタドライバの機能により、前記所定の第１の印刷設定保存領域に保存されている前記特定の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する第２の送信手段、
として機能させるためのプログラム。
【請求項２】
前記情報処理装置を、
所定の暗号化／復号キーに基づき、所定の情報を暗号化又は該暗号化された情報を復号する暗号化／復号手段、
として機能させ、
前記設定情報保存手段は、前記判定手段により前記設定画面が前記所定のアプリケーションからの要求に基づき表示されたと判定された場合、該設定画面において設定された設定情報のうち、前記特定の設定情報を前記暗号化／復号手段により暗号化させた後、該暗号化された特定の設定情報を前記所定の第１の印刷設定保存領域に保存させる一方、前記特定の設定情報以外の設定情報を所定の第２の印刷設定保存領域に保存させ、
前記第２の送信手段は、前記プリンタドライバの機能により、前記所定の第１の印刷設定保存領域に保存されている前記暗号化された特定の設定情報を前記暗号化／復号手段により復号させた情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する、請求項１記載のプログラム。
【請求項３】
前記暗号化／復号手段は、前記情報処理装置にログインしているユーザを一意に識別するユーザ情報を暗号化／復号キーとして、前記所定の情報を暗号化又は該暗号化された情報を復号する、請求項２記載のプログラム。
【請求項４】
前記情報処理装置を、
所定の暗号化／復号キーに基づき、所定の情報を暗号化又は該暗号化された情報を復号する暗号化／復号手段、
として機能させ、
前記設定情報保存手段は、前記判定手段により前記設定画面が前記所定のアプリケーションからの要求に基づき表示されたと判定された場合、該設定画面において設定された設定情報のうち、前記特定の設定情報を前記暗号化／復号手段により暗号化させた後、該暗号化された特定の設定情報を前記所定の第１の印刷設定保存領域に保存させる一方、前記特定の設定情報以外の設定情報を所定の第２の印刷設定保存領域に保存させ、
前記第２の送信手段は、前記プリンタドライバの機能により、前記所定の第１の印刷設定保存領域に保存されている前記暗号化された特定の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信すると共に、前記暗号化／復号キーを、前記印刷対象データの描画処理を行う前記印刷サーバに送信する、請求項１記載のプログラム。
【請求項５】
前記第２の送信手段は、前記暗号化／復号キーを該暗号化／復号キーとは異なる他の暗号化／復号キーで暗号化したキーを、前記印刷対象データの描画処理を行うプリンタドライバの描画部に送信し、
前記他の暗号化／復号キーは、前記印刷サーバと前記情報処理装置との間で一意に決定される情報である、請求項４記載のプログラム。
【請求項６】
前記第１の印刷設定保存領域は、ファイル又はレジストリである、請求項１ないし５のいずれか１項に記載のプログラム。
【請求項７】
前記第２の印刷設定保存領域は、Ｄｅｖｍｏｄｅ構造体である、請求項１ないし６のいずれか１項に記載のプログラム。
【請求項８】
印刷対象データの描画処理を行う印刷サーバとネットワークを介して接続された情報処理装置であって、
プリンタドライバによる印刷に関する設定情報を設定するための設定画面を表示させる表示手段と、
前記設定画面が所定のアプリケーションからの要求に基づき表示されたか否かを判定する判定手段と、
前記判定手段により前記設定画面が前記所定のアプリケーションからの要求に基づき表示されたと判定された場合、該設定画面において設定された設定情報のうち、特定の設定情報を所定の第１の印刷設定保存領域に保存させる一方、前記特定の設定情報以外の設定情報を所定の第２の印刷設定保存領域に保存させる設定情報保存手段と、
前記プリンタドライバに対する印刷対象データの印刷指示に応じて、前記情報処理装置に搭載されているＯＳの機能により、前記所定の第２の印刷設定保存領域に保存されている前記特定の設定情報以外の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する第１の送信手段と、
前記プリンタドライバの機能により、前記所定の第１の印刷設定保存領域に保存されている前記特定の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する第２の送信手段と、
を有する情報処理装置。
【請求項９】
前記情報処理装置は、
所定の暗号化／復号キーに基づき、所定の情報を暗号化又は該暗号化された情報を復号する暗号化／復号手段を有し、
前記設定情報保存手段は、前記判定手段により前記設定画面が前記所定のアプリケーションからの要求に基づき表示されたと判定された場合、該設定画面において設定された設定情報のうち、前記特定の設定情報を前記暗号化／復号手段により暗号化させた後、該暗号化された特定の設定情報を前記所定の第１の印刷設定保存領域に保存させる一方、前記特定の設定情報以外の設定情報を所定の第２の印刷設定保存領域に保存させ、
前記第２の送信手段は、前記プリンタドライバの機能により、前記所定の第１の印刷設定保存領域に保存されている前記暗号化された特定の設定情報を前記暗号化／復号手段により復号させた情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する、請求項８記載の情報処理装置。
【請求項１０】
前記暗号化／復号手段は、前記情報処理装置にログインしているユーザを一意に識別するユーザ情報を暗号化／復号キーとして、前記所定の情報を暗号化又は該暗号化された情報を復号する、請求項９記載の情報処理装置。
【請求項１１】
所定の暗号化／復号キーに基づき、所定の情報を暗号化又は該暗号化された情報を復号する暗号化／復号手段を有し、
前記設定情報保存手段は、前記判定手段により前記設定画面が前記所定のアプリケーションからの要求に基づき表示されたと判定された場合、該設定画面において設定された設定情報のうち、前記特定の設定情報を前記暗号化／復号手段により暗号化させた後、該暗号化された特定の設定情報を前記所定の第１の印刷設定保存領域に保存させる一方、前記特定の設定情報以外の設定情報を所定の第２の印刷設定保存領域に保存させ、
前記第２の送信手段は、前記プリンタドライバの機能により、前記所定の第１の印刷設定保存領域に保存されている前記暗号化された特定の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信すると共に、前記暗号化／復号キーを、前記印刷対象データの描画処理を行う前記印刷サーバに送信する、請求項８記載の情報処理装置。
【請求項１２】
前記第２の送信手段は、前記暗号化／復号キーを該暗号化／復号キーとは異なる他の暗号化／復号キーで暗号化したキーを、前記印刷対象データの描画処理を行うプリンタドライバの描画部に送信し、
前記他の暗号化／復号キーは、前記印刷サーバと前記情報処理装置との間で一意に決定される情報である、請求項１１記載の情報処理装置。
【請求項１３】
前記第１の印刷設定保存領域は、ファイル又はレジストリである、請求項８ないし１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記第２の印刷設定保存領域は、Ｄｅｖｍｏｄｅ構造体である、請求項８ないし１３のいずれか１項に記載の情報処理装置。
【請求項１５】
印刷対象データの描画処理を行う印刷サーバと、該印刷サーバとネットワークを介して接続された情報処理装置とを有する情報処理システムであって、
プリンタドライバによる印刷に関する設定情報を設定するための設定画面を表示させる表示手段と、
前記設定画面が所定のアプリケーションからの要求に基づき表示されたか否かを判定する判定手段と、
前記判定手段により前記設定画面が前記所定のアプリケーションからの要求に基づき表示されたと判定された場合、該設定画面において設定された設定情報のうち、特定の設定情報を所定の第１の印刷設定保存領域に保存させる一方、前記特定の設定情報以外の設定情報を所定の第２の印刷設定保存領域に保存させる設定情報保存手段と、
前記プリンタドライバに対する印刷対象データの印刷指示に応じて、前記情報処理装置に搭載されているＯＳの機能により、前記所定の第２の印刷設定保存領域に保存されている前記特定の設定情報以外の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する第１の送信手段と、
前記プリンタドライバの機能により、前記所定の第１の印刷設定保存領域に保存されている前記特定の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する第２の送信手段と、
前記第２の送信手段より送信された前記特定の設定情報と、前記第１の送信手段により送信された前記特定の設定情報以外の設定情報と、前記印刷対象データとを受け付けると、前記特定の設定情報と前記特定の設定情報以外の設定情報とに基づき、前記印刷対象データの描画処理を行い、印刷装置で印刷可能なデータ形式である印刷データを生成する描画手段と、
を有する情報処理システム。
【請求項１６】
印刷対象データの描画処理を行う印刷サーバと、該印刷サーバとネットワークを介して接続された情報処理装置とを有する印刷システムに用いられる情報処理方法であって、
プリンタドライバによる印刷に関する設定情報を設定するための設定画面を表示させる表示手順と、
前記設定画面が所定のアプリケーションからの要求に基づき表示されたか否かを判定する判定手順と、
前記判定手順により前記設定画面が前記所定のアプリケーションからの要求に基づき表示されたと判定された場合、該設定画面において設定された設定情報のうち、特定の設定情報を所定の第１の印刷設定保存領域に保存させる一方、前記特定の設定情報以外の設定情報を所定の第２の印刷設定保存領域に保存させる設定情報保存手順と、
前記プリンタドライバに対する印刷対象データの印刷指示に応じて、前記情報処理装置に搭載されているＯＳの機能により、前記所定の第２の印刷設定保存領域に保存されている前記特定の設定情報以外の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する第１の送信手順と、
前記プリンタドライバの機能により、前記所定の第１の印刷設定保存領域に保存されている前記特定の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する第２の送信手順と、
前記第２の送信手順より送信された前記特定の設定情報と、前記第１の送信手順により送信された前記特定の設定情報以外の設定情報と、前記印刷対象データとを受け付けると、前記特定の設定情報と前記特定の設定情報以外の設定情報とに基づき、前記印刷対象データの描画処理を行い、印刷装置で印刷可能なデータ形式である印刷データを生成する描画手順と、
を有する情報処理手順。
【請求項１７】
印刷対象データの描画処理を行う印刷サーバと、該印刷サーバとネットワークを介して接続された情報処理装置に搭載されたプリンタドライバと、所定の画像処理を行う画像処理装置とを有する情報処理システムであって、
前記プリンタドライバによる印刷に関する設定情報を設定するための設定画面を表示させる表示手段と、
前記設定画面が所定のアプリケーションからの要求に基づき表示されたか否かを判定する判定手段と、
前記判定手段により前記設定画面が前記所定のアプリケーションからの要求に基づき表示されたと判定された場合、該設定画面において設定された設定情報のうち、特定の設定情報を所定の第１の印刷設定保存領域に保存させる一方、前記特定の設定情報以外の設定情報を所定の第２の印刷設定保存領域に保存させる設定情報保存手段と、
前記プリンタドライバに対する印刷対象データの印刷指示に応じて、前記情報処理装置に搭載されているＯＳの機能により、前記所定の第２の印刷設定保存領域に保存されている前記特定の設定情報以外の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する第１の送信手段と、
前記プリンタドライバの機能により、前記所定の第１の印刷設定保存領域に保存されている前記特定の設定情報を、前記印刷対象データの描画処理を行う前記印刷サーバに送信する第２の送信手段と、
前記第２の送信手段より送信された前記特定の設定情報と、前記第１の送信手段により送信された前記特定の設定情報以外の設定情報と、前記印刷対象データとを受け付けると、前記特定の設定情報と前記特定の設定情報以外の設定情報とに基づき、前記印刷対象データの描画処理を行い、印刷装置で印刷可能なデータ形式である印刷データを生成し、該印刷データを前記画像処理装置に送信する第３の送信手段と、
前記第３の送信手段より送信された前記印刷データを受け付けると、該印刷データの印刷処理を行う印刷手段と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理装置、情報処理システム、及び情報処理方法に関する。
【背景技術】
【０００２】
Windows（登録商標）上で動作するプリンタドライバは、ＯＳ（Operating System）からプリンタドライバの仕組みとして提供されるDevmode構造体という領域を利用して印刷設定を管理している。Devmode構造体に保存された印刷設定情報は、Point&Print環境などにおいて、サーバとクライアント間で印刷設定を引き継ぐことができる。
【０００３】
一方、印刷設定時のDevmode構造体の情報（印刷設定情報）を、データファイルの一部として保存するアプリケーションが知られている。これにより、Devmode構造体が保存されたデータファイルを受け取ったユーザが印刷設定の変更を行わずにデータファイルの印刷を行った場合、このデータファイルを保存したユーザの印刷設定情報に従って印刷が行われる。したがって、ユーザ情報及び認証パスワードなどの機密情報がDevmode構造体に含まれている場合、印刷を行ったユーザは、データファイルを保存したユーザの機密情報を用いて印刷を行ったこととなり（なりすまし印刷）、セキュリティ上問題となる。
【０００４】
この点、特許文献１には、すべての印刷設定情報が特定アプリケーションのデータファイルに画一的に保存されてしまうことを回避して、ユーザの利便性／セキュリティを向上させることを目的とした技術が開示されている。この従来技術では、印刷設定情報にユーザ認証情報や認証パスワードなどの機密情報が含まれる場合、レジストリ又はファイルなどのDevmode構造体以外の領域に保存する。したがって、上記のなりすまし印刷の問題が解決される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術においては、例えば、Point&Print環境においてサーバサイドレンダリングが行われる場合、適切に印刷設定を引き継ぐことができないという問題がある。すなわち、クライアントのDevmode構造体に保存されている印刷設定情報はサーバ側に引き継ぐことができる一方で、レジストリ又はファイルなどのDevmode構造体以外の領域に保存された印刷設定情報はサーバ側に引き継ぐことができない。
【０００６】
本発明の一実施形態は、上記の点に鑑みなされたもので、クライアントからサーバに印刷設定情報を適切に引き継ぐことを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一実施形態において、印刷対象データの描画処理を行う印刷サーバとネットワークを介して接続された情報処理装置を、プリンタドライバによる印刷に関する設定情報を設定するための設定画面を表示させる表示手段、前記設定画面が所定のアプリケーションからの要求に基づき表示されたか否かを判定する判定手段、前記判定手段により前記設定画面が前記所定のアプリケーションからの要求に基づき表示されたと判定された場合、該設定画面において設定された設定情報のうち、特定の設定情報を所定の第１の印刷設定保存領域に保存させる一方、前記特定の設定情報以外の設定情報を所定の第２の印刷設定保存領域に保存させる設定情報保存手段、前記プリンタドライバに対する印刷対象データの印刷指示に応じて、前記所定の第１の印刷設定保存領域に保存されている前記特定の設定情報と前記所定の第２の印刷設定保存領域に保存されている前記特定の設定情報以外の設定情報とを、前記印刷対象データの描画処理を行う前記印刷サーバに送信する送信手段、として機能させることを特徴とする。
【発明の効果】
【０００８】
本発明の一実施形態によれば、クライアントからサーバに印刷設定情報を適切に引き継ぐことができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る印刷システムの一例の構成図である。
【図２】第１の実施形態に係るコンピュータの一例のハードウェア構成図である。
【図３】第１の実施形態に係るクライアント装置の一例の機能ブロック図である。
【図４】第１の実施形態に係る印刷サーバの一例の機能ブロック図である。
【図５】第１の実施形態に係るプリンタドライバの一例の機能ブロック図である。
【図６】第１の実施形態に係る処理の概略を説明するための図である。
【図７】第１の実施形態に係る設定情報保存処理の一例のフローチャートである。
【図８】印刷設定画面のタイトル一覧を説明するための図である。
【図９】第１の実施形態に係る印刷設定画面表示処理の一例のフローチャートである。
【図１０】第１の実施形態に係る印刷処理におけるＵＩ部の処理の一例のフローチャートである。
【図１１】第１の実施形態に係る印刷処理における描画部の処理の一例のフローチャートである。
【図１２】第２の実施形態に係るプリンタドライバの一例の機能ブロック図である。
【図１３】第２の実施形態に係る印刷処理におけるＵＩ部の処理の一例のフローチャートである。
【図１４】第３の実施形態に係るクライアント装置の一例の機能ブロック図である。
【図１５】第３の実施形態に係るプリンタドライバの一例の機能ブロック図である。
【図１６】第３の実施形態に係る機密情報保存処理の一例のフローチャートである。
【図１７】第３の実施形態に係る機密情報取得処理の一例のフローチャートである。
【発明を実施するための形態】
【００１０】
次に、本発明の実施の形態について、詳細に説明する。
【００１１】
［第１の実施形態］
＜システム構成＞
図１は、第１の実施形態に係る印刷システムの一例の構成図である。図１の印刷システム１は、クライアント装置１０と、印刷サーバ２０と、印刷装置３０とがネットワークＮ１に有線又は無線で接続されている。なお、本実施形態では、一例として、本発明を印刷システムに適用した場合について説明するが、本発明が適用される場面は印刷システムに限定されず、印刷システム以外の各種の情報処理システムに適用してもよい。
【００１２】
クライアント装置１０は、印刷システム１のユーザが操作するＰＣ（パーソナルコンピュータ）等の情報処理装置である。クライアント装置１０は、タブレット端末、スマートフォンや携帯電話、ＰＤＡなどの携帯情報端末等でもよい。クライアント装置１０には、印刷対象データに印刷指示を行うことができるアプリケーション（印刷アプリケーション）と、この印刷アプリケーションからの印刷指示に基づき印刷対象データの印刷を行うためのプリンタドライバとが搭載（インストール）されている。
【００１３】
ここで、印刷アプリケーションとは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）などである。すなわち、本実施形態における印刷アプリケーションは、このアプリケーションのデータファイル（印刷対象データ）内にDevmode構造体の情報が保存されるアプリケーションである。なお、印刷対象データとは、印刷アプリケーションが印刷指示を行うデータファイルである。
【００１４】
印刷サーバ２０は、クライアント装置１０から受け取った印刷対象データに基づき、印刷装置３０が印刷可能な所定のデータ形式の印刷データを生成する情報処理装置である。印刷サーバ２０には、このような印刷データを生成するためのプリンタドライバが搭載されている。なお、印刷サーバ２０にインストールされたプリンタドライバによって生成される印刷データの所定のデータ形式は、例えば、ＰＤＦ形式、ＸＰＳ（XML Paper Specification）形式、ＢＭＰ（Bit Map）形式などがある。
【００１５】
なお、上述したように、本実施形態の印刷システム１は、クライアント装置１０において印刷指示を行った印刷対象データは、印刷サーバ２０においてレンダリング処理（描画処理）が行われる。すなわち、本実施形態に係る印刷システム１は、サーバサイドレンダリングである。
【００１６】
印刷装置３０は、印刷サーバ２０から受け取った印刷データに基づき、印刷を行うプリンタなどの画像処理装置である。印刷装置３０は、プリント機能の他、コピー機能、スキャナ機能、ＦＡＸ機能など複数の機能を有するＭＦＰ（Multifunction Peripheral）などの複合機でもよい。
【００１７】
なお、図１に示すシステム構成は一例であり、クライアント装置１０や印刷装置３０は、それぞれ２台以上有する構成であってもよい。また、印刷サーバ２０と印刷装置３０とが同一の装置内に構成されていてもよい。
【００１８】
＜ハードウェア構成＞
第１の実施形態に係るクライアント装置１０及び印刷サーバ２０は、例えば図２に示すようなハードウェア構成のコンピュータ等により実現される。図２は、本実施形態に係るコンピュータの一例のハードウェア構成図である。図２に示すコンピュータ１００は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ（Random Access Memory）１０４、ＲＯＭ（Read Only Memory）１０５、ＣＰＵ（Central Processing Unit）１０６、通信Ｉ／Ｆ１０７、ＨＤＤ（Hard Disk Drive）１０８を有し、それぞれバスＢ１で相互に接続されている。
【００１９】
入力装置１０１は、キーボードやマウス、タッチパネルなどを含み、コンピュータ１００に各操作信号を入力するのに用いられる。表示装置１０２は、ＬＣＤ（Liquid Crystal Display）やＣＲＴ（Cathode Ray Tube）などを含み、コンピュータ１００による処理結果を表示する。なお、印刷サーバ２０の場合、入力装置１０１及び／又は表示装置１０２を有しない構成であってもよい。
【００２０】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａなどがある。記憶媒体１０３ａには、実施形態を実現するプログラムを格納することができる。コンピュータ１００は外部Ｉ／Ｆ１０３を介して、記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。
【００２１】
記録媒体１０３ａにはＵＳＢメモリ（Universal Serial Bus memory）、ＳＤメモリカード（SD Memory card）、ＤＶＤ（Digital Versatile Disk）、ＣＤ（Compact Disk）、フレキシブルディスクなどの記録媒体を用いることができる。
【００２２】
ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１０５には、コンピュータ１００の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ（Operating System）設定、及びネットワーク設定などのプログラムやデータが格納されている。
【００２３】
ＣＰＵ１０６は、ＲＯＭ１０５やＨＤＤ１０８などの記憶装置からプログラムやデータをＲＡＭ１０４上に読み出し、処理を実行することで、コンピュータ１００全体の制御や機能を実現する演算装置である。
【００２４】
通信Ｉ／Ｆ１０７は、ネットワークに接続するインタフェースである。これにより、コンピュータ１００は通信Ｉ／Ｆ１０７を介してデータ通信を行うことができる。なお、通信Ｉ／Ｆ１０７による通信は有線通信であっても無線通信であってもよい。
【００２５】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えば、コンピュータ１００全体を制御する基本ソフトウェアであるＯＳや、ＯＳ上において各種機能を提供するアプリケーションソフトウェアなどがある。ＨＤＤ１０８は格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢ（Data Base）により管理している。なお、ＨＤＤ１０８に代えて、例えばＳＳＤ（Solid State Drive）などであってもよい。
【００２６】
第１の実施形態に係るクライアント装置１０及び印刷サーバ２０は、例えば上記のハードウェア構成のコンピュータ１００上でプログラムを実行することにより、後述するような各種処理を実現できる。
【００２７】
＜ソフトウェア構成＞
次に、本実施形態に係る印刷システム１の機能ブロックについて説明する。
【００２８】
≪クライアント装置≫
第１の実施形態に係るクライアント装置１０は、例えば図３に示すような機能ブロックにより表すことができる。図３は、第１の実施形態に係るクライアント装置の一例の機能ブロック図である。
【００２９】
クライアント装置１０は、印刷アプリケーション１１と、プリンタドライバ１２と、通信部１３と、ＯＳ１４と、データファイル（印刷対象データ）１５と、機密情報記憶部１６とを有する。
【００３０】
印刷アプリケーション１１は、上述した通り、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌなどのデータファイル（印刷対象データ）１５の一部にDevmode構造体の情報が保存されるアプリケーションである。また、印刷アプリケーション１１は、データファイル（印刷対象データ）１５に対して印刷指示を行うことができるアプリケーションである。
【００３１】
プリンタドライバ１２は、印刷に関する設定情報の設定と、印刷アプリケーション１１からの印刷指示に応じてデータファイル（印刷対象データ）１５に基づく印刷データの生成とを行う。ただし、上述したように、本実施形態では、印刷データの生成は印刷サーバ２０に搭載されるプリンタドライバにて行う（サーバサイドレンダリング）。なお、印刷に関する設定情報とは、通常、Devmode構造体に保存される印刷設定情報である。以降、印刷に関する設定情報を、単に「設定情報」と表す。プリンタドライバ１２の詳細な機能ブロックは後述する。通信部１３は、印刷サーバ２０とのデータ通信を行う。
【００３２】
ＯＳ１４は、クライアント装置１０全体を制御する基本ソフトウェアである。ＯＳ１４は、Windows、UNIX（登録商標）、MacOS（登録商標）等が存在する。本実施形態では、一例としてクライアント装置１０のＯＳ１４はWindows系ＯＳであるとして説明する。なお、Windows系ＯＳには、WindowsNT、Windows98、Windows2000、Windows2000 Server、Windows2003 Server、Windows2008 Server、WindowsMe、WindowsXP、WindowsVista、Windows7、Windows8、及びこれ以降のバージョンのＯＳなどが含まれる。
【００３３】
データファイル（印刷対象データ）１５は、印刷アプリケーション１１の印刷指示に基づき印刷される電子データである。上述したように、データファイル（印刷対象データ）１５内にはDevmode構造体の情報が保存される。なお、以降では、データファイル（印刷対象データ）１５を、単に「印刷対象データ１５」と表す。
【００３４】
機密情報記憶部１６は、設定情報のうちの機密に関する設定情報を暗号化した情報を記憶する。機密情報記憶部１６は、Devmode構造体以外の記憶領域であり、例えば、ファイルやレジストリなどである。本実施形態では、機密情報記憶部１６は、印刷アプリケーション１１毎に存在するものとする。例えば、印刷アプリケーション１１１が利用する機密情報記憶部１６１と、印刷アプリケーション１１２が利用する機密情報記憶部１６２とは異なる記憶領域に確保されたレジストリやファイル等である。なお、機密に関する設定情報とは、例えば、クライアント装置１０のログインユーザを一意に識別するＩＤであるユーザ情報、及びユーザ情報がクライアント装置１０にログインするための認証パスワード等である。以降、機密に関する設定情報を、単に「機密情報」と表す。なお、機密情報は、特許請求の範囲に記載された特定の設定情報の一例である。
【００３５】
≪印刷サーバ≫
第１の実施形態に係る印刷サーバ２０は、例えば図４に示すような機能ブロックにより表すことができる。図４は、第１の実施形態に係る印刷サーバの一例の機能ブロック図である。
【００３６】
印刷サーバ２０は、プリンタドライバ２１と、通信部２２と、ＯＳ２３とを有する。
【００３７】
プリンタドライバ２１は、クライアント装置１０から受け取った印刷対象データ１５、設定情報、機密情報などに基づき印刷データの生成を行う。プリンタドライバ２１の詳細な機能ブロックは後述する。通信部２２は、クライアント装置１０及び印刷装置３０とのデータ通信を行う。
【００３８】
ＯＳ２３は、印刷サーバ２０全体を制御する基本ソフトウェアである。ＯＳ２３は、Windows、UNIX、MacOS等が存在する。本実施形態では、一例として印刷サーバ２０のＯＳ２３はWindows系ＯＳであるとして説明する。
【００３９】
≪プリンタドライバ≫
第１の実施形態に係るプリンタドライバ１２及びプリンタドライバ２１は、例えば図５に示すような機能ブロックにより表すことができる。図５は、第１の実施形態に係るプリンタドライバの一例の機能ブロック図である。
【００４０】
プリンタドライバ１２及びプリンタドライバ２１は、ＵＩ部２００と、描画部３００とを有する。ＵＩ部２００は、主に、設定情報を設定するための印刷設定画面の表示及び設定情報の保存、並びに描画部３００への描画要求を行い、クライアント装置１０において実行される。他方、描画部３００は、主に、印刷対象データに基づき印刷データの生成を行い、印刷サーバ２０において実行される。
【００４１】
ＵＩ部２００は、画面表示部２０１と、ユーザ情報取得部２０２と、暗号化／復号キー生成部２０３と、暗号化／復号部２０４と、機密情報判定部２０５と、機密情報送信部２０６と、設定画面判定部２０７と、設定情報管理部２０８と、設定情報記憶部２０９とを有する。また、描画部３００は、機密情報受信部３０１と、描画処理部３０２と、印刷データ送信部３０３とを有する。
【００４２】
画面表示部２０１は、ユーザからの指示に応じて設定情報の設定を行うための印刷設定画面を表示させる。
【００４３】
ユーザ情報取得部２０２は、ユーザ情報を取得する。このユーザ情報は、上述したように、例えば、クライアント装置１０のログインユーザを一意に識別するＩＤである。すなわち、例えば、クライアント装置１０に搭載されているＯＳ１４（Windows系ＯＳ）のログインユーザ名などである。
【００４４】
暗号化／復号キー生成部２０３は、ユーザ情報に基づき、機密情報を暗号化するための暗号化キーを生成する。また、暗号化／復号キー生成部２０３は、ユーザ情報に基づき、暗号化された機密情報を復号するための復号キーを生成する。なお、例えば、ユーザ情報そのものを暗号化キー及び復号キーとしてもよいし、プリンタドライバ１２のプリンタアイコン（論理プリンタ）を一意に示す識別情報を暗号化キー及び復号キーとしてもよい。また、復号キーと暗号化キーとは同一であってもよい（すなわち、対称鍵（共通鍵）であってもよい）。さらに、復号キーと暗号化キーとが同一である場合、暗号化／復号キー生成部２０３は、暗号化キーのみを生成するようにしてもよい。
【００４５】
暗号化／復号部２０４は、暗号化キーに基づき機密情報を暗号化する。また、暗号化／復号部２０４は、復号キーに基づき暗号化された機密情報を復号する。
【００４６】
機密情報判定部２０５は、設定情報のうちのいずれの設定情報が機密情報であるかを判定する。例えば、機密情報判定部２０５は、設定情報のうち、認証に関する設定情報（例えば、ユーザ情報及び認証パスワード等）を機密情報として判定する。
【００４７】
機密情報送信部２０６は、暗号化／復号部２０４により復号された機密情報を描画部３００に送信する。すなわち、本実施形態では、クライアント装置１０に搭載されているプリンタドライバ１２の機密情報送信部２０６は、暗号化／復号部２０４により復号された機密情報を印刷サーバ２０に搭載されたプリンタドライバ２１の描画部３００に送信する。
【００４８】
設定画面判定部２０７は、設定情報の設定を行うための印刷設定画面について、印刷アプリケーション１１から表示された印刷設定画面にて設定情報が設定されたのか、又はWindows系ＯＳのプリンタフォルダから表示された印刷設定画面にて設定情報が設定されたのかを判定する。これは、後述するように、印刷アプリケーション１１から表示された印刷設定画面にて設定された設定情報（機密情報は除く）は、印刷対象データ１５内のDevmode構造体に保存させる一方、Windows系ＯＳのプリンタフォルダから表示された印刷設定画面にて設定された設定情報はユーザ毎に管理されるDevmode構造体に保存させるためである。
【００４９】
設定情報管理部２０８は、ユーザにより印刷設定画面から設定された設定情報をDevmode構造体に保存する。また、設定情報管理部２０８は、所定の場合、ユーザにより設定された設定情報のうち機密情報を機密情報記憶部１６に保存する。
【００５０】
設定情報記憶部２０９は、設定情報を記憶する。設定情報記憶部２０９は、例えばDevmode構造体やPrintTicket等の印刷設定保存領域である。なお、以降では、一例として設定情報記憶部２０９は、Devmode構造体であるとする。
【００５１】
ここで、Devmode構造体はユーザ情報毎に管理されているため、設定情報記憶部２０９の一例としてのDevmode構造体は、以降、「ユーザのDevmode」又は「ユーザのDevmode構造体」と表す。一方、上述したような印刷対象データ１５内のDevmode構造体は、以降、「アプリのDevmode」又は「アプリのDevmode構造体」と表す。
【００５２】
機密情報受信部３０１は、機密情報送信部２０６から送信された機密情報を受信する。描画処理部３０２は、ＵＩ部２００から受け取った印刷対象データ１５に基づき印刷データを生成する。印刷データ送信部３０３は、描画処理部３０２により生成された印刷データをスプーラに送信する。スプーラに送信された印刷データは、通信部２２を介して印刷装置３０に送信され、印刷される。
【００５３】
＜処理の概略＞
次に、本実施形態に係る印刷システム１の処理の概略について説明する。図６は、第１の実施形態に係る処理の概略を説明するための図である。
【００５４】
まず、ユーザＡがクライアント装置１０にログインしているとする。そして、このユーザＡが印刷アプリケーション１１（アプリＡ）から印刷設定画面を表示させて、設定情報の変更を行う。すると、印刷設定画面において設定された設定情報のうち、機密情報以外の設定情報はアプリＡの印刷対象データ１５内のアプリのDevmode構造体に保存される（ステップＳ１）。一方、機密情報については、ユーザＡのユーザ情報に基づき暗号化キーが生成され、この生成された暗号化キーに基づき機密情報を暗号化する。そして、暗号化された機密情報は、機密情報記憶部１６に保存される（ステップＳ２）。
【００５５】
次に、ユーザＡが印刷対象データ１５の印刷指示を行うと、この印刷対象データ１５内のアプリのDevmode構造体の設定情報を取得する（ステップＳ３）。また、ユーザＡのユーザ情報に基づき復号キーが生成され、機密情報記憶部１６に保存されている暗号化された機密情報を復号して取得する（ステップＳ４）。
【００５６】
そして、印刷対象データ１５とアプリのDevmode構造体の設定情報とを印刷サーバ２０の描画部３００に送信する（ステップＳ５）。また、機密情報記憶部１６から取得した復号された機密情報を印刷サーバ２０の描画部３００に送信する（ステップＳ６）。
【００５７】
続いて、印刷サーバ２０のプリンタドライバ２１は、クライアント装置１０から送信された印刷対象データ１５と、設定情報と、機密情報とに基づき印刷データを生成し、この印刷データを印刷装置３０に送信する（ステップＳ７）。最後に、印刷装置３０は印刷サーバ２０から送信された印刷データを印刷する（ステップＳ８）。
【００５８】
以上により、印刷データが印刷装置３０において印刷される。このとき、クライアント装置１０の印刷アプリケーション１１において設定情報を設定する際に、印刷対象データ１５内のアプリのDevmode構造体には機密情報が保存されない。したがって、例えば、この印刷対象データ１５を他のユーザ等に渡した場合等においても、機密情報が当該他のユーザに利用されることがなく、なりすまし印刷等を防止することができる。
【００５９】
＜処理の詳細＞
次に、本実施形態に係る印刷システム１の処理の詳細について説明する。
【００６０】
≪設定情報保存処理≫
まず、ユーザが印刷設定画面から設定情報を設定し、この設定された設定情報を保存するための処理について説明する。図７は、第１の実施形態に係る設定情報保存処理の一例のフローチャートである。
【００６１】
ステップＳ７０１において、ユーザが印刷設定設定画面を表示させるための操作を行う。すると、プリンタドライバ１２の画面表示部２０１は、印刷設定画面を表示させる。その後、ユーザがこの印刷設定画面にて各種印刷設定に関する設定情報の設定を行い、印刷設定画面を閉じる。なお、このとき、ユーザは印刷アプリケーション１１から又はWindows系ＯＳのプリンタフォルダから印刷設定画面を表示させることができる。
【００６２】
ステップＳ７０２において、プリンタドライバ１２の設定画面判定部２０７は、上記ステップＳ７０１の印刷設定画面が印刷アプリケーション１１から表示されたものか、又はWindows系ＯＳのプリンタフォルダから表示されたものかを判定する。
【００６３】
設定画面判定部２０７は、印刷設定画面が印刷アプリケーション１１から表示されたものか、又はWindows系ＯＳのプリンタフォルダから表示されたものかについて、例えば、以下のような方法で判定することができる。
【００６４】
（１）印刷設定画面のタイトルに基づき判定する
印刷設定画面のタイトルの文字列は、WindowsAPIであるGetWindowText()関数を用いて取得することができる。印刷アプリケーション１１から印刷設定画面が表示された場合、この印刷設定画面のタイトルは、「（プリンタドライバ名）のプロパティ」である。
【００６５】
他方、Windows系ＯＳのプリンタフォルダから表示された場合、この印刷設定画面のタイトルは、プリンタドライバ名と、Windows系ＯＳのバージョン毎に異なる図８で示す文字列とを組み合わせたものである。例えば、WindowsVistaの場合、印刷設定画面のタイトルは、「（プリンタドライバ名）印刷設定」や「（プリンタドライバ名）Printing Preferences」等と表示される。したがって、図８に示すテーブルを保持しておき、GetWindowText（）関数で取得された文字列と図８に示すテーブルに定義された文字列とを比較することで、印刷アプリケーション１１から表示されたものか又はプリンタフォルダから表示されたものかを判定することができる。
【００６６】
（２）印刷設定画面が表示される際に呼ばれるフラグの値に基づき判定する
WindowsAPIであるDrvDocumentPropertySheets()関数に渡されるDOCUMENTPROPERTYHEADER構造体のfmodeフラグの値は、印刷アプリケーション１１から印刷設定画面が表示された場合とプリンタフォルダから印刷設定画面が表示された場合とで異なる。したがって、このfmodeフラグの値を参照することで、印刷アプリケーション１１から表示されたものか又はプリンタフォルダから表示されたものかを判定することができる。
【００６７】
ステップＳ７０３において、上記のステップＳ７０２における設定画面判定部２０７による判定結果に基づき、ステップＳ７０４又はステップＳ７０５に進む。すなわち、設定画面判定部２０７による判定結果が、印刷設定画面が印刷アプリケーション１１から表示されたものである場合、ステップＳ７０５に進む一方、プリンタフォルダから表示されたものである場合、ステップＳ７０４に進む。
【００６８】
ステップＳ７０４において、印刷設定画面がWindows系ＯＳのプリンタフォルダから表示されたものである場合、設定情報管理部２０８は、この印刷設定画面において設定された設定情報を設定情報記憶部２０９に保存する。すなわち、設定情報管理部２０８は、印刷設定画面において設定された設定情報をユーザのDevmodeに保存する。ユーザのDevmodeは、上述したように、ユーザ情報毎に管理されている。したがって、換言すれば、ここで保存された設定情報は、ユーザのデフォルト（標準）の設定情報となる。
【００６９】
ステップＳ７０５において、印刷設定画面が印刷アプリケーション１１から表示されたものである場合、機密情報判定部２０５は、この印刷設定画面から設定された設定情報のうちいずれの設定情報が機密情報であるか判定する。そして、機密情報判定部２０５により機密情報であると判定された設定情報以外の設定情報について、設定情報管理部２０８は、アプリのDevmodeに保存する。すなわち、設定情報管理部２０８は、機密情報以外の設定情報を、印刷対象データ１５内のアプリのDevmodeに保存する。
【００７０】
ステップＳ７０６において、上記のステップＳ７０５において、機密情報判定部２０５により機密情報であると判定された設定情報について、暗号化／復号キー生成部２０３により生成された暗号化キーを用いて暗号化／復号部２０４は、暗号化を行う。そして、設定情報管理部２０８は、暗号化された機密情報を機密情報記憶部１６に保存する。これにより、例えばユーザ情報及び認証パスワード等の機密情報が暗号化されて、アプリのDevmodeとは異なる所定の記憶領域に記憶される。
【００７１】
ここで、暗号化／復号キー生成部２０３は、ユーザ情報取得部２０２により取得されたクライアント装置１０のログインユーザのユーザ情報に基づき暗号化キーを生成する。この生成される暗号化キーは、例えば、ユーザ情報を入力として所定のハッシュ関数により演算したハッシュ値である。なお、例えば、ユーザ情報そのものを暗号化キーとしてもよいし、プリンタドライバ１２のプリンタアイコン（論理プリンタ）を一意に示す識別情報を暗号化キーとしてもよい。
【００７２】
ステップＳ７０７において、設定情報管理部２０８は、印刷対象データ１５内のアプリのDevmodeに、機密情報を機密情報記憶部１６に保存したことを示す情報を書き込む。例えば、設定情報管理部２０８は、印刷対象データ１５内のアプリのDevmodeにおけるユーザ情報及び認証パスワードが保存されるそれぞれのメンバ変数に、所定の情報を格納する。これにより、後述する処理において機密情報がアプリのDevmodeとは異なる記憶領域に保存されていることが判定できるようになる。
【００７３】
以上により、本実施形態に係るクライアント装置１０は、印刷アプリケーション１１から設定された設定情報のうちの機密情報について、印刷対象データ１５内のアプリのDevmodeとは異なる記憶領域に保存させることができる。したがって、印刷対象データ１５内には、機密情報が保存されないため、この印刷対象データ１５を他のユーザが入手した場合においても、なりすまし印刷等が防止される。
【００７４】
≪印刷設定画面表示処理≫
次に、ユーザが印刷設定画面を表示させる場合の処理について説明する。図９は、第１の実施形態に係る印刷設定画面表示処理の一例のフローチャートである。
【００７５】
ステップＳ９０１において、ユーザが印刷設定設定画面を表示させる操作を行う。すると、プリンタドライバ１２の画面表示部２０１は、印刷設定画面を表示させる。なお、このとき、ユーザは印刷アプリケーション１１から又はWindows系ＯＳのプリンタフォルダから印刷設定画面を表示させることができる。
【００７６】
ステップＳ９０２において、設定情報管理部２０８は、所定のDevmode構造体から設定情報取得する。つまり、ユーザが印刷設定画面を印刷アプリケーション１１から表示させる操作を行った場合、設定情報管理部２０８は、印刷対象データ１５内のアプリのDevmodeから設定情報を取得する。他方、ユーザが印刷設定画面をWindows系ＯＳのプリンタフォルダから表示させる場合、設定情報管理部２０８は、ユーザのDevmodeから設定情報を取得する。なお、上述したように、ユーザのDevmodeには機密情報を含む設定情報が暗号化されずに保存されている。
【００７７】
ステップＳ９０３において、設定情報管理部２０８は、上記のステップＳ９０２において取得された設定情報について、機密情報を機密情報記憶部１６に保存したことを示す情報が含まれるか否かを判定する。当該情報が含まれる場合、ステップＳ９０４に進み、含まれない場合、ステップＳ９０５に進む。すなわち、ユーザが印刷設定画面を印刷アプリケーション１１から表示させる操作を行った場合、ステップＳ９０４に進み、プリンタフォルダから表示させる操作を行った場合、ステップＳ９０５に進む。
【００７８】
ステップＳ９０４において、設定情報管理部２０８は、機密情報記憶部１６から暗号化されている機密情報を取得する。そして、暗号化／復号キー生成部２０３により生成された復号キーを用いて暗号化／復号部２０４は、復号を行う。
【００７９】
ここで、暗号化／復号キー生成部２０３は、ユーザ情報取得部２０２により取得されたクライアント装置１０のログインユーザのユーザ情報に基づき復号キーを生成する。この生成される暗号化キーは、例えば、ユーザ情報を入力として所定のハッシュ関数により演算したハッシュ値である。また、例えば、ユーザ情報そのものを復号キーとしてもよいし、プリンタドライバ１２のプリンタアイコン（論理プリンタ）を一意に示す識別情報を復号キーとしてもよい。なお、復号キーは、暗号化キーと同一であってもよい。
【００８０】
ステップＳ９０５において、画面表示部２０１は、印刷設定画面を表示させる。すなわち、ユーザが印刷アプリケーション１１から印刷設定画面を表示させる操作を行った場合、アプリのDevmodeから取得された設定情報と、復号された機密情報とに基づき印刷設定画面を表示させる。他方、ユーザがWindows系ＯＳのプリンタフォルダから印刷設定画面を表示させる操作を行った場合、ユーザのDevmodeから取得された設定情報に基づき印刷設定画面を表示させる。これにより、印刷設定画面には、印刷対象データ１５に設定されている設定情報又はログインユーザのデフォルト（標準）の設定情報が表示される。
【００８１】
≪印刷処理におけるＵＩ部の処理≫
次に、印刷対象データの印刷を行うための印刷処理について説明する。まず、クライアント装置１０に搭載されたプリンタドライバ１２のＵＩ部２００の処理について説明する。図１０は、第１の実施形態に係る印刷処理におけるＵＩ部の処理の一例のフローチャートである。
【００８２】
ステップＳ１００１において、印刷アプリケーション１１から印刷対象データ１５の印刷指示を行い、印刷の実行を開始させる。
【００８３】
ステップＳ１００２において、設定情報管理部２０８は、印刷対象データ１５内のアプリのDevmodeから設定情報を取得する。上述したように、ここで取得された設定情報には機密情報が含まれない。
【００８４】
なお、ステップＳ１００１において、例えば、印刷対象データ内にアプリのDevmodeが保存されていない印刷対象データの印刷指示を行った場合、設定情報管理部２０８は、設定情報記憶部２０９（ユーザのDevmode）から設定情報を取得する。換言すれば、印刷対象データ内にアプリのDevmodeが保存されている場合、アプリのDevmodeに保存されている設定情報が優先的に適用される一方、印刷対象データ内にアプリのDevmodeが保存されていない場合、ユーザのDevmodeに保存されている設定情報が適用される。
【００８５】
ステップＳ１００３において、設定情報管理部２０８は、上記のステップＳ１００２において取得された設定情報について、機密情報を機密情報記憶部１６に保存したことを示す情報が含まれるか否かを判定する。当該情報が含まれる場合、ステップＳ１００４に進み、含まれない場合、ステップＳ１００５に進む。すなわち、アプリのDevmodeが保存されている印刷対象データ１５の印刷指示を行った場合、ステップＳ１００４に進み、アプリのDevmodeが保存されていない印刷対象データの印刷指示を行った場合、ステップＳ９０５に進む。本実施形態に係る印刷対象データ１５内にはアプリのDevmodeが保存されているためステップＳ１００４に進む。
【００８６】
ステップＳ１００４において、設定情報管理部２０８は、機密情報記憶部１６から暗号化されている機密情報を取得する。そして、暗号化／復号キー生成部２０３により生成された復号キーを用いて暗号化／復号部２０４は、復号を行う。
【００８７】
ここで、暗号化／復号キー生成部２０３は、ユーザ情報取得部２０２により取得されたクライアント装置１０のログインユーザのユーザ情報に基づき復号キーを生成する。この生成される暗号化キーは、例えば、ユーザ情報を入力として所定のハッシュ関数により演算したハッシュ値である。また、例えば、ユーザ情報そのものを復号キーとしてもよい。なお、復号キーは、暗号化キーと同一であってもよい。
【００８８】
なお、ステップＳ１００４において、機密情報記憶部１６から取得された暗号化された機密情報の復号は、印刷サーバ２０において行ってもよい。例えば、クライアント装置１０で生成した復号キーを印刷サーバ２０に送信して、印刷サーバ２０においてこの復号キーを用いて暗号化された機密情報を復号してもよい。また、例えば、クライアント装置１０で生成した復号キーを、クライアント装置１０と印刷サーバ２０との間で予め決められた他の暗号化キーで暗号して、この暗号化された復号キーを印刷サーバ２０に送信してもよい。この場合、印刷サーバ２０は、他の暗号化キーに対応する他の復号キーで、受信た暗号化された復号キーを復号し、この復号された復号キーを用いて暗号化された機密情報を復号する。
【００８９】
ステップＳ１００５において、クライアント装置１０のプリンタドライバ１２は、印刷対象データ１５と、アプリのDevmodeから取得された設定情報とを印刷サーバ２０のプリンタドライバ２１に送信する。これは、Windows系ＯＳの機能によりクライアント装置１０の通信部１３が、印刷対象データ１５と、アプリのDevmodeから取得された設定情報とを印刷サーバ２０に送信する。
【００９０】
また、プリンタドライバ１２の機密情報送信部２０６は、上記のステップＳ１００４で復号された機密情報を、印刷サーバ２０のプリンタドライバ２１に送信する。これは、例えば、Language Monitorを利用するか、又はEscape()関数を用いることで、実現することができる。なお、例えば、印刷ジョブ毎に機密情報が異なる場合、DrvDocumentEvent()関数においてジョブＩＤを取得して、ジョブＩＤと、復号された機密情報とを印刷サーバ２０に送信すればよい。
【００９１】
なお、ステップＳ１００５において、アプリのDevmodeが保存されていない印刷対象データの印刷指示を行った場合、機密情報はユーザのDevmodeから取得した設定情報に含まれるため、プリンタドライバ１２は、印刷対象データ及び設定情報を印刷サーバ２０のプリンタドライバ２１に送信すればよい。
【００９２】
以上により、本実施形態に係るクライアント装置１０は、アプリのDevmodeが保存されている印刷対象データ１５に印刷指示を行うと、印刷サーバ２０に対して、印刷対象データ１５と設定情報に加えて、機密情報を送信することができる。したがって、後述する処理において印刷サーバ２０で印刷データの生成を行い、印刷を行うことができる。
【００９３】
また、機密情報記憶部１６から取得した暗号化された機密情報を復号する際、ユーザ情報に基づき復号キーを生成することで、他のユーザはこの機密情報を復号することができない。したがって、アプリのDevmodeが保存されている印刷対象データ１５について、他のユーザによるなりすまし印刷を防止することできる。
【００９４】
≪印刷処理における描画部の処理≫
次に、印刷サーバ２０に搭載されたプリンタドライバ２１の描画部３００の処理について説明する。図１１は、第１の実施形態に係る印刷処理における描画部の処理の一例のフローチャートである。
【００９５】
ステップＳ１１０１において、印刷サーバ２０のプリンタドライバ２１は、クライアント装置１０のプリンタドライバ１２のＵＩ部２００からデータを受信する。本実施形態では、印刷サーバ２０のプリンタドライバ２１は、印刷対象データ１５と、アプリのDevmodeから取得した設定情報と、復号された機密情報とをクライアント装置１０のプリンタドライバ１２のＵＩ部２００から受信する。なお、上記のステップＳ１００１においてユーザにより、アプリのDevmodeが保存されていない印刷対象データに印刷指示が行われた場合、印刷サーバ２０のプリンタドライバ２１は、この印刷対象データと、ユーザのDevmodeから取得した設定情報とをクライアント装置１０のプリンタドライバ１２のＵＩ部２００から受信する。
【００９６】
ステップＳ１１０２において、機密情報受信部３０１は、クライアント装置１０のプリンタドライバ１２から機密情報を受信したか否かを判定する。機密情報を受信した場合、ステップＳ１１０３に進み、機密情報を受信していない場合、ステップＳ１１０４に進む。これは、例えば、クライアント装置１０のプリンタドライバ１２のＵＩ部２００からEscape()関数を用いて復号された機密情報が送信された場合、印刷サーバ２０のプリンタドライバ２１の描画部３００では、DrvEscape()関数が呼ばれるため、この関数の処理において復号された機密情報を取得することができる。他方、Language Monitorを利用して復号された機密情報が送信された場合、プリンタドライバ２１の描画部３００でも同様にLanguage Monitorを呼ぶことで復号された機密情報を取得することができる。なお、本実施形態では、復号された機密情報がクライアント装置１０の機密情報送信部２０６から送信されるため、機密情報受信部３０１は、機密情報を受信する。
【００９７】
ステップＳ１１０３において、描画処理部３０２は、アプリのDevmodeから取得した設定情報について、機密情報受信部３０１が受信した機密情報に基づき更新する。描画処理部３０２は、例えば、アプリのDevmodeにおけるユーザ情報及び認証パスワードがそれぞれ設定されるメンバ変数の情報を、それぞれ機密情報に含まれるユーザ情報及び認証パスワードで更新する。
【００９８】
ステップＳ１１０４において、描画処理部３０２は、上記のステップＳ１１０３で更新された設定情報に基づき描画処理を行い、印刷対象データ１５から印刷データを生成する。そして、印刷データ送信部３０３は、生成された印刷データをスプーラに送信する。スプーラに送信された印刷データは、印刷サーバ２０の通信部２２により、印刷装置３０に送信され、これによって印刷装置３０において印刷データが印刷される。なお、上記のステップＳ１１０２において機密情報受信部３０１が機密情報を受信しなかった場合、描画処理部３０２は、クライアント装置１０のプリンタドライバ１２から送信された印刷対象データと設定情報とに基づき描画処理を行う。
【００９９】
以上により、本実施形態に係る印刷サーバ２０は、クライアント装置１０から受信した印刷対象データ、設定情報、及び機密情報に基づき、印刷処理を行うことができる。換言すれば、本実施形態に係る印刷システム１は、クライアント装置１０に保存されている機密情報を印刷サーバ２０に送信することで、印刷サーバ２０で描画処理を行うサーバサイドレンダリングにおいてもなりすまし印刷を防止しつつ、設定情報を適切にＵＩ部２００から描画部３００に渡すことができる。
【０１００】
［第２の実施形態］
次に、第２の実施形態に係る印刷システム１について説明する。第２の実施形態係る印刷システム１では、クライアント装置１０においてユーザが印刷対象データの印刷指示を行った際に、機密情報が取得できない場合等にポップアップ画面を表示させる。これにより、不正な印刷処理を防止することができる。なお、第２の実施形態において、第１の実施形態と実質的に同一の機能を有する又は同一の処理を行う箇所については、同一の符号を付し、その説明を省略する。
【０１０１】
＜ソフトウェア構成＞
次に、第２の実施形態に係る印刷システム１の機能ブロックについて説明する。第２の実施形態に係る印刷システム１の機能ブロックは、プリンタドライバ１２及び２１の構成が第１の実施形態と異なる。図１２は、第２の実施形態に係るプリンタドライバの一例の機能ブロック図である。
【０１０２】
ポップアップ画面表示判定部２１０は、設定情報管理部２０８により、取得された設定情報に機密情報を機密情報記憶部１６に保存したことを示す情報が含まれないと判定された場合、ポップアップ画面を表示させるか否かを判定する。表示されるポップアップ画面は、例えば、機密情報であるユーザ情報及び認証パスワードをユーザに入力させるための画面やユーザが印刷指示を行った印刷対象データの印刷を行うことができないことを示す画面などである。なお、ポップアップ画面とは、ポップアップ表示されるＧＵＩ画面のことである。
【０１０３】
ポップアップ画面表示部２１１は、ポップアップ画面表示判定部２１０によりポップアップ画面を表示させると判定された場合、ポップアップ画面を表示させる。
【０１０４】
＜処理の詳細＞
次に、第２の実施形態に係る印刷システム１の処理の詳細について説明する。第２の実施形態では、印刷処理におけるＵＩ部の処理が第１の実施形態と異なる。図１３は、第２の実施形態に係る印刷処理におけるＵＩ部の処理の一例のフローチャートである。
【０１０５】
ステップＳ１３０１において、設定情報管理部２０８により、取得された設定情報に機密情報を機密情報記憶部１６に保存したことを示す情報が含まれないと判定された場合、ポップアップ画面を表示させるか否かを判定する。
【０１０６】
ここで、ポップアップ画面表示部２１１は、例えば、ステップＳ１００２において取得された設定情報に含まれるユーザ情報及び認証パスワード等の機密情報が設定されていない（空）である場合、ポップアップ画面を表示させると判定する。また、ポップアップ画面表示部２１１は、例えば、ステップＳ１００２において取得された設定情報に含まれるユーザ情報及び認証パスワード等の機密情報に誤った情報が設定されている場合、ポップアップ画面を表示させると判定してもよい。すなわち、ポップアップ画面表示部２１１は、取得された設定情報をそのまま印刷サーバ２０に送信した場合にエラーとなる又は意図しない印刷がされてしまうような場合、ポップアップ画面を表示させると判定する。
【０１０７】
ステップＳ１３０２において、ポップアップ画面表示部２１１は、ポップアップ画面表示判定部２１０によりポップアップ画面を表示させると判定された場合、ポップアップ画面を表示させる。このようなポップアップ画面の表示は、例えば、DrvDocumentEvent関数において実現することができる。
【０１０８】
ここで、表示されるポップアップ画面は、例えば、機密情報であるユーザ情報及び認証パスワードを入力させるための画面やユーザが印刷指示を行った印刷対象データの印刷を行うことができないことを示す画面などである。なお、ユーザ情報及び認証パスワードをユーザに入力させるための画面がポップアップ表示された場合において、ユーザ情報及び認証パスワードが入力された場合、このユーザ情報及び認証情報は、機密情報としてステップＳ１００５において印刷サーバ２０に送信される。
【０１０９】
以上により、本実施形態に係るクライアント装置１０では、ユーザが印刷指示を行った際に機密情報が取得されない所定の場合にポップアップ画面を表示させる。これにより、機密情報が設定されない印刷や不当な機密情報が設定された印刷等を防止することができる。
【０１１０】
［第３の実施形態］
次に、第３の実施形態に係る印刷システム１について説明する。第１の実施形態及び第２の実施形態においては、機密情報記憶部１６は、印刷アプリケーション１１毎に存在していた。したがって、ある印刷アプリケーション１１の印刷対象データ１５１の機密情報を機密情報記憶部１６に保存した後、同一の印刷アプリケーション１１の印刷対象データ１５２の機密情報を機密情報記憶部１６に保存すると、前に保存した機密情報が上書きされてしまう。このような事態を回避するため、第３の実施形態では、印刷ジョブ毎（すなわち、印刷対象データ１５毎）に、機密情報が記憶される。また、クライアント装置１０に搭載されている印刷アプリケーション１１すべてに共通に用いる機密情報も記憶される。これにより、ユーザが自身の利用状況に応じて、機密情報をジョブ毎に保存するのか、アプリ毎に保存するのか、又は全アプリ共通に利用されるように保存するのかを選択することができる。なお、第３の実施形態において、第２の実施形態と実質的に同一の機能を有する又は同一の処理を行う箇所については、同一の符号を付し、その説明を省略する。
【０１１１】
＜ソフトウェア構成＞
次に、第３の実施形態に係る印刷システム１の機能ブロックについて説明する。第３の実施形態に係る印刷システム１の機能ブロックは、クライアント装置１０、プリンタドライバ１２及び２１の構成が第２の実施形態と異なる。
【０１１２】
≪クライアント装置≫
第３の実施形態に係るクライアント装置１０は、例えば図１４に示すような機能ブロックにより表すことができる。図１４は、第３の実施形態に係るクライアント装置の一例の機能ブロック図である。第３の実施形態に係るクライアント装置１０は、機密情報保存単位情報１７と、ジョブ毎の機密情報記憶部１８と、アプリ共通の機密情報記憶部１９とを有する点が第２の実施形態と異なる。なお、アプリ毎の機能情報記憶部１６は、第１及び第２の実施形態における機能情報記憶部１６と同様の機能を有する。
【０１１３】
機密情報保存単位情報１７は、機密情報の保存単位に関する情報である。すなわち、機密情報を印刷ジョブ毎に保存するか、印刷アプリケーション１１毎に保存するか、又は全アプリケーション共通で保存するかを示す情報である。この情報は、例えば、プリンタドライバの印刷設定画面においてユーザが選択及び変更することができる。
【０１１４】
ジョブ毎の機密情報記憶部１８は、印刷ジョブ毎の機密情報を保存する。すなわち、印刷対象データ１５毎に機密情報を保存する。例えば、印刷対象データ１５Ａを印刷する際の機密情報が保存されるジョブ毎の機密情報記憶部１８Ａと、印刷対象データ１５Ｂを印刷する際の機密情報が保存されるジョブ毎の機密情報記憶部１８Ｂとは異なる記憶領域に確保されたレジストリ又はファイル等である。なお、例えば、ある印刷対象データ１５に対して、異なる印刷ジョブが２以上存在する場合、この異なる印刷ジョブ毎に機密情報がジョブ毎の機密情報記憶部１８に保存されるようにしてもよい。
【０１１５】
アプリ共通の機密情報記憶部１９は、全アプリケーション共通の機密情報を保存する。
【０１１６】
≪プリンタドライバ≫
第３の実施形態に係るプリンタドライバ１２及び２１は、例えば図１５に示すような機能ブロックにより表すことができる。図１５は、第３の実施形態に係るプリンタドライバの一例の機能ブロック図である。第３の実施形態に係るプリンタドライバ１２及び２１は、機密情報保存単位判定部２１２を有する点が第２の実施形態と異なる。
【０１１７】
機密情報保存単位判定部２１２は、機密情報保存単位情報１７を参照し、機密情報が印刷ジョブ毎、印刷アプリケーション１１毎、全アプリケーション共通のいずれで保存されるかを判定する。
【０１１８】
＜処理の詳細＞
次に、第３の実施形態に係る印刷システム１の処理の詳細について説明する。
【０１１９】
≪機密情報保存処理≫
まず、ジョブ毎の機密情報記憶部１８、アプリ毎の機密情報記憶部１６、又はアプリ共通の機密情報記憶部１９のいずれかに機密情報を保存する処理について説明する。第３の実施形態においては、図７を用いて説明した設定情報保存処理のステップＳ７０６の処理を、図１６を用いて説明する機密情報保存処理に置き換えるものとする。図１６は、第３の実施形態に係る機密情報保存処理の一例のフローチャートである。
【０１２０】
ステップＳ１６０１において、機密情報保存単位判定部２１２は、機密情報保存単位情報１７が、機密情報を印刷ジョブ毎に保存するか、印刷アプリケーション１１毎に保存するか、又は全アプリケーション共通で保存するかのいずれを示す情報であるかを判定する。
【０１２１】
ステップＳ１６０２において、機密情報保存単位判定部２１２により機密情報保存単位情報１７は印刷ジョブ毎に機密情報を保存することを示す情報であると判定された場合、ステップＳ１６０３に進む一方、他の判定結果である場合、ステップＳ１６０４に進む。
【０１２２】
ステップＳ１６０３において、機密情報判定部２０５により機密情報であると判定された設定情報（機密情報）について、暗号化／復号キー生成部２０３により生成された暗号化キーを用いて暗号化／復号部２０４は、暗号化を行う。そして、設定情報管理部２０８は、暗号化された機密情報をジョブ毎の機密情報記憶部１８に保存する。これにより、機密情報は、印刷対象データ１５毎に異なる記憶領域に保存される。なお、このとき、ジョブ毎の機密情報記憶部１８には、機密情報と併せて、該当の印刷対象データ１５を識別する情報（例えば、ファイル名など）も保存する。
【０１２３】
ステップＳ１６０４において、機密情報保存単位判定部２１２により機密情報保存単位情報１７は印刷アプリケーション１１毎に機密情報を保存することを示す情報であると判定された場合、ステップＳ１６０５に進む一方、他の判定結果である場合、ステップＳ１６０６に進む。
【０１２４】
ステップＳ１６０５において、機密情報判定部２０５により機密情報であると判定された設定情報（機密情報）について、暗号化／復号キー生成部２０３により生成された暗号化キーを用いて暗号化／復号部２０４は、暗号化を行う。そして、設定情報管理部２０８は、暗号化された機密情報をアプリ毎の機密情報記憶部１６に保存する。なお、このとき、アプリ毎の機密情報記憶部１６には、機密情報と併せて、該当の印刷アプリケーション１１を占め別する情報（例えば、アプリケーション名など）も保存する。
【０１２５】
ステップＳ１６０６において、機密情報判定部２０５により機密情報であると判定された設定情報（機密情報）について、暗号化／復号キー生成部２０３により生成された暗号化キーを用いて暗号化／復号部２０４は、暗号化を行う。そして、設定情報管理部２０８は、暗号化された機密情報を全アプリ共通の機密情報記憶部１９に保存する。これにより、クライアント装置１０に搭載されているすべての印刷アプリケーション１１が印刷指示を行う際に利用することができる機密情報が保存される。
【０１２６】
≪機密情報取得処理≫
次に、ジョブ毎の機密情報記憶部１８、アプリ毎の機密情報記憶部１６、又はアプリ共通の機密情報記憶部１９のいずれかに保存されている機密情報を取得する処理について説明する。第３の実施形態においては、図９を用いて説明したステップＳ９０４の処理並びに図１０及び図１３を用いて説明したステップＳ１００４処理を、図１７を用いて説明する機密情報取得処理に置き換えるものとする。図１７は、第３の実施形態に係る機密情報取得処理の一例のフローチャートである。
【０１２７】
ステップＳ１７０１において、設定情報管理部２０８は、ユーザが印刷アプリケーション１１から印刷指示を行った印刷対象データ１５の機密情報がジョブ毎の機密情報記憶部１８に保存されているか否かを判定する。保存されている場合、ステップＳ１７０２に進み、保存されていない場合、ステップＳ１７０３に進む。
【０１２８】
ステップＳ１７０２において、ユーザが印刷アプリケーション１１から印刷指示を行った印刷対象データ１５の機密情報がジョブ毎の機密情報記憶部１８に保存されている場合、設定情報管理部２０８は、この機密情報を取得する。そして、暗号化／復号キー生成部２０３により生成された復号キーを用いて暗号化／復号部２０４は、取得した暗号化されている機密情報の復号を行う。なお、ジョブ毎の機密情報記憶部１８から機密情報を取得した場合、この機密情報をジョブ毎の機密情報記憶部１８から削除してもよい。
【０１２９】
ステップＳ１７０３において、設定情報管理部２０８は、ユーザが印刷対象データ１５に対して印刷指示を行った印刷アプリケーション１１の機密情報がアプリ毎の機密情報記憶部１６に保存されているか否かを判定する。保存されている場合、ステップＳ１７０４に進み、保存されていない場合、ステップＳ１７０５に進む。
【０１３０】
ステップＳ１７０４において、ユーザが印刷対象データ１５に対して印刷指示を行った印刷アプリケーション１１の機密情報がアプリ毎の機密情報記憶部１６に保存されている場合、設定情報管理部２０８は、この機密情報を取得する。そして、暗号化／復号キー生成部２０３により生成された復号キーを用いて暗号化／復号部２０４は、取得した暗号化されている機密情報の復号を行う。
【０１３１】
ステップＳ１７０５において、設定情報管理部２０８は、機密情報がアプリ共通の機密情報記憶部１９に保存されているか否かを判定する。保存されている場合、ステップＳ１７０６に進み、保存されていない場合、ステップＳ１７０７に進む。
【０１３２】
ステップＳ１７０６において、機密情報がアプリ共通の機密情報記憶部１９に保存されている場合、設定情報管理部２０８は、この機密情報を取得する。そして、暗号化／復号キー生成部２０３により生成された復号キーを用いて暗号化／復号部２０４は、取得した暗号化されている機密情報の復号を行う。
【０１３３】
ステップＳ１７０７において、設定情報管理部２０８は、設定情報記憶部２０９（ユーザのDevmode）に保存されている設定情報を取得する。
【０１３４】
ステップＳ１７０８において、機密情報判定部２０５は、ユーザのDevmodeから取得した設定情報について、機密情報が含まれているか否かを判定する。機密情報が含まれている場合、ステップＳ１７０９に進み、含まれていない場合、ステップＳ１７１０に進む。
【０１３５】
ステップＳ１７０９において、機密情報判定部２０５は、ユーザのDevmodeから取得した設定情報に含まれている機密情報を取得する。
【０１３６】
ステップＳ１７１０において、設定情報管理部２０８は、例えばＮＵＬＬ値が設定された機密情報を取得する。したがって、例えば、図９の印刷設定画面表示処理においては機密情報を設定する項目（ユーザ情報及び認証パスワード等）は、ブランクとして表示される。また、例えば、図１０及び図１３の印刷処理におけるＵＩ部では、機密情報送信部２０６は、ＮＵＬＬ値が設定された機密情報を印刷サーバ２０に送信する。なお、この場合、例えば、ポップアップ画面表示部２１１は、機密情報（ユーザ情報及びパスワード等）をユーザに入力させるためのＧＵＩ画面を表示させてもよい。
【０１３７】
以上により、本実施形態に係るクライアント装置１０は、機密情報保存単位情報１７に応じて、機密情報を取得する。印刷対象データ１５毎に設定された機密情報、印刷アプリケーション１１毎に設定された機密情報などを適用した印刷を行うことができる。
【０１３８】
＜まとめ＞
以上で説明した印刷システム１では、印刷アプリケーション１１のデータファイル（印刷対象データ）１５の一部として保存されたDevmodeには、ユーザ情報や認証パスワード等の機密情報が保存されるのを防止することができる。他方、機密情報は、ファイルやレジストリ等のDevmode以外の記憶領域に暗号化して保存し、正当なユーザのみがこれを復号することができるため、機密情報が他のユーザに不正に利用されることを防止することができる。また、印刷処理においては、機密情報がプリンタドライバのＵＩ部から描画部に送信されるため、例えば、サーバサイドレンダリングのような、ＵＩ部と描画部とが異なる装置上で実現される場合においても機密情報を含む印刷設定情報が適切にＵＩ部から描画部に渡される。これにより、ＵＩ部と描画部とが異なる装置上で実現される構成においても、なりすまし印刷等を防止することができる。
【０１３９】
なお、画面表示部２０１は、表示手段の一例である。設定画面判定部２０７は、判定手段の一例である。設定情報管理部２０８は、設定情報保存手段の一例である。機密情報送信部２０６及び通信部１３は、送信手段の一例である。暗号化／復号部２０４は、暗号化／復号手段の一例である。
【０１４０】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１４１】
１      印刷システム
１０    クライアント装置
１１    印刷アプリケーション
１２    プリンタドライバ
１３    通信部
１４    ＯＳ
１５    データファイル（印刷対象データ）
１６    機密情報記憶部
２０    印刷サーバ
２１    プリンタドライバ
２２    通信部
２３    ＯＳ
３０    印刷装置
２００  ＵＩ部
２０１  画面表示部
２０２  ユーザ情報取得部
２０３  暗号化／復号キー生成部
２０４  暗号化／復号部
２０５  機密情報判定部
２０６  機密情報送信部
２０７  設定画面判定部
２０８  設定情報管理部
２０９  設定情報記憶部
３００  描画部
３０１  機密情報受信部
３０２  描画処理部
３０３  印刷データ送信部
【先行技術文献】
【特許文献】
【０１４２】
【特許文献１】特開２０１１−１２８９４４号公報
【図１】
0006375804.tif 000002
【図２】
0006375804.tif 000003
【図３】
0006375804.tif 000004
【図４】
0006375804.tif 000005
【図５】
0006375804.tif 000006
【図６】
0006375804.tif 000007
【図７】
0006375804.tif 000008
【図８】
0006375804.tif 000009
【図９】
0006375804.tif 000010
【図１０】
0006375804.tif 000011
【図１１】
0006375804.tif 000012
【図１２】
0006375804.tif 000013
【図１３】
0006375804.tif 000014
【図１４】
0006375804.tif 000015
【図１５】
0006375804.tif 000016
【図１６】
0006375804.tif 000017
【図１７】
0006375804.tif 000018