JP3689579B2 - 情報処理装置及び情報処理方法、記憶媒体 - Google Patents

情報処理装置及び情報処理方法、記憶媒体 Download PDF

Info

Publication number
JP3689579B2
JP3689579B2 JP01765499A JP1765499A JP3689579B2 JP 3689579 B2 JP3689579 B2 JP 3689579B2 JP 01765499 A JP01765499 A JP 01765499A JP 1765499 A JP1765499 A JP 1765499A JP 3689579 B2 JP3689579 B2 JP 3689579B2
Authority
JP
Japan
Prior art keywords
print
print mode
mode
code
printer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP01765499A
Other languages
English (en)
Other versions
JPH11327846A (ja
Inventor
智 西川
慶信 黒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP01765499A priority Critical patent/JP3689579B2/ja
Priority to DE69924548T priority patent/DE69924548T2/de
Priority to EP99300659A priority patent/EP0935187B1/en
Priority to US09/244,475 priority patent/US6734986B1/en
Publication of JPH11327846A publication Critical patent/JPH11327846A/ja
Application granted granted Critical
Publication of JP3689579B2 publication Critical patent/JP3689579B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理装置及び情報処理方法、記憶媒体に関するものである。
【0002】
【従来の技術】
従来、プリンタを用いて印刷する際に、ホスト装置でラスタライズされたデータをプリンタに送り付けて印刷するラスタグラフィック印刷モードや、ベクタデータをプリンタに送り付けてプリンタにおいてラスタライズして印刷するベクタグラフィックス印刷モード等、複数の印刷モードを持つプリントシステムがある。このような、ホストコンピュータとそれに接続されたプリンタからなるプリントシステムにおいては、複数の印刷モードを実行可能にも関わらず、印刷時に使用される印刷モードは、利用者が選択した印刷モードのみであった。
【0003】
また、プリンタを制御するプリンタ制御コマンドを生成する方法として、一端中間コードデータを生成した後、最終的なプリンタ制御コマンドを生成する方法や、直接プリンタ制御コマンドを生成する方法等から選択できるプリントシステムもある。このようなプリントシステムにおいては、プリンタ制御コマンド生成方法として、利用者が明示的に選択したプリンタ制御コマンド生成手法が使用される。
【0004】
また、選択された印刷モードに応じてプリンタ制御コマンドを生成するに当たり、アプリケーションやOS等に用意されているグラフィックエンジンが生成した描画命令からプリンタ制御コマンドを生成するプリントシステムがある。このようなプリントシステムにおいては、選択された印刷モードとは無関係に、描画命令がグラフィックエンジンにより生成される。
【0005】
また、プリント制御コマンドの生成方法に関して、プリンタと接続されたホストコンピュータにおいて、各種アプリケーションが発行する描画命令を即座に印刷イメージへ変換(ラスタライズ)しながらプリンタ制御コマンドを生成できるプログラム(Raster系プリンタドライバ)の存在が知られているが、このような動作をするプリンタドライバはプリンタ制御コマンドを生成する前に、ページイメージをイメージデータの形式でメモリ等へ一時記憶する必要がある。しかし、近年のプリンタ高解像度化により、状況によっては数メガバイト単位のメモリ領域が必要とされることがある。
【0006】
従って、通常、このような動作をするプリンタドライバは、ページをより小さいバンドと呼ばれる矩形領域に分割し、印刷イメージへラスタライズされた情報は、そのバンドに対応した情報としてメモリ領域(バンドメモリ)へ保存される。分割された領域それぞれに対して同様の保存を繰り返し、ページ単位でラスタライズされた情報が保存される。一つのバンド領域に対するアプリケーションからの描画命令が終わると、バンドメモリを必要に応じて細分化してプリンタ制御コマンドを生成する。
【0007】
尚、上記に示した一連の処理手順は、必要に応じて改ページ処理等を行いながら、全印刷ページを構成する全バンドを処理し終えるまで続けられる。
【0008】
図17は、従来のRaster系プリンタドライバの処理内容をフローチャートで示したものである。
【0009】
まず、プリンタドライバはアプリケーションからの描画命令を受け付ける(S1701)。次にその描画命令が印刷開始を意味するものであるかどうかを判定し(S1702)、もし印刷開始要求ならば(S1702−Yes)、ラスタライズされた印刷イメージを記憶しておくメモリ領域(バンドメモリ)をホストコンピュータのRAM上へ確保し、初期化を行い(S1703)、再びアプリケーションからの描画命令を受け付ける。
【0010】
S1702において、アプリケーションから受け付けた描画命令が印刷開始を意味するものではないと判定された場合には(S1702−No)、続いて、印刷終了を意味するものかどうかを判定し(S1704)、印刷終了でないと判定された場合には(S1704−No)、描画要求の場合にのみ、その要求内容に応じた印刷イメージを構築(ラスタライズ)し、バンドメモリへ記憶する(S1705)。
【0011】
S1705の処理は、処理中のバンド領域に対するアプリケーションからの描画命令が終わったと判定される(S1706)まで繰り返される。S1706において、処理中のバンド領域に対する描画命令が終わったと判定された場合には(S1706−Yes)、S1707へ進み、バンド領域を適切に細分化し、細分化されたそれぞれの領域に対応するプリンタ制御コマンドを生成する(S1707)。
【0012】
尚、S1707を処理した後は、バンドメモリの初期化を行い(S1708)、再び、アプリケーションからの新しいバンド領域に対応する描画命令を受け付け始める。前記S1704において、アプリケーションから受け付けた描画命令が印刷終了を意味するものであると判断された場合には(S1704−Yes)、バンドメモリをRAM上から解放し(S1709)、処理を終了する。
【0013】
【発明が解決しようとする課題】
このようなプリントシステムでは、以下に示す4つの問題点があった。
【0014】
即ち、複数の印刷モードを選択可能にも関わらず、プリンタでの印刷スループットや適正な印刷が行えるか等が何ら考慮されずに、利用者が選択した印刷モードを使用して印刷処理が実行されるという第1の問題点があった。
【0015】
また、複数のプリンタ制御コマンド生成方法を実行可能にも関わらず、プリンタでの印刷スループットや適正な印刷が行えるか等が何ら考慮されずに、利用者が明示的に選択したプリンタ制御コマンド生成手法を用いて印刷処理が実行されるという第2の問題点があった。
【0016】
また、プリンタでの印刷スループットや適正な印刷が行えるか等が考慮されて、印刷モードが選択されたにも関わらず、その印刷モードとは無関係に描画命令が生成され、場合によってはその印刷モードに適さない描画命令が生成される場合があるという第3の問題点があった。
【0017】
さらに、従来のRaster系プリンタドライバは、上記で示したように図17のステップ1707において、実際に描画が行われていないバンド領域に対応するプリンタ制御コマンドをも生成し、プリンタへ送信していた。また、描画が行われたバンド領域に対応するプリンタ制御コマンドのみを生成する場合でも、それぞれの細分化領域へ描画が為されているかどうかを確認する為に、逐一、そのバンドメモリ内容を全て確認しなければならないという第4の問題点があった。
【0018】
【課題を解決するための手段】
本発明は上記の問題点を解決するために、ベクタグラフィックス印刷モードや、ラスタグラフィックス印刷モードといった印刷モードを、ユーザに指定された特定機能(印刷設定)と、予め登録された特定機能(印刷機能)とを比較することにより選択することで、高いパフォーマンス、又は適正な印字結果を得ることを可能にする情報処理技術の提供を目的とする。
【0019】
すなわち、ユーザが明示的に指定した印刷設定と、予め登録された特定の印刷機能とを比較することで印刷モードを選択することができ、簡易な構成で、かつ処理負担が軽く、適切な印刷モードを選択することを可能にする情報処理技術の提供を目的とする。
【0020】
あるいは、ベクタグラフィックス印刷モードや、ラスタグラフィックス印刷モードといった印刷モードを、印刷要求を行ったアプリケーション名称と、予め登録されたアプリケーション名称とを比較することにより選択することで、高いパフォーマンス、又は適正な印字結果を得ることを可能にする情報処理技術の提供を目的とする。
【0021】
すなわち、印刷要求を行ったアプリケーション名称を取得することで、そのアプリケーション名称が予め登録されたアプリケーション名称と一致するかを比較することで印刷モードを選択することができ、簡易な構成で、かつ処理負担が軽く、適切な印刷モードを選択することを可能にする情報処理技術の提供を目的とする。
【0022】
上記のいずれかの目的を達成するため、本発明にかかる情報処理装置及び情報処理方法、記憶媒体は主として以下の構成からなることを特徴とする。
【0023】
すなわち、本発明にかかるプリンタで印刷すべき印刷データを生成する、ホストコンピュータとしての情報処理装置は、
印刷指示を受けた際に、ベクタグラフィック印刷モードまたはラスタグラフィック印刷モードのいずれかの印刷モードで印刷すべき機能として予め登録された特定の印刷機能を取得する第1取得手段と、
ユーザから明示的に指定された印刷設定を取得する第2取得手段と、
前記第1取得手段により取得された前記特定の印刷機能と、前記第2取得手段で取得された前記印刷設定とに基づいて、印刷データの描画モードを示す印刷モードを前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択手段と、
前記選択手段により選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御手段とを備えることを特徴とする。
あるいは、本発明にかかるプリンタで印刷すべき印刷データを生成する、ホストコンピュータとしての情報処理装置は、
印刷指示を受けた際に、予め登録された特定のアプリケーション名称を取得する第1取得手段と、
グラフィックエンジンを介して印刷要求を行ったアプリケーション名称を取得する第2取得手段と、
前記第1取得手段により取得された前記特定のアプリケーション名称と前記第2取得手段で取得された前記印刷要求を行ったアプリケーション名称との比較結果に基づいて、印刷データの描画モードを示す印刷モードを、前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択手段と、
前記選択手段により選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御手段とを備えることを特徴とする。
【0024】
また、ホストコンピュータとしての情報処理装置が生成する、プリンタで印刷すべき印刷データを処理する情報処理方法は、
印刷指示を受けた際に、ベクタグラフィック印刷モードまたはラスタグラフィック印刷モードのいずれかの印刷モードで印刷すべき機能として予め登録された特定の印刷機能を取得する第1取得工程と、
ユーザから明示的に指定された印刷設定を取得する第2取得工程と、
前記第1取得工程により取得された前記特定の印刷機能と、前記第2取得工程で取得された前記印刷設定とに基づいて、印刷データの描画モードを示す印刷モードを前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択工程と、
前記選択工程により選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御工程とを備えることを特徴とする。
あるいは、プリンタで印刷すべき印刷データを生成する、ホストコンピュータにおける情報処理方法は、
印刷指示を受けた際に、予め登録された特定のアプリケーション名称を取得する第1取得工程と、
グラフィックエンジンを介して印刷要求を行ったアプリケーション名称を取得する第2取得工程と、
前記第1取得工程により取得された前記特定のアプリケーション名称と前記第2取得工程で取得された前記印刷要求を行ったアプリケーション名称との比較結果に基づいて、印刷データの描画モードを示す印刷モードを、前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択工程と、
前記選択工程により選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御工程とを備えることを特徴とする。
【0025】
また、ホストコンピュータとしての情報処理装置が生成する、プリンタで印刷すべき印刷データを処理する情報処理プログラムを格納する記憶媒体であって、当該プログラムが、
印刷指示を受けた際に、ベクタグラフィック印刷モードまたはラスタグラフィック印刷モードのいずれかの印刷モードで印刷すべき機能として予め登録された特定の印刷機能を取得する第1取得工程のコードと、
ユーザから明示的に指定された印刷設定を取得する第2取得工程のコードと、
前記第1取得工程のコードにより取得された前記特定の印刷機能と、前記第2取得工程のコードで取得された前記印刷設定とに基づいて、印刷データの描画モードを示す印刷モードを前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択工程のコードと、
前記選択工程のコードにより選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御工程のコードとを備えることを特徴とする。
あるいは、プリンタで印刷すべき印刷データを生成するために、ホストコンピュータにおいて実行する情報処理プログラムを格納する記憶媒体であって、当該プログラムが、
印刷指示を受けた際に、予め登録された特定のアプリケーション名称を取得する第1取得工程のコードと、
グラフィックエンジンを介して印刷要求を行ったアプリケーション名称を取得する第2取得工程のコードと、
前記第1取得工程のコードにより取得された前記特定のアプリケーション名称と前記第2取得工程のコードで取得された前記印刷要求を行ったアプリケーション名称との比較結果に基づいて、印刷データの描画モードを示す印刷モードを、前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択工程のコードと、
前記選択工程のコードにより選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御工程のコードとを備えることを特徴とする。
【0032】
【発明の実施の形態】
[第1の実施の形態]
以下、本発明を適用するのに好適である実施形態について説明を行う。
【0033】
<プリントシステムの構成>
図1は本発明の実施形態を示すプリンタ制御システムの構成を説明するブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の携帯からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【0034】
図1において、ホストコンピュータ3000は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備え、システムバス4に接続される各デバイスをCPU1が総括的に制御する。また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶し、ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。
【0035】
RAM2は、CPU1の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、CRTディスプレイ(CRT)10の表示を制御する。ディスクコントローラ(DKC)7は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フロッピーディスク(FD)等の外部メモリ11とのアクセスを制御する。プリンタコントローラ(PRTC)8は、所定の双方向性インターフェース(インターフェース)21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。
【0036】
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのいわゆるWYSIWYG (What You See Is What You Get)を可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウィンドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウィンドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【0037】
一方、プリンタ1500において、プリンタCPU12は、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ4に記憶された制御プログラム等に基づいて、システムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ROM13のデータ用ROMにはハードディスク等の外部メモリ14がないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。CPU12は入力部18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知可能に構成されている。
【0038】
RAM19は、CPU12の主メモリ、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、操作パネル18には、操作のためのスイッチおよびLED表示器等が配されている。
【0039】
また、前述した外部メモリは1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
【0040】
<プリントシステムの機能的な構成>
図2は、プリンタ等の印刷装置が直接、あるいはネットワーク経由で接続されているホストコンピュータにおけるプリントシステムの、機能ブロックによる構成図である。図2のホストコンピュータ3000内の各ブロックは、図1のシステムで、CPU1がプログラムを実行することで実現される機能ごとのブロックで示したものである。アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在し、実行される場合にOSやそのモジュールを利用するモジュールによってRAM2にロードされ実行されるプログラムモジュールである。
【0041】
また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部ディスク11のHDに追加することが可能となっている。外部メモリ11に保存されているアプリケーション201はRAM2にロードされて実行されるが、このアプリケーション201からプリンタ1500に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力(描画)を行う。
【0042】
なお、グラフィックエンジン202としては、マイクロソフト社のMS-Windowsにおけるグラフィックデバイスインターフェイス(以下、GDI)などが挙げられる。GDIは、アプリケーションに対して、プリンタやディスプレイ等の出力デバイスに依存しない共通のグラフィック用インターフェイスを提供するものである。
【0043】
グラフィックエンジン202は、印刷装置ごとに用意されたプリンタドライバ203を同様に外部メモリ11からRAM2にロードし、アプリケーション201の出力をプリンタドライバ203を用いてプリンタの制御コマンドに変換する。変換されたプリンタ制御コマンドはOSによってRAM2にロードされたシステムスプーラ204を経てインターフェース21経由でプリンタ1500へ出力される仕組みとなっている。
【0044】
本発明は、図2で示すプリンタとホストコンピュータからなる印刷システムを前提としているが、更に図3に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールするシステムで実施することもできる。図3は、図2のシステムを拡張したもので、グラフィックエンジン202からプリンタドライバ203へ描画命令を送る際に、一旦中間コードデータからなるスプールファイル303を生成する構成をとる。図2のシステムでは、アプリケーション201が印刷処理から開放されるのは、プリンタドライバ203がグラフィックエンジン202からのすべての描画命令をプリンタの制御コマンドヘ変換し終った時点である。これに対し、図3のシステムでは、アプリケーション201が印刷処理から開放されるのは、スプーラ302がすべての描画命令を中間コードデータに変換し、スプールファイル303に出力した時点である。通常、後者の方が短時間で済む。
【0045】
また、図3で示すシステムにおいては、スプールファイル303の内容に対して加工することが可能であり、これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを1ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。これらの目的のために、図2のシステムに対し、図3の様に中間コードデータでスプールするようにシステムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ203が提供するウィンドウから設定を行い、プリンタドライバ203がその設定内容をRAM2上あるいは外部メモリ11上に保管する。
【0046】
図3で示すシステムに本発明を実施することにより、前記したように、アプリケーションやプリンタドライバ自身が持っていない機能を提供しながら、予め設定した条件に応じて、その条件に最適な印刷モードを選択でき、プリンタでの印刷スループットを向上させ、また、適正な印刷結果を得ることができる印刷システム及び印刷制御装置及び方法を提供することができる。
【0047】
<プリント動作の概要>
以下、図3のプリントシステムの詳細を説明する。図3に示すとおり、この拡張された処理方式では、グラフィックエンジン202からの描画命令をディスパッチャ301が受け取る。ディスパッチャ301がグラフィックエンジン202から受け取った描画命令が、アプリケーション201からグラフィックエンジン202へ発行された描画命令の場合には、ディスパッチャ301は、外部メモリ11に格納されているスプーラ302をRAM2にロードし、プリンタドライバ203ではなくスプーラ302へ描画命令を送付する。
【0048】
スプーラ302は、受け取った描画命令を中間コードに変換してスプールファイル303に出力する。また、スプーラ302は、プリンタドライバ203に対して設定されている印刷データに関する加工設定をプリンタドライバ203から取得し、スプールファイル303に保存する。なお、スプールファイル303は外部メモリ11上にファイルとして生成するが、RAM2上に生成することも可能である。更にスプーラ302は、外部メモリ11に格納されているスプールファイルマネージャ304をRAM2にロードし、スプールファイルマネージャ304に対してスプールファイル303の生成状況を通知する。
【0049】
その後、スプールファイルマネージャ304は、スプールファイル303に保存された印刷データに関する加工設定の内容に従い、再度グラフィックエンジン202を利用して印刷を行えると判断した際には、外部メモリ11に格納されているデスプーラ305をRAM2にロードし、デスプーラ305に対して、スプールファイル303に記述された中間コードデータの印刷処理を行うように指示する。
【0050】
デスプーラ305は、スプールファイル303に含まれる中間コードデータをスプールファイル303に含まれる加工設定の内容に従って加工し、もう一度グラフィックエンジン202経由で出力する。ディスパッチャ301がグラフィックエンジン202から受け取った描画命令が、デスプーラ305からグラフィックエンジン202へ発行された描画命令の場合には、ディスパッチャ301はスプーラ302ではなく、プリンタドライバ203に処理を切り替える。プリンタドライバ203はプリンタ制御コマンドを生成し、システムスプーラ204経由でプリンタ1500に出力がなされる。
【0051】
<印刷モード>
本実施形態では、プリンタの持つ複数の印刷モードの切り換えの例として、次に示すような大きく異なる2つのプリンタ制御コマンド生成手法を動的に切り替える場合を示す。このプリンタ制御コマンド生成手法が実行されるのは、プリンタドライバ203上であり、プリンタドライバ203の生成したプリンタ制御コマンドの内容に従って、そのコマンドを受け取ったプリンタ1500の印刷モードが決定されることになる。以下、まず、プリンタドライバ203における2つのプリンタ制御コマンド生成手法をフローチャート等を用いて説明する。
【0052】
なお、これらのフローチャートで示される処理は、図2に示したホストコンピュータにおける標準的な印刷システムのブロック図、および図3に示した図2を拡張した印刷システムのブロック図で示される印刷システム上で実行可能である。ホストコンピュータ3000上において、OSの管理のもとに、ユーザ等の指示によってRAM2ヘロードされて動作するアプリケーション201が印刷処理を開始した際に、同じくRAM2へロードされたプリンタドライバ203により、図4に示すベクタグラフィック印刷モード、または図5に示すラスタグラフィック印刷モードのどちらかのモードでプリンタ制御コマンドが生成される。
【0053】
ベクタグラフィック印刷モードにおいては、プリンタドライバ203は図4に示した手順で動作する。
【0054】
プリンタドライバ203は、グラフィックエンジン202を介したアプリケーション201からの描画命令を受け付け(ステップ401)、各々の描画命令(例えば線の描画等)に対応したプリンタ制御(描画)コマンドデータを生成する(ステップ402)。生成されたプリンタ制御コマンドデータはRAM2または外部メモリ11等ヘシステムスプーラ204によりスプールされる(ステップ403)。これらの処理はアプリケーション201及びグラフィックエンジン202による描画処理が終了するまで繰り返し行われる(ステップ404)。描画処理が終了すると、システムスプーラ204によりスプールされていたプリンタ制御コマンドデータがプリンタ1500に対して送信される(ステップ405)。
【0055】
プリンタドライバ203によって実行されるベクタグラフィックス印刷モードにおけるプリンタ制御コマンド生成手法の特徴は、線等のベクタグラフィックスに対応した幾何学的な画像を生成するためのプリンタ制御(描画)コマンドをプリンタヘ送信するので、プリンタ1500のプログラムROM13からRAM19ヘロードされたプログラムによって、印刷イメージの生成(ラスタライズ)が行われることである。
【0056】
次に、図5に示したラスタグラフィック印刷モードにおける手法を説明する。プリンタドライバ203は、ホストコンピュータ3000上で同プリンタドライバ203によってラスタライズされる印刷イメージを格納しておくメモリ領域(以下、バンドメモリ)をRAM2上へ確保してから(ステップ501)、グラフィックエンジン202を介したアプリケーション201の描画命令を受け付ける(ステップ502)。受け付けられた各描画命令(例えば、線の描画等)は、プリンタドライバ203によって、即座に印刷イメージヘラスタライズされ(ステップ503)、バンドメモリ上へ記憶される。この処理はアプリケーション201及びグラフィックエンジン202による描画処理が終了するまで繰り返し行われる(ステップ504)。描画処理が終了すると、バンドメモリヘ格納された印刷イメージは、プリンタドライバ203が、必要があれば細分化等を行い、ビットマップデータの描画に対応する複数のプリンタ制御(描画)コマンドヘ変換し(ステップ505)、システムスプーラ204に対して出力を行う(ステップ506)。システムスプーラ204はスプールしておいたプリンタ制御コマンドをプリンタに対して送信し(ステップ507)、プリンタドライバ203はバンドメモリを開放する(ステップ508)。
【0057】
プリンタドライバ203によって実行される上記ラスタグラフィックス印刷モードにおけるプリンタ制御コマンド生成手法の特徴は、線等の描画命令は、ホストコンピュータ3000上のRAM2ヘロードされて動作するプリンタドライバ203によりラスタライズされるので、基本的に、プリンタ1500へはビットマップイメージに対応したプリンタ制御(描画)コマンドが大勢を占めて送信されるということである。
【0058】
<ホストコンピュータのメモリマップ>
図6は、本実施形態における印刷モード制御プログラムを含む印刷関連モジュールがホストコンピュータ3000上のRAM2ヘロードされ、実行可能となった状態のメモリマップを示している。
【0059】
図7は、外部メモリ11等に生成される中間コードデータ一時保存ファイルの内容を示したものである。尚、図中において、[ジョブ開始命令]、「改ページ命令]等の表記があるが、これらはファイル中の中間コードを便宜的に分かり易くするための表記であり、実際は、バイナリ形式で同中間コードは格納されている。
【0060】
<プリント制御手順>
以下、フローチャート等を用いて、本発明の一実施形態について詳しく述べる。図9は、本実施形態の印刷手順を示すホストコンピュータのディスパッチャ301及びスプーラ302による処理手順のフローチャートである。この手順は、図3のプリントシステムにより実行されるものだが、図9におけるスプール処理要求をすべて”No”とした場合には、図2のシステムにおいても実行することができる。
【0061】
まず、グラフィックエンジン202からの初期化要求であるかの判定処理(ステップ901)が行われる。初期化要求はジョブ開始要求に先立って、必ず送られてくるものとする。また、プリンタドライバ203又はスプーラ302は現在の印刷モードに準じた出力能力(ケーパビリティ)をグラフィックエンジン202に知らせることにより、グラフィックエンジン202はその出力能力に準じた形で印刷データを送ることになる。例えば、現在の印刷モードがベクタグラフィック印刷モードである場合には、プリンタドライバ203又はスプーラ302は円描画や矩形描画などの出力能力がある旨をグラフィックエンジン202へ通知する。一方、現在の印刷モードがグラフィック印刷モードであれば、プリンタドライバ203又はスプーラ302は円描画や矩形描画などの出力能力がない旨をグラフィックエンジン202へ通知する。すると、グラフィックエンジン202はその出力能力に適した形で描画命令を出力する。
【0062】
ここで、グラフィックエンジン202からの初期化要求である場合(S901−YES)、次のスプール処理の要求があるかの判定(ステップ902)が行われる。ここでいうスプール処理の要求とは、ユーザーが明示的に指定するもので、ユーザーが何らかの目的(アプリケーションの開放促進、特殊印刷等)を持って選択するものである。
【0063】
もしスプール処理の要求がなければプリンタドライバの初期化処理(ステップ908)を行い、グラフィックエンジン202へと処理が戻される。ここではスプール処理の要求があったとする(S902−YES)。すると次に、予め登録されたアプリケーション名称の取得処理(ステップ903)が行われる。本実施形態では、デフォルトでベクタグラフィックス印刷モードであるものと仮定している。このため、ラスタグラフィックス印刷モードヘの切り替えを行った方が平均的に高い印刷スループットが得ることができたり、または適正な印刷結果を得ることができると思われるアプリケーション名称を、スプール処理モジュールの内部で事前にテーブル上に列挙しておく。ここからステップ903でアプリケーション名称が取得される。
【0064】
次に、アプリケーションよりその名称の取得処理(ステップ904)が行われる。これは、グラフィックエンジン202を介してアプリケーション名称を取得する処理である。この処理により初期化要求を出しているアプリケーションの名称を取得することができる。そして、これらのアプリケーション名称が一致するかの判定処理(ステップ905)が行われる。すなわち、取得されたアプリケーション名称が、ステップ903において取得しておいたアプリケーション名称と一致するかを判定する処理である。
【0065】
ここで一致する、つまり、印刷モードをベクタグラフィックス印刷モードからラスタグラフィックス印刷モードヘ切り替えると判定された場合(S905−YES)、次の印刷モードの変更処理(ステップ906)が行われる。ここでいう印刷モードの変更処理とは、中間コードデータの保存ファイルを再度、プリンタ制御コマンドヘデスプールする際に必要となる印刷モードの切り替え処理であり、後のデスプールの際に使用される。プリンタドライバ203は、この印刷モードに応じて図4または図5の手順でプリンタ制御コマンドを生成する。
【0066】
また、ここで、グラフィックエンジン202へ通知する出力能力(ケーパビリティ)を、ベクタグラフィックス印刷モードにおける出力能力からラスタグラフィックス印刷モードにおける出力能力へ変更する。これにより、グラフィックエンジン202は後の描画命令をラスタグラフィックス印刷モードに適した形で送ることになる。
【0067】
ここでは、予め登録されたアプリケーションはベクタグラフィックス印刷モードよりラスタグラフィックス印刷モードの方が高いパフォーマンスを得ることが出来る、また、正確な印字結果を得ることが出来ると仮定されているので、この処理により、常に最適な印刷データをもたらし、最適な印刷モードを選択することができるようになる。
【0068】
その後、スプール処理のための初期化処理(ステップ907)が行われる。これにより、これ以降のグラフィックエンジン202からの印刷処理要求をスプールすることが可能となる。そして、ドライバの初期化処理(ステップ908)がなされ、グラフィックエンジン202へとその処理が戻り、初期化時における処理が終了する。
【0069】
また、グラフィックエンジン202からの初期化要求であるかの判定処理(ステップ901)により、初期化処理要求ではないと判定された場合(S901−NO)、グラフィックエンジン202からのジョブ開始要求であるかの判定処理(ステップ909)が行われる。ここではスプールの一連の処理を説明するために、ジョブ開始要求であるとする(S909−YES)。ジョブ開始要求である場合、スプール処理要求があるかの判定処理(ステップ910)が行わる。ここではスプール処理要求があったと判定されるとする(S910−YES)。すると、ホストコンピュータ3000上の外部メモリ11等へ中間コードデータを作成し、中間コードデータを一時保存するためのファイルをオープンする処理(ステップ911)が行われる。
【0070】
そして、ジョブ開始要求に対応する中間コードを生成し、同ファイルヘ保存する処理(ステップ912)が行われる。これにより後のデスプールに必要な中間コードデータの生成が始まるわけである。
【0071】
また、グラフィックエンジン202からのジョブ開始要求であるかの判定処理(ステップ909)において、ジョフ開始要求でないと判定された場合(S909−NO)、次にジョブ終了要求かどうかの判定処理(ステップ913)が行われる。ここではジョブ終了要求ではないと判定されたとする(S913−NO)。すると、その他各要求に伴う処理(ステップ919)が行われる。これには、描画に必要な情報である中間コードデータをファイルヘ保存する処理や、グラフィックエンジン202へ情報を提供する処理等が含まれる。これにより、あるジョブの一連の描画命令が処理され、デスプールに必要な中間コードデータが順次、生成される。
【0072】
また、ここでは、送られてくる描画命令を印刷モードに適した形へ変換することや、複数の描画命令を1つのコマンドに生成し直す等の操作をする必要がない。前記のように、初期化時にグラフィックエンジン202へ出力能力(ケーパビリティ)を通知しているため、ここで送られてくる描画命令は既に現在の印刷モードに適した形になっているからである。
【0073】
また、ジョブ終了要求かどうかの判定処理ステップ(ステップ913)により、ジョブ終了要求であったと判定された場合(S913−YES)、スプール処理要求があるかの判定処理ステップ(ステップ914)が行われる。ここでは、スプール処理要求があったと判定されるとする。すると、ジョブ終了要求に対応する中間コードを生成し、ファイルヘ保存する処理(ステップ915)が行われ、中間コードデータの保存ファイルのクローズ処理(ステップ916)が行われる。これら一連の処理が中間コードデータのスプールに関する処理である。
【0074】
このように、ベクタグラフィックス印刷モードや、ラスタグラフィックス印刷モードを事前の登録に応じて自動的に選択することにより、高い印刷パフォーマンスと適正な印字結果を得ることができる。
【0075】
本実施形態では、ラスタグラフィック印刷モードの方が平均的に高い印刷スループットが得ることができたり、または適正な印刷結果を得ることができると思われるアプリケーション名称を登録することにより、それぞれのアプリケーションに適した印刷モードを自動的に選択することが可能である。ただし、単にアプリケーション名称だけで印刷モードを決定するのではなく、アプリケーション名称とその文書タイプの組み合わせや単なる文書タイプによって印刷モードを決定してもよい。例えば、ある特定のアプリケーションによる図形入り文書の場合は、印刷モードをラスタグラフィック印刷モードにする旨を登録しておき、より的確に印刷モードを決定しても良い。その際には、図9のステップS904では、アプリケーションの名称を取得するとともに、印刷する文書に図形が入っているか否かも取得する。また、アプリケーションによらず、文書が図形入りの場合には印刷モードをラスタグラフィック印刷モードにする旨を登録してもよい。
【0076】
また、図8は、図9をより一般化して本発明の概略を説明した図である。図8では、アプリケーションの名称に限らず、印刷モードの変更に関するより一般的な条件をステップ803で取得する。そして、ステップ805では、その一般化された条件にアプリケーションが適合するか判定する。その他の処理は図9と同様である。
【0077】
尚、本実施形態に示した機能は、外部からインストールされるプログラムによってホストコンピュータ3000により遂行されても良い。その場合、その機能が外部メモリ11であるCD−ROMやフラッシュメモリやFD等の記憶媒体により、或いは、電子メールやパソコン通信等のネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置やホストコンピュータ3000を含むシステム内にロードすることにより、ホストコンピュータ3000或いは出力装置は上述した機能を実現する。
【0078】
[第2の実施の形態]
第2の実施の形態は、図1及び図3のシステムで実現される。本実施の形態においては、例えば1枚ずつ印刷する機能の他に、フォームデータと合成するオーバーレイ機能や、Nページのデータを縮小して1枚の用紙上に印刷するN−up機能等、複数の印刷機能を有するプリントシステムを説明する。そのようなプリントシステムにおいて、ホストコンピュータ3000のRAM2上ヘロードされて動作するアプリケーション201からプリンタドライバ203又はスプーラ302が有する特定の機能による印刷要求があった場合、要求された機能に適した印刷モードを選択して、その印刷モードで中間コードからプリンタ1500へ送信するプリンタ制御コマンドを生成する。以下、図10のフローチャートを用いて詳しく説明する。図10は、第1の実施形態の図9に代えて本実施形態で用いられる。
【0079】
図10に示すように、上記実施形態と同様に、グラフィックエンジン202からの初期化要求であるかの判定処理(ステップ1001)が行われる。初期化要求はジョブ開始要求に先立って、必ず送られてくるものとする。ここで、グラフィックエンジン202からの初期化要求でない場合は(S1001−NO)、その他各要求に伴うスプール処理(ステップ1009)、つまり、図9に示すステップS909からS919と同等の処理が行われる。そして、グラフィックエンジン202からの初期化要求である場合(S1001−YES)、次のスプール処理の要求があるかの判定処理(ステップ1002)が行われる。
【0080】
もしスプール処理の要求がなければプリンタドライバ203の初期化処理を行い(ステップ1008)、グラフィックエンジン202へと処理が戻される。ここではスプール処理の要求があったとする(S1002−YES)。すると次に、予め登録された特定の機能の取得処理(ステップ1003)が行われる。ここでいう特定の機能とは、例えば、スプーラ302が保有する、N−up機能(一枚の紙に複数ページを縮小して印刷)、デバイスが保有するオーバーレイ機能(デバイスに特別なエスケープを送ることにより実現されるグラフィックの重ね合わせ機能)等のことを指す。
【0081】
この予め登録された特定機能は、次のような理由で選ばれる。すなわち、指定された機能によっては、その機能に適した印刷モードが決定できる場合がある。例えば、大量ページを印刷するようなN−up機能では、ベクタグラフィックス印刷モードよりラスタグラフィック印刷モードの方が印刷時間の短縮を図れる。また、オーバーレイ機能はベクタグラフィック印刷モードのみで有効ある等の条件がある場合もある。そこで、デフォルトでベクタグラフィック印刷モードであり、大量ページを印刷するようなN−up機能が、ラスタグラフィック印刷モードで印刷すべき機能として予め登録されている。
【0082】
次に、ユーザから指定された機能の取得処理(ステップ1004)が行われる。これはユーザーが明示的に行う印刷設定を取得する処理である。これにより現在指定されている有効な特定機能を取得することができる。そして、ステップ1004で取得された特定機能がステップ1003で取得された特定機能と−致するかの判定処理(ステップ1005)が行われる。すなわち、ステップ1004で取得された機能が、印刷モードをラスタグラフィック印刷モードに切り替える条件としてステップ1003でテーブルより取得しておいた特定機能と一致するかを判定する処理である。
【0083】
大量ページを印刷するようなN−up機能が指定されていれば、このN−up機能は予め登録されている特定機能であるため、両者は一致するものと判定される。すなわち、印刷モードをベクタグラフィックス印刷モードからラスタグラフィックス印刷モードヘ切り替えると判定される。これにより、印刷モードの変更処理(ステップ1006)が行われる。ここでいう印刷モードの変更処理(ステップ1006)とは、中間コードデータを再度プリンタ制御コマンドヘデスプールする際に必要となる印刷モードの切り替え処理であり、後のデスプールの際に使用される。
【0084】
また、ここで、前記実施形態同様、グラフィックエンジン202へ通知する出力能力(ケーパビリティ)をベクタグラフィックス印刷モードにおける出力能力からラスタグラフィックス印刷モードにおける出力能力へ変更する。これにより、グラフィックエンジン202は後の描画命令をラスタグラフィックス印刷モードに適した形で送ることになる。
【0085】
ここでは、N−up機能印刷ではベクタグラフィックス印刷モードよりラスタグラフィックス印刷モードの方が高いパフォーマンスを得ることが出来ると仮定されているので、この処理により、常に最適な印刷データをもたらし、最適な印刷モードを選択することができるようになる。
【0086】
その後、スプール処理のための初期化処理(ステップ1007)が行われる。これにより、これ以降のグラフィックエンジン202からの印刷処理要求をスプールすることが可能となる。そして、プリンタドライバ203の初期化処理(ステップ1008)がなされ、グラフィックエンジン202へとその処理が戻る。
【0087】
いったん初期化時に印刷モードが決定されれば、それ以降、印刷データは決定されたモードにしたがってプリンタに送出される。
【0088】
このように、ベクタグラフィックス印刷モードや、ラスタグラフィックス印刷モードといった印刷モードを、ユーザに指定された特定機能と、予め登録された特定機能とを比較することにより選択することで、高い印刷パフォーマンス、又は適正な印字結果を得るという事が可能となる。
【0089】
[第3の実施の形態]
第3の実施の形態は、図1及び図3のシステムで実現される。本実施の形態によれば、印刷を行なおうとするプリントシステムが複数のハードウェア特性を持つ場合に、コンピュータ3000のRAM2上ヘロードされて動作するプリンタドライバ203から印刷要求があった場合、ハードウエア特性に適した印刷モードを求め、その印刷モードで中間コードデータからプリンタ1500へ送信するプリンタ制御コマンドを生成する。なお図11は、第1の実施形態の図9に代えて本実施形態で用いられる。
【0090】
図11に示すように、まず、グラフィックエンジン202からの初期化要求であるかの判定処理(ステップ1101)が行われる。初期化要求はジョブ開始要求に先立って必ず送られてくるものとする。ここで、グラフィックエンジン202からの初期化要求でない場合(S1101−NO)、その他各要求に伴うスプール処理(ステップ1109)、つまり、図9に示すステップ909から919と同等の処理が行われる。そして、グラフィックエンジン202からの初期化要求である場合(S1101−YES)、次のスプール処理の要求があるかの判定処理(ステップ1102)が行われる。もしスプール処理の要求がなければプリンタドライバ203の初期化処理(ステップ1108)を行い、グラフィックエンジン202へと処理が戻される。ここではスプール処理の要求があったとする(S1102−YES)。
【0091】
すると次に、予め登録されたハードウェア条件の取得処理(ステップ1103)が行われる。ここでいうハードウェア条件とは、例えば、プリンタが保有するRAM容量、プリンタの有するフォント等のことを指す。予め登録されるハードウエア条件とは、次のように決定される。すなわち、例えば、プリンタがコマンドを展開するのに必要なRAM容量が少ない場合、ベクタグラフィックス印刷モードよりラスタグラフィックス印刷モードの方が印刷時間の短縮を図れるとする。この場合には、RAM容量がある一定値以下の場合、ラスタグラフィックス印刷モードで印刷すべき機能として予め登録しておく。
【0092】
次に、印刷を行うシステムにおけるハードウェア要素の取得処理(ステップ1104)が行われる。ここでは、現在印刷を行おうとしているプリンタのハードウェア要素、例えば、コマンドを展開するのに利用できるメモリ容量を取得することができる。そして、このハードウエア要素が、ステップ103で取得したハードウエア条件を満たしているかの判定処理(ステップ1105)が行われる。すなわち、取得されたハードウェア要素が、先に印刷モードを切り替える条件としてテーブルより取得しておいたハードウェア条件と一致するかの処理である。ここで、プリンタは予め設定された条件である容量以下のRAM容量しか持たないものとすれば、ハードウエア要素は条件に適合する、つまり、印刷モードをベクタグラフィックス印刷モードからラスタグラフィックス印刷モードヘ切り替えると判定される。
【0093】
これにより、印刷モードの変更処理(ステップ1106)が行われる。ここでいう印刷モードの変更処理(ステップ1106)とは、中間コードデータの保存ファイルを再度プリンタ制御コマンドヘデスプールする際に必要となる印刷モードの切り替え処理であり、後のデスプールの際に使用される。その後、スプール処理のための初期化処理(ステップ1107)が行われる。
【0094】
また、ここで、前記実施形態同様、グラフィックエンジン202へ通知する出力能力(ケーパビリティ)をベクタグラフィックス印刷モードにおける出力能力からラスタグラフィックス印刷モードにおける出力能力へと変更する。これにより、グラフィックエンジン202は後の描画命令をラスタグラフィックス印刷モードに適した形で送ってくることになる。
ここでは、取得されたハードウェア要素ではベクタグラフィックス印刷モードよりラスタグラフィックス印刷モードの方が高いパフォーマンスを得ることが出来ると仮定されているので、この処理により、常に最適な印刷データをもたらし、最適な印刷モードを選択することができるようになる。
【0095】
これにより、これ以降のグラフィックエンジン202からの印刷処理要求をスプールすることが可能となる。そして、プリンタドライバ203の初期化処理(ステップ1108)がなされ、グラフィックエンジン202へとその処理が戻る。
【0096】
このように、印刷モードをベクタグラフィックス印刷モードにするか、ラスタグラフィックス印刷モードにするかを印刷を行うデバイスのハードウェア条件により自動的に選択することにより、高い印刷パフォーマンス、又は適正な印字結果を得るという事が可能となる。
【0097】
[第4の実施の形態]
本実施の形態によれば、コンピュータ3000のRAM2上ヘロードされて動作するプリンタドライバ203から印刷要求があった場合、印刷処理に適した印刷モードを求めるために、その印刷モードの決定のための条件をプリンタの特徴に依存するプリンタドライバ203より取得する。この取得された条件に応じて印刷モードを決定し、その印刷モードで中間コードデータからプリンタ1500へ送信するプリンタ制御コマンドを生成する。
【0098】
本実施の形態では、図9のステップ903に代えて図12の手順を行う。すなわち、適当と考えられる印刷モードを決定するために、印刷モードの決定条件をプリンタドライバ203から取得する(ステップ1201)。これは、プリンタ又はプリンタドライバ203により適切な印刷モードを得るための条件が与えられ、その条件を用いて印刷モードが切り替えられることを意味する。ここで、その条件としては、第1の実施の形態のように、アプリケーションによって印刷モードを選択するようにしてもよい。つまり、印刷モードを変更すべきアプリケーションの名称を登録しておき、この後、ステップ905で条件に一致するかの判定処理に用いられる。もちろんステップ1201で得られる条件はアプリケーションの名称に限らず、第3の実施の形態のようにハードウェア特性、具体的にはプリンタのメモリ容量等であってもよい。
【0099】
このように判定条件を各デバイスの特徴に依存するプリンタドライバ203より取得することで、ディスパッチャ301又はスプーラ302自体はその判定条件を持たず、ベクタグラフィックス印刷モード、ラスタグラフィックス印刷モードの切り替えを自動的に行い、高い印刷パフォーマンス、又は適正な印字結果を得るという事が可能となる。更に、各デバイスの特徴に依存するプリンタドライバ203にデバイスのハードウェア要素を記憶させておき、ハードウェア要素もプリンタドライバ203から取得するようにしても良い。この場合、ハードウェア特性を印刷モードの選択条件とするような場合、ハードウェア要素をデバイスから取得する必要がなく、デバイスとの通信による処理速度の低下を防ぐことができる。
【0100】
[第5の実施の形態]
本実施の形態は、図3のプリントシステムにおいて実現される。図13は、本発明の第5の実施の形態の概略を説明した図である。図14は、図13のステップ1302及びステップ1304における「条件」をより具体的に記載した、ディスパッチャ301及びスプーラ302による処理手順のフローチャートである。
【0101】
以下、図14のフローチャート等を用いて、本実施形態について詳しく述べる。
【0102】
本実施形態では、図2で示すプリンタとホストコンピュータからなる印刷システムと、図3に示すアプリケーションからの印刷データを一旦中間コードデータでスプールするシステムとが共存できることを前提としている。そして、本実施形態では、後者のシステムで印刷しようとした場合、アプリケーションやプリンタドライバの持っていない機能を用いることが出来る反面、ごく稀にアプリケーションによっては、パフォーマンスの劣化を引き起こしたり、不正な印字を起こす場合があると仮定する。よって、本実施の形態では、アプリケーションによって、プリンタ制御コマンドを生成するに当たり、中間コードをデータを生成するか、中間コードデータを生成しないかが選択される。
【0103】
まず、グラフィックエンジン202からの初期化要求であるかの判定処理(ステップ1401)が行われる。初期化要求はジョブ開始要求に先立って、必ず送られてくるものとする。
【0104】
グラフィックエンジン202からの初期化要求である場合(S1401−YES)、予め登録されてテーブル等に列挙されたアプリケーション名称の取得処理(ステップ1402)が行われる。これは、図13でいう中間コードデータを作成するかの判定条件(ステップ1302)に相当する。これがもとになり、後に中間コードデータを作成するかが決定される。本実施の形態では、デフォルトで中間コードデータを作成するものとする。すなわち、中間コードデータを作成せずに直接プリンタ制御コマンドを発行した方が平均的に高い印刷スループットが得ることができる場合、または適正な印刷結果を得ることができると思われる場合には、デフォルトの設定から中間コードデータを生成しないプリンタ制御コマンド生成手法に変更する処理を行う。デフォルトが中間コードデータを作成しないとなっても同様の手順が適用できることは言うまでもない。
【0105】
次に、アプリケーションより、その名称の取得処理(ステップ1403)が行われる。これはグラフィックエンジン202を介し、アプリケーション名称を取得する処理である。この処理により初期化要求を出しているアプリケーションの名称を取得することができる。そして、これらのアプリケーション名称が一致するかの判定処理(ステップ1404)が行われる。すなわち、取得されたアプリケーション名称が、ステップ1402で印刷モードを切り替える条件としてテーブルより取得しておいたアプリケーション名称と一致するかの処理である。
【0106】
ここで一致すると判定された場合(S1404−YES)、プリンタ制御コマンドの生成処理において、中間コードデータを生成しないものと決定する。そのために、プリンタ制御コマンド生成手法の変更処理(ステップ1406)が行われる。ここでいうプリンタ制御コマンド生成手法の変更処理(ステップ1406)とは、この一連の初期化処理の後、スプール処理要求であるかの判定処理に用いられるフラグ等の処理である。
【0107】
また、ここで一致しないと判定された場合(S1404−NO)、つまり、プリンタ制御コマンドの生成処理において中間コードデータを生成すると決定された場合、スプール処理のための初期化処理(ステップ1405)が行われる。これにより、これ以降のグラフィックエンジン202からの印刷処理要求をスプールすることが可能となる。そして、プリンタドライバ203の初期化処理(ステップ1407)がなされ、グラフィックエンジン202へとその処理が戻り、初期化時における処理が終了する。
【0108】
また、グラフィックエンジン202からの初期化要求であるかの判定処理(ステップ1401)により、初期化処理要求ではないと判定された場合には(S1401−NO)、グラフィックエンジン202からのジョブ開始要求であるかの判定処理(ステップ1408)が行われる。ここではスプールの一連の処理を説明するために、ジョブ開始要求であるとする(S1408−YES)。ジョブ開始要求である場合、スプール処理要求があるかの判定処理(ステップ1409)が行われる。ここでは、初期化時のプリンタ制御コマンド変更の条件に一致するかの判定(ステップ1404)において、一致しない、つまり、プリンタ制御コマンドの生成処理において、中間コードデータを生成すると判定されたとすると、スプール処理要求があったと判定される。
【0109】
その場合、ホストコンピュータ3000上の外部メモリ11等へ、作成された中間コードデータを一時保存する為のファイルをオープンする処理(ステップ1410)が行われる。そして、ジョブ開始要求に対応する中間コードを生成し、同ファイルヘ保存する処理(ステップ1411)が行われる。これにより後のデスプールに必要な中間コードデータの生成が始まるわけである。
【0110】
また、前記の初期化時のプリンタ制御コマンド変更の条件に一致するかの判定(ステップ1404)において一致すると判定された場合、つまり、プリンタ制御コマンドの生成処理において中間コードデータを生成しないと決定された場合には、スプール処理要求があったかの判定処理(ステップ1409)において、スプール処理要求がないと判定され(S1409−NO)、中間コードデータを生成せずに直接プリンタ制御コマンドを発行するためのプリンタドライバによるジョブ開始処理(ステップ1412)が行われる。
【0111】
また、グラフィックエンジン202からのジョブ開始要求であるかの判定処理(ステップ1408)において、ジョブ開始要求でないと判定された場合(S1408−NO)、次にジョブ終了要求かどうかの判定処理(ステップ1413)が行われる。ここではジョブ終了要求ではないと判定されたとする。すると、その他各要求に伴う処理(ステップ1418)が行われる。これには、描画に必要な情報を中間コードデータファイルヘの保存処理や、グラフィックエンジン202への情報の提供処理等が含まれ、これにより、あるジョブに関する一連の描画命令の処理が行われ、デスプールに必要な中間コードデータの生成が順次なされていく。
【0112】
また、ジョブ終了要求かどうかの判定処理(ステップ1413)により、ジョフ終了要求であったと判定された場合(S1413−YES)、ジョブ開始要求時同様、スプール処理要求があるかの判定処理(ステップ1414)が行われる。ここでも、初期化時のプリンタ制御コマンド変更の条件に一致するかの判定(ステップ1404)において、一致しないと判定された場合、つまり、プリンタ制御コマンドの生成処理において中間コードデータを生成すると決定された場合には、スプール処理要求があったと判定される。すると、ジョブ終了要求に対応する中間コードを生成し、ファイルへ保存処理(ステップ1415)が行われ、中間コードデータの保存ファイルのクローズ処理(ステップ1416)が行われる。
【0113】
また、同様に、初期化時のプリンタ制御コマンド変更の条件に一致するかの判定(ステップ1404)において、一致すると判定された場合、つまり、プリンタ制御コマンドの生成処理において中間コードデータを生成しないと決定された場合、スプール処理要求があったかの判定処理(ステップ1414)においてはスプール処理要求がないと判定され、中間コードデータを生成せずに直接プリンタ制御コマンドを発行し終えたことの終了処理として、プリンタドライバ203によるジョブ終了処理(ステップ1417)が行われる。
【0114】
これら一連の処理が中間コードデータのスプールに関する処理である。
【0115】
このように、中間コードデータを作成して後にデスプール処理を行うことによりプリンタ制御コマンドを生成する手法と、中間コードデータを生成することなくプリンタ制御コマンドを生成する手法とを、予め登録しておいたアプリケーション名称より初期化時に自動的に選択することにより、高い印刷パフォーマンスと適正な印字結果を得るという事が可能となる。
【0116】
尚、本実施形態に示した機能が外部からインストールされるプログラムによって、ホストコンピュータ3000により遂行されても良い。そして、その場合、その機能がCD−ROMやフラッシュメモリやFD11等の記憶媒体により、或いは、電子メールやパソコン通信等のネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置やホストコンピュータ3000を含むシステム内にロードすることにより、ホストコンピュータ3000或いは出力装置に供給される場合でも本発明は適用されるものである。
【0117】
[第6の実施の形態]
第6の実施の形態によれば、複数の印刷機能を有するプリンタである場合で、ホストコンピュータ3000のRAM2上へロードされて動作するプリンタドライバ203からプリンタドライバ203又はスプーラ302が保有する特定の機能による印刷要求があった場合、印刷処理に適したプリント制御コマンド生成方法を、特定の機能により決定して、最適なプリント制御コマンド生成手法を得る。
【0118】
本実施形態では、前実施形態同様、図2で示すプリンタとホストコンピュータからなる印刷システム及び図3に示すアプリケーションからの印刷データを一旦中間コードデータでスプールするシステムが共存できることを前提としている。そして、本実施形態では後者で印刷しようとした時、特定の機能との併用を許さない場合を仮定している。
【0119】
図15は本実施形態による処理のフローチャートを示す図である。図15は、第5の実施の形態における図14に代えて用いられる。
【0120】
図15において、まずグラフィックエンジン202からの初期化要求であるかの判定処理(ステップ1501)が行われる。初期化要求はジョブ開始要求に先立って、必ず送られてくるものとする。ここで、グラフィックエンジン202からの初期化要求である場合(S1501−YES)、予め登録された特定の機能の取得処理(ステップ1502)が行われる。ここでいう特定の機能とは、例えば、デバイスが保有するオーバーレイ機能(デバイスに特別なエスケープを送ることにより実現されるグラフィックの重ね合わせ機能)等のことを指す。なお、オーバーレイ機能は中間コードデータを生成し、後にこの中間コードデータをもとにデスプールを行うようなプリンタ制御コマンド生成手法は有効でないといった条件があるものとする。この例では、オーバーレイ機能が中間コードデータを生成しない機能として予め登録されている。
【0121】
次に、印刷のために用いようとする機能の取得処理(ステップ1503)が行われる。これはユーザーが明示的に行う印刷設定を取得する処理である。これにより現在設定されている有効な特定機能を取得することができる。そして、これらの特定機能が一致するかの判定処理(ステップ1504)が行われる。すなわち、取得された特定機能が、予め印刷モードを切り替える条件としてテーブルより取得しておいた特定機能と一致するかの処理である。
【0122】
ここでオーバーレイ機能が指定されていれば両者は一致すると判定され、中間コードデータを生成せず、直接プリンタ制御コマンドを発行する手法を選択すると決定される。これにより、プリンタ制御コマンド生成手法の変更処理(ステップ1505)が行われる。ここでいうプリンタ制御コマンド生成手法の変更処理とは、この一連の初期化処理の後、スプール処理要求であるかの判定処理(ステップ1409、ステップ1414)に用いられるフラグ等の処理である。
【0123】
また、ステップ1503で取得された機能が、予め印刷モードを切り替える条件としてステップ1502でテーブルより取得しておいた特定機能と一致するかの処理(ステップ1504)において、ここに挙げられていない機能のみが選択されていた場合(S1504−NO)、次のスプール処理のための初期化処理(ステップ1506)が行われる。これにより、これ以降のグラフィックエンジン202からの印刷処理要求をスプールすることが可能となる。そして、プリンタドライバ203の初期化処理(ステップ1507)がなされ、グラフィックエンジン202へとその処理が戻り、初期化時における処理が終了する。
【0124】
このように、中間コードデータを作成して後にデスプール処理を行うことによりプリンタ制御コマンドを生成する手法と、中間コードデータを生成することなくプリンタ制御コマンドを生成する手法とを、予め登録しておいた特定の機能情報により初期化時に自動的に選択することにより、高い印刷パフォーマンスと適正な印字結果を得ることができる。
【0125】
[第7の実施の形態]
本実施の形態によれば、コンピュータ3000のRAM2上ヘロードされて動作するプリンタドライバ203から印刷要求があった場合、印刷処理に適した印刷コマンドの生成手法を決定する際に、その印刷コマンド生成手法を決定するための条件を、プリンタの特徴に依存するプリンタドライバ203より取得する。この取得された条件に応じて印刷コマンドの生成手法を決定し、その印刷コマンドの生成手法でプリンタ1500へ送信するプリンタ制御コマンドを生成する。
【0126】
本実施形態では、前実施形態同様、図2で示すプリンタとホストコンピュータからなる印刷システム及び図3に示すアプリケーションからの印刷データを一旦中間コードデータでスプールするシステムが共存できることを前提としている。そして、本実施形態では後者で印刷しようとした場合、アプリケーションやプリンタドライバの持っていない機能を用いることが出来る反面、ごく稀にある条件のもとで、パフォーマンスの劣化を引き起こしたり、不正な印字を起こす場合があることを仮定している。
【0127】
本実施の形態では、図14のステップ1402に代えて図16の手順を行う。すなわち、適当と考えられる印刷コマンドの生成手法を決定する際に、印刷コマンドの生成手法の決定条件をプリンタドライバ203から取得する(ステップ1601)。これは、プリンタ又はプリンタドライバ203により適切な印刷コマンドの生成手法を得るための条件が与えられ、その条件を用いて印刷コマンドの生成手法が切り替えられることを意味する。ここでは、条件として、アプリケーション名称を用いること、及び条件として用いるアプリケーションの名称がステップ1601により得られるものとする。得られた条件は、この後、ステップ1404で条件に一致するかの判定処理に用いられる。もちろんステップ1601で得られる条件はアプリケーションの名称に限らず、印刷に用いる機能等であってもよい。
【0128】
このように判定条件を各デバイスの特徴に依存するプリンタドライバ203より取得することで、ディスパッチャ301又はスプーラ302自体はその判定条件を持たず、中間コードデータを生成して後にデスプールすることでプリンタ制御コマンドを生成する手法と、直接プリンタ制御コマンドを生成する手法との切り替えを自動的に行い、高い印刷パフォーマンス、又は適正な印字結果を得ることができる。
【0129】
[第8の実施の形態]
本実施形態におけるプリンタ制御コマンドを生成する際の処理フローを図18に示す。まず、グラフィックエンジン202から受け取った描画命令を中間コードデータへ変換し、ファイルへ保存する。この処理と同時に、スプーラ302は前記描画命令に特殊な描画命令指定(例えば、特殊なラスタオペレーション)がないかをチェックし、その結果をRAM2または外部メモリ11へ保存する(S1801)。グラフィックエンジン202からの描画命令が終了すると、前記ステップで保存された結果をもとに印刷モードが決定され、プリンタドライバは、一時保存された中間コードデータから、グラフィックエンジン202が生成する描画命令を介して、プリンタ制御コマンドを生成する(S1802)。
【0130】
Windows95上でサポートされているラスタオペレーションは最大256種類存在する。ラスタオペレーションとは、様々なオブジェクトにおいて指定されているピクセル間での論理的な演算操作のことである。これにより、例えば、ソースデータに対して、デスティネーションやブラシなどの操作を行ったときに、最終的に描かれるイメージを論理演算により求めることができる。なお、本実施の形態では、このラスタオペレーションの全てをベクタグラフィック印刷モードでは保証できないと仮定する。
【0131】
具体的には、ベクタグラフィック印刷モードにおいては、ラスタオペレーションは描画論理設定命令なるプリンタ制御コマンドで表現される。しかし、Windows95上で使用可能な全てのラスターオペレーションに対応する同命令が用意されていない。
【0132】
一方、ラスタグラフィック印刷モードでは、全てのラスタオペレーションをサポートすることができ、適正な論理描画を施しながら印刷イメージを生成可能である。その結果、正常な印刷結果が常に得られる。
【0133】
この処理をさらに詳細に示すと図19となる。なお、ここではスプール処理を行うという前提で説明をする。グラフィックエンジン202を介してアプリケーションからの描画命令を受け付け(S1901)、その描画命令がジョブ開始要求かどうかの判定を行う(S1902)。
【0134】
ジョブ開始要求であった場合には(S1902−Yes)、中間コードデータを一時保存する為のファイルをホストコンピュータ3000上の外部メモリ11等へ作成し、保存ファイルをオープンし、ジョブ開始命令に対応する中間コードデータを同ファイルへ保存する(S1903)。
【0135】
続いて、印刷処理全体(印刷ジョブ)に適した印刷モードを示すフラグ値を保存しておく為のメモリ領域をRAM2上等へ確保し、ベクタグラフィックス印刷モードを示す値でフラグを初期化する(S1904)。デフォルトの印刷モードをベクタグラフィックス印刷モードとする。ステップS1904の処理後は再びステップS1901へ処理を戻し、グラフィックエンジン202からの描画命令を受け付ける。
【0136】
一方、ステップ1902において、ジョブ開始要求でなかった場合には(S1902−No)、ジョブ終了要求かどうかの判定を行う(S1905)。
【0137】
ステップ1905において、グラフィックエンジン202からの描画命令がジョブ終了要求でなかった場合には(S1905−No)、描画命令に特殊な描画処理指定がなされていないかの判定を行い(S1907)、もし指定されていれば(S1907−Yes)、ステップ1904で確保した、印刷モードを示すフラグ値をラスタグラフィックス印刷モードを示す値に更新する(S1908)。
【0138】
尚、本実施形態においては、印刷ジョブに一つでも特殊な描画処理指定が行われていれば、ラスタグラフィックス印刷モードを選択するようにしている。ステップ1908の実行後およびステップ1907で特殊な描画指定が為されていなかった場合(S1907−No)はステップ1909へ進み、描画命令を中間コードデータへ変換し(S1909)、変換後の中間コードデータを一時保存ファイルへ書き込む(S1910)。
【0139】
その後はステップ1901へ戻り、再び、グラフィックエンジン202からの描画命令を受け付ける。この一連のステップ1901から1910までの処理はジョブ終了要求をグラフィックエンジン202から受け取るまで続けられる。
一方、ステップ1905の判定において、ジョブ終了要求であった場合には、ジョブ終了要求に対応する中間コードデータを生成し、一時保存ファイルへ保存を行い、ファイルをクローズする(S1906)。そして、次にプリンタ制御コマンドの生成へと処理を移すことになる。
【0140】
図20に示す通り、プリント制御コマンドの生成ステップと印刷モードの指定ステップではまず、中間コードデータの保存ファイルをオープンし(S2001)、描画命令の単位で順次読み出しを行う(S2002)。前述した通り、中間コードデータの保存ファイルの内容は図7に示す通りであるが、これより、最初に読み出される命令は[ジョブ開始命令]となる。次に[ジョブ終了命令]ではないかを判定し(S2003)、もし[ジョブ終了命令]でなかった場合には(S2003−No)、続けて[ジョブ開始命令]ではないかを判定する(S2005)。ここで[ジョブ開始命令]であった場合には(S2005−Yes)、図19に示した処理で保存しておいた、印刷モードを示すフラグ値を参照し(図19のステップ1904、1908)、どの印刷モードでプリンタ1500へ送信するプリンタ制御コードを生成するかを決定する(S2006)。具体的には、前述のフラグ値により、ベクタグラフィックス印刷モードかラスタグラフィックス印刷モードのどちらかが選択されることとなる。
【0141】
ステップS2005の判定で[ジョブ開始命令]ではなかった場合(S2005−No)、およびステップS2006の処理後はステップS2007へ進む。ステップS2007では、中間コードデータからプリンタ1500へ送信するプリンタ制御コマンドを印刷モードに応じて生成し出力を行う。この際、中間コードデータは、グラフィックエンジン202が生成する描画命令を介してプリンタ制御コマンドに変換される。
【0142】
ステップS2002からステップS2007までの一連の処理は[ジョブ終了命令]が読み出されるまで繰り返される。
ステップS2003において、読み出された描画命令が[ジョブ終了命令]と判断された場合には(S2003−Yes)、中間コードデータの保存ファイルをクローズした後、ファイルの削除を行うと共に、RAM2上の前述フラグ値を保存しておいた領域を開放する。
【0143】
これまでに示した本実施形態により、印刷モードとしてデフォルトでベクタグラフィックス印刷モード、特殊な描画命令のあった場合にラスタグラフィックス印刷モードが自動的に選択されるので、自動的に印刷パフォーマンスが比較的高く、適正な印刷結果が得られるプリンタ制御コマンドを生成することが可能となる。
【0144】
[第9の実施の形態]
第9の実施の形態として、ホストコンピュータ3000のRAM2上へロードされて動作するプリンタドライバへ複数ページの印刷要求があった場合には、上記実施形態で示した印刷処理に適した印刷モードを求める工程と、同工程により求められた印刷モードで中間コードからプリンタ制御コマンドを生成する工程を各印刷ページ対して適用するという改良が考えられる。
【0145】
前記実施形態で示した処理を本実施形態に改良したものが、図21と図22である。尚、図21と図22の各フローチャートで示される符号で、図19と図20と同じ番号のものは同一の処理内容を示している。前記第8の実施形態に対する本実施形態の具体的な改良内容は、図21のステップS2101、S2104部分の処理である。図19のステップS1904及びS1908の代わりに、ステップS2101,S2104の処理が実行され、図19のステップS1905とS1907の間にステップS2102及びS2103の処理が実行される。
【0146】
また、図22においては、図20のステップS2006に代わりステップS2201の処理が実行され、図20のステップS2007の後にステップS2202からS2205までの一連の処理が追加される。以降、具体的に改良を施した処理内容についてのみ、図21と図22を用いて説明する。
【0147】
まず、図21について、第8の実施形態で示した通り、ステップ1902でグラフィックエンジン202からの描画命令がジョブ開始要求であると判定された場合には(S1902−Yes)、中間コードデータを保存するファイルをオープンし、ジョブ開始要求に対応する中間コードデータを同ファイルへ保存する(S1903)。
【0148】
続いて、図23に示すテーブル形式で、ページごとの印刷モード情報を保存する領域をRAM2上へ確保する。また、ページ番号を示す変数nをRAM2上で確保する。そして、変数nを1、ページ番号1に対応する印刷モード情報をべクタグラフィックス印刷モードを示す値に初期化する(S2101)。尚、図23に示したテーブル領域は印刷ページ数の増加に伴い、テーブル最後部にnページ目の印刷モード情報を保存する領域を追加していくものとする。
【0149】
また、第8の実施の形態では、ステップ1905において、ジョブ終了要求ではないと判断された場合には、即座に特殊描画の指定が行われているか否かを判定していたが、本実施形態ではその前に改ページ要求であるか否かを判定し(S2102)、改ページ要求が指定されている場合には(S2102−Yes)、前記のステップ2101でRAM2上に確保したページ番号を示す変数nを1だけインクリメントし、且つ新たなページに対応する印刷モード情報を保存する領域を図23のテーブルの最後部へ追加する(S2103)。尚、新たな印刷ページに対応する印刷モード情報は、ベクタグラフィックス印刷モードを示す値で初期化される(S2103)。
【0150】
ステップ2102で改ページ要求が指定されていないと判定された場合には(S2102−No)、続いて、グラフィックエンジン202からの描画命令が特殊描画を指定するものでないかを判定し(S1907)、指定するものである場合には(S1907−Yes)、nページに対応する印刷モード情報をラスタグラフィックス印刷モードを示す値で更新する(S2104)。特殊な描画指定を指定するものでない場合(S1907−No)はnページに対応したフラグ情報を更新せず、描画命令を中間コードの形式へ変換し、その中間コードデータを保存ファイルへ書込む(S1909、1910)。
【0151】
図21で示した処理により、各印刷ページごとに印刷モードがそれぞれ設定されたことになる。図22の処理では、中間コードデータの保存ファイルから読み出した命令がジョブ開始命令だった場合には(S2005−Yes)、ページ番号を示す変数nをRAM2上へ確保し、その変数nをn=1として初期化する(S2201)。これと同時に前記図21の処理により求めた1ページ目に対応する印刷モードを選択する(S2201)。
【0152】
この印刷モードで、プリンタ1500へ出力するプリンタ制御コマンドが、描画命令を介して中間コードデータから生成される(S2007)。この処理は、ジョブ終了命令が検出されるまで繰り返し行われる。中間コードデータの読み出し処理で、改ページ命令が読み出された場合には(S2202−Yes)、現在の印刷ページ番号を示す変数nを1だけインクリメントし(S2203)、今まで選択されていた印刷モードと前記図21の処理で求められたnページ目に対応する印刷モードが異なる場合にのみ(S2204−Yes)、印刷モードを切り替える(S2205)。
【0153】
本実施形態の図22で示した処理により、適正な印刷モードが、それぞれの印刷ページに対して、必要最小限の切り替え処理により設定される。例えば、図23のように、5ページの印刷処理において、それぞれのページに対する印刷モードが求められ、1ページと2ページがラスタグラフィックス印刷モード、3ページ以降がベクタグラフィックス印刷モードである場合、実際に印刷モードが指定、変更されるのは先頭ページの直前と2ページ目の終わりの改ページ命令を受けた直後の2回である。
【0154】
[第10の実施の形態]
第10の実施の形態として、ホストコンピュータ3000のRAM2上へロードされて動作するプリンタドライバおよびプリンタ1500が、複数の印刷ページ(論理ページ)を縮小して、1ページ(物理ページ)にレイアウトして印刷する機能(Nページ印刷)を有している場合には(図24)、上記実施形態で示した印刷処理に適した印刷モードを、まず論理ページごとに選択し、その後物理ページごとに選択して適用するという改良が考えられる。
【0155】
例えば、ホストコンピュータ3000のRAM2上へロードされて動作するアプリケーションにより4ページ印刷モード(物理ページ1に論理ページが4つレイアウトされる印刷)が指定され、8ページ分の描画命令がプリンタドライバに発行される場合に(図24)、本実施形態においては、前記の第9実施の形態に示した図21のステップ1906の処理終了後に、図24の左側に示した8ページ分の論理ページ毎の印刷モード情報に基づき、図24の右側に示した物理ページ毎の印刷モード情報をRAM2上に生成する(図25のS2501)。
【0156】
図24に示す例では、論理ページ1と2に対応する印刷モードのみがラスタグラフィックス印刷モードとなっているので、物理ページ1の印刷モードをラスタグラフィックス印刷モード、物理ページ2の印刷モードをベクタグラフィックス印刷モードと決定する。
【0157】
これらの処理に、図22に示すプリンタ制御コマンドの生成ステップが続くが、このステップの処理は、基本的には上記第9の実施形態と同じであり、違いは図22のステップS2201の処理に変えて、図26のステップS2601の処理を行い、またステップS2204に変えて、図27のステップS2701〜S2703の処理を行う。
【0158】
本実施形態では、前記第8の実施の形態に前記の処理を追加することにより、論理ページ単位で印刷モードを切り替えるのではなく、物理ページ単位での適正な印刷モードの切り替えを制御するので、同一物理ページ上に複数の印刷モードが混在して指定される矛盾を回避し、最適な印刷モードでNページ印刷を行うことを可能とする。
【0159】
[第11の実施の形態]
第11の実施の形態として、プリンタ1500が両面印刷機能を有し、更に両面印刷時のパフォーマンスを向上させるために、プリンタ内部に片面印刷した用紙を最大2枚一時的にプールできる場合に、上記実施形態で示した印刷処理に適した印刷モードを求める工程と、同工程により求められた印刷モードで中間コードからプリンタ制御コマンドを生成する工程を前記プリンタ1500の紙搬送順序を考慮して適用するという改良が考えられる。
【0160】
図28が、両面印刷を実行した時のプリンタ1500内部での紙搬送の状況を示したものである。実際にプリンタ1500で連続した4ページデータを受信すると、まず4ページ目の印刷を行い、プリンタ両面ユニット内にプールし(図28中のステップ1)、続いて、2ページ目の印刷を行い、4ページ目と同様に両面ユニット内にプールする(図28中のステップ2)。
【0161】
続いて、両面ユニットから、既に2ページ目が印刷されている用紙を給紙して1ページ目の印刷を行い、その紙を排紙トレイにフェイスダウンにて排紙する(図28中のステップ3)。更に続いて、4ページ目が印刷されている用紙を両面ユニットから給紙して3ページ目の印刷を行い、前記と同様、その紙を排紙トレイにフェイスダウンにて排紙する(図28中のステップ4)。
【0162】
ここで、例えば、ホストコンピュータ3000のRAM2上へロードされて動作するアプリケーションから4ページを両面印刷する要求があった場合、本実施形態においては、前記第9の実施の形態で示した図21のステップ1906の処理終了後に、図29左側の表に示した4ページ毎の印刷モード情報から、まず総ページ数を確認し、実際に印刷するページ順に図17左側の表の印刷モード情報をソーティングし、図29真中の表で示したテーブルを得る(第30図のステップ3001)。
【0163】
更に、印刷モードを頻繁に切り替えるとプリンタ1500におけるパフォーマンスの低下が発生するため、印刷モードの切り替え回数を考慮する。本実施形態では、印刷モードの切り替えに伴うプリンタ1500のパフォーマンス低下を考慮して、印刷モードを切り替えるのは、同一処理モードによる印刷処理が2ページ以上続く場合のみとする。
【0164】
例えば、図29真中の印刷モード情報を見るとページ毎に印刷モードが切り替わっているので、前記条件を考慮すれば、図29の右側の印刷モードが選択されることになる。つまり、図29真ん中のテーブルの実ページ番号がリナンバリングされ、1ページ目(実ページの4)からラスタグラフィックス印刷モード、ベクタグラフィックス印刷モード、ラスタグラフィックス印刷モード、ベクタグラフィックス印刷モードという順番で指定された印刷モードは、全てラスタグラフィックス印刷モードに変更される。
【0165】
[第12の実施の形態]
図31は本発明が適用されたプリンタドライバがホストコンピュータのRAM上にロードされて実行可能となった状態のメモリマップを示している図である。ホストコンピュータ3000において(図1)、BIOS,OS、アプリケーション及び本発明によるプリンタ制御コマンド生成処理の最適化手法が適用されたプリンタドライバはCPU1により動作する。BIOSはプログラムROM3bに書き込まれており、OSは外部メモリ11であるハードディスク(以下、HD)に書き込まれている。そして、ホストコンピュータ3000の電源がONされた時に、BIOSプログラム中のIPL(Initial Program Loading )機能により、OS36がHD11からRAM2へ読み込まれ、OS36は動作する。
【0166】
そして、実際にプリンタドライバが動作可能となるのは、ユーザ等の指示により、前記ホストコンピュータ3000上でOS管理のもとに動作するアプリケーション32が印刷処理を開始した場合で、プリンタドライバ35を記録している外部メモリ11等の媒体から、OS36及びBIOS37の制御のもとに、プリンタドライバ35が読み出され、RAM2上へロードされた時である。
【0167】
本実施形態では、プリンタドライバは、バンド領域内で描画が行われた領域を矩形情報にて記憶する為に、ホストコンピュータ3000のRAM2上へ図32(a)に示すようなメモリ領域を一つ確保する。図32(a)に示した4つの記憶領域へは、矩形の左上隅、右下隅の水平座標値および垂直座標値が、バンド領域全体を示す矩形の左上隅を原点(0,0)とした時の相対座標値かつ整数単位で記憶される。
【0168】
また、前記の矩形情報は、プリンタドライバ34がアプリケーションソフトウェア32から描画命令を受け取るごとに、それぞれの描画命令によって描画する指定を受けた領域が包含されるように、更新(拡大)されていく。
【0169】
尚、本実施形態においては、矩形状領域の包含関係(描画済の領域情報を利用)によりバンド領域を定義するという手段を適用したが、他の形状、例えば楕円や多角形等を適用しても、本発明による効果が得られることは言うまでもない。また、本実施形態では、前記図17のステップ1707で行うバンド領域の細分化手法として、高さ1ピクセルの水平ライン(以下、スキャンライン)単位で分割するという手法が用いられる。
【0170】
図33は、その分割の様子を示したものである。51はページ領域を示し、52はバンド領域を示す。これにより、プリンタドライバ34はスキャンライン単位でプリンタ制御コマンドを生成することとなる。
【0171】
尚、本実施形態では、前記のようにスキャンライン単位でバンド領域を細分化する手法を適用したが、他の細分化手法、例えば、バンド領域よりも小さな矩形で細分化を行うといった手法などを適用しても、本発明と同様な効果を得ることが可能である。
【0172】
図34は、本発明が適用された実施形態の詳細な処理内容を示している。しかし、図中で図17と同一工程を示しているものには同一符号を付している。図17は従来技術において説明済であるので、図34で同一符号が付してある工程は重複説明を省略する。また、図35は図34のS3403の処理内容を詳細に示したフローチャートである。
【0173】
まずは、図34を用いて、バンド領域内の描画済である領域をどのようにして記憶するのかを説明する。ステップ1702において、ホストコンピュータ3000のRAM2上へロードされて、動作するアプリケーションソフト32から受け付けた描画命令を判断し(S1702)、印刷開始を意味するものであると判定された場合には(S1702−Yes)、バンドメモリの取得/初期化(S1703)に続いて、矩形情報を保持しておくメモリ領域をRAM2上で前記図32(a)に示した形式にて確保し、全てを「0」として初期化する(S3401)。
【0174】
この矩形情報は、プリンタドライバが描画要求をアプリケーションから受け付け、同描画要求に応じて印刷イメージをラスタライズし、バンドメモリへ保存を行った(S1705)際に、同描画要求によりラスタライズされた印刷イメージが全て矩形に納まるように更新(拡大)されていく(S3402)。そして、バンド領域に対するアプリケーションの印刷要求が終わった(S1706−Yes)場合には、同バンド領域に対応した各プリンタ制御コマンドを生成した(S3403)後に、矩形情報は全て「0」として初期化される(S3404)。尚、前記矩形情報を記憶しておくメモリ領域は、印刷終了時(S1704−Yes)にRAM2上において開放される(S3405)。
【0175】
ここで矩形情報の更新されていく様子を示した具体例を示す(図32(b))。あるバンド領域に対して、次に示す3つの描画要求を順番にプリンタドライバが受け付けた場合を想定する。尚、以下に示す点の座標値は、バンド領域の左上隅を原点(0,0)とした相対座標値であり、(水平方向の座標値、垂直方向の座標値)という形で表現するものとする。また、矩形情報の値は、図32(a)を引用すれば、(left,top,right,bottom)という形式にて、前記と同様に原点からの相対座標値で表される。
(1)線描画の要求・・・始点(0,0)、終点(3,3)
(2)点描画の要求・・・座標(2,2)
(3)ビットマップ描画の要求・・・始点(0,0)、幅300、高さ100
まず、(1)の描画要求を受け付けると矩形情報は((0,0),(3,3))に更新される。続いて、(2)の描画命令を受け付けると描画処理は行われるのだが、描画座標は既に記憶してある矩形の中に存在するので、矩形情報は更新されない。次に(3)の描画要求を受け付けると、描画領域は記憶している矩形領域を包含したより大きなものなので、矩形情報は((0,0),(300,100))に更新される。従って、上記の一連の描画要求を受け付けた場合には、矩形情報として((0,0),(300,100))が記憶されることになる。
【0176】
次に、図34のステップ3403の処理内容を図35を用いて説明する。特に、RAM2上へ記憶しておいた矩形情報が、プリンタ制御コマンドを生成する際に、どのように利用され、最適化が図れるかを説明する。
【0177】
まず、ページイメージの一部を構成しているバンド領域をスキャンライン単位に分割し、それぞれを順番に取り出す(S3501)。本実施形態では、バンド領域52の上部より、図33に示したような順番でスキャンラインを取り出すこととする。次に、取り出したスキャンラインが記憶済みの矩形情報と交わるかどうかを判定し(S3502)、交わる場合にのみ(S3502−Yes)、そのスキャンラインに対応したプリンタ制御コマンドを生成する(S3503)。
【0178】
ステップ3502において交わらないと判定された場合(S3502−No)、およびステップ3503の後は、ステップ3504へ進み、全てのスキャンラインを取り出したかどうかを判定する(S3504)。ステップ3501から3503に示した一連の処理は、ステップ3504において、全てのスキャンラインが取り出されたと判定されるまで繰り返される。
【0179】
尚、本実施形態のステップ3503においては、スキャンラインに対応するプリンタ制御コマンドを生成するとだけ示したが、同スキャンラインからプリンタ制御コマンドを生成するまでに幾つかの処理過程が必要な場合には、スキャンラインの左端と右端に描画されていない領域がどれだけあるかという情報も利用して、無駄な処理を省くことが可能である。
【0180】
例としては、赤、緑、青などの輝度成分で表される色(以下、RGB値)からシアン、マゼンタ、イエローなどの濃度成分で表現される色(以下、CMYK値)への色変換処理やデータ圧縮処理などがあげられるが、これに限るものではない。
【0181】
本発明を適用した本実施形態によれば、バンド領域内の描画されていない領域に対応するプリンタ制御コマンド生成処理を削減、もしくは削除することが可能となるので、処理時間の短縮が可能となると共に、プリンタドライバが生成する印刷データサイズをより小さくすることも可能となる。
【0182】
また、従来のプリンタドライバがバンド領域内の描画されていない領域に対応するプリンタ制御コマンド生成処理を省く為に、逐一、バンドメモリの処理対象領域を全て確認していた場合にも、本発明を適用すれば、より効率的に印刷とは関係のない処理を省くことが可能となるために、プリンタドライバ処理を最適化することが可能となる。
【0183】
さらに、本実施形態の一例でも説明したが、プリンタ制御コマンドを生成する際に幾つかの処理過程が必要である場合には、例えば、本実施形態に示したスキャンラインの左端と右端に描画されていない領域がどれだけあるかという情報を利用して、場合によっては、無駄な処理を省くことも可能となるので、プリンタドライバ処理に要する時間をより短縮可能となる。また、本実施形態によれば、バンドメモリからそれぞれのプリンタ制御コマンドを生成する際に幾つかの処理過程が必要である場合には、プリンタ制御コマンドの生成対象領域から更に描画とは関係のない領域を求め、これらの領域に対応する処理過程をスキップすることにより、プリンタドライバに関する処理時間の短縮が行えるという効果がある。
【0184】
尚、本実施形態に示した機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されても良い。そして、その場合、その機能がCD−ROMやフラッシュメモリやFD等の記憶媒体により、或いは、電子メールやパソコン通信等のネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置やホストコンピュータを含むシステム内にロードすることにより、ホストコンピュータ或いは出力装置に供給される場合でも本発明は適用されるものである。
【0185】
[第13の実施の形態]
第13の実施形態として、バンド領域内の描画済である領域情報を、アプリケーションソフトウェアからの描画命令を受け付ける際に、描画要求単位で記憶しておくという改良が考えられる。
【0186】
本実施形態では、前記第12の実施形態の処理内容を示している図34のステップ3401,3402,3404,3405の代わりに、図36(a),(b),(c),(d)として示すステップ3601,3602,3604,3605の処理を行う。また、図34のステップ3403に関する処理内容を示している図35のステップ3502の代わりに図37に示した処理を行う。
【0187】
まずは、図36(a),(b),(c),(d)を用いて、バンド領域内の描画済である領域をどのようにして記憶するのかを説明する。アプリケーションから受け付けた描画命令が印刷開始を意味するものであった場合には、描画済の領域情報を記憶する記憶領域をRAM2上で確保し、初期化する(ステップ3601、図36(a))。尚、描画済の領域情報は、図38に示すような形式で、プリンタドライバが描画命令を受け付けた際に、その描画命令の種類とその種類に応じた座標等の追加情報とを組にして順次追加されていく(ステップ3602、図36(b))。
【0188】
そして、バンド領域に対するアプリケーションの描画命令が終わった場合には、同バンド領域に対応した各プリンタ制御コマンドを生成した後に、前記記憶領域は初期化される(ステップ3604,図36(c))。
【0189】
尚、描画済の領域情報を記憶しておく記憶領域は、印刷終了時にRAM2上において開放される(ステップ3605、図36(d))。
【0190】
次に、RAM2上へ記憶しておいた領域情報が、プリンタ制御コマンドを生成する際に、どのように利用され、最適化が図れるか図37を用いて説明する。図35のステップ3501において取り出したスキャンラインに対して描画が行われているかどうかを判定するために、まず、前記工程にて記憶しておいた描画要求を先頭から順に取り出し(S3701)、その描画要求が同スキャンラインに対して描画を行っているかどうかを判定する(S3702)。
【0191】
すなわち、描画要求により描画された領域とスキャンラインとが重複(交わる)するか否かを判断する。重複する部分があれば、描画が行われたことになる。ステップ3702において、描画が行われたという判定がされた場合には(S3702−Yes)、ステップ3503へ進み、プリンタ制御コマンドの生成を行う。
【0192】
一方、ステップ3702において、描画が行われていないという判定がされた場合には、ステップ3703へ進み、描画要求が最後のものかどうかを判定する。ステップ3703において、最後の描画要求ではないと判定された場合は(ステップ3703−No)、再びステップ3701に戻り、新たな描画要求を図38のテーブルから取り出し、最後であると判定された場合には(ステップ3703−Yes)、ステップ3504へ進む。
【0193】
本実施形態によれば、バンド領域内の描画されていない領域に対応するプリンタ制御コマンド生成処理を削除することが可能となるので、処理時間の短縮が可能となると共に、プリンタドライバが生成する印刷データサイズをより小さくすることも可能となる。
【0194】
また、従来のプリンタドライバがバンド領域内の描画されていない領域に対応するプリンタ制御コマンド生成処理を省く為に、逐一、バンドメモリの処理対象領域を全て確認していた場合にも、本発明を適用すれば、より効率的に印刷とは関係のない処理を省くことが可能となるために、プリンタドライバ処理を最適化することが可能となる。
【0195】
本実施形態においては、描画済の領域情報をアプリケーションからの描画要求を単位として記憶したが、ある程度の図形形状分類を行いながら、それぞれの分類毎に記憶するという応用も可能である。例えば、矩形描画やビットマップ描画、更にはテキスト描画などといったものは矩形情報としてまとめながら記憶しておけば、より効率的である。
【0196】
[第14の実施の形態]
第14の実施の形態として、描画済である領域情報を、アプリケーションソフトウェアからの描画命令を受け付ける際に、細分化されたスキャンラインごとに描画されたか否かを記憶するという改良が考えられる。この領域情報は図41のようにスキャンライン番号に対応して描画済みであるか否かの情報がテーブル形式で記憶される。
【0197】
尚、本実施形態においては、バンドメモリを細分化してプリンタ制御コマンドを生成する単位が、スキャンラインであると想定するが、これに限るものではない。
【0198】
本実施形態では、第12の実施形態の処理内容を示している図34のステップ3401,3402,3404,3405の代わりに、図39(a),(b),(c),(d)のステップ3901,3902,3904,3905に示した処理を行う。また、図34のステップ3403に関する処理内容を示している図35のステップ3502の代わりに図40に示した処理を行う。
【0199】
まずは、図39を用いて、バンド領域内の描画済である領域をどのようにして記憶するかを説明する。アプリケーションから受け付けた描画命令が印刷開始を意味するものであった場合には、描画済の領域情報をスキャンライン単位で記憶する領域をRAM2上で確保し、初期化する(S3901、図39(a))。尚、描画済の領域情報は図41に示すテーブル形式で記憶される。
【0200】
即ち、バンド領域を構成するスキャンライン全てに対応するだけのテーブルが用意され、初期化時には全て描画されていない意味を示す値で初期化される。また、プリンタドライバが描画命令を受け付けた際に影響が及んだ細分化領域に対応する値は、描画された旨を意味する値で更新される(S3902,図39(b))。
【0201】
そして、バンド領域に対するアプリケーションの描画命令が終わった場合には、同バンド領域に対応した各プリンタ制御コマンドを生成した後に、前記記憶領域は初期化される(S3904、図39(c))。尚、描画済の領域情報を記憶しておいた領域は、印刷終了時にRAM2上において開放される(S3905、図39(d))。
【0202】
次に、図40を用いて、前記工程にてRAM2上へ記憶しておいた領域情報が、プリンタ制御コマンドを生成する際に、どのように利用され、最適化が図れるかを説明する。
【0203】
前記図35のステップ3501において取り出したスキャンラインに対して描画が行われているかどうかを判定する為に、前記工程にて記憶しておいたテーブル形式の領域情報で該当するスキャンラインに対応する値を参照し、判定する(S4001)。ステップ4001において、描画が行われたという判定がされた場合には(S4001−Yes)、ステップ3503へ進み、プリンタ制御コマンドの生成を行う。
【0204】
一方、ステップ4001において、描画が行われていないと判定された場合には(S4001−No)、ステップ3504へ進み、スキャンラインを全て取り出したか否かを判定する。
【0205】
本実施形態によれば、バンド領域内の描画されていない領域に対応するプリンタ制御コマンド生成処理を削除することが可能となるので、処理時間の短縮が可能となると共に、プリンタドライバが生成する印刷データサイズをより小さくすることも可能となる。
【0206】
また、従来のプリンタドライバがバンド領域内の描画されていない領域に対応するプリンタ制御コマンド生成処理を省く為に、逐一、バンドメモリの処理対象領域を全て確認していた場合にも、本発明を適用すれば、より効率的に印刷とは関係のない処理を省くことが可能となるために、プリンタドライバ処理を最適化することが可能となる。
【0207】
[第15の実施の形態]
また、本発明の目的は、第12乃至14の実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0208】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0209】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0210】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0211】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0212】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになるが、簡単に説明すると、図42のメモリマップ例に示す各モジュールを記憶媒体に格納することになる。
【0213】
すなわち、少なくとも「描画情報受け付け4201」「印刷モード設定4202」および「印刷モード判断4203」、「印刷モード更新4204」、「読み出し4205」、「印刷データ生成4206」、「ページ印刷モード設定4207」「ページ印刷モード判断4208」「ページ印刷モード更新4209」、「保存4210」、「物理ページ印刷モジュール作成4211」、「ソーティング4212、「印刷モジュール決定4213」、「印刷イメージ構築4214」、「バンドメモリ格納4215」、「領域形成4216」、「バンドメモリ分割4217」、「判断4218」、「制御コマンド生成4219」、「描画情報テーブル記憶4220」の各モジュールのプログラムコードを記憶媒体に格納すればよい。
【0214】
【他の実施形態】
なお、本発明は、複数の機器(例えばホストコンピュータ,インタフェイス機器,リーダ,プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用してもよい。
【0215】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
【0216】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0217】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0218】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0219】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0220】
【発明の効果】
以上説明したように、本発明によれば、ベクタグラフィックス印刷モードや、ラスタグラフィックス印刷モードといった印刷モードを、ユーザに指定された特定機能(印刷設定)と、予め登録された特定機能(印刷機能)とを比較することにより選択することで、高いパフォーマンス、又は適正な印字結果を得ることが可能になる。
【0221】
すなわち、ユーザが明示的に指定した印刷設定と、予め登録された特定の印刷機能とを比較することで印刷モードを選択することができ、簡易な構成で、かつ処理負担が軽く、適切な印刷モードを選択することが可能になる。
【0222】
あるいは、ベクタグラフィックス印刷モードや、ラスタグラフィックス印刷モードといった印刷モードを、印刷要求を行ったアプリケーション名称と、予め登録されたアプリケーション名称とを比較することにより選択することで、高いパフォーマンス、又は適正な印字結果を得ることが可能になる。
【0223】
すなわち、印刷要求を行ったアプリケーション名称を取得することで、そのアプリケーション名称が予め登録されたアプリケーション名称と一致するかを比較することで印刷モードを選択することができ、簡易な構成で、かつ処理負担が軽く、適切な印刷モードを選択することが可能になる。
【図面の簡単な説明】
【図1】本発明の実施形態におけるプリンタ制御システムの構成を説明するブロック図である。
【図2】本発明の実施形態における印刷処理システムの構成図である。
【図3】本発明の実施形態における印刷処理システムの詳細な構成図である。
【図4】本発明の実施形態におけるベクタグラフィックス印刷モードの処理手順の概略を示すフローチャートである。
【図5】本発明の実施形態におけるラスタグラフィックス印刷モードの処理手順の概略を示すフローチャートである。
【図6】本発明の実施形態における印刷モード自動制御プログラムを含む印刷関連モジュールがホストコンピュータ3000のRAM2上にロードされ、実行可能となった状態のメモリマップを示しているブロック図である。
【図7】本発明の実施形態における中間コードデータの保存ファイル内容例を示した図である。
【図8】第1の実施の形態における処理手順を示したフローチャートである。
【図9】第1の実施の形態における処理手順の一例を示したフローチャートである。
【図10】第2の実施の形態における印刷モードを選択する部分のフローチャートである。
【図11】 第3の実施の形態における印刷モードを選択する部分のフローチャートである。
【図12】第4の実施の形態における印刷モードの決定条件を取得する部分のフローチャートである。
【図13】第5の実施の形態における処理手順を示したフローチャートである。
【図14】第5の実施の形態における処理手順の一例を示したフローチャートである。
【図15】第6の実施の形態における印刷モードを選択する部分のフローチャートである。
【図16】第7の実施の形態における印刷モードの決定条件を取得する部分のフローチャートである。
【図17】ラスタグラフィック印刷モードにおける、従来のプリンタドライバの処理内容を示すフローチャートである。
【図18】第8の実施の形態における処理手順の概要を示すフローチャートである。
【図19】第8の実施の形態における処理手順を示すフローチャートである。
【図20】第8の実施の形態におけるプリンタ制御コマンドの生成処理を示すフローチャートである。
【図21】第9の実施の形態における中間コードデータの生成処理を示すフローチャートである。
【図22】第9の実施の形態におけるプリンタ制御コマンドの生成処理を示すフローチャートである。
【図23】第9の実施の形態における印刷モード情報のテーブルを示す図である。
【図24】第10の実施の形態における印刷モード情報のテーブルを示す図である。
【図25】第10の実施の形態における処理手順の特徴部分を示すフローチャートである。
【図26】第10の実施の形態におけるプリンタ制御コマンドの生成処理の特徴部分を示すフローチャートである。
【図27】第10の実施の形態におけるプリンタ制御コマンドの生成処理の特徴部分を示すフローチャートである。
【図28】第11の実施の形態における、両面印刷を実行したときのプリンタ1500内部での紙搬送の様子を示す図である。
【図29】 第11の実施の形態における印刷モード情報のテーブルを示す図である。
【図30】第11の実施の形態における中間コードデータの生成処理の特徴部分を示すフローチャートである。
【図31】第12の実施の形態におけるメモリマップの状態を示す図である。
【図32】第12の実施の形態における描画が行われた領域を説明する図である。
【図33】バンド領域をスキャンライン単位で分割したときの様子を示す図である。
【図34】第12の実施の形態における印刷イメージをラスタライズする際の処理を示すフローチャートである。
【図35】第12の実施の形態におけるバンド領域の細分化処理を示すフローチャートである。
【図36】第13の実施の形態における処理手順の特徴部分を示すフローチャートである。
【図37】第13の実施の形態におけるバンド領域の細分化処理を示すフローチャートである。
【図38】第13の実施の形態における描画済み領域情報のテーブルを示すフローチャートである。
【図39】第14の実施の形態における処理手順の特徴部分を示すフローチャートである。
【図40】第14の実施の形態におけるバンド領域の細分化処理を示すフローチャートである。
【図41】第14の実施の形態における描画済み領域情報のテーブルを示すフローチャートである。
【図42】第15の実施の形態におけるメモリマップの例を示す図である。
【符号の説明】
3000 ホストコンピュータ
1500 プリンタ
1501 操作パネル
1、12 CPU
2、19 RAM
3、13 ROM
4、15 バス
5 キーボードコントローラ
6 CRTコントーラ
7、20 ディスクコントローラ
8 プリンタコントローラ
9 キーボード
10 CRTディスプレイ
11、14 外部メモリ
16 印刷部インターフェイス
17 印刷部
18 入力部
201 アプリケーション
202 グラフィックエンジン
203 プリンタドライバ
204 システムスプーラ
301 ディスパッチャ
302 スプーラ
303 スプールファイル
304 スプールファイルマネージャ
305 デスプーラ
51 ページ領域
52 バンド領域

Claims (33)

  1. プリンタで印刷すべき印刷データを生成する、ホストコンピュータとしての情報処理装置であって、
    印刷指示を受けた際に、ベクタグラフィック印刷モードまたはラスタグラフィック印刷モードのいずれかの印刷モードで印刷すべき機能として予め登録された特定の印刷機能を取得する第1取得手段と、
    ユーザから明示的に指定された印刷設定を取得する第2取得手段と、
    前記第1取得手段により取得された前記特定の印刷機能と、前記第2取得手段で取得された前記印刷設定とに基づいて、印刷データの描画モードを示す印刷モードを前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択手段と、
    前記選択手段により選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記印刷モードを選択するための前記特定の機能は、前記プリンタに固有のプリンタドライバから取得することを特徴とする請求項1に記載の情報処理装置。
  3. 前記描画命令を中間コードに変換し、前記中間コードを一時保存するスプール手段と、
    前記スプール手段に保存されている前記中間コードをもとに、前記グラフィックエンジンに前記描画命令を再生成させるデスプール手段とを備え、
    前記制御手段は、前記グラフィックエンジンが再生成した前記描画命令に応じて、前記印刷データを前記プリンタドライバに生成させることを特徴とする請求項1に記載の情報処理装置。
  4. 前記グラフィックエンジンに前記描画命令を再生成させるときには、前記選択手段により選択された前記印刷モードにおける前記プリンタドライバの能力を前記グラフィックエンジンに通知し、前記グラフィックエンジンに前記能力に応じた前記描画命令を生成させることを特徴とする請求項3に記載の情報処理装置。
  5. 前記選択手段により選択されたページ単位の印刷モードを記憶する印刷モード記憶手段を備え、
    前記制御手段は、前記印刷モード記憶手段に記憶されている前記印刷モードに従って、ページ単位に前記印刷モードを変更することを特徴とする請求項1に記載の情報処理装置。
  6. 前記スプール手段は、前記プリンタが複数ページを1の用紙にレイアウト印刷する場合に、前記複数ページ分の描画命令から、前記1の用紙にレイアウト印刷するための中間コードを生成し、前記制御手段は、前記中間コードに基づき前記印刷モード記憶手段に記憶されているページ単位の印刷モードで、前記1の用紙に印刷する前記印刷データを前記プリンタドライバに生成させることを特徴とする請求項3に記載の情報処理装置。
  7. 前記スプール手段が前記描画命令を中間コードに変換し、前記プリンタの実際の印刷順に並び替えたページ順に従い、前記印刷モード記憶手段に記憶されている前記印刷モードを並び替える印刷モード並び替え手段を備え、
    前記制御手段は、前記印刷モード並び替え手段により並び替えられた順に、ページ単位で前記印刷モードを変更して、前記プリンタドライバに前記印刷データを生成させることを特徴とする請求項3に記載の情報処理装置。
  8. ホストコンピュータとしての情報処理装置が生成する、プリンタで印刷すべき印刷データを処理する情報処理方法であって、
    印刷指示を受けた際に、ベクタグラフィック印刷モードまたはラスタグラフィック印刷モードのいずれかの印刷モードで印刷すべき機能として予め登録された特定の印刷機能を取得する第1取得工程と、
    ユーザから明示的に指定された印刷設定を取得する第2取得工程と、
    前記第1取得工程により取得された前記特定の印刷機能と、前記第2取得工程で取得された前記印刷設定とに基づいて、印刷データの描画モードを示す印刷モードを前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択工程と、
    前記選択工程により選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御工程と、
    を備えることを特徴とする情報処理方法。
  9. 前記印刷モードを選択するための前記特定の機能は、前記プリンタに固有のプリンタドライバから取得することを特徴とする請求項に記載の情報処理方法。
  10. 前記描画命令を中間コードに変換し、前記中間コードをスプール手段に一時保存するスプール工程と、
    前記スプール工程の処理により保存されている前記中間コードをもとに、前記グラフィックエンジンに前記描画命令を再生成させるデスプール工程とを備え、
    前記制御工程は、前記グラフィックエンジンが再生成した前記描画命令に応じて、前記印刷データを前記プリンタドライバに生成させることを特徴とする請求項に記載の情報処理方法。
  11. 前記グラフィックエンジンに前記描画命令を再生成させるときには、前記選択工程により選択された前記印刷モードにおける前記プリンタドライバの能力を前記グラフィックエンジンに通知し、前記グラフィックエンジンに前記能力に応じた前記描画命令を生成させることを特徴とする請求項10に記載の情報処理方法。
  12. 前記選択工程により選択されたページ単位の印刷モードを印刷モード記憶手段に記憶する印刷モード記憶工程を備え、
    前記制御工程は、前記印刷モード記憶工程の処理により記憶されている前記印刷モードに従って、ページ単位に前記印刷モードを変更することを特徴とする請求項に記載の情報処理方法。
  13. 前記スプール工程は、前記プリンタが複数ページを1の用紙にレイアウト印刷する場合に、前記複数ページ分の描画命令から、前記1の用紙にレイアウト印刷するための中間コードを生成し、前記制御工程は、前記中間コードに基づき前記印刷モード記憶工程の処理により記憶されているページ単位の印刷モードで、前記1の用紙に印刷する前記印刷データを前記プリンタドライバに生成させることを特徴とする請求項10に記載の情報処理方法。
  14. 前記スプール工程が前記描画命令を中間コードに変換し、前記プリンタの実際の印刷順に並び替えたページ順に従い、前記印刷モード記憶工程の処理により記憶されている前記印刷モードを並び替える印刷モード並び替え工程を備え、
    前記制御工程は、前記印刷モード並び替え工程の処理により並び替えられた順に、ページ単位で前記印刷モードを変更して、前記プリンタドライバに前記印刷データを生成させることを特徴とする請求項10に記載の情報処理方法。
  15. ホストコンピュータとしての情報処理装置が生成する、プリンタで印刷すべき印刷データを処理する情報処理プログラムを格納する記憶媒体であって、当該プログラムが、
    印刷指示を受けた際に、ベクタグラフィック印刷モードまたはラスタグラフィック印刷モードのいずれかの印刷モードで印刷すべき機能として予め登録された特定の印刷機能を取得する第1取得工程のコードと、
    ユーザから明示的に指定された印刷設定を取得する第2取得工程のコードと、
    前記第1取得工程のコードにより取得された前記特定の印刷機能と、前記第2取得工程のコードで取得された前記印刷設定とに基づいて、印刷データの描画モードを示す印刷モードを前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択工程のコードと、
    前記選択工程のコードにより選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御工程のコードと、
    を備えることを特徴とする記憶媒体。
  16. 前記印刷モードを選択するための前記特定の機能は、前記プリンタに固有のプリンタドライバから取得することを特徴とする請求項15に記載の記憶媒体。
  17. 前記描画命令を中間コードに変換し、前記中間コードをスプール手段に一時保存するスプール工程のコードと、
    前記スプール工程のコードの処理により保存されている前記中間コードをもとに、前記グラフィックエンジンに前記描画命令を再生成させるデスプール工程のコードとを備え、
    前記制御工程のコードは、前記グラフィックエンジンが再生成した前記描画命令に応じて、前記印刷データを前記プリンタドライバに生成させることを特徴とする請求項15に記載の記憶媒体。
  18. 前記グラフィックエンジンに前記描画命令を再生成させるときには、前記選択工程のコードにより選択された前記印刷モードにおける前記プリンタドライバの能力を前記グラフィックエンジンに通知し、前記グラフィックエンジンに前記能力に応じた前記描画命令を生成させることを特徴とする請求項17に記載の記憶媒体。
  19. 前記選択工程のコードにより選択されたページ単位の印刷モードを印刷モード記憶手段に記憶する印刷モード記憶工程のコードを備え、
    前記制御工程のコードは、前記印刷モード記憶工程のコードの処理により記憶されている前記印刷モードに従って、ページ単位に前記印刷モードを変更することを特徴とする請求項15に記載の記憶媒体。
  20. 前記スプール工程のコードは、前記プリンタが複数ページを1の用紙にレイアウト印刷する場合に、前記複数ページ分の描画命令から、前記1の用紙にレイアウト印刷するための中間コードを生成し、前記制御工程のコードは、前記中間コードに基づき前記印刷モード記憶工程のコードの処理により記憶されているページ単位の印刷モードで、前記1の用紙に印刷する前記印刷データを前記プリンタドライバに生成させることを特徴とする請求項17に記載の記憶媒体。
  21. 前記スプール工程のコードが前記描画命令を中間コードに変換し、前記プリンタの実際の印刷順に並び替えたページ順に従い、前記印刷モード記憶工程のコードの処理により記憶されている前記印刷モードを並び替える印刷モード並び替え工程のコードを備え、
    前記制御工程のコードは、前記印刷モード並び替え工程のコードの処理により並び替えられた順に、ページ単位で前記印刷モードを変更して、前記プリンタドライバに前記印刷データを生成させることを特徴とする請求項17に記載の記憶媒体。
  22. プリンタで印刷すべき印刷データを生成する、ホストコンピュータとしての情報処理装置であって、
    印刷指示を受けた際に、予め登録された特定のアプリケーション名称を取得する第1取得手段と、
    グラフィックエンジンを介して印刷要求を行ったアプリケーション名称を取得する第2取得手段と、
    前記第1取得手段により取得された前記特定のアプリケーション名称と前記第2取得手段で取得された前記印刷要求を行ったアプリケーション名称との比較結果に基づいて、印刷データの描画モードを示す印刷モードを、前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択手段と、
    前記選択手段により選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御手段と、
    を備えることを特徴とする情報処理装置。
  23. 前記描画命令を中間コードに変換し、前記中間コードを一時保存するスプール手段と、
    前記スプール手段に保存されている前記中間コードをもとに、前記グラフィックエンジンに前記描画命令を再生成させるデスプール手段とを備え、
    前記制御手段は、前記グラフィックエンジンが再生成した前記描画命令に応じて、前記印刷データを前記プリンタドライバに生成させることを特徴とする請求項22に記載の情 報処理装置。
  24. 前記グラフィックエンジンに前記描画命令を再生成させるときには、前記選択手段により選択された前記印刷モードにおける前記プリンタドライバの能力を前記グラフィックエンジンに通知し、前記グラフィックエンジンに前記能力に応じた前記描画命令を生成させることを特徴とする請求項23に記載の情報処理装置。
  25. 前記選択手段によりページ単位に選択された印刷モードをページ単位に記憶する印刷モード記憶手段と、
    前記スプール手段が前記描画命令を中間コードに変換し、前記プリンタの実際の印刷順に並び替えたページ順に従い、前記印刷モード記憶手段に記憶されている前記印刷モードを並び替える印刷モード並び替え手段とを備え、
    前記制御手段は、前記印刷モード並び替え手段により並び替えられた順に、ページ単位で前記印刷モードを変更して、前記プリンタドライバに前記印刷データを生成させることを特徴とする請求項23に記載の情報処理装置。
  26. プリンタで印刷すべき印刷データを生成する、ホストコンピュータにおける情報処理方法であって、
    印刷指示を受けた際に、予め登録された特定のアプリケーション名称を取得する第1取得工程と、
    グラフィックエンジンを介して印刷要求を行ったアプリケーション名称を取得する第2取得工程と、
    前記第1取得工程により取得された前記特定のアプリケーション名称と前記第2取得工程で取得された前記印刷要求を行ったアプリケーション名称との比較結果に基づいて、印刷データの描画モードを示す印刷モードを、前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択工程と、
    前記選択工程により選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御工程と、
    を備えることを特徴とする情報処理方法。
  27. 前記描画命令を中間コードに変換し、前記中間コードをスプール手段に一時保存するスプール工程と、
    前記スプール手段に保存されている前記中間コードをもとに、前記グラフィックエンジンに前記描画命令を再生成させるデスプール工程とを備え、
    前記制御工程は、前記グラフィックエンジンが再生成した前記描画命令に応じて、前記印刷データを前記プリンタドライバに生成させることを特徴とする請求項26に記載の情報処理方法。
  28. 前記グラフィックエンジンに前記描画命令を再生成させるときには、前記選択工程により選択された前記印刷モードにおける前記プリンタドライバの能力を前記グラフィックエンジンに通知し、前記グラフィックエンジンに前記能力に応じた前記描画命令を生成させることを特徴とする請求項27に記載の情報処理方法。
  29. 前記選択工程によりページ単位に選択された印刷モードをページ単位に印刷モード記憶手段に記憶する印刷モード記憶工程と、
    前記スプール工程が前記描画命令を中間コードに変換し、前記プリンタの実際の印刷順に並び替えたページ順に従い、前記印刷モード記憶手段に記憶されている前記印刷モードを並び替える印刷モード並び替え工程とを備え、
    前記制御工程は、前記印刷モード並び替え工程により並び替えられた順に、ページ単位で前記印刷モードを変更して、前記プリンタドライバに前記印刷データを生成させることを特徴とする請求項27に記載の情報処理方法。
  30. プリンタで印刷すべき印刷データを生成するために、ホストコンピュータにおいて実行する情報処理プログラムを格納する記憶媒体であって、当該プログラムが、
    印刷指示を受けた際に、予め登録された特定のアプリケーション名称を取得する第1取得工程のコードと、
    グラフィックエンジンを介して印刷要求を行ったアプリケーション名称を取得する第2取得工程のコードと、
    前記第1取得工程のコードにより取得された前記特定のアプリケーション名称と前記第2取得工程のコードで取得された前記印刷要求を行ったアプリケーション名称との比較結果に基づいて、印刷データの描画モードを示す印刷モードを、前記ベクタグラフィック印刷モードと前記ラスタグラフィック印刷モードから選択する選択工程のコードと、
    前記選択工程のコードにより選択された前記印刷モードで、グラフィックエンジンが生成した描画命令に応じて、印刷データをプリンタドライバに生成させる制御工程のコードと、
    を備えることを特徴とする記憶媒体。
  31. 前記描画命令を中間コードに変換し、前記中間コードをスプール手段に一時保存するスプール工程のコードと、
    前記スプール手段に保存されている前記中間コードをもとに、前記グラフィックエンジンに前記描画命令を再生成させるデスプール工程のコードとを備え、
    前記制御工程のコードは、前記グラフィックエンジンが再生成した前記描画命令に応じて、前記印刷データを前記プリンタドライバに生成させることを特徴とする請求項30に記載の記憶媒体。
  32. 前記グラフィックエンジンに前記描画命令を再生成させるときには、前記選択工程のコードにより選択された前記印刷モードにおける前記プリンタドライバの能力を前記グラフィックエンジンに通知し、前記グラフィックエンジンに前記能力に応じた前記描画命令を生成させることを特徴とする請求項31に記載の記憶媒体。
  33. 前記選択工程のコードによりページ単位に選択された印刷モードをページ単位に印刷モード記憶手段に記憶する印刷モード記憶工程のコードと、
    前記スプール工程のコードが前記描画命令を中間コードに変換し、前記プリンタの実際の印刷順に並び替えたページ順に従い、前記印刷モード記憶手段に記憶されている前記印刷モードを並び替える印刷モード並び替え工程のコードとを備え、
    前記制御工程のコードは、前記印刷モード並び替え工程のコードにより並び替えられた順に、ページ単位で前記印刷モードを変更して、前記プリンタドライバに前記印刷データを生成させることを特徴とする請求項31に記載の記憶媒体。
JP01765499A 1998-02-05 1999-01-26 情報処理装置及び情報処理方法、記憶媒体 Expired - Fee Related JP3689579B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP01765499A JP3689579B2 (ja) 1998-02-05 1999-01-26 情報処理装置及び情報処理方法、記憶媒体
DE69924548T DE69924548T2 (de) 1998-02-05 1999-01-29 Druckdatenerzeugung und Drucksteuerungsverfahren und -gerät
EP99300659A EP0935187B1 (en) 1998-02-05 1999-01-29 Print data generation and print control method and apparatus
US09/244,475 US6734986B1 (en) 1998-02-05 1999-02-04 Print control apparatus, print data generating apparatus, print control method, print data generating method, and storage medium

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2488198 1998-02-05
JP6165398 1998-03-12
JP10-61653 1998-03-12
JP10-24881 1998-03-12
JP01765499A JP3689579B2 (ja) 1998-02-05 1999-01-26 情報処理装置及び情報処理方法、記憶媒体

Publications (2)

Publication Number Publication Date
JPH11327846A JPH11327846A (ja) 1999-11-30
JP3689579B2 true JP3689579B2 (ja) 2005-08-31

Family

ID=27281917

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01765499A Expired - Fee Related JP3689579B2 (ja) 1998-02-05 1999-01-26 情報処理装置及び情報処理方法、記憶媒体

Country Status (4)

Country Link
US (1) US6734986B1 (ja)
EP (1) EP0935187B1 (ja)
JP (1) JP3689579B2 (ja)
DE (1) DE69924548T2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3711435B2 (ja) * 1998-02-10 2005-11-02 セイコーエプソン株式会社 印刷データのプレビュー方法および装置、記録媒体
US7172121B2 (en) 2000-11-03 2007-02-06 Claricom Limited System and method for applying codes onto packaged products
GB9926198D0 (en) 1999-11-05 2000-01-12 Claricom Ltd Improvements in printer systems
US7170617B1 (en) * 2000-04-17 2007-01-30 International Business Machines Corporation Method and apparatus for determining how to process incoming print jobs
JP4586241B2 (ja) * 2000-06-14 2010-11-24 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
US7012709B2 (en) * 2000-06-16 2006-03-14 Seiko Epson Corporation Printer having controller transmitting commands to print engine responsive to commands
JP4298146B2 (ja) * 2000-08-22 2009-07-15 キヤノン株式会社 印刷データを生成する情報処理装置及び方法
KR100396548B1 (ko) * 2001-01-10 2003-09-03 삼성전자주식회사 프린팅 속도를 향상시키는 프린터 제어 장치 및 그 방법
US7003585B2 (en) * 2001-09-05 2006-02-21 Xerox Corporation High speed serial interface
US20030202209A1 (en) * 2002-04-30 2003-10-30 Mellor Douglas J. System and method for optimizing memory resources in printing devices
JP2004110127A (ja) * 2002-09-13 2004-04-08 Fuji Xerox Co Ltd プリンタアイコン生成装置、プリンタアイコン生成方法及びプログラム
JP4564732B2 (ja) * 2002-10-02 2010-10-20 キヤノン株式会社 印刷制御装置、印刷制御方法、プリントシステム、プログラム
US20040140986A1 (en) * 2003-01-16 2004-07-22 Boldon John Leland Systems and methods for facilitating printing through interface exportation
JP4198154B2 (ja) * 2003-02-26 2008-12-17 サイエンスパーク株式会社 印刷制御用プログラムを格納した電子計算機、そのプログラム及びプログラム記録媒体
JP2006021407A (ja) * 2004-07-07 2006-01-26 Konica Minolta Business Technologies Inc 画像形成装置および画像形成装置の制御方法
JP4397752B2 (ja) * 2004-07-28 2010-01-13 株式会社リコー 通信端末装置
JP5473237B2 (ja) * 2008-03-10 2014-04-16 キヤノン株式会社 印刷装置、印刷装置の制御方法、及びコンピュータプログラム
JP5142872B2 (ja) * 2008-07-28 2013-02-13 キヤノン株式会社 印刷制御装置、印刷制御方法、及びコンピュータプログラム
JP5578975B2 (ja) * 2010-07-16 2014-08-27 キヤノン株式会社 情報処理装置、その処理方法及びプログラム
KR20150036973A (ko) * 2013-09-30 2015-04-08 삼성전자주식회사 화상 형성 장치 및 그 제어 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0470782B1 (en) * 1990-08-08 1996-02-14 The Peerless Group Image rendering process and apparatus
EP0634716B1 (en) * 1993-06-15 1999-06-30 Hewlett-Packard Company Low-level direct connect protocol for PCL printers
US5699495A (en) * 1994-07-27 1997-12-16 Microsoft Corporation Point-and-print in a distributed environment
US5774720A (en) * 1995-08-18 1998-06-30 International Business Machines Corporation Personality neutral graphics subsystem
JP3250424B2 (ja) * 1995-08-22 2002-01-28 セイコーエプソン株式会社 印刷方式及び印刷方法
KR100212986B1 (ko) * 1996-06-14 1999-08-02 윤종용 프린터의 이미지 화일 직접 인쇄방법
JP3209102B2 (ja) * 1996-07-19 2001-09-17 セイコーエプソン株式会社 プリントシステム、プリンタドライバ及びプリンタ
US6039426A (en) * 1996-08-09 2000-03-21 Hewlett-Packard Company Simplified print mode selection method and apparatus

Also Published As

Publication number Publication date
EP0935187A3 (en) 2000-08-16
US6734986B1 (en) 2004-05-11
EP0935187A2 (en) 1999-08-11
JPH11327846A (ja) 1999-11-30
EP0935187B1 (en) 2005-04-06
DE69924548D1 (de) 2005-05-12
DE69924548T2 (de) 2006-02-23

Similar Documents

Publication Publication Date Title
JP3689579B2 (ja) 情報処理装置及び情報処理方法、記憶媒体
US8451490B2 (en) Printing control method
US6879409B2 (en) Printing method and apparatus having multiple raster image processors
US6493099B2 (en) Print control apparatus and method
US7423775B2 (en) Information processing apparatus, information processing method, computer readable program and storage medium product storing computer readable program
EP0849701B1 (en) Print control apparatus and print control method
US6509977B1 (en) Printing control system, printing control method and storage medium
US20030231320A1 (en) Image processing method and apparatus
US6025927A (en) Image processing apparatus and method
US6654509B2 (en) Image processing apparatus, method, and system
US20070070403A1 (en) Information processing apparatus, information processing method, and program
US6320667B1 (en) Information processing apparatus and method for transmitting printing information, and recording medium readable by a computer storing a program for transmitting printing information
US6975416B2 (en) Print control apparatus and method
JP2002222070A (ja) 印刷データ処理装置及び印刷制御方法及び印刷制御プログラム
US6310693B1 (en) Printing control apparatus and method, and printing system for reducing processing overhead
US8098385B2 (en) Spool file modifying device
JP4100912B2 (ja) 情報処理装置及びその制御方法、プログラム並びに記憶媒体
JPH11191055A (ja) 印刷システムおよび印刷システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP4467715B2 (ja) 画像出力制御装置及び方法
JP2003173245A (ja) データ処理装置、および、データ処理方法
JP2006031086A (ja) 印刷処理方法
JP2002082783A (ja) 印刷システム
JP2002149361A (ja) 印刷データ処理装置および方法
JP2000218901A (ja) 情報処理装置、情報処理方法及びコンピュータ読み取り可能なプログラムが格納された記憶媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041015

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041015

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20041015

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20041015

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20041015

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20041112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050125

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050613

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080617

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090617

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090617

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100617

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110617

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120617

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120617

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130617

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees