説明

印刷装置、印刷指示装置および印刷システム

印刷指示を受けると、複数のサブデータから構成される印刷データを取得して印刷する印刷装置であって、 サブデータを取得する印刷データ取得手段(インタプリタ1203)と、取得されたサブデータが、印刷データの印刷を完了するために再びインタプリタ1203によって取得される必要性があるか否かを判定する判定手段(ラスタライザ1202)と、必要性がないと判定された場合に、その旨を、印刷指示を発した印刷指示装置に通知する通知手段(通信I/F1204)とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は印刷装置、印刷指示装置および印刷システムに関し、特に印刷データを一時的に格納する印刷バッファのメモリ解放制御技術に関する。
【背景技術】
【0002】
従来より、ネットワークで接続された印刷システムにおいて、印刷装置(以下、「画像形成装置」、「プリンタ」とも記す。)から印刷指示装置(以下、「文書画像供給装置」、「ホスト装置」とも記す。)に対して印刷データの転送を要求するPull方式の印刷システムでは、文書画像供給装置が備える印刷バッファに印刷データを蓄積し、画像形成装置が印刷を実行している際に、必要になった印刷データをその都度、前記文書画像供給装置に対し、転送要求を行い、必要な印刷データを受信し、印刷している。
【0003】
この印刷の処理中に、文書画像供給装置は印刷処理に不要になったデータを随時消去していき、印刷バッファを有効に利用することが必要となる。
【0004】
従来から行われている印刷バッファのメモリ解放制御方法としては、画像形成装置が文書画像供給装置に印刷データの転送の要求を行い、受信が完了した際に行う転送応答を文書画像供給装置が受信した際に当該印刷データを印刷バッファから消去するか、または、PUSH方式の印刷システムのように、文書画像供給装置が印刷データの転送が完了したと判断した場合に、印刷バッファから当該印刷データを消去する方法がある。
【0005】
例えば、図1に示されるように印刷データをバンド処理する場合、第1バンド、第2バンド、…の印刷データを図2に示されるラスタメモリA,Bに交互に格納し、第1バンドの印刷データの転送が完了すると、第1バンドの印刷データを削除し、第3バンドの印刷データをラスタメモリAに格納し、第2バンドの印刷データの転送が完了すると、第2バンドの印刷データを削除し、第4バンドの印刷データをラスタメモリBに格納する処理を繰り返し行うようにしてしている。図3は、バンドデータをラスタメモリに格納し、転送を行い、消去するタイミングを表す図である。
【0006】
このようなPUSH方式の印刷システムにおいては、文書画像供給装置が画像形成装置に対して印刷させたい印刷データを送信するため、文書画像供給装置が印刷データ転送完了後に当該印刷データを印刷バッファ上から消去することに問題はなかった。
【0007】
ところで、オフィスでのネットワーク化の普及に伴いネットワーク対応のプリンタが広く普及している。今後は、家庭においてもネットワーク化が進む方向にあり、家庭でのネットワーク対応プリンタも普及してゆくと予想される。なお、ネットワークプリントにおけるネットワークとしては、従来からのLAN(Local AreaNetwork)だけでなく、インターネットも対象になりつつある。
【0008】
ここで、ネットワークプリント方式の1つに、Print By Referrence方式(本明細書中、以下、PBR方式と呼ぶ)がある。PBR方式では、ホスト装置が印刷データのサーバともなり、ホストがプリンタにURLを指定した印刷指示を出し、印刷指示を受け取ったプリンタはURLで指定されるWebサーバからデータを取得して印刷する。
【0009】
ここで、URLでインターネット上のデータを指定すれば、インターネット上のデータをも印刷することが可能である。
【0010】
PBR方式では、インターネット接続機能を持たないホストからであっても、インターネット上のデータを印刷可能であることが大きな優位点である。安価なホストでは、大きなコストアップ要因となるインターネット接続機能を搭載するのは困難であるが、そのようなホストからでも、インターネット上データの印刷機能を実現できるので、今後広く普及することが予想される。
【0011】
ここで、インターネット・プリンティングプロトコルの代表的なものとしてRFCで規定されており標準プロトコルとなっているInternet Printing Protocol(本明細書中、以下、IPPと呼ぶ)があるが、IPPにおいてもPBR方式に準じたものとしてPrint−URIリクエストが規定されている。この動作であるが、ホストがプリンタにURLを指定した“Print−URIリクエスト”を送ると、それを受け取ったプリンタが、URL指定先のWebサーバ上のデータを取得して印刷を行なう。このPrint−URI機能により、世界中のWebサーバ上のデータを印刷することを実現できる。
【0012】
さて、PBR方式対応プリンタでの印刷データとしては、PostScriptに代表されるページ記述言語で書かれたデータ、PCLに代表されるプリンタ制御言語で書かれたデータ、JPEG圧縮された画像データ等の他にHTMLに代表されるマークアップ言語で書かれたデータ(以下、マークアップデータと呼ぶ)等がある。
【0013】
ここで、マークアップデータでは、データ内部から別のデータを参照する記述が可能であるが、PBR方式で印刷データとしてマークアップデータを指定して印刷指示をする場合、指定したマークアップデータが印刷対象となりうるデータを参照しているならば、マークアップデータだけでなく参照データも印刷対象となる。
【0014】
さて、PBR方式を対応するプリントシステムにおいては、クライアント、プリンタ、Webサーバの3者が登場するが、各々を別々の装置に存在させなくてもよい。クライアントとWebサーバを1つのホスト装置に実装し、プリンタ装置と接続させるシステム構成も可能である。システム構成上、装置が2つしか存在しないので、このシステム構成を、本明細書中で以後、2者システムと呼ぶことにする。2者システムでは、ホスト装置とプリンタ装置よりなる通常のLAN対応プリントシステムと同じ構成になるが、PBR方式でインターネットプリンティングも可能なプリンタ装置をそのままLAN対応プリンタとして使用できることになる。
【0015】
さて、従来技術として、PBR方式での2者システムの例がある(例えば、特許文献1を参照)。特許文献1において、PBRのプロトコルとして、IPPでのPrint−URIリクエストで実現している。
【0016】
この従来例の2者システムにおいては、ホスト装置はPrintURIリクエストで自装置内の印刷データを指定するURLをプリンタに送る。プリンタはURLより印刷データがネットワーク上のホスト装置にあることを特定し、ホスト装置のWebサーバにアクセスして指定の印刷データをダウンロードして印刷する。
【0017】
図4は、この従来例におけるホスト装置におけるデータ処理手順動作を示すフローチャートである(特許文献1の図7参照)。なお、以下では、印刷データのデータ転送と削除タイミングに関わる部分について重点的に説明し、それ以外については簡略説明にとどめる。
【0018】
まず、ステップS9001において、印刷データ転送のためのWebサーバが起動していない場合には、Webサーバを起動する(S9002)。
【0019】
次に、印刷データの登録が行なわれ(S9003)、印刷データの管理を行なう(S9004)。
【0020】
次に、データに対するPull要求(ダウンロード要求)をプリンタから受けると、それが印刷データに対する一番目のPull要求の場合かを判断する(S9005)。
【0021】
一番目のPull要求の場合は、Pull要求を受け付けて(S9006)、印刷データをプリンタに返信する(S9007)。
【0022】
そして、印刷データの転送が完了したかを判断して(S9008)、印刷データの転送が完了したと判断した場合には、ステップS9009に移行して当該印刷データを自装置内から削除し、Webサーバを停止し(S9010)、処理を終了する(S9011)。
【0023】
さて、PBR方式では、Webサーバ上の印刷データの削除タイミングについては一般的に規定がない。実装に依存するがIPPにおいても同様である。
【0024】
一般的にPBRの2者システムでは、ホスト装置はプリンタが印刷出力が完了したことを確認後に自装置内の印刷データを削除する。印刷出力が完了したので印刷データが不要なのは自明だからである。
【0025】
ここで、印刷エンジンでの印刷処理には印刷データ転送等の他の処理に比べて多くの時間が必要である。印刷出力完了まで印刷データの保管をしておくとなると、ホスト装置は、長時間、印刷データ格納のための印刷データバッファ(RAM等のワークメモリ)を解放できず、システムリソースの効率的かつ有効な活用が困難である。
【0026】
これに対して、この従来例では、プリンタが1度ダウンロードした印刷データの再ダウンロードをしないことを前提とし、ホスト装置は印刷データの送信が完了した時点で印刷データは不要と判断して削除を行なっている。
【0027】
この従来例においては、印刷データの送信が印刷出力の完了よりもかなり早く終了するので、印刷データを格納する印刷データバッファの解放をより早くでき、ホスト装置のシステムリソースを早いタイミングで印刷以外の処理に提供でき効率的かつ有効な活用が図れることを目的としている。
【特許文献1】特開2002−202874号公報
【発明の開示】
【発明が解決しようとする課題】
【0028】
しかしながら、従来からあるPull方式の印刷システムのメモリ解放制御方法では、例えば、インターネット上のHTMLコンテンツのようなドキュメントを印刷ドキュメントとする場合、1つの印刷ドキュメントの中で同一の画像オブジェクトが複数回用いられることが多々ある。
【0029】
この場合、文書画像供給装置から画像形成装置に一度目の画像データの転送が完了しても、画像形成装置から文書画像供給装置に再度同一の画像の転送の要求がされることになる。従来のPull方式のメモリ解放制御方法では、一度目の転送完了時に当該画像データは削除されており、二度目以降の転送要求には対応できないことになる。
【0030】
このような場合に、従来のPull方式の印刷システムでは、2度以上転送要求のある印刷オブジェクトは、印刷バッファ上から消去されているため、文書画像供給装置は画像形成装置からの印刷オブジェクトの転送要求に対して、再度印刷オブジェクトの生成を行う負荷をおうか、または画像形成装置からの印刷オブジェクトの転送要求に対応することができない。
【0031】
印刷データが再度要求される可能性のあるPull方式の印刷システムでも、印刷ジョブが終了すると印刷バッファは解放できるため、最小でも1つの印刷ジョブで必要な印刷データを全て格納できるだけの印刷バッファが確保できれば問題ないが、印刷バッファの容量が十分でない場合、印刷データの転送後も新たな印刷データをバッファに格納できない状況になり、印刷データの転送を継続することが不可能となる。
【0032】
つまり、従来の技術では、印刷データを早く削除しすぎた結果、印刷データの再要求があった場合には印刷データを再度生成して印刷バッファに格納しなければならず、印刷データの再要求があった場合におけるオーバーヘッドが大きいという問題がある。
【0033】
さて、PBR方式では、プリンタが印刷データをダウンロードしたからといって、再ダウンロード要求をしないという保証はない。これは2者システムでのPBRにおいても同様である。再ダウンロードするか否かはプリンタの実装に依存する。
【0034】
PBR方式において、再ダウンロードをうまく活用すれば、少ないシステムリソース(RAM等)しか持たない安価なプリンタであっても高機能を実現することができる。
【0035】
以下に、一例を示す。画像データをプリンタで回転させて印刷する場合である。インクジェットプリンタに代表されるラインプリンタでは、印刷データバッファにはプリンタヘッド走査に必要な分だけの印刷データを格納して処理する構成をとれるので、印刷データバッファを実現するメモリサイズを小さくでき、これにより低価格を実現している。
【0036】
ここで、PBR方式でプリントするラインプリンタで画像の回転印刷機能を実現することを考える。最も簡単な方法は画像データ全体をダウンロードし、画像データ全体をプリンタのプリンタバッファに格納し、それを回転したうえで印刷する方法である。この方法ならばダウンロードは1回で十分であり、再ダウンロードは必要ない。しかしながら、通常画像データはサイズがかなり大きく、その全体を格納するためには大きなサイズのプリンタバッファメモリが必要となるため、コストアップにつながり安価なプリンタとできない。
【0037】
これに対して、ダウンロードした画像データのうち、プリンタヘッド走査において必要とされまた小さなプリンタバッファに格納できるだけを回転させてプリンタバッファに格納することで回転印刷をする方法がある。この方法においては、回転イメージは1回で作成できず、画像データの「ダウンロード・回転」を繰り返すことで回転させて印刷を行なうことで画像回転印刷を実現する。この方法の場合、同じ印刷データに対して複数回のダウンロードが必要であるが、小さな印刷データバッファしかない安価なラインプリンタであっても画像回転のような高機能を実現することができる。
【0038】
このように、PBR方式のネットワークプリンタに印刷データの再ダウンロードをするならば、安価な構成で高機能を実現できる。
【0039】
しかしながら、前記従来のホスト装置のデータ処理では、プリンタからの再ダウンロードに対応しておらず、印刷データの再ダウンロードが必要なプリンタ処理を継続できないという課題を有していた。
【0040】
また、一般的なPBRの2者システムで行なわれている印刷出力完了時に印刷データを削除する方式だと再ダウンロードに対応できるが、印刷データ格納のためのシステムリソースの効率的かつ有効な活用が困難である課題は残る。
【0041】
すなわち、従来の技術では、印刷データを早く削除しすぎた結果、印刷データの再要求があった場合には印刷データを再度生成して印刷バッファに格納しなければならず、印刷データの再要求があった場合におけるオーバーヘッドが大きかったり、印刷バッファに印刷データを長時間持ちすぎたりするという問題がある。
【0042】
そこで、本発明は、オーバーヘッドが生じたり、印刷データを長時間持ちすぎたりすることを防止しつつ、効率よく印刷バッファを利用することができる印刷装置、印刷指示装置および印刷システムを提供することを目的とする。
【課題を解決するための手段】
【0043】
上記目的を達成するために、本発明に係る印刷装置においては、印刷指示を受けると、複数のサブデータから構成される印刷データを取得して印刷する印刷装置であって、サブデータを取得する印刷データ取得手段と、取得されたサブデータが、前記印刷データの印刷を完了するために再び前記データ取得手段によって取得される必要性があるか否かを判定する判定手段と、前記必要性がないと判定された場合に、その旨を、前記印刷指示を発した印刷指示装置に通知する通知手段とを備えることを特徴とする。
【0044】
これにより、その旨を通知された印刷指示装置は、印刷データが再び取得されることがないことを知り、印刷データを印刷バッファから迅速に削除することができる。したがって、オーバーヘッドが生じたり、印刷データを長時間持ちすぎたりすることを確実に防止しつつ、効率よく印刷バッファを利用することができる。
【0045】
また、本発明に係る印刷装置においては、前記印刷データには、1つの親サブデータと前記親サブデータから参照される1つ以上の子サブデータが含まれ、前記印刷データ取得手段は、子サブデータに先立って親サブデータを取得し、前記判定手段は、取得された親サブデータが参照している子サブデータに基づいて前記必要性を判定することを特徴とすることができる。
【0046】
これにより、印刷指示装置は、子サブデータごとに再び取得されることがあるか否かを判断することができる。
【0047】
また、本発明に係る印刷装置においては、前記判定手段は、前記印刷データ取得手段によって取得された子サブデータが前記親サブデータの1箇所だけから参照されている場合に、前記必要性がないと判定することを特徴とすることもできる。
【0048】
これにより、他の箇所から参照されている場合に、その子サブデータを削除してしまう事態を避けることができる。
【0049】
また、本発明に係る印刷装置においては、前記判定手段は、前記印刷データ取得手段によって取得された子サブデータが前記親サブデータで以降参照されない場合に、前記必要性がないと判定することを特徴とすることもできる。
【0050】
これにより、オーバーヘッドが生じたり、印刷データを長時間持ちすぎたりすることを確実に防止しつつ、迅速に印刷バッファを解放することができる。
【0051】
また、本発明に係る印刷装置においては、前記親サブデータから参照される子サブデータには、前記子サブデータから参照される孫サブデータが含まれることを特徴とすることもできる。
【0052】
これにより、多様な箇所から孫サブデータ(画像データ)を集め、印刷データを構成することができる。
【0053】
また、本発明に係る印刷装置においては、前記判定手段は、前記親サブデータだけについて、前記必要性を判定することを特徴とすることもできる。
【0054】
これにより、印刷バッファに親サブデータだけが格納されている場合に、この親サブデータを迅速に削除することができる。
【0055】
また、本発明に係る印刷装置においては、前記通知手段は、前記印刷指示装置から前記通知の要求を受けた場合にだけ、前記通知をすることを特徴とすることができる。
【0056】
これにより、通知の要求を受けない場合には、通知の必要がないので、印刷装置における処理が簡易化され、かつ通信量の少ない方法で印刷バッファを解放することができる。
【0057】
また、本発明に係る印刷装置においては、前記通知手段は、前記印刷指示に前記通知の要求が含まれているか否かを判断し、含まれている場合にだけ、前記通知をすることを特徴とすることもできる。
【0058】
これにより、通知の要求が含まれている場合にだけ通知すればよいので、オーバーヘッドが生じたり、印刷データを長時間持ちすぎたりすることを確実に防止することができる。
【0059】
また、本発明に係る印刷装置においては、前記親サブデータは、マークアップ言語で記述され、前記子サブデータは、マークアップ言語で記述されたデータを除くデータであることを特徴とすることができる。
【0060】
また、本発明に係る印刷装置においては、前記親サブデータは、HTMLで記述され、前記子サブデータは、画像データまたはスタイル情報データであることを特徴とすることもできる。
【0061】
また、上記目的を達成するために、本発明に係る印刷指示装置においては、複数のサブデータから構成される印刷データの印刷を印刷装置に指示する印刷指示装置であって、少なくとも1つのサブデータを保持する印刷バッファと、前記印刷バッファに保持されたサブデータを前記印刷装置に出力する印刷データ出力手段と、出力されたサブデータが、前記印刷データの印刷を完了するために再び前記印刷装置によって取得される必要性がない旨の通知を前記印刷装置から受信する必要性受信手段と、前記通知が受信された場合に、前記通知に対応するサブデータを前記印刷バッファから削除する削除手段とを備えることを特徴とする。
【0062】
これにより、その旨を通知された場合にだけ、印刷データを印刷バッファから迅速に削除することができる。したがって、オーバーヘッドが生じたり、印刷データを長時間持ちすぎたりすることを確実に防止しつつ、効率よく印刷バッファを利用することができる。
【0063】
また、本発明に係る印刷指示装置においては、前記印刷データには、1つの親サブデータと前記親サブデータから参照される1つ以上の子サブデータが含まれ、前記印刷バッファは、前記印刷データを構成するサブデータのうち、親サブデータだけを保持し、前記削除手段は、前記親サブデータを前記印刷バッファから削除することを特徴とすることができる。
【0064】
なお、本発明は、このような印刷装置や、印刷指示装置として実現することができるだけでなく、このような印刷装置と、印刷指示装置とから構成される印刷システムとして構成したり、このような印刷装置や、印刷指示装置が備える特徴的な手段をステップとする印刷方法や、印刷指示方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して配信することができるのはいうまでもない。
【発明の効果】
【0065】
以上の説明から明らかなように、本発明に係る印刷装置、印刷指示装置および印刷システムによれば、印刷データが再び取得されることがない場合にだけ、印刷データを印刷バッファから迅速に削除することができる。したがって、オーバーヘッドが生じたり、印刷データを長時間持ちすぎたりすることを確実に防止しつつ、効率よく印刷バッファを利用することができる。
【0066】
よって、本発明により、ハードウェア資源の少ない装置間で、システムリソースの効率的かつ有効活用を図ることができるPull方式の印刷システムが実現され、インターネットが普及してきた今日における本願発明の実用的価値は極めて高い。
【0067】
本発明は、以下の実施の形態および添付の図面を用いて説明されるが、これは例示を目的とするものであって、本発明はこれらに限定されることを意図しない。
【図面の簡単な説明】
【0068】
【図1】印刷システムにおける印刷データのバンド処理を表す図である。
【図2】印刷データを格納する印刷バッファの使用例を表す図である。
【図3】図1のバンドデータを図2のラスタメモリに格納し、転送を行い、消去するタイミングを表す図である。
【図4】従来の実施例におけるホスト装置のデータ処理手順の一例を示すフローチャートである。
【図5】本発明の実施の形態に係る印刷システムの全体構成を示すブロック図である。
【図6】実施の形態1における印刷ドキュメントの例を示す図である。
【図7】図6の印刷ドキュメントを表す印刷記述データを示す図である。
【図8】印刷記述データのラスタライズ手順を示す図である。
【図9】印刷オブジェクトの要不要判定手順を含む画像形成装置の処理フローを示す図である。
【図10】印刷オブジェクトの不要通知による印刷バッファ解放のフローを示す図である。
【図11】本発明の実施の形態1における文書画像供給装置と画像形成装置間の通信シーケンスを示す図である。
【図12】実施の形態2における印刷ドキュメントの例を示す図である。
【図13】実施の形態2の印刷ドキュメントの詳細な構成を示す図である。
【図14】図13の印刷ドキュメントを表す印刷記述データを示す図である。
【図15】内部処理モードの変更手順を含む画像形成装置の処理フローを示す図である。
【図16】印刷オブジェクト転送要求による転送済み印刷オブジェクトの解放フローを示す図である。
【図17】本発明の実施の形態1における文書画像供給装置と画像形成装置間の通信シーケンスを示す図である。
【図18】本発明の実施の形態3におけるネットワーク構成を示すシステム構成図である。
【図19】本発明の実施の形態3におけるホスト装置の構成を示すブロック図である。
【図20】本発明の実施の形態3における印刷装置の構成を示すブロック図である。
【図21】本発明の実施の形態3におけるホスト装置の機能構成を示す図である。
【図22】本発明の実施の形態3における印刷装置の機能構成を示す図である。
【図23】本発明の実施の形態3におけるプリンタステータスを定義する定義テーブルを示す図である。
【図24】本発明の実施の形態3におけるプリンタステータスレコードのフィールド構成を示す図である。
【図25】本発明の実施の形態3におけるジョブステータスを定義する定義テーブルを示す図である。
【図26】本発明の実施の形態3におけるジョブステータスレコードのフィールド構成を示す図である。
【図27】本発明の実施の形態3におけるプリンタステータスパケットのフィールド構成を示す図である。
【図28】本発明の実施の形態3におけるジョブステータスパケットのフィールド構成を示す図である。
【図29】本発明の実施の形態3における印刷データの構成を示す図である。
【図30】本発明の実施の形態3における印刷データの格納場所を説明する図である。
【図31】本発明の実施の形態3におけるホスト装置と印刷装置間の通信シーケンスを示す図である。
【図32】本発明の実施の形態3におけるホスト装置のデータ処理を示すフローチャートである。
【図33】本発明の実施の形態3における印刷装置のデータ処理を示すフローチャートである。
【図34】本発明の実施の形態4における印刷データの構成を示す図である。
【図35】本発明の実施の形態4における印刷データの格納場所を説明する図である。
【図36】本発明の実施の形態4におけるホスト装置と印刷装置間の通信シーケンスを示す図である。
【図37】本発明の実施の形態4におけるホスト装置のデータ処理を示すフローチャートである。
【図38】本発明の実施の形態4における印刷装置のデータ処理を示すフローチャートである。
【図39】本発明の実施の形態5におけるネットワーク構成を示すシステム構成図である。
【図40】本発明の実施の形態5における印刷データの構成を示す図である。
【図41】本発明の実施の形態5における印刷データの格納場所を説明する図である。
【図42】本発明の実施の形態5におけるホスト装置、サーバ装置と印刷装置間の通信シーケンスを示す図である。
【図43】印刷指示装置の印刷データバッファに、6個のプリントジョブ(Job5〜Job10)のデータを格納している状態を示す図である。
【図44】印刷指示装置におけるジョブ管理と、プリンタにおけるジョブのデータ取り込みの様子を示す図である。
【符号の説明】
【0069】
1,2,3 印刷システム
1100 文書画像供給装置
1101 アプリケーション
1102 変換部
1103 プリンタ制御部
1104 通信I/F
1200 画像形成装置
1300 伝送媒体
1400 印刷ドキュメント
1401〜1403 画像オブジェクト
1404 印刷記述データ
2001 ホスト装置
2002 印刷装置
2003 ネットワーク
2004 PBRクライアント機能
2005 PBRデバイス機能
2006 Webクライアント機能
2007 Webサーバ機能
2008 サーバ装置
2042 プリントサービス
2043 PBRクライアントポート
2045 印刷データバッファ
2047 Webサーバ
2051 PBRデバイスポート
2056 XHTML−Printインタプリタ
2057 レイアウト計算部
2059 Webクライアント
【発明を実施するための最良の形態】
【0070】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【0071】
(実施の形態1)
図5は、本発明の実施の形態に係る印刷システムの全体構成を示すブロック図である。
【0072】
印刷システム1は、図5に示されるように、文書画像供給装置1100と、画像形成装置1200と、文書画像供給装置1100と画像形成装置1200とを相互に通信可能に接続する伝送媒体1300とから構成される。
【0073】
文書画像供給装置1100としては、デジタルTVや、セットトップボックス(STB)等を使用することができるが、その他データのソース源となる機器であれば何でも適用可能である。また、画像形成装置1200としては、プリンタあるいはファクシミリ等を使用することができる。さらに、伝送媒体1300としては、コンピュータとプリンタ間に使用されるバスあるいは公衆網、専用回線、インターネット網等の有線または無線でデータ転送可能な媒体を用いることができる。なお、図5においては、文書画像供給装置1100としてデジタルテレビ(DTV)を使用した場合の内部構成が示されており、画像形成装置1200としてプリンタを使用した場合の内部構成が示されている。
【0074】
文書画像供給装置1100は、アプリケーション1101と、変換部1102と、プリンタ制御部1103と、印刷バッファ1105と、通信I/F1104とから構成される。
【0075】
アプリケーション1101は、印刷記述データを生成する。変換部1102は、アプリケーション1101から出力された印刷記述データの形式を、画像形成装置1200が解読可能な階層構造をもつリンクファイル(ここではXHTML(Extensible HyperText Markup Language)を使用する)形式に変換する。プリンタ制御部1103は、印刷記述データを解読してプリントジョブを発行したり、印刷記述データのバッファ管理を行なう。印刷バッファ1105は、印刷記述データを一時的に保存する。通信I/F1104は、伝送媒体1300との接続インターフェースを提供する。
【0076】
なお、印刷バッファ1105は、文書画像供給装置1100に内蔵されている場合が示されているが、ネットワーク上の別の機器に存在する場合等であってもよく、存在位置は問わず適用可能である。
【0077】
上記構成において、まず、ユーザがアプリケーション1101を用いて印刷データの編集等を行い印刷要求を出すと、アプリケーション1101から印刷に必要なデータが出力される。なお、このアプリケーション1101については、メーラや、WebブラウザおよびBMLブラウザ、デジタルスチルカメラのデータを編集可能なDSCアルバムなどがある。変換部1102は、アプリケーション1101からのデータを、プリンタ側で解読可能な言語、例えばXHTML形式に変換する。なお、印刷データが、既にXHTML形式等であれば、特に変換は行なわなくてもよい。このように、変換された印刷記述データは、プリンタ制御部1103に渡され、印刷バッファ1105に格納される。その際、印刷記述データの中でリンクされている画像オブジェクトなどについては、変換部1102において画像形成装置1200で印刷処理が可能な形式(例えば、JPEGやPNG形式)のデータに変換されて、本来当該データが存在していたソース源から印刷バッファ1105にコピーされる。ここで、上記ソース源は、文書画像供給装置1100の中に存在するか、外に存在するかを問わない。ここでも、既に画像形成装置1200で印刷処理が可能な形式のデータである場合には、変換の必要はないことはもちろんである。
【0078】
なお、この印刷バッファ1105として、文書画像供給装置1100のメモリおよびHDD(Hard Disk Drive)を利用できる。例えば当該文書画像供給装置1100がデジタルテレビである場合、当該デジタルテレビの機能上本来備えているメモリ等の記憶手段の一部を使用することができる。
【0079】
画像形成装置1200は、プリンタエンジン1201と、ラスタライザ1202と、インタプリタ1203と、通信I/F1204とから構成される。
【0080】
プリンタエンジン1201は、印刷ドキュメントを記録紙等に印刷する。ラスタライザ1202は、印刷ドキュメントを小さな点の集まりとして表現されるラスタデータに展開する。インタプリタ1203は、印刷ドキュメントを構成する親サブデータである印刷記述データ(トップページ)の解析を行い、ラスタライザ1202が必要とする印刷ドキュメントを構成する子サブデータである画像オブジェクトの転送要求を文書画像供給装置1100に出力する。通信I/F1204は、伝送媒体1300を介して、上記印刷記述データや、画像オブジェクト、転送要求等を送受信する。
【0081】
ここで、図6に示される印刷ドキュメント1400を印刷しようとする場合、アプリケーション1101が扱うデータが、図7に示すプリンタ200Pで処理可能な言語(ここではXHTML形式いわゆるML形式)で記述された印刷記述データに変換され、アプリケーション1101が扱うデータにリンクされているオブジェクトが、表示可能な画像オブジェクト(JPEG、PNG等)等の印刷オブジェクトに変換されて、それぞれ印刷バッファ1105に蓄積される。印刷データは、印刷記述データを表す場合もあり、印刷オブジェクトを表す場合もある。
【0082】
図6の印刷ドキュメント1400を例に挙げると、印刷ドキュメント1400は、印刷記述データ1404と、3つの画像オブジェクト1401,402,403とから構成されており、画像オブジェクト1401と403とは同一の画像オブジェクトがリンクされている。印刷記述データ1404は、印刷ドキュメント1400のトップページを表すサブデータ(親サブデータ)であり、画像形成装置1200からの要求によって、文書画像供給装置1100の通信I/F1104から画像形成装置1200の通信I/F1204に転送される。印刷記述データ1404が送られてくると、インタプリタ1203は、印刷記述データ1404の解析を行い、ラスタライザ1202が必要とする画像オブジェクト1401,1402,1403の転送要求を文書画像供給装置1100に出す。また、インタプリタ1203は、印刷記述データ1404の解析の際に、画像オブジェクト1401,1402,1403の印刷を完了するために再び取得される必要性があるか否かを判定する。
【0083】
プリンタエンジン1201が、印刷ドキュメント1400を表す印刷記述データ1404にしたがって印刷する場合、ラスタライザ1202は図8に示される矢印1451〜1461に沿って上から順にラスタライズを行う。矢印1451〜1454の領域をラスタライズする場合には、画像オブジェクト1401が必要になり、矢印1451をラスタライズする直前に、ラスタライザ1202が文書画像供給装置1100へ画像オブジェクト1401の転送要求を出し、画像オブジェクト1401を受信する。次に、矢印1455〜1457の領域をラスタライズする場合には、画像オブジェクト1402が必要になり、矢印1455をラスタライズする直前に、ラスタライザ1202が文書画像供給装置1100へ画像オブジェクト1402の転送要求を出し、画像オブジェクト1402を受信する。次に、矢印1458〜1461の領域をラスタライズする場合には、画像オブジェクト1403が必要になるが、画像オブジェクト1403が画像オブジェクト1401と同一のものであるので再度画像オブジェクト1401が必要になり、再度文書画像供給装置1100に対して画像オブジェクト1401の転送要求を出し、画像オブジェクト1401を受信し、矢印1458〜1461の領域のラスタライズを開始することになる。
【0084】
なお、画像オブジェクト1403のラスタライズ時には、画像形成装置1200がキャッシュメモリを搭載し、前記キャッシュメモリに画像オブジェクト1401を保持している場合には、文書画像供給装置1100に対して、画像オブジェクト1401の転送要求は不必要となることはもちろんである。
【0085】
図6の印刷ドキュメント1400では、画像オブジェクト1401(front.jpg)について、画像形成装置1200から文書画像供給装置1100に対し2度転送を要求されることになるため、1度目の転送が終わった時点で画像オブジェクト1401を印刷バッファ1105から消去した場合、文書画像供給装置1100は2度目の転送要求に対応できなくなるため、印刷バッファ1105から印刷データを消去するタイミングを画像形成装置1200から文書画像供給装置1100に対して転送完了の応答があった時点とすることはできない。
【0086】
そのため、印刷ドキュメント1400に関するオブジェクトに対して、画像形成装置1200は図9に示すような処理手順によって、文書画像供給装置1100に対してラスタライザ1202、またはインタプリタ1203が印刷オブジェクトの不要通知を行う。
【0087】
まず、インタプリタ1203は、文書画像供給装置1100から転送された印刷記述データ1404を解析する(S1101)。次いで、ラスタライザ1202は、ラスタライズの準備をし(S1102)、印刷記述データ1404にリンクされている印刷オブジェクトのデータが必要か否か判断する(S1103)。
【0088】
印刷オブジェクトのデータが必要な場合は、ラスタライザ1202は、文書画像供給装置1100に対して転送要求を行い(S1104)、印刷オブジェクトのデータを受信する(S1105)。続いて、この受信した印刷オブジェクトのデータをラスタライズする(S1106)。また、上記ステップS1103において、印刷オブジェクトの転送要求が必要でない場合は、次いで、ラスタライザ1202は、受信した印刷オブジェクトのデータをラスタライズする(S1106)。ラスタライズ(S1106)の後、印刷文書末(印刷ドキュメントのラスタライズ完了)かどうかの判断を行う(S1107)。印刷文書末でなく、引き続きラスタライズを行う場合、現時点までに受信完了した印刷オブジェクトの転送要求を再度行うことが必要になるか否か判断する(S1108)。受信完了した印刷オブジェクトの転送要求を再度行わない場合は、当該印刷オブジェクトが以降不要であることの通知を文書画像供給装置1100に行う(S1109)。
【0089】
なお、印刷オブジェクトの不要通知を行う際、不要な印刷オブジェクトを特定する情報としては、当該印刷オブジェクトのフルパス、当該オブジェクトの含まれる印刷ジョブID等の印刷ジョブを特定する情報と相対パスの組み合わせ、等が挙げられるが、印刷オブジェクトを特定できる情報であれば適用可能である。また、印刷オブジェクトの不要通知を行う時点は、再度転送要求しない印刷オブジェクトを不図示の印刷バッファに格納できた時点とすることもできる。
【0090】
そして、ステップS1108における判断は、印刷データがトップページで以降参照されるか否かで行われ、印刷データがトップページで以降参照されない場合に、必要性がないと判断される。これにより、オーバーヘッドが生じたり、印刷データを長時間持ちすぎたりすることを確実に防止しつつ、迅速に印刷バッファを解放することができる。
【0091】
一方、文書画像供給装置1100は、図10に示すように印刷データ生成するステップS1201、印刷データを印刷バッファに格納するステップS1202、印刷ジョブを発行するステップS1203、画像形成装置からの受信情報が印刷データの転送要求か判断するステップS1204、受信情報が印刷データ転送要求でなかった場合、画像形成装置からの受信情報が印刷データ不要通知か判断するステップS1205、受信情報が印刷データの不要通知でなかった場合、画像形成装置からの受信情報が印刷ジョブ終了通知か判断するステップS1206、受信情報が印刷データの転送要求であった場合、印刷バッファ1105に格納された当該印刷データを当該画像形成装置1200に転送するステップS1207、受信情報が印刷データの不要通知であった場合、印刷バッファ1105の当該印刷データ格納領域を開放するステップS1208を備えた手順で、不要通知を受信した文書画像供給装置1100は、画像形成装置からの受信情報が印刷データ不要通知か判断するステップS1205と、受信情報が印刷データの不要通知であった場合、印刷バッファ1105の当該印刷データ格納領域を開放するステップS1208によって、印刷バッファ1105から当該印刷データを格納している領域を開放することができる。
【0092】
図11は、印刷ドキュメント1400を印刷する場合において、文書画像供給装置1100および画像形成装置1200間で行われるシーケンス図である。
【0093】
文書画像供給装置1100のアプリケーション1101および変換部1102は、印刷ドキュメント1400を構成する印刷記述データ1404、画像オブジェクト1401〜1403を作成し、印刷バッファ1105に格納する。アプリケーション1101は、プリンタ制御部1103に対して印刷を行なうよう依頼する。
【0094】
プリンタ制御部1103は、印刷記述データ1404、画像オブジェクト1401〜1403を内部の管理データベースに登録と管理をする。そして、プリンタ制御部1103は、不図示のPBRクライアントポートにURIプリントリクエストを画像形成装置1200に発行するよう要求する。要求を受けたPBRクライアントポートは、通信I/F1104を介して画像形成装置1200に対してURIプリントリクエストを送る(S1501)。
【0095】
ここで、URIプリントリクエストにより画像形成装置1200に、
・印刷データを指定するURL
・印刷条件
とともに
・文書画像供給装置1100の印刷データが不要になった場合にプリンタステータス情報を提示する要求を送る。本実施の形態1ではURLで印刷記述データ1404を指定する。このURIプリントリクエストの送信とそれに対する応答受信はPBRクライアントポートが行なう。
【0096】
URIプリントリクエストを受けた画像形成装置1200の不図示のジョブマネージャはジョブの発行を行い、発行したジョブに対応するジョブステータスレコードを作成しジョブ管理テーブルに登録する。登録後にPBRデバイスポートによりURIプリントリクエストの応答を返す(S1502)。
【0097】
そして、不図示のプリンタマネージャは、プリンタステータスが“data no need”状態になったら文書画像供給装置1100にプリンタ状態通知イベントを行なうように内部状態をセットする。
【0098】
次にジョブマネージャは、URIプリントリクエストからURLで指定された印刷データ(実際には印刷記述データ1404)をダウンロードするようWebクライアントに依頼し、Webクライアントは文書画像供給装置1100へPull要求「Pull要求(topppage.xhtmlp)」を送信する(S1503)。
【0099】
Pull要求を受けた文書画像供給装置1100のプリンタ制御部1103は、印刷バッファ1105から印刷記述データ1404(toppage.xhtmlp)を取り出し、画像形成装置1200に返送する(S1504)。
【0100】
印刷記述データ1404を受け取った画像形成装置1200のWebクライアントは、ジョブマネージャ経由で、インタプリタ1203に受け渡し、インタプリタ1203は印刷記述データ1404にインタプリト処理を行い文書構造を示すDOMツリー(Document Object Model)に変換し、不図示のレイアウト計算部に渡す。レイアウト計算部はDOMツリーよりレイアウト計算を行なうとともに、印刷記述データ1404で参照されている画像オブジェクト1401〜1403を特定する。
【0101】
次に、レイアウト計算部は、まず画像オブジェクト1401(front.jpg)をダウンロードするようWebクライアントに依頼し、Webクライアントは通信I/F1204を介して文書画像供給装置1100へPull要求「Pull要求(front.jpg)」を送信する(S1505)。
【0102】
Pull要求を受けた文書画像供給装置1100のプリンタ制御部1103は、印刷バッファ1105から画像オブジェクト1401(front.jpg)を取り出し、通信I/F1104を介して画像形成装置1200に送信する(S1506)。
【0103】
画像オブジェクト1401(front.jpg)を受信すると、受け取ったWebクライアントはレイアウト計算部に受け渡し、レイアウト計算部はラスタライザ1202でラスタライズ処理をさせてプリンタエンジン1201への出力データを作成させる。出力データの作成が終わるとラスタライザ1202はプリンタエンジン1201へそれを送信し、プリンタエンジン1201は画像オブジェクト1401を印刷する。
【0104】
画像オブジェクト1401の印刷が終わると、次に、レイアウト計算部は、画像オブジェクト1402(side.jpg)をダウンロードするようWebクライアントに依頼し、Webクライアントは通信I/F1204を介して文書画像供給装置1100へPull要求「Pull要求(side.jpg)」を送信する(S1507)。なお、画像オブジェクト1401(front.jpg)については、再度印刷に利用するので、オブジェクト(front.jpg)不要通知を送信することはない。
【0105】
Pull要求を受けた文書画像供給装置1100のプリンタ制御部1103は、印刷バッファ1105から画像オブジェクト1402(side.jpg)を取り出し、通信I/F1104を介して画像形成装置1200に送信する(S1507)。
【0106】
画像オブジェクト1402(side.jpg)を受信すると、画像オブジェクト1401(front.jpg)の場合と同様の処理が行われ、プリンタエンジン1201は画像オブジェクト1402を印刷する。そして、画像オブジェクト1402(side.jpg)については、印刷に再度利用することがないので、ラスタライザ1202またはインタプリタ1203は、通信I/F1204を介してオブジェクト(side.jpg)不要通知を送信する(S1509)。
【0107】
なお、この不要通知は、プリンタステータスレコードのプリンタステータスフィールドにステータス値“data no need”を記入したプリンタ状態通知イベントとして送信される。
【0108】
プリンタ状態通知イベントを受け取ると、プリンタ制御部1103は、“data no need”というイベント理由より、印刷バッファ1105に格納されている画像オブジェクト1402を削除してよいと判断し、印刷バッファ1105の画像オブジェクト1402が格納されていたメモリ領域を解放(S1509)。
【0109】
オブジェクト不要要求の送信が終わると、次に、レイアウト計算部は、画像オブジェクト1403(front.jpg)をダウンロードするようWebクライアントに依頼し、Webクライアントは通信I/F1204を介して文書画像供給装置1100へPull要求「Pull要求(front.jpg)」を送信する(S1511)。
【0110】
Pull要求を受けた文書画像供給装置1100のプリンタ制御部1103は、印刷バッファ1105から画像オブジェクト1403(front.jpg)を取り出し、通信I/F1104を介して画像形成装置1200に送信する(S1512)。
【0111】
画像オブジェクト1402(front.jpg)を受信すると、プリンタエンジン1201は画像オブジェクト1402を印刷する。そして、画像オブジェクト1403(front.jpg)については、印刷に再度利用することがないので、ラスタライザ1202またはインタプリタ1203は、通信I/F1204を介してオブジェクト(front.jpg)不要通知を送信する(S1513)。
【0112】
プリンタ状態通知イベントを受け取ると、プリンタ制御部1103は、“data no need”というイベント理由より、印刷バッファ1105に格納されている画像オブジェクト1403、つまりforn.jpgを削除してよいと判断し、印刷バッファ1105のfront.jpgが格納されていたメモリ領域を解放(S1514)。そして、印刷記述データ1404についても、削除してよいと判断し、印刷記述データ1404が格納されていた領域を開放し、印刷データ転送サービスが不要になったので、Webサーバを停止する。
【0113】
その後、画像形成装置1200のレイアウト計算部は、ラスタライザ1202を介してプリンタエンジン1201が残りを印刷し、印刷ドキュメント1400の印刷を完了する。そして、インタプリタ1203またはラスタライザ1202は、PBRデバイスポートにジョブステータスフィールドに“completed”と書き込んだジョブステータスパケットを、文書画像供給装置1100に送信するよう依頼し、PBRデバイスポートがジョブステータスパケットを文書画像供給装置1100に送信する。このジョブステータスパケットを受け取った文書画像供給装置1100は、画像形成装置1200での印刷ドキュメント1400の印刷の完了を知る。
【0114】
かかる構成によれば、印刷ドキュメントの印刷完了前に、画像形成装置1200から文書画像供給装置1100へ印刷データの不要通知を行うことにより、文書画像供給装置1100は、オーバーヘッドを生じることなく、印刷バッファ1105の解放を迅速確実に行うことができ、バッファ容量が少ない場合でも効率よく印刷バッファ1105を利用し、印刷ジョブを完了することができる。
【0115】
また、文書画像供給装置1100が携帯電話機のようなモバイル機器である場合、画像形成装置1200から印刷完了通知を受け取る前に画像形成装置1200との接続を切断することができるので、接続時間を短縮できるという効果も発揮でき、モバイル機器にとってきわめて有効である。
【0116】
(実施の形態2)
次いで、本発明の実施の形態2に係る印刷システムについて説明する。なお、この印刷システムの構成が実施の形態1における図5で示される印刷システム1と同等であるので、システム構成の図示が省略されている。
【0117】
ところで、上記実施の形態1においては、図6に示される印刷ドキュメント1400、つまり同じオブジェクトを2回用いる場合を例に挙げて説明したが、Pull方式の印刷システムでは図12に示される印刷ドキュメント1500も考えられる。
【0118】
図12の印刷ドキュメント1500が、印刷記述データと、1つの画像オブジェクト1501で構成されているが、印刷バッファ1105のメモリ容量によっては図13のように画像オブジェクト1501を画像オブジェクト1511〜画像オブジェクト1513のように分割し、画像オブジェクト1511〜画像オブジェクト1513を印刷を行う優先度の高いものから順に印刷バッファ1105に格納していく必要がある。
【0119】
図14は、図13の印刷ドキュメント1500を表す印刷記述データ514の構成例を示す図である。
【0120】
図13のような印刷ドキュメント1500を印刷する場合は、実施の形態1で述べた文書画像供給装置1100が不要通知を受信した際に印刷バッファ1105を解放することも可能であるが、図10で示す手順において、文書画像供給装置1100が印刷ジョブを発行するステップS1204の段階では、画像オブジェクト1511〜画像オブジェクト1513は、印刷ドキュメント1500に1回ずつしか現れ無いことがわかっているので、毎回の不要通知の受信は不必要になる。このため、この実施の形態2に係る印刷システムでは、文書画像供給装置1100および画像形成装置1200は、1回しか利用しないことが予めわかっている場合には、受信済みの画像オブジェクトについては再度転送要求をしないで、不要通知を省略するという処理モードを備えている。
【0121】
つまり、このような場合は、画像形成装置1200では、図15に示すように、内部処理モードの変更ステップS1301で、文書画像供給装置1100から受信した印刷ジョブの情報を用い、受信済みの画像オブジェクトは再度転送要求をしないという処理モードに変更し、不要通知を省略する。
【0122】
また、文書画像供給装置1100では、図16に示すように、印刷データ生成時に各印刷オブジェクトが一回ずつしか現れないことがアプリケーション1101、変換部1102およびプリンタ制御部1103のいずれかでわかった場合、このいずれかは、バッファ処理モードの変更ステップS1401で、印刷バッファの解放のタイミングを不要通知受信後から、印刷オブジェクトの転送要求を受信した時に変更し、画像形成装置1200から印刷オブジェクト転送要求を受信した時に、印刷バッファ内に転送済みの印刷データが存在する場合に当該バッファ領域を解放する転送済み印刷データ解放ステップS1402を備える。
【0123】
図17は、印刷ドキュメント1500を印刷する場合において、文書画像供給装置1100および画像形成装置1200間で行われるシーケンス図である。なお、ここにおいても、図11に示される印刷ドキュメント1400を印刷する場合と対応する処理については同じステップ番号を付し、その説明を省略する。
【0124】
このような構成により、図13のような構造の印刷ドキュメント1500を印刷する場合に、実施の形態1よりも簡易、かつ、通信量の少ない方法で、オーバーヘッドを生じることなく、迅速かつ確実に印刷バッファ1105のメモリ解放制御を行うことができる。
【0125】
なお、本実施の形態2における文書画像供給装置1100から画像形成装置1200へのバッファ処理モード(画像形成装置1200における内部処理モードの変更)の通知方法としては、印刷ジョブにバッファ処理モードを含める方法、文書画像供給装置1100と画像形成装置1200との間で印刷ジョブ実行のためのコネクションが確立された後にコマンドとして通知する方法、印刷記述データ、または印刷オブジェクト内に記述する方法等が挙げられる。
【0126】
また、上記実施の形態2では印刷データを解放してから(S1402,S1522,S1523,S1524)、次の印刷データを転送したが(S1207,S1506,S1508,S1512)、この逆の順序であってもよい。
【0127】
かかる構成によれば、文書画像供給装置1100から画像形成装置1200へ印刷バッファ1105の処理モード通知を行うことにより、文書画像供給装置1100は印刷バッファ1105の解放を行うタイミングを知ることができ、バッファ容量が少ない場合でも効率よく印刷バッファ1105を利用し、印刷ジョブを完了することができる。
【0128】
(実施の形態3)
次いで、本発明の実施の形態3に係る印刷システムについて説明する。
【0129】
図18は、本発明の実施の形態3に係る印刷システムの全体構成を示す図である。
この印刷システム2は、図18に示されるように、ホスト装置2001と、印刷装置2002と、ホスト装置2001と印刷装置2002とを接続するネットワーク2003とから構成される。ここで、本発明は通信および印刷データの管理に関するものであるので、図18において通信機能の存在位置も示されている。
【0130】
ホスト装置2001は、PBRクライアント機能2004と、Webサーバ機能2007とを備える。
【0131】
印刷装置2002は、PBRデバイス機能2005と、Webクライアント機能2006とを備える。
【0132】
PBRクライアント機能2004は、PrintByRefernce(PBR)方式のクライアント通信機能を提供する。PBRデバイス機能2005は、PBRクライアント機能2004からの印刷指示や各種問い合わせ等への回答等のPBRプリントのデバイス側通信機能を提供する。Webクライアント機能2006は、PBRデバイス機能2005からの印刷データのダウンロード要求を受けてネットワーク上のWebサーバにダウンロードを要求する。Webサーバ機能2007は、印刷装置2002のWebクライアント機能2006からのダウンロード要求に答える。
【0133】
本実施の形態3におけるネットワークプリントシステムである印刷システム2は、2者システムであるので、PBRクライアント機能2004とWebサーバ機能2007とが1つのホスト装置2001上に実装されている。
【0134】
図19は、図18に示したホスト装置2001のハードウェア構成を示す内部ブロック図である。なお図18と同一のものには同一の符号を示してある。
【0135】
図19に示されるように、ホスト装置2001は、CPU2011と、ROM2012と、RAM2013と、ネットワークインターフェースカード(NIC)2014と、CRTコントローラ(CRTC)2015と、CRTディスプレイ(CRT)2016と、リモコン受光ユニット(RMR)2017と、リムーバブルメディアコントローラ(RMC)2018と、リムーバブルメディアアクセスデバイス(RMA)2019と、これらを接続するシステムバス2020とから構成される。
【0136】
CPU2011は、OSや印刷アプリケーションプログラムをはじめとする各種アプリケーションプログラムや、ネットワークドライバ等の各種デバイスドライバプログラム等のソフトウエアを実行する。ROM2012は、CPU2011が実行するソフトウエアを格納する。RAM2013は、システム起動時にROMに格納されたソフトウエアがコピーされ、またアプリケーションソフトやOSのワークエリアを提供する。NIC2014は、ネットワーク2003へのインターフェースを提供するネットワークインターフェースカードである。CRTC2015は、CRT2016の表示を制御する。RMR2017は、リモコンからの送信光を受光する。RMC2018は、RMA2019を制御する。RMA2019は、SDカード等のリムーバブルメディアにアクセスする。システムバス2020は、CPU2011、ROM2012、RAM2013、NIC2014、CRTC2015、RMR2017、RMC2018を互いに接続する。
【0137】
図20は、図18に示される印刷装置2002のハードウェア構成を示す内部ブロック図である。なお図18と同一のものには同一の符号を示してある。
【0138】
印刷装置2002は、図20に示されるように、コントローラ部2030と、印刷部2035と、操作パネル2038とを備える。コントローラ部2030は、CPU2031と、ROM2032と、システムバス2033と、印刷部インターフェース2034と、入力部2036とから構成される。
【0139】
コントローラ部2030のCPU2031は、ROM2032のプログラム用ROMに記憶された制御プログラムに基づいてシステムバス2033に接続される各種のデバイスとのアクセスを統括的に制御し、印刷部インターフェース2034を介して接続される印刷部(プリントエンジン)2035に出力情報としての画像信号を出力する。
【0140】
また、ROM2032のプログラム用ROMには、CPU2031が実行可能な制御プログラム等が記憶される。さらに、ROM2032のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ROM2032のデータ用ROMにはホスト装置2001で使用される情報等が記憶される。
【0141】
CPU2031は、入力部2036を介してホスト装置2001との通信処理を実行し、印刷装置2002内の情報等をホスト装置2001に通知する。
【0142】
RAM2037は、主としてCPU2031の主メモリ、ワークエリア等として機能する。なお、RAM2037は、出力情報展開領域、環境データ格納領域、NVRAM等として用いられる。
【0143】
また、操作パネル2038は、操作のためのスイッチおよびLED表示器等が配されて構成される。ここで、NVRAM(図示しない)に、操作パネル2038から入力されたプリンタモード設定情報をユーザ別、グループ別に記憶するようにしてもよい。
【0144】
図21は、図18に示されるホスト装置2001の機能構成を示す図である。
ホスト装置2001は、印刷アプリケーション2041と、プリントサービス2042と、PBRクライアントポート2043と、プリンタ情報管理部2044と、印刷データバッファ2045と、SDデータ管理部2046と、Webサーバ2047とから構成される。
【0145】
印刷アプリケーション2041は、プリントサービス2042の印刷データ生成機能により印刷データを構成する親サブデータおよび子サブデータを作成し、印刷データバッファ2045に格納したり、プリントサービス2042に対して印刷を行なうよう依頼したりする。
【0146】
プリントサービス2042は、印刷アプリケーション2041に対して印刷データ生成サービス、ジョブ管理サービス、プリンタ管理サービス、印刷管理サービスを提供する。なお、本実施の形態3では、XHTML−Printで記述した印刷データの印刷について説明することにする。
【0147】
ここで、XHTML−Printというのは、XMLに基づいて書き直されたHTML言語に対してプリント処理の負荷低減等考慮したサブセット化および機能追加を施した言語であり、Printer Working Group(PWG)において標準化されている。
【0148】
PBRクライアントポート2043は、PBRクライアント機能2004を提供する。PBRクライアントポート2043は、URIプリントリクエストの印刷装置2002への送信およびその応答受信と、印刷装置2002からのジョブ状態通知イベントおよびプリンタ状態通知イベントの受信とを行なう。プリンタ情報管理部2044は、プリンタの状態情報や、プリンタのネットワークアドレス情報を管理する。
【0149】
印刷データバッファ2045は、RAM2013に作成され、親サブデータおよび子サブデータを一時的に格納する。SDデータ管理部2046は、RMA2019からアクセスされるSDメモリカード内のデータを管理する。Webサーバ2047は、Webサーバ機能2007を提供する。そして、Webサーバ2047は、印刷装置2002からのからのPull要求を受け付け、Pull要求内のURLで指定されたデータを返送する。
【0150】
なお、印刷アプリケーション2041、プリントサービス2042、PBRクライアントポート2043、プリンタ情報管理部2044、SDデータ管理部2046、Webサーバ2047は、ソフトウエアであり、このソフトウエアをCPU2011が実行するにより実現される。
【0151】
図22は、図18に示される印刷装置2002におけるコントローラ部2030の機能構成を示す図である。
【0152】
コントローラ部2030は、PBRデバイスポート2051と、ジョブマネージャ2052と、ジョブ管理テーブル2053と、プリンタマネージャ2054と、プリンタステータスレコード2055と、XHTML−Printインタプリタ2056と、レイアウト計算部2057と、ラスタライザ2058と、Webクライアント2059とを備える。
【0153】
PBRデバイスポート2051は、PBRデバイス機能2005を提供する。そして、PBRデバイスポート2051は、ホスト装置2001からのURIプリントリクエストの受信および応答の送信、ホスト装置2001へのジョブ状態通知イベントおよびプリンタ状態通知イベントの送信を行なう。
【0154】
ジョブマネージャ2052は、PBRデバイスポート2051を介して受信したURIプリントリクエストの受付処理およびジョブ管理を行なう。ジョブ管理テーブル2053は、ジョブマネージャ2052がジョブ管理をする上で使用する。プリンタマネージャ2054は、印刷装置2002の機器状態を管理する。プリンタステータスレコード2055は、印刷装置2002の機器情報を格納する。
【0155】
XHTML−Printインタプリタ2056は、XHTML−Printで記述された印刷データのパーシング処理および解釈処理を行う。レイアウト計算部2057は、XHTML−Printインタプリタ2056の処理結果を受け、印刷出力のレイアウト情報を計算する。ラスタライザ2058は、レイアウト計算部2057の計算結果を受け、印刷部2035への出力データである画像信号を計算し、印刷部2035へ出力するとともにその管理を行なう。
【0156】
Webクライアント2059は、Webクライアント機能2006を提供し、ホスト装置2001へPull要求を出し、データを受信する。
【0157】
なお、PBRデバイスポート2051、ジョブマネージャ2052、XHTML−Printインタプリタ2056、レイアウト計算部2057、ラスタライザ2058、Webクライアント2059はソフトウエアであり、このソフトウエアをコントローラ部2030のCPU2031が実行することにより実現される。
【0158】
また、ジョブ管理テーブル2053およびプリンタステータスレコード2055は、コントローラ部2030のRAM2037に用意される。
【0159】
図23は、図18に示される印刷装置2002のプリンタステータスを示す図である。
図23に示される“Paper empty”、”Paper jam”、”Ink empty”、”Output tray open”、”Fatal error”については、プリンタで一般的に使用されているステータスである。
【0160】
“parent sub−data no need”、”data no need”は、本明細書中にて追加定義されたステータスである。“parent sub−data no need”ステータスは、印刷装置2002が親サブデータ(本実施の形態3ではXHTML−Printデータが相当する)の処理を終え、ホスト装置2001上の親サブデータが必要でなくなった状態になったことを示す。“Data no need”ステータスは、印刷装置2002が印刷データの処理を終え、ホスト装置2001上の印刷データが必要でなくなった状態になったことを示す。印刷データが複数のサブデータより構成される場合には、全てのサブデータが必要でなくなった状態になるとこのステータスになる。
【0161】
図24は、図22に示されるプリンタステータスレコード2055のフィールド構成を示す図である。
【0162】
プリンタステータスレコード2055は、プリンタIDフィールド2071と、プリンタステータスフィールド2072とから構成される。プリンタIDフィールド2071には、印刷装置2002を識別するためのプリンタID情報が格納される。プリンタステータスフィールド2072には、図23で定義されるプリンタステータスが格納される。
【0163】
図25は、印刷装置2002のジョブのステータスの構成例を示す図である。
図25に示される“Pending”、“Pending−held”、“Processing”、“Processing−held”、“Canceled”、“Aborted”“Completed”は、プリンタで一般的に使用されているステータスである。
【0164】
“Processing−parent sub−data no need”および“Processing−data no need”は、本明細書中にて追加定義されたステータスである。“Processing−parent sub−data no need”ステータスは、ジョブが親サブデータ(本実施の形態3ではXHTML−Printデータが相当する)の処理を終え、ホスト装置2001上の親サブデータが必要でなくなった状態になったことを示す。“Processing−data no need”ステータスは、ジョブが印刷データの処理を終え、ホスト装置2001上の印刷データが必要でなくなった状態になったことを示す。印刷データが複数のサブデータより構成される場合、全てのサブデータが処理を終えた時点でこのステータスになる。
【0165】
図26は、ジョブ管理テーブル2053に設けられるジョブステータスレコードの構成を示す図である。
【0166】
ジョブステータスレコード2091は、ジョブ管理テーブル2053にジョブの数に応じた数だけ設けられ、各ジョブごとにジョブステータス情報を格納するためのものであり、ジョブIDフィールド2092と、ジョブステータスフィールドに2093とから構成される。ジョブIDフィールド2092には、ジョブを識別するためのジョブID情報が格納される。ジョブステータスフィールド2093には、図25で定義されるジョブステータスが格納される。
【0167】
図27は、プリンタステータスパケットの構成を示す図である。
プリンタステータスパケット2101は、印刷装置2002のプリントステータスを通信相手に知らせるためのものであり、ヘッダ部2102と、ヘッダ部2102とから構成される。ヘッダ部2102には、パケットヘッダ情報が格納される。プリンタステータスフィールド2103には、図23で定義されるプリンタステータスが格納される。
【0168】
図28は、ジョブステータスパケットの構成を示す図である。
ジョブステータスパケット2111は、印刷装置2002におけるジョブステータスを通信相手に知らせるためのものであり、パケットヘッダ情報を格納するヘッダ部1112と、ジョブを識別するためのジョブID情報を格納するジョブIDフィールド1113と、ジョブステータス情報を格納するジョブステータスフィールド2114とから構成される。ジョブステータスフィールド2114には、図25で定義されるジョブステータスが記載される。
【0169】
以下に、本実施の形態3における1つのアプリケーションについて説明する。
このアプリケーションでは、印刷データが複数のサブデータから構成され、それらのサブデータがホスト装置2001の印刷データバッファ2045に格納されている。この場合、印刷データバッファ2045からの印刷データの削除は、印刷装置2002が全サブデータの処理を終えて全サブデータが必要でなくなった時点で行なうのが妥当である。ホスト上の全サブデータが必要でなくなったことは、プリンタステータスとして印刷装置2002が通知することとする。
【0170】
図29は、本アプリケーションでの印刷データの構成を示す図である。
印刷データ2121は、複数のサブデータ、すなわち、親サブデータ2122と、子サブデータ(画像データ)2123a〜2123cとから構成される。親サブデータ2122は、XHTML−Print言語で記述されたデータである。子サブデータ2123a,2123b,2123cは、親サブデータ2122から参照される子データに相当する画像データ(img01.jpg,img02.jpg,img03.jpg)である。親サブデータ2122は印刷データ2121につき、1つ必ず存在する。子サブデータ2123a,1123b,2123cは親サブデータ2122と同じ場所におかれており、親サブデータ2122で対応付けがなされている。
【0171】
図30は、印刷データ2121の格納場所を示す図である。なお、図30では、RAM2013およびRMA2019が図示されている。
【0172】
RAM2013には、印刷データバッファ2045と、印刷アプリケーションワークエリア2132とが用意される。アプリケーションワークエリア2132は、印刷アプリケーション2041が作業用エリアとして使用するエリアである。本実施の形態3では、印刷データバッファ2045には、親サブデータ2122および子サブデータ2123a〜1123cが全て格納される。SDカードメモリ2133は、リムーバブルメディアアクセスデバイス(RMA)2019に挿入されるカードメモリである。印刷データをSDカードメモリ2133に格納し、印刷データとすることができる。本実施の形態3では、SDカードメモリ2133は使用しない。
【0173】
図31は本実施の形態3におけるホスト装置2001と印刷装置2002との間の通信シーケンスを示す図であり、図32は本実施の形態3におけるホスト装置2001のデータ処理を示すフローチャートであり、図33は本実施の形態3における印刷装置2002のデータ処理を示すフローチャートである。
【0174】
図31〜図33により、ホスト装置2001と印刷装置2002間の通信シーケンスと、各々の内部動作を説明する。
【0175】
印刷アプリケーション2041は、プリントサービス2042の印刷データ生成機能により親サブデータ2122および子サブデータ2123a〜1123cを作成し、作成した親サブデータ2122および子サブデータ2123a〜1123cを印刷データバッファ2045に格納する。印刷アプリケーション2041は、プリントサービス2042に対して印刷を行なうよう依頼する。プリントサービス2042は、Webサーバが起動していないならばWebサーバ2047を起動する(S2502)。
【0176】
プリントサービス2042は、親サブデータ2122、子サブデータ2123a〜2123cを内部の管理データベースに登録し、管理する(S2503,S2504)。そして、プリントサービス2042は、PBRクライアントポート2043にURIプリントリクエストを印刷装置2002に発行するよう要求する。
【0177】
PBRクライアントポート2043(ホスト装置2001)は、印刷装置2002に対してURIプリントリクエストを送る(S2401)。
【0178】
ここで、URIプリントリクエストにより印刷装置2002に、
・印刷データを指定するURL
・印刷条件
とともに
・ホスト装置の印刷データが不要になった場合にプリンタステータス情報を提示する要求(図31において「URIプリントリクエスト(all−data:ON)」が相当)を送る。本実施の形態3ではURLで親サブデータ2122を指定する。このURIプリントリクエストの送信とそれに対する応答受信はPBRクライアントポート2043が行なう。
【0179】
URIプリントリクエストを受けた印刷装置2002のジョブマネージャ2052はジョブの発行を行い、発行したジョブに対応するジョブステータスレコード2091を作成し、ジョブ管理テーブル2053に登録する(S2602)。そして、登録後に、PBRデバイスポート2051は、URIプリントリクエストに対する応答を返す(S2402)。プリンタマネージャ2054は、プリンタステータスが“data no need”状態(図23参照)になったら、ホスト装置2001にプリンタ状態通知イベントを行なうように内部状態をセットする。
【0180】
次にジョブマネージャ2052は、URIプリントリクエストからURLで指定された印刷データ(実際には、親サブデータ2122)をダウンロードするようWebクライアント2059に依頼し、Webクライアント2059は、ホスト装置2001へPull要求「Pull要求(topppage.xhtmlp)」を送信する(S2603,S2403)。ホスト装置2001のWebサーバ2047は、Pull要求を受け付け(S2505)、印刷データバッファ2045から親サブデータ2122(toppage.xhtmlp)を取り出し、印刷装置2002に送信する(S2506,S2404)。
【0181】
Webクライアント2059は、ホスト装置2001から親サブデータ2122を受け取ると(S2604)、ジョブマネージャ2052経由で、XHTML−Printインタプリタ2056に受け渡し、XHTML−Printインタプリタ2056は親サブデータ2122にインタプリト処理を行い(S2605)、文書構造を示すDOMツリー(Document Object Model)に変換し、レイアウト計算部2057に渡す。レイアウト計算部2057はDOMツリーよりレイアウト計算を行なうとともに(S2606)、親サブデータ(XMLデータ)2122で参照されている子サブデータ(画像データ)2123a〜2123cを特定する(S2607)。なお、これ以降の処理においてはXHTML−Printインタプリタ2056は登場しない。
【0182】
次に、レイアウト計算部2057は、まず子サブデータ2123a(img01.jpg)をダウンロードするようWebクライアント2059に依頼し(S2608)、Webクライアント2059はホスト装置2001へPull要求「Pull要求(img01.jpg)」を送信する(S2405)。
【0183】
Pull要求を受けたホスト装置2001のWebサーバ2047は(S2505)、印刷データバッファ2045から子サブデータ2123a(img01.jpg)を取り出し、印刷装置2002に送信する(S2506,S2406)。
【0184】
子サブデータ2123a(img01.jpg)を受信すると(S2609)、Webクライアント2059は受け取った子サブデータ2123a(img01.jpg)をレイアウト計算部2057に受け渡し、レイアウト計算部2057はラスタライザ2058にラスタライズ処理(S2610)をさせて、印刷部2035への出力データを作成させる。出力データの作成が終わると、ラスタライザ2058は印刷部2035へそれを送信し、印刷部2035は印刷する(S2611)。
【0185】
子サブデータ2123b(img02.jpg)および子サブデータ2123c(img03.jpg)についても、子サブデータ(画像データ)2123a(img01.jpg)と同様の処理を行なう(S2407〜S2410,S2505〜S2506,S2608〜S2611)。
【0186】
レイアウト計算部2057は、子サブデータ(画像データ)2123a〜2123cのデータ処理が完了してホスト装置2001上の子サブデータ2123a〜2123cが必要であるか判断し(S2612)、必要がない状態になったら、プリンタマネージャ2054にその旨を通知する。プリンタマネージャ2054は、プリンタステータスレコード2055のプリンタステータスフィールド2072にステータス値“data no need”を記入し、プリンタ状態通知イベントをホスト装置2001に送信するようジョブマネージャ2052経由でPBRデバイスポート2051に依頼する(S2613)。つまり、印刷データ不要通知を依頼する。PBRデバイスポート2051は、プリンタステータスフィールド2103に“data no need”をセットしたプリンタステータスパケット2101を作成し、ホスト装置2001に送信する(S2411)。
【0187】
PBRクライアントポート2043は、プリンタ状態通知イベントを受け取ると、プリントサービス2042に通知し、プリントサービス2042は、“data no need”というイベント理由より、印刷データバッファ2045に格納されている親サブデータ2122、子サブデータ2123a〜1123cを削除してよいと判断し(S2507)、データ自体を削除するか、印刷データバッファ2045をRAM2013から削除する(S2508,S2412)。ここで、印刷データ転送サービスが不要になったので、Webサーバ2047を停止する(S2509)。
【0188】
その後、レイアウト計算部2057は、ラスタライザ2058を介して印刷部2035が残りの印刷出力を行い(S2614)、印刷出力を完了し(S2615)、それを検知すると、ジョブマネージャ2052に通知し、ジョブマネージャ2052は、PBRデバイスポート2051にジョブステータスフィールドに“completed”と書き込んだジョブステータスパケット2111を、ホスト装置2001に送信するよう依頼し、PBRデバイスポート2051がジョブステータスパケット2111をホスト装置2001に送信する(S2413)。
【0189】
ジョブステータスパケット2111を受け取ったホスト装置2001は、ここで印刷装置2002での印刷出力の完了を知る(S2414)。
【0190】
以上のように、本実施の形態3では、印刷データが複数のサブデータよりなり、それらがホスト装置の印刷データバッファに格納され、印刷データバッファからの印刷データの削除は、印刷装置が全サブデータの処理を終えて全サブデータが必要でなくなった時点で、プリンタステータスとして印刷装置が通知している。これにより、ホスト装置は、自装置内の印刷データバッファから印刷データを削除し、メモリ等のシステムリソースを解放を、印刷完了時点でよりも早く行なえる。このため、プリンタエンジン処理機能が低かったり、大きな画像データを扱う場合にその効果はより大きい。
【0191】
(実施の形態4)
次いで、実施の形態4に係るアプリケーションについて説明する。
【0192】
本アプリケーションでは、印刷データが複数のサブデータよりなるが、親サブデータだけが印刷データバッファ2045に格納され、子サブデータは、リムバブルメモリカードメディア等の外部メモリに格納する場合に適用される。
【0193】
この場合、印刷データバッファ2045からの印刷データの削除は、印刷装置2002が親サブデータの処理を終えて親サブデータが必要でなくなった時点で行なうのが妥当である。ホスト上の親サブデータが必要でなくなったことは、プリンタステータスとして印刷装置2002が通知することとする。
【0194】
図34は、本実施の形態4における印刷データの構成を示す図である。なお、図34では、RAM2013およびRMA2019が図示されている。
【0195】
印刷データ2171は、親サブデータ2172と、子サブデータ2173a〜2173cとから構成される。親サブデータ2172は、XHTML−Print言語で記述された親サブデータであり、印刷データ2171のサブデータである。子サブデータ2173a〜2173cは、親サブデータ2172から参照される子サブデータであり、印刷データ2171のサブデータである。子サブデータ2173a〜2173cは画像データである。子サブデータ2173a〜2173cは親サブデータ2172と異なる場所におかれており、親サブデータで対応付けがなされている。
【0196】
図35は、印刷データの格納場所を示す図である。なお、図30と同一のものは同じ番号を付し、説明を省略する。
【0197】
本実施の形態4では、親サブデータ2172のみが印刷データバッファ2045に格納され、子サブデータ2173a〜2173cはSDカードメモリ2133に格納される。この点で実施の形態3と異なる。
【0198】
図36は、本実施の形態4におけるホスト装置2001と印刷装置2002との間の通信シーケンスを示す図である。なお、一部を除いては図31と同じであり、同一の処理を示すステップについては同じ番号を付している。そして、ステップS2901と、ステップS2902が追加された処理である。
【0199】
また、図37は、本実施の形態4におけるホスト装置2001のデータ処理を示すフローチャートである。一部を除いては図32と同じであり、同一の処理を示すステップについては同じ番号を付している。そして、ステップS3001と、ステップS3002が追加された処理である。
【0200】
さらに、図38は、本実施の形態4における印刷装置2002のデータ処理を示すフローチャートである。一部を除いては図33と同じであり、同一の処理を示すステップは同じ番号を付している。そして、ステップS3102が追加された処理である。
【0201】
次いで、図36〜図38により、ホスト装置2001と印刷装置2002間の通信シーケンスと、各々の内部動作を説明する。なお、図31〜図33と同じステップ番号で同じ処理を示すものについては、本実施の形態4に必要なものについて説明するにとどめる。
【0202】
PBRクライアントポート2043(ホスト装置2001)は、印刷装置2002に対してURIプリントリクエストを送る(S2401)。
【0203】
ここで、URIプリントリクエストにより印刷装置2002に、
・印刷データを指定するURL
・印刷条件
とともに
・ホスト装置の親サブデータが不要になった場合にプリンタステータス情報を提示する要求(図36において「URIプリントリクエスト(parent sub−data:ON)」が相当)を送る(S2401)。本実施の形態4ではURLで親サブデータ2122を指定する。このURIプリントリクエストの送信とそれに対する応答受信は、PBRクライアントポート2043が行なう。
【0204】
URIプリントリクエストを受けた印刷装置2002のジョブマネージャ2052は、ジョブの発行を行い、発行したジョブに対応するジョブステータスレコード2091を作成し、ジョブ管理テーブル2053に登録する(S2602)。登録後に、PBRデバイスポート2051は、URIプリントリクエストの応答を返す(S2402)。
【0205】
プリンタマネージャ2054は、プリンタステータスが“parent sub−data no need”状態(図23参照)になったら、ホスト装置2001にプリンタ状態通知イベントを行なうように内部状態をセットする。
【0206】
次にジョブマネージャ2052は、URIプリントリクエストからURLで指定された印刷データ(実際には親サブデータ2172)をダウンロードするようWebクライアント2059に依頼し、Webクライアント2059は、ホスト装置2001へPull要求「Pull要求(SDtopppage.xhtmlp)」を送信する(S2603,S2403)。
【0207】
ホスト装置2001のWebサーバ2047は、Pull要求を受け付け(S2505)、印刷データバッファ2045から親サブデータ2122(SDtoppage.xhtmlp)を取り出し、印刷装置2002に返送する(S2506,S2404)。
【0208】
Webクライアント2059は、ホスト装置2001から親サブデータ2172を受け取ると(S2604)、ジョブマネージャ2052経由で、XHTML−Printインタプリタ2056に受け渡し、XHTML−Printインタプリタ2056は、親サブデータ2122にインタプリト処理を行い(S2605)、文書構造を示すDOMツリー(Document Object Model)に変換する。
【0209】
ここで、XHTML−Printインタプリンタは、親サブデータ2172の処理が完了し、それ以降ホスト装置2001上の親サブデータ2172を必要としないか判定し、必要がないと判定すると、プリンタマネージャ2054にその旨通知する。
【0210】
プリンタマネージャ2054は、プリンタステータスレコード2055のプリンタステータスフィールド2072にステータス値“parent sub−data no need”を記入し、プリンタ状態通知イベントをホスト装置2001に送信するようジョブマネージャ2052経由でPBRデバイスポート2051に依頼する。
【0211】
PBRデバイスポート2051は、プリンタステータスフィールド2103に“parent sub−data no need”をセットしたプリンタステータスパケット2101を作成し、ホスト装置2001に送信する(S2901)。
【0212】
PBRクライアントポート2043は、プリンタ状態通知イベントを受け取るとプリントサービス2042に通知し、プリントサービス2042は、“parent sub−data no need”というイベント理由より、印刷データバッファ2045に格納されている親サブデータ2172を削除してよいと判断し(S3001)、親サブデータ2172自体を削除するか、印刷データバッファ2045自体をRAM2013から削除する(S3002,S2902)。
【0213】
以後の処理は、“all data no need”というプリントステータスの通知に関する処理がないという点を除けば実施の形態3と同じである。
【0214】
以上のように、上記本実施の形態4では、印刷データが複数のサブデータよりなり、そのうち親サブデータが印刷データバッファに格納され、それ以外の子サブデータはリムバブルメモリカードメディア等の外部メモリに格納され、印刷装置が親サブデータの処理を終えて親サブデータが必要でなくなった時点で、プリンタステータスでその旨ホスト装置に通知し、通知を受けたホスト装置は親サブデータを削除する。
【0215】
これにより、ホスト装置は、印刷装置で早期に処理される親サブデータの処理完了のタイミングで、親サブデータの不要を知ることができるので実施の形態3と比べて、より早いタイミングで親サブデータを削除し印刷データバッファの解放ができる。親サブデータを早期に削除することのメリットであるが、印刷アプリケーションによっては、親サブデータがかなり大きくなる場合がある。この場合、親サブデータの格納のためにRAMの空き領域が少なくなり、そのようなメモリが逼迫した状態では、印刷アプリケーションを終了して、別のアプリケーションを起動させようとしても、よりメモリを必要とするアプリケーションは起動できなかったり、起動できても動作が遅くなったりすることがある。この場合、本実施の形態4では、親サブデータの削除とメモリの解放を早期に行なえるので、メモリ逼迫状態からの復帰を早めることができ、その有用性は高い。
【0216】
(実施の形態5)
次いで、実施の形態5に係る他のアプリケーションについて説明する。
【0217】
本アプリケーションでは、印刷データが複数のサブデータよりなるが、親サブデータだけがホスト装置の印刷データバッファに格納され、子サブデータは、他のサーバ装置上に格納される場合である。この場合、ホスト装置の印刷データバッファからの印刷データの削除は、印刷装置が親サブデータの処理を終えて親サブデータが必要でなくなった時点で行なうのが妥当であり、実施の形態4と同じである。ホスト上の親サブデータが必要でなくなったことは、プリンタステータスとして印刷装置が通知することとする。
【0218】
図39は、本実施形態5におけるサーバ装置、ホスト装置および印刷装置により構成されるネットワークプリントシステムのシステム構成図である。なお、図39において、図18と同一のものは同一の番号を付し、説明は省略する。
【0219】
図39に示されるように、印刷システム3は、ホスト装置2001と、印刷装置2002にサーバ装置2008を加えた3者間におけるネットワークプリントシステムである。ただし、印刷データはホスト装置2001と、サーバ装置2008上に分散しておかれるので、Webサーバ機能2007はサーバ装置2008だけでなく、ホスト装置2001にも存在する。
【0220】
図40は、本実施の形態5における印刷データの構成を示す図である。
印刷データ2231は、親サブデータ2232と、子サブデータ2233a〜2233cとから構成される。親サブデータ2232は、XHTML−Print言語で記述された親サブデータであり、印刷データ2231のサブデータである。子サブデータ2233a〜2233cは、親サブデータ2232から参照される子サブデータであり、印刷データ2231のサブデータである。子サブデータ2233a〜2233cは画像データである。子サブデータ2233a〜2233cは、サーバ装置2008上におかれ、親サブデータで対応付けがなされている。
【0221】
図41は、印刷データの格納場所を示す図である。なお、図30と同一のものについては、同じ番号を付し、説明を省略する。
【0222】
図41に示されるように、サーバ装置2008は、ハードディスク装置3401を備える。ハードディスク装置3401は、印刷データ等を格納するハードディスク装置である。本実施の形態5では親サブデータ2232のみがホスト装置上の印刷データバッファ2045に格納され、子サブデータ2233a〜2233cは、サーバ装置2008上のハードディスク装置3401に格納される。この点で実施の形態4と異なる。
【0223】
図42は、本実施の形態5におけるホスト装置2001、印刷装置2002、サーバ装置2008との間の通信シーケンスを示す。なお、図31、図36と略同じであり、同一の処理を示すステップについては同じ番号を付している。また、実施の形態4と本実施の形態5との違いを、図36と図42を比較しながら説明する。
【0224】
図36では、ステップS2403およびS2404において印刷装置2002はSDtopppage.xhtmlpをPull要求しているのに対して、図42ではSVtopppage.xhtmlpに対してPull要求をしているが、印刷装置2002での内部処理は、Pull要求対象親サブデータが異なるだけで、実施の形態4と同じである。
【0225】
図36では、ステップS2405およびS2406においてSDimg01.jpgをホスト装置2001にPull要求しているのに対して、図42ではサーバ装置2008に対して、SVimg01.jpgのPull要求をしている。なお、ステップS2405での印刷装置2002での内部処理は、Pullするデータとアクセス先装置が異なる点を除けば、実施の形態4と同じである。また、ステップS2406でのサーバ装置2008での内部処理は、取り扱う子サブデータが違う点を除けば、実施の形態4におけるホスト装置2001での内部処理と同様である。
【0226】
ステップS2407〜S2410についても同様である。印刷データバッファ2045から親サブデータ2232を削除し、印刷データバッファを開放するタイミングも実施の形態4と同じである。
【0227】
以上のように、本実施の形態5では、印刷データが複数のサブデータよりなり、そのうち親サブデータがホスト装置の印刷データバッファに格納され、それ以外の子サブデータはサーバ装置に格納され、印刷装置が親サブデータの処理を終えて親サブデータが必要でなくなった時点で、プリンタステータスでその旨ホスト装置に通知し、通知を受けたホスト装置は親サブデータを削除する。
【0228】
これにより、ホスト装置は、印刷装置で早期に処理される親サブデータの処理完了のタイミングで、親サブデータの不要を知ることができるので実施の形態3と比べて、より早いタイミングで親サブデータを削除し印刷データバッファの解放ができる。
【0229】
また、実施の形態4とは異なり、親サブデータ不要の通知を受けた後は、データ通信は印刷装置とサーバ装置との間でのみ行なわれるのでホスト装置の負荷はなく、またホスト装置を停止しても印刷処理を継続することができる。本実施の形態5も、実施の形態4と同様に親サブデータがかなり大きくなる場合に、親サブデータの削除とメモリの解放を早期に行なえるので、メモリ逼迫状態からの復帰を早めることができ、その有用性は高い。
【0230】
なお、本実施の形態3〜5においてはプリンタステータスにより、印刷装置がホスト装置上の印刷データ全体または親サブデータが不要になったことを通知しているが、ジョブステータスの通知により行なってもよい。印刷データ全体に関するジョブステータスは図25で示される“Procesing−data no need”であり、親データのみに関するステータスは、“Processing−parent sub−data no need”である。各々のジョブステータス値がジョブステータスフィールド2114にセットされて送られる。
【0231】
また、本実施の形態3〜5においては、印刷装置がホスト装置上の印刷データ全体または親サブデータが不要になったことを通知しているが、ホスト装置からの問い合わせに対して、プリンタステータスまたはジョブステータスを回答することにしてもよい。
【0232】
また、本実施の形態3,4においては、印刷装置とホスト装置はLANを介してネットワーク接続されているが、USB等により1対1に接続しても構わない。
【0233】
また、上記実施の形態1〜5では、1つのジョブにおいて画像オブジェクトが3つである場合(実施の形態1)などを例に挙げて説明したが、本発明では画像オブジェクトが3つのみに限定されるのではなく、複数である場合に適用されることはいうまでもない。
【0234】
また、上記実施の形態1〜5では、1つのジョブにおける印刷データの処理について説明したが、複数のジョブにおける印刷データの処理について、本願発明を適用することができるのはいうまでもない。
【0235】
すなわち、印刷指示装置(ホスト装置、文書画像供給装置)がジョブごとの印刷データを印刷バッファに保持する場合、再び印刷装置(画像形成装置、プリンタ)によって取得される必要性がないジョブの印刷データを、一連のジョブの印刷が完了する前に、印刷バッファから削除するようにしてもよい。この場合、例えば、印刷指示装置側では印刷装置に指示する複数のジョブを管理し、印刷装置側ではこれから印刷するジョブの内、既に読み込み済みのジョブを読み込み済みリストとして管理しておけばよい。なお、この読み込み済みリストは、対応するデータが以降、再読込不要であるものを管理するためのリストであることを意味する。
【0236】
より詳しくは、図43に示されるように印刷指示装置(ホスト装置、文書画像供給装置)は、6個のプリントジョブ(Job5〜Job10)のデータを印刷データバッファに格納し、ジョブリストで各ジョブのID、5,6,7,8,9,10を管理しているものとする。そして、プリンタは、図44に示されるように、Job5,6,7のデータを既に取り込み、Job8のデータの取り込み中で、Job5のデータの印刷中であるものとする。この場合、プリンタは、Job5,6,7のID5,6,7を読み込み済みリストとして管理しておけば、読み込み済みリストとしてID5,6,7をプリントステータスとして印刷指示装置に送ることにより、印刷指示装置はプリントステータスからJob5,6,7のデータは不要であると判断することができ、Job5,6,7のデータを印刷データバッファから素早く削除し、印刷データバッファを解放することができる。つまり、複数のジョブについても、本願発明を適用することができる。
【0237】
また、上記実施の形態では、子サブデータが画像データである場合、つまりHTMLが1つの場合について説明したが、子サブデータがHTMLであってもよく、画像データが子サブデータであるHTMLにリンクされる孫サブデータであってもよい。つまり親サブデータと子サブデータと、画像データをリンクするようにした場合についても、本願発明を適用することができる。
【産業上の利用可能性】
【0238】
本発明に係る印刷装置は、Print By Referrence方式で、かつホスト装置が印刷データのサーバ機能を持つ場合のプリンタ等に適用でき、本発明に係る印刷指示装置(ホスト装置、文書画像供給装置)は、自装置が印刷データのサーバ機能を持つ場合のPrint By Referrence方式でのプリントホストとなるデジタルテレビや、セットトップボックス(STB)等に適用できる。

