(57)【要約】      （修正有）【課題】  ジャムなどのエラー回復を行うために少なくとも２ページの印刷データを保持可能な容量のメモリをプリンタに保持する必要があった。印刷装置へのページの送信順序をこの印刷装置の印刷順序に、メモリの使用量を抑えつつ適合させる為の技術を提供すること。【解決手段】  印刷装置が印刷する対象となるシートの各面への印刷に係るデータを、その印刷順序に従った並びで管理し、各面への印刷に係るデータをこの印刷順序に従って印刷装置に出力する。【選択図】    図１
2005332167.tif 000002
【特許請求の範囲】
【請求項１】
印刷に係るデータを生成して、両面印刷が可能な印刷装置に出力する情報処理装置が行う情報処理方法であって、
前記印刷装置が印刷する対象となるシートの各面への印刷に係るデータを、その印刷順序に従った並びで管理する管理工程と、
前記各面への印刷に係るデータを前記印刷順序に従って前記印刷装置に出力する出力工程と
を備えることを特徴とする情報処理方法。
【請求項２】
前記管理工程は、各シートの各面への印刷に係るデータを管理するための管理データを面毎に生成する生成工程を備え、
前記生成工程では、注目面に対して生成した管理データには、当該注目面の次に印刷されるべき面に対して生成した管理データを特定する為の特定データを含ませることを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記出力工程では、注目面に対して生成した管理データによって特定される印刷対象のデータを出力した後、前記注目面に対して生成した管理データに含まれる前記特定データを参照し、前記注目面の次に印刷されるべき面に対して生成した管理データを特定し、当該特定した管理データによって特定される印刷対象のデータを出力する処理を、各面に対して順次行うことを特徴とする請求項に記載の情報処理方法。
【請求項４】
印刷に係るデータを生成して、両面印刷が可能な印刷装置に出力する情報処理装置であって、
前記印刷装置が印刷する対象となるシートの各面への印刷に係るデータを、その印刷順序に従った並びで管理する管理手段と、
前記各面への印刷に係るデータを前記印刷順序に従って前記印刷装置に出力する出力手段と
を備えることを特徴とする情報処理装置。
【請求項５】
コンピュータに請求項１乃至３の何れか１項に記載の情報処理方法を実行させることを特徴とするプログラム。
【請求項６】
請求項５に記載のプログラムを格納することを特徴とする、コンピュータ読みとり可能な記憶媒体。
【請求項７】
両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータであって、
送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加する手段を備えることを特徴とするコンピュータ。
【請求項８】
両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータであって、
２枚滞留で両面印刷可能でない際、末尾に裏ページを追加し、末尾に表ページを追加する手段と、
２枚滞留で両面印刷可能である際、送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加する手段を備えることを特徴とするコンピュータ。
【請求項９】
両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータにおける印刷方法であって、
送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップを備えることを特徴とするコンピュータにおける印刷方法。    
【請求項１０】
両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータにおける印刷方法であって、
２枚滞留で両面印刷可能でない際、末尾に裏ページを追加し、末尾に表ページを追加するステップと、
２枚滞留で両面印刷可能である際、送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップとを備えることを特徴とするコンピュータにおける印刷方法。
【請求項１１】
両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータで実行されるプログラムあって、
送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップを備えることを特徴とするコンピュータで実行されるプログラム。
【請求項１２】
両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータで実行されるプログラムであって、
２枚滞留で両面印刷可能でない際、末尾に裏ページを追加し、末尾に表ページを追加するステップと、
２枚滞留で両面印刷可能である際、送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップとを備えることを特徴とするコンピュータで実行されるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置への印刷に係るデータを出力するための技術に関するものである。
【背景技術】
【０００２】
ジャムなどのエラー回復を行うために、プリンタにページメモリを保持し、エラーが発生した場合にはこのページメモリに格納された印刷データを用いてエラー回復を行うのが一般的である。
【０００３】
しかしながら、この方法によって両面印刷を行うためには、少なくとも２ページの印刷データを保持可能な容量のメモリをプリンタに保持しなければエラー回復が行えず、またプリンタエンジンの最高印刷速度で印刷するためには通常４ないし８ページの印刷データを保持可能な容量のメモリを必要とする。このため、特にデータサイズが大きい高解像度プリンタあるいはカラープリンタにおいては印刷データを保持するために大容量のメモリが必要になり、プリンタのコストが上昇するという問題がある。
【０００４】
この問題を解決するため、例えば従来から、エラー回復用のページメモリをホスト装置に持つことによりプリンタのメモリを小容量に抑えるという技術が知られている。
【特許文献１】特開平８−２５８３７５号公報
【特許文献２】特開平９−２８２１１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通常のページプリンタのように、フェースダウン排紙を行うプリンタにおいて両面印刷を行う場合には、排紙された紙の束がページ順になるように、裏面（偶数ページ）を先に印刷し、表面（奇数ページ）をその後に印刷するのが一般的である。たとえばいわゆる一枚滞留の両面印刷では２、１、４、３、…の順に、またいわゆる二枚滞留交互給紙の両面印刷では２、４、１、６、３、…の順に印刷するのが一般的である。
【０００６】
しかしながら上記の方法によれば、ページの送信順序が印刷順序にあわせて変更されないため、プリンタ側に両面印刷のための余分なメモリを必要とする。たとえば、上述の一枚滞留の両面印刷では、ページが１、２、３、４、…の順に送信されるため、プリンタ側に１ページ目のデータを格納後、２ページ目のデータを受信し、２ページ目から印刷を開始するため、少なくとも２ページの印刷データを保持可能なメモリ容量を必要とする。
【０００７】
本発明は以上の問題に鑑みてなされたものであり、印刷装置へのページの送信順序をこの印刷装置の印刷順序に、メモリの使用量を抑えつつ適合させる為の技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
【０００９】
すなわち、印刷に係るデータを生成して、両面印刷が可能な印刷装置に出力する情報処理装置が行う情報処理方法であって、
前記印刷装置が印刷する対象となるシートの各面への印刷に係るデータを、その印刷順序に従った並びで管理する管理工程と、
前記各面への印刷に係るデータを前記印刷順序に従って前記印刷装置に出力する出力工程と
を備えることを特徴とする。
【００１０】
本発明の目的を達成するために、例えば本発明の情報処理装置は以下の構成を備える。
【００１１】
すなわち、印刷に係るデータを生成して、両面印刷が可能な印刷装置に出力する情報処理装置であって、
前記印刷装置が印刷する対象となるシートの各面への印刷に係るデータを、その印刷順序に従った並びで管理する管理手段と、
前記各面への印刷に係るデータを前記印刷順序に従って前記印刷装置に出力する出力手段と
を備えることを特徴とする。
【発明の効果】
【００１２】
本発明の構成により、印刷装置へのページの送信順序をこの印刷装置の印刷順序に、メモリの使用量を抑えつつ適合させることができる。
【発明を実施するための最良の形態】
【００１３】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１４】
［第１の実施形態］
図１は本実施形態に係るコンピュータ１、プリンタ７の機能構成を示すブロック図である。図中、１はコンピュータであり、オペレーティングシステム２、アプリケーション３、プリンタドライバ４、ランゲージモニタ５，ポートドライバ６等のソフトウェアを保持する。
【００１５】
オペレーティングシステム２は、コンピュータ１が備えるハードウェア、およびアプリケーション３、プリンタドライバ４、ランゲージモニタ５、ポートドライバ６などのソフトウェアを管理する。
【００１６】
アプリケーション３は、例えばワードプロセッサのようなアプリケーションソフトウェアであり、操作者の指示に従って文書の作成・印刷などを行う。
【００１７】
４はプリンタドライバであり、アプリケーション３が発行した印刷指令をオペレーティングシステム２を経て受け取り、この印刷指令をランゲージモニタ５、およびプリンタ７が解釈可能なプリンタコマンドに変換する。当然、このプリンタドライバ４はコンピュータ１に接続されているプリンタ７に適合したものであることは言うまでもない。
【００１８】
５はランゲージモニタであり、プリンタドライバ４が出力したプリンタコマンドを受け取り、ポートドライバ６を経由してプリンタ７に送信する。６およびはポートドライバであり、ランゲージモニタ５が出力したプリンタコマンドを、たとえばＵＳＢインタフェースを経てプリンタ７に送信するとともに、プリンタ７からステータスを受信した場合にはランゲージモニタ５に出力する。
【００１９】
７はプリンタであり、ポートドライバ６から受信したプリンタコマンドに従って印刷を行う。
【００２０】
図１５は、上記コンピュータ１の基本構成を示すブロック図である。
【００２１】
１５０１はＣＰＵで、ＲＡＭ１５０２やＲＯＭ１５０３に格納されているプログラムやデータを用いてコンピュータ１全体の制御を行うと共に、後述する各処理（例えばプリンタ７とのデータ通信を制御する処理）を行う。
【００２２】
１５０２はＲＡＭで、外部記憶装置１５０６からＣＰＵ１５０１の制御により読み出されたプログラムやデータを一時的に格納すると共に、ＣＰＵ１５０１が各処理を行う際に使用するワークエリアを備える。また、プリンタ７とのデータ通信を行う為に使用する各種のエリアを備える。
【００２３】
１５０３はＲＯＭで、ブートプログラムやコンピュータ１の各種の設定データなどを格納する。
【００２４】
１５０４は操作部で、キーボードやマウスなどの入力装置により構成されており、ＣＰＵ１５０１に対して印刷指示などの各種の指示を入力することができる。
【００２５】
１５０５は表示部で、ＣＲＴや液晶画面などにより構成されており、ここに画像や文字などで各種の情報を表示することができ、例えば、文章エディタでもって作成した文章を表示することができる。
【００２６】
１５０６は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置であり、ここに上記オペレーティングシステム２、アプリケーション３、プリンタドライバ４、ランゲージモニタ５，ポートドライバ６等のソフトウェアのプログラムやデータが保存されており、これらの一部、もしくは全部はＣＰＵ１５０１の制御によりＲＡＭ１５０２に読み出され、ＣＰＵ１５０１の処理対象となる。
【００２７】
１５０７はＩ／Ｆ（インターフェース）で、コンピュータ１をプリンタ７と接続するためのものであり、このＩ／Ｆ１５０７を介してコンピュータ１はプリンタ７とデータ通信を行うことができる。
【００２８】
１５０８は上述の各部を繋ぐバスである。
【００２９】
図２はプリンタ７の基本構成を示すブロック図である。図中、２１はたとえばＵＳＢインタフェース等により構成されるホストインタフェースであり、コンピュータ１からプリンタコマンドを受信する。
【００３０】
２２はＦＩＦＯ（ファーストインファーストアウト）メモリであり、ホストインタフェース２１から受信した各種のデータを格納する。復号回路２３は、ＦＩＦＯメモリ２２に記憶された画像データを復号し、プリンタエンジン２４に出力する。プリンタエンジン２４は、レーザビームプリンタエンジンであり、制御回路２５の指示により、復号回路２３が出力した画像データに従って印刷を行う。２５は制御回路であり、例えば１チップＣＰＵで構成され、ネットワークインタフェース２１、ＦＩＦＯメモリ２２、復号回路２３およびプリンタエンジン２４の制御を行う。
【００３１】
次に、上記コンピュータ１、プリンタ７による印刷動作について説明する。なお、以下の説明でコンピュータ１が行う処理はすなわち、コンピュータ１のＣＰＵ１５０１によって行われるものである。ＣＰＵ１５０１は当然、ＲＡＭ１５０２にロードされたプログラムやデータを用いてこの処理を実行する。
【００３２】
操作者がコンピュータ１側で操作部１５０４を操作し、アプリケーション３に対して印刷を指示すると、アプリケーション３からオペレーティングシステム２を経由してプリンタドライバ４に印刷指令が渡される。
【００３３】
プリンタドライバ４はアプリケーション３から発行された印刷指令に基づき、印刷対象を画像データに変換して圧縮し、圧縮した画像データを、両面印刷の有無、印刷部数の指定などを指定するジョブ情報コマンド、用紙サイズ、用紙タイプ、給紙元、排紙先、画像データのラインの長さとライン数などを指定するページ情報コマンド、ページの終了を示すページ終了コマンド、およびジョブの終了を通知するジョブ終了コマンドとともに「プリンタコマンド」として出力する。
【００３４】
なお、両面印刷においては、綴じる辺が長辺か短辺かによって長辺綴じ、短辺綴じの２種類があり、長辺綴じで短辺から給紙するいわゆる縦送りである場合、および短辺綴じで長辺から給紙するいわゆる横送りである場合には、裏面のページの画像を１８０度回転する必要があるので、プリンタドライバ４はあらかじめ、綴じ方向と給紙方向に応じて、必要な場合には画像を１８０度回転する。また、本実施形態においては、排紙先は常にフェースダウントレイが指定される。
【００３５】
プリンタコマンドが出力されると、オペレーティングシステム２はこのプリンタコマンドを順次ランゲージモニタ５に引き渡す。ランゲージモニタ５は、受け取ったプリンタコマンドを順次プリンタ７に送信する。なおランゲージモニタ５はプリンタコマンド中の画像データコマンドをプリンタ７に送信する前に、ステータス要求コマンドを送信し、プリンタ７のステータスを取得して、画像データコマンドが送信可能であることを確認する。
【００３６】
プリンタ７の制御回路２５は画像データコマンドを受信すると、画像データをＦＩＦＯメモリ２２に格納する。制御回路２５はまた、ページ終了コマンドを受信すると、プリンタエンジン２４に対して印刷開始を指示する。プリンタエンジン２４は印刷開始を指示されると、給紙を行い、用紙が所定の位置に達したときに画像データの出力を要求する。画像データの出力が要求されると、復号回路２３はＦＩＦＯメモリ２２から圧縮された画像を読み出し、復号した元の画像データをプリンタエンジン２４に出力する。このときＦＩＦＯメモリ２２から読み出された画像データは、ＦＩＦＯメモリ２２から取り除かれる。
【００３７】
ランゲージモニタ５はまた、プリンタ７から取得したプリンタステータスがページの印刷が正常終了したことを示した場合には、該当するページメモリを解放する。ランゲージモニタ５はまた、取得したプリンタステータスがエラーを示した場合には、印刷が正常終了していないページを含むシートから再送信を試みる。ここでシートとは、一枚の紙に相当し、片面印刷においては１ページによって、両面印刷においては２ページによって構成される。
【００３８】
このようにしてジョブの全ページのプリンタコマンドを転送し終えると、ランゲージモニタ５はジョブの全シートの印刷完了を待ち、ジョブの全シートの印刷が完了した場合には、ジョブを終了する。
【００３９】
次に、図３および図４を参照し、ランゲージモニタ５が使用するシート管理テーブル１０１のデータ構造を説明する。
【００４０】
図３は片面３ページのジョブを処理する際にＣＰＵ１５０１が参照するシート管理テーブルの構成例を示す図である。図４は両面６ページのジョブを処理する際にＣＰＵ１５０１が参照するシート管理テーブルの構成例を示す図である。
【００４１】
シート管理テーブル１０１（以下、１０１ａ〜１０１ｈ全てに共通する説明の場合には、特にａ〜ｈを付けない）には、次のシート管理テーブルのＲＡＭ１５０２におけるアドレスを示す次のシートアドレス１０２、表面ページのデータバッファ（ＲＡＭ１５０２内に設けられているバッファメモリ）におけるアドレスを示す表面ページアドレス１０３、裏面ページのデータバッファにおけるアドレスを示す裏面ページアドレス１０４、未送信の部数を示す未送信カウンタ１０５、印刷未完了の部数を示す未完了カウンタ１０６が構成要素として含まれている。
【００４２】
ＣＰＵ１５０１は、オペレーティングシステム２から上記各種の構成要素を受信した順に、先頭シート管理テーブルアドレス１０７（ａ、ｂ）、および次のシートアドレス１０２によって図３，４に示すような線形リストを構成する。
【００４３】
ここで、次のシートアドレス１０２がＮＵＬＬである場合には、次のシート管理テーブル１０１が存在しないことを示す。また、表面ページアドレス１０３がＮＵＬＬである場合には、そのシートはジョブの終了を示す空シートであることを示す。また、裏面ページアドレス１０４がＮＵＬＬである場合には、そのシートには裏面ページが存在せず、片面印刷を行うシートであることを示す。
【００４４】
次に図１０を参照し、ランゲージモニタ５のデータ受信処理の詳細を説明する。図１０は、ＣＰＵ１５０１が、上記プリントコマンドを参照して図３，４に示すような線形リスト（シート管理テーブル群）を生成する処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１５０１に実行させるためのプログラムは外部記憶装置１５０６からＲＡＭ１５０２にロードされているものとする。
【００４５】
まず、ステップＳ１にて、オペレーティングシステム２から渡されたプリンタコマンドをＲＡＭ１５０２内に設けられているバッファにコピーする。次にステップＳ２にて、一つのコマンドの受信が完了しているか判定する。コマンドが途中で切れており、一つのコマンドの受信が完了していない場合には直ちに処理を終了し、次のコマンド受信に備える。一つのコマンドの受信が完了している場合には、ステップＳ３にて、受信したコマンドがジョブ情報コマンドであるか判定する。受信したコマンドがジョブ情報コマンドであった場合には、ステップＳ４にて受信したジョブ情報コマンドをＲＡＭ１５０２内に設けられているワーク領域にコピーし、ジョブ情報コマンドをバッファから削除し、処理を終了する。
【００４６】
ステップＳ３にて受信したコマンドがジョブ情報コマンドでなかった場合には、ステップＳ５にて、受信したコマンドがページ終了コマンドであるか判定する。受信したコマンドがページ終了コマンドであった場合には、ステップＳ６にて、ジョブ情報コマンドにより両面印刷が指定されているか判定する。ジョブ情報コマンドにより両面印刷が指定されていない場合には、ステップＳ７にて、表面ページアドレス１０３に、バッファ内の１ページぶんのコマンド群の先頭アドレスを設定する。なお、コマンド群のバッファ内における位置が分かるのであれば、どのような情報を表面ページアドレス１０３に設定するようにしても良い。
【００４７】
また、ステップＳ７では、裏面ページアドレス１０４をＮＵＬＬに設定する。またステップＳ７では、未完了カウンタ１０６をジョブ情報コマンドにより指定された印刷部数に設定する。そしてこのようにして表面ページアドレス１０３、裏面ページアドレス、未完了カウンタ１０６を含むシート管理テーブルを、シート管理テーブル１０１の線形リストの末尾に追加し、処理を終了する。
【００４８】
一方、ステップＳ６にて、ジョブ情報コマンドにより両面印刷が指定されている場合には、ステップＳ８にて、保留ページの有無を判定する。ここで、保留ページとは、両面印刷の表面のページを一時的にＲＡＭ１５０２中の所定のエリアに保持したものである。
【００４９】
保留ページがない場合には、ステップＳ１１にて、バッファ内の１ページぶんのコマンド群の先頭アドレスを保留ページの先頭アドレスとして記憶し、処理を終了する。
【００５０】
一方、ステップＳ８にて、保留ページがある場合には、ステップＳ９にて、表面になるべき保留ページと、裏面になるべき現在のページの組み合わせで両面印刷が可能であるか判定する。具体的には例えば、
・  表面のページ情報コマンドで指定される用紙サイズが両面印刷可能なサイズ、例えばＡ３、Ｂ４、Ａ４、Ｂ５のいずれかでない場合には両面印刷が可能でない。
【００５１】
・  表面のページ情報コマンドで指定される用紙タイプが両面印刷可能なタイプ、例えば普通紙でない場合には両面印刷が可能でない。
【００５２】
・  裏面のページ情報コマンドで指定される用紙サイズが、表面のページ情報コマンドで指定される用紙サイズと一致しない場合には両面印刷が可能でない。
【００５３】
・  裏面のページ情報コマンドで指定される用紙タイプが、表面のページ情報コマンドで指定される用紙タイプと一致しない場合には両面印刷が可能でない。
【００５４】
・  裏面のページ情報コマンドで指定される給紙元指定が、表面のページ情報コマンドで指定される給紙元指定と一致しない場合には両面印刷が可能でない。
【００５５】
・  上記のいずれにも該当しない場合には両面印刷が可能である。
のように判定する。
【００５６】
ステップＳ９にて、両面印刷が可能であると判定された場合には、ステップＳ１２にて、裏面ページアドレス１０４にバッファ内の１ページぶんのコマンド群の先頭アドレスを設定し、表面ページアドレス１０３に保留ページの先頭アドレスを設定し、未完了カウンタ１０６をジョブ情報コマンドにより指定された印刷部数に設定する。そして更にステップＳ１２では、このようにして表面ページアドレス１０３、裏面ページアドレス、未完了カウンタ１０６を含むシート管理テーブルを、シート管理テーブル１０１の線形リストの末尾に追加し、処理を終了する。
【００５７】
この際に、両面印刷を行うことを指示するために、裏面ページアドレス１０４が指す裏面ページのページ情報コマンドの排紙先指定を両面ユニットに、また表面ページアドレス１０３が指す裏面ページのページ情報コマンドの給紙元指定を両面ユニットに、それぞれ変更する。コマンド次にステップＳ１３にて、保留ページアドレスに保留ページがないことを示すＮＵＬＬを格納し、処理を終了する。
【００５８】
ステップＳ９にて、両面印刷が可能でないと判定された場合には、保留ページを片面印刷するとともに現在のページを保留ページとするために、ステップＳ１０にて、裏面ページアドレス１０４にＮＵＬＬを設定し、表面ページアドレス１０３に保留ページの先頭アドレスを設定し、未完了カウンタ１０６をジョブ情報コマンドにより指定された印刷部数に設定する。そして更にステップＳ１０では、このようにして表面ページアドレス１０３、裏面ページアドレス、未完了カウンタ１０６を含むシート管理テーブルを、シート管理テーブル１０１の線形リストの末尾に追加する。
【００５９】
そして、ステップＳ１１にて、バッファ内の１ページぶんのコマンド群の先頭アドレスを保留ページの先頭アドレスとして記憶し、処理を終了する。
【００６０】
一方、ステップＳ５にて、受信したコマンドがページ終了コマンドでなかった場合には、ステップＳ１４にて、受信したコマンドがジョブ終了コマンドであるか判定する。受信したコマンドがジョブ終了コマンドでなかった場合は、受信したコマンドがページ情報コマンドまたは画像データである場合であり、１ページぶんのコマンドをまだ受信し終えてない場合なので、受信したコマンドをそのままバッファに残し、処理を終了する。
【００６１】
一方、ステップＳ１４にて、受信したコマンドがジョブ終了コマンドであった場合は、ステップＳ１５にて保留ページの有無を判定する。保留ページがない場合には、直接ステップＳ１８に進む。
【００６２】
保留ページがある場合には、両面印刷が指定されているが、対応する裏面のページがない場合なので、片面印刷を行うために、ステップＳ１６にてステップＳ１０と同様の処理を行う。次にステップＳ１７にて、保留ページアドレスに保留ページがないことを示すＮＵＬＬを格納し、ステップＳ１８に進む。
【００６３】
ステップＳ１８では、ジョブの終了を示すために、表面ページアドレス１０３および裏面ページアドレス１０４をＮＵＬＬに設定したシート管理テーブルを、シート管理テーブルの線形リストの末尾に追加し、処理を終了する。
【００６４】
なお、以上の処理において、シート管理テーブルを線形リストの末尾に追加する場合には、追加する前に末尾であったシート管理テーブルに含まれる「次のシートアドレス１０２」には、新たに追加するシート管理テーブルのアドレスを設定する必要がある。
【００６５】
次に、図５および図６を参照し、ランゲージモニタ５が使用する送信データ管理テーブル１１１のデータ構造を説明する。図５は片面３ページのジョブを処理する場合に参照される送信データ管理テーブル１１１の構成例を示す図である。図６は両面６ページ（一枚滞留）のジョブを処理する場合に参照される送信データ管理テーブル１１１の構成例を示す図である。
【００６６】
送信データ管理テーブル１１１（以下、１１１ａ〜１１１ｉ全てに共通する説明の場合には、特にａ〜ｉを付けない）は、次の送信データ管理テーブル１１１のＲＡＭ１５０２におけるアドレスを示す次の送信データアドレス１１２、その送信データ管理テーブル１１１に対応するシート管理テーブル１０１のＲＡＭ１５０２におけるアドレスを示すシート管理テーブルアドレス１１３、その送信データ管理テーブル１１１の種類が片面印刷または両面印刷の表面ページ、両面印刷の裏面ページ、あるいは二枚滞留の両面印刷の場合に裏面ページが入るべき空きテーブルのいずれであるかを示す送信データ種別１１４、印刷順序を示すページ番号（不図示）を構成要素として含むものである。
【００６７】
このような線形リストは、印刷が行われる順に、先頭送信データ管理テーブルアドレス１１７（ａ、ｂ）、および次の送信データアドレス１１２によって構成する。次の送信データアドレス１１２がＮＵＬＬである場合には、次の送信データ管理テーブルが存在しないことを示す。前述したように、フェースダウン排紙を行う場合には表面よりも裏面を先に印刷するため、図６において同一シートの裏面が表面に先行している。
【００６８】
次に図１４を参照し、二枚滞留交互給紙の両面印刷における、印刷順序を説明する。図１４は、二枚滞留交互給紙の両面印刷における、印刷順序とページの関係を示した表である。
【００６９】
両面印刷を行う際には、裏面を印刷後、表面の印刷を開始するまでに、用紙の前端と後端を反転させた後に、用紙を感光ドラムまで搬送する、いわゆる再給紙を行う必要があり、一枚滞留の両面印刷ではこの間印刷が行えないため、印刷速度が遅くなる。二枚滞留交互給紙の両面印刷においては、この問題を解決するために、上述の反転および再給紙を行っている時間を利用して、別のシートを印刷することにより印刷速度が遅くならないようにする。具体的には、以下のような規則に従って印刷を行う。
【００７０】
・  同一シートの裏面印刷と表面印刷の間に、別のシートを２ページ印刷する。
【００７１】
・  裏面印刷と表面印刷を交互に行う。
【００７２】
・  ただし、送信順序２に対応するページはシート１に先行するシートの表面であるが、そのようなページは存在しないため印刷を行うことができず、この間時間が空く。
【００７３】
・  また、送信順序７に対応するページはシート４の裏面であるが、そのようなページが存在しない場合には印刷を行うことができず、この間時間が空く。
【００７４】
・  二枚滞留交互給紙の両面印刷を行う場合、シートの長さの上限は、用紙搬送路の長さなどにより制約を受けるため、例えばＡ４横送りよりも長い用紙では二枚滞留交互給紙の両面印刷を行うことができない。そのような場合には一枚滞留にて両面印刷を行う。
【００７５】
・  二枚滞留交互給紙の両面印刷を行う場合、用紙サイズまたは用紙タイプが異なるシートを混在して印刷することはできない。
【００７６】
次に、図７、図８および図９を参照し、二枚滞留交互給紙の両面印刷における、送信データ管理テーブル１１１の構成方法を説明する。図７は２ページの送信データが登録されている状態における線形リストを示す図、図８は４ページの送信データが登録されている状態における線形リストを示す図、図９は６ページの送信データが登録されている状態における線形リストを示す図である。
【００７７】
最初の２ページを登録したときには、図７に示すように、シート１裏面、空き、シート１表面の順に送信データ管理テーブル１１１ａ〜１１１ｃを構成する。これらは図１４の送信順序１、３、４にそれぞれ相当する。
【００７８】
そして更に次の２ページを登録する際には、図７に示す線形リスト（送信データ管理テーブル１１１ａ〜１１１ｃ）を検索し、検索された空きの送信データ管理テーブル１１１ｂをシート２裏面ページに変更する（その結果送信データ管理テーブル１１１ｂは送信データ管理テーブル１１１ｄとなる）とともに、線形リストの末尾に空きの送信データ管理テーブル１１１ｆ、およびシート２表面ページの送信データ管理テーブル１１１ｇを順に追加する。
【００７９】
なお、その際には、送信データ管理テーブル１１１ｃ中の「次の送信データアドレス１１２」には、送信データ管理テーブル１１１ｆのアドレスを設定する。これにより、送信データ管理テーブル１１１ｃは送信データ管理テーブル１１１ｅとなる。また、送信データ管理テーブル１１１ｆ中の「次の送信データアドレス１１２」には、送信データ管理テーブル１１１ｇのアドレスを設定する。
【００８０】
そして更に、２ページを登録する際には、図７に示す線形リスト（送信データ管理テーブル１１１ａ〜１１１ｃ）を検索し、検索された空きの送信データ管理テーブル１１１ｆをシート３裏面ページに変更する（その結果送信データ管理テーブル１１１ｆは送信データ管理テーブル１１１ｈとなる）とともに、線形リストの末尾に空きの送信データ管理テーブル１１１ｊ、およびシート３表面ページの送信データ管理テーブル１１１ｋを順に追加する。
【００８１】
なお、その際には、送信データ管理テーブル１１１ｇ中の「次の送信データアドレス１１２」には、送信データ管理テーブル１１１ｊのアドレスを設定する。これにより、送信データ管理テーブル１１１ｇは送信データ管理テーブル１１１ｉとなる。また、送信データ管理テーブル１１１ｊ中の「次の送信データアドレス１１２」には、送信データ管理テーブル１１１ｋのアドレスを設定する。
【００８２】
このようにして、必要なだけのページを追加していくことができる。
【００８３】
次に図１１を参照し、ランゲージモニタ５の送信データ登録処理の詳細を説明する。図１１は、ＣＰＵ１５０１が、上記プリントコマンドを参照して図７，８，９に示すような線形リスト（シート管理テーブル群）を生成する処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１５０１に実行させるためのプログラムは外部記憶装置１５０６からＲＡＭ１５０２にロードされているものとする。
【００８４】
なお、送信データ登録処理は、データ受信処理と並行に動作する。送信データ登録処理が起動されるとまず、ステップＳ３１にて、シート管理テーブル１０１が存在するか判定する。具体的には先頭シート管理テーブルアドレス１０７がＮＵＬＬである場合には、シート管理テーブル１０１が存在しないので、ステップＳ３１に戻る。
【００８５】
先頭シート管理テーブルアドレス１０７がＮＵＬＬでない場合には、シート管理テーブル１０１が存在するので、ステップＳ３２にて現在のシートアドレスに先頭シート管理テーブルアドレス１０７を設定する。
【００８６】
次にステップＳ３３にて、現在のシートアドレスが示すシート管理テーブル１０１が、ジョブの終了を示す空シートであるか判定する。具体的には表面ページアドレス１０３がＮＵＬＬでない場合には、現在のシートは空シートではないため、ステップＳ３４にて、現在のシート管理テーブル１０１の未完了カウンタ１０６を未送信カウンタ１０５にコピーする。
【００８７】
次にステップＳ３５にて、エラーが発生しているか判定する。なお、エラーが発生しているか否かを示す情報は、後述する処理手順により取得される。エラーが発生している場合には、データの送信をやり直さなければならないため、ステップＳ３１に戻る。
【００８８】
エラーが発生していない場合には、ステップＳ３６にて、現在のシートが片面印刷するシートであるか判定する。具体的には、現在のシート管理テーブル１０１の裏面ページアドレス１０４がＮＵＬＬである場合には、現在のシートは片面印刷するシートであるため、ステップＳ３７にて送信データ管理テーブル１１１を検索する。空きの送信データ管理テーブル１１１があれば、二枚滞留の両面印刷から片面印刷に移行した場合であり、その空きを使用することはできないので、それを削除する。次にステップＳ４７に進む。
【００８９】
一方、ステップＳ３６にて、現在のシート管理テーブル１０１の裏面ページアドレス１０４がＮＵＬＬでない場合には、現在のシートは両面印刷するシートであるため、ステップＳ３８にて、二枚滞留で両面印刷が可能であるか判定する。具体的には、現在のシートの用紙サイズが、例えばＡ４またはＢ５でなかった場合には、二枚滞留で両面印刷が可能でないので、ステップＳ３９にて送信データ管理テーブル１１１を検索する。
【００９０】
現在のシートの用紙サイズは、上記ページ情報コマンドを参照することにより得られる。
【００９１】
空きの送信データ管理テーブル１１１があれば、二枚滞留の両面印刷から一枚滞留の両面印刷に移行した場合であり、その空きを使用することはできないので、それを削除する。
【００９２】
次にステップＳ４０にて、シート管理テーブルアドレス１１３を現在のシートアドレスに、送信データ種別１１４を裏面ページに設定した送信データ管理テーブル１１１を、送信データ管理テーブル１１１の線形リストの末尾に追加し、ステップＳ４７に進む。
【００９３】
一方、ステップＳ３８にて、現在のシートの用紙サイズが、例えばＡ４またはＢ５であった場合には、二枚滞留で両面印刷が可能なので、ステップＳ４１にて送信データ管理テーブル１１１を検索する。
【００９４】
空きの送信データ管理テーブル１１１がなければ、ステップＳ４５に進む。空きの送信データ管理テーブル１１１があった場合には、ステップＳ４２にて、空きテーブルが使用可能であるか、すなわち前のシートのページと混在して二枚滞留の両面印刷を続けることができるかを判定する。具体的には、末尾の送信データ管理テーブル１１１のページの用紙サイズおよび用紙タイプが、現在のシートの用紙サイズおよび用紙タイプとそれぞれ一致する場合には、混在して印刷を続けることが可能であり、空きテーブルが使用できるため、ステップＳ４３にて、検索された送信データ管理テーブル１１１の、シート管理テーブルアドレス１１３を現在のシートアドレスに、送信データ種別１１４を裏面ページにそれぞれ設定し、ステップＳ４６に進む。
【００９５】
ステップＳ４２にて、末尾の送信データ管理テーブル１１１のページの用紙サイズまたは用紙タイプが、現在のシートの用紙サイズまたは用紙タイプと一致しない場合には、混在して印刷を続けることが可能でなく、空きテーブルが使用できないため、ステップＳ４４にて、送信データ管理テーブル１１１を検索し、空きの送信データ管理テーブル１１１があれば、それを削除し、ステップＳ４５に進む。
【００９６】
ステップＳ４５では、シート管理テーブルアドレス１１３を現在のシートアドレスに、送信データ種別１１４を裏面ページに設定した送信データ管理テーブル１１１を、送信データ管理テーブル１１１の線形リストの末尾に追加し、ステップＳ４６に進む。
【００９７】
ステップＳ４６では、シート管理テーブルアドレス１１３をＮＵＬＬに、送信データ種別１１４を空きテーブルに設定した送信データ管理テーブル１１１を、送信データ管理テーブル１１１の線形リストの末尾に追加し、ステップＳ４７に進む。
【００９８】
ステップＳ４７では、シート管理テーブルアドレス１１３を現在のシートアドレスに、送信データ種別１１４を表面ページに設定した送信データ管理テーブル１１１を、送信データ管理テーブル１１１の線形リストの末尾に追加し、次にステップＳ４８にて、現在のシート管理テーブル１０１の未送信カウンタ１０５から１を減算し、次にステップＳ４９にて、現在のシート管理テーブル１０１の未送信カウンタ１０５が０であるか判定する。
【００９９】
現在のシート管理テーブル１０１の未送信カウンタ１０５が０でない場合には、ステップＳ３５に戻り、現在のシートの送信データ登録を継続する。現在のシート管理テーブル１０１の未送信カウンタ１０５が０である場合には、そのシートの送信データ登録が指定された印刷部数に応じた回数行われた場合なので、ステップＳ５０にて、次のシート管理テーブル１０１が存在するか判定する。具体的には、現在のシート管理テーブル１０１の、次のシートアドレス１０２がＮＵＬＬでない場合には、次のシート管理テーブル１０１が存在するため、ステップＳ５１にて、現在のシートアドレスに現在のシート管理テーブル１０１の、次のシートアドレス１０２を格納し、次にステップＳ３３に戻り、次のシートの送信データ登録を開始する。
【０１００】
ステップＳ５０にて、現在のシート管理テーブル１０１の、次のシートアドレス１０２がＮＵＬＬである場合には、次のシート管理テーブル１０１が存在しないため、ステップＳ５２にて、エラーが発生しているか判定する。
【０１０１】
エラーが発生している場合は、ステップＳ３１に戻る。エラーが発生していない場合は、ステップＳ５０に戻り、次のシート管理テーブル１０１が追加されるか、あるいはエラーが発生するまでステップＳ５０からステップＳ５２の処理を繰り返す。
【０１０２】
一方、ステップＳ３３にて、表面ページアドレス１０３がＮＵＬＬである場合には、現在のシートはジョブの終了を示す空シートであるため、ステップＳ５２にて、エラーが発生しているか判定する。エラーが発生している場合は、ステップＳ３１に戻る。
【０１０３】
エラーが発生していない場合は、ステップＳ５４にて、印刷が完了したか判定する。具体的には、先頭シート管理テーブル１０７が、現在のシートアドレス、すなわちジョブの終了を示す空シートのアドレスと等しい場合には、印刷の完了により、後述する処理手順に従って、空シート以外のシート管理テーブル１０１が全て削除された場合なので、ステップＳ５５にてジョブ終了処理を行う。ここでは、空シートの削除など、ワーク領域を印刷前に戻す処理を行う。次にステップＳ３１に戻る。
【０１０４】
ステップＳ５４にて、先頭シート管理テーブル１０７が、現在のシートアドレスと等しくない場合には、印刷が完了していない場合なので、ステップＳ５３に戻り、印刷が完了するか、あるいはエラーが発生するまでステップＳ５３からステップＳ５４の処理を繰り返す。
【０１０５】
以上の処理により、シート管理テーブル、送信データ管理テーブルを参照して、印刷処理をプリンタ７に行わせることができる。
【０１０６】
次に図１２を参照し、ランゲージモニタ５のデータ送信処理の詳細を説明する。図１２は、ＣＰＵ１５０１が、プリンタ７に印刷対象のデータを送信する処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１５０１に実行させるためのプログラムは外部記憶装置１５０６からＲＡＭ１５０２にロードされているものとする。
【０１０７】
なお、データ送信処理は、データ受信処理および送信データ登録処理と並行に動作する。
【０１０８】
データ送信処理が起動されるとまず、ステップＳ７１にて、送信データの有無を判定する。具体的には先頭送信データ管理テーブルアドレス１１７がＮＵＬＬである場合には、送信データ管理テーブル１１１が存在しないので、ステップＳ７１に戻る。
【０１０９】
先頭送信データ管理テーブルアドレス１１７がＮＵＬＬでない場合には、送信データ管理テーブル１１１が存在するので、ステップＳ７２にて現在の送信データ管理テーブルアドレスに先頭送信データ管理テーブルアドレス１１７を格納する。次にステップＳ８６にて、データクリアコマンドをプリンタ７に送信する。プリンタ７は、データクリアコマンドを受信すると、受信済みの印刷データを破棄するとともに、内部に保持するページ番号を０に初期化する。次にステップＳ８７にて、送信ページ番号に０を格納する。
【０１１０】
次にステップＳ７３にて、現在の送信データ管理テーブルの送信データ種別１１４が空きテーブルであるか判定する。現在の送信データ管理テーブルの送信データ種別１１４が空きテーブルでない場合には、ステップＳ７４にて、送信ページ番号に１を加算し、現在の送信データ管理テーブルの送信ページ番号（不図示）に格納する。
【０１１１】
次に、ステップＳ７５にて、エラーが発生しているか判定する。エラーが発生していない場合は、ステップＳ７６にて、コマンドが送信可能であるか判定する。なお、コマンドが送信可能であるか否かを示す情報は、後述する処理手順により取得される。コマンドが送信可能でない場合には、ステップＳ７５に戻り、コマンドが送信可能になるか、あるいはエラーが発生するまで、ステップＳ７５からステップＳ７６の処理を繰り返す。
【０１１２】
ステップＳ７６にて、コマンドが送信可能である場合には、ステップＳ７７にて、送信データ種別１１４が表面ページであるか裏面ページであるかに従って、シート管理テーブルアドレス１１３が指すシート管理テーブルの、表面ページアドレス１０３あるいは裏面ページアドレス１０４が指すアドレスに格納されているコマンドのうち、未送信の先頭コマンドをプリンタ７に送信する。
【０１１３】
次にステップＳ７８にて、１ページぶんのコマンドを全て送信し終えたか判定する。１ページぶんのコマンドを全て送信し終えていない場合は、ステップＳ７５に戻り、コマンドの送信を継続する。
【０１１４】
一方、１ページぶんのコマンドを全て送信し終えている場合は、ステップＳ７９にて、次の送信データ管理テーブル１１１が存在するか判定する。具体的には、次の送信データアドレス１１３がＮＵＬＬでない場合には、次の送信データ管理テーブル１１１が存在するので、ステップＳ８０にて現在の送信データ管理テーブルアドレスに次の送信データアドレス１１３を格納し、ステップＳ７３に戻る。
【０１１５】
一方、ステップＳ７９にて、次の送信データアドレス１１３がＮＵＬＬである場合には、次の送信データ管理テーブル１１１が存在しないので、ステップＳ８１にて、エラーが発生しているか判定する。エラーが発生している場合は、データ送信をやり直さなければならないため、ステップＳ８３に戻り、全ての送信データ管理テーブル１１１を削除し、ステップＳ７１に戻る。
【０１１６】
エラーが発生していない場合は、ステップＳ８２に進み、印刷が完了しているか判定する。印刷が完了している場合には、ステップＳ７１に戻る。印刷が完了していない場合には、ステップＳ７９に戻り、次の送信データ管理テーブル１１１が追加されるか、印刷が完了するか、あるいはエラーが発生するまでステップＳ７９からステップＳ８２の処理を繰り返す。
【０１１７】
ステップＳ７３にて、現在の送信データ管理テーブルの送信データ種別１１４が空きテーブルである場合は、現在の送信データ管理テーブルの次の送信データ管理テーブルの送信データを送信するべき場合であり、空きテーブルが使用できなくなるため、ステップＳ８４にて現在の送信データ管理テーブルアドレスに次の送信データアドレス１１３を格納し、ステップＳ８５にて現在の送信データ管理テーブル１１１すなわち空きのテーブルを削除してステップＳ７３に戻る。
【０１１８】
次に図１３を参照し、ランゲージモニタ５のステータス監視処理の詳細を説明する。図１３は、ＣＰＵ１５０１が、プリンタ７との通信処理を行い、ステータスを監視するための処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１５０１に実行させるためのプログラムは外部記憶装置１５０６からＲＡＭ１５０２にロードされているものとする。
【０１１９】
なお、ステータス監視処理は、データ受信処理、送信データ登録処理およびデータ送信処理と並行に動作する。
【０１２０】
ステータス監視処理が起動されるとまず、ステップＳ９１にて、プリンタステータスを取得する。具体的には、プリンタ７にステータス要求コマンドを送信し、プリンタ７がこれに応じて返信するプリンタステータスを受信する。プリンタステータスには少なくとも以下の情報が含まれる。
【０１２１】
・  プリンタ７がエラー状態であるか否か
・  ページ情報コマンドを受信可能であるか否か
・  画像データコマンドを受信可能であるか否か
・  印刷が完了したページのページ番号
次にステップＳ９２にて、エラーが発生しているか判定する。エラーが発生している場合には、ステップＳ９１に戻る。エラーが発生していない場合には、ステップＳ９３にて、印刷完了ページ番号が前回取得した値から変化したか判定する。印刷完了ページ番号が前回取得した値から変化していない場合はステップＳ９１に戻る。
【０１２２】
印刷完了ページ番号が前回取得した値から変化した場合は、ステップＳ９４にて、印刷が完了したページが表面であるか判定する。具体的には、印刷が完了した送信データ管理テーブル１１１の送信データ種別１１４が表面ページでない場合には、印刷が完了したページは表面ではないため、ステップＳ９８に進む。
【０１２３】
印刷が完了した送信データ管理テーブル１１１の送信データ種別１１４が表面ページである場合は、ステップＳ９５にて印刷が完了した送信データ管理テーブル１１１のシート管理テーブル１１３が指すシート管理テーブル１０１の未完了カウンタ１０６から１を減算する。
【０１２４】
次にステップＳ９６にて、未完了カウンタ１０６が０であるか判定する。未完了カウンタ１０６が０でない場合はステップＳ９８に進む。未完了カウンタ１０６が０である場合には、指定された部数の印刷が完了した場合なので、ステップＳ９７にて、印刷が完了した送信データ管理テーブル１１１のシート管理テーブル１１３が指すシート管理テーブル１０１を削除する。この際に、表面ページアドレス１０３が指すデータバッファ、および裏面ページアドレス１０４がＮＵＬＬでない場合には裏面ページアドレス１０４が指すデータバッファを解放する。次にステップＳ９８に進む。
【０１２５】
ステップＳ９８では、印刷が完了した送信データ管理テーブル１１１を削除し、ステップＳ９１に戻る。
【０１２６】
以上の処理により、両面印刷を行う場合に、印刷を行う順にページが送信されるので、両面印刷のための追加メモリを必要とすることなしに、片面印刷時と同じ容量のメモリにて両面印刷を行うことができる。
【０１２７】
［第２の実施形態］
上記第１の実施形態では、排紙先は常にフェースダウントレイであり、常に裏面を表面に先行して印刷していたが、これに代えて、操作者からフェースアップ排紙を指定された場合、あるいはプリンタ７の排紙先がレバー、またはパネルからの指定などによりフェースアップ排紙が指定されている場合には、表面を裏面に先行して印刷するようにしても良い。
【０１２８】
なお、第１の実施形態では、両面印刷時、一枚滞留または二枚滞留交互給紙にて印刷を行っていたが、これに代えて任意の方法、例えば二枚滞留非交互給紙（２、１、４、３…の順）または三枚滞留交互給紙（２、４、６、１、８、３、１０、５…の順）などにより両面印刷を行うようにしても良い。
【０１２９】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１３０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３２】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャート（機能構成）に対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１３３】
【図１】本発明の第１の実施形態に係るコンピュータ１、プリンタ７の機能構成を示すブロック図である。
【図２】プリンタ７の基本構成を示すブロック図である。
【図３】片面３ページのジョブを処理する際にＣＰＵ１５０１が参照するシート管理テーブルの構成例を示す図である。
【図４】両面６ページのジョブを処理する際にＣＰＵ１５０１が参照するシート管理テーブルの構成例を示す図である。
【図５】片面３ページのジョブを処理する場合に参照される送信データ管理テーブル１１１の構成例を示す図である。
【図６】両面６ページ（一枚滞留）のジョブを処理する場合に参照される送信データ管理テーブル１１１の構成例を示す図である。
【図７】２ページの送信データが登録されている状態における線形リストを示す図である。
【図８】４ページの送信データが登録されている状態における線形リストを示す図である。
【図９】６ページの送信データが登録されている状態における線形リストを示す図である。
【図１０】ＣＰＵ１５０１が、上記プリントコマンドを参照して図３，４に示すような線形リスト（シート管理テーブル群）を生成する処理のフローチャートである。
【図１１】ＣＰＵ１５０１が、上記プリントコマンドを参照して図７，８，９に示すような線形リスト（シート管理テーブル群）を生成する処理のフローチャートである。
【図１２】ＣＰＵ１５０１が、プリンタ７に印刷対象のデータを送信する処理のフローチャートである。
【図１３】ＣＰＵ１５０１が、プリンタ７との通信処理を行い、ステータスを監視するための処理のフローチャートである。
【図１４】二枚滞留交互給紙の両面印刷における、印刷順序とページの関係を示した表である。
【図１５】コンピュータ１の基本構成を示すブロック図である。
【図１】
2005332167.tif 000003
【図２】
2005332167.tif 000004
【図３】
2005332167.tif 000005
【図４】
2005332167.tif 000006
【図５】
2005332167.tif 000007
【図６】
2005332167.tif 000008
【図７】
2005332167.tif 000009
【図８】
2005332167.tif 000010
【図９】
2005332167.tif 000011
【図１０】
2005332167.tif 000012
【図１１】
2005332167.tif 000013
【図１２】
2005332167.tif 000014
【図１３】
2005332167.tif 000015
【図１４】
2005332167.tif 000016
【図１５】
2005332167.tif 000017