• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 全部申し立て 5項1、2号及び6項 請求の範囲の記載不備  B41J
審判 全部申し立て 1項3号刊行物記載  B41J
審判 全部申し立て 2項進歩性  B41J
管理番号 1128951
異議申立番号 異議2003-72154  
総通号数 74 
発行国 日本国特許庁(JP) 
公報種別 特許決定公報 
発行日 1994-05-06 
種別 異議の決定 
異議申立日 2003-08-25 
確定日 2005-10-28 
異議申立件数
訂正明細書 有 
事件の表示 特許第3380598号「両面印刷制御方法および印刷制御装置」の請求項1ないし3に係る特許に対する特許異議の申立てについて、次のとおり決定する。 
結論 訂正を認める。 特許第3380598号の請求項3に係る特許を取り消す。 同請求項1ないし2に係る特許を維持する。 
理由 第1 手続の経緯
本件の出願から本決定に至るまでの主な経緯は次のとおりである。
・平成5年8月18日 株式会社日立製作所より本件出願(特願平5-203911号、国内優先権主張 平成4年8月31日)
・平成14年12月13日 特許第3380598号として設定登録(請求項1〜請求項3)
・平成15年8月25日 特許異議申立人大木茂より、請求項1〜請求項3に係る発明についての特許に対して特許異議申立
・平成17年2月3日付け 当審にて取消理由通知
・平成17年4月15日 譲渡による特許権移転登録申請書提出(株式会社日立製作所よりリコープリンティングシステムズ株式会社に権利譲渡)。
・同日 特許権者(リコープリンティングシステムズ株式会社)より特許異議意見書及び訂正請求書提出(以下、この訂正請求による訂正を「本件訂正」という。)
・平成17年6月1日付け 当審にて訂正拒絶理由通知
・平成17年8月3日 特許権者より意見書提出

第2 訂正の可否の判断

1 訂正の内容

[訂正事項A]
特許請求の範囲の請求項1を、本件訂正前の
「受信した印刷データに基づいて用紙の複数ページの表面印刷と複数ページの裏面印刷とを順に行なって両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
両面印刷文書の印刷データの末尾に両面印刷の終了を意味する両面印刷終了指定コマンドを付加し、該両面印刷終了指定コマンドを検出したとき、前記プリンタ内部に用紙が残留していれば、当該用紙を外部に排出して両面印刷を終了することを特徴とする両面印刷制御方法。」から
「受信した印刷データに基づいて用紙の複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行って両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
両面印刷文書の印刷データの末尾に両面印刷の終了を意味する両面印刷終了指定コマンドを付加し、該両面印刷終了指定コマンドを検出したとき、最終ページが表面であれば、最終ページの裏面の白紙印刷を行った後で表面が未印刷の用紙の印刷を行い、最終ページが裏面であれば、表面が未印刷の用紙の印刷を行い、前記プリンタ内部に表面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了することを特徴とする両面印刷制御方法。」と訂正する。

[訂正事項B]
特許請求の範囲の請求項2を、本件訂正前の
「表面(または裏面)が未印刷の用紙がプリンタ内部に複数枚残留しているとき、当該用紙について未印刷面の印刷を行った後、外部へ排出することを特徴とする請求項1記載の両面印刷制御方法。」から
「受信した印刷データに基づいて用紙の複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
両面印刷文書の印刷データの末尾に両面印刷の終了を意味する両面印刷終了指定コマンドを付加し、該両面印刷終了指定コマンドを検出したとき、最終ページが表面であれば、裏面が未印刷の用紙の印刷を行った後で最終ページの裏面の白紙印刷を行い、最終ページが裏面であれば、裏面が未印刷の用紙の印刷を行い、前記プリンタ内部に裏面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了することを特徴とする両面印刷制御方法。」と訂正する。

[訂正事項C]
特許請求の範囲の請求項3を、本件訂正前の
「受信した印刷データに基づいて用紙の複数ページの表面印刷と複数ページの裏面印刷とを順に行なって両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
前記印刷データに、用紙裏面についての給紙部指定または排紙部指定があるとき、該用紙の裏面を白紙のまま出力するとともに、プリンタ内部に滞留する用紙を一旦すべて排出し、当該裏面ページを新たな表面ページとして印刷し、該新たな表面ページの用紙以降について前記給紙部指定または排紙部指定を有効にしたことを特徴とする両面印刷制御方法。」から
「受信した印刷データに基づいて用紙の複数ページの表面印刷と複数ページの裏面印刷の内の一方を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷と複数ページの裏面印刷の内の他方を行って両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
前記印刷データに、用紙裏面についての給紙部指定または排紙部指定があるとき、該用紙の裏面を白紙のまま出力するとともに、プリンタ内部に滞留する用紙を一旦すべて排出し、当該裏面ページを新たな表面ページとして印刷し、該新たな表面ページの用紙以降について前記給紙部指定または排紙部指定を有効にしたことを特徴とする両面印刷制御方法。」と訂正する。

2 訂正目的の適否、新規事項追加の有無及び特許請求の範囲の拡張・変更の存否について

(1)訂正事項Aの目的について
本件訂正前の特許請求の範囲の請求項1には「用紙の複数ページの表面印刷と複数ページの裏面印刷とを順に行なって両面印刷を行う両面印刷機構」と記載されている。
ところで、当該記載が、複数ページの表面印刷と複数ページの裏面印刷だけで両面印刷を行い得る両面印刷機構を意味するのか、複数ページの表面印刷(又は裏面印刷)の後、表面印刷と裏面印刷とを交互に行い、次いで複数ページの裏面印刷(又は表面印刷)がなされる両面印刷機構を意味するのか、或いは双方を包含するものであるのか、必ずしも明りようではない。
そこで、願書に添付した明細書又は図面(以下、「特許明細書」という。)の記載を参酌すると次の記載がある。

ア 段落番号0015〜0022
「【課題を解決するための手段】上記目的を達成するため、本発明による印刷制御装置は、印刷コマンド列を発行する上位装置から受けた印刷コマンドを解釈、実行し、巡回型両面印刷機構付きプリンタに印刷を指示する印刷制御装置において、複数ページ分のページバッファと、該ページバッファに前記印刷コマンド列に応じて描画処理を行う描画処理部と、該描画処理部により描画されたページバッファの内容に基づいて印刷処理を行う印刷処理部とを備え、前記描画処理部はページ順に前記ページバッファに対して描画処理を行い、順次描画を終えたページについて前記印刷処理部を起動し、前記印刷処理部は、前記描画処理部からの起動に応じて、当該ページが前半印刷ページか後半印刷ページかを判別し、前半印刷用のページならば直ちに前半印刷を行い、後半印刷用のページならば当該印刷処理を後半印刷待ち状態とし、予め定めた後半印刷待ち状態の解除条件の検出に応じて、前記後半印刷待ち状態の印刷処理を当該待ち状態から解除し、印刷を行うようにしたものである。プリンタエンジン最大滞留枚数到達を、前記後半印刷待ち状態の解除条件として利用することができる。この場合、後半印刷ページ用の印刷タスクは、プリンタエンジン最大滞留枚数に達するまで、後半印刷待ち状態となる。後半印刷用の印刷タスクは、プリンタ内部の用紙滞留枚数の最大滞留枚数への到達を検出すると、後半印刷待ち状態にある先頭の印刷タスクを当該待ち状態から解除し、当該印刷タスクを待ち状態とする。また、上位装置からの両面印刷の終わりを示すコマンドの受信に基づく、文書終了ページの描画タスク部による検出を、前記後半印刷待ち状態の解除条件として利用することもできる。この場合、例えば、前記描画処理部は、両面印刷終了処理部を起動する。両面印刷終了処理部は、後半印刷待ち状態のタスクがあるか判定し、あれば後半印刷待ち状態のすべての印刷処理について、先頭から順に、当該後半印刷待ち状態から解除する。また、紙サイズ、給紙部、排紙部のいずれかの変更の検出を、前記後半印刷待ち状態の解除条件として利用することもできる。・・・この場合、例えば、上位装置からの印刷コマンド列に含まれる紙サイズ指定、給紙部指定、排紙部指定に応じて、紙サイズ、給紙部、排紙部のいずれかの変更の有無を前記描画処理部が検出し、制御テーブルに設定する。・・・印刷処理部は、該制御テーブルの内容を参照して、紙サイズ、給紙、排紙部のいずれかに変更があれば、後半印刷待ち状態にあるすべての印刷処理について先頭から順に当該後半印刷待ち状態から解除する。その後、本ページ用の印刷処理を後半印刷待ち状態に移す。そして、前記後半印刷待ち状態から解除された後半印刷ページ用の印刷タスクによる印刷をすべて実行した後、紙サイズ、給紙部、排紙部等の変更のあったページ以降の印刷を続行する。」

イ 段落番号0083〜0085
「図12に、描画タスクと印刷タスクが両面印刷を並行処理する際の、描画順序と印刷順序の対応付けを示す。本図に示す順序で描画タスクが各ページバッファに順次描画を行う。印刷タスクは描画の完了したページバッファについて、本図に示す手順で印刷読出しを行う。・・・以下の説明においては、前半印刷を用紙裏面(偶数ページ)について、後半印刷を用紙表面(奇数ページ)について行うものと仮定する。逆の場合も、同様にして実現することができる。図12の各例では、まず第1ページから順次各ページの描画を行う。第1、第3、第5ページ等の奇数ページ(表面)については印刷待ちとし、第2、第4、第6ページ等の偶数ページ(裏面)について順次印刷を行う。図12の上半分の例では、3枚の用紙について、それぞれ第2、第4、第6ページの印刷を行ったとき、プリンタエンジン滞留枚数が3に達するので、次に、第1の用紙の表面ページである第1ページの印刷を行い、その用紙を排出する。これによりプリンタエンジン内に用紙の空きが生じるので、次の偶数ページ(第8ページ)が印刷される。これにより滞留枚数が再度3に達するので、第2の用紙の表面ページである第3ページが印刷されその用紙が排出される。以後、同様にして第10ページ、第5ページ、第12ページ、…と印刷されていく。原則として、奇数ページの印刷時にその用紙が排出される。図12の下半分の例では、プリンタエンジン最大滞留枚数が5であるので、プリンタエンジンへの読みだしは、まず、第2、第4、第6、第8、第10ページの全5ページ分について順次行われる。ここで、滞留枚数が5に達するので、次に、第1の用紙の表面ページ(第1ページ)が印刷される。これによりプリンタエンジン内に生じた1枚の用紙の空きを次の裏面ページ(第12ページ)が埋める。続いて、第3ページ、第14ページ、第15ページ、…と印刷されていく。」

ウ 段落番号0144〜0147
「(7)両面印刷制御は、次のように行う。
(a)表面ページの印刷タスクは表面印刷待ちにし、裏面ページの印刷タスクは印刷を行う。これを繰り返す。
(b)裏面ページを印刷して、「プリンタエンジン最大滞留枚数到達」を検出すると、表面印刷待ち行列(キュー)の先頭につながれている印刷タスクを1つはずし、本裏面ページ用の印刷タスクを表面印刷待ち行列の最後尾につなぐ。そして、待ち行列からはずされた表面ページ用の印刷タスクを印刷した後、次の裏面ページ用印刷タスクの処理に戻る。
(c)表面ページ又は裏面ページ用の処理において、「紙サイズ変更」、「給紙部変更」、「排紙部変更」を検出すると、表面印刷待ち行列につながれている表面ページ用の印刷タスクをすべて本待ち行列からはずし、本ページ用の印刷タスクを表面印刷待ち行列につなぐ。そして、待ち行列からはずされた表面ページ用の印刷タスクをすべて印刷した後、変更のあったページ以降の印刷を続行する。」

エ 段落番号0153
「(g)描画タスクによる文書の終りの検出に伴って起動された両面印刷終了タスクは、表面印刷待ち解除を行う。詳しくは、表面印刷待ち行列内の全印刷タスクの待ち状態からの解除と、表面印刷Post待ちタスクの待ち解除を行う。」

これらア〜エの記載に基づけば、特許明細書の発明の詳細な説明には、次の両面印刷機構が記載されている。
・用紙の前半印刷用のページならば直ちに前半印刷を行い、後半印刷用のページならば後半印刷待ち状態とする。即ち、前半印刷用のページを複数枚連続して印刷する。
・予め定めた後半印刷待ち状態の解除条件のうち、プリンタエンジン最大滞留枚数を検出すると、後半印刷待ち状態にある先頭の印刷タスクを待ち状態から解除して後半印刷用のページを一枚印刷し、両面印刷された用紙を排出する。その後、前半印刷用のページを一枚印刷すると、再びプリンタエンジン最大滞留枚数に到達するので、後半印刷待ち状態にある先頭の印刷タスクを待ち状態から解除して後半印刷用のページを一枚印刷し、両面印刷された用紙を排出する。これを繰り返すことによって、前半印刷用のページ及び後半印刷用のページを交互に印刷する。
・予め定めた後半印刷待ち状態の解除条件のうち、両面印刷の終了を示すコマンド又は紙サイズ、給紙部若しくは排紙部の変更を検出すると、後半印刷待ち状態にある印刷タスクをすべて実行し印刷する。即ち、後半印刷用のページを複数枚連続して印刷する。
しかしながら、複数ページの表面印刷と複数ページの裏面印刷だけで両面印刷を行い得る両面印刷機構については、特許明細書の発明の詳細な説明に記載されていない。
そうすると、本件訂正前の特許請求の範囲の請求項1における「用紙の複数ページの表面印刷と複数ページの裏面印刷とを順に行なって両面印刷を行う両面印刷機構」との記載は、用紙の複数ページの裏面印刷(又は表面印刷)を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷(又は裏面印刷)を行って両面印刷を行う両面印刷機構を記載したものであるが、必ずしも記載が明りようでなかったと解するべきである。
それ故、訂正事項Aのうち、「受信した印刷データに基づいて用紙の複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行って両面印刷を行う両面印刷機構」とする訂正は、明りようでない記載の釈明を目的とするものである。また、当該訂正は、複数ページの裏面印刷から始める両面印刷機構と限定するものであるから、特許請求の範囲の減縮を目的とするものでもある。
次いで、訂正事項Aのうち「該両面印刷終了指定コマンドを検出したとき、最終ページが表面であれば、最終ページの裏面の白紙印刷を行った後で表面が未印刷の用紙の印刷を行い、最終ページが裏面であれば、表面が未印刷の用紙の印刷を行い、前記プリンタ内部に表面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了する」とする訂正は、最終ページが表面であれば最終ページの裏面の白紙印刷を行うこと、そして、プリンタ内部に残留する用紙の未印刷面を印刷した後に外部に排出することを両面印刷の終了手順に追加するものであるから、特許請求の範囲の減縮を目的とするものである。
したがって、訂正事項Aは、明りようでない記載の釈明及び特許請求の範囲の減縮を目的とするものである。

(2)訂正事項Bの目的について
訂正事項Bのうち、「受信した印刷データに基づいて用紙の複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行う両面印刷機構」とする訂正は、前記(1)において述べた理由と同様の理由により、明りようでない記載の釈明及び特許請求の範囲の減縮を目的とするものである。
また、訂正事項Bのうち、「該両面印刷終了指定コマンドを検出したとき、最終ページが表面であれば、裏面が未印刷の用紙の印刷を行った後で最終ページの裏面の白紙印刷を行い、最終ページが裏面であれば、裏面が未印刷の用紙の印刷を行い、前記プリンタ内部に裏面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了する」とする訂正は、最終ページが表面であれば最終ページの裏面の白紙印刷を行うこと、そして、プリンタ内部に残留する用紙の未印刷面を印刷した後に外部に排出することを両面印刷の終了手順に追加するものであるから、特許請求の範囲の減縮を目的とするものである。
したがって、訂正事項Bは、明りようでない記載の釈明及び特許請求の範囲の減縮を目的とするものである。

(3)訂正事項Cの目的について
訂正事項Cは、「受信した印刷データに基づいて用紙の複数ページの表面印刷と複数ページの裏面印刷の内の一方を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷と複数ページの裏面印刷の内の他方を行って両面印刷を行う両面印刷機構」と訂正するものであるが、前記(1)において述べた理由と同様の理由により、明りようでない記載の釈明を目的とするものである。

(4)訂正事項A〜Cの新規事項追加及び特許請求の範囲の拡張・変更について
訂正事項A〜Cは、それぞれ特許明細書における前記ア〜エ及び「両面印刷終了指定コマンド処理(2633)では、図28に示すように、初めに当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1405)を参照しながら、判定する(281)。表面印刷を指定されている場合、次の2項目を実行する。(1)ページバッファリザーブマクロを、前記当該描画ページバッファ番号1の一つ前のページバッファと同じ紙サイズについて、発行する(282)。(2)印刷タスクを起動し、(1)で獲得したページバッファについての白紙印刷を行わせる(283)。(3)続いて、両面印刷終了タスクを起動し、本文書についての終了処理を実行させる(284)。」(段落番号0158〜0162)等の記載に基づくものであるから、特許明細書に記載した事項の範囲内でなされた訂正である。
また、訂正事項A及びBは、特許明細書に記載された「本発明の第3の目的は、上記第3の問題点を解決し、巡回型両面印刷機構付きのプリンタを用いた両面印刷において、自由度の大きな両面印刷制御の方法と装置を提供することにある。」(段落番号0014)という本件訂正前の請求項1又は請求項2に記載された事項によって構成される発明の具体的な目的の範囲内における技術的事項の減縮であるから、特許請求の範囲を実質上拡張又は変更するものではない。そして、明りようでない記載の釈明を目的とする訂正事項Cが、特許請求の範囲を実質上拡張又は変更するものではないことも明らかである。
それ故、訂正事項A〜Cは、特許請求の範囲を実質上拡張又は変更するものではない。

3.訂正の可否の判断の結論
以上のとおりであるから、本件訂正は、特許法等の一部を改正する法律(平成6年法律第116号)附則第6条第1項の規定によりなお従前の例によるとされる、特許法第120条の4第3項において準用する平成6年法律第116号による改正前の特許法第126条第1項ただし書、第2項及び第3項の規定に適合するので、本件訂正を認める。

第3 特許異議申立についての判断

1 取消理由の骨子
平成17年2月3日付けで当審より通知した取消理由(以下、単に「取消理由」という。)の骨子は次のとおりである。

[取消理由1]
請求項1乃至3の記載は、特許法第36条第5項第1号又は第2号に規定する要件を満たしていないのであるから、請求項1〜3に係る発明の特許は取り消されるべきものである。

[取消理由2]
請求項1及び2記載の発明は、特開平2-212178号公報(特許異議申立人が提出した甲第1号証。以下、「刊行物1」という。)記載の発明又は特開平4-1067号公報(特許異議申立人が提出した甲第4号証。以下、「刊行物4」という。)記載の発明と同一であるから、請求項1及び2に係る発明の特許は取り消されるべきものである。

[取消理由3]
請求項1乃至3記載の発明は、刊行物1、特開平2-225070号公報(特許異議申立人が提出した甲第2号証。以下、「刊行物2」という。)、特開平1-160661号公報(特許異議申立人が提出した甲第3号証。以下、「刊行物3」という。)、刊行物4、特開昭61-185470号公報(特許異議申立人が提出した甲第5号証。以下、「刊行物5」という。)及び特開平4-62078号公報(特許異議申立人が提出した甲第6号証。以下、「刊行物6」という。)記載の発明から当業者が容易に想到できるものであるから、請求項1乃至3に係る発明の特許は取り消されるべきものである。

そして、これら取消事由1〜3は、特許異議申立人が主張する特許異議の申立の理由すべてを含むものである。

2 本件発明の認定
上記したとおり、本件訂正が認められるから、本件の請求項1乃至3に係る発明は、訂正請求書に添付された訂正明細書の特許請求の範囲の請求項1乃至3に記載されたとおりのものと認める(「第2 訂正の可否の判断」の「1 訂正の内容」を参照。以下、請求項番号に従い「本件発明1」、「本件発明2」、「本件発明3」という。)。

3 刊行物1記載の発明

(1)刊行物1の記載事項
取消理由に引用された刊行物1には次の事項が記載されている。

オ 第2ページ左下欄10行〜同欄18行
「本発明の構成によると、両面モード設定下に於いて、例えば、1〜4ページ(以上)の制御用データがバッファ(データ記憶手段)に保存されている場合には、1ページ目(1枚目の第1面)のプリント動作終了後に、3ページ目(2枚目の第1面)のプリント動作を実行し、その後、2ページ目(1枚目の第2面)のプリント動作を、さらに、4ページ目(2枚目の第2面)のプリント動作を実行することができる。」

カ 第4ページ右上欄3行〜同欄12行
「(2)ビットマップ制御部30
ビットマップ制御部30は、・・・ホストコンピュータ等のデータ処理装置からのデータを一時的に保存するR-バッファ304、パケットに変換された内部コードを格納するP-バッファ305、パケットのページの区切りを管理するポインタを格納するPT-バッファ309、・・・より構成される。」

キ 第5ページ右上欄4行〜同欄7行
「*PAGE:両面印字モード時に於いて、両面プリント処理単位となる4ページの何ページ目の処理であるかを示す『論理ページ番号』を管理する変数.(初期値=1)」

ク 第5ページ右上欄15行〜同ページ左下欄3行
「*BACK:両面印字モード時に於いて、「論理ページ番号」の2ページ目の処理が、1ページ目の印字直後の処理であるか、3ページ目の印字後の処理であるかを示すフラグ.(初期値=0)
BACK=0→1ページ目の印字直後の処理、即ち、1→2と処理されたことを示す.
BACK=1→3ページ目の印字後の処理、即ち、1→3→2(→4)と処理されたことを示す.」

