JP2004192323A - Printer driver and information processor - Google Patents

Printer driver and information processor Download PDF

Info

Publication number
JP2004192323A
JP2004192323A JP2002359275A JP2002359275A JP2004192323A JP 2004192323 A JP2004192323 A JP 2004192323A JP 2002359275 A JP2002359275 A JP 2002359275A JP 2002359275 A JP2002359275 A JP 2002359275A JP 2004192323 A JP2004192323 A JP 2004192323A
Authority
JP
Japan
Prior art keywords
printer
print data
print
information
print mode
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.)
Withdrawn
Application number
JP2002359275A
Other languages
Japanese (ja)
Inventor
Hiroshi Omura
宏 大村
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 JP2002359275A priority Critical patent/JP2004192323A/en
Publication of JP2004192323A publication Critical patent/JP2004192323A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a printer driver which outputs print data while switching a plurality of print data creating parts from one to another for use with each page, and which can unify the use of a hatch brush and a style pen for all the print data creating parts. <P>SOLUTION: When a despooler 215 registers drawing attributes with which patterns such as a hatch brush and a style pen are expressed into image-type print data creating parts, the drawing attributes built into the printer 100 are obtained in advance and registered as the drawing attributes of the image-type print data creating parts. Thereby the drawing attributes of the hatch brush and the style pen used for the print data creating parts 205-208 are unified, and even if print data are created using the different print data creating parts for different pages, unified output results for all the pages are obtained. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、アプリケーションソフトウェア等の印刷指示により、プリンタ等の画像形成装置に対する印刷データを生成するプリンタドライバ及び情報処理装置に関する。
【0002】
【従来の技術】
図9は、画像形成装置としてのプリンタ及びその制御を行う情報処理装置としてのホストコンピュータで構成された、従来の印刷システムの例を示す図である。
【0003】
図に示すように、ホストコンピュータ200は、セントロニクスインターフェース、IEEE1284といったパラレルインタフェース、USB、IEEE1394等のシリアルインタフェース、10/100BASE−T等のネットワークインタフェース600を介してプリンタ100と接続されている。ホストコンピュータ200には、CRT、LCD等のディスプレイモニタ300及び入力デバイスとしてのキーボード400及びマウス500が接続されている。
【0004】
ホストコンピュータ200では、Windows(R)(米国Microsoft社の登録商標)のようないわゆる基本ソフト(OS)の上でワードプロセッサや表計算のような、プリンタ100を利用可能なアプリケーションソフトウェア201(以下アプリケーションと略称)が動作している。これらアプリケーションのユーザが印刷を指示した場合、そのアプリケーションは、基本ソフトが提供するいくつかのサブシステムの内、グラフィックサブシステム202の機能を用いて印刷を行う。
【0005】
このグラフィックサブシステムは、例えば基本ソフトがWindows(R)の場合、GDI(Graphic Device Interface)203と呼ばれており、ディスプレイやプリンタに対する描画処理を司っている。このGDI(203)は、ディスプレイやプリンタといったデバイス毎の依存性を吸収するために、アプリケーションから指定された出力デバイスに対応する、デバイスドライバと呼ばれるモジュールを動的にリンクし、それぞれのデバイスに対する出力処理を行う。
【0006】
プリンタに対するデバイスドライバはプリンタドライバと呼ばれる。プリンタドライバ204は、対応するプリンタの能力や機能などに応じて、あらかじめデバイスドライバに実装することが決められているDDI(Device Driver Interface)と呼ばれる関数群を有しており、GDI(203)がこのDDIを用いることによって印刷処理が行われる。
【0007】
すなわち、図9の例において、アプリケーションから印刷指示(GDI(203)へのAPI(Application Programming Interface)コール)があると、GDI(203)はプリンタ100に対応するプリンタドライバ204を動的にリンクするとともに、アプリケーションからのAPIコールをプリンタドライバ204が有するDDI関数群を用いた形式に変換する。そして、GDI(203)からDDI関数群がコールされることによって所定の印刷処理が実行される。このように、GDI(203)では、プリンタドライバ204を用いてアプリケーションからの印刷要求をシーケンシャルに処理している。
【0008】
プリンタドライバ204は、DDIを介してGDI(203)から受け渡しされるデータから、プリンタ100が印刷可能な形式のデータを生成、出力する。この際、プリンタ100に能力、機能に対応した複数の印刷データ生成部を用いて印刷データを生成し、スプールサブシステム210を介してプリンタ100へ出力する。
【0009】
プリンタ100へ出力する、印刷データ形式としては、PDL(Page Description Language)と呼ばれる制御コマンド及びイメージデータ(ビットマップ)の2種類に大別される。そして、プリンタドライバ204に含まれるデスプーラ250は、それぞれが所定形式のデータを出力する複数の印刷データ生成部(205〜208)の中から、1つを選択して印刷処理を実行する。
【0010】
図9において、印刷データ生成部(205〜208)は、PDLを出力する(以下、PDLタイプという)第1の印刷データ生成部205と、イメージデータを出力する(以下、イメージタイプという)第2〜第4の印刷データ生成部(206〜208)から構成されている。また、イメージデータを出力する第2〜第4の印刷データ生成部(206〜208)のうち、第2のイメージデータ生成部206はモノクロ(mono 1BPP:1 bit per pixel)イメージデータを、第3のイメージデータ生成部207は各色1ビットのYMCK(YMCK 4BPP)カラーイメージデータを、第4のイメージデータ生成部208は、各色8ビットのRGB(RGB 24BPP)イメージデータをそれぞれ出力する。
【0011】
第1の印刷データ生成部205は、プリンタ100がPDLを処理可能なコントローラを搭載する場合に使用可能であり、第1の印刷データ生成部205を用いる場合、デスプーラ250はGDI(203)からDDIを介して受け取ったデータを第1の印刷データ生成部205へ受け渡し、PDLのコマンドに変換し次第、スプールサブシステム210を介してプリンタ100に送出する。この場合、デスプーラ250の処理はDDIを介して受け取ったデータを第1の印刷データ生成部205に受け渡してPDLコマンドを生成するだけなので、軽い処理といえる。
【0012】
PDLタイプの印刷データ生成部を用いる場合、GDI(203)から抽象度の高いデータを受け取り、PDLコマンドの形式で送出できるので、通常のページ印刷においては転送する印刷データサイズを小さくすることが可能である。
【0013】
一方、イメージタイプの印刷データ生成部(206〜208)は、プリンタ100では高度な描画処理を行わずにすむよう、プリンタドライバ204がホストコンピュータ200で確保したメモリ空間上に印刷イメージの展開を行い、それをプリンタ100で直接印刷できるイメージデータ形式に変換してから、プリンタ100に転送する。
【0014】
具体的には、PDLタイプの印刷データ生成部と同様に、GDI(203)からDDIを介して渡されたデータをプリンタドライバ204に含まれるデスプーラ250がイメージタイプの印刷データ生成部(206〜208)の1つに受け渡す。そして、印刷データ生成部は受け渡しされたデータに基づいてバンドメモリ209に描画処理を行い、1バンド分の描画処理が終了すると、スプールサブシステム210を介してプリンタ100にビットマップデータを送出する。プリンタ100は、受信したビットマップデータを直接出力する。
【0015】
イメージタイプの印刷データ生成部を用いる場合はホストコンピュータ200において、PDLタイプの印刷データ生成部を用いる場合はプリンタ100において、描画処理を行う必要がある。描画処理を行うには、メモリ空間を確保する必要があるが、RGB各色8ビットで600DPI(dot per inch),A4フルページ分の描画処理を行うために必要なメモリ空間は96MByte必要であり、現状ではホストコンピュータ200、プリンタ100のどちらでも確保することは困難である。
【0016】
そこで、一般には、特にデータ量が多くなるカラープリンタの描画処理には、1ページを水平方向に複数に分割したバンド単位で描画処理が行われ、この描画処理に用いるメモリをバンドメモリと呼ぶ。
【0017】
また、プリンタ100に最終的に転送するデータ形式は、ディスプレイ装置で用いられるようなRGB(輝度)形式ではなく、プリンタ100が用いるトナーの濃度を表すYMCK形式であり、またYMCK形式では各色1ビット、2ビット(又は4ビット)であることが多いため、各色8ビットのRGB形式よりもデータ量が小さくなるという理由から、プリンタドライバ204以降の処理においてはYMCK形式でデータを取り扱うのが一般的である。そして、イメージタイプの印刷データ生成部のなかには、YMCK各色1ビット、2ビットもしくは4ビットのデータをプリンタ100に転送することで、転送データサイズを小さく抑え、プリンタ100の負荷を軽くするものがある。
【0018】
例えば、多角形図形の印字処理を行う場合、PDLタイプの印刷データ生成部は、多角形の頂点座標と線幅、線の色情報、図形内の塗り色情報等がコマンドとして転送され、プリンタ内部でこのコマンドを解析し、プリンタ内部に設けられた、YMCK各色1ビット、2ビットまたは4ビットのデータに対する1バンド分のメモリ空間を用いて描画処理を行い、出力形態のビットマップデータに展開する。
【0019】
PDLタイプの印刷データ生成部を用いる場合、プリンタに転送されるデータはPDLコマンドであり、一般にはイメージタイプの印刷データ生成部が生成するデータよりもサイズが小さくなる。しかし、1ページあたりのPDLコマンド数には制限が無く、理論上はイメージタイプの印刷データ生成部よりも転送データが大きくなる可能性がある。また、PDLタイプの印刷データ生成部を用いた場合、プリンタ側で描画処理を行う必要があるが、バンドメモリに対する描画処理であっても、1ページ分のPDLコマンドをすべて受信してからでないと描画処理が開始できない。近年、アプリケーションが出力する印刷命令は増加の一途をたどっており、1ページを構成するPDLコマンドも増加しているため、メモリ量の少ないプリンタでは処理速度低下の要因になっている。
【0020】
このような場合、プリンタに比べてメモリ容量に余裕のあるホストコンピュータ200上で動くプリンタドライバ204においてバンド単位もしくはフルページ分の描画メモリを確保し、イメージタイプの印刷データ生成部を使用して描画処理を行い、ビットマップデータをプリンタに転送した方が印刷処理全体のスループットは向上する。図9の例では、バンドメモリ209を用いている。
【0021】
前述したように、印刷データ生成部は、PDLタイプ、イメージタイプ共に省メモリのためにYMCK各色1,2,4ビットという出力装置依存の色空間上で描画処理を行っているが、GDI(203)が論理演算描画処理時にDDI関数群をコールする場合、用いられる色形式はYMCK形式でなくRGB形式であるため、描画不正が発生することがある。このため、描画不正回避のために、論理演算処理が発生した場合、プリンタドライバ204においてYMCK形式に変換されているデータをRGB値に戻し(逆UCR(Under Color Remove)処理)、それから論理演算処理することで対応しているが、完全な描画処理を保証しないばかりか、処理速度低下の原因になっている。
【0022】
このように、印刷しようとする内容、プリンタドライバ204で用いる印刷データ生成部の種類、プリンタ側のハードウェア資源等、多くの要因によって印刷処理全体に要する時間は変動する。
【0023】
しかし、このような要因を考慮して適切な処理方法を自動選択する方法は現時点で実現されていない。そこで、アプリケーションのユーザは、通常は高速に処理がなされる可能性の高いPDLタイプの印刷データ生成部を選択して(実際にはアプリケーションもしくはプリンタドライバ204が提供するGUIなどで、「速度優先」、「高速印刷」等の印刷モードを選択することにより、デスプーラ250がPDLタイプである第1の印刷データ生成部205を選択して処理する)印刷を指示し、出力に時間が掛かりすぎる場合は、同様に高速イメージモード(デスプーラ250がYMCK各色1ビットのイメージデータを出力する第2の印刷データ生成部を選択)に切り替えて出力しなおす。また、不正出力結果が出た場合は、同様に「画質優先」「高精細」等の印刷モードを選択(デスプーラ250がRGB各色8ビットのイメージデータを出力する第3の印刷データ生成部を選択)して出力し直さなければならない。
【0024】
つまり、現状においては、プリンタドライバ204が使用する印刷データ生成部の選択が、アプリケーションのユーザに任されており、また、ユーザは自分が印刷しようとしている文書等に最適な印刷モードを決定する術を持たないため、全てのモードで実際に印刷し、出力物もしくは出力時間等を比較しないと最適なモードが解らない。また、複数ページを有する文書等を印刷する場合、PDLタイプが適したページとイメージタイプが適したページなど、タイプの異なるページが同一文書中に含まれている場合がある。このような文書を印刷する場合、全ページを同一の印刷モード(印刷データ生成部)で処理すると、出力時間が掛かる、または不正出力ページが混じる、といった問題も発生しうる。
【0025】
こういった問題を解決するために、図6に示すような、プリンタドライバ204が利用可能な各印刷データ生成部の長所、短所に応じて、各印刷データ生成部の長所のみを用いて印刷処理を行うことが可能なような、印刷モード(印刷データ生成部)の自動切り替え技術が求められている。
【0026】
印刷モード自動切り替えを実現可能なプリンタドライバには、最低限以下の機能が必要である。
【0027】
1)スプールドライバ機能
印刷モードの自動切り替えを実現するためには、1ページ分の描画情報を知った上で、最適な処理モードを決定しその後デスプール処理を実行する必要がある。そのためデスプーラが保持するどの印刷データ生成部でも処理可能なデータ形式で1ページ分のDDI関数コール情報をスプールする機能。
【0028】
2)印刷モード判定機能
1ページ分のDDI関数コールをチェックし、デスプーラが保持するどの印刷データ生成部で印刷データの生成を行うのが最適を判定する機能。
【0029】
3)デスプーラ機能
スプールドライバ機能によってスプールされた1ページ分の描画情報を、印刷モード判定機能によって判定した最適な印刷データ生成部を用いて処理する機能。
【0030】
この様な機能を有するプリンタドライバを有するホストコンピュータ200の構成例を、図5に示す。図5において、スプールドライバ211、印刷モード判定部212及びデスプーラ215がそれぞれ上述の1)〜3)の機能を実現する。また、PDF記憶部213はスプールドライバ211が1ページ分の描画情報をスプールする領域であり、PCF記憶部214は印刷モード判定部212が1ページ分のDDI関数コールの特徴を一時記憶する領域である。
【0031】
【発明が解決しようとする課題】
図5に示すような構成を有するプリンタドライバ260を用いることによって、複数の印刷データ生成部を自動切り替えして印刷処理を行うことができるが、複数の印刷データ生成部を切り替えて1つの印刷処理を実施した場合、描画に関して新たな問題が発生する。図4を用いて新たな問題について説明する。
【0032】
ハッチブラシ、スタイルペンでの描画を行う際には、特定のスタイルのパターンが基本OSによりあらかじめ定められており、そのパターン種のIDを伴って基本OSからからDDI関数群がコールされる。
【0033】
以下にWindows(R)の場合に既に登録されているハッチブラシ、スタイルペンの一覧を以下に示す。
・ハッチブラシ
VERTICAL: 垂直ハッチ
HORIZONTAL: 水平ハッチ
FDIAGONAL: 45度右上がりのハッチ(右上から左下への対角線)
BDIAGONAL: 45度左上がりのハッチ(左上から右下への対角線)
CROSS: 水平と垂直のクロスハッチ
DIAGCROSS: 45度のクロスハッチ(右上から左下と、左上から右下への対角線)
・スタイルペン
DOT: 点線
DASH: 破線
DASHDOT: 一点鎖線
DASHDOTDOT: 二点鎖線
PDLタイプの印刷コマンド生成装置205においては、通常あらかじめプリンタ100に登録されているハッチブラシパターン、スタイルペンパターン等の描画属性のIDを含むコマンドを生成して描画を行う。プリンタ100に既に登録されている描画属性IDを用いてPDLコマンドを生成することにより、ハッチブラシやスタイルペンを表す実際のパターンデータをコマンドとして転送する必要がないため、ホストコンピュータ200とプリンタ100の間の転送ホストコマンドサイズを減少することが可能になる。
【0034】
しかし上記の基本OSによりあらかじめ定められているのパターンの定義は、あくまでも抽象的な概念であり、垂直ハッチのパターンの幅や破線を構成する実線の間隔等のドット単位等での実際の既定情報は存在しない。
【0035】
PDLタイプの印刷データ生成手段205ではプリンタ内部で定義されたプリンタの描画属性で描画され、またイメージタイプの印刷データ生成手段(206〜208)ではプリンタドライバが指定したプリンタドライバの描画属性で描画される。その為、それぞれの印刷データ生成手段(205〜208)での描画属性の定義が異なると図4に示すように見栄えが著しくことなることがある。ページ毎に切り替えて印刷データ生成手段を使用して印刷データを出力するプリンタドライバにおいて、ページ間の見栄えの差は問題となる。
【0036】
本発明はこのような従来技術の問題点に鑑みなされたものであり、その目的は、ページ毎に切り替えて印刷データ生成手段を使用して印刷データを出力するプリンタドライバにおいて、ハッチブラシ、スタイルペンの統一可能なプリンタドライバを提供することにある。
【0037】
【課題を解決するための手段】
本発明の要旨は、所定の通信媒体を介してプリンタと通信可能なデータ処理装置とそのプリンタによって構成される印刷処理装置において、基本ソフトウェアより渡される描画命令を記憶可能な形式のページ記述言語に変換するスプールドライバ手段と、ページ記述言語を分析し、印刷モード判定情報を生成する印刷モード判定手段と、スプールドライバ手段によって生成されたページ記述言語を保持するページ記述記憶手段と、印刷モード判定手段によって生成された印刷モード判定情報を保持する印刷モード判定記憶手段と、印刷モードに1対1に対応し、前記スプールドライバ手段が生成するページ記述言語からプリンタが印刷可能な印刷データを生成可能な複数の印刷データ生成手段と、印刷モード判定情報を用いて印刷モードを決定し、対応する印刷データ生成手段にページ記述言語を供給するデスプーラ手段とで構成されるプリンタドライバにおいて、デスプーラ手段がプリンタに依存する描画属性、すなわちパッチブラシパターン、スタイルペンパターンをプリンタから通信媒体を介して取得管理しており、ページ記述言語中の描画情報からプリンタに依存する描画属性を検出した際に、管理している描画属性を用いて前記印刷データを生成するよう前記印刷データ生成手段を制御することに存在する。
【0038】
また本発明の要旨は、所定の通信媒体を介してプリンタと通信可能なデータ処理装置とそのプリンタによって構成される印刷処理装置において、基本ソフトウェアより渡される描画命令を記憶可能な形式のページ記述言語に変換するスプールドライバ手段と、ページ記述言語を分析し、印刷モード判定情報を生成する印刷モード判定手段と、スプールドライバ手段によって生成されたページ記述言語を保持するページ記述記憶手段と、印刷モード判定手段によって生成された印刷モード判定情報を保持する印刷モード判定記憶手段と、印刷モードに1対1に対応し、前記スプールドライバ手段が生成するページ記述言語からプリンタが印刷可能な印刷データを生成可能な複数の印刷データ生成手段と、印刷モード判定情報を用いて印刷モードを決定し、対応する印刷データ生成手段にページ記述言語を供給するデスプーラ手段とで構成されるプリンタドライバにおいて、デスプーラ手段がページ記述言語中の描画情報からプリンタに依存する描画属性を検出した際に、通信媒体を介して管理している共通の描画属性をプリンタへ登録することによって印刷データを生成するよう前記印刷データ生成手段を制御することに存在する。
【0039】
また、本発明の別の要旨は、本発明のプリンタドライバを用いた情報処理装置に存在する。
【0040】
また、本発明の別の要旨は、本発明のプリンタドライバをコンピュータ装置に実現させるためのコンピュータプログラムに存在する。
【0041】
【発明の実施の形態】
以下、図面を参照して本発明をその好適な実施形態に基づき説明する。
【0042】
図5は、本発明に係るプリンタドライバを適用可能なプリントシステムの構成例を示すブロック図である。上述の通り、図5のプリンタシステムはホストコンピュータ200及びプリンタ100から構成され、両者は互いに通信可能に接続されている。
【0043】
本実施形態に係るプリンタドライバ260は、基本ソフトが提供する、各印刷装置製造ベンダが開発可能なサブシステムであるグラフィクスサブシステム202とスプールサブシステム210にまたがって形成され、以下のような印刷モード自動切り替えのための要素を有している。
○グラフィクスサブシステム202内:
スプールドライバ211
印刷モード判定部212
○スプールサブシステム210内:
デスプーラ215
印刷データ生成部205〜208
次に、本発明の背景となる印刷モード自動切り替えを実現するために必要なそれぞれの手段について説明していく。
【0044】
1)スプールドライバ211
印刷モード自動切り替えを実現するためには、1ページ分の描画情報を知った上で、最適な処理モードを決定し、その後デスプール処理を実行する必要がある。そのためには、DDI関数に渡されるデータをデスプール時にどの印刷データ生成部が用いられても処理可能なデータ形式で1ページ分以上、かつページ単位でスプールしなくてはならない。
【0045】
そこで、本実施形態においては、スプール時のデータ形式として、図7に示す形式(PDF形式と呼ぶ)を用いた。PDF形式のスプールデータ900は、ページを特定するためのpageID(901)に続いて、ページのサイズや、データサイズ、格納したオブジェクト数等を保持するPageInfor(902)をヘッダとして持つ。
【0046】
そして、ヘッダに続くフィールド903には、DDI関数でコールされた描画関数を示す情報が格納される。図7では単純ビットマップコピーを行う描画関数CopyBitsの名前が格納されている。
【0047】
また、datasize(904)は903に格納されたCopyBitsのスプールにかかったサイズ、BoundRect(905)はCopyBitsに渡される描画先のサーフェイス情報を示す転送先のサーフェイス情報を、SoSrc(906)はCopyBitsに渡される転送元サーフェイス情報を示す転送元イメージ情報をそれぞれ格納する。
【0048】
転送元イメージデータ907は転送元イメージデータのビット列である。co(908)はCopyBitsに渡される描画先のクリップ情報を格納。またクリップデータが複数個存在する場合は、その後ろにクリップデータ909を格納する。xlo(910)は転送元と転送先のサーフェイス間の色変換情報を、rclDest(911)描画先のサーフェイス上の矩形範囲を示す情報を、ptlSrc(913)は転送元サーフェイス上の転送元原点情報をそれぞれ格納する。
【0049】
以降、描画関数毎に必要なスプールデータが1ページ分格納される。
【0050】
デスプール時には、デスプーラ215が、DDI関数の状態に戻してから印刷モード判定手段で判定された印刷データ生成部に受け渡しする。それによって、印刷データ生成部は従来通りDDI関数を受け取り、印刷データを生成する仕様のままでよい。
【0051】
2)印刷モード判定部212
印刷モード判定部212は、スプールドライバ211がPDF記憶部213にスプールする、GDI(203)から受け渡された描画命令(描画関数)をチェックし、1ページ分のデータ内容から複数の印刷データ生成部のうち最適なものを判定する。
【0052】
具体的には、この判定は、スプールドライバ211がPDF記憶部213にスプールするデータを監視し、1ページ分のデータ内に含まれる描画関数の種類及び頻度等の判定用情報を格納し、その結果に基づいてなされる。
【0053】
本実施形態において、印刷モード判定部212は判定用情報をPCF(プレチェックファイル)記憶部214に格納する。この際、図8に示すようなデータ構造体として格納を行う。
【0054】
図8において、PCF1000は、そのファイルが属するジョブナンバー(JobID)1001、ページナンバー(PageNo)1002で始まる構造体で、この二つの値により、対応するページを特定可能である。
【0055】
そして、ページをY軸方向に分割したバンドの大きさを表すVbandSize(1004)、PCF1000に格納されるバンド情報BandInfoの数を格納するbandCnt(1005)に続き、各バンド内の判定用情報を格納するBandinfo[0](1006)〜BandInfo[n]が格納される。各BandInfoは構造体1030で示すような構成を有している。すなわち、PCF1000は、VbandSize(1004)に示されたサイズの仮想バンドが、pageSize(1003)の中に、bandCnt(1005)分敷きつめられた領域を仮想的に定義したものである。
【0056】
BandInfoは、その仮想バンドの領域を矩形情報で保持するBandRectL(1010)で始まる構造体であるが、この構造体1030は、BandRectL(1010)で表されるの領域内に関連する描画処理情報を記録するために用いられる。
【0057】
構造体1030の詳細は以下のとおりである。
【0058】
仮想バンド内に描かれる描画処理の最大概説矩形領域DrawRectL1011、バンド内に描かれる描画領域の中の有彩色領域ColorRectL1012、YMCK印字では不正印字が発生する領域ROPRectL1013、イメージ系関数による描画処理領域ImgRectL1014、グラフィックス系関数による描画領域GraphicRectL1014、文字系描画領域TextRectL1016。
【0059】
BandInfo構造体1030は、これら以外に、DDI関数毎の情報もフィールド1017〜1020に収集する。
【0060】
ビットマップの拡縮指定可能なDDI関数であるStretchBlt(1019)の情報を例に説明する。StretchBlt(1019)は、複数のフィールド10191〜10196から構成される。すなわち、当該仮想バンド領域内に関係するStretchBlt関数のコール回数を格納するcallcnt10191、1BPP(1bit per pixel)イメージの個数を格納する1BPPCnt10192、1BPPイメージの総データサイズを格納する1BPPTotalSize10193をはじめ、4BPP、24BPPイメージについても同様な情報を格納可能である。その他のDDI関数についても、StretchBlt関数と同様、それぞれの関数I/Fに渡される情報を保持するようなデータ構造体で構成される。
【0061】
3)デスプーラ215
図6に示す各印刷データ生成部の特徴をふまえて、印刷モード判定部212がPCF記憶部214格納したPCFを解析し、最適と考えられる印刷モードを決定する。そして、決定した印刷モードに対応する各印刷データ生成部205〜207を用いて、ページ記述記憶手段213の内容を印刷再生していく。具体的には、命令絶対数が少ない場合にはPDLモード(第1の印刷データ生成部205)を、命令数が多いモノクロ画像であればモノクロイメージモード(第2の印刷データ生成部206)を、命令数が多くカラー画像であればデバイスカラーモード(第3の印刷データ生成部207)を、命令数が多く、かつYMCK形式では描画不正が発生する場合であればRGBカラーモード(第4の印刷データ生成部208)を選択する等が可能である。
【0062】
スプールドライバ211がPDF記憶部213にスプールしたデータは、DDI関数に可逆なPDF形式を有するため、デスプーラ215は図9に示した従来の印刷データ生成部と同一の印刷データ生成部205〜208を利用することが出来る。
【0063】
次に、本実施形態に係るプリンタドライバ260における描画属性を統一する方法について図1を用いて説明する。
【0064】
図1において、図3に示した従来の構成(及び動作)と異なるのは、デスプーラ215が印刷データ生成手段(205〜208)を用いて印刷データの生成を行う前に、デスプーラ215がプリンタ100へプリンタ内部で保持している描画属性を取得し、イメージタイプの印刷データ生成手段(206〜208)へプリンタの描画属性情報を登録する点である。
【0065】
すなわち、プリンタ内部で保持されている描画属性情報をイメージタイプの印刷データ生成手段(206〜208)で用いることにより、印刷データ生成部間での描画属性情報が統一される。従って、ページ毎に使用する印刷データ生成部を変化させたとしても、印刷データ生成部が出力するハッチブラシ、スタイルペンは共通の見栄えとなる。
【0066】
図2に示すフローチャートを用いて、上述した本発明のプリンタドライバにおける全体処理について説明する。
【0067】
GDI(203)からDDI関数のコールを受けると、スプールドライバ211はその内容をPDF形式に変換し、PDF記憶部213にスプールする(ステップS100)。一方、印刷モード判定部212は、スプールドライバ211がPDF記憶部213にスプールするデータを監視し、PCFをPCF記憶部214に格納する(ステップS110)。PDFのスプール処理及びPCFの格納処理は少なくとも印刷対象書類の1ページ分の処理が終了するまで継続して行う(ステップS120)。
【0068】
1ページ分のPDF、PCFの格納が終了すると、デスプーラ215はプリンタに描画属性の取得要求を行い、プリンタ内に保持している描画属性情報を取得する(ステップS130)。次にデスプーラ215は、イメージタイプの印刷データ生成手段(206〜208)へ、ステップS130で取得した描画属性を登録する(ステップS140)。続いてデスプーラ215は、PCF記憶部214に格納されたPCFを参照し、当該ページの印刷処理に最適な印刷モードを決定する(ステップS150)。
【0069】
そして、PDF記憶部213にスプールされたPDF形式のデータを、DDI関数の形に戻して、印刷データ生成部に引き渡す(ステップS160)。イメージタイプの印刷データ生成部では、受け渡されたDDI関数及びステップS140で登録された描画属性を用いてイメージデータである印刷データを生成し、またPDLタイプの印刷データ生成部では、描画属性を表すIDを含む受け渡されたDDI関数を用いてPDLデータを生成する(ステップS170)。生成された印刷データは、イメージデータであればバンドメモリ209を介してバンド単位に、PDL命令であればバンドメモリ209を介さずに、それぞれスプールサブシステム210のインターフェース600を介してプリンタ100へ転送される。
【0070】
なお、図2のフローチャートにおいては、理解を容易にするため、1ページ分の処理について時系列的に記載したが、ステップS100〜S120のスプール(格納)処理と、ステップS130以降の判定、印刷処理とは独立して行うことが可能である。すなわち、スプールドライバ211によるPDFデータのスプール及び印刷モード判定部212によるPCFデータの格納は、ステップS130以降の処理とは関係なく印刷対象文書全ページについての処理が終了するまで連続して行われ、一方ステップS130以降の処理は、1ページ分の処理が終了した時点で次ページに対応するPCFを参照し、印刷モード判定以降の処理を繰り返し行うことができる。
【0071】
(その他の実施形態)
上述の実施形態においては、デスプーラ215が通信媒介を用いてプリンタ100よりハッチブラシパターン、スタイルペンパターンを取得管理し、イメージタイプの印刷データ生成手段(206〜208)で、描画属性として適用する形態であった。
【0072】
その他の実施形態として図3に示すように、プリンタ100が任意のハッチブラシパターン、スタイルペンパターンのプリンタへの描画属性登録コマンドをサポートする場合、デスプーラ215が、イメージタイプの印刷データ生成手段(206〜208)で使用する描画属性を上記描画属性登録命令で登録する第二の実施形態が存在する。
【0073】
また特に記述しなかったが、複数の描画解像度を有するプリンタにおいては、通常それぞれの解像度に応じたハッチブラシ、スタイルペンの描画属性を管理する必要がある。ハッチブラシ、スタイルペンの描画属性はピクセル単位のON/OFF情報で構成されるため、描画時の解像度により単位ピクセルの実際の大きさは変化するので、解像度毎の見た目を合わせるためには、解像度ごとに管理が必要である。
【0074】
また上記実施例では、描画属性統一のための処理をデスプーラ215が印刷動作を開始する時点としたが、プリンタドライバ260のインストール時や、実際の描画属性を伴う描画が発生した場合でもよい。言い換えれば、実際の描画属性を伴うPDFを印刷データ生成手段で処理する前であれば、描画属性統一のための処理を開始する時点については本発明では問題とならない。
【0075】
なお、本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用しても良い。
【0076】
また、本発明の目的は、前述した実施形態の機能を実現するプリンタドライバと呼ばれるソフトウエアプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【0077】
この場合、記憶媒体から読み出されたプログラムコード事態が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0078】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(R)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R,磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0079】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0080】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【0081】
本発明を記憶媒体に適応する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになる。
【0082】
【発明の効果】
以上説明したように本発明によれば、複数の印刷データ生成部をページ毎に切り替えて使用して印刷データを出力するプリンタドライバにおいて、ハッチブラシ、スタイルペンを用いた描画について全印刷データ生成部で統一可能なプリンタドライバが実現できる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るプリンタドライバの構成概要及び描画属性取得管理の動作を説明する図である。
【図2】本発明のプリンタドライバの動作を説明するフローチャートである。
【図3】本発明のその他の実施形態に係るプリンタドライバの構成概要及び描画属性取得管理の動作を説明する図である。
【図4】従来のプリンタドライバの構成概要及び印刷タイプごとの描画属性を用いた描画結果を説明する図である。
【図5】本発明によるプリンタドライバを適用可能な印刷システムの構成例を示すブロック図である。
【図6】印刷モード毎の特徴を比較した図である。
【図7】本発明の実施形態において用いるPDF形式のデータ構造を示す模式図である。
【図8】本発明の実施形態において用いるPCF形式のデータ構造を示す模式図である。
【図9】従来の、印刷モード固定の印刷システムの構成例を示す図である。
【符号の説明】
100 プリンタ
200 ホストコンピュータ
201 アプリケーションソフトウェア
202 グラフィックサブシステム
203 GDI
260 プリンタドライバ
205 第1の印刷データ生成部(PDLタイプ)
206 第1の印刷データ生成部(モノクロ1BPPイメージタイプ)
207 第1の印刷データ生成部(YMCK4BPPイメージタイプ)
208 第1の印刷データ生成部(RGB24BPPイメージタイプ)
209 バンドメモリ
210 スプールサブシステム
211 スプールドライバ
212 印刷モード判断部
213 PDF記憶部
214 PCF記憶部
215 デスプーラ
300 ディスプレイモニタ
400 キーボード
500 マウス
600 外部インターフェース
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a printer driver and an information processing apparatus that generate print data for an image forming apparatus such as a printer in accordance with a print instruction such as application software.
[0002]
[Prior art]
FIG. 9 is a diagram illustrating an example of a conventional printing system including a printer as an image forming apparatus and a host computer as an information processing apparatus for controlling the printer.
[0003]
As shown in the figure, the host computer 200 is connected to the printer 100 via a Centronics interface, a parallel interface such as IEEE1284, a serial interface such as USB and IEEE1394, and a network interface 600 such as 10 / 100BASE-T. The host computer 200 is connected to a display monitor 300 such as a CRT and an LCD, and a keyboard 400 and a mouse 500 as input devices.
[0004]
In the host computer 200, application software 201 (hereinafter referred to as an application) such as a word processor or a spreadsheet, which can use the printer 100 on so-called basic software (OS) such as Windows (registered trademark of Microsoft Corporation). Abbreviation) is working. When the user of these applications instructs printing, the application performs printing using the function of the graphic subsystem 202 among several subsystems provided by the basic software.
[0005]
This graphics subsystem is called a GDI (Graphic Device Interface) 203 when the basic software is Windows (R), for example, and is responsible for rendering processing on a display or a printer. The GDI (203) dynamically links a module called a device driver corresponding to an output device specified by an application in order to absorb the dependence of each device such as a display and a printer, and outputs an output to each device. Perform processing.
[0006]
A device driver for a printer is called a printer driver. The printer driver 204 has a function group called DDI (Device Driver Interface) that is determined in advance to be implemented in a device driver according to the capabilities and functions of the corresponding printer, and the GDI (203) Printing processing is performed by using this DDI.
[0007]
That is, in the example of FIG. 9, when there is a print instruction (an API (Application Programming Interface) call to the GDI (203)) from the application, the GDI (203) dynamically links the printer driver 204 corresponding to the printer 100. At the same time, it converts the API call from the application into a format using a DDI function group included in the printer driver 204. Then, a predetermined print process is executed by calling the DDI function group from the GDI (203). As described above, the GDI (203) sequentially processes print requests from applications using the printer driver 204.
[0008]
The printer driver 204 generates and outputs data in a format printable by the printer 100 from the data passed from the GDI (203) via the DDI. At this time, print data is generated using a plurality of print data generation units corresponding to the capabilities and functions of the printer 100, and output to the printer 100 via the spool subsystem 210.
[0009]
The print data format to be output to the printer 100 is roughly classified into two types: a control command called PDL (Page Description Language) and image data (bitmap). The despooler 250 included in the printer driver 204 selects one of a plurality of print data generation units (205 to 208) each of which outputs data in a predetermined format, and executes print processing.
[0010]
In FIG. 9, print data generation units (205 to 208) output a PDL (hereinafter referred to as PDL type) first print data generation unit 205 and output image data (hereinafter referred to as image type) second. To fourth print data generation units (206 to 208). The second image data generator 206 among the second to fourth print data generators (206 to 208) that output image data outputs monochrome (mono 1BPP: 1 bit per pixel) image data to the third print data generator. The image data generator 207 outputs 1-bit YMCK (YMCK 4BPP) color image data of each color, and the fourth image data generator 208 outputs 8-bit RGB (RGB 24 BPP) image data of each color.
[0011]
The first print data generation unit 205 can be used when the printer 100 is equipped with a controller capable of processing PDL. When the first print data generation unit 205 is used, the despooler 250 uses the GDI (203) Is transferred to the first print data generation unit 205, and is sent to the printer 100 via the spool subsystem 210 as soon as it is converted into a PDL command. In this case, the process of the despooler 250 is a light process because it simply passes the data received via the DDI to the first print data generation unit 205 and generates a PDL command.
[0012]
When a PDL type print data generation unit is used, data with a high degree of abstraction can be received from the GDI (203) and transmitted in the form of a PDL command, so that the print data size to be transferred can be reduced in normal page printing. It is.
[0013]
On the other hand, the image-type print data generation units (206 to 208) develop the print image in the memory space secured by the host computer 200 by the printer driver 204 so that the printer 100 does not need to perform advanced drawing processing. Then, it is converted into an image data format that can be directly printed by the printer 100, and then transferred to the printer 100.
[0014]
Specifically, similarly to the PDL type print data generation unit, the despooler 250 included in the printer driver 204 converts the data passed from the GDI (203) via the DDI into the image type print data generation unit (206 to 208). ). Then, the print data generation unit performs a drawing process on the band memory 209 based on the received data, and when the drawing process for one band is completed, sends the bitmap data to the printer 100 via the spool subsystem 210. The printer 100 directly outputs the received bitmap data.
[0015]
When an image-type print data generation unit is used, the host computer 200 needs to perform drawing processing, and when a PDL-type print data generation unit is used, the printer 100 needs to perform drawing processing. To perform the drawing process, it is necessary to secure a memory space. However, a memory space required for performing a drawing process for 600 DPI (dot per inch) and A4 full page with 8 bits for each color of RGB requires 96 MBytes. At present, it is difficult to secure both the host computer 200 and the printer 100.
[0016]
Therefore, in general, in a drawing process of a color printer in which a data amount is particularly large, a drawing process is performed in a unit of a band obtained by dividing one page into a plurality in the horizontal direction, and a memory used for the drawing process is called a band memory.
[0017]
The data format finally transferred to the printer 100 is not the RGB (luminance) format used in the display device, but the YMCK format representing the toner density used by the printer 100. In the YMCK format, one bit is used for each color. Since the data amount is often 2 bits (or 4 bits), the amount of data is smaller than that of the 8-bit RGB format for each color. In the processing after the printer driver 204, data is generally handled in the YMCK format. It is. Some image-type print data generating units transfer 1-bit, 2-bit, or 4-bit data of each color of YMCK to the printer 100, thereby reducing the transfer data size and reducing the load on the printer 100. .
[0018]
For example, when performing a printing process of a polygonal figure, the PDL type print data generating unit transfers vertex coordinates and line width of the polygon, line color information, paint color information in the figure, and the like as commands, This command is analyzed by using the memory space for one band corresponding to 1-bit, 2-bit or 4-bit data for each color of YMCK provided inside the printer, and is developed into bitmap data in an output form. .
[0019]
When the PDL type print data generation unit is used, the data transferred to the printer is a PDL command, and generally has a smaller size than the data generated by the image type print data generation unit. However, there is no limit on the number of PDL commands per page, and theoretically, the transfer data may be larger than that of the image-type print data generation unit. When a PDL-type print data generation unit is used, it is necessary to perform drawing processing on the printer side. However, even for drawing processing for the band memory, it is necessary to receive all PDL commands for one page. Drawing process cannot start. In recent years, the number of print commands output by applications has been steadily increasing, and the number of PDL commands constituting one page has also increased, which causes a reduction in processing speed in printers with a small memory capacity.
[0020]
In such a case, the printer driver 204 operating on the host computer 200, which has more memory capacity than the printer, secures a drawing memory for each band or a full page, and draws using the image-type print data generation unit. Performing the processing and transferring the bitmap data to the printer improves the overall throughput of the printing processing. In the example of FIG. 9, a band memory 209 is used.
[0021]
As described above, the print data generation unit performs the rendering processing on the output device-dependent color space of 1, 2, and 4 bits for each YMCK color to save memory for both the PDL type and the image type. ) Calls the DDI function group at the time of the logical operation drawing process, since the color format used is not the YMCK format but the RGB format, drawing irregularities may occur. For this reason, when logical operation processing is performed in order to avoid illegal drawing, data converted to the YMCK format in the printer driver 204 is returned to an RGB value (inverse UCR (Under Color Remove) processing), and then the logical operation processing is performed. However, this does not guarantee complete drawing processing, but also causes a reduction in processing speed.
[0022]
As described above, the time required for the entire printing process varies depending on many factors such as the content to be printed, the type of the print data generation unit used by the printer driver 204, and hardware resources on the printer side.
[0023]
However, a method of automatically selecting an appropriate processing method in consideration of such factors has not been realized at present. Therefore, the user of the application usually selects a PDL type print data generation unit that is likely to be processed at high speed (actually, “speed priority” is selected by the application or a GUI provided by the printer driver 204). , By selecting a printing mode such as “high-speed printing”, the despooler 250 selects and processes the first print data generation unit 205 of the PDL type). If the output takes too long, Similarly, the mode is switched to the high-speed image mode (the despooler 250 selects the second print data generation unit that outputs 1-bit image data of each color of YMCK) and outputs the image again. If an incorrect output result is output, a print mode such as “image quality priority” or “high definition” is selected in the same manner (the despooler 250 selects the third print data generation unit that outputs image data of 8 bits for each color of RGB). ) And output it again.
[0024]
In other words, under the present circumstances, the selection of the print data generation unit used by the printer driver 204 is left to the user of the application, and the user can determine the optimal print mode for the document or the like to be printed by the user. Therefore, the optimum mode cannot be known unless printing is actually performed in all modes and output materials or output times are compared. When printing a document or the like having a plurality of pages, pages of different types, such as a page suitable for the PDL type and a page suitable for the image type, may be included in the same document. When printing such a document, if all pages are processed in the same print mode (print data generation unit), a problem such as a long output time or a mixture of incorrect output pages may occur.
[0025]
In order to solve such a problem, as shown in FIG. 6, according to the advantages and disadvantages of each print data generation unit that can be used by the printer driver 204, print processing is performed using only the advantages of each print data generation unit. There is a need for a technology for automatically switching the print mode (print data generation unit) that can perform the print job.
[0026]
A printer driver capable of realizing the print mode automatic switching needs at least the following functions.
[0027]
1) Spool driver function
To realize the automatic switching of the print mode, it is necessary to determine the optimal processing mode after knowing the drawing information for one page, and then execute the despooling process. Therefore, a function of spooling one page of DDI function call information in a data format that can be processed by any print data generation unit held by the despooler.
[0028]
2) Print mode determination function
A function to check the DDI function call for one page and determine which print data generation unit held by the despooler should generate print data optimally.
[0029]
3) Despooler function
A function for processing drawing information for one page spooled by the spool driver function using the optimum print data generation unit determined by the print mode determination function.
[0030]
FIG. 5 shows a configuration example of a host computer 200 having a printer driver having such functions. 5, a spool driver 211, a print mode determination unit 212, and a despooler 215 implement the above-described functions 1) to 3), respectively. The PDF storage unit 213 is an area where the spool driver 211 spools one page of drawing information. The PCF storage unit 214 is an area where the print mode determination unit 212 temporarily stores the features of one page of the DDI function call. is there.
[0031]
[Problems to be solved by the invention]
By using the printer driver 260 having the configuration as shown in FIG. 5, the print processing can be performed by automatically switching a plurality of print data generation units. Is performed, a new problem arises regarding drawing. The new problem will be described with reference to FIG.
[0032]
When drawing with a hatch brush or a style pen, a pattern of a specific style is predetermined by the basic OS, and a DDI function group is called from the basic OS with the ID of the pattern type.
[0033]
A list of hatch brushes and style pens already registered in the case of Windows (R) is shown below.
・ Hatch brush
VERTICAL: vertical hatch
HORIZONTAL: Horizontal hatch
FDIAGONAL: A hatch that rises 45 degrees to the right (diagonal line from upper right to lower left)
BDIAGNAL: A hatch that rises 45 degrees to the left (diagonal line from upper left to lower right)
CROSS: Horizontal and vertical cross hatch
DIAGCROSS: 45 degree cross hatch (diagonal from upper right to lower left and upper left to lower right)
・ Style pen
DOT: dotted line
DASH: broken line
DASHDOT: dashed line
DASHDOTDOT: Two-dot chain line
The PDL type print command generation device 205 generates a command including an ID of a drawing attribute such as a hatch brush pattern and a style pen pattern registered in the printer 100 in advance and performs drawing. By generating a PDL command using the drawing attribute ID already registered in the printer 100, there is no need to transfer actual pattern data representing a hatch brush or a style pen as a command. It is possible to reduce the transfer host command size during the transfer.
[0034]
However, the definition of the pattern predetermined by the basic OS described above is merely an abstract concept, and the actual default information in units of dots such as the width of the vertical hatch pattern and the interval between the solid lines forming the broken lines. Does not exist.
[0035]
The PDL-type print data generation means 205 draws with the drawing attributes of the printer defined inside the printer, and the image-type print data generation means (206 to 208) draws with the drawing attributes of the printer driver specified by the printer driver. You. For this reason, if the definition of the drawing attribute in each print data generating means (205 to 208) is different, the appearance may be remarkable as shown in FIG. In a printer driver that outputs print data by using a print data generation unit by switching every page, the difference in appearance between pages becomes a problem.
[0036]
SUMMARY OF THE INVENTION The present invention has been made in view of the above-described problems of the related art, and an object of the present invention is to provide a printer driver that outputs print data by using a print data generating unit by switching every page. To provide a unified printer driver.
[0037]
[Means for Solving the Problems]
The gist of the present invention is to provide a data processing device capable of communicating with a printer via a predetermined communication medium and a print processing device constituted by the printer in a page description language in a format capable of storing a drawing command passed from basic software. Spool driver means for conversion, print mode determination means for analyzing page description language and generating print mode determination information, page description storage means for holding the page description language generated by the spool driver means, and print mode determination means Print mode determination storage means for storing print mode determination information generated by the printer driver, and print data printable by the printer from a page description language generated by the spool driver means, which corresponds to the print mode on a one-to-one basis. A print mode is determined using a plurality of print data generation means and print mode determination information. And a despooler for supplying a page description language to the corresponding print data generating means, wherein the despooler means draws a printer-dependent drawing attribute, that is, a patch brush pattern or a style pen pattern, from the printer to a communication medium. The print data generating means is configured to obtain and manage the print data by using the managed drawing attribute when detecting the drawing attribute depending on the printer from the drawing information in the page description language. Exists to control.
[0038]
Further, the gist of the present invention is to provide a data processing device capable of communicating with a printer via a predetermined communication medium and a page description language in a format capable of storing a drawing command passed from basic software in a print processing device configured by the printer. Spool driver means for converting the page description language, print mode determination means for analyzing the page description language and generating print mode determination information, page description storage means for holding the page description language generated by the spool driver means, and print mode determination Means for storing print mode judgment information generated by the means, and print data printable by the printer from a page description language generated by the spool driver means, one-to-one corresponding to the print mode. Print mode using a plurality of print data generating means and print mode determination information. Determined, in a printer driver comprising a despooler means for supplying a page description language to the corresponding print data generation means, when the despooler means detects a printer-dependent drawing attribute from drawing information in the page description language, The present invention resides in controlling the print data generation means to generate print data by registering a common drawing attribute managed via a communication medium to a printer.
[0039]
Another aspect of the present invention resides in an information processing apparatus using the printer driver of the present invention.
[0040]
Another aspect of the present invention resides in a computer program for causing a computer device to implement the printer driver of the present invention.
[0041]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, the present invention will be described based on preferred embodiments with reference to the drawings.
[0042]
FIG. 5 is a block diagram illustrating a configuration example of a printing system to which the printer driver according to the present invention can be applied. As described above, the printer system of FIG. 5 includes the host computer 200 and the printer 100, and both are communicably connected to each other.
[0043]
The printer driver 260 according to the present embodiment is formed over the graphics subsystem 202 and the spool subsystem 210, which are subsystems provided by the basic software and can be developed by each printing device manufacturing vendor. It has an element for automatic switching.
○ In the graphics subsystem 202:
Spool driver 211
Print mode determination unit 212
○ In the spool subsystem 210:
Despooler 215
Print data generation units 205 to 208
Next, respective means necessary for realizing the automatic switching of the print mode, which is the background of the present invention, will be described.
[0044]
1) Spool driver 211
In order to realize the automatic switching of the print mode, it is necessary to determine the optimum processing mode after knowing the drawing information for one page, and then execute the despooling process. For this purpose, the data passed to the DDI function must be spooled in a data format that can be processed no matter which print data generating unit is used at the time of despooling, for one or more pages, and in page units.
[0045]
Therefore, in the present embodiment, a format (referred to as a PDF format) shown in FIG. 7 is used as a data format at the time of spooling. The spool data 900 in PDF format has, as a header, a PageInform (902) that holds a page size, a data size, the number of stored objects, and the like, following a pageID (901) for specifying a page.
[0046]
The field 903 following the header stores information indicating the drawing function called by the DDI function. In FIG. 7, the name of a drawing function CopyBits for performing a simple bitmap copy is stored.
[0047]
Also, datasize (904) is the size of the spool of CopyBits stored in 903, and BoundRect (905) is the transfer destination surface information indicating the surface information of the drawing destination passed to CopyBits, and SoSrc (906) is the CopyBits. Transfer source image information indicating the transferred source surface information is stored.
[0048]
The transfer source image data 907 is a bit string of the transfer source image data. co (908) stores the clip information of the drawing destination passed to CopyBits. If there are a plurality of clip data, the clip data 909 is stored behind the clip data. xlo (910) indicates color conversion information between the transfer source and transfer destination surfaces, rclDest (911) indicates information indicating a rectangular range on the drawing destination surface, and ptlSrc (913) indicates transfer source origin information on the transfer source surface. Are respectively stored.
[0049]
Thereafter, one page of spool data required for each drawing function is stored.
[0050]
At the time of despooling, the despooler 215 returns to the state of the DDI function, and then passes it to the print data generation unit determined by the print mode determination unit. As a result, the print data generation unit may receive the DDI function as in the related art, and keep the specification for generating the print data.
[0051]
2) Print mode determination unit 212
The print mode determination unit 212 checks a drawing command (drawing function) passed from the GDI (203), which is spooled by the spool driver 211 to the PDF storage unit 213, and generates a plurality of print data from data content of one page. The optimum one is determined.
[0052]
Specifically, in this determination, the spool driver 211 monitors the data to be spooled in the PDF storage unit 213, and stores information for determination such as the type and frequency of the drawing function included in the data of one page. It is based on the results.
[0053]
In the present embodiment, the print mode determination unit 212 stores the determination information in a PCF (pre-check file) storage unit 214. At this time, the data is stored as a data structure as shown in FIG.
[0054]
In FIG. 8, the PCF 1000 is a structure starting with a job number (JobID) 1001 and a page number (PageNo) 1002 to which the file belongs, and the corresponding page can be specified by these two values.
[0055]
Then, VbandSize (1004) representing the size of the band obtained by dividing the page in the Y-axis direction, bandCnt (1005) storing the number of band information BandInfo stored in the PCF1000, and determination information in each band are stored. BandInfo [0] (1006) to BandInfo [n] are stored. Each BandInfo has a configuration as shown by a structure 1030. That is, the PCF 1000 virtually defines an area in which the virtual band of the size indicated by VbandSize (1004) is spread in the pageSize (1003) by bandCnt (1005).
[0056]
BandInfo is a structure that starts with BandRectL (1010) that holds the virtual band area as rectangular information. This structure 1030 stores drawing processing information related to the area represented by BandRectL (1010). Used to record.
[0057]
Details of the structure 1030 are as follows.
[0058]
The maximum outline rectangular area DrawRectL1011 of the drawing processing drawn in the virtual band, the chromatic area ColorRectL1012 in the drawing area drawn in the band, the area ROPRectL1013 in which illegal printing occurs in YMCK printing, the drawing processing area ImgRectL1014 by the image system function, A drawing area GraphicRectL1014 and a text-based drawing area TextRectL1016 based on graphics functions.
[0059]
The BandInfo structure 1030 also collects information for each DDI function in the fields 1017 to 1020 in addition to the above.
[0060]
The information of StretchBlt (1019), which is a DDI function capable of specifying enlargement / reduction of a bitmap, will be described as an example. StretchBlt (1019) includes a plurality of fields 10191 to 10196. In other words, 4BPP, 24BPP including 1BPPTotalSize10193 storing the total data size of 1BPCnt10192 storing the number of 1BPP (1 bit per pixel) images, callcnt10191 storing the number of calls of the StretchBlt function relating to the virtual band area, and 1BPPTotalSize10193 storing the total data size of 1BPP image. Similar information can be stored for an image. Like the StretchBlt function, the other DDI functions are constituted by data structures that hold information passed to the respective function I / Fs.
[0061]
3) Despooler 215
Based on the features of each print data generation unit shown in FIG. 6, the print mode determination unit 212 analyzes the PCF stored in the PCF storage unit 214 and determines a print mode considered to be optimal. Then, the contents of the page description storage unit 213 are printed and reproduced using the print data generation units 205 to 207 corresponding to the determined print mode. Specifically, the PDL mode (first print data generation unit 205) is used when the absolute number of instructions is small, and the monochrome image mode (second print data generation unit 206) is used for a monochrome image with many instructions. If the number of instructions is large and the image is a color image, the device color mode (third print data generation unit 207) is used. If the number of instructions is large and drawing error occurs in the YMCK format, the RGB color mode (the fourth print data generation unit 207) is used. For example, the print data generation unit 208) can be selected.
[0062]
Since the data spooled by the spool driver 211 in the PDF storage unit 213 has a reversible PDF format for the DDI function, the despooler 215 uses the same print data generation units 205 to 208 as the conventional print data generation unit shown in FIG. Can be used.
[0063]
Next, a method for unifying drawing attributes in the printer driver 260 according to the present embodiment will be described with reference to FIG.
[0064]
1 differs from the conventional configuration (and operation) shown in FIG. 3 in that the despooler 215 generates the print data before the despooler 215 uses the print data generation means (205 to 208). In this case, the drawing attribute held in the printer is acquired, and the drawing attribute information of the printer is registered in the image type print data generating means (206 to 208).
[0065]
That is, the drawing attribute information held in the printer is used by the image-type print data generating means (206 to 208), so that the drawing attribute information among the print data generating units is unified. Therefore, even if the print data generation unit used for each page is changed, the hatch brush and the style pen output by the print data generation unit have a common appearance.
[0066]
The overall processing in the printer driver of the present invention described above will be described with reference to the flowchart shown in FIG.
[0067]
Upon receiving the call of the DDI function from the GDI (203), the spool driver 211 converts the content into a PDF format and spools it to the PDF storage unit 213 (step S100). On the other hand, the print mode determination unit 212 monitors data spooled by the spool driver 211 in the PDF storage unit 213, and stores the PCF in the PCF storage unit 214 (step S110). The spooling process of the PDF and the storing process of the PCF are continuously performed at least until the process for one page of the document to be printed is completed (step S120).
[0068]
When the storage of the PDF and PCF for one page is completed, the despooler 215 requests the printer to obtain the drawing attribute, and obtains the drawing attribute information held in the printer (step S130). Next, the despooler 215 registers the drawing attribute acquired in step S130 in the image-type print data generating means (206 to 208) (step S140). Subsequently, the despooler 215 refers to the PCF stored in the PCF storage unit 214 and determines a print mode that is optimal for the printing process of the page (Step S150).
[0069]
Then, the data in the PDF format spooled in the PDF storage unit 213 is returned to the form of the DDI function and delivered to the print data generation unit (step S160). The image-type print data generation unit generates print data that is image data using the received DDI function and the drawing attribute registered in step S140, and the PDL-type print data generation unit sets the drawing attribute. The PDL data is generated using the passed DDI function including the ID to represent (step S170). The generated print data is transferred to the printer 100 via the interface 600 of the spool subsystem 210 without passing through the band memory 209 if the print data is image data and not via the band memory 209 if the PDL command is a PDL command. Is done.
[0070]
In the flowchart of FIG. 2, processing for one page is described in chronological order to facilitate understanding. However, spooling (storage) processing in steps S100 to S120, determination in step S130 and subsequent steps, and printing processing And can be performed independently. That is, the spooling of the PDF data by the spool driver 211 and the storage of the PCF data by the print mode determination unit 212 are performed continuously until the processing for all pages of the document to be printed is completed irrespective of the processing after step S130. On the other hand, in the processing after step S130, the processing after the print mode determination can be repeatedly performed by referring to the PCF corresponding to the next page when the processing for one page is completed.
[0071]
(Other embodiments)
In the above-described embodiment, the despooler 215 acquires and manages a hatch brush pattern and a style pen pattern from the printer 100 by using a communication medium, and applies the hatch brush pattern and the style pen pattern to the image type print data generating means (206 to 208) as drawing attributes. Met.
[0072]
As another embodiment, as shown in FIG. 3, when the printer 100 supports a drawing attribute registration command for an arbitrary hatch brush pattern and style pen pattern to the printer, the despooler 215 uses the image-type print data generation unit (206). To 208), there is a second embodiment in which the drawing attribute used in the drawing attribute registration command is registered.
[0073]
Although not specifically described, in a printer having a plurality of drawing resolutions, it is usually necessary to manage drawing attributes of a hatch brush and a style pen corresponding to each resolution. Since the drawing attributes of hatch brushes and style pens are composed of ON / OFF information in pixel units, the actual size of the unit pixel changes depending on the resolution at the time of drawing. Management is necessary for each case.
[0074]
In the above-described embodiment, the processing for unifying the drawing attributes is performed when the despooler 215 starts the printing operation. However, the processing may be performed when the printer driver 260 is installed or when the drawing with the actual drawing attributes occurs. In other words, before the PDF with the actual drawing attribute is processed by the print data generation unit, there is no problem in the present invention at the time when the process for unifying the drawing attribute is started.
[0075]
In addition, even if the present invention is applied to a system including a plurality of devices (for example, a host computer, an interface device, a reader, a printer, and the like), the present invention is applied to an apparatus (for example, a copying machine, a facsimile device, and the like) including one device. May be applied.
[0076]
Another object of the present invention is to provide a storage medium storing a software program code called a printer driver for realizing the functions of the above-described embodiments to a system or an apparatus, and to provide a computer (or CPU or MPU) of the system or apparatus. Needless to say, the above can also be achieved by reading and executing the program code stored in the storage medium.
[0077]
In this case, the program code event read from the storage medium realizes the functions of the above-described embodiment, and the storage medium storing the program code constitutes the present invention.
[0078]
As a storage medium for supplying the program code, for example, a floppy (R) disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM, or the like is used. Can be.
[0079]
When the computer executes the readout program code, not only the functions of the above-described embodiments are realized, but also an OS (Operating System) running on the computer based on the instruction of the program code. It goes without saying that a part or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing.
[0080]
Further, after the program code read from the storage medium is written into a memory provided on a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that a CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
[0081]
When the present invention is applied to a storage medium, the storage medium stores program codes corresponding to the flowcharts described above.
[0082]
【The invention's effect】
As described above, according to the present invention, in a printer driver that outputs print data by using a plurality of print data generating units by switching each page, a print data generating unit is used for drawing using a hatch brush and a style pen. Can realize a unified printer driver.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration outline of a printer driver according to an embodiment of the present invention and a drawing attribute acquisition management operation.
FIG. 2 is a flowchart illustrating the operation of the printer driver of the present invention.
FIG. 3 is a diagram illustrating an outline of a configuration of a printer driver according to another embodiment of the present invention and a drawing attribute acquisition management operation.
FIG. 4 is a diagram illustrating a configuration outline of a conventional printer driver and a drawing result using a drawing attribute for each print type.
FIG. 5 is a block diagram illustrating a configuration example of a printing system to which a printer driver according to the present invention can be applied.
FIG. 6 is a diagram comparing characteristics of each print mode.
FIG. 7 is a schematic diagram showing a data structure of a PDF format used in the embodiment of the present invention.
FIG. 8 is a schematic diagram showing a data structure of a PCF format used in the embodiment of the present invention.
FIG. 9 is a diagram illustrating a configuration example of a conventional printing system in a fixed printing mode.
[Explanation of symbols]
100 printer
200 Host computer
201 Application Software
202 Graphic Subsystem
203 GDI
260 Printer Driver
205 1st print data generation unit (PDL type)
206 1st print data generation unit (monochrome 1BPP image type)
207 First print data generation unit (YMCK4BPP image type)
208 First print data generation unit (RGB24BPP image type)
209 band memory
210 Spool subsystem
211 Spool driver
212 print mode determination unit
213 PDF storage unit
214 PCF storage unit
215 Despooler
300 display monitor
400 keyboard
500 mice
600 external interface

Claims (4)

所定の通信媒体を介してプリンタと通信可能な情報処理装置とそのプリンタによって構成される印刷処理装置において、
基本ソフトウェアより渡される描画命令を記憶可能な形式のページ記述言語に変換するスプールドライバ手段と、
前記ページ記述言語を分析し、印刷モード判定情報を生成する印刷モード判定手段と、
前記スプールドライバ手段によって生成されたページ記述言語を保持するページ記述記憶手段と、
前記印刷モード判定手段によって生成された印刷モード判定情報を保持する印刷モード判定記憶手段と、
前記印刷モードに1対1に対応し、前記スプールドライバ手段が生成するページ記述言語からプリンタが印刷可能な印刷データを生成可能な複数の印刷データ生成手段と、
前記印刷モード判定情報を用いて印刷モードを決定し、対応する前記印刷データ生成手段に前記ページ記述言語を供給するデスプーラ手段とで構成されるプリンタドライバにおいて、
前記デスプーラ手段が、前記ページ記述言語中の描画情報から前記プリンタに依存する描画属性を検出した際に、前記描画属性として共通の情報を用いて前記印刷データを生成するよう前記印刷データ生成手段を制御することを特徴とするプリンタドライバ及び情報処理装置。
In an information processing device capable of communicating with a printer via a predetermined communication medium and a print processing device configured by the printer,
Spool driver means for converting a drawing command passed from the basic software into a page description language in a format capable of being stored;
A print mode determining unit that analyzes the page description language and generates print mode determination information;
Page description storage means for holding a page description language generated by the spool driver means;
A print mode determination storage unit that holds print mode determination information generated by the print mode determination unit;
A plurality of print data generating means which correspond to the print mode one by one and are capable of generating print data printable by a printer from a page description language generated by the spool driver means;
A printer driver configured to determine a print mode using the print mode determination information and a despooler unit that supplies the page description language to the corresponding print data generation unit;
When the despooler unit detects a drawing attribute depending on the printer from drawing information in the page description language, the print data generating unit generates the print data using common information as the drawing attribute. A printer driver and an information processing apparatus characterized by controlling.
前記描画属性として共通の管理を行うものとして、パッチブラシパターン、スタイルペンパターンを含むことを特徴とする請求項1記載のプリンタドライバ及び情報処理装置。2. The printer driver and information processing apparatus according to claim 1, wherein a common management as the drawing attribute includes a patch brush pattern and a style pen pattern. 前記描画属性を前記プリンタから通信媒体を介して、前記デスプーラ手段が取得することを特徴とする請求項1および請求項2記載のプリンタドライバ及び情報処理装置。3. The printer driver and information processing apparatus according to claim 1, wherein the despooler acquires the drawing attribute from the printer via a communication medium. 前記描画属性を前記プリンタへ通信媒体を介して、前記デスプーラ手段が登録することを特徴とする請求項1および請求項2記載のプリンタドライバ及び情報処理装置。3. The printer driver and information processing apparatus according to claim 1, wherein the despooler registers the drawing attribute to the printer via a communication medium.
JP2002359275A 2002-12-11 2002-12-11 Printer driver and information processor Withdrawn JP2004192323A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002359275A JP2004192323A (en) 2002-12-11 2002-12-11 Printer driver and information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002359275A JP2004192323A (en) 2002-12-11 2002-12-11 Printer driver and information processor

