"文書編集アプリからのGDIコマンドを解釈し印刷装置で印刷するための印刷データをスプールデータとして生成し、該スプールデータを印刷装置に送信して印刷を行う印刷システムにおいて、以下を含むクライアント装置のドライバ101に実際の印刷装置と対をなす仮想印刷装置を指定可能な仮想印刷装置指定手段102と、仮想印刷装置が指定された際に作成されるスプールデータを仮想スプールデータとして保持し、かつ、GDIコマンドも保持する仮想スプールデータ保持手段105と、実印刷装置が指定された際、仮想スプールデータ保持手段より仮想スプールデータとGDIコマンドの有無を識別しGDIコマンドからページ単位で差異の有無を判別するページ差異検出手段103と、GDIコマンドからスプールデータを生成することができ、ページ差異検出手段からの差異判別結果に基づき差異の有るページのみスプールデータ生成を行い仮想スプールデータの差異ページと入れ替えて統合することができるスプールデータ統合手段104を持つことを特徴とする印刷システム。しかし、上記の従来例では印刷設定の変更中の時間を短縮するものであり、印刷設定の変更時間分しか短縮できず、編集完了後の差分ページが1ページのみというような少ないページ変更でも全ページ変更と同じ短縮効果になっていた。このため、編集完了後の差分が小さいドキュメントの場合に差分が大きいドキュメントより早く印刷完了させることができなかった。本発明では従来のアプリケーションを用いた上で、編集完了前のドキュメントと編集完了後のドキュメントとの差分の多寡に応じた印刷完了時間の短縮を自動で実現することを目的とする。本発明の印刷システムでは、以下の手段を具備する。クライアント装置のドライバに実際の印刷装置と対を成す仮想印刷装置を指定可能な仮想印刷装置指定手段を持つ。仮想スプールデータとGDIデータを保持することが可能な仮想スプールデータ保持手段を持つ。仮想スプールデータ保持手段が保持しているGDIデータと文書編集アプリケーション以下アプリから出力されるGDIコマンドをページ毎に比較しページの差異を検出できるページ差異検出手段を持つ。該ページ差異検出手段は、アプリから出力されるGDIコマンドを仮想スプールデータ保持手段に出力することができる。さらに、仮想スプールデータ保持手段の保持情報からGDIデータの有無を検知することができ、GDIデータの有無により選択的にアプリから出力されるGDIコマンドをスプールデータ統合手段に出力することができる。前記GDIコマンドのスプールデータ統合手段への出力選択は、GDIデータが保持に合わせて以下のように変化する。保持されていない場合はすべてのGDIコマンドを出力し、保持されている場合は保持中GDIデータとアプリ出力GDIコマンドの差異を検出し、差異ページのアプリ出力GDIコマンドをページ情報と共に出力する。該スプールデータ統合手段は、ページ差異検出手段から出力されるGDIコマンドとページ情報から印刷装置で印刷するための印刷データを作成することができる。さらに、作成した印刷データをページ情報に基づき仮想スプールデータと統合することができ、印刷装置の指定が仮想か実かを検知し、指定に合わせて印刷データの出力先を仮想スプールデータ保持手段かスプーラーか選択することができる。仮想スプールデータと実印刷装置指定時の変更ページのみ新規スプールして印刷データを得るため、変更ページが少ない場合には少ないスプール時間で印刷データ転送を開始して印刷完了を早くすることができる。また、ページ差異検出手段により自動で差異ページを識別するため、ユーザーによる差異ページ指定の必要が無く、差し替えを自動で行うことができる。以下、本発明を実施するための最良の形態について図面を用いて説明する。本発明の実施例1の構成図を図1に示す。10は、クライアント装置でパーソナルコンピュータなどの文書編集が可能で印刷装置20にて印刷することができる装置である。1は、クライアント装置10上で動作するドキュメント編集アプリケーションである。2は、アプリ1で編集中のドキュメントである。3は、アプリ1で編集完了した印刷用のドキュメントである。101は実施例1のドライバである。アプリ1から入力されるGDIコマンドを印刷装置20で印刷可能な印刷データに変換しスプーラー6に出力することができる。102は実施例1の仮想印刷装置指定手段であり、ドライバ101に対する印刷入力時にユーザーが実印刷装置と仮想印刷装置を指定することができる。また、指定印刷装置が仮想か実かを印刷動作中保持し、ドライバ101の印刷動作を仮想スプールデータ作成か実印刷か振り分けることができる。103は実施例1のページ差異検出手段でアプリ1から出力されるGDIコマンドと格納済みGDIデータとを比較しページ差異を検出することができる。さらに、指定印刷装置の仮想または実の情報と仮想スプールデータの有無情報に応じて、スプールデータ統合手段104に出力するGDIデータを差異があるページのみとするか、すべてのGDIデータとするかを切り替えることができる。104は実施例1のスプールデータ統合手段で、ページ差異検出手段から出力されるGDIデータから印刷装置が印刷可能な印刷データを作成することができる。さらに、指定印刷装置の仮想または実の情報から、スプーラー6への出力とするか仮想スプールデータ保持手段105への出力とするかを切り替えることができる。また、仮想スプールデータの有無情報に応じて、現在のページの印刷データを仮想スプールデータとして保持しているデータにするか、GDIデータから作成した印刷データにするかを切り替えることができる。105は実施例1の仮想スプールデータ保持手段で、ドライバ101に仮想スプールデータが保持されているか通知することができる。また、指定印刷装置が仮想のときページ差異検出手段103から出力されるGDIデータをGDIデータ106として保持し、スプールデータ統合手段104から出力される印刷データを仮想スプールデータとして保持することができる。106は実施例1の保持しているGDIデータで、仮想スプールデータ保持手段105が保持したGDIデータである。107は実施例1の保持している仮想スプールデータで、仮想スプールデータ保持手段105が保持した仮想スプールデータである。4は、クライアント装置10のHDDであり、クライアント装置10上で動作するプログラムや一時的に格納するGDIデータ、仮想スプールデータ、実デバイススプールデータ、さらには、編集中DOC2、印刷用DOC3などを格納することができる。ここでは、仮想スプールデータ保持手段105もHDDの中に記載しているが、HDD4の中に限るものではなく、不図示のRAM中に存在しても構わない。6はクライアント装置10のスプーラーであり、ドライバ101から出力される印刷データを実デバイススプールデータ5として一時的に保持させることができる。7はクライアント装置10の送信部で、実デバイススプールデータ5を印刷装置20に送信させることができる。送信部7はUSBのようにデバイスと直接接続されるインターフェースでもLANのようにネットワークを介する接続でも、実デバイススプールデータ5を印刷装置20に送信できれば何でもよい。20は印刷装置でクライアント装置10からの印刷データを受信して、印刷物を出力することができる。21は、印刷装置20の印刷処理部で受信部22で受信した印刷データを使用して印刷部23に印刷動作を行わせる処理を制御する。22は印刷装置20の受信部で、クライアント装置10から送られてくる印刷データを受信し、印刷処理部21に伝達することができる。23は印刷部で印刷処理部21の制御で印刷物を生成する。次に、図2の印刷動作フローで、印刷DOC3を印刷する際に編集中DOC2と1ページの差異がある場合に、印刷DOC3の印刷が通常よりも早く完了することを説明する。編集中DOC2をユーザーが仮想印刷装置を指定して印刷入力すると、印刷処理がスタートするS1。ドライバ101は指定された印刷装置が仮想か実かを仮想印刷装置指定手段102で確認するS2。仮想印刷装置が指定されているのでS3に進み、実デバイスFLGを‘0’にするS3。実デバイスFLGは指定された印刷装置が仮想か実かを判別できればなんでもよく、ドライバ101が動作中に使用するRAMメモリの一部でも良いし、HDD4の中の一部でもよい。現在の印刷入力に対してGDI差異チェックを行うか否かを決定するため、仮想スプールデータFLGが‘0’か確認するS5。仮想スプールデータFLGは、ドライバ10の動作で使用するRAM上にあっても良いし、HDD4の中にあっても良い。また、ここでは、‘0’が仮想スプールデータ無し、‘1’が有りを示すが、逆でも構わない。編集中DOC2に対する最初の印刷なので仮想スプールデータは存在せず、仮想スプールデータFLGが‘0’なので、GDI差異チェックFLGを‘0’とするS6。GDI差異チェックFLGは、ページ差異検出手段103の動作を切り替えることができれば何でも良く、FLGを設けても良いし、ハード的な信号を変化させても良い。ここでは、ページ差異検出手段の中のFLGとする。また、ここでは‘0’でGDI差異チェックをせず、‘1’でGDI差異チェックを行うが、逆でも構わない。ページカウントを開始するS8。最初なので1とする。アプリ1から編集中DOC2の1ページ目のGDIデータを受信するS9。GDI差異チェックFLGでページ差異チェックを行うか否か確認するS10。GDI差異チェックFLGが‘0’で、Yesなので、アプリ1からのGDIコマンドで印刷データを作成するS13。ここでは、ページ差異検出手段103で差異チェックを行わずにスプールデータ統合手段104にGDIコマンドが出力される。スプールデータ統合手段104は受信したGDIコマンドから印刷データを作成する。さらにページ差異検出手段103はページ情報込みでGDIコマンドを仮想スプール保持手段105に出力し、仮想スプール保持手段105はGDIデータとしてページ情報込みで保持する。スプールデータ統合手段104は出力先をスプーラー6にするか仮想スプールデータ保持手段105にするかを決めるために実デバイスFLGが‘1’であるか否か確認するS15。実デバイスFLGが‘0’なので、仮想スプールデータ保持手段105に出力し、仮想スプールデータ保持手段105に印刷データが格納されるので仮想スプールデータFLGを‘1’にするS17。次ページのGDIコマンドがあるか確認するS18。編集中DOC2は50ページのドキュメントなので、次ページが存在し、Yesなので、ページカウントを1インクリメントしS19、S9のGDIコマンド受信に戻る。最後のページになるまで、S19,S9~S18を繰り返す。最後のページでは、S18で次ページのGDIコマンドがなくなり、S20へ進み、ページカウントをクリアして、仮想印刷装置への編集中DOC2の印刷動作を終了するS21。続いて、ユーザーが編集作業に戻り、編集中DOC2への最後の編集情報を入手し、編集中DOC2を編集して印刷用DOC3とし、印刷用DOC3を印刷するときの動作を説明する。この印刷用DOC3は、3ページ目のみ、変更が入っている。ユーザーがアプリ1から印刷用DOC3を実印刷装置を指定して印刷入力すると、印刷処理がスタートするS1。仮想印刷装置指定手段102で実印刷装置指定であることを確認するS2。S4に進み、実デバイスFLGを‘1’にするS4。S5で仮想スプールデータFLGは‘1’なので、GDI差異チェックFLGを‘1’とするS7。ページカウントを開始するS8。最初なので1とする。アプリ1から印刷用DOC3の1ページ目のGDIデータを受信するS9。GDI差異チェックFLGが‘1’であり、S10でNoなので、1ページ目のGDI差異チェックをページ差異検出手段103で実行するS11。GDI差異チェックでは、仮想スプールデータ保持手段105のGDIデータ106から1ページ目のGDIデータを読み出しながら、アプリ1から出力されているGDIコマンドと比較していく。GDIデータ106にはページ情報も入っているため、GDI差異チェック対象ページのGDIデータを読み出すことができる。1ページ目は変更が無いため、S12から差異無しのNoでS14に進む。S14では、スプールデータ統合手段104がページ差異検出手段103からのGDIデータの出力が来ないため、仮想スプールデータ保持手段105の仮想スプールデータ107を保持する。スプールデータ統合手段104は実デバイスFLGが‘1’なのでS15、スプーラー6に仮想スプールデータ107の1ページ目を出力し、仮想スプールデータFLGを‘0’にするS16。次ページのGDIコマンドがあるか確認するS18。印刷用DOC3は50ページのドキュメントなので、次ページが存在し、Yesなので、ページカウントを1インクリメントしS19、S9のGDIコマンド受信に戻る。2ページ目もS9からS18,S19まで繰り返し、S9に戻って3ページ目のGDIコマンド受信を行う。S10から,S11に進み、3ページ目のGDI差異チェックを開始する。S12で差異があるため、ページ検出手段103はスプールデータ統合手段104にGDIデータを出力し、スプールデータ統合手段104で印刷データを作成するS13。スプールデータ統合手段104は、実デバイスFLGが‘1’なのでS15、スプーラー6に印刷データを出力し、仮想スプールデータFLGを0とする。既に0なので、0のときは何もしないとしても良い。ここで、仮想スプールデータ保持手段105の仮想スプールデータ107の3ページ目のデータは破棄しても良いし、何もしなくても構わない。次ページがあるかS18で確認し、次ページがあるのでS19でページカウントに1を足し、S9に戻る。4ページ~50ページまでは、差異が無いため、S12でS14に進み、仮想スプールデータ107のデータをスプーラー6に出力していき、50ページ目を処理した時点でS18からS20、S21と進み、ドライバ101の印刷処理が終了する。以上のように、印刷用DOC3の印刷動作としては、1、2ページと4~50ページに関してはGDIデータから印刷データへのスプール時間無しとなり、3ページ目のみのスプール時間で終了した。50ページすべてにドキュメント修正があった場合は、従来と同じように50ページ分のスプールを行ってスプール動作が終了するため、従来印刷にかかっていた時間と同じになる。したがって、本発明の印刷システムでは、変更のあったページの多寡に応じて、印刷完了時間を早めることができる。"