(57)【特許請求の範囲】
【請求項１】
印刷ジョブのジョブデータを生成するホスト装置と、
前記ホスト装置から前記ジョブデータを受けて印刷を行うプリンタと
を備え、
前記ホスト装置は、前記ジョブデータを構成する各ジョブデータ部分の場所を示すジョブ場所データを送り、
前記プリンタは、前記ジョブ場所データを受信し、自己のエンジンの状況や受信バッファメモリの状況に応じて、ジョブデータの全部を要求する場合、前記ジョブ場所データが示すホスト装置に、前記ジョブデータを指定したジョブ要求を送り、一方、ジョブデータの全部ではなく一部を要求する場合、前記ジョブ場所データに基づいて所望のジョブデータ部分を指定したジョブ要求を前記ホスト装置に送り、
前記ホスト装置は、前記ジョブ要求に応答して、前記ジョブデータ、又は、前記ジョブデータ内の前記指定されたジョブデータ部分を、前記プリンタに送る、
プリントシステム。
【請求項２】
前記プリンタは、前記指定したジョブデータ部分を受けた場合、該ジョブデータ部分だけを印刷し、
前記ジョブデータは、一ページのデータであり、
前記指定されたジョブデータ部分は、前記一ページのデータを構成する複数のデータのうちの一部である、
請求項１記載のプリントシステム。
【請求項３】
ホスト装置にて印刷ジョブのジョブデータを保管するステップと、
前記ホスト装置が、前記ジョブデータを構成する各ジョブデータ部分の場所を示すジョブ場所データを送るステップと、
前記プリンタが、前記ジョブ場所データを受信し、自己のエンジンの状況や受信バッファメモリの状況に応じて、ジョブデータの全部を要求する場合、前記ジョブ場所データが示すホスト装置に、前記ジョブデータを指定したジョブ要求を送り、一方、ジョブデータの全部ではなく一部を要求する場合、前記ジョブ場所データに基づいて所望のジョブデータ部分を指定したジョブ要求を前記ホスト装置に送るステップと、
前記ホスト装置が、前記ジョブ要求に応答して、前記保管されたジョブデータ又は該ジョブデータ内の前記指定されたジョブデータ部分を前記プリンタに送るステップと
を有する印刷方法。
【請求項４】
ジョブデータを構成する各ジョブデータ部分の場所を示すジョブ場所データを受信する手段と、
自己のエンジンの状況や受信バッファメモリの状況に応じて、ジョブデータの全部を要求する場合、前記ジョブ場所データが示すホスト装置に、前記ジョブデータを指定したジョブ要求を送り、一方、ジョブデータの全部ではなく一部を要求する場合、前記ジョブ場所データに基づいて所望のジョブデータ部分を指定したジョブ要求を前記ホスト装置に送るジョブ要求部と、
前記ジョブ要求部からの要求に応答して前記ホスト装置から送られてくる前記ジョブデータ又は前記ジョブデータ部分を受けて印刷を行う印刷処理部と
を備えたプリンタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストから印刷ジョブを受けて印刷を行うプリンタ及びそのようなプリントシステムに関する。
【０００２】
【従来の技術】
従来のプリンタは、ホスト又はプリントサーバから印刷ジョブを一方的に送り付けられて、それを受動的に受け取って処理する。図１は、従来のプリンタをＬＡＮなどのネットワーク環境で使用する場合の接続例を示す。ネットワーク１上にプリンタ３、プリントサーバ５及び何台かのホストコンピュータ７、９が接続されている。ホスト７、９はそれぞれの印刷ジョブデータ１１、１３をプリントサーバ５に送る（ステップＳ１，Ｓ２）。プリントサーバ５は、それらのジョブデータ１１、１３をディスクのような補助記憶装置５Ａに保存してキューに入れた後、順次にプリンタ３へ送り出す（Ｓ３）。プリンタ３は、プリントサーバ５からのジョブデータを受動的に受信バッファメモリ３Ａに受け入れた後、これを処理する。
【０００３】
【発明が解決しようとする課題】
プリントサーバ５は、ジョブデータを保管するために非常に大容量の補助記憶装置を必要とする。ネットワーク環境ではプリントサーバ５が必要であるため、コストがかかる。プリンタも、ジョブデータを受けるために大容量の受信バッファメモリを必要とする。プリンタは、常にホストやプリンタサーバの主導で印刷を行うだけであり、自発的に印刷を行う（例えば、プリンタに設定された時刻に設定された印刷ジョブを実行する）ことはできない。
【０００４】
従って、本発明の目的は、プリントサーバが大容量の補助記憶装置を持つ必要をなくすことにある。
【０００５】
本発明の別の目的は、プリントサーバの導入にかかるコストを下げることにある。
【０００６】
本発明のまた別の目的は、プリンタが大容量の受信バッファメモリをもつ必要をなくすことにある。
【０００７】
本発明の更に別の目的は、プリンタが自発的に印刷を行えるようにすることにある。
【０００８】
【課題を解決するための手段】
本発明のプリントシステムでは、ホストは、印刷ジョブが発生したとき、直ちにそのジョブデータを生成して一方的にプリンタ又はプリントサーバに送るのではなく、ホスト内の記憶装置に保管しておくか、又はジョブデータの生成を後回しにする。そして、プリンタは、その印刷ジョブを実行するときに、そのジョブデータをホストに要求する。ホストは、そのジョブ要求に応答して、保管してあるジョブデータをプリンタに送るか、又はその時点でジョブデータを作成してプリンタに送る。
【０００９】
好適な実施形態では、ホスト装置はジョブデータの場所をプリントサーバに通知し、プリントサーバは通知されたジョブ場所を一旦記憶して適当な時点でプリンタに送る。プリンタは、そのジョブを実行しようとするときに、そのジョブ場所が指すホストに対してジョブデータの送信を要求する。
【００１０】
プリンタは、ホストにジョブデータを要求するとき、ジョブデータの全部を要求してもよいが、ジョブデータの中で今処理しようとする部分だけの送信を要求してもよい。
【００１１】
プリントサーバやホストは典型的にはコンピュータにより実施することができるが、そのためのコンピュータプログラムは、ディスク型ストレージ、半導体メモリおよび通信ネットワークなどの各種の媒体を通じてコンピュータにインストールまたはロードすることができる。
【００１２】
【発明の実施の形態】
図２は、本発明の一実施形態の全体構成と動作概要を示す。
【００１３】
ＬＡＮのような通信ネットワーク１１に、プリンタ２３、プリントサーバ２５、及び何台かのホストコンピュータ２７、２９が接続されている。各ホスト２７、２９内のプリンタドライバは、ユーザからの印刷命令を受けると印刷ジョブデータ３５、３７を生成し、それぞれのホストがもつ固定ディスクなどの補助記憶装置２７Ａ、２９Ａにそのジョブデータ３５、３７を保存し、そして、そのジョブデータ３５、３７の場所を示すデータ（例えば、ホスト２７、２９のネットワーク１１上でのアドレスと、ジョブデータ３５、３７のホスト２７、２９内でのローカルなディレクトリ又は識別名称とのセット）３１、３３をプリントサーバ２５に送信する（ステップＳ１１、Ｓ１２）。
【００１４】
プリントサーバ２５は、ホスト２７、２９からのジョブ場所データ３１、３３を受け取り、固定ディスクなどの補助記憶装置２５Ａに一旦保存してキューに入れ、そして、順次にそのジョブ場所データ３１、３３をプリンタ２３へ送り出す（Ｓ１３）。プリンタ２３は、プリントサーバ２５から送られたジョブ場所データ３１、３３を保存した上で、各印刷ジョブを実行しようとするとき、その印刷ジョブのジョブ場所データ３１又は３３を用いて、そのジョブデータ３３又は３５を保存しているホスト２７又は２９に対してジョブ要求を送る。ジョブ要求を受けたホスト２７又は２９は、そのジョブ場所データ３１又は３３が指し示すジョブデータ３３又は３５を自己の補助記憶装置２７Ａ又は２９Ａから読み出してプリンタ２３へ送る（Ｓ１５又はＳ１６）。プリンタ２３は、そのジョブデータ３３又は３５を受信バッファメモリ２３Ａに一時蓄積した上で、これを受信バッファメモリ２３Ａから読み出して印刷処理を行う。
【００１５】
なお、プリンタ２３は、各ホスト２７、２９に対し、ジョブデータ３３、３５の全部を纏めて連続して送るのでなく、ジョブデータ３３、３５内の指定した部分だけを送るように要求することができ、しかも、そのジョブ要求を所望の時点で発することができる。それにより、プリンタ２３は、自己の印刷エンジンの状況や受信バッファメモリ２３Ａの状況に応じて、適当なスケジュールで印刷ジョブを処理することができる。
【００１６】
図３及び図４は、各ホスト２７、２９のプリンタドライバの動作を示す。
【００１７】
図３に示すように、各ホスト２７、２９のプリンタドライバは、ユーザ命令などによって印刷ジョブが発生すると（Ｓ２１）、その印刷ジョブをプリンタ２３に実行させるためのコマンドの列である印刷ジョブデータを生成して、それぞれのホスト２７、２９のローカルなディレクトリに保存する（Ｓ２２）。続いて、その印刷ジョブデータの場所をプリントサーバ２５に通知する（Ｓ２３）。
【００１８】
また、各ホスト２７、２９のプリンタドライバは、図４に示すように、プリンタ２３からジョブ要求を受けると（Ｓ２４）、そのジョブ要求によって指定された印刷ジョブデータの内の指定された部分を、その保存ディレクトリから取り出してプリンタ２３へ送る（Ｓ２５）。ジョブ要求がジョブデータの全部を指定していればその全部を連続して送るが、ジョブ要求がジョブの一部だけを要求している場合には、その一部だけを送る。印刷ジョブデータの全部をプリンタ２３に送り終わると（Ｓ２６）、プリンタドライバは、保存してあったその印刷ジョブデータを削除する（Ｓ２７）。
【００１９】
なお、変形として、図３のステップＳ２２の処理は、図４のステップＳ２５のタイミングで行ってもよい。すなわち、印刷ジョブが発生したときは、その場ではジョブデータを作らずに、ジョブ場所データ（例えばネットワーク上のアドレスとローカルなジョブ名）だけをプリントサーバ２５に送り、その後にプリンタ２３からジョブ要求が来たときに、ジョブデータを作成してプリンタ２３に送るようにしてもよい。また、ステップＳ２７の印刷ジョブデータの削除は、全部送り終わった段階で直ちに行うのでなく、プリンタ２３から削除の許可が来てから行うようにしてもよい。
【００２０】
図５及び図６は、プリントサーバ２５の動作を示す。
【００２１】
図５に示すように、プリントサーバ２５は、各ホスト２７、２９から印刷ジョブの場所を通知されると（Ｓ２８）、その通知されたジョブ場所のデータをキューに保存する（Ｓ２９）。また、プリントサーバ２５は、図６に示すように、プリンタ２３の状態を監視して、プリンタ２３が印刷を行える状態にあるとき（Ｓ３０）、キュー内のジョブ場所データを順次に取り出してプリンタ２３へ送る（Ｓ３１）。
【００２２】
図７は、プリンタ２３の動作を示す。
【００２３】
プリンタ２３は、前のジョブの印刷処理が終わると（Ｓ４１）、プリントサーバ２５から次のジョブのジョブ場所データを取り込み（Ｓ４２）、そのジョブ場所データが示すアドレスのホスト２７又は２９に対して、これから処理しようとするジョブデータのうちの今処理したい部分（全部でも良い）を指定してジョブ要求を送る（Ｓ４３）。そして、要求したジョブデータ部分を受け取るのに必要な容量の受信バッファメモリ２３Ａを確保し（Ｓ４４）、ホストから送られてくるジョブデータ部分を受信バッファメモリ２３Ａに受け処理する（Ｓ４５）。その印刷ジョブの全ページの印刷が終わるまで、ステップＳ４３〜Ｓ４５を繰り返す。全ページｍの印刷が終わった段階で、そのホストへジョブデータを削除して良いという許可を送るようにしてもよい。
【００２４】
上記の実施形態によれば、プリントサーバ２５は、ジョブデータの場所だけを記憶しておけばよいので、補助記憶装置の必要容量は大幅に減る。プリンタ２３は、印刷エンジンの状況や確保できるジョブ受信バッファの容量などに応じて、受け取るジョブデータの量を調整することができるので、必要なメモリ容量が小さくなる。プリンタ２３がジョブの全部ではなく一部だけを要求する場合の例を以下に幾つか示す。
【００２５】
（１）  例えば、最初のジョブ要求ではジョブデータのヘッダ部分だけを要求し、そのヘッダ部分を解析した後、次の処理に必要な部分、例えば第１ページの部分だけを要求し、それを処理してから、次の部分、例えば第２ページのデータだけを要求する。これにより、受信バッファの必要容量は大幅に減る（勿論、メモリ容量に余裕があれば、各ジョブ要求で複数ページを纏めて要求しても良い。）。
【００２６】
（２）  例えば、複数部印刷の場合に、１部目を全ページ印刷し終わってから、再び同じジョブデータをホストに要求して２部目を印刷し、これを各部ごとに繰り返し、最終部まで印刷し終えてからホストにジョブデータの削除を許可する。これにより、全ページのデータをプリンタ内に保存しておく必要がなくなり、必要なメモリ容量は減少する。
【００２７】
（３）  例えば、両面印刷の場合、第２ページ、第４ページ、第１ページ、第３ページ、…という順序で印刷することがあるが、そのような場合、プリンタ２３はその印刷順序に従って最初のジョブ要求で第２ページ、次の要求で第４ページ、次に第１ページ、次に第３ページ、…というように印刷したいページだけを要求する。これにより、プリンタ２３としては、印刷順序の遅いページのデータを先に受信して蓄えておく必要がなくなる。
【００２８】
（４）  例えば、ＰＤＦ（アドビシステムズ社の商標）のフォーマットをもつ百科事典のような大文書は、これを印刷しようとすると、その一つのジョブデータが非常に大きく、しかも内部でリンクを張っている（例えば、ＰＤＦでは、テキストデータに文字フォントや挿入画像のデータがリンクされ、しかも、例えば第１ページにリンクされたフォントデータがファイル内の最終ページの方に存在したりというように、各ページを構成するデータがファイル内の分散した場所に存在していることが多い）ため、プリンタ２３がジョブデータの全部を纏めて受信することが不可能な場合がある。そのような場合、プリンタ２３は、例えば第１ページを印刷するときは第１ページのテキストデータとそれにリンクされたフォントや画像のデータだけをホストに要求するというように、ホスト上のファイルの中から、必要な部分を必要な長さだけを要求して受信する。これにより、少ない受信バッファで印刷イメージを作成することができる。
【００２９】
（５）  例えば、ＷＷＷのホームページは、そのホームページを記述したＨＴＭＬファイルに画像ファイルなどがリンクされている場合が多く、そのリンクされた画像ファイルは同じホスト内のＨＴＭＬファイルとは別のＵＲＬに存在しいる。このようなホームページを印刷する場合、プリンタ２３は、例えばホームページの第１ページを印刷するときは、そのＨＴＭＬファイルと、その第１ページにリンクされている画像ファイルとを、それぞれのＵＲＬに要求するというように、必要なファイルのデータだけをホストに要求する。これにより、少ない受信バッファで印刷イメージを作成することができる。
【００３０】
このようにプリンタがジョブの全部ではなく一部だけをホストに要求する場合を考慮して、その部分指定を容易にするために、ホストは、図３のステップＳ２３に示すジョブ場所データをプリントサーバに送る際（或いは、それとは別の適当な機会）に、そのジョブを構成する各部分の場所（例えば、各ページのデータがファイル内のどの位置にあるか、ホスト内のどのディレクトリにあるか、どのＵＲＬにあるか等）を、プリントサーバなりプリンタなりに通知し、プリンタはその各部分の場所情報に基づいて所望の部分をホストに要求するように構成することもできる。
【００３１】
上述の実施形態において、ホスト２７、２９は、印刷ジョブが発生したら直ちにジョブデータを作成し保存してもよいが、別法として、プリンタからジョブ要求が来て初めてジョブデータを作成するようにすれば、記憶装置にジョブデータを長い時間保管しておくという無駄が省ける。
【００３２】
プリンタ２３は、指定された印刷ジョブは、指定された時刻になってからホストから取り込んで処理するというように、印刷時刻を自分でコントロールできるように構成することもできる。
【００３３】
図８に示すように、印刷ジョブの場所をプリントサーバ２５に通知するホスト２７と、その印刷ジョブのジョブデータ３５を保存してプリンタ２３へ供給するホスト２９とは別のマシンであってもよい。
【００３４】
ジョブ場所データの保存に必要な記憶容量は極めて小さくて済むから、図９に示すように、プリンタ２３がプリントサーバの機能も備えて、ホスト２７、２９からジョブ場所データ３１、３３を直接受け自己の補助記憶装置２３Ｂに保存するようにしてもよい。
【００３５】
図１０は、本発明の別の実施形態を示す。
【００３６】
プリンタ６１は、複数の通信ポート６１Ｂ、６１Ｃを有しており、それらのポート６１Ｂ、６１Ｃに通信ネットワーク４１、５１を介して幾台かのホスト４３、４５、５３が接続されている（通信ポートにホストが専用ケーブルで直接接続されていてもよい）。各ホスト４３、４５、５３は、それぞれで印刷ジョブが発生すると、その印刷ジョブのジョブデータ７１、７３、７５を自己の補助記憶装置に一旦保管し、プリンタ６１からジョブ要求が来たらそのジョブデータをプリンタ２３に送る。プリンタ６１は、ジョブの処理スケジュールを決め、処理しようとする１つの印刷ジョブを保存しているホスト４３、４５又は５３にジョブ要求を送ってその印刷ジョブデータ７１、７３又は７５を受信バッファ６１Ａに取り込み処理し、一つの印刷ジョブが終了すると、同様の手順で次のジョブデータを取り込んで処理する。従って、受信バッファ６１Ａは、１つだけ確保すればよい。因みに、従来の複数ポートをもつプリンタは、複数ポートにそれぞれに対応する複数の受信バッファを確保しているので、図１０のプリンタ６１は従来のプリンタより受信バッファメモリ容量は小さくて済む。
【００３７】
なお、プリンタ６１が印刷ジョブの発生を認識する方法としては、前の実施形態のように各ホスト４３、４５、５３が印刷ジョブの発生の都度にプリントサーバ又はプリンタへ通知してもよいし、プリンタ６１から各ホスト４３、４５、５３に随時に問い合わせても良い。
【００３８】
以上、本発明の実施形態を説明したが、これらの実施形態はあくまで本発明の説明のための例示であり、本発明をこれら実施形態にのみ限定する趣旨ではない。従って、本発明は、上記実施形態以外の様々な形態でも実施することができるものである。
【図面の簡単な説明】
【図１】従来のプリンタをネットワーク環境で用いた場合の接続例を示すブロック図。
【図２】本発明の一実施形態の接続を示すブロック図。
【図３】ホスト２７、２９のプリンタドライバの動作を示すフローチャート。
【図４】ホスト２７、２９のプリンタドライバの動作を示すフローチャート。
【図５】サーバの動作を示すフローチャート。
【図６】サーバの動作を示すフローチャート。
【図７】プリンタの動作を示すフローチャート。
【図８】同実施形態の変形例を示すブロック図。
【図９】別の変形例を示すブロック図。
【図１０】第２の実施形態を示すブロック図。
【符号の説明】
２１、４１、５１  通信ネットワーク
２３、６１  プリンタ
２５  プリントサーバ
２７、２９、４３、４５、５３  ホストコンピュータ
【図１】
0003788050.tif 000002
【図２】
0003788050.tif 000003
【図３】
0003788050.tif 000004
【図４】
0003788050.tif 000005
【図５】
0003788050.tif 000006
【図６】
0003788050.tif 000007
【図７】
0003788050.tif 000008
【図８】
0003788050.tif 000009
【図９】
0003788050.tif 000010
【図１０】
0003788050.tif 000011