【特許請求の範囲】
【請求項1】
印刷指示を受けると、複数のサブデータから構成される印刷データを取得して印刷する印刷装置であって、
サブデータを取得する印刷データ取得手段と、
取得されたサブデータが、前記印刷データの印刷を完了するために再び前記データ取得手段によって取得される必要性があるか否かを判定する判定手段と、
前記必要性がないと判定された場合に、その旨を、前記印刷指示を発した印刷指示装置に通知する通知手段と
を備えることを特徴とする印刷装置。
【請求項2】
前記印刷データには、1つの親サブデータと前記親サブデータから参照される1つ以上の子サブデータが含まれ、
前記印刷データ取得手段は、子サブデータに先立って親サブデータを取得し、
前記判定手段は、取得された親サブデータが参照している子サブデータに基づいて前記必要性を判定する
ことを特徴とする請求項1記載の印刷装置。
【請求項3】
前記判定手段は、前記印刷データ取得手段によって取得された子サブデータが前記親サブデータの1箇所だけから参照されている場合に、前記必要性がないと判定する
ことを特徴とする請求項2記載の印刷装置。
【請求項4】
前記判定手段は、前記印刷データ取得手段によって取得された子サブデータが前記親サブデータで以降参照されない場合に、前記必要性がないと判定する
ことを特徴とする請求項2記載の印刷装置。
【請求項5】
前記親サブデータから参照される子サブデータには、前記子サブデータから参照される孫サブデータが含まれる
ことを特徴とする請求項2記載の印刷装置。
【請求項6】
前記判定手段は、前記親サブデータだけについて、前記必要性を判定する
ことを特徴とする請求項2記載の印刷装置。
【請求項7】
前記通知手段は、前記印刷指示装置から前記通知の要求を受けた場合にだけ、前記通知をする
ことを特徴とする請求項1記載の印刷装置。
【請求項8】
前記通知手段は、前記印刷指示に前記通知の要求が含まれているか否かを判断し、含まれている場合にだけ、前記通知をする
ことを特徴とする請求項7記載の印刷装置。
【請求項9】
前記親サブデータは、マークアップ言語で記述され、
前記子サブデータは、マークアップ言語で記述されたデータを除くデータである
ことを特徴とする請求項2記載の印刷装置。
【請求項10】
前記親サブデータは、HTMLで記述され、
前記子サブデータは、画像データまたはスタイル情報データである
ことを特徴とする請求項9記載の印刷装置。
【請求項11】
印刷指示を受けると、複数のサブデータから構成される印刷データを取得して印刷する印刷方法であって、
サブデータを取得する印刷データ取得ステップと、
取得されたサブデータが、前記印刷データの印刷を完了するために再び前記データ取得ステップによって取得される必要性があるか否かを判定する判定ステップと、
前記必要性がないと判定された場合に、その旨を、前記印刷指示を発した印刷指示装置に通知する通知ステップと
を含むことを特徴とする印刷方法。
【請求項12】
印刷指示を受けると、複数のサブデータから構成される印刷データを取得して印刷する印刷装置のためのプログラムであって、
請求項11記載の印刷方法に含まれるステップをコンピュータに実行させる
ことを特徴とするプログラム。
【請求項13】
複数のサブデータから構成される印刷データの印刷を印刷装置に指示する印刷指示装置であって、
少なくとも1つのサブデータを保持する印刷バッファと、
前記印刷バッファに保持されたサブデータを前記印刷装置に出力する印刷データ出力手段と、
出力されたサブデータが、前記印刷データの印刷を完了するために再び前記印刷装置によって取得される必要性がない旨の通知を前記印刷装置から受信する必要性受信手段と、
前記通知が受信された場合に、前記通知に対応するサブデータを前記印刷バッファから削除する削除手段と
を備えることを特徴とする印刷指示装置。
【請求項14】
前記印刷データには、1つの親サブデータと前記親サブデータから参照される1つ以上の子サブデータが含まれ、
前記印刷バッファは、前記印刷データを構成するサブデータのうち、親サブデータだけを保持し、
前記削除手段は、前記親サブデータを前記印刷バッファから削除する
ことを特徴とする請求項13記載の印刷指示装置。
【請求項15】
複数のサブデータから構成される印刷データの印刷を印刷装置に指示する印刷指示装置における印刷バッファのメモリ解放制御方法であって、
少なくとも1つのサブデータを前記印刷バッファに格納するステップと、
前記印刷バッファに保持されたサブデータを前記印刷装置に出力する印刷データ出力ステップと、
出力されたサブデータが、前記印刷データの印刷を完了するために再び前記印刷装置によって取得される必要性がない旨の通知を前記印刷装置から受信する必要性受信ステップと、
前記通知が受信された場合に、前記通知に対応するサブデータを前記印刷バッファから削除する削除ステップと
を含むことを特徴とするメモリ解放制御方法。
【請求項16】
複数のサブデータから構成される印刷データの印刷を印刷装置に指示する印刷指示装置のためのプログラムであって、
請求項15記載のメモリ解放制御方法に含まれるステップをコンピュータに実行させる
ことを特徴とするプログラム。
【請求項17】
印刷装置と、複数のサブデータから構成される印刷データの印刷を印刷装置に指示する印刷指示装置とから構成される印刷システムであって、
前記印刷装置は、
サブデータを取得する印刷データ取得手段と、
取得されたサブデータが、前記印刷データの印刷を完了するために再び前記データ取得手段によって取得される必要性があるか否かを判定する判定手段と、
前記必要性がないと判定された場合に、その旨を、前記印刷指示装置に通知する通知手段とを備え、
前記印刷指示装置は、
少なくとも1つのサブデータを保持する印刷バッファと、
前記印刷バッファに保持されたサブデータを前記印刷装置に出力する印刷データ出力手段と、
前記通知手段から前記通知を受信する必要性受信手段と、
前記通知が受信された場合に、前記通知に対応するサブデータを前記印刷バッファから削除する削除手段と
を備えることを特徴とする印刷システム。
【請求項18】
印刷装置と、複数のサブデータから構成される印刷データの印刷を印刷装置に指示する印刷指示装置とから構成されるシステムにおける印刷方法であって、
前記印刷指示装置の印刷バッファに保持されたサブデータを前記印刷装置に転送する転送ステップと、
転送されたサブデータが、前記印刷装置において前記印刷データの印刷を完了するために再び前記印刷指示装置から前記印刷装置に転送される必要性があるか否かを判定する判定ステップと、
前記必要性がないと判定された場合に、その旨を、前記印刷装置から前記印刷指示装置に通知する通知ステップと、
前記通知が行われた場合に、前記印刷指示装置の印刷バッファに保持されたサブデータを削除する削除ステップと
を含むことを特徴とする印刷方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate


【国際公開番号】WO2005/069119
【国際公開日】平成17年7月28日(2005.7.28)
【発行日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願番号】特願2005−517103(P2005−517103)
【国際出願番号】PCT/JP2005/000539
【国際出願日】平成17年1月18日(2005.1.18)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】