Publications (1)

Publication Number Publication Date
JP2004192323A true JP2004192323A (en) 2004-07-08

Family

ID=32758721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002359275A Withdrawn JP2004192323A (en) 2002-12-11 2002-12-11 Printer driver and information processor

Country Status (1)

Country Link
JP (1) JP2004192323A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012003444A (en) * 2010-06-16 2012-01-05 Ricoh Co Ltd Printer driver

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012003444A (en) * 2010-06-16 2012-01-05 Ricoh Co Ltd Printer driver

Similar Documents

Publication Publication Date Title
US8472043B2 (en) Information processing apparatus and its control method for managing distributed processing
US20070086050A1 (en) Information processing apparatus, image processing method, and machine-readable medium
US20080080780A1 (en) Image compression method and apparatus
US20040125395A1 (en) Printing control method and apparatus
US20090097067A1 (en) Optimizing raster operation functions during print job processing
JP2004126871A (en) Method and device for controlling printing
JP4208769B2 (en) Information processing apparatus, control method thereof, and information processing method
US8339667B2 (en) Optimizing to-be printed objects during print job processing
JP4174476B2 (en) Data processing apparatus, data processing method, printer driver program, print control apparatus, print control method, and printing system
US20040105114A1 (en) Information processing apparatus, method of controlling printing, computer program, and printing system
US7161702B2 (en) Method and apparatus for generating a print command capable of generating improved stable throughput
US6804028B1 (en) Image processing apparatus and method, and storage medium storing computer-readable program
JP4522006B2 (en) Information processing apparatus, information processing method, and printer driver program
JP2004192323A (en) Printer driver and information processor
US20040190067A1 (en) Systems and methods for context-based adaptive image processing using segmentation
JP2002041258A (en) Printer driver, image processing method, and recording medium
US7196812B2 (en) Information processing apparatus and control code generation method
JP2002248829A (en) Image processor and storage medium with image processing program recorded therein
JP3907484B2 (en) Information processing apparatus, control method thereof, and program
JP3755265B2 (en) Print processing device
JP4467715B2 (en) Image output control apparatus and method
US7170616B2 (en) Print processing and method for banding areas and pages of each physical color
US20100110452A1 (en) Image processing device and recording medium containing program therefor
JP2005169671A (en) Data processing apparatus, printing controlling method, storage medium with computer readable program stored, and program
JP3968989B2 (en) Image processing apparatus, image processing method, and storage medium storing image processing program

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060307