JP3380598B2 - 両面印刷制御方法および印刷制御装置 - Google Patents

両面印刷制御方法および印刷制御装置

Info

Publication number
JP3380598B2
JP3380598B2 JP20391193A JP20391193A JP3380598B2 JP 3380598 B2 JP3380598 B2 JP 3380598B2 JP 20391193 A JP20391193 A JP 20391193A JP 20391193 A JP20391193 A JP 20391193A JP 3380598 B2 JP3380598 B2 JP 3380598B2
Authority
JP
Japan
Prior art keywords
print
page
printing
task
paper
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP20391193A
Other languages
English (en)
Other versions
JPH06122236A (ja
Inventor
斎司 蔭山
近彦 永田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26514177&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP3380598(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP20391193A priority Critical patent/JP3380598B2/ja
Publication of JPH06122236A publication Critical patent/JPH06122236A/ja
Application granted granted Critical
Publication of JP3380598B2 publication Critical patent/JP3380598B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【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】この場合、例えば、上位装置からの印刷コ
マンド列に含まれる紙サイズ指定、給紙部指定、排紙部
指定に応じて、紙サイズ、給紙部、排紙部のいずれかの
変更の有無を前記描画処理部が検出し、制御テーブルに
設定する。描画処理部は、前記紙サイズ、給紙部、排紙
部のいずれかの変更の検出時に、用紙の表面ペ−ジ用の
印刷データはあるが、対応する裏面ページは印刷データ
がない白紙の用紙が検出されるか判定する。本判定がYe
sであれば、裏面用の白紙印刷を実現するため、描画処
理部は白紙の裏面ページ用の印刷タスクの起動とペ−ジ
バッファの獲得を行う。印刷処理部は、該制御テーブル
の内容を参照して、紙サイズ、給紙、排紙部のいずれか
に変更があれば、後半印刷待ち状態にあるすべての印刷
処理について先頭から順に当該後半印刷待ち状態から解
除する。その後、本ページ用の印刷処理を後半印刷待ち
状態に移す。そして、前記後半印刷待ち状態から解除さ
れた後半印刷ページ用の印刷タスクによる印刷をすべて
実行した後、紙サイズ、給紙部、排紙部等の変更のあっ
たページ以降の印刷を続行する。
【0023】前記後半印刷待ち状態の各種解除条件は、
併用することができる。
【0024】
【作用】本発明によれば、用紙の表面と裏面で紙サイズ
を変えても、裏面ページ用の印刷タスクの起動とページ
バッファの獲得を行うことにより、裏面ページを白紙の
ままとし、変更後の紙サイズを表面ページとして印刷を
続行することができる。従って、用紙の表面と裏面で紙
サイズの異なる印刷を実現することができる。
【0025】また、上位装置から受信した両面印刷文書
の終わりを描画処理部が検出し、本検出に基づいて起動
された両面印刷終了処理部が、プリンタエンジン内の前
半印刷済みの残留用紙を排出し、本文書についての両面
印刷を終えることができる。
【0026】さらに、前記手順を実行することにより、
(a)一文書内または用紙毎に紙サイズを変えた場合、
(b)その変更により用紙の表面と裏面で論理的一貫性
が崩れた場合、(c)プリンタエンジン最大滞留枚数、
文書終了、紙サイズ変更、給紙部変更、排紙部変更等を
検出した場合のいずれについても、両面印刷を支障なく
続行することができる。
【0027】その他、1枚の用紙の表面と裏面とで印刷
部数の異なる印刷データ、あるいは紙縦・横方向が異な
る印刷データに対しても、本発明により対処することが
できる。
【0028】
【実施例】以下、本発明の実施例について詳細に説明す
る。初めに、図1と図2の構成図を用いて本発明におけ
る印刷システムの構成を説明する。
【0029】図1に示すように、本印刷システムは、ホ
ストコンピュータ100、印刷制御装置110、及び巡
回型両面印刷機構付きのプリンタエンジン部120から
なる。
【0030】印刷制御装置110は、ホスト通信制御部
111、コマンドバッファ部112、コマンド処理部1
13、ページバッファ制御部114、ページバッファ部
115、及び及びプリンタ制御部116からなる。
【0031】ホストコンピュータ100が送信した印刷
コマンドはホスト通信制御部111が受信し、コマンド
バッファ部112へ格納される。以後、印刷コマンドを
単にコマンドと呼ぶこともある。コマンドバッファ部1
12内のコマンドはコマンド処理部113により処理さ
れ、その実行結果である文字、図形、イメージ等の描画
データは、ページバッファ部115へ格納される。ペー
ジバッファ部115内のデータは、プリンタ制御部11
6が読出し、プリンタエンジン部120が受信できる形
式の信号に変換して、プリンタエンジン部120へ出力
される。プリンタエンジン部120は入力された信号に
従って、用紙面上への印刷を電子写真メカニズム、ワイ
ヤドット印刷メカニズム等を用いて行う。
【0032】本実施例では両面印刷制御を行うため、ホ
ストコンピュータ100内に、片面・両面印刷指定コマ
ンド発行部101、両面印刷終わり指定コマンド発行部
102、給紙部指定コマンド発行部103、排紙部指定
コマンド発行部104、紙サイズ指定コマンド発行部1
05、紙縦横方向指定コマンド発行部106、印刷部数
指定コマンド発行部107を設けた。また、印刷制御装
置110との通信を行うための通信制御部108も有す
る。101から107の各部は、印刷制御装置110に
対して片面印刷/両面印刷、両面印刷の終わり、給紙
部、排紙部、紙サイズ、紙縦横方向、印刷部数を指定す
るために、各々片面・両面印刷指定コマンド、両面印刷
終わり指定コマンド、給紙部指定コマンド、排紙部指定
コマンド、紙サイズ指定コマンド、紙縦横方向指定コマ
ンド、印刷部数指定コマンドを発行する。
【0033】コマンド処理部113は、描画処理部11
31、印刷処理部1132、両面印刷終了処理部113
3を有する。また、ページバッファ制御部114はペー
ジバッファ管理テーブル部1141を有し、プリンタ制
御部116はプリンタ管理テーブル部1161を有す
る。これらのテーブルの詳細については後述する。
【0034】本実施例では、印刷制御装置110内のコ
マンド処理部113、ページバッファ制御部114、及
びプリンタ制御部116に、両面印刷制御のための仕組
みを設けた。まず、図2に示すように、コマンド処理部
113内の描画処理部1131(タスクとして実現する
ため描画タスク部とも呼ぶ)に、コマンド解釈部20
1、片面・両面印刷指定コマンド処理部202、両面印
刷終了指定コマンド処理部203、給紙部指定コマンド
処理部204、排紙部指定コマンド処理部205、紙サ
イズ指定コマンド処理部206、紙縦横方向指定コマン
ド処理部207、印刷部数指定コマンド処理部208、
改頁処理部209を設けた。201から209の各部の
処理手順は、図26から図34の通りであり、後で詳し
く説明する。
【0035】また、コマンド処理部113内の印刷処理
部1132(後述するようにタスクとして実現するため
印刷タスク部とも呼ぶ)に、両面印刷指定判定部21
0、表面印刷指定判定部220、表面印刷用前処理部1
(230)、表面印刷用前処理部2(240)、裏面印
刷用前処理部250、印刷マクロ発行部260、プリン
タエンジン滞留枚数更新部270、両面印刷紙なしエラ
ー処理部280、マルチページコピー用後処理部290
を設けた。ここで、表面印刷用前処理部1(230)
は、両面印刷排出フラグ判定部231、プリンタエンジ
ン滞留枚数判定部232、表面印刷待ち/解除部23
3、両面印刷排紙フラグ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、52
4、52A)と、各種描画コマンドの列(515、51
8、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、ROM9
4、ユーザ操作パネル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 Syste
mInterface)、RS232C、RS422、
GP−IB(General Purpose Int
erface Bus)、セントロニクス、HDLC
(High−Level Data LinkCont
rol),Ethernet等を用い、使用する物理I
/Fの種類に応じて本コントローラ92のハードウェア
論理として適切なものを実装する。
【0053】ROM94には印刷制御装置110の初期
化立上げプログラム(IPL(Initial Pro
gram Loading)プログラムとも呼ぶ)と文
字フォントの一部を格納する。
【0054】RAM98には(a)本印刷制御装置11
0の制御プログラム、(b)文字フォントの残り、
(c)コマンドバッファ部メモリ、(d)ページバッフ
ァ部メモリ、及び(e)ページバッファ管理テーブル、
プリンタ管理テーブル、タスク管理テーブル等の各種管
理テーブル、その他を格納する。これらのうち(a)と
(b)は前記IPLプログラムにてホストコンピュータ
100からダウンロードすることにより、格納する。ま
た(a)と(b)はRAM98に格納せず、ROM94
に予め格納しておいてもよい。また逆にROM94には
文字フォントを一切格納せず、すべてRAM98に格納
してもよい。
【0055】サブCPU96は、CPU93の指示に従
い、ユーザ操作パネル95やプリンタエンジン部120
との間で入出力処理を行う。
【0056】プリンタメモリコントローラ97はRAM
98の内容(通常ページバッファ部の内容)のプリンタ
エンジン部120への読出し処理、及びRAM98がD
RAMの場合、DRAMメモリの制御(リフレッシュ
等)を行う。本読出し処理は内蔵のDMA(Direc
t Memory Access)機能を用いて行う。
紙面一ペ−ジ分のデ−タのペ−ジバッファ部からの読出
しが終了した時点で、プリンタメモリコントローラ97
がCPU93に対し割込み信号(CPUバス91内の信
号の一部)をアサートし、CPUによるページバッファ
読出し終了割込み処理を起動する。
【0057】印刷制御装置110は、プリンタエンジン
部120との間で、サブCPU96が信号線902−1
を介し、プリンタメモリコントローラ97が信号線90
2−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へ問合せや指
示のためのコマンドを送信し、プリンタエンジン部12
0から応答ステータスを受信するためのコマンド、ステ
ータス送受信信号及び、前記ページバッファ部の内容の
プリンタエンジン部120への読出し手順を制御するた
めの制御信号を搬送するために用いる。
【0060】次に図10を用いて印刷制御装置110の
ソフトウェア構成を説明する。本図に示すように、ソフ
トウェアは、モニタ部1010とタスク処理部1020
とから構成される。モニタ部1010は、カ−ネル部1
011、ホスト通信制御部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がなくても、両面印刷制
御を支障なく行うことができるが、本ファイル制御部1
014によりシステムの性能と使い勝手を向上させるこ
とができる。
【0066】ペ−ジバッファ制御部1015は複数ペ−
ジ構成のペ−ジバッファ部115についての空き管理
(獲得、解放の管理)を行う。本空き管理を用いること
で、ペ−ジバッファへの描画書き込みが必要になった時
点で、紙サイズに対応して定まる必要なだけのペ−ジバ
ッファを獲得し、描画内容の読み出しが終った時点で該
ペ−ジバッファを解放することができる。
【0067】プリンタ制御部1016はプリンタエンジ
ン部120とプリンタエンジンアダプタ(サブCPU9
6やプリンタメモリコントローラ97)の空き管理や、
プリンタエンジン部120との入出力の制御を行う。
【0068】タスク処理部1020は、描画タスク部1
021と印刷タスク部1022とその他のタスクの処理
部1023とからなる。印刷制御装置110に実装した
タスクの一覧を図11に示す。本図には、タスク番号、
タスクの名称、システム(S)/ユーザ(U)タスクの
別、タスクの機能、優先度等を、各タスク毎に示した。
【0069】印刷タスク部1022(図10)は、印刷
タスク1(10221)、印刷タスク2(1022
2)、…、印刷タスク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(10
221)、印刷タスク2(10222)、…、印刷タス
クN(10223)、及びその他のタスク処理部102
3用のプログラムは、RAM98叉はROM94に格納
し、CPU93にて実行する。
【0076】また図1と図2の構成図内の各部分は、図
10のソフトウェア構成の各部分に、次のように対応づ
けられる。
【0077】(1)図1のホスト通信制御部111は図
10ホスト通信制御部1012に対応。
【0078】(2)図1のコマンドバッファ部112と
ページバッファ部115は、図10の同一名称部分に対
応。
【0079】(3)図1のコマンド処理部113は図1
0のタスク処理部1020内のコマンド処理に関係する
タスク部に対応。
【0080】(4)図1と図2の描画処理部(描画タス
ク部)1131は、図10の描画タスク部1021に対
応。
【0081】(5)図1と図2の印刷処理部(印刷タス
ク部)1132は、図10の印刷タスク部1022に対
応。
【0082】(6)図1の両面印刷終了処理部1133
は、図10のその他のタスクの処理部1023に対応。
【0083】図12に、描画タスクと印刷タスクが両面
印刷を並行処理する際の、描画順序と印刷順序の対応付
けを示す。本図に示す順序で描画タスクが各ページバッ
ファに順次描画を行う。印刷タスクは描画の完了したペ
ージバッファについて、本図に示す手順で印刷読出しを
行う。本図の上側は、ページバッファメモリ総数が1
0、プリンタエンジン最大滞留枚数が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ページ、第1
4ページ、第15ページ、…と印刷されていく。図13
に両面印刷における描画タスクと印刷タスクの並行処理
の動作概要を示す。図中のP1,P2,…はページ通し
番号を示す。また、印刷部数が1、プリンタエンジン最
大滞留枚数が5の場合についての動作手順を示すが、そ
の他の場合についても同様である。
【0086】(1)描画タスク部1131はコマンドバ
ッファ部112から印刷コマンド列を順に読み出し、ペ
ージバッファ部115へ描画を行っていく。描画が完了
すると表面・裏面印刷の設定をページバッファ管理テー
ブル部1141に行い、描画の完了したページバッファ
について順次印刷タスクを起動する。起動された複数の
印刷タスクは実行待ちキュー(図示せず)に接続され、
ディスパッチャにより順次CPUが割り当てられ実行さ
れる。図では、図示の都合上、描画タスクは印刷タスク
と同時に実行されているように示したが、実際には、印
刷タスクによるCPU処理量は多くなく例えば図の印刷
タスクの「印刷」時等の生じる空き時間に描画タスクが
実行される。
【0087】(2)印刷タスクのうち、表面ページ(P
1,P3,P5,…)用の印刷タスクは、表面・裏面印
刷切り替え条件の一つであるプリンタエンジン最大滞留
枚数に達するまで、後述する表面印刷待ちマクロを発行
することにより、表面印刷待ちキューに接続され、待ち
状態となる(図13の左下参照)。表面印刷待ちマクロ
の処理では、本マクロ発行タスクを表面印刷待ち状態に
移した後、タスクディスパッチャを起動し、裏面ページ
用の印刷タスクへ制御を移す。
【0088】(3)表面ページ用の印刷タスクで、前記
表面・裏面印刷切り替え条件の一つであるプリンタエン
ジン滞留枚数のプリンタエンジン最大滞留枚数への到達
を検出すると、表面印刷待ち解除マクロと表面印刷待ち
マクロを発行する。表面印刷待ち解除マクロは、表面印
刷待ち状態にある先頭の印刷タスクを待ち状態から解除
する。表面印刷待ちマクロは、前述の処理を行う。
【0089】(4)印刷タスクのうち、裏面ページ(P
2,P4,P6,…9用の印刷タスクは、本裏面ページ
に対応する描画済みページバッファの内容を読み出し、
印刷を行う。
【0090】(5)以上の手順を繰り返すことにより、
P1、P3、……、P9用の印刷タスクは表面印刷待ち
となり、P2、P4、…、P10用の印刷タスクは裏面
印刷を行う。そして、P11用の印刷タスクの処理にお
いて、プリンタエンジン内の滞留する用紙の数がプリン
タエンジン最大滞留枚数に達するため、表面印刷待ち解
除マクロと表面印刷待ちマクロの発行を行う。該表面印
刷待ち解除マクロは、表面印刷待ち状態の先頭にあるP
1用の印刷タスクを待ち状態から解除する。その結果、
P1が印刷される。
【0091】(6)以後、P12の印刷、P13の表面
印刷待ち、表面印刷待ち状態の先頭印刷タスク(P3)
の待ち状態からの解除、P3の印刷というようにして、
両面印刷が続行される。
【0092】(7)前記表面・裏面印刷切り替え条件と
しては、プリンタエンジン最大滞留枚数到達検出の他
に、文書終了、紙サイズ変更、給紙部、排紙部変更、前
半印刷用紙の巡回完了の検出等がある。
【0093】なお、本図のような描画タスクと印刷タス
クの並行処理動作は、描画タスクと印刷タスクが、図1
4から図25に示す管理テーブルを参照しながら、図2
6から図45の処理手順を実行することにより実現す
る。図14〜図18は各種ページバッファ管理テーブル
を示し、図19〜図25は各種プリンタ管理テーブルを
示す。
【0094】図14から図18を用いて、ページバッフ
ァ管理テーブル部1141の内容を説明する。本管理テ
ーブルは、複数ページからなるページバッファ部115
への描画タスクによる書き込みと印刷タスクによる読み
出しにおいて、ページバッファ部の使用に遊び時間を生
じさせず、またページバッファ部への各タスクによるア
クセス順序に誤りを生じさせないために用いる。
【0095】図14にページバッファ管理テーブル部1
141の全体構成を示す。このテーブルは、全ページバ
ッファ用共通情報と、各ページバッファ用情報とからな
る。全ページバッファ用共通情報としては、次に描画タ
スクが書き込むべきページバッファ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、紙サイズコード1
403、紙縦横コード1404、片面・両面印刷指定1
405、表面・裏面印刷指定1406、印刷ページ通し
番号1407、総印刷部数1408、現在印刷部数14
09、総白紙印刷部数1410、現在白紙印刷部数14
11、印字方向(ポートレイト/ランドスケープ)14
12、両面印刷排出フラグ1413、描画エラー処理モ
ード1414、文字展開モード1415を有する。
【0100】図17のプリンタメモリコントローラ設定
情報1700は、動作可能/動作中/故障中の別を示す
プリンタメモリコントローラ状態1701、コントロー
ルレジスタ状態1702、ページ先頭アドレス170
3、レフトマージンドット数Lm1704、ライトスキ
ップロングワード数Rm1705、トップマージンドッ
ト数Tm1706、紙サイズ幅ロングワード数Wx17
07、紙サイズ高さドット数Dy1708、ステータス
レジスタ状態1709からなる。
【0101】図18のコマンド未解決情報は、未解決フ
ラグ、未解決コマンド開始アドレス、未解決コマンド終
了アドレスからなる。
【0102】以上のページバッファ管理テーブル114
1の内容は、基本的に本出願人による前述の特願平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はプリンタエンジン部1
20内の用紙を一旦すべて排出する。その後、給紙部、
排紙部、紙サイズの内必要なものを変更してから、再び
両面印刷を再開する。
【0107】図16に示した印刷条件1400は、描画
タスク内の印刷条件指定用サブコマンド処理が、ホスト
コンピュータ100から受信した各印刷条件指定用サブ
コマンドの指示に従って、書き込む。描画タスク内の描
画用サブコマンド処理は、印刷条件のうち以下の情報を
用いて当該描画ページに対し、描画処理を行う。
【0108】・紙サイズコード ・紙縦横コード ・表面・裏面印刷指定 ・印字方向 ・描画エラー処理モード ・文字展開モード なお、描画処理は、紙サイズコードと紙縦横コードから
変換した、前記先願発明に記した描画用フレームメモリ
記述パラメータを用いて描画処理を行う。
【0109】また描画タスクは両面印刷を行うため、各
ページバッファについて以下の内容を書き込む。
【0110】・片面・両面印刷指定 ・表面・裏面印刷指定 ・両面印刷排出フラグ また、印刷タスクは、描画の完了した当該印刷ページに
対し、以下の情報を用いて印刷処理を行う。
【0111】・給紙部コード ・排紙部コード ・紙サイズコード ・紙縦横コード ・印刷ページ通し番号 ・総印刷部数 ・現在印刷部数 ・片面・両面印刷指定 ・表面・裏面印刷指定 ・両面印刷排出フラグ また、印刷処理では、紙サイズコード、紙縦横コード等
の情報から変換したプリンタメモリコントローラ設定情
報1700(図17)を用いて、プリンタメモリコント
ローラを制御する。
【0112】次に、図19から図25を用いて、プリン
タ管理テーブル1161の内容を説明する。本管理テー
ブルは、印刷タスクによるプリンタ(サブCPU96と
プリンタエンジン部120)の使用状況、プリンタとの
入出力状態を管理し、プリンタの資源管理と入出力制御
を行うために用いる。
【0113】図19にプリンタ管理テーブル1161の
全体構成を示す。このテーブルは、サブCPU状態19
20、プリンタ状態1930、印刷条件1900、タス
ク関連情報1940、排紙終了監視情報1950からな
る。
【0114】図20にサブCPU状態1920の内容を
示す。サブCPU状態1920としては、サブCPU通
信状態(未使用/コマンド送信中/ステータス受信中)
と、サブCPUレディ状態(正常/異常)を記述する。
【0115】図21にプリンタ状態1930の内容を示
す。プリンタ状態0930としては、印刷タスク等によ
る印刷指示と、給排紙部の変更指示の可/不可、プリン
タエンジン状態(レディ/エラー/ウォームアップ中/
テストプリント中)、給紙部状態と排紙部状態を記述す
る。
【0116】図22に印刷条件1900の内容を示す。
このフィールドには、本印刷タスクに対応するページバ
ッファについてのページバッファ管理テーブル上の印刷
条件フィールドのうち対応するコードの値を、印刷タス
クがそれらの値を用いて一連のプリンタ制御用マクロを
発行する前に、コピーして受取り、それらを参照しなが
ら印刷タスクが本印刷対象ページバッファについての印
刷処理を実行する。コピーするコードとしては、図16
に示した給紙部コード1401、排紙部コード140
2、紙サイズコード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、1
911等、各印刷タスク毎に用意) (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と140
6)に記入する。
【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を用いて、描画タスクの全体
手順を説明する。描画タスクは、まず描画準備(261
0)により描画用の各種パラメータやテーブルを初期化
する(2611)。描画準備の後、描画処理はコマンド
解釈(2621)とコマンド実行(2630)を無限ル
ープにより繰り返す(2620)。
【0156】コマンド実行2630では、コマンドに応
じて分岐を行い(2631)、片面・両面印刷指定コマ
ンド処理(2632)、両面印刷終了指定コマンド処理
(2633)、給紙部指定コマンド処理(2634)、
排紙部指定コマンド処理(2635)、紙サイズ指定コ
マンド処理(2636)、紙縦横方向指定コマンド処理
(2637)、印刷部数指定コマンド処理(263
8)、改頁処理(2639)、文字描画(263A)、
図形描画(263B)、及びその他の処理(263C)
を行う。
【0157】片面・両面印刷指定コマンド処理(263
2)では、図27に示すように、本コマンドの入力引数
である片面・両面印刷指定パラメータの値を、ページバ
ッファ管理テーブル内の当該描画ページバッファ番号用
の片面・両面印刷指定コードエリア(1405)に、記
入する。
【0158】両面印刷終了指定コマンド処理(263
3)では、図28に示すように、初めに当該描画ページ
バッファ番号の一つ前のページバッファが、表面印刷を
指定されているか、該ページバッファ用の表面・裏面印
刷指定コード(1405)を参照しながら、判定する
(281)。
【0159】表面印刷を指定されている場合、次の2項
目を実行する。
【0160】(1)ページバッファリザーブマクロを、
前記当該描画ページバッファ番号1の一つ前のページバ
ッファと同じ紙サイズについて、発行する(282)。
【0161】(2)印刷タスクを起動し、(1)で獲得
したページバッファについての白紙印刷を行わせる(2
83)。
【0162】(3)続いて、両面印刷終了タスクを起動
し、本文書についての終了処理を実行させる(28
4)。
【0163】給紙部指定コマンド処理(2634)で
は、図29に示すように、初めに本コマンドの入力引数
である給紙部コードの値を、ページバッファ管理テーブ
ル内の当該描画ページバッファ番号用の給紙部コードエ
リア1401に、記入する(291)。続いて、給紙部
変更があるかを判定する(292)。給紙部変更がある
なら、当該描画ページバッファ番号のページバッファに
ついて両面印刷指定がなされているか、判定する(29
3)。両面印刷指定がなされているなら、当該描画ペー
ジバッファ番号の一つ前のページバッファが、表面印刷
を指定されているか、該ページバッファ用の表面・裏面
印刷指定コード(1405)を参照しながら、判定する
(294)。本判定がyesならば、両面印刷排出フラグ
1413がOFFか、判定する(295)。本判定がye
sなら、次の3項目を実行する。
【0164】(1)印刷タスク起動(296) (2)ページバッファリザーブ(297) (3)当該描画ページバッファ番号用の表面・裏面印刷
指定コードに、表面印刷指定を記入する(298)。
【0165】前記294の判定の後、両面印刷排出フラ
グ1413の一部である給紙部変更フラグをONにセッ
トする(299)。
【0166】排紙部指定コマンド処理(2635)で
は、図30に示すように、初めに本コマンドの入力引数
である排紙部コードの値を、ページバッファ管理テーブ
ル内の当該描画ページバッファ番号用の排紙部コードエ
リア1402に、記入する(301)。
【0167】続いて、排紙部変更があるかを判定する
(302)。排紙部変更があるなら、当該描画ページバ
ッファ番号のページバッファについて両面印刷指定がな
されているか、判定する(303)。両面印刷指定がな
されているなら、当該描画ページバッファ番号の一つ前
のページバッファが、表面印刷を指定されているか、該
ページバッファ用の表面・裏面印刷指定コード(140
5)を参照しながら、判定する(304)。本判定がye
sならば、両面印刷排出フラグ1413がOFFか、判
定する(305)。本判定がyesなら、次の3項目を実
行する。
【0168】(1)印刷タスク起動(306) (2)ページバッファリザーブ(307) (3)当該描画ページバッファ番号用の表面・裏面印刷
指定コードに、表面印刷指定を記入する(308)。
【0169】前記304の判定の後、両面印刷排出フラ
グ1413の一部である排紙部変更フラグをONにセッ
トする(309)。
【0170】紙サイズ指定コマンド処理(2636)で
は、図31に示すように、初めに本コマンドの入力引数
である紙サイズコードの値を、ページバッファ管理テー
ブル内の当該描画ページバッファ番号用の紙サイズコー
ドエリア1403に、記入する(311)。
【0171】続いて、紙サイズの変更があるか、つまり
本コマンドの入力紙サイズと前ページの紙サイズが違う
か判定する(312)。本判定で紙サイズ変更があるな
ら、当該描画ページバッファ番号のページバッファにつ
いて両面印刷指定がなされているか、判定する(31
3)。両面印刷指定がなされているなら、当該描画ペー
ジバッファ番号の一つ前のページバッファが、表面印刷
を指定されているか、該ページバッファ用の表面・裏面
印刷指定コード(1405)を参照しながら、判定する
(314)。本判定がyesならば、両面印刷排出フラグ
1413がOFFか、判定する(315)。本判定がye
sなら、次の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か、判定する(32
5)。本判定が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と32
6と328の処理は不要になる。
【0188】印刷部数指定コマンド処理(2638)で
は、図33に示すように、本コマンドの入力引数である
印刷部数の値を、ページバッファ管理テーブル内の当該
描画ページバッファ番号用の総印刷部数コードエリア
(1408)に、記入する。
【0189】改頁処理(2639)では、図34に示す
ように、初めにページバッファ管理テーブル内の当該印
刷ページバッファ番号に、当該描画ページバッファ番号
をコピーした後(341)、当該描画ページバッファ番
号を更新する(342)。その後、印刷タスクの起動
(343)とページバッファリザーブ(344)を行
う。ステップ343の印刷タスクの起動では、タスク起
動マクロの発行時に入力パラメータとして当該印刷ペー
ジバッファ番号を設定することにより、各印刷タスク
に、印刷対象ページバッファ番号を伝えるようにした。
その後、当該描画ページバッファ番号のページバッファ
について両面印刷指定がなされているか、判定する(3
45)。両面印刷指定がなされているなら、当該描画ペ
ージバッファ番号の一つ前のページバッファが、表面印
刷を指定されているか、該ページバッファ用の表面・裏
面印刷指定コード(1405)を参照しながら、判定す
る(346)。本判定がyesならば、当該描画ページバ
ッファ番号用の表面・裏面印刷指定コードを、裏面印刷
指定に設定する(347)。本判定がNoならば、当該描
画ページバッファ番号用の表面・裏面印刷指定コード
を、表面印刷指定に設定する(348)。なお、ステッ
プ344のページバッファリザーブは、デフォルト紙サ
イズについて発行するものとする。デフォルト紙サイズ
としては、文書先頭では、初期値の紙サイズをとり、文
書の途中では前ページの紙サイズをとるものとした。
【0190】次に印刷タスクの処理手順の詳細を図35
から図44を用いて、説明する。
【0191】初めに図35を用いて、印刷タスクの全体
手順を説明する。印刷タスクはまず本タスク用の入力パ
ラメータエリアから、本印刷タスクの印刷対象ページバ
ッファ番号である当該印刷ページバッファ番号を取り出
す(3510)。続いて印刷タスクはプリンタリザーブ
マクロによるプリンタ使用権の獲得(3511)とプリ
ンタフリーマクロによるプリンタ使用権の解放(351
2)を行う。続いて当該印刷ページバッファファ番号の
ページバッファについて両面印刷指定がなされている
か、該ページバッファ用の片面・両面印刷指定コード
(1405)を参照しながら、判定する(3520)。
両面印刷指定がなされているなら、当該印刷ページバッ
ファ番号のページバッファが、表面印刷を指定されてい
るか、該ページバッファ用の表面・裏面印刷指定コード
(1405)を参照しながら、判定する(3521)。
本判定がyesならば、表面印刷用前処理1(3530)
として、ステップ3531から3535の処理を行う。
【0192】まず、当該印刷ページバッファ番号用の両
面印刷排出フラグ1413がONか判定する(353
1)。ONならば、両面印刷排出フラグONに伴う、表
面印刷可能タスクの待ち解除(3532)を行う。35
31の判定がNoならば、プリンタエンジン滞留枚数(1
905)がプリンタエンジン最大滞留枚数以下か判定す
る(3533)。本判定がyesならば、プリンタエンジ
ン最大滞留枚数到達に伴う、表面印刷可能タスクの待ち
解除を行う(3534)。ここで、プリンタエンジン最
大滞留枚数は、プリンタエンジンの種類と紙サイズと紙
縦横方向に応じて定まるパラメータであり、初期化時等
に予め印刷制御装置110内のテーブル(図1と図2に
は示していない)に格納しておく。
【0193】ステップ3531の判定の後、印刷タスク
は表面印刷待ちマクロを発行し、本タスクを表面印刷待
ち状態に移す(3535)。
【0194】その後印刷タスクは、以下の手順(354
1から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だけ減ずる(355
3)。Noならば、プリンタエンジン滞留枚数(190
5)を1だけ加算する(3554)。
【0201】(5)両面印刷紙なしエラー発生フラグ1
912がONか判定する(3555)。ONならば、両
面印刷紙なしエラー処理を行う(3556)。この処理
の詳細は、図51を参照して後述する。
【0202】以上の手順(3541から3556)を繰
り返した後、印刷タスクはマルチページコピー用後処理
(3550)として、裏面印刷Post関係処理(356
1)と表面印刷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〜3
570の印刷処理を進めることになる。そのため、予期
していなかったプリンタエンジン滞留枚数の更新や、表
面印刷待ち状態化とその解除がなされる。従って、前述
の図12に示したページ順序を守った印刷を、達成でき
なくなることがあり、ユーザにとって混乱した印刷結果
が生じることになる。
【0210】図36を用いて、両面印刷排出フラグON
に伴う、表面印刷可能タスクの待ち解除(3532)の
手順を説明する。まず、表面印刷待ち行列内に待ちタス
クがあるか判定する(361)。あれば、図47に示す
表面印刷待ち解除マクロを解除モード1で発行すること
により、本表面印刷待ち行列内の全タスクを先頭から順
に、表面印刷待ち状態から解除する(362)。次に表
面印刷Post必要フラグ1906がONか判定する(36
3)。ONならば、本フラグをOFFにした後(36
4)、表面印刷Post待ちタスク番号1907用のマルチ
ページコピー連絡用のECB(Event Control Block:図
示せず)のアドレスを入力として、Postマクロを発行す
る(365)。ステップ363の判定に伴う処理の後、
両面印刷排出フラグをOFFにする(366)。
【0211】ここで、ポスト(Post)マクロ(事象発生
待ち解除マクロ)とそれの対となるウェイト(Wait)マ
クロ(事象発生待ちマクロ)の内容は、前記先願発明の
場合と同様である。
【0212】図37を用いて、プリンタエンジン最大滞
留枚数到達に伴う、表面印刷可能タスクの待ち解除(3
534)の手順を説明する。まず、表面印刷Post必要フ
ラグ1906がONか判定する(371)。ONなら
ば、本フラグをOFFにした後(372)、表面印刷Po
st待ちタスク番号1907用のマルチページコピー連絡
用ECBアドレスを入力として、Postマクロを発行する
(373)。ステップ371の判定がOFFならば、表
面印刷待ち行列内に待ちタスクがあるか判定する(37
4)。あれば、図47に示す表面印刷待ち解除マクロを
解除モード0で発行することにより、本表面印刷待ち行
列内の先頭の1タスクを、表面印刷待ち状態から解除す
る(375)。
【0213】図38を用いて、表面印刷用前処理2(3
543)の手順を説明する。まず、プリンタエンジン滞
留枚数(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を用いて、裏面印刷用前処理(35
44)の手順を説明する。まず、プリンタエンジン滞留
枚数(1905)がプリンタエンジン最大滞留枚数以上
か判定する(381)。本判定がyesならば、次のよう
にステップ392から395の処理を行うことにより、
プリンタエンジン最大滞留枚数に達したので表面印刷を
起動する。本判定がNoの場合、プリンタエンジンにまだ
用紙を溜められるので、図35において3545の処理
に進むことにより、本印刷タスクに対応する裏面を印刷
する。
【0215】ステップ392では、両面印刷排出フラグ
がOFFか判定する。本判定がYesの場合、プリンタエ
ンジン最大滞留枚数到達に伴う、表面印刷可能タスクの
待ち解除を行う(393)。本ステップ393の処理手
順は、図37に示したものと同じである。続いて、裏面
印刷Post必要フラグ1908をONにした後(39
4)、本印刷タスク用のマルチページコピー連絡用EC
Bアドレスを入力として、Waitマクロを発行する(39
5)。
【0216】図40を用いて、一連の印刷マクロの発行
処理(3545)の手順を説明する。本処理では、まず
プリンタリザーブマクロを発行し(401)、プリンタ
エンジンの使用権を獲得する。続いて、プリンタ管理テ
ーブル内の印刷条件フィールドに、ページバッファ管理
テーブル内の当該印刷ページバッファ番号用印刷条件フ
ィールド内の該当項目の値をコピーする(402)。続
いて、給紙部確認マクロの発行(403)、給紙部指示
マクロの発行(404)、排紙部確認マクロの発行(4
05)、排紙部指示マクロの発行(406)、片面・両
面印刷用印刷指示マクロの発行(407)、及びプリン
タフリーマクロの発行(408)を行う。プリンタフリ
ーマクロの発行により、本タスクによるプリンタエンジ
ンの使用権を解放する。ステップ401と403から4
08の各プリンタ制御用マクロの機能を、図45から図
47に示す。
【0217】図41を用いて、片面・両面印刷用印刷指
示(407)の処理手順を説明する。本マクロは、前記
先願発明における印刷指示マクロを、片面印刷用から片
面印刷と両面印刷の両方に適用できるように拡張したも
のである。その実現方法は、プリンタエンジン部120
の仕様に応じて、若干異なるが、同様にして実現するこ
とができる。以下に、一実現例を示す。初めに、本マク
ロの入力パラメータである印刷指示モード(prnmode)
が1または2であり、両面印刷を指定されているか判定
する(411)。本判定がYesならば、以下の処理(4
12から4152)を実行する。
【0218】(1)プリンタエンジンが片面印刷モード
か判定する(412)。そうなら、プリンタエンジンを
両面印刷モードにするため、両面印刷モード選択コマン
ドのプリンタエンジン部120への発行を、サブCPU
96に指示する(4121)。 (2)前記印刷指示モード(prnmode)が1であり、表
面印刷を指定されているか判定する(413)。本判定
がYesならば、両面・表面印刷用の印刷指示(414)
を行う。
【0219】具体的には、表面印刷用パスの選択をサブ
CPUへ指示した後(4141)、印刷指示信号のプリ
ンタエンジン部120への発行をサブCPUに指示する
(4142)。ステップ413の判定で、表面印刷が指
示されていず裏面印刷が指示されているならば、、両面
・裏面印刷用の印刷指示(414)を行う。具体的に
は、裏面印刷用パスの選択をサブCPUへ指示した後
(4151)、印刷指示信号のプリンタエンジン部12
0への発行をサブCPUに指示する(4152)。な
お、ステップ4141における表面印刷用パスの選択で
は、後半印刷用のパスとして図4における給紙パス2と
排紙パス1を選択する。また、ステップ4151におけ
る裏面印刷用パスの選択では、前半印刷用のパスとして
図4における給紙パス1と排紙パス2を選択する。本パ
スの選択方法は、プリンタエンジン部120の仕様に応
じた適切な方法で行った。また、4141の処理前に印
刷パスが表面印刷用かどうか判定し、既に表面印刷用に
なっていれば4141の処理を省くことができる。ステ
ップ4151の処理についても、同様である。
【0220】ステップ411の判定がNoならば、以下の
処理(416から418)を実行する。
【0221】(1)プリンタエンジンが両面印刷モード
か判定する(416)。そうであれば、プリンタエンジ
ンを片面印刷モードにするため、片面印刷モード選択コ
マンドのプリンタエンジン部120への発行を、サブC
PU96に指示する(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か判定する(4
31)。ONならば、本フラグをOFFにした後(43
2)、裏面印刷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)、そうであれば表面印刷Po
st待ちタスク番号1907を表面印刷Post待ちタスク番
号1907−印刷タスク総数とする(4423)。
【0227】ステップ442の判定がNoならば、裏面印
刷Post待ちタスク番号1909を2だけ加算する(44
24)。その後、裏面印刷Post待ちタスク番号が印刷タ
スク総数より大きいか判定し(4425)、そうであれ
ば裏面印刷Post待ちタスク番号1909を表面印刷Post
待ちタスク番号1909−印刷タスク総数とする(44
26)。
【0228】ステップ441の判定がNoであり片面印刷
指定がなされているならば、表面印刷Post待ちタスク番
号1907を1だけ加算する(443)。その後、表面
印刷Post待ちタスク番号が印刷タスク総数より大きいか
判定し(444)、そうであれば表面印刷Post待ちタス
ク番号1907を1とする(445)。続いて、裏面印
刷Post待ちタスク番号1909を1だけ加算する(44
6)。その後、裏面印刷Post待ちタスク番号が印刷タス
ク総数より大きいか判定し(447)、そうであれば裏
面印刷Post待ちタスク番号1909を1とする(44
8)。
【0229】次に図44を参照しながら、両面印刷終り
タスクの処理手順を説明する。本タスクはまず、プリン
タリザーブマクロを発行しプリンタの使用権を獲得する
(450)。続いて、表面印刷待ち行列内に待ちタスク
があるか判定する(451)。あれば、前述の表面印刷
待ち解除マクロを解除モード1で発行することにより、
本表面印刷待ち行列内の全タスクを先頭から順に、表面
印刷待ち状態から解除する(452)。次に表面印刷Po
st必要フラグ1906がONか判定する(453)。O
Nならば、本フラグを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)この時、各印刷タスクより後で起動
された両面印刷終りタスクが、前述のタスク制御部1
2’内のタスクディスパッチャの機能により実行状態に
移されることがある。
【0234】(d)ところが、両面印刷終りタスクが4
50においてプリンタリザーブマクロを発行する。この
時、前述の各印刷タスクが前記401の処理により既に
プリンタの使用権を獲得済みであるため、両面印刷終り
タスクBは該プリンタ使用権の獲得待ち状態に移され
る。
【0235】(e)この結果、第1ページ〜第3ページ
用の各印刷タスクより後に起動された両面印刷終りタス
クが、451〜455の処理を進めることを防止する。
【0236】(f)また、印刷タスクのうち最後のも
の、この例では第3ページ用の印刷タスクが、プリンタ
フリーマクロを発行し、プリンタの使用権を解放した時
点で、両面印刷終りタスクが該プリンタ使用権の獲得待
ち状態から直ちに解除され、プリンタの使用権を獲得す
る。
【0237】(g)以上により、図12に示したページ
順序を守った印刷を、達成することができる。
【0238】(h)なお、450と456によるプリン
タリザーブ/フリーマクロの発行を行わない場合、前述
の(d)に示した処理がなされないため、各印刷タスク
より後に起動された両面印刷終りタスクが、451〜4
55の処理を進めることになる。そのため、予期してい
なかった表面印刷待ち解除や表面印刷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】紙なしが発生すると、片面印刷では紙が補
給されるまで印刷制御装置(プリンタコントローラ)1
10をホールド状態と呼ぶ中断状態とする。紙が補給さ
れると前述のホールド状態から解除され、印刷処理を再
開する。両面印刷時には、片面印刷時と同様に処理する
と、プリンタエンジン内に用紙が滞留したままの状態に
なってしまう。従って、両面印刷では紙なしが発生した
場合、プリンタエンジン内に滞留されている用紙につい
ては印刷可能(表面ページについての後半印刷)である
ため、印刷を実行し、該滞留用紙を排出する。そして、
用紙が補給されるまで印刷制御装置110をホールド状
態とし、補給されるとそこから再開するようにする。な
お、紙なしは裏面印刷(前半印刷)で発生し、検出され
る。
【0249】紙なしエラーを検出した場合、中断タスク
と印刷タスクは、前述の印刷タスクのポイント(7)の
(d)に示した手順を実行する。この手順における、中
断タスクによる「表面印刷可能タスクの待ち解除」の処理
手順を、(ア)同期エラーと非同期エラー、(イ)シングル
ページコピーとマルチページコピーの各場合について説
明する。「表面印刷可能タスクの待ち解除」の処理手順を
中心に説明する。
【0250】(A)同期紙なしエラーの場合 (a)シングルページコピー時処理手順 シングルページコピー時の紙なしエラー処理では、紙な
し発生ページに対応する表面ページ用の印刷タスクを除
いた、表面印刷待ち行列内のすべての印刷タスクを待ち
状態から解除する。
【0251】図53はページ通し番号10(以下P10と
表す、同様にページ通し番号iのページをPiと表す)
にて紙なしエラーが発生した場合であり、表面印刷待ち
状態にあるP5とP7用の印刷タスク(表面印刷待ち行
列につながれている)を待ち行列からはずし、該待ち状
態から解除し、印刷を行なっている。
【0252】図53について、さらに詳しく説明する。
【0253】本図では、各ページバッファに描画された
印刷データについての印刷タスクによる処理を、該ペー
ジバッファの真下に示す。例えば、ページバッファ1
(53A1)の真下に、以下の処理を示す。
【0254】・まずページ通し番号1(P1、53A
2)用の印刷タスクによる表面印刷待ち(5301、本
図では待ちと省略して記述)と印刷(5309) ・続いてページ通し番号9(P9、53A3)用の印刷
タスクによる表面印刷待ち解除(5311、本図では待
ち解除と省略して記述)と本タスク自身の表面印刷待ち
(5312) 同様に、ページバッファ2(53B1)の真下に、以下
の処理を示す。
【0255】・まずページ通し番号2(P2、53B
2)用の印刷タスクによる印刷(5302) ・続いてページ通し番号10(P10、53B3)用の
印刷タスク関係のエラー処理による中断タスク起動(5
315)と本印刷タスクによる印刷(5319) 本図における処理手順を、順番に説明する。
【0256】(1)ページ通し番号1(P1、53A
2)用の印刷タスクが表面印刷待ち(5301)にな
る。
【0257】(2)ページ通し番号2(P2、53B
2)用の印刷タスクが印刷を行う(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、53A
3)用の印刷タスクが、プリンタエンジン滞留枚数到達
を検出し、表面印刷待ち行列の先頭印刷タスクの表面印
刷待ち状態からの解除(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)用の印刷タスクが印刷を行う(531
9)。
【0269】(14)以下、ページ通し番号11用の印
刷タスクの表面印刷待ち状態への移行(5320)、ペ
ージ通し番号12用の印刷タスクの印刷(5321)、
ページ通し番号13用の印刷タスクの表面印刷待ち状態
への移行(5322)、ページ通し番号14用の印刷タ
スクの印刷(5323)というように処理が進行する。
【0270】(b)マルチページコピー時処理手順 マルチページコピー時の紙なしエラー処理では、まず、
紙なしエラー発生ページの印刷完了部数を調べる。総印
刷部数分完了していれば現在白紙印刷部数を、完了して
いなければ現在印刷部数を、印刷完了部数とする。
【0271】そして、印刷完了部数が0部の場合、紙な
しエラー発生ページに対応する表面ページ用の印刷タス
クを除いた、表面印刷待ち行列内の全ての印刷タスクを
待ち状態から解除する。
【0272】印刷完了部数が1部以上の場合、紙なし発
生ページに対応する表面ページ用の印刷タスクまでの、
表面印刷待ち行列内の全ての印刷タスクを待ち状態から
解除する。そして、表面印刷POST必要フラグがONなら
ば、本フラグをOFFにした後、表面印刷POST待ち解除をp
ostマクロを用いて実行する。
【0273】図54はP4の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部目を印刷した時点(プリンタエン
ジン内のすべての滞留用紙が印刷されている)で、図3
5に示す前述の3555と3556の処理を行い、図5
1における422の処理によりpostマクロを発行するこ
とにより、中断タスクを表面印刷可能タスク終了待ち状
態(575に対応)から解除する。これにより、中断タ
スクの処理に戻る。中断タスクは、片面印刷の場合と同
様の従来処理を行う。該中断タスクについての従来処理
では、全タスク中断576、ウェイト(wait)577、
全タスク再開578、タスク終了575等を実行する。
詳細な処理の内容は、本出願人による先願発明、特開平
1−121523号で説明したものと同じである。
【0277】図54について、さらに詳しく説明する。
本図でも図53と同様、各ページバッファに描画された
印刷データについての印刷タスクによる処理を、該ペー
ジバッファの真下に示す。例えば、ページバッファ1
(54A1)の真下に、ページ通し番号1(P1、54
A2)用の印刷タスクによる以下の処理を示す。
【0278】・表面印刷待ち(5401、本図でも待ち
と省略して記述) ・第1部目の印刷(5407)と、裏面印刷post待ちタ
スクのpost(5408)と、該タスク自身のwait(54
09)。
【0279】・第2部目の印刷(5413)と、裏面印
刷post待ちタスクのpost(5414)と、該タスク自身
のwait(5415) ・第3部目の印刷(5419)と該タスク自身のwait
(5420) ・第4部目の印刷(5424)と、裏面印刷post待ちタ
スクのpost(5425)と、該タスク自身のwait(54
26) ・第5部目の印刷(5429) 同様に、ページバッファ2(54B1)の真下に、ペー
ジ通し番号2(P2、54B2)用の印刷タスクによる
以下の処理を示す。
【0280】・第1部目の印刷(5402)と第2部目
の印刷(5403)と第3部目の印刷(5404)と表
面印刷待ち解除(5405、本図では待ち解除と省略し
て記述)と本タスク自身のwait(5406) ・第4部目の印刷(5410)と、表面印刷post待ちタ
スクのpost(5411)と、本タスク自身のwait(54
12)。ここで、表面印刷post待ちタスクのpostでは、
表面印刷post待ちタスク番号用のマルチページコピー連
絡用ECBアドレスを入力とする。また、該タスク自身のw
aitでは、該タスクのタスク番号用のマルチページコピ
ー連絡用ECBアドレスを入力とする。
【0281】・第5部目の印刷(5416) 本図における処理手順を、順番に説明する。
【0282】(1)ページ通し番号1(P1、54A
2)用の印刷タスクが表面印刷待ち(5401)にな
る。
【0283】(2)ページ通し番号2(P2、54B
2)用の印刷タスクが第1部目の印刷(5402)と、
第2部目の印刷(5403)と、第3部目の印刷(54
04)と、表面印刷待ち解除(5405)と、本タスク
自身のwait(5406)を行う。 (3)5405により表面印刷待ち状態から解除された
ページ通し番号1用の印刷タスクが、第1部目の印刷
(5407)と、裏面印刷post待ちタスクのpost(54
08)と、該タスク自身のwait(5409)を行う。こ
こで、裏面印刷post待ちタスクのpostでは、裏面印刷po
st待ちタスク番号用のマルチページコピー連絡用ECBア
ドレスを入力とする。また、該タスク自身のwaitでは、
該タスクのタスク番号用のマルチページコピー連絡用EC
Bアドレスを入力とする。
【0284】(4)ページ通し番号2用の印刷タスク
が、第4部目の印刷(5410)と、表面印刷post待ち
タスクのpost(5411)と、本タスク自身のwait(5
412)を行う。ここで、表面印刷post待ちタスクのpo
stでは、表面印刷post待ちタスク番号用のマルチページ
コピー連絡用ECBアドレスを入力とする。また、該タス
ク自身のwaitでは、該タスクのタスク番号用のマルチペ
ージコピー連絡用ECBアドレスを入力とする。
【0285】(5)5411によりwait状態から解除さ
れたページ通し番号1用の印刷タスクが、第2部目の印
刷(5413)と、裏面印刷post待ちタスクのpost(5
414)と、該タスク自身の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(5
423)を行う。
【0290】(10)5422によりwaitから解除され
たページ通し番号1用の印刷タスクが、第4部目の印刷
(5424)と、裏面印刷post待ちタスクのpost(54
25)と、該タスク自身のwait(5426)を行う。
【0291】(11)5425によりwaitから解除され
たページ通し番号2用の印刷タスクが、第2部目の印刷
を行おうとした時、紙なしエラーが発生した(542
7)。
【0292】(10)ページ通し番号2用の印刷タスク
関係のエラー処理が中断タスクを起動し、該中断タスク
が次の処理を行う(5428)。
【0293】・両面印刷紙なしエラー発生フラグをON
に設定(5428−1)。
【0294】・表面印刷可能タスクの待ち解除(542
8−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部目の印刷を行う(543
0)。続いて、該タスクが図54の(注1)に示したよ
うに、プリンタエンジン滞留枚数が0であることを検出
したため(図51の421に対応)、postマクロを発行
することにより(図51の422に対応)、中断タスク
を前述の表面印刷可能タスク終了待ち状態から解除し
(5431)、本タスク自身のwaitを行う(543
2)。
【0298】(13)ユーザやシステム管理者が紙を補
給する(5433)。
【0299】(14)紙の補給に伴い、紙なしエラーの
発生に伴い中断されていたページ通し番号2用の印刷タ
スクが処理を再開し、第2部目の印刷を実行する(54
34)。(15)次に、ページ通し番号2(P2、54
B2)用の印刷タスクが第3部目の印刷(5435)
と、第4部目の印刷(5436)と、表面印刷post待ち
タスクのpost(5437)と、本タスク自身のwait(5
438)を行う。
【0300】(16)以下、5437によりwaitから解
除されたページ通し番号3用の印刷タスクが、第2部目
の印刷(5439)と、裏面印刷post待ちタスクのpost
(5440)と、該タスク自身のwait(5441)を行
うというように、処理が進行する。
【0301】図55はP2の5部目で紙なしが発生した
場合を表している。本ケースは詳しくは、表面印刷待
ち行列に表面印刷待ちの印刷タスクがつながれていず、
紙なし発生ページの印刷完了部数が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部目で紙なしが発生した
場合を表している。本ケースは詳しくは、表面印刷待
ち行列に表面印刷待ちの印刷タスクがつながれており、
紙なし発生ページの印刷完了部数が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待ち解除をp
ostマクロを用いて実行する。
【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を設ける(図2
2参照)。
【0329】(b)印刷部数指定コマンド処理 裏面ページについての印刷部数指定が行なわれた時、対
応する表面ページの印刷部数と比較し、差分の絶対値を
総白紙印刷部数としてページバッファ管理テーブル内の
該当エリア1410へ設定する。図61に処理手順を示
す。なお、前述の図33の処理手順は、表面印刷部数と
裏面印刷部数が一致している場合にのみ通用する。一
方、図61の処理手順は、表面印刷部数と裏面印刷部数
が一致している場合と一致していない場合の両方に通用
する。
【0330】(c)白紙印刷の方法 白紙印刷を実現するため、次のようにした。
【0331】・使用しているページバッファについて、
ユーザの指定した印刷部数である総印刷部数に加え、さ
らに総白紙印刷部数だけページバッファから読出す。
【0332】・総印刷部数だけ読出した後、ページバッ
ファをクリア(ゼロクリア)する。その後、クリアされ
たページバッファから総白紙印刷部数回だけ読出し、白
紙印刷を行う。
【0333】・総印刷部数+総白紙印刷部数回だけのペ
ージバッファからの読出しが完了した時点で、使用して
いるページバッファを、ページバッファフリーマクロを
用いて解放する。
【0334】(d)印刷タスク 印刷タスクの処理手順は、図35〜図44と図51に示
した通りである。
【0335】印刷タスクは、プリンタ管理テーブル11
61内の印刷条件エリア1900等の印刷制御情報を用
いて、表面印刷制御又は裏面印刷制御を行う。なお、ペ
ージバッファ管理テーブル1141の総印刷部数140
8と総白紙印刷部数1410が、プリンタ管理テーブル
の総印刷部数1901と総白紙印刷部数1903にコピ
ーされ、該当ページ(表面印刷又は裏面印刷)のマルチ
ページコピー印刷の制御に用いられる。
【0336】(e)ページバッファ読出し終了割込み処
理 図62にページバッファ読出し終了割込み処理の処理手
順を示す。本処理はページバッファからの読出しが1回
終了する毎に、行われる。
【0337】本図に示すように、初めにプリンタメモリ
コントローラ97のリセットと割込みイネーブル(62
1)、ページバッファ読出し終了監視タイマのリセット
(622)を行う。
【0338】続いて、ページバッファからの読出しが総
印刷部数1901回分完了したか判定する(623)。
完了していれば、現在白紙印刷部数1411を、現在印
刷出力中のページバッファ番号(1141内に記述され
ている)について更新する(6231)。完了していな
ければ、現在印刷部数1409を、現在印刷出力中のペ
ージバッファ番号について更新する(6232)。
【0339】続いて、次の印刷が総印刷部数のうちで最
終か判定する(624)。最終であれば、現在印刷出力
中のページバッファ番号について、ページバッファの描
画・印刷状態を「印刷中2」に設定する(6241)。
【0340】総印刷部数分の実際の印刷と総白紙印刷部
数分の白紙印刷が完了した時点で、現在印刷出力中のペ
ージバッファ番号について、ページバッファフリーマク
ロを発行し、該当ページバッファを解放する(625
1)。
【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】従って、上記問題点を解消し複数排紙部を
サポートするため、前述のプリンタ管理テーブル116
1内の排紙終了監視情報1950(図24参照)を用い
て、以下のことを行った。
【0356】(a)複数個の排紙終了監視タイマを設け
た。タイマの数としては、プリンタエンジン中に滞留す
る可能性のある最大用紙枚数分を用意した。印刷タスク
が発行した印刷指示マクロに対応する垂直同期信号要求
割込み処理において、(i)プリンタ管理テーブル内の
本タイマ対応エリアへの監視する用紙のページ通し番号
と指定排紙部の記入、及び(ii)順番の排紙終了監視タ
イマの選択と、本タイマへの排紙部と用紙サイズにより
定まるタイマ値のセットと、本タイマの起動を行った。
【0357】(b)排紙部別に排紙された用紙の最新ペ
ージ通し番号を管理するためのエリアを、前述のように
プリンタ管理テーブルに用意した。
【0358】(c)排紙終了監視タイマ割込み処理が、
前記(a)の(i)にて記入済みの値に基づき、排紙の
終了した排紙部の最新排紙ページ通し番号((b)に記
したプリンタ管理テーブル内の値)を更新するようにし
た。
【0359】(d)排紙部が排紙部1〜排紙部mまであ
るものとする。この時、頁印刷終了時、又はエラー発生
時に、印刷制御装置は「排紙終了監視タイマ1から同タ
イマ25の各々に対応するページ通し番号の中での最小
値−1」を、排紙がとぎれることなく正常に印刷を完了
したページ通し番号として決定した。その後、頁印刷終
了ページ通し番号、又は再送開始ページ通し番号を印刷
制御装置から上位ホストコンピュータへの報告データ中
の該当エリアに設定した。
【0360】以上により、複数排紙部を利用し、「排紙
終了順番の逆転」という現象が起きる場合でも、排紙終
了ページ通し番号の正しい把握、及び印刷タスクの正し
いタイミングでの終了を実現できるようにした。
【0361】また以上の実施例は、上記先願発明(図5
0)への拡張機能として実現することもできる。つま
り、描画処理部や印刷処理部の処理をマルチタスク構成
とし、並行処理(単一プロセッサによるパイプライン的
処理)または並列処理(複数プロセッサによる同時処
理)をできるようにしてもよい。この場合、図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がページバッファ部1
4’に(9)プリンタ制御部116がプリンタ制御部1
17’に
【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】本発明における複数排紙部サポート方式を説
明するための図である。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−7174(JP,A) 特開 平3−211070(JP,A) 特開 平3−230979(JP,A) (58)調査した分野(Int.Cl.7,DB名) B41J 3/60 B41J 5/30

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】受信した印刷データに基づいて用紙の複数
    ページの表面印刷と複数ページの裏面印刷とを順に行な
    って両面印刷を行う両面印刷機構付きプリンタの両面印
    刷制御方法であって、 両面印刷文書の印刷データの末尾に両面印刷の終了を意
    味する両面印刷終了指定コマンドを付加し、該両面印刷
    終了指定コマンドを検出したとき、前記プリンタ内部に
    用紙が残留していれば、当該用紙を外部に排出して両面
    印刷を終了することを特徴とする両面印刷制御方法。
  2. 【請求項2】表面(または裏面)が未印刷の用紙がプリ
    ンタ内部に複数枚残留しているとき、当該用紙について
    未印刷面の印刷を行った後、外部へ排出することを特徴
    とする請求項記載の両面印刷制御方法。
  3. 【請求項3】受信した印刷データに基づいて用紙の複数
    ページの表面印刷と複数ページの裏面印刷とを順に行な
    って両面印刷を行う両面印刷機構付きプリンタの両面印
    刷制御方法であって、 前記印刷データに、用紙裏面についての給紙部指定また
    は排紙部指定があるとき、該用紙の裏面を白紙のまま出
    力するとともに、プリンタ内部に滞留する用紙を一旦す
    べて排出し、当該裏面ページを新たな表面ページとして
    印刷し、該新たな表面ページの用紙以降について前記給
    紙部指定または排紙部指定を有効にしたことを特徴とす
    る両面印刷制御方法。
JP20391193A 1992-08-31 1993-08-18 両面印刷制御方法および印刷制御装置 Expired - Fee Related JP3380598B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20391193A JP3380598B2 (ja) 1992-08-31 1993-08-18 両面印刷制御方法および印刷制御装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4-232295 1992-08-31
JP23229592 1992-08-31
JP20391193A JP3380598B2 (ja) 1992-08-31 1993-08-18 両面印刷制御方法および印刷制御装置

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2002275846A Division JP3474185B2 (ja) 1992-08-31 2002-09-20 両面印刷制御方法および印刷制御装置
JP2002275845A Division JP3474184B2 (ja) 1992-08-31 2002-09-20 両面印刷制御方法および印刷制御装置

Publications (2)

Publication Number Publication Date
JPH06122236A JPH06122236A (ja) 1994-05-06
JP3380598B2 true JP3380598B2 (ja) 2003-02-24

Family

ID=26514177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20391193A Expired - Fee Related JP3380598B2 (ja) 1992-08-31 1993-08-18 両面印刷制御方法および印刷制御装置

Country Status (1)

Country Link
JP (1) JP3380598B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865105B2 (en) 2005-03-14 2011-01-04 Canon Kabushiki Kaisha Printing control apparatus, printing control method, and program
US8339650B2 (en) 2007-05-14 2012-12-25 Ricoh Company, Ltd. Image forming apparatus, image forming method, and storage medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4834256B2 (ja) * 2000-09-12 2011-12-14 キヤノン株式会社 情報処理装置および印刷データ生成方法および印刷制御プログラムおよび記憶媒体
JP4630939B2 (ja) * 2009-12-21 2011-02-09 キヤノン株式会社 印刷装置及び印刷装置の制御方法
JP5847560B2 (ja) * 2011-11-28 2016-01-27 キヤノン株式会社 印刷制御装置、その制御方法、及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865105B2 (en) 2005-03-14 2011-01-04 Canon Kabushiki Kaisha Printing control apparatus, printing control method, and program
US8339650B2 (en) 2007-05-14 2012-12-25 Ricoh Company, Ltd. Image forming apparatus, image forming method, and storage medium

Also Published As

Publication number Publication date
JPH06122236A (ja) 1994-05-06

Similar Documents

Publication Publication Date Title
US5954436A (en) Printing apparatus and double-side printing control method
US5265209A (en) Print control apparatus for printing pages having different page sizes using one or more of a plurality of same-sized page buffers
KR100734978B1 (ko) 정보 처리 방법 및 정보 처리 장치
JPH07299936A (ja) ページプリンタ
JPH1120272A (ja) 印刷制御装置および方法
JPH05254185A (ja) プリンタ装置
JP3286111B2 (ja) 印刷装置および方法
JP3380598B2 (ja) 両面印刷制御方法および印刷制御装置
JP3474184B2 (ja) 両面印刷制御方法および印刷制御装置
JP3474185B2 (ja) 両面印刷制御方法および印刷制御装置
JPH0655813A (ja) ページプリンタ
JP4631978B2 (ja) プリンタ制御装置およびこれを備えたプリンタ
JP3010559B2 (ja) 印刷システムならびに印刷制御方法および装置
JP2007301881A (ja) マルチポート印刷装置
JP2816184B2 (ja) 印刷制御装置
JP3173721B2 (ja) プリンタ及びその動作方法
JP2776894B2 (ja) プリンタコントローラおよび印刷制御方法
US6050732A (en) Double-side printing control method
JPH11322183A (ja) 複数の排紙ビンを持つ印刷装置
JPH05301429A (ja) エラー回復機能付き印刷制御装置及び印刷制御方法
JP5062750B2 (ja) 画像形成装置
JP3417426B2 (ja) 画像記録装置
JPH02295778A (ja) 印刷制御方法
JPH07200206A (ja) 印刷装置
JPH0475153A (ja) マルチ受信プリント制御方法

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071213

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081213

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091213

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091213

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091213

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101213

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101213

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111213

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111213

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111213

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121213

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121213

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees