(57)【特許請求の範囲】
【請求項１】
上位装置と印刷装置とを備える印刷システムにおいて、
前記上位装置は、
地模様を生成するための生成データを格納する記憶部と、
前記地模様に重ねて印刷されるべき画像のビットマップデータを生成するイメージ生成処理部と、
前記地模様及び地模様用の印刷条件を指定して入力する情報入力部と、
前記生成データを前記記憶部から読み出し前記地模様用の印刷条件を前記印刷されるべき画像の印刷条件に整合させて前記地模様に対応するビットマップデータを生成する地模様設定処理部と、
前記地模様設定処理部の出力する地模様ビットマップデータと、前記イメージ生成処理部の出力する画像のビットマップデータとを前記印刷装置へ供給すべく重ね合わせる重ね合わせ処理部とを備えることを特徴とする印刷システム。
【請求項２】
前記地模様設定処理部と、前記イメージ生成処理部と、前記重ね合わせ処理部は、
アプリケーションプログラムにより処理した前記画像を前記印刷装置に印刷用データとして供給するプリンタドライバに含まれることを特徴とする請求項１記載の印刷システム。
【請求項３】
前記地模様設定処理部における地模様の指定は、前記プリンタドライバのプロパティ設定により行われることを特徴とする請求項２記載の印刷システム。
【請求項４】
前記地模様設定処理部は、用紙サイズに対応させて前記地模様のビットマップデータを伸縮処理することを特徴とする請求項１記載の印刷システム。
【請求項５】
前記地模様設定処理部は、用紙の指定された印刷領域のサイズに対応させて前記地模様のビットマップデータを伸縮処理することを特徴とする請求項１記載の印刷システム。
【請求項６】
前記地模様設定処理部は、前記イメージ生成部で処理する画像をシフトさせてトレース領域を求め、
前記イメージ生成処理部で処理する画像から外れたトレース領域の地模様を白抜き処理することを特徴とする請求項１記載の印刷システム。
【請求項７】
前記地模様設定処理部は、
前記イメージ生成処理部の出力するべき画像の解像度に対応させて、前記地模様のビットマップデータの生成を行うことを特徴とする請求項１記載の印刷システム。
【請求項８】
印刷装置に印刷用データを供給する上位装置側のプリンタドライバに用いられ、
地模様を生成するための生成データを記憶部から読み出し、指定された地模様及び印刷条件に従い地模様に対応するビットマップデータを生成する地模様設定処理機能と、
前記地模様に重ねて印刷されるべき画像のビットマップデータを生成するイメージ生成処理機能と、
前記地模様設定処理機能の出力する地模様のビットマップデータと、前記イメージ生成処理機能の出力する画像のビットマップデータとを重ね合わせる重ね合わせ処理機能とを備えたコンピュータプログラムを記録した、
コンピュータ読み取り可能な記録媒体。
【請求項９】
ユーザーモードで動作して印刷文書データを生成するアプリケーションと、前記ユーザーモードで動作して印刷条件の設定入力が可能なプリンタユーザーインタフェースドライバと、前記アプリケーションから印刷要求を受けるとカーネルモードで動作して前記印刷文書データを印刷データに変換するグラフィックデバイスインタフェースと、前記カーネルモードで動作して前記印刷データをビットマップデータに変換するプリンタグラフィックドライバとを含む上位装置に、プリンタが接続されている印刷システムにおいて、
前記グラフィックデバイスインタフェースは、前記印刷要求を受けるとデータ変換動作を停止し、前記プリンタユーザーインタフェースドライバに地模様データの生成を指示する機能を有し、
前記プリンタユーザインタフェースドライバは、前記指示を受けると地模様及びその印刷条件を設定入力させると共に該設定された印刷条件に基づいて地模様のビットマップデータを生成して前記プリンタグラフィックドライバに転送する地模様作成処理部を有し、
前記プリンタグラフィックドライバは、前記地模様のビットマップデータを受信すると、前記グラフィックデバイスインタフェースより送られてきた前記印刷データをビットマップデータに変換し、該データと前記地模様のビットマップデータとを重ね合わせて前記プリンタへ供給すること、
を特徴とする印刷システム。
【請求項１０】
プリンタグラフィックドライバは、アプリケーションの印刷要求に伴って入力する関数群に含まれる、印刷イベントをフックする関数により、プリンタユーザーインタフェースドライバを呼び出し、
プリンタユーザーインタフェースドライバは、アプリケーションプログラムインタフェースによりデバイス情報から地模様のビットマップデータを生成し、
プリンタグラフィックドライバは、プリンタユーザーインタフェースドライバからの要求に従って、前記地模様に対応するビットマップデータを格納するバッファを用意し、
プリンタユーザーインタフェースドライバは、前記地模様のビットマップデータを前記バッファへ出力し、
前記プリンタグラフィックドライバは、前記プリンタユーザーインタフェースドライバの要求により、前記地模様のビットマップデータと前記文書用ビットマップデータとを論理和処理により重ね合わせて、プリンタに供給することを特徴とする請求項９記載の印刷システム。
【請求項１１】
プリンタユーザーインタフェースドライバは、地模様を描画する場合にその回転角が指定されたとき、デバイス情報から、前記回転角に応じた地模様の描画領域と描画開始位置とを算出して、生成したビットマップデータを順次プリンタグラフィックドライバに向けて出力することを特徴とする請求項９記載の印刷システム。
【請求項１２】
ユーザーモードで動作して印刷文書データを生成するアプリケーションと、前記ユーザモードで動作して印刷条件の設定入力が可能なプリンタユーザーインタフェースドライバと、前記アプリケーションから印刷要求を受けるとカーネルモードで動作して前記印刷文書データを印刷データに変換するグラフィックデバイスインタフェースと、前記カーネルモードで動作して前記印刷データをビットマップデータに変換するプリンタグラフィックドライバとを含み、プリンタが接続される上位装置に用いられ
前記グラフィックデバイスインタフェースに、前記印刷要求を受けるとデータ変換動作を停止し、前記プリンタユーザーインタフェースドライバに地模様データの生成を指示する機能と、
前記プリンタユーザインタフェースドライバに、前記指示を受けると地模様及びその印刷条件を設定入力させると共に該設定された印刷条件に基づいて地模様のビットマップデータを生成して前記プリンタグラフィックドライバに転送する地模様作成処理機能と、
前記プリンタグラフィックドライバに、前記地模様のビットマップデータを受信すると、前記グラフィックデバイスインタフェースより送られてきた前記印刷データをビットマップデータに変換し、該データと前記地模様のビットマップデータとを重ね合わせて前記プリンタへ供給する機能とを付与する、
コンピュータプログラムを記録した記録媒体。
【請求項１３】
印刷用データを生成処理する印刷データ処理装置において、
地模様を生成するための生成データを格納する記憶部と、
前記地模様に重ねて印刷されるべき画像データを生成するイメージ生成処理部と、
前記地模様及び地模様用の印刷条件の設定を入力する情報入力部と、
前記生成データを前記記憶部から読み出し前記地模様用の印刷条件を前記印刷されるべき画像の印刷条件に整合させて前記地模様を生成する地模様設定処理部と、
前記地模様設定処理部の出力する地模様と前記イメージ生成処理部の出力する画像データとを印刷用データとして重ね合わせる重ね合わせ処理部とを備えることを特徴とする印刷データ処理装置。
【請求項１４】
前記地模様設定処理部は、用紙サイズに対応させて前記地模様を伸縮処理することを特徴とする請求項１３記載の印刷データ処理装置。
【請求項１５】
前記地模様設定処理部は、用紙の指定された印刷領域のサイズに対応させて前記地模様を伸縮処理することを特徴とする請求項１３記載の印刷データ処理装置。
【請求項１６】
前記地模様設定処理部は、前記イメージ生成部で処理する画像をシフトさせてトレース領域を求め、
前記イメージ生成処理部で処理する画像から外れたトレース領域の地模様を白抜き処理することを特徴とする請求項１３記載の印刷データ処理装置。
【請求項１７】
前記地模様設定処理部は、
前記イメージ生成処理部の出力するべき画像の解像度に対応させて、前記地模様の生成を行うことを特徴とする請求項１３記載の印刷データ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、用紙上に予め印刷されるべき地模様の上に重ねて文書等の画像を印刷する機能を持つ印刷システムに関する。
【０００２】
【従来の技術】
一般に、例えば「社外秘」扱いの文書を配布する場合には、文書の各ページに「社外秘」と表示したスタンプを押す。ところが、ワードプロセッサやコンピュータで印刷した文書を電子メールで送信するような場合に、実際に電子メールを受信後に文書を印刷しなければスタンプを押すといった作業は不可能である。従って、電子化されたデータそのものにこうしたスタンプイメージを印刷するような制御データを組み込む。この「社外秘」といったマークをウォーターマークと呼んでいる。
【０００３】
ウォーターマーク付きの文書印刷の場合には、まずアプリケーションがプリンタに対しウォーターマークの印刷を指定するコマンドを送信する。続いて、アプリケーションは印刷すべき文書のビットマップデータをプリンタに送信する。プリンタ側では、内蔵しているフォントを使用してウォーターマークのビットマップデータを生成し、後から送り込まれた文書のビットマップデータと重ね合わせて印刷する。
【０００４】
【発明が解決しようとする課題】
ところで、上記のような従来の技術には次のような解決すべき課題があった。ウォーターマーク付きの文書印刷を実行する場合、プリンタは内蔵フォントを展開してウォーターマークのビットマップデータを生成してから印刷を開始する。従って、印刷待ちの時間が長くなるという欠点がある。また、フォントを内蔵していないプリンタでは、このようなウォーターマーク印刷のコマンドには対応できない。従って、ウォーターマークの印刷は無視される。また、ウォーターマークに限らず、用紙に様々なマークや枠や模様（以下、この明細書ではこれらを総称して地模様と呼ぶ）を印刷した上で文書を印刷する要求も少なくない。このような処理を円滑に効率的に行う印刷システムの開発が望まれる。
【０００５】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成１〉
上位装置と印刷装置とを備える印刷システムにおいて、前記上位装置は、地模様を生成するための生成データを格納する記憶部と、前記地模様に重ねて印刷されるべき画像のビットマップデータを生成するイメージ生成処理部と、前記地模様及び地模様用の印刷条件を指定して入力する情報入力部と、前記生成データを前記記憶部から読み出し前記地模様用の印刷条件を前記印刷されるべき画像の印刷条件に整合させて前記地模様に対応するビットマップデータを生成する地模様設定処理部と、前記地模様設定処理部の出力する地模様ビットマップデータと、前記イメージ生成処理部の出力する画像のビットマップデータとを前記印刷装置へ供給すべく重ね合わせる重ね合わせ処理部とを備えることを特徴とする印刷システム。
【０００６】
〈構成２〉
構成１に記載の印刷システムにおいて、前記地模様設定処理部と、前記イメージ生成処理部と、前記重ね合わせ処理部は、アプリケーションプログラムにより処理した前記画像を前記印刷装置に印刷用データとして供給するプリンタドライバに含まれることを特徴とする印刷システム。
【０００７】
〈構成３〉
構成２に記載の印刷システムにおいて、前記地模様設定処理部における地模様の指定は、前記プリンタドライバのプロパティ設定により行われることを特徴とする印刷システム。
【０００８】
〈構成４〉
構成１に記載の印刷システムにおいて、前記地模様設定処理部は、用紙サイズに対応させて前記地模様のビットマップデータを伸縮処理することを特徴とする印刷システム。
【０００９】
〈構成５〉
構成１に記載の印刷システムにおいて、前記地模様設定処理部は、用紙の指定された印刷領域のサイズに対応させて前記地模様のビットマップデータを伸縮処理することを特徴とする印刷システム。
【００１０】
〈構成６〉
構成１に記載の印刷システムにおいて、前記地模様設定処理部は、前記イメージ生成部で処理する画像をシフトさせてトレース領域を求め、前記イメージ生成処理部で処理する画像から外れたトレース領域の地模様を白抜き処理することを特徴とする印刷システム。
【００１１】
〈構成７〉
構成１に記載の印刷システムにおいて、前記地模様設定処理部は、
前記イメージ生成処理部の出力するべき画像の解像度に対応させて、前記地模様のビットマップデータの生成を行うことを特徴とする印刷システム。
【００１２】
〈構成８〉
印刷装置に印刷用データを供給する上位装置側のプリンタドライバに用いられ、地模様を生成するための生成データを記憶部から読み出し、指定された地模様及び印刷条件に従い地模様に対応するビットマップデータを生成する地模様設定処理機能と、前記地模様に重ねて印刷されるべき画像のビットマップデータを生成するイメージ生成処理機能と、前記地模様設定処理機能の出力する地模様のビットマップデータと、前記イメージ生成処理機能の出力する画像のビットマップデータとを重ね合わせる重ね合わせ処理機能とを備えたコンピュータプログラムを記録した、コンピュータ読み取り可能な記録媒体。
【００１３】
〈構成９〉
ユーザーモードで動作して印刷文書データを生成するアプリケーションと、前記ユーザーモードで動作して印刷条件の設定入力が可能なプリンタユーザーインタフェースドライバと、前記アプリケーションから印刷要求を受けるとカーネルモードで動作して前記印刷文書データを印刷データに変換するグラフィックデバイスインタフェースと、前記カーネルモードで動作して前記印刷データをビットマップデータに変換するプリンタグラフィックドライバとを含む上位装置に、プリンタが接続されている印刷システムにおいて、前記グラフィックデバイスインタフェースは、前記印刷要求を受けるとデータ変換動作を停止し、前記プリンタユーザーインタフェースドライバに地模様データの生成を指示する機能を有し、前記プリンタユーザインタフェースドライバは、前記指示を受けると地模様及びその印刷条件を設定入力させると共に該設定された印刷条件に基づいて地模様のビットマップデータを生成して前記プリンタグラフィックドライバに転送する地模様作成処理部を有し、前記プリンタグラフィックドライバは、前記地模様のビットマップデータを受信すると、前記グラフィックデバイスインタフェースより送られてきた前記印刷データをビットマップデータに変換し、該データと前記地模様のビットマップデータとを重ね合わせて前記プリンタへ供給すること、を特徴とする印刷システム。
【００１４】
〈構成１０〉
構成９に記載の印刷システムにおいて、プリンタグラフィックドライバは、アプリケーションの印刷要求に伴って入力する関数群に含まれる、印刷イベントをフックする関数により、プリンタユーザーインタフェースドライバを呼び出し、プリンタユーザーインタフェースドライバは、アプリケーションプログラムインタフェースによりデバイス情報から地模様のビットマップデータを生成し、プリンタグラフィックドライバは、プリンタユーザーインタフェースドライバからの要求に従って、前記地模様に対応するビットマップデータを格納するバッファを用意し、プリンタユーザーインタフェースドライバは、前記地模様のビットマップデータを前記バッファへ出力し、前記プリンタグラフィックドライバは、前記プリンタユーザーインタフェースドライバの要求により、前記地模様のビットマップデータと前記文書用ビットマップデータとを論理和処理により重ね合わせて、プリンタに供給することを特徴とする印刷システム。
【００１５】
〈構成１１〉
プリンタユーザーインタフェースドライバは、地模様を描画する場合にその回転角が指定されたとき、デバイス情報から、前記回転角に応じた地模様の描画領域と描画開始位置とを算出して、生成したビットマップデータを順次プリンタグラフィックドライバに向けて出力することを特徴とする請求項９記載の印刷システム。
【００１６】
〈構成１２〉
ユーザーモードで動作して印刷文書データを生成するアプリケーションと、前記ユーザモードで動作して印刷条件の設定入力が可能なプリンタユーザーインタフェースドライバと、前記アプリケーションから印刷要求を受けるとカーネルモードで動作して前記印刷文書データを印刷データに変換するグラフィックデバイスインタフェースと、前記カーネルモードで動作して前記印刷データをビットマップデータに変換するプリンタグラフィックドライバとを含み、プリンタが接続される上位装置に用いられ、前記グラフィックデバイスインタフェースに、前記印刷要求を受けるとデータ変換動作を停止し、前記プリンタユーザーインタフェースドライバに地模様データの生成を指示する機能と、前記プリンタユーザインタフェースドライバに、前記指示を受けると地模様及びその印刷条件を設定入力させると共に該設定された印刷条件に基づいて地模様のビットマップデータを生成して前記プリンタグラフィックドライバに転送する地模様作成処理機能と、前記プリンタグラフィックドライバに、前記地模様のビットマップデータを受信すると、前記グラフィックデバイスインタフェースより送られてきた前記印刷データをビットマップデータに変換し、該データと前記地模様のビットマップデータとを重ね合わせて前記プリンタへ供給する機能とを付与するコンピュータプログラムを記録した記録媒体。
〈構成１３〉
印刷用データを生成処理する印刷データ処理装置において、地模様を生成するための生成データを格納する記憶部と、前記地模様に重ねて印刷されるべき画像データを生成するイメージ生成処理部と、前記地模様及び地模様用の印刷条件の設定を入力する情報入力部と、前記生成データを前記記憶部から読み出し前記地模様用の印刷条件を前記印刷されるべき画像の印刷条件に整合させて前記地模様を生成する地模様設定処理部と、前記地模様設定処理部の出力する地模様と前記イメージ生成処理部の出力する画像データとを印刷用データとして重ね合わせる重ね合わせ処理部とを備えることを特徴とする印刷データ処理装置。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
〈具体例１〉
図１は、本発明による印刷システムの具体例を示すブロック図である。
図のシステムは、上位装置であるパーソナルコンピュータ等でアプリケーション１が作成した文書等の印刷用データを、グラフィックデバイスインタフェース２を通じてプリンタドライバ３に供給し、これをプリンタ４に供給して印刷するよう構成されている。
【００２２】
アプリケーション１は任意の文書等を作成し、文書データをグラフィックデバイスインタフェース２に供給する。グラフィックデバイスインタフェース２は、グラフィック描画関数を出力デバイスに依存した出力に変換するための、よく知られたモジュールである。プリンタドライバ３は、出力デバイスに依存した印刷データを生成し、それを送信するモジュールである。ここで、出力デバイスであるプリンタ４は、印刷部１１において、用紙１２に対しウォーターマーク１３とこれに重ね合わせて印刷される画像１４とを印刷する機能を持つ。
【００２３】
上記プリンタドライバ３には、イメージ生成処理部５、イメージバッファ６、プロパティ設定処理部７、ウォーターマーク情報格納部８、重ね合わせ処理部９及びデータ送信処理部１０が設けられている。イメージ生成処理部５は、グラフィックデバイスインタフェース２が生成したグラフィック描画コマンドからビットマップデータを生成する部分である。このビットマップデータはイメージバッファ６に一時格納される。
【００２４】
プロパティ設定処理部７は、印刷に使用する用紙サイズや印刷方向、その他の属性を設定する部分である。なお、本発明では、このプロパティ設定処理部７でウォーターマークの属性を同時に設定する。この具体例では、ウォーターマークと任意の画像との重ね合わせについて説明するが、ウォーターマーク以外の、予め用紙上に下敷きとして印刷される様々な地模様についても、ここで設定を行うようにする。
【００２５】
プロパティ設定処理部７は、ウォーターマークのプロパティが設定された場合、図示しないフォントメモリや地模様生成のためのデータを蓄積したパタンメモリから、必要なイメージ処理用のデータを取り出して、ビットマップデータを生成する。こうして生成されたウォーターマークのビットマップデータは、ウォーターマーク情報格納部８に一時格納される。
【００２６】
重ね合わせ処理部９は、イメージバッファ６から読み出した印刷するべき画像のビットマップデータと、ウォーターマーク情報格納部８から読み出したウォーターマークのビットマップデータとを重ね合わせてデータ送信処理部１０に送信する処理を行う部分である。データ送信処理部１０は、プリンタ４へデータを送信するインタフェースである。
【００２７】
この具体例では、ウォーターマークを、プリンタの内蔵フォントを使用しないで印刷する。このために、コンピュータ上で、そのグラフィックシステムで提供されるフォントからウォーターマークを生成する。即ち、ウォーターマークのビットマップデータをプリンタ側で印刷時に生成するのでなく、印刷開始前に予めプリンタドライバ３の側で生成しておく。更に、印刷すべき文書等のビットマップデータとウォーターマークとを重ね合わせた状態で、そのデータをプリンタに供給する。
【００２８】
図２には、プロパティ設定処理部の動作フローチャートを示す。
図１に示したアプリケーション１は、プリンタドライバ３のプロパティ設定処理部７を呼び出すことによってウォーターマークの設定を行う。プリンタドライバ３は、例えばパーソナルコンピュータのオペレーティングシステムとプリンタとの間のインタフェースとして動作するプログラムである。即ち、アプリケーション１がプリンタドライバ３に印刷を要求する場合には、プリンタドライバ３に対してプロパティ設定処理のためのメッセージを送り、プリンタドライバ３はこのメッセージを受けて起動する。ここで、プリンタドライバ３は図２に示すような処理を実行する。
【００２９】
まず、ステップＳ１において、プロパティ設定処理を開始すると、例えばパーソナルコンピュータの画面上にプリンタドライバ制御用のウインドウが表示される。ここで、ウォーターマークの設定を指定するとステップＳ２に進み、ウォーターマーク指定画面の表示が行われる。ウォーターマーク指定画面は、この図２の右側に示すような内容となる。
【００３０】
このプロパティ入力画面１６は、例えばウォーターマークのビットマップデータの解像度や、ウォーターマークとして表示する文字列や、用紙に印刷された際のウォーターマークの回転角、濃度等の入力を可能とする。ここにデフォルトで表示された解像度がプリンタの実際の解像度と異なる場合には、プリンタの解像度に合わせてこの部分を変更する。なお、用紙サイズに対応させて、この解像度の設定を変更することによりウォーターマークを伸縮させることもできる。この点は具体例２において更に詳しく説明する。
【００３１】
文字列としては、ウォーターマークを校正する「社外秘」といった文字を指定する。図２（ｂ）には回転角の説明図を示す。図に示すように、用紙上に一定の角αの傾きを持ってウォーターマーク１３が印刷される場合、この回転角αを指定する。なお、破線は用紙の主走査方向に平行に引いてあるものとする。
【００３２】
また、（ｃ）には、濃度の例を示す。ウォーターマークを印刷する場合に、そのビットマップデータを構成する各ドットを、例えばこの図に示すように、４×４のマトリクスで表現する場合に、マトリクスＭ１は全面的にこれらのドットを黒に塗りつぶす。この場合を１００パーセントの濃度とする。そして、４×４のマトリクス中、半分のドットだけを塗りつぶすマトリクスＭ２を５０パーセントの濃度とする。こうした塗りつぶし面積の比によってウォーターマークの全体的な濃度を調整し、これと重ね合わせて印刷される文字やその他のデータとの混同を防ぐ。
【００３３】
図２のステップＳ３では、このような操作によってウォーターマークの形式を指定する。そして、ステップＳ４で、指定エラーがないと判断されると、ステップＳ５に進み、図１に示したプロパティ設定処理部７がウォーターマークのビットマップデータを作成し、ウォーターマーク情報格納部８に格納する。
【００３４】
図３には、具体例１のプリンタドライバ動作フローチャートを示す。
この図を用いて、図１に示すプリンタドライバ３の全体的な動作を説明する。
まず、ステップＳ１において、グラフィックデバイスインタフェース２からグラフィック描画コマンドを受け取ると、イメージ生成処理部５はそのグラフィック描画コマンドからビットマップデータを生成してイメージバッファ６に格納する。
【００３５】
次に、ステップＳ２において、ウォーターマークを付加するかどうかの判断をする。ウォーターマークを付加する必要がなければステップＳ５にジャンプする。また、ウォーターマークを付加すると判断した場合にはステップＳ３に進み、実際にウォーターマーク情報格納部８にウォーターマークイメージが存在するかどうかを判断する。存在すればステップＳ４に進み、ウォーターマークのビットマップデータをウォーターマーク情報格納部８から読み出す。
【００３６】
そして、イメージバッファ６から印刷すべき画像のビットマップデータを読み出し、重ね合わせ処理部９において、重ね合わせ処理を実行する。重ね合わせ処理部９の動作は、具体的には２つのイメージの論理和演算による重ね合わせ処理による。その後、ステップＳ５に進み、データ送信処理部１０がプリンタ４の印刷部１１に対しそのデータを送信する。なお、ステップＳ３において、ウォーターマークのイメージがないと判断されると、ウォーターマークを付加しない扱いとしてそのままステップＳ５に進み、通常の印刷が実行される。ウォーターマークを生成しようとしても該当するフォント等が無い場合はこれに該当する。
【００３７】
〈具体例１の効果〉
以上のように、プリンタドライバにおいて、印刷すべきイメージとウォーターマークを重ね合わせた後、プリンタの印刷部に供給するようにしたので、プリンタが印刷直前にウォーターマーク用のフォントを展開するといった処理が不要になり、印刷速度が向上する。また、プリンタ側にフォントが存在しないような場合にもウォーターマークを含む印刷が可能になる。
【００３８】
〈具体例２〉
文書を印刷すべき用紙のサイズが常に一定ではなく、一部に異なるサイズの用紙が含まれているような文書を印刷することがある。こうした場合、既に説明したような処理を行うと、常に一定の大きさのウォーターマークが用紙の上に印刷され、例えば用紙サイズが半分になった場合に、ウォーターマークの一部がはみ出して正常な印刷ができなくなるといった問題も生じる。この具体例は、用紙サイズがまちまちの場合においても、ウォーターマークを良好に印刷できる例を説明する。
【００３９】
図４に、具体例２のプリンタドライバ動作フローチャートを示す。
この図のステップＳ１からステップＳ３までの処理は、具体例１による図３の動作と同一である。図のステップＳ４において、ウォーターマーク自体の基準用紙サイズと現在の用紙サイズとが同じかどうかの判断を行う。これは、ウォーターマークがもともとどのサイズの用紙に適するように調整されているかという点と、アプリケーションで実際の印刷のために指定した用紙サイズやプリンタ側で準備している用紙サイズ等を考慮して判断される。
【００４０】
また、ウォーターマークの基準用紙サイズと実際の用紙サイズとが一致しない場合にはステップＳ４からステップＳ７に進み、ウォーターマークのビットマップデータを基準用紙サイズと現在の用紙サイズとの比率で、拡大あるいは縮小させて、印刷文書のビットマップデータに重ね合わせる。
【００４１】
例えば、図２に示したように、ウォーターマークの解像度を７２ｄｐｉとする。即ち、Ａ４判の用紙に７２ｄｐｉの解像度で印刷すると丁度良い大きさになるようなウォーターマークのビットマップデータが用意されているものとする。これを３００ｄｐｉでＡ４判に印刷するとすれば、ドット数が足りないため、縮小されて印刷されてしまう。そこで、実際には５倍にビットマップデータを拡大し、ほぼ３００ｄｐｉの大きさのウォーターマークを印刷できるようにする。
【００４２】
ウォーターマーク基準用紙サイズと現在の用紙サイズとが同じ場合、ステップＳ５に進み、その後ステップＳ６に進む。このステップＳ５、Ｓ６の処理は、具体例１の場合と同様であり、重複する説明を省略する。
【００４３】
図５には、ウォーターマークの伸縮処理動作説明図を示す。
この図を用いてウォーターマークの別の伸縮処理について説明を行う。
図５（ａ）は、例えば基準用紙サイズが横方向にＸ１、縦方向にＹ１である用紙１２であるとする。ここにウォーターマーク１３が所定の大きさで印刷される。ところが、例えば図５（ｂ）に示すように、印刷をしようとする現在の用紙サイズが横Ｘ２、縦Ｙ２であるとする。これに、もし（ａ）と同一の大きさでウォーターマーク１３が印刷されるとすれば現在の用紙からはみ出してしまう。
【００４４】
そこで、（ｃ）に示すような縮小処理を実行する。実際には、（ｃ）に示す左側の元の大きさのウォーターマーク１３に対しＸ２／Ｘ１の縮小倍率を掛ける。これによって、大きさを変更して現在の用紙サイズに整合させる。
【００４５】
なお、例えば元のウォーターマーク１３のフォントサイズＰ１、Ｑ１と、実際に印刷される用紙を考慮したフォントサイズＰ２、Ｑ２がわかっているような場合に、これらの比を考慮して縮小することも可能である。なお、この場合に、ウォーターマークの文書中の傾き等を考慮した縮小計算を行うと、より正確な縮小が可能となる。
【００４６】
更に、ウォーターマークを印刷することができる領域が指定されていることがある。これは、用紙上の一部の領域である場合もあるし、例えば用紙の余白部分を除外した中央部分であることもある。このような場合、そうした印刷領域のサイズを、例えば図２に示すウォーターマークのプロパティ設定用画面で設定できれば、ウォーターマークの拡大縮小処理が確実にできる。
【００４７】
〈具体例２の効果〉
上記のように、プリンタドライバ側で用紙サイズとウォーターマークのサイズとを考慮して、用紙サイズに対応させたり、あるいは印刷領域のサイズに対応させたウォーターマークのビットマップデータを生成し処理するので、用紙の大きさが切り替わったり、様々な状況の変化があっても、それに応じて適切な大きさのウォーターマークの印刷が可能となる。
【００４８】
〈具体例３〉
ウォーターマークの上には直接印刷すべき文書の文字等が重ね合わされる。従って、場合によっては、両方のイメージが干渉し合って印刷結果を見にくくしてしまうことがある。この具体例では、こうした干渉を除く例を説明する。具体的には、図１に示した重ね合わせ処理部９が、ウォーターマークのビットマップデータ中の、その上に重なる画像のビットマップデータの輪郭部分を白抜き処理する。即ち、ウォーターマーク上に文字や図形が重なる場合、文字や図形の輪郭に相当する部分について、ウォーターマークを白抜き処理する。従って、文字とウォーターマークとの境界が明らかになり、文字等が読みやすくなる。
【００４９】
図６には、こうした白抜き処理の動作説明図を示す。
まず、図６において、印刷すべき画像中の文字パタン、例えば「の」という字が地模様となるウォーターマーク上に重なるものとする。このとき、図の（ｂ）に示すように、この文字パタンをＸ方向とＹ方向とに２ビットずつシフトさせて、「の」を表示するためのドットがトレースした領域を求める。
【００５０】
これは、図の（ｂ）中の白ドットと黒ドットとを含めたほぼ菱形の領域となる。そして、この領域をカバーするマスクパタンを図の（ｃ）に示すように生成する。図の（ｂ）に示した全てのドットの部分を黒ドットとし、その周りに存在し、一定の四角形の領域に含まれる部分を白ドットとしたものをマスクパタンとした。
【００５１】
次に、地模様であるウォーターマークを取り出し、図の（ｄ）に示すように地模様パタンとする。そして、（ｃ）に示すマスクパタンと（ｄ）で示すマスクパタンとのＮＡＮＤ（論理積の否定）をとる。これによって、図の（ｅ）に示すような白抜きパタンが形成される。この白抜きパタンと（ａ）に示す文字パタンとの論理和をとると、図の（ｆ）に示すような出力が得られる。
【００５２】
〈具体例３の効果〉
以上によって、「の」という文字の輪郭部分が白抜きされるため、ウォーターマークの上に重ね合わされる文字が読みづらくなるといったことを防止できる。
なお、上記のプロパティ設定処理部７は、ウォーターマークのプロパティが設定されると、必要に応じて適当なフォントデータその他を用いて、ウォーターマークのビットマップデータを生成した。しかしながら、例えば予めウォーターマークが一般のフォントデータと同様にウォーターマークを表示するイメージデータのみから成り、ビットマップデータに展開する場合には、予め指定された印刷位置にそのデータを配置するだけでよいようにすれば、プロパティ設定処理部７の負荷が充分に軽減される。
【００５３】
また、ウォーターマークをフォントデータのようにして保存すると、用紙全体をカバーするようなウォーターマークのイメージを保存しておく場合よりも十分に少ないメモリ容量でこれが実現できるため、資源の有効利用が図られる。更に、プロパティ設定処理部７によるウォーターマークの生成処理が高速化され、印刷開始前のプリンタドライバ３によるデータの重ね合わせ処理等も高速化される。
【００５４】
なお、プロパティ設定処理部と、イメージ生成処理部と、重ね合わせ処理部とを、上記各具体例では上位装置側のプリンタドライバに設けた例を説明した。しかしながら、これらは、画データを供給する上位装置からプリンタまでの間のどの部分に設けてもよい。また、重ね合わせ処理部のみプリンタ側に設けるといった構成も可能である。本発明は、ウォーターマークのようなフォントを持たないプリンタにより上記のような文書の印刷を行うのに適するが、フォントを内蔵するプリンタの制御に使用しても構わない。
【００５５】
さらに、上記の各具体例では、全てウォーターマークを例にとって説明したが、ウォーターマーク以外に、用紙上に予め印刷されるべき様々な地模様についても同様の処理を行うことができる。
【００５６】
〈具体例４〉
上記のようなウォーターマークの処理をマイクロソフト社によるオペレーティングシステム（WindowsNT4.0）のＧＤＩ（Graphics Device Interface）に実行させる場合には次のような問題がある。
マイクロソフト社によるオペレーティングシステム（Windows3.1）のプリンタドライバに相当するものは、WindowsNT4.0ではＧＤＩとプリンタグラフィックドライバである。このWindowsNT4.0では、ＧＤＩとプリンタグラフィックドライバはカーネルモードで動作する。
【００５７】
従って、ＧＤＩに対してウォーターマークのような描画データを作成する機能を実装するのは難しい。同様に、プリンタグラフィックドライバ自身が描画データを作成するような機能を実装するのも難しい。ユーザーが自由にアプリケーションを組むことができるのは、ユーザーモード部分に限られるからである。また、文書データとウォーターマークとを共にユーザーモードで生成して、これらをファイルに保存して印刷データを作成する方法も考えられる。ところが、カーネルモードで動作するプリンタグラフィックドライバは、ファイルを開く機能を持たないので、これも実現不可能である。そこで、以下の具体例のような構成にする。
【００５８】
図７に、具体例４の印刷システムブロック図を示す。
図の太線２０の上に示したブロックはユーザーモードで動作する部分である。アプリケーション１は任意の文書を作成して印刷要求を行うためのプログラムである。プリンタユーザーインタフェースドライバ２１は、オペレーティングシステムがユーザーに提供している、プリンタの印刷条件や印刷文書設定のためのダイヤログ表示等を実行するドライバである。
【００５９】
ここには、用紙の種類、印刷ページ、フォント等、様々な印刷条件を設定するプロパティ設定処理部２２と、この発明で必要なウォーターマークのビットマップデータを作成するウォーターマーク作成処理部２３が設けられている。アプリケーション１が作成した印刷文書データは、印刷文書メモリ２４に一時格納される。
【００６０】
また、プリンタユーザーインタフェースドライバ２１が、その印刷文書データの印刷要求に伴って設定したドライバプロパティに基づいて、印刷文書データと重ね合わせて印刷されるウォーターマーク等の地模様を描画するデータは、デバイス情報としてデバイス情報メモリ２５に一時格納される。このデバイス情報は、ウォーターマークのビットマップデータを生成するために必要なコードデータ群等により構成される。
【００６１】
GDI32.DLL,WinSpool.DLLモジュール（スプーラ）２６は、アプリケーションが印刷文書を印刷するために呼び出すプログラムモジュールである。このモジュールは、出力デバイスに依存しないグラフィック描画関数を提供する。カーネルモードで動作する部分には、グラフィックデバイスインタフェース３０、プリンタグラフィックドライバ３１が設けられ、これによって生成された印刷データがプリンタ４に供給される構成になっている。
【００６２】
グラフィックデバイスインタフェース３０は、スプーラ２６から入力した描画関数を受け入れて、出力デバイスに依存した印刷データを生成する部分である。プリンタグラフィックドライバ３１は、イメージ生成処理部３２と、イメージバッファ３３と、ウォーターマーク重ね合わせ処理部３４と、データ送信処理部３５とを備えている。
【００６３】
イメージ生成処理部３２は、グラフィックデバイスインタフェース３０から入力する印刷データに基づいて、ビットマップデータを生成する部分である。イメージバッファ３３は、後で説明するようにしてプリンタユーザーインタフェースドライバ２１から転送されたウォーターマークのビットマップデータを一時格納する部分である。
【００６４】
ウォーターマーク重ね合わせ処理部３４は、イメージ生成処理部３２の出力とイメージバッファ３３に格納されたウォーターマークとを重ね合わせ処理する部分である。データ送信処理部３５は、ウォーターマーク重ね合わせ処理部３４の出力をプリンタ４に向けて転送する動作を行う部分である。
【００６５】
上記のような構成の印刷システムも、具体例１の場合と同様、ウォーターマークのような地模様を、プリンタの内蔵フォントを使用しないで、上位装置であるコンピュータ上で生成する。このウォーターマークの生成は、カーネルモードで動作するプリンタグラフィックドライバ３１ではなく、ユーザーモードで動作するプリンタユーザーインタフェースドライバ２１で行う。以下、図１に示すシステムの動作を順に説明する。
【００６６】
まず、アプリケーション１は、任意の文書から成る印刷文書データを作成する。この印刷文書データは、既に説明したように、印刷文書メモリ２４にファイル形式で格納される。次に、アプリケーション１を操作して印刷要求を行うと、プリンタユーザーインタフェースドライバ２１は、所定の印刷条件設定用のダイヤログを表示する。ここで、ユーザーはそのダイヤログを見ながら、印刷ページ数、その他のプロパティを入力する。この処理はプロパティ設定処理部２２によって周知の方法により行われる。
【００６７】
次に、ウォーターマークの重ね合わせ印刷を行おうとする場合、同様の画面中で、具体例１で説明したと同じように、ウォーターマークの指定を行う。
図８には、プリンタユーザーインタフェースドライバのウォーターマーク指定のための動作フローチャートを示す。
まず、ステップＳ１において、ウォーターマーク指定画面の表示を行う。ウォーターマークの文字の種類や大きさ等を選択するメニュー画面がここで表示される。これは具体例１の場合と同様である。ユーザーは画面に従いウォーターマークの形式を指定する（ステップＳ２）。
【００６８】
指定内容は自動的にチェックされ、指定エラーがあればステップＳ３からステップＳ２に戻り、形式指定を完了させる。形式指定が完了すると、ステップＳ３からステップＳ４に進み、ウォーターマーク情報をデバイス情報として保存する。即ち、ウォーターマークの具体的なプロパティに相当する情報をデバイス情報として、図１に示したデバイス情報メモリ２５に格納する。具体的には、ウォーターマーク印刷データを作成するために必要な設定情報であるフォントやフォントサイズ等が、デバイス情報メモリ２５中に格納される。
【００６９】
印刷要求に伴うプロパティの設定が終了すると、アプリケーション１は印刷開始を要求する。印刷開始によって、プリンタユーザーインタフェースドライバ２１は、印刷文書メモリ２４の印刷文書データファイルを開き、アプリケーション１を通じてスプーラ２６にユーザーモードで動作する関数群を出力する。
【００７０】
図９に、以後の印刷データ生成動作のフローチャートを図示した。
先ずステップＳ１において、アプリケーションで印刷実行プログラムを開始させる。関数群は、グラフィックデバイスインタフェース３０に入力し、図９ステップＳ２，Ｓ３，Ｓ４に示したような関数を処理する。これらの処理は、デバイスコンテキスト作成処理のための予備処理である。次に、グラフィックデバイスインタフェース３０は、スプーラ２６から入力したデバイスに依存しないデータを、出力デバイスに依存するデータに変換する（ステップＳ５）。即ち、これから制御しようとするプリンタに適したコマンド群に変換する。
【００７１】
次に、ステップＳ６において、印刷イベントのフックが行われる。即ち、通常は印刷動作が開始されると、グラフィックデバイスインタフェース３０により作成された印刷データを、プリンタグラフィックドライバがビットマップデータに変換し、順にプリンタに転送するという動作を連続して行う。
【００７２】
しかしながら、ここでオプションとされたDrvDocumentEvent()関数をプログラム中に定義しておくと、印刷イベントを一時的に停止し、ユーザーの指定した処理を挟むことができる。ここでは、グラフィックデバイスインタフェース３０が、プリンタユーザーインタフェースドライバ２１を呼び出し、プリンタユーザーインタフェースドライバ２１に対しウォーターマークの生成処理を依頼する。即ち、ここで図１に示したウォーターマーク作成処理部２３が呼び出され、動作を開始する。
【００７３】
ユーザーモードにおいては、Win32API（アプリケーションプログラムインタフェース）が利用できる。このWin32APIは、オペレーティングシステムに対し様々な処理を要求するコマンドで、このコマンドでウォーターマーク作成のためのプログラムを組み立てる。そのプログラムをプリンタユーザーインタフェースドライバ２１のウォーターマーク作成処理部２３で実行するようにしている。
【００７４】
図９のステップＳ７で、これからウォーターマークを付加する処理が必要になると判断すると、ステップＳ８に進む。プリンタユーザーインタフェースドライバ２１は、デバイス情報メモリ２５からデバイス情報を読み出して、その内容に合うウォーターマークのビットマップデータを作成する。即ち、プリンタグラフィックドライバ３１が、ファイルを読み出す機能を持たないため、プリンタユーザーインタフェースドライバ２１が、デバイス情報メモリ２５からデバイス情報を読み出し、その内容を利用してウォーターマークのビットマップデータを作成する。
【００７５】
次に、プリンタユーザーインタフェースドライバ２１は、カスタムエスケープ関数をコールする（ステップＳ９）。この関数によって、プリンタグラフィックドライバ３１が呼び出される。プリンタグラフィックドライバ３１は、カスタムエスケープ関数を受けて、ステップＳ１０において、ウォーターマーク用のバッファを用意する。なお、ステップＳ１０とステップＳ１３に付けた＊印は、プリンタユーザーインタフェースドライバ２１でなくプリンタグラフィックドライバが実行する処理であることを明確にするための印である。図の右側のフローチャートに示すその他の処理は、プリンタユーザーインタフェースドライバ側で実行する。
【００７６】
このステップＳ１０の処理によって、図１に示したプリンタグラフィックドライバ３１に所定のイメージバッファ３３が設定される。そして、プリンタユーザーインタフェースドライバ２１のウォーターマーク作成処理部２３は、このイメージバッファ３３に対しウォーターマークのビットマップデータを転送する（ステップＳ１１）。次に、ステップＳ１２において、再びカスタムエスケープ関数をコールする。
【００７７】
ここまでで、実質的にプリンタユーザーインタフェースドライバ２１におけるウォーターマーク作成処理部２３の処理は終了する。後はプリンタグラフィックドライバ３１に処理が渡され、図９ステップＳ１３のウォーターマーク印刷データと元データの論理和をとる処理が行われる。
【００７８】
即ち、図１に示したウォーターマーク重ね合わせ処理部３４が起動し、イメージ生成処理部３２で生成した印刷文書データのビットマップデータと、イメージバッファ３３に格納したウォーターマークのビットマップデータとを重ね合わせて、これをデータ送信処理部３５に転送する。なお、ウォーターマークは、ウォーターマークに相当する部分以外の部分は、透明になるようなデータとして処理される。両者を論理和演算することによって、ウォーターマークの上に印刷文書データが重ね合わされたイメージが得られる。
【００７９】
こうして、ステップＳ１４，Ｓ１５，Ｓ１６の関数処理を行う。これらの処理は、デバイスコンテキストを作成するための後処理である。その後、デバイス送信処理部３５の動作によって、作成されたビットマップデータが図示しないプリンタに転送され印刷される。
【００８０】
〈ウォーターマークの回転〉
上記のような処理において、ウォーターマークに適当な傾斜を与えたい場合がある。これも、図１に示したプリンタユーザーインタフェースドライバ２１のプロパティ設定処理２２への設定により実行することができる。
【００８１】
図１０には、回転させた文字をウォーターマークにするための処理フローチャートを示す。この処理は、図９のステップＳ８で実行する処理である。従って回転したウォーターマークのビットマップデータは、生成後そのままプリンタグラフィックドライバ３１のイメージバッファ３３に転送される。
まず、ステップＳ１において、プリンタユーザーインタフェースドライバ２１は、既にウォーターマーク設定処理によって作成されたデバイス情報を再びデバイス情報メモリ２５から呼び出す。なお、このデバイス情報は、一般的な印刷のためのプロパティも含むデータである。ここからウォーターマーク情報を取り出す。そして、ステップＳ２において、フォントオブジェクトを作成する。即ち、ウォーターマークのための文字コードやフォントサイズ等の情報に基づいて、実際のフォントデータを作成する演算処理を行う。この演算処理は、ウォーターマークの実際のサイズを求めて、回転後のサイズ等を予測するためである。
【００８２】
ステップＳ３では、文字列の大きさを算出する。ステップＳ４では、設定した回転角度で文字を回転させたときの描画領域を算出する。そして、ステップＳ５で、描画開始位置の算出を行う。ステップＳ３，Ｓ４，Ｓ５の処理について、これを具体的に図解したものを図１１に示す。
【００８３】
図１１には、ウォーターマーク文字列の回転による描画始点の算出説明図を示す。
図には、用紙１２のイメージとウォーターマーク１３のイメージとが表示されている。この図に示すように、「文字列」というウォーターマークは、角度θで傾斜している。このようなウォーターマークの印刷を指定する場合には、予めウォーターマーク１３のフォントを指定すると共に、その傾斜をプロパティ設定画面で指定する。
【００８４】
図１０のステップＳ２で説明したフォントオブジェクトの作成処理では、この図面に示すように、ウォーターマーク１３の実際のイメージを演算処理によって求める。その文字列の大きさは、図に示すように、高さがＬＬ、幅がＬＷといった内容となる。このウォーターマーク１３の描画範囲は、高さＤＬ、幅ＤＷの領域になる。ＤＷ，ＤＬ，ＬＬ，ＬＷの関係は、簡単な三角関数によって図の式１、式２により求めることができる。また、描画開始点ＳＰ（Ｘ，Ｙ）は、図の式３、式４によって求めることができる。
【００８５】
即ち、デバイスプロパティによってウォーターマークの傾きが設定されている場合、デバイス情報メモリ２５からデバイス情報を読み出しながら、図１１に示した演算処理を行うことによって、そのままウォーターマークを所定の傾きで描画することができる。こうして、描画したビットマップデータを、そのままスプーラ２６を介してグラフィックデバイスインタフェース３０に転送する。
【００８６】
〈具体例４の効果〉
以上により、WindowsNT4.0の場合であっても、ユーザーモードでウォーターマークのビットマップデータを自由に加工し、DrvDocumentEvent()関数によってプリンタグラフィックドライバ３１とプリンタユーザーインタフェースドライバ２１とが協調して、ウォーターマークのような地模様を印刷文書データに重ね合わせて、プリンタに供給することができる。
【図面の簡単な説明】
【図１】本発明による印刷システムのブロック図である。
【図２】プロパティ設定処理部の動作フローチャートである。
【図３】具体例１のプリンタドライバの動作フローチャートである。
【図４】具体例２のプリンタドライバの動作フローチャートである。
【図５】ウォーターマークの伸縮処理動作説明図である。
【図６】白抜き処理の動作説明図である。
【図７】具体例４の印刷システムブロック図である。
【図８】プリンタユーザーインタフェースドライバの動作フローチャートである。
【図９】印刷データ生成動作のフローチャートである。
【図１０】回転させた文字をウォーターマークにするための処理フローチャートである。
【図１１】ウォーターマーク文字列の回転による描画始点の算出動作説明図である。
【符号の説明】
１  アプリケーション
２  グラフィックデバイスインタフェース
３  プリンタドライバ
４  プリンタ
５  イメージ生成処理部
７  プロパティ設定処理部
９  重ね合わせ処理部
１０  データ送信処理部
１２  用紙
１３  ウォーターマーク
１４  印刷される画像
【図１】
0003680109.tif 000002
【図２】
0003680109.tif 000003
【図３】
0003680109.tif 000004
【図４】
0003680109.tif 000005
【図５】
0003680109.tif 000006
【図６】
0003680109.tif 000007
【図７】
0003680109.tif 000008
【図８】
0003680109.tif 000009
【図９】
0003680109.tif 000010
【図１０】
0003680109.tif 000011
【図１１】
0003680109.tif 000012