(57)【特許請求の範囲】
【請求項１】
印刷対象のデータの印刷部数を設定する設定手段と、
プリンタドライバの能力情報を取得する取得手段と、
前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定手段と、
前記設定された印刷部数が複数であるか否かを判定する部数判定手段と、
前記機能判定手段により前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定手段により印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納手段と、
前記記憶媒体から前記キャッシュデータを読み出し、前記プリンタドライバへ転送する転送手段と
を備えることを特徴とする印刷制御装置。
【請求項２】
前記転送手段による転送は、前記指定された印刷部数分繰り返し行われ、
前記転送手段による転送が終了すると、前記記憶媒体から前記キャッシュデータを削除する削除手段をさらに備えることを特徴とする請求項１記載の印刷制御装置。
【請求項３】
印刷対象のデータの印刷部数を設定する設定工程と、
プリンタドライバの能力情報を取得する取得工程と、
前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定工程と、
前記設定された印刷部数が複数であるか否かを判定する部数判定工程と、
前記機能判定工程にて前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定工程にて印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納工程と、
前記記憶媒体から前記格納されたキャッシュデータを読み出し、前記プリンタドライバへ転送する転送工程と
を備えることを特徴とする印刷制御装置の制御方法。
【請求項４】
前記転送工程における転送は、前記指定された印刷部数分繰り返し行われ、
前記転送工程における転送が終了すると、前記記憶媒体から前記キャッシュデータを削除する削除工程をさらに備えることを特徴とする請求項３記載の印刷制御装置の制御方法。
【請求項５】
コンピュータにより、
印刷対象のデータの印刷部数を設定する設定工程と、
プリンタドライバの能力情報を取得する取得工程と、
前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定工程と、
前記設定された印刷部数が複数であるか否かを判定する部数判定工程と、
前記機能判定工程にて前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定工程にて印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納工程と、
前記記憶媒体から前記格納されたキャッシュデータを読み出し、前記プリンタドライバへ転送する転送工程と
を実行させるコンピュータプログラムを記憶したことを特徴とするコンピュータ可読の記憶媒体。
【請求項６】
前記転送工程における転送は、前記指定された印刷部数分繰り返し行われ、
前記転送工程における転送が終了すると、前記記憶媒体から前記キャッシュデータを削除する削除工程をさらに実行させるコンピュータプログラムを記憶したことを特徴とする請求項５記載のコンピュータ可読の記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、特に複雑な論理操作により生成された画像等のデータを印刷するように印刷装置を制御することのできる印刷制御装置及びその制御方法並びにその制御方法をコンピュータに実行させるためのプログラムを記憶した記憶媒体に関する。
【０００２】
【従来の技術】
従来の画像を編集処理する情報処理装置は、画像編集アプリケーションからＯＳが有する描画部に対して、描画関数を出力し、描画部でデバイス用に変換されたデータをプリンタドライバに送信し、プリンタドライバでプリンタで解釈可能な印刷データ（ＰＤＬデータ）を生成して、プリンタに印刷データを送信している。
【０００３】
例えば、市販のＯＳとしては、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）シリーズがある。このＯＳは、描画部としてＧＤＩ(Graphic Device Interface)を有しており、ＧＤＩに対する描画関数としてＧＤＩ関数がアプリケーションから発行される。ＧＤＩにおいてデバイス用に変換されたデータはＤＤＩ(Device Driver Interface)と呼ばれ、これがプリンタドライバに送信される。
【０００４】
また、デジタルイメージデータの編集時に画像の透明度やぼかしなどの複雑な論理描画を行うＤＴＰ機能を有する画像編集アプリケーションがある。描画部が解釈できる描画関数にはこのような複雑な論理描画は存在しないので、このような画像編集アプリケーションは、あらかじめ編集されたビットイメージデータを生成し、描画部経由でプリンタドライバに送信する。プリンタドライバでは、解析やＰＤＬ生成処理は行わず、イメージモードでプリンタにビットイメージデータを送信している。
【０００５】
よって、複雑なＤＴＰ機能を有する画像編集アプリケーションで、複数部を一度の印刷開始操作で印刷出力する場合は、アプリケーションで複数のイメージデータを生成して、それぞれのページのイメージデータをプリンタドライバを経由してプリンタに送信していた。
【０００６】
【発明が解決しようとする課題】
しかしながら従来のように、複数部印刷時に画像編集アプリケーションで生成した印刷データを複数回に分けてプリンタドライバに出力する処理を行う情報処理装置では、複雑な描画を行った画像はレンダリング処理に時間がかかり、プリンタで印刷出力されるまでに時間がかかってしまうという問題があった。
【０００７】
本発明は上記従来例に鑑みて成されたもので、複数部印刷する際に、印刷時間を短縮できる情報処理装置及び方法を提供することを目的とする。
【０００８】
また、複雑な画像編集処理を行う情報処理装置において、複数部印刷する際に、印刷処理時間の短縮をはかることを目的とする。
【０００９】
さらに、全体的な印刷処理時間だけでなく、１枚目の印刷処理（ファーストプリント）にかかる時間を短縮することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために本発明は次のような構成からなる。すなわち、印刷対象のデータの印刷部数を設定する設定手段と、プリンタドライバの能力情報を取得する取得手段と、前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定手段と、前記設定された印刷部数が複数であるか否かを判定する部数判定手段と、前記機能判定手段により前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定手段により印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納手段と、前記記憶媒体から前記キャッシュデータを読み出し、前記プリンタドライバへ転送する転送手段とを備える。
【００１２】
あるいは、印刷対象のデータの印刷部数を設定する設定工程と、プリンタドライバの能力情報を取得する取得工程と、前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定工程と、前記設定された印刷部数が複数であるか否かを判定する部数判定工程と、前記機能判定工程にて前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定工程にて印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納工程と、前記記憶媒体から前記格納されたキャッシュデータを読み出し、前記プリンタドライバへ転送する転送工程とを備える。
【００１４】
あるいは、コンピュータにより、印刷対象のデータの印刷部数を設定する設定工程と、プリンタドライバの能力情報を取得する取得工程と、前記取得された能力情報に基づき、前記プリンタドライバが複数部印刷機能を有するかどうかを判定する機能判定工程と、前記設定された印刷部数が複数であるか否かを判定する部数判定工程と、前記機能判定工程にて前記プリンタドライバが複数部印刷機能を有さないと判定され、前記部数判定工程にて印刷部数が複数であると判定されれば、前記印刷対象のデータからキャッシュデータを作成し、記憶媒体に格納する格納工程と、前記記憶媒体から前記格納されたキャッシュデータを読み出し、前記プリンタドライバへ転送する転送工程とを実行させるコンピュータプログラムを記憶したことを特徴とするコンピュータ可読の記憶媒体。
【００１６】
【発明の実施の形態】
以下、添付図面を参照しながら本発明の好適な実施の形態を説明する。
【００１７】
＜装置の説明＞
図１は本発明の好適な実施の形態に係る情報処理装置の概略構成を示す図である。
【００１８】
図１において、１はCRT（表示装置）であり、その表示画面には、例えば編集中の文書、図形、画像その他の編集情報、アイコン、メッセージ、メニューその他のユーザインターフェース情報が表示される。２はVRAMであり、CRT１の表示画面に表示するための画像が描画される。このVRAM２に生成された画像データは、所定の規定に従ってCRT１に転送され、これによりCRT１に画像が表示される。３はビットムーブユニット(BMU)であり、例えば、メモリ間（例えば、VRAM２と他のメモリ）のデータ転送や、メモリと各I/Oデバイス（例えば、ネットワークインターフェース１１）との間のデータ転送を制御する。
【００１９】
４はキーボードであり、文書等を入力するための各種キーを有する。５はポインティングデバイスであり、例えば、CRT１の表示画面上に表示されたアイコン、メニューその他のオブジェクトを指示するために使用される。６はCPUであり、ROM７、ハードディスク又はフロッピーディスクに格納された制御プログラムに基づいてCPUデバイスに接続された各デバイスを制御する。７はROMであり、各種の制御プログラムやデータを保持する。
８はRAMであり、CPU６のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。９はハードディスクドライブ(HDD)であり、ハードディスクに対するアクセスを制御する。１０はフロッピーディスクドライブ(FDD)であり、フロッピーディスクに対するアクセスを制御する。
【００２０】
１１はネットワークインターフェイスであり、他の情報処理装置やプリンタ等とネットワーク１３を介して通信を行うことができる。１２はCPUバスであり、アドレスバス、データバス及びコントロールバスを含む。
【００２１】
CPU６に対する制御プログラムの提供は、ROM７、ハードディスク、フロッピーディスクから行うこともできるし、ネットワーク１３を介して他の情報処理装置等から行うこともできる。
【００２２】
図１０は、アプリケーションプログラムを含む制御プログラムを格納したフロッピーディスクのメモリマップの一例を示す図である。なお、制御プログラムを格納したフロッピーディスクやその他のメモリ媒体からメモリにロードされたプログラムをＣＰＵ６により実行することで、本発明に係る情報処理装置が構成される。
【００２３】
図１０において、２０００は、ディレクトリ情報を格納する領域であり、モジュール２００１〜２００２の記憶領域を示す情報を保持している。２００１は、アプリケーションプログラムであり、この例では、アプリケーションプログラム２００１はオペレータの入力に応じて画像や文書を編集したり、あるいは編集された画像や文書の印刷を制御する。２００２は、アプリケーションプログラム２００１の実行の際に参照するアプリケーション制御データである。
【００２４】
フロッピーディスクに格納されたプログラムやデータは、例えば、ハードディスクドライバ９によりハードディスクに転送することにより、図１に示す情報処理装置に格納することもできる。
【００２５】
＜印刷制御手順の説明＞
次に、アプリケーションプログラム２００１に基づく情報処理装置の動作を説明する。
【００２６】
まず、アプリケーションプログラム２００１とオペレーティングシステム、プリンタドライバの関係について簡単に説明しておく。オペレーティングシステムは、コンピュータの有するメモリやプロセッサ、周辺デバイスといった資源や、プログラムの実行を管理している。また、アプリケーションプログラムに対してオペレーティングシステムに固有の標準的なインターフェースを提供する。
【００２７】
例えばプリンタなどの周辺機器には多くの種類があるが、アプリケーションからはＯＳを介してプリンタを利用することで、アプリケーションからは、オペレーティングシステムに対応したプリンタであればどのようなものであっても利用できる。
【００２８】
逆にプリンタの側からは、プリンタドライバによってオペレーティングシステムにプリンタの機能を提供している。このような仕組みにより、プリンタ固有の機能を生かしながら、アプリケーションとのインターフェースの標準化を実現している。
【００２９】
図１１は、アプリケーションプログラム２００１をＣＰＵ６により実行することで実現される画像編集処理の手順である。アプリケーションプログラム２００１が記憶媒体からメモリにロードされて実行されると、オペレータの指示に応じて画像データが作成されたり、あるいは、デジタルカメラやデジタルビデオカメラ等から入力された画像データが編集される。この編集処理の内容としては、例えば、画像の回転や色調整、複数の画像の合成、文字や図形のオーバーレイなどのほか、画像の調子をぼかしたり、逆にシャープな調子にしたりといった調子を変える処理がある。このほか、画像を写真画像から、筆やスプレイ等で描かれた絵画調に変換したり、デッサン調にしたり、画像が凹凸のある素材の上に描かれているかのような質感を付与するといったアート処理と呼ばれる処理等も可能となっている。
【００３０】
ステップＳ１１０１では、この編集処理や後述する印刷処理を行うための、オペレータからの入力を受け付ける。オペレータによる入力は、キーボードからのコマンド入力のほか、ポインティングデバイスによる位置の指定やメニュー項目の選択により行われる。ステップＳ１１０２では、ステップＳ１１０１で入力されたコマンドやメニュー項目が印刷指示であるか判定する。印刷指示でなければ、指示の内容をさらに解析して指示された編集処理を編集対象の画像データに対して施す（ステップＳ１１０４）。オペレータが編集を行い続ける限り、ステップＳ１１０１→Ｓ１１０２→Ｓ１１０４の処理ループは繰り返される。
【００３１】
一方、印刷指示が入力された場合には、図２に示した印刷用のダイアログボックスを表示し、後述する図４，５，６，８，９等に示した印刷制御手順を実行する（ステップＳ１１０５）。
【００３２】
図２は、アプリケーションプログラム２００１で操作者が印刷機能を選択すると表示される印刷ダイアログボックス２０１を示した図である。この印刷ダイアログボックス２０１には、印刷部数の入力項目１０１及び、複数部印刷時にページ単位でまとめて印刷するか、部単位でまとめて印刷するかを指定する項目１０３及び実際に印刷の実行を指示するボタン１０２が含まれている。
【００３３】
操作者が印刷を行う際には、まず図１１で説明した手順で印刷ダイアログボックスを表示させ、項目１０１にて印刷部数を入力し、項目１０３で、部単位にまとめて印刷するか、ページごとにまとめて印刷するかを指示する。ボタン１０２をクリックするなどして印刷を指示する。
【００３４】
次に本発明の処理手順をフローチャートを参照しながら説明する。図３は、アプリケーションプログラム２００１による印刷処理の一部を示すフローチャートである。このアプリケーションプログラム２００１は、例えば、フロッピーディスクドライブ１０を介してRAM８のロード領域に転送されCPU６に提供される。
【００３５】
図３に示す処理は、図１１のステップＳ１１０５により、アプリケーションプログラム２００１の印刷ダイアログボックス表示直後に起動される。
【００３６】
まず、ステップＳ５０１で操作者の入力を待ち、操作者により何らかの入力があった場合に、ステップＳ５０２にて、それが部数指定入力かどうかを調べる。部数指定入力であったならば、ステップＳ５０３にて入力された部数値を記憶領域Ｎに記憶し、ステップＳ５０１にて操作者の次の入力を待つ。
【００３７】
ステップＳ５０２にて部数指定入力でないと判断された場合には、ステップＳ５０４にて操作者がＯＫボタン１０２がクリックされたか、すなわち、印刷開始が指示されたかどうかを調べる。印刷開始が指示されたのでなければステップＳ５０１に戻る。印刷開始が指示された場合は、ステップＳ５０５にて先に記憶領域Ｎに記憶された印刷部数が１より大きいか否かを調べる。記憶領域Ｎに記憶された値が１より大きくない場合は、すなわち出力部数が１部の場合には、ステップＳ５０６にて印刷するデータをレンダリングしてプリンタドライバに転送し、印刷処理を終了する。この場合、図１１のステップ１１０１へ戻って、画像編集処理が続行される。オペレータはさらに画像編集を行ってもよいし、所定のコマンド入力やメニュー操作によりアプリケーションの実行そのものを終了させることもできる。
【００３８】
ステップＳ５０５にて記憶領域Ｎが１より大きい場合、すなわち複数部印刷の場合には、ステップＳ５０７にて印刷するデータをレンダリングしてイメージデータを作成しておく。作成されたイメージデータは、データが小さくメモリ容量に余裕があればＲＡＭ８に記憶してもよいが、通常はサイズが大きいために、ハードディスクにキャッシュデータ用のファイルを作成して格納しておく。なお、ステップ５０７で作成されてキャッシュファイルに格納されるイメージデータをキャッシュデータと呼ぶ。
【００３９】
次にステップＳ５０８にてキャッシュデータを読み出してプリンタドライバに転送する。
【００４０】
ステップＳ５０９では、記憶領域Ｎに記憶された印刷部数分の処理（ドライバへの転送）が終了したかを調べる。全部数分の処理が終了していなければステップＳ５０８へ戻って、繰り返しキャッシュデータをプリンタドライバに転送する。全部数分の処理が終了したならば終了する。このとき、不要になったキャッシュデータを削除する。ここでもステップＳ５０６の場合と同様に、画像編集処理に戻る。
【００４１】
以上のように、印刷部数が複数部の場合に、データのレンダリング結果をキャッシュデータとして保存し、それを繰り返しプリンタドライバに転送することで複数部の印刷を実現する。これにより、データのレンダリングを１回で済ませることができるため、全部数分レンダリングを行う場合に比べて印刷時間を短縮することができる。
【００４２】
また、画像のレンダリングという一般的には非常にプロセッサに高負荷を与える処理を１回で済ませることができるために、オペレーティングシステムとしてマルチタスクオペレーティングシステムを用いている場合には特に、並行して実行されている他のプログラムの実行を妨げることがない。
【００４３】
また、プリンタドライバが複数部の印刷を行う機能を有しているか否かに関わらず、複数部の文書を印刷することができる。このため、どのようなプリンタを用いていても複数部の印刷が可能である。
【００４４】
[第２の実施の形態]
以下に、上記の実施の形態の改良例である第２の実施の形態の情報処理装置による印刷制御手順を示す。この改良例では、プリンタドライバが複数部印刷機能を有している場合には、プリンタドライバの機能を用いて複数部印刷を実現する。図４は、本実施形態の印刷制御手順を示すフローチャートである。このフローチャートは、図３と同じく、図１１のステップＳ１１０５に引き続き実行される。
【００４５】
まず、ステップＳ６０１で操作者の入力を待ち、操作者により何らかの入力があった場合に、ステップＳ６０２にて、それが部数指定入力かどうかを調べる。部数指定入力であったならば、ステップＳ６０３にて入力された部数値を記憶領域Ｎに記憶し、ステップＳ６０１にて操作者の次の入力まで待つ。
【００４６】
ステップＳ６０２にて部数指定入力でないと判断された場合には、ステップＳ６０４にて操作者がＯＫボタン１０２がクリックされたか、すなわち、印刷開始が指示されたかどうかを調べる。印刷開始が指示されたのでなければステップＳ６０１に戻る。印刷開始が指示された場合はステップＳ６０５にてプリンタドライバの能力を取得する。第１の実施形態で説明したとおり、プリンタドライバの機能は、オペレーティングシステムを介してアプリケーションに提供される。そのため、ステップＳ６０５では、オペレーティングシステムに対して所定のファンクション呼出し等の手続きを行うことで、プリンタドライバの能力を取得する。
【００４７】
次いで、ステップＳ６０６にて、取得したプリンタドライバの能力よりプリンタドライバが複数部印刷機能を有しているか否かを調べる。プリンタドライバが複数部印刷機能を有しているならば、ステップＳ６０７にてプリンタドライバに印刷部数を設定し、ステップＳ６０８にてデータをレンダリングしてプリンタドライバに転送し、印刷制御処理を終了する。この後は、再び画像編集処理に戻る。
【００４８】
プリンタドライバが複数部印刷機能を有していないならば、ステップ６０９にて、先に記憶領域Ｎに記憶された印刷部数が１より大きいか否かを調べる。記憶領域Nが１より大きくない場合、すなわち印刷部数が１部の場合は、ステップＳ６０８にて印刷するデータをレンダリングしてプリンタドライバに転送し、終了する。
【００４９】
ステップＳ６０９にて記憶領域Ｎが１より大きい場合、すなわち複数部印刷の場合は、ステップＳ６１０にて印刷するデータをレンダリングしてキャッシュデータを作成し、ハードディスク等に用意されたキャッシュ領域に格納する。次にステップＳ６１１にてキャッシュデータをプリンタドライバに転送する。
【００５０】
ステップＳ６１２では、記憶領域Ｎに記憶された印刷部数分の処理が終了したかを調べる。全部数分の処理が終了していなければステップＳ６１１へ戻り、続いてキャッシュデータをプリンタドライバに転送する。全部数分の処理が終了したならば印刷制御処理を終了する。このとき、不要になったキャッシュデータを削除する。
【００５１】
以上のように、本実施形態の情報処理装置も、第１の実施形態と同様の効果を奏する。それに加えて、プリンタドライバが複数部印刷機能を有している場合には、プリンタドライバの機能を用いて複数部印刷を行う機能を設けることにより、アプリケーションプログラム２００１とプリンタドライバとの間のデータ転送を１回で済ませることが可能となり、印刷時間を短縮することができる。このとき、プリンタにハードディスク等が用意され、そちらがプリンタドライバに転送されたイメージデータの格納に用いられる場合には、情報処理装置本体のハードディスク等の容量を消費せずに済む。
【００５２】
[第３の実施の形態]
以下に、上記の実施の形態の改良例である第３の実施の形態の情報処理装置による印刷制御手順を示す。第３の実施の形態では、複数部印刷の第１部目はキャッシュデータを作成せずにレンダリング結果をそのままプリンタドライバに転送し、印刷部数が３部以上の場合にキャッシュデータを作成して複数部印刷を行う。こうすることによって、第１部目を印刷する際には、作成したイメージデータをキャッシュデータファイルに格納するための時間を短縮でき、ファーストプリントを高速化できる。
【００５３】
図５は、図４に示す処理の改良例を示すフローチャートであり、図４のステップＳ６０４にて印刷開始と判断された場合以降の処理について特に示したものである。この場合印刷部数は記憶領域Ｎに格納されているものとして説明する。
【００５４】
ステップＳ７０１では、ステップＳ６０５と同様にしてプリンタドライバの能力を取得する。次いで、ステップＳ７０２にて、取得したプリンタドライバの能力より、プリンタドライバが複数部印刷機能を有しているか否かを調べる。プリンタドライバが複数部印刷機能を有しているならば、ステップＳ７０３にてプリンタドライバに印刷部数を設定し、ステップＳ７０４にてデータをレンダリングしてプリンタドライバに転送し、印刷制御処理を終了する。この場合にも、画像の編集に戻る。
【００５５】
プリンタドライバが複数部印刷機能を有していないならば、ステップ７０５にて、先に記憶領域Ｎに記憶された印刷部数が１より大きいか否か、すなわち複数部印刷かを調べる。記憶領域Ｎに記憶された値が１より大きくない場合、すなわち印刷部数が１部の場合には、ステップＳ７０４にて印刷するデータをレンダリングしてプリンタドライバに転送し、印刷制御処理を終了する。
【００５６】
ステップＳ７０５にて記憶領域Ｎの値が１より大きい場合は、ステップＳ７０６にて第１部目として印刷するデータをレンダリングしてプリンタドライバに転送する。プリンタドライバはこの時点から印刷を開始することができる。
【００５７】
次に、ステップＳ７０７にて印刷部数が２より大きいか否かを調べる。印刷部数が２以下の場合はデータをキャッシュする必要がないためにステップＳ７０４にて第２部目として印刷するデータをレンダリングしてプリンタドライバに転送し、終了する。
【００５８】
印刷部数が２より大きい場合は、ステップＳ７０８にて印刷するデータをレンダリングしてキャッシュデータを作成し、ハードディスク等に用意されたキャッシュ領域に格納する。次いでステップＳ７０９にて、先に作成したキャッシュデータをプリンタドライバに転送する。ステップＳ７１０では、（Ｎ−１）部分のキャッシュデータの転送処理を行ったか否かを調べる。Ｎ部ではなく（Ｎ−１）部であるのは、先にステップＳ７０６にて第１部分のデータ転送は終了しているためである。
【００５９】
印刷部数（Ｎ−１）部のキャッシュデータの転送処理が終了していなければ、ステップＳ７０９へ戻って続いてキャッシュデータをプリンタドライバに転送する。印刷部数（Ｎ−１）部分のキャッシュデータの転送処理が終了したならば終了する。このとき、不要になったキャッシュデータを削除する。
【００６０】
以上のように、複数部印刷の第１部目はキャッシュデータを作成しないで、レンダリング結果をそのままプリンタドライバに転送する。そして、印刷部数が２より大きい場合にキャッシュデータを作成し、複数部印刷を行う。こうすることにより、第１部目で印刷キャッシュデータを作成する場合と比べて、第１部目のイメージデータのプリンタドライバへの転送が早く行われる。このため、プリンタドライバ側では１枚目の印刷をより早く行える。
【００６１】
この場合、１部目を印刷している間に２部目以降のデータの生成を行えるので、第２部目のイメージデータ及びキャッシュデータの生成により印刷処理が遅延することはない。
【００６２】
[第４の実施の形態]
以下に、上記の実施の形態の改良例である第４の実施の形態の情報処理装置による印刷制御手順を示す。この第４の実施の形態では、アプリケーションは、マルチプロセスが並列に動作するオペレーティングシステムの下で実行される。そして、印刷処理は、画像編集のアプリケーションから、それとは別の印刷プロセスを起動することで行われる。印刷プロセスは、画像編集アプリケーションから独立した実行可能なプログラムであり、例えば実行形式ファイルとしてアプリケーションプログラムとともに供給される。図６及び図７は、それぞれ画像処理アプリケーションプログラムと、それとは別プロセスとして実行される印刷制御プログラムのフローチャートである。
【００６３】
図６において、ステップＳ８０１で操作者の入力を待ち、操作者により何らかの入力があった場合に、ステップＳ８０２にて、それが部数指定入力かどうかを調べる。部数指定入力であったならば、Ｓ８０３にて入力された部数値を記憶領域Ｎに記憶し、ステップＳ８０１にて操作者の次の入力まで待機する。
【００６４】
ステップＳ８０２にて部数指定入力でないと判断された場合には、ステップＳ８０４にて操作者がＯＫボタン１０２がクリックされたか、すなわち、印刷開始が指示されたかどうかを調べる。印刷開始が指示されたのでなければステップＳ８０１に戻る。印刷開始が指示された場合はステップＳ８０５にて印刷対象の文書名と印刷部数をパラメータとして印刷プロセスを起動し、印刷制御終了する。ここで、アプリケーションは再び画像編集に戻る。印刷処理は別プロセスである印刷プロセスが行うため、アプリケーションプログラム２００１は、第１〜第３の実施の形態のように、イメージデータを生成したりキャッシュしたりする手間をかけずに、すぐに別の編集操作を行うことができる。
【００６５】
図７は印刷プロセスのフローチャートであり、図６のステップＳ８０５にて印刷プロセスが起動されると処理が開始される。ステップＳ８５１ではパラメータとして渡された印刷対象文書名をもとに印刷する文書データを開き、ステップＳ８５２ではパラメータとして渡された印刷部数を記憶領域Ｎに格納する。ステップＳ８５３では、プリンタドライバの能力を取得する。次いで、ステップＳ８５４にて取得したプリンタドライバの能力よりプリンタドライバが複数部印刷機能を有しているか否かを調べる。プリンタドライバが複数部印刷機能を有しているならば、ステップＳ８５５にてプリンタドライバに印刷部数を設定し、ステップＳ８５６にてデータをレンダリングしてプリンタドライバに転送し、終了する。印刷プロセスは印刷制御処理を終了すると消滅する。
【００６６】
プリンタドライバが複数部印刷機能を有していないならば、ステップ８５７にて、先に記憶領域Ｎに記憶された印刷部数が１より大きいか否かを調べる。記憶領域Ｎが１より大きくない場合、すなわち印刷部数が１部の場合には、ステップＳ８５６にて印刷するデータをレンダリングしてプリンタドライバに転送し、終了する。
【００６７】
ステップＳ８５７にて記憶領域Ｎの値が１より大きい場合は、ステップＳ８５８にて印刷するデータをレンダリングして第１部目のイメージデータを作成し、プリンタドライバに転送する。そしてステップＳ８５９で、印刷すべき部数が２部より多いか判定し、２部であればステップＳ８５６でデータをレンダリングしてプリンタドライバにそのデータを転送し、印刷プロセスは終了する。
【００６８】
一方、印刷部数が３部以上であれば、ステップＳ８６０にて印刷するデータをレンダリングしてキャッシュデータを作成し、ハードディスク等に用意されたキャッシュ領域格納する。次にステップＳ８６１にてキャッシュデータを読み出してプリンタドライバに転送する。
【００６９】
ステップＳ８６２では、（Ｎ−１）部分の処理が終了したかを調べる。印刷部数（Ｎ−１）部の処理が終了していなければステップＳ８６１へ戻って、続いてキャッシュデータをプリンタドライバに転送する。印刷部数（Ｎ−１）部分の処理が終了したならば印刷制御処理は終了する。このとき、不要になったキャッシュデータを削除する。
【００７０】
以上のように、本実施形態の情報処理装置は、請求項１〜３と同様の効果を有する。それに加えて、印刷処理を別の印刷プロセスを起動して行うことにより、印刷と並行してアプリケーションプログラム２００１の編集を継続することができる。しかも印刷プロセスは高負荷のイメージデータの生成処理をせいぜい２部分しか行わないため、印刷処理中にアプリケーションプログラム２００１を並列に実行しても、その処理の進行を妨げにくい。
【００７１】
[第５の実施の形態]
以下に、第５の実施の形態の情報処理装置による印刷制御手順を示す。この実施形態では、データをレンダリングして作成したデータを圧縮してキャッシュし、キャッシュデータを読み出して伸長（復元）してからプリンタドライバに転送する。図８は、本実施形態におけるアプリケーションの印刷制御手順のフローチャートであり、図３のステップＳ５０４までは図３と共通なため省略し、ステップＳ５０４にて印刷開始と判断した場合以降の処理について示してある。この場合、印刷部数は記憶領域Ｎに格納されているものとして説明する。
【００７２】
ステップ９０１では、先に記憶領域Ｎに記憶された印刷部数が１より大きいか否か、すなわち印刷部数が複数部であるかを調べる。記憶領域Ｎの値が１より大きくない場合、すなわち印刷部数が１部の場合は、ステップＳ９０４にて印刷するデータをレンダリングしてプリンタドライバに転送し、終了する。これによりアプリケーションプログラムは画像編集処理に戻る。
【００７３】
ステップＳ９０１にて記憶領域Ｎの値が１より大きい場合は、ステップＳ９０２にて印刷するデータをレンダリングして第１部目のイメージデータを作成し、プリンタドライバに転送する。そしてステップＳ９０３で、印刷すべき部数が２部より多いか判定し、２部であればステップＳ９０４で第２部目のためのデータをレンダリングしてプリンタドライバにそのデータを転送し、印刷プロセスは終了する。
【００７４】
一方、印刷部数が３部以上であれば、ステップＳ９０５にて印刷するデータをレンダリングしてキャッシュデータを作成する。次いでステップＳ９０６にて作成したキャッシュデータをページ単位に圧縮し、ハードディスク等に用意されたキャッシュ領域に格納する。続いてステップＳ９０７にて圧縮されたキャッシュデータを読み出して伸長し、元のイメージデータを作成し、ステップＳ９０８にてキャッシュデータをプリンタドライバに転送する。
【００７５】
ステップＳ９０９では、印刷部数（Ｎ−１）部分の処理が終了したかを調べる。（Ｎ−１）部分の処理が終了していなければステップＳ９０５へ戻って続いてキャッシュデータをプリンタドライバに転送する。（Ｎ−１）部数分の処理が終了したならば印刷制御処理を終了する。このとき、不要になったキャッシュデータを削除する。また、アプリケーションは画像編集処理に戻る。
【００７６】
以上のように、本実施形態では、第１〜第４の実施形態の効果を有する。それに加えて、印刷キャッシュデータを圧縮して保存することにより、印刷中におけるハードディスクなどキャッシュに利用される記憶領域を節約することができる。レンダリングされたデータはビットマップ形式のデータのため、圧縮方式として非可逆圧縮方式を用いれば圧縮の効果は非常に大きい。データの内容にも依存するが、圧縮前のデータをそのまま格納する場合に比べて、キャッシュ領域のサイズを例えば数分の１から１０数分の１程度に圧縮することも可能である。
【００７７】
[第６の実施の形態]
以下に、第６の実施形態の情報処理装置による印刷制御手順を示す。この実施形態では、印刷対象文書が複数のページを有していて、部単位の印刷が指定された場合に、各ページ毎にキャッシュデータを作成して印刷を行う。部単位の印刷の指定は、図２の設定項目１０３にて行う。図９は、本実施形態のフローチャートであり、図４のステップＳ６０４にて印刷開始と判断した場合以降の処理について特に示している。この場合、印刷部数は記憶領域Ｎに格納されているものとして説明する。
【００７８】
ステップＳ１００１では、プリンタドライバの能力を取得する。次いで、ステップＳ１００２にて取得したプリンタドライバの能力より、プリンタドライバが複数部印刷機能を有しているか否かを調べる。プリンタドライバが複数部印刷機能を有しているならば、ステップＳ１００３にてプリンタドライバに印刷部数を設定し、ステップＳ１００４にてデータをレンダリングしてプリンタドライバに転送し、終了する。
【００７９】
プリンタドライバが複数部印刷機能を有していないならば、ステップ１００５にて、先に記憶領域Ｎに記憶された印刷部数が１より大きいか否かを調べる。記憶領域Ｎの値が１より大きくない場合は、ステップＳ１００４にて印刷するデータをレンダリングしてプリンタドライバに転送し、終了する。
【００８０】
ステップＳ１００５にて記憶領域Ｎの値が１より大きい場合、すなわち印刷部数が複数部の場合は、ステップＳ１００６で、データをページ数分レンダリングして第１部目のイメージデータを作成してプリンタドライバに転送する。そしてステップＳ１００７で、印刷すべき部数が２部より多いか判定し、２部で以下であればステップＳ１００４でデータをレンダリングしてプリンタドライバにそのデータを転送し、印刷プロセスは終了する。
【００８１】
次にステップＳ１００８にて現在の印刷対象ページ用のキャッシュデータが作成済か否かを調べる。キャッシュデータが作成済でなければステップＳ１００９にて現在の印刷対象ページをレンダリングしてキャッシュデータを作成し、それを圧縮してハードディスク等に用意されたキャッシュ領域に格納する。キャッシュデータの作成後、あるいは既に作成済みの場合には、ステップＳ１０１０にてキャッシュデータを読出し、伸長してプリンタドライバに転送する。
【００８２】
ステップＳ１０１１では、１部分のすべてのページをプリンタドライバに送信したか否かを調べ、終了していなければステップＳ１００８に戻り、次のページを印刷させる。すべてのページに対して処理を行ったならば、ステップＳ１０１２にて、記憶領域Ｎに記憶された（印刷部数−１）部分の処理が終了したかを調べる。（Ｎ−１）部数分の処理が終了していなければステップＳ１００６へ戻り、次の部の最初のページを印刷させる。（Ｎ−１）部数分の処理が終了したならば印刷制御処理を終了し、画像編集処理に戻る。このとき、キャッシュデータを削除しておく。
【００８３】
以上のように、印刷対象文書が複数のページを有していて、部単位の印刷が指定された場合に、各ページ毎にキャッシュデータを作成して印刷を行うことにより、データのレンダリングを各ページ１回ずつで済ませることが可能となり、印刷時間を短縮することができる。
【００８４】
さらに、前述した第１〜第５の実施形態の効果も同様に得ることができる。
【００８５】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００８６】
また、本発明の目的は、前述した実施形態の機能を実現する、図１１の画像編集や図３〜図９に示した印刷制御の手順を実現するためのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
【００８７】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８８】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００８９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９０】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９１】
【発明の効果】
以上説明したように、印刷部数が複数部の場合に、データのレンダリング結果をキャッシュデータとして保存し、それを繰り返しプリンタドライバに転送することでデータのレンダリングを１回で済ませることができ印刷時間を短縮することができる。
【００９２】
また、画像生成処理を１回乃至２回で済ませることができるために、並行して実行されている他のプログラムの実行を妨げることがない。
【００９３】
また、プリンタドライバが複数部の印刷を行う機能を有しているか否かに関わらず、複数部の文書を印刷することができる。
【００９４】
また、プリンタドライバが複数部印刷機能を有している場合には、プリンタドライバの機能を用いて複数部印刷を行う機能を設けることにより、プリンタドライバへのデータ転送を１回で済ませることが可能となり、印刷時間を短縮することができる。
【００９５】
また、複数部印刷の第１部目はキャッシュデータを作成しないで、レンダリング結果をそのままプリンタドライバに転送することにより、１枚目の印刷をより早く行える。
【００９６】
また、印刷制御処理をアプリケーションとは別の印刷プロセスを起動して行うことにより、印刷と並行してアプリケーションプログラムを実行することができる。印刷プロセスは画像生成処理をせいぜい２部分しか行わないため、並列して実行されるプログラムの処理の進行が妨げられない。
【００９７】
また、印刷キャッシュデータを圧縮して保存することにより、印刷中におけるハードディスクなどキャッシュに利用される記憶領域を節約することができる。
【００９８】
また、複数のページを有する文書の部単位の印刷が指定された場合に、各ページ毎にキャッシュデータを作成して印刷を行うことにより、データのレンダリングを各ページ１回ずつで済ませることが可能となり、印刷時間を短縮することができる。
【００９９】
【図面の簡単な説明】
【図１】本発明の一実施例による文書作成装置の概略構成を示すブロック図である。
【図２】表示画面の一例を示す図である。
【図３】第１の実施の形態のアプリケーションプログラムによる処理の一部（印刷制御）を示すフローチャートである。
【図４】第２の実施の形態のアプリケーションプログラムによる処理の一部（印刷制御）を示すフローチャートである。
【図５】第３の実施の形態のアプリケーションプログラムによる処理の一部（印刷制御）を示すフローチャートである。
【図６】第４の実施の形態のアプリケーションプログラムによる処理の一部（印刷制御）を示すフローチャートである。
【図７】第４の実施の形態の印刷プロセスによる処理を示すフローチャートである。
【図８】第５の実施の形態のアプリケーションプログラムによる処理の一部（印刷制御）を示すフローチャートである。
【図９】第６の実施の形態のアプリケーションプログラムによる処理の一部（印刷制御）を示すフローチャートである。
【図１０】制御プログラムを格納したフロッピーディスクのメモリマップの一例を示す図である。
【図１１】アプリケーションプログラムによる処理の一部（画像編集）を示すフローチャートである。
【符号の説明】
１はCRT、２はビデオRAM、３はBMU、４はキーボード、５はポインティングデバイス、６はCPU、７はROM、８は作業用のRAM、９はハードディスク、１０はフロッピィディスク、１１はネットワークインターフェース、１２はI/Oバスである。
【図１】
0003814423.tif 000002
【図２】
0003814423.tif 000003
【図３】
0003814423.tif 000004
【図４】
0003814423.tif 000005
【図５】
0003814423.tif 000006
【図６】
0003814423.tif 000007
【図７】
0003814423.tif 000008
【図８】
0003814423.tif 000009
【図９】
0003814423.tif 000010
【図１０】
0003814423.tif 000011
【図１１】
0003814423.tif 000012