JPH08503318A - フォント・ラッピング・プリンタ・データに対するシステム及び方法 - Google Patents

フォント・ラッピング・プリンタ・データに対するシステム及び方法

Info

Publication number
JPH08503318A
JPH08503318A JP6512502A JP51250294A JPH08503318A JP H08503318 A JPH08503318 A JP H08503318A JP 6512502 A JP6512502 A JP 6512502A JP 51250294 A JP51250294 A JP 51250294A JP H08503318 A JPH08503318 A JP H08503318A
Authority
JP
Japan
Prior art keywords
printer
resource
data
mode
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6512502A
Other languages
English (en)
Inventor
ブレット シー ガーラック
パトリック リー
ウィリアム ビー マコーミック
ジョージ エイチ ダグラス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JPH08503318A publication Critical patent/JPH08503318A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1296Printer job scheduling or printer resource handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

(57)【要約】 文書を記述しているデータ・ファイルがホスト・コンピュータからプリンタへ伝送されるべきデータのフレームを生成する方法で処理される、ホスト・コンピュータ及びプリンタ並びに動作の方法が開示される。データ・フレームは、プリンタがある方法でデータ・フレームを処理することができるように生成フォント・コマンド・ラッパーでラップされるデータ・ストリームを包含する。プリンタが第1のモードで動作しておりかつ実際のストリーム・データを処理できないならば、フレーム・ラッパーは、プリンタにラッパーを処理させかつデータ・ストリームを無視させる。プリンタが第2のモードで動作しておりかつ実際のストリーム・データを処理できるならば、プリンタは、ラッパーを無視しかつデータを処理する。プリンタが実際のデータ・ストリームを処理できないならば、プリンタは、ユーザーにメッセージをプリントする。メッセージは、データ・ストリームを処理することのプリンタの無能力をユーザーに報告する。

Description

