(57)【要約】【課題】印刷データのコピーを効率良く行うことを目的としている印刷制御システム及び印刷制御方法の提供。【解決手段】１ページ分のデータをプリンタに送りながらデータ量を産出すると同時にファイルに保存し、そのページのデータが、プリンタの持っているメモリに収まるのであれば、コピー部数を送信し、プリンタ側でコピーを行わせ、収まらないのであれば、プリンタ側でコピーを行わせないようにコピー部数１を送信し、ドライバ側で、先にファイルに保存したデータを、コピー部数分だけプリンタに送る。【選択図】　　　　図１
2004013204.tif 000002
【特許請求の範囲】
【請求項１】
ページ単位にコピーを行なう印刷システムにおいて、プリンタに搭載されているメモリサイズを取得する手段と、印刷データを作成する手段と、作成したデータをプリンタに送信する手段と、印刷データ作成に際して、印刷データを記憶装置に保存する手段と、保存した印刷データのサイズを保持する手段と、複数部印刷の場合に、前記メモリサイズと、前記印刷データサイズを比較し、メモリサイズが大きい場合には、印刷部数をページの最後にプリンタに送信し、印刷データサイズが大きい場合には、印刷部数を１として、印刷部数と印刷部数マイナス１ページ分の印刷データを送信することを特徴とする、印刷制御システム。
【請求項２】
ページ単位にコピーを行なう印刷システムにおいて、プリンタに搭載されているメモリサイズを取得する手段と、印刷データを作成する手段と、作成したデータをプリンタに送信する手段と、印刷データ作成に際して、印刷データを記憶装置に保存する手段と、保存した印刷データのサイズを保持する手段と、複数部印刷の場合に、前記メモリサイズと、前記印刷データサイズを比較し、メモリサイズが大きい場合には、印刷部数をページの最後にプリンタに送信し、印刷データサイズが大きい場合には、印刷部数を１として、印刷部数と印刷部数マイナス１ページ分の印刷データを送信することを特徴とする、印刷制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は印刷制御システム及び印刷制御方法に関し、プリンタ本体でページ単位にコピー可能なプリンタに対して、コピーの可否を判別して印刷データを生成する、プリンタドライバに関するものである。
【０００２】
【従来の技術】
一般的に、印刷データのコピーは、以下のように行なわれる。
【０００３】
・プリンタドライバで、１ページ分のデータをラスタデータとして生成し、コピー部数分プリンタにデータを送る。
【０００４】
・プリンタ本体にコピー機能がある場合には、コピー部数を先に送信し、後から、生成した１ページ分のデータをプリンタに送信し、プリンタ側でコピーを行なう。
【０００５】
・特開平１１−２４８６９号公報では、ドライバから、コピースタート、コピーエンド、プリンタからコピーＯＫ、コピーＮＧ等のコマンドのやりとりによって、プリンタ本体でコピーを行なうか、プリンタドライバでコピーを行なうかを判断する。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来例では、次のような問題があった。
【０００７】
・プリンタドライバでのみコピーを行なうとデータ量が多くなってしまい、印刷速度が遅くなってしまう。
【０００８】
・プリンタ本体でのみコピーを行なうと、プリンタに搭載されているメモリ量によっては、１ページ分のデータが展開できずに、正しくコピー印刷できない場合がある。
【０００９】
・どのようなデータでもプリンタ本体でコピーできるようにするには、相当量のメモリを搭載しなければならず、プリンタ本体のコストアップにつながる。
【００１０】
・特開平１１−２４８６９号公報では、コマンドのやりとりが必要になり、プリンタドライバが、プリンタからのコマンドを受信できないと、実現できない。また、データのやりとりに時間がかかると、全体として、印刷に時間がかかってしまう。
【００１１】
本発明は、上述の問題点に着目してなされたものであって、印刷データのコピーを効率良く行うことのできる印刷制御システム及び印刷制御方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記課題を解決するために、本発明では、あらかじめプリンタのメモリを記憶しておき、プリンタドライバは、最初にコピー部数を送信し、印刷データをプリンタに送信しつつ、記憶装置にも保存しておき、１ページ分のデータを送信し終わった時点で、ページ終了のデータを送信する。送信したデータ量が、プリンタに搭載されているメモリ量より小さければ、プリンタ側でコピーが行われるので、プリンタドライバは、そのままプリンタ側でコピーできると判断し、次のページのデータを作成する。送信したデータ量が、プリンタに搭載されているメモリ量より大きければ、プリンタはコピーを行なうことができないので、コピー数を１にリセットしてプリンタに送信し、プリンタドライバは、プリンタ側ではコピーできないと判断し、記憶装置に保存してあるデータをコピー数マイナス１部だけ、プリンタにデータを送信することによって、より効率的なコピー印刷を行なうことができる。
【００１３】
上記の構成を改めて以下（１）及び（２）に整理して示す。
【００１４】
（１）ページ単位にコピーを行なう印刷システムにおいて、プリンタに搭載されているメモリサイズを取得する手段と、印刷データを作成する手段と、作成したデータをプリンタに送信する手段と、印刷データ作成に際して、印刷データを記憶装置に保存する手段と、保存した印刷データのサイズを保持する手段と、複数部印刷の場合に、前記メモリサイズと、前記印刷データサイズを比較し、メモリサイズが大きい場合には、印刷部数をページの最後にプリンタに送信し、印刷データサイズが大きい場合には、印刷部数を１として、印刷部数と印刷部数マイナス１ページ分の印刷データを送信するようにした。
【００１５】
（２）ページ単位にコピーを行なう印刷システムにおいて、プリンタに搭載されているメモリサイズを取得する手段と、印刷データを作成する手段と、作成したデータをプリンタに送信する手段と、印刷データ作成に際して、印刷データを記憶装置に保存する手段と、保存した印刷データのサイズを保持する手段と、複数部印刷の場合に、前記メモリサイズと、前記印刷データサイズを比較し、メモリサイズが大きい場合には、印刷部数をページの最後にプリンタに送信し、印刷データサイズが大きい場合には、印刷部数を１として、印刷部数と印刷部数マイナス１ページ分の印刷データを送信するようにした。
【００１６】
【発明の実施の形態】
以下に本発明の実施の形態を、実施例に基づいて図面を参照しながら説明する。
【００１７】
【実施例】
（第１の実施例）
図１が本発明を実施した図である。
【００１８】
図２、図３が本発明の特徴をもっとも良く表しているプリンタドライバ側の処理に関するフローチャートである。ユーザによって印刷開始が指定されると、プリンタドライバＣ２は、ドキュメントスタートコマンドをプリンタＣ５に送信する（Ｓ１）。次にページスタートコマンドを送信する（Ｓ２）。印刷データがアプリケーションから渡されるので、プリンタドライバＣ２は、プリンタＣ５が解釈できるデータを作成する（Ｓ３）。作成したデータは、プリンタＣ５に送信される（Ｓ４）。ここで、コピー部数が指定されている場合には（Ｓ５）、作成したプリンタＣ５が解釈できる形式の印刷データを記憶装置Ｃ３に保存しておく（Ｓ６）。そして、そのサイズを、ページデータサイズＳｐとして積算しておく（Ｓ７）。コピー部数が１の場合には、記憶装置Ｃ３への保存、および、ページデータサイズの積算は行なわない。これらの処理をページの終わりまで繰り返す。１ページ分の印刷データの処理が終ると（Ｓ８）、保存したページデータサイズＳｐと、先に記憶しておいたプリンタＣ５に搭載されているメモリサイズＳｍとを比較し（Ｓ９）、メモリサイズＳｍのほうが大きい場合には、ここでコピー部数を送信し（Ｓ１７）、ページエンドコマンドを送信する（Ｓ１８）。一方、ページデータサイズＳｐのほうがプリンタＣ５に搭載されているメモリサイズＳｍより大きかった場合には、コピー部数を１としてプリンタに送信し（Ｓ１０）、ページエンドコマンドを送信する（Ｓ１１）。その後、さらに、ページスタートコマンドを送信し（Ｓ１２）、記憶装置Ｃ３に保存してあった１ページ分のプリンタＣ５が解釈できる形式の印刷データを読み出して（Ｓ１３）プリンタＣ５に送信し（Ｓ１４）、ページエンドコマンドを送信する（Ｓ１５）。これら、（Ｓ１２）から（Ｓ１５）までの処理をコピー部数マイナス１ページ分繰り返す（Ｓ１６）。送信したデータが最終ページであれば（Ｓ１９）ドキュメントエンドコマンドを送信する（Ｓ２０）。
【００１９】
このような処理によって、１ページのデータであれば、図６のようなデータ列がプリンタＣ５に送信され、複数ページのデータであれば、図７のようなデータ列がプリンタＣ５に送信される。
【００２０】
図４、図５が本発明の特徴をもっとも良く表しているプリンタ側の処理に関するフローチャートである。最初にドキュメントスタートコマンドを受信した場合には（Ｓ２１）、ドキュメントスタートの処理を行なう（Ｓ２２）。例えば、プリンタの初期化や、バッファの初期化などが考えられる。次にページスタートコマンドを受信する（Ｓ２３）。次に印刷データを受信するので（Ｓ２４）、受信したデータサイズを積算し（Ｓ２５）、印刷用のバッファにデータを吐き出し（Ｓ２６）、印刷を開始する。この時、データがコピー用のバッファサイズをオーバーしていなければ（Ｓ２７）、受信データをコピー用バッファＣ９に保存し（Ｓ２８）、データがコピー用のバッファサイズをオーバーしていれば、コピーバッファＣ９をクリアする（Ｓ２９）。その後、コピー部数を受信した場合には（Ｓ３０）、コピー部数を保存しておく（Ｓ３１）。なお、コピー部数は、印刷データのページの途中でも、受信することができる。これら（Ｓ２４）から（Ｓ３１）までの処理は、ページエンドコマンドを受信するまで（Ｓ３２）、繰り返される。ページエンドコマンドを受信したら、次のステップに進む。コピー用のバッファＣ９がクリアされていた場合には（Ｓ３３）、プリンタＣ５ではコピーできないので、コピー部数が設定されていても、強制的に１を設定する（Ｓ３４）。これは、プリンタドライバＣ２側でのプリンタバッファサイズの計算ミスによる不正コピー対策である。コピー部数が１であった場合には（Ｓ３５）、コピーバッファＣ９をクリアし（Ｓ３８）、ドキュメントエンドコマンドを受信したか確認し（Ｓ３９）、ドキュメントエンドコマンドを受信した場合には、ドキュメントエンドの処理を行ない（Ｓ４０）、処理を終了する。ドキュメントエンドコマンドを受信していなければ、次のページのデータを待つ。一方、コピー部数がｎであった場合には、コピー用バッファＣ９に保存されている印刷データを印刷エンジンに転送し（Ｓ３６）、１ページ分の印刷を行なう。これを指定コピー部数分繰り返し処理し（Ｓ３７）、コピー部数が１になったら（Ｓ３５）、コピーバッファＣ９をクリアし（Ｓ３８）、ドキュメントエンドコマンドを受信したか確認し、ドキュメントエンドコマンドを受信した場合には（Ｓ３９）、ドキュメントエンドの処理を行ない（Ｓ４０）、処理を終了する。ドキュメントエンドコマンドを受信していなければ、次のページのデータを待つ。
【００２１】
なお、プリンタＣ５に搭載されているメモリサイズについては、プリンタＣ５から情報を受信して設定することもできるし、ユーザに設定させるなどして、取得することも可能である。また、コピー部数については、一般的には、プリンタドライバＣ２のユーザインターフェイスからのユーザによる入力、または、アプリケーションでユーザが設定した値をアプリケーションから直接ドライバに渡されるなどして、取得する。
【００２２】
【発明の効果】
以上説明したように、本発明によれば、プリンタでコピーできるサイズのデータについては、部数１のページデータをプリンタに送信し、プリンタ側で印刷させ、プリンタでコピーできないサイズのデータについては、ドライバで保存した印刷データを、コピー部数分繰り返しプリンタに送信するので、効率的な、コピー印刷を行なうことができる。
【図面の簡単な説明】
【図１】本発明の実施例を示す図
【図２】本発明の実施例１のプリンタドライバ側の処理のフローチャート１
【図３】本発明の実施例１のプリンタドライバ側の処理のフローチャート２
【図４】本発明の実施例１のプリンタ本体側の処理のフローチャート１
【図５】本発明の実施例１のプリンタ本体側の処理のフローチャート２
【図６】本発明の実施例１の１ページデータの送信データ列
【図７】本発明の実施例１の複数ページデータの送信データ列
【符号の説明】
Ｃ１　プリンタドライバを動作させるホストコンピュータ
Ｃ２　プリンタドライバ
Ｃ３　印刷データを保存しておく記憶装置
Ｃ４　外部装置とのインターフェイス
Ｃ５　プリンタ本体（プリンタ）
Ｃ６　外部装置とのインターフェイス
Ｃ７　データを受信する受信バッファ
Ｃ８　プリンタを制御する制御部
Ｃ９　コピーするデータを保管しておくコピーバッファ（コピー用バッファ）
Ｃ１０　実際に印刷を行なう、プリンタエンジン部
【図１】
2004013204.tif 000003
【図２】
2004013204.tif 000004
【図３】
2004013204.tif 000005
【図４】
2004013204.tif 000006
【図５】
2004013204.tif 000007
【図６】
2004013204.tif 000008
【図７】
2004013204.tif 000009