JP4280606B2 - 画像形成制御装置及びその制御方法とプリンタドライバ及び印刷制御装置および印刷制御方法 - Google Patents

画像形成制御装置及びその制御方法とプリンタドライバ及び印刷制御装置および印刷制御方法 Download PDF

Info

Publication number
JP4280606B2
JP4280606B2 JP2003383042A JP2003383042A JP4280606B2 JP 4280606 B2 JP4280606 B2 JP 4280606B2 JP 2003383042 A JP2003383042 A JP 2003383042A JP 2003383042 A JP2003383042 A JP 2003383042A JP 4280606 B2 JP4280606 B2 JP 4280606B2
Authority
JP
Japan
Prior art keywords
resolution
spool
drawing data
printer
printer driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003383042A
Other languages
English (en)
Other versions
JP2005148954A (ja
Inventor
美明 友松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2003383042A priority Critical patent/JP4280606B2/ja
Publication of JP2005148954A publication Critical patent/JP2005148954A/ja
Application granted granted Critical
Publication of JP4280606B2 publication Critical patent/JP4280606B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)

Description

本発明は、文字、図形等を含む描画データをラスタイメージデータに展開して画像形成する画像形成制御装置及びその制御方法、プリンタドライバと印刷制御装置に関するものである。
ホストコンピュータから送られてくるラスタイメージに基づいて、プリンタ装置によりプリントを行うプリントシステムが知られている。このホストコンピュータにおけるラスタイメージの展開に際しては、ホストコンピュータのアプリケーションソフトウェア(以下、単にアプリケーション)により作成された文字、グラフィックス、写真などのデータは、一旦、ホストコンピュータの仮想的なページメモリに展開される。
また、このようなラスタイメージデータへの展開時には、アプリケーションは、テキストデータについては文字種、キャラクタコードなどに加えて、その出力位置を示す座標情報を出力する。またグラフィックデータについては、形状などの種別、色、座標情報を出力し、また写真などのイメージ画像についてはオリジナル画像と出力先のサイズを出力する。
また、プリンタドライバは、ユーザインタフェースドライバを有しており、アプリケーションからオペレーションシステム(以下、OS)の描画エンジンを介して描画データをスプールする際に、ユーザインタフェースドライバがスタンプ等の付加描画データを追加することが可能になっている(例えば、特許文献1)。
特開2002−333959号公報
しかし、近年のアプリケーションの高機能化などに伴って、アプリケーションにより生成されるデータが複雑になってきている。従って、プリンタ装置やプリンタドライバの機能によっては、アプリケーションより受け取ったデータを正しく解釈してイメージデータに展開できない場合が発生する。このため一部のアプリケーションには、その作成したテキストデータ、グラフィックデータ等をプリンタ装置に出力する際、そのアプリケーションによりプリンタ装置のレンダリング解像度に応じたイメージデータに展開してから印刷を行うものがある。このようなアプリケーションでは、そのイメージ展開したデータをスプールする場合、そのスプールデータのサイズが非常に大きくなり、ハードディスクやメモリを圧迫するという問題が発生している。
特に近年、プリンタの高画質化に伴うレンダリング解像度が益々高解像度になっているため、スプールデータのサイズがより大きくなり、アプリケーションやOSの描画エンジンのスプーラ内部でエラーが発生してしまい、正常にイメージに展開できなくなるという問題が発生している。その結果、レンダリング解像度を上げることもできずプリンタ装置の高画質化にとって障害となっている。
この問題を解決すべく、本出願人によりOSの描画エンジンによりスプーラ内部に描画データをスプールする場合と、スプールされている描画データをプリントプロセッサによりデスプール(読み出す)場合とで、プリンタドライバが指定する解像度を変更することで、スプーラ内部にスプールされる描画データのサイズを減らす仕組みが考えられている。この仕組みは、OSの描画エンジンが描画データをスプールする際にプリンタドライバに解像度をAPIを用いて問い合わせる際に、本来の印刷解像度よりも小さい解像度を返値として渡すことにより実現することが可能である。しかし、このようなプリンタドライバは、プリンタ開発会社にプリンタドライバ全体の開発が許されているモノレシックプリンタドライバと呼ばれるプリンタドライバに限り実現可能である。これに対して、OSを開発しているOS開発会社、例えば、米国マイクロソフト社が、各プリンタ開発会社に共通のユニバーサルプリンタドライバを開発し、各プリンタ開発会社が独自の印刷設定を行うためのグラフィックプラグイン(ミニドライバとも呼ばれる)を開発してなるシステムでは、上述した仕組みを適用することができない。
本発明は上記従来例に鑑みてなされたもので、ユニバーサルプリンタドライバを用いた印刷システムにおいて、画像形成デバイスにラスタイメージデータを出力するためのスプールファイルのサイズを小さくし、かつ高品位の画像を形成できる画像形成制御装置及びその制御方法、プリンタドライバと印刷制御装置を提供することを目的とする。
本発明の画像形成制御装置は以下のような構成を備える。即ち、
画像形成に使用する画像形成用デバイスに対応する画像形成条件を記述するGDPファイルと、
アプリケーションプログラムにより作成され描画データの解像度を低下させるかどうかを判定する判定手段と、
前記判定手段により解像度を低下させると判定した場合に、前記判定手段により解像度を低下させないと判定された場合よりも解像度が低下された描画データを前記アプリケーションプログラムに作成させるためのプリンタ情報を前記アプリケーションプログラムに通知する通知手段と、
前記アプリケーションプログラムが前記通知手段により通知されたプリンタ情報に従って作成した、前記解像度を低下させないと判定された場合よりも解像度が低下された描画データをスプールするスプール手段と、
画像形成時、前記スプール手段によりスプールされた前記描画データを前記GDPファイルに含まれる前記画像形成用デバイスの解像度の描画データに変換する変換手段と、
前記変換手段により変換された描画データに基づいて生成された画像形成ジョブを前記画像形成用デバイスに出力して画像形成させるように制御する画像形成制御手段と、を有することを特徴とする。
また本発明の印刷制御装置は以下のような構成を備える。即ち、
スプールデータの軽減が指示されている場合に、印刷対象のプリンタ装置の第1解像度よりも低い解像度の第2解像度を設定する解像度設定手段と、
アプリケーションから描画データを受け取って前記第2解像度で前記描画データをスプールするスプール手段と、
前記スプール手段によりスプールされている描画データの印刷が指示されると、前記スプール手段によりスプールされている描画データを前記第1解像度でイメージデータに展開する展開手段と、
前記展開手段により展開されたイメージデータを前記プリンタ装置に送信して印刷させる手段とを有することを特徴とする。
また本発明の印刷制御方法は以下のような工程を備える。即ち、
印刷装置で印刷すべき印刷データを生成する情報処理装置における印刷制御方法であって、
ユニバーサルプリンタドライバからレンダリングプラグインが呼び出された場合に、この呼び出しがスプールファイルのスプール時の呼び出しであるか、スプールファイルのデスプール時の呼び出しであるかを判定する判定工程と、
スプール軽減モードが設定されているかを判断する判断工程と、
前記判断工程でスプール軽減モードが設定されていると判断され、前記判定工程でスプールファイルのスプール時の呼び出しであると判定された場合、アプリケーションプログラムに解像度情報を通知するために、レンダリングプラグインからユニバーサルプリンタドライバに対して、印刷時の第1解像度よりも低い第2解像度を通知する第1通知工程と、
前記判定工程でスプールファイルのデスプール時の呼び出しであると判定された場合に、レンダリングプラグインからユニバーサルプリンタドライバに対して、スプールファイルのデスプール解像度として、印刷時の第1解像度を通知する第2通知工程とを有することを特徴とする。
また本発明のプリンタドライバは以下のような構成を備える。即ち、
アプリケーションプログラムからの初期化指示に応答するプリンタ情報に含まれる解像度を、印刷対象のプリンタの第1解像度よりも低い第2解像度に設定する解像度設定手段と、
アプリケーションプログラム以外からの初期化指示に応答して、前記プリンタの前記第1解像度を含むプリンタ情報を返送する返送手段と、
前記第2解像度でスプールされている描画データを受取り、前記第1解像度のラスタイメージデータに変換する変換手段と、
前記変換手段により変換したイメージデータを前記プリンタに送信して印刷させる印刷制御手段とを有することを特徴とする。
更に、本発明の画像形成制御方法は以下のような工程を備える。即ち、
描画データをイメージデータに展開する展開工程と、
アプリケーションプログラムにより作成され描画データの解像度を低下させるかどうかを判定する判定工程と、
前記判定工程で解像度を低下させると判定した場合に、前記判定工程で解像度を低下させないと判定された場合よりも解像度が低下された描画データを前記アプリケーションプログラムに作成させるためのプリンタ情報を前記アプリケーションプログラムに通知する通知工程と、
前記アプリケーションプログラムが前記通知工程で通知されたプリンタ情報に従って作成した、前記解像度を低下させないと判定された場合よりも解像度が低下された描画データをスプールするスプール工程と、
画像形成時、前記スプール工程でスプールされた前記描画データを、画像形成に使用する画像形成用デバイスに対応する画像形成条件を記述するGDPファイルに含まれる前記画像形成用デバイスの解像度の描画データに変換する変換工程と、
前記変換工程で変換された描画データに基づいて生成された画像形成ジョブを前記画像形成用デバイスに出力して画像形成させるように制御する画像形成制御工程とを有することを特徴とする。
本発明によれば、ユニバーサルプリンタドライバを用いた印刷システムにおいても、画像形成デバイスにラスタイメージデータを出力するためのスプールファイルのサイズを小さくし、かつ高品位の画像を形成できるという効果がある。
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
図1は、本発明の実施の形態に係る印刷システムの概略構成例を示す図である。尚、この図1で示される実施の形態として、例えば一般的に普及しているパーソナルコンピュータにMicrosoft社のWindows(登録商標、以下略)をオペレーティングシステム(OS)として使用し、印刷処理機能を有する任意のアプリケーション101をインストールし、更に、このコンピュータにプリンタ108を接続した形態が考えられる。
ここで、このコンピュータがプリンタ108にデータを出力する際には、コンピュータのプリンタドライバ103がプリンタ108に応じたデータを作成する。このプリンタドライバ103には幾つかの形態が考えられるが、ここでは、Windowsで提供されるユニバーサルプリンタドライバ109を用いる場合で説明する。このプリンタドライバ103は、各プリンタ108に対応する用紙種類や解像度などの設定可能な各設定値を含む機種情報が記述されたGPDファイル111と、ユニバーサルプリンタドライバ109に情報を提供したり、ユニバーサルプリンタドライバ109の一部の機能を代替するプログラムであるレンダリングplug-in110とを具備している。GPDファイル111およびレンダリングplug-in110は、プリンタ開発会社が作成し、OS開発会社に提供することで、Windowsと共に各ユーザに提供される。また、レンダリングplug-in110は、各プリンタ固有の印刷属性を設定するためのモジュールである。
アプリケーション101が印刷要求した描画データ(文書データ、画像データ等の印刷データ)は、グラフィックデバイス・インターフェース(Graphics Device Interface:以下、「GDI」)102経由でプリンタドライバ103へ印刷要求として出力される。GDI102は、通常、一旦、そのデータをEMF(Enhanced Meta File)データとしてスプールファイル104にスプールし、そのスプールが終了すると、プリントプロセッサ105に印刷要求を発行する。これによりプリントプロセッサ105は、スプールファイル104から印刷出力情報と描画データをページ単位で読み込み、1ページずつGDI102を介してプリンタドライバ103に出力して印刷するように要求する。
このプリントプロセッサ105は、スプールファイル104にスプールされている描画データをプリンタドライバ103に出力する際、プリンタドライバ103から出力されるラスタイメージデータの解像度に合わせて座標情報を変換する機能がある。尚、このプリントプロセッサ105は、OSのモジュールとして用意されているが、プリンタ108のメーカ等がカスタマイズしたプリントプロセッサ105をレンダリングplug-in110、GPDファイル111とともに供給し、それらをハードディスクにインストールするようにしてもよい。こうしてプリントプロセッサ105から印刷が要求されたプリンタドライバ103は、GDIレンダリングエンジン107を用いて、その描画データをラスタイメージデータにレンダリングした後、色処理やプリンタコマンドの付加などを行い、ポートモニタ106経由でプリンタ108に送信する。
このスプールファイル104は、アプリケーション101が印刷を要求しているコマンド或いはビットマップイメージ等をファイルとして保存している。この際、通常、文字については、文字種、文字列のキャラクタコードと座標情報などが保存され、写真などのイメージでは、オリジナル画像情報と座標情報とが保存されている。これらキャラクタ、グラフィック及びイメージデータは、プリンタドライバ103でレンダリングされてプリンタ108の解像度に応じたラスタイメージデータに変換される。そのため、最近のプリンタ108における高画質化に伴う高解像度化においても、スプールファイル104のファイルサイズは大きくならず問題とならなかった。
しかし、その描画データが複雑なデータ等の場合には、プリンタ108やプリンタドライバ103の機能によっては正常に印刷できないことがある。このため、アプリケーション101によっては、レンダリングをアプリケーション101で行い、その結果であるラスタイメージをプリンタドライバ103に出力するものがある。このような場合、通常、アプリケーション101からはプリンタドライバ103におけるレンダリング処理を行う場合と同じ解像度で、ページの画像全体をラスタイメージに変換して出力するため、ラスタイメージデータの解像度(プリンタ108の解像度)の増加とともにスプールファイル104自体も巨大化してしまう。
図2は、印刷対象の各用紙サイズ及びプリンタ108の各レンダリング解像度に対する、1ページ分のスプールファイル104のサイズの一例を示した図である。
図2は、用紙サイズ及び解像度に対応して、1ページ分のスプールファイル104の容量を示しており、ここではA4,B4,A3判のそれぞれに対する各解像度(600,720,1200dpi)でのスプールデータのデータ容量が、それぞれメガバイトの単位で表わされている。当然、複数ページがスプールされた場合には、スプールファイル104の必要な容量は更に大きくなる。このようにしてスプールファイル104のサイズが大きくなると、印刷に要する時間が長くなるだけでなく、ハードディスクの容量不足でスプールエラーが発生したり、扱うラスタイメージデータが巨大化することから、アプリケーション101やスプーラ内部でメモリエラー等が発生したりして、正常に印刷されないという問題が発生する。
このような事態に対する対処法としては、レンダリングの印刷解像度を下げる、即ち、ラスタイメージの解像度を下げることも考えられるが、これでは通常のキャラクタコードで出力されている文字列まで低い解像度でレンダリングされることになり、プリンタ108本来の印刷品位での印刷が不可能になる。
そこで本実施の形態では、アプリケーション101から出力される、レンダリング解像度(印刷解像度よりも低い解像度)でレンダリングしたラスタイメージデータをスプールするスプールファイル104のサイズを小さくしながら、キャラクタコードで出力される文字列などのように、解像度に依存せずに出力される描画データについては高品位でレンダリングすることを目的とする。
次に本実施の形態1に係る処理について図3乃至図11を参照して詳しく説明する。
図5及び図6は、本実施の形態1に係る印刷システムにおける処理の流れを説明するフローチャートである。ここではアプリケーション101が作成した描画データをスプールする処理について説明する。
まずアプリケーション101は、印刷するための描画データ(文書データや画像データ等の印刷データ)を、対象とするプリンタ108の解像度や印刷領域(解像度に応じたピクセル数)に合わせて作成する。そしてステップS101で、アプリケーション101は、GDI102に対してプリンタドライバ103の初期化を要求し、プリンタ108の印刷領域や解像度などのプリンタ情報を要求する。次にステップS102に進み、GDI102は、この要求に応じてプリンタドライバ103のユニバーサルプリンタドライバ109を初期化し、「GDIINFO」と呼ばれるプリンタ情報を要求する。
この「GDIINFO」は、図3に示すようなデータ構造をしている。
またユニバーサルプリンタドライバ109は、「DEVMODE」と呼ばれるユーザ設定値を基に、用紙サイズや用紙内の印刷領域などを設定する。例えば、「ulLogPixelsX」301,「ulLogPixelsY」302はレンダリング解像度であり(画像の水平及び垂直方向の論理インチ当りの画素数)、このレンダリング解像度に応じて、「ulHorzRes」(画素単位での印刷幅)303/「ulVertRes」(画素単位での印刷高さ)304、「ptlPhysOffset.x」(印刷領域の左側オフセット)305/「ptlPhysOffset.y」(印刷領域の上側オフセット)306(用紙サイズに相当)などの値を設定する。
図4は、ユーザ設定値「DEVMODE」の一例を示す図である。
この「DEVMODE」のデータ構造において、「dmDriverData」(デバイス固有の情報)401以外は、OSで共通の仕様となっている。この「dmDriverData」401は、各プリンタドライバ毎に自由に使用することが可能である。
前述したレンダリング解像度でレンダリングしたラスタイメージデータを、アプリケーション101から出力するスプールファイル104のサイズを小さくするには、このレンダリング解像度の値を小さくすれば良い。しかし、このレンダリング解像度を小さくすると、キャラクタコードで表わされている文字列等のように、解像度に依存しない描画データについても、その印刷品位が下がってしまう。
ここでプリンタドライバ103が初期化されるケースは2種類あり、一つは、前述したアプリケーション101がGDI102に描画データを出力する際に行う初期化である。もう一つは、プリントプロセッサ105がスプールファイル104のデータをプリンタ108に出力する際の初期化である。
OSの仕様に基づけば、「ulLogPixelsX」301,「ulLogPixelsY」302はレンダリング解像度を設定することになっているため、プリンタドライバ103は両方の初期化に対して同じ解像度を返している。しかし、アプリケーション101からの初期化の場合だけスプール軽減用の低解像度の値を返し、プリントプロセッサ105からの初期化の時には高解像度のレンダリング解像度(プリンタ108の解像度に対応)を返している。これにより、アプリケーション101において、レンダリング解像度でレンダリングしたラスタイメージデータを出力するスプールファイル104のサイズを小さくしながら、キャラクタコードで出力されている文字列など、解像度に依存せずに出力される描画データについては高品位のままで印刷することができる。
ユニバーサルプリンタドライバ109は、GPDファイル111に記述されたレンダリング解像度、用紙情報を基に印刷条件を設定するため、印刷用の高解像度のレンダリング解像度のみを指定する。そこでレンダリングplug-in110で解像度の変更を行う必要がある。
まずステップS103では、ユニバーサルプリンタドライバ109は、GPDファイル111に記述されたレンダリング解像度、用紙情報を基にプリンタ情報「GDIINFO」を設定する。このGPDファイル111には、印刷用の高解像度のレンダリング解像度が記述されている。ユニバーサルプリンタドライバ109は、印刷用の高解像度のレンダリング解像度用の「GDIINFO」を作成し、レンダリングplug-in110を初期化する。ユニバーサルプリンタドライバ109は、レンダリングplug-in110を初期化する際に、スプール処理時の初期化呼び出しであることを通知する。この通知の仕組みは、初期化指示情報に、スプール時呼び出しであることを指示するフラグやコマンドの情報を付加することで実現可能である。
次にステップS104では、レンダリングplug-in110が、ユニバーサルプリンタドライバ109からのスプール時の呼び出しであると指示された場合に、スプールサイズ軽減用の解像度で上書きするか、即ち、スプールする描画データの解像度を低下させる必要があるかを判定する。
このステップS104の判定処理を図7のフローチャートを参照して説明する。
図7は、図5のステップS104における、レンダリングplug-in110がスプールサイズの軽減機能をオンするかどうかを判定し、それに応じて解像度を上書きする処理を示すフローチャートである。
まずステップS201で、レンダリングplug-in110は、ユニバーサルプリンタドライバ109から初期化の指示がなされた場合に、その初期化がスプール目的のGDI102を経由したアプリケーション101からの初期化か、実際に印刷するためのGDI102を経由したプリントプロセッサ105からの初期化かであるかを判定する。これを判定する一つの方法として、ユニバーサルプリンタドライバ109からの指示に基づいて呼び元のモジュールを調べることが可能なので、呼び元のモジュールの中にプリントプロセッサ105を示すコードが含まれるかどうかで判定することができる。また別の方法として、ユニバーサルプリンタドライバ109からの指示に、スプール時呼び出しであることを指示するフラグやコマンドの情報を付加することで判定することができる。
また他の方法としては、前述したようにプリントプロセッサ105としてOS標準のものを使う以外に、カスタマイズしたプリントプロセッサ105をプリンタドライバ103とともに供給することもあり得る。その場合、プリントプロセッサ105が、プリンタドライバ103を初期化する際に、「DEVMODE」にプリントプロセッサ105からの初期化であるというフラグを設定しておき、プリンタドライバ103がその値を参照して、その初期化がどこから指示されたかを判定することができる。
また他の方法としては、システムの機能としてアプリケーション101からの初期化か、実際に印刷するためのGDI102を経由したプリントプロセッサ105からの初期化かを判定する関数を用いることも可能である。
また他の方法としては、ユニバーサルプリンタドライバ109がアプリケーション101からの初期化か、実際に印刷するためのGDI102を経由したプリントプロセッサ105からの初期化かを判定し、レンダリングplug-in110に対し初期化の際にフラグとして通知するので、そのフラグを見て判定することも可能である。
更にまた他の方法としては、同じくユニバーサルプリンタドライバ109に用意された、アプリケーション101からの初期化か、実際に印刷するためのGDI102を経由したプリントプロセッサ105からの初期化かを判定するコールバック関数をレンダリングplug-in110が利用して判定することも可能である。
このステップS201で、レンダリングplug-in110がアプリケーション101からの初期化であると判断した場合はステップS202に進み、レンダリングplug-in110は、スプールサイズの軽減機能が必要かどうかを判定する。これを判定する一つの方法としては、ユーザが選択する方法がある。これは印刷中にエラーが発生して印刷されなかったり、印刷に要する時間が異常に長かったり、印刷してもページの一部又は全体の描画データが抜けて印刷された場合には、ユーザの判定により、プリンタドライバ103のユーザ設定機能を用いて、このスプールサイズの軽減機能をオンにする。
図8は、スプールサイズの軽減機能を設定するためのプリンタドライバ103のユーザ設定画面例を示す図である。具体的には、図8は、プリンタドライバ103の中のユーザインタフェースplug-inモジュール(図示省略)が提供するユーザインタフェースである。ユーザインタフェースplug-inモジュールもまた、レンダリングplug-in110と同様にプリンタメーカーにより提供されるモジュールである。800は「印刷データのサイズを小さくする」かどうかを指示するためのチェックボックスで、このボックス800がチェックされることにより、スプールサイズの軽減機能が設定される。
ユーザは印刷開始する命令する際に、アプリケーション101の印刷設定画面から、プリンタドライバ103の設定を行うことができる。プリンタドライバ103は、「DEVMODE」の「dmDriverData」401に、このスプールサイズの軽減機能を実行するか否かの情報を記憶し、その情報を印刷時に参照することで判定することができる。
また他の方法としては、プリンタドライバ103で、ページ全体をイメージで出力した場合を想定した1ページ当りのスプールファイル104のサイズが所定のサイズ以上かどうかに基づいて判定することも可能である。この方法では、「DEVMODE」の用紙のサイズを示す「dmSize」402や、印刷品位を示す「dmPrintQuality」(プリンタの解像度)403から決定される。またその他には、プリンタドライバ103で、ユーザがスプールサイズから判定するか、常にオン又はオフにするのかなどの機能を設け、その設定値とスプールサイズから判定することも可能である。
図9は、スプールサイズから判定する機能を追加したスプールサイズの軽減機能を設定するためのプリンタドライバ103のユーザ設定画面例を示す図である。
この例では、「印刷データのサイズを小さくする」のチェックボックス800がチェックされている時に、「自動的に判定する」のチェックボックス801にチェックできるようになる。この「自動的に判定する」のチェックボックス801がチェックされている場合には、スプールサイズに基づいて、自動的にスプールサイズを軽減するために解像度が低下される。
これら図7のステップS201及びS202でともに「YES」と判定した場合(スプールサイズの軽減を行う)はステップS203に進み、レンダリングplug-in110は、スプールサイズ軽減用の低解像度でプリンタ情報「GDIINFO」を上書きする。尚、この場合には、解像度を変更したことをユニバーサルプリンタドライバ109にも通知する必要があるので、ユニバーサルプリンタドライバ109が用意しているコールバック関数などを用いて、ユニバーサルプリンタドライバ109に解像度を変更したことを通知する。
この結果、ユニバーサルプリンタドライバ109がスプールサイズの軽減用の低解像度のプリンタ情報をアプリケーション101に返すので、前述したレンダリング解像度でレンダリングしたイメージを出力するアプリケーション101からのスプールファイル104のサイズを小さくできる。しかし、レンダリング解像度でレンダリングしたイメージを出力するアプリケーション101の場合には、この低下させた解像度でレンダリングした結果を出力するため、解像度が低下するほどスプールサイズが小さくなるが、それに応じて、その印刷結果も劣化してしまう。そこで、用紙サイズや印刷品位などから、この解像度を決定する必要がある。
こうしてステップS203を実行した後ステップS105(図5)に進み、ユニバーサルプリンタドライバ109は、プリンタ情報「GDIINFO」をGDI102に返す。次にステップS106に進み、GDI102に返されたプリンタ情報は、そのGDI102を経由してアプリケーション101に返される。これによりアプリケーション101は、この返されたプリンタ情報に基づいて、その得られた解像度や印刷領域などに基づいて描画データを作成し、GDI102に出力する。
次にステップS107に進み、GDI102は、アプリケーション101から受け取った描画データを、Windowsの標準スプールファイル104のフォーマットであるEMFフォーマットで、スプールファイル104としてスプールする。このスプールが終了するとステップS108に進み、GDI102は、プリントプロセッサ105に印刷の開始を要求する。
次に図6のステップS109に進み、ステップS108で印刷開始が指示されたプリントプロセッサ105は、プリンタドライバ103を初期化するため、GDI102に初期化を要求する。ここで前述の図7のステップS201の判定で、「DEVMODE」にプリントプロセッサ105からの初期化であることを設定して判定する場合には、プリントプロセッサ105は、初期化する際に、この「DEVMODE」にプリントプロセッサ105からの初期化であることを示す情報を設定し、GDI102に対し、プリンタドライバ103の初期化を要求するとともに、プリンタ108の印刷領域や解像度などのプリンタ情報を要求する。次にステップS110に進み、プリントプロセッサ105からプリンタドライバ103の初期化を要求されたGDI102は、プリンタドライバ103のユニバーサルプリンタドライバ109を初期化し、ユニバーサルプリンタドライバ109に対してプリンタ情報である「GDIINFO」を要求する。
次にステップS111に進み、これに応じてユニバーサルプリンタドライバ109は、「GDIINFO」を設定してレンダリングplug-in110を初期化する。レンダリングplug-in110は、前述のステップS103と同じ初期化関数が呼ばれるため、ステップS103と同様に、ステップS201の判定を行う。ここでは、アプリケーション101からの初期化でないと判定されるので、プリンタ情報「GDIINFO」を変更せずにユニバーサルプリンタドライバ109に返すので、ユニバーサルプリンタドライバ109はプリンタ108の解像度である印刷用の高解像度用のプリンタ情報をGDI102に返すことになる。
次にステップS112に進み、プリントプロセッサ105は、このプリンタ情報を基に描画データをGDI102に出力する。この際、まずGDI102に対し、GDI102経由で得たプリンタ情報に従った解像度への変換(座標空間の変更)を要求する。次にステップS113に進み、GDI102は、プリントプロセッサ105が要求した解像度の変換指示に従って、スプールファイル104の描画データを1ページ毎に読み出してユニバーサルプリンタドライバ109に出力する。その結果、スプールされた時と異なる解像度になっても、GDI102内で解像度変換されてユニバーサルプリンタドライバ109に対して印刷が要求されるので、同じレイアウトで印刷することができる。
アプリケーション101からGDI102への出力コマンドと、GDI102からプリンタドライバ103への出力コマンドの簡易的に記述した例を図10と図11に示す。
図10は、通常の印刷による出力コマンドの一例を示す図で、図11は本実施の形態に係る印刷コマンドの一例を示す図である。
図10において、グラフィックイメージ701においては、アプリケーション101からの出力が、プリンタドライバ103のレンダリング解像度に合わせて印刷されている。702はキャラクタコードで出力されている文字列の出力領域を示している。703はプリンタドライバ103のレンダリング解像度に依存しないオリジナルイメージの拡大出力領域である。実際には、レンダリング用の低い解像度のイメージデータを出力するアプリケーションの場合、このページ全体をレンダリング用の解像度のラスタイメージデータに変換して印刷するが、この図10では、ラスタイメージデータではなく描画データによって、この印刷イメージを設定している。従って、図10に示す通常の印刷例では、アプリケーション101からの出力が、そのままGDI102からの出力になっている。
図11は図10と同じ描画データによる印刷結果を示す図であるが、この例では、アプリケーション101からの出力時にはスプール軽減用の低解像度として、印刷用のレンダリング解像度に対して縦横それぞれ「1/2」の値を返しており、これは図11の「アプリケーションから出力コマンド」に示すようなコマンドで指定される。
図11と図10とを比較すると明らかなように、図10の701では、「600×600ピクセルの画像」がスプールされているのに対し、図11の801では、「300×300ピクセルの画像」がスプールされているので、スプールデータのサイズが減少している。しかし、レンダリング解像度に依存しない文字列及びイメージ802,803については、その座標情報やサイズが異なるだけで、同じデータサイズでスプールされる。即ち、文字列のサイズは、図10の702で示すサイズ「200」の半分「100」となり、座標情報も(1000,400),(1000,600)のそれぞれの半分である(500,200)、(500,300)となっている。また803で示すイメージに関しても、始点は図10の(200,1000)半分の(100,500)、サイズも図10の(1600×1600)の半分である(800×800)となっているが、文字列802及びイメージ803のデータサイズはそのままである。
また「GDI102からの出力コマンド」においては、グラフィック801に関しては、図10のグラフィック701と比べて、印刷されるイメージのサイズ(解像度)が「1/2×1/2」に対応する(300×300)となっていて小さくなっているため、印刷された画像品位が低下している。しかし、プリントプロセッサ105の要請によるGDI102の解像度変換の結果、600×600のサイズで描画され、かつ文字列802、イメージ803に関しては、図10の702,703と全く同じコマンドで出力される。このため、これら文字列802及びイメージ803は高い解像度でレンダリングされ、図10の文字列702,イメージ703と同じ画像品位で印刷できることになる(ステップS113)。
次いでステップS114に進み、ユニバーサルプリンタドライバ109は、スプールファイル104を、GDIレンダリングエンジン107を用いてラスタイメージデータに展開する。そしてステップS115に進み、ユニバーサルプリンタドライバ109は、そのレンダリングしたラスタイメージデータを、プリンタ108へ出力するようにレンダリングplug-in110に要請する。次いでステップS116に進み、レンダリングplug-in110は、ラスターイメージに対して色処理などを行ってプリンタコマンドに変換などを行った後、プリンタ108に出力する。そして、この処理を終了する。
以上説明したように本実施の形態1によれば、印刷した画像の劣化を抑えて、アプリケーションにより印刷が指示されたデータをスプールするデータ量を削減できるという効果がある。
[実施の形態2]
上記実施の形態1では、低解像度のレンダリング解像度でスプールされたEMFフォーマットのスプールファイル104を、プリンタドライバ103で高解像度にレンダリングする方法について述べた。しかしアプリケーション101の判断で、EMFフォーマットでのスプール自体を止めるように指示して印刷することがある。例えば、RAWフォーマットと呼ばれる、プリンタドライバ103がプリンタ108に送信する印刷コマンドデータそのものをスプールするRAWスプールなどに変更する場合である。その場合、前述の実施の形態1では、図11の「アプリケーションからの出力コマンド」がそのまま、GDI102経由でプリンタドライバ103に出力されるために、縮小されて印刷されてしまう。そこで、以下ではこれを防止する方法について説明する。
図12は、本発明の実施の形態2に係る印刷システムのRAWスプールの構成を示すブロック図で、前述の図1と共通する部分は同じ記号で示し、その説明を省略する。
前述の実施の形態1では、アプリケーション101が印刷要求したデータはGDI102で一旦EMFデータとしてスプールファイル104にスプールされていた。これに対して本実施の形態2に係るRAWスプールの場合には、GDI102は、直接プリンタドライバ103内のユニバーサルプリンタドライバ109に印刷を要求する。こうして印刷が要求されたユニバーサルプリンタドライバ109は、GDIレンダリングエンジン107を用いて、その描画データをラスタイメージデータにレンダリングした後、プリンタドライバ103内のレンダリングplug-in110で色処理やプリンタコマンドの付加などを行って出力する。そして、そのプリンタコマンドがスプールファイル104としてスプールされる。このスプールされたプリンタコマンドは、プリントプロセッサ105及びポートモニタ106を経由してプリンタ108に送信される。
本実施の形態2における処理について、前述の実施の形態1との違いを中心に図13及び図14のフローチャートを参照して説明する。尚、図13及び図14において、前述の図5及び図6のフローチャートと共通する部分は同じ記号で示しており、それらの説明を省略する。
ステップS106で、アプリケーション101が描画データを作成してGDI102に出力する際に、アプリケーション101はEMFスプールを禁止することができる。
図15は、アプリケーション101が初期化するときに指定する「DOCINFO」のデータ構造の一部を示した図である。
この「DOCINFO」の「lpszDatatype」1101で、スプールファイル104のデータタイプを指定することができる。通常は「0」(NULLと呼ばれる)を指定し、この場合には、システムの設定をそのままで印刷する。このデータタイプの文字列が「emf」であればEMFスプールを示し、「raw」であればRAWスプールへの切り替えを要求している。
こうしてステップS301で、GDI102は、「DOCINFO」の「lpszDatatype」1101の設定値に基づいて、アプリケーション101からEMFスプール以外が指定されたかを判定する。ここで「NO」、即ち、EMFスプールが指定されると前述の図5及び図6のステップS107乃至ステップS113と同じ処理を行う。
一方、ステップS301で「YES」、即ち、EMFスプール以外(EMFスプールを禁止)が指定されるとステップS302(図14)に進み、GDI102はアプリケーション101からの描画データをユニバーサルプリンタドライバ109に直接出力する。
こうして前述したステップS107乃至S113を実行するか、或いはステップS302の処理を実行するとステップS114に進み、ユニバーサルプリンタドライバ109はGDIレンダリングエンジン107を用いてラスタイメージデータにレンダリングする。そしてステップS115に進み、ユニバーサルプリンタドライバ109は、そのレンダリングしたラスタイメージデータをレンダリングplug-in110に対してプリンタコマンドに変換してプリンタ108に出力するように要請する。しかし、ステップS301で「YES」と判定した場合には、スプール軽減用の低解像度でレンダリングされている。
そこでステップS303以降の処理では、低解像度でレンダリングされた場合だけ、プリンタ108に出力する前にレンダリングplug-in110がスプール軽減用の低解像度から印刷用の高解像度に拡大する必要がある。そのためステップS303で、レンダリングされたイメージのサイズなどからスプールサイズ軽減用の低解像度でレンダリングしたかどうかを判定する。このステップS303で「NO」と判定された場合にはステップS116に進み、元々印刷用の高解像度でレンダリングされているので、レンダリングplug-in110はラスターイメージに対して色処理などを行ってプリンタコマンドに変換した後、プリンタ108に出力する。
一方、ステップS303で「YES」と判定した場合はステップS304に進み、この場合には、スプールサイズ軽減用の低解像度でレンダリングされているので、レンダリングplug-in110は、低解像度でラスタライズされているラスタイメージデータを印刷用の高解像度のイメージデータに拡大変換する。尚この際、GDIレンダリングエンジン107が備える拡大機能を用いて印刷用の解像度に拡大することも可能である。そして最後に、レンダリングplug-in110は、ステップS305で、その拡大したラスタイメージデータをプリンタコマンドに変換してプリンタ108に出力する。そして、この処理を終了する。
以上説明したように本実施の形態2によれば、アプリケーションからレンダリング解像度でレンダリングしたラスタイメージデータを出力してスプールファイルのサイズを小さくし、キャラクタコードで記述されている文字列などのように、解像度に依存せずに出力される描画データについては高品位でレンダリングできる。
[実施の形態3]
プリンタ108の高解像度化に伴い、画像を縮小して印刷しても、その視認性が損なわれにくいため、複数のページを縮小して一枚の用紙に印刷するというN−up印刷がよく使われるようになってきた。ここで、N−upのNは1ページ当たりに印刷されるページ数で、1枚の用紙に4ページ分のデータを印刷する場合は4−upと呼ばれている。
図16は、4ページ分のデータを1枚の用紙に縦横2ページずつ印刷した4−upの例を示す図である。
このN−up印刷では、各ページを縮小して印刷するため、図表などのアプリケーション101でよく使われる細い細線などは、縮小されて線幅が「0」となってしまい印刷されない場合がある。
図17は、1ページ目の一部の細線が印刷されなかった例を示す図である。
ここでは1ページ(Page1)目の罫線である細線の一部が印刷されていない。そこで本実施の形態3では、このようなN−up印刷時における細線の欠落を防止するものである。尚、この実施の形態3に係るシステム構成は、前述の実施の形態1(図1)と実質的に同様であるため、その説明を省略する。
前述の実施の形態1で説明したように、アプリケーション101が印刷要求した描画データ(文書データ、画像データ等の印刷データ)は、通常、GDI102が一旦EMFデータとしてスプールファイル104にスプールし、プリントプロセッサ105が、スプールファイル104から印刷出力情報と描画データをページ単位で読み込み、1ページずつGDI102を介してプリンタドライバ103に出力して印刷している。GDI102には、このスプールされたページ毎に用紙の一部の領域を指定し、その領域に1ページ分のデータを縮小して出力する機能があり、この機能を使用すれば、GDI102に対し用紙への出力終了命令を指定するまでは同じ用紙内に何ページでも出力できる。プリントプロセッサ105は、この機能を用いてN−up印刷を行っている。つまり、プリントプロセッサ105は、プリンタドライバ103に出力する際に、プリンタドライバ103が返した印刷領域をN等分し、スプールファイル104から印刷出力情報と描画データをページ単位で読み込み、1ページずつGDI102を介してN等分した領域に順番に出力を行っている。
本実施の形態3では、プリンタドライバ103は、アプリケーション101に対して、縮小されることを考慮して解像度に縮小率をかけた解像度を基にプリンタ情報を返す。そして実際の印刷時には、プリンタドライバ103が印刷用の高解像のプリンタ情報をアプリケーション101に返すようにすることにより、印刷時に縮小されて線幅が「1」のままで印刷できる。
以下、本実施の形態3に係る処理について、前述の実施の形態1との違いについて図18、図19及び図20を参照して詳しく説明する。
図18及び図19は、本発明の実施の形態3に係る印刷システムにおける処理の流れを説明するフローチャートである。ここではアプリケーション101が作成した描画データをスプールする処理について説明する。ここでも前述の図5及び図6と共通する処理ステップには同じ記号を付して、その説明を省略している。
図18のステップS303のステップS402で細線欠け対策モードかどうかを判定し、そうであればステップS403に進み、GDI102からのプリンタドライバ103の初期化と「GDIINFO」と呼ばれるプリンタ情報の要求に対し、アプリケーション101からの初期化の場合だけN−up用の細線欠け対策用の低解像度の値を返し、プリントプロセッサ105からの初期化の時には高解像度のレンダリング解像度(プリンタ108の解像度に対応)を返す。
図20は、図18のステップS303における、プリンタドライバ103内のレンダリングplug-in110がN−up用の細線欠け対策するかどうかを判定し、必要であれば解像度を上書きする処理を説明するフローチャートで、前述の図7と共通する部分は同じ記号で示している。
ステップS201で、アプリケーション101からの初期化であると判断した場合はステップS402に進み、N−up用の細線欠け対策機能が「ON」かどうかを判定する。これはユーザが、この機能を「ON」にしたかどうかで判定する。N−upで印刷した結果、細線の一部が抜けて印刷された場合には、ユーザの判定により、プリンタドライバ103のユーザ設定機能を用いて、このN−up用の細線欠け対策機能がオンにされる。
図21は、このN−up用の細線欠け対策機能を設定するためのプリンタドライバ103のユーザ設定画面例を示す図である。
図において、2100は「N−up時の細線欠けを防ぐ」機能を設定するためのチェックボックスで、このボックス2100がチェックされると、N−up用の細線欠け対策機能が設定される。ユーザは印刷開始を命令する際に、このアプリケーション101の印刷設定画面から、プリンタドライバ103の設定を行うことができる。プリンタドライバ103は、「DEVMODE」の「dmDriverData」401(図4)に、このN−up用の細線欠け対策機能を実行するか否かの情報を記憶し、その情報を印刷時に参照することで判定することができる。
上記ステップS201及びS402でともに「YES」(N−up用の細線欠け対策を行う)と判定した場合はステップS403に進み、レンダリングplug-in110は、ユニバーサルプリンタドライバ109のN−up用の細線欠け対策機能用の低解像度のプリンタ情報に上書きし、ユニバーサルプリンタドライバ109が、N−up用の細線欠け対策機能用の低解像度のプリンタ情報で上書きされたプリンタ情報をアプリケーション101に返す。
ここで解像度の決定は、N−upの縮小率から決定できる。いま縦方向にページ数Nv、横方向にページ数Nhを、一枚の用紙に印刷する場合、その縮小率の逆数Sは、
|Nh (Nh≧Nv)
S= |
|Nv (Nh<Nv)
で求めることができる。
しかし、通常、N−upでは見やすさを向上するため、ページ間やページの周りに空白を入れることが多い。
図22は、N−upでページ間に空白部分を挿入して印刷する例を説明する図である。図の斜線分が空白部分である。空白部をどのようにとるかは色々な方法があるが、水平方向、垂直方向に等間隔であることが望ましいので、等間隔である場合を例にして説明する。
いま用紙の幅をW、用紙高さをHとする。水平垂及び直方向の各空白部Ih,Ivは、拡大縮小率が決定した後でないと決まらないので、まず、空白部の幅の最低値Iを定め、縮小率を求める。
縮小後の各ページの幅は{W−I×(N+1)}で求めることができるので、水平方向の縮小率の逆数をShは、
Sh=W÷((W−I×(Nh+1))÷Nh)
で求めることができる。同様に、垂直方向の縮小率の逆数Svは、
Sv=H÷((H−I×(Nv+1))÷Nv)
で求まり、Sは以下で決定される。
|Sh (Sh≧Sv)
S= |
|Sv (Sh<Sv)
尚、この計算の結果、Sは整数にならない場合がある。本実施の形態3でも前述の実施の形態2と同様の処理を行うことが可能で、その場合にはレンダリング後に拡大することになるが、拡大時に非整数倍で拡大すると処理時間がかかる等の問題があるため、少数以下を切り上げて整数にすることも可能である。
印刷用のレンダリング解像度をRとすると、N−up用の細線欠け対策用の解像度は、R/Sで決定される。これにより、1画素幅等で出力用に要求された細線は、縮小後でも線幅が「0」にならない線としてスプールされる。
次に図19のステップS110以降について説明する。ステップS110でプリントプロセッサ105からプリンタドライバ103の初期化を要求されたGDI102は、プリンタドライバ103内のユニバーサルプリンタドライバ109を初期化し、プリンタドライバ103に対してプリンタ情報である「GDIINFO」を要求する。
これに応じてユニバーサルプリンタドライバ109は、「GDIINFO」を設定してレンダリングplug-in110を初期化する。この際、レンダリングplug-in110は前述のステップS303と同じ初期化関数を呼ぶため、ステップS303と同様に、ステップS201(図20)の判定を行う。ここでは、アプリケーション101からの初期化でないと判定されるので、解像度情報を変更せずに処理をユニバーサルプリンタドライバ109に戻し、ユニバーサルプリンタドライバ109は、このプリンタ情報をGDI102に返す。
次にステップS312に進み、プリントプロセッサ105は、このプリンタ情報を基に描画データをGDI102に出力する。N−upの際には、スプールファイル104の描画データから1ページ毎に読み出してプリンタドライバ103に出力するという処理をN回行う。この際、プリントプロセッサ105は、ページ毎にGDI102経由で得たプリンタ情報に従い、GDI102に対し、印刷位置の指定及び解像度変換(座標空間の変更)を要求する。こうしてNページ分の出力が終了したら、用紙への書き込みが終了したことをGDI102に通知する。
次にステップS113に進み、GDI102は、プリントプロセッサ105が要求した各ページの印刷位置、解像度の変換指示に従って、Nページ分のスプールファイル104の描画データを1枚のページとしてユニバーサルプリンタドライバ109に出力する。次にステップS114に進み、ユニバーサルプリンタドライバ109は、スプールファイル104を、GDIレンダリングエンジン107を用いてラスタイメージデータにレンダリングする。
このとき、N−up用の細線欠け対策が「OFF」の場合には、アプリケーション101がレンダリング解像度600dpiのプリンタに対し、1画素幅の細線を1インチ描画しようとした場合、ステップS103で、印刷用の解像度600dpiがセットされているため600dpiのプリンタ情報が返される。このため(0,0)〜(1,600)の領域を塗りつぶすという描画命令を行う。
これに対して例えば、4−upの場合には、ステップS312の座標変換で縦横1/2の領域に縮小して印刷されるが、通常は1未満の値は切り捨てるため、(0,0)〜(0,300)、つまり幅「0」の領域を塗りつぶすというように変換されてしまう。これによりGDI102は、プリンタドライバ103に描画命令出力することなく、次の描画命令の処理を行い、細線が印刷されなくなってしまう。但し、(1,0)〜(2,600)の領域を塗りつぶすという描画命令は、1/2の領域に縮小しても(0,0)〜(1,300)の領域を描画すると変換されるため1画素の幅で描画されることになる。つまり、位置によって印刷されたりされなかったりする。
一方、N−up用の細線欠け対策が「ON」に設定されている場合には、1画素幅の細線を1インチ描画しようとした場合、ステップS403で、4−upではレンダリングplug-in110プリンタ情報の解像度を300dpiと上書きする。これによりユニバーサルプリンタドライバ109は、その上書きされた300dpiのプリンタ情報を返すので、アプリケーション101は(0,0)〜(1,300)の領域を塗りつぶすという描画命令を行う。しかし実際に印刷するときにはレンダリングplug-in110が上書きしないので、ユニバーサルプリンタドライバ109が600dpiの解像度のプリンタ情報を返す。このため前述の実施の形態1で説明したプリントプロセッサ105がスプールされている描画データをプリンタドライバ103の解像度に合わせて座標情報を変換して出力する機能が働き、(0,0)〜(2,600)を塗りつぶすという描画命令に変換される。その結果、4−upで「1/2」に縮小して印刷しても(0,0)〜(1,300)の描画命令として1画素幅の細線が0.5インチ幅で描画される。
そしてステップS115に進み、ユニバーサルプリンタドライバ109は、そのレンダリングしたラスタイメージデータをレンダリングplug-in110に出力するように要求する。そしてステップS116で、レンダリングplug-in110がプリンタコマンドに変換してプリンタ108に出力する。そしてこの処理を終了する。
以上説明したように本発明の実施の形態3によれば、N−up印刷で各ページを縮小して印刷しても、図表などのアプリケーション101でよく使われる細線などが幅「0」になって印刷されなくなるという問題を回避できるという効果がある。
(その他の実施の形態)
本発明の目的は前述したように、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステムあるいは装置に提供し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
本発明の実施の形態1に係る印刷システムの構成を示すブロック図である。 各用紙サイズ及び各レンダリング解像度に対する1ページ当りのスプールファイルのサイズの一例を示す図である。 GDIINFOのデータ構造の一部を示す図である。 DEVMODEのデータ構造の一部を示す図である。 本発明の実施の形態1に係る印刷システムにおける処理の流れの一例を示すフローチャートである。 本発明の実施の形態1に係る印刷システムにおける処理の流れの一例を示すフローチャートである。 図5のステップS104における判定及びその判定に基づく処理を説明するフローチャートである。 スプールサイズの軽減機能を設定するためのプリンタドライバのユーザ設定画面例を示す図である。 スプールサイズから判定する機能を追加したスプールサイズの軽減機能を設定するためのプリンタドライバのユーザ設定画面例を示す図である。 通常の印刷におけるアプリケーションからの出力コマンドとGDIからの出力コマンドの例を簡易的に記述した図である。 本実施の形態に係る印刷におけるアプリケーションからの出力コマンドとGDIからの出力コマンドの例を簡易的に記述した図である。 本発明の実施の形態2に係る印刷システムの構成を示すブロック図である。 本発明の実施の形態2に係る印刷システムにおける処理の流れの一例を示すフローチャートである。 本発明の実施の形態2に係る印刷システムにおける処理の流れの一例を示すフローチャートである。 DOCINFOデータ構造の一部を示す図である。 4ページのデータを1枚の用紙に縦横2ページずつ印刷した4−up印刷例を示す図である。 N−up印刷で一部の細線が印刷されなかった例を示す図である。 本発明の実施の形態3に係る印刷システムにおける処理の流れを説明するフローチャートである。 本発明の実施の形態3に係る印刷システムにおける処理の流れを説明するフローチャートである。 図18のステップS303における判定及びその判定に基づく処理を説明するフローチャートである。 N−up用の細線欠け対策機能を設定するためのプリンタドライバのユーザ設定画面例を示す図である。 N−up印刷で、ページ間に空白部分を挿入して印刷する例を説明する図である。

