【事件の表示】
　特許第３３８０５９８号「両面印刷制御方法および印刷制御装置」の請求項１ないし３に係る特許に対する特許異議の申立てについて、次のとおり決定する。
【結　論】
　訂正を認める。
　特許第３３８０５９８号の請求項３に係る特許を取り消す。
　同請求項１ないし２に係る特許を維持する。
【理　由】
第１　手続の経緯
　本件の出願から本決定に至るまでの主な経緯は次のとおりである。
　・平成５年８月１８日　株式会社日立製作所より本件出願（特願平５−２０３９１１号、国内優先権主張　平成４年８月３１日）
　・平成１４年１２月１３日　特許第３３８０５９８号として設定登録（請求項１〜請求項３）
　・平成１５年８月２５日　特許異議申立人大木茂より、請求項１〜請求項３に係る発明についての特許に対して特許異議申立
　・平成１７年２月３日付け　当審にて取消理由通知
　・平成１７年４月１５日　譲渡による特許権移転登録申請書提出（株式会社日立製作所よりリコープリンティングシステムズ株式会社に権利譲渡）。
　・同日　特許権者（リコープリンティングシステムズ株式会社）より特許異議意見書及び訂正請求書提出（以下、この訂正請求による訂正を「本件訂正」という。）
　・平成１７年６月１日付け　当審にて訂正拒絶理由通知
　・平成１７年８月３日　特許権者より意見書提出
　
第２　訂正の可否の判断
　
１　訂正の内容
　
［訂正事項Ａ］
　特許請求の範囲の請求項１を、本件訂正前の
「受信した印刷データに基づいて用紙の複数ページの表面印刷と複数ページの裏面印刷とを順に行なって両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
　両面印刷文書の印刷データの末尾に両面印刷の終了を意味する両面印刷終了指定コマンドを付加し、該両面印刷終了指定コマンドを検出したとき、前記プリンタ内部に用紙が残留していれば、当該用紙を外部に排出して両面印刷を終了することを特徴とする両面印刷制御方法。」から
「受信した印刷データに基づいて用紙の複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行って両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
　両面印刷文書の印刷データの末尾に両面印刷の終了を意味する両面印刷終了指定コマンドを付加し、該両面印刷終了指定コマンドを検出したとき、最終ページが表面であれば、最終ページの裏面の白紙印刷を行った後で表面が未印刷の用紙の印刷を行い、最終ページが裏面であれば、表面が未印刷の用紙の印刷を行い、前記プリンタ内部に表面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了することを特徴とする両面印刷制御方法。」と訂正する。
　
［訂正事項Ｂ］
　特許請求の範囲の請求項２を、本件訂正前の
「表面（または裏面）が未印刷の用紙がプリンタ内部に複数枚残留しているとき、当該用紙について未印刷面の印刷を行った後、外部へ排出することを特徴とする請求項１記載の両面印刷制御方法。」から
「受信した印刷データに基づいて用紙の複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
　両面印刷文書の印刷データの末尾に両面印刷の終了を意味する両面印刷終了指定コマンドを付加し、該両面印刷終了指定コマンドを検出したとき、最終ページが表面であれば、裏面が未印刷の用紙の印刷を行った後で最終ページの裏面の白紙印刷を行い、最終ページが裏面であれば、裏面が未印刷の用紙の印刷を行い、前記プリンタ内部に裏面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了することを特徴とする両面印刷制御方法。」と訂正する。
　
［訂正事項Ｃ］
　特許請求の範囲の請求項３を、本件訂正前の
「受信した印刷データに基づいて用紙の複数ページの表面印刷と複数ページの裏面印刷とを順に行なって両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
　前記印刷データに、用紙裏面についての給紙部指定または排紙部指定があるとき、該用紙の裏面を白紙のまま出力するとともに、プリンタ内部に滞留する用紙を一旦すべて排出し、当該裏面ページを新たな表面ページとして印刷し、該新たな表面ページの用紙以降について前記給紙部指定または排紙部指定を有効にしたことを特徴とする両面印刷制御方法。」から
「受信した印刷データに基づいて用紙の複数ページの表面印刷と複数ページの裏面印刷の内の一方を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷と複数ページの裏面印刷の内の他方を行って両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
　前記印刷データに、用紙裏面についての給紙部指定または排紙部指定があるとき、該用紙の裏面を白紙のまま出力するとともに、プリンタ内部に滞留する用紙を一旦すべて排出し、当該裏面ページを新たな表面ページとして印刷し、該新たな表面ページの用紙以降について前記給紙部指定または排紙部指定を有効にしたことを特徴とする両面印刷制御方法。」と訂正する。
　
２　訂正目的の適否、新規事項追加の有無及び特許請求の範囲の拡張・変更の存否について
　
（１）訂正事項Ａの目的について
　本件訂正前の特許請求の範囲の請求項１には「用紙の複数ページの表面印刷と複数ページの裏面印刷とを順に行なって両面印刷を行う両面印刷機構」と記載されている。
　ところで、当該記載が、複数ページの表面印刷と複数ページの裏面印刷だけで両面印刷を行い得る両面印刷機構を意味するのか、複数ページの表面印刷（又は裏面印刷）の後、表面印刷と裏面印刷とを交互に行い、次いで複数ページの裏面印刷（又は表面印刷）がなされる両面印刷機構を意味するのか、或いは双方を包含するものであるのか、必ずしも明りようではない。
　そこで、願書に添付した明細書又は図面（以下、「特許明細書」という。）の記載を参酌すると次の記載がある。
　
ア　段落番号００１５〜００２２
「【課題を解決するための手段】上記目的を達成するため、本発明による印刷制御装置は、印刷コマンド列を発行する上位装置から受けた印刷コマンドを解釈、実行し、巡回型両面印刷機構付きプリンタに印刷を指示する印刷制御装置において、複数ページ分のページバッファと、該ページバッファに前記印刷コマンド列に応じて描画処理を行う描画処理部と、該描画処理部により描画されたページバッファの内容に基づいて印刷処理を行う印刷処理部とを備え、前記描画処理部はページ順に前記ページバッファに対して描画処理を行い、順次描画を終えたページについて前記印刷処理部を起動し、前記印刷処理部は、前記描画処理部からの起動に応じて、当該ページが前半印刷ページか後半印刷ページかを判別し、前半印刷用のページならば直ちに前半印刷を行い、後半印刷用のページならば当該印刷処理を後半印刷待ち状態とし、予め定めた後半印刷待ち状態の解除条件の検出に応じて、前記後半印刷待ち状態の印刷処理を当該待ち状態から解除し、印刷を行うようにしたものである。プリンタエンジン最大滞留枚数到達を、前記後半印刷待ち状態の解除条件として利用することができる。この場合、後半印刷ページ用の印刷タスクは、プリンタエンジン最大滞留枚数に達するまで、後半印刷待ち状態となる。後半印刷用の印刷タスクは、プリンタ内部の用紙滞留枚数の最大滞留枚数への到達を検出すると、後半印刷待ち状態にある先頭の印刷タスクを当該待ち状態から解除し、当該印刷タスクを待ち状態とする。また、上位装置からの両面印刷の終わりを示すコマンドの受信に基づく、文書終了ページの描画タスク部による検出を、前記後半印刷待ち状態の解除条件として利用することもできる。この場合、例えば、前記描画処理部は、両面印刷終了処理部を起動する。両面印刷終了処理部は、後半印刷待ち状態のタスクがあるか判定し、あれば後半印刷待ち状態のすべての印刷処理について、先頭から順に、当該後半印刷待ち状態から解除する。また、紙サイズ、給紙部、排紙部のいずれかの変更の検出を、前記後半印刷待ち状態の解除条件として利用することもできる。・・・この場合、例えば、上位装置からの印刷コマンド列に含まれる紙サイズ指定、給紙部指定、排紙部指定に応じて、紙サイズ、給紙部、排紙部のいずれかの変更の有無を前記描画処理部が検出し、制御テーブルに設定する。・・・印刷処理部は、該制御テーブルの内容を参照して、紙サイズ、給紙、排紙部のいずれかに変更があれば、後半印刷待ち状態にあるすべての印刷処理について先頭から順に当該後半印刷待ち状態から解除する。その後、本ページ用の印刷処理を後半印刷待ち状態に移す。そして、前記後半印刷待ち状態から解除された後半印刷ページ用の印刷タスクによる印刷をすべて実行した後、紙サイズ、給紙部、排紙部等の変更のあったページ以降の印刷を続行する。」
　
イ　段落番号００８３〜００８５
「図１２に、描画タスクと印刷タスクが両面印刷を並行処理する際の、描画順序と印刷順序の対応付けを示す。本図に示す順序で描画タスクが各ページバッファに順次描画を行う。印刷タスクは描画の完了したページバッファについて、本図に示す手順で印刷読出しを行う。・・・以下の説明においては、前半印刷を用紙裏面（偶数ページ）について、後半印刷を用紙表面（奇数ページ）について行うものと仮定する。逆の場合も、同様にして実現することができる。図１２の各例では、まず第１ページから順次各ページの描画を行う。第１、第３、第５ページ等の奇数ページ（表面）については印刷待ちとし、第２、第４、第６ページ等の偶数ページ（裏面）について順次印刷を行う。図１２の上半分の例では、３枚の用紙について、それぞれ第２、第４、第６ページの印刷を行ったとき、プリンタエンジン滞留枚数が３に達するので、次に、第１の用紙の表面ページである第１ページの印刷を行い、その用紙を排出する。これによりプリンタエンジン内に用紙の空きが生じるので、次の偶数ページ（第８ページ）が印刷される。これにより滞留枚数が再度３に達するので、第２の用紙の表面ページである第３ページが印刷されその用紙が排出される。以後、同様にして第１０ページ、第５ページ、第１２ページ、…と印刷されていく。原則として、奇数ページの印刷時にその用紙が排出される。図１２の下半分の例では、プリンタエンジン最大滞留枚数が５であるので、プリンタエンジンへの読みだしは、まず、第２、第４、第６、第８、第１０ページの全５ページ分について順次行われる。ここで、滞留枚数が５に達するので、次に、第１の用紙の表面ページ（第１ページ）が印刷される。これによりプリンタエンジン内に生じた１枚の用紙の空きを次の裏面ページ（第１２ページ）が埋める。続いて、第３ページ、第１４ページ、第１５ページ、…と印刷されていく。」
　
ウ　段落番号０１４４〜０１４７
「（７）両面印刷制御は、次のように行う。
（ａ）表面ページの印刷タスクは表面印刷待ちにし、裏面ページの印刷タスクは印刷を行う。これを繰り返す。
（ｂ）裏面ページを印刷して、「プリンタエンジン最大滞留枚数到達」を検出すると、表面印刷待ち行列（キュー）の先頭につながれている印刷タスクを１つはずし、本裏面ページ用の印刷タスクを表面印刷待ち行列の最後尾につなぐ。そして、待ち行列からはずされた表面ページ用の印刷タスクを印刷した後、次の裏面ページ用印刷タスクの処理に戻る。
（ｃ）表面ページ又は裏面ページ用の処理において、「紙サイズ変更」、「給紙部変更」、「排紙部変更」を検出すると、表面印刷待ち行列につながれている表面ページ用の印刷タスクをすべて本待ち行列からはずし、本ページ用の印刷タスクを表面印刷待ち行列につなぐ。そして、待ち行列からはずされた表面ページ用の印刷タスクをすべて印刷した後、変更のあったページ以降の印刷を続行する。」
　
エ　段落番号０１５３
「（ｇ）描画タスクによる文書の終りの検出に伴って起動された両面印刷終了タスクは、表面印刷待ち解除を行う。詳しくは、表面印刷待ち行列内の全印刷タスクの待ち状態からの解除と、表面印刷Ｐｏｓｔ待ちタスクの待ち解除を行う。」
　
　これらア〜エの記載に基づけば、特許明細書の発明の詳細な説明には、次の両面印刷機構が記載されている。
　・用紙の前半印刷用のページならば直ちに前半印刷を行い、後半印刷用のページならば後半印刷待ち状態とする。即ち、前半印刷用のページを複数枚連続して印刷する。
　・予め定めた後半印刷待ち状態の解除条件のうち、プリンタエンジン最大滞留枚数を検出すると、後半印刷待ち状態にある先頭の印刷タスクを待ち状態から解除して後半印刷用のページを一枚印刷し、両面印刷された用紙を排出する。その後、前半印刷用のページを一枚印刷すると、再びプリンタエンジン最大滞留枚数に到達するので、後半印刷待ち状態にある先頭の印刷タスクを待ち状態から解除して後半印刷用のページを一枚印刷し、両面印刷された用紙を排出する。これを繰り返すことによって、前半印刷用のページ及び後半印刷用のページを交互に印刷する。
　・予め定めた後半印刷待ち状態の解除条件のうち、両面印刷の終了を示すコマンド又は紙サイズ、給紙部若しくは排紙部の変更を検出すると、後半印刷待ち状態にある印刷タスクをすべて実行し印刷する。即ち、後半印刷用のページを複数枚連続して印刷する。
　しかしながら、複数ページの表面印刷と複数ページの裏面印刷だけで両面印刷を行い得る両面印刷機構については、特許明細書の発明の詳細な説明に記載されていない。
　そうすると、本件訂正前の特許請求の範囲の請求項１における「用紙の複数ページの表面印刷と複数ページの裏面印刷とを順に行なって両面印刷を行う両面印刷機構」との記載は、用紙の複数ページの裏面印刷（又は表面印刷）を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷（又は裏面印刷）を行って両面印刷を行う両面印刷機構を記載したものであるが、必ずしも記載が明りようでなかったと解するべきである。
　それ故、訂正事項Ａのうち、「受信した印刷データに基づいて用紙の複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行って両面印刷を行う両面印刷機構」とする訂正は、明りようでない記載の釈明を目的とするものである。また、当該訂正は、複数ページの裏面印刷から始める両面印刷機構と限定するものであるから、特許請求の範囲の減縮を目的とするものでもある。
　次いで、訂正事項Ａのうち「該両面印刷終了指定コマンドを検出したとき、最終ページが表面であれば、最終ページの裏面の白紙印刷を行った後で表面が未印刷の用紙の印刷を行い、最終ページが裏面であれば、表面が未印刷の用紙の印刷を行い、前記プリンタ内部に表面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了する」とする訂正は、最終ページが表面であれば最終ページの裏面の白紙印刷を行うこと、そして、プリンタ内部に残留する用紙の未印刷面を印刷した後に外部に排出することを両面印刷の終了手順に追加するものであるから、特許請求の範囲の減縮を目的とするものである。
　したがって、訂正事項Ａは、明りようでない記載の釈明及び特許請求の範囲の減縮を目的とするものである。
　
（２）訂正事項Ｂの目的について
　訂正事項Ｂのうち、「受信した印刷データに基づいて用紙の複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行う両面印刷機構」とする訂正は、前記（１）において述べた理由と同様の理由により、明りようでない記載の釈明及び特許請求の範囲の減縮を目的とするものである。
　また、訂正事項Ｂのうち、「該両面印刷終了指定コマンドを検出したとき、最終ページが表面であれば、裏面が未印刷の用紙の印刷を行った後で最終ページの裏面の白紙印刷を行い、最終ページが裏面であれば、裏面が未印刷の用紙の印刷を行い、前記プリンタ内部に裏面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了する」とする訂正は、最終ページが表面であれば最終ページの裏面の白紙印刷を行うこと、そして、プリンタ内部に残留する用紙の未印刷面を印刷した後に外部に排出することを両面印刷の終了手順に追加するものであるから、特許請求の範囲の減縮を目的とするものである。
　したがって、訂正事項Ｂは、明りようでない記載の釈明及び特許請求の範囲の減縮を目的とするものである。
　
（３）訂正事項Ｃの目的について
　訂正事項Ｃは、「受信した印刷データに基づいて用紙の複数ページの表面印刷と複数ページの裏面印刷の内の一方を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷と複数ページの裏面印刷の内の他方を行って両面印刷を行う両面印刷機構」と訂正するものであるが、前記（１）において述べた理由と同様の理由により、明りようでない記載の釈明を目的とするものである。
　　
（４）訂正事項Ａ〜Ｃの新規事項追加及び特許請求の範囲の拡張・変更について
　訂正事項Ａ〜Ｃは、それぞれ特許明細書における前記ア〜エ及び「両面印刷終了指定コマンド処理（２６３３）では、図２８に示すように、初めに当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０５）を参照しながら、判定する（２８１）。表面印刷を指定されている場合、次の２項目を実行する。（１）ページバッファリザーブマクロを、前記当該描画ページバッファ番号１の一つ前のページバッファと同じ紙サイズについて、発行する（２８２）。（２）印刷タスクを起動し、（１）で獲得したページバッファについての白紙印刷を行わせる（２８３）。（３）続いて、両面印刷終了タスクを起動し、本文書についての終了処理を実行させる（２８４）。」（段落番号０１５８〜０１６２）等の記載に基づくものであるから、特許明細書に記載した事項の範囲内でなされた訂正である。
　また、訂正事項Ａ及びＢは、特許明細書に記載された「本発明の第３の目的は、上記第３の問題点を解決し、巡回型両面印刷機構付きのプリンタを用いた両面印刷において、自由度の大きな両面印刷制御の方法と装置を提供することにある。」（段落番号００１４）という本件訂正前の請求項１又は請求項２に記載された事項によって構成される発明の具体的な目的の範囲内における技術的事項の減縮であるから、特許請求の範囲を実質上拡張又は変更するものではない。そして、明りようでない記載の釈明を目的とする訂正事項Ｃが、特許請求の範囲を実質上拡張又は変更するものではないことも明らかである。
　それ故、訂正事項Ａ〜Ｃは、特許請求の範囲を実質上拡張又は変更するものではない。
　
３．訂正の可否の判断の結論
　以上のとおりであるから、本件訂正は、特許法等の一部を改正する法律（平成６年法律第１１６号）附則第６条第１項の規定によりなお従前の例によるとされる、特許法第１２０条の４第３項において準用する平成６年法律第１１６号による改正前の特許法第１２６条第１項ただし書、第２項及び第３項の規定に適合するので、本件訂正を認める。
　
第３　特許異議申立についての判断
　
１　取消理由の骨子
　平成１７年２月３日付けで当審より通知した取消理由（以下、単に「取消理由」という。）の骨子は次のとおりである。
　
［取消理由１］
　請求項１乃至３の記載は、特許法第３６条第５項第１号又は第２号に規定する要件を満たしていないのであるから、請求項１〜３に係る発明の特許は取り消されるべきものである。
　
［取消理由２］
　請求項１及び２記載の発明は、特開平２−２１２１７８号公報（特許異議申立人が提出した甲第１号証。以下、「刊行物１」という。）記載の発明又は特開平４−１０６７号公報（特許異議申立人が提出した甲第４号証。以下、「刊行物４」という。）記載の発明と同一であるから、請求項１及び２に係る発明の特許は取り消されるべきものである。
　
［取消理由３］
　請求項１乃至３記載の発明は、刊行物１、特開平２−２２５０７０号公報（特許異議申立人が提出した甲第２号証。以下、「刊行物２」という。）、特開平１−１６０６６１号公報（特許異議申立人が提出した甲第３号証。以下、「刊行物３」という。）、刊行物４、特開昭６１−１８５４７０号公報（特許異議申立人が提出した甲第５号証。以下、「刊行物５」という。）及び特開平４−６２０７８号公報（特許異議申立人が提出した甲第６号証。以下、「刊行物６」という。）記載の発明から当業者が容易に想到できるものであるから、請求項１乃至３に係る発明の特許は取り消されるべきものである。
　
　そして、これら取消事由１〜３は、特許異議申立人が主張する特許異議の申立の理由すべてを含むものである。
　
２　本件発明の認定
　上記したとおり、本件訂正が認められるから、本件の請求項１乃至３に係る発明は、訂正請求書に添付された訂正明細書の特許請求の範囲の請求項１乃至３に記載されたとおりのものと認める（「第２　訂正の可否の判断」の「１　訂正の内容」を参照。以下、請求項番号に従い「本件発明１」、「本件発明２」、「本件発明３」という。）。
　
３　刊行物１記載の発明
　
（１）刊行物１の記載事項
　取消理由に引用された刊行物１には次の事項が記載されている。
　
オ　第２ページ左下欄１０行〜同欄１８行
「本発明の構成によると、両面モード設定下に於いて、例えば、１〜４ページ（以上）の制御用データがバッファ（データ記憶手段）に保存されている場合には、１ページ目（１枚目の第１面）のプリント動作終了後に、３ページ目（２枚目の第１面）のプリント動作を実行し、その後、２ページ目（１枚目の第２面）のプリント動作を、さらに、４ページ目（２枚目の第２面）のプリント動作を実行することができる。」
　
カ　第４ページ右上欄３行〜同欄１２行
「（２）ビットマップ制御部３０
　ビットマップ制御部３０は、・・・ホストコンピュータ等のデータ処理装置からのデータを一時的に保存するＲ−バッファ３０４、パケットに変換された内部コードを格納するＰ−バッファ３０５、パケットのページの区切りを管理するポインタを格納するＰＴ−バッファ３０９、・・・より構成される。」
　
キ　第５ページ右上欄４行〜同欄７行
「＊ＰＡＧＥ：両面印字モード時に於いて、両面プリント処理単位となる４ページの何ページ目の処理であるかを示す『論理ページ番号』を管理する変数．（初期値＝１）」
　
ク　第５ページ右上欄１５行〜同ページ左下欄３行
「＊ＢＡＣＫ：両面印字モード時に於いて、「論理ページ番号」の２ページ目の処理が、１ページ目の印字直後の処理であるか、３ページ目の印字後の処理であるかを示すフラグ．（初期値＝０）
　ＢＡＣＫ＝０→１ページ目の印字直後の処理、即ち、１→２と処理されたことを示す．
　ＢＡＣＫ＝１→３ページ目の印字後の処理、即ち、１→３→２（→４）と処理されたことを示す．」
　
ケ　第５ページ左下欄１８行〜同ページ右下欄７行
「第６図は、第５図の受信データ処理ルーチンの詳細を示すフローチャートである。本ルーチンでは、Ｒ−バッファ３０４内に一時的に保存されているホストからのデータを解析して、”パケット”と呼ばれる、より処理し易い内部コードに変換し、これをＰ−バッファ３０５に格納する。また、Ｐ−バッファ３０５からのページ単位でのデータ読出しを可能にするべく、読出しポインタ・・・をＰＴ−バッファ３０９に格納する。」
　
コ　第９ページ左下欄１５行〜同ページ右下欄９行
「＊両面解除指定
　読み出したパケットが、両面印字解除指定パケットである場合・・・は、ステップＳ３４１にすすみ、ＤＵＰＬＥＸをリセットする。また、両面印字モード時の各制御フラグ（ＰＡＧＥ、ＢＡＣＫ、ＲＦＰＭ）を初期化する（Ｓ３４３）。更に、再給紙ユニット５８内（に未排出の記録紙が存在すれば、そ）の記録紙を排紙トレイ９０に排出する（Ｓ３４４）。
＊文書終了
　読出したパケットが、文書終了パケットであると判定された場合・・・は、ステップＳ３４８に進み、再給紙ユニット５８内（に未排出の記録紙が存在すれば、そ）の記録紙を排紙トレイ９０に排出する。」
　
（２）刊行物１記載の発明
　「パケット」とは、ホストから受信したデータを内部コードに変換したものであるから、上記コの「読み出したパケットが、両面印字解除指定パケットである場合」とは、ホストから受信したデータが両面印字解除を意味するデータである場合のことである。
　したがって、これらオ〜コの記載を含む刊行物１の全記載及び図示からみて、刊行物１には、以下の発明が記載されているものと認める（以下、「刊行物１発明」という。）。
「受信したデータに基づいて複数ページの表面印刷を行い、次に表面が印刷された用紙に対して、複数ページの裏面印刷を行って両面印刷を行うプリンタ装置の両面印刷制御方法であって、
　前記受信したデータが両面印字解除を意味するデータである場合、再給紙ユニット内に未排出の記録紙が存在すれば、その記録紙を排紙トレイに排出する両面印刷制御方法。」
　
４　刊行物４記載の発明
　
（１）刊行物４の記載事項
　取消理由に引用された刊行物４には次の事項が記載されている。なお、記載中、丸印で囲まれた数字は〈１〉、〈２〉のように表記した。
　
サ　特許請求の範囲
「１１．中間トレイを内蔵した両面印刷機構付きプリンタを制御する両面印刷制御方法であって、
ａ）複数ページにわたる印刷データを受けて、順次各ページが表面か裏面かを判断し、
ｂ）表面であれば、当該ページの描画をページバッファに対して行うとともに、前記中間トレイを排紙部として当該描画内容の表面印刷を行い、
ｃ）裏面であれば、当該ページの描画をページバッファに対して行い、
ｄ）予め定めた条件が満足されるまで前記処理ａ）〜ｃ）を反復して実行し、
ｅ）前記条件が満足されたとき、前記処理ｃ）で描画された裏面ページに対応するページバッファの描画内容について、前記中間トレイに格納された用紙に対して当該中間トレイを給紙部として裏面印刷を行う
ことを特徴とする両面印刷制御方法。
１２．前記予め定めた条件は、印刷すべき文書の終了、最終ページバッファへの描画完了、前記中間トレイの満杯、紙サイズの変更のうちの少なくとも一つが検出されることである請求項１１記載の両面印刷制御方法。」
　
シ　第８ページ右下欄１４行〜第９ページ右上欄１９行
「両面印刷制御部１７は、初めに、ページ通しＮｏを０として、前記前半処理部１７１を起動する。前半処理部１７１は、ページ通しＮｏ更新部１７２によりページ通しＮｏを更新し、それの偶奇を奇数ページ・偶数ページ判定部１７３により判定し、奇数の場合、奇数ページ処理部１７４を起動する。奇数ページ処理部１７４は奇数ページについての描画を、改頁条件を検出するまで描画部１７４−１にて行った後、給紙部を中間トレイ以外の外部カセット、かつ排紙部を中間トレイとする用紙表面への印刷を、表面印刷用印刷処理起動部１７４−２を用いて起動する。・・・出来上がった用紙は、一旦中間トレイへ格納される。前記奇数ページ・偶数ページ判定部１７３にて偶数と判定された場合、偶数ページ処理部１７５を起動する。偶数ページ処理部１７５は偶数ページについての描画を改頁条件を検出するまで描画部１７５−１にて行う。偶数ページについての裏面印刷は後半処理部１７８にて後で行う。前半処理部１７１は、本実施例では〈１〉文書終了、〈２〉最終ページバッファへの描画完了、〈３〉中間トレイ満杯、〈４〉紙サイズ変更という４種類の前半処理終了条件のいずれかが成立するまで繰り返される。この前半処理終了条件が成立すると、前半処理を終了した後、後半処理部１７９を起動する。後半処理部１７８は、裏面印刷処理起動部１７Ａを起動することにより、前半処理部１７１にて描画のなされた各偶数ページに対応するページバッファ部１８の描画内容を入力して、給紙部を中間トレイ、かつ排紙部を中間トレイ以外の外部トレイとする用紙裏面への印刷を行う。この裏面印刷により、各用紙の表裏への両面印刷が終わる。後半処理部１７８は、前記ページバッファに描画されているすべての偶数ページ用の描画内容について、裏面印刷用印刷処理起動部１７Ａによる処理を行った後、印刷未完了ページ処理部１７Ｂを起動する。印刷未完了ページ処理部１７Ｂは、・・・最終ページのページ通しＮｏが奇数の場合に中間トレイに残存している用紙（表面印刷完了済み）の中間トレイから外部トレイへの排出処理を行う。」
　
ス　第３図（ｂ）
　第３図（ｂ）からは、「ホストコンピュータからプリンタコントローラへの送信コマンド列」において、その末尾に「文書終了指定用コマンド」が付加されており、奇数ページについてのみ給紙部指定用コマンド、排紙部指定用コマンド及び紙サイズ指定用コマンドが設定されていることが看取できる。
　
（２）刊行物４記載の発明
　これらサ〜スの記載及び図示を含む刊行物４の全記載及び図示からみて、刊行物４には、以下の発明が記載されているものと認める（以下、「刊行物４発明」という。）。
「中間トレイを内蔵した両面印刷機構付きプリンタを制御する両面印刷制御方法であって、
ａ）末尾に文書終了指定用コマンドが付加され、かつ、表面ページについてのみ給紙部指定用コマンド、排紙部指定用コマンド及び紙サイズ指定用コマンドが設定された複数ページにわたる印刷データを受けて、順次各ページが表面か裏面かを判断し、
ｂ）表面であれば、当該ページの描画をページバッファに対して行うとともに、前記中間トレイを排紙部として当該描画内容の表面印刷を行い、
ｃ）裏面であれば、当該ページの描画をページバッファに対して行い、
ｄ）印刷すべき文書の終了、最終ページバッファへの描画完了、前記中間トレイの満杯、紙サイズの変更のうちの少なくとも一つが検出されるという予め定めた条件が満足されるまで前記処理ａ）〜ｃ）を反復して実行し、
ｅ）前記条件が満足されたとき、前記処理ｃ）で描画された裏面ページに対応するページバッファの描画内容について、前記中間トレイに格納された用紙に対して当該中間トレイを給紙部として裏面印刷を行い、
ｆ）最終ページが表面の場合には、プリンタ内部に残存している表面印刷完了済みの用紙を外部に排出する両面印刷制御方法。」
　
５　刊行物２、刊行物３、刊行物５及び刊行物６の記載事項
　
（１）刊行物２の記載事項
　取消理由に引用された刊行物２には次の事項が記載されている。
　
セ　第３ページ左上欄３行〜同ページ左下欄６行
「次に第１図の動作について説明する。かかる構成において、両面プリントで下段給紙が指示された場合は、ホストコンピュータ１は作成した印字データを入力バッファメモリ２に送る。データ解析機能部３は印字データを解析し、制御コードで表面指定制御コードの場合、作成中のページをクローズし、クローズしたページが表か裏かをチェックする。そして、「裏」であった場合には、そのまま次の処理を行う。一方、「表」であった場合は、対応する裏ページを白紙として作成し、次のページが表面にプリントされる。例えば４ページ目の先頭で表面指定制御コードが解析されると、３ページ目の裏面にプリントされるべき４ページ目の印字データが５ページ目の表面にプリントされ、３ページの裏面は白紙となる。この処理が表面指定制御コード本来の機能である。しかし、この発明では本来の機能の他に給紙台を切り換える機能を付加しているため、表面指定制御コードによって表面に印字するように指示されている文字コードをページバッファメモリ４へ書き込むと同時に、これに付随して当該ページの給紙台切換えフラグを上段にし、印字データの解析を継続して行う。次に表面にプリントする印字データを解析した段階で当該ページの給紙台切換えフラグを下段にしてページバッファメモリ４へ書き込む。・・・これにより、従来は給紙台を切り換える専用の制御コードによって給紙台を切り換えていたものが、表面指定制御コードのみで上段から記録紙が給紙され、その次のページは再び下段から給紙される。このため、章の区切り、部門の区切り等を色紙で印字することが専用の給紙制御コードなしで印字することができる。」
　
（２）刊行物３の記載事項
　取消理由に引用された刊行物３には次の事項が記載されている。なお、記載中、丸印で囲まれた数字は〈１〉、〈２〉のように表記した。
　
ソ　第２ページ左下欄１７行〜同ページ右下欄４行
「両面印刷プリンタ１の動作の概略は次の通りである。給紙機構５２により印刷部５３に供給された用紙は、その裏面に印刷を行われたのち用紙転送路５７に送られる。このようにして、５枚の用紙の裏面印刷が連続的に行われる。裏面印刷済みの用紙は、用紙反転器５８によって裏面を反転された後、印刷部５３へ戻されて表面の印刷が行われ、スタッカ６０へ送り出される。」
　
タ　第４ページ右上欄４行〜同欄６行
「その印刷ページ順は〈２〉→〈４〉→〈６〉→〈８〉→〈１０〉→〈１〉→〈３〉→〈５〉→〈７〉→〈９〉→〈１２〉→〈１４〉→…となる。」
　
（３）刊行物５の記載事項
　取消理由に引用された刊行物５には次の事項が記載されている。
　
チ　第１ページ右下欄１行〜第２ページ左上欄９行
「〔従来の技術〕・・・両面印刷のできる印刷装置でも、あらかじめ作成されているページを、最初は表面ページだけを印刷し、次に残る裏面ページを連続して印刷していた。・・・第１３図は従来の両面印書制御を説明する模式図で、（ａ）は外部装置より入力される入力データ、（ｂ）は印書するためのプリントデータで、奇数ページ１、３、５、７、９に続き偶数ページ２、４、６、８、１０ページ等のページが指定されている。（ｃ）はページバッファメモリに格納される各ページの入力データを示している。・・・タイミングｔ０の時点は、既に１０ページ分の入力データがページバッファに記憶されている状態で、タイミングｔ１の時点で、１７ページ以降のページデータが入力されている最中で、１７ページ以降のページデータがページバッファに順次格納されて行く。タイミングｔ２は２０ページ目のページデータがページバッファに格納された時点で、プリントデータ（ｂ）が奇数ページから順次指定される。」
　
ツ　第２ページ右上欄末行〜同ページ左下欄７行
「〔作用〕この発明においては、入力データの書き込みに並行して、入力データを偶数または奇数ページに分割した管理データを作成して行き、この管理データを参照しながらページバッファに書き込まれた入力データを偶・奇交互あるいは非同期に記録紙滞留手段と同期させながら順次画像形成部に転送させるものである。」
　
テ　第１２図
　第１２図からは、プリントデータとして、「１、３、５、７、９」と奇数ページを連続して指定した後、「２、１１、４、１３、６、１５、８、１７、１０、１９、１２」と奇数ページと偶数ページを交互に指定し、次の奇数ページである「２１」が未だページバッファに格納されていないときには、「２１」ではなく偶数ページである「１４」を指定し、次いで「２１、１６」を指定すること、そして、次の奇数ページである「２３」が再びページバッファに格納されていないときには、「２３」ではなく偶数ページである「１８」を指定し、次いで「２３、２０」と指定することが看取できる。
　
（４）刊行物６の記載事項
　取消理由に引用された刊行物６には次の事項が記載されている。なお、記載中、丸印で囲まれた数字は〈１〉、〈２〉のように表記した。
　
ト　第４ページ左下欄１９行〜同ページ右下欄５行
「〈２〉特定コマンドが排紙口指定コマンドである場合
　特定コマンドが排紙口指定コマンドである場合の制御フトーチヤートを第６図に示す。フエースアツプ排紙を行うような排紙口指定コマンドを受領した場合、フラツパ１２を矢印ａ方向に移動すべくフラツパソレノイド（不図示）をＯＮする。」
　
ナ　第８ページ左上欄６行〜同欄１８行
「指定された排紙口の指定を行う排紙口指定コマンドを有効とすることにより機能の追加、性能の向上が図れた。例えば、予給紙待期中でも排紙口の変更が可能なため、画像展開に時間を要した時の設定変更に有効である。また、前述と同様シエアしてプリンタを使用（共用）した場合も同様に、ホストコンピユータに対応する排出口に変更可能であるため、第１のホスト処理が長びいた場合、予給紙された記録紙に第２のホストがプリントし、その専用の排紙口へ変更して排出し、しかる後に再度第１のホスト用に排紙口を再設定して予給紙するようなことも可能となる。」
　
６　本件発明１について
　
（１）新規性及び進歩性について
　本件発明１と刊行物１発明を比較すると、両者は少なくとも以下の点で相違する。
［相違点１］
　本件発明１は、複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行って両面印刷を行うプリンタの両面印刷制御方法であるのに対して、刊行物１発明は、複数ページの表面印刷を行い、次に表面が印刷された用紙に対して、複数ページの裏面印刷を行って両面印刷を行うプリンタの両面印刷制御方法である点。
　
　また、本件発明１と刊行物４発明を比較すると、両者は少なくとも以下の点で相違する。
［相違点２］
　本件発明１は、複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行って両面印刷を行うプリンタの両面印刷制御方法であるのに対して、刊行物４発明は、印刷すべき文書の終了、最終ページバッファへの描画完了、前記中間トレイの満杯、紙サイズの変更のうちの少なくとも一つが検出されるという予め定めた条件が満足されるまで、中間トレイを排紙部として表面印刷を行い、前記予め定めた条件が検出されたときは、前記中間トレイに格納された用紙に対して裏面印刷を行うプリンタの両面印刷制御方法である点。
　
　上記相違点１又は相違点２は、刊行物１又は４に記載されているに等しい事項ではないから、本件発明１は、刊行物１発明又は刊行物４発明と同一ではない。
　また、刊行物２、刊行物３、刊行物５及び刊行物６のいずれにも「複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行って両面印刷を行うプリンタの両面印刷制御方法」は記載されていないのであるから、本件発明１が、刊行物１乃至刊行物６記載の発明から当業者が容易に想到できたものであるということはできない。
　
（２）記載不備について
　特許異議申立人は、請求項１における「両面印刷終了指定コマンドを検出したとき」が、印刷処理のどのようなタイミングであるのか不明りょうであると主張する（特許異議申立書第３ページ２３行〜第４ページ９行）。しかしながら、「・・・とき」とひらがな書きをする場合は必ずしも時点という限定した意味ではなく、「・・・場合」と同じように条件という意味で用いられることが多い。特許明細書においても、「上位装置からの両面印刷の終わりを示すコマンドの受信に基づく、文書終了ページの描画タスク部による検出を、前記後半印刷待ち状態の解除条件として利用することもできる。」（段落番号００１８）と記載されているように、両面印刷終了指定コマンドの検出を条件として記載している。したがって、本件訂正後の請求項１の「両面印刷終了指定コマンドを検出したとき」の「とき」も、「場合」と同じく、条件という意味で使用されたものである。
　また、特許異議申立人は、本件訂正前の請求項１における「前記プリンタ内部に用紙が残留していれば、当該用紙を外部に排出して両面印刷を終了する」との記載は、印刷して排出するのか、印刷しないで排出するのか不明であり、前者であれば同じことを別の表現で繰り返しているだけであり、何ら技術的な構成がないことになるし、後者であればその技術的な意味がわからないと主張する（特許異議申立書第４ページ１０行〜第５ページ３行）。しかしながら、「前記プリンタ内部に表面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了する」と訂正されたことにより、未印刷面を印刷して排出することが明確になった。そして、未印刷面を印刷することは両面印刷終了手順の一つであるから、技術的な意味がないということはできない。
　
（３）まとめ
　以上のとおり、本件発明１は、刊行物１発明又は刊行物４発明と同一であるとも、刊行物１乃至刊行物６記載の発明に基づいて当業者が容易に発明をすることができたものであるともいうことはできない。また、本件訂正後の請求項１が、発明の詳細な説明に記載した発明を記載したものではないとも、発明の構成に欠くことのできない事項のみを記載したものではないともいうことはできない。
　
７　本件発明２について
　
（１）新規性及び進歩性について
　本件発明２と刊行物１発明を比較すると、両者は少なくとも以下の点で相違する。
［相違点３］
　本件発明２は、複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行うプリンタの両面印刷制御方法であるのに対して、刊行物１発明は、複数ページの表面印刷を行い、次に表面が印刷された用紙に対して、複数ページの裏面印刷を行って両面印刷を行うプリンタの両面印刷制御方法である点。
　
　また、本件発明１と刊行物４発明を比較すると、両者は少なくとも以下の点で相違する。
［相違点４］
　本件発明２は、複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行うプリンタの両面印刷制御方法であるのに対して、刊行物４発明は、印刷すべき文書の終了、最終ページバッファへの描画完了、前記中間トレイの満杯、紙サイズの変更のうちの少なくとも一つが検出されるという予め定めた条件が満足されるまで、中間トレイを排紙部として表面印刷を行い、前記予め定めた条件が検出されたときは、前記中間トレイに格納された用紙に対して裏面印刷を行うプリンタの両面印刷制御方法である点。
　
　上記相違点３又は相違点４は、刊行物１又は４に記載されているに等しい事項ではないから、本件発明２は、刊行物１発明又は刊行物４発明と同一ではない。
　また、刊行物２、刊行物３、刊行物５及び刊行物６のいずれにも「複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行うプリンタの両面印刷制御方法」は記載されていないのであるから、本件発明２が、刊行物１乃至刊行物６記載の発明から当業者が容易に想到できたものであるということはできない。
　
（２）記載不備について
　本件訂正後の請求項２に記載した「両面印刷終了指定コマンドを検出したとき」の「とき」が、「場合」と同じく、条件という意味で使用されたものであることは前記６（２）に記載したとおりである。また、本件訂正により、未印刷面の印刷が両面印刷終了手順の一つであることが明確となったこと、そして、未印刷面を印刷することに技術的な意味がないということはできないことも前記６（２）に記載したとおりである。
　さらに特許異議申立人は、本件発明２では、「両面印刷が１００ページである場合には、１、３…９９ページを印刷し、その後で２、４、６…１００ページを印刷することになるが、そのような多ページの両面印刷をも含む構成についての記載は明細書には存在しない。」と主張する（特許異議申立書第６ページ６行〜同ページ１０行）。しかしながら、本件発明２は、用紙の複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行うものであるから、例えば、中間トレイといった片面印刷済みの用紙をプリンタ内部に大量に保有する構成がなくとも、多数ページの両面印刷を行うことは可能である。
　
（３）まとめ
　以上のとおり、本件発明２は、刊行物１発明又は刊行物４発明と同一であるとも、刊行物１乃至刊行物６記載の発明に基づいて当業者が容易に発明をすることができたものであるともいうことはできない。また、本件訂正後の請求項２が、発明の詳細な説明に記載した発明を記載したものではないとも、発明の構成に欠くことのできない事項のみを記載したものではないともいうことはできない。
　
８　本件発明３について
　特許異議申立人は、請求項３における「プリンタ内部に滞留する用紙を一旦すべて排出し」との記載は、用紙裏面を印刷しないで排出することを意味するものであるが、そのような記載は特許明細書に記載されていないと主張する（特許異議申立書第７ページ１７行〜第８ページ５行）。
　確かに、特許明細書の発明の詳細な説明には、「プリンタエンジン部１２０内の用紙を一旦すべて排出する。」という、本件訂正後の請求項３と同様の記載が存在する（下記ニの記載参照。下線は当審が付した。）。
　
ニ　段落番号０１０５〜０１０６
「両面印刷排出フラグ１４１３がとる値を、以下のように定める。本フラグは３ビットのデータで表わす。
０：両面印刷時排出不要
０以外：両面印刷時排出要
ビット０：給紙部変更フラグとして利用
ビット１：排紙部変更フラグとして利用
ビット２：紙サイズ変更フラグとして利用
なお、本両面印刷排出フラグ１４１３は、３ビット構成としたので、給紙部変更、排紙部変更、紙サイズ変更が同時発生した場合に、いずれの要因が発生しているかを検出できる。本両面印刷排出フラグ１４１３の値が０以外の場合、印刷制御装置１１０は
プリンタエンジン部１２０内の用紙を一旦すべて排出する。
　
　しかしながら、上記記載ニにおける「プリンタエンジン部１２０内の用紙を一旦すべて排出する」のは、「両面印刷排出フラグ１４１３の値が０以外の場合」である。そして、両面印刷排出フラグの値が０以外の場合（両面印刷排出フラグＯＮの場合と同意である。）には、表面印刷待ち行列内の全タスクを先頭から順に、表面印刷待ち状態から解除することしか特許明細書には記載されていない（下記ヌ及びネの記載参照。）。
　
ヌ　段落番号０１９２〜０１９３
「当該印刷ページバッファ番号用の両面印刷排出フラグ１４１３がＯＮか判定する（３５３１）。ＯＮならば、両面印刷排出フラグＯＮに伴う、表面印刷可能タスクの待ち解除（３５３２）を行う。・・・ステップ３５３１の判定の後、印刷タスクは表面印刷待ちマクロを発行し、本タスクを表面印刷待ち状態に移す（３５３５）。」
　
ネ　段落番号０２１０
「図３６を用いて、両面印刷排出フラグＯＮに伴う、表面印刷可能タスクの待ち解除（３５３２）の手順を説明する。まず、表面印刷待ち行列内に待ちタスクがあるか判定する（３６１）。あれば、・・・本表面印刷待ち行列内の全タスクを先頭から順に、表面印刷待ち状態から解除する（３６２）。」
　
　また、表面印刷待ち行列内の全タスクを先頭から順に、表面印刷待ち状態から解除したならば、これら印刷タスクがすべて実行され、未印刷面が印刷されることしか特許明細書には記載されていない（前記ア〜エの記載参照。）。
　そうすると、上記ニにおける「両面印刷排出フラグ１４１３の値が０以外の場合、印刷制御装置１１０はプリンタエンジン部１２０内の用紙を一旦すべて排出する。」との記載は、特許明細書の発明の詳細な説明の他の記載を参酌すると、「両面印刷排出フラグ１４１３の値が０以外の場合、印刷制御装置１１０はプリンタエンジン部１２０内の用紙を、未印刷面を印刷してすべて排出する。」と解するべきであり、決して、用紙の未印刷面を印刷せずに排出することを意味するものではない。
　これに対して、本件訂正後の請求項３には両面印刷排出フラグに関する記載がないのであるから、「プリンタ内部に滞留する用紙を一旦すべて排出し」との記載を、用紙の未印刷面を印刷した後で排出するものと限定的に解する理由はない。それ故、本件訂正後の請求項３は、プリンタ内部に滞留する用紙を印刷せずに排出することも含むものである。特許権者も「請求項１における「排出」とは「印刷して排出」と「印刷しないで排出」の両方を意味します。」（平成１７年４月１５日付け特許異議意見書第４ページ４行〜同ページ５行）と主張する。
　特許権者は、用紙の未印刷面を印刷せずに排出することが発明の詳細な説明に記載されている根拠として、「理由は、原則的には「印刷して排出」するのですが、例えば何らかのエラーが発生した場合には用紙を残留させないために「印刷しないで排出」することがあるからです。用紙の残留を問題視することについては、例えば段落番号０００５や段落番号００１３に記載されております。エラー発生時の処理方式については、例えば段落番号０２４７乃至０３１６に記載されております。これをもって、請求項１における「排出」の意味についての疑問点は解消するものと思料致します。」（平成１７年４月１５日付け特許異議意見書第４ページ５行〜同ページ１１行）と主張する。
　しかしながら、段落番号０００５及び段落番号００１３の記載はプリンタ内に用紙が滞留し続けるという課題を、また、段落番号０２４７乃至０３１６の記載は紙なしエラー時の処理方式をそれぞれ記載したにすぎず、未印刷面の用紙を印刷せずに排出するとの記載は存在しない。しかも後者では、「両面印刷では紙なしが発生した場合、プリンタエンジン内に滞留されている用紙については印刷可能（表面ページについての後半印刷）であるため、
印刷を実行し、該滞留用紙を排出する。
　よって、特許権者の上記主張を採用することはできない。
　してみると、本件訂正後の請求項３は、プリンタ内部に滞留する用紙裏面を印刷せずに排出することまで包含する記載となっているが、特許明細書の発明の詳細な説明には、給紙部指定又は排紙部指定がある場合に、プリンタ内部に滞留する用紙を印刷せずに排出することは記載されていない。
　したがって、本件訂正後の請求項３は、発明の詳細な説明に記載した発明を記載したものということはできず、特許法第３６条第５項に規定する要件を満たしていない。
　
第４　むすび
　以上のとおり、特許異議の申立ての理由によっては本件発明１及び本件発明２についての特許を取り消すことはできない。他方、本件発明３についての特許は、特許法第３６条第５項に規定する要件を満たさないものとして拒絶の査定をしなければならない特許出願に対してされたものである。
　よって、特許法等の一部を改正する法律（平成６年法律第１１６号）附則第１４条の規定に基づく、特許法等の一部を改正する法律の施行に伴う経過措置を定める政令（平成７年政令第２０５号）第４条第２項の規定により、結論のとおり決定する。
【異議決定日】
平成１７年９月１３日（２００５．９．１３）
【訂正の要旨】
審決（決定）の【理由】欄参照。
（５４）【発明の名称】
両面印刷制御方法および印刷制御装置
（５７）【特許請求の範囲】
　【請求項１】受信した印刷データに基づいて
用紙の複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行なって
　両面印刷文書の印刷データの末尾に両面印刷の終了を意味する両面印刷終了指定コマンドを付加し、該両面印刷終了指定コマンドを検出したとき
、最終ページが表面であれば、最終ページの裏面の白紙印刷を行った後で表面が未印刷の用紙の印刷を行い、最終ページが裏面であれば、表面が未印刷の用紙の印刷を行い
前記プリンタ内部に表面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了する
　【請求項２】受信した印刷データに基づいて
用紙の複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行なって
　両面印刷文書の印刷データの末尾に両面印刷の終了を意味する両面印刷終了指定コマンドを付加し、該両面印刷終了指定コマンドを検出したとき
、最終ページが表面であれば、裏面が未印刷の用紙の印刷を行った後で最終ページの裏面の白紙印刷を行い、最終ページが裏面であれば、裏面が未印刷の用紙の印刷を行い
前記プリンタ内部に裏面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了する
　【請求項３】受信した印刷データに基づいて
用紙の複数ページの表面印刷と複数ページの裏面印刷の内の一方を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷と複数ページの裏面印刷の内の他方を行なって
　前記印刷データに、用紙裏面についての給紙部指定または排紙部指定があるとき、該用紙の裏面を白紙のまま出力するとともに、プリンタ内部に滞留する用紙を一旦すべて排出し、当該裏面ページを新たな表面ページとして印刷し、該新たな表面ページの用紙以降について前記給紙部指定または排紙部指定を有効にしたことを特徴とする両面印刷制御方法。
【発明の詳細な説明】
　【０００１】
　【産業上の利用分野】本発明は、印刷制御に係り、特に両面印刷機構付きのページプリンタ（レーザプリンタ、ＬＥＤ（液晶ダイオード）プリンタ、ＬＣＳ（液晶シャッタ）プリンタ等）の両面印刷制御方法に関する。
　【０００２】
　【従来の技術】近年、１枚の用紙の表面および裏面に別のページ内容を印刷する両面印刷が普及している。このような両面印刷機構付きのページプリンタ用の制御装置としては、特開平１−１６０７３１号公報、特開平４−１０６７号公報、特開平４−７１７４号公報に記載のものが挙げられる。１枚の用紙の表面と裏面に印刷されるページサイズは同一でなければならない。
　【０００３】また、特開平２−６３８７０号公報には、特殊な両面印刷として、用紙の表面および裏面にそれぞれ複数ページ分の印字情報を一括して記録するプリンタが開示されている。
　【０００４】
　【発明が解決しようとする課題】用紙の各面に１頁分のデータを印刷する従来の両面印刷を行う印刷制御装置においては、用紙の表面と裏面で紙サイズを変えた場合、印刷が中止されるか、またはプリンタ内に別サイズ用紙が混入し、プリンタエラーが発生する。このため、印刷ができなくなるという問題があった。
　【０００５】また、印刷制御装置が一つの文書についてのみ文書データ（印刷コマンド列で構成され、印刷データとも呼ぶ）を受信し、該文書データが表面または裏面ページのうちいずれか一方のページで終わっているような場合、該文書の最終ページが明示されていないため、最終ページを含む１ページ以上のページがプリンタ内に滞留し続けるという現象が発生する。この場合、次の文書データを印刷制御装置が受信するまで、ユーザが第一の文書全体についての両面印刷結果を入手できないという問題が生じる。さらに、一定時間以上用紙がプリンタ内に滞留すると、プリンタの機構によっては、プリンタエラー（紙ジャムその他）が発生するという問題もあった。
　【０００６】また、前記従来技術は、中間トレイ方式の両面印刷機構を主に対象としたものであるため、図３と図４に示すような巡回型両面印刷機構については、十分な考慮がなされていなかった。従って、巡回型両面印刷機構を用いる場合、従来技術と同等かそれ以上の自由度の両面印刷制御を行うことができないという問題があった。
　【０００７】具体的には、以下に示す項目について配慮がなされておらず、より自由度が大きくユーザにとって使い易い両面印刷機能を提供できなかった。
　【０００８】（１）１文書内で用紙毎に紙サイズや印刷部数を変える機能。さらに、ページ毎に紙サイズや印刷部数を変える機能。
　【０００９】（２）紙サイズ、印刷部数、紙縦横方向、給紙部、排紙部等を裏面印刷において指定した場合の処理の仕様と手順。特に、表面と裏面とで、紙サイズ、印刷部数、紙縦横方向等について論理的な一貫性が崩れた場合に、印刷が停止することなく、印刷を続行するための仕様と手順。
　【００１０】（３）印刷制御装置において、（ａ）プリンタエンジン最大滞留枚数到達、（ｂ）文書終了、（ｃ）紙サイズ変更、（ｄ）給紙部、排紙部変更、（ｅ）前半印刷用紙の巡回完了等を検出した場合の処理手順。巡回型両面印刷機構を用いた両面印刷では、初めに用紙の裏面または表面について給紙パス１と排紙パス２についての印刷（前半印刷と呼ぶ）を行った後、用紙の表面または裏面について給紙パス２と排紙パス１についての印刷（後半印刷と呼ぶ）を行う。「前半印刷用紙の巡回完了」とは、前半印刷が終了した用紙がプリンタエンジン内を巡回し終わり、次に後半印刷を給紙パス２について行うことが可能になった状態のことをいう。
　【００１１】（４）印刷部数が２以上のマルチページコピーの処理手順。特に、プリンタエンジン最大滞留枚数を越える場合についてのマルチページコピーの処理手順。
　【００１２】本発明の第１の目的は、上記第一の問題点を解決し、用紙の表面と裏面で紙サイズや印刷部数の異なる場合の印刷を可能にすることである。
　【００１３】本発明の第２の目的は、上記第２の問題点を解決し、プリンタ内に用紙が滞留し続けるという前述の現象をなくすことにある。
　【００１４】本発明の第３の目的は、上記第３の問題点を解決し、巡回型両面印刷機構付きのプリンタを用いた両面印刷において、自由度の大きな両面印刷制御の方法と装置を提供することにある。
　【００１５】
　【課題を解決するための手段】上記目的を達成するため、本発明による印刷制御装置は、印刷コマンド列を発行する上位装置から受けた印刷コマンドを解釈、実行し、巡回型両面印刷機構付きプリンタに印刷を指示する印刷制御装置において、複数ページ分のページバッファと、該ページバッファに前記印刷コマンド列に応じて描画処理を行う描画処理部と、該描画処理部により描画されたページバッファの内容に基づいて印刷処理を行う印刷処理部とを備え、前記描画処理部はページ順に前記ページバッファに対して描画処理を行い、順次描画を終えたページについて前記印刷処理部を起動し、前記印刷処理部は、前記描画処理部からの起動に応じて、当該ページが前半印刷ページか後半印刷ページかを判別し、前半印刷用のページならば直ちに前半印刷を行い、後半印刷用のページならば当該印刷処理を後半印刷待ち状態とし、予め定めた後半印刷待ち状態の解除条件の検出に応じて、前記後半印刷待ち状態の印刷処理を当該待ち状態から解除し、印刷を行うようにしたものである。
　【００１６】プリンタエンジン最大滞留枚数到達を、前記後半印刷待ち状態の解除条件として利用することができる。
　【００１７】この場合、後半印刷ページ用の印刷タスクは、プリンタエンジン最大滞留枚数に達するまで、後半印刷待ち状態となる。後半印刷用の印刷タスクは、プリンタ内部の用紙滞留枚数の最大滞留枚数への到達を検出すると、後半印刷待ち状態にある先頭の印刷タスクを当該待ち状態から解除し、当該印刷タスクを待ち状態とする。
　【００１８】また、上位装置からの両面印刷の終わりを示すコマンドの受信に基づく、文書終了ページの描画タスク部による検出を、前記後半印刷待ち状態の解除条件として利用することもできる。
　【００１９】この場合、例えば、前記描画処理部は、両面印刷終了処理部を起動する。両面印刷終了処理部は、後半印刷待ち状態のタスクがあるか判定し、あれば後半印刷待ち状態のすべての印刷処理について、先頭から順に、当該後半印刷待ち状態から解除する。
　【００２０】また、紙サイズ、給紙部、排紙部のいずれかの変更の検出を、前記後半印刷待ち状態の解除条件として利用することもできる。
　【００２１】また前半印刷用紙の巡回完了の検出を、前記後半印刷待ち状態の解除条件に加えることもできる。
　【００２２】この場合、例えば、上位装置からの印刷コマンド列に含まれる紙サイズ指定、給紙部指定、排紙部指定に応じて、紙サイズ、給紙部、排紙部のいずれかの変更の有無を前記描画処理部が検出し、制御テーブルに設定する。描画処理部は、前記紙サイズ、給紙部、排紙部のいずれかの変更の検出時に、用紙の表面ペ−ジ用の印刷データはあるが、対応する裏面ページは印刷データがない白紙の用紙が検出されるか判定する。本判定がＹｅｓであれば、裏面用の白紙印刷を実現するため、描画処理部は白紙の裏面ページ用の印刷タスクの起動とペ−ジバッファの獲得を行う。印刷処理部は、該制御テーブルの内容を参照して、紙サイズ、給紙、排紙部のいずれかに変更があれば、後半印刷待ち状態にあるすべての印刷処理について先頭から順に当該後半印刷待ち状態から解除する。その後、本ページ用の印刷処理を後半印刷待ち状態に移す。そして、前記後半印刷待ち状態から解除された後半印刷ページ用の印刷タスクによる印刷をすべて実行した後、紙サイズ、給紙部、排紙部等の変更のあったページ以降の印刷を続行する。
　【００２３】前記後半印刷待ち状態の各種解除条件は、併用することができる。
　【００２４】
　【作用】本発明によれば、用紙の表面と裏面で紙サイズを変えても、裏面ページ用の印刷タスクの起動とページバッファの獲得を行うことにより、裏面ページを白紙のままとし、変更後の紙サイズを表面ページとして印刷を続行することができる。従って、用紙の表面と裏面で紙サイズの異なる印刷を実現することができる。
　【００２５】また、上位装置から受信した両面印刷文書の終わりを描画処理部が検出し、本検出に基づいて起動された両面印刷終了処理部が、プリンタエンジン内の前半印刷済みの残留用紙を排出し、本文書についての両面印刷を終えることができる。
　【００２６】さらに、前記手順を実行することにより、（ａ）一文書内または用紙毎に紙サイズを変えた場合、（ｂ）その変更により用紙の表面と裏面で論理的一貫性が崩れた場合、（ｃ）プリンタエンジン最大滞留枚数、文書終了、紙サイズ変更、給紙部変更、排紙部変更等を検出した場合のいずれについても、両面印刷を支障なく続行することができる。
　【００２７】その他、１枚の用紙の表面と裏面とで印刷部数の異なる印刷データ、あるいは紙縦・横方向が異なる印刷データに対しても、本発明により対処することができる。
　【００２８】
　【実施例】以下、本発明の実施例について詳細に説明する。初めに、図１と図２の構成図を用いて本発明における印刷システムの構成を説明する。
　【００２９】図１に示すように、本印刷システムは、ホストコンピュータ１００、印刷制御装置１１０、及び巡回型両面印刷機構付きのプリンタエンジン部１２０からなる。
　【００３０】印刷制御装置１１０は、ホスト通信制御部１１１、コマンドバッファ部１１２、コマンド処理部１１３、ページバッファ制御部１１４、ページバッファ部１１５、及び及びプリンタ制御部１１６からなる。
　【００３１】ホストコンピュータ１００が送信した印刷コマンドはホスト通信制御部１１１が受信し、コマンドバッファ部１１２へ格納される。以後、印刷コマンドを単にコマンドと呼ぶこともある。コマンドバッファ部１１２内のコマンドはコマンド処理部１１３により処理され、その実行結果である文字、図形、イメージ等の描画データは、ページバッファ部１１５へ格納される。ページバッファ部１１５内のデータは、プリンタ制御部１１６が読出し、プリンタエンジン部１２０が受信できる形式の信号に変換して、プリンタエンジン部１２０へ出力される。プリンタエンジン部１２０は入力ざれた信号に従って、用紙面上への印刷を電子写真メカニズム、ワイヤドット印刷メカニズム等を用いて行う。
　【００３２】本実施例では両面印刷制御を行うため、ホストコンピュータ１００内に、片面・両面印刷指定コマンド発行部１０１、両面印刷終わり指定コマンド発行部１０２、給紙部指定コマンド発行部１０３、排紙部指定コマンド発行部１０４、紙サイズ指定コマンド発行部１０５、紙縦横方向指定コマンド発行部１０６、印刷部数指定コマンド発行部１０７を設けた。また、印刷制御装置１１０との通信を行うための通信制御部１０８も有する。１０１から１０７の各部は、印刷制御装置１１０に対して片面印刷／両面印刷、両面印刷の終わり、給紙部、排紙部、紙サイズ、紙縦横方向、印刷部数を指定するために、各々片面・両面印刷指定コマンド、両面印刷終わり指定コマンド、給紙部指定コマンド、排紙部指定コマンド、紙サイズ指定コマンド、紙縦横方向指定コマンド、印刷部数指定コマンドを発行する。
　【００３３】コマンド処理部１１３は、描画処理部１１３１、印刷処理部１１３２、両面印刷終了処理部１１３３を有する。また、ページバッファ制御部１１４はページバッファ管理テーブル部１１４１を有し、プリンタ制御部１１６はプリンタ管理テーブル部１１６１を有する。これらのテーブルの詳細については後述する。
　【００３４】本実施例では、印刷制御装置１１０内のコマンド処理部１１３、ページバッファ制御部１１４、及びプリンタ制御部１１６に、両面印刷制御のための仕組みを設けた。まず、図２に示すように、コマンド処理部１１３内の描画処理部１１３１（タスクとして実現するため描画タスク部とも呼ぶ）に、コマンド解釈部２０１、片面・両面印刷指定コマンド処理部２０２、両面印刷終了指定コマンド処理部２０３、給紙部指定コマンド処理部２０４、排紙部指定コマンド処理部２０５、紙サイズ指定コマンド処理部２０６、紙縦横方向指定コマンド処理部２０７、印刷部数指定コマンド処理部２０８、改頁処理部２０９を設けた。２０１から２０９の各部の処理手順は、図２６から図３４の通りであり、後で詳しく説明する。
　【００３５】また、コマンド処理部１１３内の印刷処理部１１３２（後述するようにタスクとして実現するため印刷タスク部とも呼ぶ）に、両面印刷指定判定部２１０、表面印刷指定判定部２２０、表面印刷用前処理部１（２３０）、表面印刷用前処理部２（２４０）、裏面印刷用前処理部２５０、印刷マクロ発行部２６０、プリンタエンジン滞留枚数更新部２７０、両面印刷紙なしエラー処理部２８０、マルチページコピー用後処理部２９０を設けた。ここで、表面印刷用前処理部１（２３０）は、両面印刷排出フラグ判定部２３１、プリンタエンジン滞留枚数判定部２３２、表面印刷待ち／解除部２３３、両面印刷排紙フラグＯＮに伴う表面可能タスク待ち解除部２３４、プリンタエンジン滞留枚数到達に伴う表面印刷可能タスク待ち解除部２３５、マルチページコピー用印刷タスク間同期制御部２３６とで構成した。また、表面印刷用前処理部２（２４０）は、プリンタエンジン滞留枚数判定部２４１、マルチページコピー用印刷タスク間同期制御部２４２とで構成した。また裏面印刷用前処理部（２５０）は、プリンタエンジン滞留枚数判定部２５１、両面印刷排紙フラグＯＮに伴う表面可能タスク待ち解除部２５２、プリンタエンジン最大滞留枚数到達に伴う表面印刷可能タスク待ち解除部２５３とで構成した。印刷タスク部１１３２を構成する各部の処理手順は、図３６から図４５の通りであり、後で詳しく説明する。
　【００３６】また、コマンド処理部１１３内に両面印刷終了処理部１１３３（タスクとして実現するため両面印刷終了タスク部とも呼ぶ）を設け、前述の両面印刷終了コマンド処理部が本タスクを起動するようにし、本タスクが両面印刷の終了処理を実行することにより、従来技術における第２の問題点を解決できるようにした。両面印刷終了処理部１１３の処理手順は、図３５の通りであり、後述する。
　【００３７】本印刷制御装置１１０では、両面印刷制御を、次の２項目を達成できるように、実現した。
　【００３８】（１）片面印刷制御方式からのプログラム変更を極力減らすため、コマンド受信と描画処理は片面印刷制御装置と極力同一とし、両面印刷制御は主に印刷処理にて行う。
　【００３９】（２）後半印刷用の描画が遅れた場合、そのページ用の後半印刷を待たせるための機構がプリンタエンジン部１２０になくても対応可能な方式とする。
　【００４０】ホストコンピュータ１００が印刷制御装置１１０に送信する印刷コマンド列の例を、図５を用いて説明する。
　【００４１】本印刷コマンド列は、文書先頭部５００、第１ページ部５１０、第２ページ部５２０、第３ページ部５３０、…、文書終了部５４０からなる。文書先頭部５００は属性パラメータを初期化するためのリセットコマンド５０１、及び片面／両面印刷のいずれかを指定するための片面・両面印刷指定コマンド等からなる。
　【００４２】第１ページ部５１０と第２ページ部５２０と第３ページ部５３０は、第１ページから第３ページの描画、印刷内容を指定するための各種属性パラメータの設定コマンド（５１１〜５１４、５１６、５１７、５２４、５２Ａ）と、各種描画コマンドの列（５１５、５１８、５２５、５２Ｂ、５３５、５３８）とページ区切りを示すための改頁コマンド（５１９、５２９、５３９）とからなる。
　【００４３】文書終了部５４０には、両面印刷の場合少なくとも両面印刷終了指定コマンド５４１を配置し、本文書の終りを明示する。
　【００４４】本例では、前述の属性パラメータの設定コマンドとして紙サイズ指定コマンド５１１、印刷部数指定コマンド５１２、文字種類指定コマンド５１３、文字サイズ指定コマンド（５１４と５２４）、線幅指定コマンド５１６、線種指定コマンド５１７と塗り潰しパターン指定コマンド５２Ａを示したが、描画や印刷に関する任意の属性パラメータを、各種属性パラメータの設定コマンドを用いて設定することができる。
　【００４５】また本例では描画コマンドとして、文字列の描画を指示するための文字コード列（５１５と５２５と５３５）と、円弧描画コマンド（５１８と５３８）と、多角形塗り潰しコマンド５２Ｂを示したが、任意の文字、図形、イメージの描画を本描画コマンドを用いて指定することができる。また、ページ区切りを明示的に示す改頁コマンド（５１９、５２９、５３９）を各ページ区切りに配置したが、本改頁コマンドの代わりに、ページ区切りを暗黙的に示すようにしてもよい。暗黙的なページ区切りの例としては、紙サイズ指定コマンド、印刷部数指定コマンド、印字方向（ポートレート／ランドスケープ）指定コマンド、自動改頁等がある。自動改頁とは、ページ長を越える行についての文字描画を指定した場合に、印刷制御装置が（ａ）ページ長の範囲での１ページ分の印刷と（ｂ）次ページへのページ長を越えた分の印刷を行うための機構である。
　【００４６】図６と図７に両面印刷に関する各種印刷条件指定用コマンドの仕様を示す。図では、コマンド名称と、そのコマンドの引数と、そのコマンドの機能と、引数の指定エラーの判定条件を示すデータエラー判定条件と、引数の初期値とを示している。コマンドには、片面・両面印刷指定、紙サイズ指定、印刷部数指定、紙縦横方向指定、印字方向指定の各コマンド（以上、図６）と、給紙部指定、排紙部指定、両面印刷終了指定の各コマンド（以上、図７）がある。
　【００４７】図８に、用紙表面と用紙裏面への各種印刷条件指定時の処理仕様を示す。すなわち、給紙部指定、排紙部指定、紙サイズ指定、印刷部数指定、紙縦横方向指定の各指定について、表面の場合と裏面の場合の仕様を示している。図示のように、本実施例では、表面および裏面の双方にすべての指定を許可している。但し、表面の指定内容と矛盾する指定が裏面に指定されている場合には、その用紙の裏面を白紙のまま排出し、裏面ページを次の用紙の表面ページとして印刷する等の処理を行う。
　【００４８】次に図９を用いて、印刷制御装置１１０のハードウェア構成を説明する。
　【００４９】印刷制御装置１１０は、ＣＰＵバス９１、ホスト通信コントローラ９２、ＣＰＵ９３、ＲＯＭ９４、ユーザ操作パネル９５、サブＣＰＵ９６、プリンタメモリコントローラ９７及びＲＡＭ９８からなる。
　【００５０】ＣＰＵバス９１は、ＣＰＵ９３の各種入出力信号（アドレス信号、データ信号、その他の制御信号）からなる。
　【００５１】ＣＰＵ９３は本ＣＰＵバス９１を介して、９２、９６、９７等の周辺コントローラや９４、９８等のメモリと入出力を行う。
　【００５２】ホスト通信コントローラ９２は、印刷制御装置１１０がホストコンピュータ１００と、ホストＩ／Ｆと呼ぶＩ／Ｆに従って通信を行うためのコントローラである。本通信（ホストＩ／Ｆ）の物理Ｉ／ＦとしてはＳＣＳＩ（Ｓｍａｌｌ　Ｃｏｍｐｕｔｅｒ　ＳｙｓｔｅｍＩｎｔｅｒｆａｃｅ）、ＲＳ２３２Ｃ、ＲＳ４２２、ＧＰ−ＩＢ（Ｇｅｎｅｒａｌ　Ｐｕｒｐｏｓｅ　Ｉｎｔｅｒｆａｃｅ　Ｂｕｓ）、セントロニクス、ＨＤＬＣ（Ｈｉｇｈ−Ｌｅｖｅｌ　Ｄａｔａ　ＬｉｎｋＣｏｎｔｒｏｌ），Ｅｔｈｅｒｎｅｔ等を用い、使用する物理Ｉ／Ｆの種類に応じて本コントローラ９２のハードウェア論理として適切なものを実装する。
　【００５３】ＲＯＭ９４には印刷制御装置１１０の初期化立上げプログラム（ＩＰＬ（Ｉｎｉｔｉａｌ　Ｐｒｏｇｒａｍ　Ｌｏａｄｉｎｇ）プログラムとも呼ぶ）と文字フォントの一部を格納する。
　【００５４】ＲＡＭ９８には（ａ）本印刷制御装置１１０の制御プログラム、（ｂ）文字フォントの残り、（ｃ）コマンドバッファ部メモリ、（ｄ）ページバッファ部メモリ、及び（ｅ）ページバッファ管理テーブル、プリンタ管理テーブル、タスク管理テーブル等の各種管理テーブル、その他を格納する。これらのうち（ａ）と（ｂ）は前記ＩＰＬプログラムにてホストコンピュータ１００からダウンロードすることにより、格納する。また（ａ）と（ｂ）はＲＡＭ９８に格納せず、ＲＯＭ９４に予め格納しておいてもよい。また逆にＲＯＭ９４には文字フォントを一切格納せず、すべてＲＡＭ９８に格納してもよい。
　【００５５】サブＣＰＵ９６は、ＣＰＵ９３の指示に従い、ユーザ操作パネル９５やプリンタエンジン部１２０との間で入出力処理を行う。
　【００５６】プリンタメモリコントローラ９７はＲＡＭ９８の内容（通常ページバッファ部の内容）のプリンタエンジン部１２０への読出し処理、及びＲＡＭ９８がＤＲＡＭの場合、ＤＲＡＭメモリの制御（リフレッシュ等）を行う。本読出し処理は内蔵のＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）機能を用いて行う。紙面一ペ−ジ分のデ−タのペ−ジバッファ部からの読出しが終了した時点で、プリンタメモリコントローラ９７がＣＰＵ９３に対し割込み信号（ＣＰＵバス９１内の信号の一部）をアサートし、ＣＰＵによるページバッファ読出し終了割込み処理を起動する。
　【００５７】印刷制御装置１１０は、プリンタエンジン部１２０との間で、サブＣＰＵ９６が信号線９０２−１を介し、プリンタメモリコントローラ９７が信号線９０２−２を介して、プリンタエンジンＩ／Ｆと呼ぶＩ／Ｆに従って、通信を行う。
　【００５８】プリンタメモリコントローラ９７は、信号線９０２−２を用いて、プリンタエンジン部１２０がシャトルプリンタの場合には、ページバッファ部の内容を形式変換した後、プリンタエンジン部１２０へ出力する。またプリンタエンジン部１２０がレーザプリンタの場合には、プリンタメモリコントローラ９７は、信号線９０２−２を用いて、ページバッファ部の内容をパラレルシリアル変換した後、プリンタエンジン部１２０へ出力する。
　【００５９】信号線９０２−１は、プリンタエンジン部１２０がシャトルプリンタの場合には、プリンタエンジン部１２０からページ先頭位置を示すための信号等を受信するために用いる。またプリンタエンジン部１２０がレーザプリンタの場合には、本信号線９０２−１は、サブＣＰＵ９６がプリンタエンジン部１２０へ問合せや指示のためのコマンドを送信し、プリンタエンジン部１２０から応答ステータスを受信するためのコマンド、ステータス送受信信号及び、前記ページバッファ部の内容のプリンタエンジン部１２０への読出し手順を制御するための制御信号を搬送するために用いる。
　【００６０】次に図１０を用いて印刷制御装置１１０のソフトウェア構成を説明する。本図に示すように、ソフトウェアは、モニタ部１０１０とタスク処理部１０２０とから構成される。モニタ部１０１０は、カ−ネル部１０１１、ホスト通信制御部１０１２、コマンドバッファ制御部１０１３、ファイル制御部１０１４、ペ−ジバッファ制御部１０１５、プリンタ制御部１０１６とコマンドバッファ部１１２とペ−ジバッファ部１１５とから構成される。
　【００６１】カ−ネル部１０１１は、割込み制御プログラムのメインル−チン、ス−パバイザコ−ル（ＳＶＣと略す）制御のメインル−チン、タスク制御部、及びタイマ制御部とからなる。
　【００６２】ホスト通信制御部１０１２は、ホストコンピュ−タ１００と印刷制御装置１１０の間で各種コマンドの授受を行う。例えば、ホストコンピュ−タ１００から印刷コマンド列を受信したり、印刷制御装置１１０内で発生した各種事象（エラ−発生、頁印刷終了、文書印刷終了等）をホストコンピュ−タ１００へ報告したりする。
　【００６３】コマンドバッファ制御部１０１３は、コマンドバッファ部１１２についての書き込みと読み出しを行う際に用いる書き込みスタ−トポインタ、書き込みエンドポインタ、読み出しポインタ等の制御を行う。
　【００６４】本コマンドバッファ制御部１０１３をホスト通信制御部１０１２が用いて、印刷コマンドをコマンドバッファ部１１２へ格納する。また同じくコマンドバッファ制御部１０１３を用いて、後述するタスク処理部１０２０内の描画タスク部１０２１がコマンドバッファ部１１２の内容を読み出し、処理する。
　【００６５】ファイル制御部１０１４は印刷制御装置内の二次記憶装置に属する各ファイルを制御するための部分であり、各ファイル内デ−タのアクセスのための制御や、ファイルを構成するファイル実体（複数個のブロックの集合）の管理等を行う。タスク処理部１０２０内の各タスクは本ファイル制御部１０１４内のファイル制御用の各種ＳＶＣ機能を用いて、ファイルの制御を行う。なお本ファイル制御部１０１４がなくても、両面印刷制御を支障なく行うことができるが、本ファイル制御部１０１４によりシステムの性能と使い勝手を向上させることができる。
　【００６６】ペ−ジバッファ制御部１０１５は複数ペ−ジ構成のペ−ジバッファ部１１５についての空き管理（獲得、解放の管理）を行う。本空き管理を用いることで、ペ−ジバッファへの描画書き込みが必要になった時点で、紙サイズに対応して定まる必要なだけのペ−ジバッファを獲得し、描画内容の読み出しが終った時点で該ペ−ジバッファを解放することができる。
　【００６７】プリンタ制御部１０１６はプリンタエンジン部１２０とプリンタエンジンアダプタ（サブＣＰＵ９６やプリンタメモリコントローラ９７）の空き管理や、プリンタエンジン部１２０との入出力の制御を行う。
　【００６８】タスク処理部１０２０は、描画タスク部１０２１と印刷タスク部１０２２とその他のタスクの処理部１０２３とからなる。印刷制御装置１１０に実装したタスクの一覧を図１１に示す。本図には、タスク番号、タスクの名称、システム（Ｓ）／ユーザ（Ｕ）タスクの別、タスクの機能、優先度等を、各タスク毎に示した。
　【００６９】印刷タスク部１０２２（図１０）は、印刷タスク１（１０２２１）、印刷タスク２（１０２２２）、…、印刷タスクＮ（１０２２３）とからなる。各印刷タスクｎは、描画タスクがペ−ジバッファ部１１５への描画を終了した時点で、該描画タスクにより起動される。起動された各印刷タスクｎは、描画の終了した各ペ−ジバッファ（紙面１ペ−ジ分）についての印刷処理を実行する。本印刷処理は、プリンタ制御部１０１６に対し、プリンタ制御用の各種ＳＶＣ命令を発行することにより実行する。印刷タスクは別々のペ−ジについて並行処理するため、複数個用意する。用意する印刷タスクの合計数は、本装置内で同時に並行処理しうる印刷タスク数の最大値とした。本実施例では、任意の時点で、プリンタエンジン部１２０の給紙部から排紙部までの間に存在しうる最大紙数分の印刷タスクを用意した。この数はプリンタエンジン部１２０の仕様によって増減する。
　【００７０】本ソフトウェア構成における各部の処理内容は、両面印刷制御用に拡張した点以外、本発明の出願人が先に出願した特願平１−１６４６３７号や特願平１−２８２７４７号の場合と同様である。つまり、図１１に示した複数個のタスクを並行処理し、印刷スループットを向上させることができる。
　【００７１】なおコマンドバッファ部１１２とペ−ジバッファ部１１５は、モニタ部１０１０にもタスク処理部１０２０にも属さないメモリ部分としてとらえてもよい。
　【００７２】図１０のソフトウェア構成に示した各部分は、図９のハ−ドウェア構成図内の各部分に次のように対応づけられる。
　【００７３】（１）モニタ部１０１０（コマンドバッファ部１１２とペ−ジバッファ部１１５を除く）のプログラムは、ＣＰＵ９３用のＲＯＭ９４叉はＲＡＭ９８に格納し、ＣＰＵ９３にて実行する。
　【００７４】（２）コマンドバッファ部１１２とペ−ジバッファ部１１５はＲＡＭ９８に配置する。
　【００７５】（３）タスク処理部１０２０内の各処理部、つまり描画タスク部１０２１、印刷タスク１（１０２２１）、印刷タスク２（１０２２２）、…、印刷タスクＮ（１０２２３）、及びその他のタスク処理部１０２３用のプログラムは、ＲＡＭ９８叉はＲＯＭ９４に格納し、ＣＰＵ９３にて実行する。
　【００７６】また図１と図２の構成図内の各部分は、図１０のソフトウェア構成の各部分に、次のように対応づけられる。
　【００７７】（１）図１のホスト通信制御部１１１は図１０ホスト通信制御部１０１２に対応。
　【００７８】（２）図１のコマンドバッファ部１１２とページバッファ部１１５は、図１０の同一名称部分に対応。
　【００７９】（３）図１のコマンド処理部１１３は図１０のタスク処理部１０２０内のコマンド処理に関係するタスク部に対応。
　【００８０】（４）図１と図２の描画処理部（描画タスク部）１１３１は、図１０の描画タスク部１０２１に対応。
　【００８１】（５）図１と図２の印刷処理部（印刷タスク部）１１３２は、図１０の印刷タスク部１０２２に対応。
　【００８２】（６）図１の両面印刷終了処理部１１３３は、図１０のその他のタスクの処理部１０２３に対応。
　【００８３】図１２に、描画タスクと印刷タスクが両面印刷を並行処理する際の、描画順序と印刷順序の対応付けを示す。本図に示す順序で描画タスクが各ページバッファに順次描画を行う。印刷タスクは描画の完了したページバッファについて、本図に示す手順で印刷読出しを行う。本図の上側は、ページバッファメモリ総数が１０、プリンタエンジン最大滞留枚数が３の場合、下側は、ページバッファメモリ総数が８、プリンタエンジン最大滞留枚数が５の場合、についてのものであるが、他の場合についても同様である。以下の説明においては、前半印刷を用紙裏面（偶数ページ）について、後半印刷を用紙表面（奇数ページ）について行うものと仮定する。逆の場合も、同様にして実現することができる。
　【００８４】図１２の各例では、まず第１ページから順次各ページの描画を行う。第１、第３、第５ページ等の奇数ページ（表面）については印刷待ちとし、第２、第４、第６ページ等の偶数ページ（裏面）について順次印刷を行う。図１２の上半分の例では、３枚の用紙について、それぞれ第２、第４、第６ページの印刷を行ったとき、プリンタエンジン滞留枚数が３に達するので、次に、第１の用紙の表面ページである第１ページの印刷を行い、その用紙を排出する。これによりプリンタエンジン内に用紙の空きが生じるので、次の偶数ページ（第８ページ）が印刷される。これにより滞留枚数が再度３に達するので、第２の用紙の表面ページである第３ページが印刷されその用紙が排出される。以後、同様にして第１０ページ、第５ページ、第１２ページ、…と印刷されていく。原則として、奇数ページの印刷時にその用紙が排出される。
　【００８５】図１２の下半分の例では、プリンタエンジン最大滞留枚数が５であるので、プリンタエンジンへの読みだしは、まず、第２、第４、第６、第８、第１０ページの全５ページ分について順次行われる。ここで、滞留枚数が５に達するので、次に、第１の用紙の表面ページ（第１ページ）が印刷される。これによりプリンタエンジン内に生じた１枚の用紙の空きを次の裏面ページ（第１２ページ）が埋める。続いて、第３ページ、第１４ページ、第１５ページ、…と印刷されていく。図１３に両面印刷における描画タスクと印刷タスクの並行処理の動作概要を示す。図中のＰ１，Ｐ２，…はページ通し番号を示す。また、印刷部数が１、プリンタエンジン最大滞留枚数が５の場合についての動作手順を示すが、その他の場合についても同様である。
　【００８６】（１）描画タスク部１１３１はコマンドバッファ部１１２から印刷コマンド列を順に読み出し、ページバッファ部１１５へ描画を行っていく。描画が完了すると表面・裏面印刷の設定をページバッファ管理テーブル部１１４１に行い、描画の完了したページバッファについて順次印刷タスクを起動する。起動された複数の印刷タスクは実行待ちキュー（図示せず）に接続され、ディスパッチャにより順次ＣＰＵが割り当てられ実行される。図では、図示の都合上、描画タスクは印刷タスクと同時に実行されているように示したが、実際には、印刷タスクによるＣＰＵ処理量は多くなく例えば図の印刷タスクの「印刷」時等の生じる空き時間に描画タスクが実行される。
　【００８７】（２）印刷タスクのうち、表面ページ（Ｐ１，Ｐ３，Ｐ５，…）用の印刷タスクは、表面・裏面印刷切り替え条件の一つであるプリンタエンジン最大滞留枚数に達するまで、後述する表面印刷待ちマクロを発行することにより、表面印刷待ちキューに接続され、待ち状態となる（図１３の左下参照）。表面印刷待ちマクロの処理では、本マクロ発行タスクを表面印刷待ち状態に移した後、タスクディスパッチャを起動し、裏面ページ用の印刷タスクへ制御を移す。
　【００８８】（３）表面ページ用の印刷タスクで、前記表面・裏面印刷切り替え条件の一つであるプリンタエンジン滞留枚数のプリンタエンジン最大滞留枚数への到達を検出すると、表面印刷待ち解除マクロと表面印刷待ちマクロを発行する。表面印刷待ち解除マクロは、表面印刷待ち状態にある先頭の印刷タスクを待ち状態から解除する。表面印刷待ちマクロは、前述の処理を行う。
　【００８９】（４）印刷タスクのうち、裏面ページ（Ｐ２，Ｐ４，Ｐ６，…９用の印刷タスクは、本裏面ページに対応する描画済みページバッファの内容を読み出し、印刷を行う。
　【００９０】（５）以上の手順を繰り返すことにより、Ｐ１、Ｐ３、……、Ｐ９用の印刷タスクは表面印刷待ちとなり、Ｐ２、Ｐ４、…、Ｐ１０用の印刷タスクは裏面印刷を行う。そして、Ｐ１１用の印刷タスクの処理において、プリンタエンジン内の滞留する用紙の数がプリンタエンジン最大滞留枚数に達するため、表面印刷待ち解除マクロと表面印刷待ちマクロの発行を行う。該表面印刷待ち解除マクロは、表面印刷待ち状態の先頭にあるＰ１用の印刷タスクを待ち状態から解除する。その結果、Ｐ１が印刷される。
　【００９１】（６）以後、Ｐ１２の印刷、Ｐ１３の表面印刷待ち、表面印刷待ち状態の先頭印刷タスク（Ｐ３）の待ち状態からの解除、Ｐ３の印刷というようにして、両面印刷が続行される。
　【００９２】（７）前記表面・裏面印刷切り替え条件としては、プリンタエンジン最大滞留枚数到達検出の他に、文書終了、紙サイズ変更、給紙部、排紙部変更、前半印刷用紙の巡回完了の検出等がある。
　【００９３】なお、本図のような描画タスクと印刷タスクの並行処理動作は、描画タスクと印刷タスクが、図１４から図２５に示す管理テーブルを参照しながら、図２６から図４５の処理手順を実行することにより実現する。図１４〜図１８は各種ページバッファ管理テーブルを示し、図１９〜図２５は各種プリンタ管理テーブルを示す。
　【００９４】図１４から図１８を用いて、ページバッファ管理テーブル部１１４１の内容を説明する。本管理テーブルは、複数ページからなるページバッファ部１１５への描画タスクによる書き込みと印刷タスクによる読み出しにおいて、ページバッファ部の使用に遊び時間を生じさせず、またページバッファ部への各タスクによるアクセス順序に誤りを生じさせないために用いる。
　【００９５】図１４にページバッファ管理テーブル部１１４１の全体構成を示す。このテーブルは、全ページバッファ用共通情報と、各ページバッファ用情報とからなる。全ページバッファ用共通情報としては、次に描画タスクが書き込むべきページバッファＮｏ．（当該描画ページバッファＮｏ．と呼ぶ）と、次に印刷タスクが読み出すべきページバッファＮｏ．（当該印刷ページバッファＮｏ．と呼ぶ）と、現在印刷出力中のページバッファＮｏ．、各ページバッファ０、１、…、Ｎ−１の先頭アドレス、描画部用ワークメモリアドレス、ページバッファサイズ、印刷条件現在値、ページバッフ総面数Ｎ、コマンド未解決情報等を記述する。
　【００９６】このうち、印刷条件現在値は各ページバッファについて描画タスクが印刷条件を設定する際のデフォルト値を格納するために用いる。
　【００９７】また、各ページバッファ用情報としては、ページバッファ毎に、タスク関連情報、印刷条件、プリンタメモリコントローラ設定情報を記述する。これらの情報の内容をそれぞれ、図１５から図１７に示す。また、コマンド未解決情報の内容を図１８に示す。
　【００９８】図１５のタスク関連情報１５００は、そのページの描画および印刷の状態を記述する。すなわち、本ページを使用中の描画タスク番号１５０１、本ページを使用中の印刷タスク番号１５０２、本ページを空き待ち中のタスクへの前向きポインタ１５０３、本ページを空き待ち中のタスクへの後向きポインタ１５０４からなる。
　【００９９】図１６の印刷条件１４００は、給紙部コード１４０１、排紙部コード１４０２、紙サイズコード１４０３、紙縦横コード１４０４、片面・両面印刷指定１４０５、表面・裏面印刷指定１４０６、印刷ページ通し番号１４０７、総印刷部数１４０８、現在印刷部数１４０９、総白紙印刷部数１４１０、現在白紙印刷部数１４１１、印字方向（ポートレイト／ランドスケープ）１４１２、両面印刷排出フラグ１４１３、描画エラー処理モード１４１４、文字展開モード１４１５を有する。
　【０１００】図１７のプリンタメモリコントローラ設定情報１７００は、動作可能／動作中／故障中の別を示すプリンタメモリコントローラ状態１７０１、コントロールレジスタ状態１７０２、ページ先頭アドレス１７０３、レフトマージンドット数Ｌｍ１７０４、ライトスキップロングワード数Ｒｍ１７０５、トップマージンドット数Ｔｍ１７０６、紙サイズ幅ロングワード数Ｗｘ１７０７、紙サイズ高さドット数Ｄｙ１７０８、ステータスレジスタ状態１７０９からなる。
　【０１０１】図１８のコマンド未解決情報は、未解決フラグ、未解決コマンド開始アドレス、未解決コマンド終了アドレスからなる。
　【０１０２】以上のページバッファ管理テーブル１１４１の内容は、基本的に本出願人による前述の特願平１−１６４６３７号や特願平１−２８２７４７号の場合と同様であるが、本発明では印刷条件を図１６のように拡張した。つまり、総白紙印刷部数１４１０と現在白紙印刷部数１４１１と両面印刷排出フラグ１４１３と追加するとともに、片面印刷の場合にもあったが、未使用だった片面・両面印刷指定コード１４０５と表面・裏面印刷指定コード１４０６を使用するようにした。
　【０１０３】このうち総白紙印刷部数１４１０と現在白紙印刷部数１４１１は、用紙の表面と裏面で印刷部数が不一致の場合でも印刷を続行できるようにするために設けた。両面印刷排出フラグ１４１３は、前記表面・裏面印刷切り替え条件のうち、給紙部変更、排紙部変更、紙サイズ変更のいずれかを描画タスクが検出した場合に、印刷タスクに連絡するために設けた。
　【０１０４】片面・両面印刷指定コード（１４０５）は、各ページが片面印刷と両面印刷のいずれかを記述するために設け、表面・裏面印刷指定コード（１４０６）は、各ページが表面印刷と裏面印刷のいずれかを記述するために使用する。
　【０１０５】両面印刷排出フラグ１４１３がとる値を、以下のように定める。本フラグは３ビットのデータで表わす。
　【０１０６】０：両面印刷時排出不要
０以外：両面印刷時排出要
ビット０：給紙部変更フラグとして利用
ビット１：排紙部変更フラグとして利用
ビット２：紙サイズ変更フラグとして利用
なお、本両面印刷排出フラグ１４１３は、３ビット構成としたので、給紙部変更、排紙部変更、紙サイズ変更が同時発生した場合に、いずれの要因が発生しているかを検出できる。本両面印刷排出フラグ１４１３の値が０以外の場合、印刷制御装置１１０はプリンタエンジン部１２０内の用紙を一旦すべて排出する。その後、給紙部、排紙部、紙サイズの内必要なものを変更してから、再び両面印刷を再開する。
　【０１０７】図１６に示した印刷条件１４００は、描画タスク内の印刷条件指定用サブコマンド処理が、ホストコンピュータ１００から受信した各印刷条件指定用サブコマンドの指示に従って、書き込む。描画タスク内の描画用サブコマンド処理は、印刷条件のうち以下の情報を用いて当該描画ページに対し、描画処理を行う。
　【０１０８】・紙サイズコード
・紙縦横コード
・表面・裏面印刷指定
・印字方向
・描画エラー処理モード
・文字展開モード
なお、描画処理は、紙サイズコードと紙縦横コードから変換した、前記先願発明に記した描画用フレームメモリ記述パラメータを用いて描画処理を行う。
　【０１０９】また描画タスクは両面印刷を行うため、各ページバッファについて以下の内容を書き込む。
　【０１１０】・片面・両面印刷指定
・表面・裏面印刷指定
・両面印刷排出フラグ
また、印刷タスクは、描画の完了した当該印刷ページに対し、以下の情報を用いて印刷処理を行う。
　【０１１１】・給紙部コード
・排紙部コード
・紙サイズコード
・紙縦横コード
・印刷ページ通し番号
・総印刷部数
・現在印刷部数
・片面・両面印刷指定
・表面・裏面印刷指定
・両面印刷排出フラグ
また、印刷処理では、紙サイズコード、紙縦横コード等の情報から変換したプリンタメモリコントローラ設定情報１７００（図１７）を用いて、プリンタメモリコントローラを制御する。
　【０１１２】次に、図１９から図２５を用いて、プリンタ管理テーブル１１６１の内容を説明する。本管理テーブルは、印刷タスクによるプリンタ（サブＣＰＵ９６とプリンタエンジン部１２０）の使用状況、プリンタとの入出力状態を管理し、プリンタの資源管理と入出力制御を行うために用いる。
　【０１１３】図１９にプリンタ管理テーブル１１６１の全体構成を示す。このテーブルは、サブＣＰＵ状態１９２０、プリンタ状態１９３０、印刷条件１９００、タスク関連情報１９４０、排紙終了監視情報１９５０からなる。
　【０１１４】図２０にサブＣＰＵ状態１９２０の内容を示す。サブＣＰＵ状態１９２０としては、サブＣＰＵ通信状態（未使用／コマンド送信中／ステータス受信中）と、サブＣＰＵレディ状態（正常／異常）を記述する。
　【０１１５】図２１にプリンタ状態１９３０の内容を示す。プリンタ状態０９３０としては、印刷タスク等による印刷指示と、給排紙部の変更指示の可／不可、プリンタエンジン状態（レディ／エラー／ウォームアップ中／テストプリント中）、給紙部状態と排紙部状態を記述する。
　【０１１６】図２２に印刷条件１９００の内容を示す。このフィールドには、本印刷タスクに対応するページバッファについてのページバッファ管理テーブル上の印刷条件フィールドのうち対応するコードの値を、印刷タスクがそれらの値を用いて一連のプリンタ制御用マクロを発行する前に、コピーして受取り、それらを参照しながら印刷タスクが本印刷対象ページバッファについての印刷処理を実行する。コピーするコードとしては、図１６に示した給紙部コード１４０１、排紙部コード１４０２、紙サイズコード１４０３、紙縦横コード１４０４、総印刷部数１４０８、現在印刷部数１４０９、総白紙印刷部数１４１０、現在白紙印刷部数１４１１がある。
　【０１１７】図２３にタスク関連情報１９４０の内容を示す。タスク関連情報１９４０としては、プリンタを使用中のタスク番号、プリンタを空き待ちのタスクへの前向きポインタと後ろ向きポインタを記述する。
　【０１１８】図２４に排紙終了監視情報の内容を示す。本実施例では、排紙部１〜５の各々の最新排紙ページ通り番号を管理し、また、排紙終了監視タイマ１〜２５の各々の監視するページのページ通し番号および指定排紙部を管理している。
　【０１１９】図２５にプリンタ状態１９３０の給紙部状態と排紙部状態１９３３の内容を例示する。ここでは、１３バイトのデータを用いて、給紙部および排紙部の現在の状態を管理している。なお、図中の“Ｒ”はそのビットが未使用（Ｒｅｓｅｒｖｅｄ）であることを示す。
　【０１２０】以上のプリンタ管理テーブル１１６１の内容は基本的に、前記先願発明の場合と同様であるが、本発明では両面印刷制御を行うため、印刷条件に次のコードを追加した（図２２参照）。
　【０１２１】（１）プリンタエンジン滞留枚数１９０５
　（２）表面印刷Ｐｏｓｔ必要フラグ１９０６
　（３）表面印刷Ｐｏｓｔ待ちタスク番号１９０７
　（４）裏面印刷Ｐｏｓｔ必要フラグ１９０８
　（５）裏面印刷Ｐｏｓｔ待ちタスク番号１９０９
　（６）マルチページコピー連絡用ＥＣＢ（１９１０、１９１１等、各印刷タスク毎に用意）
　（７）総白紙印刷部数１９０３
　（８）現在白紙印刷部数１９０４
　（９）両面印刷紙なしエラー発生フラグ１９１２
　（１０）表面印刷可能タスク終了待ちＥＣＢ１９１３
このうち、（１）はプリンタエンジン内に滞留している用紙枚数を管理しながら、表面印刷と裏面印刷の切替制御を行うするために設けた。（２）から（６）は両面印刷のマルチページコピーを行う際、各頁対応の印刷タスクが同期制御を行うために設けた。（７）と（８）は両面印刷のマルチページコピーで、同一用紙の表面と裏面で印刷部数が不一致の場合でも両面印刷を支障なく続行するために設けた。（９）と（１０）は両面印刷での紙なしエラー処理を行うために設けた。
　【０１２２】また、排紙終了監視情報としては、図２４に示したように、
　（ａ）各排紙部の最新排紙ページ通し番号
　（ｂ）各排紙終了監視タイマ毎のページ通し番号と指定排紙部
を記述した。
　【０１２３】なお両面印刷の場合、排紙部に排出される表面ページについてのみページ通し番号をカウントし、プリンタエンジン内に一旦排紙、格納される裏面ページについてのページ通し番号は、カウントしない。具体的には、次のようにカウントする。
　【０１２４】（ア）その用紙が文書の終りでないなら、最新排紙ページ通し番号をそれ自身に１を加えた値とする。
　【０１２５】（イ）その用紙が文書の終りなら、裏面ページがある場合は、（ア）と同様に最新排紙ページ通し番号をそれ自身に１を加えた値とする。表面ページしかない場合は、（ア）と異なり、最新排紙ページ通し番号それ自身をそのまま用いる。
　【０１２６】図５２に、両面印刷における最新排紙ページ通し番号管理の例を示す。本図５２において、ケース１（同図（ａ））は同一サイズの用紙６枚について両面印刷を行う場合であり、表面ページ（ページ通し番号５）の排紙を検出した時点で、本ページが文書の終わりでないため、最新排紙ページ通し番号を該ページのページ通し番号の５に１を加えた６とする。ケース２（同図（ｂ））は同一サイズの用紙５枚について両面印刷を行う場合であり、表面ページ（ページ通し番号５）の排紙を検出した時点で、本ページが文書の終わりであるため、最新排紙ページ通し番号を該ページのページ通し番号自身の５とする。ケース３（同図（ｃ））はページ通し番号１から２と、２から３で用紙サイズが変わる場合である。この場合各ページを片面印刷するので、本図のように最新排紙ページ通し番号が更新される。ケース４（同図（ｄ））は、ページ通し番号１から２と、５から６で用紙サイズが変わる場合である。この場合ページ通し番号１と６について片面印刷、ページ通し番号２〜５について両面印刷するので、本図のように最新排紙ページ通し番号が更新される。ケース５とケース６（同図（ｅ）、（ｆ））はページ通し番号１と２で用紙サイズは同じだが、印刷部数が異なる場合である。ケース５ではページ通し番号１（表面ページ）に関する、実際の印刷データについての２部印刷と白紙の２部印刷が完了した時点で、最新排紙ページ通し番号が２に更新される。ケース６ではページ通し番号１（表面ページ）に関する、実際の印刷データについての４部印刷が完了した時点で、最新排紙ページ通し番号が２に更新される。
　【０１２７】紙ジャム等の再印刷の必要なエラーが発生した場合、本印刷制御装置が前述の最新排紙ページ通し番号の次のページから再印刷を行うことにより、無駄な重複のない再印刷を行うことができるという効果がある。
　【０１２８】なお、再印刷は上位ホストコンピュータから再送した印刷コマンド列、又は印刷制御装置内に保持しておいた印刷コマンド列を用いて、印刷制御装置がプリンタエンジン部を制御することにより実現した。
　【０１２９】以下、図２６から図４５を用いて、本印刷システムにおける両面印刷制御の要である描画タスクと印刷タスクの処理手順を説明する。まず、各々についてポイントを説明する。
　【０１３０】描画タスクの処理手順は、両面印刷モードにおいても片面印刷の場合とほぼ同一である。描画タスクの両面印刷についてのポイントは、以下の通りである。
　【０１３１】（１）改頁処理部２０９にて、片面印刷と両面印刷の区別、そして、表面印刷と裏面印刷の区別を、ページバッファ管理テーブル１１４１内の当該描画ページバッファ番号用の該当コード（１４０５と１４０６）に記入する。
　【０１３２】（２）紙サイズ指定コマンド処理２０６において、紙サイズの変更を検出した場合、ページバッファ管理テーブル内の紙サイズ変更フラグ（本実施例では両面印刷排出フラグ１４１３の一部として実現）をセットする。
　【０１３３】（３）給紙部指定コマンド処理２０４または排紙部指定コマンド処理２０５において、給紙部変更あるいは排紙部変更を検出した場合、ページバッファ管理テーブル内の給紙部変更フラグあるいは排紙部変更フラグ（本実施例ではこれも両面印刷排出フラグ１４１３の一部として実現）をセットする。
　【０１３４】（４）（２）と（３）の検出時に、用紙の表面ページ用の印刷データはあるが、対応する裏面ページは印刷データがなく、白紙の用紙が検出されたとする。この場合、裏面用の白紙印刷を実現するため、白紙の裏面ページ用の印刷タスクの起動とページバッファの獲得を行う。詳細手順は、図２８から図３２に示す。
　【０１３５】（５）コマンド解釈部２０１によるコマンドバッファ読出し処理において、文書の終りを検出すると、文書印刷の終了処理を依頼するため、両面印刷終了タスクを起動する。
　【０１３６】（６）印刷部数指定コマンド処理において表面ページと裏面ページの印刷部数の不一致を検出した場合、総白紙印刷部数を表面・裏面ページのうち印刷部数の少ないページバッファ用のページバッファ管理テーブルに記入する。詳細手順は、図３３に示す。
　【０１３７】次に印刷タスクのポイントを説明する。
　【０１３８】（１）印刷タスクは、描画タスクが改頁条件を検出し、１ページ分のページバッファデータの出来上がりを検出した時点で起動される。終了は、プリンタフリーマクロ（図４８）の発行直後とする。
　【０１３９】（２）印刷タスクは複数個（例えば図１１のタスク番号７〜１６）用意する。印刷タスクの終了は、前記先願発明のように排紙終了時点とせず、プリンタフリーマクロの発行直後とする。それにより、最小単位のページバッファ数分（図１４におけるページバッファ総面数Ｎに相当）だけ、印刷タスクを用意すれば済む。
　【０１４０】（３）印刷タスクは、初めにプリンタリザーブマクロを発行し、プリンタが空いていることを確認した上で、プリンタエンジンに対し印刷用の各種マクロ（図４６から図４８に示す）を発行する。プリンタエンジンの利用が終わるとプリンタフリーマクロを発行し、プリンタエンジンの占有を解除する。
　【０１４１】（４）プリンタエンジンに対しては、レディ状態確認マクロ、給紙部確認マクロ、給紙部指示マクロ、及び印刷指示マクロ等を順に発行する。マルチページコピーの場合は、以上のマクロＳＶＣの発行を印刷部数回くり返す。
　【０１４２】（５）各マクロの処理においてプリンタエンジン関係のエラーを検出した場合、各マクロ処理の中でエラー処理を行う。
　【０１４３】（６）各マクロの処理においては、プリンタエンジンへコマンドを発行後、プリンタエンジンからの応答を待つ必要がある場合、印刷タスクを応答待ち状態とし、その間、ＣＰＵが他のタスクを実行できるようにする。
　【０１４４】（７）両面印刷制御は、次のように行う。
　【０１４５】（ａ）表面ページの印刷タスクは表面印刷待ちにし、裏面ページの印刷タスクは印刷を行う。これを繰り返す。
　【０１４６】（ｂ）裏面ページを印刷して、「プリンタエンジン最大滞留枚数到達」を検出すると、表面印刷待ち行列（キュー）の先頭につながれている印刷タスクを１つはずし、本裏面ページ用の印刷タスクを表面印刷待ち行列の最後尾につなぐ。そして、待ち行列からはずされた表面ページ用の印刷タスクを印刷した後、次の裏面ページ用印刷タスクの処理に戻る。
　【０１４７】（ｃ）表面ページ又は裏面ページ用の処理において、「紙サイズ変更」、「給紙部変更」、「排紙部変更」を検出すると、表面印刷待ち行列につながれている表面ページ用の印刷タスクをすべて本待ち行列からはずし、本ページ用の印刷タスクを表面印刷待ち行列につなぐ。そして、待ち行列からはずされた表面ページ用の印刷タスクをすべて印刷した後、変更のあったページ以降の印刷を続行する。
　【０１４８】（ｄ）「紙なし」を検出すると、図１１に示す中断タスクをまず起動する。中断タスクは、（ア）両面印刷紙なしエラー発生フラグ１９１２のセット、（イ）表面印刷可能タスクの待ち解除（プリンタ内滞留用紙に対応する表面印刷タスクの表面印刷待ち行列からの解除、及び表面印刷ポスト（Ｐｏｓｔ）待ちのポスト処理）、（ウ）ウェイト（表面印刷可能タスクの終了待ち）を行う。
　【０１４９】表面印刷可能タスクのうち最後の印刷タスクは、印刷指示を発行の後、前記ウェイト（表面印刷可能タスクの終了待ち）を解除するため、ポストを発行する。本ポストに従い、再び中断タスクに処理が移る。紙の補給に伴い、中断スクが処理を終え、印刷タスクによる正常な両面印刷処理に戻る。
　【０１５０】上記「紙なし」エラー用の処理手順は、紙なしエラーの検出が、印刷タスクによる各種プリンタ制御用マクロの発行に伴う同期エラーの場合でも、同マクロの発行とは無関係にサブＣＰＵ９６が検出した非同期エラー場合でも、共通である。従って、「紙なし」エラー用の処理手順を、同期エラー、非同期エラーにかかわらず一括管理することができるという効果がある。
　【０１５１】（ｅ）マルチページコピーにおいて、「プリンタエンジン最大滞留枚数到達」を検出すると、表面印刷待ち行列の先頭につながれている表面ページ用の印刷タスクを１つはずし、本ページ用の印刷タスクをウエイト状態にする。本ウェイト状態としては、本ページが表面ページなら表面印刷ポスト待ち状態を用い、本ページが裏面ページなら裏面印刷ポスト待ち状態を用いる。そして、表面印刷待ち行列からはずされた表面ページ用の印刷タスクについての印刷を行った後、ウエイト状態（本ページが表面ページなら裏面印刷ポスト待ち状態、裏面ページなら表面印刷ポスト待ち状態）の印刷タスクをポストする。その後、表面印刷待ち行列からはずされた印刷タスクをウエイト状態とする。
　【０１５２】（ｆ）マルチページコピーにおいて、表面印刷部数と裏面印刷部数が不一致の場合、少ない印刷部数の面は印刷部数の多い面の印刷部数に合わせ、少ない印刷部数分は白紙を印刷する。
　【０１５３】（ｇ）描画タスクによる文書の終りの検出に伴って起動された両面印刷終了タスクは、表面印刷待ち解除を行う。詳しくは、表面印刷待ち行列内の全印刷タスクの待ち状態からの解除と、表面印刷Ｐｏｓｔ待ちタスクの待ち解除を行う。なお、両面印刷終了タスクには、図１１に示したように印刷タスクと同一優先度を与え、前述の文書終了処理を行うが、実際の印刷処理は行わない特別な印刷タスクとして、動作させるようにした。
　【０１５４】次に描画タスクの処理手順の詳細を図２６から図３５を用いて、説明する。
　【０１５５】初めに図２６を用いて、描画タスクの全体手順を説明する。描画タスクは、まず描画準備（２６１０）により描画用の各種パラメータやテーブルを初期化する（２６１１）。描画準備の後、描画処理はコマンド解釈（２６２１）とコマンド実行（２６３０）を無限ループにより繰り返す（２６２０）。
　【０１５６】コマンド実行２６３０では、コマンドに応じて分岐を行い（２６３１）、片面・両面印刷指定コマンド処理（２６３２）、両面印刷終了指定コマンド処理（２６３３）、給紙部指定コマンド処理（２６３４）、排紙部指定コマンド処理（２６３５）、紙サイズ指定コマンド処理（２６３６）、紙縦横方向指定コマンド処理（２６３７）、印刷部数指定コマンド処理（２６３８）、改頁処理（２６３９）、文字描画（２６３Ａ）、図形描画（２６３Ｂ）、及びその他の処理（２６３Ｃ）を行う。
　【０１５７】片面・両面印刷指定コマンド処理（２６３２）では、図２７に示すように、本コマンドの入力引数である片面・両面印刷指定パラメータの値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の片面・両面印刷指定コードエリア（１４０５）に、記入する。
　【０１５８】両面印刷終了指定コマンド処理（２６３３）では、図２８に示すように、初めに当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０５）を参照しながら、判定する（２８１）。
　【０１５９】表面印刷を指定されている場合、次の２項目を実行する。
　【０１６０】（１）ページバッファリザーブマクロを、前記当該描画ページバッファ番号１の一つ前のページバッファと同じ紙サイズについて、発行する（２８２）。
　【０１６１】（２）印刷タスクを起動し、（１）で獲得したページバッファについての白紙印刷を行わせる（２８３）。
　【０１６２】（３）続いて、両面印刷終了タスクを起動し、本文書についての終了処理を実行させる（２８４）。
　【０１６３】給紙部指定コマンド処理（２６３４）では、図２９に示すように、初めに本コマンドの入力引数である給紙部コードの値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の給紙部コードエリア１４０１に、記入する（２９１）。続いて、給紙部変更があるかを判定する（２９２）。給紙部変更があるなら、当該描画ページバッファ番号のページバッファについて両面印刷指定がなされているか、判定する（２９３）。両面印刷指定がなされているなら、当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０５）を参照しながら、判定する（２９４）。本判定がｙｅｓならば、両面印刷排出フラグ１４１３がＯＦＦか、判定する（２９５）。本判定がｙｅｓなら、次の３項目を実行する。
　【０１６４】（１）印刷タスク起動（２９６）
　（２）ページバッファリザーブ（２９７）
　（３）当該描画ページバッファ番号用の表面・裏面印刷指定コードに、表面印刷指定を記入する（２９８）。
　【０１６５】前記２９４の判定の後、両面印刷排出フラグ１４１３の一部である給紙部変更フラグをＯＮにセットする（２９９）。
　【０１６６】排紙部指定コマンド処理（２６３５）では、図３０に示すように、初めに本コマンドの入力引数である排紙部コードの値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の排紙部コードエリア１４０２に、記入する（３０１）。
　【０１６７】続いて、排紙部変更があるかを判定する（３０２）。排紙部変更があるなら、当該描画ページバッファ番号のページバッファについて両面印刷指定がなされているか、判定する（３０３）。両面印刷指定がなされているなら、当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０５）を参照しながら、判定する（３０４）。本判定がｙｅｓならば、両面印刷排出フラグ１４１３がＯＦＦか、判定する（３０５）。本判定がｙｅｓなら、次の３項目を実行する。
　【０１６８】（１）印刷タスク起動（３０６）
　（２）ページバッファリザーブ（３０７）
　（３）当該描画ページバッファ番号用の表面・裏面印刷指定コードに、表面印刷指定を記入する（３０８）。
　【０１６９】前記３０４の判定の後、両面印刷排出フラグ１４１３の一部である排紙部変更フラグをＯＮにセットする（３０９）。
　【０１７０】紙サイズ指定コマンド処理（２６３６）では、図３１に示すように、初めに本コマンドの入力引数である紙サイズコードの値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の紙サイズコードエリア１４０３に、記入する（３１１）。
　【０１７１】続いて、紙サイズの変更があるか、つまり本コマンドの入力紙サイズと前ページの紙サイズが違うか判定する（３１２）。本判定で紙サイズ変更があるなら、当該描画ページバッファ番号のページバッファについて両面印刷指定がなされているか、判定する（３１３）。両面印刷指定がなされているなら、当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０５）を参照しながら、判定する（３１４）。本判定がｙｅｓならば、両面印刷排出フラグ１４１３がＯＦＦか、判定する（３１５）。本判定がｙｅｓなら、次の３項目を実行する。
　【０１７２】（１）印刷タスク起動（３１５１）
　（２）ページバッファリザーブ（３１５２）
　（３）当該描画ページバッファ番号用の表面・裏面印刷指定コードに、表面印刷指定を記入する（３１５３）。
　【０１７３】前記３１５の判定がＮｏならば、ページバッファ再リザーブマクロを発行する（３１５４）。
　【０１７４】前記３１４の判定がＮｏならば、ページバッファ再リザーブマクロを発行する（３１６）。
　【０１７５】前記３１４の判定の後、両面印刷排出フラグ１４１３の一部である紙サイズ変更フラグをＯＮにセットする（３１７）。
　【０１７６】前記３１３の判定がＮｏの場合、ページバッファ再リザーブマクロを発行する（３１８）。
　【０１７７】上記３１５２と３１５４と３１６と３１８のページバッファ獲得は、変更後の紙サイズについて行う。
　【０１７８】前記３１３の判定がＮｏの場合、ページバッファ再リザーブマクロを発行する（３１８）。
　【０１７９】上記３１５２と３１５４と３１６と３１８のページバッファ獲得は、変更後の紙サイズについて行う。
　【０１８０】紙縦横方向指定コマンド処理（２６３７）では、図３２に示すように、初めに本コマンドの入力引数である紙縦横方向コードの値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の紙縦横方向コードエリア１４０４に、記入する（３２１）。
　【０１８１】続いて、紙縦横方向の変更があるか、つまり本コマンドの入力紙紙縦横方向と前ページの紙縦横方向が違うか判定する（３２２）。本判定で紙縦横方向の変更があるなら、当該描画ページバッファ番号のページバッファについて両面印刷指定がなされているか、判定する（３２３）。両面印刷指定がなされているなら、当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０５）を参照しながら、判定する（３２４）。本判定がｙｅｓならば、両面印刷排出フラグ１４１３がＯＦＦか、判定する（３２５）。本判定がｙｅｓなら、次の３項目を実行する。
　【０１８２】（１）印刷タスク起動（３２５１）
　（２）ページバッファリザーブ（３２５２）
　（３）当該描画ページバッファ番号用の表面・裏面印刷指定コードに、表面印刷指定を記入する（３２５３）。
　【０１８３】前記３２５の判定がＮｏならば、ページバッファ再リザーブマクロを発行する（３２５４）。
　【０１８４】前記３２４の判定がＮｏならば、ページバッファ再リザーブマクロを発行する（３２６）。
　【０１８５】前記３２４の判定の後、両面印刷排出フラグ１４１３の一部である紙サイズ変更フラグをＯＮにセットする（３２７）。
　【０１８６】前記３２３の判定がＮｏの場合、ページバッファ再リザーブマクロを発行する（３２８）。
　【０１８７】上記３２５２と３２５４と３２６と３２８のページバッファ獲得は、変更後の紙縦横方向について行う。なお、同一面積の紙、例えばＡ４を用いても、それの紙縦横方向が違う場合、ページバッファ部１１５内の獲得エリアが違うものとして説明したが、獲得エリアを同じにすることもできる。この場合、３２５４と３２６と３２８の処理は不要になる。
　【０１８８】印刷部数指定コマンド処理（２６３８）では、図３３に示すように、本コマンドの入力引数である印刷部数の値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の総印刷部数コードエリア（１４０８）に、記入する。
　【０１８９】改頁処理（２６３９）では、図３４に示すように、初めにページバッファ管理テーブル内の当該印刷ページバッファ番号に、当該描画ページバッファ番号をコピーした後（３４１）、当該描画ページバッファ番号を更新する（３４２）。その後、印刷タスクの起動（３４３）とページバッファリザーブ（３４４）を行う。ステップ３４３の印刷タスクの起動では、タスク起動マクロの発行時に入力パラメータとして当該印刷ページバッファ番号を設定することにより、各印刷タスクに、印刷対象ページバッファ番号を伝えるようにした。その後、当該描画ページバッファ番号のページバッファについて両面印刷指定がなされているか、判定する（３４５）。両面印刷指定がなされているなら、当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０５）を参照しながら、判定する（３４６）。本判定がｙｅｓならば、当該描画ページバッファ番号用の表面・裏面印刷指定コードを、裏面印刷指定に設定する（３４７）。本判定がＮｏならば、当該描画ページバッファ番号用の表面・裏面印刷指定コードを、表面印刷指定に設定する（３４８）。なお、ステップ３４４のページバッファリザーブは、デフォルト紙サイズについて発行するものとする。デフォルト紙サイズとしては、文書先頭では、初期値の紙サイズをとり、文書の途中では前ページの紙サイズをとるものとした。
　【０１９０】次に印刷タスクの処理手順の詳細を図３５から図４４を用いて、説明する。
　【０１９１】初めに図３５を用いて、印刷タスクの全体手順を説明する。印刷タスクはまず本タスク用の入力パラメータエリアから、本印刷タスクの印刷対象ページバッファ番号である当該印刷ページバッファ番号を取り出す（３５１０）。続いて印刷タスクはプリンタリザーブマクロによるプリンタ使用権の獲得（３５１１）とプリンタフリーマクロによるプリンタ使用権の解放（３５１２）を行う。続いて当該印刷ページバッファファ番号のページバッファについて両面印刷指定がなされているか、該ページバッファ用の片面・両面印刷指定コード（１４０５）を参照しながら、判定する（３５２０）。両面印刷指定がなされているなら、当該印刷ページバッファ番号のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０５）を参照しながら、判定する（３５２１）。本判定がｙｅｓならば、表面印刷用前処理１（３５３０）として、ステップ３５３１から３５３５の処理を行う。
　【０１９２】まず、当該印刷ページバッファ番号用の両面印刷排出フラグ１４１３がＯＮか判定する（３５３１）。ＯＮならば、両面印刷排出フラグＯＮに伴う、表面印刷可能タスクの待ち解除（３５３２）を行う。３５３１の判定がＮｏならば、プリンタエンジン滞留枚数（１９０５）がプリンタエンジン最大滞留枚数以下か判定する（３５３３）。本判定がｙｅｓならば、プリンタエンジン最大滞留枚数到達に伴う、表面印刷可能タスクの待ち解除を行う（３５３４）。ここで、プリンタエンジン最大滞留枚数は、プリンタエンジンの種類と紙サイズと紙縦横方向に応じて定まるパラメータであり、初期化時等に予め印刷制御装置１１０内のテーブル（図１と図２には示していない）に格納しておく。
　【０１９３】ステップ３５３１の判定の後、印刷タスクは表面印刷待ちマクロを発行し、本タスクを表面印刷待ち状態に移す（３５３５）。
　【０１９４】その後印刷タスクは、以下の手順（３５４１から３５５５）を、印刷タスクは総印刷部数と総白紙印刷部数分の合計回数だけ繰り返すことにより、総印刷部数分の実質的印刷と総白紙印刷部数分の白紙印刷を行う。
　【０１９５】（１）当該印刷ページバッファファ番号のページバッファについて両面印刷指定がなされているか、判定する（３５４１）。両面印刷指定がなされているなら、当該印刷ページバッファ番号のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０５）を参照しながら、判定する（３５４２）。
　【０１９６】（２）本判定がｙｅｓならば、表面印刷用前処理２を行う（３５４３）。Ｎｏならば、裏面印刷用前処理（３５４４）を行う。
　【０１９７】（３）一連の印刷マクロの発行処理を行う（３５４５）。
　【０１９８】（４）プリンタエンジン滞留枚数を更新する（３５５０）。具体的には、以下のようにする。
　【０１９９】（４−１）まず、当該印刷ページバッファファ番号のページバッファについて両面印刷指定がなされているか、判定する（３５５１）。両面印刷指定がなされているなら、当該印刷ページバッファ番号のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０５）を参照しながら、判定する（３５５２）。
　【０２００】（４−２）本判定がｙｅｓならば、プリンタエンジン滞留枚数（１９０５）を１だけ減ずる（３５５３）。Ｎｏならば、プリンタエンジン滞留枚数（１９０５）を１だけ加算する（３５５４）。
　【０２０１】（５）両面印刷紙なしエラー発生フラグ１９１２がＯＮか判定する（３５５５）。ＯＮならば、両面印刷紙なしエラー処理を行う（３５５６）。この処理の詳細は、図５１を参照して後述する。
　【０２０２】以上の手順（３５４１から３５５６）を繰り返した後、印刷タスクはマルチページコピー用後処理（３５５０）として、裏面印刷Ｐｏｓｔ関係処理（３５６１）と表面印刷Ｐｏｓｔ待ちタスク番号と裏面印刷Ｐｏｓｔ待ちタスク番号の更新（３５６２）を行う。その後、タスク終了マクロを発行し（３５７０）、処理を終了する。
　【０２０３】なお、３５１１と３５１２によるプリンタリザーブ／フリーマクロの発行目的を、以下に示す。
　【０２０４】（ａ）各印刷タスク（印刷タスクＡと呼ぶ）は、一連の印刷マクロの発行処理（３５４５）において、まずプリンタリザーブによりプリンタの使用権を獲得する（４０１）。その後、４０３〜４０７の印刷マクロを発行することにより、プリンタエンジン部１２０との間の入出力処理を行う。該入出力処理において、各印刷マクロは、本マクロの発行者である印刷タスクＡを、入出力待ち状態に移す。
　（ｂ）この時、印刷タスクＡより後で起動された別の印刷タスク（印刷タスクＢと呼ぶ）が、後述するタスク制御部１２’（図５０参照）内のタスクディスパッチャの機能により実行状態に移されることがある。なお、タスク制御部１２’やタスクディスパッチャの機能は、本出願人による先願発明、特願平１−１６４６３７号や特願平１−２８２７４７号に記述されている内容と同様である。
　【０２０５】（ｃ）ところが、印刷タスクＢは３５１０の処理の後、３５１１においてプリンタリザーブマクロを発行する。この時、前述の印刷タスクＡが前記４０１の処理により既にプリンタの使用権を獲得済みであるため、印刷タスクＢは該プリンタ使用権の獲得待ち状態に移される。
　【０２０６】（ｄ）この結果、印刷タスクＡより後に起動された印刷タスクＢが、３５２０〜３５７０のような印刷処理を進めることを防止する。
　【０２０７】（ｅ）また、印刷タスクＡがプリンタフリーマクロを発行し、プリンタの使用権を解放した時点で、印刷タスクＢが該プリンタ使用権の獲得待ち状態から直ちに解除され、プリンタの使用権を獲得する。
　【０２０８】（ｆ）以上により、図１２に示したページ順序を守った印刷を、達成することができる。
　【０２０９】（ｇ）なお、３５１１と３５１２によるプリンタリザーブ／フリーマクロの発行を行わない場合、前述の（ｃ）に示した処理がなされないため、印刷タスクＡより後に起動された印刷タスクＢが、３５２０〜３５７０の印刷処理を進めることになる。そのため、予期していなかったプリンタエンジン滞留枚数の更新や、表面印刷待ち状態化とその解除がなされる。従って、前述の図１２に示したページ順序を守った印刷を、達成できなくなることがあり、ユーザにとって混乱した印刷結果が生じることになる。
　【０２１０】図３６を用いて、両面印刷排出フラグＯＮに伴う、表面印刷可能タスクの待ち解除（３５３２）の手順を説明する。まず、表面印刷待ち行列内に待ちタスクがあるか判定する（３６１）。あれば、図４７に示す表面印刷待ち解除マクロを解除モード１で発行することにより、本表面印刷待ち行列内の全タスクを先頭から順に、表面印刷待ち状態から解除する（３６２）。次に表面印刷Ｐｏｓｔ必要フラグ１９０６がＯＮか判定する（３６３）。ＯＮならば、本フラグをＯＦＦにした後（３６４）、表面印刷Ｐｏｓｔ待ちタスク番号１９０７用のマルチページコピー連絡用のＥＣＢ（Ｅｖｅｎｔ　Ｃｏｎｔｒｏｌ　Ｂｌｏｃｋ：図示せず）のアドレスを入力として、Ｐｏｓｔマクロを発行する（３６５）。ステップ３６３の判定に伴う処理の後、両面印刷排出フラグをＯＦＦにする（３６６）。
　【０２１１】ここで、ポスト（Ｐｏｓｔ）マクロ（事象発生待ち解除マクロ）とそれの対となるウェイト（Ｗａｉｔ）マクロ（事象発生待ちマクロ）の内容は、前記先願発明の場合と同様である。
　【０２１２】図３７を用いて、プリンタエンジン最大滞留枚数到達に伴う、表面印刷可能タスクの待ち解除（３５３４）の手順を説明する。まず、表面印刷Ｐｏｓｔ必要フラグ１９０６がＯＮか判定する（３７１）。ＯＮならば、本フラグをＯＦＦにした後（３７２）、表面印刷Ｐｏｓｔ待ちタスク番号１９０７用のマルチページコピー連絡用ＥＣＢアドレスを入力として、Ｐｏｓｔマクロを発行する（３７３）。ステップ３７１の判定がＯＦＦならば、表面印刷待ち行列内に待ちタスクがあるか判定する（３７４）。あれば、図４７に示す表面印刷待ち解除マクロを解除モード０で発行することにより、本表面印刷待ち行列内の先頭の１タスクを、表面印刷待ち状態から解除する（３７５）。
　【０２１３】図３８を用いて、表面印刷用前処理２（３５４３）の手順を説明する。まず、プリンタエンジン滞留枚数（１９０５）がプリンタエンジン最大滞留枚数より小さいか判定する（３８１）。本判定がｙｅｓならば、次のようにステップ３８２から３８９の処理を行うことにより、プリンタエンジンに入れるべき裏面印刷があればそれに制御を移し、なければ本表面を印刷する。まず、裏面印刷Ｐｏｓｔ必要フラグ１９０８がＯＮか判定する（３８２）。ＯＮならば、本フラグをＯＦＦにした後（３８３）、裏面印刷Ｐｏｓｔ待ちタスク番号１９０９用のマルチページコピー連絡用ＥＣＢアドレスを入力として、Ｐｏｓｔマクロを発行する（３８４）。さらに、表面印刷Ｐｏｓｔ必要フラグ１９０６をＯＮにした後（３８５）、本印刷タスク用のマルチページコピー連絡用ＥＣＢアドレスを入力として、Ｗａｉｔマクロを発行する（３８６）。３８２の判定がＯＦＦならば、表面印刷待ち行列内に待ちタスクがあるか判定する（３８７）。あれば、表面印刷Ｐｏｓｔ必要フラグ１９０６をＯＮにした後（３８８）、本印刷タスク用のマルチページコピー連絡用ＥＣＢアドレスを入力として、Ｗａｉｔマクロを発行する（３８９）。
　【０２１４】図３９を用いて、裏面印刷用前処理（３５４４）の手順を説明する。まず、プリンタエンジン滞留枚数（１９０５）がプリンタエンジン最大滞留枚数以上か判定する（３８１）。本判定がｙｅｓならば、次のようにステップ３９２から３９５の処理を行うことにより、プリンタエンジン最大滞留枚数に達したので表面印刷を起動する。本判定がＮｏの場合、プリンタエンジンにまだ用紙を溜められるので、図３５において３５４５の処理に進むことにより、本印刷タスクに対応する裏面を印刷する。
　【０２１５】ステップ３９２では、両面印刷排出フラグがＯＦＦか判定する。本判定がＹｅｓの場合、プリンタエンジン最大滞留枚数到達に伴う、表面印刷可能タスクの待ち解除を行う（３９３）。本ステップ３９３の処理手順は、図３７に示したものと同じである。続いて、裏面印刷Ｐｏｓｔ必要フラグ１９０８をＯＮにした後（３９４）、本印刷タスク用のマルチページコピー連絡用ＥＣＢアドレスを入力として、Ｗａｉｔマクロを発行する（３９５）。
　【０２１６】図４０を用いて、一連の印刷マクロの発行処理（３５４５）の手順を説明する。本処理では、まずプリンタリザーブマクロを発行し（４０１）、プリンタエンジンの使用権を獲得する。続いて、プリンタ管理テーブル内の印刷条件フィールドに、ページバッファ管理テーブル内の当該印刷ページバッファ番号用印刷条件フィールド内の該当項目の値をコピーする（４０２）。続いて、給紙部確認マクロの発行（４０３）、給紙部指示マクロの発行（４０４）、排紙部確認マクロの発行（４０５）、排紙部指示マクロの発行（４０６）、片面・両面印刷用印刷指示マクロの発行（４０７）、及びプリンタフリーマクロの発行（４０８）を行う。プリンタフリーマクロの発行により、本タスクによるプリンタエンジンの使用権を解放する。ステップ４０１と４０３から４０８の各プリンタ制御用マクロの機能を、図４５から図４７に示す。
　【０２１７】図４１を用いて、片面・両面印刷用印刷指示（４０７）の処理手順を説明する。本マクロは、前記先願発明における印刷指示マクロを、片面印刷用から片面印刷と両面印刷の両方に適用できるように拡張したものである。その実現方法は、プリンタエンジン部１２０の仕様に応じて、若干異なるが、同様にして実現することができる。以下に、一実現例を示す。初めに、本マクロの入力パラメータである印刷指示モード（ｐｒｎｍｏｄｅ）が１または２であり、両面印刷を指定されているか判定する（４１１）。本判定がＹｅｓならば、以下の処理（４１２から４１５２）を実行する。
　【０２１８】（１）プリンタエンジンが片面印刷モードか判定する（４１２）。そうなら、プリンタエンジンを両面印刷モードにするため、両面印刷モード選択コマンドのプリンタエンジン部１２０への発行を、サブＣＰＵ９６に指示する（４１２１）。
　（２）前記印刷指示モード（ｐｒｎｍｏｄｅ）が１であり、表面印刷を指定されているか判定する（４１３）。本判定がＹｅｓならば、両面・表面印刷用の印刷指示（４１４）を行う。
　【０２１９】具体的には、表面印刷用パスの選択をサブＣＰＵへ指示した後（４１４１）、印刷指示信号のプリンタエンジン部１２０への発行をサブＣＰＵに指示する（４１４２）。ステップ４１３の判定で、表面印刷が指示されていず裏面印刷が指示されているならば、、両面・裏面印刷用の印刷指示（４１４）を行う。具体的には、裏面印刷用パスの選択をサブＣＰＵへ指示した後（４１５１）、印刷指示信号のプリンタエンジン部１２０への発行をサブＣＰＵに指示する（４１５２）。なお、ステップ４１４１における表面印刷用パスの選択では、後半印刷用のパスとして図４における給紙パス２と排紙パス１を選択する。また、ステップ４１５１における裏面印刷用パスの選択では、前半印刷用のパスとして図４における給紙パス１と排紙パス２を選択する。本パスの選択方法は、プリンタエンジン部１２０の仕様に応じた適切な方法で行った。また、４１４１の処理前に印刷パスが表面印刷用かどうか判定し、既に表面印刷用になっていれば４１４１の処理を省くことができる。ステップ４１５１の処理についても、同様である。
　【０２２０】ステップ４１１の判定がＮｏならば、以下の処理（４１６から４１８）を実行する。
　【０２２１】（１）プリンタエンジンが両面印刷モードか判定する（４１６）。そうであれば、プリンタエンジンを片面印刷モードにするため、片面印刷モード選択コマンドのプリンタエンジン部１２０への発行を、サブＣＰＵ９６に指示する（４１７）。
　【０２２２】（２）片面印刷用の印刷指示（４１８）を行うため、印刷指示信号のプリンタエンジン部１２０への発行をサブＣＰＵに指示する（４１８と４１８１）。
　【０２２３】本プリンタエンジン部１２０については、ステップ４１４２、４１５２、４１８１の印刷指示信号のサブＣＰＵへの発行指示に伴い、当該印刷ページバッファについての描画が完了し、即座に印刷ができることを、サブＣＰＵ９６またはＣＰＵ９３がプリンタエンジン部１２０へコマンドまたは信号により連絡する。これより、プリンタエンジン部１２０による印刷プロセスに余分な遅れを生じさせないようにした。本機能が提供されていないプリンタエンジン部については、以上の処理は特に行わない。
　【０２２４】図４２を用いて、裏面印刷Ｐｏｓｔ関係処理（３５６１）の処理手順を説明する。本処理ではまず、裏面印刷Ｐｏｓｔ必要フラグ１９０８がＯＮか判定する（４３１）。ＯＮならば、本フラグをＯＦＦにした後（４３２）、裏面印刷Ｐｏｓｔ待ちタスク番号１９０９用のマルチページコピー連絡用ＥＣＢアドレスを入力として、Ｐｏｓｔマクロを発行する（４３３）。
　【０２２５】図５１を用いて、図３５に示した両面印刷紙なしエラー処理（３５５６）の処理手順を説明する。本処理では、プリンタエンジン滞留枚数１９０５が０かを、一連の印刷マクロの発行処理（３５４５）とプリンタエンジン滞留枚数更新（３５５０）を行った後で、判定する（４２１）。本判定がｙｅｓであり、プリンタエンジン内に前半印刷済みの用紙が滞留していないことを確認すると、表面印刷ｐｏｓｔ待ちタスク番号１９０７用のマルチページコピー連絡用ＥＣＢアドレスを入力として、ｐｏｓｔマクロを発行する（４２２）。
　【０２２６】図４３を用いて、表面印刷Ｐｏｓｔ待ちタスク番号と裏面印刷Ｐｏｓｔ待ちタスク番号の更新（３５６２）の処理手順を説明する。本処理ではまず、当該印刷ページバッファファ番号のページバッファについて両面印刷指定がなされているか、該ページバッファ用の片面・両面印刷指定コード（１４０５）を参照しながら、判定する（４４１）。両面印刷指定がなされているなら、当該印刷ページバッファ番号のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード（１４０６）を参照しながら、判定する（４４２）。本判定がｙｅｓならば、表面印刷Ｐｏｓｔ待ちタスク番号１９０７を２だけ加算する（４４２１）。その後、表面印刷Ｐｏｓｔ待ちタスク番号が印刷タスク総数より大きいか判定し（４４２２）、そうであれば表面印刷Ｐｏｓｔ待ちタスク番号１９０７を表面印刷Ｐｏｓｔ待ちタスク番号１９０７−印刷タスク総数とする（４４２３）。
　【０２２７】ステップ４４２の判定がＮｏならば、裏面印刷Ｐｏｓｔ待ちタスク番号１９０９を２だけ加算する（４４２４）。その後、裏面印刷Ｐｏｓｔ待ちタスク番号が印刷タスク総数より大きいか判定し（４４２５）、そうであれば裏面印刷Ｐｏｓｔ待ちタスク番号１９０９を表面印刷Ｐｏｓｔ待ちタスク番号１９０９−印刷タスク総数とする（４４２６）。
　【０２２８】ステップ４４１の判定がＮｏであり片面印刷指定がなされているならば、表面印刷Ｐｏｓｔ待ちタスク番号１９０７を１だけ加算する（４４３）。その後、表面印刷Ｐｏｓｔ待ちタスク番号が印刷タスク総数より大きいか判定し（４４４）、そうであれば表面印刷Ｐｏｓｔ待ちタスク番号１９０７を１とする（４４５）。続いて、裏面印刷Ｐｏｓｔ待ちタスク番号１９０９を１だけ加算する（４４６）。その後、裏面印刷Ｐｏｓｔ待ちタスク番号が印刷タスク総数より大きいか判定し（４４７）、そうであれば裏面印刷Ｐｏｓｔ待ちタスク番号１９０９を１とする（４４８）。
　【０２２９】次に図４４を参照しながら、両面印刷終りタスクの処理手順を説明する。本タスクはまず、プリンタリザーブマクロを発行しプリンタの使用権を獲得する（４５０）。続いて、表面印刷待ち行列内に待ちタスクがあるか判定する（４５１）。あれば、前述の表面印刷待ち解除マクロを解除モード１で発行することにより、本表面印刷待ち行列内の全タスクを先頭から順に、表面印刷待ち状態から解除する（４５２）。次に表面印刷Ｐｏｓｔ必要フラグ１９０６がＯＮか判定する（４５３）。ＯＮならば、本フラグをＯＦＦにした後（４５４）、表面印刷Ｐｏｓｔ待ちタスク番号１９０７用のマルチページコピー連絡用ＥＣＢアドレスを入力として、Ｐｏｓｔマクロを発行する（４５５）。該両面印刷終りタスクは、以上の処理の後、プリンタフリーマクロを発行してプリンタの使用権を解放することにより、処理を終える（４５６）。
　【０２３０】なお、４５０と４５６のプリンタリザーブ／フリーマクロの発行目的を、次に示す。
　【０２３１】（ａ）実際の印刷を行うために両面印刷終りタスクより前に発行されている印刷タスクが処理を終了する前に、両面印刷終りタスクが実行されるのを防止する。これにより、図１２に示したページ順序を守った印刷を達成できるようにする。
　【０２３２】（ｂ）図５の印刷コマンド列を例にして説明すると、第１ページ〜第３ページ用の各印刷タスクは、一連の印刷マクロの発行処理（３５４５）において、プリンタリザーブによりプリンタの使用権を獲得する（４０１）。その後、４０３〜４０７の印刷マクロを発行することにより、プリンタエンジン部１２０との間の入出力処理を行う。該入出力処理において、各印刷マクロは、本マクロの発行者である各印刷タスクを、入出力待ち状態に移す。
　【０２３３】（ｃ）この時、各印刷タスクより後で起動された両面印刷終りタスクが、前述のタスク制御部１２’内のタスクディスパッチャの機能により実行状態に移されることがある。
　【０２３４】（ｄ）ところが、両面印刷終りタスクが４５０においてプリンタリザーブマクロを発行する。この時、前述の各印刷タスクが前記４０１の処理により既にプリンタの使用権を獲得済みであるため、両面印刷終りタスクＢは該プリンタ使用権の獲得待ち状態に移される。
　【０２３５】（ｅ）この結果、第１ページ〜第３ページ用の各印刷タスクより後に起動された両面印刷終りタスクが、４５１〜４５５の処理を進めることを防止する。
　【０２３６】（ｆ）また、印刷タスクのうち最後のもの、この例では第３ページ用の印刷タスクが、プリンタフリーマクロを発行し、プリンタの使用権を解放した時点で、両面印刷終りタスクが該プリンタ使用権の獲得待ち状態から直ちに解除され、プリンタの使用権を獲得する。
　【０２３７】（ｇ）以上により、図１２に示したページ順序を守った印刷を、達成することができる。
　【０２３８】（ｈ）なお、４５０と４５６によるプリンタリザーブ／フリーマクロの発行を行わない場合、前述の（ｄ）に示した処理がなされないため、各印刷タスクより後に起動された両面印刷終りタスクが、４５１〜４５５の処理を進めることになる。そのため、予期していなかった表面印刷待ち解除や表面印刷ｐｏｓｔ関係の処理がなされる。従って、前述の図１２に示したページ順序を守った印刷を、達成できなくなることがあり、ユーザにとって混乱した印刷結果が生じることになる。
　【０２３９】次に図４５を用いて、ページバッファ制御用マクロの機能を説明する。本マクロは、本出願人による先願発明、特願平１−２８２７４７号と同様、ページバッファの獲得と解放及び再獲得を行うが、本実施例では両面印刷に対応するため以下の点について機能を拡張した。
　【０２４０】（１）空きページバッファの検索空きページバッファは、最後に獲得したページバッファの次のページバッファから検索を行う。そのページバッファが使用中の場合、その次のページバッファを検索する。このようにして、空きページバッファが見つかるまで順に検索を行う。全ページバッファを一巡検索しても空きページバッファが見つからなかい場合、ページバッファ空き待ちとする。
　【０２４１】例えば、最後に獲得したページバッファが６番目とする。すると、次ページのための空きページバッファ検索は、ページバッファの７番目から行う。そこでそのページバッファが空き（未使用）であれば、ページバッファの獲得を行う。使用中であれば、ページバッファの８番目以降について順に空きページバッファの検索を行っていく。
　【０２４２】（２）ページバッファリザーブ及びページバッファ再リザーブページバッファの１単位をＡ４サイズとして説明する。これは、Ｂ５サイズを１単位とする方法では、Ａ３サイズのページバッファを獲得する際、余分なメモリが発生することとなるからであるが、Ｂ５等の他のサイズを１単位としても同様に実現することができる。
　【０２４３】（ａ）入力紙サイズがＡ４サイズ以下の場合Ａ５、Ｂ５サイズ等のＡ４サイズ以下の紙サイズの場合も、Ａ４サイズ１単位分のページバッファを獲得する。
　【０２４４】（ｂ）入力紙サイズがＡ４サイズより大きい場合Ｂ４、Ａ３サイズ等のＡ４サイズより大きく、Ａ３サイズ以下の紙サイズの場合、Ａ４サイズ２単位分のページバッファ（Ａ３サイズのページバッファ分）、図４９の例ではページバッファ０と１、ページバッファ２と３等の対を獲得する。例えば、図４９のように、Ａ４サイズの単位ページバッファを３面分（０から２）使用しており、次に獲得したい紙サイズがＡ４サイズより大きいものとする。この場合、前述の空きページバッファの検索を、ページバッファ獲得の起点を偶数番目のページバッファとして行うことにより、ページバッファ３と４でなく、ページバッファ４と５を獲得するようにする。これは、ページバッファを無駄なく、使用するためである。ページバッファ３と４といったように、ページバッファの空いているところを単に獲得していくと、本来ならばＡ３サイズについてページバッファを５つ配置できるところが、４つになってしまうから（ページバッファ９と０が連続して獲得できないため）である。
　【０２４５】図４６、図４７、図４８のように、プリンタ制御用マクロとして次のものを用意した。
　【０２４６】（ａ）プリンタ初期化
　（ｂ）レディ状態確認
　（ｃ）片面・両面印刷用印刷指示
　（ｄ）給紙部確認
　（ｅ）給紙部指示
　（ｆ）排紙部確認
　（ｇ）排紙部指示
　（ｈ）プリンタリザーブ
　（ｉ）プリンタフリー
　（ｊ）表面印刷待ち
　（ｋ）表面印刷待ち解除
　（ｌ）前半印刷済み用紙排出
　（ｍ）プリンタ状態変更
　（ｎ）エラーコード確認
以上のマクロの多くは、本出願人による先願発明、特願平１−１６４６３７号や本発特願平１−２８２７４７号の場合と同様であるが、本発明では両面印刷に対応するため、本実施例では（ｄ）、（ｅ）、（ｆ）、（ｇ）、（ｎ）の機能を拡張するとともに、（ｃ）、（ｊ）、（ｋ）、（ｌ）、（ｍ）のマクロを追加した。
　【０２４７】次に紙なしエラー時の処理方式を図５３〜図５７を用いて説明する。
　【０２４８】紙なしが発生すると、片面印刷では紙が補給されるまで印刷制御装置（プリンタコントローラ）１１０をホールド状態と呼ぶ中断状態とする。紙が補給されると前述のホールド状態から解除され、印刷処理を再開する。両面印刷時には、片面印刷時と同様に処理すると、プリンタエンジン内に用紙が滞留したままの状態になってしまう。従って、両面印刷では紙なしが発生した場合、プリンタエンジン内に滞留されている用紙については印刷可能（表面ページについての後半印刷）であるため、印刷を実行し、該滞留用紙を排出する。そして、用紙が補給されるまで印刷制御装置１１０をホールド状態とし、補給されるとそこから再開するようにする。なお、紙なしは裏面印刷（前半印刷）で発生し、検出される。
　【０２４９】紙なしエラーを検出した場合、中断タスクと印刷タスクは、前述の印刷タスクのポイント（７）の（ｄ）に示した手順を実行する。この手順における、中断タスクによる「表面印刷可能タスクの待ち解除」の処理手順を、（ア）同期エラーと非同期エラー、（イ）シングルページコピーとマルチページコピーの各場合について説明する。「表面印刷可能タスクの待ち解除」の処理手順を中心に説明する。
　【０２５０】（Ａ）同期紙なしエラーの場合
　（ａ）シングルページコピー時処理手順
シングルページコピー時の紙なしエラー処理では、紙なし発生ページに対応する表面ページ用の印刷タスクを除いた、表面印刷待ち行列内のすべての印刷タスクを待ち状態から解除する。
　【０２５１】図５３はページ通し番号１０（以下Ｐ１０と表す、同様にページ通し番号ｉのページをＰｉと表す）にて紙なしエラーが発生した場合であり、表面印刷待ち状態にあるＰ５とＰ７用の印刷タスク（表面印刷待ち行列につながれている）を待ち行列からはずし、該待ち状態から解除し、印刷を行なっている。
　【０２５２】図５３について、さらに詳しく説明する。
　【０２５３】本図では、各ページバッファに描画された印刷データについての印刷タスクによる処理を、該ページバッファの真下に示す。例えば、ページバッファ１（５３Ａ１）の真下に、以下の処理を示す。
　【０２５４】・まずページ通し番号１（Ｐ１、５３Ａ２）用の印刷タスクによる表面印刷待ち（５３０１、本図では待ちと省略して記述）と印刷（５３０９）
・続いてページ通し番号９（Ｐ９、５３Ａ３）用の印刷タスクによる表面印刷待ち解除（５３１１、本図では待ち解除と省略して記述）と本タスク自身の表面印刷待ち（５３１２）
同様に、ページバッファ２（５３Ｂ１）の真下に、以下の処理を示す。
　【０２５５】・まずページ通し番号２（Ｐ２、５３Ｂ２）用の印刷タスクによる印刷（５３０２）
・続いてページ通し番号１０（Ｐ１０、５３Ｂ３）用の印刷タスク関係のエラー処理による中断タスク起動（５３１５）と本印刷タスクによる印刷（５３１９）
本図における処理手順を、順番に説明する。
　【０２５６】（１）ページ通し番号１（Ｐ１、５３Ａ２）用の印刷タスクが表面印刷待ち（５３０１）になる。
　【０２５７】（２）ページ通し番号２（Ｐ２、５３Ｂ２）用の印刷タスクが印刷を行う（５３０２）。
　【０２５８】（３）以下、ページ通し番号３用の印刷タスクの表面印刷待ち（５３０３）、ページ通し番号４用の印刷タスクの印刷（５３０４）、ページ通し番号５用の印刷タスクの表面印刷待ち（５３０５）、ページ通し番号６用の印刷タスクの印刷（５３０６）を行う。
　【０２５９】（４）次に、ページ通し番号７用の印刷タスクが、プリンタエンジン滞留枚数到達を検出し、表面印刷待ち行列の先頭印刷タスクの表面印刷待ち状態からの解除（５３０７、本解除により該待ち行列からはずされる）と、該印刷タスク自身の表面印刷待ち状態への移行（５３０８）を行う。
　【０２６０】（５）５３０７により表面印刷待ち状態から解除されたページ通し番号１用の印刷タスクが印刷を行う（５３０９）。
　【０２６１】（６）ページ通し番号８（Ｐ８）用の印刷タスクが印刷を行う（５３１０）。
　【０２６２】（７）ページ通し番号９（Ｐ９、５３Ａ３）用の印刷タスクが、プリンタエンジン滞留枚数到達を検出し、表面印刷待ち行列の先頭印刷タスクの表面印刷待ち状態からの解除（５３１１）と、該印刷タスク自身の表面印刷待ち状態への移行（５３１２）を行う。
　【０２６３】（８）５３１１により表面印刷待ち状態から解除されたページ通し番号３用の印刷タスクが印刷を行う（５３１３）。
　【０２６４】（９）ページ通し番号１０（Ｐ１０）用の印刷タスクが印刷を行おうとした時、紙なしエラーが発生した（５３１４）。
　【０２６５】（１０）ページ通し番号１０（Ｐ１０）用の印刷タスク関係のエラー処理が中断タスクを起動し、該中断タスクが対応する表面ページを除いた全ての表面印刷待ちを解除する（５３１５）。
　【０２６６】（１１）５３１５により表面印刷待ち状態から解除されたページ通し番号５用の印刷タスクとページ通し番号７用の印刷タスクが印刷を行う（５３１６と５３１７）。
　【０２６７】（１２）ユーザやシステム管理者が紙を補給する（５３１８）。
　【０２６８】（１３）紙の補給に伴い、ページ通し番号１０（Ｐ１０）用の印刷タスクが印刷を行う（５３１９）。
　【０２６９】（１４）以下、ページ通し番号１１用の印刷タスクの表面印刷待ち状態への移行（５３２０）、ページ通し番号１２用の印刷タスクの印刷（５３２１）、ページ通し番号１３用の印刷タスクの表面印刷待ち状態への移行（５３２２）、ページ通し番号１４用の印刷タスクの印刷（５３２３）というように処理が進行する。
　【０２７０】（ｂ）マルチページコピー時処理手順マルチページコピー時の紙なしエラー処理では、まず、紙なしエラー発生ページの印刷完了部数を調べる。総印刷部数分完了していれば現在白紙印刷部数を、完了していなければ現在印刷部数を、印刷完了部数とする。
　【０２７１】そして、印刷完了部数が０部の場合、紙なしエラー発生ページに対応する表面ページ用の印刷タスクを除いた、表面印刷待ち行列内の全ての印刷タスクを待ち状態から解除する。
　【０２７２】印刷完了部数が１部以上の場合、紙なし発生ページに対応する表面ページ用の印刷タスクまでの、表面印刷待ち行列内の全ての印刷タスクを待ち状態から解除する。そして、表面印刷ＰＯＳＴ必要フラグがＯＮならば、本フラグをＯＦＦにした後、表面印刷ＰＯＳＴ待ち解除をｐｏｓｔマクロを用いて実行する。
　【０２７３】図５４はＰ４の２部目で紙なしが発生した場合を表している。本ケースは詳しくは、▲１▼表面印刷待ち行列に表面印刷待ちの印刷タスクがつながれており、▲２▼紙なし発生ページの印刷完了部数が１部以上の例を示している。
　【０２７４】ここで、紙なしエラーが発生すると中断タスクが起動される。中断タスクの処理手順を図５７に示す。中断タスクでは、紙なしエラーの場合（５７１）、両面印刷紙なしエラー発生フラグ１９１２（図２２）をＯＮにした後（５７３）、表面印刷可能タスクの待ち解除を行う（５７４）。
　【０２７５】本待ち解除では、表面印刷待ち行列内のページ通し番号３（Ｐ３）に対応する印刷タスクの表面印刷待ち解除と、表面印刷ＰＯＳＴ待ち状態にあるページ通し番号１（Ｐ１）の印刷タスクに対するＰｏｓｔ処理を行う。その後、中断タスクは、ｗａｉｔマクロを発行することにより、表面印刷可能タスク終了待ち状態となる（５７５）。
　【０２７６】すると、プリンタエンジン内滞留用紙についての印刷、つまりＰ１の５部目、Ｐ３の１部目の印刷が行われる。ページ通し番号３（Ｐ３）についての印刷タスクの処理において、１部目を印刷した時点（プリンタエンジン内のすべての滞留用紙が印刷されている）で、図３５に示す前述の３５５５と３５５６の処理を行い、図５１における４２２の処理によりｐｏｓｔマクロを発行することにより、中断タスクを表面印刷可能タスク終了待ち状態（５７５に対応）から解除する。これにより、中断タスクの処理に戻る。中断タスクは、片面印刷の場合と同様の従来処理を行う。該中断タスクについての従来処理では、全タスク中断５７６、ウェイト（ｗａｉｔ）５７７、全タスク再開５７８、タスク終了５７５等を実行する。詳細な処理の内容は、本出願人による先願発明、特開平１−１２１５２３号で説明したものと同じである。
　【０２７７】図５４について、さらに詳しく説明する。本図でも図５３と同様、各ページバッファに描画された印刷データについての印刷タスクによる処理を、該ページバッファの真下に示す。例えば、ページバッファ１（５４Ａ１）の真下に、ページ通し番号１（Ｐ１、５４Ａ２）用の印刷タスクによる以下の処理を示す。
　【０２７８】・表面印刷待ち（５４０１、本図でも待ちと省略して記述）
・第１部目の印刷（５４０７）と、裏面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４０８）と、該タスク自身のｗａｉｔ（５４０９）。
　【０２７９】・第２部目の印刷（５４１３）と、裏面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４１４）と、該タスク自身のｗａｉｔ（５４１５）
・第３部目の印刷（５４１９）と該タスク自身のｗａｉｔ（５４２０）
・第４部目の印刷（５４２４）と、裏面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４２５）と、該タスク自身のｗａｉｔ（５４２６）
・第５部目の印刷（５４２９）
同様に、ページバッファ２（５４Ｂ１）の真下に、ページ通し番号２（Ｐ２、５４Ｂ２）用の印刷タスクによる以下の処理を示す。
　【０２８０】・第１部目の印刷（５４０２）と第２部目の印刷（５４０３）と第３部目の印刷（５４０４）と表面印刷待ち解除（５４０５、本図では待ち解除と省略して記述）と本タスク自身のｗａｉｔ（５４０６）
・第４部目の印刷（５４１０）と、表面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４１１）と、本タスク自身のｗａｉｔ（５４１２）。ここで、表面印刷ｐｏｓｔ待ちタスクのｐｏｓｔでは、表面印刷ｐｏｓｔ待ちタスク番号用のマルチページコピー連絡用ＥＣＢアドレスを入力とする。また、該タスク自身のｗａｉｔでは、該タスクのタスク番号用のマルチページコピー連絡用ＥＣＢアドレスを入力とする。
　【０２８１】・第５部目の印刷（５４１６）
本図における処理手順を、順番に説明する。
　【０２８２】（１）ページ通し番号１（Ｐ１、５４Ａ２）用の印刷タスクが表面印刷待ち（５４０１）になる。
　【０２８３】（２）ページ通し番号２（Ｐ２、５４Ｂ２）用の印刷タスクが第１部目の印刷（５４０２）と、第２部目の印刷（５４０３）と、第３部目の印刷（５４０４）と、表面印刷待ち解除（５４０５）と、本タスク自身のｗａｉｔ（５４０６）を行う。
　（３）５４０５により表面印刷待ち状態から解除されたページ通し番号１用の印刷タスクが、第１部目の印刷（５４０７）と、裏面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４０８）と、該タスク自身のｗａｉｔ（５４０９）を行う。ここで、裏面印刷ｐｏｓｔ待ちタスクのｐｏｓｔでは、裏面印刷ｐｏｓｔ待ちタスク番号用のマルチページコピー連絡用ＥＣＢアドレスを入力とする。また、該タスク自身のｗａｉｔでは、該タスクのタスク番号用のマルチページコピー連絡用ＥＣＢアドレスを入力とする。
　【０２８４】（４）ページ通し番号２用の印刷タスクが、第４部目の印刷（５４１０）と、表面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４１１）と、本タスク自身のｗａｉｔ（５４１２）を行う。ここで、表面印刷ｐｏｓｔ待ちタスクのｐｏｓｔでは、表面印刷ｐｏｓｔ待ちタスク番号用のマルチページコピー連絡用ＥＣＢアドレスを入力とする。また、該タスク自身のｗａｉｔでは、該タスクのタスク番号用のマルチページコピー連絡用ＥＣＢアドレスを入力とする。
　【０２８５】（５）５４１１によりｗａｉｔ状態から解除されたページ通し番号１用の印刷タスクが、第２部目の印刷（５４１３）と、裏面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４１４）と、該タスク自身のｗａｉｔ（５４１５）を行う。
　【０２８６】（６）５４１４によりｗａｉｔ状態から解除されたページ通し番号２用の印刷タスクが、第５部目の印刷を行う（５４１６）。
　【０２８７】（７）ページ通し番号３用の印刷タスクが、ｐｏｓマクロを発行することにより、５４１５に基づくｗａｉｔ状態を解除する（５４１７）。続いて、該タスクが表面印刷待ちになる（５４１８）。
　【０２８８】（８）５４１７によりｗａｉｔ状態から解除されたページ通し番号１用の印刷タスクが、第３部目の印刷（５４１９）と、該タスク自身のｗａｉｔ（５４２０）を行う。
　【０２８９】（９）ページ通し番号４用の印刷タスクが、第１部目の印刷（５４２１）と、表面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４２２）と、本タスク自身のｗａｉｔ（５４２３）を行う。
　【０２９０】（１０）５４２２によりｗａｉｔから解除されたページ通し番号１用の印刷タスクが、第４部目の印刷（５４２４）と、裏面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４２５）と、該タスク自身のｗａｉｔ（５４２６）を行う。
　【０２９１】（１１）５４２５によりｗａｉｔから解除されたページ通し番号２用の印刷タスクが、第２部目の印刷を行おうとした時、紙なしエラーが発生した（５４２７）。
　【０２９２】（１０）ページ通し番号２用の印刷タスク関係のエラー処理が中断タスクを起動し、該中断タスクが次の処理を行う（５４２８）。
　【０２９３】・両面印刷紙なしエラー発生フラグをＯＮに設定（５４２８−１）。
　【０２９４】・表面印刷可能タスクの待ち解除（５４２８−２）。本待ち解除では、表面印刷待ち行列内のページ通し番号３（Ｐ３）に対応する印刷タスクの表面印刷待ち解除（５４２８−２Ａ）と、表面印刷ＰＯＳＴ待ち状態にあるページ通し番号１（Ｐ１）の印刷タスクに対するＰｏｓｔ処理（５４２８−２Ｂ）を行う。
　【０２９５】・続いて、中断タスクがｗａｉｔマクロを発行することにより、表面印刷可能タスク終了待ち状態となる（５４２８−３）。
　【０２９６】（１１）５４２８−２Ｂによりｗａｉｔ状態から解除されたページ通し番号１用の印刷タスクが、第５部目の印刷を行う（５４２９）。
　【０２９７】（１２）５４２８−２Ａによりｗａｉｔ状態（表面印刷ＰＯＳＴ待ち状態）から解除されたページ通し番号３用の印刷タスクが、第１部目の印刷を行う（５４３０）。続いて、該タスクが図５４の（注１）に示したように、プリンタエンジン滞留枚数が０であることを検出したため（図５１の４２１に対応）、ｐｏｓｔマクロを発行することにより（図５１の４２２に対応）、中断タスクを前述の表面印刷可能タスク終了待ち状態から解除し（５４３１）、本タスク自身のｗａｉｔを行う（５４３２）。
　【０２９８】（１３）ユーザやシステム管理者が紙を補給する（５４３３）。
　【０２９９】（１４）紙の補給に伴い、紙なしエラーの発生に伴い中断されていたページ通し番号２用の印刷タスクが処理を再開し、第２部目の印刷を実行する（５４３４）。（１５）次に、ページ通し番号２（Ｐ２、５４Ｂ２）用の印刷タスクが第３部目の印刷（５４３５）と、第４部目の印刷（５４３６）と、表面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４３７）と、本タスク自身のｗａｉｔ（５４３８）を行う。
　【０３００】（１６）以下、５４３７によりｗａｉｔから解除されたページ通し番号３用の印刷タスクが、第２部目の印刷（５４３９）と、裏面印刷ｐｏｓｔ待ちタスクのｐｏｓｔ（５４４０）と、該タスク自身のｗａｉｔ（５４４１）を行うというように、処理が進行する。
　【０３０１】図５５はＰ２の５部目で紙なしが発生した場合を表している。本ケースは詳しくは、▲１▼表面印刷待ち行列に表面印刷待ちの印刷タスクがつながれていず、▲２▼紙なし発生ページの印刷完了部数が１部以上の例を示している。
　【０３０２】ここで、紙なしエラーが発生すると中断タスクが起動される。中断タスクでは、両面印刷紙なしエラー発生フラグをＯＮにした後、表面印刷可能タスクの待ち解除を行う。
　【０３０３】本待ち解除では、表面印刷ＰＯＳＴ待ち状態にあるページ通し番号１（Ｐ１）の印刷タスクに対するＰｏｓｔ処理を行う。その後、中断タスクは、ｗａｉｔマクロを発行することにより、表面印刷可能タスク終了待ち状態となる（５７５）。
　【０３０４】すると、プリンタエンジン内滞留用紙についての印刷、つまりＰ１の３部目と４部目の印刷が行われる。ページ通し番号１（Ｐ１）についての印刷タスクの処理において、４部目を印刷した時点（プリンタエンジン内のすべての滞留用紙が印刷されている）で、図３５に示す前述の３５５５と３５５６の処理を行い、図５１における４２２の処理によりｐｏｓｔマクロを発行することにより、中断タスクを表面印刷可能タスク終了待ち状態（５７５に対応）から解除する。これにより、中断タスクの処理に戻る。中断タスクは、図５４の場合と同様、片面印刷用と同様の従来処理を行う。
　【０３０５】図５６はＰ４の１部目で紙なしが発生した場合を表している。本ケースは詳しくは、▲１▼表面印刷待ち行列に表面印刷待ちの印刷タスクがつながれており、▲２▼紙なし発生ページの印刷完了部数が０部である例を示している。
　【０３０６】ここで、紙なしエラーが発生すると中断タスクが起動される。中断タスクでは、両面印刷紙なしエラー発生フラグをＯＮにした後、表面印刷可能タスクの待ち解除を行う。
　【０３０７】本待ち解除では、表面印刷ＰＯＳＴ待ち状態にあるページ通し番号１（Ｐ１）の印刷タスクに対するＰｏｓｔ処理を行う。その後、中断タスクは、ｗａｉｔマクロを発行することにより、表面印刷可能タスク終了待ち状態となる（５７５）。
　【０３０８】すると、プリンタエンジン内滞留用紙についての印刷、つまりＰ１の４部目、５部目の印刷が行われる。ページ通し番号１（Ｐ１）についての印刷タスクの処理において、５部目を印刷した時点（プリンタエンジン内のすべての滞留用紙が印刷されている）で、図３５に示す前述の３５５５と３５５６の処理を行い、図５１における４２２の処理によりｐｏｓｔマクロを発行することにより、中断タスクを表面印刷可能タスク終了待ち状態（５７５に対応）から解除する。これにより、中断タスクの処理に戻る。中断タスクは、図５４の場合と同様、片面印刷用と同様の従来処理を行う。
　【０３０９】（Ｂ）非同期紙なしエラーの場合
　（ａ）シングルページコピー時処理手順
非同期紙なしエラーでは、原理的に、表面印刷待ち行列の最後につながれている表面ページに対応する裏面ページの印刷処理において、紙なしエラーが発生する。
　【０３１０】従って、待ち行列の最後につながれている表面ページ用の印刷タスクを除いた、表面印刷待ち行列内のすべての印刷タスクは印刷可能である。そこで、それらの印刷可能な印刷タスクは表面印刷待ち状態から解除し、印刷を行う。
　【０３１１】例えば、表面印刷待ち行列にＰ３、Ｐ５、Ｐ７と印刷タスクがつながれている場合、Ｐ８で紙なしが発生したとする。この場合、Ｐ７の印刷タスクを除いたＰ３、Ｐ５の印刷タスクを表面印刷待ち行列からはずし、表面印刷待ち状態から解除するようにし、印刷を行うようにした。
　【０３１２】（ｂ）マルチページコピー時処理手順
非同期紙なしエラーは、シングルページコピーの場合と同様、表面印刷待ち行列の最後につながれている表面ページに対応する裏面ページの印刷処理において紙なしエラーが発生する。
　【０３１３】従って、待ち行列の最後につながれている表面ページに対応する裏面ページについての印刷完了部数を調べる。総印刷部数分完了していれば現在白紙印刷部数を、完了していなければ現在印刷部数を、印刷完了部数とする。
　【０３１４】そして、印刷完了部数が０部の場合、待ち行列の最後につながれている表面ページ用の印刷タスクを除いた、表面印刷待ち行列内のすべての印刷タスクを表面印刷待ち状態から解除する。
　【０３１５】印刷完了部数が１部以上の場合、表面印刷待ち行列内のすべての印刷タスクを表面印刷待ち状態から解除する。そして、表面印刷ＰＯＳＴ必要フラグがＯＮならば、本フラグをＯＦＦにした後、表面印刷ＰＯＳＴ待ち解除をｐｏｓｔマクロを用いて実行する。
　【０３１６】（Ｃ）処理概略
紙なしエラーが発生した場合、プリンタエンジン内の滞留用紙を印刷させるための処理は、前述のように図５７の中断タスクにて行った。
　【０３１７】次に、図５８〜図６７を用いて、両面印刷におけるマルチページコピー処理方式を説明する。初めに、表面印刷部数と裏面印刷部数が一致している場合、続いて表面印刷部数と裏面印刷部数が一致していない場合について説明する。
　【０３１８】（１）表面印刷部数と裏面印刷部数が一致している場合
表面印刷部数と裏面印刷部数が一致している場合は、ここまでで説明済みの処理手順を用いて実現することができる。本ケースの処理手順の例を、図５８〜図６０に示す。これらの図の見方は、図５３と図５４について既に説明したものと同じである。
　【０３１９】図５８は、印刷文書をページ通し番号６以上のページで構成、印刷部数が２部、ページバッファ面数が６、プリンタエンジン最大滞留枚数が３（用紙サイズがＡ４）の場合である。本図は、印刷部数＜プリンタエンジン最大滞留枚数の場合を説明するための図である。
　【０３２０】図５９は、印刷文書をページ通し番号６以上のページで構成、印刷部数が３部、ページバッファ面数が６、プリンタエンジン最大滞留枚数が３（用紙サイズがＡ４）の場合である。本図は、印刷部数＝プリンタエンジン最大滞留枚数の場合を説明するための図である。
　【０３２１】図６０は、印刷文書をページ通し番号６以上のページで構成、印刷部数が４部、ページバッファ面数が６、プリンタエンジン最大滞留枚数が３（用紙サイズがＡ４）の場合である。本図は、印刷部数＞プリンタエンジン最大滞留枚数の場合を説明するための図である。
　【０３２２】（２）表面印刷部数と裏面印刷部数が一致していない場合
表面印刷部数と裏面印刷部数が一致していない場合、次のように印刷する。ここで、少ない方の印刷部数をａ、多い方の印刷部数をｂとする。
　【０３２３】印刷部数が多い方の面については、印刷部数ｂだけの実際の印刷を行う。
　【０３２４】印刷部数が少ない方の面についての印刷は次のようにする。
　【０３２５】・印刷部数ａだけの実際の印刷を行う。
　【０３２６】・印刷部数｜ａ−｜だけの白紙印刷を行う。ここで、｜ａ−ｂ｜はａとｂとの差分の絶対値を表す。
　【０３２７】以上の処理を実現するため、ページバッファ管理テーブルとプリンタ管理テーブル、印刷部数指定コマンド処理、白紙印刷の方法、印刷タスク、ページバッファ読出し終了処理を次のようにする。
　【０３２８】（ａ）ページバッファ管理テーブルとプリンタ管理テーブル
ページバッファ管理テーブル１１４１に総白紙印刷部数１４１０と現在白紙印刷部数１４１１を設ける（図１６参照）。プリンタ管理テーブル１１６１に総白紙印刷部数１９０３と現在白紙印刷部数１９０４を設ける（図２２参照）。
　【０３２９】（ｂ）印刷部数指定コマンド処理
裏面ページについての印刷部数指定が行なわれた時、対応する表面ページの印刷部数と比較し、差分の絶対値を総白紙印刷部数としてページバッファ管理テーブル内の該当エリア１４１０へ設定する。図６１に処理手順を示す。なお、前述の図３３の処理手順は、表面印刷部数と裏面印刷部数が一致している場合にのみ通用する。一方、図６１の処理手順は、表面印刷部数と裏面印刷部数が一致している場合と一致していない場合の両方に通用する。
　【０３３０】（ｃ）白紙印刷の方法
白紙印刷を実現するため、次のようにした。
　【０３３１】・使用しているページバッファについて、ユーザの指定した印刷部数である総印刷部数に加え、さらに総白紙印刷部数だけページバッファから読出す。
　【０３３２】・総印刷部数だけ読出した後、ページバッファをクリア（ゼロクリア）する。その後、クリアされたページバッファから総白紙印刷部数回だけ読出し、白紙印刷を行う。
　【０３３３】・総印刷部数＋総白紙印刷部数回だけのページバッファからの読出しが完了した時点で、使用しているページバッファを、ページバッファフリーマクロを用いて解放する。
　【０３３４】（ｄ）印刷タスク
印刷タスクの処理手順は、図３５〜図４４と図５１に示した通りである。
　【０３３５】印刷タスクは、プリンタ管理テーブル１１６１内の印刷条件エリア１９００等の印刷制御情報を用いて、表面印刷制御又は裏面印刷制御を行う。なお、ページバッファ管理テーブル１１４１の総印刷部数１４０８と総白紙印刷部数１４１０が、プリンタ管理テーブルの総印刷部数１９０１と総白紙印刷部数１９０３にコピーされ、該当ページ（表面印刷又は裏面印刷）のマルチページコピー印刷の制御に用いられる。
　【０３３６】（ｅ）ページバッファ読出し終了割込み処理
図６２にページバッファ読出し終了割込み処理の処理手順を示す。本処理はページバッファからの読出しが１回終了する毎に、行われる。
　【０３３７】本図に示すように、初めにプリンタメモリコントローラ９７のリセットと割込みイネーブル（６２１）、ページバッファ読出し終了監視タイマのリセット（６２２）を行う。
　【０３３８】続いて、ページバッファからの読出しが総印刷部数１９０１回分完了したか判定する（６２３）。完了していれば、現在白紙印刷部数１４１１を、現在印刷出力中のページバッファ番号（１１４１内に記述されている）について更新する（６２３１）。完了していなければ、現在印刷部数１４０９を、現在印刷出力中のページバッファ番号について更新する（６２３２）。
　【０３３９】続いて、次の印刷が総印刷部数のうちで最終か判定する（６２４）。最終であれば、現在印刷出力中のページバッファ番号について、ページバッファの描画・印刷状態を「印刷中２」に設定する（６２４１）。
　【０３４０】総印刷部数分の実際の印刷と総白紙印刷部数分の白紙印刷が完了した時点で、現在印刷出力中のページバッファ番号について、ページバッファフリーマクロを発行し、該当ページバッファを解放する（６２５１）。
　【０３４１】以上の表面印刷部数と裏面印刷部数が一致していない場合にも通用する両面印刷処理方式の適用結果を、次に説明する。
　【０３４２】まず、表面印刷部数＞裏面印刷部数の場合の両面印刷の処理状況の例を、図６３〜図６５に示す。この場合、表面印刷部数と裏面印刷部数との差分だけの裏面ページが、白紙として印刷される。これらの図の見方は、図５３と図５４について既に説明したものと同じである。
　【０３４３】図６３は、印刷文書をページ通し番号６以上のページで構成、印刷部数が表面２部、裏面１部、ページバッファ面数が６、プリンタエンジン最大滞留枚数が３（用紙サイズがＡ４）の場合である。本図は、表面印刷部数＜プリンタエンジン最大滞留枚数の場合を説明するための図である。
　【０３４４】図６４は、印刷文書をページ通し番号６以上のページで構成、印刷部数が表面３部、裏面１部、ページバッファ面数が６、プリンタエンジン最大滞留枚数が３（用紙サイズがＡ４）の場合である。本図は、表面印刷部数＝プリンタエンジン最大滞留枚数の場合を説明するための図である。
　【０３４５】図６５は、印刷文書をページ通し番号６以上のページで構成、印刷部数が表面４部、裏面２部、ページバッファ面数が６、プリンタエンジン最大滞留枚数が３（用紙サイズがＡ４）の場合である。本図は、表面印刷部数＞プリンタエンジン最大滞留枚数の場合を説明するための図である。
　【０３４６】次に、表面印刷部数＜裏面印刷部数の場合の両面印刷の処理状況の例を、図６６〜図６８に示す。この場合、裏面印刷部数と表面印刷部数との差分の絶対値だけの表面ページが、白紙として印刷される。これらの図の見方は、図５３と図５４について既に説明したものと同じである。
　【０３４７】図６６は、印刷文書をページ通し番号６以上のページで構成、印刷部数が表面１部、裏面２部、ページバッファ面数が６、プリンタエンジン最大滞留枚数が３（用紙サイズがＡ４）の場合である。本図は、裏面印刷部数＜プリンタエンジン最大滞留枚数の場合を説明するための図である。
　【０３４８】図６７は、印刷文書をページ通し番号６以上のページで構成、印刷部数が表面１部、裏面３部、ページバッファ面数が６、プリンタエンジン最大滞留枚数が３（用紙サイズがＡ４）の場合である。本図は、裏面印刷部数＝プリンタエンジン最大滞留枚数の場合を説明するための図である。
　【０３４９】図６８は、印刷文書をページ通し番号６以上のページで構成、印刷部数が表面２部、裏面４部、ページバッファ面数が６、プリンタエンジン最大滞留枚数が３（用紙サイズがＡ４）の場合である。本図は、裏面印刷部数＞プリンタエンジン最大滞留枚数の場合を説明するための図である。
　【０３５０】次に、複数排紙部サポート方式について説明する。
　【０３５１】まず、排紙終了監視方法について説明する。印刷タスクは、印刷した用紙が排紙部に排紙されるまで監視を行なう。監視を行なう手段として、タイマを用いた。排紙監視用タイマには、プリンタエンジンに対して印刷指示を行なってから排紙部に用紙が排紙されるまでの時間が設定される。上記タイマが、タイムアウトになるまでにエラーが発生しない場合、正常に排紙されたものとして、ページ通し番号の更新処理等を行なう。図６９に印刷指示から排紙終了までの印刷シーケンスを示す。
　【０３５２】次に、複数排紙部サポート方式について説明する。
　【０３５３】複数排紙部を利用する場合、排紙部によって排紙時間が異なる。従って、ページ通し番号ｎの用紙を排紙部１から排紙した後、ページ通し番号ｎ＋１の用紙を排紙部２から排紙した場合、後から排紙したページ通し番号ｎ＋１の用紙が先に排紙されることがある。
　【０３５４】従来の排紙終了確認方式では、この「排紙終了順番の逆転」という現象が起きると、排紙終了ページ通し番号の把握、及び印刷タスクの終了タイミングを間違えるという問題が生じていた。
　【０３５５】従って、上記問題点を解消し複数排紙部をサポートするため、前述のプリンタ管理テーブル１１６１内の排紙終了監視情報１９５０（図２４参照）を用いて、以下のことを行った。
　【０３５６】（ａ）複数個の排紙終了監視タイマを設けた。タイマの数としては、プリンタエンジン中に滞留する可能性のある最大用紙枚数分を用意した。印刷タスクが発行した印刷指示マクロに対応する垂直同期信号要求割込み処理において、（ｉ）プリンタ管理テーブル内の本タイマ対応エリアへの監視する用紙のページ通し番号と指定排紙部の記入、及び（ｉｉ）順番の排紙終了監視タイマの選択と、本タイマへの排紙部と用紙サイズにより定まるタイマ値のセットと、本タイマの起動を行った。
　【０３５７】（ｂ）排紙部別に排紙された用紙の最新ページ通し番号を管理するためのエリアを、前述のようにプリンタ管理テーブルに用意した。
　【０３５８】（ｃ）排紙終了監視タイマ割込み処理が、前記（ａ）の（ｉ）にて記入済みの値に基づき、排紙の終了した排紙部の最新排紙ページ通し番号（（ｂ）に記したプリンタ管理テーブル内の値）を更新するようにした。
　【０３５９】（ｄ）排紙部が排紙部１〜排紙部ｍまであるものとする。この時、頁印刷終了時、又はエラー発生時に、印刷制御装置は「排紙終了監視タイマ１から同タイマ２５の各々に対応するページ通し番号の中での最小値−１」を、排紙がとぎれることなく正常に印刷を完了したページ通し番号として決定した。その後、頁印刷終了ページ通し番号、又は再送開始ページ通し番号を印刷制御装置から上位ホストコンピュータへの報告データ中の該当エリアに設定した。
　【０３６０】以上により、複数排紙部を利用し、「排紙終了順番の逆転」という現象が起きる場合でも、排紙終了ページ通し番号の正しい把握、及び印刷タスクの正しいタイミングでの終了を実現できるようにした。
　【０３６１】また以上の実施例は、上記先願発明（図５０）への拡張機能として実現することもできる。つまり、描画処理部や印刷処理部の処理をマルチタスク構成とし、並行処理（単一プロセッサによるパイプライン的処理）または並列処理（複数プロセッサによる同時処理）をできるようにしてもよい。この場合、図１内の各構成要素は図５０の各構成要素に、以下のように対応づけられる。
　【０３６２】（１）ホストコンピュータ１００がホストコンピュータ１００’に（２）ホスト通信制御部１１１がホスト通信制御部１１８’に（３）コマンドバッファ部１１２がコマンドバッファ部１１’に（４）コマンド処理部１１３がタスク処理部１３’に（５）描画処理部１１３１が描画タスク処理部１３１’に（６）印刷処理部１１３２が印刷タスク処理部１３２’に（７）ページバッファ制御部１１４がページバッファ制御部１１６’に（８）ページバッファ部１１５がページバッファ部１４’に（９）プリンタ制御部１１６がプリンタ制御部１１７’に
　【０３６３】
　【発明の効果】本発明によれば、両面印刷において、１枚の用紙の表面及び裏面に対応する２ページ単位に紙サイズ、印刷部数、紙縦横方向の指定を許容するとともに、１枚の用紙の表面と裏面で紙サイズ、印刷部数、紙縦横方向のいずれかが異なる指定をも許容することができる。
　【０３６４】また、上位装置から受信した両面印刷終わり文書の終りを描画処理部が検出し、本検出に基づいて起動された両面印刷終わり処理部が、プリンタエンジン内の前半印刷済みの残留用紙を排出し、本文書についての両面印刷を終えることができる。
　【０３６５】さらに、両面印刷指定がなされている場合に、用紙裏面についての給紙部指定又は排紙部指定又は紙サイズ指定を行っても、本裏面ページを白紙として印刷した後、以後本裏面ページを新たな表面ページとして印刷ることにより、片面印刷の場合と同様の、大きな自由度の印刷条件の指定を行うことができる。
　【０３６６】巡回型両面印刷機構のプリンタを用いた印刷システムにおいて、各種印刷条件の片面印刷の場合と同様な指定を許しながら、またこれら印刷条件の指定により用紙の表面と裏面で論理的一貫性が崩れたり、プリンタエンジン最大滞留枚数、文書終了、紙サイズ変更、給紙部変更、排紙部変更等を検出した場合でも、両面印刷を支障なく続行することができるので、自由度が大きく、ユーザにとって使い易い両面印刷機能を提供することができる。
　【０３６７】印刷制御装置をマルチタスク構成とし、上位装置からの印刷コマンドの受信と描画処理と印刷処理を並行処理しながら、両面印刷を行うことにより、巡回型両面印刷機構付きプリンタの最大性能の引出すことができる。その結果、印刷システムの印刷スループットを向上させることができる。
【図面の簡単な説明】
　【図１】本発明の構成図である。
　【図２】本発明の構成図である。
　【図３】巡回型両面印刷機構の説明図である。
　【図４】巡回型両面印刷機構を用いた片面印刷方法と両面印刷方法の説明図である。
　【図５】本発明における印刷コマンド列の説明図である。
　【図６】本発明における両面印刷に関わる印刷条件指定用コマンドの仕様を説明するための図である。
　【図７】本発明における両面印刷に関わる印刷条件指定用コマンドの仕様を説明するための図である。
　【図８】本発明における用紙表面と裏面への各印刷条件指定時の処理仕様を説明するための図である。
　【図９】本発明のハードウェア構成図である。
　【図１０】本発明のソフトウェア構成図である。
　【図１１】本発明のタスク一覧を説明するための図である。
　【図１２】本発明における描画順序と印刷順序の対応づけを説明するための図である。
　【図１３】本発明における両面印刷のための描画タスクと印刷タスクの動作概要を説明するための図である。
　【図１４】本発明におけるページバッファ管理テーブルの構成図である。
　【図１５】本発明におけるページバッファ管理テーブルの構成図である。
　【図１６】本発明におけるページバッファ管理テーブルの構成図である。
　【図１７】本発明におけるページバッファ管理テーブルの構成図である。
　【図１８】本発明におけるページバッファ管理テーブルの構成図である。
　【図１９】本発明におけるプリンタ管理テーブルの構成図である。
　【図２０】本発明におけるプリンタ管理テーブルの構成図である。
　【図２１】本発明におけるプリンタ管理テーブルの構成図である。
　【図２２】本発明におけるプリンタ管理テーブルの構成図である。
　【図２３】本発明におけるプリンタ管理テーブルの構成図である。
　【図２４】本発明におけるプリンタ管理テーブルの構成図である。
　【図２５】本発明におけるプリンタ管理テーブルの構成図である。
　【図２６】本発明における描画タスクの処理手順を説明するための図である。
　【図２７】本発明における片面・両面印刷指定コマンド処理（描画タスクの一部）の処理手順を説明するための図である。
　【図２８】本発明における両面印刷終わり指定コマンド処理（描画タスクの一部）の処理手順を説明するための図である。
　【図２９】本発明における給紙部指定コマンド処理（描画タスクの一部）の処理手順を説明するための図である。
　【図３０】本発明における排紙部指定コマンド処理（描画タスクの一部）の処理手順を説明するための図である。
　【図３１】本発明における紙サイズ指定コマンド処理（描画タスクの一部）の処理手順を説明するための図である。
　【図３２】本発明における紙縦横方向指定コマンド処理（描画タスクの一部）の処理手順を説明するための図である。
　【図３３】本発明における印刷部数指定コマンド処理（描画タスクの一部）の処理手順を説明するための図である。
　【図３４】本発明における改頁処理（描画タスクの一部）の処理手順を説明するための図である。
　【図３５】本発明における印刷タスクの処理手順を説明するための図である。
　【図３６】本発明における両面印刷排出フラグＯＮに伴う、表面印刷可能タスクの待ち解除（印刷タスクの一部）の処理手順を説明するための図である。
　【図３７】本発明におけるプリンタエンジン最大滞留枚数到達に伴う、表面印刷可能タスクの待ち解除（印刷タスクの一部）の処理手順を説明するための図である。
　【図３８】本発明における表面印刷用前処理２（印刷タスクの一部）の処理手順を説明するための図である。
　【図３９】本発明における裏面印刷用前処理（印刷タスクの一部）の処理手順を説明するための図である。
　【図４０】本発明における一連の印刷マクロの発行処理（印刷タスクの一部）の処理手順を説明するための図である。
　【図４１】本発明における片面・両面印刷用印刷指示の処理手順を説明するための図である。
　【図４２】本発明における裏面印刷Ｐｏｓｔ関係処理（印刷タスクの一部）の処理手順を説明するための図である。
　【図４３】本発明における表面印刷Ｐｏｓｔ待ちタスク番号と裏面印刷Ｐｏｓｔ待ちタスク番号の更新（印刷タスクの一部）の処理手順を説明するための図である。
　【図４４】本発明における両面印刷終わり印刷タスクの処理手順を説明するための図である。
　【図４５】本発明におけるページバッファ制御用マクロの機能を説明するための図である。
　【図４６】本発明におけるプリンタ制御用マクロの機能を説明するための図である。
　【図４７】本発明におけるプリンタ制御用マクロの機能を説明するための図である。
　【図４８】本発明におけるプリンタ制御用マクロの機能を説明するための図である。
　【図４９】本発明におけるページバッファリザーブの機能を説明するための図である。
　【図５０】本発明をマルチタスク構成とした場合の機能構成を説明するための図である。
　【図５１】本発明における両面印刷紙なしエラー処理の処理手順を説明するための図である。
　【図５２】本発明における最新排紙ページ通し番号の管理方式を説明するための図である。
　【図５３】本発明における両面印刷紙なしエラー処理を説明するための図である。
　【図５４】本発明における両面印刷紙なしエラー処理を説明するための図である。
　【図５５】本発明における両面印刷紙なしエラー処理を説明するための図である。
　【図５６】本発明における両面印刷紙なしエラー処理を説明するための図である。
　【図５７】本発明における中断タスクの処理手順を説明するための図である。
　【図５８】本発明におけるマルチページコピー処理方式説明するための図である。
　【図５９】本発明におけるマルチページコピー処理方式説明するための図である。
　【図６０】本発明におけるマルチページコピー処理方式説明するための図である。
　【図６１】本発明における印刷部数指定コマンド処理の処理手順を説明するための図である。
　【図６２】本発明におけるページバッファ読出し割込み処理の処理手順を説明するための図である。
　【図６３】本発明におけるマルチページコピー処理方式を説明するための図である。
　【図６４】本発明におけるマルチページコピー処理方式を説明するための図である。
　【図６５】本発明におけるマルチページコピー処理方式を説明するための図である。
　【図６６】本発明におけるマルチページコピー処理方式を説明するための図である。
　【図６７】本発明におけるマルチページコピー処理方式を説明するための図である。
　【図６８】本発明におけるマルチページコピー処理方式を説明するための図である。
　【図６９】本発明における複数排紙部サポート方式を説明するための図である。