(57)【要約】【課題】ＸＰＳドライバを用いてＧＤＩアプリケーションが発行する印刷要求に基づく印刷を行うときに、印刷すべき情報が印刷可能領域からはみ出すことなく、印刷可能領域内に印刷されるようにする。【解決手段】ＸＰＳ文書を受け付けるステップ（Ｓ１１）と、受け付けたＸＰＳ文書を解析するステップ（Ｓ１２）と、解析の結果に基づいて、ＸＰＳ文書に印刷用紙の印刷可能領域外への印刷指示が含まれているか否かを判定するステップ（Ｓ１３）と、判定の結果、ＸＰＳ文書に前記印刷可能領域外への印刷指示が含まれているときは、ＸＰＳ文書に従って合成される印刷イメージを、印刷用紙の全領域が印刷可能領域内に収まるような倍率で縮小した縮小印刷イメージを合成するステップ（Ｓ１６）と、合成された縮小印刷イメージのデータをプリンタに対して出力して印刷を実行させるステップ（Ｓ１７）とを有する。【選択図】図３
2008276745.tif 000002
【特許請求の範囲】
【請求項１】
ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）規格に基づいてプリンタに印刷を実行させるＸＰＳドライバを備えた印刷制御装置であって、
前記ＸＰＳドライバは、
印刷文書を受け付ける手段と、
前記受け付けた印刷文書を解析する手段と、
前記解析の結果に基づいて、前記印刷文書に印刷用紙の印刷可能領域外への印刷指示が含まれているか否かを判定する手段と、
前記判定の結果、前記印刷文書に前記印刷可能領域外への印刷指示が含まれているときは、前記印刷文書に従って合成される印刷イメージを、前記印刷用紙の全領域が前記印刷可能領域内に収まるような倍率で縮小した縮小印刷イメージを合成する手段と、
前記合成された縮小印刷イメージのデータを出力し、前記プリンタに印刷を実行させる手段と、を備える印刷制御装置。
【請求項２】
ＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）を用いて印刷要求を発行するＧＤＩアプリケーションと、
前記ＧＤＩアプリケーションが発行した印刷要求を前記印刷文書に変換する手段と、をさらに備える請求項１記載の印刷制御装置。
【請求項３】
前記印刷文書の発行元が前記ＸＰＳ規格に基づいているか否かを判断する手段をさらに備え、
前記発行元が前記ＸＰＳ規格に基づいていると判断した場合には、前記判定と縮小印刷イメージの合成を行わずに印刷を行う請求項１記載の印刷制御装置。
【請求項４】
ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）文書に基づいてプリンタに印刷を実行させるＸＰＳドライバが行う方法であって、
印刷文書を受け付けるステップと、
前記受け付けた印刷文書を解析するステップと、
前記解析の結果に基づいて、前記印刷文書に印刷用紙の印刷可能領域外への印刷指示が含まれているか否かを判定するステップと、
前記判定の結果、前記印刷文書に前記印刷可能領域外への印刷指示が含まれているときは、前記印刷文書に従って合成される印刷イメージを、前記印刷用紙の全領域が前記印刷可能領域内に収まるような倍率で縮小した縮小印刷イメージを合成するステップと、
前記合成された縮小印刷イメージのデータを前記プリンタに対して出力して印刷を実行させるステップと、を有する印刷文書の印刷方法。
【請求項５】
ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）文書に基づいてプリンタに印刷を実行させるＸＰＳドライバのためのコンピュータプログラムであって、
印刷文書を受け付けるステップと、
前記受け付けた印刷文書を解析するステップと、
前記解析の結果に基づいて、前記印刷文書に印刷用紙の印刷可能領域外への印刷指示が含まれているか否かを判定するステップと、
前記判定の結果、前記印刷文書に前記印刷可能領域外への印刷指示が含まれているときは、前記印刷文書に従って合成される印刷イメージを、前記印刷用紙の全領域が前記印刷可能領域内に収まるような倍率で縮小した縮小印刷イメージを合成するステップと、
前記合成された縮小印刷イメージのデータを前記プリンタに対して出力して印刷を実行させるステップと、をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＸＰＳドライバを用いた印刷技術に関し、特にＧＤＩアプリからの印刷要求を適切に印刷する技術に関する。
【背景技術】
【０００２】
マイクロソフト社のＷｉｎｄｏｗｓＸＰ（商標または登録商標）では、プリンタやディスプレイを制御するためのＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）という仕様がある。
【０００３】
一方、マイクロソフト社のＷｉｎｄｏｗｓ  Ｖｉｓｔａ（商標または登録商標）では、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）という仕様が採用されている。
【０００４】
ところで、特許文献１には、（１）Ｗｉｎ３２アプリケーションからＧＤＩドライバへの印刷処理フロー、（２）ＷｉｎＦｘアプリケーションからＸＰＳプリンタドライバへの印刷処理フロー、（３）Ｗｉｎ３２アプリケーションからＸＰＳプリンタドライバへの印刷処理フロー、（４）ＷｉｎＦｘアプリケーションからＧＤＩドライバへの印刷処理フローの４つの印刷処理フローが記載されている。なお、この特許文献１は、本願の基礎出願の出願日（２００７年４月２日）時点では未公開である。
【特許文献１】特開２００７−２４９８５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ＧＤＩによる出力処理を行うＧＤＩアプリケーションは、印刷用紙の印刷可能領域Ｒ２（図２参照）を把握するために、ＧＤＩに対応したプリンタドライバ（以下、ＧＤＩドライバ）に対してＧｅｔＤｅｖｉｃｅＣａｐｓ（）関数を発行し、印刷可能領域Ｒ２のサイズを取得する。
【０００６】
これに対して、ＸＰＳ仕様のプリンタドライバであるＸＰＳドライバは、ＧｅｔＤｅｖｉｃｅＣａｐｓ（）関数に対しては、印刷用紙領域Ｒ１のサイズを返す仕様になっている。つまり、このことを分かっていない従来のＧＤＩアプリケーションはＧｅｔＤｅｖｉｃｅＣａｐｓ（）関数を発行し、ＸＰＳドライバからサイズを受け取ると、図２の印刷用紙全体の領域Ｒ１に印刷が可能であると理解する（現実の印刷可能領域はＲ２）。
【０００７】
このため、ＧＤＩアプリケーションはＸＰＳドライバに対して、現実の印刷可能領域Ｒ２からはみ出した領域に印刷画像を割り当てた印刷要求を発行することになる。これをＸＰＳドライバがそのままプリンタに印刷させれば、マージンＭの領域（印刷用紙領域Ｒ１と印刷可能領域Ｒ２との差の領域）に割り当てられた画像が印刷されない。
【０００８】
そこで、本発明の目的は、ＸＰＳドライバを用いてＧＤＩアプリケーションが発行する印刷要求に基づく印刷を行うときに、印刷すべき情報が印刷可能領域からはみ出すことなく、印刷可能領域内に印刷されるようにすることである。
【課題を解決するための手段】
【０００９】
本発明の一実施態様に従う印刷制御装置は、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）規格に基づいてプリンタに印刷を実行させるＸＰＳドライバを備えた印刷制御装置である。前記ＸＰＳドライバは、印刷文書を受け付ける手段と、前記受け付けた印刷文書を解析する手段と、前記解析の結果に基づいて、前記印刷文書に印刷用紙の印刷可能領域外への印刷指示が含まれているか否かを判定する手段と、前記判定の結果、前記印刷文書に前記印刷可能領域外への印刷指示が含まれているときは、前記印刷文書に従って合成される印刷イメージを、前記印刷用紙の全領域が前記印刷可能領域内に収まるような倍率で縮小した縮小印刷イメージを合成する手段と、前記合成された縮小印刷イメージのデータを出力し、前記プリンタに印刷を実行させる手段と、を備える印刷制御装置。
【００１０】
好適な実施形態では、ＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）を用いて印刷要求を発行するＧＤＩアプリケーションと、前記ＧＤＩアプリケーションが発行した印刷要求を前記印刷文書に変換する手段と、をさらに備えてもよい。
【００１１】
好適な実施形態では、前記印刷文書の発行元が前記ＸＰＳ規格に基づいているか否かを判断する手段をさらに備え、前記発行元が前記ＸＰＳ規格に基づいていると判断した場合には、前記判定と縮小印刷イメージの合成を行わずに印刷を行うようにしてもよい。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態に係る印刷システムについて、図面を参照して説明する。
【００１３】
図１は、本発明の一実施形態に係る印刷システムの構成図を示す。本システムは、同図に示すように、印刷制御装置１と、プリンタ３とを備える。
【００１４】
印刷制御装置１は、例えば汎用的なコンピュータシステムにより構成され、以下に説明する印刷制御装置１内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００１５】
印刷制御装置１は、ＸＰＳドライバ１０と、ＸＰＳアプリケーション（以下、ＸＰＳアプリ）５０と、ＧＤＩアプリケーション（以下、ＧＤＩアプリ）６０と、ＸＰＳコンバータ７０とを備える。
【００１６】
ＸＰＳアプリ５０は、ＸＭＬで記述されたＸＰＳ文書を生成して出力するアプリケーションである。例えば、ＸＰＳドライバ１０に対して印刷要求を送るときは、印刷すべき内容をＸＰＳ文書にして出力する。
【００１７】
ＧＤＩアプリ６０は、従来のＧＤＩによる印刷要求を出力する。すなわち、ＧＤＩアプリ６０は、ＧｅｔＤｅｖｉｃｅＣａｐｓ（）関数で取得したエリア内に印刷する画像を割り当てて印刷要求を生成する。
【００１８】
ＸＰＳコンバータ７０は、ＧＤＩアプリケーション６０がＧＤＩを用いて出力した印刷要求を、ＸＰＳ文書に変換する。
【００１９】
ＸＰＳドライバ１０は、ＸＰＳアプリ５０またはＧＤＩアプリ６０からＧｅｔＤｅｖｉｃｅＣａｐｓ（）関数の呼出を受けると、印刷用紙のサイズを返す。また、ＸＰＳドライバ１０は、ＸＰＳ文書を受け付け、これに含まれているＸＭＬ文を解析するＸＭＬ解析部１１と、ＸＰＳ文書に従って印刷イメージに展開する印刷イメージ合成部１３と、印刷可能領域判定部１５とを備える。
【００２０】
ＸＭＬ解析部１１は、ＸＰＳアプリ５０が作成したＸＰＳ文書またはＧＤＩアプリ６０の出力をＸＰＳコンバータ７０が変換したＸＰＳ文書を受け付ける。そして、ＸＭＬ解析部１１は、受け付けたＸＰＳ文書からＸＭＬ文を読み出して、ＸＭＬの解析を行う。例えば、ＸＰＳ文書には、ＸＭＬ文によって印刷用紙サイズ、複数の描画エレメントの内容及びその位置座標などが指定されている。ＸＭＬ解析部１１は、各描画エレメントについて、ＸＭＬ文を解釈する。なお、描画エレメントとは、例えば、文字、画像あるいは線画などの印刷すべきオブジェクトを指す。
【００２１】
印刷可能領域判定部１５は、ＸＰＳ文書に記述されている各描画エレメントが、プリンタが印刷可能な領域に収まっているか否かを判定する。
【００２２】
図２は、印刷用紙領域及び印刷可能領域について示す。
【００２３】
印刷用紙のサイズに応じて、印刷用紙全体を示す印刷用紙領域Ｒ１が定まる。また、それぞれの印刷用紙サイズごとに、プリンタが印刷できないマージンＭが存在し、マージンＭの内側の領域が印刷可能領域Ｒ２である。例えば、図中のＯを原点としたとき、印刷可能領域Ｒ２はＡ，ＢのＸ−Ｙ座標で特定される。
【００２４】
印刷可能領域判定部１５は、ＸＭＬ解析部１１の解析結果に従って、印刷可能領域Ｒ２からはみ出している描画エレメントの有無を判定する。例えば、この判定は、描画エレメントが割り当てられている位置の座標が、印刷可能領域Ｒ２の範囲であるＡ，ＢのＸ−Ｙ座標の範囲内であるか否かにより行う。
【００２５】
印刷イメージ合成部１３は、ＸＭＬ解析部１１の解析結果に従って描画エレメントを展開して、印刷すべき印刷イメージを合成する。例えば、印刷イメージ合成部１３は、ＸＭＬ解析部１１によって解析された各描画エレメントの描画位置に、文字、画像あるいは線画などのそれぞれの描画エレメントを割り当てて、印刷イメージを合成する。
【００２６】
また、印刷可能領域判定部１５によって、印刷可能領域Ｒ２からはみ出す描画エレメントが存在すると判定されたときは、印刷イメージ合成部１３は縮小された印刷イメージを合成する。例えば、印刷イメージ合成部１３は、ＸＰＳ文書のＸＭＬ文をそのまま展開した印刷イメージを合成した後、所定の縮小倍率でこの印刷イメージ全体を縮小してもよいし、ＸＰＳ文書のＸＭＬ文を展開するときに、縮小倍率考慮して縮小印刷イメージを合成してもよい。なお、この縮小倍率は、たとえば、印刷用紙領域Ｒ１の範囲がすべて印刷可能領域Ｒ２に入るように縮小する倍率である。この縮小倍率は、用紙サイズごとに定まり、印刷可能領域判定部１５が予め保持している。
【００２７】
図３は、上述したような構成を備える印刷システムで、印刷を実行するときの処理手順を示すフローチャートである。
【００２８】
まず、ＸＭＬ解析部１１がＸＰＳ文書を受け付ける（Ｓ１１）。そして、ＸＭＬ解析部１１は、受け付けたＸＰＳ文書から一つの描画エレメントについてのＸＭＬ文を取得して、そのＸＭＬ文におけるこの描画エレメントの描画位置を解析する（Ｓ１２）。印刷可能領域判定部１５は、ＸＭＬ解析部１１の解析結果に基づいて、この描画エレメントの描画開始位置及び終了位置の座標が、いずれも印刷可能領域Ｒ２内であるか否かを判定する（Ｓ１３）。
【００２９】
この描画エレメントが印刷可能領域Ｒ２外に出ていれば（Ｓ１３：Ｎｏ）、印刷イメージ合成部１３は、ＸＰＳ文書の全描画エレメントのＸＭＬ文を解釈して、これに従う印刷イメージを縮小した縮小印刷イメージを合成する（Ｓ１６）。
【００３０】
一方、この描画エレメントが印刷可能領域Ｒ２内であれば（Ｓ１３：Ｙｅｓ）、この描画エレメントがＸＰＳ文書に記述された描画エレメントのなかの、最後の描画エレメントであるか否かを判定する（Ｓ１４）。そして、最後の描画エレメントでない間は（Ｓ１４：Ｎｏ）、すべての描画エレメントについてステップＳ１２以降の処理を繰り返す。
【００３１】
すべての描画エレメントが印刷可能領域Ｒ２内であれば（Ｓ１４：Ｙｅｓ）、印刷イメージ合成部１３は、ＸＰＳ文書の全描画エレメントのＸＭＬ文を解釈して、これにそのまま従う印刷イメージを合成する（Ｓ１５）。
【００３２】
そして、印刷イメージ合成部１３が合成した印刷イメージをプリンタ３へ出力して印刷を実行する（Ｓ１７）。
【００３３】
なお、ＸＰＳドライバ１０は、受け付けたＸＰＳ文書がＸＰＳアプリ５０から送られてきたものか、ＸＰＳコンバータ７０から送られてきたものかを判別するようにしてもよい。これは、例えば、ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）関数の“ｈｄｃ”パラメータによって判断することができる。すなわち、“ｈｄｃ”パラメータが“ＩＮＶＡＬＩＤ＿ＨＡＮＤＬＥ＿ＶＡＬＵＥ”であるか否かによって、ＸＰＳ文書がＸＰＳアプリ５０から直接送信されたものであるか、あるいは、ＸＰＳコンバータ７０を介して送信されたものであるかを判定することができる。従って、ＸＰＳドライバ１０が印刷文書の発行元がＸＰＳアプリ５０であると判定したときは、ＸＰＳドライバ１０は、受け付けたＸＰＳ文書を処理するときに、ステップＳ１２〜Ｓ１４の判定を行うことなく、受信したＸＰＳ文書のＸＭＬ文を解釈して、縮小を行わずに、そのままのサイズの印刷イメージを合成するようにしてもよい。
【００３４】
次に、図４に示す本実施形態での印刷例について説明する。
【００３５】
ＧＤＩアプリ６０からの出力によってＸＰＳコンバータ７０が生成したＸＰＳ文書には、例えば、図４Ａ左に示すように、印刷可能領域Ｒ２の外側に印刷すべき文字などの情報がはみ出している場合がある。このとき、上述した実施形態によれば、印刷用紙領域Ｒ１を印刷可能領域Ｒ２に縮小した縮小印刷イメージ（図４Ａ右）が合成される。その結果、すべての描画エレメントが印刷可能領域Ｒ２内に収まって印刷される。
【００３６】
一方で、図４Ｂ左に示すＸＰＳアプリ５０が生成したＸＰＳ文書、及びＧＤＩアプリ６０で適切なマージン設定がされた印刷要求に基づいてＸＰＳコンバータ７０が生成したＸＰＳ文書のように、印刷可能領域Ｒ２の外側に印刷すべき文字などの情報がはみ出していない場合には、図４Ｂ右に示すように、そのまま縮小せずに印刷が行われる。
【００３７】
この結果、本実施形態に係る印刷システムでは、従来のＧＤＩアプリからの印刷要求であっても、適切に印刷を行うことができる。
【００３８】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施形態に係る印刷システムの構成図を示す。
【図２】印刷用紙領域及び印刷可能領域について示す。
【図３】印刷を実行するときの処理手順を示すフローチャートである。
【図４】本実施形態での印刷例を示す。
【符号の説明】
【００４０】
１           印刷制御装置
３           プリンタ
１０       ＸＰＳドライバ
１１       ＸＭＬ解析部
１３       印刷イメージ合成部
１５       印刷可能領域判定部
５０       ＸＰＳアプリ
６０       ＧＤＩアプリ
７０    ＸＰＳコンバータ
Ｍ      マージン
Ｒ１       印刷用紙領域
Ｒ２    印刷可能領域
【図１】
2008276745.tif 000003
【図２】
2008276745.tif 000004
【図３】
2008276745.tif 000005
【図４】
2008276745.tif 000006