ケ 第5ページ左下欄18行〜同ページ右下欄7行
「第6図は、第5図の受信データ処理ルーチンの詳細を示すフローチャートである。本ルーチンでは、R-バッファ304内に一時的に保存されているホストからのデータを解析して、”パケット”と呼ばれる、より処理し易い内部コードに変換し、これをP-バッファ305に格納する。また、P-バッファ305からのページ単位でのデータ読出しを可能にするべく、読出しポインタ・・・をPT-バッファ309に格納する。」

コ 第9ページ左下欄15行〜同ページ右下欄9行
「*両面解除指定
読み出したパケットが、両面印字解除指定パケットである場合・・・は、ステップS341にすすみ、DUPLEXをリセットする。また、両面印字モード時の各制御フラグ(PAGE、BACK、RFPM)を初期化する(S343)。更に、再給紙ユニット58内(に未排出の記録紙が存在すれば、そ)の記録紙を排紙トレイ90に排出する(S344)。
*文書終了
読出したパケットが、文書終了パケットであると判定された場合・・・は、ステップS348に進み、再給紙ユニット58内(に未排出の記録紙が存在すれば、そ)の記録紙を排紙トレイ90に排出する。」

(2)刊行物1記載の発明
「パケット」とは、ホストから受信したデータを内部コードに変換したものであるから、上記コの「読み出したパケットが、両面印字解除指定パケットである場合」とは、ホストから受信したデータが両面印字解除を意味するデータである場合のことである。
したがって、これらオ〜コの記載を含む刊行物1の全記載及び図示からみて、刊行物1には、以下の発明が記載されているものと認める(以下、「刊行物1発明」という。)。
「受信したデータに基づいて複数ページの表面印刷を行い、次に表面が印刷された用紙に対して、複数ページの裏面印刷を行って両面印刷を行うプリンタ装置の両面印刷制御方法であって、
前記受信したデータが両面印字解除を意味するデータである場合、再給紙ユニット内に未排出の記録紙が存在すれば、その記録紙を排紙トレイに排出する両面印刷制御方法。」

4 刊行物4記載の発明

(1)刊行物4の記載事項
取消理由に引用された刊行物4には次の事項が記載されている。なお、記載中、丸印で囲まれた数字は〈1〉、〈2〉のように表記した。

サ 特許請求の範囲
「11.中間トレイを内蔵した両面印刷機構付きプリンタを制御する両面印刷制御方法であって、
a)複数ページにわたる印刷データを受けて、順次各ページが表面か裏面かを判断し、
b)表面であれば、当該ページの描画をページバッファに対して行うとともに、前記中間トレイを排紙部として当該描画内容の表面印刷を行い、
c)裏面であれば、当該ページの描画をページバッファに対して行い、
d)予め定めた条件が満足されるまで前記処理a)〜c)を反復して実行し、
e)前記条件が満足されたとき、前記処理c)で描画された裏面ページに対応するページバッファの描画内容について、前記中間トレイに格納された用紙に対して当該中間トレイを給紙部として裏面印刷を行う
ことを特徴とする両面印刷制御方法。
12.前記予め定めた条件は、印刷すべき文書の終了、最終ページバッファへの描画完了、前記中間トレイの満杯、紙サイズの変更のうちの少なくとも一つが検出されることである請求項11記載の両面印刷制御方法。」

シ 第8ページ右下欄14行〜第9ページ右上欄19行
「両面印刷制御部17は、初めに、ページ通しNoを0として、前記前半処理部171を起動する。前半処理部171は、ページ通しNo更新部172によりページ通しNoを更新し、それの偶奇を奇数ページ・偶数ページ判定部173により判定し、奇数の場合、奇数ページ処理部174を起動する。奇数ページ処理部174は奇数ページについての描画を、改頁条件を検出するまで描画部174-1にて行った後、給紙部を中間トレイ以外の外部カセット、かつ排紙部を中間トレイとする用紙表面への印刷を、表面印刷用印刷処理起動部174-2を用いて起動する。・・・出来上がった用紙は、一旦中間トレイへ格納される。前記奇数ページ・偶数ページ判定部173にて偶数と判定された場合、偶数ページ処理部175を起動する。偶数ページ処理部175は偶数ページについての描画を改頁条件を検出するまで描画部175-1にて行う。偶数ページについての裏面印刷は後半処理部178にて後で行う。前半処理部171は、本実施例では〈1〉文書終了、〈2〉最終ページバッファへの描画完了、〈3〉中間トレイ満杯、〈4〉紙サイズ変更という4種類の前半処理終了条件のいずれかが成立するまで繰り返される。この前半処理終了条件が成立すると、前半処理を終了した後、後半処理部179を起動する。後半処理部178は、裏面印刷処理起動部17Aを起動することにより、前半処理部171にて描画のなされた各偶数ページに対応するページバッファ部18の描画内容を入力して、給紙部を中間トレイ、かつ排紙部を中間トレイ以外の外部トレイとする用紙裏面への印刷を行う。この裏面印刷により、各用紙の表裏への両面印刷が終わる。後半処理部178は、前記ページバッファに描画されているすべての偶数ページ用の描画内容について、裏面印刷用印刷処理起動部17Aによる処理を行った後、印刷未完了ページ処理部17Bを起動する。印刷未完了ページ処理部17Bは、・・・最終ページのページ通しNoが奇数の場合に中間トレイに残存している用紙(表面印刷完了済み)の中間トレイから外部トレイへの排出処理を行う。」

ス 第3図(b)
第3図(b)からは、「ホストコンピュータからプリンタコントローラへの送信コマンド列」において、その末尾に「文書終了指定用コマンド」が付加されており、奇数ページについてのみ給紙部指定用コマンド、排紙部指定用コマンド及び紙サイズ指定用コマンドが設定されていることが看取できる。

(2)刊行物4記載の発明
これらサ〜スの記載及び図示を含む刊行物4の全記載及び図示からみて、刊行物4には、以下の発明が記載されているものと認める(以下、「刊行物4発明」という。)。
「中間トレイを内蔵した両面印刷機構付きプリンタを制御する両面印刷制御方法であって、
a)末尾に文書終了指定用コマンドが付加され、かつ、表面ページについてのみ給紙部指定用コマンド、排紙部指定用コマンド及び紙サイズ指定用コマンドが設定された複数ページにわたる印刷データを受けて、順次各ページが表面か裏面かを判断し、
b)表面であれば、当該ページの描画をページバッファに対して行うとともに、前記中間トレイを排紙部として当該描画内容の表面印刷を行い、
c)裏面であれば、当該ページの描画をページバッファに対して行い、
d)印刷すべき文書の終了、最終ページバッファへの描画完了、前記中間トレイの満杯、紙サイズの変更のうちの少なくとも一つが検出されるという予め定めた条件が満足されるまで前記処理a)〜c)を反復して実行し、
e)前記条件が満足されたとき、前記処理c)で描画された裏面ページに対応するページバッファの描画内容について、前記中間トレイに格納された用紙に対して当該中間トレイを給紙部として裏面印刷を行い、
f)最終ページが表面の場合には、プリンタ内部に残存している表面印刷完了済みの用紙を外部に排出する両面印刷制御方法。」

5 刊行物2、刊行物3、刊行物5及び刊行物6の記載事項

(1)刊行物2の記載事項
取消理由に引用された刊行物2には次の事項が記載されている。

セ 第3ページ左上欄3行〜同ページ左下欄6行
「次に第1図の動作について説明する。かかる構成において、両面プリントで下段給紙が指示された場合は、ホストコンピュータ1は作成した印字データを入力バッファメモリ2に送る。データ解析機能部3は印字データを解析し、制御コードで表面指定制御コードの場合、作成中のページをクローズし、クローズしたページが表か裏かをチェックする。そして、「裏」であった場合には、そのまま次の処理を行う。一方、「表」であった場合は、対応する裏ページを白紙として作成し、次のページが表面にプリントされる。例えば4ページ目の先頭で表面指定制御コードが解析されると、3ページ目の裏面にプリントされるべき4ページ目の印字データが5ページ目の表面にプリントされ、3ページの裏面は白紙となる。この処理が表面指定制御コード本来の機能である。しかし、この発明では本来の機能の他に給紙台を切り換える機能を付加しているため、表面指定制御コードによって表面に印字するように指示されている文字コードをページバッファメモリ4へ書き込むと同時に、これに付随して当該ページの給紙台切換えフラグを上段にし、印字データの解析を継続して行う。次に表面にプリントする印字データを解析した段階で当該ページの給紙台切換えフラグを下段にしてページバッファメモリ4へ書き込む。・・・これにより、従来は給紙台を切り換える専用の制御コードによって給紙台を切り換えていたものが、表面指定制御コードのみで上段から記録紙が給紙され、その次のページは再び下段から給紙される。このため、章の区切り、部門の区切り等を色紙で印字することが専用の給紙制御コードなしで印字することができる。」

(2)刊行物3の記載事項
取消理由に引用された刊行物3には次の事項が記載されている。なお、記載中、丸印で囲まれた数字は〈1〉、〈2〉のように表記した。

ソ 第2ページ左下欄17行〜同ページ右下欄4行
「両面印刷プリンタ1の動作の概略は次の通りである。給紙機構52により印刷部53に供給された用紙は、その裏面に印刷を行われたのち用紙転送路57に送られる。このようにして、5枚の用紙の裏面印刷が連続的に行われる。裏面印刷済みの用紙は、用紙反転器58によって裏面を反転された後、印刷部53へ戻されて表面の印刷が行われ、スタッカ60へ送り出される。」

タ 第4ページ右上欄4行〜同欄6行
「その印刷ページ順は〈2〉→〈4〉→〈6〉→〈8〉→〈10〉→〈1〉→〈3〉→〈5〉→〈7〉→〈9〉→〈12〉→〈14〉→…となる。」

(3)刊行物5の記載事項
取消理由に引用された刊行物5には次の事項が記載されている。

チ 第1ページ右下欄1行〜第2ページ左上欄9行
「〔従来の技術〕・・・両面印刷のできる印刷装置でも、あらかじめ作成されているページを、最初は表面ページだけを印刷し、次に残る裏面ページを連続して印刷していた。・・・第13図は従来の両面印書制御を説明する模式図で、(a)は外部装置より入力される入力データ、(b)は印書するためのプリントデータで、奇数ページ1、3、5、7、9に続き偶数ページ2、4、6、8、10ページ等のページが指定されている。(c)はページバッファメモリに格納される各ページの入力データを示している。・・・タイミングt0の時点は、既に10ページ分の入力データがページバッファに記憶されている状態で、タイミングt1の時点で、17ページ以降のページデータが入力されている最中で、17ページ以降のページデータがページバッファに順次格納されて行く。タイミングt2は20ページ目のページデータがページバッファに格納された時点で、プリントデータ(b)が奇数ページから順次指定される。」

ツ 第2ページ右上欄末行〜同ページ左下欄7行
「〔作用〕この発明においては、入力データの書き込みに並行して、入力データを偶数または奇数ページに分割した管理データを作成して行き、この管理データを参照しながらページバッファに書き込まれた入力データを偶・奇交互あるいは非同期に記録紙滞留手段と同期させながら順次画像形成部に転送させるものである。」

テ 第12図
第12図からは、プリントデータとして、「1、3、5、7、9」と奇数ページを連続して指定した後、「2、11、4、13、6、15、8、17、10、19、12」と奇数ページと偶数ページを交互に指定し、次の奇数ページである「21」が未だページバッファに格納されていないときには、「21」ではなく偶数ページである「14」を指定し、次いで「21、16」を指定すること、そして、次の奇数ページである「23」が再びページバッファに格納されていないときには、「23」ではなく偶数ページである「18」を指定し、次いで「23、20」と指定することが看取できる。

(4)刊行物6の記載事項
取消理由に引用された刊行物6には次の事項が記載されている。なお、記載中、丸印で囲まれた数字は〈1〉、〈2〉のように表記した。

ト 第4ページ左下欄19行〜同ページ右下欄5行
「〈2〉特定コマンドが排紙口指定コマンドである場合
特定コマンドが排紙口指定コマンドである場合の制御フトーチヤートを第6図に示す。フエースアツプ排紙を行うような排紙口指定コマンドを受領した場合、フラツパ12を矢印a方向に移動すべくフラツパソレノイド(不図示)をONする。」

ナ 第8ページ左上欄6行〜同欄18行
「指定された排紙口の指定を行う排紙口指定コマンドを有効とすることにより機能の追加、性能の向上が図れた。例えば、予給紙待期中でも排紙口の変更が可能なため、画像展開に時間を要した時の設定変更に有効である。また、前述と同様シエアしてプリンタを使用(共用)した場合も同様に、ホストコンピユータに対応する排出口に変更可能であるため、第1のホスト処理が長びいた場合、予給紙された記録紙に第2のホストがプリントし、その専用の排紙口へ変更して排出し、しかる後に再度第1のホスト用に排紙口を再設定して予給紙するようなことも可能となる。」

6 本件発明1について

(1)新規性及び進歩性について
本件発明1と刊行物1発明を比較すると、両者は少なくとも以下の点で相違する。
[相違点1]
本件発明1は、複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行って両面印刷を行うプリンタの両面印刷制御方法であるのに対して、刊行物1発明は、複数ページの表面印刷を行い、次に表面が印刷された用紙に対して、複数ページの裏面印刷を行って両面印刷を行うプリンタの両面印刷制御方法である点。

また、本件発明1と刊行物4発明を比較すると、両者は少なくとも以下の点で相違する。
[相違点2]
本件発明1は、複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行って両面印刷を行うプリンタの両面印刷制御方法であるのに対して、刊行物4発明は、印刷すべき文書の終了、最終ページバッファへの描画完了、前記中間トレイの満杯、紙サイズの変更のうちの少なくとも一つが検出されるという予め定めた条件が満足されるまで、中間トレイを排紙部として表面印刷を行い、前記予め定めた条件が検出されたときは、前記中間トレイに格納された用紙に対して裏面印刷を行うプリンタの両面印刷制御方法である点。

上記相違点1又は相違点2は、刊行物1又は4に記載されているに等しい事項ではないから、本件発明1は、刊行物1発明又は刊行物4発明と同一ではない。
また、刊行物2、刊行物3、刊行物5及び刊行物6のいずれにも「複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行って両面印刷を行うプリンタの両面印刷制御方法」は記載されていないのであるから、本件発明1が、刊行物1乃至刊行物6記載の発明から当業者が容易に想到できたものであるということはできない。

(2)記載不備について
特許異議申立人は、請求項1における「両面印刷終了指定コマンドを検出したとき」が、印刷処理のどのようなタイミングであるのか不明りょうであると主張する(特許異議申立書第3ページ23行〜第4ページ9行)。しかしながら、「・・・とき」とひらがな書きをする場合は必ずしも時点という限定した意味ではなく、「・・・場合」と同じように条件という意味で用いられることが多い。特許明細書においても、「上位装置からの両面印刷の終わりを示すコマンドの受信に基づく、文書終了ページの描画タスク部による検出を、前記後半印刷待ち状態の解除条件として利用することもできる。」(段落番号0018)と記載されているように、両面印刷終了指定コマンドの検出を条件として記載している。したがって、本件訂正後の請求項1の「両面印刷終了指定コマンドを検出したとき」の「とき」も、「場合」と同じく、条件という意味で使用されたものである。
また、特許異議申立人は、本件訂正前の請求項1における「前記プリンタ内部に用紙が残留していれば、当該用紙を外部に排出して両面印刷を終了する」との記載は、印刷して排出するのか、印刷しないで排出するのか不明であり、前者であれば同じことを別の表現で繰り返しているだけであり、何ら技術的な構成がないことになるし、後者であればその技術的な意味がわからないと主張する(特許異議申立書第4ページ10行〜第5ページ3行)。しかしながら、「前記プリンタ内部に表面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了する」と訂正されたことにより、未印刷面を印刷して排出することが明確になった。そして、未印刷面を印刷することは両面印刷終了手順の一つであるから、技術的な意味がないということはできない。

(3)まとめ
以上のとおり、本件発明1は、刊行物1発明又は刊行物4発明と同一であるとも、刊行物1乃至刊行物6記載の発明に基づいて当業者が容易に発明をすることができたものであるともいうことはできない。また、本件訂正後の請求項1が、発明の詳細な説明に記載した発明を記載したものではないとも、発明の構成に欠くことのできない事項のみを記載したものではないともいうことはできない。

7 本件発明2について

(1)新規性及び進歩性について
本件発明2と刊行物1発明を比較すると、両者は少なくとも以下の点で相違する。
[相違点3]
本件発明2は、複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行うプリンタの両面印刷制御方法であるのに対して、刊行物1発明は、複数ページの表面印刷を行い、次に表面が印刷された用紙に対して、複数ページの裏面印刷を行って両面印刷を行うプリンタの両面印刷制御方法である点。

また、本件発明1と刊行物4発明を比較すると、両者は少なくとも以下の点で相違する。
[相違点4]
本件発明2は、複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行うプリンタの両面印刷制御方法であるのに対して、刊行物4発明は、印刷すべき文書の終了、最終ページバッファへの描画完了、前記中間トレイの満杯、紙サイズの変更のうちの少なくとも一つが検出されるという予め定めた条件が満足されるまで、中間トレイを排紙部として表面印刷を行い、前記予め定めた条件が検出されたときは、前記中間トレイに格納された用紙に対して裏面印刷を行うプリンタの両面印刷制御方法である点。

上記相違点3又は相違点4は、刊行物1又は4に記載されているに等しい事項ではないから、本件発明2は、刊行物1発明又は刊行物4発明と同一ではない。
また、刊行物2、刊行物3、刊行物5及び刊行物6のいずれにも「複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行うプリンタの両面印刷制御方法」は記載されていないのであるから、本件発明2が、刊行物1乃至刊行物6記載の発明から当業者が容易に想到できたものであるということはできない。

(2)記載不備について
本件訂正後の請求項2に記載した「両面印刷終了指定コマンドを検出したとき」の「とき」が、「場合」と同じく、条件という意味で使用されたものであることは前記6(2)に記載したとおりである。また、本件訂正により、未印刷面の印刷が両面印刷終了手順の一つであることが明確となったこと、そして、未印刷面を印刷することに技術的な意味がないということはできないことも前記6(2)に記載したとおりである。
さらに特許異議申立人は、本件発明2では、「両面印刷が100ページである場合には、1、3…99ページを印刷し、その後で2、4、6…100ページを印刷することになるが、そのような多ページの両面印刷をも含む構成についての記載は明細書には存在しない。」と主張する(特許異議申立書第6ページ6行〜同ページ10行)。しかしながら、本件発明2は、用紙の複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行って両面印刷を行うものであるから、例えば、中間トレイといった片面印刷済みの用紙をプリンタ内部に大量に保有する構成がなくとも、多数ページの両面印刷を行うことは可能である。

(3)まとめ
以上のとおり、本件発明2は、刊行物1発明又は刊行物4発明と同一であるとも、刊行物1乃至刊行物6記載の発明に基づいて当業者が容易に発明をすることができたものであるともいうことはできない。また、本件訂正後の請求項2が、発明の詳細な説明に記載した発明を記載したものではないとも、発明の構成に欠くことのできない事項のみを記載したものではないともいうことはできない。

8 本件発明3について
特許異議申立人は、請求項3における「プリンタ内部に滞留する用紙を一旦すべて排出し」との記載は、用紙裏面を印刷しないで排出することを意味するものであるが、そのような記載は特許明細書に記載されていないと主張する(特許異議申立書第7ページ17行〜第8ページ5行)。
確かに、特許明細書の発明の詳細な説明には、「プリンタエンジン部120内の用紙を一旦すべて排出する。」という、本件訂正後の請求項3と同様の記載が存在する(下記ニの記載参照。下線は当審が付した。)。

ニ 段落番号0105〜0106
「両面印刷排出フラグ1413がとる値を、以下のように定める。本フラグは3ビットのデータで表わす。
0:両面印刷時排出不要
0以外:両面印刷時排出要
ビット0:給紙部変更フラグとして利用
ビット1:排紙部変更フラグとして利用
ビット2:紙サイズ変更フラグとして利用
なお、本両面印刷排出フラグ1413は、3ビット構成としたので、給紙部変更、排紙部変更、紙サイズ変更が同時発生した場合に、いずれの要因が発生しているかを検出できる。本両面印刷排出フラグ1413の値が0以外の場合、印刷制御装置110はプリンタエンジン部120内の用紙を一旦すべて排出する。その後、給紙部、排紙部、紙サイズの内必要なものを変更してから、再び両面印刷を再開する。」

しかしながら、上記記載ニにおける「プリンタエンジン部120内の用紙を一旦すべて排出する」のは、「両面印刷排出フラグ1413の値が0以外の場合」である。そして、両面印刷排出フラグの値が0以外の場合(両面印刷排出フラグONの場合と同意である。)には、表面印刷待ち行列内の全タスクを先頭から順に、表面印刷待ち状態から解除することしか特許明細書には記載されていない(下記ヌ及びネの記載参照。)。

ヌ 段落番号0192〜0193
「当該印刷ページバッファ番号用の両面印刷排出フラグ1413がONか判定する(3531)。ONならば、両面印刷排出フラグONに伴う、表面印刷可能タスクの待ち解除(3532)を行う。・・・ステップ3531の判定の後、印刷タスクは表面印刷待ちマクロを発行し、本タスクを表面印刷待ち状態に移す(3535)。」

