(57)【要約】【課題】  共通プリンタドライバで使用する印刷装置に対応する拡張アプリケーションが印刷装置の最新の特性パラメータを利用できる仕組みを提供することを目的の１つとする。【解決手段】  コンピュータ１０１は複数の異なる印刷装置に対して共通に利用可能な共通プリンタドライバと、拡張アプリケーションを備える。拡張アプリケーションは、印刷に用いるデータと、出力対象となる印刷装置の識別情報を取得する（Ｓ９０４）。続けて、取得された前記識別情報に基づき特定される印刷装置から、当該印刷装置の特性パラメータを取得する（Ｓ９０７）。最後に、印刷装置から取得した特性パラメータに基づく情報を、前記拡張アプリケーションがアクセス可能な領域に書き込む（Ｓ９０７）。【選択図】  図９
2020107241.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なる印刷装置に対して共通に利用可能な共通プリンタドライバと、拡張アプリケーションとを有する情報処理装置であって、
印刷に用いるデータと、出力対象となる印刷装置の識別情報を取得する第１取得手段と、
前記第１取得手段によって取得された前記識別情報に基づき特定される印刷装置から、当該印刷装置の特性パラメータを取得する第２取得手段と、
前記第２取得手段によって取得した前記特性パラメータに基づく情報を、前記拡張アプリケーションがアクセス可能な領域に書き込む書き込み手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記特性パラメータは原稿をコピーすると浮き上がるパターンを、隠れたパターンとして印刷物の背景に埋め込む地紋印刷機能で使用するパラメータを少なくとも含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記地紋印刷機能で使用するパラメータは、隠れたパターンを表現する際に用いるドットのサイズと、前記隠れたパターンとは異なる模様を表現する際に用いるドットのサイズを示すパラメータを含み、
前記拡張アプリケーションは、前記アクセス可能な領域に記憶された前記地紋印刷機能で使用するパラメータを参照し、前記隠れたパターンを構成するドットの領域と模様を構成するドットの領域の濃度が均一となるような画像を生成し、前記共通プリンタドライバによって生成されるデータに、当該生成した画像を合成する機能を提供することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記印刷装置から取得される特性パラメータには、原稿をコピーすると浮き上がるパターンを、隠れたパターンとして印刷物の背景に埋め込む地紋印刷機能で使用するパラメータ、ハーフトーン処理に使用するパラメータ、カラーマッチングに使用するパラメータのいずれか１つのパラメータが含まれていることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
印刷に関する設定を行う画面を表示する表示制御手段と、
前記表示制御手段に表示される所定の表示アイテムが選択されたことに応じて、出力対象となる印刷装置の識別情報に基づき特定される印刷装置から、当該印刷装置の特性パラメータを取得する第３の取得手段と、
前記第３の取得手段によって取得した前記特性パラメータに基づき、前記拡張アプリケーションがアクセス可能な領域に、前記特性パラメータを書き込む第２の書き込み手段と、
を更に有することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第２の取得手段及び第３の取得手段は所定の双方向通信を用いて前記出力対象となる前記印刷装置から前記特性パラメータを取得することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
複数の異なる印刷装置に対して共通に利用可能な共通プリンタドライバと、拡張アプリケーションとを有する情報処理装置の制御方法であって、
印刷に用いるデータと、出力対象となる印刷装置の識別情報を取得する第１取得工程と、
前記第１取得手段によって取得された前記識別情報に基づき特定される印刷装置から、当該印刷装置の特性パラメータを取得する第２取得工程と、
前記第２取得工程で取得された前記特性パラメータに基づく情報を前記拡張アプリケーションがアクセス可能な領域に書き込む書き込み工程と、
を有することを特徴とする制御方法。
【請求項８】
共通プリンタドライバを有する情報処理装置で動作し、前記共通プリンタドライバと通信するアプリケーションプログラムであって、
前記アプリケーションプログラムは、前記情報処理装置のコンピュータを、
印刷に用いるデータと、出力対象となる印刷装置の識別情報を取得する第１取得工程と、
前記第１取得手段によって取得された前記識別情報に基づき特定される印刷装置から、当該印刷装置の特性パラメータを取得する第２取得工程と、
前記第２取得工程で取得された前記特性パラメータに基づく情報を、前記アプリケーションプログラムがアクセス権限を有する領域に書き込む書き込み工程と、
として機能させることを特徴とするアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置と通信する情報処理装置、制御方法、及びアプリケーションプログラムに関する。
【背景技術】
【０００２】
プリンタドライバを利用し、印刷装置に対して印刷データを送信する構成が一般に知られている。情報処理装置には、基本ソフトウェアであるオペレーティングシステム（ＯＳ）がインストールされており、プリンタドライバはそのＯＳの規定するプリントアーキテクチャに従って構成され、ＯＳから呼び出されて動作する。印刷装置を提供するベンダは、ＯＳの仕様に適合するプリンタドライバを提供する。ＯＳとプリンタドライバは、協働して出力先の印刷装置を用いて印刷を行う機能を実現する。
【０００３】
ところで、ＯＳとしてＭｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）８より前のバージョンを利用する場合、プリンタドライバは、Ｖ３プリンタドライバと呼ばれるアーキテクチャで構成される。
【０００４】
また、Ｗｉｎｄｏｗｓ８．１以降において、Ｖ４プリンタドライバと呼ばれるアーキテクチャが登場している。Ｖ４プリンタドライバは、セキュリティ性が重視されているため、プリンタドライバそのものの拡張性がＶ３プリンタドライバと比較して低下している。このような拡張性の低下を補うため、印刷装置を提供するベンダは、プリンタドライバの機能を補助するための専用のアプリケーションを提供することができる。このアプリケーションはＵＷＰ  Ｄｅｖｉｃｅ  Ａｐｐｓ（Ｕｎｉｖｅｒｓａｌ  Ｗｉｎｄｏｗｓ  Ｐｌａｔｆｏｒｍ  Ｄｅｖｉｃｅ  Ａｐｐｓ）と呼ばれる。ＵＷＰ  Ｄｅｖｉｃｅ  Ａｐｐｓは、ストアアプリケーション（ＵＷＰ）から印刷を行う際のユーザエクスペリエンスを高めることができる。また、Ｖ４プリンタドライバには、ベンダ独自の印刷設定を行うための印刷設定アプリケーションであるＰｒｉｎｔｅｒＥｘｔｅｎｓｉｏｎを紐付けることができる。
【０００５】
また、従来、機能が異なる複数種類の印刷装置を制御するためのプリンタドライバとしてユニバーサルプリンタドライバと称されるプリンタドライバが知られている（特許文献１）。当該プリンタドライバでは、機種やモデル毎に個々の印刷装置に好適な操作画面を表示することができる。
【０００６】
更に、プリンタドライバを使用せずに、印刷装置に対して印刷データを送信できるようにすることが考えられている。例えば、Ｕｂｕｎｔｕ（登録商標）１７．０４では、ＯＳのデフォルト機能として、ＩＰＰ  Ｅｖｅｒｙｗｈａｒｅ（登録商標）に対応する印刷装置に対して印刷データを送信する仕組みが搭載されている。ＩＰＰ  Ｅｖｅｒｙｗｈａｒｅは、様々な印刷装置を使用した印刷を可能とする一連の規格であり、業界団体などで規格の策定や普及活動が行われている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−２４３０６７
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に開示されているようなユニバーサルプリンタドライバは、ベンダ毎に提供されることが一般的である。従って、同じベンダが販売している機能が異なる複数種類の印刷装置については、１つのユニバーサルプリンタドライバで対応することができた。しかしながら、異なるベンダの印刷装置を１つのユニバーサルプリンタドライバで対応することは困難であった。これは、ベンダ毎に各々異なる通信方式、ＰＤＬ（ページ記述言語）やＪＤＬ（ジョブ記述言語）で印刷データのやりとりを行っているため、統一することが難しいといった事情に起因する。また、印刷設定項目に関してもベンダ毎に設定項目が異なっている、又は、同じような設定項目であっても解釈が違うなどの事情があり、１つのユニバーサルプリンタドライバで対応することが困難であった。
【０００９】
前述したように、ＩＰＰ  Ｅｖｅｒｙｗｈａｒｅなどに代表されるＩＰＰに準拠する仕組みを使用した共通のプリンタドライバやプリントクライアントを提供することが考えられる。しかしながら、ＩＰＰに準拠する共通のプリンタドライバでは、ベンダが独自に作りこんで提供する機能を利用することができないという問題がある。
【００１０】
この問題を鑑みて、このような、共通のプリンタドライバに対しても、従来技術のようにベンダ独自の印刷設定を行うための拡張アプリケーションを紐付けることが考えられる。
【００１１】
ここで、ベンダが独自に作りこんで提供する機能の一つに、地紋印刷機能がある。地紋印刷機能とは、印刷物の背景又は前景に、その印刷物をコピーすると特定の文字列や図形が浮かび上がるように地紋を印刷する機能である。この機能を利用することで、印刷物の原本とコピーの判別が可能になり、印刷物の偽造防止やコピーの抑止が期待できる。このような地紋印刷機能では、出力先の印刷装置の出力特性（モデルごとの特性パラメータ）に合わせて、適切に背景画像を生成する必要がある。このようなモデル毎に異なる特性パラメータを拡張アプリケーション内に全て格納すると、アプリケーションのサイズが肥大化してしまう恐れがある。また、新機種を発売する度に拡張アプリケーションを修正する必要があり、運用コストが増大するという懸念もある。更には、出力特性は、プリンタの使用状況や設置環境などにも依存する。例えば、経年劣化によりデバイス毎の個体差が生じ得るため、デバイス毎に最適な特性パラメータは逐次変化するという問題点もある。
【００１２】
本発明は上述の問題点の少なくとも１つを鑑みなされたものである。本発明は、共通プリンタドライバで使用する印刷装置に対応する拡張アプリケーションが印刷装置の最新の特性パラメータを利用できる仕組みを提供することを目的の１つとする。また、本発明の別の目的は、共通プリンタドライバを使用する際の印刷の利便性を高める仕組みを提供することを目的の１つとする。
【課題を解決するための手段】
【００１３】
上記の少なくとも１つの目的を達成するために本発明の情報処理装置は、複数の異なる印刷装置に対して共通に利用可能な共通プリンタドライバと、拡張アプリケーションとを有する情報処理装置であって、印刷に用いるデータと、出力対象となる印刷装置の識別情報を取得する第１取得手段と、前記第１取得手段によって取得された前記識別情報に基づき特定される印刷装置から、当該印刷装置の特性パラメータを取得する第２取得手段と、
前記第２取得手段によって取得した前記特性パラメータに基づく情報を、前記拡張アプリケーションがアクセス可能な領域に書き込む書き込み手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明の１つの側面としては、共通プリンタドライバで使用する印刷装置に対応する拡張アプリケーションから、印刷装置の最新の特性パラメータを利用できるようになる。従って、拡張アプリケーションが印刷装置の最新の特性パラメータに合わせた適切な拡張機能を提供できるようになる。また、本発明の別の側面としては、共通プリンタドライバを使用する際の利便性を高めることができるようになる。
【図面の簡単な説明】
【００１５】
【図１】印刷システムの一例を示す図である。
【図２】コンピュータ１０１のハードウェア構成の一例を示す図である。
【図３】コンピュータ１０１のソフトウェア構成の一例を示す図である。
【図４】コンピュータ１０１におけるドライバと印刷拡張アプリの関連付けの一例を説明するフローチャートである。
【図５】ドライバと印刷拡張アプリの関連付けの一例を説明する模式図である。
【図６】コンピュータ１０１における印刷処理の一例を説明するフローチャートである。
【図７】コンピュータ１０１のディスプレイ２０７に表示される画面と当該画面に関連する設定値の一例を示す図である。
【図８】コンピュータ１０１における印刷処理の一例を説明するフローチャートである。
【図９】コンピュータ１０１における印刷処理の一例を説明するフローチャートである。
【図１０】コンピュータ１０１における印刷処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための実施形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１７】
＜第１の実施形態＞
まず図１を用いて、本発明に係る印刷システムの構成を説明する。本実施形態の印刷システムは、情報処理装置の一例であるクライアントコンピュータ１０１、クライアントコンピュータ１０１へ対してデータを配信するサーバ１０５と、印刷装置１０２〜１０４を備える。各装置は、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）を含むネットワーク１００を通じて相互に通信可能である。
【００１８】
なお、印刷装置１０２〜１０４は、印刷機能のみを備えるシングルファンクションプリンタでも、印刷機能、スキャン機能、複写機能を備えるマルチファンクションプリンタでも構わない。また、クライアントコンピュータ１０１は、ネットワーク１００に対し一台に限らず、複数台接続されていてもよい。印刷装置１０２は、ページ記述言語（ＰＤＬ）形式の印刷データを外部から受信し印刷を行うことができる。更に、印刷装置１０２及び１０３は、サービスエンジニアや管理者などにより、より良い印字が行えるように、定期的に適宜キャリブレーションが行われる。当該キャリブレーションにより、印刷に用いる各種パラメータ（例えば、濃度補正のＬＵＴや、レジずれ補正のための情報、地紋印刷に用いるパラメータなど）が更新される。また、印刷装置１０２は、当該パラメータの更新に伴い、情報処理装置側に通知すべき特性パラメータを更新する。
【００１９】
クライアントコンピュータ１０１は、印刷装置１０２などに印刷データを送信することができる。サーバ１０５は、タッチアプリケーションや印刷拡張アプリケーション、プリンタドライバ、拡張セットアップ情報のパッケージなどをクライアントに配信するサーバである。本実施形態では一例としてサーバ１０５が各パッケージを提供する場合を例示しているがこれに限定されるものではない。各パッケージは、複数の異なるサーバが配信していてもよい。また、各パッケージ配信のためのサーバは、クラウドサーバ等であっても構わない。
【００２０】
図２は、図１のクライアントコンピュータ１０１のハードウェア構成を示すブロック図である。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１を含む制御部は、クライアントコンピュータ１０１全体の動作を制御する。ＣＰＵ２０１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３又は外部メモリ２０９に記憶されたプログラムをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２に展開し、それを実行することで各種制御を行う。ＲＡＭ２０２は、ＣＰＵ２０１の主記憶メモリであり、ワークエリア又は各種プログラムを展開するための一時記憶領域として用いられる。ＲＯＭ２０３は、ＣＰＵ２０１で実行可能な制御プログラムやブートプログラム等を格納する。外部メモリＩ／Ｆ（インタフェース）２０８を介して制御部に接続される外部メモリ２０９は、ＯＳ２１０、共通プリンタドライバ２１１、アプリケーション２１２などを記憶する。
【００２１】
本実施形態では外部メモリ２０９としてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の補助記憶装置を想定しているが、ＨＤＤの代わりにＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの不揮発性メモリを用いるようにしても良い。このように、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、外部メモリ２０９等のハードウェアは、いわゆるコンピュータを構成している。
【００２２】
操作入力装置Ｉ／Ｆ２０４は、キーボードやポインティングデバイス（マウス）、タッチ入力デバイスなどの操作入力装置２０５を制御するインタフェースである。操作入力装置２０５は、ユーザからの操作を受け付ける受付部として機能する。ディスプレイＩ／Ｆ２０６はディスプレイ２０７への画面の表示を制御する。ディスプレイ２０７は、ユーザに対して情報を表示する表示部として機能する。
【００２３】
クライアントコンピュータ１０１は、ネットワークＩ／Ｆ２１３を介してネットワーク１００に接続される。ネットワークＩ／Ｆ２１３は、ネットワーク１００上の印刷装置に印刷データを送信したり、ネットワーク１００上のサーバ１０５からストアアプリケーションやプリンタドライバなどを受信したりする。なお、ネットワーク１００上の外部端末とのデータ通信は例えばＩＥＥＥ８０２．１１シリーズに準拠する無線通信やＬＴＥや５Ｇなどの移動通信システムや、ＬＡＮケーブルなどの有線ケーブルを介した通信である。
【００２４】
続けて、図３を用いて、クライアントコンピュータ１０１のソフトウェア構成の一例について説明する。まず、クライアントコンピュータ１０１内の動作ソフトウェアについて説明する。クライアントコンピュータ１０１内のソフトウェアは、ＯＳ２１０とアプリケーション２１２から構成される。
【００２５】
まず、ＯＳ２１０を構成する個々の要素について説明する。ＯＳ２１０は、クライアントコンピュータ１０１は管理制御を行う。本実施形態のＯＳ２１０は、印刷システム３００、プリンタドライバ格納領域３１０、外部設定ファイル群３２０を備えている。
【００２６】
印刷システム３００は、プリントキュー３０１、スプーラ３０２、フィルタパイプラインマネージャ３０３、コンフィグレーションモジュール３０４、印刷時起動アプリランチャ３０５から構成される。
【００２７】
プリントキュー３０１は、ネットワーク１００内に存在する印刷装置を使用して印刷を行う際に、印刷ジョブを一時的に保存する領域であり、複数個存在することができる。本実施形態では、説明のため、印刷装置１０２乃至１０４に対応するプリントキュー３０１が作成されているものとする。
【００２８】
スプーラ３０２は、アプリケーション２１２のいずれかから印刷された印刷対象データであるＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）ファイルを一時的に保存及び管理するモジュールである。スプーラ３０２に保存されたＸＰＳファイルは、フィルタパイプラインマネージャ３０３を通して、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）に変換された後に、スプーラ３０２を通じて印刷装置へ送信される。
【００２９】
フィルタパイプラインマネージャ３０３は、１つ以上のフィルタ３１１をロードして、ＸＰＳファイルをＰＤＬファイルへと変換するモジュールである。フィルタパイプラインマネージャ３０３は、ＯＳ２１０が提供する印刷アーキテクチャの一部として構成される。
【００３０】
ＯＳ２１０は、フィルタコンフィグ３１２の定義に基づき、共通プリンタドライバ２１１を構成する要素の一つである１つ以上のフィルタ３１１を読み込み、そのフィルタ３１１を使用してＰＤＬを生成する。ＰＤＬは、例えば、ＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｎｔｒｏｌ  Ｌａｎｇｕａｇｅ）やＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）などを採用することができる。
【００３１】
コンフィグレーションモジュール３０４は、ＰｒｉｎｔＴｉｃｋｅｔの生成、変更を行うモジュールである。また、コンフィグレーションモジュール３０４は、組み合わせることができない設定が行われないよう制限する禁則機能を有する。また、コンフィグレーションモジュール３０４はプリンタの能力情報であるＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを管理する。印刷拡張アプリ３５０の詳細印刷設定ＵＩ部３５２、印刷時起動バックグラウンドタスク部３５３と印刷時起動ＵＩ部３５４は、コンフィグレーションモジュール３０４が提供するＡＰＩを呼び出すことができる。各部は、当該ＡＰＩを呼び出すことで、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のＰｒｉｎｔＴｉｃｋｅｔやＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓを取得することができる。共通プリンタドライバ２１１は、互いに競合する印刷設定の組み合わせを示す禁則ルールやデバイスの機能が記述されたデバイス機能テキストファイル群３１３や、スクリプトファイル群３１４をＯＳ２１０に提供する。これらのファイル群は、相手先の印刷装置毎に別のファイルが記憶される。即ち、デバイス機能テキストファイル群３１３とスクリプトファイル３１４群の中から選択されたファイルに基づき、コンフィグレーションモジュール３０４の動作はカスタマイズされる。
【００３２】
印刷時起動アプリランチャ３０５は、印刷時起動バックグラウンドタスク部３５３などが提供するバックグラウンドタスクの実行を制御するモジュールである。印刷時起動アプリランチャ３０５は、ユーザにより印刷開始指示が入力されたことをＯＳ２１０が検知し、印刷を行う場合に、印刷時起動バックグラウンドタスク部３５３を起動する。なお、レジストリ３２２にバックグラウンドタスクの起動を無効とする設定が記憶されている場合、ＯＳ２１０はバックグラウンドタスクの実行を抑制する。
【００３３】
プリンタドライバ格納領域３１０は共通プリンタドライバ２１１などのプリンタドライバが保存される領域である。なお、本実施形態では、一例として共通プリンタドライバ２１１がインストールされている場合を例示しているが、共通プリンタドライバ２１１に加えて、それ以外のプリンタドライバがインストールされていても構わない。共通プリンタドライバ２１１は、フィルタ３１１、フィルタコンフィグ３１２、デバイス機能テキストファイル群３１３、スクリプトファイル群３１４、ＩＮＦ群３１５から構成される。なお、本実施形態では、フィルタ３１１及びフィルタコンフィグ３１２はいずれの印刷装置を使用する場合も共通である。一方、ファイル群３１３〜３１４及びＩＮＦ群３１５は、相手先の印刷装置毎に別のファイルとして保存される。共通プリンタドライバ２１１は、ユーザにより選択された出力先のプリンタに応じて、コンフィグレーションモジュール３０４が使用するファイルを切り替える。なお、本実施形態では、共通プリンタドライバ２１１は、複数のベンダの印刷装置に対応するユニバーサルプリンタドライバであり、当該ドライバ単体でＩＰＰに準拠する印刷設定が行えるものとする。また、本実施形態において、共通プリンタドライバ２１１は、ユーザによりインストールされたドライバであることを想定しているがこれに限定されるものではない。例えば、共通プリンタドライバ２１１は、ＯＳ２１０にプリインストールされていてもよい。
【００３４】
フィルタ３１１は、フィルタパイプラインマネージャ３０３によって呼び出されるフィルタであり、入力されたＸＰＳファイルをＰＤＬへと変換して出力する機能を有する。フィルタコンフィグ３１２は、フィルタパイプラインマネージャ３０３が参照する定義ファイルであり、１つ以上のフィルタ３１１を呼び出す順序が記述されている。デバイス機能テキストファイル群３１３とスクリプトファイル群３１４、コンフィグレーションモジュール３０４によって呼び出されるファイルであり、コンフィグレーションモジュール３０４の動作をカスタマイズできる。ＩＮＦ群３１５は、共通プリンタドライバ２１１をセットアップするための設定情報が記載されたテキストファイルである。
【００３５】
ここで、前述したように、ＩＰＰ  Ｅｖｅｒｙｗｈｅｒｅなどに代表されるＩＰＰに準拠する仕組みを使用した共通のプリンタドライバやプリントクライアントを提供することが考えられる。本実施形態では、共通のプリンタドライバに、ベンダ独自の印刷設定を行うための拡張アプリケーションプログラムを紐付けるようにする。
【００３６】
ところで、ベンダが独自に作りこんで提供する機能の一つに、地紋印刷機能がある。地紋印刷機能とは、印刷物の背景又は前景に、その印刷物をコピーすると特定の文字列や図形が浮かび上がるように地紋を印刷する機能である。この機能を利用することで、印刷物の原本とコピーの判別が可能になり、印刷物の偽造防止やコピーの抑止が期待できる。このような地紋印刷機能では、出力先の印刷装置の出力特性（モデルごとの特性パラメータ）に合わせて、適切に背景画像を生成する必要がある。このようなモデル毎に異なる特性パラメータを拡張アプリケーション内に全て格納すると、アプリケーションのサイズが肥大化してしまう恐れがある。また、新機種を発売する度に拡張アプリケーションを修正する必要があり、運用コストが増大するという懸念もある。
【００３７】
従って、本実施形態では、共通プリンタドライバで使用する印刷装置を追加する際に、当該印刷装置に対応する拡張アプリケーションに対し、印刷装置のデフォルトの特性パラメータを適切に提供する。
【００３８】
更には、印刷装置では、経年劣化によりデバイス毎の個体差が生じ得る。従って、出力先の個体毎に最適な特性パラメータは変化しうる。従って、セットアップ時のデフォルトの特性パラメータでは良好な印刷を行えない可能性もある。
【００３９】
これを鑑み本実施形態では、拡張アプリケーションが印刷装置の最新の特性パラメータを利用できるようにする。以下具体的に説明する。
【００４０】
図３の説明に戻り、外部設定ファイル群３２０は、メタデータ３２１、レジストリ３２２から構成される。
【００４１】
メタデータ３２１は、印刷拡張アプリ３５０の印刷拡張アプリ識別子とＶ４プリンタドライバが使用するプリントキューのＨＷＩＤ（ＨａｒｄｗａｒｅＩｄ）という双方の識別子を持つ定義情報でありそれぞれを関連付ける役割を持つ。
【００４２】
レジストリ３２２は、ＯＳ２１０の設定群が記述されたレジストリデータベースの領域である。レジストリ３２２には、Ｋｅｙ  Ａｎｄ  Ｖａｌｕｅ方式で値を記載することができ、プリントキュー３０１毎の設定を記述することができる。レジストリ３２２には、印刷時起動アプリランチャ３０５によるバックグラウンドタスクの起動を有効とするか無効とするかを示すポリシーの設定が記憶される。また、プリンタドライバ２１１に関連付く印刷拡張アプリ３５０の識別子と、プリンタのＨＤＷＩＤの対応関係が登録される。レジストリ３２２に登録されている設定は、ＯＳ２１０の設定画面を介して参照や変更が可能である。
【００４３】
続いて、アプリケーション２１２を構成する個々の要素について説明する。アプリケーション２１２は、デスクトップアプリ３３０、タッチアプリ３４０、印刷拡張アプリ３５０から構成される。
【００４４】
デスクトップアプリ３３０は、ＯＳ２１０のデスクトップ用の実行環境で動作するアプリケーションである。デスクトップアプリ３３０は後述するタッチアプリ３４０に見られる制限や公式マーケットはない。
【００４５】
タッチアプリ３４０は、ＯＳ２１０のタッチアプリ用の実行環境で動作するアプリケーションである。インターネット上で公開されるアプリケーション配布システムとなる公式マーケットを通じてダウンロードされ、クライアントコンピュータ１０１にインストールされる。タッチアプリ３４０は、必要なモジュール群がパッケージ化して署名されており、ＯＳ２１０内のＡＰＩの呼び出しが制限されている。
【００４６】
印刷拡張アプリ３５０はタッチアプリ３４０の一種であり、タッチアプリ３４０と同様にＯＳ２１０のタッチアプリ用の実行環境で動作する。印刷拡張アプリ３５０は、ＯＳ２１０がアプリケーション配布システムとなる公式マーケットからインターネットを経由して取得する。また、本実施形態の印刷拡張アプリ３５０は、印刷時に独自にカスタマイズしたＵＩを表示させる印刷時ＵＩ表示機能を持つ。印刷拡張アプリ３５０は、メタデータ３２１を介してプリンタベンダが提供するプリンタドライバと関連付くことができる。また、複数のプリンタベンダが提供する印刷装置に対して共通で利用される共通プリンタドライバ２１１と関連付く場合には、レジストリ３２２を用いて関連付けられる。共通プリンタドライバ２１１と印刷拡張アプリ３５０の関連付けについては、図４のフローチャートに基づいて後述する。
【００４７】
印刷拡張アプリ３５０は、タイルアプリ部３５１、詳細印刷設定ＵＩ部３５２、印刷時起動バックグラウンドタスク部３５３、印刷時起動ＵＩ部３５４、アプリ保存領域３５５、設定ファイル３５６、カスタム設定ファイル３５７から構成される。アプリ保存領域３５５は、印刷拡張アプリ３５０がアクセス権限を有する領域の一例である。
【００４８】
タイルアプリ部３５１は、印刷拡張アプリ３５０を起動するユーザ操作を受け付けたことに従って実行され、登録された印刷装置のステータス表示などの機能を提供する。詳細印刷設定ＵＩ部３５２は、ＯＳ２１０によって発行された詳細印刷設定イベントを受信したことに従って実行される。詳細印刷設定ＵＩ部３５２は、コンフィグレーションモジュール３０４からＡＰＩを通じて取得したＰｒｉｎｔＴｉｃｋｅｔとＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに基づき印刷設定用のＵＩを生成して表示する。印刷時起動ＵＩ部３５４は、ユーザ操作に従って、適宜ＰｒｉｎｔＴｉｃｋｅｔの設定を変更し、コンフィグレーションモジュール３０４に返すことができる。
【００４９】
印刷時起動バックグラウンドタスク部３５３は、印刷イベントが発行された際に実行すべきバックグラウンドタスクに対応するコンポーネントである。印刷時起動バックグラウンドタスク部３５３は、コンフィグレーションモジュール３０４のＡＰＩを通じてＰｒｉｎｔＴｉｃｋｅｔの取得や読み書きをすることができる。また、ＷＦ機能を利用する場合、バックグラウンドタスク部により、印刷時起動ＵＩ部３５４を起動するか否かを判断し、必要に応じてフォアグラウンドタスクのコンポーネントである印刷時起動ＵＩ部３５４の起動をＯＳ２１０に要求することが既定されている。更に、アプリ保存領域３５５に値を読み書きすることで、印刷時起動ＵＩ部３５４と値の受け渡しをすることができる。印刷時起動ＵＩ部３５４を起動しないと判断した場合は、印刷時起動アプリランチャ３０５は、印刷拡張アプリ３５０を起動することなく印刷データの生成を行う。
【００５０】
設定ファイル３５６は、印刷拡張アプリ３５０の設定値が記述されているファイルである。印刷拡張アプリ３５０を一意に示す印刷拡張アプリ識別子や、利用するカスタム設定ファイル３５７が記載されている。カスタム設定ファイル３５７は、印刷拡張アプリ３５０がプリンタドライバに対して利用できるサービスの設定を記載した設定ファイルである。
【００５１】
＜共通プリンタドライバと印刷拡張アプリの関連付け＞
図４及び図５を用いて、プリンタドライバのインストールに際して、共通プリンタドライバ２１１と印刷拡張アプリ３５０を関連付ける一連の流れを説明する。図４は共通プリンタドライバ２１１と印刷拡張アプリ３５０を関連付ける一連の流れを示すフローチャートである。また、図５は共通プリンタドライバ２１１と印刷拡張アプリ３５０の関連付けを説明する模式図である。図４のフローチャートに示す各動作は、ＯＳ２１０が外部メモリ２０９に記憶された各モジュール、コンポーネント、アプリケーションを実現するためのプログラムをＲＡＭ２０２に読み出し、当該プログラムをＣＰＵ２０１が実行することにより実現される。図４のフローチャートは、例えば、共通プリンタドライバ２１１から利用する印刷装置を追加するユーザ操作をＣＰＵ２０１が検知した場合に、実行される。
【００５２】
Ｓ４０１において、ＯＳ２１０はネットワーク１００内にマルチキャストによる問い合わせを行い、共通プリンタドライバ２１１に対応する印刷装置の探索をする。探索には例えば、ＢｏｎｊｏｕｒやＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ｆｏｒ  Ｄｅｖｉｃｅｓ）等を用いることができる。
【００５３】
Ｓ４０２において、ＯＳ２１０はＳ４０１に対する応答を受信する。続けて、当該応答に基づき追加対象のプリンタを選択するためのプリンタリストを表示する。ここでは、説明のため、印刷装置１０２〜１０４が探索で見つかり、印刷装置１０２及び印刷装置１０４がリスト上に表示されているものとする。印刷装置１０３は、既に共通プリンタドライバ２１１から利用できるように共通プリンタドライバに関連拡張アプリ３５０付けられているものとする。従って、ＯＳ２１０は、追加対象のプリンタを選択するためのプリンタリストには印刷装置１０３を表示しないよう制御する。
【００５４】
続けて、Ｓ４０３において、ＯＳ２１０は、Ｓ４０２で表示した、プリンタリストの中から、対象プリンタを選択するユーザ操作を受け付ける。ここでは、説明のため、印刷装置１０２が選択されたものとして説明する。
【００５５】
Ｓ４０４において、ＯＳ２１０はＳ４０３で選択された対象プリンタを用いて印刷できるよう、共通プリンタドライバ２１１のセットアップを行う。Ｓ４０４のセットアップでは、印刷ポートの設定や、対象プリンタから取得したＩＰＰに準拠する印刷属性情報に基づいたプリンタの能力設定が行われる。Ｓ４０１〜Ｓ４０４までの処理を実行することにより共通プリンタドライバ２１１から印刷装置を利用できるようになる。Ｓ４０５以降の処理は、共通プリンタドライバ２１１を印刷拡張アプリで拡張するための制御である。
【００５６】
続けて、Ｓ４０５において、ＯＳ２１０は対象プリンタから印刷装置を識別するための識別情報であるＨＷＩＤを取得する。ここで取得するＨＷＩＤとは、印刷装置の機種やモデル毎に異なる識別子であり、印刷装置の種類を特定するために用いられる識別情報である。印刷装置１０２が選択された場合、「ＸＸＸ」が取得される。
【００５７】
Ｓ４０６において、印刷装置の種類を特定するための識別情報に基づいてサーバ１０５から拡張セットアップ情報を取得する。具体的には、サーバ１０５にＨＷＩＤを含む問い合わせを行う。サーバ１０５は、当該問い合わせに対して、問い合わせに含まれるＨＷＩＤに対応する拡張セットアップ情報を管理しているかどうかを判断し、確認結果を応答する。ＯＳ２１０は、当該確認結果に基づき対応する拡張セットアップ情報が存在する場合、当該拡張セットアップ情報をダウンロードする。なお、サーバ１０５は、様々なベンダの印刷装置に対応する拡張セットアップ情報を管理している。共通プリンタドライバ２１１に印刷拡張アプリケーションを紐付けたいベンダは、サーバ１０５に拡張セットアップ情報を予め登録しておくことができる。
【００５８】
ＯＳ２１０は、拡張セットアップ情報がサーバ１０５から取得できた場合は、処理をＳ４０８に進める。一方、ＯＳ２１０は、拡張セットアップ情報がサーバ１０５から取得できない場合は、印刷拡張アプリ３５０の関連付けを行わず、印刷装置の追加処理を完了する。例えば、印刷装置１０４の場合、拡張セットアップ情報が用意されていない。従って、対象プリンタが印刷装置１０４の場合、印刷拡張アプリの関連付けを行うことなくセットアップ処理を完了する。
【００５９】
拡張セットアップ情報は、デバイス機能テキストファイル、スクリプトファイル、対応する印刷拡張アプリを識別する識別情報を含む。例えば、図５に示す印刷装置１０２に対応する拡張セットアップ情報には、デバイス機能テキストファイル５１３、スクリプトファイル５１４、識別情報５１５が含まれている。また、印刷装置１０３に対応する拡張セットアップ情報には、デバイス機能テキストファイル５２３、スクリプトファイル５２４、識別情報５２５が含まれている。
【００６０】
拡張セットアップ情報に含まれているデバイス機能テキストファイルや、スクリプトファイル５１４には、印刷装置の種類によって異なる特性パラメータが格納されうる。
【００６１】
例えば、デバイス機能テキストファイル５１３には、地紋印刷機能を使用する際に必要となる地紋パラメータが含まれている。また、スクリプトファイル５１４には、印刷装置で特有の問題が発生する印刷設定の組み合わせを示す禁則条件などの特性パラメータが含まれている。例えば、印刷エンジンの出力特性によっては、低い解像度と地紋印刷機能の組み合わせると適切に隠れた情報を印字できないケースがある。これらが互いに設定されないように制御するためのルールがスクリプトファイル５１４に含まれている。また、セットアップ情報に含まれる特性パラメータは一例であり、その他、印刷装置でより適切な印刷を行うための多種多様なパラメータを含むことが可能である。例えば、カラーマッチングのためのカラープロファイルや、ハーフトーン処理に用いるディザマトリクスなどの特性パラメータを含むことが可能である。
【００６２】
図４の説明に戻り、Ｓ４０７において、ＯＳ２１０は、拡張セットアップ情報が取得できたかどうかを判断する。拡張セットアップ情報が取得できた場合は、処理をＳ４０９に進め、拡張セットアップ情報が取得できなかった場合は、一連のセットアップ処理を終了する。
【００６３】
続けて、Ｓ４０８において、ＯＳ２１０は、Ｓ４０６で取得したセットアップ情報に基づき対象プリンタの拡張セットアップを行う。例えば、対象プリンタが印刷装置１０２の場合、ＯＳ２１０は取得したセットアップ情報に含まれるスクリプトファイル５１４で、対象プリンタに関連付けたスクリプトファイルを上書き又は拡張し、スクリプトファイル３１４群に格納する。また、ＯＳ２１０は取得したセットアップ情報５１０に含まれるデバイス機能テキストファイル５１３でもとのデバイス機能テキストファイルを上書き及び拡張し、デバイス機能テキストファイル群に格納する。
【００６４】
また、ＯＳ２１０は、識別情報に基づき印刷拡張アプリ３５０と、共通プリンタドライバ２１１との関連付けを行う。関連付けについて図５を用いて説明する。対応する印刷拡張アプリ３５０がコンピュータ１０１にインストールされている場合は、ＯＳ２１０は、ＨＷＩＤと印刷拡張アプリの識別子を対応付けた情報をレジストリ３２２に登録する。なお、対応する印刷拡張アプリ３５０がコンピュータ１０１にインストールされていない場合、ＯＳ２１０は、識別情報に含まれる印刷拡張アプリの識別子を含むアプリ取得要求をサーバ１０５に送信する。アプリ取得要求を受信したサーバ１０５は、対応する印刷拡張アプリのインストールパッケージをコンピュータ１０１に配信する。ＯＳ２１０は、当該配信された拡張アプリケーションをインストールが完了すると、ＨＷＩＤと当該インストールした印刷拡張アプリの識別子を対応付けた情報をレジストリ３２２に登録する。更に、各ファイル群に書き込まれた特性パラメータは、拡張アプリケーションがアクセス可能な領域に書き込まれる。なお、図４の一連の処理により書き込まれる特性パラメータは、印刷装置のモデル毎のデフォルトパラメータである。これらの特性パラメータは、後述する更新処理により、印刷装置から取得した最新の特性パラメータに更新される。
【００６５】
これらの一連の処理により、ユーザが使用したい印刷装置の識別情報と、使用すべき印刷拡張アプリを一意に特定するための情報が登録される。また、各ファイル群及び拡張アプリケーションがアクセス可能な領域に印刷装置の特性パラメータが書き込まれる。
【００６６】
なお、図４及び図５では、１つの共通プリンタドライバ２１１が複数の印刷装置向けのファイル群３１３、３１４を有し、当該ファイルを切り替えて複数の印刷装置に対応する場合を例示した。しかしながら、共通プリンタドライバ２１１の実現方法はこれに限定されるものではない。例えば、共通プリンタドライバ２１１の既定のテンプレートを予め用意しておき、当該テンプレートに基づき新たな印刷装置向けに共通プリンタドライバ２１１のインストール処理を行うようにしてもよい。この場合、Ｓ４０４の処理に代えて、共通ドライバの新規インストールが行われる。また、Ｓ４０８の処理に代えて、新たにインストールされた共通プリンタドライバに対する拡張設定処理が行われる。
【００６７】
＜印刷制御＞
続いて、共通プリンタドライバ２１１を用いた印刷制御について図６〜図１０を用いて説明する。図６、図８乃至図１０はコンピュータ１０１における印刷制御を示すフローチャートである。図７は、ディスプレイ２０７に表示される操作画面の一例である。図６、図８乃至図１０のフローチャートに示す各動作は、外部メモリ２０９に記憶された各モジュール、コンポーネント、アプリケーションを実現するためのプログラムをＲＡＭ２０２に読み出し、ＣＰＵ２０１で実行することにより実現される。なお、処理の主体を明確にするため、必要に応じて、各モジュール、コンポーネント、アプリケーションを主語として説明する。
【００６８】
Ｓ６０１において、ＯＳ２１０は印刷設定表示イベントを受け付ける。印刷設定表示イベントは、ユーザが印刷出力機能を備えるアプリケーション上で印刷コマンドを実行することにより発生する。Ｓ６０２において、ＯＳ２１０は簡易印刷設定ダイアログ７００を表示する。図７（ａ）はディスプレイ２０７に表示される簡易印刷設定ダイアログ７００の一例である。簡易印刷設定ダイアログ７００では、印刷に用いる印刷装置設定７０１、用紙サイズ設定７０２、部数設定７０３を使用して設定を行うことができる。詳細設定ボタン７０５は、印刷拡張アプリ３５０が提供する詳細印刷設定ＵＩ部３５２のＵＩを表示する場合に使用するボタンである。印刷ボタン７１０は、印刷設定を完了し、印刷を開始する場合に使用するボタンである。キャンセルボタン７１１は、印刷設定を中止する場合に使用するボタンである。以降、本実施形態では、説明のため、ダイアログ７００を介して設定されている印刷に用いる印刷装置（出力対象となるプリンタ）を対象プリンタと呼ぶ。また、対象プリンタとして印刷装置１０２が選択されているものとして説明する。
【００６９】
図６の説明に戻り、Ｓ６０３において、ＯＳ２１０は簡易印刷設定ダイアログ７００におけるユーザ操作を受け付ける。Ｓ６０４において、ＯＳ２１０は詳細設定ボタン７０５がクリックされたか否かを判定する。ＯＳ２１０は、Ｓ６０４において、詳細設定ボタン７０５がクリックされたことを検知した場合、処理をＳ６０５に進め、詳細設定ボタン７０５がクリックされたことを検知していない場合、処理をＳ６３０に進める。
【００７０】
Ｓ６０５において、ＯＳ２１０は印刷拡張アプリ探索処理を行う。Ｓ６０５の探索処理については後述する。Ｓ６０６において、ＯＳ２１０はＳ６０５の印刷拡張アプリ探索処理の結果が真であるか否かを判定する。Ｓ６０６の結果、Ｓ６０５の印刷拡張アプリ探索処理の結果が真である場合、処理をＳ６０７に進め、Ｓ６０６の結果、Ｓ６０５の印刷拡張アプリ探索処理の結果が真でない場合、処理をＳ６２０に進める。
【００７１】
Ｓ６０７において、ＯＳ２１０は対象プリンタに関連付けられた印刷拡張アプリを起動する。具体的にはＳ６０５の探索処理結果に含まれる印刷拡張アプリ３５０の識別子に基づき起動するアプリケーションを決定し、起動する。なお、本実施形態では、ベンダが提供する印刷拡張アプリは所定のフォルダに格納されており、識別子に基づき一意に起動すべき印刷拡張アプリを決定できるものとする。ただしこれに限定されるものではなく、例えば、Ｓ６０５の処理結果に拡張アプリを起動するためのＵＲＩやファイルパスを含めるようにしてもよい。この場合、ＯＳ２１０は、当該ＵＲＩやファイルパスを用いて拡張アプリケーションを起動する。また、起動時に印刷拡張アプリに渡される引数として、対象プリンタを特定するための識別情報（対象プリンタのＩＰアドレスやＨＷＩＤ）が指定されるものとする。拡張アプリ３５０は、当該識別情報に基づき対象プリンタを特定することができる。
【００７２】
Ｓ６０８において、ＯＳにより起動された印刷拡張アプリ３５０は、詳細印刷設定ダイアログ７２０を表示する。詳細印刷設定ＵＩ部３５２は、ファイル群３１３及び３１４のうち対象となるプリンタの機能テキストファイルに基づき生成されたＰｒｉｎｔＴｉｃｋｅｔとＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓに基づき詳細印刷設定ダイアログを表示する。図７（ｂ）は印刷拡張アプリ３５０の詳細印刷設定ダイアログ７２０の一例である。ユーザは、印刷拡張アプリ３５０の詳細印刷設定ダイアログ７２０を介して、ページ集約７２１、ステープル７２２、地紋印刷７２３に関する設定を行うことができる。またユーザは、ステータス更新ボタン７３６は、対象プリンタのステータスを更新する指示を行うことができる。
【００７３】
地紋印刷７２３に関する設定値として、地紋として印刷する文字列を示すテキスト７３１、印刷される地紋の色７３２、地紋として印刷する文字列の用紙に対する角度７３３、地紋として印刷する文字列のフォントサイズ７３４が設定できる。また、印刷方法７３５では、元々の描画データの下地として地紋を印刷する透かし印刷と、元々の描画データに地紋を上書きして印刷する重ね印刷とが選択できる。ＯＫボタン７４０は、印刷拡張アプリ３５０の詳細印刷設定を完了し、簡易印刷設定ダイアログ７００に戻る場合にクリックされる。なお、本実施形態では地紋の一例として文字列を例示しているがこれに限定されるものではない。例えば、機密文書であることを示すスタンプなどの描画オブジェクトを隠し情報として埋め込めるようにしてもよい。
【００７４】
なお、本実施形態では、印刷設定変更のためのテキストボックスやプルダウンボックス、各種ボタンなどのユーザ操作を受け付けるための表示オブジェクトを表示アイテムと呼ぶものとする。
【００７５】
図６の説明に戻り、Ｓ６０９において、印刷拡張アプリ３５０は、詳細印刷設定ダイアログ７２０を介したユーザ操作を受け付ける。Ｓ６１０において、印刷拡張アプリ３５０は、ステータス更新ボタンがクリックされたことを検知したか否かを判定する。Ｓ６１０において、ステータス更新ボタンがクリックされたことを検知した場合、処理をＳ６１１に進め、ステータス更新ボタンがクリックされたことを検知していない場合、処理をＳ６１３に進める。
【００７６】
Ｓ６１１において、印刷拡張アプリ３５０は、対象プリンタの識別情報に基づき、パラメータの取得先となるプリンタを特定し、当該特定したプリンタから特性パラメータを含む情報を取得する。取得が完了すると、取得された特性パラメータに基づき対象プリンタに関する情報を更新する。なお、この処理では、パラメータ情報だけでなく、対象プリンタの構成情報なども取得することが可能である。これらの情報取得はベンダ独自の双方向通信プロトコルなどで取得されることを想定しているがこれに限定されない。例えば、ＳＮＭＰ  （Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）やＶ４プリンティングシステムで定義されたＢｉｄｉプリンタ通信などを用いて特性パラメータを含む情報を取得することもできる。印刷拡張アプリ３５０は、アプリ保存領域３５５に当該取得した特性パラメータを保存する。この処理により、ユーザ操作をトリガーとして最新の特性パラメータに更新することができる。なお、更新のトリガーはこれに限定されず、Ｓ６０７で印刷拡張アプリ３５０が起動された際に、現在の日付と更新日を比較し、所定の日数（例えば３０日）を経過していると判断したことに応じて、自動的に特性パラメータを取得するようにしてもよい。
【００７７】
Ｓ６１２において、印刷拡張アプリ３５０は、ＯＫボタン７４０がクリックされたことを検知したか否かを判定する。ＯＫボタン７４０がクリックされたことを検知した場合、処理をＳ６１３に進め、ＯＫボタン７４０がクリックされたことを検知していない場合、Ｓ６０９に戻り更なる印刷設定の受け付けを待つ。
【００７８】
続けて、Ｓ６１３において、印刷拡張アプリ３５０は、詳細印刷設定ダイアログ７２０で設定された印刷設定をアプリ保存領域３５５に格納する。また、詳細印刷設定ダイアログ７２０で設定された印刷設定でＰｒｉｎｔＴｉｃｋｅｔを更新する。更新処理が完了すると、処理をＳ６１４に進める。
【００７９】
図７（ｃ）はアプリ保存領域３５５に格納するデータ７５０の例である。印刷拡張アプリ３５０の詳細印刷設定ダイアログ７２０で設定された値がデータ項目７５１からデータ項目７６０に格納される。また、Ｓ６１１の更新処理で更新されたパラメータはデータ項目７６１〜７６３に格納される。具体的には、デバイス機能テキストファイルに記載された特性パラメータとして、地紋印刷機能に関するパラメータである、小ドットサイズ７６１、大ドットサイズ７６２が格納される。また、更新日７６３には、パラメータが更新された更新日付が記載される。図７（ｃ）では、対象プリンタが印刷装置１０２の場合を例示している。ここでは一例として「２０１９／１／１０」に更新が行われた場合を例示している。なお、図４のセットアップ直後においては、更新日７６３には、更新が行われていないことを表す情報（例えば、ＮＵＬＬや、１９００／１／１など）が記憶されているものとする。
【００８０】
図６の説明に戻り、Ｓ６１４において、ＯＳ２１０は印刷拡張アプリ３５０の詳細印刷設定ダイアログ７２０の表示を終了し、簡易印刷設定ダイアログ７００にコントロールのフォーカスを戻す。
【００８１】
続けて、印刷拡張アプリが関連付けられていない場合の処理について説明する。Ｓ６２０において、ＯＳ２１０はＯＳ標準の詳細印刷設定ダイアログを表示する。ＯＳ標準の詳細印刷設定ダイアログは、ＩＰＰで定義された設定項目のみが設定可能なダイアログである。このような印刷ダイアログからは、地紋印刷機能に関する設定を行うことができないものとする。Ｓ６２１において、ＯＳ２１０はＯＳ共通の詳細印刷設定ダイアログにおけるユーザ操作を受け付ける。Ｓ６２２において、ＯＳ２１０はＯＳ共通の詳細印刷設定ダイアログにおけるＯＫボタンがクリックされたことを検知したか否かを判定する。Ｓ６２２において、ＯＫボタンがクリックされたことを検知した場合、処理をＳ６２３に進め、ＯＫボタンがクリックされたことを検知していない場合、更なる設定操作の受け付けを待つ。
【００８２】
Ｓ６２３において、ＯＳ２１０はＯＳ共通の詳細印刷設定ダイアログにおける印刷設定に基づきＰｒｉｎｔＴｉｃｋｅｔを更新する。Ｓ６２４において、ＯＳ２１０はＯＳ共通の詳細印刷設定ダイアログの表示を終了し、簡易印刷設定ダイアログ７００にコントロールのフォーカスを戻す。
【００８３】
Ｓ６３０において、ＯＳ２１０はキャンセルボタン７１１がクリックされたことを検知したか否かを判定する。Ｓ６３０において、キャンセルボタンがクリックされたことを検知した場合、印刷設定を中止し、一連の印刷処理を中止する。Ｓ６３０において、キャンセルボタンがクリックされたことを検知していない場合、処理をＳ６４０に進める。
【００８４】
Ｓ６４０において、ＯＳ２１０は印刷ボタン７１０がクリックされたことを検知したか否かを判定する。Ｓ６４０において、印刷ボタンをクリックされたことを検知した場合、処理をＳ６４１に進め、印刷ボタンをクリックされたことを検知していない場合、Ｓ６０３の処理に戻り更なる印刷設定の操作を受け付ける。
【００８５】
続けて、Ｓ６４１において、ＯＳ２１０は、簡易印刷設定ダイアログ７００で設定された印刷設定でＰｒｉｎｔＴｉｃｋｅｔを更新する。
【００８６】
最後に、Ｓ６５０において、ＯＳ２１０は印刷処理開始イベントを発生させ、簡易印刷設定ダイアログ７００の表示を終了する。印刷処理開始イベントの発生をトリガーとした印刷処理については、図９、図１０のフローチャートで後述する。
【００８７】
続けて、Ｓ６０５の印刷拡張アプリ探索処理について図８のフローチャートを用いて説明する。
【００８８】
Ｓ８０１において、ＯＳ２１０は、レジストリ３２２を参照し、ユーザによって選択された対象プリンタのプリントキュー３０１に関連付けられた情報を取得する。
【００８９】
Ｓ８０２において、ＯＳ２１０は、対象プリンタに関連付けてプリント印刷拡張アプリ識別子が登録されているか否かを判定する。Ｓ８０２において、印刷拡張アプリ識別子が登録されている場合、処理をＳ８０３に進め、Ｓ８０２において、印刷拡張アプリ識別子が登録されていない場合、処理をＳ８０５に進める。
【００９０】
Ｓ８０３において、ＯＳ２１０は、コンピュータ１０１にインストールされている全てのタッチアプリ３４０に関して、その印刷拡張アプリ識別子に一致するものが存在するか確認する。Ｓ８０３において、印刷拡張アプリ識別子に一致するものがあれば、処理をＳ８０４に進め、印刷拡張アプリ識別子に一致するものがなければ、処理をＳ８０５に進める。
【００９１】
Ｓ８０４において、ＯＳ２１０はプリントキュー３０１に関連付いた印刷拡張アプリ３５０が存在すると判断し、印刷拡張アプリ探索処理の結果として真を返す。この探索処理の結果には、印刷拡張アプリを起動するための識別子と、対象プリンタを特定するための識別情報（対象プリンタのＩＰアドレスやＨＷＩＤなど）も含まれている。
【００９２】
一方、Ｓ８０５において、ＯＳ２１０はプリントキュー３０１に関連付いた印刷拡張アプリ３５０が存在しないと判断し、印刷拡張アプリ探索処理の結果として偽を返す。
【００９３】
なお、本実施形態では、拡張印刷アプリを起動するための識別子を検索結果に含める場合を例示したがこれに限定されるものではない。検索結果に拡張印刷アプリを起動するためのＵＲＩやファイルパスなどを含めてもよい。
【００９４】
＜印刷指示後の印刷制御＞
続けて、Ｓ６５０で発行された印刷処理開始イベントに基づく印刷処理について、図９及び図１０のフローチャートを用いて説明する。図９のフローチャートは、Ｓ６５０の処理により、印刷処理開始イベントが発行されたことに従って実行されるフローチャートである。
【００９５】
Ｓ９０１において、ＯＳ２１０は、アプリケーションからＸＰＳ形式の印刷対象データとＰｒｉｎｔＴｉｃｋｅｔを受信し、スプーラ３０２に一時的に記憶する。
【００９６】
Ｓ９０２において、ＯＳ２１０は印刷拡張アプリ探索処理を行う。Ｓ９０２における印刷拡張アプリ探索処理は、Ｓ６０５における処理と同様であるため説明を省略する。
【００９７】
Ｓ９０３において、ＯＳ２１０はＳ９０２の印刷拡張アプリ探索処理の結果が真であるか否かを判定する。Ｓ９０３の結果、Ｓ９０２の印刷拡張アプリ探索処理の結果が真である場合、処理をＳ９０４に進め、真でない場合（偽である場合）は、処理をＳ９１０に進める。
【００９８】
Ｓ９０４において、ＯＳ２１０は印刷時起動アプリランチャ３０５を介して、印刷拡張アプリ３５０の印刷時起動バックグラウンドタスク部３５３を起動する。また、Ｓ９０２で受信したＸＰＳ形式の印刷対象データと、ＰｒｉｎｔＴｉｃｋｅｔをバックグラウンドタスク部へ受け渡す。また、この際に、対象プリンタを特定するための識別情報（ＩＰアドレスやＨＷＩＤなど）も受け渡されるものとする。
【００９９】
Ｓ９０５において、印刷時起動バックグラウンドタスク部３５３は、印刷設定として地紋印刷機能の設定がなされているか否かを判定する。印刷時起動バックグラウンドタスク部３５３は、印刷拡張アプリ３５０を介してアプリ保存領域３５５に格納されたデータを参照し、データ項目７５４に真値が格納されているか否かにより印刷設定として地紋印刷機能の設定がなされているかどうかを判定する。印刷設定として地紋印刷機能の設定がなされている場合は、処理をＳ９０６に進め、地紋印刷機能の設定がなされていない場合は、処理をＳ９０９に進める。
【０１００】
Ｓ９０６において、バックグラウンドタスク部３５３は、パラメータ更新の必要があるか否かを判定する。具体的には、アプリ保存領域３５５の更新日７６３を参照し、更新が行われていないことを示している場合、又は更新から所定日数（例えば３０日）を経過している場合に更新が必要であると判定する。更新が必要であると判定した場合、処理をＳ９０７に進め、更新が必要でないと判定した場合、処理をＳ９０８に進める。
【０１０１】
Ｓ９０７において、バックグラウンドタスク部３５３は、対象プリンタの識別情報に基づき、パラメータの取得先となるプリンタを特定し、当該特定したプリンタから特性パラメータを取得する。取得が完了すると、取得された特性パラメータに基づき対象プリンタに関する特性パラメータ（データ項目７６１乃至７６３）を更新する。Ｓ９０７の処理では、一連の印刷に必要となる特性パラメータのみを取得するため、Ｓ６１１の処理に比べて通信に係る時間を削減することができる。このように必要に応じて特性パラメータを更新することで、良好な印字を行えるようにすることができるようになる。
【０１０２】
続けて、Ｓ９０８において、バックグラウンドタスク部３５３は、印刷拡張アプリ３５０の印刷時起動ＵＩ部３５４を起動する。印刷拡張アプリ３５０の印刷食堂ＵＩ部３５４は、印刷対象データであるＸＰＳを編集し地紋生成処理を行う。図１０はＳ９０８の処理を説明するためのフローチャートである。以降、説明の簡略化のため印刷時起動ＵＩ部３５４を印刷拡張アプリ３５０と呼ぶものとする。
【０１０３】
Ｓ１００１において、印刷拡張アプリ３５０はデータ項目７５５からデータ項目７５８及び大ドットサイズ７６２をもとに、隠れたパターンである潜像データを生成する。潜像データとは、データ項目７５５で指定された文字列や、データ項目７５７の傾きで、データ項目７５８のフォントで表現した領域内を、大ドットサイズ７６２のドットサイズでデータ項目７５６の色で点描した際に規定の濃度となるよう構成したデータである。なお、スタンプなどの描画オブジェクトを埋め込む場合、印刷拡張アプリ３５０は、予め登録されたスタンプなどをデータ項目７５７の傾きに応じて適宜回転の上、当該回転したスタンプに基づき隠れたパターンである潜像データを生成するものとする。
【０１０４】
続けて、Ｓ１００２において、印刷拡張アプリ３５０はデータ項目７５５からデータ項目７５８及び小ドットサイズ７６１をもとに、背景データを生成する。潜像領域外の領域について、小ドットサイズ７６１のドットサイズでデータ項目７５６の色で点描した際に規定の濃度となるよう構成したデータである。
【０１０５】
印刷拡張アプリ３５０は、Ｓ１００１で生成した潜像データとＳ１００２で生成した背景データの所定面積当たりの濃度が同様となるよう制御する。これにより、人間の視覚特定上、大ドットで表現された文字列やスタンプの領域と、小ドットで表現された領域とが薄い一様の模様（均一な模様）として見えるような印刷物を出力できる。これらの印刷物をスキャンしたりコピーしたりすると、小ドットで表現された領域は、小ドットで描画した背景データはスキャナでは読み取られずに消えて、大ドットで描画した隠し文字列が残る。従って複写された原稿であることが一目でわかるようになる。
【０１０６】
図１０の説明に戻り、Ｓ１００３において、印刷拡張アプリ３５０はデータ項目７５９の値が透かし印刷であるか重ね印刷であるかを判定する。Ｓ１００３において、データ項目７５９の値が透かし印刷であった場合、処理をＳ１００４に進め、Ｓ１００３において、データ項目７５９の値が重ね印刷であった場合、処理をＳ１００５に進める。
【０１０７】
Ｓ１００４において、Ｓ１００１で生成した潜像データとＳ１００２で生成した背景データを、元々の描画データよりも背面に出力されるよう、ＸＰＳを編集する。即ち元々の描画データの背面に潜像データと背景データからなる地紋データを合成する。
【０１０８】
一方、Ｓ１００５において、Ｓ１００１で生成した潜像データとＳ１００２で生成した背景データを、元々の描画データよりも前面に出力されるよう、ＸＰＳを編集する。即ち元々の描画データの前面に潜像データと背景データからなる地紋データを合成する。処理が完了すると、処理を図９のＳ９０８に進める。
【０１０９】
続けて、Ｓ９０９において、印刷拡張アプリ３５０は、詳細印刷設定ダイアログ７２０で設定を行ったページ集約７２１のデータ項目７５１及びステープル７２２のデータ項目７５２に基づき、ＰｒｉｎｔＴｉｃｋｅｔとＸＰＳを編集する。Ｓ９０８の編集が完了すると、印刷拡張アプリ３５０は、ＯＳ２１０のスプーラ３０２に編集後のＰｒｉｎｔＴｉｃｋｅｔとＸＰＳを書き戻し、アプリのプロセスを完了する。
【０１１０】
Ｓ９１０において、ＯＳ２１０はフィルタパイプラインマネージャ３０３を介して、スプーラ３０２からＰｒｉｎｔＴｉｃｋｅｔとＸＰＳファイルを取得する。
【０１１１】
Ｓ９１１において、ＯＳ２１０は、フィルタパイプラインマネージャ３０３を介して、フィルタコンフィグ３１２の定義に基づき、使用するプリンタドライバ２１１に対応するフィルタ３１１を外部メモリ２０９から読み出し、ＲＡＭ２０２にロードする。Ｓ９１２において、ＯＳ２１０はフィルタパイプラインマネージャ３０３を介して、ＸＰＳを展開したフィルタ３１１に入力し、フィルタ３１１によるＰＤＬ変換処理を実行する。なお、Ｓ９１２のＰＤＬ変換処理で用いられるフィルタ３１１は複数で構成されていてもよい。Ｓ９１３において、ＯＳ２１０はフィルタパイプラインマネージャ３０３を介して、Ｓ９１２のＰＤＬ変換処理の結果得られたＰＤＬをスプーラ３０２に転送する。その後、ＯＳ２１０はスプーラ３０２を介して、ネットワークＩ／Ｆ２１３と協働して、ＰＤＬとＰｒｉｎｔＴｉｃｋｅｔを含むデータを印刷ジョブとして対象のプリンタ（例えば印刷装置１０２）へ送信する。
【０１１２】
当該印刷ジョブを受信した印刷装置は、印刷ジョブに基づいてシートに印刷画像を印刷する。印刷ジョブに地紋データが含まれている場合、文字列やパターンなどの隠し情報が含まれた印刷物を出力することができる。このとき、潜像データと背景データは対象プリンタとして選択された印刷装置の特性パラメータに基づき、当該印刷装置の印字能力に合わせて生成されたものが付与される。従って、適切な地紋印刷を行えるようになる。
【０１１３】
以上説明した一連の処理より、印刷装置毎の特性パラメータに基づいた地紋印刷機能を実現できるようになる。これにより共通のプリンタドライバ２１１を使用する場合であっても、出力先の印刷装置に応じて異なる地紋パラメータに従った地紋生成処理を実現することが可能となる。
【０１１４】
＜変形例＞
上述の実施例では、共通プリンタドライバを構成するフィルタ３１１によりＸＰＳをＰＤＬに変換する例を示したが、これに限定されず、印刷拡張アプリ３５０がＰＤＬ変換処理を行う構成であってもよい。この場合、フィルタ３１１ではアプリケーションから取得されたデータ（例えば、ＸＰＳやＰＤＦ）に対して特に処理を加えず、後段の印刷拡張アプリ３５０にデータを転送するよう構成すればよい。
【０１１５】
更に、上述の実施形態では、印刷拡張アプリ３５０が印刷装置から取得する特性パラメータの一例として地紋印刷機能のパラメータを例示し、印刷拡張アプリ３５０の独自の機能の一例として地紋印刷機能を例示したがこれに限定されるものではない。例えば、印刷装置の個体毎に調整された、カラーキャリブレーション情報、カラープロファイル情報や、レジストレーション補正情報、ハーフトーン処理に用いるディザマトリクスに関する特性パラメータを印刷装置から取得するようにしてもよい。例えば、カラーキャリブレーション情報や、カラープロファイル情報は、ホスト側である情報処理装置で印刷データに対する色補正や濃度補正、色ずれ補正を行う際に適宜活用される。また、レジストレーション情報やディザマトリクスは、ホスト側である情報処理装置の拡張アプリ３５０で印刷に用いるハーフトーン画像を生成する場合に適宜活用される。ここで、電子写真方式の印刷装置は、感光ドラムやレーザユニットの取り付け精度等により感光ドラム状に照射されるレーザーの走査線に曲がりが生じうる。前述したレジストレーション情報は、当該曲がりが発生することを考慮した上で、当該曲がりが相殺されるように、予め画像データを主走査方向の所定の位置において副走査方向にずらすレジストレーション補正を行うために適宜活用される。
【０１１６】
また、上述の実施形態では、ＸＰＳの処理対象データをＰＤＬに変換する前に、Ｓ９０２〜Ｓ９０８に示したベンダの独自機能を実行する場合を例示したがこれに限定されるものではない。ＰＤＦやラスタなどのＰＤＬへの変換処理であるＳ９１０〜Ｓ９１２が行われた後に、ベンダの独自機能を提供するように制御することもできる。Ｓ９１０〜Ｓ９１２の処理を先に実行し、その後にＳ９０２〜Ｓ９０９に相当する処理を実行するようにすればよい。
【０１１７】
＜その他の実施形態＞
本発明は、上述の各実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣやＦＰＧＡ）によっても実現可能である。
【符号の説明】
【０１１８】
１０１  クライアントコンピュータ
２０１  ＣＰＵ
２１１  共通プリンタドライバ
３５０  印刷拡張アプリ
【図１】
2020107241.tif 000003
【図２】
2020107241.tif 000004
【図３】
2020107241.tif 000005
【図４】
2020107241.tif 000006
【図５】
2020107241.tif 000007
【図６】
2020107241.tif 000008
【図７】
2020107241.tif 000009
【図８】
2020107241.tif 000010
【図９】
2020107241.tif 000011
【図１０】
2020107241.tif 000012