(57)【特許請求の範囲】
【請求項１】
印刷ジョブデータを加工処理する機能フィルタを少なくとも２つ有する機能フィルタ群と，
前記機能フィルタ群の構成情報を記憶するフィルタ構成記憶部と，
前記フィルタ構成記憶部に記憶された機能フィルタ群の構成情報を基に機能フィルタを読み出し，印刷ジョブデータの加工処理を実行するフィルタ実行部と，
前記機能フィルタ群の機能フィルタに含まれ，印刷ジョブデータに付加情報を配置する機能を有する特定機能フィルタと，
前記特定機能フィルタの加工処理を，他の機能フィルタの加工処理に適用するか否かを他の機能フィルタごとに選択させる選択部とを備え，
前記特定機能フィルタは，
前記加工処理の際に，前記選択部の選択結果を基に他の機能フィルタの加工処理用の変換式が必要か否かを他の機能フィルタごとに判断し，必要と判断された他の機能フィルタに問い合わせて当該機能フィルタの加工処理用の変換式を取得する変換式取得部と，
前記変換式取得部によって取得された変換式を基に前記付加情報の位置を調節する位置調節式を生成し，当該位置調節式を利用して前記付加情報の配置を決定する付加情報配置部とを備えることを特徴とする印刷制御装置。
【請求項２】
請求項１に記載する印刷制御装置において，
前記変換式取得部によって取得される変換式は，機能フィルタごとに設定された行列であることを特徴とする印刷制御装置。
【請求項３】
請求項２に記載する印刷制御装置において，
前記特定機能フィルタは，
前記フィルタ構成記憶部に問い合わせ，前記機能フィルタ群のうちの自身の実行順位を取得する実行順位取得部を有し，
前記付加情報配置部は，前記実行順位を基に，自身よりも先に実行される機能フィルタの行列と，自身よりも後に実行される機能フィルタの行列の逆行列とを掛け合わせて前記位置調節式を生成することを特徴とする印刷制御装置。
【請求項４】
請求項３に記載する印刷制御装置において，
前記付加情報配置部は，
自身よりも先に実行される機能フィルタであって，前記付加情報を当該機能フィルタの加工処理に適用する設定がなされている場合に，当該機能フィルタの行列を抽出し，
自身よりも後に実行される機能フィルタであって，前記付加情報を当該機能フィルタの加工処理に適用しない設定がなされている場合に，当該機能フィルタの行列の逆行列を抽出し，
抽出された行列ないし逆行列を機能フィルタの実行順位に従って掛け合わせることを特徴とする印刷制御装置。
【請求項５】
請求項１から請求項４のいずれか１つに記載する印刷制御装置において，
前記特定機能フィルタは，ウォータマークを付与する機能フィルタであることを特徴とする印刷制御装置。
【請求項６】
印刷ジョブデータを加工処理する機能フィルタを少なくとも２つ有する機能フィルタ群と，
前記機能フィルタ群の構成情報を記憶するフィルタ構成記憶部と，
前記フィルタ構成記憶部に記憶された機能フィルタ群の構成情報を基に機能フィルタを読み出し，印刷ジョブデータの加工処理を実行するフィルタ実行部とを備え，
前記機能フィルタ群の機能フィルタのうち，印刷ジョブデータに付加情報を配置する機能を有する特定機能フィルタは，
前記加工処理の際に，他の機能フィルタに問い合わせて当該機能フィルタの加工処理用の行列を取得する変換式取得部と，
前記フィルタ構成記憶部に問い合わせ，前記機能フィルタ群のうちの自身の実行順位を取得する実行順位取得部と，
前記実行順位を基に，自身よりも先に実行される機能フィルタの行列と，自身よりも後に実行される機能フィルタの行列の逆行列とを掛け合わせて前記付加情報の位置を算出する付加情報配置部とを備えることを特徴とする印刷制御装置。
【請求項７】
印刷制御装置を，
印刷ジョブデータを加工処理する機能フィルタを少なくとも２つ有する機能フィルタ群と，
前記機能フィルタ群の構成情報を記憶するフィルタ構成記憶手段と，
前記機能フィルタ群の構成情報を基に機能フィルタを読み出し，印刷ジョブデータの加工処理を実行するフィルタ実行手段と，
前記機能フィルタ群の機能フィルタに含まれ，印刷ジョブデータに付加情報を配置する機能を有する特定機能フィルタと，
前記特定機能フィルタの加工処理を，他の機能フィルタの加工処理に適用するか否かを他の機能フィルタごとに選択させる選択手段とを備え，
前記特定機能フィルタを，
前記加工処理の際に，前記選択手段の選択結果を基に他の機能フィルタの加工処理用の変換式が必要か否かを他の機能フィルタごとに判断し，必要と判断された他の機能フィルタに問い合わせて当該機能フィルタの加工処理用の変換式を取得する変換式取得手段と，
前記変換式取得手段によって取得された変換式を基に前記付加情報の位置を調節する位置調節式を生成し，当該位置調節式を利用して前記付加情報の配置を決定する付加情報配置手段として機能させることを特徴とするプリンタドライバのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，印刷制御装置およびプリンタドライバのプログラムに関する。さらに詳細には，印刷ジョブデータを機能フィルタによって加工処理する印刷制御装置およびプリンタドライバのプログラムに関するものである。
【背景技術】
【０００２】
プリンタの制御を行う印刷制御装置には，印刷ジョブデータを加工処理する機能を有するプリンタドライバが組み込まれている。印刷ジョブデータを加工処理する機能としては，例えば，印刷される画像の並び順序を変更する並べ替え機能や，複数のページを１枚の用紙に印刷するマルチページ機能や，印刷される画像に透かし文字等の画像を付加して印刷するウォータマーク機能が知られている。
【０００３】
従来から，アプリケーションからＸＭＬ（Extensible Markup Language）形式で出力される文書データを加工処理するプリンタドライバでは，各種の加工処理を実行するモジュールを，プリンタドライバに対して追加したり削除したりすることが可能な「機能フィルタ」として備えている。プリンタドライバは，印刷ジョブを実行する際に機能フィルタを読み出し，文書データを加工処理して印刷データとしてプリンタ等に出力する。
【０００４】
機能フィルタを利用するプリンタドライバとしては，例えば特許文献１に，機能フィルタの実行順序を指定できる印刷システムが開示されている。各種の機能の組み合わせによっては，その実行順によって異なる画像が出力される。例えば，マルチページ機能（例えば２ｉｎ１），ウォータマーク機能の順に加工した印刷データと，ウォータマーク機能，マルチページ機能の順に加工した印刷データとでは，出力画像が異なる。そこで，特許文献１の印刷システムでは，機能フィルタの実行順序を指定可能にすることでユーザの意図通りの画像が得られるとしている。
【特許文献１】特開２００６−４８５３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら，前記した従来のプリンタドライバには，次のような問題があった。すなわち，ユーザによって実行したい機能フィルタの並び順は異なる。一方で，機能フィルタの実行順序はプリンタドライバごとに定義されている。そのため，あるユーザが機能フィルタの実行順序を変えると，他のユーザもその影響を受けてしまう。つまり，前のユーザが実行順序を変えることで，予期しない印刷結果が生じる。
【０００６】
そもそも，実行順序が設定されているファイルの変更については，管理者権限が必要となることが多い。つまり，一般のユーザでは機能フィルタの実行順序を変更することができず，実行順序を変更したい場合には管理者権限を得なければならない。
【０００７】
本発明は，前記した従来のプリンタドライバが有する問題点を解決するためになされたものである。すなわちその課題とするところは，他のユーザに影響を与えることなく，ユーザが個別に所望の加工処理を行うことができる印刷制御装置およびプリンタドライバのプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
この課題の解決を目的としてなされた印刷制御装置は，印刷ジョブデータを加工処理する機能フィルタを少なくとも２つ有する機能フィルタ群と，機能フィルタ群の構成情報を記憶するフィルタ構成記憶部と，フィルタ構成記憶部に記憶された機能フィルタ群の構成情報を基に機能フィルタを読み出し，印刷ジョブデータの加工処理を実行するフィルタ実行部と，機能フィルタ群の機能フィルタに含まれ，印刷ジョブデータに付加情報を配置する機能を有する特定機能フィルタと，特定機能フィルタの加工処理を，他の機能フィルタの加工処理に適用するか否かを他の機能フィルタごとに選択させる選択部とを備え，特定機能フィルタは，加工処理の際に，選択部の選択結果を基に他の機能フィルタの加工処理用の変換式が必要か否かを他の機能フィルタごとに判断し，必要と判断された他の機能フィルタに問い合わせて当該機能フィルタの加工処理用の変換式を取得する変換式取得部と，変換式取得部によって取得された変換式を基に付加情報の位置を調節する位置調節式を生成し，当該位置調節式を利用して付加情報の配置を決定する付加情報配置部とを備えることを特徴としている。
【０００９】
本発明の印刷制御装置は，機能フィルタ群を構成する各機能フィルタによって印刷ジョブデータの加工処理を行うものである。そして，本発明の印刷制御装置の特定機能フィルタは，変換式取得部によって，加工処理の際に，他の機能フィルタの加工処理用の変換式を取得する。特定機能フィルタは，印刷ジョブデータに付加情報を配置する機能を有するものであり，例えばウォータマークやヘッダ／フッタが該当する。また，変換式としては，例えば行列が利用される。行列は，座標変換作業を容易に行うことができるとともに，座標変換に必要な情報量が少ないという利点を有する。
【００１０】
そして，特定機能フィルタの付加情報配置部は，取得した変換式を基に付加情報の配置を決定する。すなわち，他の機能フィルタの座標変換情報を反映させた上で，付加情報を付加する位置を決定する。これにより，フィルタの構成情報を変更することなく，特定機能フィルタによる付加情報を所望の位置に配置することができる。また，フィルタの構成情報に変更がないことから，管理者権限の必要性はなく，他のユーザにも影響を及ぼさない。
【００１１】
具体的には，行列式を利用する場合，特定機能フィルタは，フィルタ構成記憶部に問い合わせ，機能フィルタ群のうちの自身の実行順位を取得する実行順位取得部を有し，付加情報配置部は，実行順位を基に，自身よりも先に実行される機能フィルタの行列と，自身よりも後に実行される機能フィルタの行列の逆行列とを掛け合わせて付加情報の位置を算出することとするとよい。
【００１２】
さらに具体的には，付加情報配置部は，自身よりも先に実行される機能フィルタであって，付加情報を当該機能フィルタの加工処理に適用する設定がなされている場合に，当該機能フィルタの行列を抽出し，自身よりも後に実行される機能フィルタであって，前記付加情報を当該機能フィルタの加工処理に適用しない設定がなされている場合に，当該機能フィルタの行列の逆行列を抽出し，抽出された行列ないし逆行列を機能フィルタの実行順位に従って掛け合わせることとするとよい。
【００１３】
また，本発明の印刷制御装置は，機能フィルタ群の機能フィルタのうち，印刷ジョブデータに付加情報を配置する機能を有する特定機能フィルタ（例えば，ウォータマークやヘッダ／フッタ）を他の機能フィルタに適用するか否かを，すなわち他の機能フィルタの加工処理に合わせて付加情報の配置の座標変換を行うか否かを，特定機能フィルタ以外の機能フィルタごとに選択する選択部を備えることとするとよりよい。すなわち，機能フィルタごとに特定機能フィルタに適用するか否かを選択させることで，付加情報の配置の自由度が高くなる。
【００１４】
また，本発明は，印刷制御装置を，印刷ジョブデータを加工処理する機能フィルタを少なくとも２つ有する機能フィルタ群と，機能フィルタ群の構成情報を記憶するフィルタ構成記憶手段と，機能フィルタ群の構成情報を基に機能フィルタを読み出し，印刷ジョブデータの加工処理を実行するフィルタ実行手段と，機能フィルタ群の機能フィルタに含まれ，印刷ジョブデータに付加情報を配置する機能を有する特定機能フィルタと，特定機能フィルタの加工処理を，他の機能フィルタの加工処理に適用するか否かを他の機能フィルタごとに選択させる選択手段とを備え，特定機能フィルタを，加工処理の際に，選択手段の選択結果を基に他の機能フィルタの加工処理用の変換式が必要か否かを他の機能フィルタごとに判断し，必要と判断された他の機能フィルタに問い合わせて当該機能フィルタの加工処理用の変換式を取得する変換式取得手段と，変換式取得手段によって取得された変換式を基に付加情報の位置を調節する位置調節式を生成し，当該位置調節式を利用して付加情報の配置を決定する付加情報配置手段として機能させるプリンタドライバのプログラムを含んでいる。
【発明の効果】
【００１５】
本発明によれば，他のユーザに影響を与えることなく，ユーザが個別に所望の加工処理を行うことができる印刷制御装置およびプリンタドライバのプログラムが実現している。
【発明を実施するための最良の形態】
【００１６】
以下，本発明にかかる印刷制御装置を具体化した実施の形態について，添付図面を参照しつつ詳細に説明する。本形態は，プリンタドライバがインストールされたパーソナルコンピュータ（以下，単に「ＰＣ」とする）に本発明を適用したものである。
【００１７】
［プリントシステムの構成］
本形態のプリントシステム１００は，図１に示すように，画像形成装置としてのプリンタ２と，情報端末装置としてのＰＣ１とを備えている。プリントシステム１００では，ＰＣ１とプリンタ２とがＵＳＢケーブルを介して接続されている。なお，プリントシステム１００を構成するプリンタおよびＰＣは各１台に限るものではなく，それぞれ複数台接続してもよい。また，ＰＣ１とプリンタ２との接続は，ＵＳＢケーブルに限らず，その他のシリアル通信ケーブル，パラレル通信ケーブル，有線ＬＡＮケーブル，さらには無線ＬＡＮ等の無線通信経路とすることも可能である。
【００１８】
ＰＣ１は，各種処理を実行するＣＰＵ１１と，当該ＰＣ１の起動時にＣＰＵ１１が行う起動処理のプログラム（ＢＩＯＳ）等を記憶したＲＯＭ１２と，ＣＰＵ１１が各種処理を行う際に一時的な記憶領域として利用されるＲＡＭ１３と，各種のプログラムやデータを記憶したハードディスクドライブ（ＨＤＤ）１４とを有している。
【００１９】
また，ＰＣ１は，キーボードやマウス等からなる操作部１５と，液晶ディスプレイ等からなる表示部１６と，プリンタ２との間で信号のやりとりを行うプリンタポートインターフェース１７（本形態では，ＵＳＢインターフェース等）と，ＬＡＮ，インターネット等のネットワークを介して信号のやりとりを行うネットワークインターフェース１８とを有している。
【００２０】
さらに，ＰＣ１のＨＤＤ１４には，オペレーティングシステム（ＯＳ）や，画像データを編集可能なアプリケーション（例えば，文書作成ソフト，作図ソフト，表計算ソフト，写真データ編集ソフト等）や，プリンタ２にＰＤＬ形式で記述された印刷データを送信するプリンタドライバが記憶されている。
【００２１】
プリンタ２は，各種処理を実行するＣＰＵ２１と，当該プリンタ２の起動時にＣＰＵ２１が行う起動処理のプログラム等を記憶したＲＯＭ２２と，ＣＰＵ２１が各種処理を行う際に一時的な記憶領域として利用されるＲＡＭ２３と，各種のプログラムやデータ等を記憶したハードディスクドライブ（ＨＤＤ）２４とを有している。
【００２２】
また，プリンタ２は，当該プリンタ２の筐体外部に配設された複数のボタンからなる操作部２５と，同じく筐体外部に配設された液晶表示パネル等からなる表示部２６と，ＰＣ１との間で信号のやりとりを行うプリンタポートインターフェース２７（本形態では，ＵＳＢインターフェース等）と，ＬＡＮ，インターネット等のネットワークを介して信号のやりとりを行うネットワークインターフェース２８とを有している。
【００２３】
さらに，プリンタ２は，記録媒体としての用紙やＯＨＰシート（以下，単に「用紙」とする）に画像を形成する印字部３０を有している。印字部３０は，電子写真方式，インクジェット方式，その他の一般的な画像形成方式を採用していればよい。また，カラー画像の形成が可能であっても，モノクロ画像専用であってもよい。
【００２４】
このような構成であるプリンタ２およびＰＣ１を備える本形態のプリントシステム１００では，ユーザがＰＣ１を操作し，ＰＣ１に組み込まれたアプリケーションを利用して文書，図，表，あるいは写真等の画像データを編集することが可能である。そして，ユーザの指示に従って，ＰＤＬ形式の印刷データをプリンタ２に送信し，プリンタ２によって画像を出力することが可能である。
【００２５】
ＰＣ１に組み込まれたアプリケーションの一部は，印刷機能を備えており，この印刷機能によって文書データあるいは画像データ等の印刷ジョブデータがプリンタドライバに対して送られる。プリンタドライバは，アプリケーションからの印刷ジョブデータに応じ，文書データや画像データをプリンタ２で印刷するために必要な印刷データを作成する。
【００２６】
プリンタドライバが作成した印刷データは，プリンタポートインターフェース１７を経由してプリンタ２へと送信される。プリンタ２は，印刷データを受信することで印字部３０を稼働する。そして，印刷データに基づいて，ユーザが選択した用紙にユーザの所望の画像を形成する。
【００２７】
［プリンタドライバの構成］
続いて，ＰＣ１に組み込まれているプリンタドライバ４について説明する。プリンタ２用のプリンタドライバ４は，各種の加工処理を実行するソフトウェアモジュール（本形態では，ＤＬＬ）を「機能フィルタ」として備えている。機能フィルタは，バージョンアップやアドイン等を行うことにより，追加したり削除したりあるいは機能を拡張したりすることが可能である。
【００２８】
本形態のプリンタドライバ４は，図２に示すように，制御部４１と，ユーザインターフェース（ＵＩ）部４２（選択部の一例）と，フィルタ設定ファイル４３（フィルタ構成記憶部の一例）と，フィルタ部４４（機能フィルタ群の一例）と，フィルタ実行部４５（フィルタ実行部の一例）とを有している。
【００２９】
制御部４１は，アプリケーション７からの要求を受け付けるとともに必要に応じて情報を送り返す機能を有している。本形態のプリンタドライバ４としては，アプリケーション７からの印刷ジョブデータを受け付ける。この他，プリンタドライバ４自身が所有する機能の表示指示等を受け付ける。なお，実際には，アプリケーション７から出力される印刷ジョブデータはスプーラに蓄積され，順次にプリンタドライバ４に送り込まれるが，本形態では説明の簡略化のためにスプーラを省略している。
【００３０】
ＵＩ部４２は，各種の加工処理の設定を行うユーザインターフェースを提供する機能を有している。本形態のプリンタドライバ４では，例えば図３に示すような加工処理設定ダイアログ４２０が表示される。加工処理設定ダイアログ４２０には，プリンタドライバ４が所有する機能フィルタの一覧（ＲＩＰを除く）が表示され，さらに各機能フィルタのパラメータの設定用ダイアログを開くボタンが表示される。機能フィルタの一覧は，後述するフィルタ設定ファイル４３から取得される。
【００３１】
例えば，ウォータマークの設定を行う場合には，図４に示すようなウォータマーク設定ダイアログ４２１が表示される。このウォータマーク設定ダイアログ４２１では，ウォータマークとしての文字列，フォントの種類やサイズを設定するダイアログの表示が可能である。ウォータマーク設定ダイアログ４２１については，フィルタ設定ファイル４３に登録されているウォータマーク用の機能フィルタから読み出される。
【００３２】
また，加工処理設定ダイアログ４２０では，図３に示したように，ウォータマークを除く各機能フィルタの加工処理をウォータマークに反映させるか否かを機能フィルタごとに設定するチェックボックスが表示される。ウォータマークのように印刷ジョブデータに付加情報を付与する加工処理では，その付加情報の配置について，座標変換を行う機能フィルタ（本形態ではスケーリング，オフセット，回転の各機能フィルタ５１，５３，５４）に影響を受ける。例えば，スケーリングの座標変換をウォータマークに適用した印刷データ（ウォータマークにスケーリングの倍率変換が適用された印刷データ）と，スケーリングの座標変換をウォータマークに適用していない印刷データ（ウォータマークにスケーリングの倍率変換が適用されていない印刷データ）とでは，出力画像が異なる。そこで，ウォータマークについて各機能フィルタ５１，５３，５４の加工処理に適用するか否かを選択させる。
【００３３】
ＵＩ部４２の各ダイアログは，アプリケーション７等から制御部４１を介して読み出される。読み出し先のアプリケーションでは，各ダイアログの設定内容を取得する。そして，アプリケーション７では，ＵＩ部４２での設定内容を印刷ジョブデータに付加し，当該印刷ジョブデータをプリンタドライバ４に送り込む。
【００３４】
なお，加工処理設定ダイアログ４２０および詳細設定ダイアログ４２１は例示であり，これに限るものではない。また，加工処理設定ダイアログ４２０にプレビュー機能を持たせ，ウォータマークを配置したイメージ画像を表示してもよい。
【００３５】
フィルタ設定ファイル４３は，プリンタドライバ４が所有する機能フィルタの構成情報を記憶している。図５は，フィルタ設定ファイル４３の一例であり，所有する機能フィルタの一覧がＸＭＬファイルとして記憶されている。
【００３６】
具体的には，フィルタの種類およびそのフィルタモジュールの参照先が記憶されている。すなわち，本形態では，「スケーリング」，「ウォータマーク」，「オフセット」，「回転」，「ＲＩＰ」の各機能フィルタがその機能を実行するモジュール名とともに記憶されている。また，図５中のフィルタ構成の各機能フィルタの登録順がそのまま機能フィルタの実行順序を意味している。すなわち，図５の機能フィルタの構成情報によれば，プリンタドライバ４が「スケーリング」，「ウォータマーク」，「オフセット」，「回転」，「ＲＩＰ」の順に実行することが記憶されている。なお，機能フィルタの構成情報の記憶方法としては，ＸＭＬ形式のファイルに限らず，例えばＨＴＭＬ形式やＣＳＶ形式のファイルであってもよい。
【００３７】
フィルタ部４４は，プリンタドライバ４が所有する機能フィルタ５１〜５５のライブラリ群を示している。機能フィルタ５１〜５５は，ＤＬＬとして提供されており，各機能フィルタの利用時には個別にメモリに読み出される。
【００３８】
具体的に本形態では，機能フィルタ５１として所定の倍率表示（拡大縮小）を行う「スケーリングフィルタ」，機能フィルタ５２として透かし文字を付加する「ウォータマークフィルタ」，機能フィルタ５３として余白調節等の画像の移動を行う「オフセットフィルタ」，機能フィルタ５４として左右反転や上下反転を行う「回転フィルタ」，機能フィルタ５５として印刷ジョブデータをビットマップに展開し，さらにページ記述言語に変換する「ＲＩＰフィルタ」を有している。
【００３９】
各機能フィルタ５１〜５５には，それぞれの機能に応じてデータを加工処理するデータ加工部５１１，５２１，５３１，５４１，５５１が設けられている。また，ウォータマーク用の機能フィルタ５２およびＲＩＰ用の機能フィルタ５５を除く機能フィルタ５１，５３，５４には，座標変換を行うための計算式が個々に記憶されている。
【００４０】
具体的に，スケーリング用の機能フィルタ５１には，倍率変更処理用に定義された計算式（図６の（Ａ）：ａは倍率を意味する）が利用される。そのため，機能フィルタ５１には，その計算式を記憶する計算式記憶部５１３が設けられている。同様に，オフセット用の機能フィルタ５３には，オフセット処理用に定義された計算式（図６の（Ｂ）：ｄｘはＸ方向へのオフセット，ｄｙはＹ方向へのオフセットをそれぞれ意味する）を記憶する計算式記憶部５３３が設けられている。回転用の機能フィルタ５４には，回転処理用に定義された計算式（図６の（Ｃ）：θは回転角度，Ｗは用紙幅，Ｈは用紙高さをそれぞれ意味する）を記憶する計算式記憶部５４３が設けられている。
【００４１】
また，ウォータマーク用の機能フィルタ５２（特定機能フィルタの一例）には，ウォータマークを付与する位置を決定する行列を作成する行列作成部５２２（変換式取得部，付加情報配置部の一例）が設けられている。この行列を作成する際には，他の機能フィルタで定義された計算式が利用される。すなわち，行列作成部５２２は，他の機能フィルタの加工処理をウォータマークの配置に反映させるか否かの設定に従って，加工処理時に他の機能フィルタの計算式記憶部に問い合わせ，当該計算式記憶部に記憶されている計算式を基に作成された行列を取得する。他の機能フィルタの加工処理をウォータマークの配置に反映させるか否かの設定は，ＵＩ部４２が提供するダイアログによって設定することができ，印刷ジョブデータに付加される。データ加工部５２１は，取得した行列を利用してウォータマークの加工処理を行う。取得した計算式を利用して行列を作成する手順の詳細については後述する。
【００４２】
フィルタ実行部４５は，印刷ジョブデータに従って文書データに加工処理を施す機能を有している。加工処理を行う際には，フィルタ設定ファイル４３の内容に従って機能フィルタ５１〜５５をメモリに読み出し，印刷ジョブデータに指示された加工処理の設定に従って加工処理を実行する。加工処理が終了した印刷データは，ＲＩＰフィルタを介してビットマップデータに展開されてプリンタ２に送られる。
【００４３】
［プリンタドライバの動作］
［印刷処理］
プリンタドライバ４が印刷ジョブデータを受け付けたときに実行される印刷処理を説明する。本ドライバの印刷処理では，主としてフィルタ実行部４５にてプリンタドライバ４が所有する機能フィルタをメモリに読み出し，印刷ジョブデータに加工処理を施した上で当該印刷データをプリンタ２に送り出す。機能フィルタの実行順序は，フィルタ設定ファイル４３に登録されている順であり，その並び順は固定である。
【００４４】
以下，プリンタドライバ４のフィルタ実行部４５の印刷処理を，図７のフローチャートを基に説明する。
【００４５】
まず，アプリケーション７から制御部４１を介して印刷ジョブデータを取得する（Ｓ１０１）。印刷ジョブデータには，印刷対象となるドキュメントデータの他，各種の加工処理の設定情報が付加されている。次に，フィルタ設定ファイル４３を読み出す（Ｓ１０２）。これにより，機能フィルタの実行順序および各機能フィルタ参照先を取得する。なお，Ｓ１０１の処理とＳ１０２の処理とは逆順であってもよい。
【００４６】
次に，フィルタ設定ファイル４３の先頭に登録されている機能フィルタから順に読み出し，加工処理を実行する。本形態では，まず，先頭に登録されているスケーリング用の機能フィルタ５１を読み出し，スケーリング処理を行う（Ｓ１０３）。すなわち，スケーリングの設定に従って各ページのドキュメントデータにスケーリングのコマンドを挿入する。例えば，倍率を０．７５としてスケーリング処理を行うと，図８に示すようにドキュメントデータが縮小される。
【００４７】
次に，スケーリング用の機能フィルタ５１の次に登録されているウォータマーク用の機能フィルタ５２を読み出し，ウォータマーク処理を行う（Ｓ１０４）。例えば，「社外秘」という文字列を挿入するとしてウォータマーク処理を行うと，図９に示すようにドキュメントデータに文字列が挿入される。ウォータマーク処理の詳細については後述する。
【００４８】
次に，ウォータマーク用の機能フィルタ５２の次に登録されているオフセット用の機能フィルタ５３を読み出し，オフセット処理を行う（Ｓ１０５）。すなわち，オフセットの設定に従って各ページのドキュメントデータにオフセットのコマンドを挿入する。例えば，左綴じ用に２ｃｍのオフセットが設定されている場合，図１０に示すように各ページのドキュメントデータが右方向（裏面印刷の場合は左方向）に２ｃｍ移動する。
【００４９】
次に，オフセット用の機能フィルタ５３の次に登録されている回転用の機能フィルタ５４を読み出し，回転処理を行う（Ｓ１０６）。すなわち，回転の設定に従って各ページのドキュメントデータに回転のコマンドを挿入する。例えば，１８０度の回転処理が設定されている場合，図１１に示すように各ページのドキュメントデータが上下反転する。
【００５０】
最後に，回転用の機能フィルタ５４の次に登録されているＲＩＰ用の機能フィルタ５５を読み出し，ＰＤＬ化処理を行う（Ｓ１０７）。ＰＤＬ化処理では，例えばＸＭＬ形式であるドキュメントデータをビットマップ形式に変換した後，色変換，２値化処理，圧縮処理を行い，必要となるＰＪＬ（Printer Job Language）を付加することが行われる。
【００５１】
［プリンタドライバの動作］
［ウォータマーク処理（Ｓ１０４）］
続いて，ウォータマーク処理を，図１２のフローチャートを基に説明する。本処理は，ウォータマーク用の機能フィルタ５２によって行われる。
【００５２】
まず，ページデータの残りがあるか否かを判断する（Ｓ２０１）。残りのページデータがない場合（Ｓ２０１：ＮＯ）には，本処理を終了する。残りのページデータがある場合（Ｓ２０１：ＹＥＳ）には，Ｓ２０２の処理に移行する。
【００５３】
Ｓ２０２の処理では，印刷ジョブデータからウォータマークの設定を取得する（Ｓ２０２）。ウォータマークの設定には，例えば文字列（「社外秘」や「ＣＯＰＹ」等）やフォントの種類，サイズ等がある。図９の例では，文字列が「社外秘」，フォントが「ゴシック」という設定がなされているとする。
【００５４】
次に，ページデータからページのサイズを取得する（Ｓ２０３）。本形態では，横４０００ドット，縦６０００ドットという設定がなされているとする。その後，ページのサイズからウォータマークの基本描画位置を算出する（Ｓ２０４）。文字のサイズが横２０００ドット，縦６００ドットだとすると，ウォータマークの描画開始位置は縦１０００ドット目，横２７００ドット目となる。
【００５５】
次に，ウォータマークの位置を調節する行列を取得する（Ｓ２０５）。すなわち，ウォータマークの描画位置は，他の機能フィルタの加工処理にウォータマークを反映させるか否かによって異なる。そこで，最終的なウォータマークの描画位置を決定する行列を取得する。行列の作成手順については後述する。
【００５６】
次に，ページデータの最後にウォータマークの描画命令および位置調節命令を付加する（Ｓ２０６）。その後，ページデータの送信を行う（Ｓ２０７）。最後に，ウォータマークに使用するフォントデータを送信する（Ｓ２０８）。その後，Ｓ２０１の処理に戻って残りのページデータの有無を判断する。
【００５７】
［プリンタドライバの動作］
［位置調節行列取得処理（Ｓ２０５）］
続いて，位置調節行列取得処理を，図１３のフローチャートを基に説明する。本処理は，ウォータマーク用の機能フィルタ５２の行列生成部５２２によって行われる。
【００５８】
まず，位置調節行列の初期化として，位置調節行列に３×３の単位行列を代入する（Ｓ３０１）。そして，変数ｉに初期値として１を代入する（Ｓ３０２）。
【００５９】
次に，ｉがウォータマークの実行順位より小さいか否かを判断する（Ｓ３０３）。小さい場合（Ｓ３０３：ＹＥＳ）には，Ｓ３０４の処理に移行する。すなわち，ウォータマークよりも先に実行される機能フィルタについて調査する。小さくない場合（Ｓ３０３：ＮＯ）には，Ｓ３１１の処理に移行する。すなわち，ウォータマークよりも後に実行される機能フィルタについて調査する。
【００６０】
Ｓ３０４の処理では，ウォータマークにｉ番目の機能フィルタの加工処理を反映させるか否かを印刷設定を基に判断する（Ｓ３０４）。以下の処理では，反映させる場合に，ウォータマークにｉ番目の機能フィルタの座標変換を行うことになる。
【００６１】
反映させる場合（Ｓ３０４：ＹＥＳ）には，ｉ番目の機能フィルタに問い合わせ，ｉ番目の機能フィルタの座標変換行列を取得する（Ｓ３０５）。座標変換行列の取得手順については後述する。そして，その座標変換行列を位置調節行列に掛け合わせる（Ｓ３０６）。すなわち，実行順序が先の機能フィルタの座標変換行列から順に，位置調節行列に掛け合わせられる。
【００６２】
その後，変数ｉに１を加え（Ｓ３０７），Ｓ３０３の処理に戻ってＳ３０３以降の処理を繰り返す。なお，座標変換を行わない場合（Ｓ３０４：ＮＯ）には，Ｓ３０５，Ｓ３０６の処理をバイパスし，Ｓ３０７の処理に移行する。
【００６３】
本形態では，ウォータマークの実行順位が２番目であり，先になる機能フィルタはスケーリング用の機能フィルタ５１のみとなる。そのため，位置調節行列を取得する際には，ウォータマーク用の機能フィルタ５２の行列作成部５２２がスケーリング用の機能フィルタ５１の計算式記憶部５１３に問い合わせ，当該計算式記憶部５１３に記憶されている計算式を基に作成される行列を取得する。
【００６４】
一方，ウォータマークよりも後に実行される機能フィルタについては，まず，変数ｉに機能フィルタの総数を代入する（Ｓ３１１）。本形態では，フィルタ部４４の機能フィルタの総数が４であるため，４が代入される。
【００６５】
次に，ｉがウォータマークの実行順位より大きいか否かを判断する（Ｓ３１２）。大きい場合（Ｓ３１２：ＹＥＳ）には，Ｓ３１３の処理に移行する。すなわち，ウォータマークよりも後に実行される機能フィルタについて調査する。大きくない場合（Ｓ３１２：ＮＯ）には，本処理を終了する。
【００６６】
Ｓ３１３の処理では，ウォータマークにｉ番目の機能フィルタの加工処理を反映させるか否かを印刷設定を基に判断する（Ｓ３１３）。以下の処理では，反映させない場合に，ウォータマークにｉ番目の機能フィルタの座標変換を行うことになる。
【００６７】
反映させない場合（Ｓ３１３：ＮＯ）には，ｉ番目の機能フィルタに問い合わせ，ｉ番目の機能フィルタの座標変換行列を取得する（Ｓ３１４）。座標変換行列の取得手順については後述する。本形態では，ウォータマークの実行順位が２番目であり，後になる機能フィルタはオフセット用，回転用の各機能フィルタ５３，５４となる。そのため，位置調節行列を取得する際には，ウォータマーク用の機能フィルタ５２の行列作成部５２２が各機能フィルタ５３，５４の計算式記憶部５３３，５４３に問い合わせ，当該計算式記憶部５３３，５４３に記憶されている計算式を基に作成される行列を取得する。
【００６８】
そして，取得した座標変換行列の逆行列を位置調節行列に掛け合わせる（Ｓ３１５）。すなわち，実行順序が後の機能フィルタの座標変換行列の逆行列から順に，位置調節行列に掛け合わせられる。
【００６９】
その後，変数ｉから１を引き（Ｓ３１６），Ｓ３１２の処理に戻ってＳ３１２以降の処理を繰り返す。なお，座標変換を行う場合（Ｓ３１３：ＹＥＳ）には，Ｓ３１４，Ｓ３１５の処理をバイパスし，Ｓ３１６の処理に移行する。
【００７０】
つまり，ウォータマーク処理より先に実行される機能フィルタについては，ウォータマーク処理が後から実行されることから，当該機能フィルタによる座標変換処理がウォータマークに適用できない。そこで，ウォータマークに反映させるとした場合に，当該機能フィルタの座標変換行列を取得し，ウォータマークの位置調節行列に掛け合わせる。一方，ウォータマーク処理より後に実行される機能フィルタについては，当該機能フィルタによる座標変換処理がウォータマークに適用される。そこで，ウォータマークに反映させないとした場合に，当該機能フィルタによって座標変換されてしまった座標位置を元に戻す作業を行う。すなわち，当該機能フィルタの座標変換行列を取得し，その逆行列を位置調節行列に掛け合わせる。
【００７１】
［プリンタドライバの動作］
［座標変換行列取得処理（Ｓ３０５，３１４）］
続いて，座標変換行列取得処理を，図１４のフローチャートを基に説明する。本処理は，ウォータマーク用の機能フィルタ５２以外の機能フィルタ５１，５３，５４の計算式記憶部５１３，５３３，５４３によって行われる。
【００７２】
まず，印刷ジョブデータを取得する（Ｓ４０１）。そして，印刷ジョブデータに含まれる各種加工処理の設定を取得し，その設定を基に座標変換行列を作成する（Ｓ４０２）。座標変換行列は，各機能フィルタによってその作成方法は異なる。本形態では，各機能フィルタ５１，５３，５４の座標変換行列が図６に示した計算式の定義を基に作成される。作成された座標変換行列は，ウォータマーク用の機能フィルタ５２の行列作成部５２２に送られる（Ｓ４０３）。
【００７３】
［具体例１］
具体例１として，図１５に示すように，スケーリングが１．２５倍，オフセットがＸ方向に１００ドット，回転が９０回転の設定がなされており，ウォータマークに対してはスケーリングとオフセットについては反映させ，回転については反映させない設定がなされていることとする。
【００７４】
上記のような設定とすると，各機能フィルタ５１，５３，５４から図１６に示すような行列が取得される。このうち，オフセットと回転については，ウォータマークよりも後に実行される機能フィルタであるため，取得した行列の逆行列を利用することになる。この場合，位置調節行列は，次の数１のようになる。
【数１】
0004396749.tif 000002
【００７５】
すなわち，ウォータマークについて反映させるとしたスケーリングの機能フィルタ５１から取得した行列と，ウォータマークを反映しないとした回転の機能フィルタ５４から取得した行列の逆行列が掛け合わされた行列がウォータマークの位置調節行列となる。
【００７６】
［具体例２］
具体例２として，図１７に示すように，スケーリングが０．８倍，オフセットがＹ方向に−２００ドット，回転が４５回転の設定がなされており，ウォータマークに対してはスケーリングについては反映させ，オフセットと回転については反映させない設定がなされていることとする。
【００７７】
上記のような設定とすると，各機能フィルタ５１，５３，５４から図１８に示すような行列が取得される。このうち，オフセットと回転については，ウォータマークよりも後に実行される機能フィルタであるため，取得した行列の逆行列を利用することになる。この場合，位置調節行列は，次の数２のようになる。
【数２】
0004396749.tif 000003
【００７８】
すなわち，ウォータマークについて反映させるとしたスケーリングの機能フィルタ５１から取得した行列と，ウォータマークについて反映させないとした回転の機能フィルタ５４から取得した行列の逆行列と，ウォータマークについて反映させないとしたオフセットの機能フィルタ５３から取得した行列の逆行列とが掛け合わされた行列がウォータマークの位置調節行列となる。
【００７９】
以上詳細に説明したように本形態のプリンタドライバ４は，ＵＩ部４２によって，ウォータマークを他の加工処理に適用するか否かを，すなわちウォータマーク以外の機能フィルタの加工処理に合わせてウォータマークの配置の座標変換を行うか否かを機能フィルタごとに選択することができる。この設定により，ユーザが所望する位置にウォータマークが配置される。さらに，機能フィルタ個別に適否を選択できるため，ウォータマークの配置の自由度が高い。
【００８０】
そして，プリンタドライバ４は，フィルタ実行部４５にて各機能フィルタを読み出し，各種の加工処理を実行する。ウォータマーク用の機能フィルタ５２では，印刷ジョブデータに付加されるウォータマークの反映の適否に従って，ウォータマーク以外の機能フィルタ５１，５３，５４から加工処理用の行列を取得している。そして，取得した行列を基にウォータマークの配置が決定される。すなわち，ウォータマーク以外の機能フィルタの座標変換情報を反映させた上で，ウォータマークを付加する位置を決定している。これにより，機能フィルタの実行順序を変更することなく，すなわちフィルタ設定ファイル４３を変更することなく，ウォータマークを所望の位置に配置することができている。また，フィルタ設定ファイル４３に変更がないことから，管理者権限の必要性はなく，他のユーザにも影響を及ぼさない。よって，他のユーザに影響を与えることなく，ユーザが個別に所望の加工処理を行うことができる印刷制御装置およびプリンタドライバのプログラムが実現している。
【００８１】
なお，本実施の形態は単なる例示にすぎず，本発明を何ら限定するものではない。したがって本発明は当然に，その要旨を逸脱しない範囲内で種々の改良，変形が可能である。例えば，画像形成装置としてはプリンタに限るものではなく，コピー機，ＦＡＸ，あるいは画像形成機能を有する複合機等であってもよい。また，印刷制御装置としてはＰＣに限るものではなく，ワークステーション，携帯情報端末装置等であってもよい。
【００８２】
また，本実施の形態では，印刷ジョブデータに付加情報を配置する機能を有する特定機能フィルタの例としてウォータマークを挙げているが，これに限るものではない。例えば，ヘッダ／フッタ用の機能フィルタに本発明を適用してもよい。
【図面の簡単な説明】
【００８３】
【図１】実施の形態に係るプリントシステムの構成を示すブロック図である。
【図２】実施の形態に係るプリンタドライバの機能構成を示すブロック図である。
【図３】ＵＩ部が表示するダイアログ（加工処理の設定）の一例を示す図である。
【図４】ＵＩ部が表示するダイアログ（ウォータマークの詳細設定）の一例を示す図である。
【図５】フィルタ情報を記憶したＸＭＬファイルの一例を示す図である。
【図６】計算式記憶部に記憶される計算式の一例を示す図である。
【図７】実施の形態に係る印刷処理を示すフローチャートである。
【図８】スケーリング処理をイメージを示す図である。
【図９】ウォータマーク処理をイメージを示す図である。
【図１０】オフセット処理をイメージを示す図である。
【図１１】回転処理をイメージを示す図である。
【図１２】ウォータマーク処理を示すフローチャートである。
【図１３】位置調節行列取得処理を示すフローチャートである。
【図１４】座標変換行列取得処理を示すフローチャートである。
【図１５】位置調節行列を作成する具体例（その１）の設定を示す図である。
【図１６】位置調節行列を作成する具体例（その１）で取得される座標変換行列を示す図である。
【図１７】位置調節行列を作成する具体例（その２）の設定を示す図である。
【図１８】位置調節行列を作成する具体例（その２）で取得される座標変換行列を示す図である。
【符号の説明】
【００８４】
１      パーソナルコンピュータ
２      プリンタ
４      プリンタドライバ
４１    制御部
４２    ユーザインターフェース部
４３    フィルタ設定ファイル
４４    フィルタ部
４５    フィルタ実行部
５１〜５５  機能フィルタ
５１１  データ加工部
５１２  計算式記憶部
５２２  行列作成部
【図１】
0004396749.tif 000004
【図２】
0004396749.tif 000005
【図３】
0004396749.tif 000006
【図４】
0004396749.tif 000007
【図５】
0004396749.tif 000008
【図６】
0004396749.tif 000009
【図７】
0004396749.tif 000010
【図８】
0004396749.tif 000011
【図９】
0004396749.tif 000012
【図１０】
0004396749.tif 000013
【図１１】
0004396749.tif 000014
【図１２】
0004396749.tif 000015
【図１３】
0004396749.tif 000016
【図１４】
0004396749.tif 000017
【図１５】
0004396749.tif 000018
【図１６】
0004396749.tif 000019
【図１７】
0004396749.tif 000020
【図１８】
0004396749.tif 000021