(57)【要約】【課題】プリンタドライバのアンインストール時にベンダー独自の処理を実施出来ない場合でも、該プリンタドライバが作成した不要な外部ファイルが残り続けてしまうのを防ぐこと。【解決手段】本発明は、画像形成用のデータを作成するドライバであって、該作成したデータを前記ドライバのアンインストール時に削除されない記憶領域に保存するレンダーフィルターを有する前記ドライバがインストールされた情報処理装置であって、前記記憶領域に保存された前記データを読み取って、前記ドライバのアンインストール時に削除される一時記憶領域に保存する保存手段と、前記データが前記一時記憶領域に保存された後、前記データを前記記憶領域から削除する削除手段と、を有することを特徴とする情報処理装置である。【選択図】図５
2018049359.tif 000002
【特許請求の範囲】
【請求項１】
画像形成用のデータを作成するドライバであって、該作成したデータを前記ドライバのアンインストール時に削除されない記憶領域に保存するレンダーフィルターを有する前記ドライバがインストールされた情報処理装置であって、
前記記憶領域に保存された前記データを読み取って、前記ドライバのアンインストール時に削除される一時記憶領域に保存する保存手段と、
前記データが前記一時記憶領域に保存された後、前記データを前記記憶領域から削除する削除手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記保存手段および前記削除手段を起動するための起動手段をさらに有し、
前記レンダーフィルターは、前記データを前記記憶領域に保存したことに応じて、前記起動手段を用いて、前記保存手段および前記削除手段を起動することで、前記保存手段による保存および前記削除手段による削除を実行させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記レンダーフィルターが、前記起動手段を用いて、前記保存手段および前記削除手段を起動した場合、ＧＵＩ画面は表示されないことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記画像形成用のデータは、前記ドライバに専用のデータであることを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記レンダーフィルターは、前記一時記憶領域にアクセスできないことを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
処理対象の印刷ジョブが前記画像形成用のデータの合成を伴う印刷ジョブの場合、前記一時記憶領域に保存された前記データを読み取って、前記記憶領域に保存する保存手段をさらに有することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記記憶領域に保存する前記保存手段により前記記憶領域に保存された前記データを読み取って、画像データと合成する合成手段をさらに有することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
画像形成用のデータを作成し、記憶領域に保存するレンダーフィルターと、
前記データを読み取って、一時記憶領域に保存する保存手段と、
前記データが前記一時記憶領域に保存された後、前記データを前記記憶領域から削除する削除手段と、
を有することを特徴とするプリンタドライバ。
【請求項９】
前記保存手段および前記削除手段を起動するための起動手段をさらに有し、
前記レンダーフィルターは、前記データを前記記憶領域に保存したことに応じて、前記起動手段を用いて、前記保存手段および前記削除手段を起動することで、前記保存手段による保存および前記削除手段による削除を実行させることを特徴とする請求項８に記載のプリンタドライバ。
【請求項１０】
前記レンダーフィルターが、前記起動手段を用いて、前記保存手段および前記削除手段を起動した場合、ＧＵＩ画面は表示されないことを特徴とする請求項９に記載のプリンタドライバ。
【請求項１１】
前記画像形成用のデータは、前記プリンタドライバに専用のデータであることを特徴とする請求項８乃至１０の何れか１項に記載のプリンタドライバ。
【請求項１２】
前記レンダーフィルターは、前記一時記憶領域にアクセスできないことを特徴とする請求項８乃至１１の何れか１項に記載のプリンタドライバ。
【請求項１３】
処理対象の印刷ジョブが前記画像形成用のデータの合成を伴う印刷ジョブの場合、前記一時記憶領域に保存された前記データを読み取って、前記記憶領域に保存する保存手段をさらに有することを特徴とする請求項８乃至１２の何れか１項に記載のプリンタドライバ。
【請求項１４】
前記記憶領域に保存する前記保存手段により前記記憶領域に保存された前記データを読み取って、画像データと合成する合成手段をさらに有することを特徴とする請求項１３に記載のプリンタドライバ。
【請求項１５】
画像形成用のデータを作成するドライバであって、該作成したデータを前記ドライバのアンインストール時に削除されない記憶領域に保存するレンダーフィルターを有する前記ドライバがインストールされた情報処理装置で実行される情報処理方法であって、
前記記憶領域に保存された前記データを読み取って、前記ドライバのアンインストール時に削除される一時記憶領域に保存するステップと、
前記データが前記一時記憶領域に保存された後、前記データを前記記憶領域から削除するステップと、
を有することを特徴とする情報処理方法。
【請求項１６】
コンピュータに、請求項１５に記載の情報処理方法を実行させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタドライバが作成するプリンタドライバ用のデータを、該プリンタドライバのアンインストール時に削除する技術に関する。
【背景技術】
【０００２】
一般にプリンタドライバは、アプリケーションが作成した画像データを変換して、プリンタが解釈可能な印刷データを作成する機能を持つ。しかし、近年のプリンタドライバは印刷データの作成以外にも様々な機能を持つものが多い。例えば、特許文献１に記載されているように、プリンタドライバがフォームデータを作成、保存するという機能が知られている。特許文献１では、透明インクなどの特殊な色材を用いて印刷物に装飾性を付与する印刷（装飾印刷）において、この特殊な色材を塗布する領域を指定するフォームデータを作成する。プリンタドライバは、このフォームデータを外部ファイルとして保存しておき、実際に装飾印刷を行う際に画像データとフォームデータとを合成して印刷データを作成する。一方、このような外部ファイルはプリンタドライバ専用のファイルであり、プリンタドライバをアンインストールした後には不要なファイルとなる。そのため、プリンタドライバのアンインストール時には、これらの外部ファイルを削除する必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０５３６２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
外部ファイルの削除はプリンタドライバのアンインストール処理の一環として実施されることが望ましい。しかし、一般にプリンタドライバのアンインストール処理はオペレーティングシステム（ＯＳ）によって制御される。そのため、外部ファイルの削除といったベンダー独自の処理がアンインストール時に実施できるかはＯＳ、またはＯＳに搭載されるプリンタドライバのアーキテクチャー仕様に依る。例えば、Ｗｉｎｄｏｗｓ（登録商標、以下省略）ＯＳに搭載されるｖｅｒｓｉｏｎ４（ｖ４）プリンタドライバでは、アンインストール時にベンダー独自の処理を実施することができない。
【０００５】
そのため、このようなプリンタドライバでは、作成した外部ファイルをアンインストール時に削除することができず、不要な外部ファイルが残り続けてしまうという課題があった。本発明はこの課題を鑑みてなされたものであり、プリンタドライバのアンインストール時にベンダー独自の処理を実施出来ない場合でも、不要な外部ファイルが残り続けてしまうのを防ぐことを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、画像形成用のデータを作成するドライバであって、該作成したデータを前記ドライバのアンインストール時に削除されない記憶領域に保存するレンダーフィルターを有する前記ドライバがインストールされた情報処理装置であって、前記記憶領域に保存された前記データを読み取って、前記ドライバのアンインストール時に削除される一時記憶領域に保存する保存手段と、前記データが前記一時記憶領域に保存された後、前記データを前記記憶領域から削除する削除手段と、を有することを特徴とする情報処理装置である。
【発明の効果】
【０００７】
本発明によれば、プリンタドライバが該プリンタドライバ用の外部ファイルを作成、保存し、該保存した外部ファイルを用いて実現する機能を有する場合、前記プリンタドライバのアンインストール後に不要となる前記外部ファイルを削除することが出来る。
【図面の簡単な説明】
【０００８】
【図１】実施例１における情報処理装置１のハードウェア構成を示すブロック図
【図２】実施例１における情報処理装置１の機能構成を示すブロック図
【図３】実施例１における印刷設定情報を設定するＧＵＩ画面の一例を示す図
【図４】実施例１におけるレンダーフィルター２２３が実行する処理のフローチャート
【図５】実施例１におけるＵＩ拡張モジュール２２４が実行する処理のフローチャート
【図６】実施例２における情報処理装置１の機能構成を示すブロック図
【図７】実施例２におけるレンダーフィルター２２３が実行する処理のフローチャート
【図８】実施例２における起動モジュール２２６が実行する処理のフローチャート
【図９】実施例２におけるＵＩ拡張モジュール２２４が実行する処理のフローチャート
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して本発明の好適な実施形態を詳しく説明する。尚、以下の形態は特許請求の範囲に係る本発明を限定するものでなく、また以下で説明されている特徴の全てが本発明の解決手段として必須のものとは限らない。
【００１０】
［実施例１］
＜ハードウェア構成について＞
図１は、本実施例における情報処理装置１のハードウェア構成を示すブロック図である。情報処理装置１として、例えばコンピュータを用いて良い。以下、情報処理装置をＰＣと略記する。図示するように、ＰＣ１は、入力インタフェース（以下、インタフェースをＩＦと略記する。）１０、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、外部記憶装置１４、出力ＩＦ１５、及び入出力ＩＦ１６を有する。入力ＩＦ１０は、マウス１７、キーボード１８などの入力デバイスが接続されており、これらの入力デバイスからの入力を制御する。出力インタフェース１５は、ディスプレイ１９などの出力デバイスが接続されており、出力デバイスへの出力を制御する。
【００１１】
ＲＯＭ１２には、初期化のためのプログラム及びデータが格納され、外部記憶装置１４には、アプリケーションプログラム群、ＯＳ、プリンタドライバ２２０、及びその他の各種データが格納されている。ＲＡＭ１３は、データを一時的に記憶する記憶媒体であり、ＣＰＵ１１のメインメモリ、ワークエリアとして機能する。具体的に例えば、ＲＯＭ１２や外部記憶装置１４に格納された各種プログラムがＲＡＭ１３に展開され、該展開されたプログラムがＣＰＵ１１によって実行される。尚、本実施例では、ＲＯＭ１２と外部記憶装置１４との少なくとも一方に格納されるプログラムがＲＡＭ１３に展開され、ＣＰＵ１１が該展開されたプログラムを実行することで、ＰＣ１における後述の機能を実現し、後述のフローに従う処理を実行する。画像形成装置２は、入出力インタフェース１６を介してＰＣ１と接続されている。尚、画像形成装置とは、印刷機能に特化した専用機に限らず、印刷機能とその他の機能とを複合した複合機や、記録媒体上に画像やパターンを形成する製造装置等も含む。また、ここではＰＣ１と画像形成装置２とが分かれて構成されているが、これらが一つの情報処理装置、或いは、画像形成装置として構成されていても良い。
【００１２】
＜機能構成について＞
図２は、本実施例におけるＰＣ１の機能構成の一例を示す図であり、主に、ＰＣ１にインストールされるプリンタドライバ２２０の機能について説明するための図である。以下、ＰＣ１に搭載されるＯＳがＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓであり、プリンタドライバ２２０がＶｅｒｓｉｏｎ４（ｖ４）プリンタドライバの場合を例に挙げて説明する。
【００１３】
アプリケーション２０１には、画像処理、ワードプロセッサ、ウェブブラウザなどのソフトウエアが含まれる。アプリケーション２０１はユーザーの入力に従い、文字などのテキストデータ、図形などのグラフィクスデータ、写真などのイメージデータからなる描画データを編集、加工する。そして、ユーザーの入力に従い、編集、加工した描画データに基づく画像形成処理（印刷処理を含む）をＯＳに要求、即ち、プリントチケットを含むデータをＯＳに出力する。
【００１４】
アプリケーション２０１が出力するデータは、ＸＰＳ形式のデータであり、テキストデータに対応するテキスト描画命令と、グラフィクスデータに対応するグラフィクス描画命令と、イメージデータに対応するイメージ描画命令とで構成された描画命令群である。アプリケーション２０１が出力するデータに含まれるプリントチケットには、図３に示すＧＤＩ画面等を介したユーザーの入力に基づく印刷設定情報が記述されている。印刷設定情報には、例えば、用紙サイズや用紙の種類、画像処理パラメータ等が含まれる。また、本実施例の印刷設定情報には、印刷ジョブが、フォームデータを作成するジョブか、作成済みのフォームデータの合成を伴う印刷ジョブか、フォームデータの合成を伴わない通常の印刷ジョブか、を示す情報（フラグ）も含まれる。さらに、本実施例の印刷設定情報は、フォームデータのフォームデータ名も含んで良い。尚、フォームデータについては後述する。
【００１５】
ＯＳはアプリケーション２０１から入力される描画命令群を、ＯＳの印刷サポート機能２１１を介してスプールデータに変換する。このスプールデータはスプーラ２１２のプリントキュー２１３に一時的に保存され、印刷ジョブ２１４としてスプーラ２１２により管理される。印刷ジョブ２１４は、プリンタドライバ２２０によって画像形成装置２が解釈可能な印刷データ（ＰＤＬデータ）に変換された後、画像形成装置２に送信され、画像形成装置２は、該送信された印刷データに基づき、記録媒体に画像を形成する。
【００１６】
以下、プリンタドライバ２２０の各モジュールについて説明する。ＵＩモジュール２２１は、ＯＳに準拠する限定的な機能を提供するためのモジュールである。ＵＩ拡張モジュール２２４は、ベンダー独自の拡張機能を実現するためモジュールである。ユーザープロパティバッグ２２５は、ユーザーによって入力されたデータ等を一時的に記憶するための領域（一時記憶領域）である。ＵＩモジュール２２１及びＵＩ拡張モジュール２２４は、ユーザープロパティバッグ２２５からのデータの読み取り、及び、ユーザープロパティバッグ２２５へのデータの書き込みが可能である。一方、後述のレイアウトフィルター２２２及びレンダーフィルター２２３は、ユーザープロパティバッグ２２５にアクセスすることは出来ない。尚、ユーザープロパティバッグ２２５は、プリンタドライバ２２０のアンインストール時に削除される。
【００１７】
プリンタドライバ２２０に渡された印刷ジョブ２１４は、先ずレイアウトフィルター２２２によって処理される。ここでフィルターとは、入力されたデータに対する加工、入力されたデータに応じた変換等の処理を実行し、該処理したデータを出力するモジュールである。プリンタドライバ２２０を構成する各フィルターは、印刷ジョブ２１４のデスプールの際にＯＳのフィルター管理モジュール（図示せず）によって呼び出され、初期化が実行される。
【００１８】
レイアウトフィルター２２２は、印刷設定情報に従いページを並べ替えたり複数ページを１つのページにまとめたりするなどのレイアウト処理を実行し、処理後のデータをレンダーフィルター２２３に出力する。尚、上述したように、レイアウトフィルター２２２は、ユーザープロパティバッグ２２５にアクセスすることは出来ない。
【００１９】
レンダーフィルター２２３は、レイアウトフィルター２２２から入力されたデータに対する処理を実行する。尚、印刷ジョブは、上述したように、フォームデータを作成するジョブと、作成済みのフォームデータの合成を伴う印刷ジョブと、通常の印刷ジョブとの何れかであり、レンダーフィルター２２３は、処理対象の印刷ジョブの種類に応じて、異なる処理を実行する。具体的には、処理対象の印刷ジョブが通常の印刷ジョブの場合、レンダーフィルター２２３は、印刷設定情報に従って印刷データを変換する。詳細には、印刷設定情報とレイアウト済みＸＰＳ形式の印刷データとに基づき、画像形成装置２が解釈可能なＰＤＬ形式の印刷データを作成する。レンダーフィルター２２３が作成したＰＤＬ形式の印刷データは、ポートモニタ２３１を介して画像形成装置２に送信される。
【００２０】
また、処理対象の印刷ジョブがフォームデータを作成するジョブの場合、レンダーフィルター２２３は、フォームデータを作成し、該作成したフォームデータを記憶領域２１５に保存する。この場合、画像形成装置２への印刷データの送信は実行されない。ここで記憶領域２１５とは、例えばＲＯＭ１２等に設けられる領域であり、プリンタドライバ２２０のアンインストール時に削除されない領域である。
【００２１】
さらに、処理対象の印刷ジョブがフォームデータの合成を伴う印刷ジョブの場合、レンダーフィルター２２３は、用いるフォームデータを記憶領域２１５から読み取る。そして、このフォームデータと印刷設定情報とレイアウト済みＸＰＳ形式の印刷データとに基づき、ＰＤＬデータを作成する。このＰＤＬ形式の印刷データは、ポートモニタ２３１を介して画像形成装置２に送信される。
【００２２】
尚、上述したように、レンダーフィルター２２３は、ユーザープロパティバッグ２２５にアクセスすることは出来ない。
【００２３】
＜印刷設定情報を設定するＧＵＩ画面について＞
図３（ａ）は、プリンタドライバ２２０のＵＩモジュール２２１がディスプレイ１９に表示する印刷設定情報を設定するＧＵＩ画面の一例を示す図であり、具体的にはクリアコート設定のためのダイアログボックスを示す図である。プルダウンメニュー３０１は透明インクの塗布方法を決定する「透明インク塗布モード」を選択する部分である。このプルダウンメニュー３０１でプリンタドライバ２２０が提供する透明インク塗布モードの一覧を表示し、ユーザーが任意の透明インク塗布モードを選択することで透明インク塗布モードが設定される。
【００２４】
この透明インク塗布モードとしては、図３（ｂ）に示すように、「自動」、「全面」、「ユーザー設定」の３つのモードが存在し、ユーザーはプルダウンメニュー３０１から任意のモードを選択することで透明インクの塗布方法を指定する。尚、この透明インク塗布モードはデフォルトでは「自動」が選択される。以下、透明インク塗布モードの夫々のモードについて説明する。
【００２５】
「自動」の塗布モードは、使用する記録媒体が透明インクを塗布してもそれほど効果が見込めない媒体の場合は透明インクを塗布しない一方、使用する記録媒体が透明インクを塗布することで効果が見込める媒体の場合は透明インクを塗布するモードである。「全面」の塗布モードは、記録媒体において画像形成装置２が画像形成可能な範囲全体に透明インクを塗布するモードである。「ユーザー設定」の塗布モードは、透明インクを一部塗布しないことにより、見え方を変化させて印刷物にデザイン性を付与するモードである。この「ユーザー設定」の塗布モードとしては、フォームファイルを作成する「フォームファイル作成モード」と、作成済みのフォームファイルを用いて印刷する「フォーム合成印刷モード」とが存在する。
【００２６】
アイコン表示領域３０２は、選択中の透明インク塗布モードの概念を表すアイコンを表示する領域である。ラジオボタン３０３、３０４は、「フォームファイル作成モード」と「フォーム合成印刷モード」との何れかを選択するボタンであり、プルダウンメニュー３０１で「ユーザー設定」の塗布モードが選択されている場合に選択可能となる。領域３０５には、既に作成済みのフォームファイルが表示され、ラジオボタン３０４が選択されている場合に、表示されているフォームファイルの中から１つのフォームファイルを選択可能となる。入力欄３０６は、作成するフォームファイルを識別するためフォームデータ名を入力する欄である。
【００２７】
＜レンダーフィルターが実行する処理について＞
図４は、本実施例におけるレンダーフィルター２２３が実行する処理のフローチャートである。
【００２８】
ステップＳ４０１において、レンダーフィルター２２３は、処理対象の印刷ジョブに含まれる印刷設定情報に基づき、該印刷ジョブがフォームデータを作成するジョブであるか判定する。ステップＳ４０１の判定の結果が真の場合、ステップＳ４０２に進む一方、該判定の結果が偽の場合、ステップＳ４０３に進む。
【００２９】
ステップＳ４０２において、レンダーフィルター２２３は、フォームデータを作成し、該フォームデータと、印刷設定情報に含まれるフォームデータ名とをまとめて１つの外部ファイル（フォームファイル）として記憶領域２１５に保存する。尚、本実施例において外部ファイルとは、プリンタドライバ２２０のアンインストール時に削除されない記憶領域２１５に保存されるファイルを指す。また、本ステップで保存するフォームファイルのファイル名は、レンダーフィルター２２３によって保存されたことが分かるように、独自の名称が付けられる。
【００３０】
ステップＳ４０３において、レンダーフィルター２２３は、処理対象の印刷ジョブに含まれる印刷設定情報に基づき、該印刷ジョブがフォームデータの合成を伴う印刷ジョブであるか判定する。ステップＳ４０３の判定の結果が真の場合、ステップＳ４０４に進む一方、該判定の結果が偽の場合、ステップＳ４０９に進む。
【００３１】
ステップＳ４０４において、レンダーフィルター２２３は、後述のステップＳ５０９でＵＩ拡張モジュール２２４によって保存された、フォームデータを含むフォームファイルが記憶領域２１５に存在するか、ファイル名を用いて判定する。尚、このフォームファイルについては、図５を用いて後述する。ステップＳ４０４の判定の結果が真の場合、ステップＳ４０５に進む一方、該判定の結果が偽の場合、ステップＳ４０８に進む。
【００３２】
ステップＳ４０５において、レンダーフィルター２２３は、印刷設定情報に含まれるフォームデータ名と一致するフォームデータ名を持つフォームファイルに含まれるフォームデータを、記憶領域２１５から読み取る。
【００３３】
ステップＳ４０６において、レンダーフィルター２２３は、ステップＳ４０５で取得したフォームデータと画像データとを合成し、ＰＤＬ形式の印刷データを作成する。
【００３４】
ステップＳ４０７において、レンダーフィルター２２３は、ＵＩ拡張モジュール２２４によって保存された、印刷設定情報に含まれるフォームデータ名と一致するフォームデータ名を持つフォームファイルを記憶領域２１５から削除する。
【００３５】
ＵＩ拡張モジュール２２４によって保存されたフォームファイルが記憶領域２１５存在しない場合（ステップＳ４０４でＮＯの場合）、ステップＳ４０８において、レンダーフィルター２２３は、ＵＩモジュール２２１を用いてエラーを通知する。このエラーは、ユーザーが指定したフォームファイルが存在しないことを示すものである。
【００３６】
処理対象の印刷ジョブが通常の印刷ジョブの場合（ステップＳ４０３でＮＯの場合）、ステップＳ４０９において、レンダーフィルター２２３は、ＰＤＬ形式の印刷データを作成する。以上が、本実施例におけるレンダーフィルター２２３が実行する処理である。
【００３７】
＜ＵＩ拡張モジュールが実行する処理について＞
図５は、本実施例におけるＵＩ拡張モジュール２２４が実行する処理のフローチャートである。尚、以下の処理は、ＵＩ拡張モジュール２２４が起動するタイミング、即ちＵＩが開いたタイミングで開始するため、印刷ジョブ２１４のデスプールの際に初期化が実行されるレンダーフィルター２２３の起動より前のタイミングで開始する。そのため、以下の処理は、例えばレンダーフィルター２２３が外部ファイルを記憶領域２１５に保存した場合（ステップＳ４０２）であれば、レンダーフィルター２２３による一連の処理が終了した後、ＵＩ拡張モジュール２２４が起動されたタイミングで開始する。
【００３８】
ステップＳ５０１において、ＵＩ拡張モジュール２２４は、ステップＳ４０２でレンダーフィルター２２３によって作成、保存されたフォームファイルが記憶領域２１５に存在するか判定する。この判定は、記憶領域２１５に保存されているフォームファイルのファイル名に基づいて実行される。ステップＳ５０１の判定の結果が真の場合、ステップＳ５０２に進む一方、該判定の結果が偽の場合、ステップＳ５０４に進む。
【００３９】
ステップＳ５０２において、ＵＩ拡張モジュール２２４は、レンダーフィルター２２３により作成され記憶領域２１５に保存されているフォームファイルを読み取る。そして、このフォームファイルに含まれる、フォームデータと、これに対応するフォームデータ名とをまとめて１つのフォームファイルとして、ユーザープロパティバッグ２２５に保存する。
【００４０】
ステップＳ５０３において、ＵＩ拡張モジュール２２４は、ステップＳ５０２で読み取ったフォームファイルを記憶領域２１５から削除する。
【００４１】
その後、ステップＳ５０４において、ＵＩ拡張モジュール２２４は、ユーザーが印刷ジョブを入力するためのＧＵＩ画面を表示する。このＧＵＩ画面は、例えば図３に示したＧＵＩ画面３００である。ＵＩ拡張モジュール２２４は、ＧＵＩ画面３００を表示するにあたって、ユーザープロパティバッグ２２５に保存されているフォームファイルのフォームデータ名に基づき、領域３０５に表示する内容を決定する。
【００４２】
ステップＳ５０５において、ＵＩ拡張モジュール２２４は、ユーザーによる印刷ジョブの入力を受け付ける。本ステップにより、以降の処理で取り扱う印刷ジョブが確定する。尚、本ステップで受け付ける印刷ジョブがフォームデータの合成を伴う印刷ジョブの場合、ＧＵＩ画面３００の領域３０５を介してユーザーが選択するフォームファイルのフォームデータ名が、印刷ジョブを構成する印刷設定情報に含まれる。
【００４３】
ステップＳ５０６において、ＵＩ拡張モジュール２２４は、印刷ジョブを入力するためのＧＵＩ画面を閉じる。
【００４４】
ステップＳ５０７において、ＵＩ拡張モジュール２２４は、処理対象の印刷ジョブに含まれる印刷設定情報に基づき、該印刷ジョブがフォームデータの合成を伴う印刷ジョブであるか判定する。ステップＳ５０７の判定の結果が真の場合、ステップＳ５０８に進む一方、該判定の結果が偽の場合、一連の処理は終了する。
【００４５】
ステップＳ５０８において、ＵＩ拡張モジュール２２４は、ユーザープロパティバッグ２２５に保存されているフォームファイルの中の１つのフォームファイルに含まれるフォームデータを読み取る。詳細には、印刷ジョブを構成する印刷設定情報に含まれるフォームデータ名を用いて、該フォームデータ名と同一のフォームデータ名に対応するフォームデータを読み取る。
【００４６】
ステップＳ５０９において、ＵＩ拡張モジュール２２４は、ステップＳ５０８で読み取ったフォームデータと、印刷ジョブを構成する印刷設定情報に含まれるフォームデータ名とをまとめて１つの外部ファイル（フォームファイル）として記憶領域２１５に保存する。ここで保存するフォームファイルは、前述のステップＳ４０５で、レンダーフィルター２２３が読み取るフォームデータを含むフォームファイルの候補となる。尚、本ステップで保存するフォームファイルのファイル名は、ＵＩ拡張モジュール２２４によって保存されたことが分かるように、独自の名称が付けられる。以上が、本実施例におけるＵＩ拡張モジュール２２４が実行する処理である。
【００４７】
本実施例では、レンダーフィルター２２３が記憶領域２１５に保存したフォームファイルの情報を、ＵＩ拡張モジュール２２４の起動時にユーザープロパティバッグ２２５に移動する。また、ＵＩ拡張モジュール２２４が記憶領域２１５に保存するフォームファイルは、レンダーフィルター２２３が該フォームファイルに含まれるフォームデータを読み取った後に削除する（ステップＳ４０７）。従って、プリンタドライバ２２０のアンインストール時には削除されない記憶領域２１５に保存されるフォームファイルは、ＵＩ拡張モジュール２２４の起動の都度、又は、レンダーフィルター２２３によるフォームデータの読み取りの都度、削除される。よって、プリンタドライバ２２０のアンインストール後にプリンタドライバ２２０専用のフォームファイルが記憶領域２１５に残り続けることを防ぐことが出来る。また本実施例では、レンダーフィルター２２３やＵＩ拡張モジュール２２４は通常の印刷処理フローの一環として上述のフォームファイルの削除処理を実行可能であることから、ＯＳ処理との親和性も高い。
【００４８】
尚、上述の説明では、ＵＩ拡張モジュール２２４によって記憶領域２１５に保存されるフォームファイルは、画像データと該フォームファイルに含まれるフォームデータとの合成処理の実行後に、レンダーフィルター２２３によって記憶領域２１５から削除される。しかし、その後ユーザーがアプリケーションからプリンタドライバ２２０のＧＵＩ画面を開くことなく印刷処理を実行したとき、一部の写真アプリケーション等では前回印刷時の印刷設定情報が維持されるため問題が発生する場合がある。つまり、すでに削除されたフォールファイルに含まれるフォームデータを再度用いようとする場合に、フォームデータの合成を伴う印刷処理に失敗してしまう。こういったケースを防ぐため、フォームデータの削除は常にＵＩ拡張モジュール２２４のみで行うといった形態も考えられる。その場合、ＵＩ拡張モジュール２２４は、レンダーフィルター２２３によって保存されたフォームファイルだけでなく、ＵＩ拡張モジュール２２４自身が保存したフォームファイルも、記憶領域２１５から削除するように動作する。
【００４９】
［実施例２］
実施例１ではレンダーフィルター２２３がフォームデータを作成しフォームファイルとして記憶領域２１５に保存した後、ＵＩ拡張モジュール２２４が起動される前にプリンタドライバがアンインストールされる可能性がある。その場合、レンダーフィルター２２３によって記憶領域２１５に保存されたフォームファイルは削除されずに残り続けてしまうことになる。本実施例では、レンダーフィルター２２３とＵＩ拡張モジュール２２４との処理を同期させることで、ＵＩ拡張モジュール２２４が起動される前にプリンタドライバがアンインストールされることを防ぐ。尚、以下では、実施例１と共通する内容の説明は適宜省略する。
【００５０】
レンダーフィルター２２３とＵＩ拡張モジュール２２４との処理を同期させるためには、レンダーフィルター２２３がＵＩ拡張モジュール２２４を直接起動する方法が考えられる。一方、ＵＩ拡張モジュール２２４がユーザープロパティバッグ２２５にアクセルするためには専用のアクセス関数を使用する必要がある。そのため、ＵＩ拡張モジュール２２４の起動にはＯＳが提供しているＡＰＩ（ＤｏｃｕｍｅｎｔＰｒｏｐｅｒｔｉｅｓ関数）を使用して、必要なインスタンスを引数として渡す必要がある。しかし、レンダーフィルター２２３は印刷を行うモジュールではないため、ＤｏｃｕｍｅｎｔＰｒｏｐｅｒｔｉｅｓ関数をコールすることが出来ない。そこで、ＵＩ拡張モジュール２２４を起動するための起動モジュール（ＥＸＥファイル）２２６を用意し、レンダーフィルター２２３はこの起動モジュール２２６を起動することで、間接的にＵＩ拡張モジュール２２４を起動する。
【００５１】
＜機能構成について＞
図６は、本実施例におけるＰＣ１の機能構成の一例を示す図である。図示するように、プリンタドライバ２２０は、起動モジュール２２６を更に有し、この点で実施例１と異なる（図２参照）。
【００５２】
起動モジュール２２６は、ＤｏｃｕｍｅｎｔＰｒｏｐｅｒｔｉｅｓ関数をコールすることでＵＩ拡張モジュール２２４を起動する。また、ＵＩ拡張モジュール２２４は起動元のモジュールを判定し、起動モジュール２２６から起動された場合には通常とは異なる処理を実行する。この処理は例えば、記憶領域２１５に存在する外部ファイルの情報をユーザープロパティバッグ２２５に移動する処理等である。また、ＵＩ拡張モジュール２２４は通常、起動時にＧＵＩ画面を表示するが、起動モジュール２２６から起動された場合にはＧＵＩ画面を表示しない。尚、ＵＩ拡張モジュール２２４が実行する処理を、呼び出し元の起動モジュール２２６から指定することも考えられる。この場合、起動時のパラメータを用いて指定する方法や、共有ファイルや共有メモリを用いて指定する方法がある。
【００５３】
＜レンダーフィルターが実行する処理について＞
図７は、本実施例におけるレンダーフィルター２２３が実行する処理のフローチャートである。
【００５４】
ステップＳ７０１において、レンダーフィルター２２３は、処理対象の印刷ジョブに含まれる印刷設定情報に基づき、該印刷ジョブがフォームデータを作成するジョブであるか判定する。ステップＳ７０１の判定の結果が真の場合、ステップＳ７０２に進む一方、該判定の結果が偽の場合、ステップＳ７０５に進む。
【００５５】
ステップＳ７０２において、レンダーフィルター２２３は、フォームデータを作成し、該フォームデータと、印刷設定情報に含まれるフォームデータ名とを対応付けて記憶領域２１５に保存する。尚、実施例１と同様に、フォームデータとフォームデータ名とをまとめて１つのフォームファイルとして保存しても良い。
【００５６】
ステップＳ７０３において、レンダーフィルター２２３は、ステップＳ７０２で記憶領域２１５に保存したフォームデータを、ユーザープロパティバッグ２２５に保存するよう設定する。具体的には、フォームデータのユーザープロパティバッグ２２５への保存指示と、印刷設定情報に含まれるフォームデータ名とを引数に設定する。
【００５７】
ステップＳ７０４において、レンダーフィルター２２３は、ステップＳ７０３で設定した引数を用いて、起動モジュール２２６を起動する。ステップＳ７０４の後で、起動モジュール２２６による処理が開始する。尚、起動モジュール２２６による処理については、図８を用いて後述する。
【００５８】
ステップＳ７０５において、レンダーフィルター２２３は、処理対象の印刷ジョブに含まれる印刷設定情報に基づき、該印刷ジョブがフォームデータの合成を伴う印刷ジョブであるか判定する。ステップＳ７０５の判定の結果が真の場合、ステップＳ７０６に進む一方、該判定の結果が偽の場合、ステップＳ７１１に進む。
【００５９】
ステップＳ７０６において、レンダーフィルター２２３は、後述のステップＳ９０６で保存されたフォームデータを、ユーザープロパティバッグ２２５から読み取るよう設定する。具体的には、フォームデータのユーザープロパティバッグ２２５からの読み取り指示と、印刷設定情報に含まれるフォームデータ名とを引数に設定する。
【００６０】
ステップＳ７０７において、レンダーフィルター２２３は、ステップＳ７０６で設定した引数を用いて、起動モジュール２２６を起動する。ステップＳ７０７の後で、起動モジュール２２６による処理が開始する。
【００６１】
ステップＳ７０８において、レンダーフィルター２２３は、印刷設定情報に含まれるフォームデータ名と一致するフォームデータ名に対応付けされたフォームデータを、記憶領域２１５から読み取る。
【００６２】
ステップＳ７０９において、レンダーフィルター２２３は、ステップＳ７０８で取得したフォームデータと画像データとを合成し、ＰＤＬ形式の印刷データを作成する。
【００６３】
ステップＳ７１０において、レンダーフィルター２２３は、ステップＳ７０８で読み取ったフォームデータ及びこれに対応付けされたフォームデータ名を記憶領域２１５から削除し、一連の処理は終了する。以上が、本実施例におけるレンダーフィルター２２３が実行する処理である。
【００６４】
＜起動モジュールが実行する処理について＞
ステップＳ８０１において、起動モジュール２２６は、設定されている引数に基づき、フォームデータのユーザープロパティバッグ２２５への保存が指示されているかを判定する。ステップＳ８０１の判定の結果が真の場合、ステップＳ８０２に進む一方、該判定の結果が偽の場合、ステップＳ８０３に進む。
【００６５】
ステップＳ８０２において、起動モジュール２２６は、フォームデータのユーザープロパティバッグ２２５への保存指示と、フォームデータ名とを引数として指定してＤｏｃｕｍｅｎｔＰｒｏｐｅｒｔｉｅｓ関数をコールする。
【００６６】
ステップＳ８０３において、起動モジュール２２６は、設定されている引数に基づき、フォームデータのユーザープロパティバッグ２２５からの読み取りが指示されているかを判定する。ステップＳ８０３の判定の結果が真の場合、ステップＳ８０４に進む一方、該判定の結果が偽の場合、一連の処理は終了する。
【００６７】
ステップＳ８０４において、起動モジュール２２６は、フォームデータのユーザープロパティバッグ２２５からの読み取り指示と、フォームデータ名とを引数として指定してＤｏｃｕｍｅｎｔＰｒｏｐｅｒｔｉｅｓ関数をコールする。以上が、本実施例における起動モジュール２２６が実行する処理である。
【００６８】
＜ＵＩ拡張モジュールが実行する処理について＞
図９は、本実施例におけるＵＩ拡張モジュール２２４が実行する処理のフローチャートである。
【００６９】
ステップＳ９０１において、ＵＩ拡張モジュール２２４は、起動元が起動モジュール２２６であるかを判定する。ステップＳ９０１の判定の結果が真の場合、ステップＳ９０２に進む一方、該判定の結果が偽の場合、ステップＳ９０３に進む。
【００７０】
ＵＩ拡張モジュール２２４の起動元が起動モジュール２２６の場合、ステップＳ９０２において、ＵＩ拡張モジュール２２４は起動する。ただし起動の際、ＵＩ拡張モジュール２２４は、ＧＵＩ画面を表示しない。
【００７１】
一方、ＵＩ拡張モジュール２２４の起動元が起動モジュール２２６ではない場合、ステップＳ９０３において、ＵＩ拡張モジュール２２４は起動する。起動の際、ＵＩ拡張モジュール２２４は、ＧＵＩ画面を表示し、本ステップの後に引き続いて、ユーザーによるＧＵＩ画面を介した印刷ジョブの入力処理が行われる。
【００７２】
以下、ＵＩ拡張モジュール２２４の起動元が起動モジュール２２６の場合におけるステップＳ９０２以降の処理について説明する。ステップＳ９０４において、ＵＩ拡張モジュール２２４は、引数に基づき、フォームデータのユーザープロパティバッグ２２５への保存が指示されているかを判定する。ステップＳ９０４の判定の結果が真の場合、ステップＳ９０５に進む一方、該判定の結果が偽の場合、ステップＳ９０８に進む。
【００７３】
ステップＳ９０５において、ＵＩ拡張モジュール２２４は、引数で指定されたフォームデータ名と一致するフォームデータ名に対応付けされたフォームデータを記憶領域２１５から読み取る。
【００７４】
ステップＳ９０６において、ＵＩ拡張モジュール２２４は、ステップＳ９０５で読み取ったフォームデータと、引数で指定されたフォームデータ名とを対応付けてユーザープロパティバッグ２２５に保存する。
【００７５】
ステップＳ９０７において、ＵＩ拡張モジュール２２４は、ステップＳ９０５で読み取ったフォームデータ及びこれに対応付けされたフォームデータ名を、記憶領域２１５から削除する。
【００７６】
一方、フォームデータの保存が指示されていない場合（ステップＳ９０４でＮＯの場合）、ステップＳ９０８において、ＵＩ拡張モジュール２２４は、引数に基づき、フォームデータのユーザープロパティバッグ２２５からの読み取りが指示されているかを判定する。ステップＳ９０８の判定の結果が真の場合、ステップＳ９０９に進む一方、該判定の結果が偽の場合、一連の処理は終了する。
【００７７】
ステップＳ９０９において、ＵＩ拡張モジュール２２４は、引数で指定されたフォームデータ名と一致するフォームデータ名に対応付けされたフォームデータをユーザープロパティバッグ２２５から読み取る。
【００７８】
ステップＳ９１０において、ＵＩ拡張モジュール２２４は、ステップＳ９０９で読み取ったフォームデータと、引数で指定されたフォームデータ名とを対応付けて記憶領域２１５に保存する。以上が、本実施例におけるＵＩ拡張モジュール２２４が実行する処理である。
【００７９】
本実施例では、レンダーフィルター２２３が起動モジュール２２６を介してＵＩ拡張モジュール２２４を起動することにより、フォームデータの記憶領域２１５への保存処理と、フォームデータの記憶領域２１５からの削除処理とを同期させることが出来る。そのため、レンダーフィルター２２３が作成、保存したフォームデータを記憶領域２１５から削除する前にプリンタドライバがアンインストールされるといったケースを防ぐことが可能となる。
【００８０】
尚、本実施例では、画像形成用データとしてフォーム合成印刷で使用するフォームデータを用いて説明したが、当然別のデータを保存しても構わない。例えば、ＵＩの各設定値が設定されて印刷された回数を印刷毎にカウントアップして、ログファイルとして保存したいといった場合には、設定値が保持されたログファイルを外部ファイルとして保存しておくことも考えられる。
【００８１】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８２】
１    情報処理装置（ＰＣ）
２１５  記憶領域
２２０  プリンタドライバ
２２３  レンダーフィルター
２２４  ＵＩ拡張モジュール
２２５  ユーザープロパティバッグ（一時記憶領域）
【図１】
2018049359.tif 000003
【図２】
2018049359.tif 000004
【図３】
2018049359.tif 000005
【図４】
2018049359.tif 000006
【図５】
2018049359.tif 000007
【図６】
2018049359.tif 000008
【図７】
2018049359.tif 000009
【図８】
2018049359.tif 000010
【図９】
2018049359.tif 000011