(57)【要約】      （修正有）【課題】ＯＳ標準の汎用印刷プログラムが組み込まれた情報処理装置において、ユーザの意図しない加工が施された画像に基づく印刷を低減する技術を提供する。【解決手段】ＰＣに組み込まれた編集アプリ４３は、画像データと印刷パラメータを取得した後、画像データを印刷パラメータに基づいて加工する加工要求を、同じくＰＣに組み込まれて、ＯＳの汎用印刷プログラム４１に対する印刷指示があった際にも動作する補助プログラム４２に送信し、画像データを加工させる。編集アプリ４３は、補助プログラム４２が加工した画像データを取得し、ＵＩを介してＰＣにプレビュー表示させる。【選択図】図３
2020126370.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに印刷を行わせる印刷指示を出力するアプリケーションプログラムであって、
前記コンピュータに、
画像データを取得する画像データ取得処理と、
前記画像データ取得処理にて取得された画像データによって示される画像の印刷を前記プリンタに行わせる印刷指示があった場合に、前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた汎用印刷プログラムに対して、前記印刷指示があったことを示す通知を入力する印刷指示入力処理を実行させ、前記情報処理装置には、前記プリンタに対応するサポートプログラムが組み込まれており、前記サポートプログラムは、画像に加工を施す加工機能を有するものであり、前記汎用印刷プログラムは、前記印刷指示があったことを示す前記通知が入力された場合に前記サポートプログラムを動作させ、前記サポートプログラムは、前記画像データ取得処理にて取得された画像データであって、前記汎用印刷プログラムが出力する中間画像データ又は印刷データに対して前記加工機能による加工を施した加工済み画像データを生成し、前記汎用印刷プログラムは、前記サポートプログラムから提供された前記加工済み画像データに基づく画像の印刷を前記プリンタに行わせるための処理を行い、
さらに前記コンピュータに、
前記サポートプログラムの前記加工機能による加工に用いる加工設定を取得する加工設定取得処理と、
前記プリンタによって印刷される画像の表示指示を受け付けた場合に、前記汎用印刷プログラムに、前記画像データ取得処理にて取得された画像データから中間画像データ又は印刷データを生成させ、
前記生成された中間画像データ又は印刷データと前記加工設定取得処理にて取得した前記加工設定に基づく加工を施させる加工要求を、前記サポートプログラムに入力する加工要求処理と、を実行させ、前記サポートプログラムは、前記加工要求が入力された場合に、前記画像データ取得処理にて取得された画像データに対して前記加工機能による加工を施した加工済み画像データを生成し、
さらに前記コンピュータに、
前記加工要求処理での前記加工要求に基づいて前記サポートプログラムにて生成された前記加工済み画像データを前記サポートプログラムから取得し、取得した前記加工済み画像データによって示される画像を前記情報処理装置の表示デバイスに表示させるプレビュー表示処理を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項２】
請求項１に記載するアプリケーションプログラムにおいて、
前記加工要求処理では、
前記中間画像データを、前記加工要求と関連付けて前記サポートプログラムに入力する、
ことを特徴とするアプリケーションプログラム。
【請求項３】
請求項２に記載するアプリケーションプログラムにおいて、
前記加工要求処理では、
前記サポートプログラムの第１のインタフェースを介して前記中間画像データを入力し、
前記サポートプログラムは、
前記アプリケーションプログラムから中間画像データを受けるための前記第１のインタフェースと、前記汎用印刷プログラムから中間画像データを受けるための第２のインタフェースと、を有しており、
前記アプリケーションプログラムから前記第１のインタフェースを介して前記中間画像データを受けた場合、前記第１のインタフェースを介して受けた前記中間画像データによって示される画像に加工を施した加工済み画像データを生成し、生成した前記加工済み画像データを前記アプリケーションプログラムに提供し、
前記汎用印刷プログラムから前記第２のインタフェースを介して前記中間画像データを受けた場合、前記第２のインタフェースを介して受けた前記中間画像データによって示される画像に加工を施した加工済み画像データを生成し、生成した前記加工済み画像データを前記汎用印刷プログラムに提供し、前記汎用印刷プログラムは、前記サポートプログラムから前記加工済み画像データを取得した後、取得した前記加工済み画像データに基づく画像の印刷を前記プリンタに行わせるための処理を行う、
ことを特徴とするアプリケーションプログラム。
【請求項４】
請求項２に記載するアプリケーションプログラムにおいて、
前記加工要求処理では、
前記サポートプログラムの第１のインタフェースを介して前記中間画像データを入力し、
前記サポートプログラムは、
前記表示デバイスに表示させるための前記中間画像データを前記アプリケーションプログラムに要求する前記第１のインタフェースと、前記プリンタに印刷させるための前記中間画像データを前記汎用印刷プログラムに要求する第２のインタフェースと、を有しており、
前記アプリケーションプログラムから前記第１のインタフェースを介して前記中間画像データを受けた場合、前記第１のインタフェースを介して受けた前記中間画像データによって示される画像に加工を施した加工済み画像データを生成し、生成した前記加工済み画像データを前記アプリケーションプログラムに提供し、
前記汎用印刷プログラムから前記第２のインタフェースを介して前記中間画像データを受けた場合、前記第２のインタフェースを介して受けた前記中間画像データによって示される画像に加工を施した加工済み画像データを生成し、生成した前記加工済み画像データを前記汎用印刷プログラムに提供し、前記汎用印刷プログラムは、前記サポートプログラムから前記加工済み画像データを取得した後、取得した前記加工済み画像データに基づく画像の印刷を前記プリンタに行わせるための処理を行う、
ことを特徴とするアプリケーションプログラム。
【請求項５】
請求項１から請求項３のいずれか１つに記載するアプリケーションプログラムにおいて、
前記コンピュータに、
前記プレビュー表示処理にて画像を表示させた状態で前記印刷指示を受け付けた場合に、前記画像データ取得処理にて取得した前記画像データに基づく印刷を行う前記印刷指示を前記汎用印刷プログラムに出力する印刷要求処理を実行させ、前記汎用印刷プログラムは、前記印刷指示があった場合に、前記サポートプログラムを動作させ、前記サポートプログラムに前記加工済み画像データを生成させる、
ことを特徴とするアプリケーションプログラム。
【請求項６】
情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、
前記サポートプログラムは、
画像に加工を施す加工機能を有するものであり、
さらに前記サポートプログラムは、
前記情報処理装置に組み込まれるアプリケーションプログラムから中間画像データを受けるための第１のインタフェースと、前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた汎用印刷プログラムから中間画像データを受けるための第２のインタフェースと、を有しており、
前記コンピュータに、
前記アプリケーションプログラムから前記第１のインタフェースを介して前記中間画像データを受けた場合、前記第１のインタフェースを介して受けた前記中間画像データに対して前記加工機能による加工を施した加工済み画像データを生成し、生成した前記加工済み画像データを前記アプリケーションプログラムに提供し、
前記汎用印刷プログラムから前記第２のインタフェースを介して前記中間画像データを受けた場合、前記第２のインタフェースを介して受けた前記中間画像データに対して前記加工機能による加工を施した加工済み画像データを生成し、生成した前記加工済み画像データを前記汎用印刷プログラムに提供し、前記汎用印刷プログラムは、前記サポートプログラムから前記加工済み画像データを取得した後、取得した前記加工済み画像データに基づく画像の印刷を前記プリンタに行わせるための処理を行う、
ことを特徴とするサポートプログラム。
【請求項７】
情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、
前記サポートプログラムは、
画像に加工を施す加工機能を有するものであり、
さらに前記サポートプログラムは、
前記情報処理装置の表示デバイスに表示させるための加工済み画像データを、前記コンピュータによって実行可能であって前記情報処理装置と接続するプリンタに印刷を行わせる印刷指示を出力するアプリケーションプログラムに要求する第１のインタフェースと、前記プリンタに印刷させるための加工済み画像データを、前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた汎用印刷プログラムに要求する第２のインタフェースと、を有しており、
前記コンピュータに、
前記情報処理装置と接続するプリンタに印刷を行わせる印刷指示を出力するアプリケーションプログラムから前記第１のインタフェースを介して中間画像データを受けた場合、前記第１のインタフェースを介して受けた前記中間画像データに対して前記加工機能による加工を施した前記加工済み画像データを生成し、生成した前記加工済み画像データを前記アプリケーションプログラムに提供し、
前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた汎用印刷プログラムから前記第２のインタフェースを介して中間画像データを受けた場合、前記第２のインタフェースを介して受けた前記中間画像データに対して前記加工機能による加工を施した前記加工済み画像データを生成し、生成した前記加工済み画像データを前記汎用印刷プログラムに提供し、前記汎用印刷プログラムは、前記サポートプログラムから前記加工済み画像データを取得した後、取得した前記加工済み画像データに基づく画像の印刷を前記プリンタに行わせるための処理を行う、
ことを特徴とするサポートプログラム。
【請求項８】
コンピュータを備える情報処理装置であって、
前記情報処理装置には、前記情報処理装置と接続するプリンタに印刷を行わせる印刷指示を出力するアプリケーションプログラムと、前記プリンタに対応するサポートプログラムと、が組み込まれ、
前記情報処理装置のオペレーティングシステムは、あらかじめ組み込まれたプログラムである汎用印刷プログラムを有しており、
前記コンピュータは、
画像データを取得する画像データ取得処理と、
前記画像データ取得処理にて取得された画像データによって示される画像の印刷を前記プリンタに行わせる印刷指示があった場合に、前記汎用印刷プログラムに対して、前記印刷指示があったことを示す通知を入力する印刷指示入力処理を実行し、前記汎用印刷プログラムは、前記印刷指示があったことを示す前記通知が入力された場合に前記サポートプログラムを動作させ、前記サポートプログラムは、画像に加工を施す加工機能を有しており、
さらに前記コンピュータは、
前記サポートプログラムを動作させることによって、前記画像データ取得処理にて取得された画像データであって、前記汎用印刷プログラムが出力する中間画像データ又は印刷データに対して前記加工機能による加工を施した加工済み画像データを生成する第１生成処理を実行し、前記汎用印刷プログラムは、前記サポートプログラムから提供された前記加工済み画像データに基づく画像の印刷を前記プリンタに行わせるための処理を行い、
さらに前記コンピュータは、
前記サポートプログラムの前記加工機能による加工に用いる加工設定を取得する加工設定取得処理と、
前記プリンタによって印刷される画像の表示指示を受け付けた場合に、前記汎用印刷プログラムに、前記画像データ取得処理にて取得された画像データから中間画像データ又は印刷データを生成させるデータ生成処理と、
前記プリンタによって印刷される画像の表示指示を、前記アプリケーションプログラムを介して受けた場合に、前記画像データ取得処理にて取得された画像データによって示される画像に、前記加工設定取得処理にて取得した前記加工設定に基づく前記加工を施させる加工要求を、前記サポートプログラムに入力する加工要求処理と、
前記サポートプログラムに前記加工要求が入力された場合に、前記サポートプログラムを動作させることによって、前記画像データ取得処理にて取得された画像データに対して前記加工機能による加工を施した加工済み画像データを生成する第２生成処理と、
前記第２生成処理によって生成された前記加工済み画像データを前記サポートプログラムから前記アプリケーションプログラムに受け渡し、前記加工済み画像データによって示される画像を、前記アプリケーションプログラムを介して前記情報処理装置の表示デバイスに表示させるプレビュー表示処理と、
を実行する、
ことを特徴とする情報処理装置。
【請求項９】
情報処理装置にプリンタが接続され、
前記情報処理装置には、前記プリンタに印刷を行わせる印刷指示を出力するアプリケーションプログラムと、前記プリンタに対応するサポートプログラムと、が組み込まれ、
前記情報処理装置のオペレーティングシステムは、あらかじめ組み込まれたプログラムである汎用印刷プログラムを有しており、
前記情報処理装置で生成された印刷データに基づく印刷を、前記プリンタに実行させる印刷方法において、
画像データを取得する画像データ取得ステップと、
前記画像データ取得ステップにて取得された画像データによって示される画像の印刷を前記プリンタに行わせる印刷指示があった場合に、前記汎用印刷プログラムに対して、前記印刷指示があったことを示す通知を入力する印刷指示入力ステップを含み、前記汎用印刷プログラムは、前記印刷指示があったことを示す前記通知が入力された場合に前記サポートプログラムを動作させ、前記サポートプログラムは、画像に加工を施す加工機能を有しており、
さらに、
前記サポートプログラムを動作させることによって、前記画像データ取得ステップにて取得された画像データであって、前記汎用印刷プログラムが出力する画像データである中間画像データ又は印刷データに対して前記加工機能による加工を施した加工済み画像データを生成する第１生成ステップを含み、前記汎用印刷プログラムは、前記サポートプログラムから提供された前記加工済み画像データに基づく画像の印刷を前記プリンタに行わせるための処理を行い、
さらに、
前記サポートプログラムの前記加工機能による加工に用いる加工設定を取得する加工設定取得ステップと、
前記プリンタによって印刷される画像の表示指示を受け付けた場合に、前記汎用印刷プログラムに、前記画像データ取得ステップにて取得された画像データから中間画像データ又は印刷データを生成させるデータ生成ステップと、
前記プリンタによって印刷される画像の表示指示を、前記アプリケーションプログラムを介して受けた場合に、前記画像データ取得ステップにて取得された画像データによって示される画像に、前記加工設定取得ステップにて取得した前記加工設定に基づく加工を施させる加工要求を、前記サポートプログラムに入力する加工要求ステップと、
前記サポートプログラムに前記加工要求が入力された場合に、前記サポートプログラムを動作させることによって、前記画像データ取得ステップにて取得された画像データに対して前記加工機能による加工を施した加工済み画像データを生成する第２生成ステップと、
前記第２生成ステップによって生成された前記加工済み画像データを前記サポートプログラムから前記アプリケーションプログラムに受け渡し、前記加工済み画像データによって示される画像を、前記アプリケーションプログラムを介して前記情報処理装置の表示デバイスに表示させるプレビュー表示ステップと、
を含む、
ことを特徴とする印刷方法。
【請求項１０】
請求項１に記載するアプリケーションプログラムにおいて、
前記加工要求処理では、
前記印刷データを、前記加工要求と関連付けて前記サポートプログラムに入力する、
ことを特徴とするアプリケーションプログラム。
【請求項１１】
請求項１０に記載するアプリケーションプログラムにおいて、
前記加工要求処理では、
前記サポートプログラムの第１のインタフェースを介して前記印刷データを入力し、
前記サポートプログラムは、
前記アプリケーションプログラムから印刷データを受けるための前記第１のインタフェースと、前記汎用印刷プログラムから印刷データを受けるための第２のインタフェースと、を有しており、
前記アプリケーションプログラムから前記第１のインタフェースを介して前記印刷データを受けた場合、前記第１のインタフェースを介して受けた前記印刷データによって示される画像に加工を施した前記加工済み画像データとしての加工済み印刷データを生成し、生成した前記加工済み印刷データを前記アプリケーションプログラムに提供し、
前記汎用印刷プログラムから前記第２のインタフェースを介して前記印刷データを受けた場合、前記第２のインタフェースを介して受けた前記印刷データによって示される画像に加工を施した加工済み印刷データを生成し、生成した前記加工済み印刷データを前記汎用印刷プログラムに提供し、前記汎用印刷プログラムは、前記サポートプログラムから前記加工済み印刷データを取得した後、取得した前記加工済み印刷データに基づく画像の印刷を前記プリンタに行わせるための処理を行う、
ことを特徴とするアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される技術分野は、プリンタに印刷を行わせる印刷指示を出力するアプリケーションプログラム、情報処理装置、および印刷方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ等の情報処理装置からプリンタを制御する技術として、情報処理装置にプリンタドライバをインストールし、プリンタドライバによって印刷データを生成し、その印刷データをプリンタに送信する構成が広く知られている（例えば、特許文献１）。プリンタドライバは、プリンタのメーカから提供され、そのプリンタが有する各種の機能に対応しており、そのプリンタを十分に利用することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１３４７１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、前述したプリンタドライバを利用せず、オペレーティングシステム（ＯＳ）に標準に組み込まれている汎用印刷プログラムによってプリンタを制御する技術が実用化されている。この技術では、ＯＳとＯＳ標準の汎用印刷プログラムとの関連付けを行い、以後、そのプリンタに対する印刷指示を受け付けた場合に、プリンタドライバを用いずに、ＯＳ標準の汎用印刷プログラムによる印刷が可能になる。
【０００５】
前述したＯＳ標準の汎用印刷プログラムによる印刷であっても、プリンタドライバと同様に画像データに拡縮処理や合成処理等の加工を施した印刷データを生成する加工機能をサポートすることが望まれる。このような加工機能をサポートした場合、ユーザの設定ミス等によってユーザの意図しない加工が施される可能性があるが、そのような加工が施された印刷データをプリンタに送信してもユーザの希望する印刷物が出力されず、消耗品を無駄に消費してしまう。
【０００６】
本明細書は、ＯＳ標準の汎用印刷プログラムが組み込まれた情報処理装置において、ユーザの意図しない加工が施された画像に基づく印刷を低減する技術を開示する。
【課題を解決するための手段】
【０００７】
上述した課題の解決を目的としてなされたアプリケーションプログラムは、情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに印刷を行わせる印刷指示を出力するアプリケーションプログラムであって、前記コンピュータに、画像データを取得する画像データ取得処理と、前記画像データ取得処理にて取得された画像データによって示される画像の印刷を前記プリンタに行わせる印刷指示があった場合に、前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた汎用印刷プログラムに対して、前記印刷指示があったことを示す通知を入力する印刷指示入力処理を実行させ、前記情報処理装置には、前記プリンタに対応するサポートプログラムが組み込まれており、前記サポートプログラムは、画像に加工を施す加工機能を有するものであり、前記汎用印刷プログラムは、前記印刷指示があったことを示す前記通知が入力された場合に前記サポートプログラムを動作させ、前記サポートプログラムは、前記画像データ取得処理にて取得された画像データであって、前記汎用印刷プログラムが出力する中間画像データ又は印刷データに対して前記加工機能による加工を施した加工済み画像データを生成し、前記汎用印刷プログラムは、前記サポートプログラムから提供された前記加工済み画像データに基づく画像の印刷を前記プリンタに行わせるための処理を行い、さらに前記コンピュータに、前記サポートプログラムの前記加工機能による加工に用いる加工設定を取得する加工設定取得処理と、前記プリンタによって印刷される画像の表示指示を受け付けた場合に、前記汎用印刷プログラムに、前記画像データ取得処理にて取得された画像データから中間画像データ又は印刷データを生成させ、前記生成された中間画像データ又は印刷データと前記加工設定取得処理にて取得した前記加工設定に基づく加工を施させる加工要求を、前記サポートプログラムに入力する加工要求処理と、を実行させ、前記サポートプログラムは、前記加工要求が入力された場合に、前記画像データ取得処理にて取得された画像データに対して前記加工機能による加工を施した加工済み画像データを生成し、さらに前記コンピュータに、前記加工要求処理での前記加工要求に基づいて前記サポートプログラムにて生成された前記加工済み画像データを前記サポートプログラムから取得し、取得した前記加工済み画像データによって示される画像を前記情報処理装置の表示デバイスに表示させるプレビュー表示処理を実行させる、ことを特徴とする。
【０００８】
上記構成を有するアプリケーションプログラムを実行する情報処理装置は、アプリケーションプログラムから直接、印刷時に画像を加工するサポートプログラムに対して加工要求を入力し、サポートプログラムから出力された加工済み画像データを取得してプレビュー表示する。これにより、ユーザは、印刷指示を情報処理装置に入力する前に、印刷時に生成される画像と同等の加工画像を確認することができ、ユーザの意図しない加工が施された画像の印刷を低減することができる。
【０００９】
上記装置の機能を実現するための制御方法、コンピュータプログラム、および当該コンピュータプログラムを格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【００１０】
本明細書に開示される技術によれば、ＯＳ標準の汎用印刷プログラムが組み込まれた情報処理装置において、ユーザの意図しない加工が施された画像に基づく印刷を低減する技術が実現される。
【図面の簡単な説明】
【００１１】
【図１】印刷システムの電気的構成を示すブロック図である。
【図２】各プログラムによる動作の順序の例を示すシーケンス図である。
【図３】編集アプリによるプレビュー動作の例を示すシーケンス図である。
【図４】ウォータマーク設定画面の一例を示す図である。
【図５】印刷プレビュー画面の一例を示す図である。
【図６】編集アプリによる処理の手順の例を示すフローチャートである。
【図７】編集アプリによるプレビュー動作の変形例を示すシーケンス図である。
【図８】編集アプリの動作の変形例である。
【発明を実施するための形態】
【００１２】
以下、実施の形態のプログラムを利用する印刷システムについて、添付図面を参照しつつ詳細に説明する。本形態は、パーソナルコンピュータ（以下、「ＰＣ」とする）とプリンタとを含む印刷システムを具体化した実施の形態を開示するものである。
【００１３】
本形態のプログラムが実行される印刷システムの構成の例を、図１に示す。図１に示すシステムには、ＰＣ１と、プリンタ２と、プリンタ３と、が含まれる。ＰＣ１は、情報処理装置の一例である。プリンタ２およびプリンタ３は、印刷機能を有する装置であり、ローカル通信またはネットワーク通信を介して、ＰＣ１と通信可能である。
【００１４】
ＰＣ１は、例えば、図１に示すように、コントローラ１０と、ユーザインタフェース（以下、「ＵＩ」とする）２０と、通信インタフェース（以下、「通信ＩＦ」とする）３０と、を備えている。ＵＩ２０及び通信ＩＦ３０は、コントローラ１０に電気的に接続されている。
【００１５】
ＵＩ２０は、各種の表示を行い、ユーザの指示入力を受け付けるハードウェアを含む。ＵＩ２０は、表示機能と入力受付機能との両方の機能を有するタッチパネルであっても良いし、表示機能を有するディスプレイと入力受付機能を有するキーボードやマウス等との組合せであっても良い。
【００１６】
通信ＩＦ３０は、プリンタ２やプリンタ３との通信を行うためのハードウェアや、インターネットへのアクセスを行うためのハードウェアを含む。通信ＩＦ３０は、通信方式の異なる複数のインタフェースを含んでいても良い。通信方式としては、例えば、ネットワーク通信、ＵＳＢ通信がある。また、有線通信であっても無線通信であってもよい。
【００１７】
コントローラ１０は、ＣＰＵ１１と、メモリ１２と、を含む。ＣＰＵ１１は、コンピュータの一例である。メモリ１２は、ＲＯＭと、ＲＡＭと、不揮発性メモリと、を含み、各種のアプリケーションプログラム（以下、「アプリ」とする）などのプログラムや各種のデータなどを記憶する。なお、本明細書では、メモリの詳細を区別しない。ＣＰＵ１１は、メモリ１２から読み出したプログラムに従って、また、ユーザの指示に基づいて、各種の処理を実行する。なお、図１中のコントローラ１０は、ＰＣ１の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にＰＣ１に存在する単一のハードウェアを表すとは限らない。
【００１８】
メモリ１２の一例は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００１９】
メモリ１２には、例えば、図１に示すように、汎用印刷プログラム４１を含むオペレーティングシステム（以下、「ＯＳ」とする）２１と、補助プログラム４２と、編集アプリ４３と、が記憶されている。補助プログラム４２は、サポートプログラムの一例である。補助プログラム４２は、例えば、マイクロソフト社が公開した仕様に基づいてプリンタベンダによって作成された、ハードウェアサポートアプリ（略称、ＨＳＡ）である。ＯＳ２１は、例えば、マイクロソフトウィンドウズ（登録商標）、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）である。なお、メモリ１２には、図示したもの以外にも、接続されているプリンタの情報を含む各種のデータや、ブラウザ等の各種のプログラムが記憶されている。
【００２０】
汎用印刷プログラム４１は、ＰＣ１からプリンタ２等の各種のプリンタで印刷を実行させるためのアプリであり、ＯＳ２１にあらかじめ組み込まれているＯＳ標準の汎用印刷プログラムである。本形態の汎用印刷プログラム４１は、編集アプリ４３等から印刷実行通知を受け取ると、印刷実行通知に付加された印刷対象の画像データに基づいて、プリンタが対応可能な印刷データを生成するプログラムである。
【００２１】
汎用印刷プログラム４１は、各プリンタのベンダによって提供される複数種類のモデルのプリンタに適用可能な汎用のアプリであり、各モデルに共通する動作を各プリンタに行わせるプログラムである。あるいは、汎用印刷プログラム４１は、ＯＳ２１にあらかじめ組み込むために、各プリンタのベンダによってＯＳ２１のベンダに提供されるプログラム、例えば、ＯＳ２１にあらかじめ組み込むために提供されるプリンタドライバの一種であっても良い。
【００２２】
補助プログラム４２は、汎用印刷プログラム４１の動作に付随してＯＳ２１からの指示に基づいて処理を実行するプログラムであり、対象のハードウェアの制御をサポートするアプリである。補助プログラム４２は、例えば、汎用印刷プログラム４１から起動される。補助プログラム４２は、プリンタ２等のベンダによってプリンタのタイプごとに用意されるプログラムである。例えば、インクジェットプリンタ用の補助プログラム４２やレーザプリンタ用の補助プログラム４２が用意される。プリンタのタイプごとに限らず、プリンタのモデルごとやプリンタのモデルのシリーズごとに用意される補助プログラム４２が有っても良い。尚、補助プログラム４２は、プリンタ２等のベンダによってプリンタのモデルごと、或いは、モデルのシリーズごとに用意されるプログラムであっても良い。
【００２３】
プリンタのベンダは、ＯＳ２１のベンダが指定する手順に従って、補助プログラム４２をＯＳ２１のベンダが提供するプラットフォームに登録する。ＯＳ２１は、ＰＣ１に新たにプリンタ２が接続され、そのプリンタ２に対応する補助プログラム４２がプラットフォームに登録されている場合には、当該補助プログラム４２を補助プログラム４２が格納されているサーバからダウンロードしてＰＣ１に組み込む。
【００２４】
そして、ＯＳ２１は、組み込んだ補助プログラム４２の識別情報を新たに接続されたプリンタのプリンタ情報に対応付けて、メモリ１２に記憶させる。複数のモデルのプリンタが接続されているＰＣ１では、各モデルのタイプに対応するそれぞれの補助プログラムが組み込まれ、各プリンタと各補助プログラムとを対応付ける情報がメモリ１２に記憶される。つまり、メモリ１２には、ＰＣ１に接続されている各プリンタのプリンタ情報として、当該プリンタのモデル情報やアクセス情報とともに、対応する補助プログラム４２の情報が記憶される。
【００２５】
編集アプリ４３は、例えば、画像データや文書データの作成や編集を行うためのアプリである。編集アプリ４３は、例えば、マイクロソフト  ワード（登録商標）、パワーポイント（登録商標）である。また、プリンタ２やプリンタ３のベンダから提供されるアプリであってもよい。編集アプリ４３は、プリンタ２に所定の動作を行わせる指示を含むユーザ操作を受け付ける。具体的には、編集アプリ４３は、ＵＩ２０を介して、例えば、プリンタ２に印刷を実行させる印刷指示を受け付ける。
【００２６】
なお、実施の形態における処理およびフローチャートの各処理ステップは、基本的に、補助プログラム４２などのプログラムに記述された命令に従ったＣＰＵ１１の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、ＣＰＵ１１の処理を表している。ＣＰＵ１１による処理は、ＯＳ２１のＡＰＩを用いたハードウェア制御も含む。本明細書では、ＯＳ２１の詳細な記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムＢがハードウェアＣを制御する」という趣旨の記載は、「プログラムＢがＯＳ２１のＡＰＩを用いてハードウェアＣを制御する」ことを指してもよい。また、プログラムに記述された命令に従ったＣＰＵ１１の処理を、省略した文言で記載することがある。例えば、「ＣＰＵ１１が行う」のようにプログラムを省略して記載することがある。また、プログラムに記述された命令に従ったＣＰＵ１１の処理を、「プログラムＡが行う」のようにＣＰＵを省略した文言で記載することがある。
【００２７】
なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ１１が要求することなくデータを受信するという処理も、「ＣＰＵ１１がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
【００２８】
また、ＣＰＵ１１による、情報Ａは事柄Ｂであることを示しているか否かを判断する処理を、「情報Ａから、事柄Ｂであるか否かを判断する」のように概念的に記載することがある。ＣＰＵ１１による、情報Ａが事柄Ｂであることを示しているか、事柄Ｃであることを示しているか、を判断する処理を、「情報Ａから、事柄Ｂであるか事柄Ｃであるかを判断する」のように概念的に記載することがある。
【００２９】
次に、本形態の補助プログラム４２の構成、および補助プログラム４２の動作を含む印刷手順の一例について、図２のシーケンス図を参照して説明する。補助プログラム４２は、編集アプリ４３等を介して、補助プログラム４２に対応するプリンタが指定された状態で汎用印刷プログラム４１を使用して印刷する印刷指示を受け付けた場合に、汎用印刷プログラム４１から実行指示されるプログラムである。以下では、ＰＣ１がＵＩ２０を介して、例えば、編集アプリ４３にて、印刷対象の画像データが指定された状態で、汎用印刷プログラム４１を介してのプリンタ２での印刷実行の指示を受け付けた場合であって、プリンタ２のモデルのタイプに対応する補助プログラム４２がＰＣ１に組み込まれている場合について説明する。
【００３０】
まず、編集アプリ４３は、ＵＩ２０を介して、印刷対象の画像の指定と、印刷実行の指示入力を受け付ける（矢印Ａ）。編集アプリ４３が表示した画像は、印刷対象の画像の例である。編集アプリ４３は、例えば、編集アプリ４３にて編集された文書や、編集アプリ４３にて読み込んだ写真などを画像として表示する。そして、印刷指示を受け付けた編集アプリ４３は、受け付けた印刷指示の内容を示す印刷実行通知をＯＳ２１に渡す。なお、図２では、ＯＳ２１の動作を省略して示している。
【００３１】
ＯＳ２１は、汎用印刷プログラム４１を使用する印刷実行通知を受け付けた場合、汎用印刷プログラム４１を実行させ、汎用印刷プログラム４１に印刷実行通知を渡す（矢印Ｂ）。汎用印刷プログラム４１は、印刷実行通知にて、印刷指示に含まれる各種の情報、例えば、印刷させるプリンタを示す情報、アプリにて設定された印刷パラメータを示す情報、印刷対象となる画像データを示す情報、印刷を指示したユーザを識別する情報を、取得できる。なお、後述するように、これらの情報は、補助プログラム４２でも使用される。
【００３２】
汎用印刷プログラム４１は、印刷実行通知に含まれる画像データの形式を中間画像データの形式に変換することで中間画像データを生成し、中間画像データを含む印刷ジョブを生成する（矢印Ｃ）。編集アプリ４３に含まれる画像データは種々のタイプのものであり、汎用印刷プログラム４１は、受け取った画像データを、印刷データの生成に適した中間画像データに変換する。なお、印刷実行通知に含まれる画像データが印刷データの生成に適したデータであれば、中間画像データの生成を省略し、そのまま中間画像データとしても良い。中間画像データは、例えば、ＸＰＳデータである。
【００３３】
さらに、汎用印刷プログラム４１は、印刷実行通知に含まれる情報に基づいて、印刷を実行させる装置として指定されているプリンタを特定する。汎用印刷プログラム４１は、例えば、プリンタ２が指定されている場合、メモリ１２に記憶されているプリンタ情報に含まれるプリンタのモデル情報に基づいて、プリンタ２のモデルを特定する。そして、印刷指示にて指定されたプリンタであるプリンタ２に対応する補助プログラム４２がメモリ１２に記憶されていることから、汎用印刷プログラム４１による印刷データの生成を開始する前に、汎用印刷プログラム４１は、補助プログラム４２の処理の実行命令を出力し、補助プログラム４２を動作させることが可能である。この場合、補助プログラム４２への実行命令が汎用印刷プログラム４１から出力される。
【００３４】
補助プログラム４２は、本形態では、中間画像データの画像を編集する処理が行われる。具体的には、汎用印刷プログラム４１から補助プログラム４２に対して、編集処理の実行命令が出力され（矢印Ｄ）、補助プログラム４２は、汎用印刷プログラム４１から印刷パラメータや中間画像データを取得し、印刷パラメータの設定に応じた加工を中間画像データの画像に施す（矢印Ｅ）。この印刷パラメータの設定に応じて加工を施された加工済み中間画像データは、「加工済み画像データ」の一例である。画像の加工としては、例えば画像の集約や分割、画像の拡大や縮小、ウォータマーク等の画像の合成が該当する。補助プログラム４２は、各処理を終了する際、終了通知を汎用印刷プログラム４１に通知する。
【００３５】
そして、補助プログラム４２は、編集処理の終了を示す終了通知を汎用印刷プログラム４１に返して処理を終了する（矢印Ｆ）。補助プログラム４２は、処理後のデータを汎用印刷プログラム４１に提供する。
【００３６】
本形態では、汎用印刷プログラム４１は、中間画像データを生成した後、必要に応じて補助プログラム４２を動作させ、その後、その中間画像データに基づいて印刷データを生成する（矢印Ｇ）。汎用印刷プログラム４１によって生成される印刷データは、各種のプリンタにて印刷に使用できる形式の印刷データである。印刷データは、例えば、ＰＷＧＲａｓｔｅｒデータ、またはＰＤＦデータである。
【００３７】
汎用印刷プログラム４１は、印刷データを生成した後、プリンタ２に対して印刷命令を送信する（矢印Ｈ）。これにより、印刷命令を受信したプリンタ２では、印刷命令に付された印刷データに従って、印刷データの画像の印刷が実行される。プリンタ２は、コマンドが付加された印刷データを受信した場合、印刷の実行に際して、コマンドによって示される動作を行う。
【００３８】
尚、補助プログラム４２は、印刷データを編集する処理を行っても良い。この場合、補助プログラム４２は、印刷データ編集処理として、例えば、印刷データの編集を行う。補助プログラム４２は、例えば、プリンタ２に特有な機能を実行させるためのコマンドを印刷データに付加する。プリンタ２に特有な機能としては、例えば、トナーセーブ設定、フィニッシャの設定、がある。プリンタ２が自身でウォータマークやヘッダ／フッタ等を画像に付加できる機能を有している場合、印刷データ編集処理では、これらの機能を実行させるコマンドを印刷データに付加しても良い。このように、補助プログラム４２が、後述するように汎用印刷プログラム４１を介さずに印刷データをプリンタ２に送信する場合は、補助プログラム４２が、汎用印刷プログラム４１が生成する印刷データと異なるデータ形式に印刷データを変換して、送信しても良い。
【００３９】
編集アプリ４３は、例えば、補助プログラム４２と同じベンダから提供され、プリンタ２のタイプに対応している。編集アプリ４３は、設定画面をＵＩ２０に表示させ、印刷パラメータの設定を受け付ける。
【００４０】
なお、印刷パラメータには、汎用印刷プログラム４１による印刷データの生成に用いられる汎用パラメータと、汎用印刷プログラム４１による印刷データの生成には用いられない固有パラメータとがある。汎用パラメータは、例えば、用紙サイズ、印刷解像度、カラー／モノクロ、であり、固有パラメータは、例えば、給紙トレイの設定、両面／片面、集約印刷、ウォータマークの付加、である。補助プログラム４２は、印刷パラメータに関する設定画面を介して汎用パラメータの編集も固有パラメータの編集も行うことができる。一方、一般的な編集アプリは、汎用パラメータの編集は受け付けるが、固有パラメータの編集は受け付けないものが多い。しかし、編集アプリ４３は、補助プログラム４２と同じベンダから提供され、同じタイプのプリンタ２に対応しているため、補助プログラム４２と同様に、汎用パラメータの編集も、固有パラメータの編集も受け付けることができる。
【００４１】
汎用のパラメータは、編集アプリ４３と汎用印刷プログラム４１と補助プログラム４２との間で相互にやり取りができるパラメータである。
【００４２】
一方、固有のパラメータは、汎用印刷プログラム４１と補助プログラム４２との間及び編集アプリ４３と汎用印刷プログラム４１との間でやり取りできないパラメータである。編集アプリ４３は、汎用印刷プログラム４１を介さず、メモリ１２内の編集アプリ４３用の記憶領域に固有のパラメータを記憶し、編集および読み出しを行う。編集アプリ４３用の記憶領域は、例えば、ＯＳ２１によって準備されるレジストリであっても良い。なお、汎用印刷プログラム４１が、固有のパラメータをも扱うことのできる場合は、補助プログラム４２は、汎用印刷プログラム４１を介して、固有のパラメータを受け取ってもよい。
【００４３】
補助プログラム４２は、信号を送受信するインタフェースを複数備える。インタフェースは、たとえば、補助プログラム４２が実行可能な処理毎に設けられていてもよいし、信号の種類に応じて設けられていてもよい。
【００４４】
本形態では、補助プログラム４２は、編集アプリ４３から出力された実行命令を受ける第１のインタフェースと、汎用印刷プログラム４１から出力された実行命令を受ける第２のインタフェースを備える。補助プログラム４２は、第１のインタフェースを介して、編集アプリ４３から中間画像データの編集処理を実行する実行命令を受けた場合、その中間画像データの画像を印刷パラメータに基づいて編集し、編集した中間画像データを編集アプリ４３に送る。一方、補助プログラム４２は、第２のインタフェースを介して、編集アプリ４３から中間画像データの編集処理を実行する実行命令を受けた場合、その中間画像データの画像を印刷パラメータに基づいて編集し、編集した中間画像データを汎用印刷プログラム４１に送る。
【００４５】
本形態の編集アプリ４３は、印刷プレビュー機能を有している。以下、編集アプリ４３が印刷プレビュー機能を動作させるための処理について、図３に示すシーケンス図を参照して説明する。尚、図３中、図２に対応する処理については、図２と同じ符号を付している。
【００４６】
図３に示すように、編集アプリ４３は、例えば、画像データを取得し（矢印Ｘ１２）、印刷パラメータを取得する（矢印Ｘ１４）。矢印Ｘ１２に示す処理と矢印Ｘ１４に示す処理とは逆順であっても良い。矢印Ｘ１２の処理は、「画像データ取得処理」の一例である。矢印Ｘ１４の処理は、加工設定取得処理の一例である。Ｘ１４の処理にて取得した印刷パラメータは、「加工設定」の一例である。編集アプリ４３は、例えば、印刷パラメータ設定画面を介して、印刷パラメータを取得する。印刷パラメータ設定画面は、汎用パラメータと固有パラメータの両方に関する設定を受け付けるものである。編集アプリ４３は、後の補助プログラム４２の処理に用いるために、印刷パラメータ設定画面にて受け付けた固有パラメータを、編集アプリ４３と補助プログラム４２が共有するメモリ１２の記憶領域に記憶する。また、編集アプリ４３は、印刷パラメータ設定画面を介して受け付けた汎用パラメータを、編集アプリ４３と補助プログラム４２が共有するメモリ１２の記憶領域に記憶しても良い。
【００４７】
印刷パラメータを設定するための印刷パラメータ設定画面の一例を、図４を参照して説明する。図４は、中間画像データに合成するウォータマークに関する設定を行うためのウォータマーク設定画面ＤＡ１０である。ウォータマーク設定画面ＤＡ１０は、例えば、編集アプリ４３の印刷設定画面から、プリンタ２に固有の設定としてウォータマークが選択された場合に表示されるダイアログである。ウォータマーク設定画面ＤＡ１０は、例えば、スタイル選択領域ＳＡ１０と、文字設定領域ＳＡ１２と、画像ファイル設定領域ＳＡ１４と、位置設定領域ＳＡ１６とを備える。
【００４８】
スタイル選択領域ＳＡ１０は、ウォータマークを文字と画像ファイルの何れにするかを選択するものである。文字設定領域ＳＡ１２は、スタイル選択領域ＳＡ１０にて文字が選択された場合に、文字の各種設定を行うものである。文字の各種設定には、例えば、表示内容、フォント、スタイル、サイズ、色の設定などが含まれる。画像ファイル設定領域ＳＡ１４は、スタイル選択領域ＳＡ１０にて画像ファイルが選択された場合に、画像ファイルの各種設定を行うものである。画像ファイルの各種設定には、例えば、画像ファイルの保存場所、画像の拡大・縮小率、透明度などが含まれる。位置設定領域ＳＡ１６は、ウォータマークの印刷位置を設定するものである。
【００４９】
ウォータマーク設定画面ＤＡ１０には、印刷ボタンＡ１０と、キャンセルボタンＡ１２と、印刷プレビューボタンＡ１４が設けられている。印刷ボタンＡ１０は、編集アプリ４３において設定された印刷パラメータに基づいて印刷を実行する印刷指示を受け付けるための操作ボタンである。キャンセルボタンＡ１２は、ウォータマークの設定を中止する指示を受け付けるための操作ボタンである。印刷プレビューボタンＡ１４は、印刷パラメータ設定画面によって設定された印刷パラメータに従って加工された中間画像データをＵＩ２０に表示させるプレビュー指示を、受け付けるための操作ボタンである。
【００５０】
図３に戻り、編集アプリ４３は、印刷プレビューボタンＡ１４が押下され、プレビュー指示を受け付けると（Ｘ１６）、中間画像データの生成を汎用印刷プログラム４１に依頼する（矢印Ｘ２２）。このとき、編集アプリ４３は、矢印Ｘ１２の処理にて取得した画像データを依頼に付加する。また、編集アプリ４３は、矢印Ｘ１４の処理にて取得した印刷パラメータのうち汎用パラメータのみを依頼に付加する。依頼には、印刷のために中間画像データを作成する依頼ではないことを示すフラグ、あるいは、プレビュー表示のために中間画像データを生成する依頼であることを示すフラグが、付されていてもよい。
【００５１】
汎用印刷プログラム４１は、依頼を受けたことに応じて、画像データを印刷パラメータに基づいて中間画像データに変換し（矢印Ｘ２４）、編集アプリ４３に返す（矢印Ｘ２６）。汎用印刷プログラム４１は、汎用パラメータを処理できるが、固有パラメータを処理できない。そのため、汎用印刷プログラム４１は、依頼に付加された汎用パラメータを用いて画像データを加工し、中間画像データを生成する。よって、汎用印刷プログラム４１から編集アプリ４３に出力された中間画像データは、ウォータマークなどのプリンタ２に特有の機能が反映されておらず、汎用印刷プログラム４１が編集アプリ４３から印刷実行通知を受けて補助プログラム４２に出力する中間画像データと同じ形式である。
【００５２】
編集アプリ４３は、汎用印刷プログラム４１から中間画像データを受けると、補助プログラム４２の第１インタフェースを介して編集処理の実行命令を直接入力する（矢印Ｘ３２）。つまり、編集アプリ４３は、プレビュー表示用に中間画像データを加工する処理の実行を、補助プログラム４２に要求する。実行命令には、印刷のために中間画像データを編集する編集処理を実行させる実行命令ではないことを示すフラグ、あるいは、プレビュー表示のために中間画像データを編集する編集処理を実行させる実行命令であることを示すフラグが、付されていてもよい。このように編集アプリ４３が入力する実行命令は、以下の説明において、「加工要求」ともいう。加工要求は、汎用印刷プログラム４１から出力された中間画像データと、Ｘ１４にて取得した印刷パラメータとが付される。Ｘ３６の処理は「加工要求処理」の一例である。中間画像データは、汎用印刷プログラム４１が作成したものであるため、補助プログラム４２は、印刷時に汎用印刷プログラム４１から受ける中間画像データと同じ形式で編集アプリ４３から中間画像データを受けることができる。
【００５３】
補助プログラム４２は、第１のインタフェースを介して加工要求を受けると、加工要求に付加された中間画像データを、加工要求に付加された印刷パラメータに基づいて編集する（Ｘ３４）。この場合に使用される印刷パラメータは、固有パラメータを含む。よって、補助プログラム４２は、固有パラメータに基づいて中間画像データを加工することができる。例えば、図４のウォータマーク設定画面ＤＡ１０によって設定された印刷パラメータが実行命令に付加されている場合、補助プログラム４２は、その印刷パラメータに従ってウォータマークを中間画像データに合成する。本形態では、第１のインタフェースを介して編集処理の実行命令を受けた場合、第２のインタフェースを介して実行される編集処理と同様の処理が実行されることになる。
【００５４】
なお、編集アプリ４３が、矢印Ｘ１４の処理にて取得した固有パラメータを、編集アプリ４３と補助プログラム４２がメモリ１２の共有する記憶領域に記憶させた場合、編集アプリ４３は、その共有する記憶領域を介して、固有パラメータを補助プログラム４２に渡してもよい。つまり、編集アプリ４３は、固有パラメータを含まない加工要求を補助プログラム４２に渡し、補助プログラム４２は、編集アプリ４３と補助プログラム４２が共有する記憶領域から固有パラメータを読み出して中間画像データを加工するようにしてもよい。
【００５５】
また、汎用パラメータの中には、補助プログラム４２が中間画像データを加工する際に必要なものがある。よって、矢印Ｘ３２の処理では、汎用パラメータと固有パラメータの両方を加工要求に付してもよい。この場合、補助プログラム４２は、矢印Ｘ４４の処理にて、矢印Ｘ３２の処理にて受け取った汎用パラメータと固有パラメータの両方を用いて中間画像データを加工する。
【００５６】
また、編集アプリ４３が、プレビュー表示用の中間画像データを補助プログラム４２に生成させる場合、プレビュー表示用の中間画像データの品質を、印刷表示用の中間画像データの品質より低くしても良い。
【００５７】
例えば、編集アプリ４３が、印刷のために中間画像データを編集する実行命令ではないことを示すフラグ、あるいは、プレビュー表示のために中間画像データを編集する編集処理を実行させる実行命令であることを示すフラグを加工要求に付している場合、補助プログラム４２は、矢印Ｘ３４の処理において、印刷用の中間画像データよりも品質がやや落ちるものの、処理負荷が軽い中間画像データを作成してもよい。例えば、補助プログラム４２が、汎用パラメータで設定されている印刷解像度よりも低い印刷解像度で、プレビュー表示用の中間画像データを生成するようにしてもよい。
【００５８】
また例えば、編集アプリ４３は、矢印Ｘ２２の処理にて、矢印Ｘ１４の処理で取得した印刷パラメータによって設定されている品質よりもやや低い品質の印刷パラメータを、汎用印刷プログラム４１に渡してもよい。そして、編集アプリ４３は、矢印Ｘ３２の処理では、矢印Ｘ１４の処理で取得した印刷パラメータによって設定されている品質よりもやや低い品質の印刷パラメータを、補助プログラム４２に渡してもよい。
【００５９】
補助プログラム４２は、中間画像データを加工すると、その加工済み中間画像データを付した終了通知を編集アプリ４３に送る（矢印Ｘ３６）。編集アプリ４３は、補助プログラム４２によって編集された加工済み中間画像データを受けると、その加工済み中間画像データをＵＩ２０に表示する（矢印Ｘ３８）。矢印Ｘ３６、矢印Ｘ３８の処理は、「プレビュー表示処理」の一例である。補助プログラム４２が実行命令に応じて編集した加工済み中間画像データは、「加工済み画像データ」の一例である。編集アプリ４３が図３に示す矢印Ｘ１４の処理において編集する印刷パラメータと、補助プログラム４２が図２に示す矢印Ｅの編集処理において編集する印刷パラメータとの条件が同じ場合、補助プログラム４２が実行命令に応じて編集したプレビュー表示用の中間画像データは、印刷時に補助プログラム４２が汎用印刷プログラム４１からの実行命令に応じて編集した印刷用の中間画像データと同じになる。よって、編集アプリ４３は、印刷時に中間画像データを編集する汎用印刷プログラム４１と別のプログラムによってプレビュー用の画像を作成する場合と比較して、より正確なプレビュー用の画像をＵＩ２０に表示させることができる。
【００６０】
印刷プレビュー画面の一例を図５に示す。例えば、編集アプリ４３は、図４のウォータマーク設定画面ＤＡ１０の設定内容に応じて中間画像データの画像にウォータマークを合成した加工画像データを補助プログラム４２から受け取ると、図５に示す印刷プレビュー画面ＤＡ２０を、ＵＩ２０を介してＰＣ１に表示させる。印刷プレビュー画面ＤＡ２０は、プレビュー画像ＰＲ２０と、印刷実行ボタンＡ２０と、再編集ボタンＡ２２と、印刷キャンセルボタンＡ２４が表示されている。
【００６１】
プレビュー画像ＰＲ２０は、印刷画像のイメージを表示するものである。プレビュー画像ＰＲ２０としては、例えば、ウォータマークの表示内容「ＣＯＰＹ」を、設定されたフォント、サイズ、文字色等で表示し、更に、「４５°」傾けた状態で、画像データに重ねたものが表示される。
【００６２】
印刷実行ボタンＡ２０は、印刷の実行を指示する操作を受け付けるものである。再編集ボタンＡ２２は、ウォータマークを再編集する指示を受け付けるものである。印刷キャンセルボタンＡ２４は、印刷をキャンセルする指示を受け付けるものである。よって、印刷プレビュー画面ＤＡ２０は、ユーザが印刷画像を直接確認して、意図した画像であるか否かを判断した結果を、受け付けることができる。尚、印刷実行ボタンＡ２０，再編集ボタンＡ２２、印刷キャンセルボタンＡ２４は、印刷プレビュー画面と別のＵＩ２０に表示させても良い。この指示を受け付けるＵＩ２０は、例えば、印刷プレビュー画面を表示した後に表示される。
【００６３】
図３に戻り、編集アプリ４３は、印刷実行ボタンＡ２０が押下され、印刷指示を受け付けると（矢印Ａ）、本加工要求を補助プログラム４２に送る（矢印Ｘ４２）。本加工要求は、印刷のために中間画像データを加工することを要求するものである。本加工要求には、プレビュー表示のために中間画像データを編集する編集処理を実行させる実行命令ではないことを示すフラグ、あるいは、印刷のために中間画像データを編集する編集処理を実行させる実行命令であることを示すフラグが、付されていてもよい。
【００６４】
本加工要求には、少なくとも、固有パラメータを含む印刷パラメータが付加されている。矢印Ｘ１２〜Ｘ３８の処理が必ず行われるとは限らないので、正確に固有パラメータを編集アプリ４３から補助プログラム４２に渡すためである。一方、汎用パラメータは、別途、汎用印刷プログラム４１から補助プログラム４２に送られるため、本加工要求に付加される必要はない。また、編集アプリ４３が後述する印刷実行通知（矢印Ｂ）よりも前に本加工要求を補助プログラム４２に送るのは、汎用印刷プログラム４１からの実行命令より先に固有パラメータを補助プログラム４２に確実に伝えるためである。
【００６５】
編集アプリ４３は、印刷実行ボタンＡ２０が押下され、印刷指示を受け付けた場合、矢印Ｘ３２の処理にて加工要求に付した印刷パラメータと同じ印刷パラメータを本加工要求に付し、補助プログラム４２に渡す。尚、編集アプリ４３は、再編集ボタンＡ２２が押下された場合、印刷パラメータを変更する入力を受け付けた後、変更後の印刷パラメータを付した本加工要求を補助プログラム４２に渡す。編集アプリ４３は、印刷キャンセルボタンＡ２４が押下された場合、矢印Ａ以降の処理を行わない。つまり、編集アプリ４３は、補助プログラム４２に本加工要求を補助プログラム４２に渡さない。
【００６６】
本加工要求を補助プログラム４２に渡した編集アプリ４３は、印刷実行通知を汎用印刷プログラム４１に送信する（矢印Ｂ）。印刷実行通知には、矢印Ｘ１２にて取得した画像データが付加される。また、印刷実行通知には、矢印Ｘ１４にて取得した印刷パラメータのうち汎用パラメータのみが付加される。
【００６７】
汎用印刷プログラム４１は、印刷実行通知を受けるのに応じて、印刷実行通知に付加された画像データと汎用パラメータを用いて、印刷のための中間画像データを生成する（矢印Ｃ）。尚、編集アプリ４３が、矢印Ｘ３８の処理によってプレビュー表示を行った後、印刷パラメータの変更を受け付けることなく印刷実行ボタンＡ２０を押下され、印刷指示を受け付けた場合、汎用印刷プログラム４１は、矢印Ｃの処理にて生成された印刷用の中間画像データも、矢印Ｘ２４の処理にて生成された表示用の中間画像データと同様の形式になる。
【００６８】
汎用印刷プログラム４１は、中間画像データを生成した後、補助プログラム４２に中間画像データを編集する処理を実行する実行命令を送る（矢印Ｄ）。実行命令には、汎用印刷プログラム４１が矢印Ｃの処理にて印刷用に生成した中間画像データであって、表示用の中間画像データと同様の形式である中間画像データが付加される。
【００６９】
補助プログラム４２は、中間画像データを編集する処理の実行命令を第２のインタフェースを介して受けると、本加工要求に付加された固有パラメータに基づいて、実行命令に付加された中間画像データを編集する（矢印Ｘ４４）。編集アプリ４３が、矢印Ｘ３８の処理によってプレビュー表示を行った後、印刷パラメータの変更を受け付けることなく印刷実行ボタンＡ２０を押下され、印刷指示を受け付けた場合、補助プログラム４２は、矢印Ｘ３４の処理と同じ条件で中間画像データを処理するため、ユーザが直接確認した画像を含むように中間画像データを編集する。
【００７０】
尚、例えば、編集アプリ４３が、プレビュー表示用の中間画像データを補助プログラム４２に生成させる場合、編集アプリ４３は、矢印Ｘ４２の処理において、矢印Ｘ１４の処理で取得した印刷パラメータによって設定されている品質で印刷パラメータを補助プログラム４２に渡す。この場合、補助プログラム４２は、矢印Ｘ４４の処理にて、渡された品質の印刷パラメータに従って中間画像データを生成する。
【００７１】
補助プログラム４２は、上述したように、中間画像データの編集が終了したことを示す終了通知を、補助プログラム４２が加工した中間画像データと共に受けとると（矢印Ｆ）、印刷データを生成し（矢印Ｇ）、印刷命令をプリンタ２に出力する（矢印Ｈ）。
【００７２】
続いて、本印刷システムの特徴部分の制御手順を、図６に基づいて説明する。本処理は、編集アプリ４３が、印刷プレビューボタンＡ１４を押下され、プレビュー表示指示を受け付けたことを契機に（図３に示す矢印Ｘ１６）、ＰＣ１のＣＰＵ１１にて実行される。
【００７３】
図６に示すように、ＣＰＵ１１は、現在の編集アプリ４３の表示内容に対する中間画像データの作成を汎用印刷プログラム４１に依頼する（Ｓ４）。Ｓ４の処理は、加工要求処理の一例である。例えば、図４に示すウォータマーク設定画面ＤＡ１０に表示される印刷プレビューボタンＡ１４が押下された場合、ウォータマーク設定画面ＤＡ１０を含む印刷設定画面に設定された印刷パラメータに対する中間画像データの生成を、編集アプリ４３から汎用印刷プログラム４１に依頼する。汎用印刷プログラム４１は、印刷パラメータのうち、認識可能な汎用パラメータに基づいて中間画像データを生成し、編集アプリ４３に返す。
【００７４】
編集アプリ４３は、汎用印刷プログラム４１から中間画像データを受信すると（Ｓ６）、第１のインタフェースによって補助プログラム４２の編集処理を実行する（Ｓ８）。すなわち、編集アプリ４３は、補助プログラム４２に対して編集処理を実行する加工要求を出力する。編集処理には、編集アプリ４３が汎用印刷プログラム４１から取得した中間画像データと、編集アプリ４３によって取得された印刷パラメータとが用いられる。
【００７５】
編集アプリ４３は、補助プログラム４２から編集された中間画像データ、つまり、加工済み中間画像データを受信すると（Ｓ１０）、編集された中間画像データを、ＵＩ２０を介してＰＣ１に表示させ（Ｓ１２）、処理を終了する。Ｓ１２の処理は、プレビュー表示処理の一例である。
【００７６】
以上、詳細に説明したように、本形態の編集アプリ４３を実行するＰＣ１は、編集アプリ４３から直接、印刷時に画像を加工する補助プログラム４２に対して編集処理を実行する実行命令を入力し、補助プログラム４２から出力された中間画像データを取得してプレビュー表示する。つまり、編集アプリ４３は、印刷指示を受け付けた場合と同じ処理を補助プログラム４２に行わせ、プレビュー用の画像を取得し、ＵＩ２０に表示させる。これにより、ユーザは、印刷指示をＰＣ１に入力する前に、印刷時に生成される画像と同等の加工画像を確認することができ、ユーザの意図しない加工が施された画像の印刷を低減することができる。
【００７７】
上記説明では、編集アプリ４３がプレビュー表示を行う場合、汎用印刷プログラム４１に中間画像データの生成を依頼し、汎用印刷プログラム４１が依頼に従って生成した中間画像データを補助プログラム４２によって加工した加工済み中間画像データをＵＩ２０に表示させた（図３の矢印Ｘ２２〜Ｘ３８参照）。これに対して、例えば図７に示すシーケンス図に示すように、編集アプリ４３は、汎用印刷プログラム４１に印刷データの生成を依頼し（矢印Ｙ２２）、編集アプリ４３が受け付けた画像データと編集アプリ４３が受け付けた汎用パラメータに基づいて汎用印刷プログラム４１に印刷データを生成させ（矢印Ｙ２４）、その印刷データを汎用印刷プログラム４１から受け取るようにしても良い（矢印Ｙ２６）。その後、編集アプリ４３は、矢印Ｘ３２以降の処理と同様に、矢印Ｙ３２以降の処理を行う。この際、編集アプリ４３は、中間画像データに変えて印刷データを用いて加工要求（Ｙ３２）を行う。また、実行命令には、矢印Ｇの処理で生成された印刷データを付加し、終了通知にはＹ４４にて加工された加工済み印刷データが付加される。尚、加工済み印刷データは、加工済み画像データの一例である。
【００７８】
また、上記説明では、編集アプリ４３は、印刷プレビュー画面ＤＡ２０の印刷実行ボタンＡ２０が押下された場合、汎用印刷プログラム４１に通常の印刷動作を行わせた。これに対して、例えば図８に示す変形例のように、編集アプリ４３は、印刷プレビュー画面ＤＡ２０の印刷実行ボタンＡ２０が押下され、印刷実行指示を受け付けた場合（矢印Ａ）、印刷実行通知に矢印Ｘ３６の処理において受けた中間画像データを付加してもよい。このとき、印刷実行指示には、付加した中間画像データが編集済みであることを示すフラグを付ける。汎用印刷プログラム４１は、フラグ付きの印刷実行指示を受け付けると、中間画像データの編集を省略し、印刷実行指示に付加された中間画像データに基づいて印刷データを生成し（矢印Ｇｙ）、生成した印刷データを含む印刷命令をプリンタ２に送信する（矢印Ｈ）。これによれば、汎用印刷プログラム４１は、補助プログラム４２に中間画像データの編集処理を行わせずにプリンタ２に印刷を行わせることができ、印刷システムの制御をシンプルにすることができる。
【００７９】
更に、図８の処理においても、図３に示す処理と同様、矢印Ｘ２２〜Ｘ３６の処理で扱う中間画像データを印刷データとしても良い。この場合、編集アプリ４３は、矢印Ｂｙの処理において、加工済み印刷データを印刷実行通知に付加する。この印刷実行通知を受けた汎用印刷プログラム４１は、印刷データを生成せずに、印刷命令をプリンタ２に出力することができる。
【００８０】
なお、本明細書に開示される実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、ＰＣ１に接続される装置は、プリンタに限らず、複合機、複写機、ＦＡＸ装置、等印刷機能を有する装置であればよい。また、ＰＣ１に接続されるプリンタは、図示の例に限らず、１台でも良いし、３台以上でもよい。
【００８１】
例えば、実施の形態では、編集アプリ４３が矢印Ｘ１４の処理により印刷パラメータを直接取得している。これに対して、編集アプリ４３が画像データを取得した後（矢印Ｘ１２）、編集アプリ４３から補助プログラム４２に印刷パラメータの取得を依頼しても良い。つまり、編集アプリ４３は、補助プログラム４２に印刷パラメータ編集処理を実行させて印刷パラメータを取得しても良い。
【００８２】
例えば、実施の形態では、編集アプリ４３が汎用印刷プログラム４１から中間画像データを取得し、その中間画像データを付加した実行命令を補助プログラム４２に送信した。これに対して、編集アプリ４３は、編集アプリ４３等の汎用印刷プログラム４１と別のプログラムを用いて中間画像データを生成し、それを実行命令に付加しても良い。但し、実施の形態のように、編集アプリ４３が汎用印刷プログラム４１によって生成された中間画像データを汎用印刷プログラム４１から取得し、実行命令に付加することにより、より正確なプレビュー画像をＰＣ１に表示させることができる。
【００８３】
例えば、補助プログラム４２は、汎用印刷プログラム４１用の関数と、編集アプリ４３用の関数とが別々にあっても良いし、同じ関数で汎用印刷プログラム４１用と編集アプリ４３用とで引数が異なる構成としても良い。また、汎用印刷プログラム４１用のオブジェクト定義クラスと編集アプリ４３用のオブジェクト定義クラスとが別々にある構成でもよいし、同じオブジェクト定義クラスで汎用印刷プログラム４１と編集アプリ４３で入力される引数が異なる構成であっても良い。
【００８４】
例えば、実施の形態では、補助プログラム４２が編集アプリ４３から中間画像データを受ける第１のインタフェースと、汎用印刷プログラム４１から中間画像データを受ける第２のインタフェースとを備えた。これに対して、補助プログラム４２は、ＵＩ２０に表示させるための中間画像データを要求する第１のインタフェースと、プリンタ２に印刷させるための中間画像データを要求する第２のインタフェースを備えていても良い。この場合、補助プログラム４２は、編集アプリ４３から第１のインタフェースを介して中間画像データを受けた場合、中間画像データを編集して編集アプリ４３に提供し、汎用印刷プログラム４１から第２のインタフェースを介して中間画像データを受けた場合、加工済み中間画像データを生成して汎用印刷プログラム４１に提供し、汎用印刷プログラム４１が加工済み中間画像データに基づく画像の印刷をプリンタ２に行わせる処理を行うと良い。
【００８５】
また、印刷パラメータ決定処理を実行するモジュールは、補助プログラム４２に限らず、汎用印刷プログラム４１を用いた印刷を行う際に、ＯＳ２１または汎用印刷プログラム４１から指示を受け付けるプログラムであればよい。例えば、マイクロソフト社が仕様公開した印刷ワークフロー  アプリ（Print workflow）でも良い。
【００８６】
また、実施の形態では、編集アプリ４３の動作として、印刷プレビューを表示する動作のみを詳細に記載しているが、編集アプリ４３は、さらに他の役割を有していても良い。
【００８７】
実施の形態では、編集アプリ４３が矢印Ｘ１４の処理にて設定画面を介して加工設定を受け付ける際に、設定画面が汎用パラメータと固有パラメータの両方を受け付けることとした。これに対して、固有パラメータだけを他の手段で設定してもよい。例えば、固有パラメータは、補助プログラム４２が表示するＵＩ２０を介して設定され、補助プログラム４２用の記憶領域に記憶されてもよい。この場合、補助プログラム４２は、例えば、矢印Ｘ３４の処理や矢印Ｘ４４の処理などを行う場合に補助プログラム４２用の記憶領域から固有パラメータを読み出し、読み出した固有パラメータに応じて中間画像データや印刷データの加工を行うようにしてもよい。なお、逆に、汎用パラメータだけを他の手段で設定するようにしてもよい。
【００８８】
編集アプリ４３が、表示用の中間画像データ又は印刷データを生成する依頼（矢印Ｘ２２，Ｙ２２の処理参照）に汎用パラメータを付加せず、汎用印刷プログラム４１が、メモリ１２に記憶された汎用パラメータを読み出して中間画像データ又は印刷データを加工するようにしてもよい。
【００８９】
また、実施の形態に開示されている任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
【００９０】
また、実施の形態に開示されている処理は、単一のＣＰＵ、複数のＣＰＵ、ＡＳＩＣなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【００９１】
１  ＰＣ
２  プリンタ
１１  ＣＰＵ
１２  メモリ
２１  ＯＳ
４１  汎用印刷プログラム
４２  補助プログラム
【図１】
2020126370.tif 000003
【図２】
2020126370.tif 000004
【図３】
2020126370.tif 000005
【図４】
2020126370.tif 000006
【図５】
2020126370.tif 000007
【図６】
2020126370.tif 000008
【図７】
2020126370.tif 000009
【図８】
2020126370.tif 000010