説明

印刷制御方法

【課題】 パフォーマンスを低下させることなく、印刷データの内容に適した印刷方法で印刷を実行させることができる印刷制御装置及びその制御方法並びにプログラムを提供する。
【解決手段】 1ページ分の印刷データ中の描画命令によって描画される描画エリアの描画面積を算出する。その描画面積を印刷データの印刷方法を決定するための判定材料として用いる重みを示す係数を、前記描画命令に基づいて設定する。設定された係数を前記描画面積に乗じた仮想描画面積を算出する。印刷データ中の描画命令に対応する仮想描画面積と、1ページ分の印刷データの仮想基準面積とに基づいて、印刷データの印刷方法を決定する。決定した印刷方法を印刷装置に実行させる印刷制御コマンドを生成する。そして、その印刷制御コマンドを、印刷データに先立って、印刷装置へ出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷装置へ出力する印刷データと該印刷装置の印刷方法を制御する印刷制御コマンドとを生成する印刷制御システムを用いた印刷制御方法に関するものである。
【背景技術】
【0002】
従来、パフォーマンスを低下させることなく、印刷データの内容に適した印刷方法で印刷を実行するために下記のような方法を使用していた。まず、1ページ分の印刷データ中の描画命令によって、描画される描画エリアの描画面積を算出する。その描画面積を印刷データの印刷方法を決定するための判定材料として用いる重みを示す係数を前記描画命令に基づいて設定する。設定された係数を前記描画面積に乗じた仮想描画面積を算出する。印刷データ中の描画命令に対応する仮想描画面積と1ページ分の印刷データの仮想基準面積とに基づいて、印刷データの印刷方法を決定する。決定した印刷方法を印刷装置に実行させる印刷制御コマンドを生成する。そして、その印刷制御コマンドを、印刷データに先立って、印刷装置へ出力する(特許文献1参照)
【特許文献1】特開2005−322063号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記従来例では、プリンタの印刷マージンを考慮していないため、同じデータを印刷してもプリンタで印字可能なマージン領域が異なる場合、異なるパス数で印刷されてしまうという問題があった。それは第1に印刷する用紙外形毎に前記仮想基準面積が一定であったためであり、また第2に印刷マージンが変化した場合、アプリケーションから送られてくる描画命令が異なる場合が多いためである。
【課題を解決するための手段】
【0004】
上記問題点を解決するために、本発明では前記仮想基準面積をプリンタの印刷マージンに応じて変化させることで、適切な印刷パス数で印字可能にする確率を上昇させることが出来、結果として印刷データに応じて最適なパフォーマンスと品質を実現させることができる。
【発明の効果】
【0005】
本発明によれば、印刷マージンを考慮した仮想基準面積を作成し、描画命令ごとに仮想描画面積を算出、加算する。そして、ことにより、1ページに印刷されるデータ量と比較し、その比較結果から、印刷品位、印刷パス数を自動的に切り換えることにより、ユーザが印刷品位、印刷パス数を気にすることなく、データに適した印刷方法を自動的に選択し、効率の良い印刷を行うことができる。
【発明を実施するための最良の形態】
【0006】
図1は本発明を実施したシステムのブロック図である。C1はプリンタドライバを動作させるホストコンピュータである。C2はプリンタドライバである。C3は印刷データを保存しておく記憶装置である。C4は外部装置とのインターフェイスである。C5はプリンタ本体である。C6は外部装置とのインターフェイスである。C7はデータを受信する受信バッファである。C8はプリンタを制御する制御部である。C9は実際に印刷を行うプリンタエンジン部である。
【0007】
また、図2は本発明の特徴を最も良くあらわしているプリンタドライバ側の処理に関するフローチャートである。
【0008】
まず、係数テーブルを設定する(S2−1)。係数テーブルは、例えば、文字については、色としては黒が中心で、1文字1文字の描画面積が大きくないために、印刷品位を上げる必要は無いので、係数を0%に設定する。また、イメージ系のデータにおいては、描画面積も大きいことが予想され、なるべく高品位で印刷する必要があるので、係数を100%以上に設定する。図3に係数テーブルの概略図を示す。図3においては、描画命令1に対する係数をK[1]とし、描画命令2に対する係数をK[2]とし、描画命令nに対する係数をK[n](これ以降、nは各描画命令に対応する番号で1, 2, 3, ・・・とする)として設定している。具体的には、オペレーティングシステムがWindows(登録商標)2000の場合、テキスト描画命令として、DrvTextOutがあるが、ここでは係数を0%に設定し、またイメージ描画命令の1つにDrvStretchBltがあるが、ここでは係数を150%に設定するなど、個々の描画命令ごとに係数を設定する。
【0009】
印刷を開始し(S2−2)、ページ単位の処理がスタートする(S2−3)。ここで、ページ単位に仮想基準面積値を算出する。
【0010】
図4は仮想基準面積値を算出するためのフローチャートである。まず、プリンタドライバで設定した印刷マージンを取得する(S4−1)。次に取得した印刷マージンが一定値以下かどうかの判定を行う。(S4−2)オフィス文書は印刷するプリンタ毎に文書レイアウトが変わらないよう一定のマージン(余白)を設定している。そのため一定値以下の印刷マージンを設定してあった場合、そのマージンから基準面積を求めてしまうと最適な判定結果が得られない場合がある。よって一定値以下の場合既定の印刷マージンを仮想印刷マージンとしてセットを行い(S4−3)、本実施例においては例えば印刷マージンが5mm以下の場合はすべて印刷マージンが5mmとみなして、基準面積の計算を行う(S4−4)。次に基準面積比をP%として設定し、仮想基準面積を算出して(S4−5)係数テーブルのK[0]に設定する。一方、基準面積は図5のデータ外略図に示すように、印刷用紙外形から仮想印刷マージンを引いた値(0, 0)-(W, H)から取得する。なお、仮想基準面積値はA=K[0]×(W×H)とする(S2−4)。ここからページ単位の処理になる。
【0011】
オペレーティングシステムは、描画命令を通してドライバに印刷データを渡してくる。ドライバでは、初めに各描画命令別に渡ってきたデータの描画面積を算出する(S2−5)。ここでは単純に描画エリアの矩形領域を描画面積とする。例えば、図6のデータ概略図に示すように、描画命令1に対して、(Xs[1], Ys[1]) - (Xe[1], Ye[1])の矩形エリアのデータが渡されたとすると、描画面積はS[1]=(Xe[1]−Xs[1])×(Ye[1]−Ys[1])となり、描画命令2に対して、(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])となる。次に、各描画命令別に算出した描画面積に対して、印刷前に設定されていた係数テーブルから対応する描画命令の係数値を乗じ算出した仮想描画面積を各描画命令別の面積テーブルに加算していく(S2−6)。図7の面積テーブル概略図に示すように、面積テーブルをTとすると、描画命令1に対する面積テーブルT[1]には、S[1]×K[1]が加算されT[1]=T[1]+S[1]×K[1]となり、描画命令2に対する面積テーブルT[2]には、S[2]×K[2]が加算されT[2]=T[2]+S[2]×K[2]となり、描画命令nに対する面積テーブルT[n]には、S[n]×K[n]が加算されT[n]=T[n]+S[n]×K[n]となる。同時に全ての仮想描画面積を合計した値も保持しておく(S2−7)。例えば、面積テーブルTのT[0]を仮想描画面積の合計の格納場所とするとT[0]=T[0]+S[n]×K[n]として処理する。最後に描画データのラスタライズ処理を行い(S2−8)、これらの処理をページ描画終了命令がくるまで繰り返す(S2−9)。
【0012】
1ページ分の印刷データがドライバに渡り終えたときに、全ての仮想描画面積を合計した値T[0]と仮想基準面積値Aとを比較し(S2−10)、仮想描画面積の合計が仮想基準面積値Aを超えていた場合(A<T[0])には、そのページは、高品質で印刷を行いたいので、印刷品質を高品位に設定し、印刷パス数を増やして印刷させるための印刷コマンドをプリンタに出力する(S2−11)。
【0013】
その後、ラスタデータとして展開した印刷データをプリンタに送信する(S2−12)。一方、仮想描画面積の合計が仮想基準面積値を超えていなかった場合(A>T[0])には、そのページは、高品質に印刷するよりも印刷品質はそこそこに速く印刷したいので、印刷品質は低品位に設定し、印刷パス数を減らして高速に印刷させるための印刷コマンドを出力する(S2−13)。その後は同様に、ラスタデータとして展開された印刷データをプリンタに送信する(S2−12)。
【0014】
この処理をページデータが終了するまで繰り返す(S2−14)。
【0015】
このような処理を行うことによって、パフォーマンスを低下させること無くページ内のデータ比率を判別でき、判別結果に応じた印刷方法をページ単位に切り換えることができる。
【図面の簡単な説明】
【0016】
【図1】本発明を実施したシステムのブロック図である。
【図2】本発明の実施例1のフローチャートである。
【図3】本発明の実施例1の係数テーブル概略図である。
【図4】本発明の実施例1のフローチャートである。
【図5】本発明の実施例1のデータ概略図である。
【図6】本発明の実施例1のデータ概略図である。
【図7】本発明の実施例1の面積テーブル概略図である。
【符号の説明】
【0017】
C1 ホストコンピュータ
C2 プリンタドライバ
C3 記憶装置
C4 インターフェイス
C5 プリンタ本体
C6 インターフェイス
C7 受信バッファ
C8 制御部
C9 プリンタエンジン部