Claims (18)

  1. 画像形成に使用する画像形成用デバイスに対応する画像形成条件を記述するGDPファイルと、
    アプリケーションプログラムにより作成され描画データの解像度を低下させるかどうかを判定する判定手段と、
    前記判定手段により解像度を低下させると判定した場合に、前記判定手段により解像度を低下させないと判定された場合よりも解像度が低下された描画データを前記アプリケーションプログラムに作成させるためのプリンタ情報を前記アプリケーションプログラムに通知する通知手段と、
    前記アプリケーションプログラムが前記通知手段により通知されたプリンタ情報に従って作成した、前記解像度を低下させないと判定された場合よりも解像度が低下された描画データをスプールするスプール手段と、
    画像形成時、前記スプール手段によりスプールされた前記描画データを前記GDPファイルに含まれる前記画像形成用デバイスの解像度の描画データに変換する変換手段と、
    前記変換手段により変換された描画データに基づいて生成された画像形成ジョブを前記画像形成用デバイスに出力して画像形成させるように制御する画像形成制御手段と、
    を有することを特徴とする画像形成制御装置。
  2. 前記画像形成制御手段は、汎用のOSで提供されるユニバーサルプリンタドライバと、前記画像形成デバイスのメーカが作成したプリントプロセッサ、レンダリングプロセッサを含むことを特徴とする請求項1に記載の画像形成制御装置。
  3. 前記画像形成用デバイスはプリンタを含むことを特徴とする請求項1又は2に記載の画像形成制御装置。
  4. 前記判定手段は、前記アプリケーションプログラムからの描画データのスプール指示の場合に、当該描画データの解像度を低下させる判定することを特徴とする請求項1乃至3のいずれか1項に記載の画像形成制御装置。
  5. 前記判定手段は、前記アプリケーションプログラムからのスプール指示で、かつ前記描画データのデータ量が所定量以上の場合に前記解像度を低下させると判定することを特徴とする請求項1乃至3のいずれか1項に記載の画像形成制御装置。
  6. 前記判定手段は、ユーザの指示により判定することを特徴とする請求項1乃至3のいずれか1項に記載の画像形成制御装置。
  7. アプリケーションプログラムからの初期化指示に応答するプリンタ情報に含まれる解像度を、印刷対象のプリンタの第1解像度よりも低い第2解像度に設定する解像度設定手段と、
    アプリケーションプログラム以外からの初期化指示に応答して、前記プリンタの前記第1解像度を含むプリンタ情報を返送する返送手段と、
    前記第2解像度でスプールされている描画データを受取り、前記第1解像度のラスタイメージデータに変換する変換手段と、
    前記変換手段により変換したイメージデータを前記プリンタに送信して印刷させる印刷制御手段と、
    を有することを特徴とするプリンタドライバ。
  8. 描画データをイメージデータに展開する展開工程と、
    アプリケーションプログラムにより作成され描画データの解像度を低下させるかどうかを判定する判定工程と、
    前記判定工程で解像度を低下させると判定した場合に、前記判定工程で解像度を低下させないと判定された場合よりも解像度が低下された描画データを前記アプリケーションプログラムに作成させるためのプリンタ情報を前記アプリケーションプログラムに通知する通知工程と、
    前記アプリケーションプログラムが前記通知工程で通知されたプリンタ情報に従って作成した、前記解像度を低下させないと判定された場合よりも解像度が低下された描画データをスプールするスプール工程と、
    画像形成時、前記スプール工程でスプールされた前記描画データを、画像形成に使用する画像形成用デバイスに対応する画像形成条件を記述するGDPファイルに含まれる前記画像形成用デバイスの解像度の描画データに変換する変換工程と、
    前記変換工程で変換された描画データに基づいて生成された画像形成ジョブを前記画像形成用デバイスに出力して画像形成させるように制御する画像形成制御工程と、
    を有することを特徴とする画像形成制御方法。
  9. 前記画像形成制御工程は、汎用のOSで提供されるユニバーサルプリンタドライバと、前記画像形成デバイスのメーカが作成したプリントプロセッサ、レンダリングプロセッサにより実行されることを特徴とする請求項に記載の画像形成制御方法。
  10. 前記画像形成用デバイスは、プリンタを含むことを特徴とする請求項又はに記載の画像形成制御方法。
  11. 前記判定工程では、前記アプリケーションプログラムからの描画データのスプール指示の場合に、当該描画データの解像度を低下させるように判定することを特徴とする請求項乃至10のいずれか1項に記載の画像形成制御方法。
  12. 前記判定工程では、前記アプリケーションプログラムからのスプール指示で、かつ前記描画データのデータ量が所定量以上の場合に前記解像度を低下させると判定することを特徴とする請求項乃至10のいずれか1項に記載の画像形成制御方法。
  13. 前記判定工程では、ユーザの指示により判定することを特徴とする請求項乃至10のいずれか1項に記載の画像形成制御方法。
  14. スプールデータの軽減が指示されている場合に、印刷対象のプリンタ装置の第1解像度よりも低い解像度の第2解像度を設定する解像度設定手段と、
    アプリケーションから描画データを受け取って前記第2解像度で前記描画データをスプールするスプール手段と、
    前記スプール手段によりスプールされている描画データの印刷が指示されると、前記スプール手段によりスプールされている描画データを前記第1解像度でイメージデータに展開する展開手段と、
    前記展開手段により展開されたイメージデータを前記プリンタ装置に送信して印刷させる手段と、
    を有することを特徴とする印刷制御装置。
  15. 請求項乃至13のいずれか1項に記載の画像形成制御方法をコンピュータに実行させるためのプログラムを記憶したことを特徴とするコンピュータにより読取可能な記憶媒体。
  16. 請求項乃至13のいずれか1項に記載の画像形成制御方法をコンピュータに実行させるためのプログラム。
  17. 印刷装置で印刷すべき印刷データを生成する情報処理装置における印刷制御方法であって、
    ユニバーサルプリンタドライバからレンダリングプラグインが呼び出された場合に、この呼び出しがスプールファイルのスプール時の呼び出しであるか、スプールファイルのデスプール時の呼び出しであるかを判定する判定工程と、
    スプール軽減モードが設定されているかを判断する判断工程と、
    前記判断工程でスプール軽減モードが設定されていると判断され、前記判定工程でスプールファイルのスプール時の呼び出しであると判定された場合、アプリケーションプログラムに解像度情報を通知するために、レンダリングプラグインからユニバーサルプリンタドライバに対して、印刷時の第1解像度よりも低い第2解像度を通知する第1通知工程と、
    前記判定工程でスプールファイルのデスプール時の呼び出しであると判定された場合に、レンダリングプラグインからユニバーサルプリンタドライバに対して、スプールファイルのデスプール解像度として、印刷時の第1解像度を通知する第2通知工程と、
    を有することを特徴とする印刷制御方法。
  18. 印刷装置で印刷すべき印刷データを生成する印刷制御処理をコンピュータで実行させるために、該コンピュータを
    ユニバーサルプリンタドライバからレンダリングプラグインが呼び出された場合に、この呼び出しがスプールファイルのスプール時の呼び出しであるか、スプールファイルのデスプール時の呼び出しであるかを判定する判定手段と、
    スプール軽減モードが設定されているかを判断する判断手段と、
    前記判断手段でスプール軽減モードが設定されていると判断され、前記判定手段でスプールファイルのスプール時の呼び出しであると判定された場合、アプリケーションプログラムに解像度情報を通知するために、レンダリングプラグインからユニバーサルプリンタドライバに対して、印刷時の第1解像度よりも低い第2解像度を通知する第1通知手段と、
    前記判定手段でスプールファイルのデスプール時の呼び出しであると判定された場合に、レンダリングプラグインからユニバーサルプリンタドライバに対して、スプールファイルのデスプール解像度として、印刷時の第1解像度を通知する第2通知手段とを有する情報処理装置として機能させる印刷制御プログラム。