ネ 段落番号0210
「図36を用いて、両面印刷排出フラグONに伴う、表面印刷可能タスクの待ち解除(3532)の手順を説明する。まず、表面印刷待ち行列内に待ちタスクがあるか判定する(361)。あれば、・・・本表面印刷待ち行列内の全タスクを先頭から順に、表面印刷待ち状態から解除する(362)。」

また、表面印刷待ち行列内の全タスクを先頭から順に、表面印刷待ち状態から解除したならば、これら印刷タスクがすべて実行され、未印刷面が印刷されることしか特許明細書には記載されていない(前記ア〜エの記載参照。)。
そうすると、上記ニにおける「両面印刷排出フラグ1413の値が0以外の場合、印刷制御装置110はプリンタエンジン部120内の用紙を一旦すべて排出する。」との記載は、特許明細書の発明の詳細な説明の他の記載を参酌すると、「両面印刷排出フラグ1413の値が0以外の場合、印刷制御装置110はプリンタエンジン部120内の用紙を、未印刷面を印刷してすべて排出する。」と解するべきであり、決して、用紙の未印刷面を印刷せずに排出することを意味するものではない。
これに対して、本件訂正後の請求項3には両面印刷排出フラグに関する記載がないのであるから、「プリンタ内部に滞留する用紙を一旦すべて排出し」との記載を、用紙の未印刷面を印刷した後で排出するものと限定的に解する理由はない。それ故、本件訂正後の請求項3は、プリンタ内部に滞留する用紙を印刷せずに排出することも含むものである。特許権者も「請求項1における「排出」とは「印刷して排出」と「印刷しないで排出」の両方を意味します。」(平成17年4月15日付け特許異議意見書第4ページ4行〜同ページ5行)と主張する。
特許権者は、用紙の未印刷面を印刷せずに排出することが発明の詳細な説明に記載されている根拠として、「理由は、原則的には「印刷して排出」するのですが、例えば何らかのエラーが発生した場合には用紙を残留させないために「印刷しないで排出」することがあるからです。用紙の残留を問題視することについては、例えば段落番号0005や段落番号0013に記載されております。エラー発生時の処理方式については、例えば段落番号0247乃至0316に記載されております。これをもって、請求項1における「排出」の意味についての疑問点は解消するものと思料致します。」(平成17年4月15日付け特許異議意見書第4ページ5行〜同ページ11行)と主張する。
しかしながら、段落番号0005及び段落番号0013の記載はプリンタ内に用紙が滞留し続けるという課題を、また、段落番号0247乃至0316の記載は紙なしエラー時の処理方式をそれぞれ記載したにすぎず、未印刷面の用紙を印刷せずに排出するとの記載は存在しない。しかも後者では、「両面印刷では紙なしが発生した場合、プリンタエンジン内に滞留されている用紙については印刷可能(表面ページについての後半印刷)であるため、印刷を実行し、該滞留用紙を排出する。そして、用紙が補給されるまで印刷制御装置110をホールド状態とし、補給されるとそこから再開するようにする。」(段落番号0248。下線は当審が付した。)と記載されており、まさしく未印刷面を印刷して排出しているのである。
よって、特許権者の上記主張を採用することはできない。
してみると、本件訂正後の請求項3は、プリンタ内部に滞留する用紙裏面を印刷せずに排出することまで包含する記載となっているが、特許明細書の発明の詳細な説明には、給紙部指定又は排紙部指定がある場合に、プリンタ内部に滞留する用紙を印刷せずに排出することは記載されていない。
したがって、本件訂正後の請求項3は、発明の詳細な説明に記載した発明を記載したものということはできず、特許法第36条第5項に規定する要件を満たしていない。

第4 むすび
以上のとおり、特許異議の申立ての理由によっては本件発明1及び本件発明2についての特許を取り消すことはできない。他方、本件発明3についての特許は、特許法第36条第5項に規定する要件を満たさないものとして拒絶の査定をしなければならない特許出願に対してされたものである。
よって、特許法等の一部を改正する法律(平成6年法律第116号)附則第14条の規定に基づく、特許法等の一部を改正する法律の施行に伴う経過措置を定める政令(平成7年政令第205号)第4条第2項の規定により、結論のとおり決定する。
 
