(57)【要約】【課題】アプリケーションにより作成された印刷データ上に描画データを印刷することができる印刷プログラム、情報処理装置および記録媒体を提供する。【解決手段】印刷データが描画された第１描画ページ、および印刷データ上に付加されることが指定された描画データが描画された第２描画ページを生成する生成部と、第１描画ページの次に、前記第２描画ページを送信する送信部と、第１描画ページおよび第２描画ページをそれぞれ開始する指示、および、第１描画ページおよび第２描画ページをそれぞれ終了する指示を受信する受信部と、第１描画ページを終了する指示、および第２描画ページを開始する指示を実行しないことにより、第１描画ページ上に第２描画ページを付加して出力する出力制御部と、を備えた。【選択図】図１４
2012118824.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
アプリケーションにより作成された印刷データが描画された第１描画ページ、および前記印刷データ上に付加されることが指定された描画データが描画された第２描画ページを生成する生成部と、
前記第１描画ページの次に、前記第２描画ページを送信する送信部と、
前記第１描画ページおよび前記第２描画ページをそれぞれ開始する指示、および、前記第１描画ページおよび前記第２描画ページをそれぞれ終了する指示を受信する受信部と、
前記第１描画ページを終了する指示、および、前記第２描画ページを開始する指示を実行しないことにより、前記第１描画ページ上に前記第２描画ページを付加して出力する出力制御部、
として機能させるための印刷プログラム。
【請求項２】
前記出力制御部は、前記送信部から前記第１描画ページを開始する指示を受信した場合に、前記第１描画ページの出力を開始して前記印刷データを前記第１描画ページに描画し、前記第１描画ページの次に前記第２描画ページを終了する指示を受信した場合に、前記第１描画ページの出力を終了せずに前記第２描画ページに描画された前記描画データを前記第１描画ページに描画し、前記第２描画データを描画した後に前記第１描画ページの出力を終了すること、
を特徴とする請求項１に記載の印刷プログラム。
【請求項３】
前記コンピュータを、プリンタドライバと、アプリケーションにより作成された印刷データのページを前記プリンタドライバに送信する処理を制御するページ制御部として機能させ、
前記ページ制御部は、
前記生成部と、
前記描画部と、
前記送信部と、を備え、
前記プリンタドライバは、
前記受信部と、
前記出力制御部、
を備えたことを特徴とする請求項１に記載の印刷プログラム。
【請求項４】
アプリケーションにより作成された印刷データが描画された第１描画ページ、および前記印刷データ上に付加されることが指定された描画データが描画された第２描画ページを生成する生成部と、
前記第１描画ページの次に、前記第２描画ページを送信する送信部と、
前記第１描画ページおよび前記第２描画ページをそれぞれ開始する指示、および、前記第１描画ページおよび前記第２描画ページをそれぞれ終了する指示を受信する受信部と、
前記第１描画ページを終了する指示、および、前記第２描画ページを開始する指示を実行しないことにより、前記第１描画ページ上に前記第２描画ページを付加して出力する出力制御部と、
を備えたことを特徴とする情報処理装置。
【請求項５】
前記出力制御部は、前記送信部から前記第１描画ページを開始する指示を受信した場合に、前記第１描画ページの出力を開始して前記印刷データを前記第１描画ページに描画し、前記第１描画ページの次に前記第２描画ページを終了する指示を受信した場合に、前記第１描画ページの出力を終了せずに前記第２描画ページに描画された前記描画データを前記第１描画ページに描画し、前記描画データを描画した後に前記第１描画ページの出力を終了すること、
を特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記情報処理装置は、プリンタドライバと、アプリケーションにより作成された印刷データのページを前記プリンタドライバに送信する処理を制御するページ制御部と、を備え、
前記ページ制御部は、
前記生成部と、
前記描画部と、
前記送信部と、を備え、
前記プリンタドライバは、
前記受信部と、
前記出力制御部、
を備えたことを特徴とする請求項４に記載の情報処理装置。
【請求項７】
請求項１に記載の印刷プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷プログラム、情報処理装置および記録媒体に関する。
【背景技術】
【０００２】
従来、プリンタドライバには、アプリケーションから印刷したデータに、文字データ、図形データ、画像データを付加するというスタンプ（Ｗａｔｅｒ  Ｍａｒｋ）機能があることが既に知られている。
【０００３】
例えば、アプリケーションが生成した印刷データにスタンプを付加する際に、印刷性および利便性を向上する印刷システムが開示されている（例えば、特許文献１参照。）。特許文献１の印刷システムは、プリンタドライバから追加する描画データ、および印刷開始の印刷イベントを受け取ると、アプリケーションに代わってスタンプ等の描画データを生成する。そして、印刷システムは、生成した描画データをスプールファイルに付加し、プリントプロセッサによりスプールファイルから印刷データのページと描画データのページを抜き出して、印刷データに描画データを合成する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の方法では、アプリケーションにより作成された印刷データに対して、プリントプロセッサでスタンプ等の描画データを付加すると、アプリケーションで作成された印刷データの前面に描画データを印刷することができないという問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、アプリケーションにより作成された印刷データ上に描画データを印刷することができる印刷プログラム、情報処理装置および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明にかかる印刷プログラムは、コンピュータを、アプリケーションにより作成された印刷データが描画された第１描画ページ、および前記印刷データ上に付加されることが指定された描画データが描画された第２描画ページを生成する生成部と、前記第１描画ページの次に、前記第２描画ページを送信する送信部と、前記第１描画ページおよび前記第２描画ページをそれぞれ開始する指示、および、前記第１描画ページおよび前記第２描画ページをそれぞれ終了する指示を受信する受信部と、前記第１描画ページを終了する指示、および、前記第２描画ページを開始する指示を実行しないことにより、前記第１描画ページ上に前記第２描画ページを付加して出力する出力制御部、として機能させるための印刷プログラムであることを特徴とする。
【０００７】
また、本発明にかかる情報処理装置は、アプリケーションにより作成された印刷データが描画された第１描画ページ、および前記印刷データ上に付加されることが指定された描画データが描画された第２描画ページを生成する生成部と、前記第１描画ページの次に、前記第２描画ページを送信する送信部と、前記第１描画ページおよび前記第２描画ページをそれぞれ開始する指示、および、前記第１描画ページおよび前記第２描画ページをそれぞれ終了する指示を受信する受信部と、前記第１描画ページを終了する指示、および、前記第２描画ページを開始する指示を実行しないことにより、前記第１描画ページ上に前記第２描画ページを付加して出力する出力制御部と、を備えたことを特徴とする。
【０００８】
また、本発明にかかる記憶媒体は、コンピュータを、コンピュータを、アプリケーションにより作成された印刷データが描画された第１描画ページ、および前記印刷データ上に付加されることが指定された描画データが描画された第２描画ページを生成する生成部と、前記第１描画ページの次に、前記第２描画ページを送信する送信部と、前記第１描画ページおよび前記第２描画ページをそれぞれ開始する指示、および、前記第１描画ページおよび前記第２描画ページをそれぞれ終了する指示を受信する受信部と、前記第１描画ページを終了する指示、および、前記第２描画ページを開始する指示を実行しないことにより、前記第１描画ページ上に前記第２描画ページを付加して出力する出力制御部、として機能させるための印刷プログラムを記憶したコンピュータ読み取り可能な記憶媒体であることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、アプリケーションにより作成された印刷データ上に描画データを印刷することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、アプリケーションにより作成された印刷データの一例を示す図である。
【図２】図２は、スタンプの描画データの一例を示す図である。
【図３】図３は、アプリケーションにより作成された印刷データの前面にスタンプを載せた際に期待される印刷結果の一例を示す図である。
【図４】図４は、アプリケーションにより作成された印刷データにスタンプを付加した際に発生する印刷結果の一例を示す図である。
【図５】図５は、本発明の第１の実施の形態にかかる情報処理装置が接続された印刷システムの全体構成図である。
【図６】図６は、Ｗｉｎｄｏｗｓ（登録商標）プリントアーキテクチャの動作順序を示す流れ図である。
【図７】図７は、プリントプロセッサの印刷動作の流れを示すシーケンス図である。
【図８】図８は、アプリケーションによる印刷動作の流れを示すシーケンス図である。
【図９】図９は、プリントプロセッサによる印刷指示処理の流れを示すシーケンス図である。
【図１０】図１０は、プリントプロセッサによる印刷指示処理の流れを示すシーケンス図である。
【図１１】図１１は、アプリケーションからプリンタドライバへの印刷指示の送信順序を変更する処理の流れを示すシーケンス図である。
【図１２】図１２は、プリンタドライバに対する通知を送信するタイミングを示すシーケンス図である。
【図１３】図１３は、プリンタドライバに対する通知を送信するタイミングを示すシーケンス図である。
【図１４】図１４は、ＰＣの構成を示すブロック図である。
【図１５】図１５は、アプリケーションにより作成された印刷データの一例を示す図である。
【図１６】図１６は、プリントプロセッサの機能ブロック図である。
【図１７】図１７は、生成部により生成された第１描画ページおよび第２描画ページの一例を示す図である。
【図１８】図１８は、送受信部によるコマンド送信順序を示す図である。
【図１９】図１９は、ＧＤＩにより送信される通常のコマンド送信順序を示す図である。
【図２０】図２０は、本実施の形態にかかるＧＤＩによるコマンド送信順序を示す図である。
【図２１】図２１は、プリンタドライバの機能ブロック図である。
【図２２】図２２は、プリンタドライバからプリンタに送信される出力ページの一例を示す図である。
【図２３】図２３は、ＰＣによる描画データが付加された印刷データの印刷処理の流れを示すシーケンス図である。
【図２４】図２４は、本実施の形態にかかるＰＣの構成を示すブロック図である。
【図２５】図２５は、プリンタドライバの機能ブロック図である。
【図２６】図２６は、ＰＣによる描画データが付加された印刷データの印刷処理の流れを示すシーケンス図である。
【図２７】図２７は、第１または第２の実施の形態にかかる情報処理装置のハードウェア構成を示す説明図である。
【発明を実施するための形態】
【００１１】
まず、従来の情報処理装置により描画データが付加された印刷データの例を説明する。図１は、アプリケーションにより作成された印刷データ（以下、印刷データという。）の一例を示す図であり、図２は、スタンプの描画データの一例を示す図である。図３は、アプリケーションにより作成された印刷データの前面にスタンプを付加した際に期待される印刷結果の一例を示す図である。
【００１２】
従来の技術で、プリントプロセッサが使用できるＡＰＩを使用して描画データを追加すると、アプリケーションにより作成された印刷データの背面に、付加したいスタンプの描画データ（以下、スタンプという。）が印刷されてしまい図４のように印刷されてしまう現象が発生していた。
【００１３】
図４は、アプリケーションにより作成された印刷データにスタンプを付加した際に発生する印刷結果の一例を示す図である。図４で、アプリケーションにより作成された印刷データの中央部のグラフが描かれた図のスタンプに着目すると、グラフが描かれた図がスタンプよりも前面に印刷されている。このように、従来の技術では、アプリケーションにより作成された印刷データに描画データを付加すると、描画データを印刷データの前面に印刷できない現象が発生していた。
【００１４】
この問題を解決すべく、以下に添付図面を参照して、この発明にかかる印刷プログラム、情報処理装置および記録媒体の最良な実施の形態を詳細に説明する。
【００１５】
（第１の実施の形態）
図５は、本発明の第１の実施の形態にかかる情報処理装置が接続された印刷システムの全体構成図である。図５に示すように、印刷システムは、情報処理装置としてのＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１００と、プリンタ２００ａと、プリンタ２００ｂ（以下、プリンタ２００と総称する。）とがネットワーク１８０により接続されている。
【００１６】
ＰＣ１００は、ユーザから印刷データに描画データを付加する指示を受け付け、指示に従って描画データを生成し、プリンタ２００に印刷データと生成した描画データと共に印刷指示を送信し、印刷させる。
【００１７】
プリンタ２００は、ＰＣ１００から印刷データに描画データを付加する印刷指示を受信した場合、ＰＣ１００からの印刷指示に従って印刷データおよび描画データを印刷する。
【００１８】
まず、Ｗｉｎｄｏｗｓ（登録商標）プリントアーキテクチャを用いたＰＣ１００による印刷動作の流れの概要を説明する。図６は、Ｗｉｎｄｏｗｓ（登録商標）プリントアーキテクチャの動作順序を示す流れ図である。図６に示すように、ＰＣ１００は、ユーザから印刷設定を受け付けるプリンタドライバのＵＩ部１０６ａと、ユーザから印刷命令を受け付けるアプリケーション１０４と、プリントプロセッサからの命令をプリンタドライバ１０６に送信するＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）１０５ａと、データの言語形式を変換するプリンタドライバ１０６と、印刷データを蓄積するスプーラ１０５ｂと、スプーラ１０５ｂから受け取った印刷データを編集するプリントプロセッサ１０７を備え、プリンタ２００と接続されている。なお、各部の機能および構成の詳細については後述する。
【００１９】
まず、ＵＩ部１０６ａは、ユーザから印刷設定の変更を受け付ける（ステップＳ１）。アプリケーション１０４は、ユーザから印刷命令を受け付ける（ステップＳ２）。アプリケーション１０４は、ＵＩ部１０６ａおよびＤＥＶＭＯＤＥと呼ばれる印刷設定が入っている構造体（不図示）とやり取りすることによりユーザの印刷設定を受け付ける（ステップＳ３、ステップＳ４）。ここで、アプリケーション１０４は、印刷設定とともに、印刷対象となる印刷データの指定を受け付ける。なお、印刷データは、アプリケーション１０４によりＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａｆｉｌｅ  Ｆｏｒｍａｔ）形式で作成されたものである。
【００２０】
アプリケーション１０４は、ＧＤＩ１０５ａに印刷データの印刷命令をＧＤＩコールとして伝える（ステップＳ５）。ＧＤＩ１０５ａは、スプールデータとしてＥＭＦ形式の印刷データをスプーラ１０５ｂに渡す（ステップＳ６）。スプーラ１０５ｂは、アプリケーション１０４により作成された印刷データを全てスプールすると、プリントプロセッサ１０７に印刷データをデスプールする通知を送信した上で、プリントプロセッサ１０７に印刷データをデスプールする（ステップＳ７）。
【００２１】
プリントプロセッサ１０７は、スプーラ１０５ｂから受信した印刷データを読み取ってページ毎に編集し、編集した内容をＧＤＩ１０５ａにＧＤＩコールとして伝える（ステップＳ８）。ここで、プリントプロセッサ１０７は、ＵＩ部１０６ａが受け付けた印刷設定に従って印刷データをデバイスコンテキストに描画し編集する。なお、プリントプロセッサ１０７が印刷データを編集する単位は１ページ分のデータ毎であり、ページ中の描画オブジェクト毎には編集しない。
【００２２】
ＧＤＩ１０５ａは、プリンタドライバ１０６にプリントプロセッサ１０７から受信したＧＤＩコールをＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）コールとして伝える（ステップＳ９）。
【００２３】
プリンタドライバ１０６は、ＧＤＩ１０５ａから受信したＤＤＩコールを受信すると、印刷命令の対象となるＥＭＦ形式の印刷データをＲＡＷ形式に変換し、変換したＲＡＷデータをスプーラ１０５ｂに送信する（ステップＳ１０）。
【００２４】
スプーラ１０５ｂは、プリンタドライバ１０６から受信したＲＡＷデータをプリンタ２００に送信する（ステップＳ１１）。
【００２５】
次に、以上のような概要による通常のプリントプロセッサ１０７による印刷動作の詳細について説明する。図７は、プリントプロセッサ１０７の印刷動作の流れを示すシーケンス図である。
【００２６】
スプーラ１０５ｂは、プリントプロセッサ１０７に印刷開始要求を送信する（ステップＳ１０１）。ここで、スプーラ１０５ｂは、プリントプロセッサ１０７にＯｐｅｎ  Ｐｒｉｎｔ  Ｐｒｏｃｅｓｓｏｒ（）関数をコールし、プリントプロセッサ１０７は、これに応答する。
【００２７】
スプーラ１０５ｂは、プリントプロセッサ１０７に印刷準備前通知を送信する（ステップＳ１０２）。ここで、スプーラ１０５ｂは、プリントプロセッサ１０７にＰｒｉｎｔ  Ｄｏｃｕｍｅｎｔ  Ｏｎ  Ｐｒｉｎｔ  Ｐｒｏｃｅｓｓｏｒ（）関数をコールする。
【００２８】
プリントプロセッサ１０７は、ＧＤＩ１０５ａに印刷準備前通知を送信する（ステップＳ１０３）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＷｉｎｄｏｗｓ（登録商標）におけるＧＤＩ（以下、ＧＤＩという。）であるＧｄｉ  Ｇｅｔ  Ｓｐｏｏｌ  Ｆｉｌｅ  Ｈａｎｄｌｅ（）関数をコールする。これにより、ＧＤＩ１０５ａは、スプーラ１０５ｂにスプールされている印刷データへのハンドルを取得する。
【００２９】
ＧＤＩ１０５ａは、プリンタドライバ１０６に印刷準備要求を送信する（ステップＳ１０４〜ステップＳ１０６）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＷｉｎｄｏｗｓ（登録商標）におけるＤＤＩ（以下、ＤＤＩという。）であるＤｒｖ  Ｅｎａｂｌｅ  Ｄｒｉｖｅｒ（）関数、Ｄｒｖ  Ｅｎａｂｌｅ  ＰＤＥＶ（）関数、およびＤｒｖ  Ｃｏｍｐｌｅｔｅ  ＰＤＥＶ（）関数をコールする。
【００３０】
プリントプロセッサ１０７は、ＧＤＩ１０５ａに印刷開始通知を送信する（ステップＳ１０７、ステップＳ１０８）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＧＤＩであるＧｄｉ  Ｇｅｔ  ＤＣ（）関数をコールし、印刷データの出力先であるデバイスコンテキストを取得する。また、プリントプロセッサ１０７は、ＧＤＩであるＧｄｉ  Ｓｔａｒｔ  Ｄｏｃ  ＥＭＦ（）関数をコールし、ＧＤＩ１０５ａに印刷開始を通知する。
【００３１】
ＧＤＩ１０５ａは、プリンタドライバ１０６に印刷開始通知を送信する（ステップＳ１０９、ステップＳ１１０）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｅｎａｂｌｅ  Ｓｕｒｆａｃｅ（）関数と、ＤＤＩであるＤｒｖ  Ｓｔａｒｔ  Ｄｏｃ（）関数をコールする。
【００３２】
プリントプロセッサ１０７は、ＧＤＩ１０５ａに印刷データを送信し、ページ開始およびページ終了を通知する（ステップＳ１１１〜ステップＳ１１４）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａに各種ＧＤＩをコールする。
【００３３】
例えば、プリントプロセッサ１０７は、ＧＤＩであるＧｄｉ  Ｓｔａｒｔ  Ｐａｇｅ  ＥＭＦ（）関数をコールし、印刷用紙のページ開始を通知する。また、プリントプロセッサ１０７は、ＧＤＩであるＧｄｉ  Ｇｅｔ  Ｐａｇｅ  Ｈａｎｄｌｅ（）関数をコールし、印刷データの１ページ分のデータを取得する。この際、プリントプロセッサ１０７は、印刷データのうちページ番号を指定することができる。また、プリントプロセッサ１０７は、ＧＤＩであるＧｄｉ  Ｐｌａｙ  Ｐａｇｅ  ＥＭＦ（）関数をコールし、ＧＤＩ１０５ａに印刷データを送信する。さらに、プリントプロセッサ１０７は、ＧＤＩであるＧｄｉ  Ｅｎｄ  Ｐａｇｅ  ＥＭＦ（）関数をコールし、印刷用紙への割り付け終了（以下、ページ終了という。）を通知する。
【００３４】
ＧＤＩ１０５ａは、ページ処理開始要求および印刷データをプリンタドライバ１０６に送信する（ステップＳ１１５〜ステップＳ１１７）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６に各種ＤＤＩをコールする。例えば、ＧＤＩ１０５ａは、Ｄｒｖ  Ｓｔａｒｔ  Ｐａｇｅ（）関数、描画関数（）、およびＤｒｖ  Ｓｅｎｄ  Ｐａｇｅ（）関数をコールする。なお、印刷データの送信は、通常この関数の順序によりコールされる。
【００３５】
プリントプロセッサ１０７は、ＧＤＩ１０５ａに印刷終了準備要求を送信する（ステップＳ１１８）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＧＤＩであるＧｄｉ  Ｅｎｄ  Ｄｏｃ  ＥＭＦ（）関数をコールする。
【００３６】
ＧＤＩ１０５ａは、プリンタドライバ１０６に印刷終了準備要求を送信する（ステップＳ１１９）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｅｎｄ  Ｄｏｃ（）関数を送信する。
【００３７】
プリントプロセッサ１０７は、ＧＤＩ１０５ａに印刷終了要求を通知する（ステップＳ１２０）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＧＤＩであるＧｄｉ  Ｄｅｌｅｔｅ  Ｓｐｏｏｌ  Ｆｉｌｅ  Ｈａｎｄｌｅ（）関数をコールし、スプーラ１０５ｂにスプールされている印刷データへのハンドルを破棄する。
【００３８】
ＧＤＩ１０５ａは、プリンタドライバ１０６に印刷終了要求を通知する（ステップＳ１２１）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｄｉｓａｂｌｅ  ＰＤＥＶ（）関数をコールする。
【００３９】
スプーラ１０５ｂは、プリントプロセッサ１０７に印刷完了を通知する（ステップＳ１２２）。ここで、スプーラ１０５ｂは、プリントプロセッサ１０７にＧＤＩであるＣｌｏｓｅ  Ｐｒｉｎｔ  Ｐｒｏｃｅｓｓｏｒ（）関数をコールする。
【００４０】
プリントプロセッサ１０７とＧＤＩ１０５ａの間でのやり取りの仕組みは上記のとおりであるため、プリントプロセッサ１０７でページの割り付けを行うためには、Ｇｄｉ  Ｓｔａｒｔ  Ｐａｇｅ  ＥＭＦ（）関数、Ｇｄｉ  Ｇｅｔ  Ｐａｇｅ  Ｈａｎｄｌｅ（）関数、Ｇｄｉ  Ｐｌａｙ  Ｐａｇｅ  ＥＭＦ（）関数、Ｇｄｉ  Ｅｎｄ  Ｐａｇｅ  ＥＭＦ（）関数の各種ＧＤＩを用いることで実現することができる。
【００４１】
次に、通常のアプリケーション１０４による印刷動作の流れについて説明する。図８は、アプリケーション１０４による印刷動作の流れを示すシーケンス図である。ここでは、アプリケーション１０４は、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を用いてＧＤＩ１０５ａにコールするが、ＧＤＩを用いた場合と同様にデバイスコンテキストに対して描画処理を行う。
【００４２】
まず、通常のアプリケーションで実際に描画処理を行うＡＰＩの例を示す。例えば、Ｔｅｘｔ  Ｏｕｔ（）関数、Ｂｉｔ  Ｂｌｔ（）関数、Ｓｔｒｅｔｃｈ  Ｂｌｔ（）関数、Ｌｉｎｅ  Ｔｏ（）関数、Ｒｅｃｔａｎｇｌｅ（）関数等が用いられる。これらのＡＰＩは、Ｓｔａｒｔ  Ｐａｇｅ（）関数と、Ｅｎｄ  Ｐａｇｅ（）関数の間に呼ぶことで、そのページ内に文字・画像・図形を描画することができる。また、描画先はデバイスコンテキストなので、プリントプロセッサ１０７においてもこれらのＡＰＩを使用することで描画処理をすることが可能である。
【００４３】
アプリケーション１０４は、ＧＤＩ１０５ａに印刷開始要求および印刷データを送信する（ステップＳ１３１、ステップＳ１３２）。ここで、アプリケーション１０４は、ＧＤＩ１０５ａにＣｒｅａｔｅ  ＤＣ（）関数、およびＳｔａｒｔ  Ｄｏｃ（）関数をコールする。
【００４４】
次に、アプリケーション１０４は、ＧＤＩ１０５ａにページ開始要求を送信する（ステップＳ１３３）。ここで、ページ開始要求とは、１ページ分の印刷データを描画するページを準備する要求のことである。アプリケーション１０４は、ＧＤＩ１０５ａにＳｔａｒｔ  Ｐａｇｅ（）関数をコールする。
【００４５】
続いてアプリケーション１０４は、ＧＤＩ１０５ａに描画データを送信する（ステップＳ１３４）。ここで、アプリケーション１０４は、ＧＤＩ１０５ａにＴｅｘｔ  Ｏｕｔ（）関数をコールする。なお、描画データが複数ある場合、アプリケーション１０４は、当該コールを複数回行ってもよい。
【００４６】
描画データを送信したアプリケーション１０４は、ＧＤＩ１０５ａにページ終了要求を送信する（ステップＳ１３５）。ここで、ページ終了要求とは、ページ開始要求によって準備されたページを終了する要求のことである。アプリケーション１０４は、ＧＤＩ１０５ａにＥｎｄ  Ｐａｇｅ（）関数をコールする。なお、印刷データが複数ページある場合、アプリケーション１０４がステップＳ１３３からステップＳ１３５の処理を複数回繰り返すことにより、プリンタ２００により複数ページの印刷が可能である。
【００４７】
アプリケーション１０４は、ＧＤＩ１０５ａに印刷終了要求を送信する（ステップＳ１３６、ステップＳ１３７）。ここで、アプリケーション１０４は、ＧＤＩ１０５ａにＥｎｄ  Ｄｏｃ  （）関数、およびＤｅｌｅｔｅ  ＤＣ（）関数をコールする。
【００４８】
次に、通常のプリントプロセッサ１０７による印刷指示処理の流れについて説明する。図９は、プリントプロセッサ１０７による印刷指示処理の流れを示すシーケンス図である。
【００４９】
まず、ＧＤＩ１０５ａおよびプリントプロセッサ１０７による処理の概要を説明する。まず、ＧＤＩ１０５ａは、プリンタドライバ１０６のＤＤＩであるページ処理開始命令（Ｄｒｖ  Ｓｔａｒｔ  Ｐａｇｅ（））を呼び出し、その後すぐに、ＧＤＩ１０５ａはプリントプロセッサ１０７が呼び出した描画ＡＰＩに対応するプリンタドライバ１０６側の描画処理ＤＤＩをコールする。
【００５０】
また、プリントプロセッサ１０７は、描画ＡＰＩをコールしない時は、プリントプロセッサ１０７がＧｄｉ  Ｅｎｄ  Ｐａｇｅ  ＥＭＦ（）関数をコールするまでプリンタドライバ１０６に何も通知が渡らない。しかし、プリントプロセッサ１０７が描画ＡＰＩをコールすると、その命令がすぐにプリンタドライバ１０６に伝わるようにＯＳが動作してしまう。
【００５１】
ステップＳ１４１からステップＳ１５３までの処理については、図７のシーケンス図で説明したステップＳ１０１からステップＳ１１３までの処理と同様である。
【００５２】
ステップＳ１５４において、プリントプロセッサ１０７は、描画データを送信する（ステップＳ１５４）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＴｅｘｔ  Ｏｕｔ（）関数をコールする。
【００５３】
ここで、コールする関数の順序に着目すると、プリントプロセッサ１０７は、１つ前の処理（ステップＳ１５３）でコールしたＧＤＩであるＧｄｉ  Ｐｌａｙ  Ｐａｇｅ  ＥＭＦ（）関数の次に、Ｔｅｘｔ  Ｏｕｔ（）関数をコールしている。
【００５４】
ＧＤＩ１０５ａは、プリンタドライバ１０６にページ処理開始要求および描画データを送信する（ステップＳ１５５、ステップＳ１５６）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｓｔａｒｔ  Ｐａｇｅ（）関数、およびＤｒｖ  Ｔｅｘｔ  Ｏｕｔ（）関数をコールする。
【００５５】
ステップＳ１５７の処理は、図７のシーケンス図で説明したステップＳ１１４の処理と同様である。
【００５６】
ステップＳ１５８において、ＧＤＩ１０５ａはプリンタドライバ１０６に印刷データを送信する（ステップＳ１５８）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩである描画関数（）をコールする。
【００５７】
ここで、ステップＳ１５６およびステップＳ１５８の処理に着目すると、ＧＤＩ１０５ａはステップＳ１５６で描画データを先に送信し、描画データを送信した後にステップＳ１５８で印刷データを送信している。これは、ステップＳ１５３およびステップＳ１５４でプリントプロセッサ１０７がＧＤＩ１０５ａに対して印刷データの後に描画データを送信した順序と逆になっている。つまり、プリンタドライバ１０６は、プリントプロセッサ１０７からＧＤＩ１０５ａに送信した順序と逆の順序で印刷データと描画データを受信している。このため、描画データが印刷データの背面に印刷される現象が生じる。
【００５８】
ステップＳ１５９からステップＳ１６４までの処理は、図７のシーケンス図で説明したステップＳ１１７からステップＳ１２２までの処理と同様である。
【００５９】
次に、通常のプリントプロセッサ１０７によるＡＰＩコールによる印刷指示処理の他の例について説明する。図１０は、プリントプロセッサ１０７による印刷指示処理の流れを示すシーケンス図である。
【００６０】
ステップＳ１７１からステップＳ１８２までの処理については、図９のシーケンス図で説明したステップＳ１４１からステップＳ１５２までの処理と同様である。
【００６１】
ステップＳ１８３において、プリントプロセッサ１０７は、ＧＤＩ１０５ａに描画データを送信する（ステップＳ１８３）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＴｅｘｔ  Ｏｕｔ（）関数をコールする。
【００６２】
ステップＳ１８４は、図７のシーケンス図で説明したステップＳ１１５と同様である。ステップＳ１８５において、ＧＤＩ１０５ａは、プリンタドライバ１０６に印刷データを送信する（ステップＳ１８５）。次に、プリントプロセッサ１０７は、ＧＤＩ１０５ａに印刷データを送信する（ステップＳ１８６）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＧＤＩであるＧｄｉ  Ｐｌａｙ  Ｐａｇｅ  ＥＭＦ（）関数をコールする。
【００６３】
ステップＳ１８７において、プリントプロセッサ１０７は、ＧＤＩ１０５ａにページ終了要求を送信する（ステップＳ１８７）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＧＤＩであるＧｄｉ  Ｅｎｄ  Ｐａｇｅ  ＥＭＦ（）関数をコールする（ステップＳ１８７）。ＧＤＩ１０５ａは、プリンタドライバ１０６に印刷データを送信する(ステップＳ１８８)。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６に描画関数（）をコールする。
【００６４】
ここで、ステップＳ１８３とステップＳ１８６の順序に着目すると、プリントプロセッサ１０７はステップＳ１８３で描画データを先に送信し、印刷データを描画データの後から送信している。これは、図９のシーケンス図のステップＳ１５３およびステップＳ１５４で、プリントプロセッサ１０７が描画データを印刷データの後から送信した順番と異なる。
【００６５】
しかし、ＧＤＩ１０５ａがプリンタドライバ１０６にデータ送信する順序は、図９と同様に、ステップＳ１８５で描画データが先、ステップＳ１８８で印刷データが後となってしまう。つまり、図９および図１０に示したように、プリントプロセッサ１０７からＧＤＩ１０５ａへの印刷指示の送信順序を変更するだけでは、描画データが印刷データの背面に付加されてしまうという問題を解決できないこととなる。
【００６６】
なお、ステップＳ１８９からステップＳ１９４までの処理は、図９のシーケンス図で説明したステップＳ１５９からステップＳ１６４と同様である。
【００６７】
次に、アプリケーション１０４がプリンタドライバ１０６に通知（Ｅｓｃａｐｅ）を送信する通知送信処理について説明する。ここで、Ｅｓｃａｐｅとは、アプリケーション１０４が、ＧＤＩ１０５ａを介してプリンタドライバ１０６に送信する通知である。ここでは、アプリケーション１０４は、Ｅｓｃａｐｅ関数を用いてコマンドをキャンセルする処理に変更する通知（以下、変更通知という。）をプリンタドライバ１０６に送信する。図１１は、アプリケーション１０４からプリンタドライバ１０６への通知送信処理の流れを示すシーケンス図である。
【００６８】
アプリケーション１０４はＧＤＩ１０５ａを介してプリンタドライバ１０６にＥｓｃａｐｅを送信する。また、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｅｓｃａｐｅ（）関数をコールする。ここで、Ｅｓｃａｐｅ（）関数もデバイスコンテキストに対する処理であり、アプリケーション１０４は、印刷しているプリンタドライバ１０６と情報のやり取りを行うことができる。なお、このやり取りは、マイクロソフト（登録商標）のｍｓｄｎライブラリの記述に従ったものである。
【００６９】
アプリケーション１０４は、ＧＤＩ１０５ａに印刷データ生成要求を送信する(ステップＳ２０１)。ここで、アプリケーション１０４は、ＧＤＩ１０５ａにＣｒｅａｔｅ  ＤＣ（）関数をコールする。
【００７０】
ＧＤＩ１０５ａは、プリンタドライバ１０６に印刷開始指示を送信する（ステップＳ２０２）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｅｎａｂｌｅ  ＰＤＥＶ（）関数をコールする。
【００７１】
次に、アプリケーション１０４は、ＧＤＩ１０５ａに通知（Ｅｓｃａｐｅ）を送信する（ステップＳ２０３）。ＧＤＩ１０５ａは、プリンタドライバ１０６に通知（Ｅｓｃａｐｅ）を送信する（ステップＳ２０４）。
【００７２】
ここで、アプリケーション１０４は、プリンタドライバ１０６に通知を送信するための関数として、Ｅｓｃａｐｅ（）関数に限定せず、Ｅｘｔ  Ｅｓｃａｐｅ（）関数を用いて通知を送信してもよい。
【００７３】
次に、プリントプロセッサ１０７による通知送信のタイミングについて説明する。ここでは、プリンタドライバ１０６は、プリントプロセッサ１０７からの通知の受信により、ＧＤＩ１０５ａから受信した指示の一部をキャンセルする。図１２は、プリンタドライバ１０６に対する通知を送信するタイミングを示すシーケンス図である。図１２では、図７のシーケンス図を基本とするシーケンス図に、通知が送信されるタイミングが追加されている。
【００７４】
ステップＳ２１１からステップＳ２２１までの処理は、図７のシーケンス図で説明したステップＳ１０１からステップＳ１１１と同様である。
【００７５】
ステップＳ２２２において、プリントプロセッサ１０７は、ＧＤＩ１０５ａに通知を送信する（ステップＳ２２２）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＥｘｔ  Ｅｓｃａｐｅ（）関数をコールする。ここで、プリントプロセッサ１０７は、通知を、ステップＳ２２１においてページ開始要求を送信した後のタイミングでＧＤＩ１０５ａに送信しているが、送信タイミングはこれに限定されない。
【００７６】
ＧＤＩ１０５ａは、プリンタドライバ１０６に通知を送信する（ステップＳ２２３）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｅｓｃａｐｅ（）関数をコールする。
【００７７】
ステップＳ２２４からステップＳ２３４までの処理は、図７のシーケンス図で説明したステップＳ１１２からステップＳ１２２と同様である。ここでも同様に、プリントプロセッサ１０７はＥｓｃａｐｅ（）関数をコールすることにより、ＧＤＩ１０５ａを介してプリンタドライバ１０６と即座に情報をやり取りすることができる。
【００７８】
次に、プリントプロセッサ１０７による通知の送信タイミングの他の例について説明する。図１３は、プリンタドライバ１０６に対する通知を送信するタイミングを示すシーケンス図である。図１３も図１２と同様に、図７のシーケンス図を基本とするシーケンス図に、通知が送信されるタイミングが追加されている。
【００７９】
ステップＳ２４１からステップＳ２５３までの処理は、図７のシーケンス図で説明したステップＳ１０１からステップＳ１１３までの処理と同様である。
【００８０】
ステップＳ２５４において、プリントプロセッサ１０７は、ＧＤＩ１０５ａに通知を送信する（ステップＳ２５４）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＥｘｔ  Ｅｓｃａｐｅ（）関数をコールする。ここで、プリントプロセッサ１０７は、通知を、ステップＳ２５３において印刷データを送信した後のタイミングでＧＤＩ１０５ａに送信しているが、図１２と同様に送信タイミングはこれに限定されず、任意のタイミングで送信可能である。
【００８１】
ＧＤＩ１０５ａは、プリンタドライバ１０６に通知を送信する（ステップＳ２５５）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｅｓｃａｐｅ（）関数をコールする。
【００８２】
ステップＳ２５６からステップＳ２６４までの処理は、図７のシーケンス図で説明したステップＳ１１４からステップＳ１２２までの処理と同様である。
【００８３】
図１４は、ＰＣ１００の構成を示すブロック図である。図１４に示すように、ＰＣ１００は、処理部１０１と、記憶部１０２と、通信部１０３とを備えている。処理部１０１は、図示しない制御手段としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＯＭおよびメインメモリとなるＲＡＭを有するメモリ群とを含んで構成されている。ＰＣ１００の起動・実行時には、ＲＯＭおよび記憶部１０２からアプリケーション１０４と、ＯＳ１０５と、各種ドライバ（図１４においては、プリンタドライバ１０６のみ記載）と、プリントプロセッサ１０７とが、メインメモリ上にロードされ展開されて、これらがＣＰＵにより実行される。
【００８４】
なお、ＰＣ１００は、キーボードやマウスなどの入力装置やディスプレイなどの出力装置等を備える通常のコンピュータを利用したハードウェア構成を有するが、図１４においては説明の簡潔化のため省略している。
【００８５】
図１４に示す処理部１０１内の機能ブロック（後述）は、プリンタ２００に対する印刷制御を実現するための主要部となる機能または手段である。
【００８６】
記憶部１０２は、様々な情報を記憶する記憶手段である。具体的にはＨＤＤ等である。記憶される情報には、プリンタドライバ１０６が有する機能を実現するための処理に関する情報（処理に用いる設定値や、設定値の変更をするための表示情報など、処理に必要なあらゆる情報）を定義した設定情報がある。
【００８７】
通信部１０３は、ネットワーク１８０を介して接続されたプリンタ２００と情報の送受信を行うネットワークＩ／Ｆである。
【００８８】
アプリケーション１０４は、ユーザが印刷指示をすることができるソフトウェア（例えば、ワードプロセッサ）とする。ユーザはアプリケーション１０４で編集したデータを印刷したい場合、アプリケーション１０４が、ユーザによる印刷指示を受け付ける。この場合、アプリケーション１０４は、単体でプリンタ２００に対する印刷データの生成を行わず、上記印刷指示に応じた印刷要求と共に、印刷対象の情報を、例えばＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）コールでＯＳ１０５のＧＤＩ１０５ａに渡す。
【００８９】
例えば、アプリケーション１０４は印刷データを作成する。図１５は、アプリケーション１０４により作成された印刷データの一例を示す図である。図１５に示すように、アプリケーション１０４は、１ページ目から順にページデータを生成している。
【００９０】
ＯＳ１０５は、ＰＣ１００のハードウェアとソフトウェアとを管理するプログラムである。ＯＳ１０５は、プログラムの起動、情報の読み込みや保存の制御等を行う。ＯＳのうち代表的なものとしては、ＭＳ  Ｗｉｎｄｏｗｓ（登録商標）等が知られている。また、ＯＳ１０５のＧＤＩ１０５ａは、アプリケーション１０４からＧＤＩコールで渡された設定情報を含む印刷要求と共に、印刷対象の情報（テキストデータ、グラフィック・データ、イメージ・データ等）を、ＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）コールでプリンタドライバ１０６に渡す。そして、プリンタドライバ１０６で生成された印刷データをスプーラ１０５ｂに蓄え、順次通信部１０３に供給してプリンタ２００に送る。
【００９１】
プリントプロセッサ１０７は、スプーラ１０５ｂからスプールされた印刷データを受け取る。また、プリントプロセッサ１０７は、アプリケーション１０４により受付けたユーザ指示に従って、印刷データに付加する描画データを生成する。
【００９２】
次に、プリントプロセッサ１０７の詳細を説明する。図１６は、プリントプロセッサ１０７の機能ブロック図である。図１６に示すように、プリントプロセッサ１０７は、生成部１０７ａと、送受信部１０７ｂを備える。
【００９３】
生成部１０７ａは、第１描画ページと第２描画ページを生成する。ここで、第１描画ページとは、印刷データが描画されたページであり、第２描画ページとは、印刷データ上に描画される描画データが描画されたページである。なお、生成部１０７ａは、第１描画ページについては、スプーラ１０５ｂからデスプールしたページデータをそのまま描画データとしてもよい。なお、ＵＩ部１０６ａにより、印刷データに付加する描画データが複数指定された場合、生成部１０７ａは、指定された複数の描画データをそれぞれ異なるページに描画して複数の第２描画ページを生成してもよい。また、この場合、生成部１０７ａは、指定された複数の描画データを１つのページに描画して１つの第２描画ページを生成してもよい。
【００９４】
ここで、生成部１０７ａによる第２描画ページを生成する例について説明する。図１７は、生成部１０７ａにより生成された第１描画ページおよび第２描画ページの一例を示す図である。
【００９５】
図１７では、生成部１０７ａは、１ページ目にスプーラ１０５ｂからデスプールした印刷データの１ページ目をリプレイし第１描画ページを生成する。そして、生成部１０７ａは、２ページ目に印刷データの１ページ目に付加する第２描画ページを印刷するページとして架空のページを用意し、用意した架空のページに描画データを載せて第２描画ページを生成する。
【００９６】
同様に、生成部１０７ａは、３ページ目にスプーラ１０５ｂからデスプールした印刷データの２ページ目をリプレイし第１描画ページを生成する。そして、生成部１０７ａは、４ページ目に印刷データの２ページ目に付加する第２描画データを印刷するページとして架空のページを用意し、用意した架空のページに描画データを載せて第２描画ページを生成する。また、生成部１０７ａは、５ページ目および６ページ目についても同様に、５ページ目に印刷データの３ページ目を、６ページ目に印刷データの３ページ目に付加する描画データを配置する。生成部１０７ａは、この処理を印刷データの最終ページに付加される描画データのページまで繰り返す。
【００９７】
なお、生成部１０７ａは、第２描画ページを複数生成した場合、第１描画ページに付加する描画データを第１描画ページに続くページに配置する。例えば、生成部１０７ａは、第２描画ページを２ページ生成した場合は、１ページ目に第１描画ページを生成し、２ページ目と３ページ目に第２描画ページの描画データを生成する。
【００９８】
送受信部１０７ｂは、第１描画ページの次に、第２描画ページを送信する送信部としての機能を有し、生成部１０７ａにより生成された第１描画ページおよび第２描画ページを所定のコマンドにより、ＧＤＩ１０５ａを介してプリンタドライバ１０６に送信する。
【００９９】
また、送受信部１０７ｂは、第１描画ページおよび第２描画ページをそれぞれ開始する指示、および第１描画ページおよび第２描画ページをそれぞれ終了する指示を、ＧＤＩ１０５ａを介してプリンタドライバ１０６に送信する。
【０１００】
ここで、送受信部１０７ｂによる描画ページを送信する際のコマンドの一例を説明する。図１８は、送受信部１０７ｂによるコマンド送信順序を示す図である。図１８に示すように、送受信部１０７ｂは、第１描画ページをプリンタドライバ１０６に送信するコマンドとして、ＧＤＩであるＧｄｉ  Ｓｔａｒｔ  Ｐａｇｅ  ＥＭＦ()関数、Ｇｄｉ  Ｐｌａｙ  Ｐａｇｅ  ＥＭＦ()関数、Ｇｄｉ  Ｅｎｄ  Ｐａｇｅ  ＥＭＦ()関数を順にＧＤＩ１０５ａにコールする。また、送受信部１０７ｂは、第２描画ページを送信するコマンドとして、ＧＤＩであるＧｄｉ  Ｓｔａｒｔ  Ｐａｇｅ  ＥＭＦ()関数、Ｔｅｘｔ  Ｏｕｔ()関数、Ｇｄｉ  Ｅｎｄ  Ｐａｇｅ  ＥＭＦ()関数を順にＧＤＩ１０５ａに送信する。
【０１０１】
次に、送受信部１０７ｂからコマンドを受信したＧＤＩ１０５ａが、プリンタドライバ１０６に送信するコマンド送信順序について説明する。図１９は、ＧＤＩ１０５ａにより送信される通常のコマンド送信順序を示す図である。通常は、ＧＤＩ１０５ａは、プリンタプロセッサ１０７から受信したコマンドどおりにプリンタドライバ１０６にコマンドを送信する。例えば、図１９に示すように、まず、１ページ目として、ＤＤＩであるＤｒｖ  Ｓｔａｒｔ  Ｐａｇｅ()関数をコールし、印刷データを送信し、Ｄｒｖ  Ｓｅｎｄ  Ｐａｇｅ()関数をコールする。次に、２ページ目として、Ｄｒｖ  Ｓｔａｒｔ  Ｐａｇｅ()関数をコールし、描画データを送信し、Ｄｒｖ  Ｓｅｎｄ  Ｐａｇｅ()関数をコールする。
【０１０２】
しかし、このように、ＧＤＩ１０５ａが通常のコマンド送信順序によりプリンタドライバ１０６にコマンドを送信すると、１ページ目に付加される２ページ目の描画データ（架空のページ）が、１ページ目のページと異なるページとして出力されてしまうこととなる。
【０１０３】
そこで、本実施の形態では、ＧＤＩ１０５ａは、２ページ目の描画データが１ページ目の印刷データ上に付加して出力されるようにコマンドの一部を実行し、一部をキャンセルする。
【０１０４】
図２０は、本実施の形態にかかるＧＤＩ１０５ａによるコマンド送信順序を示す図である。図２０に示すように、ＧＤＩ１０５ａは、１ページ目として、ＤＤＩであるＤｒｖ  Ｓｔａｒｔ  Ｐａｇｅ()関数のコールによりページを開始し、印刷データを送信する。ここで、ＧＤＩ１０５ａは、Ｄｒｖ  Ｓｅｎｄ  Ｐａｇｅ()関数、およびＤｒｖ  Ｓｔａｒｔ  Ｐａｇｅ()関数をコールする。ＧＤＩ１０５ａは、印刷データの送信に続いて、描画データを送信し、Ｄｒｖ  Ｓｅｎｄ  Ｐａｇｅ()関数をコールし、ページを終了する。
【０１０５】
これにより、第２描画ページが描画された架空のページは、新しいページとして送信されることがない。このため、第２描画ページが描画された架空のページは、第１描画ページに描画された印刷データと同一のページに印刷データ上に付加されることとなる。
【０１０６】
プリンタドライバ１０６は、プリントプロセッサ１０７からの指示に応じて印刷データおよび描画データをプリンタ２００に送信する。
【０１０７】
このように、プリントプロセッサ１０７は、Ｅｓｃａｐｅ関数を用いてコマンドをキャンセルする処理に変更することをプリンタドライバ１０６に通知する。プリンタドライバ１０６はこれに応答し、ＧＤＩ１０５ａから送信された印刷データのページ終了通知とプリントプロセッサ１０７が追加した架空のページのページ開始通知をキャンセルする。これにより、架空のページはプリンタ２００により出力されないこととなる。なお、生成部１０７ａにより第２描画ページが複数生成された場合は、プリンタドライバ１０６は、生成された第２描画ページ分の架空のページのページ開始をキャンセルすることとなる。
【０１０８】
次に、プリンタドライバ１０６の詳細を、図２１を用いて説明する。図２１は、プリンタドライバ１０６の機能ブロック図である。図２１に示すように、プリンタドライバ１０６は、ＵＩ部１０６ａと、描画部１０６ｂと、出力制御部１０６ｃと、送受信部１０６ｄとを備える。なお、本実施の形態では、プリンタドライバ１０６には、ベンダー開発用のモノリシックドライバが用いられる。
【０１０９】
ＵＩ部１０６ａは、ユーザによる印刷設定を受け付けるユーザインタフェース（ＵＩ）を制御する。
【０１１０】
描画部１０６ｂは、アプリケーション１０４で作成された印刷データをプリンタが理解可能な形式に変換する。例えば、描画部１０６ｂは、アプリケーション１０４からＥＭＦ形式で作成された印刷データを、ＲＡＷ形式に変換する。
【０１１１】
送受信部１０６ｄは、プリントプロセッサ１０７から第１描画ページおよび第２描画ページを、ＧＤＩ１０５ａを介して受信する。また、送受信部１０６ｄは、ＧＤＩ１０５ａからコマンドを受信する。
【０１１２】
また、送受信部１０６ｄは、第１描画ページおよび第２描画ページをそれぞれ開始する指示、および第１描画ページおよび第２描画ページをそれぞれ終了する指示を、ＧＤＩ１０５ａを介してプリントプロセッサ１０７から受信する受信部としての機能を有する。
【０１１３】
出力制御部１０６ｃは、プリントプロセッサ１０７から第１描画ページおよび第２描画ページを受信し、ＧＤＩ１０５ａから受信したコマンドに従って、第２描画ページを追加した第１描画ページをプリンタ２００に出力させる。例えば、出力制御部１０６ｃは、送受信部１０６ｄにより受信した第１描画ページの開始および第２描画ページの終了を実行し、第１描画ページの終了および第２描画ページの開始を実行しないことにより、第２描画ページを上から付加した第１描画ページをプリンタ２００に出力させる。
【０１１４】
図２２は、プリンタドライバ１０６からプリンタ２００に送信される出力ページの一例を示す図である。ここで、出力ページとは、プリンタ２００により印刷用紙１ページに印字される印刷データ（描画データを含む）が描画されたページである。図２２に示すように、プリンタドライバ１０６は、ＧＤＩ１０５ａから送信されたコマンドに従い、第１描画ページに描画された印刷データ上に第２描画ページに描画された描画データを追加した出力ページをプリンタ２００に送信する。
【０１１５】
次に、以上のように構成されたＰＣ１００による描画データが付加された印刷データの印刷処理の手順について説明する。図２３は、ＰＣ１００による描画データが付加された印刷データの印刷処理の流れを示すシーケンス図である。
【０１１６】
ステップＳ３０１からステップＳ３１０までの処理は、図７のシーケンス図で説明したステップＳ１０１からステップＳ１１０の処理と同様である。
【０１１７】
ステップＳ３１１において、プリントプロセッサ１０７は、ＧＤＩ１０５ａに印刷開始指示を送信する（ステップＳ３１１）。ここで、プリントプロセッサ１０７は、ＧＤＩ１０５ａにＥｘｔ  Ｅｓｃａｐｅ（）関数をコールする。これにより、プリントプロセッサ１０７は、ＧＤＩ１０５ａに描画データを含む印刷をする情報を通知する。
【０１１８】
ＧＤＩ１０５ａは、プリンタドライバ１０６に通知を送信する（ステップＳ３１２）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｅｓｃａｐｅ（）関数をコールし、これにより以降の動作を印刷データ上に描画データを付加する印刷処理に変更する。
【０１１９】
ステップＳ３１３からステップＳ３１６までの処理は、図７のシーケンス図で説明したステップＳ１１１、およびステップＳ１１３からステップＳ１１５までの処理と同様である。
【０１２０】
プリンタドライバ１０６は、ＧＤＩ１０５ａからのページ開始要求に応答して、ページ開始を実行する（ステップＳ３１７）。ここで、プリンタドライバ１０６は、ＧＤＩ１０５ａからのＤＤＩであるＤｒｖ  Ｓｔａｒｔ  Ｐａｇｅ（）関数を実行する。これにより、プリントプロセッサ１０７から送信された印刷ページ(奇数ページ)ではページ開始要求が実行されることとなる。
【０１２１】
ステップＳ３１８およびステップＳ３１９の処理は、図７のシーケンス図で説明したステップＳ１１６およびステップＳ１１７の処理と同様である。なお、ステップＳ３１８で、ＧＤＩ１０５ａは、プリンタドライバ１０６に印刷データを送信する。
【０１２２】
プリンタドライバ１０６は、Ｅｓｃａｐｅ関数を用いた変更通知に応答し、ＧＤＩ１０５ａからのページ終了要求をキャンセルし、ページ終了を行わない（ステップＳ３２０）。ここで、プリンタドライバ１０６は、プリントプロセッサ１０７から変更通知を受信したか否かに応じてコマンドのキャンセル等を行う。変更通知を受信したプリンタドライバ１０６は、ＧＤＩ１０５ａからのＤＤＩであるＤｒｖ  Ｓｅｎｄ  Ｐａｇｅ（）関数のコールをキャンセルする。
【０１２３】
これにより、プリンタドライバ１０６は、ステップＳ３１８で送信された印刷データが描画された出力ページは終了せず、続いて送信される描画データの受信を待つ。なお、プリントプロセッサ１０７からプリンタドライバ１０６に通知できる方法であれば他の方法、他の関数であってもよい。
【０１２４】
ステップＳ３２１からステップＳ３２３までの処理は、図１０のシーケンス図で説明したステップＳ１８１からステップＳ１８５までの処理と同様である。なお、ステップＳ３２１で、プリントプロセッサ１０７は描画ページが描画された架空のページをプリンタドライバ１０６に送信する。
【０１２５】
プリンタドライバ１０６は、ＧＤＩ１０５ａからのページ開始要求をキャンセルし、ページ開始を行わない（ステップＳ３２４）。ここで、プリンタドライバ１０６は、ＧＤＩ１０５ａからのＤＤＩであるＤｒｖ  Ｓｔａｒｔ  Ｐａｇｅ（）関数のコールをキャンセルする。これにより、プリンタドライバ１０６は、新たなページを開始しない。
【０１２６】
ステップＳ３２５からステップＳ３２７までの処理は、図９のシーケンス図で説明したステップＳ１５６およびステップＳ１５７の処理と同様である。なお、ＧＤＩ１０５ａはステップＳ３２５で描画データをプリンタドライバ１０６に送信する。プリンタドライバ１０６は、受信した描画データをステップＳ３１８で受信した印刷データを描画した出力ページ上に受信した描画データを付加する。
【０１２７】
ＧＤＩ１０５ａは、プリンタドライバ１０６にページ終了要求を送信する(ステップＳ３２７)。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｓｅｎｄ  Ｐａｇｅ（）関数をコールする。
【０１２８】
プリンタドライバ１０６は、ＧＤＩ１０５ａからのページ終了要求に応答し、ページ終了を実行する（ステップＳ３２８）。ここで、プリンタドライバ１０６は、ＧＤＩ１０５ａからのＤＤＩであるＤｒｖ  Ｓｅｎｄ  Ｐａｇｅ（）関数を実行する。プリンタドライバ１０６は、印刷データ上に描画データを付加した出力ページをプリンタ２００に出力する。
【０１２９】
ステップＳ３２９からステップＳ３３３までの処理は、図７のシーケンス図で説明したステップＳ１１８からステップＳ１２２の処理と同様である。
【０１３０】
このように、本実施の形態によれば、ＰＣは印刷データ上に描画データを付加する設定を受け付けた場合、プリンタプロセッサが印刷データが描画される第１描画ページと描画データが描画される第２描画ページを生成し、プリンタドライバは生成された２ページを受信順に上から付加して１ページに出力するので、描画データを印刷データの前面に付加して印刷することができる。
【０１３１】
（第２の実施の形態）
第１の実施の形態では、ＰＣ１００が備えるプリンタドライバは、モノシリックドライバが用いられた。これに対し、本実施の形態では、プリンタドライバに、マイクロソフト（登録商標）のフレームワークを利用した開発用のミニドライバが用いられる。
【０１３２】
まず、本実施の形態にかかるＰＣ３００の構成を説明する。なお、第２の実施の形態にかかる情報処理装置が接続された印刷システムの全体構成については、第１の実施の形態と同様である。図２４は、本実施の形態にかかるＰＣ３００の構成を示すブロック図である。図２４に示すように、ＰＣ３００は、処理部１０１と、記憶部１０２と、通信部１０３とを備えている。処理部１０１は、図示しない制御手段としてのＣＰＵと、ＲＯＭおよびメインメモリとなるＲＡＭを有するメモリ群とを含んで構成されている。ＰＣ３００の起動・実行時には、ＲＯＭおよび記憶部１０２からアプリケーション１０４と、ＯＳ１０５と、プリンタドライバ３０６と、プリントプロセッサ１０７とが、メインメモリ上にロードされ展開されて、これらがＣＰＵにより実行される。なお、プリンタドライバ３０６以外の各部の機能および構成は第１の実施の形態と同様であるので、説明を省略する。
【０１３３】
図２５は、プリンタドライバ３０６の機能ブロック図である。なお、本実施の形態では、プリンタドライバ３０６には、マイクロソフト（登録商標）のフレームワークを利用したミニドライバが用いられる。
【０１３４】
図２５に示すように、プリンタドライバ３０６は、ミニドライバであるＰｓｃｒｉｐｔドライバ３０７と、Ｐｓｃｒｉｐｔドライバ３０７に機能を追加するためのＰｓｃｒｉｐｔプラグイン３０８を備える。なお、ここでは、ミニドライバとしてＰｓｃｒｉｐｔドライバを用いる例を説明するが、ミニドライバはこれに限定されず、例えばＵｎｉｄｒｖ等であってもよい。
【０１３５】
まず、Ｐｓｃｒｉｐｔドライバ３０７は、ＵＩ部３０７ａと、描画部３０７ｂと、送受信部３０７ｃとを備える。
【０１３６】
ＵＩ部３０７ａは、ユーザによる印刷設定を受け付けるユーザインタフェース（ＵＩ）を制御する。
【０１３７】
描画部３０７ｂは、アプリケーション１０４で作成された印刷データをプリンタが理解可能な形式に変換する。例えば、描画部３０７ｂは、アプリケーション１０４からＥＭＦ形式で作成された印刷データを、ＲＡＷ形式に変換する。
【０１３８】
送受信部３０７ｃは、プリントプロセッサ１０７から第１描画ページおよび第２描画ページを、ＧＤＩ１０５ａを介して受信する。また、送受信部３０７ｃは、ＧＤＩ１０５ａからコマンドを受信する。
【０１３９】
また、Ｐｓｃｒｉｐｔプラグイン３０８は、ＵＩ部３０８ａと、描画部３０８ｂと、出力制御部３０８ｃと、送受信部３０８ｄとを備える。
【０１４０】
ＵＩ部３０８ａは、ユーザによる印刷設定を受け付けるユーザインタフェース（ＵＩ）を制御する。
【０１４１】
描画部３０８ｂは、アプリケーションで作成された印刷データをプリンタが理解可能な形式に変換する。例えば、描画部３０８ｂは、アプリケーションからＥＭＦ形式で作成された印刷データを、ＲＡＷ形式に変換する。
【０１４２】
送受信部３０８ｄは、プリントプロセッサ１０７から第１描画ページおよび第２描画ページを、Ｐｓｃｒｉｐｔドライバ３０７を介して受信する。また、送受信部３０８ｄは、ＧＤＩ１０５ａからコマンドを受信する。
【０１４３】
出力制御部３０８ｃは、Ｐｓｃｒｉｐｔドライバ３０７から第１描画ページおよび第２描画ページを受信し、Ｐｓｃｒｉｐｔドライバ３０７から受信したコマンドに従って、第２描画ページを追加した第１描画ページをプリンタ２００に出力させる。例えば、出力制御部３０８ｃは、ページ開始、第１描画ページ（印刷データ）の呼び出し、第２描画ページ（描画データ）の呼び出し、ページ終了の処理によりプリンタ２００に第２描画ページを付加した第１描画ページが描画された出力ページをプリンタ２００に出力させる。
【０１４４】
次に、以上のように構成されたＰＣ３００による描画データが付加された印刷データの印刷処理の手順について説明する。図２６は、ＰＣ３００による描画データが付加された印刷データの印刷処理の流れを示すシーケンス図である。
【０１４５】
ステップＳ３４１からステップＳ３５２までの処理は、図２３のシーケンス図で説明したステップＳ３０１からステップＳ３１２までの処理と同様である。なお、ステップＳ３４１からステップＳ３５２までの処理のうちＰｓｃｒｉｐｔドライバ３０７の処理は、図２３におけるプリンタドライバ１０６の処理に相当する。
【０１４６】
ステップＳ３５３において、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８に通知を送信する（ステップＳ３５３）。Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にＤＤＩであるｅｓｃａｐｅ（）関数をコールする。これにより、Ｐｓｃｒｉｐｔプラグイン３０８は以降の動作を印刷データ上に描画データを付加する印刷処理に変更する。
【０１４７】
ステップＳ３５４からステップＳ３５５までの処理は、図７のシーケンス図で説明したステップＳ１１１からステップＳ１１５までの処理と同様である。
【０１４８】
ステップＳ３５９において、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にページ開始要求を送信する（ステップＳ３５９）。ここで、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にＤＤＩであるｓｔａｒｔ  Ｐａｇｅ（）関数をコールする。Ｐｓｃｒｉｐｔプラグイン３０８は、Ｐｓｃｒｉｐｔドライバ３０７に応答し、ページ開始を実行する（ステップＳ３６０）。ここで、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にＤＤＩであるＤｒｖ  Ｓｔａｒｔ  Ｐａｇｅ（）関数をコールする。
【０１４９】
ステップＳ３６１およびステップＳ３６２の処理は、図２３のシーケンス図で説明したステップＳ３１８およびステップＳ３１９と同様である。
【０１５０】
Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にページ終了要求を送信する(ステップＳ３６３)。ここで、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にＤＤＩであるｓｅｎｄ  Ｐａｇｅ（）関数を送信する。
【０１５１】
ここで、Ｐｓｃｒｉｐｔプラグイン３０８は、Ｐｓｃｒｉｐｔドライバ３０７からのページ終了要求に応答せず、ページ終了を実行しない。
【０１５２】
ステップＳ３６４からステップＳ３６６までの処理は、図２３のシーケンス図で説明したステップＳ３２１からステップＳ３２３までの処理と同様である。
【０１５３】
ステップＳ３６７において、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にページ開始要求を送信する(ステップＳ３６７)。ここで、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にＤＤＩであるＳｔａｒｔ  Ｐａｇｅ（）関数をコールする。
【０１５４】
ここで、Ｐｓｃｒｉｐｔプラグイン３０８は、Ｐｓｃｒｉｐｔドライバ３０７からのページ開始要求に応答せず、ページ開始を実行しない。
【０１５５】
ステップＳ３６８からステップＳ３７０までの処理は、図２３のシーケンス図で説明したステップＳ３２５からステップＳ３２７までの処理と同様である。
【０１５６】
ステップＳ３７１において、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にページ終了要求を送信する。ここで、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にＤＤＩであるｓｅｎｄ  Ｐａｇｅ（）関数を送信する（ステップＳ３７１）。
【０１５７】
Ｐｓｃｒｉｐｔプラグイン３０８は、これに応答し、ページ終了を実行する（ステップＳ３７２）。ここで、Ｐｓｃｒｉｐｔプラグイン３０８は、Ｐｓｃｒｉｐｔドライバ３０７に、ＤＤＩであるＤｒｖ  Ｓｅｎｄ  Ｐａｇｅ（）関数をコールする（ステップＳ３７２）。
【０１５８】
ステップＳ３７３およびステップＳ３７４までの処理は、図２３のシーケンス図で説明したステップＳ３２９およびステップＳ３３０の処理と同様である。
【０１５９】
ステップＳ３７５において、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８に印刷終了準備要求を送信する（ステップＳ３７５）。ここで、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にＤＤＩであるｅｎｄ  Ｄｏｃ（）関数をコールする。
【０１６０】
ステップＳ３７６からステップＳ３７７、およびステップＳ３７９の処理は、図２３のシーケンス図で説明したステップＳ３３１からステップＳ３３３までの処理と同様である。
【０１６１】
ステップＳ３７８において、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８に印刷完了要求を送信する（ステップＳ３７８）。ここで、Ｐｓｃｒｉｐｔドライバ３０７は、Ｐｓｃｒｉｐｔプラグイン３０８にＤＤＩであるＤｉｓａｂｌｅ  ＰＤＥＶ（）関数をコールする。
【０１６２】
ステップＳ３１１において、プリントプロセッサ１０７は、ＧＤＩ１０５ａに印刷開始指示を送信する（ステップＳ３１１）。ここで、プリントプロセッサ１０７は、ＧＤＩにＥｘｔ  Ｅｓｃａｐｅ（）関数をコールし、これにより、プリントプロセッサ１０７からプリンタドライバ１０６に描画データを含む印刷をする情報を通知する。
【０１６３】
ＧＤＩ１０５ａは、プリンタドライバ１０６に通知を送信する（ステップＳ３１２）。ここで、ＧＤＩ１０５ａは、プリンタドライバ１０６にＤＤＩであるＤｒｖ  Ｅｓｃａｐｅ（）関数をコールし、これにより以降の動作を変更する。
【０１６４】
このように、本実施の形態によれば、ＰＣは印刷データ上に描画データを付加する設定を受け付けた場合、プリンタプロセッサが印刷データが描画される第１描画ページと描画データが描画される第２描画ページを生成し、Ｐｓｃｒｉｐｔプラグインは生成された２ページを受信順に上から付加して１ページに出力するので、描画データを印刷データの前面に付加して印刷することができる。
【０１６５】
次に、第１および第２の実施の形態にかかる情報処理装置のハードウェア構成について図２７を用いて説明する。図２７は、第１または第２の実施の形態にかかる情報処理装置のハードウェア構成を示す説明図である。
【０１６６】
第１または第２の実施の形態にかかる情報処理装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５１などの制御装置と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５２やＲＡＭ（ＲＡＮＤＯＭ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス６１を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１６７】
第１または第２の実施の形態にかかる情報処理装置で実行される印刷プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅｃｏｒｄａｂｌｅ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【０１６８】
また、第１または第２の実施の形態にかかる情報処理装置で実行される印刷プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１または第２の実施の形態にかかる情報処理装置で実行される印刷プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１６９】
また、第１または第２の実施の形態の印刷プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１７０】
第１または第２の実施の形態にかかる情報処理装置で実行される印刷プログラムは、上述した各部（生成部、描画部、出力制御部、送受信部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ５１（プロセッサ）が上記記憶媒体から印刷プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【符号の説明】
【０１７１】
１００、３００  情報処理装置
１０１  処理部
１０２  記憶部
１０３  通信部
１０４  アプリケーション
１０５  ＯＳ
１０６、３０６  プリンタドライバ
１０６ａ、３０８ａ  ＵＩ部
１０６ｂ、３０７ｂ、３０８ｂ  描画部
１０６ｃ、３０８ｃ  出力制御部
１０６ｄ、１０７ｂ、３０７ｃ、３０８ｄ  送受信部
１０７  プリントプロセッサ
１０７ａ  生成部
１８０  ネットワーク
２００ａ、２００ｂ  プリンタ
３０７  Ｐｓｃｒｉｐｔドライバ
３０８  Ｐｓｃｒｉｐｔプラグイン
【先行技術文献】
【特許文献】
【０１７２】
【特許文献１】特開２００２−３３３９５９号公報
【図１】
2012118824.tif 000003
【図２】
2012118824.tif 000004
【図３】
2012118824.tif 000005
【図４】
2012118824.tif 000006
【図５】
2012118824.tif 000007
【図６】
2012118824.tif 000008
【図７】
2012118824.tif 000009
【図８】
2012118824.tif 000010
【図９】
2012118824.tif 000011
【図１０】
2012118824.tif 000012
【図１１】
2012118824.tif 000013
【図１２】
2012118824.tif 000014
【図１３】
2012118824.tif 000015
【図１４】
2012118824.tif 000016
【図１５】
2012118824.tif 000017
【図１６】
2012118824.tif 000018
【図１７】
2012118824.tif 000019
【図１８】
2012118824.tif 000020
【図１９】
2012118824.tif 000021
【図２０】
2012118824.tif 000022
【図２１】
2012118824.tif 000023
【図２２】
2012118824.tif 000024
【図２３】
2012118824.tif 000025
【図２４】
2012118824.tif 000026
【図２５】
2012118824.tif 000027
【図２６】
2012118824.tif 000028
【図２７】
2012118824.tif 000029