JP2003383042A 2003-11-12 2003-11-12 画像形成制御装置及びその制御方法とプリンタドライバ及び印刷制御装置および印刷制御方法 Expired - Fee Related JP4280606B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003383042A JP4280606B2 (ja) 2003-11-12 2003-11-12 画像形成制御装置及びその制御方法とプリンタドライバ及び印刷制御装置および印刷制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003383042A JP4280606B2 (ja) 2003-11-12 2003-11-12 画像形成制御装置及びその制御方法とプリンタドライバ及び印刷制御装置および印刷制御方法

Publications (2)

Publication Number Publication Date
JP2005148954A JP2005148954A (ja) 2005-06-09
JP4280606B2 true JP4280606B2 (ja) 2009-06-17

Family

ID=34691926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003383042A Expired - Fee Related JP4280606B2 (ja) 2003-11-12 2003-11-12 画像形成制御装置及びその制御方法とプリンタドライバ及び印刷制御装置および印刷制御方法

Country Status (1)

Country Link
JP (1) JP4280606B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4941153B2 (ja) * 2007-07-25 2012-05-30 ブラザー工業株式会社 デバイスドライバ
US20090279125A1 (en) * 2008-05-09 2009-11-12 Yue Liu Methods and structure for generating jdf using a printer definition file
JP6053491B2 (ja) * 2012-12-13 2016-12-27 キヤノン株式会社 情報処理装置及びプログラム、制御方法