【特許請求の範囲】
【請求項1】
ページ単位に描画命令ごとの描画面積を算出する手段と、
描画命令ごとに係数を割り当てる手段と、
前記描画面積に前記係数を乗じた仮想描画面積を算出する手段と、前記仮想描画面積を加算していく手段と、
1ページ分加算された全描画命令分の前記仮想描画面積の合計と、ページ面積及びページ余白より算出した基準面積に予め設定された基準面積比を乗じた仮想基準面積と、の比較をする手段と、を有し、前記比較の結果に応じた印刷方法をページ単位に決定することを特徴とする印刷制御方法。
【請求項2】
ある時点において、前記仮想描画面積の合計と前記仮想基準面積値とを比較した結果、前記仮想描画面積の合計が前記仮想基準面積値を超えていた場合に、それ以降の描画面積の算出と、前記仮想描画面積の算出と、前記仮想描画面積の加算と、を行わないことを特徴とする請求項1記載の印刷制御方法。
【請求項3】
各描画命令に割り当てる前記係数と前記基準面積比とを係数テーブルとしてコントロールファイルに保持することを特徴とする請求項1記載の印刷制御方法。
【請求項4】
前記仮想基準面積は前記ページ余白が一定の範囲内の値であった場合に、前記ページ余白を一定と見なして前記仮想基準面積を算出することを特徴とする請求項1記載の印刷制御方法。
【請求項5】
前記コントロールファイル内に複数の前記係数テーブルを保持しており、動作環境を判別し、該動作環境に応じた係数テーブルを前記コントロールファイル内から取得することを特徴とする請求項3記載の印刷制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−181308(P2008−181308A)
【公開日】平成20年8月7日(2008.8.7)
【国際特許分類】
【出願番号】特願2007−13922(P2007−13922)
【出願日】平成19年1月24日(2007.1.24)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】