JP2004152255A - 情報処理装置及び情報処理方法及び印刷制御プログラム - Google Patents

情報処理装置及び情報処理方法及び印刷制御プログラム Download PDF

Info

Publication number
JP2004152255A
JP2004152255A JP2003197271A JP2003197271A JP2004152255A JP 2004152255 A JP2004152255 A JP 2004152255A JP 2003197271 A JP2003197271 A JP 2003197271A JP 2003197271 A JP2003197271 A JP 2003197271A JP 2004152255 A JP2004152255 A JP 2004152255A
Authority
JP
Japan
Prior art keywords
printer
print
drawing data
spool
data
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.)
Granted
Application number
JP2003197271A
Other languages
English (en)
Other versions
JP4250470B2 (ja
JP2004152255A5 (ja
Inventor
Yoshiaki Tomomatsu
美明 友松
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 JP2003197271A priority Critical patent/JP4250470B2/ja
Priority to US10/654,029 priority patent/US8102543B2/en
Publication of JP2004152255A publication Critical patent/JP2004152255A/ja
Publication of JP2004152255A5 publication Critical patent/JP2004152255A5/ja
Application granted granted Critical
Publication of JP4250470B2 publication Critical patent/JP4250470B2/ja
Priority to US13/344,572 priority patent/US8670150B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Record Information Processing For Printing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

【課題】レンダリング解像度が益々高解像度になっているためスプールデータのサイズがより大きくなり、アプリケーションやスプーラ内部でエラーが発生する。
【解決手段】アプリケーションプログラムにより作成された描画データをスプールする際、描画データの解像度を低下させるか否かを決定し(S202)、その描画データの解像度を低下させると決定されると、S203で、スプールする描画データの解像度を低下させたプリンタ情報を返し、その低下させた解像度でスプールする(S107)。こうしてスプールされた描画データを画像形成デバイスの解像度に合せた解像度でラスタイメージに展開し(S114)、その展開されたラスタイメージをプリンタに出力して画像形成する(S115)。
【選択図】 図5

Description

【0001】
【発明の属する技術分野】
本発明は、文字、図形等を含む描画データに基づいて、画像形成デバイスで形成すべきデータを生成する情報処理装置及び情報処理方法及び印刷制御プログラムに関するものである。
【0002】
【従来の技術】
ホストコンピュータから送られてくるラスタイメージに基づいてプリンタ装置によりプリントを行うプリントシステムが知られている。このようなプリンタ装置は、インクジェットプリンタや電子写真プリンタの中でホストベースプリンタと呼ばれている。ホストベースプリンタに送信する印刷データにおけるラスタイメージの展開に際しては、ホストコンピュータのアプリケーション・ソフトウェア(以下、単にアプリケーション)により作成された文字、グラフィックス、写真などの描画データは、一旦、ホストコンピュータの仮想的なページメモリにオペレーションシステム(OS)の描画モジュール(米国マイクロソフト社のWindows(登録商標)OSでは、GDI(Graphic Device Interface)と呼ばれる)を介してスプールファイル(EMFデータ)としてスプールされ、その後、スプールファイルを読み出して、プリンタドライバもしくはOSの描画モジュールにより展開される。
【0003】
このようなアプリケーションからの描画データをオペレーションシステムのスプールファイルにスプールし、プリントプロセッサにより読み出してプリンタドライバまたはOSの描画モジュールにより展開(ラスタライズ)処理されるシステムがある。(特許文献1)
【特許文献1】
特開2003−167701号公報
【0004】
【発明が解決しようとする課題】
また、このようなラスタイメージデータへの展開時には、アプリケーションは、テキストデータの場合は文字種、キャラクタコードなどに加えて、その出力位置を示す座標情報を出力する。またグラフィックデータの場合は、形状などの種別、色、座標情報を出力し、また写真などのイメージ画像についてはオリジナル画像と出力先のサイズを出力する。
【0005】
しかし、近年のアプリケーションの高機能化などに伴って、アプリケーションにより生成されるデータが複雑になってきている。従って、プリンタ装置やプリンタドライバの機能によっては、アプリケーションより受取ったデータを正しく解釈してイメージデータに展開できない場合が発生する。このため、一部のアプリケーションは、その作成したテキストデータ、グラフィックデータ等をプリンタ装置に出力する際、そのアプリケーションによりプリンタ装置のレンダリング解像度に応じたイメージデータに展開してから印刷を行うことがある。このようなアプリケーションでは、そのイメージ展開したデータをスプールする場合、そのスプールデータのサイズが非常に大きくなり、ハードディスクやメモリを圧迫するという問題が発生している。
【0006】
また、イメージ展開するアプリケーションでなくとも同様の問題が考えられる。近年、高解像度のデジタルカメラの普及により、ホストコンピュータ上で高解像度のイメージデータを扱うようになってきている。そして、高解像度のイメージデータを文書のページに貼り付けて印刷させる場合、アプリケーションによっては、貼り付けられた領域の画素数に適合させずに、そのままオリジナルのイメージデータを出力する場合がある。このようなアプリケーションでは、出力したデータをスプールする場合、そのスプールデータのサイズが非常に大きくなり、ハードディスクやメモリを圧迫するという問題が発生している。具体的には、オペレーションシステムによっては、スプールデータのサイズが4GB(ギガバイト)を超えると印刷エラーとなる場合や、また、アプリケーション側でもサポートしている出力サイズを超えて印刷エラーとなる場合や、また、ハードディスクの空き容量が足りずに印刷エラーとなる場合が発生している。
【0007】
特に近年、プリンタの高画質化に伴うレンダリング解像度が益々高解像度になっているため、スプールデータのサイズがより大きくなり、アプリケーションやスプーラ内部でエラーが発生してしまい、正常にイメージに展開できなくなるという問題が発生している。その結果、レンダリング解像度を上げることもできずプリンタ装置の高画質化にとって障害となっている。
【0008】
本発明は上記従来例に鑑みてなされたもので、画像形成デバイスにラスタイメージデータを出力するためのスプールファイルのサイズを小さくし、かつ高品位の画像を形成できる情報処理装置及び情報処理方法及び印刷制御プログラムを提供することを目的とする。
【0009】
【課題を解決するための手段】
上記目的を達成するために本発明の情報処理装置は以下のような構成を備える。即ち、
アプリケーションプログラムにより作成された描画データをオペレーションシステムによりスプールさせ、当該スプールされた描画データに基づいて前記オペレーションシステムから描画データを受け取るプリンタドライバを備える情報処理装置であって、
前記オペレーションシステムによるスプール処理のスプールサイズを減らす軽減モードを実施するか否かを判定する判定手段と、
前記判定手段により前記軽減モードを実施すると判定されると、前記アプリケーションプログラムにより作成される描画データの出力サイズを低下させて前記オペレーションシステムによりスプールするように指示する第一指示手段と、
スプールされた前記描画データに基づいて、画像形成デバイスでの画像形成処理に適合した出力サイズで展開されたラスタイメージを含む画像形成ジョブを生成する画像形成ジョブ生成手段とを有することを特徴とする。
【0010】
上記目的を達成するために本発明の情報処理方法は以下のような工程を備える。即ち、
アプリケーションプログラムにより作成された描画データをオペレーションシステムによりスプールさせ、当該スプールされた描画データに基づいて前記オペレーションシステムから描画データを受け取るプリンタドライバを備える情報処理装置における情報処理方法であって、
前記オペレーションシステムによるスプール処理のスプールサイズを減らす軽減モードを実施するか否かを判定する判定工程と、
前記判定工程で前記軽減モードを実施すると判定されると、前記アプリケーションプログラムにより作成される描画データの出力サイズを低下させて前記オペレーションシステムによりスプールするように指示する第一指示工程と、
スプールされた前記描画データに基づいて、画像形成デバイスでの画像形成処理に適合した出力サイズで展開されたラスタイメージを含む画像形成ジョブを生成する画像形成ジョブ生成工程とを有することを特徴とする。
【0011】
上記目的を達成するために本発明の印刷処理プログラムは以下のような構成を備える。即ち、
印刷指示に応じてプリンタドライバを初期化し、前記プリンタドライバからプリンタ情報を取得するプリンタ情報取得手段と、
前記プリンタドライバの初期化に際して、アプリケーションプログラムから渡される印刷データの解像度を低下させるか否かを判定して前記プリンタ情報を発行する判定手段と、
前記プリンタ情報取得手段により取得した前記プリンタ情報に基づいて前記印刷データの解像度を決定して前記印刷データをスプールするスプール手段と、
前記スプール手段によりスプールされた前記印刷データを前記プリンタドライバから供給されるプリンタの解像度に応じた解像度でラスタイメージに展開する展開手段と、
前記展開手段により展開された前記ラスタイメージデータを前記プリンタドライバにより前記プリンタに送信させるように制御する制御手段とを有することを特徴とする。
【0012】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【0013】
図1は、本発明の実施の形態に係る印刷システムの概略構成を示す図である。尚、この図1で示される実施の形態として、例えば一般的に普及しているパーソナルコンピュータ(本発明の情報処理装置に相当する)にMicrosoft社のWindows(登録商標)をオペレーティングシステム(以下、OSと呼ぶ)として使用し、印刷処理機能を有する任意のアプリケーション101をインストールし、更に、このコンピュータにプリンタ108を接続した形態が考えられる。
【0014】
アプリケーション101が印刷要求した描画データ(文書データ、画像データ等の印刷データ)は、OSの描画モジュールであるグラフィックデバイス・インターフェース(Graphics Device Interface:以下、「GDI」)102経由でプリンタドライバ103に渡される。これによりプリンタドライバ103により印刷ジョブが生成され、この生成された印刷ジョブはプリンタ108へ印刷要求として出力される。GDI102は、通常、一旦、そのデータをEMF(Enhanced Meta File)データとしてスプールファイル104にスプール(OSのスプール処理)し、そのスプールが終了すると、プリントプロセッサ105に印刷要求を発行する。これによりプリントプロセッサ105は、スプールファイル104から印刷出力情報と描画データをページ単位で読み込み、1ページずつGDI102を介してプリンタドライバ103に出力して印刷するように要求する。このプリントプロセッサ105は、スプールファイル104にスプールされている描画データをプリンタドライバ103に出力する際、プリンタドライバ103から出力されるラスタイメージデータの解像度に合わせて座標情報を変換する機能がある。尚、このプリントプロセッサ105は、OSのモジュールとして用意されているが、プリンタのメーカ等がカスタマイズしたプリントプロセッサ105をプリンタドライバ103とともに供給し、それらをハードディスクにインストールすることも許容されている。こうしてプリントプロセッサ105から印刷が要求されたプリンタドライバ103は、OSの描画機能であるGDIレンダリングエンジン107を用いて、その描画データをプリンタの印刷解像度に合わせてラスタイメージデータにレンダリングした後、色処理やプリンタコマンドの付加などを行い、印刷ジョブとして生成し、ポートモニタ106経由でプリンタ108に送信する。
【0015】
このOSのスプール処理で作成されるスプールファイル104は、アプリケーション101が印刷を要求しているコマンド、或いはビットマップイメージ等をファイルとして保存している。この際、通常、文字については、文字種、文字列のキャラクタコードと座標情報などが保存され、写真などのイメージは、オリジナル画像情報と座標情報とが保存されている。これらキャラクタ、グラフィック及びイメージデータは、プリンタドライバ103で読み込まれた後、GDIレンダリングエンジン107でレンダリングされてプリンタ108の解像度に応じたラスタイメージデータに変換される。そのため、最近のプリンタ108における高画質化に伴う高解像度化においても、スプールデータ104のサイズは大きくならず問題とならなかった。なお、GDI102とGDIレンダリングエンジン107は、説明を分かりやすくするために個別に記載したが、米国マクロソフト社のWindows(登録商標)OSでは、同一の描画出力モジュールで構成されている。また、プリンタドライバ103自体が、レンダリング機能を備えていてもよいが、GDI102(107)がサポートする描画関数の拡張に備えて、その都度、プリンタドライバ103のレンダリング機能がサポートするように開発することはプリンタ企業にとって負担となるため、OSの描画機能(GDIレンダリングエンジン107)を用いてレンダリングさせることが望ましい。
【0016】
しかし、その描画データが複雑なデータ等の場合には、プリンタ108やプリンタドライバ103の機能によっては、正常に印刷できないことがある。このため、アプリケーション101によっては、レンダリングをアプリケーション101で行い、その結果であるラスタイメージをプリンタドライバ103に出力するものがある。このような場合、通常、アプリケーション101からはプリンタドライバ103におけるレンダリング処理を行う場合と同じ解像度で、ページの画像全体をラスタイメージに変換して出力するため、ラスタイメージデータの解像度(プリンタ108の解像度)の増加とともにスプールデータ104自体も巨大化してしまうという問題が発生している。また、レンダリング処理を行わないアプリケーションでも、前述したようにスプールデータサイズの増大によるシステムエラーが発生するという問題がある。
【0017】
図2は、印刷対象の各用紙サイズ及びプリンタ108の各レンダリング解像度に対する、1ページ分のスプールファイル104のサイズの一例を示した図である。
【0018】
図2は1ページ分のスプールファイル104の容量を示しており、ここではA4,B4,A3判のそれぞれに対する各解像度(600,720,1200dpi)でのスプールデータのデータ容量がメガバイトの単位で表わされている。当然、複数ページがスプールされた場合には、スプールファイル104の必要な容量は更に大きくなる。このようにしてスプールファイル104のサイズが大きくなると、印刷に要する時間が長くなるだけでなく、ハードディスクの容量不足でスプールエラーが発生したり、扱うラスタイメージデータが巨大化することから、アプリケーション101やスプーラ内部でメモリエラー等が発生したりして、正常に印刷されないという問題が発生する。
【0019】
このような事態に対する対処法としては、レンダリングの解像度を下げる、即ち、ラスタイメージの解像度を下げることも考えられるが、文字やグラフィックを描画コマンドとして出力するアプリケーションの場合、これでは通常のキャラクタコードで出力されている文字列まで低い解像度でレンダリングされることになり、プリンタ108本来の印刷品位での印刷が不可能になる。
【0020】
そこで本実施の形態では、レンダリング解像度、即ち、プリンタ108の解像度に応じた解像度でレンダリングしたラスタイメージデータを出力するアプリケーション101から出力されるスプールファイル104のサイズを小さくしながら、印刷キャラクタコードで出力される文字列などのように、解像度に依存せずに出力される描画データについては高品位でレンダリングすることを目的とする。
【0021】
次に本実施の形態1に係る処理について図3乃至図8を参照して詳しく説明する。
【0022】
図5は、本実施の形態1に係る印刷システムにおける処理の流れを説明するフローチャートである。ここではアプリケーション101が作成した描画データをスプールする処理について説明する。
【0023】
まずアプリケーション101は、印刷するための描画データ(文書データや画像データ等の印刷データ)を、通常、対象とするプリンタ108の解像度や印刷領域(解像度に応じたピクセル数)に合わせて作成する。そしてステップS101で、アプリケーション101は、OSのGDI102に対してプリンタドライバ103の初期化を要求し、プリンタ108の印刷領域や解像度などのプリンタ情報を予め定められたAPI(Application Programming Interface)を用いて要求する。次にステップS102に進み、GDI102は、この要求に応じてプリンタドライバ103を初期化し、プリンタドライバ103に対して「GDIINFO」と呼ばれるプリンタ情報を要求する。
【0024】
この「GDIINFO」は、図3に示すようなデータ構造をしている。
【0025】
またプリンタドライバ103は、「DEVMODE」と呼ばれるユーザ設定値を基に用紙サイズや用紙内の印刷領域などを設定する。例えば、「ulLogPixelsX」301,「ulLogPixelsY」302はレンダリング解像度であり(画像の水平及び垂直方向の論理インチ当りの画素数)、このレンダリング解像度に応じて、「ulHorzRes」(画素単位での印刷幅)303/「ulVertRes」(画素単位での印刷高さ)304、「ptlPhysOffset.x」(印刷領域の左側オフセット)305/「ptlPhysOffset.y」(印刷領域の上側オフセット)306などの値を設定する。
【0026】
図4は、ユーザ設定値「DEVMODE」の一例を示す図である。
【0027】
この「DEVMODE」のデータ構造において、「dmDriverData」(デバイス固有の情報)401以外は、OSで共通の仕様となっている。この「dmDriverData」401は、各プリンタドライバ毎に自由に使用することが可能である。
【0028】
前述したレンダリング解像度でレンダリングしたラスタイメージデータを、アプリケーション101から出力するスプールファイル104のサイズを小さくするには、このレンダリング解像度の値を小さくすれば良い。しかし、このレンダリング解像度を小さくすると、キャラクタコードで表わされている文字列などのように、解像度に依存しない描画データについても、その印刷品位が下がってしまう。
【0029】
ここでプリンタドライバ103が初期化されるケースは2種類あり、一つは、前述したアプリケーション101がGDI102に描画データを出力する際に行う初期化である。もう一つは、プリントプロセッサ105がスプールファイル104のデータをプリンタ108に出力する際の初期化である。
【0030】
OSの仕様に基づけば、「ulLogPixelsX」301,「ulLogPixelsY」302はレンダリング解像度を設定することになっている。ここで、従来のプリンタドライバは、両方の初期化に対して同じ解像度を返している。しかし、本実施の形態に係るプリンタドライバ103は、アプリケーション101からの初期化の場合だけスプール軽減用の低解像度の値を返し、プリントプロセッサ105からの初期化の時には高解像度のレンダリング解像度(プリンタ108の解像度に対応)を返している。これにより、アプリケーション101において、レンダリング解像度でレンダリングしたラスタイメージデータを出力するスプールファイル104のサイズを小さくしながら、キャラクタコードで出力されている文字列など、解像度に依存せずに出力される描画データについては高品位のままで印刷することができる。
【0031】
そこでまず、プリンタドライバ103は、スプールサイズ軽減用の解像度を返すか、即ち、スプールする描画データの解像度を低下させる必要があるかを判定する必要がある(ステップ103)。
【0032】
この判定処理について図6のフローチャートを参照して説明する。尚、図6において、図5と共通する部分は同じ記号で示している。
【0033】
図6は、図5のステップS103における、プリンタドライバ103によりスプールサイズの軽減機能をオンするかどうかを判定し、それに応じた解像度を返す処理を示すフローチャートである。
【0034】
まずステップS201で、プリンタドライバ103は、その初期化がスプール目的のGDI102を経由したアプリケーション101からの初期化か、実際に印刷するためのGDI102を経由したプリントプロセッサ105からの初期化かであるかを判定する。これを判定する一つの方法として、呼び元のモジュールを調べることが可能なので、呼び元のモジュールの中にプリントプロセッサ105を示すコードが含まれるかどうかで判定することができる。
【0035】
また他の方法としては、前述したようにプリントプロセッサ105としてOS標準のものを使う以外に、カスタマイズしたプリントプロセッサ105をプリンタドライバ103とともに供給することもあり得る。その場合、プリントプロセッサ105が、プリンタドライバ103を初期化する際に、「DEVMODE」にプリントプロセッサ105からの初期化であるというフラグを設定しておき、プリンタドライバ103がその値を参照して、その初期化がどこから指示されたかを判定することができる。
【0036】
このステップS201で、アプリケーション101からの初期化であると判断した場合はステップS202に進み、プリンタドライバ103は、スプールサイズの軽減機能が必要かどうかを判定する。これを判定する一つの方法としては、ユーザが選択する方法がある。これは印刷中にエラーが発生して印刷されなかったり、印刷に要する時間が異常に長かったり、印刷してもページの一部又は全体の描画データが抜けて印刷された場合には、ユーザの判定により、プリンタドライバ103のユーザ設定機能を用いて、このスプールサイズの軽減機能をオンにする。
【0037】
図12は、このスプールサイズの軽減機能を設定するためのプリンタドライバ103によるユーザインターフェース画面例を示す図である。
【0038】
このユーザインタフェース画面は、プリンタドライバ103の印刷詳細設定のプロパティを開き、カスタム設定ボタン(図示省略)を指示することによりプリンタドライバ103により表示される。ユーザは印刷の開始を命令する際に、アプリケーション101の印刷設定画面から、プリンタドライバ103の印刷詳細画面を呼び出して、このカスタム設定用の画面を表示させ、このスプールサイズ軽減機能の設定を行うことができる。即ち、図12の例では「印刷データのサイズを小さくする」のチェックボックスをチェックすることにより、スプールサイズ軽減機能の設定を行う。プリンタドライバ103は、「DEVMODE」の「dmDriverData」401に、このスプールサイズの軽減機能を実行するか否かの情報を記憶しておき、印刷時にその情報を参照することで、スプールサイズを軽減させるかどうかを判定することができる。
【0039】
また他の方法としては、プリンタドライバ103で、ページ全体をイメージで出力した場合を想定した1ページ当りのスプールファイル104のサイズが所定のサイズ以上かどうかに基づいて判定することも可能である。この方法では、「DEVMODE」の用紙のサイズを示す「dmSize」402や、印刷品位を示す「dmPrintQuality」(プリンタの解像度)403に基づいて判定される。またその他には、プリンタドライバ103で、ユーザがスプールサイズに基づいてスプールサイズを軽減させるかどうか判定するか、スプールサイズの軽減処理を常にオン又はオフにする設定機能を設け、その設定値とスプールサイズとからスプールサイズの軽減処理を実行するかどうかを判定することも可能である。
【0040】
図13は、図12のユーザインタフェース画面を拡張した表示画面例を示す図であり、スプールサイズの軽減機能の設定に際して、スプールサイズに基づいて自動判定する機能を追加した例を示している。この例では、「印刷データのサイズを小さくする」のチェックボックスがチェックされている状態で「自動的に判定する」が選択できるようになる。「印刷データのサイズを小さくする」のチェックボックスがチェックされていて(スプールサイズの軽減処理が選択)、かつ「自動的に判定する」のチェックボックスがチェックされている場合に、スプールサイズに基づいて、自動的にスプール軽減処理を実行するかどうかが決定される。
【0041】
再び図6に戻り、ステップS201又はS202で「NO」と判定した場合(スプールサイズの軽減を行わない)にはステップS204に進み、プリンタドライバ103は、印刷用のレンダリング解像度(プリンタ108の解像度)を基にGDI102にプリンタ情報を返す。
【0042】
一方、上記ステップS201及びS202で「YES」と判定した場合(スプールサイズの軽減を行う)はステップS203に進み、プリンタドライバ103は、GDI102経由で、スプールサイズを軽減するために、低解像度のプリンタ情報をアプリケーション101に返す。
【0043】
本実施の形態では、プリンタの印刷解像度が600dpiであり、スプールサイズ軽減機能を実行する際の解像度を300dpiとしている。この300dpiの場合、アプリケーションが描画データをラスタイメージで出力するものであっても、OSのスプール処理に伴うスプールサイズは、描画データが多値データであっても1GB(ギガバイト)を超えることがなくなる。これにより、情報処理装置のRAM領域やHDDの空き容量を加味しても、印刷処理でスプール処理エラーになることは一般にはありえないと予想できる。このようにして、前述したレンダリング解像度でレンダリングしたイメージを出力するアプリケーション101からのスプールファイル104の出力データサイズを小さくできる。しかし、レンダリング解像度でレンダリングしたイメージを出力するアプリケーション101の場合には、この低下させた解像度でレンダリングした結果を出力するため、解像度が低下するほどスプールサイズが小さくなるが、それに応じて、その印刷結果も劣化してしまう。そこで、用紙サイズや印刷品位などに応じて、この解像度を決定する必要がある。
【0044】
こうしてステップS203或いはS204を実行した後ステップS106(図5)に進み、GDI102に返されたプリンタ情報は、そのGDI102を経由してアプリケーション101に返される。これによりアプリケーション101は、この返されたプリンタ情報に基づいて、その得られた解像度や印刷領域などに基づいて描画データを作成し、GDI102に出力する。
【0045】
次にステップS107に進み、GDI102は、アプリケーション101から要求された描画データを、Windows(登録商標)の標準スプールファイル104のフォーマットであるEMFフォーマットで、スプールファイル104としてスプールする。このスプールが終了するとステップS108に進み、GDI102は、プリントプロセッサ105に印刷の開始を要求する。
【0046】
次にステップS109に進み、ステップS108で印刷開始が指示されたプリントプロセッサ105は、プリンタドライバ103を初期化するため、GDI102に初期化を要求する。ここで前述の図6のステップS201の判定で、「DEVMODE」にプリントプロセッサ105からの初期化であることを設定して判定する場合には、プリントプロセッサ105は、初期化する際に、この「DEVMODE」にプリントプロセッサ105からの初期化であることを示す情報を設定し、GDI102に対し、プリンタドライバ103の初期化を要求するとともに、プリンタ108の印刷領域や解像度などのプリンタ情報を要求する。次にステップS110に進み、こうしてプリントプロセッサ105からプリンタドライバ103の初期化を要求されたGDI102は、プリンタドライバ103を初期化し、プリンタドライバ103に対してプリンタ情報である「GDIINFO」を要求する。
【0047】
次にステップS111に進み、これに応じてプリンタドライバ103は、「GDIINFO」を設定して初期化する。この際、前述のステップS103と同じ初期化関数が呼ばれるため、ステップS103と同様に、ステップS201の判定を行う。ここでは、アプリケーション101からの初期化でないと判定されるので、プリンタ108の解像度である印刷用の高解像度でプリンタ情報を「GDIINFO」に設定し、このプリンタ情報をGDI102に返す。
【0048】
次にステップS112に進み、プリントプロセッサ105は、このプリンタ情報を基に描画データをGDI102に出力する。この際、まずGDI102に対し、GDI102経由で得たプリンタ情報に従った解像度への変換(座標空間の変更)を要求する。次にステップS113に進み、GDI102は、プリントプロセッサ105が要求した解像度の変換指示に従って、スプールファイル104の描画データを1ページ毎に読み出してプリンタドライバ103に出力する。その結果、スプールされた時と異なる解像度になっても、GDI102内で解像度変換されてプリンタドライバ103に対して印刷要求されるので、同じレイアウトで印刷することができる。
【0049】
アプリケーション101からGDI102への出力コマンドと、GDI102からプリンタドライバ103への出力コマンドの簡易的に記述した例を図7と図8に示す。
【0050】
図7は、一般的な印刷による出力コマンドの一例を示す図、図8は、本実施の形態に係る印刷コマンドの一例を示す図である。
【0051】
図7において、グラフィックイメージ701は、アプリケーション101からの出力が、プリンタドライバ103のレンダリング解像度に合わせて印刷されている。即ち、イメージ701は600×600がそのイメージで、(200,200)を始点として600×600画素で出力されている。702はキャラクタコードで出力されている文字列の出力領域を示している。ここで文字列「abcdefghijk」は、サイズ200で位置(1000,400)に出力され、文字列「123456789」はサイズ200で、位置(1000,600)に出力される。703はプリンタドライバ103のレンダリング解像度に依存しないオリジナルイメージの拡大出力領域である。このイメージ703は、100×100のイメージを始点(200,1000)から1600×1600のサイズで拡大して出力されている。実際には、レンダリング解像度のラスタイメージデータで出力するアプリケーションの場合、このページ全体をレンダリング解像度のラスタイメージデータに変換して印刷するが、この図7では、ラスタイメージデータではなく、描画データによって、この印刷イメージを設定している。この図7に示す通常の印刷例では、アプリケーション101からの出力が、そのままGDI102からの出力になっている。従って図7の例では、GD1102は、上述の701〜703のサイズ及び表示位置、表示サイズをそのまま出力して描画している。即ち、図7の例では、「アプリケーションからの出力コマンド」と「GDIからの出力コマンド」とは完全に一致している。
【0052】
図8は図7と同じ描画データによる印刷結果を示す図であるが、この例では、アプリケーション101からの出力時にはスプール軽減用の低解像度として、印刷用のレンダリング解像度に対して縦横それぞれ1/2の値を返しており、これは図8の「アプリケーションから出力コマンド」(図8)に示すようなコマンドで指定される。
【0053】
図7と比較すると明らかなように、図7の701では、「600×600ピクセルの画像」がスプールされているのに対し、この図8の801では、「300×300ピクセルの画像」がスプールされているので、スプールデータのサイズが減少している。しかし、レンダリング解像度に依存しない文字列及びイメージ802,803については、その座標情報やサイズが異なるだけで、同じデータサイズでスプールされる。即ち、文字列のサイズは、図7の702で示すサイズ「200」の半分「100」となり、座標情報も(1000,400),(1000,600)のそれぞれの半分である(500,200)、(500,300)となっている。また803で示すイメージに関しても、始点は図7の703の始点(200,1000)の半分の(100,500)、サイズも図7の703の(1600×1600)の半分である(800×800)となっている。
【0054】
上述の「アプリケーションから出力コマンド」(図8)では、イメージ801は、300×300画素のイメージで、(100,100)を始点として、サイズ300×300画素で出力されている。また文字列「abcdefghijk」は、サイズ100で、位置(500,200)に出力され、文字列「123456789」は、サイズ100で、位置(500,300)に出力される。更にイメージ803は、100×100のイメージを、始点(100,500)から800×800のサイズで拡大して出力されている。
【0055】
また後述の「GDI102からの出力コマンド」(図8)においては、グラフィック801に関しては、図7のグラフィック701と比べて、印刷されるイメージのサイズ(解像度)が1/2×1/2で(300×300)となっていて小さくなっているため、印刷された画像品位が低下している。しかし、プリントプロセッサ105の要請によるGDI102の解像度変換の結果、600×600のサイズで描画され、かつ文字列802,イメージ803に関しては、図7の702,703と全く同じコマンドで出力されるため、これら文字列802及びイメージ803は高いレンダリング解像度でレンダリングされ、図7の文字列702,イメージ703と同じ画像品位で印刷できることになる(ステップS113)。
【0056】
即ち、上述の「GDI102からの出力コマンド」(図8)では、イメージ801は、300×300画素のイメージで、(200,200)を始点として、サイズ600×600画素で描画されている。また文字列「abcdefghijk」は、サイズ200で、位置(1000,400)に描画され、文字列「123456789」は、サイズ200で、位置(1000,600)に描画される。更にイメージ803は、100×100のイメージを、始点(200,1000)から1600×1600のサイズで拡大して描画されている。
【0057】
次いでステップS114に進み、プリンタドライバ103は、上記スプールファイル104を、GDIレンダリングエンジン107を用いてラスタイメージデータにレンダリングする。ここで、前述したように、GDIレンダリングエンジン107はGDI102と同じモジュールである。そしてステップS115に進み、プリンタドライバ103は、そのレンダリングされたラスタイメージデータをプリンタコマンドの印刷データに変換してプリンタ108に出力する。そして、この処理を終了する。
【0058】
以上説明したように本実施の形態1によれば、印刷された画像の劣化を抑えて、アプリケーションにより印刷が指示されたデータをスプールするデータ量を削減できるという効果がある。
【0059】
[実施の形態2]
上記実施の形態1では、低解像度のレンダリング解像度用にスプールされたEMFフォーマットのスプールファイル104を、プリンタドライバ103で高解像度にレンダリングする方法について述べた。しかし、アプリケーション101の判断で、EMFフォーマットでのスプール自体を止めるように指示して印刷することがある。例えば、プリンタドライバ103がプリンタ108に送信する印刷コマンドデータそのものをスプールするRAWスプールなどに変更する場合である。その場合、前述の実施の形態1では、「アプリケーションからの出力コマンド」(図8)がそのまま、GDI102経由でプリンタドライバ103に出力されるために、縮小されて印刷されてしまう。
【0060】
そこで、以下ではこれを防止する方法について説明する。
【0061】
図9は、本発明の実施の形態2に係る印刷システムのRAWスプールの構成を示すブロック図で、前述の図1と共通する部分は同じ記号で示し、その説明を省略する。
【0062】
前述の実施の形態1では、アプリケーション101が印刷要求したデータはGDI102で一旦EMFデータとしてスプールファイル104にスプールされていた。これに対して本実施の形態2に係るRAWスプールの場合には、GDI102は、直接プリンタドライバ103に印刷を要求する。こうして印刷が要求されたプリンタドライバ103は、GDIレンダリングエンジン107を用いて、その描画データをラスタイメージデータにレンダリングした後、色処理やプリンタコマンドの付加などを行って出力する。そして、そのプリンタコマンドがスプールファイル104としてスプールされる。このスプールされたプリンタコマンドは、プリントプロセッサ105及びポートモニタ106を経由してプリンタ108に送信される。
【0063】
本実施の形態2における処理について、前述の実施の形態1との違いを中心に図10A,10Bのフローチャートを参照して説明する。尚、図10A,10Bにおいて図5のフローチャートと共通する部分は同じ記号で示しており、それらの説明を省略する。
【0064】
ステップS106(図10A)で、アプリケーション101が描画データを作成してGDI102に出力する際に、アプリケーション101はEMFスプールを禁止することが可能である。
【0065】
図11は、アプリケーション101が初期化するときに指定する「DOCINFO」のデータ構造の一部を示した図である。
【0066】
この「DOCINFO」の「lpszDatatype」1101で、スプールファイル104のデータタイプを指定することができる。通常は、0(NULLと呼ばれる)を指定し、システムの設定をそのままで印刷するが、文字列が「emf」であればEMFスプールを示し、「raw」であればRAWスプールへの切り替えを要求している。
【0067】
こうしてステップS301で、GDI102は、「DOCINFO」の「lpszDatatype」1101に基づいて、アプリケーション101からEMFスプール以外が指定されたかを判定する。ここで「NO」、即ち、EMFスプールが指定されると前述のステップS107乃至ステップS113(図10A,10B)までの処理を行う。
【0068】
一方ステップS301(図10A)で「YES」、即ち、EMFスプール以外が指定されるとステップS302(図10B)に進み、GDI102はアプリケーション101からの描画データをプリンタドライバ103に直接出力する。
【0069】
こうしてステップS107乃至S113(図10A,10B)を実行するか、或いはステップS302の処理を実行するとステップS114(図10B)に進み、GDI102経由でプリンタドライバ103に印刷を要求する。しかし、ステップS301で「YES」と判定した場合には、スプール軽減用の低解像度でレンダリングされてしまう。
【0070】
そこでステップS303以降の処理では、低解像度でレンダリングされた場合だけ、プリンタ108に出力する前にスプール軽減用の低解像度から、印刷用の高解像度に拡大する。そのためステップS303で、レンダリングされたイメージのサイズなどからスプールサイズ軽減用の低解像度でレンダリングしたかどうかを判定する。このステップS303で「NO」と判定された場合にはステップS115(図10B)に進み、印刷用の高解像度でレンダリングされているので、プリンタドライバ103は、そのラスタイメージデータをそのままプリンタ108に出力する。
【0071】
一方、ステップS303で「YES」と判定した場合はステップS304に進み、この場合にはスプールサイズ軽減用の低解像度でレンダリングされているので、低解像度でラスタライズされているラスタイメージデータを、GDIレンダリングエンジン107が持つ拡大機能用いて印刷用の解像度に拡大する。そして最後にステップS305で、その拡大したラスタイメージデータをプリンタコマンドに変換してプリンタ108に出力する。そして、本処理を終了する。
【0072】
以上説明したように本実施の形態2によれば、プリンタ108の解像度に応じたレンダリング解像度でレンダリングしたラスタイメージデータを出力するアプリケーション101からの出力スプールファイルのサイズを小さくしながら、キャラクタコードで記述されている文字列などのように、解像度に依存せずに出力される描画データについては高品位でレンダリングできる。
【0073】
[実施の形態3]
プリンタの高解像度化に伴い縮小しても視認性が損なわれにくいため、複数のページを縮小して一枚の用紙に印刷するというN−up印刷(縮小配置印刷)がよく使われるようになってきた。N−upのNは、1ページ当たりの印刷ページ数を示し、例えば1枚の用紙に4ページ分の描画データを印刷する場合は4−upと呼ばれている。
【0074】
図14は、4ページ分の描画データを1枚の用紙に2×2で印刷した4−up印刷の一例を示す図である。
【0075】
このようにN−up印刷においては、各ページの描画データを縮小して印刷するため、図表等のアプリケーション101でよく用いられる細線などは、縮小された場合に線幅が「0」になってしまい、線として印刷されない場合がある。
【0076】
図15は、図14の印刷データを印刷した場合に、ページ1(Page1)の表の一部の細線が印刷されなかった例を示す図である。
【0077】
図15の例では、1ページ(Page1)目の描画データにおいて細線の一部が印刷されていない。そこで本実施の形態3では、N−up印刷時における細線の欠落を防止する技術について説明する。尚、この実施の形態3における印刷システムのハードウェア構成は前述の実施の形態1の場合と同様であるため、その説明を省略する。
【0078】
前述の実施の形態1で説明したように、アプリケーション101が印刷要求した描画データ(文書データ、画像データ等の印刷データ)は、通常、GDI102が一旦、EMFデータとしてスプールファイル104にスプールし、プリントプロセッサ105が、スプールファイル104から印刷出力情報と描画データをページ単位で読み込み、1ページずつGDI102を介してプリンタドライバ103に出力して印刷している。
【0079】
このGDI102には、このスプールされたページ毎に用紙の一部の領域を指定し、その領域に1ページ分のデータを縮小して出力する機能があり、GDI102に対し用紙への出力終了命令を指定するまでは同じ用紙内に何ページでも出力できる。プリントプロセッサ105はこの機能を用いてN−up印刷を行っている。
【0080】
つまり、プリントプロセッサ105は、プリンタドライバ103に出力する際に、プリンタドライバ103が返した印刷領域をN等分し、スプールファイル104から印刷出力情報と描画データをページ単位で読み込み、1ページずつGDI102を介してN等分した領域に順番に出力している。
【0081】
本実施の形態3では、プリンタドライバ103は、アプリケーション101に対しては、縮小されることを考慮して解像度に縮小率を掛けた解像度に基づくプリンタ情報を返す。一方、印刷時には、プリンタドライバ103は、印刷用の高解像のプリンタ情報を返すことで、印刷時に縮小された線幅は「1」のままで印刷できる。
【0082】
以下、本実施の形態3に係る処理について説明する。この実施の形態3に係るハードウェア構成は前述の実施の形態1の印刷システムと同じハードウェア構成であるため、その説明を省略する。
【0083】
図16は、本発明の実施の形態3に係る印刷システムにおける処理の流れを説明するフローチャートで、前述の実施の形態1のフローチャート(図5)と共通する処理ステップは同じ記号で示し、それらステップの説明を省略する。ここではアプリケーション101が作成した描画データをスプールする処理について説明する。
【0084】
ステップS102で、GDI102はプリンタドライバ103を初期化し、「GDIINFO」と呼ばれるプリンタ情報を要求する。次にステップS402に進み、プリンタ情報に基づいて、N−up用の細線欠け対策モードがオンであると判定されるとステップS403に進み、アプリケーション101からの初期化の場合だけ、プリンタドライバ103は、N−up用の細線欠けの対策用に低解像度の値を返す。N−up用の細線欠け対策モードがオフのとき、或いはプリントプロセッサ105からの初期化の時は、ステップS204で、高解像度のレンダリング解像度(プリンタ108の解像度に対応)を返す。
【0085】
図17は、図16のステップS303における、プリンタドライバ103によりN−up用の細線欠け対策するかどうかを判定し、それに応じた解像度を返す処理を示すフローチャートである。
【0086】
図17において、ステップS201で、アプリケーション101からの初期化であると判断した場合はステップS402に進み、N−up用の細線欠けの対策機能がオンかどうかを判定する。これはユーザが、図18のユーザインターフェースを用いて、この機能をオンに設定したかどうかにより判定する。N−upで印刷した結果、細線の一部が抜けて印刷された場合には、ユーザの判定により、プリンタドライバ103のユーザ設定機能を用いて、このN−up用の細線欠け対策機能をオンにする。
【0087】
図18は、N−up用の細線欠け対策機能を設定するためのプリンタドライバ103のユーザインターフェースの画面例を示す図である。ここで「N−up時の細線欠けを防ぐ」のチェックボックスをチェックすることにより、N−up用の細線欠けの対策機能をオンに設定できる。
【0088】
ユーザは印刷開始する際に、アプリケーション101の印刷設定画面から、プリンタドライバ103の設定を行うことができる。プリンタドライバ103は、「DEVMODE」の「dmDriverData」401(図4)に、このN−up用の細線欠け対策機能を実行するか否かの情報を記憶し、その情報を、図17のステップS402で参照することで判定することができる。
【0089】
図17のステップS201又はS402で「NO」(N−up用の細線欠け対策を行わない)と判定した場合はステップS204に進み、プリンタドライバ103は、印刷用のレンダリング解像度(プリンタ108の解像度)を基にGDI102にプリンタ情報を返す。
【0090】
一方、上記ステップS201及びS402で「YES」(N−up用の細線欠け対策を行う)と判定した場合はステップS403に進み、プリンタドライバ103は、GDI102経由で、N−up用の細線欠け対策機能用の低解像度のプリンタ情報をアプリケーション101に返す。
【0091】
この場合の解像度の決定は、N−upの縮小率から決定できる。縦方向にNvページ分、横方向にNhページ分の描画データを一枚の用紙に印刷(Nv×Nh−up)する場合、縮小率の逆数Sは、Nh≧Nvの場合はS=Nh、Nh<Nvの場合はS=Nvとなる。
【0092】
しかし、通常、N−upでは見やすさを向上するため、各ページ間や、各ページの周りに空白を入れることが多い。
【0093】
図19は、N−up印刷において、各ページの印刷画像間に空白部分を挿入した例を説明する図である。図19の斜線分が空白部分を示している。この空白部をどのようにとるかは色々な方法があるが、水平方向、垂直方向に等間隔であることが望ましいので、等間隔である場合を例にして説明する。
【0094】
いま用紙の幅をW、用紙高さをHとする。水平方向の各空白長さIh、垂直方向の各空白高さIvは、拡大/縮小率が決定した後でないと決まらないので、まず各空白長さの最低値Iを決め、これに基づいて縮小率を求めて決定する。
【0095】
縮小後の各ページ分の画像幅は、[{W−I×(Nh+1)}÷Nh]で求めることができるので、水平方向の縮小率の逆数Shは、
Sh=W÷[{W−I×(Nh+1)}÷Nh]
で求まる。同様に、垂直方向の縮小率の逆数Svは、
Sv=H÷[{H−I×(Nv+1)}÷Nv]
で求まり、Sは次の様にして決定される。即ち、Sh≧Svの場合はS=Sh、Sh<Svの場合はS=Svとなる。
【0096】
なお、この計算の結果、Sは整数にならない場合がある。
【0097】
本実施の形態3においても、前述の実施の形態2と同様の処理を行うことが可能である。その場合にはレンダリング後に拡大することになるが、その拡大時に非整数倍で拡大すると処理時間がかかる等の問題があるため、少数以下を切り上げて整数化することも可能である。
【0098】
印刷用のレンダリング解像度をRとすると、N−up印刷用の細線欠け対策用の解像度はR/S(S<1)となる。これにより、1ピクセル幅等で印刷するように要求された細線であっても、縮小後でも線幅が「0」にならない線としてスプールされる。
【0099】
次に図16のステップS110以降の処理について説明する。
【0100】
ステップS110で、プリントプロセッサ105からプリンタドライバ103の初期化を要求されたGDI102は、プリンタドライバ103を初期化し、プリンタドライバ103に対してプリンタ情報である「GDIINFO」を要求する。これに応じてプリンタドライバ103は、「GDIINFO」を設定して初期化する。この際、前述のステップS303の場合と同じ初期化関数が呼ばれるため、ステップS303と同様に、ステップS201(図17)の判定を行う。ここでは、アプリケーション101からの初期化でないと判定されるので、プリンタ108の解像度である印刷用の高解像度を用いてプリンタ情報を「GDIINFO」に設定し、このプリンタ情報をGDI102に返す。
【0101】
次にステップS312に進み、プリントプロセッサ105は、このプリンタ情報を基に、描画データをGDI102に出力する。N−up印刷の際には、スプールファイル104の描画データから1ページ毎に読み出してプリンタドライバ103に出力するという処理をN回行う。この際、プリントプロセッサ105は、ページ毎にGDI102経由で得たプリンタ情報に従い、GDI102に対し、印刷位置の指定及び、解像度変換(座標空間の変更)を要求する。そしてNページ分の印刷が終了すると、用紙への書き込みが終了したことをGDI102に通知する。
【0102】
次にステップS113に進み、GDI102は、プリントプロセッサ105が要求した各ページの印刷データの印刷位置、解像度の変換指示に従って、Nページ分のスプールファイル104の描画データを1枚のページデータとしてプリンタドライバ103に出力する。次にステップS114に進み、プリンタドライバ103は、上記スプールファイル104を、GDIレンダリングエンジン107を用いてラスタイメージデータにレンダリングする。
【0103】
このとき、N−up印刷用の細線欠け対策がオフの場合には、アプリケーション101がレンダリング解像度600dpiのプリンタ108に対し、1ピクセル幅の細線を1インチ描画しようとした場合、ステップS204で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ピクセルの幅で描画されることになる。つまり、位置によって印刷されたりされなかったりする。
【0104】
一方、N−up印刷用の細線欠け対策がオンの場合には、1ピクセル幅の細線を1インチ描画しようとした場合、ステップS403で、4−upではプリンタドライバ103が解像度300dpiのプリンタ情報を返すので、アプリケーション101は、(0,0)〜(1,300)の領域を塗りつぶすという描画命令を実行する。しかし、実際に印刷するときには、ステップS204で、プリンタドライバ103が解像度600dpiのプリンタ情報を返す。これにより、前述の実施の形態1で説明したように、プリントプロセッサ105がスプールされている描画データをプリンタドライバ103の解像度に合わせて座標情報を変換して出力する機能が働き、(0,0)〜(2,600)を塗りつぶすという描画命令に変換される。その結果、4−up印刷で1/2に縮小して印刷しても、(0,0)〜(1,300)の描画命令として、1ピクセル幅の細線が0.5インチ描画されることになる。
【0105】
そしてステップS115に進み、そのレンダリングしたラスタイメージデータをプリンタコマンドに変換してプリンタ108に出力する。そして、この処理を終了する。
【0106】
以上説明したように本発明の実施の形態3によれば、N−up印刷で各ページの印刷データを縮小して印刷しても、図表などのアプリケーション101で使われる細い細線などは縮小されて幅「0」になってしまう、即ち、細線が印刷されないという問題を回避できる。
【0107】
(その他の実施の形態)
本発明の目的は前述したように、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステムあるいは装置に提供し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0108】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【0109】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【0110】
【発明の効果】
以上説明したように本発明によれば、画像形成デバイスにラスタイメージデータを出力するためのスプールファイルのサイズを小さくし、かつ高品位の画像を形成できるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係る印刷システムの構成を示すブロック図である。
【図2】各用紙サイズ及び各レンダリング解像度に対する1ページ当りのスプールファイルのサイズの一例を示す図である。
【図3】GDIINFOのデータ構造の一部を示す図である。
【図4】DEVMODEのデータ構造の一部を示す図である。
【図5】本発明の実施の形態1に係る印刷システムにおける処理の流れの一例を示すフローチャートである。
【図6】図7のステップS103における判定及びその判定に基づく処理を説明するフローチャートである。
【図7】通常の印刷におけるアプリケーションからの出力コマンドとGDIからの出力コマンドの例を簡易的に記述した図である。
【図8】本実施の形態に係る印刷におけるアプリケーションからの出力コマンドとGDIからの出力コマンドの例を簡易的に記述した図である。
【図9】本発明の実施の形態2に係る印刷システムの構成を示すブロック図である。
【図10A】本発明の実施の形態2に係る印刷システムにおける処理の流れの一例を示すフローチャートである。
【図10B】本発明の実施の形態2に係る印刷システムにおける処理の流れの一例を示すフローチャートである。
【図11】DOCINFOデータ構造の一部を示す図である。
【図12】スプールサイズの軽減機能を設定するためのプリンタドライバによるユーザインターフェース画面例を示す図である。
【図13】スプールサイズから判定する機能を追加したスプールサイズの軽減機能を設定するためのプリンタドライバによるユーザインターフェース画面例を示す図である。
【図14】4ページ分のデータを1枚の用紙に2×2で印刷した4−up印刷例を示す図である。
【図15】N−up印刷で細線の一部が印刷されなかった例を示す図である。
【図16】本発明の実施の形態3に係る印刷システムにおける処理の流れを説明するフローチャートである。
【図17】図16のステップS303における判定及びその判定に基づく処理を説明するフローチャートである。
【図18】N−up用の細線欠け対策機能を設定するためのプリンタドライバによるユーザインターフェース画面例を示す図である。
【図19】N−up印刷で、各ページの印刷データ間に空白を挿入した様子を説明する図である。

Claims (21)

  1. アプリケーションプログラムにより作成された描画データをオペレーションシステムによりスプールさせ、当該スプールされた描画データに基づいて前記オペレーションシステムから描画データを受け取るプリンタドライバを備える情報処理装置であって、
    前記オペレーションシステムによるスプール処理のスプールサイズを減らす軽減モードを実施するか否かを判定する判定手段と、
    前記判定手段により前記軽減モードを実施すると判定されると、前記アプリケーションプログラムにより作成される描画データの出力サイズを低下させて前記オペレーションシステムによりスプールするように指示する第一指示手段と、
    スプールされた前記描画データに基づいて、画像形成デバイスでの画像形成処理に適合した出力サイズで展開されたラスタイメージを含む画像形成ジョブを生成する画像形成ジョブ生成手段と、
    を有することを特徴とする情報処理装置。
  2. 前記画像形成用デバイスは、ホストベースプリンタであることを特徴とする請求項1に記載の情報処理装置。
  3. 前記軽減モードを設定する設定手段を更に有し、
    前記第一指示手段は、前記設定手段により前記軽減モードが設定された場合に前記アプリケーションプログラムにより作成される前記描画データの出力サイズを低下させて前記オペレーションシステムによりスプールするように指示することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記設定手段は、更に前記軽減モードを自動的に設定するかどうかを設定でき、前記判定手段は、前記アプリケーションプログラムからのスプール指示に応じて、前記描画データのデータ量が所定量以上の場合に前記軽減モードを実施すると判定することを特徴とする請求項1又は2に記載の情報処理装置。
  5. スプールされた前記描画データをラスタイメージに展開する前記オペレーションシステムの展開モジュールに対して、前記画像形成デバイスでの画像形成処理に適合した出力サイズで展開するように指示する第二指示手段を更に有し、
    前記画像形成ジョブ生成手段は、前記第二指示手段で指示された出力サイズで展開されたラスタイメージを含む画像形成ジョブを生成することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  6. 1ページ内に複数ページ分の描画データを縮小して配置するように設定されている場合、前記第一指示手段は、前記アプリケーションプログラムにより作成される描画データの出力サイズを低下させて前記オペレーションシステムによりスプールするように指示することを特徴とする請求項1に記載の情報処理装置。
  7. 印刷指示に応じてプリンタドライバを初期化し、前記プリンタドライバからプリンタ情報を取得するプリンタ情報取得手段と、
    前記プリンタドライバの初期化に際して、アプリケーションプログラムから渡される印刷データの解像度を低下させるか否かを判定して前記プリンタ情報を発行する判定手段と、
    前記プリンタ情報取得手段により取得した前記プリンタ情報に基づいて前記印刷データの解像度を決定して前記印刷データをスプールするスプール手段と、
    前記スプール手段によりスプールされた前記印刷データを前記プリンタドライバから供給されるプリンタの解像度に応じた解像度でラスタイメージに展開する展開手段と、
    前記展開手段により展開された前記ラスタイメージデータを前記プリンタドライバにより前記プリンタに送信させるように制御する制御手段と、
    を有することを特徴とする情報処理装置。
  8. アプリケーションプログラムにより作成された描画データをオペレーションシステムによりスプールさせ、当該スプールされた描画データに基づいて前記オペレーションシステムから描画データを受け取るプリンタドライバを備える情報処理装置における情報処理方法であって、
    前記オペレーションシステムによるスプール処理のスプールサイズを減らす軽減モードを実施するか否かを判定する判定工程と、
    前記判定工程で前記軽減モードを実施すると判定されると、前記アプリケーションプログラムにより作成される描画データの出力サイズを低下させて前記オペレーションシステムによりスプールするように指示する第一指示工程と、
    スプールされた前記描画データに基づいて、画像形成デバイスでの画像形成処理に適合した出力サイズで展開されたラスタイメージを含む画像形成ジョブを生成する画像形成ジョブ生成工程と、
    を有することを特徴とする情報処理方法。
  9. 前記画像形成用デバイスは、ホストベースプリンタであることを特徴とする請求項8に記載の情報処理方法。
  10. 前記軽減モードを設定する設定工程を更に有し、
    前記第一指示工程は、前記設定工程で前記軽減モードが設定された場合に前記アプリケーションプログラムにより作成される前記描画データの出力サイズを低下させて前記オペレーションシステムによりスプールするように指示することを特徴とする請求項8又は9に記載の情報処理方法。
  11. 前記設定工程では、更に前記軽減モードを自動的に設定するかどうかを設定でき、前記判定工程では、前記アプリケーションプログラムからのスプール指示に応じて、前記描画データのデータ量が所定量以上の場合に前記軽減モードを実施すると判定することを特徴とする請求項8又は9に記載の情報処理方法。
  12. スプールされた前記描画データをラスタイメージに展開する前記オペレーションシステムの展開モジュールに対して、前記画像形成デバイスでの画像形成処理に適合した出力サイズで展開するように指示する第二指示工程を更に有し、
    前記画像形成ジョブ生成工程では、前記第二指示工程で指示された出力サイズで展開されたラスタイメージを含む画像形成ジョブを生成することを特徴とする請求項8乃至11のいずれか1項に記載の情報処理方法。
  13. 1ページ内に複数ページ分の描画データを縮小して配置するように設定されている場合、前記第一指示工程は、前記アプリケーションプログラムにより作成される描画データの出力サイズを低下させて前記オペレーションシステムによりスプールするように指示することを特徴とする請求項8に記載の情報処理方法。
  14. 印刷指示に応じてプリンタドライバを初期化し、前記プリンタドライバからプリンタ情報を取得するプリンタ情報取得工程と、
    前記プリンタドライバの初期化に際して、アプリケーションプログラムから渡される印刷データの解像度を低下させるか否かを判定して前記プリンタ情報を発行する判定工程と、
    前記プリンタ情報取得工程で取得した前記プリンタ情報に基づいて前記印刷データの解像度を決定して前記印刷データをスプールするスプール工程と、
    前記スプール工程でスプールされた前記印刷データを前記プリンタドライバから供給されるプリンタの解像度に応じた解像度でラスタイメージに展開する展開工程と、
    前記展開工程で展開された前記ラスタイメージデータを前記プリンタドライバにより前記プリンタに送信させるように制御する制御工程と、
    を有することを特徴とする情報処理方法。
  15. アプリケーションプログラムにより作成された描画データをオペレーションシステムによりスプールさせ、当該スプールされた描画データに基づいて前記オペレーションシステムから描画データを受け取る印刷制御プログラムであって、
    前記オペレーションシステムによるスプール処理のスプールサイズを減らす軽減モードを実施するか否かを判定する判定手段と、
    前記判定手段により前記軽減モードを実施すると判定されると、前記アプリケーションプログラムにより作成される描画データの出力サイズを低下させて前記オペレーションシステムによりスプールするように指示する第一指示手段と、
    スプールされた前記描画データに基づいて、印刷装置の印刷処理に適合した印刷サイズで展開されたラスタイメージを含む印刷ジョブを生成する印刷ジョブ生成手段と、
    を有することを特徴とする印刷制御プログラム。
  16. 前記印刷装置は、ホストベースプリンタであることを特徴とする請求項15に記載の印刷制御プログラム。
  17. 前記軽減モードを設定する設定工程を更に有し、
    前記第一指示工程は、前記設定工程で前記軽減モードが設定された場合に前記アプリケーションプログラムにより作成される前記描画データの印刷サイズを低下させて前記オペレーションシステムによりスプールするように指示することを特徴とする請求項15又は16に記載の印刷制御プログラム。
  18. 前記設定手段は、更に前記軽減モードを自動的に設定するかどうかを設定でき、前記判定手段は、前記アプリケーションプログラムからのスプール指示に応じて、前記描画データのデータ量が所定量以上の場合に前記軽減モードを実施すると判定することを特徴とする請求項15乃至17のいずれか1項に記載の印刷制御プログラム。
  19. スプールされた前記描画データをラスタイメージに展開する前記オペレーションシステムの展開モジュールに対して、前記印刷装置での印刷処理に適合した印刷サイズで展開するように指示する第二指示工程を更に有し、
    前記印刷ジョブ生成工程では、前記第二指示工程で指示された印刷サイズで展開されたラスタイメージを含む印刷ジョブを生成することを特徴とする請求項16乃至18のいずれか1項に記載の印刷制御プログラム。
  20. 1ページ内に複数ページ分の描画データを縮小して配置するように設定されている場合、前記第一指示工程は、前記アプリケーションプログラムにより作成される描画データの印刷サイズを低下させて前記オペレーションシステムによりスプールするように指示することを特徴とする請求項16に記載の印刷制御プログラム。
  21. 印刷指示に応じてプリンタドライバを初期化し、前記プリンタドライバからプリンタ情報を取得するプリンタ情報取得手段と、
    前記プリンタドライバの初期化に際して、アプリケーションプログラムから渡される印刷データの解像度を低下させるか否かを判定して前記プリンタ情報を発行する判定手段と、
    前記プリンタ情報取得手段により取得した前記プリンタ情報に基づいて前記印刷データの解像度を決定して前記印刷データをスプールするスプール手段と、
    前記スプール手段によりスプールされた前記印刷データを前記プリンタドライバから供給されるプリンタの解像度に応じた解像度でラスタイメージに展開する展開手段と、
    前記展開手段により展開された前記ラスタイメージデータを前記プリンタドライバにより前記プリンタに送信させるように制御する制御手段と、
    を有することを特徴とする印刷制御プログラム。
JP2003197271A 2002-09-06 2003-07-15 情報処理装置及び情報処理方法及び印刷制御プログラム Expired - Fee Related JP4250470B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003197271A JP4250470B2 (ja) 2002-09-06 2003-07-15 情報処理装置及び情報処理方法及び印刷制御プログラム
US10/654,029 US8102543B2 (en) 2002-09-06 2003-09-04 Information processing apparatus, information processing method and printing control program
US13/344,572 US8670150B2 (en) 2002-09-06 2012-01-05 Information processing apparatus, information processing method and printing control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002261979 2002-09-06
JP2003197271A JP4250470B2 (ja) 2002-09-06 2003-07-15 情報処理装置及び情報処理方法及び印刷制御プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008167849A Division JP4560570B2 (ja) 2002-09-06 2008-06-26 情報処理装置及び情報処理方法及び印刷制御プログラム

Publications (3)

Publication Number Publication Date
JP2004152255A true JP2004152255A (ja) 2004-05-27
JP2004152255A5 JP2004152255A5 (ja) 2006-02-02
JP4250470B2 JP4250470B2 (ja) 2009-04-08

Family

ID=32396232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003197271A Expired - Fee Related JP4250470B2 (ja) 2002-09-06 2003-07-15 情報処理装置及び情報処理方法及び印刷制御プログラム

Country Status (2)

Country Link
US (2) US8102543B2 (ja)
JP (1) JP4250470B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011180721A (ja) * 2010-02-26 2011-09-15 Brother Industries Ltd プリンタドライバ、及び印刷制御装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100742332B1 (ko) * 2005-05-20 2007-07-26 삼성전자주식회사 인쇄제어장치 및 인쇄제어방법
JP4623300B2 (ja) * 2005-12-17 2011-02-02 富士ゼロックス株式会社 画像処理装置および画像処理プログラム
KR101353312B1 (ko) * 2006-12-12 2014-01-21 삼성전자주식회사 화상 형성 장치의 인쇄 농도 조절 장치 및 그 방법
US9454384B2 (en) * 2007-07-05 2016-09-27 Microsoft Technology Licensing, Llc Custom operating system via a web-service
US8774141B2 (en) 2007-12-07 2014-07-08 Blackberry Limited Multicast broadcast single frequency network data scheduling and handling
JP5409624B2 (ja) 2008-06-20 2014-02-05 キヤノン株式会社 プログラム、情報処理方法、および情報処理装置
KR101760343B1 (ko) 2010-08-23 2017-07-21 에스프린팅솔루션 주식회사 화상형성장치 및 그 장치에서 축소 이미지를 인쇄하는 방법
JP5929374B2 (ja) * 2012-03-19 2016-06-08 ブラザー工業株式会社 プログラムおよび情報処理装置
JP6381319B2 (ja) * 2014-06-30 2018-08-29 キヤノン株式会社 情報処理装置、処理方法、及びプログラム
JP6222474B2 (ja) * 2014-10-21 2017-11-01 京セラドキュメントソリューションズ株式会社 プリンタードライバー
JP6482432B2 (ja) * 2015-08-21 2019-03-13 キヤノン株式会社 描画命令処理装置および描画命令処理方法
JP7542942B2 (ja) * 2019-12-27 2024-09-02 キヤノン株式会社 プログラム及び制御方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0976555A (ja) 1995-09-12 1997-03-25 Canon Inc 印刷装置および印刷装置の印刷方法
JPH09156158A (ja) 1995-12-06 1997-06-17 Nec Corp プリンタ装置
US5745659A (en) * 1996-04-25 1998-04-28 Hewlett-Packard Company Versatile scaling of drawings
US7315386B1 (en) * 1997-06-30 2008-01-01 Fujifilm Corporation Image communication system and method
JPH11129583A (ja) * 1997-11-04 1999-05-18 Canon Inc 印刷制御装置および印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP3255123B2 (ja) * 1998-09-25 2002-02-12 日本電気株式会社 カラープリンタシステム
JP3778242B2 (ja) 1998-10-05 2006-05-24 セイコーエプソン株式会社 印刷データ生成プログラムを記録した媒体、印刷データ生成装置および印刷データ生成方法
JP2000255120A (ja) 1999-03-05 2000-09-19 Ricoh Co Ltd プリンタ制御装置
JP2001067347A (ja) * 1999-06-23 2001-03-16 Canon Inc 情報処理装置、情報処理方法およびコンピュータ読み取り可能なプログラムを格納した記憶媒体
JP2001195213A (ja) 1999-11-05 2001-07-19 Seiko Epson Corp 画像処理制御プログラムを記録した媒体、画像処理制御装置および画像処理制御方法
JP2002041261A (ja) * 2000-07-28 2002-02-08 Canon Inc 情報処理装置及び情報処理方法及びコンピュータ読み取り可能なプログラムを格納した記憶媒体
JP2002190950A (ja) 2000-12-21 2002-07-05 Ricoh Co Ltd ファクシミリ装置
US20020135808A1 (en) * 2001-03-22 2002-09-26 Parry Travis J. Method and apparatus for printing video data
US6894804B2 (en) * 2001-10-03 2005-05-17 Toshiba Tec Kabushiki Kaisha Method to dynamically perform document layout functions
US6847467B2 (en) * 2001-11-01 2005-01-25 Hewlett-Packard Development Company, L.P. Method and apparatus for low memory rendering
JP3833106B2 (ja) 2001-11-30 2006-10-11 キヤノン株式会社 情報処理装置、情報処理方法、プログラムおよび記憶媒体
US8274719B2 (en) 2001-11-30 2012-09-25 Canon Kabushiki Kaisha Printing system, print preview method, and preview method using a printer driver

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011180721A (ja) * 2010-02-26 2011-09-15 Brother Industries Ltd プリンタドライバ、及び印刷制御装置

Also Published As

Publication number Publication date
US8102543B2 (en) 2012-01-24
US20040105102A1 (en) 2004-06-03
JP4250470B2 (ja) 2009-04-08
US20120105873A1 (en) 2012-05-03
US8670150B2 (en) 2014-03-11

Similar Documents

Publication Publication Date Title
US8670150B2 (en) Information processing apparatus, information processing method and printing control method
US7916342B2 (en) Print control apparatus and method
US8274719B2 (en) Printing system, print preview method, and preview method using a printer driver
JP2004126871A (ja) 印刷制御方法および装置
JP3745179B2 (ja) 情報処理装置及びその制御方法及び記憶媒体
JPH10297050A (ja) 出力制御装置、出力制御方法、画像処理装置、画像処理方法及び記憶媒体
JP2008117379A (ja) エンコードされたラスタ文書を生成するシステム、方法およびコンピュータプログラム
JP4709317B2 (ja) 情報処理装置及び情報処理方法及び印刷制御プログラム
JPH11509346A (ja) ページプリンタ用に強度のレンダリングを必要としないプロセッサ/メモリ
JP4280606B2 (ja) 画像形成制御装置及びその制御方法とプリンタドライバ及び印刷制御装置および印刷制御方法
JP3833107B2 (ja) 情報処理装置、情報処理方法、プログラムおよび記憶媒体
JP2011053263A (ja) 画像処理装置、画像処理方法、画像出力システム、プログラム及び記録媒体
JP2005182692A (ja) 描画処理方法およびプログラム並びに描画命令出力装置および画像形成装置
JP3833106B2 (ja) 情報処理装置、情報処理方法、プログラムおよび記憶媒体
JP6492895B2 (ja) 印刷データ処理装置及びプログラム
JP6238589B2 (ja) 画像形成装置、画像処理方法、およびプログラム
JP2003173446A (ja) 画像処理装置、画像処理システム、画像処理方法、記憶媒体、及びプログラム
JP4325339B2 (ja) 印刷システム、ホストコンピュータ及びプリンタドライバ
JP4136894B2 (ja) 印刷装置および印刷方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体
JPH11191055A (ja) 印刷システムおよび印刷システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2009066926A (ja) 画像処理装置及び画像形成システム
JP3968989B2 (ja) 画像処理装置、画像処理方法および画像処理プログラムを記録した記憶媒体
JP2004094719A (ja) 印刷システム、印刷プレビュ方法、プログラムおよび記憶媒体
JP5310538B2 (ja) 印刷制御プログラム、及び情報処理装置
JP2005148927A (ja) 情報処理装置および印刷制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080626

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: 20081222

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: 20090119

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

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4250470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140123

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees