JP3814423B2 - 印刷制御装置及びその制御方法並びにその制御方法をコンピュータに実行させるためのプログラムの記憶媒体 - Google Patents
印刷制御装置及びその制御方法並びにその制御方法をコンピュータに実行させるためのプログラムの記憶媒体 Download PDFInfo
- Publication number
- JP3814423B2 JP3814423B2 JP27916398A JP27916398A JP3814423B2 JP 3814423 B2 JP3814423 B2 JP 3814423B2 JP 27916398 A JP27916398 A JP 27916398A JP 27916398 A JP27916398 A JP 27916398A JP 3814423 B2 JP3814423 B2 JP 3814423B2
- Authority
- JP
- Japan
- Prior art keywords
- copies
- printer driver
- data
- printing
- 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
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Description
【発明の属する技術分野】
本発明は、特に複雑な論理操作により生成された画像等のデータを印刷するように印刷装置を制御することのできる印刷制御装置及びその制御方法並びにその制御方法をコンピュータに実行させるためのプログラムを記憶した記憶媒体に関する。
【0002】
【従来の技術】
従来の画像を編集処理する情報処理装置は、画像編集アプリケーションからOSが有する描画部に対して、描画関数を出力し、描画部でデバイス用に変換されたデータをプリンタドライバに送信し、プリンタドライバでプリンタで解釈可能な印刷データ(PDLデータ)を生成して、プリンタに印刷データを送信している。
【0003】
例えば、市販のOSとしては、マイクロソフト社のWindows(登録商標)シリーズがある。このOSは、描画部としてGDI(Graphic Device Interface)を有しており、GDIに対する描画関数としてGDI関数がアプリケーションから発行される。GDIにおいてデバイス用に変換されたデータはDDI(Device Driver Interface)と呼ばれ、これがプリンタドライバに送信される。
【0004】
また、デジタルイメージデータの編集時に画像の透明度やぼかしなどの複雑な論理描画を行うDTP機能を有する画像編集アプリケーションがある。描画部が解釈できる描画関数にはこのような複雑な論理描画は存在しないので、このような画像編集アプリケーションは、あらかじめ編集されたビットイメージデータを生成し、描画部経由でプリンタドライバに送信する。プリンタドライバでは、解析やPDL生成処理は行わず、イメージモードでプリンタにビットイメージデータを送信している。
【0005】
よって、複雑なDTP機能を有する画像編集アプリケーションで、複数部を一度の印刷開始操作で印刷出力する場合は、アプリケーションで複数のイメージデータを生成して、それぞれのページのイメージデータをプリンタドライバを経由してプリンタに送信していた。
【0006】
【発明が解決しようとする課題】
しかしながら従来のように、複数部印刷時に画像編集アプリケーションで生成した印刷データを複数回に分けてプリンタドライバに出力する処理を行う情報処理装置では、複雑な描画を行った画像はレンダリング処理に時間がかかり、プリンタで印刷出力されるまでに時間がかかってしまうという問題があった。
【0007】
本発明は上記従来例に鑑みて成されたもので、複数部印刷する際に、印刷時間を短縮できる情報処理装置及び方法を提供することを目的とする。
【0008】
また、複雑な画像編集処理を行う情報処理装置において、複数部印刷する際に、印刷処理時間の短縮をはかることを目的とする。
【0009】
さらに、全体的な印刷処理時間だけでなく、1枚目の印刷処理(ファーストプリント)にかかる時間を短縮することを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するために本発明は次のような構成からなる。すなわち、印刷対象のデータの印刷部数を設定する設定手段と、プリンタドライバの能力情報を取得する取得手段と、前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定手段と、前記設定された印刷部数が複数であるか否かを判定する部数判定手段と、前記機能判定手段により前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定手段により印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納手段と、前記記憶媒体から前記キャッシュデータを読み出し、前記プリンタドライバへ転送する転送手段とを備える。
【0012】
あるいは、印刷対象のデータの印刷部数を設定する設定工程と、プリンタドライバの能力情報を取得する取得工程と、前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定工程と、前記設定された印刷部数が複数であるか否かを判定する部数判定工程と、前記機能判定工程にて前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定工程にて印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納工程と、前記記憶媒体から前記格納されたキャッシュデータを読み出し、前記プリンタドライバへ転送する転送工程とを備える。
【0014】
あるいは、コンピュータにより、印刷対象のデータの印刷部数を設定する設定工程と、プリンタドライバの能力情報を取得する取得工程と、前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定工程と、前記設定された印刷部数が複数であるか否かを判定する部数判定工程と、前記機能判定工程にて前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定工程にて印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納工程と、前記記憶媒体から前記格納されたキャッシュデータを読み出し、前記プリンタドライバへ転送する転送工程とを実行させるコンピュータプログラムを記憶したことを特徴とするコンピュータ可読の記憶媒体。
【0016】
【発明の実施の形態】
以下、添付図面を参照しながら本発明の好適な実施の形態を説明する。
【0017】
<装置の説明>
図1は本発明の好適な実施の形態に係る情報処理装置の概略構成を示す図である。
【0018】
図1において、1はCRT(表示装置)であり、その表示画面には、例えば編集中の文書、図形、画像その他の編集情報、アイコン、メッセージ、メニューその他のユーザインターフェース情報が表示される。2はVRAMであり、CRT1の表示画面に表示するための画像が描画される。このVRAM2に生成された画像データは、所定の規定に従ってCRT1に転送され、これによりCRT1に画像が表示される。3はビットムーブユニット(BMU)であり、例えば、メモリ間(例えば、VRAM2と他のメモリ)のデータ転送や、メモリと各I/Oデバイス(例えば、ネットワークインターフェース11)との間のデータ転送を制御する。
【0019】
4はキーボードであり、文書等を入力するための各種キーを有する。5はポインティングデバイスであり、例えば、CRT1の表示画面上に表示されたアイコン、メニューその他のオブジェクトを指示するために使用される。6はCPUであり、ROM7、ハードディスク又はフロッピーディスクに格納された制御プログラムに基づいてCPUデバイスに接続された各デバイスを制御する。7はROMであり、各種の制御プログラムやデータを保持する。
8はRAMであり、CPU6のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。9はハードディスクドライブ(HDD)であり、ハードディスクに対するアクセスを制御する。10はフロッピーディスクドライブ(FDD)であり、フロッピーディスクに対するアクセスを制御する。
【0020】
11はネットワークインターフェイスであり、他の情報処理装置やプリンタ等とネットワーク13を介して通信を行うことができる。12はCPUバスであり、アドレスバス、データバス及びコントロールバスを含む。
【0021】
CPU6に対する制御プログラムの提供は、ROM7、ハードディスク、フロッピーディスクから行うこともできるし、ネットワーク13を介して他の情報処理装置等から行うこともできる。
【0022】
図10は、アプリケーションプログラムを含む制御プログラムを格納したフロッピーディスクのメモリマップの一例を示す図である。なお、制御プログラムを格納したフロッピーディスクやその他のメモリ媒体からメモリにロードされたプログラムをCPU6により実行することで、本発明に係る情報処理装置が構成される。
【0023】
図10において、2000は、ディレクトリ情報を格納する領域であり、モジュール2001〜2002の記憶領域を示す情報を保持している。2001は、アプリケーションプログラムであり、この例では、アプリケーションプログラム2001はオペレータの入力に応じて画像や文書を編集したり、あるいは編集された画像や文書の印刷を制御する。2002は、アプリケーションプログラム2001の実行の際に参照するアプリケーション制御データである。
【0024】
フロッピーディスクに格納されたプログラムやデータは、例えば、ハードディスクドライバ9によりハードディスクに転送することにより、図1に示す情報処理装置に格納することもできる。
【0025】
<印刷制御手順の説明>
次に、アプリケーションプログラム2001に基づく情報処理装置の動作を説明する。
【0026】
まず、アプリケーションプログラム2001とオペレーティングシステム、プリンタドライバの関係について簡単に説明しておく。オペレーティングシステムは、コンピュータの有するメモリやプロセッサ、周辺デバイスといった資源や、プログラムの実行を管理している。また、アプリケーションプログラムに対してオペレーティングシステムに固有の標準的なインターフェースを提供する。
【0027】
例えばプリンタなどの周辺機器には多くの種類があるが、アプリケーションからはOSを介してプリンタを利用することで、アプリケーションからは、オペレーティングシステムに対応したプリンタであればどのようなものであっても利用できる。
【0028】
逆にプリンタの側からは、プリンタドライバによってオペレーティングシステムにプリンタの機能を提供している。このような仕組みにより、プリンタ固有の機能を生かしながら、アプリケーションとのインターフェースの標準化を実現している。
【0029】
図11は、アプリケーションプログラム2001をCPU6により実行することで実現される画像編集処理の手順である。アプリケーションプログラム2001が記憶媒体からメモリにロードされて実行されると、オペレータの指示に応じて画像データが作成されたり、あるいは、デジタルカメラやデジタルビデオカメラ等から入力された画像データが編集される。この編集処理の内容としては、例えば、画像の回転や色調整、複数の画像の合成、文字や図形のオーバーレイなどのほか、画像の調子をぼかしたり、逆にシャープな調子にしたりといった調子を変える処理がある。このほか、画像を写真画像から、筆やスプレイ等で描かれた絵画調に変換したり、デッサン調にしたり、画像が凹凸のある素材の上に描かれているかのような質感を付与するといったアート処理と呼ばれる処理等も可能となっている。
【0030】
ステップS1101では、この編集処理や後述する印刷処理を行うための、オペレータからの入力を受け付ける。オペレータによる入力は、キーボードからのコマンド入力のほか、ポインティングデバイスによる位置の指定やメニュー項目の選択により行われる。ステップS1102では、ステップS1101で入力されたコマンドやメニュー項目が印刷指示であるか判定する。印刷指示でなければ、指示の内容をさらに解析して指示された編集処理を編集対象の画像データに対して施す(ステップS1104)。オペレータが編集を行い続ける限り、ステップS1101→S1102→S1104の処理ループは繰り返される。
【0031】
一方、印刷指示が入力された場合には、図2に示した印刷用のダイアログボックスを表示し、後述する図4,5,6,8,9等に示した印刷制御手順を実行する(ステップS1105)。
【0032】
図2は、アプリケーションプログラム2001で操作者が印刷機能を選択すると表示される印刷ダイアログボックス201を示した図である。この印刷ダイアログボックス201には、印刷部数の入力項目101及び、複数部印刷時にページ単位でまとめて印刷するか、部単位でまとめて印刷するかを指定する項目103及び実際に印刷の実行を指示するボタン102が含まれている。
【0033】
操作者が印刷を行う際には、まず図11で説明した手順で印刷ダイアログボックスを表示させ、項目101にて印刷部数を入力し、項目103で、部単位にまとめて印刷するか、ページごとにまとめて印刷するかを指示する。ボタン102をクリックするなどして印刷を指示する。
【0034】
次に本発明の処理手順をフローチャートを参照しながら説明する。図3は、アプリケーションプログラム2001による印刷処理の一部を示すフローチャートである。このアプリケーションプログラム2001は、例えば、フロッピーディスクドライブ10を介してRAM8のロード領域に転送されCPU6に提供される。
【0035】
図3に示す処理は、図11のステップS1105により、アプリケーションプログラム2001の印刷ダイアログボックス表示直後に起動される。
【0036】
まず、ステップS501で操作者の入力を待ち、操作者により何らかの入力があった場合に、ステップS502にて、それが部数指定入力かどうかを調べる。部数指定入力であったならば、ステップS503にて入力された部数値を記憶領域Nに記憶し、ステップS501にて操作者の次の入力を待つ。
【0037】
ステップS502にて部数指定入力でないと判断された場合には、ステップS504にて操作者がOKボタン102がクリックされたか、すなわち、印刷開始が指示されたかどうかを調べる。印刷開始が指示されたのでなければステップS501に戻る。印刷開始が指示された場合は、ステップS505にて先に記憶領域Nに記憶された印刷部数が1より大きいか否かを調べる。記憶領域Nに記憶された値が1より大きくない場合は、すなわち出力部数が1部の場合には、ステップS506にて印刷するデータをレンダリングしてプリンタドライバに転送し、印刷処理を終了する。この場合、図11のステップ1101へ戻って、画像編集処理が続行される。オペレータはさらに画像編集を行ってもよいし、所定のコマンド入力やメニュー操作によりアプリケーションの実行そのものを終了させることもできる。
【0038】
ステップS505にて記憶領域Nが1より大きい場合、すなわち複数部印刷の場合には、ステップS507にて印刷するデータをレンダリングしてイメージデータを作成しておく。作成されたイメージデータは、データが小さくメモリ容量に余裕があればRAM8に記憶してもよいが、通常はサイズが大きいために、ハードディスクにキャッシュデータ用のファイルを作成して格納しておく。なお、ステップ507で作成されてキャッシュファイルに格納されるイメージデータをキャッシュデータと呼ぶ。
【0039】
次にステップS508にてキャッシュデータを読み出してプリンタドライバに転送する。
【0040】
ステップS509では、記憶領域Nに記憶された印刷部数分の処理(ドライバへの転送)が終了したかを調べる。全部数分の処理が終了していなければステップS508へ戻って、繰り返しキャッシュデータをプリンタドライバに転送する。全部数分の処理が終了したならば終了する。このとき、不要になったキャッシュデータを削除する。ここでもステップS506の場合と同様に、画像編集処理に戻る。
【0041】
以上のように、印刷部数が複数部の場合に、データのレンダリング結果をキャッシュデータとして保存し、それを繰り返しプリンタドライバに転送することで複数部の印刷を実現する。これにより、データのレンダリングを1回で済ませることができるため、全部数分レンダリングを行う場合に比べて印刷時間を短縮することができる。
【0042】
また、画像のレンダリングという一般的には非常にプロセッサに高負荷を与える処理を1回で済ませることができるために、オペレーティングシステムとしてマルチタスクオペレーティングシステムを用いている場合には特に、並行して実行されている他のプログラムの実行を妨げることがない。
【0043】
また、プリンタドライバが複数部の印刷を行う機能を有しているか否かに関わらず、複数部の文書を印刷することができる。このため、どのようなプリンタを用いていても複数部の印刷が可能である。
【0044】
[第2の実施の形態]
以下に、上記の実施の形態の改良例である第2の実施の形態の情報処理装置による印刷制御手順を示す。この改良例では、プリンタドライバが複数部印刷機能を有している場合には、プリンタドライバの機能を用いて複数部印刷を実現する。図4は、本実施形態の印刷制御手順を示すフローチャートである。このフローチャートは、図3と同じく、図11のステップS1105に引き続き実行される。
【0045】
まず、ステップS601で操作者の入力を待ち、操作者により何らかの入力があった場合に、ステップS602にて、それが部数指定入力かどうかを調べる。部数指定入力であったならば、ステップS603にて入力された部数値を記憶領域Nに記憶し、ステップS601にて操作者の次の入力まで待つ。
【0046】
ステップS602にて部数指定入力でないと判断された場合には、ステップS604にて操作者がOKボタン102がクリックされたか、すなわち、印刷開始が指示されたかどうかを調べる。印刷開始が指示されたのでなければステップS601に戻る。印刷開始が指示された場合はステップS605にてプリンタドライバの能力を取得する。第1の実施形態で説明したとおり、プリンタドライバの機能は、オペレーティングシステムを介してアプリケーションに提供される。そのため、ステップS605では、オペレーティングシステムに対して所定のファンクション呼出し等の手続きを行うことで、プリンタドライバの能力を取得する。
【0047】
次いで、ステップS606にて、取得したプリンタドライバの能力よりプリンタドライバが複数部印刷機能を有しているか否かを調べる。プリンタドライバが複数部印刷機能を有しているならば、ステップS607にてプリンタドライバに印刷部数を設定し、ステップS608にてデータをレンダリングしてプリンタドライバに転送し、印刷制御処理を終了する。この後は、再び画像編集処理に戻る。
【0048】
プリンタドライバが複数部印刷機能を有していないならば、ステップ609にて、先に記憶領域Nに記憶された印刷部数が1より大きいか否かを調べる。記憶領域Nが1より大きくない場合、すなわち印刷部数が1部の場合は、ステップS608にて印刷するデータをレンダリングしてプリンタドライバに転送し、終了する。
【0049】
ステップS609にて記憶領域Nが1より大きい場合、すなわち複数部印刷の場合は、ステップS610にて印刷するデータをレンダリングしてキャッシュデータを作成し、ハードディスク等に用意されたキャッシュ領域に格納する。次にステップS611にてキャッシュデータをプリンタドライバに転送する。
【0050】
ステップS612では、記憶領域Nに記憶された印刷部数分の処理が終了したかを調べる。全部数分の処理が終了していなければステップS611へ戻り、続いてキャッシュデータをプリンタドライバに転送する。全部数分の処理が終了したならば印刷制御処理を終了する。このとき、不要になったキャッシュデータを削除する。
【0051】
以上のように、本実施形態の情報処理装置も、第1の実施形態と同様の効果を奏する。それに加えて、プリンタドライバが複数部印刷機能を有している場合には、プリンタドライバの機能を用いて複数部印刷を行う機能を設けることにより、アプリケーションプログラム2001とプリンタドライバとの間のデータ転送を1回で済ませることが可能となり、印刷時間を短縮することができる。このとき、プリンタにハードディスク等が用意され、そちらがプリンタドライバに転送されたイメージデータの格納に用いられる場合には、情報処理装置本体のハードディスク等の容量を消費せずに済む。
【0052】
[第3の実施の形態]
以下に、上記の実施の形態の改良例である第3の実施の形態の情報処理装置による印刷制御手順を示す。第3の実施の形態では、複数部印刷の第1部目はキャッシュデータを作成せずにレンダリング結果をそのままプリンタドライバに転送し、印刷部数が3部以上の場合にキャッシュデータを作成して複数部印刷を行う。こうすることによって、第1部目を印刷する際には、作成したイメージデータをキャッシュデータファイルに格納するための時間を短縮でき、ファーストプリントを高速化できる。
【0053】
図5は、図4に示す処理の改良例を示すフローチャートであり、図4のステップS604にて印刷開始と判断された場合以降の処理について特に示したものである。この場合印刷部数は記憶領域Nに格納されているものとして説明する。
【0054】
ステップS701では、ステップS605と同様にしてプリンタドライバの能力を取得する。次いで、ステップS702にて、取得したプリンタドライバの能力より、プリンタドライバが複数部印刷機能を有しているか否かを調べる。プリンタドライバが複数部印刷機能を有しているならば、ステップS703にてプリンタドライバに印刷部数を設定し、ステップS704にてデータをレンダリングしてプリンタドライバに転送し、印刷制御処理を終了する。この場合にも、画像の編集に戻る。
【0055】
プリンタドライバが複数部印刷機能を有していないならば、ステップ705にて、先に記憶領域Nに記憶された印刷部数が1より大きいか否か、すなわち複数部印刷かを調べる。記憶領域Nに記憶された値が1より大きくない場合、すなわち印刷部数が1部の場合には、ステップS704にて印刷するデータをレンダリングしてプリンタドライバに転送し、印刷制御処理を終了する。
【0056】
ステップS705にて記憶領域Nの値が1より大きい場合は、ステップS706にて第1部目として印刷するデータをレンダリングしてプリンタドライバに転送する。プリンタドライバはこの時点から印刷を開始することができる。
【0057】
次に、ステップS707にて印刷部数が2より大きいか否かを調べる。印刷部数が2以下の場合はデータをキャッシュする必要がないためにステップS704にて第2部目として印刷するデータをレンダリングしてプリンタドライバに転送し、終了する。
【0058】
印刷部数が2より大きい場合は、ステップS708にて印刷するデータをレンダリングしてキャッシュデータを作成し、ハードディスク等に用意されたキャッシュ領域に格納する。次いでステップS709にて、先に作成したキャッシュデータをプリンタドライバに転送する。ステップS710では、(N−1)部分のキャッシュデータの転送処理を行ったか否かを調べる。N部ではなく(N−1)部であるのは、先にステップS706にて第1部分のデータ転送は終了しているためである。
【0059】
印刷部数(N−1)部のキャッシュデータの転送処理が終了していなければ、ステップS709へ戻って続いてキャッシュデータをプリンタドライバに転送する。印刷部数(N−1)部分のキャッシュデータの転送処理が終了したならば終了する。このとき、不要になったキャッシュデータを削除する。
【0060】
以上のように、複数部印刷の第1部目はキャッシュデータを作成しないで、レンダリング結果をそのままプリンタドライバに転送する。そして、印刷部数が2より大きい場合にキャッシュデータを作成し、複数部印刷を行う。こうすることにより、第1部目で印刷キャッシュデータを作成する場合と比べて、第1部目のイメージデータのプリンタドライバへの転送が早く行われる。このため、プリンタドライバ側では1枚目の印刷をより早く行える。
【0061】
この場合、1部目を印刷している間に2部目以降のデータの生成を行えるので、第2部目のイメージデータ及びキャッシュデータの生成により印刷処理が遅延することはない。
【0062】
[第4の実施の形態]
以下に、上記の実施の形態の改良例である第4の実施の形態の情報処理装置による印刷制御手順を示す。この第4の実施の形態では、アプリケーションは、マルチプロセスが並列に動作するオペレーティングシステムの下で実行される。そして、印刷処理は、画像編集のアプリケーションから、それとは別の印刷プロセスを起動することで行われる。印刷プロセスは、画像編集アプリケーションから独立した実行可能なプログラムであり、例えば実行形式ファイルとしてアプリケーションプログラムとともに供給される。図6及び図7は、それぞれ画像処理アプリケーションプログラムと、それとは別プロセスとして実行される印刷制御プログラムのフローチャートである。
【0063】
図6において、ステップS801で操作者の入力を待ち、操作者により何らかの入力があった場合に、ステップS802にて、それが部数指定入力かどうかを調べる。部数指定入力であったならば、S803にて入力された部数値を記憶領域Nに記憶し、ステップS801にて操作者の次の入力まで待機する。
【0064】
ステップS802にて部数指定入力でないと判断された場合には、ステップS804にて操作者がOKボタン102がクリックされたか、すなわち、印刷開始が指示されたかどうかを調べる。印刷開始が指示されたのでなければステップS801に戻る。印刷開始が指示された場合はステップS805にて印刷対象の文書名と印刷部数をパラメータとして印刷プロセスを起動し、印刷制御終了する。ここで、アプリケーションは再び画像編集に戻る。印刷処理は別プロセスである印刷プロセスが行うため、アプリケーションプログラム2001は、第1〜第3の実施の形態のように、イメージデータを生成したりキャッシュしたりする手間をかけずに、すぐに別の編集操作を行うことができる。
【0065】
図7は印刷プロセスのフローチャートであり、図6のステップS805にて印刷プロセスが起動されると処理が開始される。ステップS851ではパラメータとして渡された印刷対象文書名をもとに印刷する文書データを開き、ステップS852ではパラメータとして渡された印刷部数を記憶領域Nに格納する。ステップS853では、プリンタドライバの能力を取得する。次いで、ステップS854にて取得したプリンタドライバの能力よりプリンタドライバが複数部印刷機能を有しているか否かを調べる。プリンタドライバが複数部印刷機能を有しているならば、ステップS855にてプリンタドライバに印刷部数を設定し、ステップS856にてデータをレンダリングしてプリンタドライバに転送し、終了する。印刷プロセスは印刷制御処理を終了すると消滅する。
【0066】
プリンタドライバが複数部印刷機能を有していないならば、ステップ857にて、先に記憶領域Nに記憶された印刷部数が1より大きいか否かを調べる。記憶領域Nが1より大きくない場合、すなわち印刷部数が1部の場合には、ステップS856にて印刷するデータをレンダリングしてプリンタドライバに転送し、終了する。
【0067】
ステップS857にて記憶領域Nの値が1より大きい場合は、ステップS858にて印刷するデータをレンダリングして第1部目のイメージデータを作成し、プリンタドライバに転送する。そしてステップS859で、印刷すべき部数が2部より多いか判定し、2部であればステップS856でデータをレンダリングしてプリンタドライバにそのデータを転送し、印刷プロセスは終了する。
【0068】
一方、印刷部数が3部以上であれば、ステップS860にて印刷するデータをレンダリングしてキャッシュデータを作成し、ハードディスク等に用意されたキャッシュ領域格納する。次にステップS861にてキャッシュデータを読み出してプリンタドライバに転送する。
【0069】
ステップS862では、(N−1)部分の処理が終了したかを調べる。印刷部数(N−1)部の処理が終了していなければステップS861へ戻って、続いてキャッシュデータをプリンタドライバに転送する。印刷部数(N−1)部分の処理が終了したならば印刷制御処理は終了する。このとき、不要になったキャッシュデータを削除する。
【0070】
以上のように、本実施形態の情報処理装置は、請求項1〜3と同様の効果を有する。それに加えて、印刷処理を別の印刷プロセスを起動して行うことにより、印刷と並行してアプリケーションプログラム2001の編集を継続することができる。しかも印刷プロセスは高負荷のイメージデータの生成処理をせいぜい2部分しか行わないため、印刷処理中にアプリケーションプログラム2001を並列に実行しても、その処理の進行を妨げにくい。
【0071】
[第5の実施の形態]
以下に、第5の実施の形態の情報処理装置による印刷制御手順を示す。この実施形態では、データをレンダリングして作成したデータを圧縮してキャッシュし、キャッシュデータを読み出して伸長(復元)してからプリンタドライバに転送する。図8は、本実施形態におけるアプリケーションの印刷制御手順のフローチャートであり、図3のステップS504までは図3と共通なため省略し、ステップS504にて印刷開始と判断した場合以降の処理について示してある。この場合、印刷部数は記憶領域Nに格納されているものとして説明する。
【0072】
ステップ901では、先に記憶領域Nに記憶された印刷部数が1より大きいか否か、すなわち印刷部数が複数部であるかを調べる。記憶領域Nの値が1より大きくない場合、すなわち印刷部数が1部の場合は、ステップS904にて印刷するデータをレンダリングしてプリンタドライバに転送し、終了する。これによりアプリケーションプログラムは画像編集処理に戻る。
【0073】
ステップS901にて記憶領域Nの値が1より大きい場合は、ステップS902にて印刷するデータをレンダリングして第1部目のイメージデータを作成し、プリンタドライバに転送する。そしてステップS903で、印刷すべき部数が2部より多いか判定し、2部であればステップS904で第2部目のためのデータをレンダリングしてプリンタドライバにそのデータを転送し、印刷プロセスは終了する。
【0074】
一方、印刷部数が3部以上であれば、ステップS905にて印刷するデータをレンダリングしてキャッシュデータを作成する。次いでステップS906にて作成したキャッシュデータをページ単位に圧縮し、ハードディスク等に用意されたキャッシュ領域に格納する。続いてステップS907にて圧縮されたキャッシュデータを読み出して伸長し、元のイメージデータを作成し、ステップS908にてキャッシュデータをプリンタドライバに転送する。
【0075】
ステップS909では、印刷部数(N−1)部分の処理が終了したかを調べる。(N−1)部分の処理が終了していなければステップS905へ戻って続いてキャッシュデータをプリンタドライバに転送する。(N−1)部数分の処理が終了したならば印刷制御処理を終了する。このとき、不要になったキャッシュデータを削除する。また、アプリケーションは画像編集処理に戻る。
【0076】
以上のように、本実施形態では、第1〜第4の実施形態の効果を有する。それに加えて、印刷キャッシュデータを圧縮して保存することにより、印刷中におけるハードディスクなどキャッシュに利用される記憶領域を節約することができる。レンダリングされたデータはビットマップ形式のデータのため、圧縮方式として非可逆圧縮方式を用いれば圧縮の効果は非常に大きい。データの内容にも依存するが、圧縮前のデータをそのまま格納する場合に比べて、キャッシュ領域のサイズを例えば数分の1から10数分の1程度に圧縮することも可能である。
【0077】
[第6の実施の形態]
以下に、第6の実施形態の情報処理装置による印刷制御手順を示す。この実施形態では、印刷対象文書が複数のページを有していて、部単位の印刷が指定された場合に、各ページ毎にキャッシュデータを作成して印刷を行う。部単位の印刷の指定は、図2の設定項目103にて行う。図9は、本実施形態のフローチャートであり、図4のステップS604にて印刷開始と判断した場合以降の処理について特に示している。この場合、印刷部数は記憶領域Nに格納されているものとして説明する。
【0078】
ステップS1001では、プリンタドライバの能力を取得する。次いで、ステップS1002にて取得したプリンタドライバの能力より、プリンタドライバが複数部印刷機能を有しているか否かを調べる。プリンタドライバが複数部印刷機能を有しているならば、ステップS1003にてプリンタドライバに印刷部数を設定し、ステップS1004にてデータをレンダリングしてプリンタドライバに転送し、終了する。
【0079】
プリンタドライバが複数部印刷機能を有していないならば、ステップ1005にて、先に記憶領域Nに記憶された印刷部数が1より大きいか否かを調べる。記憶領域Nの値が1より大きくない場合は、ステップS1004にて印刷するデータをレンダリングしてプリンタドライバに転送し、終了する。
【0080】
ステップS1005にて記憶領域Nの値が1より大きい場合、すなわち印刷部数が複数部の場合は、ステップS1006で、データをページ数分レンダリングして第1部目のイメージデータを作成してプリンタドライバに転送する。そしてステップS1007で、印刷すべき部数が2部より多いか判定し、2部で以下であればステップS1004でデータをレンダリングしてプリンタドライバにそのデータを転送し、印刷プロセスは終了する。
【0081】
次にステップS1008にて現在の印刷対象ページ用のキャッシュデータが作成済か否かを調べる。キャッシュデータが作成済でなければステップS1009にて現在の印刷対象ページをレンダリングしてキャッシュデータを作成し、それを圧縮してハードディスク等に用意されたキャッシュ領域に格納する。キャッシュデータの作成後、あるいは既に作成済みの場合には、ステップS1010にてキャッシュデータを読出し、伸長してプリンタドライバに転送する。
【0082】
ステップS1011では、1部分のすべてのページをプリンタドライバに送信したか否かを調べ、終了していなければステップS1008に戻り、次のページを印刷させる。すべてのページに対して処理を行ったならば、ステップS1012にて、記憶領域Nに記憶された(印刷部数−1)部分の処理が終了したかを調べる。(N−1)部数分の処理が終了していなければステップS1006へ戻り、次の部の最初のページを印刷させる。(N−1)部数分の処理が終了したならば印刷制御処理を終了し、画像編集処理に戻る。このとき、キャッシュデータを削除しておく。
【0083】
以上のように、印刷対象文書が複数のページを有していて、部単位の印刷が指定された場合に、各ページ毎にキャッシュデータを作成して印刷を行うことにより、データのレンダリングを各ページ1回ずつで済ませることが可能となり、印刷時間を短縮することができる。
【0084】
さらに、前述した第1〜第5の実施形態の効果も同様に得ることができる。
【0085】
【他の実施形態】
なお、本発明は、複数の機器(例えばホストコンピュータ,インタフェイス機器,リーダ,プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用してもよい。
【0086】
また、本発明の目的は、前述した実施形態の機能を実現する、図11の画像編集や図3〜図9に示した印刷制御の手順を実現するためのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
【0087】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0088】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0089】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0090】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0091】
【発明の効果】
以上説明したように、印刷部数が複数部の場合に、データのレンダリング結果をキャッシュデータとして保存し、それを繰り返しプリンタドライバに転送することでデータのレンダリングを1回で済ませることができ印刷時間を短縮することができる。
【0092】
また、画像生成処理を1回乃至2回で済ませることができるために、並行して実行されている他のプログラムの実行を妨げることがない。
【0093】
また、プリンタドライバが複数部の印刷を行う機能を有しているか否かに関わらず、複数部の文書を印刷することができる。
【0094】
また、プリンタドライバが複数部印刷機能を有している場合には、プリンタドライバの機能を用いて複数部印刷を行う機能を設けることにより、プリンタドライバへのデータ転送を1回で済ませることが可能となり、印刷時間を短縮することができる。
【0095】
また、複数部印刷の第1部目はキャッシュデータを作成しないで、レンダリング結果をそのままプリンタドライバに転送することにより、1枚目の印刷をより早く行える。
【0096】
また、印刷制御処理をアプリケーションとは別の印刷プロセスを起動して行うことにより、印刷と並行してアプリケーションプログラムを実行することができる。印刷プロセスは画像生成処理をせいぜい2部分しか行わないため、並列して実行されるプログラムの処理の進行が妨げられない。
【0097】
また、印刷キャッシュデータを圧縮して保存することにより、印刷中におけるハードディスクなどキャッシュに利用される記憶領域を節約することができる。
【0098】
また、複数のページを有する文書の部単位の印刷が指定された場合に、各ページ毎にキャッシュデータを作成して印刷を行うことにより、データのレンダリングを各ページ1回ずつで済ませることが可能となり、印刷時間を短縮することができる。
【0099】
【図面の簡単な説明】
【図1】本発明の一実施例による文書作成装置の概略構成を示すブロック図である。
【図2】表示画面の一例を示す図である。
【図3】第1の実施の形態のアプリケーションプログラムによる処理の一部(印刷制御)を示すフローチャートである。
【図4】第2の実施の形態のアプリケーションプログラムによる処理の一部(印刷制御)を示すフローチャートである。
【図5】第3の実施の形態のアプリケーションプログラムによる処理の一部(印刷制御)を示すフローチャートである。
【図6】第4の実施の形態のアプリケーションプログラムによる処理の一部(印刷制御)を示すフローチャートである。
【図7】第4の実施の形態の印刷プロセスによる処理を示すフローチャートである。
【図8】第5の実施の形態のアプリケーションプログラムによる処理の一部(印刷制御)を示すフローチャートである。
【図9】第6の実施の形態のアプリケーションプログラムによる処理の一部(印刷制御)を示すフローチャートである。
【図10】制御プログラムを格納したフロッピーディスクのメモリマップの一例を示す図である。
【図11】アプリケーションプログラムによる処理の一部(画像編集)を示すフローチャートである。
【符号の説明】
1はCRT、2はビデオRAM、3はBMU、4はキーボード、5はポインティングデバイス、6はCPU、7はROM、8は作業用のRAM、9はハードディスク、10はフロッピィディスク、11はネットワークインターフェース、12はI/Oバスである。
Claims (6)
- 印刷対象のデータの印刷部数を設定する設定手段と、
プリンタドライバの能力情報を取得する取得手段と、
前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定手段と、
前記設定された印刷部数が複数であるか否かを判定する部数判定手段と、
前記機能判定手段により前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定手段により印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納手段と、
前記記憶媒体から前記キャッシュデータを読み出し、前記プリンタドライバへ転送する転送手段と
を備えることを特徴とする印刷制御装置。 - 前記転送手段による転送は、前記指定された印刷部数分繰り返し行われ、
前記転送手段による転送が終了すると、前記記憶媒体から前記キャッシュデータを削除する削除手段をさらに備えることを特徴とする請求項1記載の印刷制御装置。 - 印刷対象のデータの印刷部数を設定する設定工程と、
プリンタドライバの能力情報を取得する取得工程と、
前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定工程と、
前記設定された印刷部数が複数であるか否かを判定する部数判定工程と、
前記機能判定工程にて前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定工程にて印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納工程と、
前記記憶媒体から前記格納されたキャッシュデータを読み出し、前記プリンタドライバへ転送する転送工程と
を備えることを特徴とする印刷制御装置の制御方法。 - 前記転送工程における転送は、前記指定された印刷部数分繰り返し行われ、
前記転送工程における転送が終了すると、前記記憶媒体から前記キャッシュデータを削除する削除工程をさらに備えることを特徴とする請求項3記載の印刷制御装置の制御方法。 - コンピュータにより、
印刷対象のデータの印刷部数を設定する設定工程と、
プリンタドライバの能力情報を取得する取得工程と、
前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定工程と、
前記設定された印刷部数が複数であるか否かを判定する部数判定工程と、
前記機能判定工程にて前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定工程にて印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納工程と、
前記記憶媒体から前記格納されたキャッシュデータを読み出し、前記プリンタドライバへ転送する転送工程と
を実行させるコンピュータプログラムを記憶したことを特徴とするコンピュータ可読の記憶媒体。 - 前記転送工程における転送は、前記指定された印刷部数分繰り返し行われ、
前記転送工程における転送が終了すると、前記記憶媒体から前記キャッシュデータを削除する削除工程をさらに実行させるコンピュータプログラムを記憶したことを特徴とする請求項5記載のコンピュータ可読の記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27916398A JP3814423B2 (ja) | 1998-09-30 | 1998-09-30 | 印刷制御装置及びその制御方法並びにその制御方法をコンピュータに実行させるためのプログラムの記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27916398A JP3814423B2 (ja) | 1998-09-30 | 1998-09-30 | 印刷制御装置及びその制御方法並びにその制御方法をコンピュータに実行させるためのプログラムの記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000112703A JP2000112703A (ja) | 2000-04-21 |
JP3814423B2 true JP3814423B2 (ja) | 2006-08-30 |
Family
ID=17607337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27916398A Expired - Fee Related JP3814423B2 (ja) | 1998-09-30 | 1998-09-30 | 印刷制御装置及びその制御方法並びにその制御方法をコンピュータに実行させるためのプログラムの記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3814423B2 (ja) |
-
1998
- 1998-09-30 JP JP27916398A patent/JP3814423B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000112703A (ja) | 2000-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3950657B2 (ja) | 情報処理システム及びその表示方法、プログラム、並びに記録媒体 | |
JP2005269629A (ja) | 印刷システムと印刷制御方法と印刷システムのプログラム | |
JP2000242597A (ja) | デバイス装置に対する出力設定を行う情報処理装置、情報処理方法及びプログラムを格納した記憶媒体 | |
US7761433B2 (en) | Document processing apparatus, method and program | |
US7145688B2 (en) | Storage medium holding program and information processing apparatus and information processing method | |
JPH11177788A (ja) | 印刷制御方法および印刷装置 | |
JP4124898B2 (ja) | 情報処理システム、情報処理装置及びその方法 | |
US20040054983A1 (en) | Information processing apparatus, information providing apparatus, information processing system, information processing method, program, and recording medium | |
JP3814423B2 (ja) | 印刷制御装置及びその制御方法並びにその制御方法をコンピュータに実行させるためのプログラムの記憶媒体 | |
JP4799253B2 (ja) | 情報処理装置及びその処理方法 | |
JP2007200064A (ja) | 情報処理装置、設定処理方法、記憶媒体、プログラム | |
JP2003177905A (ja) | 情報処理装置、情報処理システム、印刷制御方法、記憶媒体、及びプログラム | |
JP3715749B2 (ja) | 画像処理システム及び画像処理方法 | |
JP4006312B2 (ja) | 情報処理装置、その制御方法、記憶媒体、及び制御プログラム | |
JP2006163774A (ja) | 複数画像処理システム | |
JP2002183120A (ja) | 印刷システム、情報処理装置及びそれらの編集方法 | |
JP2019067347A (ja) | 情報処理装置およびその制御方法、並びにプログラム | |
JPH08153095A (ja) | 画像管理編集システム | |
JP3507353B2 (ja) | オーバレイ印刷制御方法及び装置及びコンピュータ読取り可能なプログラムが格納された記憶媒体 | |
JP4006124B2 (ja) | 情報処理システム、情報処理装置及びその制御方法、記録媒体 | |
JP4006123B2 (ja) | 情報処理システム、情報処理装置及びその制御方法、記録媒体 | |
JP2006343877A (ja) | 印刷システム、制御方法、及びプログラム | |
JP2005182476A (ja) | ファイリングシステムおよびファイリング方法およびプログラムおよび記録媒体 | |
JP2000076472A (ja) | プログラム記憶媒体 | |
JP2002192795A (ja) | 印刷処理装置、印刷処理方法、情報処理装置、プリンタドライバおよび記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050204 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050826 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051025 |
|
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: 20060522 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060605 |
|
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: 20090609 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100609 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110609 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120609 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120609 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130609 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |