(57)【特許請求の範囲】
【請求項１】
プリンタと、文書を制御してプリンタ上に印刷するためのホストコンピュータとを含み、上記ホストコンピュータが資源を記憶するための資源記憶領域と、資源記憶領域内に記憶されている複数の資源と、印刷される複数の対象を記述するデータを含む文書のためのデータファイルとを有し、上記プリンタが印刷エンジンを含むコンピュータ・プリンタシステムであって、
文書を印刷するために必要な複数の資源からなる資源の選択された集合を記憶するホストコンピュータ内のホスト資源記憶装置と、
データファイルを調べ、資源記憶領域から資源の若干を選択して文書を印刷するために必要な上記資源の選択された集合を形成し、上記資源の選択された集合を上記ホスト資源記憶装置内へロードし、データファイルを文書の特定部分内の複数の対象に対応するプリミティブの集合に翻訳し、文書の上記特定部分を印刷するために必要な上記選択された資源の部分集合を上記ホスト資源記憶装置から決定し、そして上記プリミティブの集合と上記必要な資源の部分集合との間の従属性を定義するホストコンピュータ内の資源アセンブラと、
上記ホスト資源記憶装置から受信した上記必要な資源の部分集合と上記プリミティブの集合とを記憶するプリンタ内のプリンタ資源記憶装置と、
上記定義された従属性を使用するとともに上記プリンタ資源記憶装置のステータス情報を使用して、上記必要な資源の部分集合と上記プリミティブの集合とが上記プリンタ資源記憶装置へ送られる及び上記プリンタ資源記憶装置から解放されるローディング及び解放シーケンスを決定する資源ローダであって、上記必要な資源の部分集合と上記プリミティブの集合のローディング及び解放が印刷中に多数回行われる資源ローダと、
上記必要な資源の部分集合と上記プリミティブの集合の上記プリンタ資源記憶装置への転送を制御する資源スケジューラと、
上記必要な資源の部分集合と上記プリミティブの集合とに対応するビットマップデータファイルを作成し、上記ビットマップデータファイルを印刷エンジンへ転送して印刷させる資源実行装置と、を具備することを特徴とするシステム。
【請求項２】
上記資源ローダは、上記プリンタ資源記憶装置内の使用可能な空間の量に基づき、且つ文書の将来部分を印刷するために必要な資源の部分集合が要求された時に上記ローディング及び解放シーケンスを決定する請求項１に記載のシステム。
【請求項３】
上記資源ローダは、上記資源の部分集合を上記プリンタ資源記憶装置へ再度転送するために要する時間に基づいて上記ローディング及び解放シーケンスを決定する請求項１に記載のシステム。
【請求項４】
上記資源ローダは、上記プリンタ資源記憶装置へ転送される上記必要な資源の部分集合のサイズに基づいて上記ローディング及び解放シーケンスを決定する請求項１に記載のシステム。
【請求項５】
上記資源アセンブラは、印刷エンジンが印刷中に上記資源実行装置が上記プリミティブの集合を実時間で上記ビットマップデータファイルに変換できるか否かを決定し、もし上記資源実行装置ができなければ上記資源アセンブラが上記プリミティブの集合を上記ビットマップデータファイルに変換する請求項１に記載のシステム。
【請求項６】
上記プリミティブの集合を上記ビットマップデータファイルに変換するのは上記資源実行装置かまたは上記資源アセンブラかを決定するための決定手段を上記資源アセンブラ内に含む請求項１に記載のシステム。
【請求項７】
上記決定手段は、上記資源実行装置が上記プリミティブの集合を上記ビットマップデータファイルに変換するために要する時間の長さと、上記資源アセンブラが上記プリミティブの集合を上記ビットマップデータファイルに変換するために要する時間の長さに決定の基準をおく請求項６に記載のシステム。
【請求項８】
上記資源アセンブラは、データファイルを文書の複数の特定部分内の複数の対象に対応するプリミティブの複数の集合に翻訳し、上記文書の複数の特定部分を印刷するために必要な上記選択された資源の複数の部分集合を上記ホスト資源記憶装置から決定し、上記定義された従属性は上記プリミティブの複数の集合と上記必要な資源の複数の部分集合との間の従属性を定義する請求項１に記載のシステム。
【請求項９】
上記資源ローダは、上記必要な資源の複数の部分集合及びプリミティブの複数の集合が上記プリンタ資源記憶装置へ送られる及び上記プリンタ資源記憶装置から解放される上記ローディング及び解放シーケンスを決定する請求項８に記載のシステム。
【請求項１０】
上記プリミティブの集合は、圧縮されない２進データフォーマットでホストコンピュータからプリンタへ転送される請求項１に記載のシステム。
【請求項１１】
上記資源スケジューラは、上記必要な資源の全ての部分集合及び上記文書の特定部分のための上記プリミティブの集合が上記プリンタ資源記憶装置内に存在している時に実行信号を生成し、上記資源実行装置は上記実行信号を受信すると上記プリミティブの集合に対応するビットマップデータファイルを作成し、上記ビットマップデータファイルを印刷エンジンへ転送して印刷させる請求項１に記載のシステム。
【請求項１２】
上記定義された従属性は従属性リストによって定義され、上記資源アセンブラは印刷エンジンが上記文書の特定部分の印刷を開始した後でさえも上記従属性リストを維持し、上記資源アセンブラはプリンタ誤りの場合には上記従属性リストを使用する請求項１に記載のシステム。
【請求項１３】
上記資源アセンブラは、上記プリミティブの集合を上記ホスト資源記憶装置内に記憶させる請求項１に記載のシステム。
【請求項１４】
上記特定部分は、もしプリンタがバンディングモードで動作中であれば、サイズがプリンタバンドに対応するバンドとなるように選択される請求項１に記載のシステム。
【請求項１５】
上記資源スケジューラは、上記解放シーケンスに応答して、上記必要な資源の部分集合及び上記プリミティブの集合を上記プリンタ資源記憶装置から削除する請求項１に記載のシステム。
【請求項１６】
上記資源アセンブラは、上記定義された従属性をプリンタへ伝送する請求項１に記載のシステム。
【請求項１７】
上記資源スケジューラは、もしあれば、どの資源が既に上記プリンタ資源記憶装置内に存在しているかを指示する上記プリンタ資源記憶装置のステータスを決定し、上記資源ローダは上記ステータス情報を使用して上記ローディング及び解放シーケンスを決定する請求項１に記載のシステム。
【請求項１８】
上記資源スケジューラは上記ステータス情報を上記資源アセンブラへ伝送し、上記資源アセンブラは上記ステータス情報を使用して文書を印刷するためにはどの付加的な資源が必要かを決定する請求項１７に記載のシステム。
【請求項１９】
上記資源スケジューラは文書の複数の特定部分がプリンタによって印刷されるシーケンス情報を決定し、上記資源ローダは上記シーケンス情報を使用して上記ローディング及び解放シーケンスを決定する請求項１または１８の何れかに記載のシステム。
【請求項２０】
上記資源スケジューラは上記シーケンス情報を上記資源アセンブラへ伝送し、上記資源アセンブラは上記シーケンス情報を使用して文書の特定部分が上記資源アセンブラによって処理されるであろう順序を決定する請求項１９に記載のシステム。
【請求項２１】
上記特定部分を印刷中にもし誤りが発生すれば誤り信号を生成する誤りセンサをプリンタ内に含み、ホストコンピュータはプリンタがもし上記誤り信号を生成すればその誤りを回復する手段を含む請求項１９に記載のシステム。
【請求項２２】
上記資源スケジューラは、上記定義された従属性を使用して上記誤り信号が生成された上記文書の特定部分のために上記必要な資源の部分集合及び上記プリミティブの集合を上記ホスト資源記憶装置から要求する請求項２１に記載のシステム。
【請求項２３】
上記資源ローダは、二者択一的にホストコンピュータまたはプリンタ内に配置することができる請求項１に記載のシステム。
【請求項２４】
上記資源ローダの位置を決定する手段をホストコンピュータ内に含む請求項２３に記載のシステム。
【請求項２５】
上記位置を決定する手段は、ホストコンピュータとプリンタとの間の通信チャネルの能力を解析するための手段をさらに含む請求項２４に記載のシステム。
【請求項２６】
上記資源スケジューラは文書の複数の特定部分がプリンタによって印刷されるシーケンス情報を決定し、上記資源アセンブラは上記シーケンス情報を使用して文書の特定部分が上記資源アセンブラによって処理されるであろう順序を決定する請求項１に記載のシステム。
【請求項２７】
プリンタがもし誤り信号を生成すればその誤りを回復する手段をホストコンピュータ内に含む請求項１に記載のシステム。
【請求項２８】
上記資源スケジューラは、上記定義された従属性を使用して上記誤り信号が生成された上記文書の特定部分のために上記必要な資源の部分集合及び上記プリミティブの集合を上記ホスト資源記憶装置から要求する請求項２７に記載のシステム。
【請求項２９】
上記資源スケジューラは定義された従属性を使用して上記必要な資源の部分集合及びプリミティブの集合が上記プリンタ資源記憶装置内に存在する時を決定し、上記資源スケジューラは上記必要な資源の全ての部分集合及びプリミティブの集合が上記プリンタ資源記憶装置内に存在している時に実行信号を生成する請求項１に記載のシステム。
【請求項３０】
プリンタと、文書を制御してプリンタ上に印刷するためのホストコンピュータとを含み、上記ホストコンピュータが資源を記憶するための資源記憶領域と、資源記憶領域内に記憶されている複数の資源と、印刷される複数の対象を記述するデータを含む文書のためのデータファイルとを有し、上記プリンタが印刷エンジンを含むコンピュータ・プリンタシステムを使用する方法であって、
（ａ）データファイルを調べて資源記憶領域から資源の若干を選択し、文書を印刷するために必要な資源の選択された集合を形成する段階と、
（ｂ）上記資源の選択された集合をホストコンピュータ内のホスト資源記憶装置内へロードする段階と、
（ｃ）データファイルを文書の特定部分内の複数の対象に対応するプリミティブの集合に翻訳する段階と、
（ｄ）文書の上記特定部分を印刷するために必要な上記選択された資源の部分集合を上記ホスト資源記憶装置から決定する段階と、
（ｅ）上記プリミティブの集合と、上記必要な資源の部分集合との間の従属性を定義する段階と、
（ｆ）上記定義された従属性を使用するとともに上記プリンタ資源記憶装置のステータス情報を使用して上記必要な資源の部分集合及び上記プリミティブの集合がプリンタ資源記憶装置へ送られる及び上記プリンタ資源記憶装置から解放されるローディング及び解放シーケンスを決定する段階であって、上記必要な資源の部分集合と上記プリミティブの集合のローディング及び解放が印刷中に多数回行われる段階と、
（ｇ）上記必要な資源の部分集合と、上記プリミティブの集合とを上記プリンタ資源記憶装置へ転送する段階と、
（ｈ）上記必要な資源の部分集合と上記プリミティブの集合とに対応するビットマップデータファイルを作成し、上記ビットマップデータファイルを印刷エンジンへ転送して印刷させる段階と、を具備することを特徴とする方法。
【請求項３１】
もしあれば、どの資源が既に上記プリンタ資源記憶装置内に存在しているかを指示する上記プリンタ資源記憶装置のステータスを決定して、上記プリンタ資源記憶装置のステータス情報を与える請求項３０に記載の方法。
【請求項３２】
段階（ｄ）が上記ステータス情報を使用して文書を印刷するためにはどの付加的な資源が必要かを決定する請求項３１に記載の方法。
【請求項３３】
文書の複数の特定部分がプリンタによって印刷されるシーケンス情報を決定する段階を含み、段階（ｇ）が上記シーケンス情報を使用して上記ローディング及び解放シーケンスを決定する請求項３１に記載の方法。
【請求項３４】
段階（ｃ）が上記シーケンス情報を使用して文書の特定部分が処理されるであろう順序を決定する請求項３３に記載の方法。
【請求項３５】
段階（ｇ）が二者択一的にホストコンピュータまたはプリンタ内に配置されている資源ローダによって遂行されるか否かを決定する段階を含む請求項３０に記載の方法。
【請求項３６】
上記ホストコンピュータまたはプリンタ内のどちらに資源ローダを配置するかを決定する段階がホストコンピュータとプリンタとの間の通信チャネル能力を解析することを含む請求項３５に記載の方法。
【請求項３７】
印刷エンジンが印刷中に、段階（ｈ）が上記プリミティブの集合を実時間で上記ビットマップデータファイルに変換できるか否かを決定する段階を含み、もし段階（ｈ）ができなければ、段階（ｃ）が上記プリミティブの集合を実時間で上記ビットマップデータファイルに変換する請求項３０に記載の方法。
【請求項３８】
段階（ｈ）が上記プリミティブの集合を上記ビットマップデータファイルに変換するために必要な時間の長さ及び段階（ｃ）が上記プリミティブの集合を上記ビットマップデータファイルに変換するために必要な時間の長さに基づいて、段階（ｈ）または段階（ｃ）の何れが上記プリミティブの集合を上記ビットマップデータファイルに変換するかを決定する段階を含む請求項３０に記載の方法。
【請求項３９】
段階（ｃ）−（ｅ）がデータファイルを文書の複数の特定部分内の複数の対象に対応するプリミティブの複数の集合に翻訳し、文書の上記複数の特定部分を印刷するために必要な上記選択された複数の部分集合を上記ホスト資源記憶装置から決定し、そして上記プリミティブの複数の集合と上記必要な資源の複数の部分集合との間の従属性を定義する請求項３０に記載の方法。
【請求項４０】
段階（ｆ）が、上記必要な資源の複数の部分集合及び上記プリミティブの複数の集合が上記プリンタ資源記憶装置へ送られる、及び上記プリンタ資源記憶装置から解放される上記ローディング及び解放シーケンスを決定する請求項３９に記載の方法。
【請求項４１】
上記必要な資源の全ての部分集合及び文書の上記特定部分のための上記プリミティブの集合が上記プリンタ資源記憶装置内に存在する時に実行信号を生成する段階を含み、段階（ｈ）は上記実行信号を受信すると上記プリミティブの集合に対応するビットマップデータファイルを作成し、上記ビットマップデータファイルを印刷エンジンへ転送して印刷させる請求項３０に記載の方法。
【請求項４２】
段階（ｇ）は、上記解放シーケンスに応答して、上記必要な資源の部分集合及び上記プリミティブの集合を上記プリンタ資源記憶装置から削除する請求項３０に記載の方法。
【請求項４３】
上記定義された従属性をプリンタへ伝送する段階を含む請求項３０に記載の方法。
【請求項４４】
上記ローディング及び解放シーケンスの決定は、上記プリンタ資源記憶装置内の使用可能な量と、文書の将来部分を印刷するために上記必要な資源の部分集合が要求された時に基づいている請求項３０に記載の方法。
【請求項４５】
上記ローディング及び解放シーケンスの決定は、上記必要な資源の部分集合を上記プリンタ資源記憶装置へ再度転送するために要する時間に基づいている請求項３０に記載の方法。
【請求項４６】
上記ローディング及び解放シーケンスの決定は、上記プリンタ資源記憶装置へ転送される上記必要な資源の部分集合のサイズに基づいている請求項３０に記載の方法。
【請求項４７】
上記従属性を定義する段階は、従属性リストを使用して上記従属性を定義する請求項３０に記載の方法。
【請求項４８】
印刷エンジンが文書の上記特定部分の印刷を開始した後でさえも上記従属性リストを維持する段階を含み、段階（ｃ）はプリンタ誤りの場合に上記従属性リストを使用する請求項４７に記載の方法。
【請求項４９】
段階（ｃ）は上記プリミティブの集合を上記ホスト資源記憶装置内に記憶する請求項３０に記載の方法。
【請求項５０】
プリンタは印刷中に誤りが発生すると誤り信号を生成する誤りセンサを含み、上記方法が、もしプリンタが上記誤り信号を生成すればホストコンピュータ内に誤り回復段階を含む請求項３０に記載の方法。
【請求項５１】
上記誤り信号が生成された文書の上記特定部分のために上記必要な資源の部分集合及びプリミティブの集合を上記資源記憶装置から要求する段階を含む請求項５０に記載の方法。
【請求項５２】
上記転送段階は、上記必要な資源の部分集合及びプリミティブの集合をホストコンピュータからプリンタへ圧縮された２進データフォーマットで転送する請求項３０に記載の方法。
【請求項５３】
もしプリンタがバンディングモードで動作中であれば、サイズがプリンタバンドに対応するバンドとなるように上記特定部分のサイズを選択する段階を含む請求項３０に記載の方法。
【発明の詳細な説明】
【産業上の利用分野】
本発明はコンピュータシステムを用いて印刷する装置及び方法に関する。
【従来の技術】
コンピュータシステムは大量のデータをコンパイルし、処理するために高度に有用である。近代的なコンピュータシステムは図形画像を表示及び印刷可能ならしめるグラフィックス能力を含むことが多い。本文のページ及び図形画像の両者または何れか一方を印刷するには、データをホストコンピュータが使用しているフォーマットから選択された特定のプリンタが使用しているフォーマットへ変換する必要がある。典型的には、コンピュータデータはビットマップデータファイルに変換され、このビットマップにおいては各ビットは印刷されるページ上の１つのドットを表す。通常ビットマップはホストコンピュータ内で発生され、圧縮されたデータフォーマットでプリンタへ転送される。圧縮されたビットマップはプリンタ内で復元されて印刷エンジンと、印刷プロセスを制御する電子回路とに転送される。印刷エンジンは、用紙の運動、トーナ、及び用紙を移動させる機械的な駆動システムを制御するプリンタの一部である。印刷エンジンはビットマップデータを受信し、それを適切な電圧に変換して印刷画像を作成する。
印刷ページは絵素と呼ばれる個々のドットからなる。典型的なレーザプリンタでは、インチ当たり３００、６００またはそれ以上の絵素が存在することができる。通常各絵素は、プリンタメモリ内の単一のデータビットによって表される。レーザ印刷エンジンがある線を走査するにつれてその線に対応するデータビットが読出され、そのメモリ位置内に記憶されているデータビットの論理レベルに依存してレーザビームはオン／オフされる。解像力が３００絵素／インチである場合、あるページ全部のビットマップデータファイルを記憶するにはプリンタは約１メガバイトのメモリを必要とする。若干のレーザプリンタは大きいメモリを含んでおり、ページモードで作動する。これはプリンタがページ全体のデータをビットマップ形状で記憶できることを意味する。ページ全体をビットマップ形状で記憶するのに必要なメモリは大容量になるから、必要なメモリの量を減少させるために若干のプリンタはバンディング（ｂａｎｄｉｎｇ）モードを使用している。バンディングモード能力を有するプリンタは、印刷ページをバンドと称する複数の水平セグメントに細分する。プリンタは一時に１つのバンドに関するビットマップデータだけを受け入れるので、メモリに対する要求は低減される。プリンタは第１のバンドに関するデータを処理した後に限って第２のバンドに関するデータを受け入れることができる、等々のようになっている。例えば、もし印刷ページを４つのバンドに細分すれば、プリンタはそのページの全ビットマップデータの１／４だけを記憶すればよいのでメモリに対する要求も１／４に低減される。
コンピュータ・プリンタシステムの設計は、２つの基本的な目的の達成を含んでいる。第１の目的は装置独立性である。特定のホストコンピュータのシステム制約からプリンタを独立させるために、製造業者及びプログラマはプリンタ駆動装置が汎用になるように設計を重ねてきた。もし真の装置独立性が得られれば、ホストコンピュータはプリンタインタフェースにどの型のプリンタが接続されているのかを知る必要はない。典型的にはホストコンピュータは、直列Ｉ／Ｏポートまたは並列Ｉ／Ｏポートのようなハードウエアインタフェースを通してプリンタシステムにデータを伝送する。従来のコンピュータ・プリンタシステムでは、接続された特定のプリンタに対するホストの知識を最小にし、それに代えてかなり要約されたデータストリームに頼ることによって装置独立性を達成することを企図している。その結果、データストリームの転送及び処理が不十分なペースまで低速になり、処理能力が損なわれがちである。
例えば、ホストコンピュータはある文書の数ページのために必要な第１の文字フォントをダウンロードすることができる。特定の印刷タスクにおいて数文字だけしか必要としない場合であっても、典型的には従来のコンピュータシステムは全フォントをダウンロードしている。第２のフォント集合（または第２のフォント集合の一部）を必要とする場合には、ホストコンピュータは第２の文字フォント全体をダウンロードする。第１のフォント集合を必要とする爾後のページを印刷する時に使用される第１のフォント集合を維持する余裕がプリンタメモリ内に存在している場合でも、その第１のフォント集合が占めているメモリ空間内に第２のフォント集合が書込まれる。プリンタ資源の現状をホストコンピュータに助言するためのプリンタからホストコンピュータへの通信は存在していない。
第２の目的は、印刷プロセスの性能の最適化である。レーザプリンタは、単一のコンピュータに接続され一時に１または２ページの用紙を処理するような簡易なスタンドアローンプリンタから、多重紙トレイとコンピュータ回路網に結合されている複雑な紙経路とを有し、複数のユーザのために多くのページを同時に処理するような精緻なプリンタまで多岐にわたっている。コンピュータシステムはどの型のプリンタとも効率的に動作できるものでなければならない。
不幸にも、これらの第１及び第２の目的は相反的である。汎用両立性を得るための妥協の結果、コンピュータ・プリンタシステムのデータ処理は極めて低速であることが多い。更にホストコンピュータはそれに接続されているプリンタに関する若干の知識を有している。皮肉にも、これら２つの目的を追求したために現在のコンピュータ・プリンタシステムは両目的を達成し損なっているのである。ホストコンピュータは、それに接続されているプリンタの型を知っており、しかも“汎用”プリンタ駆動装置方式は低速で、非効率的なシステムをもたらし、コンピュータ及びプリンタは有用なタスクを遂行することなくページ誤り回復のような発生しないかも知れない競合を解決するために貴重な計算時間を消費することが屡々である。例えば従来のコンピュータ・プリンタシステムは、ある印刷ページがレーザプリンタ上の最後のジャム（ｊａｍ）センサを通過するまでそのページ全体のビットマップデータファイルを保持する。ページジャムが生じた場合でもデータは使用可能でありページは迅速に再印刷することができる。しかしながら印刷プロセス中に用紙ジャムが発生することは比較的少ない。一旦印刷エンジンがあるページの印刷を開始すると、そのページが最後のジャムセンサを通過するためには約１０秒を要する。プリンタメモリからのビットマップデータファイルがクリアされ、次のページを処理するまで、各ページが最後のジャムセンサを通過するための余分な１０秒を待機することによって、総合印刷プロセスはかなり低速になる。
従来のシステムはページ記述中の任意時点に用紙サイズの選択を行うために、ページ全体が記述されてしまうまで印刷エンジンへの紙送りをも遅延させる。例えばホストコンピュータはページ全体の記述を転送することができ、最終記述ラインは欧字サイズの用紙を選択することができる。もしユーザがページ記述の始めに用紙サイズを選択することを要求すれば紙送りを遅延させる必要はない。もしあれば、僅かな印刷タスクはこの要求によって阻害される。一般的にユーザは印刷プロセスが開始される前に用紙サイズ及び印刷モード（即ち、一方向または双方向）を知っている。従って、従来のシステムは不要なオプションを提供することによって貴重な時間を消費していたことになる。
現在使用されているプリンタ言語は、ドントマトリクスプリンタで使用されるプリンタ言語から開発されたものである。ドットマトリクスプリンタは未だに使用されてはいるが、レーザプリンタが広範に使用され始め、成長しつつある。しかも、低速のドットマトリクスプリンタ向きのプリンタ言語に僅かな変更を施すことによって、プリンタ言語を増加しつつあるレーザプリンタの使用に対処するように企図されてきた。この進展的な方策は、レーザプリンタにおいて利用できる潜在的な計算能力の長所を採り入れてはいない。
プリンタハードウエアが単純な“無言（ｄｕｍｂ）”プリンタからマイクロプロセッサによって制御される精緻なレーザプリンタまで進展したにも拘わらず、従来のコンピュータ・プリンタシステムのシステムアーキテクチャは殆ど変化していない。図１に示す典型的な従来のコンピュータ・レーザプリンタシステムは、プリンタ内にパーザとして知られる装置を有している。パーザはホストコンピュータからデータのバイトを受け、これらのデータのバイトを字句単位（トークン）に編成する。これらの字句単位は有意味の語い文脈内に組合わされたデータのストリームである。例えばあるデータストリームは、圧縮されたデータフォーマットで伝送される２進ビットマップであることができる。通常２進データは、如何にデータを処理するかをパーザに指令する見出し及び後書きを伴う。見出し／後書きはＡＳＣＩＩバイトで伝送され、これらの各バイトはパーザによって処理されなければならない。パーザは全てのＡＳＣＩＩバイトを、一時に１バイトずつ受け入れ、処理しなければならない。その結果、パーザはコンピュータ・プリンタシステムにおける効率的なデータ流れに対する隘路になっている。
パーザはプリンタが受信したデータの全てのバイトを処理し、プリンタ内のメモリ内に表示リストを作成する。表示リストは、その対象がページ上の何処に位置しているかによって分類される。表示リスト内のビットマップは一般に非圧縮フォーマットで記憶される。本文のような他の対象はかなり短命である。従ってそのページの周囲を巡って走る単一の、単純な矩形は一般的に１メガバイトの記憶容量を必要とする。イメージャは表示リストを印刷エンジンに適するビットマップデータファイルに変換する。このビットマップデータファイルはフレームバッファ内に記憶され、印刷エンジンへ伝送される。
従来のコンピュータ・プリンタシステムが非効率的である別の領域は、ページを非効率的な順序で処理することである。もしプリンタが双方向モード（ページの両側に印刷）で動作していれば、プリンタ内のページが辿る紙経路は、ページの側１の前にページの側２を印刷することを要求する。しかしながら、従来のコンピュータ・プリンタシステムはページの側１を側２の前に処理することを要求している。これは、ページの側１を完全に処理し、ビットマップデータファイルとしてプリンタメモリ内に記憶させることを意味する。次いで、ページの側２が完全に処理されて印刷エンジンへ送られる。これらの従来のシステムのフィロソフィは、最初に側１が処理されるものとユーザが予測していることである。しかしながら、実際にはユーザは、文書が完全に印刷された時にページが適切な順序でプリンタトレイ内に現れるであろうことを期待しているに過ぎない。ページがプリンタによって実際に印刷される順序以外の任意の順序でホストコンピュータがページを処理すべきであるとする実質的な理由は存在しない。
前述したように、従来のシステムは近代的なレーザプリンタの利用可能な潜在的計算能力を使用することにも失敗している。古い設計の無言プリンタはデータバッファ及び印刷エンジンの域を殆ど出ていなかった。データ処理は全てホストコンピュータによって行われ、プリンタはドットマトリクスデータを印刷していた。近代的なレーザプリンタはマイクロプロセッサ制御であり、ホストコンピュータに匹敵するような計算能力を有している。未だに従来のシステムは、プリンタがデータ処理を遂行する何等の能力をも持たない無言プリンタとしてプリンタを取り扱う傾向にある。これは、部分的には、前述したように装置独立性を達成しようとする企図に起因する。他の従来のシステムは、実質的に全てのデータ処理に関する責をプリンタに負わせている。結果的には、ホストコンピュータとプリンタの混合された計算能力は効率的に使用されてはおらず、総合印刷プロセスは非効率的なペースまで低速化されている。
装置独立性を達成し、全ての型のプリンタとの汎用動作を達成する試みは、ホストコンピュータとプリンタとが互いに効率的に通信しないために、潜在的な計算能力が活用されず、資源が浪費されることから非効率的な印刷プロセスをもたらしただけである。従って、ホストコンピュータとプリンタとの間に効率的な通信を許容し、資源の利用を最大にするようなコンピュータ・プリンタシステムに対する大きい要望が存在していることが理解されよう。
【発明の概要】
本発明のシステムは、文書を調べ、文書を描写プリミティブ（ｒｅｎｄｅｒ  ｐｒｉｍｉｔｉｖｅｓ）に翻訳し、同時に文書を適切に印刷するにはどの資源が必要かを決定する資源アセンブラを含むホストコンピュータ・プリンタシステムの中に実現される。資源と文書の部分との間の従属性はシステムの他の部分に知らされる。
資源ローダはこれらの従属性を使用して資源がプリンタ資源記憶装置へロードされる、及びそれから解放されるローディング及び解放シーケンスを決定する。資源スケジューラは、資源のプリンタ資源記憶装置への実際の転送のタイミングと、プリンタ資源記憶装置からの削除を制御する。資源実行装置は、プリンタ資源記憶装置内の資源を使用して描写プリミティブをビットマップデータファイルに変換する。印刷エンジンはビットマップデータファイルを実際のページを印刷するのに必要な電圧に変換する。
一実施例では、資源アセンブラは、プリンタが描写プリミティブを実時間でビットマップデータファイルに変換できるか否かを決定し、もしプリンタが実時間で変換を遂行できなければ資源アセンブラが描写プリミティブをビットマップデータファイルに変換する。本発明は負荷平衡技術を使用して、プリンタまたはホストコンピュータの何れが文書の部分を処理すべきかを決定する。負荷平衡技術はページ毎に、またページの中においてさえ変化する動的なプロセスである。この実施例の資源アセンブラは資源間の従属性を明示し、これにより資源ローダに先見能力が与えられ、資源ローダは将来使用される特定の資源をプリンタ資源記憶装置内に保持するか否かを効率的に決定する。資源アセンブラは資源として絵文字（ｇｌｙｐｈ）集合絵文字集合は単一の資源として能動的に管理される。資源スケジューラは文書の特定ページに必要な全ての資源がプリンタ資源記憶装置内に存在することを決定し、全ての資源がプリンタ資源記憶装置内に存在する時に資源実行をトリガする実行信号を生成する。
別の実施例では、プリンタは双方向通信チャネルを介してホストコンピュータと通信することができる。この実施例では資源ローダをプリンタ内に配置して、プリンタがそれ自体のメモリを管理できるようにしてある。プリンタはプリンタ資源記憶装置内に存在する資源及びプリンタ資源記憶装置の使用可能なメモリの量に関するステータス情報を通信することができる。更にプリンタは印刷プロセスの効率を最大にするためにページを処理すべきシーケンスを指定する。
双方向通信を有するシステムでは誤り回復プロセスをプリンタからホストコンピュータへ移動させることができる。資源ローダは従属リストを使用して、誤りが発生した文書の如何なる部分をも再印刷するのに必要な資源を要求する。
本発明はプリンタをページモードでも、またはバンディングモードでも使用することができる。
【発明の概要】
本発明はホストコンピュータ・プリンタ対話に対して革命的な方策を取っている。本発明は、印刷プロセスの印刷速度を劇的に増大させ、応用（アプリケーション）時間を減少させるために、ホストコンピュータとプリンタとの共働努力を許容する。応用時間への戻りは、ホストコンピュータが印刷ジョブの処理を要求し、そして印刷を開始させた応用プログラムへ戻る時間である。多くの従来のコンピュータ・プリンタシステムは、印刷ページではなくコンピュータコードを実行するように設計されている。つまり、プリンタはコードを受信し、変換し、そして実行し、ページはコード実行の副産物として印刷されるのである。従来の多くのシステムは単一のページを印刷するために大量のコードを実行している。
前述したように、従来のシステムはホストコンピュータとプリンタとの間に実効的な対話を有していない。従って近代的なプリンタの精緻な計算能力は利用されていない。それに対して本発明はプリンタの計算能力の利点を活用し、ホストコンピュータとプリンタとの間の自由な通信を許容するように設計されている。本発明は、文書をより効率的に印刷するために互いに共働することができる同一“システム”の２つの部分としてホストコンピュータ及びプリンタを見ている。ある文書を印刷するために２つの文字フォント集合を必要とする上例では、本発明のホストコンピュータは、プリンタが第１のフォント集合を保持でき、従ってプリンタメモリ内に第１のフォント集合を維持していることを知っている。更に従来のホストコンピュータは典型的に処理中の現ページだけを見ており、将来第１のフォント集合を必要とするか否か、またプリンタメモリ内に保持すべきか否かを決定するために先見することがない。その結果従来のホストコンピュータはもし数ページを印刷するために必要ならば、第１のフォント集合を繰り返してダウンロードしなければならない（及びプロセス中に第２のフォント集合を削除するかも知れない）。若干の従来のシステムは粗雑な先見能力を有してはいるが、それは極めて制限されたものでありメモリを効率的に利用するものではないことを理解されたい。それに対して本発明のシステムは、印刷タスクにおける先見によって第１のフォント集合（または任意の他の資源）をプリンタメモリ内に保持すべきか否かを決定し、また第１のフォント集合が最早必要ではなくプリンタメモリから解放乃至は削除できる時点を決定する。更に本発明のシステムは、あるフォント集合の一部分だけを必要とする場合に文字フォントの部分集合を構成し、利用可能な資源の使用を最大にする。以上のように本発明は印刷に際して資源向きの方策を取るのである。
以下の説明はレーザプリンタの動作の詳細に関するものであるが、本発明のシステム及び方法はレーザ、感熱、インパクト、昇華、インクジェット等々のような何等かのマーキング技術にも適用可能である。
資源とは、コンピュータ・プリンタシステム内にあってメモリを占有する何等かのものであり、文書を印刷するために必要なものである。文書は資源を使用して完全に記述される。資源なる語の詳細に関しては後述する。本発明の原理によれば、目的は文書を迅速に印刷すること、及びホストコンピュータが最短時間で応用プログラムに戻ることを許容することである。これは、システムの各部分及び使用可能な資源がタスクを達成するための要求をシステムの他の部分が容易に知ることができるように、ホストコンピュータとプリンタとの間に通信を開くことを許容することによって達成される。ホストコンピュータ及びプリンタの計算能力及び使用可能なメモリを活用するので、全印刷プロセスは、部分的に、従来のコンピュータ・プリンタシステムよりも高速である。
本発明は、一方向通信能力だけを有し且つプリンタが使用中であることを指示するためにプリンタからホストコンピュータまでのステータスラインを使用するコンピュータ・プリンタシステムと共に使用することができる。他のコンピュータまたはプリンタは双方向通信を有しているが、本発明が要求するようなデータ転送速度では完全な双方向通信を支持することはできない。本発明は双方向通信を確立することを企図するものであるが、完全な双方向通信を効率的に支持することができない程長い待ち時間のためにコンピュータまたはプリンタの何れかが双方向通信を支持できなければ一方向通信に頼ることになろう。しかし、多くのコンピュータ・プリンタシステムはホストコンピュータとプリンタとの間に完全な双方向通信を有している。もしコンピュータ・プリンタシステムが双方向能力を有していれば、本発明は誤り回復能力が向上し、特定の印刷タスクに依存してプリンタとホストコンピュータとの間で若干の機能を行き来させる能力を有することになる。この“負荷平衡化”は、コンピュータ・プリンタシステムの中で印刷タスクを最も効率的に遂行できる部分によってタスクを処理させることを許容するので印刷速度をかなり早めることができる。
前述したように、資源とは文書を印刷するために必要な実質的に何等かのものである。これには、文字フォント集合、絵文字（ｇｌｙｐｈ）集合、点テーブル、ブラシ、ユーザが定義した図形画像、及びページ自体を記述するデータが含まれる。“フォント集合”はタイムズ・ローマン、ヘルベティカ、クーリエ等々のような特定の文字書体を限定するＡＳＣＩＩ文字の集合であり、通常はビットマップとして記憶される。若干のプリンタはプリンタ内の読出し専用メモリ（ＲＯＭ）集積回路内に記憶されているフォント集合を有しており、他のコンピュータ・プリンタシステムはホストコンピュータ内にビットマップデータファイルとして記憶され必要に応じてプリンタのランダムアクセスメモリ（ＲＡＭ）ヘグウンロードされる“ソフトフォント”を使用している。ソフトフォントは、フォントが一般的にホストコンピュータ内のディスクに頼り、従ってプリンタ内のメモリ空間を恒久的に占めることがないからプリンタに大きい柔軟性を与える。
更に他のコンピュータ・プリンタシステムはトゥルータイプ（Ｔｒｕｅ  Ｔｙｐｅ）フォントのようなフォント基準化技術を使用しており、これらのフォントはビットマップデータファイルとして記憶されることはない。その代わりとして、これらのフォントは各フォント型毎の文字の線及び曲線を定義する方程式の集合によって記述される。ホストコンピュータまたはプリンタはこれらの方程式を使用して任意のポイントサイズの特定フォント文字を構成する。フォント基準化技術の利点は、方程式の単一の集合を使用して全てのポイントサイズのためのフォント型を記述できることであり、一方ビットマップとして記憶されるフォントは単一のポイントサイズのためだけにしか使用できない。例えば、タイムズ・ローマン４、タイムズ・ローマン４、タイムズ・ローマン８、及びタイムズ・ローマン１０は４つの分離したフォントと見做され、各々は特定のフォントを記述するのに分離したビットマップデータファイルを必要とする。これに対してフォント基準化技術は全てのポイントサイズのタイムズ・ローマン文字を記述する方程式の単一の集合を有している。ホストコンピュータまたはプリンタは方程式を適用し、方程式を選択されたポイントサイズに対して基準化するのでビットマップデータファイルの複数の集合を必要としない。本発明はＲＯＭに記憶されているフォント、ソフトフォント、またはフォント基準化技術の何れかと共に働く。
“絵文字集合”は、ホストコンピュータ内に記憶されている所定の文字からなることがソフトフォントに類似している。しかし、これらの所定の文字は必ずしも完全な文字フォント集合である必要はなく、またユーザが定義した文字、図形記号、または種々の文字フォント集合からの異なる書体の組合せを含むことができる点がフォント集合とは異なっている。例えば、絵文字集合は幾つかの異なるフォント集合からの数字及び数学的記号、並びに若干のユーザが定義した図形記号を含む方程式であることができる。特定の絵文字集合は完全な文字集合を含む程度に十分に大きくてよく、または単一の文字程度に小さくてもよい。絵文字集合の別の例は、文書内に使用することができる所得申告またはデータエントリ形状のような形状である。本発明はこの形状を作成することができ、またそれを絵文字集合として記憶する。もしこの形状を文書内に再度使用するのであれば、その形状全部を絵文字集合として使用することができる。
若干の従来のシステムは絵文字集合を制限された手法で使用している。従来のホストコンピュータは、プリンタへグウンロードするために文字フォントの部分集合をアセンブルすることができる。もし新しい文字が必要であれば従来のホストコンピュータは必要とされる新しい文字だけをインクリメント的にダウンロードし、それを既にダウンロードされている絵文字集合に追加することができる。しかし、従来のシステムは絵文字集合資源を能動的に管理することはない。従来のシステムは一般的に、絵文字集合が将来必要とされることには構わずに、新しいページの開始時に絵文字集合をクリアする。これは、新しいページが絵文字集合を必要とする場合には、従来のホストコンピュータに新しい絵文字集合を構成させることになる。新たに構成された絵文字集合は先行絵文字集合とは同一ではないかも知れず、絵文字集合の周期的な再構成及びダウンロードは印刷プロセスに余分な時間を消費させる。更に従来のシステムは、どの文字が絵文字集合内に存在しているかを指示するために大量のデータを絵文字集合に付随させることを要求する。
これとは対照的に、本発明は使用可能な資源から絵文字集合を構成し、絵文字集合を単一の資源として能動的に管理する。本明細書において使用している“絵文字集合”という語は、フォントのような他の資源の部分を構成している資源のことを言う。簡略化のために、絵文字集合を資源と呼ぶことがある。本発明は絵文字集合が所定のサイズに達するまで絵文字集合をアセンブルするが、その絵文字集合を直ちにプリンタへ転送することはない。アセンブルされた絵文字集合は必要に応じてプリンタへ転送されるユニットとして取り扱われ、最早必要としなくなった時にはユニットとしてプリンタから削除される。従来のシステムで行われているように新しいページの開始時にプリンタメモリをクリアする方策は採らず、絵文字集合は、将来その絵文字集合が必要であることに基づいて能動的に管理され、プリンタ資源内の使用可能な空間内に記憶される。本発明の絵文字集合は、どの文字が絵文字集合内にあるかを指示する“内容のテーブル”として見出しをも含むが、一旦構成された絵文字集合は変化することがないので、この見出しのサイズは従来の見出しよりも遥かに小さい。
“点テーブル”は図形対象を定義するために使用される座標点のテーブルである。例えば、矩形のような図形対象は４つの角の座標によって定義することができる。同様に、三次ベジェ（Ｂｅｚｉｅｒ）曲線は４つの制御点によって定義される。点テーブルはこれらの制御点の座標を記憶する。ベジェ曲線を描写する場合にレーザプリンタでより滑らかな曲線を印刷するために、プリンタの実際の解像力を超える高解像力を使用して曲線描写プロセスを遂行することが多い。曲線を描写するために計算された線は、対象がプリンタで実際に印刷される時に分割されるので、より滑らかに見える像が作成される。もし高解像力計算が遂行されれば、点テーブルはベジェ曲線を描写するために使用される全ての線セグメントの座標を含む。点テーブルは、マウスまたは他の位置決め装置を使用して描き、ディジタル化テーブル等を使用して座標を入力することによってユーザが応用プログラム内に作成することもできる。
“ブラシ”は、矩形または円のような図形対象の内部を埋めるのに典型的に使用される図形パターンである。ブラシは図形対象の内部全体を埋めるために繰り返される最小の繰り返しパターンである。例えば円のような対象を作成する場合、ドロープリミティブ（ｄｒａｗ  ｐｒｉｍｉｔｉｖｅ）はプリンタに命令して円を作成させ、特定の図形パターンを有する内部を埋める。例えばクロスハッチパターンは一連の小さい“ｘ”形状で構成し、対象全体内を埋めるためにそれを繰り返せばよい。本発明のシステムはプリンタ内に広く使用されているブラシを記憶しており、ホストコンピュータを使用して付加的な種々のブラシを作成する。
印刷ページを記述するデータは資源とも見做される。ホストコンピュータは、ワードプロセッサ、スプレッドシート（ｓｐｒｅａｄ  ｓｈｅｅｔ）、データベース等々のような応用プログラムによって作成することができるページの記述を含む。本発明はこのページ記述をドロープリミティブに変換し、これらのドロープリミティブを文書を印刷するために必要な他の資源と相互に関連付ける。変換プロセスの詳細に関しては後述する。
【実施例】
例示の目的から図２に機能ブロック線図で示すように、本発明はコンピュータ・プリンタシステム２００内に実現されている。従来技術のように、ホストコンピュータ２０２は印刷すべき文書を含む応用プログラム２０４を実行する。前述したように、資源は、ハードディスクメモリを含むことができるホストコンピュータメモリ２１２のようなホストコンピュータ２０２の種々の領域内に記憶されている。種々の記憶領域は、総称的に資源記憶領域２０６と呼ばれる。ホストコンピュータ２０２は、文書を印刷するために使用可能な実質的に全ての資源を含んでいる。ＲＯＭ内に記憶されている若干のフォント及び共通的に使用される資源は印刷タスクを通してプリンタ内に記憶させることができる。資源アセンブラ２０８は文書を調べて、その文書を印刷するために必要なのはどの資源かを決定する。文書を調べるにつれて資源アセンブラ２０８はその文書を印刷するために必要な資源を選択し、その文書を印刷ページを記述するドロープリミティブの集合に変換する。選択された資源及びドロープリミティブはホスト資源記憶装置２１０内に記憶される。ホスト資源記憶装置２１０はホストコンピュータメモリ２１２の一部であっても、または任意の他の適当な記憶位置であってもよい。資源アセンブラ２０８は、文書と、特定の文書を印刷するために必要な資源の部分集合との間の従属性を定義する。資源アセンブラ２０８はこの従属性情報を、ホストコンピュータ２０２に接続されているプリンタ２１８へ通信する。また資源アセンブラ２０８は、その文書を印刷するために最も効率的なシーケンスに関する情報と、プリンタ２１８内に現在どの資源が存在しているかに関するステータス情報とをプリンタ２１８から受信する。
プリンタ２１８は、ホスト資源記憶装置２１０からダウンロードされた限定された数の資源を記憶する容量を有しているプリンタ資源記憶装置２２０を含んでいる。プリンタ資源記憶装置２２０はプリンタメモリ２２２の一部であっても、または任意の他の適当な記憶位置であってもよい。図２にホストコンピュータ２０２の一部として示してある資源ローダ２１４は、資源アセンブラ２０８が作成した従属性を使用してドロープリミティブを含む資源がプリンタ資源記憶装置２２０へ転送される順序を決定する。また資源ローダ２１４は新しい資源のための余地を作るために資源をプリンタ資源記憶装置２２０から解放できる、または解放しなければならない順序をも決定する。資源ローダ２１４によって転送されたドロープリミティブは、指定された資源を使用すること、図形記号を作成すること、図形対象を描くこと、英数字を印刷すること等々をプリンタ２１８に命令する。
プリンタ２１８内に配置されているように示されている資源スケジューラ２１６は、代替としてホストコンピュータ２０２内に配置してもよい。資源スケジューラ２１６は、プリンタ動作のタイミング及び資源転送の実際のタイミングを制御する。また資源スケジューラ２１６は、プリンタ資源記憶装置２２０からの資源の削除のタイミング、及びホスト資源記憶装置２１０から特定の資源を転送することを要求するタイミングをも制御する。文書の特定ページに必要な全ての資源はプリンタ資源記憶装置２２０内に存在すると、資源スケジューラ２１６は要求された資源の部分集合がそのページを印刷するために使用可能であることを指示する実行信号を生成する。資源スケジューラ２１６から実行信号を受信すると資源実行装置２２４はドロープリミティブの命令に従って、プリンタ資源記憶装置２２０からの資源を使用して現在処理中の文書ページのビットマップデータファイルを作成する。資源実行装置２２４はこのビットマップデータファイルを印刷エンジン２２６へ転送し、印刷エンジン２２６は文書ページを印刷させる。
上述した多くの資源ブロックの物理位置は、本発明の動作にとって微妙（または臨界的）なものではない。もしコンピュータ・プリンタシステム２００においてプリンタ２１８が多量の計算能力を有するレーザプリンタであれば、上述した全ての資源ブロックをプリンタ内に配置することが可能であり、それでも上述した本発明の諸面を利用することができる。例えば、資源スケジューラ２１６は、上述したようにホストコンピュータ２０２内にでも、またはプリンタ２１８内にでも配置することができる。同様に、プリンタ資源記憶装置２２０を代替としてホストコンピュータ２０２内に配置して差し支えない。もしホストコンピュータ２０２がウインドウズ（Ｗｉｎｄｏｗｓ；商品名）のような環境内で動作中であれば、プリンタ資源記憶装置２２０を背景内で動作するデスプーラ（ｄｅｓｐｏｏｌｅｒ）機能の一部とし、応用プログラムを前景内で動作させることができる。それでも、プリンタ資源記憶装置２２０は未だにサイズが制限されており、またプリンタ資源記憶装置２２０がプリンタ２１８内に配置されているのと同一の手法で動作するから本発明の原理が適用される。背景動作は応用プログラムのパースペクティブから透明である。従って、プリンタ資源記憶装置２２０の実際の位置は微妙ではないのである。実際には、一般にホストコンピュータ２０２はプリンタ２１８よりも大きい計算能力を有している。従って上述した資源ブロックは、ホストコンピュータ２０２及びプリンタ２１８の各々の相対的な計算能力と、ホストコンピュータとプリンタとの間の双方向通信チャネルの利用率とに依存して、ホストコンピュータ２０２またはプリンタ２１８に割当てられる。
ホストコンピュータ２０２は、資源をホストコンピュータ２０２内の種々の位置またはプリンタ２１８内（ＲＯＭに記憶されている文字フォントの場合）に記憶させる。例えば、絵文字集合は資源アセンブラ２０８によってアセンブルされ、ビットマップデータファイルとしてホスト資源記憶装置２１０内に記憶される。コンピュータ・プリンタシステム２００は、ホスト資源記憶装置２１０内の種々の図形対象を表す点テーブルをも記憶する。点テーブルは資源アセンブラ２０８によってホスト資源記憶装置２１０内へロードされ、また資源アセンブラ２０８は点テーブルを本発明が使用するデータフォーマットへ変換する。他の場合には図形対象を記述するデータは応用プログラムによって点テーブル以外のフォーマットで記憶させることができる。資源アセンブラ２０８は適切なデータフォーマットで点テーブルを作成し、作成した点テーブルをホスト資源記憶装置２１０内に記憶させる。これに対してソフトフォント集合は、典型的にはデータファイルとしてハードディスク（図示してない）上に記憶される。もし特定のソフトフォント文字または絵筆が必要であると資源アセンブラ２０８が決定すれば、その資源はホスト資源記憶装置２１０内へロードされる。
従来の、及び本発明のコンピュータ・プリンタシステム２００では、応用プログラム２０４はホストコンピュータメモリ２１２、またはハードディスク（図示してない）のような何等かの他の適当な記憶位置に存在することができる文書記述を発生する。応用プログラムは、１つの応用プログラムから別の応用プログラムへ変化することができるページ記述言語（ＰＤＬ）を使用して文書を記憶する。従来のシステムでは、ホストコンピュータ内のアセンブラが、ＰＤＬを、描写プリミティブ（ＲＰ）と総称することができるドロープリミティブの集合に変換する。ＲＰは英数字、図形対象、または両者の組合せを含むことができる。若干の従来のシステムでは、ホストコンピュータはＲＰをプリミティブリストの描写と称されるプロセスで文書ページのビットマップデータファイルに翻訳する。従来のホストコンピュータがプリンタへ転送するのがビットマップデータである。従来の他のホストコンピュータはＲＰをポストスクリプト（商品名）またはＰＣＬ（商品名）のような中間レベル言語に変換する。
従来の若干のシステムは、資源アセンブラと類似の手法で機能するシステムの一部を実際に有している。この従来のアセンブラはホストコンピュータ内にあって、ＰＤＬをＲＰＬに変換する。前述したパーザは従来のシステムの第２の資源アセンブラとして動作し、ＲＰＬを受信して中間データ構造を構成する。この中間データ構造は中間レベル言語を対応するビットマップに翻訳することが要求されよう。パーザはコードを処理するように設計されており、印刷ページを生成するようには特別に設計されていない。
対照的に本発明のコンピュータ・プリンタシステム２００は、典型的にはホストコンピュータ２０２内に配置されている単一の資源アセンブラ２０８だけを使用している。資源アセンブラ２０８は印刷ページを生成することだけに関与し、資源アセンブラが作成したコードは文書を効率的に印刷するように設計されている。資源アセンブラ２０８は文書を調べてＰＤＬをＲＰＬに変換し、文書を印刷するためにはどの資源が必要かを決定する。資源アセンブラ２０８は選択された資源を集め、それらを関連ＲＰＬと共にホスト資源記憶装置２１０内に配置する。本発明は資源及びＲＰＬを、特定のＲＰＬを有する資源に関連付ける特定のフォーマットでホスト資源記憶装置内に配置する必要をなくしている。それどころか実際のデータ構造及びフォーマットは、本発明の使用にとって重要なものではない。本発明を適切に動作させるために当業者には公知の多くの異なるフォーマットを受け入れることができる。資源とＲＰＬとの従属性及び位置を述べるリストが必要な全てである。このリストは資源と関連ＲＰＬとを記憶した位置を指示する一連のポインタの形状を取ることができる。後述するように、このリストは所定のＲＰＬ実行シーケンスによって暗示することさえもできる。
資源をホスト資源記憶装置２１０内に記憶させる時に、資源及びＲＰＬを含むデータファイルのサイズには何等の制約も存在せず、または資源及びＲＰＬが記憶されるシーケンスにも何等の制約も存在しないからそれらは無制約であるものと考えられる。例えば、ある文書をユーザが作成し、文書の始めの付近に図形チャートを含むように爾後に編集することができる。この図形チャートを挿入するために応用プログラムが文書ファイル全部を再作成することはない。そうではなく、応用プログラムは文書の終わりに図形チャートを配置し、文書内の図形チャートを挿入すべき点にポインタを挿入する。ポインタは図形チャートの位置を指し示す。この普通の技術は逆方向ポインティングを使用する。即ち、文書内の挿入点は、図形チャートが記憶されている文書ファイル内の後方の位置を逆方向に指し示す。この技術を図３に図式的に示す。図３に示す文書３００はＮページを有している。番号３０２で示す文書のページ２はフォント１  ３０４を要求し、一方文書３００のページ３  ３０６はビットマップ３０８で表されている図形チャートを要求している。フォント１  ３０４及びビットマップ３０８は、それぞれフォント及びビットマップを要求している文書３００内のページ２  ３０２及びページ３  ３０６上の位置の後に記憶されるものであることに注目されたい。データポインタ３１０及び３１２はそれぞれ、資源を要求している位置３０４及び３０８を指し示している。文書は無制約であるからコンピュータは文書全体へのアクセスを有しており、上述した手法でポインタを使用することができる。
しかしながら、文書を印刷する時にプリンタはファイル全体への同時アクセスを有していないであろう。従って、文書はプリンタ資源記憶装置２２０のサイズ制約及び文書を記憶するシーケンスの両者によって制約を受けているものと見做される。必要な資源は、それらを実際に必要とする前にプリンタ内に存在していなければならず、さもないとプリンタは遅延させられるか、または遂には特定のページを印刷することができなくなるかも知れない。同じ文書３００を制約された文書として示してある図４に示してあるように、文書は制約された形態にアセンブルしなければならない。要求されたフォント３１６及びビットマップ３１８はページ２  ３２０及びページ３  ３２２が実際に要求する前に文書内に現れている。ポインタ３２４及び３２６は、文書３００内の資源が記憶されている位置を指し示す順方向ポインティングである。このようにすると、文書の印刷が要求される前に資源は常に存在することになる。資源は必ずしも文書の始めに位置する必要がないことに注意されたい。特定の資源を要求している文書内の位置の前に資源が配置されていることだけが必要なのである。例えば、図５に制約された形態で示す文書３００では、フォント１  ３１６は資源を必要としている位置３２０の直前に配置されている。ポインタ３２４は要求された資源の位置を指し示している。同様にビットマップ３１８はそれを要求している位置３２２の直前に位置しており、ポインタ３２６は資源が要求されている位置を指示している。
一般的にホストコンピュータ２０２はプリンタ２１８よりも多くのメモリを有しているが、ホスト資源記憶装置２１０に割当てることができるホストコンピュータメモリ２１２の量には制限が存在することに注意されたい。従って、ホスト資源記憶装置２１０はコンピュータ上に記憶されている全ての考え得る資源を含んではいない。そうではなく、ホスト資源記憶装置は特定の文書を印刷するために必要な資源及びその文書を記述するＲＰＬだけを含むのである。文書の特定の部分が印刷されてしまうと、文書のその特定の部分に必要であった資源はホスト資源記憶装置２１０から削除される。若干の資源はある文書に１回だけしか使用されず、文書のその部分の印刷が完了すると直ちに削除されよう。屡々使用される絵文字集合のような他の資源は、それが文書に必要でなくなるまでホスト資源記憶装置２１０内に記憶される。
ホストコンピュータ２０２は典型的にはプリンタ２１８よりも多くのメモリを有しているので、ホストコンピュータはホスト資源記憶装置２１０が使用するためにより多くのホストコンピュータメモリ２１２を割当てることができる。少ないメモリを有しているプリンタ２１８は、対応する小さいプリンタ資源記憶装置２２０を有している。プリンタ資源記憶装置２２０は、ホスト資源記憶装置２１０が含んでいる資源の集合全体を保持するには不十分な大きさである。従ってプリンタ２１８が資源を必要とする場合には、ホスト資源記憶装置２１０からプリンタ資源記憶装置２２０へダウンロードしなければならない。プリンタ２１８はプリンタ資源記憶装置２２０内において資源を効率的に使用し、不必要になった資源を削除し、またはホスト資源記憶装置２１０から迅速に再ロードできるようにしなければならない。以上のように、ホスト資源記憶装置２１０は文書を印刷するために必要な資源を１回だけロードされるのに対して、プリンタ資源記憶装置２２０は文書印刷中に多数回資源をダウンロードされ、解放する。資源の最も効率的な使用を決定するために、本発明のコンピュータ・プリンタシステム２００は文書全体を調べて、如何にして資源を最も効率的な手法で割当てるかを決定する。
再度図２を参照してコンピュータ・プリンタシステム２００の動作の詳細を説明する。資源アセンブラ２０８はＰＤＬをＲＰＬの集合に変換し、その印刷タスクにとってどの資源が必要かを決定する。印刷タスクが開始されると、資源アセンブラ２０８は印刷される表面を記述するデータの第１のバンド（もしプリンタ２１８がバンディングモードで動作中であれば）、またはページ（もしプリンタ２１８がページモードで動作中であれば）を調べ始める。この応用の目的のために、処理中の文書のユニットサイズ、即ちバンドかページかをデータブロックと呼ぶ。資源アセンブラ２０８は、資源記憶領域２０６から文書を印刷するために必要であろう資源を選択する。また資源アセンブラ２０８は、特定のデータブロックに対するこれらの資源の従属性をも決定する。例えば資源アセンブラ２０８は、第１ページ上の数式に関しては特定のフォント型が必要であり、残余のページに関しては別のフォント型が必要であることを決定することができる。更に点テーブル及び絵筆のような若干の図形資源を必要とするグラフをそのページ上に印刷することもできる。
資源アセンブラ２０８は、従属性と、これらの資源を要求しているデータブロックとを明示的に述べるリストを作成する。このリストは、リストの形状である必要がないことに注目されたい。前述したように、このリストはメモリ位置を指し示すポインタの形状であっても、または資源アセンブラ２０８がＲＰＬを作成するシーケンスによって暗示的に定義されるものであってさえよい。例えば、もしプログラマが第１のＲＰＬを作成し、直ちに実行するプログラムを書くものとすれば、ホスト資源記憶装置２１０内で作成され、記憶される表現されたリストは存在しない。しかしながら、ＲＰＬ内でタスクが作成される順序によって指定される暗示リストが存在する。本発明の効率的な動作のために重要なものは、資源アセンブラ２０８が従属性を決定し、他の資源ブロックにこれらの従属性を知らせることである。
資源アセンブラ２０８が指定する従属性には２つの異なる型がある。第１の型の従属性は、上述したように要求された資源を特定のデータブロックに関係付けるオペランド従属性である。第２の型の従属性は、ＲＰＬを処理するシーケンスを指定する実行従属性である。若干の従来システムは、それらが文書を印刷する時に実行従属性を満足させることができない。例えば若干の従来システムは、本文を図形から分離し、両者を独立的に処理する。従って印刷ページは、ユーザが表示画面上で見ているものではないかも知れない。従って従来システムは、必ずしも“貴方が見ているものは貴方が入手しているものである”（ＷＹＳＩＷＹＧ）をもたらすとは限らない。これに対してコンピュータ・プリンタシステム２００は、システムがデータブロックを本文部分と図形部分とに分割するのではなくデータブロック全体を処理するから、上述したように、たとえそれらがＲＰＬのシーケンス内に暗示されているとしても常に実行従属性を満足する。
もしプリンタ２１８とホストコンピュータ２０２との間に双方向通信が存在していれば、若干の実行従属性をプリンタ２１８によって指定することができる。詳細を後述するようにプリンタ２１８は、印刷プロセスの効率を最大にするためにデータのページまたはバンドを処理すべき順序を指定することができる。もし実行従属性がプリンタ２１８によって指定されれば、資源アセンブラ２０８がこれらの従属性をコンパイルする。もしデータブロック内に維持しなければならない特定の描き順序が存在すれば、資源アセンブラ２０８はそれ自体の実行従属性を生成することもできる。例えばプリンタ２１８は、最初に文書のページ２を処理し、ページ２を下から上へ処理することを資源アセンブラ２０８に命令することができる。これはプリンタ２１８によって指定される実行従属性である。しかしもしページ２上に重なり合った図形対象が存在すれば、印刷ページに意図したように重なった対象が現れるようにこれらの対象の描き順序を指定しなければならない。以上のように、資源アセンブラ２０８はオペランド従属性及び全ての実行従属性（資源アセンブラ２０８によって指定されていようとも、またはプリンタ２１８によって指定されていようとも）の両者を述べるリストを作成する。
前述したように、若干の従属性に関するリストはバンドまたはページ内のドロープリミティブのシーケンス内に暗示することができる。例えばコンピュータ・プリンタシステム２００は常に第１  ＲＰＬを先ず実行することによって明示的に述べてはならない実行従属性を作成する。特に、精緻なプリンタ及び双方向通信を使用して最大の効率を得るために、コンピュータ・プリンタシステム２００の現在では好ましい実施例は暗示従属性を使用しない。それはこれらがタスクのシーケンスの効率を低下させるように、実行を不要に制限し得るからである。暗示従属性を使用する上例は、本発明の広い原理を使用すればコンピュータ・プリンタシステム２００の全ての発明的な面の使用を必要とせずに印刷プロセスの総合効率を改善できることを示すために説明したに過ぎない。現在では好ましい実施例では資源アセンブラ２０８は、資源ローダ２１４、資源スケジューラ２１６、及びプリンタ２１８を含むシステムの他の成分へ従属性を明示的に通信する。もしコンピュータ・プリンタシステム２００が双方向通信能力を有していればプリンタ２１８はプリンタ資源記憶装置２２０の現ステータスに関する情報を資源アセンブラ２０８へ送ることができる。このステータス情報は、どの資源がプリンタ資源記憶装置２２０内に既に存在しているか、及びプリンタ資源記憶装置２２０内にどれ程多くの使用可能な空間が存在しているかを含む。更に、プリンタは文書を印刷するために最も効率的なシーケンスに関して資源アセンブラ２０８に命令する。これは、双方向化能力を有し、且つ複数の用紙トレイから印刷することができる大きい精緻なレーザプリンタにおける重要なプロセスである。これらのプリンタでは、１０シート程度の用紙が同時に印刷エンジンを通って移動することができる。紙シートの両側に印刷される（双方向モード）ページは用紙の一方の側では上から下へ、そして用紙の他方の側では下から上へ処理される。ページサイズが異なれば印刷エンジンの時間長は異なる。ランドスケープ（ｌａｎｄｓｃａｐｅ）モードのようなモードは他のモードより長い印刷エンジン処理時間を必要としよう。精緻なレーザプリンタの印刷エンジンの内部では複数のページを互いに実際に移動させることができる。その結果、ページを処理するための最も効率的なシーケンスはページの数字順（即ち、ページ１、２、３、・・・）ではないかも知れない。本発明のコンピュータ・プリンタシステム２００は、プリンタ２１８が文書を印刷するための最も効率的なシーケンスを決定すること、及びその情報を資源アセンブラ２０８へ通信することを許容する。一方向通信だけを有するシステムでは、プリンタ２１８はステータス情報または印刷シーケンス命令を通信することはできない。しかしそれでも資源アセンブラ２０８は明示従属性をプリンタ２１８へ通信するので、プリンタ２１８はプリンタ資源記憶装置２２０から資源を削除できる時点を知る。もし一方向通信だけしか使用できなくてもホストコンピュータ２０２が一方向モードでプリンタメモリ２２２を管理するので資源アセンブラ２０８はプリンタ資源記憶装置２２０のステータスを知ることができる。以上のように資源アセンブラ２０８は、印刷タスクの開始���にどの資源が既にプリンタ資源記憶装置２２０内に存在しているかを知る。
前述したように、資源実行装置２２４は典型的にＲＰＬを、印刷エンジン２２６によって印刷されるビットマップデータに変換する。一旦印刷エンジン２２６が始動するとそれはそのページの印刷を停止することができず、停止させれば誤りが発生しよう。従って一旦印刷エンジンに委託してしまうと、ＲＰＬを実時間でビットマップデータに変換するか、または予めビットマップデータに変換しておかなければならない。勿論、ドットマトリクスプリンタ及びインクジェットプリンタのような若干のプリンタは誤りを発生することなくページの途中で停止させることができる。プリンタ資源記憶装置２２０の現ステータス及びプリンタ２１８の総合処理能力を知って資源アセンブラ２０８は各データブロックを調べ、印刷エンジン２２６が走っている間にプリンタ２１８がそのデータブロックに関するＲＰＬを実時間でビットマップデータに変換できるか否かを決定する。もしプリンタ２１８がそのデータブロックに関するＲＰＬを実時間でビットマップデータに変換することができなければ、資源アセンブラ２０８はホストコンピュータ２０２に命令してＲＰＬをビットマップに処理させ、そのビットマップをプリンタ２１８へ転送させる。
代替として、もしプリンタメモリ２２２がそのページ全体に関するビットマップデータファイルを記憶するのに十分な容量を有していれば、資源アセンブラ２０８はプリンタ２１８に命令してＲＰＬをビットマップデータファイルに変換させ、印刷エンジン２２６に委託するまでそのビットマップをプリンタメモリ２２２内に記憶させる。コンピュータ・プリンタシステム２００のどの部分がＲＰＬをビットマップに変換するかに関する決定は、変換タスクの相対的な複雑さと、システムの各部内のプロセッサの相対的な処理能力とに依存する。現在好ましい実施例では、資源アセンブラ２０８はコンピュータ・プリンタシステム２００のどの部分がデータを処理するのかを決定する上で３つの要因を考慮する。これらの要因とは、
１．ホストコンピュータ２０２がＲＰＬをビットマップデータに処理するのに要する時間長、
２．プリンタ２０８がＲＰＬをビットマップデータに処理するのに要する時間長、及び
３．通信チャネルがＲＰＬまたはビットマップデータを転送するために要する時間長
である。
換言すれば、資源アセンブラ２０８は特定のデータブロックに関するＲＰＬをビットマップデータファイルに処理するのに要する時間＋通信チャネルがビットマップデータファイルをプリンタ２１８へ転迭するのに要する時間長を計算し、それと通信チャネルがＲＰＬをプリンタ２１８へ転送するのに要する時間長＋プリンタ２１８がＲＰＬをビットマップデータに処理するのに要する時間長とを比較する。
コンピュータ・プリンタシステム２００は、データ処理をホストコンピュータ２０２とプリンタ２１８との間で行き来するように移動させることによって負荷の平衡化をも遂行する。資源アセンブラ２０８は、システムのどの部分がデータブロックを最も効率的に処理できるかに依存して、データブロックの処理のためにホストコンピュータ２０２またはプリンタ２１８を選択する。例えば、もし特定のタスクがページ上に多数の線を描くことを要求し、ホストコンピュータのプロセッサがプリンタのプロセッサの２倍の速さであれば、多分ホストコンピュータ２０２がデータを処理することを命令されよう。一方、もし変換が比較的簡単であり、プリンタ２１８がビットマップを記憶するメモリ容量を有していればプリンタのプロセッサがデータの処理を命令され、ホストコンピュータのプロセッサは次のデータブロックを自由に処理できる。この計算はデータブロック毎に変化できる動的なプロセスであることに注目されたい。総合的な目的は、最も効率的な手法で文書を生成することである。本発明のコンピュータ・プリンタシステム２００は、ホストコンピュータ２０２及びプリンタ２１８の両方の潜在的な計算能力を使用することによってこれを許容する。
負荷の平衡化はホストコンピュータ２０２及びプリンタ２１８の相対的な計算能力、データ通信チャネルの速度、ホスト資源記憶装置２１０及びプリンタ資源記憶装置２２０の相対的なサイズ、印刷タスクの複雑さ、及びホストコンピュータ２０２及びプリンタ２１８が現在遂行中のタスクのような種々のパラメタに基づいている。前述したように負荷平衡化は動的プロセスであって、資源アセンブラ２０８は上述したパラメタに基づいて文書の若干のページをホストコンピュータ２０２に割当て、他のページをプリンタ２１８に割当てて処理させるることができる。
負荷平衡化は、単一のページ内でデータ処理責務をホストコンピュータ２０２とプリンタ２１８との間で移動させることさえも可能である。同一ページを処理するコンピュータ・プリンタシステム２００の異なる部分の例は、文書の特定のページが２つの重なり合った円のような図形対象を含む場合に生じ得る。プリンタが現在印刷していなければ、資源アセンブラ２０８は第１の円のＰＤＬ記述をプリンタ２１８へ送ることができる。従ってプリンタ２１８はＰＤＬを第１の円に翻訳するために時間を使う。ホストコンピュータ２０２はプリンタ２１８よりも大きい計算能力を有しており、またプリンタは第１の円を翻訳するために既に多忙であるので、ホストコンピュータ２０２は第２の円に関するＰＤＬを翻訳することができる。以上のように、資源アセンブラ２０８はデータ処理責務をホストコンピュータ２０２とプリンタ２１８との間で負荷平衡させるために使用される。
前述したように文書の特定のデータブロックのために必要な資源は、その特定のデータブロックのための特定の資源に関するコンピュータ・プリンタシステム２００内の従属性を作成する。これらの従属性はデータブロック毎に変化することができる。資源アセンブラ２０８はこれらの従属性を明示的に述べて、どの資源が特定のデータブロックのために必要であるかをプリンタ２１８に知らせる。従ってプリンタは必要な資源を各データブロックに関係付ける一種の資源の“メニュー”を有している。データブロックと資源との間の明示従属性が得られているために、双方向通信を使用してプリンタ２１８はそれ自体のメモリを管理することができる。プリンタ２１８は明示従属性のメニューを使用し、プリンタ資源記憶装置２２０の効率を最大にするような手法で、ホスト資源記憶装置２１０に資源を要求する。例えば、明示従属性は１つのデータブロックが特定のフォント集合と特定の絵文字集合とを要求していること、及び次のデータブロックが同一のフォント集合ではあるが異なる絵文字集合を要求していることを述べることができる。プリンタ２１８は一時にこれら３つの資源（フォント集合及び２つの絵文字集合）の全てをプリンタ資源記憶装置２２０内に保持することができるかも知れない。従ってプリンタ２１８はこれら３つの資源の全てを要求する。
資源管理のより因難な面は、どの資源をプリンタ資源記憶装置２２０から削除すべきかを決定することである。もし特定のデータブロックを印刷するためにプリンタ資源記憶装置２２０から他の資源を削除しなければならない程大きい資源を必要とすれば、プリンタ２１８はどの資源（１または複数）をプリンタ資源記憶装置２２０から削除するか、また要求された資源を将来のデータブロックのためにホストコンピュータ２０２から何時戻すかを決定することができる。更に、もし誤り復元が要求されていれば、プリンタ２１８は失われたページを復元するためにはどの資源が必要であるかを知り、もし必要な資源が既にプリンタ資源記憶装置２２０から削除されていればその必要な資源をホストコンピュータ２０２に要求することができる。
以上の説明は、ホストコンピュータ２０２とプリンタ２１８との間に双方向通信が存在している場合に適用できる。もし一方向通信だけしか使用できなければプリンタメモリ２２２はホストコンピュータ２０２によって管理される。この場合ホストコンピュータ２０２は、資源がプリンタ資源記憶装置２２０内へロードされる、またはプリンタ資源記憶装置２２０から削除されるシーケンス、及び資源をロード及び削除する時点を決定する。たとえ一方向通信でプリンタ２１８がそれ自体のメモリを管理できないとしても、パーザを排除し、資源アセンブラ２０８及びホスト及びプリンタ資源記憶装置２１０及び２２０のようなコンピュータ・プリンタシステム２００の部分が付加されているので、本発明は従来技術に対して性能の改造を提供する。本発明のコンピュータ・プリンタシステム２００では、資源は文書全体の印刷途中に複数回プリンタ資源記憶装置へロードし、該装置から解放することができる。どの資源がプリンタ資源記憶装置２２０内にあるべきかを決定するジョブは資源ローダ２１４によって遂行され、詳細に関しては後述する。
資源アセンブラ２０８は資源ローダ２１４の数データブロック前方の文書を調べて将来データブロックのための資源を生成する。これは資源ローダ２１４が先見して資源の最も効率的な割当てを決定することを許容する。若干の資源は文書を通して多くのデータブロックが使用でき、従って文書を通して従属性を有している。プリンタ資源記憶装置２２０内の使用可能な空間に依存して、印刷プロセスを通してこれらの資源をプリンタ２１８内に保持することがより効率的であるかも知れない。例えば第２の資源は文書の中間で１回だけ必要であるかも知れない。この場合、後刻プリンタ２１８が若干の他の資源を必要としなくなる時点まで第２の資源はロードされず、プリンタ資源記憶装置２２０内のより多くのメモリが使用可能である。第２の資源は一旦使用されるとプリンタ資源記憶装置２２０から削除されて他の資源のための余地が作られる。
どれ程遠くを先見するかの決定は動的なプロセスである。例えば文書の開始時における目的は、印刷エンジン２２６を始動させることである。従って、できるだけ速やかにプリンタ２１８へ資源を転送するために資源アセンブラ２０８の先見動作は制限される。しかし、プリンタ２１８が第１のデータブロックを処理している間は、資源アセンブラ２０８は将来データブロックを先見し、ホスト資源記憶装置２００のために資源を選択し、そして将来ページのためにＲＰＬを構成することができる。理想的には、資源アセンブラ２０８は何等かの印刷が開始される前に文書全体を調べるために先見することができる。しかしながら、印刷エンジン２２６を始動させるという要望が、初期先見能力を制限する。他の応用プログラムが走ることができるようにホストコンピュータメモリ２１２の使用を最小にする要望も、資源アセンブラ２０８が先見する能力を制限する。目的は印刷エンジン２２６をできる限り効率的に動き続けさせることである。資源アセンブラ２０８が先見する実際のページ数は、文書の合計長、印刷エンジン２２６が処理中の文書の現ページ、及び文書の複雑さのような要因に依存する。資源アセンブラ２０８の先見能力は、プリンタ資源記憶装置２２０への資源の流れを制御する資源ローダ２１４の能力を向上させる。
資源アセンブラ２０８の動作の例として、本文の特定のページが５つの異なるフォント集合とページを印刷するための点テーブル（ベジェ曲線を描くための）を必要とするもとのとする。資源アセンブラ２０８はページを調べて明示従属性のリストを作成する。前述したように資源アセンブラ２０８は、これらの従属性をコンピュータ・プリンタシステム２００の他の部分へ通信する。同時に資源アセンブラ２０８は、必要な資源及びそのページを記述するＲＰＬを含むであろうホスト資源記憶装置２１０をアセンブルし始める。双方向モードでは、資源アセンブラ２０８はデータブロックが処理されるシーケンスに関する情報をプリンタ２１８から受信することに注意されたい。簡易化のために、資源アセンブラ２０８がそのページのデータブロックを上から下へ処理するものとする。もしプリンタ２１８がページモードで動作していれば単一のＲＰＬが存在し、もしプリンタ２１８がバンディングモードで動作していれば各バンド毎に異なるＲＰＬが存在するであろう。ＲＰＬは、そのページ上の特定点における文字の特定シーケンスを印刷することをプリンタ２１８に告げるフォーマットでデータブロック（ページまたはバンド）を記述する。コンピュータ・プリンタシステム２００はこの情報を使用して文字シーケンスの記述を構成し、この記述をホスト資源記憶装置２１０内に記憶する。“記述を構成する”の範囲は、ホストコンピュータ２０２内の記憶位置からの文字シーケンスのビットマップをロードすることから、フォント基準化技術を使用して方程式の集合から文字シーケンスのビットマップを構成するまでにわたっている。もしフォント集合全体を転送する方がより効率的である程多くのあるフォントからの文字が必要であれば、資源アセンブラ２０８はあるフォント全体を記憶することができる。一方、もし制限された数の文字だけが必要であれば、資源アセンブラ２０８は必要な文字だけを記憶するために絵文字集合を開くことができる。
本例では、第１のフォント集合の全体を転送することができる。第２のフォント集合から必要とされる文字は方程式のための数字と数学記号だけであることができる。資源アセンブラ２０８は方程式のための文字を記憶するために絵文字集合を開く。ページの次の部分が制限された数のイタリック文字（フォント番号３）を必要とするならば、絵文字集合は開かれたままになる。絵文字集合のサイズは動的に可変であることに注目されたい。例えば、印刷動作の始めにおける目的はできる限り迅速に印刷エンジン２２６を働かせることである。この目的のために、資源アセンブラ２０８は文書の第１のデータブロックのために小さい絵文字集合を使用することができるので、絵文字集合はできるだけ速やかにプリンタ資源記憶装置２２０へ転送することができる。これは、働き続けさせる何かを印刷エンジン２２６に与えながら、資源アセンブラ２０８に爾後のデータブロックのための資源をアセンブルさせる。爾後の絵文字集合のサイズは一般に、プリンタ資源記憶装置２２０のサイズ、及びホストコンピュータ２０２とプリンタ２１８との間のデータ転送速度のようなパラメタによって決定される。資源アセンブラ２０８は、絵文字集合が所定のサイズになるまで絵文字集合を開き続ける。
前述したように、絵文字集合は異なるフォント集合からの文字を含むことができる。反対に、同一のフォント集合からの文字は、従属性故に異なる絵文字集合内に記憶することができる。例えば上述した数式内に使用される文字の若干は爾後のデータブロックにおいて印刷される第２の方程式に使用することができる。第２の方程式は第２のフォント集合からの付加的な文字と、第４及び第５のフォント集合からの文字とをも使用するかも知れない。資源アセンブラ２０８は、第２の方程式に必要な付加的な文字だけを含む第２の絵文字集合を構成することができる。資源実行装置２２４がＲＰＬ及び資源をビットマップデータファイル内へ処理する時に、資源実行装置２２４は両絵文字集合からの文字を使用して第２の方程式のためのビットマップを構成する。絵文字集合を配置するためのＲＰＬは、印刷ページ上の特定の位置にどの絵文字集合及びどの文字を配置しつつあるかを識別するフォーマットである。第２の方程式のためのＲＰＬの例は以下のようなシーケンスを有することができる。
絵文字集合１、文字１、
絵文字集合１、文字２、
絵文字集合１、文字３、
絵文字集合１、文字１２、
絵文字集合２、文字１、
絵文字集合２、文字２、
絵文字集合１、文字１７、
絵文字集合２、文字３、
絵文字集合２、文字４、
絵文字集合２、文字４、
絵文字集合２、文字５、
絵文字集合２、文字６、及び
絵文字集合２、文字７、
単一のＲＰＬ内に両絵文字集合を使用すると、プリンタ資源記憶装置２２０内に同時に両絵文字集合が得られることに注目されたい。もし第１の絵文字集合がプリンタ資源記憶装置２２０から削除されていれば、資源ローダ２１４は第１の絵文字集合をホスト資源記憶装置２１０から再ロードしなければならないことを決定する。
資源スケジューラ２１６は、プリンタ資源記憶装置２２０がオーバフローしないように、またプリンタ資源記憶装置ないの資源がタイムリーな手法で使用可能となるように、要求のタイミングを制御する。従来のシステムはフォント全体をダウンロードし、プリンタメモリを管理することを企図していない。これはメモリのオーバフローをもたらし得るが、このようになると印刷タスクを完了させることはできない。上述したようにインクリメント的なダウンロードを遂行できるシステムでさえ、グウンロードされたフォントを周期的にクリアすることを除いて、プリンタメモリを管理することを企図していない。対照的に、本発明のコンピュータ・プリンタシステム２００は、上述したように必要な文字だけをプリンタ資源記憶装置２２０へ転送し、絵文字集合資源を能動的に管理するので、文字を絵文字集合内へアセンブルすることによって時間及びプリンタメモリを節約する。従って、印刷プロセスの総合効率が向上する。
資源アセンブラ２０８の動作を要約すれば、資源アセンブラ２０８は資源従属性を決定し、その情報をコンピュータ・プリンタシステム２００の他の部分へ通信し、そして文書記述を最も効率的な手法で処理する。資源アセンブラ２０８はデータブロックを記述するＲＰＬをも作成し、ＲＰＬ及び資源をホスト資源記憶装置２１０内に記憶する。
資源ローダ２１４は、資源がプリンタ資源記憶装置２２０内へロードされ、それから解放されるシーケンスを決定する責を負う。資源ローダ２１４は、資源アセンブラ２０８が決定したシステム従属性へのアクセスを常に有しているので、最も効率的な資源のローディング及び再ローディングのシーケンスを決定することができる。資源ローダ２１４は、コンピュータ・プリンタシステム２００の通信能力に依存してホストコンピュータ２０２内に配置しても、またはプリンタ２１８内に配置してもよい。もしホストコンピュータ２０２からプリンタ２１８までの一方向通信だけしか存在しなければ、資源ローダ２１４は常にホストコンピュータ２０２に頼ることになる。従ってプリンタメモリ２２２はホストコンピュータ２０２によって管理される。しかしながら、もし双方向通信能力が存在していれば、資源ローダ２１４をプリンタ２１８内に存在させることができ、プリンタはそれ自体のメモリを管理できるようになる。資源ローダ２１４はＲＰＬ及び資源の両者のプリンタ２１８への転送を制御する。
前述したようにホスト資源記憶装置２１０は、資源アセンブラ２０８がアセンブルした資源を１回だけホスト資源記憶装置２１０内へロードするのに十分に大きいサイズである。ホスト資源記憶装置２１０は資源のサイズにも、またはプリンタ資源記憶装置２２０のサイズによって賦課される制約にも関係していない。一方、プリンタ資源記憶装置２２０はサイズに制限があり、資源はサイズ制限によって制約される。プリンタ資源記憶装置２２０を効率的に管理するために、資源ローダ２１４は既にプリンタ資源記憶装置２２０内にある各資源のサイズ及び資源従属性（資源アセンブラ２０８によって先に決定されている）を調べ、資源をプリンタ内へロードする及びプリンタから解放する順序を決定するので、プリンタ資源記憶装置２２０が空間を使い果たすことはない。以上のように資源ローダ２１４は印刷タスクの途中で特定の資源を多数回ロードし、解放することができる。
資源ローダ２１４は、特定の資源が不要になった時にそれを解放できることに注目されたい。特定の資源はプリンタ２１８内でまだ必要であるかも知れないので、プリンタ２１８はその資源を直ちに削除することはできない。ホストコンピュータ２０２とプリンタ２１８とは非同期的に動作するから、資源ローダ２１４による資源の解放が直ちにプリンタ資源記憶装置２２０からの資源の削除をもたらすことはない。従って資源を“解放”及び“削除”するという語は、同期していない。資源をプリンタ資源記憶装置２２０から排除すべきであると資源ローダ２１４が決定すると、資源が解放される。資源ローダ２１４の観点から、資源は最早プリンタ２１８内に存在しない。次いで資源ローダ２１４は次の資源のロードまたは解放を指定する。プリンタ２１８がその中で最早資源を必要としなくなると資源は削除され、実際にプリンタ資源記憶装置２２０から資源を削除する。資源ローダ２１４は、各資源のサイズと、効率的な観点から、プリンタ資源記憶装置２２０内に存在させる特定の資源のためにそれが意味をなしているか否かだけに関心がある。資源ローダ２１４はプリンタ資源記憶装置２２０のサイズ、その中の使用可能な空間、及びプリンタ資源記憶装置２２０の現状（即ち、どの資源がプリンタ資源記憶装置内に存在しているか）を追跡し、どの資源を保持するか、または解放するかを決定する。資源ローダ２１４は現ＲＰＬ及び  将来ＲＰＬの両者に関する明示従属性を調べる。資源ローダ２１４は資源をロード及び解放すべき順序だけに関心があり、資源変化の実際のタイミングには無関係であることに注目されたい。プリンタ資源記憶装置２２０に対する変化のタイミングは資源スケジューラ２１６によって制御される。
前述したように、明示的に述べられた従属性によって資源ローダ２１４は、資源をプリンタ資源記憶装置２２０内へローディングするシーケンスを決定するのが容易になる。より困難なタスクは、新しい資源のために余地を作るために資源をプリンタ資源記憶装置２２０から何時解放するかを決定することである。再び使用されることがない資源は無関係に削除できることは明白である。しかしながら、もしある資源を近い将来再度使用するのであれば、資源ローダ２１４はどの資源を解放して新しい資源のために余地を作るかを決定しなければならない。従来の多くのキャッシング（ｃａｃｈｉｎｇ）システムにおける一般的方策は、最も古く使用された項目を削除（即ち、最も長い時間前に使用された資源を削除）することである。この方策は、将来必要とされることが少ない資源を予測するためには効率的ではない。コンピュータ・プリンタシステム２００は、明示従属性の故に、資源の洞察的キャッシングを遂行して文書の将来のデータブロックのための資源の最も効率的な記憶を予測することができる。資源は、資源が使用される順序、資源を記憶するために必要な空間の量、及びもし資源をプリンタ資源記憶装置２２０から解放しなければならなければ資源を再ロードするために必要な時間に基づいて管理される。資源ローダ２１４は明示従属性を使用して、現在プリンタ資源記憶装置２２０内にある資源を資源ローダが調べてどの資源が最も遅い時間に使用されるかを決定するような“時間線”を確立する。しかし前述したように、資源ローダ２１４は削除される資源のサイズ及び資源を将来再ロードするために必要な時間をも考慮する。
洞察的キャッシングの例としてプリンタ資源記憶装置２２０が既に１０資源（この例のために一般的に１乃至１０のラベルを付す）を含み、特定のデータブロックのためにプリンタ２１８が番号１１の資源を必要としているものとする。資源ローダ２１４は時間線を調べ、例えば資源番号８が最も遅い時間に使用されることを決定することができる。しかしもし資源番号８のサイズが小さければ、プリンタ資源記憶装置２２０から資源番号８を解放した後でも必要な資源番号１１をロードための十分な空間がないことが考えられる。従って、資源ローダ２１４は再度時間線を調べ、資源番号８の次に最も遅い時間に使用される資源を決定する。例えば資源番号２が解放できるものとする。しかしながら、番号２の資源をプリンタ資源記憶装置２２０から解放した場合に必要以上の自由空間がプリンタ資源記憶装置２２０内に生じ、また近い将来番号２の資源を再ロードするには極めて長い時間を消費するようであれば、資源ローダ２１４は再度時間線を調べて１またはそれ以上の他の資源を代わりに解放する。この例では、要求された資源番号１１のための余地をプリンタ資源記憶装置２２０内に作るために、資源ローダ２１４は資源願望２及び８の代わりに資源番号７及び５を解放することができる。以上は、資源ローダ２１４がプリンタ資源記憶装置２２０を管理することを考慮する際の種々のパラメタの例として説明したに過ぎない。
資源ローダ２１４は資源をプリンタ資源記憶装置２２０内へロードし、該装置から解放する順序を決定するが、資源管理の実際のタイミングは資源スケジューラ２１６によって遂行される。資源スケジューラ２１６はプリンタ作動のシステムと見做すことができる。しかしながら前述したように、資源スケジューラ２１６を物理的にプリンタ２１８内に配置する必要はない。一方向通信だけを有するコンピュータ・プリンタシステム２００では、資源スケジューラ２１６をホストコンピュータ２０２内に配置してホストコンピュータ２０２からプリンタメモリ２２２を管理することができる。もしコンピュータ・プリンタシステム２００が双方向通信を有していれば、資源スケジューラ２１６をプリンタ２１８内に配置してプリンタにそれ自体のプリンタメモリ２２２を管理させることができる。ホストコンピュータ２０２、プリンタ２１８、及びプリンタ内の印刷エンジン２１６は全て非同期で動作するから、これら３つの非同期部分間に競合が発生しないように資源スケジューラ２１６は全てのタイミングを制御しなければならない。資源スケジューラ２１６は全てのプリンタタイミングを初期化して制御し、印刷エンジン２２６に動作を同期させ、特定の資源をプリンタ資源記憶装置２２０内へ受け入れる時点を決定する。
資源スケジューラ２１６は、特定の資源をプリンタ資源記憶装置２２０から削除する時点をも決定する。前述したように、資源のローディング及び解放のシーケンスを指定することが資源スケジューラ２１６のタスクである。資源スケジューラ２１６は先に資源ローダ２１４によって解放された特定の資源が将来必要ではなくなる時点を決定する。資源ローダ２１４と同様に、資源スケジューラ２１６も資源アセンブラ２０８によって作成された明示従属性へのアクセスを有している。資源ローダ２１４とは異なり、資源スケジューラ２１６は現ページのために必要な資源がプリンタ資源記憶装置２２０内に存在しているか否かだけに関心がある。
現ページのための全ての従属性が満たされると（即ち、全ての必要資源がプリンタ資源記憶装置２２０内に存在していると）、資源スケジューラ２１６は印刷エンジン２２６にページを印刷することを委託する実行信号を生成する。詳細を後述するように、印刷エンジンはページの途中では停止させることができないから、一旦あるページまたはそのページを印刷するように印刷エンジンに委託した後は印刷エンジンにはビットマップデータを実時間で供給しなければならない。さもないと適切な印刷がなされなくなる。双方向プリンタはページの各側毎に実行信号を必要とする（即ち、印刷プロセスは用紙の側と側との間で停止させることができる）ことに注意されたい。資源スケジューラ２１６は、印刷エンジンへの実時間委託を行うことができる時点を決定し、印刷エンジンにページの印刷を委託する実行信号を生成する。
資源スケジューラ２１６は、一方向及び双方向の両通信において同じような機能を遂行する。一方向システムでは資源スケジューラ２１６は、ホストコンピュータ２０２へプリンタステータスを指示するハードウエア内に話中（ＢＵＳＹ）フラグを生成する。また資源スケジューラ２１６は、プリンタ資源記憶装置２２０から資源が実際に削除される時点をも決定する。双方向システムでは資源ローダ２１４がプリンタ２１８からプリンタメモリ２２２を管理し、特定の資源に対する特定の要求をホストコンピュータ２０２に対して行う。更に資源スケジューラ２１６は印刷プロセスを監視して、ページが印刷エンジン２２６内の最終用紙ジャム（ｊａｍ）センサを通過した時点をホストコンピュータ２０２へ通知する。従ってホストコンピュータ２０２は、誤り復元を提供するためにそのページに関連する資源を最早保持している必要がなくなったことを知る。資源スケジューラ２１６は印刷タスクのための用紙経路をも計画することができる。これは、多数の用紙貯蔵器、複数の用紙サイズ及び経路を有する大型プリンタには特に重要である。最適用紙経路を計画すると印刷タスクの総合効率が改善される。
資源実行装置２２４は資源スケジューラ２１６から実行信号を受け、ＲＰＬを印刷エンジン２２６がページを実際に印刷するために使用することができるビットマップに変換する。他の資源は、ビットマップ形状でプリンタ資源記憶装置２２０内に既に存在していよう。資源実行装置２２４は、現在プリンタ資源記憶装置２２０内で使用可能な資源を使用してビットマップを生成する。本発明のコンピュータ・プリンタシステム２００は、バンディングモードまたはページモードで動作するプリンタと共に働く。もしバンディングモードが使用されていれば、資源実行装置２２４は実時間動作に拘束される。即ち、一旦印刷エンジン２２６に対して実時間委託がなされると、資源実行装置２２４は全てのＲＰＬを一時に１バンドずつ実時間でビットマップに変換しなければならず、そうでないと誤りが発生しよう。もしプリンタ２１８が（バンディングモードに対抗して）ページモードで動作していれば、実時間委託は存在しない。資源実行装置２２４は、ビットマップを印刷エンジンへ転送する前にページ全体をビットマップに変換することができる。本発明のコンピュータ・プリンタシステム２００は、ページモードでも、またはバンディングモードでも動作することができる。ＲＰＬをビットマップデータファイルに実際に変換するのは当業者には公知であり、その説明は省略する。
印刷エンジン２２６は資源実行装置２２４からビットマップデータを受け、このビットマップデータをページ上に印刷させる。印刷エンジン２２６の使用は当業者には公知であり、その説明は省略する。
文書の１つのページに関するビットマップデータが印刷エンジン２２６によって処理されるにつれて、用紙はプリンタ２１８を通って移動する。印刷エンジン２２６を通して、用紙のジャムまたは低トーナ状態のような誤りを検出するための複数のセンサが存在している。従来のシステムは、ページが最終用紙ジャムセンサを通過するまでプリンタメモリ内にビットマップデータを保持する。もし用紙のジャム誤りが発生すれば、従来のシステムはジャムを生じたページを再印刷するために既にビットマップ形状にあるデータを有している。しかしもしコンピュータ・プリンタシステム２００が双方向通信能力を有していれば、ビットマップデータはプリンタ２１８内に維持されておらず、ホストコンピュータ２０２内に誤り回復データを生成する。ビットマップデータが既にプリンタメモリ内にあってページがジャムを発生すれば再印刷しようと待機している従来システムの方が本発明よりも誤り回復が速いように見える。しかし通常の印刷プロセスではページジャム誤りは滅多に発生するものではないから、将来のページのためにデータの処理を継続し、誤り回復のための最も効率的な技術に関して心配しない方が総合印刷プロセスとしてはより効率的である。従って本発明のコンピュータ・プリンタシステム２００は文書全体を印刷するための最も効率的な技術に関心を寄せているのである。
従来のシステムは、ページが最終用紙ジャムセンサを通過してしまうまでプリンタメモリがビットマップデータを保持させられているので、次のページのためのデータを直ちに処理することはできない。紙シートを取り、用紙上に像を発生させ、用紙を用紙トレイ内へ落とすのに、典型的な印刷エンジンは約１０秒を要する。本発明は、用紙がジャムしないことを見越して、文書内の将来のページのためのデータの処理を継続する。従来のシステムが印刷された用紙が最終用紙ジャムセンサを通過するのを待機している時間中に、本発明のコンピュータ・プリンタシステム２００は若干のページのために資源をアセンブルし、ＰＤＬをＲＰＬに翻訳し、そしてプリンタ資源記憶装置２２０内の資源の流れを管理している。
用紙ジャムが発生しそうにもない場合には、ホストコンピュータ２０２はそのページを始めから再処理する。もし用紙ジャムが発生すれば、ジャムを生じた１または複数のページを物理的に除去するために操作員が関与しなければならないから、時間的な実コストは存在しない。操作員がジャムを生じたページを除去している間に、資源ローダ２１４はどのページが誤り回復を必要としているかを決定し、必要な資源及びＲＰＬをプリンタ２１８内へ再ロードし始める。どの資源が誤り復元プロセスのために必要かを決定するために資源ローダ２１４が明示従属性を調べているので、明示従属性は誤り復元プロセスを簡易化する。例えばプリンタ２１８は、２ページから５ページまでの用紙をジャムし、２及び３ページを双方向とし、４及び５ページを一方向とすることができる。もしプリンタ２１８が印刷順序を３ページ（下から上へ）、２ページ（上から下へ）、４ページ（上から下へ）、５ページ（上から下へ）のように予め指定されていれば、資源ローダ２１４は明示従属性を使用して最も効率的な手法でＲＰＬを要求し、誤り回復を遂行する。これらの活動は、操作員がジャムを生じた用紙を除去している間に行われる。従って、コンピュータ・プリンタシステム２００は従来のシステムと対比した時に誤り回復に関して時間を失ってはいない。更に、印刷プロセスの効率は、ページが通常はジャムしないものとすれば、極めて向上している。以上のように、コンピュータ・プリンタシステム２００は従来のシステムよりも遥かに短い時間で文書を処理できるのである。
前述したように、本発明のコンピュータ・プリンタシステム２００はホストコンピュータ２０２からプリンタ２１８までの一方向通信と共に動作することも、またはホストコンピュータ２０２とプリンタ２１８との間の完全双方向通信チャネルと共に機能することもできる。もしホストコンピュータ２０２の、またはプリンタ２１８のハードウエアが双方向通信を支持することができなければ、一方向通信だけが可能である。一方向通信の制限があるとしても、本発明のコンピュータ・プリンタシステム２００は従来のシステムに対して改良されている。若干の場合には、双方向通信はコンピュータシステム２０２及びプリンタ２１８の両者によって支持することができるが、完全双方向通信を効率的に支持することが不可能になる程双方向通信チャネルの待ち時間は長くなる。この場合、本発明のコンピュータ・プリンタシステム２００はプリンタ２１８とホストコンピュータ２０２との間に制限された双方向通信を支持することができる。完全双方向通信程の効率ではないにしても、このモードは一方向通信よりは好ましい。制限された双方向通信は単純な一方向通信よりも良い誤り及びステータス報告をホストコンピュータ２０２に与える。データ処理はあたかも一方向通信のように進行するが、もし誤りが発生すれば、コンピュータ・プリンタシステム２００は誤り及びステータス情報を使用して誤りから回復することができる。
ＰＣＬを使用する若干のレーザプリンタシステムには、プリンタへプラグインされるソフトウエアカートリッジが設けられている。このカートリッジは若干の付加的なフォントを含むことができる。コンピュータ・プリンタシステム２００はこのようなカートリッジを使用してプリンタ２１８に、プリンタ２１８内に位置させる本発明の必要成分を提供することができる。本発明の一実施例では、コンピュータ・プリンタシステム２００はＰＣＬを使用する第１のモードで動作する能力を有しており、また本発明を使用する第２のモードで動作することも可能である。この実施例では、コンピュータ・プリンタシステム２００は２つのモードの間で自動的に切り換えられて行き来する。これによってコンピュータ・プリンタシステム２００は、ＤＯＳ応用のような他の応用と両立し続けることが可能になる。２つのモードの間で切り換えられて行き来することによってコンピュータ・プリンタシステム２００は、従来のシステムとの間に大きい互換性を与える。
当業者ならば理解できるであろうが、本発明が使用している印刷への革命的なアプローチは、印刷プロセスの総合速度を極めて増加させる。印刷プロセスにどのようにしてアプローチするかと言う従来の概念を破棄し、ホストコンピュータとプリンタの両方の利用できる全ての計算能力の利点を採り入れることによって本発明は、ハードウエアの価格の増加を僅かに抑えながら印刷速度を劇的に増加させた。本発明の原理は既存レーザプリンタに容易に適用できる。
本発明の種々の実施例及び利点を説明したが、この説明は例示に過ぎず、本発明はその原理から逸脱することなく多くの変更を施し得ることを理解されたい。従って、本発明は特許請求の範囲によってのみ制限されるのである。
【図面の簡単な説明】
【図１】典型的な従来技術のコンピュータ・レーザプリンタシステムを示す図。
【図２】本発明のコンピュータ・プリンタシステムの機能ブロック線図。
【図３】無制約文書を表すことができる手法を示す図。
【図４】図３の無制約文書を制約された形態で表すことができる手法を示す図。
【図５】図４の制約された文書の代替構成を示す図。
【符号の説明】
２００  コンピュータ・プリンタシステム
２０２  ホストコンピュータ
２０４  応用プログラム
２０６  資源記憶領域
２０８  資源アセンブラ
２１０  ホスト資源記憶装置
２１２  ホストコンピュータメモリ
２１４  資源ローダ
２１６  資源スケジューラ
２１８  プリンタ
２２０  プリンタ資源記憶装置
２２２  プリンタメモリ
２２４  資源実行装置
２２６  印刷エンジン
【図１】
0003811192.tif 000002
【図２】
0003811192.tif 000003
【図３】
0003811192.tif 000004
【図４】
0003811192.tif 000005
【図５】
0003811192.tif 000006