発明の名称 (54)【発明の名称】
両面印刷制御方法および印刷制御装置
(57)【特許請求の範囲】
【請求項1】受信した印刷データに基づいて用紙の複数ページの裏面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷を行なって両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
両面印刷文書の印刷データの末尾に両面印刷の終了を意味する両面印刷終了指定コマンドを付加し、該両面印刷終了指定コマンドを検出したとき、最終ページが表面であれば、最終ページの裏面の白紙印刷を行った後で表面が未印刷の用紙の印刷を行い、最終ページが裏面であれば、表面が未印刷の用紙の印刷を行い、前記プリンタ内部に表面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了することを特徴とする両面印刷制御方法。
【請求項2】受信した印刷データに基づいて用紙の複数ページの表面印刷を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの裏面印刷を行なって両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
両面印刷文書の印刷データの末尾に両面印刷の終了を意味する両面印刷終了指定コマンドを付加し、該両面印刷終了指定コマンドを検出したとき、最終ページが表面であれば、裏面が未印刷の用紙の印刷を行った後で最終ページの裏面の白紙印刷を行い、最終ページが裏面であれば、裏面が未印刷の用紙の印刷を行い、前記プリンタ内部に裏面が未印刷の用紙が複数枚残留していれば、当該用紙について未印刷面の印刷を行った後で当該用紙を外部に排出して両面印刷を終了することを特徴とする両面印刷制御方法。
【請求項3】受信した印刷データに基づいて用紙の複数ページの表面印刷と複数ページの裏面印刷の内の一方を行い、次に表面印刷と裏面印刷とを交互に行い、次に複数ページの表面印刷と複数ページの裏面印刷の内の他方を行なって両面印刷を行う両面印刷機構付きプリンタの両面印刷制御方法であって、
前記印刷データに、用紙裏面についての給紙部指定または排紙部指定があるとき、該用紙の裏面を白紙のまま出力するとともに、プリンタ内部に滞留する用紙を一旦すべて排出し、当該裏面ページを新たな表面ページとして印刷し、該新たな表面ページの用紙以降について前記給紙部指定または排紙部指定を有効にしたことを特徴とする両面印刷制御方法。
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、印刷制御に係り、特に両面印刷機構付きのページプリンタ(レーザプリンタ、LED(液晶ダイオード)プリンタ、LCS(液晶シャッタ)プリンタ等)の両面印刷制御方法に関する。
【0002】
【従来の技術】近年、1枚の用紙の表面および裏面に別のページ内容を印刷する両面印刷が普及している。このような両面印刷機構付きのページプリンタ用の制御装置としては、特開平1-160731号公報、特開平4-1067号公報、特開平4-7174号公報に記載のものが挙げられる。1枚の用紙の表面と裏面に印刷されるページサイズは同一でなければならない。
【0003】また、特開平2-63870号公報には、特殊な両面印刷として、用紙の表面および裏面にそれぞれ複数ページ分の印字情報を一括して記録するプリンタが開示されている。
【0004】
【発明が解決しようとする課題】用紙の各面に1頁分のデータを印刷する従来の両面印刷を行う印刷制御装置においては、用紙の表面と裏面で紙サイズを変えた場合、印刷が中止されるか、またはプリンタ内に別サイズ用紙が混入し、プリンタエラーが発生する。このため、印刷ができなくなるという問題があった。
【0005】また、印刷制御装置が一つの文書についてのみ文書データ(印刷コマンド列で構成され、印刷データとも呼ぶ)を受信し、該文書データが表面または裏面ページのうちいずれか一方のページで終わっているような場合、該文書の最終ページが明示されていないため、最終ページを含む1ページ以上のページがプリンタ内に滞留し続けるという現象が発生する。この場合、次の文書データを印刷制御装置が受信するまで、ユーザが第一の文書全体についての両面印刷結果を入手できないという問題が生じる。さらに、一定時間以上用紙がプリンタ内に滞留すると、プリンタの機構によっては、プリンタエラー(紙ジャムその他)が発生するという問題もあった。
【0006】また、前記従来技術は、中間トレイ方式の両面印刷機構を主に対象としたものであるため、図3と図4に示すような巡回型両面印刷機構については、十分な考慮がなされていなかった。従って、巡回型両面印刷機構を用いる場合、従来技術と同等かそれ以上の自由度の両面印刷制御を行うことができないという問題があった。
【0007】具体的には、以下に示す項目について配慮がなされておらず、より自由度が大きくユーザにとって使い易い両面印刷機能を提供できなかった。
【0008】(1)1文書内で用紙毎に紙サイズや印刷部数を変える機能。さらに、ページ毎に紙サイズや印刷部数を変える機能。
【0009】(2)紙サイズ、印刷部数、紙縦横方向、給紙部、排紙部等を裏面印刷において指定した場合の処理の仕様と手順。特に、表面と裏面とで、紙サイズ、印刷部数、紙縦横方向等について論理的な一貫性が崩れた場合に、印刷が停止することなく、印刷を続行するための仕様と手順。
【0010】(3)印刷制御装置において、(a)プリンタエンジン最大滞留枚数到達、(b)文書終了、(c)紙サイズ変更、(d)給紙部、排紙部変更、(e)前半印刷用紙の巡回完了等を検出した場合の処理手順。巡回型両面印刷機構を用いた両面印刷では、初めに用紙の裏面または表面について給紙パス1と排紙パス2についての印刷(前半印刷と呼ぶ)を行った後、用紙の表面または裏面について給紙パス2と排紙パス1についての印刷(後半印刷と呼ぶ)を行う。「前半印刷用紙の巡回完了」とは、前半印刷が終了した用紙がプリンタエンジン内を巡回し終わり、次に後半印刷を給紙パス2について行うことが可能になった状態のことをいう。
【0011】(4)印刷部数が2以上のマルチページコピーの処理手順。特に、プリンタエンジン最大滞留枚数を越える場合についてのマルチページコピーの処理手順。
【0012】本発明の第1の目的は、上記第一の問題点を解決し、用紙の表面と裏面で紙サイズや印刷部数の異なる場合の印刷を可能にすることである。
【0013】本発明の第2の目的は、上記第2の問題点を解決し、プリンタ内に用紙が滞留し続けるという前述の現象をなくすことにある。
【0014】本発明の第3の目的は、上記第3の問題点を解決し、巡回型両面印刷機構付きのプリンタを用いた両面印刷において、自由度の大きな両面印刷制御の方法と装置を提供することにある。
【0015】
【課題を解決するための手段】上記目的を達成するため、本発明による印刷制御装置は、印刷コマンド列を発行する上位装置から受けた印刷コマンドを解釈、実行し、巡回型両面印刷機構付きプリンタに印刷を指示する印刷制御装置において、複数ページ分のページバッファと、該ページバッファに前記印刷コマンド列に応じて描画処理を行う描画処理部と、該描画処理部により描画されたページバッファの内容に基づいて印刷処理を行う印刷処理部とを備え、前記描画処理部はページ順に前記ページバッファに対して描画処理を行い、順次描画を終えたページについて前記印刷処理部を起動し、前記印刷処理部は、前記描画処理部からの起動に応じて、当該ページが前半印刷ページか後半印刷ページかを判別し、前半印刷用のページならば直ちに前半印刷を行い、後半印刷用のページならば当該印刷処理を後半印刷待ち状態とし、予め定めた後半印刷待ち状態の解除条件の検出に応じて、前記後半印刷待ち状態の印刷処理を当該待ち状態から解除し、印刷を行うようにしたものである。
【0016】プリンタエンジン最大滞留枚数到達を、前記後半印刷待ち状態の解除条件として利用することができる。
【0017】この場合、後半印刷ページ用の印刷タスクは、プリンタエンジン最大滞留枚数に達するまで、後半印刷待ち状態となる。後半印刷用の印刷タスクは、プリンタ内部の用紙滞留枚数の最大滞留枚数への到達を検出すると、後半印刷待ち状態にある先頭の印刷タスクを当該待ち状態から解除し、当該印刷タスクを待ち状態とする。
【0018】また、上位装置からの両面印刷の終わりを示すコマンドの受信に基づく、文書終了ページの描画タスク部による検出を、前記後半印刷待ち状態の解除条件として利用することもできる。
【0019】この場合、例えば、前記描画処理部は、両面印刷終了処理部を起動する。両面印刷終了処理部は、後半印刷待ち状態のタスクがあるか判定し、あれば後半印刷待ち状態のすべての印刷処理について、先頭から順に、当該後半印刷待ち状態から解除する。
【0020】また、紙サイズ、給紙部、排紙部のいずれかの変更の検出を、前記後半印刷待ち状態の解除条件として利用することもできる。
【0021】また前半印刷用紙の巡回完了の検出を、前記後半印刷待ち状態の解除条件に加えることもできる。
【0022】この場合、例えば、上位装置からの印刷コマンド列に含まれる紙サイズ指定、給紙部指定、排紙部指定に応じて、紙サイズ、給紙部、排紙部のいずれかの変更の有無を前記描画処理部が検出し、制御テーブルに設定する。描画処理部は、前記紙サイズ、給紙部、排紙部のいずれかの変更の検出時に、用紙の表面ペ-ジ用の印刷データはあるが、対応する裏面ページは印刷データがない白紙の用紙が検出されるか判定する。本判定がYesであれば、裏面用の白紙印刷を実現するため、描画処理部は白紙の裏面ページ用の印刷タスクの起動とペ-ジバッファの獲得を行う。印刷処理部は、該制御テーブルの内容を参照して、紙サイズ、給紙、排紙部のいずれかに変更があれば、後半印刷待ち状態にあるすべての印刷処理について先頭から順に当該後半印刷待ち状態から解除する。その後、本ページ用の印刷処理を後半印刷待ち状態に移す。そして、前記後半印刷待ち状態から解除された後半印刷ページ用の印刷タスクによる印刷をすべて実行した後、紙サイズ、給紙部、排紙部等の変更のあったページ以降の印刷を続行する。
【0023】前記後半印刷待ち状態の各種解除条件は、併用することができる。
【0024】
【作用】本発明によれば、用紙の表面と裏面で紙サイズを変えても、裏面ページ用の印刷タスクの起動とページバッファの獲得を行うことにより、裏面ページを白紙のままとし、変更後の紙サイズを表面ページとして印刷を続行することができる。従って、用紙の表面と裏面で紙サイズの異なる印刷を実現することができる。
【0025】また、上位装置から受信した両面印刷文書の終わりを描画処理部が検出し、本検出に基づいて起動された両面印刷終了処理部が、プリンタエンジン内の前半印刷済みの残留用紙を排出し、本文書についての両面印刷を終えることができる。
【0026】さらに、前記手順を実行することにより、(a)一文書内または用紙毎に紙サイズを変えた場合、(b)その変更により用紙の表面と裏面で論理的一貫性が崩れた場合、(c)プリンタエンジン最大滞留枚数、文書終了、紙サイズ変更、給紙部変更、排紙部変更等を検出した場合のいずれについても、両面印刷を支障なく続行することができる。
【0027】その他、1枚の用紙の表面と裏面とで印刷部数の異なる印刷データ、あるいは紙縦・横方向が異なる印刷データに対しても、本発明により対処することができる。
【0028】
【実施例】以下、本発明の実施例について詳細に説明する。初めに、図1と図2の構成図を用いて本発明における印刷システムの構成を説明する。
【0029】図1に示すように、本印刷システムは、ホストコンピュータ100、印刷制御装置110、及び巡回型両面印刷機構付きのプリンタエンジン部120からなる。
【0030】印刷制御装置110は、ホスト通信制御部111、コマンドバッファ部112、コマンド処理部113、ページバッファ制御部114、ページバッファ部115、及び及びプリンタ制御部116からなる。
【0031】ホストコンピュータ100が送信した印刷コマンドはホスト通信制御部111が受信し、コマンドバッファ部112へ格納される。以後、印刷コマンドを単にコマンドと呼ぶこともある。コマンドバッファ部112内のコマンドはコマンド処理部113により処理され、その実行結果である文字、図形、イメージ等の描画データは、ページバッファ部115へ格納される。ページバッファ部115内のデータは、プリンタ制御部116が読出し、プリンタエンジン部120が受信できる形式の信号に変換して、プリンタエンジン部120へ出力される。プリンタエンジン部120は入力ざれた信号に従って、用紙面上への印刷を電子写真メカニズム、ワイヤドット印刷メカニズム等を用いて行う。
【0032】本実施例では両面印刷制御を行うため、ホストコンピュータ100内に、片面・両面印刷指定コマンド発行部101、両面印刷終わり指定コマンド発行部102、給紙部指定コマンド発行部103、排紙部指定コマンド発行部104、紙サイズ指定コマンド発行部105、紙縦横方向指定コマンド発行部106、印刷部数指定コマンド発行部107を設けた。また、印刷制御装置110との通信を行うための通信制御部108も有する。101から107の各部は、印刷制御装置110に対して片面印刷/両面印刷、両面印刷の終わり、給紙部、排紙部、紙サイズ、紙縦横方向、印刷部数を指定するために、各々片面・両面印刷指定コマンド、両面印刷終わり指定コマンド、給紙部指定コマンド、排紙部指定コマンド、紙サイズ指定コマンド、紙縦横方向指定コマンド、印刷部数指定コマンドを発行する。
【0033】コマンド処理部113は、描画処理部1131、印刷処理部1132、両面印刷終了処理部1133を有する。また、ページバッファ制御部114はページバッファ管理テーブル部1141を有し、プリンタ制御部116はプリンタ管理テーブル部1161を有する。これらのテーブルの詳細については後述する。
【0034】本実施例では、印刷制御装置110内のコマンド処理部113、ページバッファ制御部114、及びプリンタ制御部116に、両面印刷制御のための仕組みを設けた。まず、図2に示すように、コマンド処理部113内の描画処理部1131(タスクとして実現するため描画タスク部とも呼ぶ)に、コマンド解釈部201、片面・両面印刷指定コマンド処理部202、両面印刷終了指定コマンド処理部203、給紙部指定コマンド処理部204、排紙部指定コマンド処理部205、紙サイズ指定コマンド処理部206、紙縦横方向指定コマンド処理部207、印刷部数指定コマンド処理部208、改頁処理部209を設けた。201から209の各部の処理手順は、図26から図34の通りであり、後で詳しく説明する。
【0035】また、コマンド処理部113内の印刷処理部1132(後述するようにタスクとして実現するため印刷タスク部とも呼ぶ)に、両面印刷指定判定部210、表面印刷指定判定部220、表面印刷用前処理部1(230)、表面印刷用前処理部2(240)、裏面印刷用前処理部250、印刷マクロ発行部260、プリンタエンジン滞留枚数更新部270、両面印刷紙なしエラー処理部280、マルチページコピー用後処理部290を設けた。ここで、表面印刷用前処理部1(230)は、両面印刷排出フラグ判定部231、プリンタエンジン滞留枚数判定部232、表面印刷待ち/解除部233、両面印刷排紙フラグONに伴う表面可能タスク待ち解除部234、プリンタエンジン滞留枚数到達に伴う表面印刷可能タスク待ち解除部235、マルチページコピー用印刷タスク間同期制御部236とで構成した。また、表面印刷用前処理部2(240)は、プリンタエンジン滞留枚数判定部241、マルチページコピー用印刷タスク間同期制御部242とで構成した。また裏面印刷用前処理部(250)は、プリンタエンジン滞留枚数判定部251、両面印刷排紙フラグONに伴う表面可能タスク待ち解除部252、プリンタエンジン最大滞留枚数到達に伴う表面印刷可能タスク待ち解除部253とで構成した。印刷タスク部1132を構成する各部の処理手順は、図36から図45の通りであり、後で詳しく説明する。
【0036】また、コマンド処理部113内に両面印刷終了処理部1133(タスクとして実現するため両面印刷終了タスク部とも呼ぶ)を設け、前述の両面印刷終了コマンド処理部が本タスクを起動するようにし、本タスクが両面印刷の終了処理を実行することにより、従来技術における第2の問題点を解決できるようにした。両面印刷終了処理部113の処理手順は、図35の通りであり、後述する。
【0037】本印刷制御装置110では、両面印刷制御を、次の2項目を達成できるように、実現した。
【0038】(1)片面印刷制御方式からのプログラム変更を極力減らすため、コマンド受信と描画処理は片面印刷制御装置と極力同一とし、両面印刷制御は主に印刷処理にて行う。
【0039】(2)後半印刷用の描画が遅れた場合、そのページ用の後半印刷を待たせるための機構がプリンタエンジン部120になくても対応可能な方式とする。
【0040】ホストコンピュータ100が印刷制御装置110に送信する印刷コマンド列の例を、図5を用いて説明する。
【0041】本印刷コマンド列は、文書先頭部500、第1ページ部510、第2ページ部520、第3ページ部530、…、文書終了部540からなる。文書先頭部500は属性パラメータを初期化するためのリセットコマンド501、及び片面/両面印刷のいずれかを指定するための片面・両面印刷指定コマンド等からなる。
【0042】第1ページ部510と第2ページ部520と第3ページ部530は、第1ページから第3ページの描画、印刷内容を指定するための各種属性パラメータの設定コマンド(511〜514、516、517、524、52A)と、各種描画コマンドの列(515、518、525、52B、535、538)とページ区切りを示すための改頁コマンド(519、529、539)とからなる。
【0043】文書終了部540には、両面印刷の場合少なくとも両面印刷終了指定コマンド541を配置し、本文書の終りを明示する。
【0044】本例では、前述の属性パラメータの設定コマンドとして紙サイズ指定コマンド511、印刷部数指定コマンド512、文字種類指定コマンド513、文字サイズ指定コマンド(514と524)、線幅指定コマンド516、線種指定コマンド517と塗り潰しパターン指定コマンド52Aを示したが、描画や印刷に関する任意の属性パラメータを、各種属性パラメータの設定コマンドを用いて設定することができる。
【0045】また本例では描画コマンドとして、文字列の描画を指示するための文字コード列(515と525と535)と、円弧描画コマンド(518と538)と、多角形塗り潰しコマンド52Bを示したが、任意の文字、図形、イメージの描画を本描画コマンドを用いて指定することができる。また、ページ区切りを明示的に示す改頁コマンド(519、529、539)を各ページ区切りに配置したが、本改頁コマンドの代わりに、ページ区切りを暗黙的に示すようにしてもよい。暗黙的なページ区切りの例としては、紙サイズ指定コマンド、印刷部数指定コマンド、印字方向(ポートレート/ランドスケープ)指定コマンド、自動改頁等がある。自動改頁とは、ページ長を越える行についての文字描画を指定した場合に、印刷制御装置が(a)ページ長の範囲での1ページ分の印刷と(b)次ページへのページ長を越えた分の印刷を行うための機構である。
【0046】図6と図7に両面印刷に関する各種印刷条件指定用コマンドの仕様を示す。図では、コマンド名称と、そのコマンドの引数と、そのコマンドの機能と、引数の指定エラーの判定条件を示すデータエラー判定条件と、引数の初期値とを示している。コマンドには、片面・両面印刷指定、紙サイズ指定、印刷部数指定、紙縦横方向指定、印字方向指定の各コマンド(以上、図6)と、給紙部指定、排紙部指定、両面印刷終了指定の各コマンド(以上、図7)がある。
【0047】図8に、用紙表面と用紙裏面への各種印刷条件指定時の処理仕様を示す。すなわち、給紙部指定、排紙部指定、紙サイズ指定、印刷部数指定、紙縦横方向指定の各指定について、表面の場合と裏面の場合の仕様を示している。図示のように、本実施例では、表面および裏面の双方にすべての指定を許可している。但し、表面の指定内容と矛盾する指定が裏面に指定されている場合には、その用紙の裏面を白紙のまま排出し、裏面ページを次の用紙の表面ページとして印刷する等の処理を行う。
【0048】次に図9を用いて、印刷制御装置110のハードウェア構成を説明する。
【0049】印刷制御装置110は、CPUバス91、ホスト通信コントローラ92、CPU93、ROM94、ユーザ操作パネル95、サブCPU96、プリンタメモリコントローラ97及びRAM98からなる。
【0050】CPUバス91は、CPU93の各種入出力信号(アドレス信号、データ信号、その他の制御信号)からなる。
【0051】CPU93は本CPUバス91を介して、92、96、97等の周辺コントローラや94、98等のメモリと入出力を行う。
【0052】ホスト通信コントローラ92は、印刷制御装置110がホストコンピュータ100と、ホストI/Fと呼ぶI/Fに従って通信を行うためのコントローラである。本通信(ホストI/F)の物理I/FとしてはSCSI(Small Computer SystemInterface)、RS232C、RS422、GP-IB(General Purpose Interface Bus)、セントロニクス、HDLC(High-Level Data LinkControl),Ethernet等を用い、使用する物理I/Fの種類に応じて本コントローラ92のハードウェア論理として適切なものを実装する。
【0053】ROM94には印刷制御装置110の初期化立上げプログラム(IPL(Initial Program Loading)プログラムとも呼ぶ)と文字フォントの一部を格納する。
【0054】RAM98には(a)本印刷制御装置110の制御プログラム、(b)文字フォントの残り、(c)コマンドバッファ部メモリ、(d)ページバッファ部メモリ、及び(e)ページバッファ管理テーブル、プリンタ管理テーブル、タスク管理テーブル等の各種管理テーブル、その他を格納する。これらのうち(a)と(b)は前記IPLプログラムにてホストコンピュータ100からダウンロードすることにより、格納する。また(a)と(b)はRAM98に格納せず、ROM94に予め格納しておいてもよい。また逆にROM94には文字フォントを一切格納せず、すべてRAM98に格納してもよい。
【0055】サブCPU96は、CPU93の指示に従い、ユーザ操作パネル95やプリンタエンジン部120との間で入出力処理を行う。
【0056】プリンタメモリコントローラ97はRAM98の内容(通常ページバッファ部の内容)のプリンタエンジン部120への読出し処理、及びRAM98がDRAMの場合、DRAMメモリの制御(リフレッシュ等)を行う。本読出し処理は内蔵のDMA(Direct Memory Access)機能を用いて行う。紙面一ペ-ジ分のデ-タのペ-ジバッファ部からの読出しが終了した時点で、プリンタメモリコントローラ97がCPU93に対し割込み信号(CPUバス91内の信号の一部)をアサートし、CPUによるページバッファ読出し終了割込み処理を起動する。
【0057】印刷制御装置110は、プリンタエンジン部120との間で、サブCPU96が信号線902-1を介し、プリンタメモリコントローラ97が信号線902-2を介して、プリンタエンジンI/Fと呼ぶI/Fに従って、通信を行う。
【0058】プリンタメモリコントローラ97は、信号線902-2を用いて、プリンタエンジン部120がシャトルプリンタの場合には、ページバッファ部の内容を形式変換した後、プリンタエンジン部120へ出力する。またプリンタエンジン部120がレーザプリンタの場合には、プリンタメモリコントローラ97は、信号線902-2を用いて、ページバッファ部の内容をパラレルシリアル変換した後、プリンタエンジン部120へ出力する。
【0059】信号線902-1は、プリンタエンジン部120がシャトルプリンタの場合には、プリンタエンジン部120からページ先頭位置を示すための信号等を受信するために用いる。またプリンタエンジン部120がレーザプリンタの場合には、本信号線902-1は、サブCPU96がプリンタエンジン部120へ問合せや指示のためのコマンドを送信し、プリンタエンジン部120から応答ステータスを受信するためのコマンド、ステータス送受信信号及び、前記ページバッファ部の内容のプリンタエンジン部120への読出し手順を制御するための制御信号を搬送するために用いる。
【0060】次に図10を用いて印刷制御装置110のソフトウェア構成を説明する。本図に示すように、ソフトウェアは、モニタ部1010とタスク処理部1020とから構成される。モニタ部1010は、カ-ネル部1011、ホスト通信制御部1012、コマンドバッファ制御部1013、ファイル制御部1014、ペ-ジバッファ制御部1015、プリンタ制御部1016とコマンドバッファ部112とペ-ジバッファ部115とから構成される。
【0061】カ-ネル部1011は、割込み制御プログラムのメインル-チン、ス-パバイザコ-ル(SVCと略す)制御のメインル-チン、タスク制御部、及びタイマ制御部とからなる。
【0062】ホスト通信制御部1012は、ホストコンピュ-タ100と印刷制御装置110の間で各種コマンドの授受を行う。例えば、ホストコンピュ-タ100から印刷コマンド列を受信したり、印刷制御装置110内で発生した各種事象(エラ-発生、頁印刷終了、文書印刷終了等)をホストコンピュ-タ100へ報告したりする。
【0063】コマンドバッファ制御部1013は、コマンドバッファ部112についての書き込みと読み出しを行う際に用いる書き込みスタ-トポインタ、書き込みエンドポインタ、読み出しポインタ等の制御を行う。
【0064】本コマンドバッファ制御部1013をホスト通信制御部1012が用いて、印刷コマンドをコマンドバッファ部112へ格納する。また同じくコマンドバッファ制御部1013を用いて、後述するタスク処理部1020内の描画タスク部1021がコマンドバッファ部112の内容を読み出し、処理する。
【0065】ファイル制御部1014は印刷制御装置内の二次記憶装置に属する各ファイルを制御するための部分であり、各ファイル内デ-タのアクセスのための制御や、ファイルを構成するファイル実体(複数個のブロックの集合)の管理等を行う。タスク処理部1020内の各タスクは本ファイル制御部1014内のファイル制御用の各種SVC機能を用いて、ファイルの制御を行う。なお本ファイル制御部1014がなくても、両面印刷制御を支障なく行うことができるが、本ファイル制御部1014によりシステムの性能と使い勝手を向上させることができる。
【0066】ペ-ジバッファ制御部1015は複数ペ-ジ構成のペ-ジバッファ部115についての空き管理(獲得、解放の管理)を行う。本空き管理を用いることで、ペ-ジバッファへの描画書き込みが必要になった時点で、紙サイズに対応して定まる必要なだけのペ-ジバッファを獲得し、描画内容の読み出しが終った時点で該ペ-ジバッファを解放することができる。
【0067】プリンタ制御部1016はプリンタエンジン部120とプリンタエンジンアダプタ(サブCPU96やプリンタメモリコントローラ97)の空き管理や、プリンタエンジン部120との入出力の制御を行う。
【0068】タスク処理部1020は、描画タスク部1021と印刷タスク部1022とその他のタスクの処理部1023とからなる。印刷制御装置110に実装したタスクの一覧を図11に示す。本図には、タスク番号、タスクの名称、システム(S)/ユーザ(U)タスクの別、タスクの機能、優先度等を、各タスク毎に示した。
【0069】印刷タスク部1022(図10)は、印刷タスク1(10221)、印刷タスク2(10222)、…、印刷タスクN(10223)とからなる。各印刷タスクnは、描画タスクがペ-ジバッファ部115への描画を終了した時点で、該描画タスクにより起動される。起動された各印刷タスクnは、描画の終了した各ペ-ジバッファ(紙面1ペ-ジ分)についての印刷処理を実行する。本印刷処理は、プリンタ制御部1016に対し、プリンタ制御用の各種SVC命令を発行することにより実行する。印刷タスクは別々のペ-ジについて並行処理するため、複数個用意する。用意する印刷タスクの合計数は、本装置内で同時に並行処理しうる印刷タスク数の最大値とした。本実施例では、任意の時点で、プリンタエンジン部120の給紙部から排紙部までの間に存在しうる最大紙数分の印刷タスクを用意した。この数はプリンタエンジン部120の仕様によって増減する。
【0070】本ソフトウェア構成における各部の処理内容は、両面印刷制御用に拡張した点以外、本発明の出願人が先に出願した特願平1-164637号や特願平1-282747号の場合と同様である。つまり、図11に示した複数個のタスクを並行処理し、印刷スループットを向上させることができる。
【0071】なおコマンドバッファ部112とペ-ジバッファ部115は、モニタ部1010にもタスク処理部1020にも属さないメモリ部分としてとらえてもよい。
【0072】図10のソフトウェア構成に示した各部分は、図9のハ-ドウェア構成図内の各部分に次のように対応づけられる。
【0073】(1)モニタ部1010(コマンドバッファ部112とペ-ジバッファ部115を除く)のプログラムは、CPU93用のROM94叉はRAM98に格納し、CPU93にて実行する。
【0074】(2)コマンドバッファ部112とペ-ジバッファ部115はRAM98に配置する。
【0075】(3)タスク処理部1020内の各処理部、つまり描画タスク部1021、印刷タスク1(10221)、印刷タスク2(10222)、…、印刷タスクN(10223)、及びその他のタスク処理部1023用のプログラムは、RAM98叉はROM94に格納し、CPU93にて実行する。
【0076】また図1と図2の構成図内の各部分は、図10のソフトウェア構成の各部分に、次のように対応づけられる。
【0077】(1)図1のホスト通信制御部111は図10ホスト通信制御部1012に対応。
【0078】(2)図1のコマンドバッファ部112とページバッファ部115は、図10の同一名称部分に対応。
【0079】(3)図1のコマンド処理部113は図10のタスク処理部1020内のコマンド処理に関係するタスク部に対応。
【0080】(4)図1と図2の描画処理部(描画タスク部)1131は、図10の描画タスク部1021に対応。
【0081】(5)図1と図2の印刷処理部(印刷タスク部)1132は、図10の印刷タスク部1022に対応。
【0082】(6)図1の両面印刷終了処理部1133は、図10のその他のタスクの処理部1023に対応。
【0083】図12に、描画タスクと印刷タスクが両面印刷を並行処理する際の、描画順序と印刷順序の対応付けを示す。本図に示す順序で描画タスクが各ページバッファに順次描画を行う。印刷タスクは描画の完了したページバッファについて、本図に示す手順で印刷読出しを行う。本図の上側は、ページバッファメモリ総数が10、プリンタエンジン最大滞留枚数が3の場合、下側は、ページバッファメモリ総数が8、プリンタエンジン最大滞留枚数が5の場合、についてのものであるが、他の場合についても同様である。以下の説明においては、前半印刷を用紙裏面(偶数ページ)について、後半印刷を用紙表面(奇数ページ)について行うものと仮定する。逆の場合も、同様にして実現することができる。
【0084】図12の各例では、まず第1ページから順次各ページの描画を行う。第1、第3、第5ページ等の奇数ページ(表面)については印刷待ちとし、第2、第4、第6ページ等の偶数ページ(裏面)について順次印刷を行う。図12の上半分の例では、3枚の用紙について、それぞれ第2、第4、第6ページの印刷を行ったとき、プリンタエンジン滞留枚数が3に達するので、次に、第1の用紙の表面ページである第1ページの印刷を行い、その用紙を排出する。これによりプリンタエンジン内に用紙の空きが生じるので、次の偶数ページ(第8ページ)が印刷される。これにより滞留枚数が再度3に達するので、第2の用紙の表面ページである第3ページが印刷されその用紙が排出される。以後、同様にして第10ページ、第5ページ、第12ページ、…と印刷されていく。原則として、奇数ページの印刷時にその用紙が排出される。
【0085】図12の下半分の例では、プリンタエンジン最大滞留枚数が5であるので、プリンタエンジンへの読みだしは、まず、第2、第4、第6、第8、第10ページの全5ページ分について順次行われる。ここで、滞留枚数が5に達するので、次に、第1の用紙の表面ページ(第1ページ)が印刷される。これによりプリンタエンジン内に生じた1枚の用紙の空きを次の裏面ページ(第12ページ)が埋める。続いて、第3ページ、第14ページ、第15ページ、…と印刷されていく。図13に両面印刷における描画タスクと印刷タスクの並行処理の動作概要を示す。図中のP1,P2,…はページ通し番号を示す。また、印刷部数が1、プリンタエンジン最大滞留枚数が5の場合についての動作手順を示すが、その他の場合についても同様である。
【0086】(1)描画タスク部1131はコマンドバッファ部112から印刷コマンド列を順に読み出し、ページバッファ部115へ描画を行っていく。描画が完了すると表面・裏面印刷の設定をページバッファ管理テーブル部1141に行い、描画の完了したページバッファについて順次印刷タスクを起動する。起動された複数の印刷タスクは実行待ちキュー(図示せず)に接続され、ディスパッチャにより順次CPUが割り当てられ実行される。図では、図示の都合上、描画タスクは印刷タスクと同時に実行されているように示したが、実際には、印刷タスクによるCPU処理量は多くなく例えば図の印刷タスクの「印刷」時等の生じる空き時間に描画タスクが実行される。
【0087】(2)印刷タスクのうち、表面ページ(P1,P3,P5,…)用の印刷タスクは、表面・裏面印刷切り替え条件の一つであるプリンタエンジン最大滞留枚数に達するまで、後述する表面印刷待ちマクロを発行することにより、表面印刷待ちキューに接続され、待ち状態となる(図13の左下参照)。表面印刷待ちマクロの処理では、本マクロ発行タスクを表面印刷待ち状態に移した後、タスクディスパッチャを起動し、裏面ページ用の印刷タスクへ制御を移す。
【0088】(3)表面ページ用の印刷タスクで、前記表面・裏面印刷切り替え条件の一つであるプリンタエンジン滞留枚数のプリンタエンジン最大滞留枚数への到達を検出すると、表面印刷待ち解除マクロと表面印刷待ちマクロを発行する。表面印刷待ち解除マクロは、表面印刷待ち状態にある先頭の印刷タスクを待ち状態から解除する。表面印刷待ちマクロは、前述の処理を行う。
【0089】(4)印刷タスクのうち、裏面ページ(P2,P4,P6,…9用の印刷タスクは、本裏面ページに対応する描画済みページバッファの内容を読み出し、印刷を行う。
【0090】(5)以上の手順を繰り返すことにより、P1、P3、……、P9用の印刷タスクは表面印刷待ちとなり、P2、P4、…、P10用の印刷タスクは裏面印刷を行う。そして、P11用の印刷タスクの処理において、プリンタエンジン内の滞留する用紙の数がプリンタエンジン最大滞留枚数に達するため、表面印刷待ち解除マクロと表面印刷待ちマクロの発行を行う。該表面印刷待ち解除マクロは、表面印刷待ち状態の先頭にあるP1用の印刷タスクを待ち状態から解除する。その結果、P1が印刷される。
【0091】(6)以後、P12の印刷、P13の表面印刷待ち、表面印刷待ち状態の先頭印刷タスク(P3)の待ち状態からの解除、P3の印刷というようにして、両面印刷が続行される。
【0092】(7)前記表面・裏面印刷切り替え条件としては、プリンタエンジン最大滞留枚数到達検出の他に、文書終了、紙サイズ変更、給紙部、排紙部変更、前半印刷用紙の巡回完了の検出等がある。
【0093】なお、本図のような描画タスクと印刷タスクの並行処理動作は、描画タスクと印刷タスクが、図14から図25に示す管理テーブルを参照しながら、図26から図45の処理手順を実行することにより実現する。図14〜図18は各種ページバッファ管理テーブルを示し、図19〜図25は各種プリンタ管理テーブルを示す。
【0094】図14から図18を用いて、ページバッファ管理テーブル部1141の内容を説明する。本管理テーブルは、複数ページからなるページバッファ部115への描画タスクによる書き込みと印刷タスクによる読み出しにおいて、ページバッファ部の使用に遊び時間を生じさせず、またページバッファ部への各タスクによるアクセス順序に誤りを生じさせないために用いる。
【0095】図14にページバッファ管理テーブル部1141の全体構成を示す。このテーブルは、全ページバッファ用共通情報と、各ページバッファ用情報とからなる。全ページバッファ用共通情報としては、次に描画タスクが書き込むべきページバッファNo.(当該描画ページバッファNo.と呼ぶ)と、次に印刷タスクが読み出すべきページバッファNo.(当該印刷ページバッファNo.と呼ぶ)と、現在印刷出力中のページバッファNo.、各ページバッファ0、1、…、N-1の先頭アドレス、描画部用ワークメモリアドレス、ページバッファサイズ、印刷条件現在値、ページバッフ総面数N、コマンド未解決情報等を記述する。
【0096】このうち、印刷条件現在値は各ページバッファについて描画タスクが印刷条件を設定する際のデフォルト値を格納するために用いる。
【0097】また、各ページバッファ用情報としては、ページバッファ毎に、タスク関連情報、印刷条件、プリンタメモリコントローラ設定情報を記述する。これらの情報の内容をそれぞれ、図15から図17に示す。また、コマンド未解決情報の内容を図18に示す。
【0098】図15のタスク関連情報1500は、そのページの描画および印刷の状態を記述する。すなわち、本ページを使用中の描画タスク番号1501、本ページを使用中の印刷タスク番号1502、本ページを空き待ち中のタスクへの前向きポインタ1503、本ページを空き待ち中のタスクへの後向きポインタ1504からなる。
【0099】図16の印刷条件1400は、給紙部コード1401、排紙部コード1402、紙サイズコード1403、紙縦横コード1404、片面・両面印刷指定1405、表面・裏面印刷指定1406、印刷ページ通し番号1407、総印刷部数1408、現在印刷部数1409、総白紙印刷部数1410、現在白紙印刷部数1411、印字方向(ポートレイト/ランドスケープ)1412、両面印刷排出フラグ1413、描画エラー処理モード1414、文字展開モード1415を有する。
【0100】図17のプリンタメモリコントローラ設定情報1700は、動作可能/動作中/故障中の別を示すプリンタメモリコントローラ状態1701、コントロールレジスタ状態1702、ページ先頭アドレス1703、レフトマージンドット数Lm1704、ライトスキップロングワード数Rm1705、トップマージンドット数Tm1706、紙サイズ幅ロングワード数Wx1707、紙サイズ高さドット数Dy1708、ステータスレジスタ状態1709からなる。
【0101】図18のコマンド未解決情報は、未解決フラグ、未解決コマンド開始アドレス、未解決コマンド終了アドレスからなる。
【0102】以上のページバッファ管理テーブル1141の内容は、基本的に本出願人による前述の特願平1-164637号や特願平1-282747号の場合と同様であるが、本発明では印刷条件を図16のように拡張した。つまり、総白紙印刷部数1410と現在白紙印刷部数1411と両面印刷排出フラグ1413と追加するとともに、片面印刷の場合にもあったが、未使用だった片面・両面印刷指定コード1405と表面・裏面印刷指定コード1406を使用するようにした。
【0103】このうち総白紙印刷部数1410と現在白紙印刷部数1411は、用紙の表面と裏面で印刷部数が不一致の場合でも印刷を続行できるようにするために設けた。両面印刷排出フラグ1413は、前記表面・裏面印刷切り替え条件のうち、給紙部変更、排紙部変更、紙サイズ変更のいずれかを描画タスクが検出した場合に、印刷タスクに連絡するために設けた。
【0104】片面・両面印刷指定コード(1405)は、各ページが片面印刷と両面印刷のいずれかを記述するために設け、表面・裏面印刷指定コード(1406)は、各ページが表面印刷と裏面印刷のいずれかを記述するために使用する。
【0105】両面印刷排出フラグ1413がとる値を、以下のように定める。本フラグは3ビットのデータで表わす。
【0106】0:両面印刷時排出不要
0以外:両面印刷時排出要
ビット0:給紙部変更フラグとして利用
ビット1:排紙部変更フラグとして利用
ビット2:紙サイズ変更フラグとして利用
なお、本両面印刷排出フラグ1413は、3ビット構成としたので、給紙部変更、排紙部変更、紙サイズ変更が同時発生した場合に、いずれの要因が発生しているかを検出できる。本両面印刷排出フラグ1413の値が0以外の場合、印刷制御装置110はプリンタエンジン部120内の用紙を一旦すべて排出する。その後、給紙部、排紙部、紙サイズの内必要なものを変更してから、再び両面印刷を再開する。
【0107】図16に示した印刷条件1400は、描画タスク内の印刷条件指定用サブコマンド処理が、ホストコンピュータ100から受信した各印刷条件指定用サブコマンドの指示に従って、書き込む。描画タスク内の描画用サブコマンド処理は、印刷条件のうち以下の情報を用いて当該描画ページに対し、描画処理を行う。
【0108】・紙サイズコード
・紙縦横コード
・表面・裏面印刷指定
・印字方向
・描画エラー処理モード
・文字展開モード
なお、描画処理は、紙サイズコードと紙縦横コードから変換した、前記先願発明に記した描画用フレームメモリ記述パラメータを用いて描画処理を行う。
【0109】また描画タスクは両面印刷を行うため、各ページバッファについて以下の内容を書き込む。
【0110】・片面・両面印刷指定
・表面・裏面印刷指定
・両面印刷排出フラグ
また、印刷タスクは、描画の完了した当該印刷ページに対し、以下の情報を用いて印刷処理を行う。
【0111】・給紙部コード
・排紙部コード
・紙サイズコード
・紙縦横コード
・印刷ページ通し番号
・総印刷部数
・現在印刷部数
・片面・両面印刷指定
・表面・裏面印刷指定
・両面印刷排出フラグ
また、印刷処理では、紙サイズコード、紙縦横コード等の情報から変換したプリンタメモリコントローラ設定情報1700(図17)を用いて、プリンタメモリコントローラを制御する。
【0112】次に、図19から図25を用いて、プリンタ管理テーブル1161の内容を説明する。本管理テーブルは、印刷タスクによるプリンタ(サブCPU96とプリンタエンジン部120)の使用状況、プリンタとの入出力状態を管理し、プリンタの資源管理と入出力制御を行うために用いる。
【0113】図19にプリンタ管理テーブル1161の全体構成を示す。このテーブルは、サブCPU状態1920、プリンタ状態1930、印刷条件1900、タスク関連情報1940、排紙終了監視情報1950からなる。
【0114】図20にサブCPU状態1920の内容を示す。サブCPU状態1920としては、サブCPU通信状態(未使用/コマンド送信中/ステータス受信中)と、サブCPUレディ状態(正常/異常)を記述する。
【0115】図21にプリンタ状態1930の内容を示す。プリンタ状態0930としては、印刷タスク等による印刷指示と、給排紙部の変更指示の可/不可、プリンタエンジン状態(レディ/エラー/ウォームアップ中/テストプリント中)、給紙部状態と排紙部状態を記述する。
【0116】図22に印刷条件1900の内容を示す。このフィールドには、本印刷タスクに対応するページバッファについてのページバッファ管理テーブル上の印刷条件フィールドのうち対応するコードの値を、印刷タスクがそれらの値を用いて一連のプリンタ制御用マクロを発行する前に、コピーして受取り、それらを参照しながら印刷タスクが本印刷対象ページバッファについての印刷処理を実行する。コピーするコードとしては、図16に示した給紙部コード1401、排紙部コード1402、紙サイズコード1403、紙縦横コード1404、総印刷部数1408、現在印刷部数1409、総白紙印刷部数1410、現在白紙印刷部数1411がある。
【0117】図23にタスク関連情報1940の内容を示す。タスク関連情報1940としては、プリンタを使用中のタスク番号、プリンタを空き待ちのタスクへの前向きポインタと後ろ向きポインタを記述する。
【0118】図24に排紙終了監視情報の内容を示す。本実施例では、排紙部1〜5の各々の最新排紙ページ通り番号を管理し、また、排紙終了監視タイマ1〜25の各々の監視するページのページ通し番号および指定排紙部を管理している。
【0119】図25にプリンタ状態1930の給紙部状態と排紙部状態1933の内容を例示する。ここでは、13バイトのデータを用いて、給紙部および排紙部の現在の状態を管理している。なお、図中の“R”はそのビットが未使用(Reserved)であることを示す。
【0120】以上のプリンタ管理テーブル1161の内容は基本的に、前記先願発明の場合と同様であるが、本発明では両面印刷制御を行うため、印刷条件に次のコードを追加した(図22参照)。
【0121】(1)プリンタエンジン滞留枚数1905
(2)表面印刷Post必要フラグ1906
(3)表面印刷Post待ちタスク番号1907
(4)裏面印刷Post必要フラグ1908
(5)裏面印刷Post待ちタスク番号1909
(6)マルチページコピー連絡用ECB(1910、1911等、各印刷タスク毎に用意)
(7)総白紙印刷部数1903
(8)現在白紙印刷部数1904
(9)両面印刷紙なしエラー発生フラグ1912
(10)表面印刷可能タスク終了待ちECB1913
このうち、(1)はプリンタエンジン内に滞留している用紙枚数を管理しながら、表面印刷と裏面印刷の切替制御を行うするために設けた。(2)から(6)は両面印刷のマルチページコピーを行う際、各頁対応の印刷タスクが同期制御を行うために設けた。(7)と(8)は両面印刷のマルチページコピーで、同一用紙の表面と裏面で印刷部数が不一致の場合でも両面印刷を支障なく続行するために設けた。(9)と(10)は両面印刷での紙なしエラー処理を行うために設けた。
【0122】また、排紙終了監視情報としては、図24に示したように、
(a)各排紙部の最新排紙ページ通し番号
(b)各排紙終了監視タイマ毎のページ通し番号と指定排紙部
を記述した。
【0123】なお両面印刷の場合、排紙部に排出される表面ページについてのみページ通し番号をカウントし、プリンタエンジン内に一旦排紙、格納される裏面ページについてのページ通し番号は、カウントしない。具体的には、次のようにカウントする。
【0124】(ア)その用紙が文書の終りでないなら、最新排紙ページ通し番号をそれ自身に1を加えた値とする。
【0125】(イ)その用紙が文書の終りなら、裏面ページがある場合は、(ア)と同様に最新排紙ページ通し番号をそれ自身に1を加えた値とする。表面ページしかない場合は、(ア)と異なり、最新排紙ページ通し番号それ自身をそのまま用いる。
【0126】図52に、両面印刷における最新排紙ページ通し番号管理の例を示す。本図52において、ケース1(同図(a))は同一サイズの用紙6枚について両面印刷を行う場合であり、表面ページ(ページ通し番号5)の排紙を検出した時点で、本ページが文書の終わりでないため、最新排紙ページ通し番号を該ページのページ通し番号の5に1を加えた6とする。ケース2(同図(b))は同一サイズの用紙5枚について両面印刷を行う場合であり、表面ページ(ページ通し番号5)の排紙を検出した時点で、本ページが文書の終わりであるため、最新排紙ページ通し番号を該ページのページ通し番号自身の5とする。ケース3(同図(c))はページ通し番号1から2と、2から3で用紙サイズが変わる場合である。この場合各ページを片面印刷するので、本図のように最新排紙ページ通し番号が更新される。ケース4(同図(d))は、ページ通し番号1から2と、5から6で用紙サイズが変わる場合である。この場合ページ通し番号1と6について片面印刷、ページ通し番号2〜5について両面印刷するので、本図のように最新排紙ページ通し番号が更新される。ケース5とケース6(同図(e)、(f))はページ通し番号1と2で用紙サイズは同じだが、印刷部数が異なる場合である。ケース5ではページ通し番号1(表面ページ)に関する、実際の印刷データについての2部印刷と白紙の2部印刷が完了した時点で、最新排紙ページ通し番号が2に更新される。ケース6ではページ通し番号1(表面ページ)に関する、実際の印刷データについての4部印刷が完了した時点で、最新排紙ページ通し番号が2に更新される。
【0127】紙ジャム等の再印刷の必要なエラーが発生した場合、本印刷制御装置が前述の最新排紙ページ通し番号の次のページから再印刷を行うことにより、無駄な重複のない再印刷を行うことができるという効果がある。
【0128】なお、再印刷は上位ホストコンピュータから再送した印刷コマンド列、又は印刷制御装置内に保持しておいた印刷コマンド列を用いて、印刷制御装置がプリンタエンジン部を制御することにより実現した。
【0129】以下、図26から図45を用いて、本印刷システムにおける両面印刷制御の要である描画タスクと印刷タスクの処理手順を説明する。まず、各々についてポイントを説明する。
【0130】描画タスクの処理手順は、両面印刷モードにおいても片面印刷の場合とほぼ同一である。描画タスクの両面印刷についてのポイントは、以下の通りである。
【0131】(1)改頁処理部209にて、片面印刷と両面印刷の区別、そして、表面印刷と裏面印刷の区別を、ページバッファ管理テーブル1141内の当該描画ページバッファ番号用の該当コード(1405と1406)に記入する。
【0132】(2)紙サイズ指定コマンド処理206において、紙サイズの変更を検出した場合、ページバッファ管理テーブル内の紙サイズ変更フラグ(本実施例では両面印刷排出フラグ1413の一部として実現)をセットする。
【0133】(3)給紙部指定コマンド処理204または排紙部指定コマンド処理205において、給紙部変更あるいは排紙部変更を検出した場合、ページバッファ管理テーブル内の給紙部変更フラグあるいは排紙部変更フラグ(本実施例ではこれも両面印刷排出フラグ1413の一部として実現)をセットする。
【0134】(4)(2)と(3)の検出時に、用紙の表面ページ用の印刷データはあるが、対応する裏面ページは印刷データがなく、白紙の用紙が検出されたとする。この場合、裏面用の白紙印刷を実現するため、白紙の裏面ページ用の印刷タスクの起動とページバッファの獲得を行う。詳細手順は、図28から図32に示す。
【0135】(5)コマンド解釈部201によるコマンドバッファ読出し処理において、文書の終りを検出すると、文書印刷の終了処理を依頼するため、両面印刷終了タスクを起動する。
【0136】(6)印刷部数指定コマンド処理において表面ページと裏面ページの印刷部数の不一致を検出した場合、総白紙印刷部数を表面・裏面ページのうち印刷部数の少ないページバッファ用のページバッファ管理テーブルに記入する。詳細手順は、図33に示す。
【0137】次に印刷タスクのポイントを説明する。
【0138】(1)印刷タスクは、描画タスクが改頁条件を検出し、1ページ分のページバッファデータの出来上がりを検出した時点で起動される。終了は、プリンタフリーマクロ(図48)の発行直後とする。
【0139】(2)印刷タスクは複数個(例えば図11のタスク番号7〜16)用意する。印刷タスクの終了は、前記先願発明のように排紙終了時点とせず、プリンタフリーマクロの発行直後とする。それにより、最小単位のページバッファ数分(図14におけるページバッファ総面数Nに相当)だけ、印刷タスクを用意すれば済む。
【0140】(3)印刷タスクは、初めにプリンタリザーブマクロを発行し、プリンタが空いていることを確認した上で、プリンタエンジンに対し印刷用の各種マクロ(図46から図48に示す)を発行する。プリンタエンジンの利用が終わるとプリンタフリーマクロを発行し、プリンタエンジンの占有を解除する。
【0141】(4)プリンタエンジンに対しては、レディ状態確認マクロ、給紙部確認マクロ、給紙部指示マクロ、及び印刷指示マクロ等を順に発行する。マルチページコピーの場合は、以上のマクロSVCの発行を印刷部数回くり返す。
【0142】(5)各マクロの処理においてプリンタエンジン関係のエラーを検出した場合、各マクロ処理の中でエラー処理を行う。
【0143】(6)各マクロの処理においては、プリンタエンジンへコマンドを発行後、プリンタエンジンからの応答を待つ必要がある場合、印刷タスクを応答待ち状態とし、その間、CPUが他のタスクを実行できるようにする。
【0144】(7)両面印刷制御は、次のように行う。
【0145】(a)表面ページの印刷タスクは表面印刷待ちにし、裏面ページの印刷タスクは印刷を行う。これを繰り返す。
【0146】(b)裏面ページを印刷して、「プリンタエンジン最大滞留枚数到達」を検出すると、表面印刷待ち行列(キュー)の先頭につながれている印刷タスクを1つはずし、本裏面ページ用の印刷タスクを表面印刷待ち行列の最後尾につなぐ。そして、待ち行列からはずされた表面ページ用の印刷タスクを印刷した後、次の裏面ページ用印刷タスクの処理に戻る。
【0147】(c)表面ページ又は裏面ページ用の処理において、「紙サイズ変更」、「給紙部変更」、「排紙部変更」を検出すると、表面印刷待ち行列につながれている表面ページ用の印刷タスクをすべて本待ち行列からはずし、本ページ用の印刷タスクを表面印刷待ち行列につなぐ。そして、待ち行列からはずされた表面ページ用の印刷タスクをすべて印刷した後、変更のあったページ以降の印刷を続行する。
【0148】(d)「紙なし」を検出すると、図11に示す中断タスクをまず起動する。中断タスクは、(ア)両面印刷紙なしエラー発生フラグ1912のセット、(イ)表面印刷可能タスクの待ち解除(プリンタ内滞留用紙に対応する表面印刷タスクの表面印刷待ち行列からの解除、及び表面印刷ポスト(Post)待ちのポスト処理)、(ウ)ウェイト(表面印刷可能タスクの終了待ち)を行う。
【0149】表面印刷可能タスクのうち最後の印刷タスクは、印刷指示を発行の後、前記ウェイト(表面印刷可能タスクの終了待ち)を解除するため、ポストを発行する。本ポストに従い、再び中断タスクに処理が移る。紙の補給に伴い、中断スクが処理を終え、印刷タスクによる正常な両面印刷処理に戻る。
【0150】上記「紙なし」エラー用の処理手順は、紙なしエラーの検出が、印刷タスクによる各種プリンタ制御用マクロの発行に伴う同期エラーの場合でも、同マクロの発行とは無関係にサブCPU96が検出した非同期エラー場合でも、共通である。従って、「紙なし」エラー用の処理手順を、同期エラー、非同期エラーにかかわらず一括管理することができるという効果がある。
【0151】(e)マルチページコピーにおいて、「プリンタエンジン最大滞留枚数到達」を検出すると、表面印刷待ち行列の先頭につながれている表面ページ用の印刷タスクを1つはずし、本ページ用の印刷タスクをウエイト状態にする。本ウェイト状態としては、本ページが表面ページなら表面印刷ポスト待ち状態を用い、本ページが裏面ページなら裏面印刷ポスト待ち状態を用いる。そして、表面印刷待ち行列からはずされた表面ページ用の印刷タスクについての印刷を行った後、ウエイト状態(本ページが表面ページなら裏面印刷ポスト待ち状態、裏面ページなら表面印刷ポスト待ち状態)の印刷タスクをポストする。その後、表面印刷待ち行列からはずされた印刷タスクをウエイト状態とする。
【0152】(f)マルチページコピーにおいて、表面印刷部数と裏面印刷部数が不一致の場合、少ない印刷部数の面は印刷部数の多い面の印刷部数に合わせ、少ない印刷部数分は白紙を印刷する。
【0153】(g)描画タスクによる文書の終りの検出に伴って起動された両面印刷終了タスクは、表面印刷待ち解除を行う。詳しくは、表面印刷待ち行列内の全印刷タスクの待ち状態からの解除と、表面印刷Post待ちタスクの待ち解除を行う。なお、両面印刷終了タスクには、図11に示したように印刷タスクと同一優先度を与え、前述の文書終了処理を行うが、実際の印刷処理は行わない特別な印刷タスクとして、動作させるようにした。
【0154】次に描画タスクの処理手順の詳細を図26から図35を用いて、説明する。
【0155】初めに図26を用いて、描画タスクの全体手順を説明する。描画タスクは、まず描画準備(2610)により描画用の各種パラメータやテーブルを初期化する(2611)。描画準備の後、描画処理はコマンド解釈(2621)とコマンド実行(2630)を無限ループにより繰り返す(2620)。
【0156】コマンド実行2630では、コマンドに応じて分岐を行い(2631)、片面・両面印刷指定コマンド処理(2632)、両面印刷終了指定コマンド処理(2633)、給紙部指定コマンド処理(2634)、排紙部指定コマンド処理(2635)、紙サイズ指定コマンド処理(2636)、紙縦横方向指定コマンド処理(2637)、印刷部数指定コマンド処理(2638)、改頁処理(2639)、文字描画(263A)、図形描画(263B)、及びその他の処理(263C)を行う。
【0157】片面・両面印刷指定コマンド処理(2632)では、図27に示すように、本コマンドの入力引数である片面・両面印刷指定パラメータの値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の片面・両面印刷指定コードエリア(1405)に、記入する。
【0158】両面印刷終了指定コマンド処理(2633)では、図28に示すように、初めに当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1405)を参照しながら、判定する(281)。
【0159】表面印刷を指定されている場合、次の2項目を実行する。
【0160】(1)ページバッファリザーブマクロを、前記当該描画ページバッファ番号1の一つ前のページバッファと同じ紙サイズについて、発行する(282)。
【0161】(2)印刷タスクを起動し、(1)で獲得したページバッファについての白紙印刷を行わせる(283)。
【0162】(3)続いて、両面印刷終了タスクを起動し、本文書についての終了処理を実行させる(284)。
【0163】給紙部指定コマンド処理(2634)では、図29に示すように、初めに本コマンドの入力引数である給紙部コードの値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の給紙部コードエリア1401に、記入する(291)。続いて、給紙部変更があるかを判定する(292)。給紙部変更があるなら、当該描画ページバッファ番号のページバッファについて両面印刷指定がなされているか、判定する(293)。両面印刷指定がなされているなら、当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1405)を参照しながら、判定する(294)。本判定がyesならば、両面印刷排出フラグ1413がOFFか、判定する(295)。本判定がyesなら、次の3項目を実行する。
【0164】(1)印刷タスク起動(296)
(2)ページバッファリザーブ(297)
(3)当該描画ページバッファ番号用の表面・裏面印刷指定コードに、表面印刷指定を記入する(298)。
【0165】前記294の判定の後、両面印刷排出フラグ1413の一部である給紙部変更フラグをONにセットする(299)。
【0166】排紙部指定コマンド処理(2635)では、図30に示すように、初めに本コマンドの入力引数である排紙部コードの値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の排紙部コードエリア1402に、記入する(301)。
【0167】続いて、排紙部変更があるかを判定する(302)。排紙部変更があるなら、当該描画ページバッファ番号のページバッファについて両面印刷指定がなされているか、判定する(303)。両面印刷指定がなされているなら、当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1405)を参照しながら、判定する(304)。本判定がyesならば、両面印刷排出フラグ1413がOFFか、判定する(305)。本判定がyesなら、次の3項目を実行する。
【0168】(1)印刷タスク起動(306)
(2)ページバッファリザーブ(307)
(3)当該描画ページバッファ番号用の表面・裏面印刷指定コードに、表面印刷指定を記入する(308)。
【0169】前記304の判定の後、両面印刷排出フラグ1413の一部である排紙部変更フラグをONにセットする(309)。
【0170】紙サイズ指定コマンド処理(2636)では、図31に示すように、初めに本コマンドの入力引数である紙サイズコードの値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の紙サイズコードエリア1403に、記入する(311)。
【0171】続いて、紙サイズの変更があるか、つまり本コマンドの入力紙サイズと前ページの紙サイズが違うか判定する(312)。本判定で紙サイズ変更があるなら、当該描画ページバッファ番号のページバッファについて両面印刷指定がなされているか、判定する(313)。両面印刷指定がなされているなら、当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1405)を参照しながら、判定する(314)。本判定がyesならば、両面印刷排出フラグ1413がOFFか、判定する(315)。本判定がyesなら、次の3項目を実行する。
【0172】(1)印刷タスク起動(3151)
(2)ページバッファリザーブ(3152)
(3)当該描画ページバッファ番号用の表面・裏面印刷指定コードに、表面印刷指定を記入する(3153)。
【0173】前記315の判定がNoならば、ページバッファ再リザーブマクロを発行する(3154)。
【0174】前記314の判定がNoならば、ページバッファ再リザーブマクロを発行する(316)。
【0175】前記314の判定の後、両面印刷排出フラグ1413の一部である紙サイズ変更フラグをONにセットする(317)。
【0176】前記313の判定がNoの場合、ページバッファ再リザーブマクロを発行する(318)。
【0177】上記3152と3154と316と318のページバッファ獲得は、変更後の紙サイズについて行う。
【0178】前記313の判定がNoの場合、ページバッファ再リザーブマクロを発行する(318)。
【0179】上記3152と3154と316と318のページバッファ獲得は、変更後の紙サイズについて行う。
【0180】紙縦横方向指定コマンド処理(2637)では、図32に示すように、初めに本コマンドの入力引数である紙縦横方向コードの値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の紙縦横方向コードエリア1404に、記入する(321)。
【0181】続いて、紙縦横方向の変更があるか、つまり本コマンドの入力紙紙縦横方向と前ページの紙縦横方向が違うか判定する(322)。本判定で紙縦横方向の変更があるなら、当該描画ページバッファ番号のページバッファについて両面印刷指定がなされているか、判定する(323)。両面印刷指定がなされているなら、当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1405)を参照しながら、判定する(324)。本判定がyesならば、両面印刷排出フラグ1413がOFFか、判定する(325)。本判定がyesなら、次の3項目を実行する。
【0182】(1)印刷タスク起動(3251)
(2)ページバッファリザーブ(3252)
(3)当該描画ページバッファ番号用の表面・裏面印刷指定コードに、表面印刷指定を記入する(3253)。
【0183】前記325の判定がNoならば、ページバッファ再リザーブマクロを発行する(3254)。
【0184】前記324の判定がNoならば、ページバッファ再リザーブマクロを発行する(326)。
【0185】前記324の判定の後、両面印刷排出フラグ1413の一部である紙サイズ変更フラグをONにセットする(327)。
【0186】前記323の判定がNoの場合、ページバッファ再リザーブマクロを発行する(328)。
【0187】上記3252と3254と326と328のページバッファ獲得は、変更後の紙縦横方向について行う。なお、同一面積の紙、例えばA4を用いても、それの紙縦横方向が違う場合、ページバッファ部115内の獲得エリアが違うものとして説明したが、獲得エリアを同じにすることもできる。この場合、3254と326と328の処理は不要になる。
【0188】印刷部数指定コマンド処理(2638)では、図33に示すように、本コマンドの入力引数である印刷部数の値を、ページバッファ管理テーブル内の当該描画ページバッファ番号用の総印刷部数コードエリア(1408)に、記入する。
【0189】改頁処理(2639)では、図34に示すように、初めにページバッファ管理テーブル内の当該印刷ページバッファ番号に、当該描画ページバッファ番号をコピーした後(341)、当該描画ページバッファ番号を更新する(342)。その後、印刷タスクの起動(343)とページバッファリザーブ(344)を行う。ステップ343の印刷タスクの起動では、タスク起動マクロの発行時に入力パラメータとして当該印刷ページバッファ番号を設定することにより、各印刷タスクに、印刷対象ページバッファ番号を伝えるようにした。その後、当該描画ページバッファ番号のページバッファについて両面印刷指定がなされているか、判定する(345)。両面印刷指定がなされているなら、当該描画ページバッファ番号の一つ前のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1405)を参照しながら、判定する(346)。本判定がyesならば、当該描画ページバッファ番号用の表面・裏面印刷指定コードを、裏面印刷指定に設定する(347)。本判定がNoならば、当該描画ページバッファ番号用の表面・裏面印刷指定コードを、表面印刷指定に設定する(348)。なお、ステップ344のページバッファリザーブは、デフォルト紙サイズについて発行するものとする。デフォルト紙サイズとしては、文書先頭では、初期値の紙サイズをとり、文書の途中では前ページの紙サイズをとるものとした。
【0190】次に印刷タスクの処理手順の詳細を図35から図44を用いて、説明する。
【0191】初めに図35を用いて、印刷タスクの全体手順を説明する。印刷タスクはまず本タスク用の入力パラメータエリアから、本印刷タスクの印刷対象ページバッファ番号である当該印刷ページバッファ番号を取り出す(3510)。続いて印刷タスクはプリンタリザーブマクロによるプリンタ使用権の獲得(3511)とプリンタフリーマクロによるプリンタ使用権の解放(3512)を行う。続いて当該印刷ページバッファファ番号のページバッファについて両面印刷指定がなされているか、該ページバッファ用の片面・両面印刷指定コード(1405)を参照しながら、判定する(3520)。両面印刷指定がなされているなら、当該印刷ページバッファ番号のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1405)を参照しながら、判定する(3521)。本判定がyesならば、表面印刷用前処理1(3530)として、ステップ3531から3535の処理を行う。
【0192】まず、当該印刷ページバッファ番号用の両面印刷排出フラグ1413がONか判定する(3531)。ONならば、両面印刷排出フラグONに伴う、表面印刷可能タスクの待ち解除(3532)を行う。3531の判定がNoならば、プリンタエンジン滞留枚数(1905)がプリンタエンジン最大滞留枚数以下か判定する(3533)。本判定がyesならば、プリンタエンジン最大滞留枚数到達に伴う、表面印刷可能タスクの待ち解除を行う(3534)。ここで、プリンタエンジン最大滞留枚数は、プリンタエンジンの種類と紙サイズと紙縦横方向に応じて定まるパラメータであり、初期化時等に予め印刷制御装置110内のテーブル(図1と図2には示していない)に格納しておく。
【0193】ステップ3531の判定の後、印刷タスクは表面印刷待ちマクロを発行し、本タスクを表面印刷待ち状態に移す(3535)。
【0194】その後印刷タスクは、以下の手順(3541から3555)を、印刷タスクは総印刷部数と総白紙印刷部数分の合計回数だけ繰り返すことにより、総印刷部数分の実質的印刷と総白紙印刷部数分の白紙印刷を行う。
【0195】(1)当該印刷ページバッファファ番号のページバッファについて両面印刷指定がなされているか、判定する(3541)。両面印刷指定がなされているなら、当該印刷ページバッファ番号のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1405)を参照しながら、判定する(3542)。
【0196】(2)本判定がyesならば、表面印刷用前処理2を行う(3543)。Noならば、裏面印刷用前処理(3544)を行う。
【0197】(3)一連の印刷マクロの発行処理を行う(3545)。
【0198】(4)プリンタエンジン滞留枚数を更新する(3550)。具体的には、以下のようにする。
【0199】(4-1)まず、当該印刷ページバッファファ番号のページバッファについて両面印刷指定がなされているか、判定する(3551)。両面印刷指定がなされているなら、当該印刷ページバッファ番号のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1405)を参照しながら、判定する(3552)。
【0200】(4-2)本判定がyesならば、プリンタエンジン滞留枚数(1905)を1だけ減ずる(3553)。Noならば、プリンタエンジン滞留枚数(1905)を1だけ加算する(3554)。
【0201】(5)両面印刷紙なしエラー発生フラグ1912がONか判定する(3555)。ONならば、両面印刷紙なしエラー処理を行う(3556)。この処理の詳細は、図51を参照して後述する。
【0202】以上の手順(3541から3556)を繰り返した後、印刷タスクはマルチページコピー用後処理(3550)として、裏面印刷Post関係処理(3561)と表面印刷Post待ちタスク番号と裏面印刷Post待ちタスク番号の更新(3562)を行う。その後、タスク終了マクロを発行し(3570)、処理を終了する。
【0203】なお、3511と3512によるプリンタリザーブ/フリーマクロの発行目的を、以下に示す。
【0204】(a)各印刷タスク(印刷タスクAと呼ぶ)は、一連の印刷マクロの発行処理(3545)において、まずプリンタリザーブによりプリンタの使用権を獲得する(401)。その後、403〜407の印刷マクロを発行することにより、プリンタエンジン部120との間の入出力処理を行う。該入出力処理において、各印刷マクロは、本マクロの発行者である印刷タスクAを、入出力待ち状態に移す。
(b)この時、印刷タスクAより後で起動された別の印刷タスク(印刷タスクBと呼ぶ)が、後述するタスク制御部12’(図50参照)内のタスクディスパッチャの機能により実行状態に移されることがある。なお、タスク制御部12’やタスクディスパッチャの機能は、本出願人による先願発明、特願平1-164637号や特願平1-282747号に記述されている内容と同様である。
【0205】(c)ところが、印刷タスクBは3510の処理の後、3511においてプリンタリザーブマクロを発行する。この時、前述の印刷タスクAが前記401の処理により既にプリンタの使用権を獲得済みであるため、印刷タスクBは該プリンタ使用権の獲得待ち状態に移される。
【0206】(d)この結果、印刷タスクAより後に起動された印刷タスクBが、3520〜3570のような印刷処理を進めることを防止する。
【0207】(e)また、印刷タスクAがプリンタフリーマクロを発行し、プリンタの使用権を解放した時点で、印刷タスクBが該プリンタ使用権の獲得待ち状態から直ちに解除され、プリンタの使用権を獲得する。
【0208】(f)以上により、図12に示したページ順序を守った印刷を、達成することができる。
【0209】(g)なお、3511と3512によるプリンタリザーブ/フリーマクロの発行を行わない場合、前述の(c)に示した処理がなされないため、印刷タスクAより後に起動された印刷タスクBが、3520〜3570の印刷処理を進めることになる。そのため、予期していなかったプリンタエンジン滞留枚数の更新や、表面印刷待ち状態化とその解除がなされる。従って、前述の図12に示したページ順序を守った印刷を、達成できなくなることがあり、ユーザにとって混乱した印刷結果が生じることになる。
【0210】図36を用いて、両面印刷排出フラグONに伴う、表面印刷可能タスクの待ち解除(3532)の手順を説明する。まず、表面印刷待ち行列内に待ちタスクがあるか判定する(361)。あれば、図47に示す表面印刷待ち解除マクロを解除モード1で発行することにより、本表面印刷待ち行列内の全タスクを先頭から順に、表面印刷待ち状態から解除する(362)。次に表面印刷Post必要フラグ1906がONか判定する(363)。ONならば、本フラグをOFFにした後(364)、表面印刷Post待ちタスク番号1907用のマルチページコピー連絡用のECB(Event Control Block:図示せず)のアドレスを入力として、Postマクロを発行する(365)。ステップ363の判定に伴う処理の後、両面印刷排出フラグをOFFにする(366)。
【0211】ここで、ポスト(Post)マクロ(事象発生待ち解除マクロ)とそれの対となるウェイト(Wait)マクロ(事象発生待ちマクロ)の内容は、前記先願発明の場合と同様である。
【0212】図37を用いて、プリンタエンジン最大滞留枚数到達に伴う、表面印刷可能タスクの待ち解除(3534)の手順を説明する。まず、表面印刷Post必要フラグ1906がONか判定する(371)。ONならば、本フラグをOFFにした後(372)、表面印刷Post待ちタスク番号1907用のマルチページコピー連絡用ECBアドレスを入力として、Postマクロを発行する(373)。ステップ371の判定がOFFならば、表面印刷待ち行列内に待ちタスクがあるか判定する(374)。あれば、図47に示す表面印刷待ち解除マクロを解除モード0で発行することにより、本表面印刷待ち行列内の先頭の1タスクを、表面印刷待ち状態から解除する(375)。
【0213】図38を用いて、表面印刷用前処理2(3543)の手順を説明する。まず、プリンタエンジン滞留枚数(1905)がプリンタエンジン最大滞留枚数より小さいか判定する(381)。本判定がyesならば、次のようにステップ382から389の処理を行うことにより、プリンタエンジンに入れるべき裏面印刷があればそれに制御を移し、なければ本表面を印刷する。まず、裏面印刷Post必要フラグ1908がONか判定する(382)。ONならば、本フラグをOFFにした後(383)、裏面印刷Post待ちタスク番号1909用のマルチページコピー連絡用ECBアドレスを入力として、Postマクロを発行する(384)。さらに、表面印刷Post必要フラグ1906をONにした後(385)、本印刷タスク用のマルチページコピー連絡用ECBアドレスを入力として、Waitマクロを発行する(386)。382の判定がOFFならば、表面印刷待ち行列内に待ちタスクがあるか判定する(387)。あれば、表面印刷Post必要フラグ1906をONにした後(388)、本印刷タスク用のマルチページコピー連絡用ECBアドレスを入力として、Waitマクロを発行する(389)。
【0214】図39を用いて、裏面印刷用前処理(3544)の手順を説明する。まず、プリンタエンジン滞留枚数(1905)がプリンタエンジン最大滞留枚数以上か判定する(381)。本判定がyesならば、次のようにステップ392から395の処理を行うことにより、プリンタエンジン最大滞留枚数に達したので表面印刷を起動する。本判定がNoの場合、プリンタエンジンにまだ用紙を溜められるので、図35において3545の処理に進むことにより、本印刷タスクに対応する裏面を印刷する。
【0215】ステップ392では、両面印刷排出フラグがOFFか判定する。本判定がYesの場合、プリンタエンジン最大滞留枚数到達に伴う、表面印刷可能タスクの待ち解除を行う(393)。本ステップ393の処理手順は、図37に示したものと同じである。続いて、裏面印刷Post必要フラグ1908をONにした後(394)、本印刷タスク用のマルチページコピー連絡用ECBアドレスを入力として、Waitマクロを発行する(395)。
【0216】図40を用いて、一連の印刷マクロの発行処理(3545)の手順を説明する。本処理では、まずプリンタリザーブマクロを発行し(401)、プリンタエンジンの使用権を獲得する。続いて、プリンタ管理テーブル内の印刷条件フィールドに、ページバッファ管理テーブル内の当該印刷ページバッファ番号用印刷条件フィールド内の該当項目の値をコピーする(402)。続いて、給紙部確認マクロの発行(403)、給紙部指示マクロの発行(404)、排紙部確認マクロの発行(405)、排紙部指示マクロの発行(406)、片面・両面印刷用印刷指示マクロの発行(407)、及びプリンタフリーマクロの発行(408)を行う。プリンタフリーマクロの発行により、本タスクによるプリンタエンジンの使用権を解放する。ステップ401と403から408の各プリンタ制御用マクロの機能を、図45から図47に示す。
【0217】図41を用いて、片面・両面印刷用印刷指示(407)の処理手順を説明する。本マクロは、前記先願発明における印刷指示マクロを、片面印刷用から片面印刷と両面印刷の両方に適用できるように拡張したものである。その実現方法は、プリンタエンジン部120の仕様に応じて、若干異なるが、同様にして実現することができる。以下に、一実現例を示す。初めに、本マクロの入力パラメータである印刷指示モード(prnmode)が1または2であり、両面印刷を指定されているか判定する(411)。本判定がYesならば、以下の処理(412から4152)を実行する。
【0218】(1)プリンタエンジンが片面印刷モードか判定する(412)。そうなら、プリンタエンジンを両面印刷モードにするため、両面印刷モード選択コマンドのプリンタエンジン部120への発行を、サブCPU96に指示する(4121)。
(2)前記印刷指示モード(prnmode)が1であり、表面印刷を指定されているか判定する(413)。本判定がYesならば、両面・表面印刷用の印刷指示(414)を行う。
【0219】具体的には、表面印刷用パスの選択をサブCPUへ指示した後(4141)、印刷指示信号のプリンタエンジン部120への発行をサブCPUに指示する(4142)。ステップ413の判定で、表面印刷が指示されていず裏面印刷が指示されているならば、、両面・裏面印刷用の印刷指示(414)を行う。具体的には、裏面印刷用パスの選択をサブCPUへ指示した後(4151)、印刷指示信号のプリンタエンジン部120への発行をサブCPUに指示する(4152)。なお、ステップ4141における表面印刷用パスの選択では、後半印刷用のパスとして図4における給紙パス2と排紙パス1を選択する。また、ステップ4151における裏面印刷用パスの選択では、前半印刷用のパスとして図4における給紙パス1と排紙パス2を選択する。本パスの選択方法は、プリンタエンジン部120の仕様に応じた適切な方法で行った。また、4141の処理前に印刷パスが表面印刷用かどうか判定し、既に表面印刷用になっていれば4141の処理を省くことができる。ステップ4151の処理についても、同様である。
【0220】ステップ411の判定がNoならば、以下の処理(416から418)を実行する。
【0221】(1)プリンタエンジンが両面印刷モードか判定する(416)。そうであれば、プリンタエンジンを片面印刷モードにするため、片面印刷モード選択コマンドのプリンタエンジン部120への発行を、サブCPU96に指示する(417)。
【0222】(2)片面印刷用の印刷指示(418)を行うため、印刷指示信号のプリンタエンジン部120への発行をサブCPUに指示する(418と4181)。
【0223】本プリンタエンジン部120については、ステップ4142、4152、4181の印刷指示信号のサブCPUへの発行指示に伴い、当該印刷ページバッファについての描画が完了し、即座に印刷ができることを、サブCPU96またはCPU93がプリンタエンジン部120へコマンドまたは信号により連絡する。これより、プリンタエンジン部120による印刷プロセスに余分な遅れを生じさせないようにした。本機能が提供されていないプリンタエンジン部については、以上の処理は特に行わない。
【0224】図42を用いて、裏面印刷Post関係処理(3561)の処理手順を説明する。本処理ではまず、裏面印刷Post必要フラグ1908がONか判定する(431)。ONならば、本フラグをOFFにした後(432)、裏面印刷Post待ちタスク番号1909用のマルチページコピー連絡用ECBアドレスを入力として、Postマクロを発行する(433)。
【0225】図51を用いて、図35に示した両面印刷紙なしエラー処理(3556)の処理手順を説明する。本処理では、プリンタエンジン滞留枚数1905が0かを、一連の印刷マクロの発行処理(3545)とプリンタエンジン滞留枚数更新(3550)を行った後で、判定する(421)。本判定がyesであり、プリンタエンジン内に前半印刷済みの用紙が滞留していないことを確認すると、表面印刷post待ちタスク番号1907用のマルチページコピー連絡用ECBアドレスを入力として、postマクロを発行する(422)。
【0226】図43を用いて、表面印刷Post待ちタスク番号と裏面印刷Post待ちタスク番号の更新(3562)の処理手順を説明する。本処理ではまず、当該印刷ページバッファファ番号のページバッファについて両面印刷指定がなされているか、該ページバッファ用の片面・両面印刷指定コード(1405)を参照しながら、判定する(441)。両面印刷指定がなされているなら、当該印刷ページバッファ番号のページバッファが、表面印刷を指定されているか、該ページバッファ用の表面・裏面印刷指定コード(1406)を参照しながら、判定する(442)。本判定がyesならば、表面印刷Post待ちタスク番号1907を2だけ加算する(4421)。その後、表面印刷Post待ちタスク番号が印刷タスク総数より大きいか判定し(4422)、そうであれば表面印刷Post待ちタスク番号1907を表面印刷Post待ちタスク番号1907-印刷タスク総数とする(4423)。
【0227】ステップ442の判定がNoならば、裏面印刷Post待ちタスク番号1909を2だけ加算する(4424)。その後、裏面印刷Post待ちタスク番号が印刷タスク総数より大きいか判定し(4425)、そうであれば裏面印刷Post待ちタスク番号1909を表面印刷Post待ちタスク番号1909-印刷タスク総数とする(4426)。
【0228】ステップ441の判定がNoであり片面印刷指定がなされているならば、表面印刷Post待ちタスク番号1907を1だけ加算する(443)。その後、表面印刷Post待ちタスク番号が印刷タスク総数より大きいか判定し(444)、そうであれば表面印刷Post待ちタスク番号1907を1とする(445)。続いて、裏面印刷Post待ちタスク番号1909を1だけ加算する(446)。その後、裏面印刷Post待ちタスク番号が印刷タスク総数より大きいか判定し(447)、そうであれば裏面印刷Post待ちタスク番号1909を1とする(448)。
【0229】次に図44を参照しながら、両面印刷終りタスクの処理手順を説明する。本タスクはまず、プリンタリザーブマクロを発行しプリンタの使用権を獲得する(450)。続いて、表面印刷待ち行列内に待ちタスクがあるか判定する(451)。あれば、前述の表面印刷待ち解除マクロを解除モード1で発行することにより、本表面印刷待ち行列内の全タスクを先頭から順に、表面印刷待ち状態から解除する(452)。次に表面印刷Post必要フラグ1906がONか判定する(453)。ONならば、本フラグをOFFにした後(454)、表面印刷Post待ちタスク番号1907用のマルチページコピー連絡用ECBアドレスを入力として、Postマクロを発行する(455)。該両面印刷終りタスクは、以上の処理の後、プリンタフリーマクロを発行してプリンタの使用権を解放することにより、処理を終える(456)。
【0230】なお、450と456のプリンタリザーブ/フリーマクロの発行目的を、次に示す。
【0231】(a)実際の印刷を行うために両面印刷終りタスクより前に発行されている印刷タスクが処理を終了する前に、両面印刷終りタスクが実行されるのを防止する。これにより、図12に示したページ順序を守った印刷を達成できるようにする。
【0232】(b)図5の印刷コマンド列を例にして説明すると、第1ページ〜第3ページ用の各印刷タスクは、一連の印刷マクロの発行処理(3545)において、プリンタリザーブによりプリンタの使用権を獲得する(401)。その後、403〜407の印刷マクロを発行することにより、プリンタエンジン部120との間の入出力処理を行う。該入出力処理において、各印刷マクロは、本マクロの発行者である各印刷タスクを、入出力待ち状態に移す。
【0233】(c)この時、各印刷タスクより後で起動された両面印刷終りタスクが、前述のタスク制御部12’内のタスクディスパッチャの機能により実行状態に移されることがある。
【0234】(d)ところが、両面印刷終りタスクが450においてプリンタリザーブマクロを発行する。この時、前述の各印刷タスクが前記401の処理により既にプリンタの使用権を獲得済みであるため、両面印刷終りタスクBは該プリンタ使用権の獲得待ち状態に移される。
【0235】(e)この結果、第1ページ〜第3ページ用の各印刷タスクより後に起動された両面印刷終りタスクが、451〜455の処理を進めることを防止する。
【0236】(f)また、印刷タスクのうち最後のもの、この例では第3ページ用の印刷タスクが、プリンタフリーマクロを発行し、プリンタの使用権を解放した時点で、両面印刷終りタスクが該プリンタ使用権の獲得待ち状態から直ちに解除され、プリンタの使用権を獲得する。
【0237】(g)以上により、図12に示したページ順序を守った印刷を、達成することができる。
【0238】(h)なお、450と456によるプリンタリザーブ/フリーマクロの発行を行わない場合、前述の(d)に示した処理がなされないため、各印刷タスクより後に起動された両面印刷終りタスクが、451〜455の処理を進めることになる。そのため、予期していなかった表面印刷待ち解除や表面印刷post関係の処理がなされる。従って、前述の図12に示したページ順序を守った印刷を、達成できなくなることがあり、ユーザにとって混乱した印刷結果が生じることになる。
【0239】次に図45を用いて、ページバッファ制御用マクロの機能を説明する。本マクロは、本出願人による先願発明、特願平1-282747号と同様、ページバッファの獲得と解放及び再獲得を行うが、本実施例では両面印刷に対応するため以下の点について機能を拡張した。
【0240】(1)空きページバッファの検索空きページバッファは、最後に獲得したページバッファの次のページバッファから検索を行う。そのページバッファが使用中の場合、その次のページバッファを検索する。このようにして、空きページバッファが見つかるまで順に検索を行う。全ページバッファを一巡検索しても空きページバッファが見つからなかい場合、ページバッファ空き待ちとする。
【0241】例えば、最後に獲得したページバッファが6番目とする。すると、次ページのための空きページバッファ検索は、ページバッファの7番目から行う。そこでそのページバッファが空き(未使用)であれば、ページバッファの獲得を行う。使用中であれば、ページバッファの8番目以降について順に空きページバッファの検索を行っていく。
【0242】(2)ページバッファリザーブ及びページバッファ再リザーブページバッファの1単位をA4サイズとして説明する。これは、B5サイズを1単位とする方法では、A3サイズのページバッファを獲得する際、余分なメモリが発生することとなるからであるが、B5等の他のサイズを1単位としても同様に実現することができる。
【0243】(a)入力紙サイズがA4サイズ以下の場合A5、B5サイズ等のA4サイズ以下の紙サイズの場合も、A4サイズ1単位分のページバッファを獲得する。
【0244】(b)入力紙サイズがA4サイズより大きい場合B4、A3サイズ等のA4サイズより大きく、A3サイズ以下の紙サイズの場合、A4サイズ2単位分のページバッファ(A3サイズのページバッファ分)、図49の例ではページバッファ0と1、ページバッファ2と3等の対を獲得する。例えば、図49のように、A4サイズの単位ページバッファを3面分(0から2)使用しており、次に獲得したい紙サイズがA4サイズより大きいものとする。この場合、前述の空きページバッファの検索を、ページバッファ獲得の起点を偶数番目のページバッファとして行うことにより、ページバッファ3と4でなく、ページバッファ4と5を獲得するようにする。これは、ページバッファを無駄なく、使用するためである。ページバッファ3と4といったように、ページバッファの空いているところを単に獲得していくと、本来ならばA3サイズについてページバッファを5つ配置できるところが、4つになってしまうから(ページバッファ9と0が連続して獲得できないため)である。
【0245】図46、図47、図48のように、プリンタ制御用マクロとして次のものを用意した。
【0246】(a)プリンタ初期化
(b)レディ状態確認
(c)片面・両面印刷用印刷指示
(d)給紙部確認
(e)給紙部指示
(f)排紙部確認
(g)排紙部指示
(h)プリンタリザーブ
(i)プリンタフリー
(j)表面印刷待ち
(k)表面印刷待ち解除
(l)前半印刷済み用紙排出
(m)プリンタ状態変更
(n)エラーコード確認
以上のマクロの多くは、本出願人による先願発明、特願平1-164637号や本発特願平1-282747号の場合と同様であるが、本発明では両面印刷に対応するため、本実施例では(d)、(e)、(f)、(g)、(n)の機能を拡張するとともに、(c)、(j)、(k)、(l)、(m)のマクロを追加した。
【0247】次に紙なしエラー時の処理方式を図53〜図57を用いて説明する。
【0248】紙なしが発生すると、片面印刷では紙が補給されるまで印刷制御装置(プリンタコントローラ)110をホールド状態と呼ぶ中断状態とする。紙が補給されると前述のホールド状態から解除され、印刷処理を再開する。両面印刷時には、片面印刷時と同様に処理すると、プリンタエンジン内に用紙が滞留したままの状態になってしまう。従って、両面印刷では紙なしが発生した場合、プリンタエンジン内に滞留されている用紙については印刷可能(表面ページについての後半印刷)であるため、印刷を実行し、該滞留用紙を排出する。そして、用紙が補給されるまで印刷制御装置110をホールド状態とし、補給されるとそこから再開するようにする。なお、紙なしは裏面印刷(前半印刷)で発生し、検出される。
【0249】紙なしエラーを検出した場合、中断タスクと印刷タスクは、前述の印刷タスクのポイント(7)の(d)に示した手順を実行する。この手順における、中断タスクによる「表面印刷可能タスクの待ち解除」の処理手順を、(ア)同期エラーと非同期エラー、(イ)シングルページコピーとマルチページコピーの各場合について説明する。「表面印刷可能タスクの待ち解除」の処理手順を中心に説明する。
【0250】(A)同期紙なしエラーの場合
(a)シングルページコピー時処理手順
シングルページコピー時の紙なしエラー処理では、紙なし発生ページに対応する表面ページ用の印刷タスクを除いた、表面印刷待ち行列内のすべての印刷タスクを待ち状態から解除する。
【0251】図53はページ通し番号10(以下P10と表す、同様にページ通し番号iのページをPiと表す)にて紙なしエラーが発生した場合であり、表面印刷待ち状態にあるP5とP7用の印刷タスク(表面印刷待ち行列につながれている)を待ち行列からはずし、該待ち状態から解除し、印刷を行なっている。
【0252】図53について、さらに詳しく説明する。
【0253】本図では、各ページバッファに描画された印刷データについての印刷タスクによる処理を、該ページバッファの真下に示す。例えば、ページバッファ1(53A1)の真下に、以下の処理を示す。
【0254】・まずページ通し番号1(P1、53A2)用の印刷タスクによる表面印刷待ち(5301、本図では待ちと省略して記述)と印刷(5309)
・続いてページ通し番号9(P9、53A3)用の印刷タスクによる表面印刷待ち解除(5311、本図では待ち解除と省略して記述)と本タスク自身の表面印刷待ち(5312)
同様に、ページバッファ2(53B1)の真下に、以下の処理を示す。
【0255】・まずページ通し番号2(P2、53B2)用の印刷タスクによる印刷(5302)
・続いてページ通し番号10(P10、53B3)用の印刷タスク関係のエラー処理による中断タスク起動(5315)と本印刷タスクによる印刷(5319)
本図における処理手順を、順番に説明する。
【0256】(1)ページ通し番号1(P1、53A2)用の印刷タスクが表面印刷待ち(5301)になる。
【0257】(2)ページ通し番号2(P2、53B2)用の印刷タスクが印刷を行う(5302)。
【0258】(3)以下、ページ通し番号3用の印刷タスクの表面印刷待ち(5303)、ページ通し番号4用の印刷タスクの印刷(5304)、ページ通し番号5用の印刷タスクの表面印刷待ち(5305)、ページ通し番号6用の印刷タスクの印刷(5306)を行う。
【0259】(4)次に、ページ通し番号7用の印刷タスクが、プリンタエンジン滞留枚数到達を検出し、表面印刷待ち行列の先頭印刷タスクの表面印刷待ち状態からの解除(5307、本解除により該待ち行列からはずされる)と、該印刷タスク自身の表面印刷待ち状態への移行(5308)を行う。
【0260】(5)5307により表面印刷待ち状態から解除されたページ通し番号1用の印刷タスクが印刷を行う(5309)。
【0261】(6)ページ通し番号8(P8)用の印刷タスクが印刷を行う(5310)。
【0262】(7)ページ通し番号9(P9、53A3)用の印刷タスクが、プリンタエンジン滞留枚数到達を検出し、表面印刷待ち行列の先頭印刷タスクの表面印刷待ち状態からの解除(5311)と、該印刷タスク自身の表面印刷待ち状態への移行(5312)を行う。
【0263】(8)5311により表面印刷待ち状態から解除されたページ通し番号3用の印刷タスクが印刷を行う(5313)。
【0264】(9)ページ通し番号10(P10)用の印刷タスクが印刷を行おうとした時、紙なしエラーが発生した(5314)。
【0265】(10)ページ通し番号10(P10)用の印刷タスク関係のエラー処理が中断タスクを起動し、該中断タスクが対応する表面ページを除いた全ての表面印刷待ちを解除する(5315)。
【0266】(11)5315により表面印刷待ち状態から解除されたページ通し番号5用の印刷タスクとページ通し番号7用の印刷タスクが印刷を行う(5316と5317)。
【0267】(12)ユーザやシステム管理者が紙を補給する(5318)。
【0268】(13)紙の補給に伴い、ページ通し番号10(P10)用の印刷タスクが印刷を行う(5319)。
【0269】(14)以下、ページ通し番号11用の印刷タスクの表面印刷待ち状態への移行(5320)、ページ通し番号12用の印刷タスクの印刷(5321)、ページ通し番号13用の印刷タスクの表面印刷待ち状態への移行(5322)、ページ通し番号14用の印刷タスクの印刷(5323)というように処理が進行する。
【0270】(b)マルチページコピー時処理手順マルチページコピー時の紙なしエラー処理では、まず、紙なしエラー発生ページの印刷完了部数を調べる。総印刷部数分完了していれば現在白紙印刷部数を、完了していなければ現在印刷部数を、印刷完了部数とする。
【0271】そして、印刷完了部数が0部の場合、紙なしエラー発生ページに対応する表面ページ用の印刷タスクを除いた、表面印刷待ち行列内の全ての印刷タスクを待ち状態から解除する。
【0272】印刷完了部数が1部以上の場合、紙なし発生ページに対応する表面ページ用の印刷タスクまでの、表面印刷待ち行列内の全ての印刷タスクを待ち状態から解除する。そして、表面印刷POST必要フラグがONならば、本フラグをOFFにした後、表面印刷POST待ち解除をpostマクロを用いて実行する。
【0273】図54はP4の2部目で紙なしが発生した場合を表している。本ケースは詳しくは、▲1▼表面印刷待ち行列に表面印刷待ちの印刷タスクがつながれており、▲2▼紙なし発生ページの印刷完了部数が1部以上の例を示している。
【0274】ここで、紙なしエラーが発生すると中断タスクが起動される。中断タスクの処理手順を図57に示す。中断タスクでは、紙なしエラーの場合(571)、両面印刷紙なしエラー発生フラグ1912(図22)をONにした後(573)、表面印刷可能タスクの待ち解除を行う(574)。
【0275】本待ち解除では、表面印刷待ち行列内のページ通し番号3(P3)に対応する印刷タスクの表面印刷待ち解除と、表面印刷POST待ち状態にあるページ通し番号1(P1)の印刷タスクに対するPost処理を行う。その後、中断タスクは、waitマクロを発行することにより、表面印刷可能タスク終了待ち状態となる(575)。
【0276】すると、プリンタエンジン内滞留用紙についての印刷、つまりP1の5部目、P3の1部目の印刷が行われる。ページ通し番号3(P3)についての印刷タスクの処理において、1部目を印刷した時点(プリンタエンジン内のすべての滞留用紙が印刷されている)で、図35に示す前述の3555と3556の処理を行い、図51における422の処理によりpostマクロを発行することにより、中断タスクを表面印刷可能タスク終了待ち状態(575に対応)から解除する。これにより、中断タスクの処理に戻る。中断タスクは、片面印刷の場合と同様の従来処理を行う。該中断タスクについての従来処理では、全タスク中断576、ウェイト(wait)577、全タスク再開578、タスク終了575等を実行する。詳細な処理の内容は、本出願人による先願発明、特開平1-121523号で説明したものと同じである。
【0277】図54について、さらに詳しく説明する。本図でも図53と同様、各ページバッファに描画された印刷データについての印刷タスクによる処理を、該ページバッファの真下に示す。例えば、ページバッファ1(54A1)の真下に、ページ通し番号1(P1、54A2)用の印刷タスクによる以下の処理を示す。
【0278】・表面印刷待ち(5401、本図でも待ちと省略して記述)
・第1部目の印刷(5407)と、裏面印刷post待ちタスクのpost(5408)と、該タスク自身のwait(5409)。
【0279】・第2部目の印刷(5413)と、裏面印刷post待ちタスクのpost(5414)と、該タスク自身のwait(5415)
・第3部目の印刷(5419)と該タスク自身のwait(5420)
・第4部目の印刷(5424)と、裏面印刷post待ちタスクのpost(5425)と、該タスク自身のwait(5426)
・第5部目の印刷(5429)
同様に、ページバッファ2(54B1)の真下に、ページ通し番号2(P2、54B2)用の印刷タスクによる以下の処理を示す。
【0280】・第1部目の印刷(5402)と第2部目の印刷(5403)と第3部目の印刷(5404)と表面印刷待ち解除(5405、本図では待ち解除と省略して記述)と本タスク自身のwait(5406)
・第4部目の印刷(5410)と、表面印刷post待ちタスクのpost(5411)と、本タスク自身のwait(5412)。ここで、表面印刷post待ちタスクのpostでは、表面印刷post待ちタスク番号用のマルチページコピー連絡用ECBアドレスを入力とする。また、該タスク自身のwaitでは、該タスクのタスク番号用のマルチページコピー連絡用ECBアドレスを入力とする。
【0281】・第5部目の印刷(5416)
本図における処理手順を、順番に説明する。
【0282】(1)ページ通し番号1(P1、54A2)用の印刷タスクが表面印刷待ち(5401)になる。
【0283】(2)ページ通し番号2(P2、54B2)用の印刷タスクが第1部目の印刷(5402)と、第2部目の印刷(5403)と、第3部目の印刷(5404)と、表面印刷待ち解除(5405)と、本タスク自身のwait(5406)を行う。
(3)5405により表面印刷待ち状態から解除されたページ通し番号1用の印刷タスクが、第1部目の印刷(5407)と、裏面印刷post待ちタスクのpost(5408)と、該タスク自身のwait(5409)を行う。ここで、裏面印刷post待ちタスクのpostでは、裏面印刷post待ちタスク番号用のマルチページコピー連絡用ECBアドレスを入力とする。また、該タスク自身のwaitでは、該タスクのタスク番号用のマルチページコピー連絡用ECBアドレスを入力とする。
【0284】(4)ページ通し番号2用の印刷タスクが、第4部目の印刷(5410)と、表面印刷post待ちタスクのpost(5411)と、本タスク自身のwait(5412)を行う。ここで、表面印刷post待ちタスクのpostでは、表面印刷post待ちタスク番号用のマルチページコピー連絡用ECBアドレスを入力とする。また、該タスク自身のwaitでは、該タスクのタスク番号用のマルチページコピー連絡用ECBアドレスを入力とする。
【0285】(5)5411によりwait状態から解除されたページ通し番号1用の印刷タスクが、第2部目の印刷(5413)と、裏面印刷post待ちタスクのpost(5414)と、該タスク自身のwait(5415)を行う。
【0286】(6)5414によりwait状態から解除されたページ通し番号2用の印刷タスクが、第5部目の印刷を行う(5416)。
【0287】(7)ページ通し番号3用の印刷タスクが、posマクロを発行することにより、5415に基づくwait状態を解除する(5417)。続いて、該タスクが表面印刷待ちになる(5418)。
【0288】(8)5417によりwait状態から解除されたページ通し番号1用の印刷タスクが、第3部目の印刷(5419)と、該タスク自身のwait(5420)を行う。
【0289】(9)ページ通し番号4用の印刷タスクが、第1部目の印刷(5421)と、表面印刷post待ちタスクのpost(5422)と、本タスク自身のwait(5423)を行う。
【0290】(10)5422によりwaitから解除されたページ通し番号1用の印刷タスクが、第4部目の印刷(5424)と、裏面印刷post待ちタスクのpost(5425)と、該タスク自身のwait(5426)を行う。
【0291】(11)5425によりwaitから解除されたページ通し番号2用の印刷タスクが、第2部目の印刷を行おうとした時、紙なしエラーが発生した(5427)。
【0292】(10)ページ通し番号2用の印刷タスク関係のエラー処理が中断タスクを起動し、該中断タスクが次の処理を行う(5428)。
【0293】・両面印刷紙なしエラー発生フラグをONに設定(5428-1)。
【0294】・表面印刷可能タスクの待ち解除(5428-2)。本待ち解除では、表面印刷待ち行列内のページ通し番号3(P3)に対応する印刷タスクの表面印刷待ち解除(5428-2A)と、表面印刷POST待ち状態にあるページ通し番号1(P1)の印刷タスクに対するPost処理(5428-2B)を行う。
【0295】・続いて、中断タスクがwaitマクロを発行することにより、表面印刷可能タスク終了待ち状態となる(5428-3)。
【0296】(11)5428-2Bによりwait状態から解除されたページ通し番号1用の印刷タスクが、第5部目の印刷を行う(5429)。
【0297】(12)5428-2Aによりwait状態(表面印刷POST待ち状態)から解除されたページ通し番号3用の印刷タスクが、第1部目の印刷を行う(5430)。続いて、該タスクが図54の(注1)に示したように、プリンタエンジン滞留枚数が0であることを検出したため(図51の421に対応)、postマクロを発行することにより(図51の422に対応)、中断タスクを前述の表面印刷可能タスク終了待ち状態から解除し(5431)、本タスク自身のwaitを行う(5432)。
【0298】(13)ユーザやシステム管理者が紙を補給する(5433)。
【0299】(14)紙の補給に伴い、紙なしエラーの発生に伴い中断されていたページ通し番号2用の印刷タスクが処理を再開し、第2部目の印刷を実行する(5434)。(15)次に、ページ通し番号2(P2、54B2)用の印刷タスクが第3部目の印刷(5435)と、第4部目の印刷(5436)と、表面印刷post待ちタスクのpost(5437)と、本タスク自身のwait(5438)を行う。
【0300】(16)以下、5437によりwaitから解除されたページ通し番号3用の印刷タスクが、第2部目の印刷(5439)と、裏面印刷post待ちタスクのpost(5440)と、該タスク自身のwait(5441)を行うというように、処理が進行する。
【0301】図55はP2の5部目で紙なしが発生した場合を表している。本ケースは詳しくは、▲1▼表面印刷待ち行列に表面印刷待ちの印刷タスクがつながれていず、▲2▼紙なし発生ページの印刷完了部数が1部以上の例を示している。
【0302】ここで、紙なしエラーが発生すると中断タスクが起動される。中断タスクでは、両面印刷紙なしエラー発生フラグをONにした後、表面印刷可能タスクの待ち解除を行う。
【0303】本待ち解除では、表面印刷POST待ち状態にあるページ通し番号1(P1)の印刷タスクに対するPost処理を行う。その後、中断タスクは、waitマクロを発行することにより、表面印刷可能タスク終了待ち状態となる(575)。
【0304】すると、プリンタエンジン内滞留用紙についての印刷、つまりP1の3部目と4部目の印刷が行われる。ページ通し番号1(P1)についての印刷タスクの処理において、4部目を印刷した時点(プリンタエンジン内のすべての滞留用紙が印刷されている)で、図35に示す前述の3555と3556の処理を行い、図51における422の処理によりpostマクロを発行することにより、中断タスクを表面印刷可能タスク終了待ち状態(575に対応)から解除する。これにより、中断タスクの処理に戻る。中断タスクは、図54の場合と同様、片面印刷用と同様の従来処理を行う。
【0305】図56はP4の1部目で紙なしが発生した場合を表している。本ケースは詳しくは、▲1▼表面印刷待ち行列に表面印刷待ちの印刷タスクがつながれており、▲2▼紙なし発生ページの印刷完了部数が0部である例を示している。
【0306】ここで、紙なしエラーが発生すると中断タスクが起動される。中断タスクでは、両面印刷紙なしエラー発生フラグをONにした後、表面印刷可能タスクの待ち解除を行う。
【0307】本待ち解除では、表面印刷POST待ち状態にあるページ通し番号1(P1)の印刷タスクに対するPost処理を行う。その後、中断タスクは、waitマクロを発行することにより、表面印刷可能タスク終了待ち状態となる(575)。
【0308】すると、プリンタエンジン内滞留用紙についての印刷、つまりP1の4部目、5部目の印刷が行われる。ページ通し番号1(P1)についての印刷タスクの処理において、5部目を印刷した時点(プリンタエンジン内のすべての滞留用紙が印刷されている)で、図35に示す前述の3555と3556の処理を行い、図51における422の処理によりpostマクロを発行することにより、中断タスクを表面印刷可能タスク終了待ち状態(575に対応)から解除する。これにより、中断タスクの処理に戻る。中断タスクは、図54の場合と同様、片面印刷用と同様の従来処理を行う。
【0309】(B)非同期紙なしエラーの場合
(a)シングルページコピー時処理手順
非同期紙なしエラーでは、原理的に、表面印刷待ち行列の最後につながれている表面ページに対応する裏面ページの印刷処理において、紙なしエラーが発生する。
【0310】従って、待ち行列の最後につながれている表面ページ用の印刷タスクを除いた、表面印刷待ち行列内のすべての印刷タスクは印刷可能である。そこで、それらの印刷可能な印刷タスクは表面印刷待ち状態から解除し、印刷を行う。
【0311】例えば、表面印刷待ち行列にP3、P5、P7と印刷タスクがつながれている場合、P8で紙なしが発生したとする。この場合、P7の印刷タスクを除いたP3、P5の印刷タスクを表面印刷待ち行列からはずし、表面印刷待ち状態から解除するようにし、印刷を行うようにした。
【0312】(b)マルチページコピー時処理手順
非同期紙なしエラーは、シングルページコピーの場合と同様、表面印刷待ち行列の最後につながれている表面ページに対応する裏面ページの印刷処理において紙なしエラーが発生する。
【0313】従って、待ち行列の最後につながれている表面ページに対応する裏面ページについての印刷完了部数を調べる。総印刷部数分完了していれば現在白紙印刷部数を、完了していなければ現在印刷部数を、印刷完了部数とする。
【0314】そして、印刷完了部数が0部の場合、待ち行列の最後につながれている表面ページ用の印刷タスクを除いた、表面印刷待ち行列内のすべての印刷タスクを表面印刷待ち状態から解除する。
【0315】印刷完了部数が1部以上の場合、表面印刷待ち行列内のすべての印刷タスクを表面印刷待ち状態から解除する。そして、表面印刷POST必要フラグがONならば、本フラグをOFFにした後、表面印刷POST待ち解除をpostマクロを用いて実行する。
【0316】(C)処理概略
紙なしエラーが発生した場合、プリンタエンジン内の滞留用紙を印刷させるための処理は、前述のように図57の中断タスクにて行った。
【0317】次に、図58〜図67を用いて、両面印刷におけるマルチページコピー処理方式を説明する。初めに、表面印刷部数と裏面印刷部数が一致している場合、続いて表面印刷部数と裏面印刷部数が一致していない場合について説明する。
【0318】(1)表面印刷部数と裏面印刷部数が一致している場合
表面印刷部数と裏面印刷部数が一致している場合は、ここまでで説明済みの処理手順を用いて実現することができる。本ケースの処理手順の例を、図58〜図60に示す。これらの図の見方は、図53と図54について既に説明したものと同じである。
【0319】図58は、印刷文書をページ通し番号6以上のページで構成、印刷部数が2部、ページバッファ面数が6、プリンタエンジン最大滞留枚数が3(用紙サイズがA4)の場合である。本図は、印刷部数<プリンタエンジン最大滞留枚数の場合を説明するための図である。
【0320】図59は、印刷文書をページ通し番号6以上のページで構成、印刷部数が3部、ページバッファ面数が6、プリンタエンジン最大滞留枚数が3(用紙サイズがA4)の場合である。本図は、印刷部数=プリンタエンジン最大滞留枚数の場合を説明するための図である。
【0321】図60は、印刷文書をページ通し番号6以上のページで構成、印刷部数が4部、ページバッファ面数が6、プリンタエンジン最大滞留枚数が3(用紙サイズがA4)の場合である。本図は、印刷部数>プリンタエンジン最大滞留枚数の場合を説明するための図である。
【0322】(2)表面印刷部数と裏面印刷部数が一致していない場合
表面印刷部数と裏面印刷部数が一致していない場合、次のように印刷する。ここで、少ない方の印刷部数をa、多い方の印刷部数をbとする。
【0323】印刷部数が多い方の面については、印刷部数bだけの実際の印刷を行う。
【0324】印刷部数が少ない方の面についての印刷は次のようにする。
【0325】・印刷部数aだけの実際の印刷を行う。
【0326】・印刷部数|a-|だけの白紙印刷を行う。ここで、|a-b|はaとbとの差分の絶対値を表す。
【0327】以上の処理を実現するため、ページバッファ管理テーブルとプリンタ管理テーブル、印刷部数指定コマンド処理、白紙印刷の方法、印刷タスク、ページバッファ読出し終了処理を次のようにする。
【0328】(a)ページバッファ管理テーブルとプリンタ管理テーブル
ページバッファ管理テーブル1141に総白紙印刷部数1410と現在白紙印刷部数1411を設ける(図16参照)。プリンタ管理テーブル1161に総白紙印刷部数1903と現在白紙印刷部数1904を設ける(図22参照)。
【0329】(b)印刷部数指定コマンド処理
裏面ページについての印刷部数指定が行なわれた時、対応する表面ページの印刷部数と比較し、差分の絶対値を総白紙印刷部数としてページバッファ管理テーブル内の該当エリア1410へ設定する。図61に処理手順を示す。なお、前述の図33の処理手順は、表面印刷部数と裏面印刷部数が一致している場合にのみ通用する。一方、図61の処理手順は、表面印刷部数と裏面印刷部数が一致している場合と一致していない場合の両方に通用する。
【0330】(c)白紙印刷の方法
白紙印刷を実現するため、次のようにした。
【0331】・使用しているページバッファについて、ユーザの指定した印刷部数である総印刷部数に加え、さらに総白紙印刷部数だけページバッファから読出す。
【0332】・総印刷部数だけ読出した後、ページバッファをクリア(ゼロクリア)する。その後、クリアされたページバッファから総白紙印刷部数回だけ読出し、白紙印刷を行う。
【0333】・総印刷部数+総白紙印刷部数回だけのページバッファからの読出しが完了した時点で、使用しているページバッファを、ページバッファフリーマクロを用いて解放する。
【0334】(d)印刷タスク
印刷タスクの処理手順は、図35〜図44と図51に示した通りである。
【0335】印刷タスクは、プリンタ管理テーブル1161内の印刷条件エリア1900等の印刷制御情報を用いて、表面印刷制御又は裏面印刷制御を行う。なお、ページバッファ管理テーブル1141の総印刷部数1408と総白紙印刷部数1410が、プリンタ管理テーブルの総印刷部数1901と総白紙印刷部数1903にコピーされ、該当ページ(表面印刷又は裏面印刷)のマルチページコピー印刷の制御に用いられる。
【0336】(e)ページバッファ読出し終了割込み処理
図62にページバッファ読出し終了割込み処理の処理手順を示す。本処理はページバッファからの読出しが1回終了する毎に、行われる。
【0337】本図に示すように、初めにプリンタメモリコントローラ97のリセットと割込みイネーブル(621)、ページバッファ読出し終了監視タイマのリセット(622)を行う。
【0338】続いて、ページバッファからの読出しが総印刷部数1901回分完了したか判定する(623)。完了していれば、現在白紙印刷部数1411を、現在印刷出力中のページバッファ番号(1141内に記述されている)について更新する(6231)。完了していなければ、現在印刷部数1409を、現在印刷出力中のページバッファ番号について更新する(6232)。
【0339】続いて、次の印刷が総印刷部数のうちで最終か判定する(624)。最終であれば、現在印刷出力中のページバッファ番号について、ページバッファの描画・印刷状態を「印刷中2」に設定する(6241)。
【0340】総印刷部数分の実際の印刷と総白紙印刷部数分の白紙印刷が完了した時点で、現在印刷出力中のページバッファ番号について、ページバッファフリーマクロを発行し、該当ページバッファを解放する(6251)。
【0341】以上の表面印刷部数と裏面印刷部数が一致していない場合にも通用する両面印刷処理方式の適用結果を、次に説明する。
【0342】まず、表面印刷部数>裏面印刷部数の場合の両面印刷の処理状況の例を、図63〜図65に示す。この場合、表面印刷部数と裏面印刷部数との差分だけの裏面ページが、白紙として印刷される。これらの図の見方は、図53と図54について既に説明したものと同じである。
【0343】図63は、印刷文書をページ通し番号6以上のページで構成、印刷部数が表面2部、裏面1部、ページバッファ面数が6、プリンタエンジン最大滞留枚数が3(用紙サイズがA4)の場合である。本図は、表面印刷部数<プリンタエンジン最大滞留枚数の場合を説明するための図である。
【0344】図64は、印刷文書をページ通し番号6以上のページで構成、印刷部数が表面3部、裏面1部、ページバッファ面数が6、プリンタエンジン最大滞留枚数が3(用紙サイズがA4)の場合である。本図は、表面印刷部数=プリンタエンジン最大滞留枚数の場合を説明するための図である。
【0345】図65は、印刷文書をページ通し番号6以上のページで構成、印刷部数が表面4部、裏面2部、ページバッファ面数が6、プリンタエンジン最大滞留枚数が3(用紙サイズがA4)の場合である。本図は、表面印刷部数>プリンタエンジン最大滞留枚数の場合を説明するための図である。
【0346】次に、表面印刷部数<裏面印刷部数の場合の両面印刷の処理状況の例を、図66〜図68に示す。この場合、裏面印刷部数と表面印刷部数との差分の絶対値だけの表面ページが、白紙として印刷される。これらの図の見方は、図53と図54について既に説明したものと同じである。
【0347】図66は、印刷文書をページ通し番号6以上のページで構成、印刷部数が表面1部、裏面2部、ページバッファ面数が6、プリンタエンジン最大滞留枚数が3(用紙サイズがA4)の場合である。本図は、裏面印刷部数<プリンタエンジン最大滞留枚数の場合を説明するための図である。
【0348】図67は、印刷文書をページ通し番号6以上のページで構成、印刷部数が表面1部、裏面3部、ページバッファ面数が6、プリンタエンジン最大滞留枚数が3(用紙サイズがA4)の場合である。本図は、裏面印刷部数=プリンタエンジン最大滞留枚数の場合を説明するための図である。
【0349】図68は、印刷文書をページ通し番号6以上のページで構成、印刷部数が表面2部、裏面4部、ページバッファ面数が6、プリンタエンジン最大滞留枚数が3(用紙サイズがA4)の場合である。本図は、裏面印刷部数>プリンタエンジン最大滞留枚数の場合を説明するための図である。
【0350】次に、複数排紙部サポート方式について説明する。
【0351】まず、排紙終了監視方法について説明する。印刷タスクは、印刷した用紙が排紙部に排紙されるまで監視を行なう。監視を行なう手段として、タイマを用いた。排紙監視用タイマには、プリンタエンジンに対して印刷指示を行なってから排紙部に用紙が排紙されるまでの時間が設定される。上記タイマが、タイムアウトになるまでにエラーが発生しない場合、正常に排紙されたものとして、ページ通し番号の更新処理等を行なう。図69に印刷指示から排紙終了までの印刷シーケンスを示す。
【0352】次に、複数排紙部サポート方式について説明する。
【0353】複数排紙部を利用する場合、排紙部によって排紙時間が異なる。従って、ページ通し番号nの用紙を排紙部1から排紙した後、ページ通し番号n+1の用紙を排紙部2から排紙した場合、後から排紙したページ通し番号n+1の用紙が先に排紙されることがある。
【0354】従来の排紙終了確認方式では、この「排紙終了順番の逆転」という現象が起きると、排紙終了ページ通し番号の把握、及び印刷タスクの終了タイミングを間違えるという問題が生じていた。
【0355】従って、上記問題点を解消し複数排紙部をサポートするため、前述のプリンタ管理テーブル1161内の排紙終了監視情報1950(図24参照)を用いて、以下のことを行った。
【0356】(a)複数個の排紙終了監視タイマを設けた。タイマの数としては、プリンタエンジン中に滞留する可能性のある最大用紙枚数分を用意した。印刷タスクが発行した印刷指示マクロに対応する垂直同期信号要求割込み処理において、(i)プリンタ管理テーブル内の本タイマ対応エリアへの監視する用紙のページ通し番号と指定排紙部の記入、及び(ii)順番の排紙終了監視タイマの選択と、本タイマへの排紙部と用紙サイズにより定まるタイマ値のセットと、本タイマの起動を行った。
【0357】(b)排紙部別に排紙された用紙の最新ページ通し番号を管理するためのエリアを、前述のようにプリンタ管理テーブルに用意した。
【0358】(c)排紙終了監視タイマ割込み処理が、前記(a)の(i)にて記入済みの値に基づき、排紙の終了した排紙部の最新排紙ページ通し番号((b)に記したプリンタ管理テーブル内の値)を更新するようにした。
【0359】(d)排紙部が排紙部1〜排紙部mまであるものとする。この時、頁印刷終了時、又はエラー発生時に、印刷制御装置は「排紙終了監視タイマ1から同タイマ25の各々に対応するページ通し番号の中での最小値-1」を、排紙がとぎれることなく正常に印刷を完了したページ通し番号として決定した。その後、頁印刷終了ページ通し番号、又は再送開始ページ通し番号を印刷制御装置から上位ホストコンピュータへの報告データ中の該当エリアに設定した。
【0360】以上により、複数排紙部を利用し、「排紙終了順番の逆転」という現象が起きる場合でも、排紙終了ページ通し番号の正しい把握、及び印刷タスクの正しいタイミングでの終了を実現できるようにした。
【0361】また以上の実施例は、上記先願発明(図50)への拡張機能として実現することもできる。つまり、描画処理部や印刷処理部の処理をマルチタスク構成とし、並行処理(単一プロセッサによるパイプライン的処理)または並列処理(複数プロセッサによる同時処理)をできるようにしてもよい。この場合、図1内の各構成要素は図50の各構成要素に、以下のように対応づけられる。
【0362】(1)ホストコンピュータ100がホストコンピュータ100’に(2)ホスト通信制御部111がホスト通信制御部118’に(3)コマンドバッファ部112がコマンドバッファ部11’に(4)コマンド処理部113がタスク処理部13’に(5)描画処理部1131が描画タスク処理部131’に(6)印刷処理部1132が印刷タスク処理部132’に(7)ページバッファ制御部114がページバッファ制御部116’に(8)ページバッファ部115がページバッファ部14’に(9)プリンタ制御部116がプリンタ制御部117’に
【0363】
【発明の効果】本発明によれば、両面印刷において、1枚の用紙の表面及び裏面に対応する2ページ単位に紙サイズ、印刷部数、紙縦横方向の指定を許容するとともに、1枚の用紙の表面と裏面で紙サイズ、印刷部数、紙縦横方向のいずれかが異なる指定をも許容することができる。
【0364】また、上位装置から受信した両面印刷終わり文書の終りを描画処理部が検出し、本検出に基づいて起動された両面印刷終わり処理部が、プリンタエンジン内の前半印刷済みの残留用紙を排出し、本文書についての両面印刷を終えることができる。
【0365】さらに、両面印刷指定がなされている場合に、用紙裏面についての給紙部指定又は排紙部指定又は紙サイズ指定を行っても、本裏面ページを白紙として印刷した後、以後本裏面ページを新たな表面ページとして印刷ることにより、片面印刷の場合と同様の、大きな自由度の印刷条件の指定を行うことができる。
【0366】巡回型両面印刷機構のプリンタを用いた印刷システムにおいて、各種印刷条件の片面印刷の場合と同様な指定を許しながら、またこれら印刷条件の指定により用紙の表面と裏面で論理的一貫性が崩れたり、プリンタエンジン最大滞留枚数、文書終了、紙サイズ変更、給紙部変更、排紙部変更等を検出した場合でも、両面印刷を支障なく続行することができるので、自由度が大きく、ユーザにとって使い易い両面印刷機能を提供することができる。
【0367】印刷制御装置をマルチタスク構成とし、上位装置からの印刷コマンドの受信と描画処理と印刷処理を並行処理しながら、両面印刷を行うことにより、巡回型両面印刷機構付きプリンタの最大性能の引出すことができる。その結果、印刷システムの印刷スループットを向上させることができる。
【図面の簡単な説明】
【図1】本発明の構成図である。
【図2】本発明の構成図である。
【図3】巡回型両面印刷機構の説明図である。
【図4】巡回型両面印刷機構を用いた片面印刷方法と両面印刷方法の説明図である。
【図5】本発明における印刷コマンド列の説明図である。
【図6】本発明における両面印刷に関わる印刷条件指定用コマンドの仕様を説明するための図である。
【図7】本発明における両面印刷に関わる印刷条件指定用コマンドの仕様を説明するための図である。
【図8】本発明における用紙表面と裏面への各印刷条件指定時の処理仕様を説明するための図である。
【図9】本発明のハードウェア構成図である。
【図10】本発明のソフトウェア構成図である。
【図11】本発明のタスク一覧を説明するための図である。
【図12】本発明における描画順序と印刷順序の対応づけを説明するための図である。
【図13】本発明における両面印刷のための描画タスクと印刷タスクの動作概要を説明するための図である。
【図14】本発明におけるページバッファ管理テーブルの構成図である。
【図15】本発明におけるページバッファ管理テーブルの構成図である。
【図16】本発明におけるページバッファ管理テーブルの構成図である。
【図17】本発明におけるページバッファ管理テーブルの構成図である。
【図18】本発明におけるページバッファ管理テーブルの構成図である。
【図19】本発明におけるプリンタ管理テーブルの構成図である。
【図20】本発明におけるプリンタ管理テーブルの構成図である。
【図21】本発明におけるプリンタ管理テーブルの構成図である。
【図22】本発明におけるプリンタ管理テーブルの構成図である。
【図23】本発明におけるプリンタ管理テーブルの構成図である。
【図24】本発明におけるプリンタ管理テーブルの構成図である。
【図25】本発明におけるプリンタ管理テーブルの構成図である。
【図26】本発明における描画タスクの処理手順を説明するための図である。
【図27】本発明における片面・両面印刷指定コマンド処理(描画タスクの一部)の処理手順を説明するための図である。
【図28】本発明における両面印刷終わり指定コマンド処理(描画タスクの一部)の処理手順を説明するための図である。
【図29】本発明における給紙部指定コマンド処理(描画タスクの一部)の処理手順を説明するための図である。
【図30】本発明における排紙部指定コマンド処理(描画タスクの一部)の処理手順を説明するための図である。
【図31】本発明における紙サイズ指定コマンド処理(描画タスクの一部)の処理手順を説明するための図である。
【図32】本発明における紙縦横方向指定コマンド処理(描画タスクの一部)の処理手順を説明するための図である。
【図33】本発明における印刷部数指定コマンド処理(描画タスクの一部)の処理手順を説明するための図である。
【図34】本発明における改頁処理(描画タスクの一部)の処理手順を説明するための図である。
【図35】本発明における印刷タスクの処理手順を説明するための図である。
【図36】本発明における両面印刷排出フラグONに伴う、表面印刷可能タスクの待ち解除(印刷タスクの一部)の処理手順を説明するための図である。
【図37】本発明におけるプリンタエンジン最大滞留枚数到達に伴う、表面印刷可能タスクの待ち解除(印刷タスクの一部)の処理手順を説明するための図である。
【図38】本発明における表面印刷用前処理2(印刷タスクの一部)の処理手順を説明するための図である。
【図39】本発明における裏面印刷用前処理(印刷タスクの一部)の処理手順を説明するための図である。
【図40】本発明における一連の印刷マクロの発行処理(印刷タスクの一部)の処理手順を説明するための図である。
【図41】本発明における片面・両面印刷用印刷指示の処理手順を説明するための図である。
【図42】本発明における裏面印刷Post関係処理(印刷タスクの一部)の処理手順を説明するための図である。
【図43】本発明における表面印刷Post待ちタスク番号と裏面印刷Post待ちタスク番号の更新(印刷タスクの一部)の処理手順を説明するための図である。
【図44】本発明における両面印刷終わり印刷タスクの処理手順を説明するための図である。
【図45】本発明におけるページバッファ制御用マクロの機能を説明するための図である。
【図46】本発明におけるプリンタ制御用マクロの機能を説明するための図である。
【図47】本発明におけるプリンタ制御用マクロの機能を説明するための図である。
【図48】本発明におけるプリンタ制御用マクロの機能を説明するための図である。
【図49】本発明におけるページバッファリザーブの機能を説明するための図である。
【図50】本発明をマルチタスク構成とした場合の機能構成を説明するための図である。
【図51】本発明における両面印刷紙なしエラー処理の処理手順を説明するための図である。
【図52】本発明における最新排紙ページ通し番号の管理方式を説明するための図である。
【図53】本発明における両面印刷紙なしエラー処理を説明するための図である。
【図54】本発明における両面印刷紙なしエラー処理を説明するための図である。
【図55】本発明における両面印刷紙なしエラー処理を説明するための図である。
【図56】本発明における両面印刷紙なしエラー処理を説明するための図である。
【図57】本発明における中断タスクの処理手順を説明するための図である。
【図58】本発明におけるマルチページコピー処理方式説明するための図である。
【図59】本発明におけるマルチページコピー処理方式説明するための図である。
【図60】本発明におけるマルチページコピー処理方式説明するための図である。
【図61】本発明における印刷部数指定コマンド処理の処理手順を説明するための図である。
【図62】本発明におけるページバッファ読出し割込み処理の処理手順を説明するための図である。
【図63】本発明におけるマルチページコピー処理方式を説明するための図である。
【図64】本発明におけるマルチページコピー処理方式を説明するための図である。
【図65】本発明におけるマルチページコピー処理方式を説明するための図である。
【図66】本発明におけるマルチページコピー処理方式を説明するための図である。
【図67】本発明におけるマルチページコピー処理方式を説明するための図である。
【図68】本発明におけるマルチページコピー処理方式を説明するための図である。
【図69】本発明における複数排紙部サポート方式を説明するための図である。
 
訂正の要旨 審決(決定)の【理由】欄参照。
異議決定日 2005-09-13 
出願番号 特願平5-203911
審決分類 P 1 651・ 113- ZD (B41J)
P 1 651・ 534- ZD (B41J)
P 1 651・ 121- ZD (B41J)
最終処分 一部取消  
前審関与審査官 江成 克己  
特許庁審判長 津田 俊明
特許庁審判官 砂川 克
谷山 稔男
登録日 2002-12-13 
登録番号 特許第3380598号(P3380598)
権利者 リコープリンティングシステムズ株式会社
発明の名称 両面印刷制御方法および印刷制御装置  
代理人 伊東 忠彦  
代理人 伊東 忠彦  

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