【発明の詳細な説明】 フォント・ラッピング・プリンタ・データに対するシステム及び方法発明の分野 本発明は、コンピュータ・システムによるプリンティングに対するシステム及 び方法に関する。発明の背景 コンピュータ・システムは、大量のデータをコンパイルしかつ処理するために 非常に有用である。最新コンピュータ・システムは、グラフィック・イメージの 表示及びプリンティングを許容するグラフィックス・ケイパビリティをしばしば 含む。 テキストのページ及び/又はグラフィック・イメージのプリンティングは、ホ スト・コンピュータで用いられたフォーマットから選択された特定のプリンタに より用いられたフォーマットにデータの変換を必要とする。一般に、コンピュー タ・データは、各ビットがプリントされたページ上のドットを表すビット−マッ プ・データ・ファイルに変換される。ビット−マップは、ホスト・コンピュータ 内で通常生成されかつ圧縮データ・フォーマットでプリンタに転送される。圧縮 ビット−マップは、プリンタで拡張され、かつ用紙移動、トナー、及び用紙を移 動する機械的駆動システム、並びにプリンティング処理を制御する電子回路素子 を制御するプリンタの部分であるプリント・エンジンへ転送される。プリント・ エンジンは、ビット−マップ・データを受け取りかつプリントされたイメージを 生成すべくそれを適当な電圧に変換する。 プリントされたページは、画素と称される、個々のドットから構成される。一 般的なレーザ・プリンタでは、毎インチ300、600、またはそれ以上の画素 が存在しうる。各画素は、プリンタ・メモリにおいて単一データ・ビットで通常 表される。レーザ・プリント・エンジンがラインを走査すると、そのラインに対 応するデータ・ビットが読取られ、かつレーザ・ビームがそのメモリ・ロケーシ ョンに記憶されたデータ・ビットの論理レベルによりオンまたはオフにされる。 毎インチ300画素の解像度で、プリンタは、ページ全体に対するビットマップ ・データ・ファイルを記憶するためにメモリの約1メガバイトを必要とする。あ るレーザ・プリンタは、多数のメモリを包含しかつページ・モードで動作する。 それは、プリンタがビットマップ形式でデータのページ全体を記憶することがで きることを意味する。ビットマップ形式でページ全体を記憶するために大量のメ モリが必要されるので、あるプリンタは、必要なメモリ量を低減するためにバン ディング・モード(banding mode)を用いる。バンディング・モード・ケイパビ リティを有するプリンタは、プリントされたページをバンドと称される多数の水 平セグメントに分割する。プリンタは、一度に1バンドに対するビットマップ・ データを受け入れるので、メモリ要求を低減する。プリンタが第1のバンドに対 するデータを処理したときに、それは、第2のバンド及びその後に対するデータ を受け入れることができる。例えば、プリントされたページが4つのバンドに分 割されたならば、プリンタがページの4分の1に対するビットマップ・データを 記憶するだけを必要とするので、メモリ要求は、4の因数で低減される。 コンピュータ−プリンタ・システムの設計は、二つの基本的目標の達成を含む 。第1の目標は、装置独立性のそれである。プリンタをいかなる特定のホスト・ コンピュータから独立にさせるための努力において、製造者及びプログラマーは 、汎用であることを試みるプリンタ・ドライバを設計する。真の装置独立性が存 在するならば、ホスト・コンピュータは、プリンタ・インタ−フェイスに接続さ れるプリンタの形式を知る必要がない。ホスト・コンピュータは、直列I/Oポ ートまたは並列I/Oポートのようなハードウェア・インタ−フェイスを通して データをプリンタ・システムに一般に伝送する。従来技術のコンピュータ−プリ ンタ・システムは、特定の付属プリンタのホストの知識を最小化しかつよりアブ ストラクトなデータ・ストリームにその代わりに依存することにより装置独立性 を達成することを試みる。結果として、データ・ストリームの転送及び処理は、 無効ペース(inefficient pace)にまでしばしばおそくされて、スループット( 処理能力)が損害を被る。 例えば、ホスト・コンピュータは、文書(document)の複数のページに対して 必 要な第1の文字フォント・セットをダウンロード(download)しうる。一般に、 従来技術のコンピュータ・システムは、特定のプリンティング・タスクに対して ほんの少数の文字が必要であるときでさえもフォント全体(entire font)をダ ウンロードする。ホスト・コンピュータは、第2のフォント・セット(または第 2のフォント・セットの部分)が必要であるときに第2の文字フォント・セット 全体をダウンロードする。第2のフォント・セットは、第1のフォント・セット を必要とする後続ページをプリンティングするときの使用に対する第1のフォン ト・セットを保持(維持)すべくプリンタ・メモリ内にメモリ空間が存在しうる ときでさえも第1のフォント・セットによって占有されるメモリ空間に書き込ま れうる。プリンタ資源の現行状態をホスト・コンピュータにアドバイスするため のプリンタからホスト・コンピュータへの通信(コミュニケーション)が存在し ない。 第2の目標は、プリンティング処理の最適性能(optimum performance)であ る。レーザ・プリンタは、単一のコンピュータに結合されかつ一度に1または2 ページの用紙を処理する簡単な独立式プリンタから、コンピュータ・ネットワー クに結合されかつ複数のユーザーに対して多くのページを同時に処理する複合用 紙経路(complex paper pathways)及び多段用紙トレイを有する高性能プリンタ にまで及ぶ。コンピュータ・システムは、あらゆる形式のプリンタで有効に動作 することができなければならない。 残念ながら、これら第1及び第2の目標は、矛盾しうる。汎用の互換性を試み ることに対するトレードオフ(trade-off)は、コンピュータ−プリンタ・シス テムがデータを処理することにおいてしばしば非常にゆっくりであるということ である。更に、ホスト・コンピュータは、それらが接続されるプリンタのあるア ウェアネス(some awareness)を有する。皮肉にも、これら二つの目標を達成す る試みにおいて、このコンピュータ−プリンタ・システムは、いずれの目標も達 成することを失敗する。ホスト・コンピュータは、それが接続されるプリンタの 形式を承知しているが、“汎用の”プリンタ・ドライバ・アプローチは、ホスト ・コンピュータ及びプリンタが、有用なタスクを実行するよりも、ページ・エラ ー回復のような、起こりえない矛盾を解決するために、貴重な計算時間(valuab lecomputing time)をしばしば費やす、ゆっくりした、無効システム(ineffici ent system)を結果として生ずる。例えば、従来技術のコンピュータ−プリンタ・シ ステムは、プリントされたページがレーザ・プリンタの最後のジャム・センサを クリアするまでページ全体に対するビットマップ・データ・ファイルを保持(維 持)する。ページがジャムする場合には、データは、利用可能でありかつページ は、素早くリプリントされうる。しかしながら、用紙ジャムは、プリンティング 処理において相対的に稀に発生する。一度プリント・エンジンがページをプリン トすることを開始したならば、ページが最後のジャム・センサをクリアするまで におおよそ10秒かかる。プリンティング処理全体は、プリンタ・メモリからの ビットマップ・データ・ファイルをクリアしかつ次のページを処理する前に最後 のジャム・センサをクリアすべく各ページに対して余分な10秒を待つことによ りかなり減速される。 従来技術のシステムは、用紙サイズの選択がページ記述中いつでもなされうる ので、ページ全体が記述されるまで用紙をプリント・エンジンへ供給することも 遅延する。例えば、ホスト・コンピュータは、ページ全体の記述を転送しうるし かつ最後の記述ラインは、レタ−・サイズ用紙の選択でありうる。ユーザーがペ ージ記述の始めで用紙サイズを選択することを要求するならば、用紙供給を遅延 することは、必要でない。もしあっても、ほとんどのプリント・タスクは、この 要求によって妨げられない。ユーザーは、プリント処理が開始する前に用紙サイ ズ及びプリント・モード(即ち、シンプレックスまたはデュプレックス)を一般 に知っている。従って、従来技術システムは、不要なオプション(選択)を供給 することによって貴重な時間を無駄にする。 現在使用されるプリンタ言語は、ドットマトリックス・プリンタで用いられた プリンタ言語から導出された。ドットマトリックス・プリンタは、まだ使用され ているが、レーザ・プリンタの使用が広まりかつ成長している。それでもまだ、 プリンタ言語は、ゆっくりしたドットマトリックス・プリンタ向きのプリンタ言 語に対して少ない変更を行うことによってレーザ・プリンタの増加した使用を処 理することを試みている。この展開的アプローチは、レーザ・プリンタで利用可 能な潜在的演算能力を利用していない。 従来技術のコンピュータ−プリンタ・システムのシステム・アーキテクチャは 、 プリンタ・ハードウェアが簡単な“ダム(dumb)”プリンタからマイクロプロセ ッサにより制御される高性能レーザ・プリンタへ発展したにも関わらずほんの少 し変わっただけである。図1に示す、典型的な従来技術のコンピュータ−プリン タ・システムは、パーサー(parser)として知られたプリンタ内の装置を有する 。パーサーは、ホスト・コンピュータからデータのバイト(bytes of data)を 受け入れかつデータのバイトをトークン(tokens)に編成する。トークンは、有 意味な字句(語量)コンテキストに関連付けられたデータのストリームである。 例えば、データ・ストリームは、圧縮データ・フォーマットで伝送された2値ビ ットマップでありうる。2値データは、どのようにデータを処理するかをパーサ ーに指示するヘッダー(header)及びトレイラー(trailer)を通常伴う。ヘッ ダー/トレイラーは、それぞれがパーサーによって処理されなければならない、 ASCIIバイトで伝送される。パーサーは、一度に1バイトずつ、全てのAS CIIデータ・バイトを受け入れかつ処理しなけらばならない。結果として、パ ーサーは、コンピュータ−プリンタ・システムにおける有効データ・フローに対 してボトルネックである。 パーサーは、プリンタによって受け取られた全てのデータのバイトを処理しか つプリンタのメモリ内に表示リストを生成する。表示リストは、オブジェクトが ページのどこに位置決めされるかによって分類される。表示リストのビットマッ プスは、非圧縮フォーマットで一般に記憶される。テキストのような他のオブジ ェクトは、かなり簡略である。従って、ページの周囲に巡らされている単一の、 簡単な矩形は、1メガバイトの記憶(量)を一般に必要とする。イメージャー( imager)は、表示リストをプリント・エンジンに適するビットマップ・データ・ ファイルに変換する。ビットマップ・データ・ファイルは、フレーム・バッファ に記憶されかつプリント・エンジンへ伝送される。 従来技術のコンピュータ−プリンタ・システムが無効である別の領域は、ペー ジが無効順序(inefficient order)でしばしば処理されることである。プリン タがデュプレックス・モード(ページの両面をプリントすること)で動作してい るならば、プリンタ内のページによってとられた用紙経路は、ページのサイド( 側面)2がサイド1の前にプリントされることを要求する。しかしながら、従来 技 術のコンピュータ−プリンタ・システムは、ページのサイド1がサイド2の前に 処理されることを要求する。これは、ページのサイド1が完全に処理されかつビ ットマップ・データ・ファイルとしてプリンタ・メモリ内に記憶されることを意 味する。次に、ページのサイド2が完全に処理されかつプリント・エンジンへ送 られる。従来技術のシステムにおける観点(philosophy)は、ユーザーが、サイ ド1がまず処理されることを期待することである。しかしながら、ユーザーは、 文書が完全にプリントされたときにページがプリンタ・トレイに適宜な順序で現 れることだけを実際に期待する。ホスト・コンピュータは、ページがプリンタに よって実際にプリントされる順序以外の順序でページを処理すべきである、とい う実用的な理由が存在しない。 上記したように、従来技術のシステムは、最近のレーザ・プリンタで利用可能 な潜在的演算能力を使用することもできない。より古い設計のダム・プリンタは 、データ・バッファ及びプリント・エンジンよりも少し進歩したものであった。 データ処理は、ホスト・コンピュータによって全て行われかつプリンタは、ドッ トマトリックス・データをプリントした。最近のレーザ・プリンタは、マイクロ プロセッサ制御されかつホスト・コンピュータのそれに匹敵しうる演算能力を有 する。従来技術のシステムは、データ処理を実行するケイパビリティがないダム ・プリンタとしてプリンタを取り扱う傾向がまだある。これは、部分的には、上 述したように、装置独立性を達成する試みによる。他の従来技術のシステムは、 実質的に全てのデータ処理に対する応答性をプリンタに与える。結果は、ホスト ・コンピュータとプリンタの組合せ演算算能力(combined computing power)が 有効に利用されずかつプリンティング処理全体が無効ペースまでスローにされる (遅らされる)ことである。 ホスト・コンピュータは、ネットワークの種々のプリンタに結合されうる。プ リンタのあるものは、一つのモードにおける動作に対して構成され、ホスト・コ ンピュータが第2のモードにおける動作に対して構成される。これは、ホスト・ コンピュータとプリンタの間に一方向通信(one way communication)だけが存 在するときに問題を提示する。プリンタは、それがデータを処理できないという ことをホスト・コンピュータに報告する方法をもたない。結果として、プリンタ は、 ホスト・コンピュータからのデータを処理することを試みかつ無意味なデータの ページをプリントしうる。代わりに、プリントは、単に失敗しかつエラーを示し て、何がプリンタの故障の原因であったのか不確実なままに、ホスト・コンピュ ータを置き去りにする。互いに直接的に結合されるホスト・コンピュータとプリ ンタは、非互換性モード(incompatible modes)における動作に対しても構成さ れうる。動作のプリンタ・モードが互換性があるかどうかを決定するためのホス ト・コンピュータに対する有効な方法が存在せず、かつ非互換性をホスト・コン ピュータまたはホスト・コンピュータを用いている人に通信するためのプリンタ に対する方法が存在しない。再度、結果は、プリンタが無意味なデータのページ をプリントするかまたは単に失敗することである。 装置独立性及び全形式のプリンタでの汎用動作を達成するための試みは、ホス ト・コンピュータとプリンタが互いに有効的に通信しないので潜在的演算能力が 利用されずかつ資源が無駄にされる無効プリンティング処理を結果として生ずる 。従って、ホスト・コンピュータ、プリンタ、及びユーザーの間の有効な通信を 許容するコンピュータ−プリンタ・システムに対するかなりのニーズが存在する ということが認識されるべきである。発明の概要 本発明は、複数のモードで動作しうる装置でデータを処理するシステムにおい て実施される。システムは、第1及び第2の部分を有するデータ・フレームにデ ータをアセンブルする。第1の部分は、装置が複数のモードの第1で動作してい るならば装置により第1の方法で処理されかつ装置が複数のモードの第2で動作 しているならば取り消される(無視される)。第2の部分は、装置が第1のモー ドで動作しているならば装置によって処理されずかつ装置が第2モードで動作し ているならば装置によって処理される。 一実施例において、装置は、二つのモードで動作しているプリンタである。第 1のデータ部分は、第2のデータ部分を処理することのプリンタの不能を示すメ ッセージをプリントするためのデータを包含しうる。第1のデータ部分は、プリ ンタにフォント・データとして第2のデータ部分を解釈することをもたらす生成 フォント・コマンド(create font command)でありうる。図面の簡単な説明 図1は、典型的な従来技術のコンピュータ−レーザ・プリンタ・システムを示 す。 図2は、本発明のコンピュータ−プリンタ・システムの機能ブロック図である 。 図3Aは、綴じられていない(未製本の)文書が表されうる方法を示す。 図3Bは、図3Aの綴じられていない文書が綴じられたファッションで表され うる方法を示す。 図3Cは、図3Bの綴じられた文書の代替構成を示す。 図4は、本発明を用いているデータ・フレームを示す。 図5は、本発明のデータ・フレーマーの機能ブロック図である。 図6Aおよび6Bは、図5のデータ・フレーマーの動作のフロー図である。本発明の詳細な説明 本発明は、ホスト・コンピュータ−プリンタ相互作用への展開的アプローチを とる。それは、ホスト・コンピュータ及びプリンタの協同エフォート(努力)に プリンティング処理のプリント速さを劇的に増大させかつアプリケーション時間 への戻りを減少させる。アプリケーション時間への戻りは、プリンティング・ジ ョブを処理しかつプリンティングを開始したアプリケーション・プログラムへ戻 るためにホスト・コンピュータが必要な時間である。多くの従来技術のコンピュ ータ−プリンタ・システムは、ページをプリントするよりも、コンピュータ・コ ードを実行すべく設計される。即ち、プリンタは、受信し、変換し、かつコード 実行の副産物としてプリントされるページでコードを実行する。従来技術の多く のシステムは、一つのページをプリントするために大量のコードを実行する。 上述したように、従来技術のシステムは、ホスト・コンピュータとプリンタの 間で実効(有効)ダイアログを有さない。それゆえに、最近のプリンタの高性能 演算ケイパビリティが利用されていない。対照的に、本発明は、プリンタにおけ る演算能力を利用しかつホスト・コンピュータとプリンタの間で自由通信を許容 すべく設計される。本発明は、文書をより効率的にプリンタするために互いに協 同することができる同じ“システム”の二つの部分としてホスト・コンピュータ 及びプリンタを見る。文書をプリントするために二つの文字フォント・セットが 要求される上記の例では、本発明のホスト・コンピュータは、プリンタが第1の フォント・セットを保持(維持)できてそれゆえにプリンタ・メモリに第1のフ ォント・セットを保持するということを承知している。更に、従来技術のホスト ・コンピュータは、一般に処理されている現行ページだけを見てかつ第1のフォ ント・セットが将来要求されえてかつプリンタ・メモリ内に保持されるべきかど うかを決定することを先読みしない。結果として、従来技術のホスト・コンピュ ータは、それが複数ページをプリンティングするために要求される(そして処理 において第2のフォント・セットを削除しうる)ならば第1のフォント・セット を繰り返しダウンロードしなければならない。ある従来技術のシステムは、粗先 読みケイパビリティをもたないが、しかしそれは、非常に限定されかつ効率的に メモリを利用しない、ということが注目されるべきである。対照的に、本発明の システムは、第1のフォント・セット、またはいずれかの他の資源は、プリンタ ・メモリに保持されるべきであるかどうかを決定し、そして第1のフォント・セ ットがもはや必要ではなくかつプリンタ・メモリから開放または削除することが できるときを決定すべくプリンティング・タスクで先読みする。更に、本発明の システムは、利用可能な資源の使用を最大限にする、フォント・セットの一部だ けが要求されるときに文字フォントのサブセットを構築する。それゆえに、本発 明は、プリンティングへの資源指向型アプローチをとる。 記述は、レーザ・プリンタでの動作の詳細を提供するが、発明のシステム及び 方法は、レーザ、感熱式、衝撃式、昇華式、インクジェット式プリンタ等のよう なあらゆるマーキング技術に適用できる。 資源は、メモリを占有するかまたは文書をプリントするために要求されるコン ピュータ−プリンタ・システム内のあらゆるものである。文書は、資源を用いて 完全に記述される。項目“資源”は、以下に詳細に説明する。本発明の原理によ れば、目標は、文書を素早くプリントしかつホスト・コンピュータに最少量の時 間でアプリケーション・プログラムに戻させる。これは、タスクを達成するため のシステムの各部分及び利用可能な資源の要求がシステムの他の部分によって容 易に知られるようにホスト・コンピュータとプリンタの間でオープン通信を許容 することによって達成される。ホスト・コンピュータとプリンタの演算能力及び 利用可能なメモリがプレイに一役買うので、プリンティング処理全体は、従来技 術のコンピュータ−プリンタ・システムよりも、部分的に、速い。 本発明は、一方向通信ケイパビリティを有しかつプリンタが忙しいことを示す ためにプリンタからホスト・コンピータで状態ラインを用いるコンピュータ−プ リンタ・システムで使用されうる。他のコンピュータまたはプリンタは、双方向 通信を有しうるが、本発明により要求されるデータ割合(速度)で完全双方向通 信を支援できない。本発明は、双方向通信を確立することを試みるが、しかし、 待ち時間があまりにも長いのでそれが完全双方向通信を効率的に支援できないの でコンピュータまたはプリンタのいずれかが双通信を支援できないならば、一方 向通信をとる。しかしながら、多くのコンピュータ−プリンタ・システムは、ホ スト・コンピュータとプリンタの間で完全双方向通信を有する。コンピュータ− プリンタ・システムが双方向通信ケイパビリティを有するならば、本発明は、特 定のプリンティング・タスクによりプリンタとホスト・コンピュータの間で機能 のあるものを前後にシフトするために強化エラ一回復ケイパビリティ及び能力を 有する。この“負荷均衡”は、タスクを最も効率的に実行できるコンピュータ− プリンタ・システムの部分によってプリント・タスクを取り扱わせることにより プリンティング・スピードにおける更なる増大を許容する。 前述したように、資源は、文書をプリントするために要求される事実上すべて のものである。これは、文字フォント・セット、グリフ(絵文字)・セット、ポ イント表、ブラシ、及びユーザー規定グラフィック・イメージ並びにページ自体 を記述するデータを含む。“フォント・セット”は、タイム・ローマン(Times- Roman)、ヘルヴェティカ(Helvetica)、クーリエ(Courie)、等のような特定 の文字書体(character typeface)を規定する、ビットマップとして通常記憶さ れる、一組のASCII文字である。あるプリンタは、プリンタ内のリード・オ ンリー・メモリ(ROM)集積回路に記憶されるフォント・セットを有し、他の コンピュータ−プリンタ・システムは、ホスト・コンピュータ内でビットマップ ・デー タ・ファイルとして記憶されかつ必要なときにはプリンタのランダム・アクセス ・メモリ(RAM)にダウンロードされる“ソフト・フォント”を用いる。フォ ントは、ホスト・コンピュータのディスク上に一般に存在しそれゆえにプリンタ 内のメモリ空間を占有しないので、ソフト・フォントは、プリンティングにおい て大いなる柔軟性を許容する。他のコンピュータ−プリンタ・システムは、フォ ントがビット・マップ・データ・ファイルとして記憶されない、ツルータイプ・ フォント(TrueType fonts)のような、フォント・スケーリング技術を用いる。 代わりに、フォントは、各フォント形式に対する文字の直線及び曲線を規定する 一組の式によって記述される。ホスト・コンピュータまたはプリンタは、あらゆ るポイント・サイズの特定フォント文字を構築するためにこれらの式を用いる。 フォント・スケーリング技術の利点は、ビットマップとして記憶されるフォント が単一ポイント・サイズにだけ用いることができるのに対して、単一組の式が全 ポイント・サイズに対するフォント形式を記述するために用いることができると いうことである。例えば、タイム・ローマン4、タイム・ローマン6、タイム・ ローマン8、及びタイム・ローマン10は、4つの個別フォントと考慮され、か つ特定フォントを記述するためにそれぞれは、個別ビットマップ・データ・ファ イルを必要とする。対照的に、フォント・スケーリング技術は、全ポイント・サ イズのタイム・ローマン文字を記述する単一組の式を有する。ホスト・コンピュ ータまたはプリンタは、式を適用しかつ複数組のビット・マップ・データ・ファ イルが必要ないように選択されたポイント・サイズに対する式をスケールする。 本発明は、ROM記憶フォント、ソフト・フォント、またはフォント・スケーリ ング技術のいずれかを取り扱う。 “グリフ・セット(glyph set)”は、それがホスト・コンピュータに記憶さ れた予規定文字(predefined characters)を含むことにおいてソフト・フォン トに類似する。しかしながら、それは、予規定文字が完全な文字フォント・セッ トである必要がなく、かつユーザー規定文字、グラフィック記号、または種々の 文字フォント・セットからの異なる書体の組合せを包含しうる。例えば、グリフ ・セットは、複数の異なるフォント・セットからの数及び数学的記号、並びにあ るユーザー規定グラフィック記号を包含する式でありうる。ある特定のグリフ・ セッ トは、完全な文字セットを包含すべく十分に大きいかまたは単一文字と同じよう に小さい。グリフ・セットの別の例は、文書内で用いられうる、所得申告または データ入力フォームのような、フォームである。本発明は、フォームを生成しか つそれをグリフ・セットとして記憶する。文書でフォームが再び用いられるなら ば、フォーム全体がグリフ・セットとして利用可能である。 ある従来技術のシステムは、限定された方法でグリフ・セットを用いる。従来 技術のホスト・コンピュータは、プリンタへダウンロードするために文字フォン トのサブセットをアセンブルしうる。新しい文字が必要ならば、従来技術のホス ト・コンピュータは、必要な新しい文字だけを増加的にダウンロードしかつそれ を既にダウンロードされたグリフ・セットに加えることができる。しかしながら 、従来技術のシステムは、グリフ・セット資源を活性的に管理しない。従来技術 のシステムは、グリフ・セットの将来のニーズを考慮しないで新しいページの開 始でグリフ・セットを一般にクリアする。これは、それらが新しいページで必要 ならば新しいグリフ・セットを構築することを従来技術のホスト・コンピュータ に強制(強要)する。新しく構築されたグリフ・セットは、先のグリフ・セット と同じでなく、かつグリフ・セットの周期的再構築及びダウンローディングは、 プリンティング処理において余分な時間を消費する。加えて、従来技術のシステ ムは、どの文字がグリフ・セットに存在するかを示すべくグリフ・セットを伴う ために大量のデータを必要とする。 対照的に、本発明は、利用可能な資源からグリフ・セットを構築しかつ単一資 源としてっグリフ・セットを活性的に管理する。本発明で用いれるように、項目 “グリフ・セット”は、フォントのような他の資源の部分を含む資源を表す。簡 略化のために、グリフ・セットは、資源として表される。本発明は、それが所定 のサイズに到達するまでグリフ・セットをアセンブルするが、しかしグリフ・セ ットをプリンタへすぐに転送しない。アセンブリされたグリフ・セットは、必要 なときにプリンタに転送されるユニットとして扱われ、そしてそれがもはや必要 でないときにユニットとしてプリンタから削除される。グリフ・セットは、新し いページの開始でプリンタ・メモリをクリアリングする従来技術のアプローチよ りも、グリフ・セットの将来のニーズ及びプリンタ資源記憶の利用可能空間に基 づいて活性的に管理される。本発明のグリフ・セットは、どの文字がグリフ・セ ットにあるかを示す“コンテントの表”としてヘッダーも包含するが、しかし、 グリフ・セットは、それが一度構築されたならば変わらないので、ヘッダーは、 従来技術のヘッダーよりもサイズにおいてかなり小さい。 “ポイント表”は、グラフィック・オブジェクトを規定するために用いられる 座標点の表である。例えば、矩形のようなグラフィック・オブジェクトは、4コ ーナーの座標によって規定されうる。同様に、三次ベツィエ曲線は、4つの制御 ポイントによって規定される。ポイント表は、制御ポイントの座標を記憶する。 ベツィエ曲線が与えられたときにレーザ・プリンタ上に滑らかな曲線をプリント するために、曲線レンダリング処理は、プリンタの実際の解像度を超える高解像 度を用いてしばしば実行される。曲線を与えるべく計算される直線は、オブジェ クトがプリンタ上に実際にプリントされるときに共有(共通)されて滑らかに見 えるイメージを生成する。高解像度計算が実行されるならば、ポイント表は、ベ ツィエ曲線を与えるために用いられる全直線セグメントの座標を包含しうる。ポ イント表は、描くべくマウスまたは他の位置決め装置を用い、座標を入力し、離 散化タブレット等を用いて、アプリケーション・プログラムにおいてユーザーに よっても生成されうる。 “ブラシ”は、矩形または円のようなグラフィック・オブジェクトの内部を充 填するために一般に用いられるグラフィック・パタ−ンである。ブラシは、グラ フィック・オブジェクトの内部全体に充填すべく繰り返される最小繰り返しパタ ーである。例えば、円のようなオブジェクトが生成されるときに、ドロー・プリ ミティブ(draw primitive)が円を生成しかつ特定のグラフィック・パタ−ンで 内部を充填すべくプリンタを指示する。例えば、斜交平行線(cross-hatch)パ タ−ンは、オブジェクト全体に充填すべく繰り返されうる一連の小さな“x”形 状を含む。本発明のシステムは、プリンタ内に一般に用いられるブラシを記憶し かつホスト・コンピュータに追加の種々のブラシを生成する。 プリントされたページを記述するデータも、資源として考慮される。ホスト・ コンピュータは、ワード・プロセッサ、スプレッド・シート、データ・ベース等 のようなアプリケーション・プログラムによって生成されうるページの記述を包 含する。本発明は、ページ記述を一組のドロー・プリミティブに変換しかつドロ ー・プリミティブを文書をプリントするために必要な他の資源と相互に関連付け る。変換処理の詳細は、以下に説明する。 説明のために図2の機能ブロック図に示されるように、本発明は、コンピュー タ−プリンタ・システム200で実施される。従来技術のように、ホスト・コン ピュータ202は、プリントされるべき文書を包含しているアプリケーション・ プログラム204を実行する。上述したように、資源は、ハードディスク・メモ リを含みうるホスト・コンピュータ・メモリ212のような、ホスト・コンピュ ータ202の種々の領域に記憶される。種々の記憶領域は、資源記憶領域206 として一般的に示される。ホスト・コンピュータ202は、文書をプリンティン グするために利用可能な全資源を実質的に包含する。あるROM記憶フォント及 び一般に用いられる資源は、プリンティング・タスクを通じてプリンタに記憶さ れうる。資源アセンブラ208は、どの資源が文書をプリントするために必要で あるかを決定すべく文書を検査する。資源アセンブラ208が文書を検査すると 、それは、文書をプリントするために必要な資源を選択しかつ文書をプリントさ れたページを記述する一組のドロー・プリミティブに変換する。選択された資源 及びドロー・プリミティブは、ホスト資源記憶(装置)210内に記憶される。 ホスト資源記憶210は、ホスト・コンピュータ・メモリ212の一部または他 の適当な記憶位置でありうる。資源アセンブラ208は、文書と特定文書をプリ ントするために必要な資源のサブセットとの間の依存性(dependencies)を規定 する。資源アセンブラ208は、依存性情報をホスト・コンピュータ202に取 り付けられたプリンタ218へ伝達(通信)する。資源アセンブラ208は、文 書をプリンティングするための最有効シーケンスであるというプリンタ218か らの情報、並びにどの資源がプリンタ218に現在あるかという状態情報も受け 取りうる。 プリンタ218は、ホスト資源記憶210からダウンロードされた限定数の資 源を記憶するためのキャパシティ(容量)を有するプリンタ資源記憶220を包 含する。プリンタ資源記憶220は、プリンタ・メモリ222の一部または他の 適当な記憶位置でありうる。ホスト・コンピュータ202の一部として図2に示 される、資源ローダー214は、ドロー・プリミティブを含む、資源がプリンタ 資源記憶220へ転送される順序を決定すべく資源アセンブラ208によって生 成された依存性を用いる。資源ローダー214は、新しい資源に対するルーム( 空間)を作るために資源がプリンタ資源記憶220から開放されうるかまたは開 放されなけらばならない順序も決定する。資源ローダー214によって転送され たドロー・プリミティブは、グラフィック記号を生成し、グラフィック・オブジ ェクトを描き、英数字をプリント等をプリントするために特定された資源を利用 すべくプリンタ218を指示する。 プリント218内に配置されて示される、資源スケジューラー216は、ホス ト・コンピュータ202内に代替的に配置されうる。資源スケジューラー216 は、プリンタ動作のタイミング及び資源転送の実際のタイミングを制御する。資 源スケジューラー216は、プリンタ資源記憶220からの資源の削除及びホス ト資源記憶210から特定資源を転送することの要求のタイミングも制御する。 文書の特定ページに対して必要な資源の全てがプリンタ資源記憶220にあると きには、資源スケジューラー216は、要求された資源のサブセットが現ページ をプリントするために利用可能であることを示すべく実行信号を生成する。資源 エクスキュータ−224は、資源スケジューラー216からの実行信号を受け取 って、ドロー・プリミティブのコマンドに続き、かつ現在処理されている文書ペ ージのビットマップ・データ・ファイルを生成すべく、プリンタ資源記憶220 からの資源を用いる。資源エクスキュータ−224は、文書ページがプリントさ れる原因となるプリント・エンジン226へビットマップ・データ・ファイルを 転送する。 上述した多くの資源ブロックの物理的位置(ロケーション)は、本発明の動作 に対してクリティカル(重要)ではない。コンピュータ−プリンタ・システムに おいてプリンタが大量の演算能力を有するレーザ・プリンタであるならば、上述 した資源ブロックの全ては、プリンタ内に配置することができ、かつここに記述 した発明の態様をまだ利用する。例えば、資源スケジューラー216は、上記し たように、ホスト・コンピュータ202またはプリンタ218内に配置されうる 。同様に、プリンタ資源記憶220は、ホスト・コンピュータ202内に代替的 に 配置されうる。ホスト・コンピュータ202がウィンドウズ(WindowsTM)のよ うな環境で動作するならば、プリンタ資源記憶220は、アプリケーション・プ ログラムがフォーグラウンドで動作する間にバックグラウンドで動作するデスプ ーラー機能(despooler function)の一部でありうる。プリンタ資源記憶220 がサイズにおいてまだ限定されかつプリンタ資源記憶がプリンタ218内に配置 されたならばそうであるような同じ方法で動作するので、本発明の原理は、まだ 適用できる。バックグラウンド動作は、アプリケーション・プログラムの観点か らは、透明である。それゆえに、プリンタ資源記憶220の実際の位置は、重要 ではない。実用的事項として、ホスト・コンピュータ202は、プリンタ218 よりも大きい演算能力を一般に有する。従って、上述した資源ブロックは、それ ぞれの相対演算能力、及びホスト・コンピュータとプリンタの間の双方向通信チ ャネルの利用可能性(availability)により、ホスト・コンピュータ202また はプリンタ218のいずれかに割り当てられる。 ホスト・コンピュータ202は、ホスト・コンピュータ202または(ROM 記憶文字フォントの場合)プリンタ218内の種々の位置に資源を記憶する。例 えば、グリフ・セットは、資源アセンブラ208によってアセンブリされかつホ スト・コンピュータ210内にビットマップ・データ・ファイルとして記憶され る。コンピュータ−プリンタ・システム200は、ホスト資源記憶210内の種 々のグラフィック・オブジェクトを表しているポイント表も記憶する。ポイント 表は、ポイント表を本発明で用いられるデータ・フォーマットにも変換しうる、 資源アセンブラ208によってホスト資源記憶210にロードされる。換言する と、グラフィック・オブジェクトを記述しているデータは、ポイント表以外のフ ォーマットでアプリケーション・プログラムによって記憶されうる。資源アセン ブラ208は、アプリケーション・データ・フォーマットでポイント表を生成し かつ生成されたポイント表をホスト資源記憶210に記憶する。対照的に、ソフ ト・フォント・セットは、ハードディスク(図示省略)上にデータ・ファイルと して一般に記憶される。資源アセンブラ208が特定ソフト・フォント文字また はブラシが要求されるということを決定するならば、資源は、ホスト資源記憶2 10にロード(負荷)される。 従来技術及び本発明のコンピュータ−プリンタ・システムにおいて、アプリケ ーション・プログラム204は、ホスト・コンピュータ・メモリ212またはハ ードディスク(図示省略)のような他の適当な記憶位置に存在しうる文書記述を 生成する。アプリケーション・プログラムは、一つのアプリケーション・プログ ラムから別のものにより変化しうる、ページ記述言語(PDL)を用いて文書を 記憶する。従来技術のシステムでは、ホスト・コンピュータ内のアセンブラは、 レンダー・プリミティブ・リスト(RPL)と一般的に称されうる、一組のドロ ー・プリミティブにPDLを変換する。RPLは、英数字、グラフィック・オブ ジェクト、またはこれら二つの組合せを包含しうる。ある従来技術のシステムで は、ホスト・コンピュータは、プリミティブ・リストをレンダリングすると称さ れる処理において、RPLを文書ページのビットマップ・データ・ファイルに変 換する。従来技術のホスト・コンピュータがプリンタに転送するのは、ビットマ ップ・データである。従来技術の他のホスト・コンピュータは、RPLをポスト スクリプト(PostScriptTM)またはPCLTMのような中間レベル言語に変換する 。 従来技術のあるシステムは、資源アセンブラと類似な方法で機能するシステム の部分を実際に有する。従来技術のアセンブラは、ホスト・コンピュータ内にあ りかつPDLをRPLsに変換する。上述した、パーサーは、従来技術において 第2の資源アセンブラとして作用してRPLsを受け取りかつ中間レベル言語を 対応するビットマップに変換するために必要な中間データ構造を構築する。パー サーは、コードを処理するために設計されておりプリントされたページを生成す るために特に設計されていない。 対照的に、本発明のコンピュータ−プリンタ・システム200は、ホスト・コ ンピュータ202内に一般的に配置される、単一資源アセンブラ208だけを用 いる。資源アセンブラ208は、プリントされたページを生成することだけが考 慮されており、そして資源アセンブラにより生成されたコードは、文書を効率的 にプリントするために設計される。資源アセンブラ208は、どの資源が文書を プリントするために必要であるかを決定すると同時に、文書を検査しかつPDL をRPLsに変換する。資源アセンブラ208は、選択された資源を寄せ集めか つそれらを関連するRPLsと共にホスト資源記憶210に配置する。本発明は 、 資源を特定RPLsに関連付ける特定のフォーマットでホスト資源記憶に資源及 びRPLsを配置する必要がない。事実、実際のデータ構造及びフォーマットは 、本発明の使用に対して重要ではない。当業者にとってよく知られた多くの異な るフォーマットは、本発明の適宜な動作に対して受け入れ可能である。資源及び RPLsの依存性及び位置(ロケーション)を示しているリストが必要なものの 全てである。このリストは、資源及び関連するRPLsが記憶される位置を示す 、一連のポインタの形式を取りうる。リストは、以下に説明するように、RPL sの実行の所定シーケンスによってさえも示されうる。 資源がホスト資源記憶210内に格納されるときには、資源及びRPLsを包 含しているデータ・ファイルのサイズに制約がなくかつ資源及びRPLsが記憶 されるシーケンスに制約もないので、それらは、無制限(unbounded)であると 考えられる。例えば、文書は、ユーザーによって生成されかつ文書の開始近くに グラフィック・チャートを含むべく続いて編集されうる。アプリケーション・プ ログラムは、グラフィック・チャートを挿入するために文書ファイル全体を再生 成しない。それよりも、アプリケーション・プログラムは、グラフィック・チャ ートを文書ファイルの終りに配置しかつグラフィック・チャートが挿入されるべ き点で文書にポインタを挿入する。ポインタは、グラフィック・チャートの位置 をポイントする。この一般的な技法は、バックワード・ポインティング、即ち文 書の挿入点がグラフィック・チャートが記憶される文書ファイルの後ろの位置へ バックワード(後ろ向き)にポイントするもの、を用いる。この技法は、文書3 00がNページを有する図3Aに図式的に示される。参照番号302によって示 される、文書のページ2は、フォント1 304を必要とし、文書300のペー ジ3306は、ビットマップ308によって表される、グラフィック・チャート を必要とする。フォント1 304及びビットマップ308は、フォント及びビ ットマップが必要である文書300の、ページ2 302及びページ3 306 の位置の後にそれぞれ記憶されることに注目する。データ・ポインタ310及び 312は、資源が必要な、位置304及び308をそれぞれポイントする。文書 は、無制限なので、コンピュータは、文書全体へのアクセスを有しかつ上述した 方法でポインタを利用することができる。 しかしながら、文書をプリントするときに、プリンタは、一度にファイル全体 へのアクセスを有さない。従って、文書は、プリンタ資源記憶220のサイズ制 約及び文書が記憶されるシーケンスの両方によってバウンドされる(bounded) と考えられる。必要な資源は、それらが実際に必要である前にプリンタに存在し なけらばならない。さもなくば、プリンタは、遅延されるかまたは特定ページを 全くプリントすることができないであろう。文書は、同じ文書300がバウンド された文書として表される図3Bに示したようにバウンドされたファッションで アセンブリされなければならない。必要なフォント316及びビットマップ31 8は、それらが実際にページ2 320及びページ3 322に対して要求され る前に文書300に現れる。ポインタ324及び326は、資源が記憶される、 位置316及び318をそれぞれポイントする。それゆえに、ポインタ324及 び326は、資源が記憶される文書300の位置を前方向ポインティング(forw ard pointing)する。この方法では、資源は、それらが文書をプリントするため に必要である前に常に存在する。特定資源が必要である文書の位置(場所)の前 に資源が配置されることが唯一必要なことである。例えば、文書300は、資源 が必要な位置320のちょうど前にフォント1 320が配置される図3Cにバ ウンドしたファッションで代替的に示される。ポインタ324は、必要な資源の 位置を示す。同様に、ビットマップ318は、それが必要である位置322のち ょうど前に配置され、かつポインタ326は、資源が必要な位置を示す。 ホスト・コンピュータ202は、一般にプリンタ218よりも多くのメモリを 有するが、ホスト資源記憶210に割り当てられることができるホスト・コンピ ュータ・メモリ212の量に制限があるということに注目すべきである。従って 、ホスト資源記憶210は、コンピュータに記憶された全ての可能な資源を包含 していない。それよりも、ホスト資源記憶は、特定文書をプリントするために必 要な資源並びに文書を記述するRPLsだけを包含する。文書の特定部分がプリ ントされたときに、文書の特定部分に対して必要な資源は、ホスト資源記憶21 0から削除される。ある資源は、文書において一度だけ用いられかつ文書のその 部分のプリンティングの完了によりすぐに削除されうる。頻繁に用いられる、グ リフ・セットのような、他の資源は、文書に対してもはや必要がなくなるまでホ ス ト資源記憶210内に記憶される。 ホスト・コンピュータ202は、プリンタ218よりも多くのメモリを一般に 有するので、ホスト・コンピュータは、ホスト・コンピュータ・メモリ212の 多くをホスト資源記憶210に対して用いるために割り当てることができる。少 ないメモリを有する、プリンタ218は、対応的により小さなプリンタ資源記憶 220を有する。プリンタ資源記憶220は、ホスト資源記憶210が包含する 資源の組全体を保持するために十分に大きくない。それゆえに、プリンタ218 により必要なときには、資源は、ホスト資源記憶210からプリンタ資源記憶2 20へダウンロードされなければならない。プリンタ218は、プリンタ資源記 憶220内の資源の効率的な使用を行い、かつもはや必要がないかまたはホスト 資源記憶210から素早くリロード(再負荷)されうる資源を削除しなければな らない。それゆえに、文書をプリントするコース中、資源がプリンタ資源記憶2 20から多くの回数ダウンロード及びリリース(開放)されうると同時に、ホス ト資源記憶210は、文書をプリントするために必要な資源で単一時間だけロー ドされる。資源の最も効率的な使用を決定するために、本発明のコンピューター プリンタ・システム200は、最も効率的な方法でどのように資源を割り当てる かを決定すべく文書全体を検査する。 図2を再び参照すると、コンピュータ−プリンタ・システム200の詳細な動 作が供給される。資源アセンブラ208は、PDLを一組のRPLsに変換しか つ本プリンティング・タスクに対してどの資源が必要であるかを決定する。プリ ント・タスクが開始すると、資源アセンブラ208は、プリントされるべき表面 を記述するデータの最初のバンド(プリンタ218がバンディング・モードで動 作しているならば)またはページ(プリンタ218がページ・モードで動作して いるならば)を見始める。このアプリケーションの目的では、バンドかまたはペ ージかにより、処理される文書のユニット・サイズは、データ・ブロックとして 示される。資源アセンブラ208は、資源記憶領域206から文書をプリントす るために必要な資源を選択する。資源アセンブラ208は、特定データ・ブロッ クへのこれら資源の依存性をも決定する。例えば、資源アセンブラ208は、特 定フォント型が第1ページのフォーミュラに対して必要でありかつ別のフォント 型がページの残りに対して必要であるということを決定しうる。加えて、グラフ (図式)がポイント表及びブラシのようなある一定のグラフィック資源を必要と するページ上にプリントされうる。 資源アセンブラ208は、これらの資源が要求されるデータ・ブロック及び依 存性を明快に示すリストを生成する。リストは、リストの形式である必要がない ということに注目すべきである。上記したように、リストは、メモリ位置へのポ インタの形式であいうるし、またはRPLsが資源アセンブラ208によって生 成されるシーケンスによって暗黙のうちに規定されうる。例えば、プログラマー が第1のRPLを生成しかつすぐに実行するプログラムを書くならば、生成され かつホスト資源記憶210に記憶される表記リスト(expressed list)が存在し ない。しかしながら、タスクがRPL内で生成される順番によって特定される暗 黙リスト(implied list)が存在する。本発明の有効動作に対して重要なのは、 資源アセンブラ208が依存性を決定しかつ他の資源ブロックに依存性を承知さ せることである。 資源アセンブラ208によって特定される二つの異なる型の依存性が存在する 。依存性の第1の型は、上述したように必要な資源を特定データ・ブロックに関 係付けるオペランド依存性である。依存性の第2の型は、RPLsが処理される シーケンスを特定する、実行依存性である。ある従来技術のシステムは、それら が文書をプリントするときに実行依存性を満足しないかもしれない。例えば、あ る従来技術のシステムは、テキストをグラフィックスから分離しかつ二つを独立 に処理する。従って、プリントされたページは、ユーザーが表示画面上で見るも のではないかもしれない。それゆえに、従来技術のシステムは、“あなたが見た ものがあなたが得るものである”(WYSIWYG)という結果を常に生じない 。対照的に、システムがデータ・ブロックをテキストとグラフィックス部分に分 割するよりも、データ・ブロック全体を処理するので、コンピュータ−プリンタ ・システム200は、上述したようにそれらがRPLsのシーケンスで示される ときでさえも、常に実行依存性を満足する。 プリンタとホスト・コンピュータ202の間に双方向通信があるならば、ある 実行依存性は、プリンタ218によって特定されうる。以下に詳細に説明するよ うに、プリンタは、プリンティング処理の効率を最大限にするためにデータのバ ンドまたはページが処理されるべき順序を特定しうる。実行依存性がプリンタ2 18によって特定されるならば、資源アセンブラ208は、これらの依存性に従 う。データ・ブロック内で維持されなければならない特定の図面順序(drawing order)が存在するならば、資源アセンブラ208は、それ自体の実行依存性も 生成しうる。例えば、プリンタ218は、文書のページ2を最初に処理し、かつ 下から上にページ2を処理すべく資源アセンブラ208を指示しうる。これは、 プリンタ218によって特定される実行依存性である。しかしながら、ページ2 上に重なり合うグラフィック・オブジェクトが存在するならば、プリンタされた ページが企図した方法で重なり合うオブジェクトを有するようににそれらのオブ ジェクトの図面順序が特定されなければならない。資源アセンブラ208は、図 面順序を特定する実行依存性を決定する。それゆえに、資源アセンブラ208は 、オペランド依存性及び全実行依存性(資源アセンブラ208またプリンタ21 8により特定されたかとうか)を示すリストを生成する。 上述したように、ある依存性のリストは、バンドまたはページ内のドロー・プ リミティブのシーケンスで暗に示しうる。例えば、コンピュータ−プリンタ・シ ステム200は、第1のRPLを最初に常に実行することができ、それゆえに、 明快に示されなくてもよい実行依存性を生成する。最大効率に対して、特に高性 能プリンタ及び双方向通信で、コンピュータ−プリンタ・システム200の現行 の好ましい実施例は、それらが実行をタスクのより少ない効率シーケンスに不必 要に限定できるので、暗黙の依存性を用いない。暗黙の依存性を使用することの 上記例は、本発明の広い原理が、コンピュータ−プリンタ・システム200の全 ての発明態様の使用を必要とすることなくプリンティング処理の総効率を改善す るために用いられうることを示すためにだけ与えられる。現行の好ましい実施例 では、資源アセンブラ208は、資源ローダー214、資源スケジューラー21 6、及びプリンタ218を含む、システムの他の構成部分(要素)に依存性を明 快に通信(伝達)する。 コンピュータ−プリンタ・システム200が双方向通信ケイパビリティを有す るならば、プリンタ218は、プリンタ資源記憶220の現行状態として資源ア センブラ208へ情報を送ることができる。そのような状態情報は、どの資源が プリンタ資源記憶220に既に存在しうるかそしてプリンタ資源記憶でどのくら いの空間が利用可能であるかを含む。加えて、プリンタは、文書をプリントする ための最も効率的シーケンスを資源アセンブラ208に指示する。これは、デュ プレッキシング・ケイパビリティを有しかつ多段用紙トレイからプリントできる 大きな高性能レーザ・プリンタにおいて重要な処理である。そのようなプリンタ では、同時にプリント・エンジンの中を移動している10枚の用紙が存在しうる 。一枚の用紙の両面に(デュプレックス・モード)プリントされるページは、用 紙の一面で上から下へ処理され、下から上へ用紙の他の面で処理される。異なる ページ・サイズは、プリント・エンジンにおける異なる時間長を必要とする。横 向き印刷モードのようなモードは、他のモードよりも多くのプリント・エンジン 処理時間を必要とする。ページは、高性能レーザ・プリンタのプリント・エンジ ン内部を互いに実際に通過しうる。結果として、ページを処理する最も効率的な シーケンスは、ページの数値順序(即ち、ページ1,2,3,...)ではない 。本発明のコンピュータ−プリンタ・システム200は、プリンタ218に文書 をプリントするための最も効率的なシーケンスを決定させかつその情報を資源ア センブラ208へ通信(伝達)させる。一方向通信だけを有するシステムでは、 プリンタ218は、状態情報またはプリント・シーケンス命令を通信(伝達)で きない。しかしながら、資源アセンブラ208は、プリンタ218がいつそれが 資源をプリンタ資源記憶220から削除するのかを知りうるように明示依存性を プリンタ218へまだ通信する。一方向通信だけが利用可能ならば、資源アセン ブラ208は、ホスト・コンピュータ202が一方向モードでプリンタ・メモリ 222を管理するのでプリンタ資源記憶220の状態をまだ知りうる。それゆえ に、資源アセンブラ208は、プリンティング・タスクの開始でどの資源が既に プリンタ資源記憶220にあるのかを知る。 上述したように、資源エクスキュータ−224は、プリント・エンジン226 によってプリントされるべくRPLsをビットマップ・データに一般に変換する 。一度、プリント・エンジンが始動したならば、それは、ページをプリントする ことを停止できないかまたはエラーが発生する。従って、一度プリント・エンジ ン が始動したならば、RPLsは、実時間でビットマップ・データに変換されなけ ればならないかまたは予めビットマップ・データに変換されていなければならな い。勿論、ドットマトリックス・プリンタ及びインクジェット式プリンタのよう な、ある一定のプリンタは、エラーを生成することなくページの途中で停止でき る。プリンタ資源記憶220の現行状態及びプリント218の総処理能力を知っ ている、資源アセンブラ208は、プリント・エンジン226が走行していると きにプリンタ218がデータ・ブロックに対するRPLを実時間でビットマップ に変換できるかどうかを決定すべく各データ・ブロックを検査する。プリンタが データ・ブロックに対するRPLを実時間で変換できないならば、資源アセンブ ラ208は、RPLをビットマップに処理しかつビットマップをプリンタ218 へ転送すべくホスト・コンピュータ202を指示(命令)する。代替的に、プリ ンタ・メモリ222がページ全体に対するビットマップ・データ・ファイルを記 憶するのに十分であるならば、資源アセンブラ208は、RPLをビットマップ ・データ・ファイルに変換しかつプリント・エンジン226が始動するまでプリ ンタ・メモリ222内にビットマップを記憶すべくプリンタ218を指示(命令 )する。コンピュータ−プリンタ・システム200のどの部分がRPLをビット マップに変換するかという決定は、変換タスクの相対的複雑性及びシステムのそ れぞれの部分の内のプロセッサの相対的処理能力に依存する。現行の好ましい実 施例では、資源アセンブラ208は、コンピュータ−プリンタ・システム200 のどの部分がデータを処理するかを決定することにおいて3つファクタ−(因子 )を考慮する。これらのファクタ−とは: 1.RPLをビットマップ・データに処理するために ホスト・コンピュータ202に必要な時間長; 2.RPLをビットマップ・データに処理するために プリンタ218に必要な時間長; 3.RPLをビットマップ・データに転送するために 通信チャネルに必要な時間長。 換言すると、資源アセンブラ208は、特定データ・ブロックに対するRPL をビットマップ・データ・ファイルに処理すべくホスト・コンピュータ202に 必要な時間とビットマップ・データ・ファイルをプリンタ218へ転送すべく通 信チャネルに必要な時間を計算し、かつそれをRPLをプリンタに転送すべく通 信チャネルに必要な時間プラスRPLをビットマップ・データ・ファイルに処理 すべくプリンタに必要な時間と比較する。 コンピュータ−プリンタ・システム200は、ホスト・コンピュータ202と プリンタ218の間で前後にデータ処理をシフトすることによって負荷平衡も実 行する。資源アセンブラ208は、システムのどの部分がデータ・ブロックを最 も効率的に処理できるかによりデータ・ブロックを処理すべくホスト・コンピュ ータ202またはプリンタ218を選択する。例えば、特定のタスクがページ上 にかなりの数の直線の図を要求し、かつホスト・コンピュータのプロセッサがプ リンタのプロセッサよりも二倍速いならば、ホスト・コンピュータ202は、デ ータを処理すべく多分指示されるであろう。他方、変換が比較的簡単で、プリン タ218がビットマップを記憶するメモリ容量を有するならば、データを処理す べくプリンタのプロセッサが指示されて、ホスト・コンピュータを次のデータ・ ブロックを処理すべくフリーのままにする。この計算は、一つのデータ・ブロッ クから別のデータ・ブロックにより変化しうる動的処理であるということに注目 すべきである。プリンタ218は、一つのデータ・ブロックを処理しホスト・コ ンピュータ202は、次の3つのデータ・ブロックを処理しうる。総括的目標は 、文書を最も効率的方法で生成することである。本発明のコンピュータ−プリン タ・システム200は、ホスト・コンピュータ202及びプリンタ218の潜在 的演算能力を用いることによってこれを許容する。 負荷平衡は、ホスト・コンピュータ202及びプリンタ218の相対演算能力 、データ通信チャネルのスピード、ホスト資源記憶210とプリンタ資源記憶2 20の相対サイズ、プリンティング・タスクの複雑性、及びホスト・コンピュー タ202及びプリンタ218によって現行で実行されるタスクのような種々のパ ラメータに基づく。上述したように、負荷平衡は、上記パラメータに基づいて処 理するために資源アセンブラ208が文書のあるページをホスト・コンピュー タ202にそして他のページをプリンタ218に割り当てうる動的処理である。 負荷平衡は、単一ページ内でホスト・コンピュータ202とプリンタ218の 間でデータ処理応答性をシフトさえしうる。同じページを処理するコンピュータ ープリンタ・システム200の異なる部分の例は、文書の特定ページが二つの重 なり合っている円のようなグラフィック・オブジェクトを包含するときに発生し うる。資源アセンブラ208は、プリンタが現在プリンティングしていないので 、第1の円のPDL記述をプリンタ218へ送りうる。従って、プリンタ218 は、第1の円に対するPDLを変換すべく時間を有する。ホスト・コンピュータ 202は、ホスト・コンピュータ202がプリンタ218よりも更なる演算能力 を有しかつプリンタ218が第1の円を変換することに既に忙しいので、第2の 円に対するPDLを変換しうる。それゆえに、資源アセンブラ208は、ホスト ・コンピュータ202とプリンタ218の間にデータ処理応答性を分けるべく負 荷平衡を用いた。 先に示したように、文書の特定データ・ブロックに必要な資源は、その特定デ ータ・ブロックについて特定資源に対するコンピュータ−プリンタ・システム2 00内に依存性を生成する。依存性は、一つのデータ・ブロックから別のデータ ・ブロックで変化しうる。資源アセンブラ208は、プリンタ218がどの資源 が特定データ・ブロックに必要であるかを知るように依存性を明示する。それゆ えに、プリンタは、必要な資源をデータ・ブロックのそれぞれに関連付ける資源 の一種の“メニュー(献立)”を有する。双方向通信では、プリンタ218は、 データ・ブロックと資源の間に明示依存性が供給されるのでそれ自体のメモリを 管理できる。プリンタ218は、プリンタ資源記憶220の効率を最大限にする ような方法でホスト資源記憶210から資源を要求すべく明示依存性のメニュー を用いる。例えば、明示依存性は、一つのデータ・ブロックが特定フォント.セ ット及び特定グリフ・セットを必要とし、次のデータ・ブロックがフォント・セ ットは同じであるが異なるグリフ・セットを必要とするということを示す。プリ ンタ218は、一度にプリンタ資源記憶220に全ての3つの資源(フォント・ セット及び二つのグリフ・セット)を保持することができうる。従って、プリン タ218は、全ての3つの資源を要求する。 資源管理のより困難な態様は、どの資源がプリンタ資源記憶220から削除さ れるべきかを決定することである。特定データ・ブロックをプリンティングする ことが他の資源がプリンタ資源記憶220から削除されなければならないような サイズの大きい資源を必要とするならば、プリンタ218は、どの資源をプリン タ資源記憶220から削除しかついつ将来のデータ・ブロックに対するホスト・ コンピュータ202から資源を戻すかを決定することができる。更に、エラー回 復が必要ならば、プリンタ218は、損失したページを回復するためにどの資源 が必要であるのかを知しかつ必要な資源がプリンタ資源記憶220から既に削除 されたならばホスト・コンピュータ202から必要な資源を要求できる。 前述の説明は、ホスト・コンピュータ202とプリンタ218の間に双方向通 信が存在するときに適用可能である。一方向通信だけが利用可能であるならば、 プリンタ・メモリ222は、ホスト・コンピュータ202によって管理される。 その場合には、ホスト・コンピュータは、資源がロードされるかまたはプリンタ 資源記憶220から削除されるシーケンス及びいつ資源をロード及び削除するか を決定する。プリンタ218がそれ自体のメモリを一方向通信で管理できない場 合でも、パーサーの削除及び資源アセンブラ208及びホスト並びにプリンタ資 源記憶210及び220のようなコンピュータ−プリンタ・システム200の部 分の追加により、本発明は、従来技術に対して性能における改善をまだ示す。本 発明のコンピュータ−プリンタ・システム200では、資源は、文書全体をプリ ンティングするコースにおいて複数回にわたりロードされかつプリンタ資源記憶 からリリースされうる。どの資源がプリンタ資源記憶220にあるべきかを決定 するジョブは、資源ローダー214によって実行され、それについて以下に詳細 に説明する。 資源アセンブラ208は、将来のデータ・ブロックに対する資源を生成すべく 資源ローダー214に複数データ・ブロック先行する文書を検査する。これは、 資源ローダー214に先読みさせかつ資源の最も効率的な割当てを決定させる。 ある資源は、文書を通して多くのデータ・ブロックで用いられえて、それゆえに 、文書を通して依存性を有しうる。プリンタ資源記憶220内で利用可能な空間 により、プリンティング処理を通してプリンタ218内にこれらの資源を保持す る ことがより効果的でありうる。第2の資源は、例えば、文書の中間で一度だけ必 要でありうる。その場合には、ある他の資源がプリンタ218によってもはや必 要ではなくかつプリンタ資源記憶220内で更なるメモリが利用可能であるとき には、後まで第2の資源は、ロードされない。第2の資源が一度用いられた後で 、それは、他の資源に対する空間をつくるべくプリンタ資源記憶220から削除 されうる。 どのくらい先読みするかの決定は、動的処理である。例えば、文書の開始では 、目標は、プリント・エンジン226を始動することである。従って、資源アセ ンブラ208は、可能なかぎり速くプリンタ218へ資源を転送させるために限 定された先読み動作を有する。しかしながら、プリンタ218が第1のデータ・ ブロックを処理している間に、資源アセンブラは、将来データ・ブロックを先読 みしかつホスト・コンピュータ202に対する資源を選択し並びに将来ページに 対するRPLsを構築することができる。理想的には、資源アセンブラ208は 、あらゆるプリンティングが発生する前に文書全体を検査すべく先読みできる。 しかしながら、プリント・エンジン226を始動することの望みは、初期先読み ケイパビリティを制限する。システムが有すべき先読みケイパビリティの量には 、実用的な制限がある。他のアプリケーション・プログラムが走行しうるように ホスト・コンピュータ・メモリ212の使用を最小限にすることの所望は、先読 みするための資源アセンブラ208の能力も制限する。目標は、プリント・エン ジン226をできるだけ効率的に動かし続けることである。資源アセンブラ20 8が先読みするページの実際の数は、文書の全長さ、プリント・エンジン226 によって処理される文書の現行ページ、及び文書の複雑性のようなファクタ−に よる。資源アセンブラ208の先読みケイパビリティは、プリンタ資源記憶22 0への資源の流れを制御するための資源ローダ−214の能力を向上する。 資源アセンブラ208の動作の一例として、ページをプリントするためにテキ ストの特定ページが5つの異なるフォント・セットの部分及びポイント表(ベツ ィエ曲線を描くこと)を必要とする。資源アセンブラ208は、ページを検査し かつ明示依存性のリストを生成する。資源アセンブラ208は、上述したように 依存性をコンピュータ−プリンタ・システム200の他の部分に通信(伝達)す る。同時に、資源アセンブラ208は、ページを記述するRPLs及び必要資源 を包含するホスト資源記憶210をアセンブリすることも開始する。双方向モー ドでは、資源アセンブラ208は、データ・ブロックが処理されるシーケンスと してプリンタ218から情報を受け取るということに注目する。簡略化のために 、資源アセンブラ208は、ページに対するデータ・ブロックを上から下へ処理 するものと想定する。プリンタ218がページ・モードで動作しているならば単 一RPLが存在し、プリンタがバンディング・モードであるならば各バンドに対 して異なるRPLが存在する。RPLは、データ・ブロック(ページまたはバン ド)を、ページのある特定点で文字の特定シーケンスをプリントすべくプリンタ 218に知らせるフォーマットで記述する。コンピュータ−プリンタ・システム 200は、文字シーケンスの記述を構築しかつホスト資源記憶210に記述を記 憶するためにこの情報を用いる。項目“記述を構築”は、ホスト・コンピュータ 202内の記憶位置から文字シーケンスのビットマップをローディングすること から一組の式から文字シーケンスのビットマップを構築するためにフォント・ス ケーリング技術を用いることに及びうる。そのフォントからあまりにも多くのが 文字が要求されてフォント・セット全体を転送することがより効率的であるなら ば、資源アセンブラ208は、フォント全体をを記憶しうる。他方、限定された 数の文字だけが必要ならば、資源アセンブラ208は、必要な文字だけを記憶す るためにグリフ・セットをオープンしうる。 現例では、第1のフォント・セットは、それ全体で転送されうる。第2のフォ ント・セットからの必要な文字は、式に対する数及び数学的記号だけでありうる 。資源アセンブラは、式に対する文字を記憶するためにグリフ・セットをオープ ンする。ページの次の部分が限定された数のイタリックの文字(フォント数3) を必要とするので、グリフ・セットは、オープンのままに維持されうる。グリフ ・セットのサイズは、動的に変化可能であるということに注目すべきである。例 えば、プリンティング動作の始めでは、目標は、プリント・エンジンをできるだ け素早く稼働させることである。その目的のために、資源アセンブラ208は、 文書の第1のデータ・ブロックに対して小さいグリフ・セットを用いうるので、 グリフ・セットができるだけ速くプリンタ資源記憶220に転送されうる。これ は、 資源アセンブラ208が後続データ・ブロックに対して資源をアセンブリする間 に、プリンタ・エンジンになすべきことを与える。後続グリフ・セットのサイズ は、プリンタ資源記憶220のサイズ及びホスト・コンピュータ202とプリン タ218の間のデータ転送の速度(割合)のようなパラメータによって一般に決 定される。資源アセンブラ208は、それが所定のサイズに達するまで、グリフ ・セットをオープンにしておく。 上述したように、グリフ・セットは、異なるフォント・セットからの文字を包 含しうる。逆に、依存性により同じフォント・セットからの文字は、異なるグリ フ・セットに記憶されうる。例えば、上述した数式に用いられるある文字は、後 続データ・ブロックにプリントされた第2の式に用いられうる。第2の式は、第 2のフォント・セットからの追加文字、並びに第4及び第5フォント・セットか らの文字も同様に用いうる。資源アセンブラ208は、第2の式に必要な追加文 字だけを包含する第2のグリフ・セットを構築しうる。資源エクスキューター2 24がRPLs及び資源をビットマップ・データ・ファイルに処理するときには 、それは、第2の式に対するビットマップを構築するために両方のグリフ・セッ トからの文字を用いる。グリフ・セットを配置するためのRPLは、どのグリフ ・セット及びどの文字がプリントされたページの特定位置に配置されているのか を識別するフォーマットにある。例の第2の式に対するRPLは、次のシーケン スを有しうる: 単一RPLでの両方のグリフ・セットの使用は、両方のグリフ・セットをプリ ンタ資源記憶220で同時に有することを必要とする。第1のグリフ・セットが プリンタ資源記憶220から削除されているならば、資源ローダー214は、第 1のグリフ・セットがホスト資源記憶210からリロードされなければならない ということを決定する。 プリンタ資源記憶220がオーバーフローせずかつ時間的方法において資源が プリンタ資源記憶で利用可能なように、資源スケジューラー216は、要求のタ イミングを制御する。従来技術のシステムは、フォント全体をダウンロードしか つプリンタ・メモリを管理することを試みない。これは、プリント・タスクが完 了されえないメモリ・オーバーフローを結果として生ずる。上述したような、増 加ダウンローディングを実行できるシステムでさえも、ダウンロードされたフォ ントを周期的にクリアする以外には、プリンタ・メモリを管理することを試みな い。対照的に、本発明のコンピュータ−プリンタ・システム200は、必要な文 字だけがプリンタ資源記憶220に転送され、かつ上述したようにグリフ・セッ ト資源が活性的に管理されるので、文字をグリフ・セットにアセンブリすること によって時間及びプリンタ・メモリをセーブする。それゆえに、プリンティング 処理の総体的効率が向上される。 資源アセンブラ208の動作を要約すると、資源アセンブラは、資源依存性を 決定し、その情報をコンピュータ−プリンタ・システム200の他の部分に通信 (伝達)し、かつ最も効率的な方法で文書記述を処理する。資源アセンブラ20 8は、データ・ブロックを記述するRPLsも生成しかつRPLs及び資源をホ スト資源記憶210内に記憶する。 資源ローダー214は、資源がロードされかつプリンタ資源記憶220からリ リースされるシーケンスを決定する役割を果たす。資源をローディング及びリロ ーディングする最も効率的なシーケンスが決定されうるように、資源ローダー2 14は、資源アセンブラ208によって決定されたシステム依存性へのアクセス を常に有する。資源ローダー214は、コンピュータ−プリンタ・システム20 0の通信ケイパビリティによりホスト・コンピュータ202内またはプリンタ2 18内に配置されうる。ホスト・コンピュータ202からプリンタ218に一方 向通信だけが存在するならば、資源ローダー214は、ホスト・コンピュータ2 02に常に存在する。それゆえに、プリンタ・メモリ222は、ホスト・コンピ ュータ202によって管理される。しかしながら、双方向通信ケイパビリティが あるならば、資源ローダー214は、プリンタにそれ自体のメモリを管理させる べくプリンタ218に存在しうる。資源ローダー214は、プリンタ218への RPLs及び資源の転送を制御する。 上述したように、ホスト資源記憶210は、資源アセンブラ208によってア センブリされた資源が一度にホスト資源記憶にロードされるようにサイズにおい て十分に大きい。ホスト資源記憶210は、資源のサイズまたはプリンタ資源記 憶220のサイズにより課された制約を考慮しない。他方、プリンタ資源記憶2 20は、サイズにおいて制限され、かつ資源は、サイズ制限により制約される。 プリンタ資源記憶220を効率的に管理するために、資源ローダー214は、プ リンタ資源記憶220が空間切れにならないように、プリンタ資源記憶220に 既にある各資源のサイズ及び(資源アセンブラ218により予め決定された)資 源依存性を見て調べかつ資源がプリンタにロードされかつプリンタからリリース される順序を決定する。それゆえに、資源ローダー214は、プリンティング・ タスクのコース中に何回も特定資源をロードしかつリリースしうる。 資源ローダー214は、それがもはや必要ないときに特定資源をリリースしう るということに注目すべきである。資源がプリンタ218内でまだ必要でありう るので、プリンタ218は、プリンタ資源記憶220から特定資源をすぐに削除 しない。ホスト・コンピュータ202及びプリンタ218は、非同期的に動作す るので、資源ローダー214による資源のリリースは、プリンタ資源記憶220 からの資源の削除をすぐにはもたらさない。それゆえに、資源を“リリースする ”及び“削除する”という項目は、同意義語ではない。資源ローダー214が、 資 源がプリンタ資源記憶220から除去されるべきであるということを決定すると きに、資源は、リリースされる。資源ローダー214の視点から、資源は、もは やプリンタ218には存在しない。資源ローダー214は、ロードまたはリリー スすべき次の資源を特定する。プリンタ218がプリンタ内で資源をもはや必要 とせずかつプリンタ資源記憶220から資源を実際に削除するときに、資源は、 削除される。資源ローダー214は、各資源のサイズ及び特定資源がプリンタ資 源記憶220に存在することが、効率の視点から、センスがあるかどうか、につ いてだけ興味を持つ。資源ローダー214は、プリンタ資源記憶220のサイズ 及びその中で利用可能な空間、プリンタ資源記憶220の現行状態(即ち、どの 資源がプリンタ資源記憶に存在するか)の状況を常に把握し、かつどの資源を保 持またはリリースすべきかを決定する。資源ローダー214は、現行RPLs及 び将来RPLsの両方に対する明示依存性を見て調べる。資源ローダー214は 、資源がロードされかつリリースされる順序にだけ興味があるということに注目 する;それは、資源変更の実際のタイミングを考慮しない。プリンタ資源記憶2 20への変更のタイミングは、資源スケジューラー216によって制御される。 上述したように、明快に示された依存性は、資源ローダー214にプリンタ資 源記憶220への資源のローディングのシーケンスを決定することをより容易に させる。より困難なタスクは、新しい資源に対して空間を作るべくいつ資源をプ リンタ資源記憶220からリリースするかを決定することである。再び使用され ない資源は、考えることなく削除されうることは明らかである。しかしながら、 将来、資源が再び用いられるならば、資源ローダー214は、新しい資源に対し て空間を作るべくリリースする資源を決定しなければならない。従来技術のキャ ッシング・システムでは、一般的アプローチは、最近用いたことがない項目を削 除する(即ち、最も以前に使用された資源を削除する)ことである。このアプロ ーチは、どの資源が将来最も必要でないかを予測するには効率的ではない。明示 依存性により、コンピュータ−プリンタ・システム200は、文書の将来データ ・ブロック二対する資源の最も効率的な記憶を予測するための資源の透視キャッ シング(clairvoyant caching)を実行することができる。資源は、資源が用い られる順序、資源を記憶するために必要な空間の量、及びプリンタ資源記憶22 0 からリリースされなければならないな場合に資源をリロードするために必要な時 間に基づいて管理される。資源ローダー214は、資源ローダーがプリンタ資源 記憶220に現在ある資源を見て調べかつどの資源が時間の最も外(farthestou t in time)で用いられているかを決定する“時間ライン”を確立するために明 示依存性を用いる。しかしながら、上記したように、資源ローダー214は、削 除されるべき資源のサイズ及び将来資源をリロードするために必要な時間も考慮 する。 透視キャッシングの例として、プリンタ資源記憶220が既に10の資源(こ の例では、1から10まで一般的にレッテルを貼られる)を包含し、かつプリン タ218が特定データ・ブロックに対して資源数11を必要とすることを想定す る。資源ローダー214は、時間ラインを見て調べかつ資源数8が、例えば、時 間の最も外で用いられることを決定しうる。しかしながら、資源数8がサイズに おいて小さいならば、必要な資源数11をロードすべく十分な空間なしで、その リリースは、プリンタ資源記憶220にまだ残しうる。従って、資源ローダー2 14は、時間の最も外で用いられる数8の後の次の資源を決定すべく時間ライン を再び見て調べる。資源数2が、例えば、リリースされうる。しかしながら、資 源数2のリリースが必要以上にプリンタ資源記憶220にフリー空間を生成し、 かつ将来において資源数2のリローディングが非常に時間を消費するならば、資 源ローダー214は、その代わりに一つ以上の他の資源をリリースするために時 間ラインを再び見て調べるであろう。この例では、資源ローダー214は、必要 な資源数11に対してプリンタ資源記憶220に空間を作るために資源数2及び 8の代わり、資源数7及び5をリリースしうる。この記述は、資源ローダー21 4がプリンタ資源記憶220を管理することで考慮する種々のパラメータの例と して単にサーブする。 資源ローダー214は、資源がロードされかつプリンタ資源記憶220からリ リースされる順序を決定する間に、資源管理の実際のタイミングは、資源スケジ ューラー216によって実行される。資源スケジューラー216は、プリンタ・ オペレーティング・システムと考えられうる。しかしながら、上述したように、 資源スケジューラー216は、プリンタ218内に物理的に配置されている必要 がない。一方向通信だけを有するコンピュータ−プリンタ・システム200では 、資源スケジューラー216は、ホスト・コンピュータ202内に配置されうる しかつホスト・コンピュータからプリンタ・メモリ222を管理しうる。コンピ ュータ−プリンタ・システム200が双方向通信を有するならば、資源スケジュ ーラー216は、プリンタ218内に存在してプリンタにそれ自体のプリンタ・ メモリ222を管理させる。ホスト・コンピュータ202、プリンタ218、及 びプリンタ内のプリント・エンジン226は、全て非同期的に動作するので、資 源スケジューラー216は、3つの非同期部分の間に矛盾がないように全てのタ イミングを調整しなければならない。資源スケジューラー216は、全プリンタ ・タイミングを開始かつ制御し、プリント・エンジンで動作を同期し、そしてい つ特定資源がプリンタ資源記憶220に受け入れられるかを決定する。 資源スケジューラー216は、プリンタ資源記憶220から特定資源をいつ削 除するのかも決定する。上述したように、資源をロード及びリリースするシーケ ンスを特定することは、資源ローダー214のタスクである。資源スケジューラ ー216は、いつプリンタ218が資源ローダー214によって予めリリースさ れた特定資源に対する更なる必要を有さないかを決定する。資源ローダー214 のように、資源スケジューラー216も資源アセンブラ208によって生成され た明示依存性へのアクセスを有する。資源ローダー214とは異なり、資源スケ ジューラー216は、現行ページに対して必要な資源がプリンタ資源記憶220 に存在するかどうかにだけ興味を持つ。 現行ページに対する全ての依存性が合ったときに(即ち、全ての要求資源がプ リンタ資源記憶220に存在する)、資源スケジューラー216は、ページをプ リンティングすることにプリント・エンジン226を委ねる実行信号を生成する 。以下に詳細に説明するように、プリント・エンジンは、一度コミットメントが ページをプリントするようになされたならば実時間でビットマップと共に供給さ れなければならないか、またはプリント・エンジンは、ページの途中で停止する ことができないのでページが適宜にプリントされない。デュプレックシング・プ リンタは、ページの各面(サイド)に対して実行信号を必要とする(即ち、プリ ンティング処理は、用紙の面間で停止できる)ということに注目すべきである。 資 源スケジューラー216は、いつ実時間コミットメントがプリント・エンジンに なされることができかつページをプリンティングすることにプリント・エンジン を委ねるための実行信号を生成するのかを決定する。 資源スケジューラー216は、一方向及び双方向通信の両方で同様な機能を実 行する。一方向通信システムでは、資源スケジューラー216は、プリンタ状態 をホスト・コンピュータ202に示すハードウェア・インタ−フェイスにBUS Yフラグを生成する。資源スケジューラーは、時間においていつ資源が実際にプ リンタ資源記憶218から削除されるのかも決定する。双方向通信システムにお いて、資源ローダー214は、プリンタ218からのプリンタ・メモリ222を を管理しかつ特定資源に対してホスト・コンピュータ202に特別の要求を行う 。加えて、資源スケジューラー216は、プリンティング処理を監視しかついつ ページがプリント・エンジン226内の最後の用紙ジャム・センサをクリアした かをホスト・コンピュータ202に報告する。それゆえに、ホスト・コンピュー タ202は、エラー回復を供給すべくそのページに対応付けられた資源を保持す ることがもはや必要ではないことを知る。資源スケジューラー216は、プリン ティング・タスクに対する用紙経路も計画しうる。これは、多段用紙ビン、複数 用紙サイズ及び経路を有する大きなプリンタにおいて特に重要である。最適用紙 経路を計画することは、プリンティング・タスクの総効率を改善する。 資源エクスキュータ−224は、資源スケジューラー216から実行信号を受 け入れかつページを実際にプリントするためにプリント・エンジン226によっ て用いることができるビットマップにRPLsを変換する。他の資源は、ビット マップ形式でプリンタ資源記憶220内に既に存在しうる。資源エクスキュータ ー224は、ビットマップを生成するために、プリンタ資源記憶220で現在利 用できる、資源を利用する。上述したように、あるプリンタは、バンディング・ モードで動作する。本発明のコンピュータ−プリンタ・システム200は、バン ディング・モードまたはページ・モードで動作しているプリンタと協同する。資 源エクスキュータ−224は、バンディング・モードが用いられるならば実時間 動作に制約される。即ち、一度実時間コミットメントがプリント・エンジン22 6になされてしまえば、資源エクスキュータ−は、実時間で、一度の1バン ド、RPLsをビットマップに変換しなければならないか、またはエラーが発生 する。プリンタ218が(バンディング・モードに対抗して)ページ・モードで 動作しているならば、実時間コミットメントは、存在しない。資源エクスキュー タ−224は、ビットマップをプリント・エンジンに転送する前にページ全体を ビットマップに変換することができる。本発明のコンピュータ−プリンタ・シス テム200は、ページ・モードまたはバンディング・モードのいずれかで動作で きる。ビットマップ・データ・ファイルへのRPLの実際の変換は、当業者によ く知られているのでここでは説明しない。 プリント・エンジン226は、資源エクスキュータ−224からビットマップ ・データを受け入れてビットマップ・データがファイルページにプリントされる 原因となる。プリント・エンジン226の使用は、当業者によく知られているの でここでは説明しない。 文書の1ページに対するビットマップ・データがプリント・エンジン226に よって処理されると、用紙は、プリンタ218の中を通って移動する。用紙ジャ ムや低トナー態のようなエラーを検出するためにプリント・エンジン226中い たるところに多数のセンサが存在する。従来技術のシステムは、用紙が最後の用 紙ジャム・センサをクリアするまでビットマップ・データをプリンタ・メモリに 保持する。用紙ジャムが発生したならば、従来技術のシステムは、ジャムった用 紙をリプリントするために既にビットマップ形式のデータを有する。コンピュー タ−プリンタ・システム200が双方向通信ケイパビリティを有するならば、し かしながら、ビットマップ・データは、プリンタ218内に維持されないが、し かしホスト・コンピュータ202内にエラー回復データを生成する。従来技術の システムは、ページがジャムならばビットマップ・データが既にプリンタ・メモ リにあってリプリントされるべく待機しているので、本発明よりも速いエラー回 復を有するように見える。しかしながら、用紙ジャム・エラーは、通常のプリン ティング処理でほとんど発生しないので、全プリンティング処理では、将来のペ ージに対してデータを処理することを継続しかつエラー回復に対する最も効率的 な技術について心配しないことがより効率的である。それよりも、本発明のコン ピュータ−プリンタ・システム200は、文書全体をプリントするための最も 効率的な技術に関係する。 従来技術のシステムは、ページが最後の用紙ジャム・センサをクリアするまで プリンタ・メモリがビットマップ・データを保持することを強制されるので次の ページに対するデータを素早く処理することができない。一枚の用紙を取り、用 紙上にイメージを生成し、かつ用紙トレイに用紙を落とすのに一般的なプリント ・エンジンでおおよそ10秒かかる。本発明は、用紙がジャムらないという予想 で文書の将来ページに対してデータを処理することを継続する。従来技術のシス テムが最後の用紙ジャム・センサをクリアすべくプリントされたページを待機し ている時限中に、コンピュータ−プリンタ・システム200は、資源をアセンブ リし、PDLをRPLsに変換し、かつ複数のページに対してプリンタ資源記憶 220における資源のフローを管理することができる。 用紙ジャムの起こりえない事象において、ホスト・コンピュータ202は、始 めからページを再処理する。用紙ジャムが発生したならばオペレータがジャムっ た用紙を物理的に取り除くために介在しなければならないので、時間における実 際のコストは、存在しない。オペレータがジャムった用紙を取り除いている間に 、資源ローダー214は、どのページがエラー回復を必要とするのかを決定しか つ必要な資源及びRPLsをプリンタ218にリロードすることを始める。どの 資源がエラー回復処理に対して必要であるのかを決定するために資源ローダー2 14が明示依存性リストを見て調べるので、明示依存性は、エラー回復処理を簡 略化する。例えば、プリンタ218は、ページ2及び3がデュプレックスであり かつ4及び5がシンプレックスである、ページ2から5まで数値付けられた用紙 のシートをジャムりうる。プリンタ218が、ページ3(下から上へ)、ページ 2(上から下へ)、ページ4(上から下へ)及びページ5(上から下へ)である べくプリンティング順序を予め特定したならば、資源ローダー214は、エラー 回復を実行すべく最も効率的な方法で資源及びRPLsを要求するために明示依 存性を用いる。オペレータがジャムった用紙を取り除く間にこれらのアクティビ ティが実施されうる。それゆえに、従来技術のシステムと比較したときに、コン ピュータ−プリンタ・システム200は、エラー回復で時間を失わない。更に、 プリンティング処理の効率は、ページが通常ジャムらないと仮定することによっ ておおいに向上(強化)される。それゆえに、コンピュータ−プリンタ・システ ム200は、従来技術のシステムよりも更に短い時間で文書を処理することがで きる。 上述したように、本発明のコンピュータ−プリンタ・システム200は、ホス ト・コンピュータ202からプリンタ218への一方向通信で動作することがで きるか、またはホスト・コンピュータ202とプリンタ218の間の完全双方向 通信チャネルで機能することができる。ホスト・コンピュータ202のハードウ ェアまたはプリンタ218のハードウェアが双方向通信を支援することができな いならば、一方向通信だけが可能である。一方向通信の制限を有しても、本発明 のコンピュータ−プリンタ・システム200は、従来技術よりもまだ優れている 。ある場合には、双方向通信がコンピュータ・システム202及びプリンタ21 8の両方によって支援されうるが、しかし双方向通信チャネルの待ち時間があま りにも長いので完全双方向通信を効率的に支援することが不可能である。その場 合には、本発明のコンピュータ−プリンタ・システム200は、プリンタ218 とホスト・コンピュータ202の間で限定された双方向通信を支援することがで きる。このモードは、まだ完全双方向通信のように効率的ではないが、一方向通 信よりも有利である。限定された双方向通信は、ホスト・コンピュータに単なる 一方向通信よりも優れたエラー及び状態リポーティング(報告)を与える。デー タ処理は、一方向通信だけが存在するものとして行われうるが、しかしエラーが 発生したならば、コンピュータ−プリンタ・システム200は、エラーから回復 するためにエラー及び状態情報を利用しうる。 PCL言語を用いるあるレーザ・プリンタ・システムは、プリンタにプラグす る(差し込む)ためのソフトウェア・カートリッジの設備を有する。カートリッ ジは、追加フォントを包含しうる。コンピュータ−プリンタ・システム200は 、プリンタ内に存在する本発明の必要構成部分をプリンタ218に供給すべくそ のようなカートリッジを用いうる。本発明の一実施例では、コンピュータ−プリ ンタ・システム200は、PCLを用いて第1のモードで動作する機能(能力) を有するか、または本発明を用いて第2のモードで動作しうる。この実施例では 、コンピュータ−プリンタ・システム200は、二つのモード間を前後に自動的 に 切り替わりうる。これは、コンピュータ−プリンタ・システム200にDOSア プリケーションのような、他のアプリケーションとの互換性を維持させる。二つ のモード間を前後に自動的に切り替わることによって、コンピュータ−プリンタ ・システム200は、従来技術のシステムとの大いなる互換性を与える。 ユーザーが資源ベースド・プリンティングを用いて従来技術のプリンタでプリ ントを試みるならば、本発明のコンピュータ−プリンタ・システム200は、プ リンタによる無意味なデータの偶発的プリンティングを回避する。例えば、PC Lモードで動作するプリンタは、資源ベースド・プリンティング・フォーマット のデータを認識しない。本発明がなければ、PCLモードのプリンタは、無意味 なデータをプリントする(即ち、ゴミ)。しかしながら、本発明は、PCL“生 成フォンド”コマンドで資源ベースド・プリンタ・データを“ラップすること” によってPCLモードで動作するプリンタでの無意味なデータの偶発的プリンテ ィングを回避する。資源ベースド・ホスト・コンピュータ202は、資源ベース ド・プリンタ・データのフレームを図4に示すフォーマットでプリンタ218へ 伝送する。プリンタ218へ伝送された各フレームの第1の部分は、資源ベース ド・データ・フレームのサイズに従った、PCLラッパーを包含する。この方法 で、PCLモードで動作するプリンタ218は、フォント・ディスクリプタ−と して資源ベースド・プリンタ・データを解釈する。フォント・ディスクリプタ− は、PCLモードのプリンタに対して認識されないので、フォントは、無視され て、何もプリントされない。プリンタ218が資源ベースド・モードで動作して いるならば、PCLラッパーは、無視され、かつ資源ベースド・プリンタ・デー タが上述したように適当な方法でプリントされる。 PCLラッパーは、当業者にとってよく知られた二つのエスケープ・シーケン スを含む。第1のエスケープ・シーケンスは、資源記憶220またはプリンタ・ メモリ222内の特定された位置に従うフォント・データを記憶すべくPCLモ ードで動作するプリンタ218を指図する、フォントIDコマンドである。この 好ましい実施例では、フォントIDコマンドは、一時的にフォントを記憶するた めに一般的に用いられる、メモリ位置、16384を用いる、〈ESC〉*c1 6384Dである。この特定フォントIDコマンドは、PCLモードで動作 するプリンタ218が資源ベースド・プリンタ・データをフォントとして誤って 識別するならば、それは、フォントを一時的に記憶するためにしばしば用いられ るメモリの位置を用いるように、選択される。それゆえに、フォントとして資源 ベースド・プリンタ・データを不注意にダウンロードすることの影響は、最小限 にされる。フォントIDコマンド・エスケープ・シーケンスを用いることは、必 要ないということに注目。ほとんどの状況では、PCLモードで動作するプリン タ218は、資源ベースド・プリンタ・データを無意味なデータとして認識し、 かつフォントとしてそれをダウンロードしない。しかしながら、フォントIDコ マンドは、PCLプリンタが資源ベースド・プリンタ・データをフォントとして 誤って認識するならば、影響を最小限にする。 PCLラッパーで用いられる第2のエスケープ・シーケンスは、PCLモード で動作するプリンタ218にバイトでフォント・データ・ファイルの長さを告げ る、〈ESC〉s〈length〉Wである。例えば、特定の資源ベースド・デ ータ・フレームが長さにおいて10,000バイトであるならば、PCLラッパ ーは、上述したような、エスケープ・シーケンスを用いて、以下に示すようにア センブリされる: 〈ESC〉*c13684D〈ESC〉s(s10000W プリンタ218が資源ベースド・モードで動作しているならば、それは、資源 ベースド・プリンタ・データを処理することができ、かつ次に示すように、PC Lラッパーを無視する。資源ベースド・プリンタ・データは、資源ベースド・プ リンタ・データ・フレームの開始及び終了を識別するために、特定フレーミング ・シーケンスを用いる。この好ましい実施例では、開始フレーム・シーケンスは 、以下に示す: FM FM QM ここで、FMは、“フレーム・マーカー”、QMは、“クォート・マーカー” をそれぞれ表している。フレーミング・シーケンスの使用は、よく知られ ているので、詳細を説明しない。本発明では、あらゆる数のフレーミング・シー ケンスが納得の行くように用いられうるということを理解されたい。上記の例は 、本発明の限定であると考慮されるべきではない。資源ベースド・プリンタ21 8は、それが適当なフレーミング・シーケンスを包含しないので、PCLラッパ ーに応答しない。それゆえに、データのフレームは、上述したように、資源ベー スド・プリンティング・フォーマットでホスト・コンピュータから送られること ができ、かつ資源ベースド・プリンタ218またはPCLプリンタのいずれかに よって処理される。上述したように、各型のプリンタは、同じデータ・フレーム を異なる方法で処理する。 資源ベースド・コンピュータ−プリンタ・システム200は、資源アセンブラ 208によってアセンブリされた資源及びデータを受け入れかつ資源及びデータ をプリンタ218への伝送のためにフレームに分割する、図5に示す、フレーマ ー228を有する。フレーマー228は、図4に示すようなデータ・フレームを 生成する。本発明の資源ベースド・プリンティング・システムでは、資源アセン ブラは、128Kバイトよりも大きいフレームをアセンブリしうる。資源ベース ド・データ自体は、l28Kバイトのサイズを達成しうる。開始フレーム及び終 了フレーム・シーケンスのようなデータの追加で、資源ベースド・データ・フレ ームは、128Kバイトを超えうる。しかしながら、PCLプリンタ・システム は、32,767バイト(32Kバイト−1)の大きさのフレームだけを受け入 れることができる。従って、フレーマー228は、あらゆる大きな資源ベースド ・フレームを32,767バイトよりも大きくないセグメントに分割する。フレ ーマー228は、資源ベースド・データ・フレームの長さを決定しかつPCLラ ッパーの例で上述した長さとしてその数を挿入する。 資源ベースド・データ・フレームが最大PCLフレーム長を超越する場合には 、フレーマー228は、資源ベースド・データ・フレームを断片(pieces)に分 割しかつ各PCLデータ・フレームの終りに無視マーカー(IM)フレーム・シ ーケンスを挿入する。例えば、資源ベースド・データ・フレームが50,000 バイト長であるならば、フレーマー228は、上述したPCLラッパーを有する 32,767バイトの第1のPCLフレームを送る。PCLデータ・フレームの 最後のバイトは、IMフレーム・シーケンスを包含する。IMフレーム・シーケ ンスは、別の開始フレーム・シーケンスが受け取られるまで全ての後続データを 無視すべく資源ベースド・プリンタ218を指示する。フレーマー228によっ てアセンブリされた次のPCLデータ・フレームは、50,000バイトの資源 ベースド・データ・フレームの残りのバイトに対するPCLラッパーを包含する 。上述したように、資源ベースドは、PCLラッパーを無視しかつ新しい開始フ レーム・シーケンスを伴う資源ベースド・データを処理する。それゆえに、フレ ーマー228によってアセンブリされた各PCLデータ・フレームは、資源ベー スド・開始フレーム・シーケンス及び資源ベースド・プリンタ・データによって 後続されるPCLラッパーを包含する。資源ベースド・データ・フレームの長さ が最大PCLデータ・フレーム・サイズを超越したならば、フレーマー228は 、資源ベースド・データ・フレームを最大PCLデータ・フレーム・サイズより も小さい断片に分割する。 発明の方法は、図6A及び6Bのフローチャートに示される。判断ブロック2 50では、フレーマー228(図5参照)は、資源ベースド・データ・フレーム が上述した最大PCLフレーム長を超越するかどうかを見るために検査する。資 源ベースド・データ・フレームが最大PCLフレーム長を超越するならば、判断 ブロック250の結果は、YESであり、そして、段階252で、フレーマー2 28は、資源ベースド・データ・フレームを最大PCLフレーム長よりも小さい 複数セグメントに分割する。資源ベースド・データ・フレームが最大PCLフレ ーム長を超えないならば、判断ブロック250の結果は、NOであり、段階25 2は、バイパスされる。段階254では、フレーマー228は、上述したように 、資源ベースド・データ・セグメントのそれぞれに開始及び終了フレーム・シー ケンスを加える。段階256では、フレーマー228は、上述したエスケープ・ シーケンスを包含しているPCLラッパーを加える。フレーマー228は、ユー ザーに彼または彼女が非互換性のプリンタでプリントすることを試みていること を警告すべく第1のデータ・フレームに挿入された警告メッセージも加える。警 告メッセージは、以下に詳述する。 図6Bに示された、段階258では、フレーマー228は、PCLラッパーに 挿入された警告メッセージを有する資源ベースド・データ・フレームを、プリン タ218へ送る。判断ブロック260では、フレーマー228は、複数セグメン トがあるかどうかを決定する。複数セグメントがないならば、判断ブロック26 0の結果は、NOであり、フレーマー228が終了される。複数セグメントがあ るならば、判断ブロック260の結果は、YESであり、段階262において、 フレーマーが残りのセグメントのそれぞれに対してフォント・ラッパーを生成す る。段階264では、フレーマー228は、残りのデータ・フレームをプリンタ 218へ連続的に送る。第1のものを除いてデータ・フレームに警告メッセージ を装着する必要がない。なぜならば、これがユーザーに対する複数警告メッセー ジを結果として生ずるだけである。 ホスト・コンピュータ202とプリンタ218の間の一方向通信では、ホスト ・コンピュータは、プリンタが適宜なモードで動作しているかどうかを決定する ことができない。ホスト・コンピュータは、それが正しいフォーマットでデータ を送ったと思い、かつユーザーは、どの問題がプリンタに無意味なデータをプリ ントさせたかを知らないで無意味なデータのページを受け取る。本発明は、彼ま たは彼女がPCLプリンタで資源ベースド・データをプリントすることを試みて いることをユーザーに忠告するプリントされたメッセージを供給することによっ てこの問題を解決する。このメッセージは、プリント・ジョブの開始でフレーマ ー228によってアセンブリされ、かつ第1のフレームの開始でプリンタへだけ 伝送される。フレーマー228は、プリンタに組み込まれたフォントを用いてP CLフォーマットにプレーンテキスト・データを挿入する。メッセージは、“あ なたは、ウィンドウズ・プリンティング・システムを用いています。プリンタを オフにしなさい。あなたのウィンドウ・プリンティング・システム・カートリッ ジを挿入しなさい。プリンタをオンにして再びプリントしなさい。”ということ を、ユーザーに報告する。それゆえに、本発明は、無意味なデータの偶発的プリ ンティングを防ぎ、かつプリンタに挿入された適宜なカートリッジなしに、プリ ンタは、データを処理することができないということをユーザーに報告する。 上記説明は、資源ベースド・プリンティング及びPCLフォント・ラッパーを 含むが、本発明の原理は、多重(複数)モードで動作することができるあらゆる システムに適用されうる。装置がプリンタであるならば、ラッパーは、生成フォ ント・ラッパーでありうるし、上述したように本発明の原理により処理されうる 。プリンタ以外の装置が多重モードで用いられるならば、ラッパーは、動作の第 1のモードで用いられるコマンドでありうるが、第2のモードによって無視され る。上述された資源ベースド・コンピュータ−プリンタ・システム200は、一 方向通信または双方向通信で動作する。双方向通信では、プリンタでは通常用い られないが、資源ベースド・コンピュータ−プリンタ・システム200で用いら れる、複数の状態ラインが存在する。それゆえに、双方向通信は、ホスト・コン ピュータ202にプリンタ218が資源ベースド・データを処理できるかどうか を直接決定させるので、本発明は、一方向通信が存在するときにだけ必要である 。 当業者は、本発明によって用いられるプリンタへの展開的アプローチは、プリ ンティング処理の総スピードを非常に増大するということを認識するであろう。 どのようにプリンティング処理がアプローチされるべきであるかという既存の概 念を捨て去りかつホスト・コンピュータ及びプリンタの両方における全ての利用 可能な演算能力を利用することによって、本発明は、ハードウェアにおけるほん の少しの追加経費でプリンティング・スピードを動的に増大した。本発明の原理 は、既存のレーザ・プリンタに容易に適用されうる。 本発明の種々の実施例及び利点が上記記載に示されたけれども、上記開示は、 説明のためだけであり、かつ変更は、詳細においてなされかつ本発明の広い原理 内で維持されうるということを理解されたい。従って、本発明は、添付した請求 の範囲によってのみ限定されるものである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リー パトリック アメリカ合衆国 カリフォルニア州 94539 フリーモント エクセルソー ド ライヴ 43757 (72)発明者 マコーミック ウィリアム ビー アメリカ合衆国 ワシントン州 98007 ベルヴィュー 144 ノースイースト ト ゥエンティース ストリート 14150 (72)発明者 ダグラス ジョージ エイチ アメリカ合衆国 アラバマ州 36582 セ オドア ベイ ブースター ロード 3100 エイ

Claims (1)

  1. 【特許請求の範囲】 1.プリンタ及び該プリンタで文書をプリントしかつ制御するホスト・コンピュ ータを含むコンピュータ−プリンタ・システムであり、該ホスト・コンピュータ は、プリントされるべき複数のオブジェクトを記述するデータを包含する文書に 対するデータ・ファイルを有しており、該プリンタは、動作の第1または第2の モードで選択的に動作することができる、コンピュ一タ−プリンタ・システムで あって、 前記データ・ファイルを試験し、該データ・ファイルを前記文書の特定部分 内の複数のオブジェクトに対応している一組のプリミティブに変換し、該文書の 該特定部分をプリントするために必要な一組の資源を決定する、前記ホスト・コ ンピュータ内の資源アセンブラと、 前記選択された資源をアセンブリしかつ前記プリンタへの伝送に対するデー タ・フレームを生成するフレーマーとを備え、 前記データ・フレームは、第1及び第2の部分を包含しており、該第1の部 分は、前記プリンタが前記第1のモードで動作しているならば第1の方法で処理 されかつ該プリンタが前記第2のモードで動作しているならば無視されるような 生成フォント・コマンド・シーケンスを包含し、該第2の部分は、該プリンタが 該第1のモードで動作しているならば該プリンタによって処理されず、該プリン タが該第2のモードで動作しているならば該プリンタによって処理されることを 特徴とするコンピュータ−プリンタ・システム。 2.前記フレーマーは、前記第2の部分のサイズが所定サイズを超越するならば 複数の前記データ・フレームを生成し、該複数のデータ・フレームのそれぞれは 、前記第1及び第2の部分を有することを特徴とする請求項1に記載のシステム 。 3.前記フレーマーは、前記第2の部分の第1の端でフレーム開始シーケンスを 生成し、当該フレーム開始シーケンスは、前記プリンタが前記第2のモードであ るならば該第2の部分を処理することを開始すべく該プリンタに示すことを特徴 とする請求項1に記載のシステム。 4.前記第1の部分は、前記プリンタにプリントされるメッセージを包含し、該 メッセージは、該第2の部分を処理するための該プリンタの無能力を示すことを 特徴とする請求項1に記載のシステム。 5.前記第1のモードは、動作のPCLモードであり、前記第2のモードは、動 作の資源ベースド・モードであることを特徴とする請求項1に記載のシステム。 6.プリンタ及び該プリンタで文書をプリントしかつ制御するホスト・コンピュ ータを含むコンピュータ−プリンタ・システムであり、該ホスト・コンピュータ は、プリントされるべき複数のオブジェクトを記述するデータを包含する文書に 対するデータ・ファイルを有しており、該プリンタは、動作の第1または第2の モードで選択的に動作することができる、コンピュータ−プリンタ・システムで あって、 前記データ・ファイルを試験し、該データ・ファイルを前記文書の特定部分 内の複数のオブジェクトに対応している一組のプリミティブに変換し、該文書の 該特定部分をプリントするために必要な一組の資源を決定する、前記ホスト・コ ンピュータ内の資源アセンブラと、 前記選択された資源をアセンブリしかつ前記プリンタへの伝送に対するデー タ・フレームを生成するフレーマーとを備え、 前記データ・フレームは、第1及び第2の部分を包含しており、該第1の部 分は、前記プリンタが前記第1のモードで動作しているならば第1の方法で処理 されかつ該プリンタが前記第2のモードで動作しているならば無視されるような コマンド・シーケンスを包含し、該第2の部分は、該プリンタが該第1のモード で動作しているならば該プリンタによって処理されず、該プリンタが該第2のモ ードで動作しているならば該プリンタによって処理されることを特徴とするコン ピュータ−プリンタ・システム。 7.前記フレーマーは、前記第2の部分のサイズが所定サイズを超越するならば 複数の前記データ・フレームを生成し、該複数のデータ・フレームのそれぞれは 、前記第1及び第2の部分を有することを特徴とする請求項6に記載のシステム 。 8.前記フレーマーは、前記第2の部分の第1の端でフレーム開始シーケンスを 生成し、当該フレーム開始シーケンスは、前記プリンタが前記第2のモードであ るならば該第2の部分を処理することを開始すべく該プリンタに示すことを特徴 とする請求項6に記載のシステム。 9.前記第1の部分は、前記プリンタにプリントされるメッセージを包含し、該 メッセージは、該第2の部分を処理するための該プリンタの無能力を示すことを 特徴とする請求項6に記載のシステム。 10.前記第1のモードは、動作のPCLモードであり、前記第2のモードは、動 作の資源ベースド・モードであることを特徴とする請求項6に記載のシステム。 11.二者択一的方法で装置にてデータを処理するコンピュータ・システムであり 、該装置は、複数のモードの一つで選択的に動作する、システムであって、 処理されるべきデータ・ファイルを包含しているデータ記憶領域と、 前記データ・ファイルの少なくとも部分を受け入れかつラッパー部分を生成 し、該ラッパー部分を該データ部分に加える、フレーマーとを備え、 前記ラッパー部分は、前記装置が第1の複数のモードで動作しているならば 第1の方法で処理されかつ該装置が第2の該複数のモードで動作しているならば 無視されるコマンド・シーケンスを包含し、 前記データ部分は、前記装置が前記第1のモードで動作しているならば該装 置によって処理されずかつ該装置が前記第2のモードで動作しているならば該装 置によって処理されることを特徴とするコンピュータ・システム。 12.前記ラッパー部分は、前記コンピュータ・システムに取り付けられたプリン タでプリントされるメッセージを包含し、該メッセージは、該データ部分を処理 するための該装置の無能力を示すことを特徴とする請求項11に記載のシステム 。 13.プリンタ及び該プリンタで文書をプリントしかつ制御するホスト・コンピュ ータを含むコンピュータ−プリンタ・システムの方法であり、該ホスト・コンピ ュータは、プリントされるべき複数のオブジェクトを記述するデータを包含する 文書に対するデータ・ファイルを有しており、該プリンタは、動作の第1または 第2のモードで選択的に動作することができる、方法であって、 (a)前記文書の特定部分をプリントするために必要な一組の資源を決定し; (b)前記プリンタへの伝送に対してデータ・フレームの第1の部分を生成し 、該第1の部分は、前記プリンタが前記第1のモードで動作しているならば第1 の方法で処理されかつ該プリンタが前記2のモードで動作しているならば無視さ れるコマンド・シーケンスを包含しており、 (c)前記プリンタへの伝送に対してデータ・フレームの第2の部分を生成し 、該第2の部分は、前記プリンタが前記第1のモードで動作しているならば処理 されずかつ該プリンタが前記2のモードで動作しているならば該プリンタによっ て処理され、 (d)前記データ・フレームを前記ホスト・コンピュータから前記プリンタに 伝送する段階を具備することを特徴とする方法。 14.前記段階(b)及び(c)は、前記第2の部分のサイズが所定サイズを超越 するならば複数の前記データ・フレームを生成し、該複数のデータ・フレームの それぞれは、前記第1及び第2の部分を有することを特徴とする請求項13に記 載の方法。 15.前記段階(c)は、前記第2の部分の第1の端でフレーム開始シーケンスを 生成し、当該フレーム開始シーケンスは、前記プリンタが前記第2のモードであ るならば該第2の部分を処理することを開始すべく該プリンタに示すことを特徴 とする請求項13に記載の方法。 16.前記プリンタでプリントされるメッセージを生成する段階を更に具備し、該 メッセージは、該第2の部分を処理するための該プリンタの無能力を示すことを 特徴とする請求項13に記載の方法。 17.前記第1の部分を生成する前記段階(b)は、前記メッセージを含むことを 特徴とする請求項16に記載の方法。 18.二者択一的方法で装置にてデータ・ファイルを処理する装置を含んでいるコ ンピュータ・システムの方法であり、該装置は、複数のモードの一つで選択的に 動作する、方法であって、 (a)前記装置への伝送に対するデータ・フレームの第1の部分を生成し、該 第1の部分は、前記装置が第1の複数のモードで動作しているならば第1の方法 で処理されかつ該装置が第2の該複数のモードで動作しているならば無 視されるコマンド・シーケンスを包含し、 (b)前記装置への伝送に対するデータ・フレームの第2の部分を生成し、該 第2の部分は、前記データ・ファイルの部分を少なくとも包含しており、前記第 2の部分は、前記装置が前記第1のモードで動作しているならば該装置によって 処理されずかつ該装置が前記第2のモードで動作しているならば該装置によって 処理されることを特徴とする方法。
JP6512502A 1992-11-16 1993-11-16 フォント・ラッピング・プリンタ・データに対するシステム及び方法 Pending JPH08503318A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/976,201 US5469532A (en) 1992-11-16 1992-11-16 System and method for font wrapping printer data
US07/976,201 1992-11-16
PCT/US1993/011228 WO1994011805A1 (en) 1992-11-16 1993-11-16 System and method for font wrapping printer data

Publications (1)

Publication Number Publication Date
JPH08503318A true JPH08503318A (ja) 1996-04-09

Family

ID=25523857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6512502A Pending JPH08503318A (ja) 1992-11-16 1993-11-16 フォント・ラッピング・プリンタ・データに対するシステム及び方法

Country Status (4)

Country Link
US (1) US5469532A (ja)
EP (1) EP0669018A1 (ja)
JP (1) JPH08503318A (ja)
WO (1) WO1994011805A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007514236A (ja) * 2003-12-11 2007-05-31 マイクロソフト コーポレーション プリンタにドキュメントおよびリソースを送信するシステム

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3159567B2 (ja) * 1993-04-27 2001-04-23 キヤノン株式会社 医療用レーザーイメージャ
DE69325509T2 (de) * 1993-06-15 1999-12-23 Hewlett-Packard Co., Palo Alto Direktanschluss-Protokoll auf niederer Ebene für PCL-Drucker
US6132116A (en) * 1994-06-14 2000-10-17 Canon Kabushiki Kaisha Print system and method for presenting required record time of print system
JPH08212020A (ja) * 1995-02-08 1996-08-20 Canon Inc 出力装置及び情報処理装置及び出力システム
EP0727733B1 (en) * 1995-02-09 2002-06-05 Canon Kabushiki Kaisha Printing system, printing apparatus, information processing apparatus and storage medium storing font download control program
EP0733965B1 (en) * 1995-03-23 2001-12-05 Agfa-Gevaert N.V. Parallel processing of page description language data stream
DE69615811T2 (de) * 1995-12-25 2002-04-04 Sharp K.K., Osaka Abbildungssystem
US5630028A (en) * 1996-05-28 1997-05-13 Bowne & Co., Inc. Method of representing graphic data using text
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US5729666A (en) * 1996-08-05 1998-03-17 Hewlett-Packard Company Efficient method and apparatus for downloading of fonts from a processor to a printer
US5983243A (en) * 1996-10-31 1999-11-09 International Business Machines Corporation Data processing system and method for Preparing a presentation-ready document that produces separate images of fixed and variable data and a bookticket specifying an arrangement of such images
US6166822A (en) * 1998-01-20 2000-12-26 Lexmark International, Inc. Method of printing with a host based printer using an internal font
US6298164B1 (en) * 1998-10-02 2001-10-02 Canon Kabushiki Kaisha PCL conversion of JETSEND images
DE69911370T2 (de) * 1999-03-08 2004-07-22 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Drucken von Dokumenten aus einem Rechner
US6992785B1 (en) * 2000-02-09 2006-01-31 International Business Machines Corporation Method, data structure and apparatus for identifying resources prior to printing
DE10203868A1 (de) * 2002-01-31 2003-08-14 Oce Printing Systems Gmbh Verfahren, Empfangsserver und Computerprogramm-Modul zur automatisierten Annahme und Weiterleitung von Dokumentenbearbeitungsaufträgen
US20040024844A1 (en) * 2002-08-01 2004-02-05 Stanley Bruce Holmstead Downloading data for printers
US20050108032A1 (en) * 2003-11-17 2005-05-19 Josephsen Mark M. Method and apparatus to account for hard copy cost
US20050229171A1 (en) * 2004-04-07 2005-10-13 Henry Steven G Distributing upgrades
US7383500B2 (en) 2004-04-30 2008-06-03 Microsoft Corporation Methods and systems for building packages that contain pre-paginated documents
US7359902B2 (en) 2004-04-30 2008-04-15 Microsoft Corporation Method and apparatus for maintaining relationships between parts in a package
US7607141B2 (en) 2004-05-03 2009-10-20 Microsoft Corporation Systems and methods for support of various processing capabilities
US8363232B2 (en) 2004-05-03 2013-01-29 Microsoft Corporation Strategies for simultaneous peripheral operations on-line using hierarchically structured job information
US7519899B2 (en) 2004-05-03 2009-04-14 Microsoft Corporation Planar mapping of graphical elements
US7580948B2 (en) 2004-05-03 2009-08-25 Microsoft Corporation Spooling strategies using structured job information
US7634775B2 (en) * 2004-05-03 2009-12-15 Microsoft Corporation Sharing of downloaded resources
US7755786B2 (en) 2004-05-03 2010-07-13 Microsoft Corporation Systems and methods for support of various processing capabilities
US8243317B2 (en) 2004-05-03 2012-08-14 Microsoft Corporation Hierarchical arrangement for spooling job data
US7584111B2 (en) * 2004-11-19 2009-09-01 Microsoft Corporation Time polynomial Arrow-Debreu market equilibrium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220674A (en) * 1987-07-17 1993-06-15 Digital Equipment Corporation Local area print server for requesting and storing required resource data and forwarding printer status message to selected destination
US5108208A (en) * 1988-12-05 1992-04-28 Gardner Michael E Allocation of memory in a font cartridge
JP2997005B2 (ja) * 1990-04-12 2000-01-11 キヤノン株式会社 出力装置
US5175679A (en) * 1990-09-28 1992-12-29 Xerox Corporation Control for electronic image processing systems
US5113355A (en) * 1990-10-10 1992-05-12 Fuji Xerox Co., Ltd. Printer control system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007514236A (ja) * 2003-12-11 2007-05-31 マイクロソフト コーポレーション プリンタにドキュメントおよびリソースを送信するシステム

Also Published As

Publication number Publication date
WO1994011805A1 (en) 1994-05-26
EP0669018A1 (en) 1995-08-30
US5469532A (en) 1995-11-21

Similar Documents

Publication Publication Date Title
JPH08503318A (ja) フォント・ラッピング・プリンタ・データに対するシステム及び方法
EP0578258B1 (en) Resource-oriented printer system and method of operation
EP0578257B1 (en) System and method for mode switching of a printing device
EP0578262B1 (en) System and method for dynamic printer timeout
EP0578264B1 (en) Method and apparatus of cost metrics for printer systems
US6665081B1 (en) Print system printer driver and printer
EP0924597A2 (en) Client/server printer driver system
EP0986002A2 (en) Method and apparatus for printing documents including embedded print objects
JPH09114611A (ja) 印刷処理装置および方法
US20090015863A1 (en) Image Processing Device, Image Forming Device, Image Processing Method, Image Forming Method, Program, and Computer Readable Recording Medium on Which the Program is Recorded
CA2100239A1 (en) System and method for automatic resolution reduction
JP3417742B2 (ja) 印刷処理装置および方法
US6441918B1 (en) Image output system image processing system image output method image processing method and recording medium
US5592593A (en) Printing in data processing systems
JP3209102B2 (ja) プリントシステム、プリンタドライバ及びプリンタ
JP2817687B2 (ja) 画像形成装置
JP2005316950A (ja) データ処理装置およびデータ処理方法およびプリンタドライバプログラムおよび印刷制御装置および印刷制御方法および印刷システム
KR100392548B1 (ko) 프린터내의메모리적응할당방법및시스템
JP4469036B2 (ja) ホストとプリンタとの間での繰返しオブジェクトの単一パス送信
JPH10278362A (ja) 印刷制御装置及び方法と印刷システム
EP0864966B1 (en) Imformation processing apparatus and output apparatus
US6750980B1 (en) Information processing apparatus and output apparatus
US20040085564A1 (en) Image forming systems and image forming methods
JP3347520B2 (ja) 情報処理装置およびプリンタシステムおよびプリントジョブ処理方法
JPH1040035A (ja) 印刷処理装置