(57)【要約】【課題】  パフォーマンスを低下させることなく、印刷データの内容に適した印刷方法で印刷を実行させることができる印刷制御装置及びその制御方法並びにプログラムを提供する。【解決手段】  １ページ分の印刷データ中の描画命令によって描画される描画エリアの描画面積を算出する。その描画面積を印刷データの印刷方法を決定するための判定材料として用いる重みを示す係数を、前記描画命令に基づいて設定する。設定された係数を前記描画面積に乗じた仮想描画面積を算出する。印刷データ中の描画命令に対応する仮想描画面積と、１ページ分の印刷データの仮想基準面積とに基づいて、印刷データの印刷方法を決定する。決定した印刷方法を印刷装置に実行させる印刷制御コマンドを生成する。そして、その印刷制御コマンドを、印刷データに先立って、印刷装置へ出力する。【選択図】  図２
2008181308.tif 000002
【特許請求の範囲】
【請求項１】
ページ単位に描画命令ごとの描画面積を算出する手段と、
描画命令ごとに係数を割り当てる手段と、
前記描画面積に前記係数を乗じた仮想描画面積を算出する手段と、前記仮想描画面積を加算していく手段と、
１ページ分加算された全描画命令分の前記仮想描画面積の合計と、ページ面積及びページ余白より算出した基準面積に予め設定された基準面積比を乗じた仮想基準面積と、の比較をする手段と、を有し、前記比較の結果に応じた印刷方法をページ単位に決定することを特徴とする印刷制御方法。
【請求項２】
ある時点において、前記仮想描画面積の合計と前記仮想基準面積値とを比較した結果、前記仮想描画面積の合計が前記仮想基準面積値を超えていた場合に、それ以降の描画面積の算出と、前記仮想描画面積の算出と、前記仮想描画面積の加算と、を行わないことを特徴とする請求項１記載の印刷制御方法。
【請求項３】
各描画命令に割り当てる前記係数と前記基準面積比とを係数テーブルとしてコントロールファイルに保持することを特徴とする請求項１記載の印刷制御方法。
【請求項４】
前記仮想基準面積は前記ページ余白が一定の範囲内の値であった場合に、前記ページ余白を一定と見なして前記仮想基準面積を算出することを特徴とする請求項１記載の印刷制御方法。
【請求項５】
前記コントロールファイル内に複数の前記係数テーブルを保持しており、動作環境を判別し、該動作環境に応じた係数テーブルを前記コントロールファイル内から取得することを特徴とする請求項３記載の印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置へ出力する印刷データと該印刷装置の印刷方法を制御する印刷制御コマンドとを生成する印刷制御システムを用いた印刷制御方法に関するものである。
【背景技術】
【０００２】
従来、パフォーマンスを低下させることなく、印刷データの内容に適した印刷方法で印刷を実行するために下記のような方法を使用していた。まず、１ページ分の印刷データ中の描画命令によって、描画される描画エリアの描画面積を算出する。その描画面積を印刷データの印刷方法を決定するための判定材料として用いる重みを示す係数を前記描画命令に基づいて設定する。設定された係数を前記描画面積に乗じた仮想描画面積を算出する。印刷データ中の描画命令に対応する仮想描画面積と１ページ分の印刷データの仮想基準面積とに基づいて、印刷データの印刷方法を決定する。決定した印刷方法を印刷装置に実行させる印刷制御コマンドを生成する。そして、その印刷制御コマンドを、印刷データに先立って、印刷装置へ出力する（特許文献１参照）
【特許文献１】特開２００５−３２２０６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来例では、プリンタの印刷マージンを考慮していないため、同じデータを印刷してもプリンタで印字可能なマージン領域が異なる場合、異なるパス数で印刷されてしまうという問題があった。それは第１に印刷する用紙外形毎に前記仮想基準面積が一定であったためであり、また第２に印刷マージンが変化した場合、アプリケーションから送られてくる描画命令が異なる場合が多いためである。
【課題を解決するための手段】
【０００４】
上記問題点を解決するために、本発明では前記仮想基準面積をプリンタの印刷マージンに応じて変化させることで、適切な印刷パス数で印字可能にする確率を上昇させることが出来、結果として印刷データに応じて最適なパフォーマンスと品質を実現させることができる。
【発明の効果】
【０００５】
本発明によれば、印刷マージンを考慮した仮想基準面積を作成し、描画命令ごとに仮想描画面積を算出、加算する。そして、ことにより、１ページに印刷されるデータ量と比較し、その比較結果から、印刷品位、印刷パス数を自動的に切り換えることにより、ユーザが印刷品位、印刷パス数を気にすることなく、データに適した印刷方法を自動的に選択し、効率の良い印刷を行うことができる。
【発明を実施するための最良の形態】
【０００６】
図１は本発明を実施したシステムのブロック図である。C1はプリンタドライバを動作させるホストコンピュータである。C2はプリンタドライバである。C3は印刷データを保存しておく記憶装置である。C4は外部装置とのインターフェイスである。C5はプリンタ本体である。C6は外部装置とのインターフェイスである。C7はデータを受信する受信バッファである。C8はプリンタを制御する制御部である。C9は実際に印刷を行うプリンタエンジン部である。
【０００７】
また、図２は本発明の特徴を最も良くあらわしているプリンタドライバ側の処理に関するフローチャートである。
【０００８】
まず、係数テーブルを設定する（S２−１）。係数テーブルは、例えば、文字については、色としては黒が中心で、1文字1文字の描画面積が大きくないために、印刷品位を上げる必要は無いので、係数を0%に設定する。また、イメージ系のデータにおいては、描画面積も大きいことが予想され、なるべく高品位で印刷する必要があるので、係数を100%以上に設定する。図３に係数テーブルの概略図を示す。図３においては、描画命令１に対する係数をK[1]とし、描画命令２に対する係数をK[2]とし、描画命令ｎに対する係数をK[n]（これ以降、nは各描画命令に対応する番号で1, 2, 3, ・・・とする）として設定している。具体的には、オペレーティングシステムがWindows（登録商標）2000の場合、テキスト描画命令として、DrvTextOutがあるが、ここでは係数を0%に設定し、またイメージ描画命令の1つにDrvStretchBltがあるが、ここでは係数を150%に設定するなど、個々の描画命令ごとに係数を設定する。
【０００９】
印刷を開始し（S２−２）、ページ単位の処理がスタートする（S２−３）。ここで、ページ単位に仮想基準面積値を算出する。
【００１０】
図４は仮想基準面積値を算出するためのフローチャートである。まず、プリンタドライバで設定した印刷マージンを取得する（Ｓ４−１）。次に取得した印刷マージンが一定値以下かどうかの判定を行う。（Ｓ４−２）オフィス文書は印刷するプリンタ毎に文書レイアウトが変わらないよう一定のマージン（余白）を設定している。そのため一定値以下の印刷マージンを設定してあった場合、そのマージンから基準面積を求めてしまうと最適な判定結果が得られない場合がある。よって一定値以下の場合既定の印刷マージンを仮想印刷マージンとしてセットを行い（Ｓ４−３）、本実施例においては例えば印刷マージンが５ｍｍ以下の場合はすべて印刷マージンが５ｍｍとみなして、基準面積の計算を行う（Ｓ４−４）。次に基準面積比をP%として設定し、仮想基準面積を算出して（Ｓ４−５）係数テーブルのK[0]に設定する。一方、基準面積は図５のデータ外略図に示すように、印刷用紙外形から仮想印刷マージンを引いた値(0, 0)-(W, H)から取得する。なお、仮想基準面積値はA＝K[0]×(W×H)とする（S２−４）。ここからページ単位の処理になる。
【００１１】
オペレーティングシステムは、描画命令を通してドライバに印刷データを渡してくる。ドライバでは、初めに各描画命令別に渡ってきたデータの描画面積を算出する（S２−５）。ここでは単純に描画エリアの矩形領域を描画面積とする。例えば、図６のデータ概略図に示すように、描画命令１に対して、(Xs[1], Ys[1]) - (Xe[1], Ye[1])の矩形エリアのデータが渡されたとすると、描画面積はS[1]＝(Xe[1]−Xs[1])×(Ye[1]−Ys[1])となり、描画命令２に対して、(Xs[1], Ys[1]) - (Xe[1], Ye[1])の矩形エリアのデータが渡されたとすると、描画面積はS[2]＝(Xe[2]−Xs[2])×(Ye[2]−Ys[2])となり、描画命令nに対して、(Xs[n], Ys[n]) - (Xe[n], Ye[n])の矩形エリアのデータが渡されたとすると、描画面積はS[n]＝(Xe[n]−Xs[n])×(Ye[n]−Ys[n])となる。次に、各描画命令別に算出した描画面積に対して、印刷前に設定されていた係数テーブルから対応する描画命令の係数値を乗じ算出した仮想描画面積を各描画命令別の面積テーブルに加算していく（S２−６）。図７の面積テーブル概略図に示すように、面積テーブルをTとすると、描画命令１に対する面積テーブルT[1]には、S[1]×K[1]が加算されT[1]＝T[1]＋S[1]×K[1]となり、描画命令２に対する面積テーブルT[2]には、S[2]×K[2]が加算されT[2]＝T[2]＋S[2]×K[2]となり、描画命令ｎに対する面積テーブルT[n]には、S[n]×K[n]が加算されT[n]＝T[n]＋S[n]×K[n]となる。同時に全ての仮想描画面積を合計した値も保持しておく（S２−７）。例えば、面積テーブルTのT[0]を仮想描画面積の合計の格納場所とするとT[0]＝T[0]＋S[n]×K[n]として処理する。最後に描画データのラスタライズ処理を行い（Ｓ２−８）、これらの処理をページ描画終了命令がくるまで繰り返す（S２−9）。
【００１２】
1ページ分の印刷データがドライバに渡り終えたときに、全ての仮想描画面積を合計した値T[0]と仮想基準面積値Aとを比較し（S２−１０）、仮想描画面積の合計が仮想基準面積値Ａを超えていた場合（A＜T[0]）には、そのページは、高品質で印刷を行いたいので、印刷品質を高品位に設定し、印刷パス数を増やして印刷させるための印刷コマンドをプリンタに出力する（S２−１１）。
【００１３】
その後、ラスタデータとして展開した印刷データをプリンタに送信する（S２−１２）。一方、仮想描画面積の合計が仮想基準面積値を超えていなかった場合（A＞T[0]）には、そのページは、高品質に印刷するよりも印刷品質はそこそこに速く印刷したいので、印刷品質は低品位に設定し、印刷パス数を減らして高速に印刷させるための印刷コマンドを出力する（S２−１３）。その後は同様に、ラスタデータとして展開された印刷データをプリンタに送信する（S２−１２）。
【００１４】
この処理をページデータが終了するまで繰り返す（Ｓ２−１４）。
【００１５】
このような処理を行うことによって、パフォーマンスを低下させること無くページ内のデータ比率を判別でき、判別結果に応じた印刷方法をページ単位に切り換えることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明を実施したシステムのブロック図である。
【図２】本発明の実施例１のフローチャートである。
【図３】本発明の実施例１の係数テーブル概略図である。
【図４】本発明の実施例１のフローチャートである。
【図５】本発明の実施例１のデータ概略図である。
【図６】本発明の実施例１のデータ概略図である。
【図７】本発明の実施例１の面積テーブル概略図である。
【符号の説明】
【００１７】
C1  ホストコンピュータ
C2  プリンタドライバ
C3  記憶装置
C4  インターフェイス
C5  プリンタ本体
C6  インターフェイス
C7  受信バッファ
C8  制御部
C9  プリンタエンジン部
【図１】
2008181308.tif 000003
【図２】
2008181308.tif 000004
【図３】
2008181308.tif 000005
【図４】
2008181308.tif 000006
【図５】
2008181308.tif 000007
【図６】
2008181308.tif 000008
【図７】
2008181308.tif 000009