Also Published As

Publication number Publication date
JP2005148954A (ja) 2005-06-09

Similar Documents

Publication Publication Date Title
US8670150B2 (en) Information processing apparatus, information processing method and printing control method
US20030103221A1 (en) Print control apparatus and method
JP3745179B2 (ja) 情報処理装置及びその制御方法及び記憶媒体
US8274719B2 (en) Printing system, print preview method, and preview method using a printer driver
JP2009151571A (ja) 画像データ供給装置及び方法
JPH11298717A (ja) 印刷システム
JP2012236344A (ja) 印刷装置、印刷装置のデータ処理方法及びプログラム
JP4709317B2 (ja) 情報処理装置及び情報処理方法及び印刷制御プログラム
US7903304B2 (en) Print control apparatus, print control method, program, and storage medium
JP4280606B2 (ja) 画像形成制御装置及びその制御方法とプリンタドライバ及び印刷制御装置および印刷制御方法
JP4461361B2 (ja) 描画処理方法およびプログラム並びに描画命令出力装置および画像形成装置
JP6904717B2 (ja) 画像処理装置、その制御方法、およびプログラム
EP1398688A2 (en) Information processing apparatus, image formation apparatus, drawing processing method
US8098385B2 (en) Spool file modifying device
JP3833107B2 (ja) 情報処理装置、情報処理方法、プログラムおよび記憶媒体
JP5424546B2 (ja) 画像処理装置及び画像形成システム
JP4174547B2 (ja) 情報処理装置、情報処理方法、及び記憶媒体
JP3833106B2 (ja) 情報処理装置、情報処理方法、プログラムおよび記憶媒体
JP4006068B2 (ja) 情報処理装置および情報処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP4325339B2 (ja) 印刷システム、ホストコンピュータ及びプリンタドライバ
JPH11191055A (ja) 印刷システムおよび印刷システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2003173446A (ja) 画像処理装置、画像処理システム、画像処理方法、記憶媒体、及びプログラム
JP3968989B2 (ja) 画像処理装置、画像処理方法および画像処理プログラムを記録した記憶媒体
JP3591096B2 (ja) ページプリンタの制御方法
JP2004171533A (ja) 印刷装置および印刷方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090302

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090316

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees