JP4250560B2 - コンピュータ、情報処理方法、プログラム - Google Patents

コンピュータ、情報処理方法、プログラム Download PDF

Info

Publication number
JP4250560B2
JP4250560B2 JP2004149390A JP2004149390A JP4250560B2 JP 4250560 B2 JP4250560 B2 JP 4250560B2 JP 2004149390 A JP2004149390 A JP 2004149390A JP 2004149390 A JP2004149390 A JP 2004149390A JP 4250560 B2 JP4250560 B2 JP 4250560B2
Authority
JP
Japan
Prior art keywords
transmission data
management table
data management
page
sheet
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
JP2004149390A
Other languages
English (en)
Other versions
JP2005332167A (ja
JP2005332167A5 (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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004149390A priority Critical patent/JP4250560B2/ja
Priority to US11/131,196 priority patent/US7595900B2/en
Priority to KR1020050041700A priority patent/KR100734978B1/ko
Priority to CNB2005100727708A priority patent/CN100375004C/zh
Publication of JP2005332167A publication Critical patent/JP2005332167A/ja
Publication of JP2005332167A5 publication Critical patent/JP2005332167A5/ja
Application granted granted Critical
Publication of JP4250560B2 publication Critical patent/JP4250560B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1241Dividing a job according to job requirements, e.g. black/white and colour pages, covers and body of books, tabs

Description

本発明は、印刷装置への印刷に係るデータを出力するための技術に関するものである。
ジャムなどのエラー回復を行うために、プリンタにページメモリを保持し、エラーが発生した場合にはこのページメモリに格納された印刷データを用いてエラー回復を行うのが一般的である。
しかしながら、この方法によって両面印刷を行うためには、少なくとも2ページの印刷データを保持可能な容量のメモリをプリンタに保持しなければエラー回復が行えず、またプリンタエンジンの最高印刷速度で印刷するためには通常4ないし8ページの印刷データを保持可能な容量のメモリを必要とする。このため、特にデータサイズが大きい高解像度プリンタあるいはカラープリンタにおいては印刷データを保持するために大容量のメモリが必要になり、プリンタのコストが上昇するという問題がある。
この問題を解決するため、例えば従来から、エラー回復用のページメモリをホスト装置に持つことによりプリンタのメモリを小容量に抑えるという技術が知られている。
特開平8−258375号公報 特開平9−282114号公報
通常のページプリンタのように、フェースダウン排紙を行うプリンタにおいて両面印刷を行う場合には、排紙された紙の束がページ順になるように、裏面(偶数ページ)を先に印刷し、表面(奇数ページ)をその後に印刷するのが一般的である。たとえばいわゆる一枚滞留の両面印刷では2、1、4、3、…の順に、またいわゆる二枚滞留交互給紙の両面印刷では2、4、1、6、3、…の順に印刷するのが一般的である。
しかしながら上記の方法によれば、ページの送信順序が印刷順序にあわせて変更されないため、プリンタ側に両面印刷のための余分なメモリを必要とする。たとえば、上述の一枚滞留の両面印刷では、ページが1、2、3、4、…の順に送信されるため、プリンタ側に1ページ目のデータを格納後、2ページ目のデータを受信し、2ページ目から印刷を開始するため、少なくとも2ページの印刷データを保持可能なメモリ容量を必要とする。
本発明は以上の問題に鑑みてなされたものであり、印刷装置へのページの送信順序をこの印刷装置の印刷順序に、メモリの使用量を抑えつつ適合させる為の技術を提供することを目的とする。
本発明の目的を達成するために、例えば本発明のコンピュータは以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータであって、
送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加する手段を備えることを特徴とする。
本発明の目的を達成するために、例えば本発明のコンピュータは以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータであって、
2枚滞留で両面印刷可能でない場合には、末尾に裏ページを追加し、末尾に表ページを追加する手段と、
2枚滞留で両面印刷可能である場合には、送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加する手段を備えることを特徴とする。
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータにおける情報処理方法であって、
送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップを備えることを特徴とする。
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータにおける情報処理方法であって、
2枚滞留で両面印刷可能でない場合には、末尾に裏ページを追加し、末尾に表ページを追加するステップと、
2枚滞留で両面印刷可能である場合には、送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップとを備えることを特徴とする。
本発明の目的を達成するために、例えば本発明のプログラムは以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータで実行されるプログラムあって、
送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップをコンピュータに実行させることを特徴とする。
本発明の目的を達成するために、例えば本発明のプログラムは以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータで実行されるプログラムであって、
2枚滞留で両面印刷可能でない場合には、末尾に裏ページを追加し、末尾に表ページを追加するステップと、
2枚滞留で両面印刷可能である場合には、送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップとをコンピュータに実行させることを特徴とする。
本発明の目的を達成するために、例えば本発明のコンピュータは以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータであって、
送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第2のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加する手段を備えることを特徴とする。
本発明の目的を達成するために、例えば本発明のコンピュータは以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータであって、
2枚滞留で両面印刷可能でない場合には、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加する手段と、
2枚滞留で両面印刷可能である場合には、送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第2のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第3のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第3のシートの表ページを追加する手段と
を備えることを特徴とする。
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータが行う情報処理方法であって、
送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第2のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加するステップを備えることを特徴とする。
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータが行う情報処理方法であって、
2枚滞留で両面印刷可能でない場合には、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加するステップと、
2枚滞留で両面印刷可能である場合には、送信データ管理テーブルの送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第2のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第3のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第3のシートの表ページを追加するステップと
を備えることを特徴とする。
本発明の目的を達成するために、例えば本発明のプログラムは以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータで実行されるプログラムであって、
送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第2のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加するステップをコンピュータに実行させることを特徴とする。
本発明の目的を達成するために、例えば本発明のプログラムは以下の構成を備える。
すなわち、両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータで実行されるプログラムであって、
2枚滞留で両面印刷可能でない場合には、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加するステップと、
2枚滞留で両面印刷可能である場合には、送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第2のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第3のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第3のシートの表ページを追加するステップとをコンピュータに実行させることを特徴とする。
本発明の構成により、印刷装置へのページの送信順序をこの印刷装置の印刷順序に、メモリの使用量を抑えつつ適合させることができる。
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
[第1の実施形態]
図1は本実施形態に係るコンピュータ1、プリンタ7の機能構成を示すブロック図である。図中、1はコンピュータであり、オペレーティングシステム2、アプリケーション3、プリンタドライバ4、ランゲージモニタ5,ポートドライバ6等のソフトウェアを保持する。
オペレーティングシステム2は、コンピュータ1が備えるハードウェア、およびアプリケーション3、プリンタドライバ4、ランゲージモニタ5、ポートドライバ6などのソフトウェアを管理する。
アプリケーション3は、例えばワードプロセッサのようなアプリケーションソフトウェアであり、操作者の指示に従って文書の作成・印刷などを行う。
4はプリンタドライバであり、アプリケーション3が発行した印刷指令をオペレーティングシステム2を経て受け取り、この印刷指令をランゲージモニタ5、およびプリンタ7が解釈可能なプリンタコマンドに変換する。当然、このプリンタドライバ4はコンピュータ1に接続されているプリンタ7に適合したものであることは言うまでもない。
5はランゲージモニタであり、プリンタドライバ4が出力したプリンタコマンドを受け取り、ポートドライバ6を経由してプリンタ7に送信する。6およびはポートドライバであり、ランゲージモニタ5が出力したプリンタコマンドを、たとえばUSBインタフェースを経てプリンタ7に送信するとともに、プリンタ7からステータスを受信した場合にはランゲージモニタ5に出力する。
7はプリンタであり、ポートドライバ6から受信したプリンタコマンドに従って印刷を行う。
図15は、上記コンピュータ1の基本構成を示すブロック図である。
1501はCPUで、RAM1502やROM1503に格納されているプログラムやデータを用いてコンピュータ1全体の制御を行うと共に、後述する各処理(例えばプリンタ7とのデータ通信を制御する処理)を行う。
1502はRAMで、外部記憶装置1506からCPU1501の制御により読み出されたプログラムやデータを一時的に格納すると共に、CPU1501が各処理を行う際に使用するワークエリアを備える。また、プリンタ7とのデータ通信を行う為に使用する各種のエリアを備える。
1503はROMで、ブートプログラムやコンピュータ1の各種の設定データなどを格納する。
1504は操作部で、キーボードやマウスなどの入力装置により構成されており、CPU1501に対して印刷指示などの各種の指示を入力することができる。
1505は表示部で、CRTや液晶画面などにより構成されており、ここに画像や文字などで各種の情報を表示することができ、例えば、文章エディタでもって作成した文章を表示することができる。
1506は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置であり、ここに上記オペレーティングシステム2、アプリケーション3、プリンタドライバ4、ランゲージモニタ5,ポートドライバ6等のソフトウェアのプログラムやデータが保存されており、これらの一部、もしくは全部はCPU1501の制御によりRAM1502に読み出され、CPU1501の処理対象となる。
1507はI/F(インターフェース)で、コンピュータ1をプリンタ7と接続するためのものであり、このI/F1507を介してコンピュータ1はプリンタ7とデータ通信を行うことができる。
1508は上述の各部を繋ぐバスである。
図2はプリンタ7の基本構成を示すブロック図である。図中、21はたとえばUSBインタフェース等により構成されるホストインタフェースであり、コンピュータ1からプリンタコマンドを受信する。
22はFIFO(ファーストインファーストアウト)メモリであり、ホストインタフェース21から受信した各種のデータを格納する。復号回路23は、FIFOメモリ22に記憶された画像データを復号し、プリンタエンジン24に出力する。プリンタエンジン24は、レーザビームプリンタエンジンであり、制御回路25の指示により、復号回路23が出力した画像データに従って印刷を行う。25は制御回路であり、例えば1チップCPUで構成され、ネットワークインタフェース21、FIFOメモリ22、復号回路23およびプリンタエンジン24の制御を行う。
次に、上記コンピュータ1、プリンタ7による印刷動作について説明する。なお、以下の説明でコンピュータ1が行う処理はすなわち、コンピュータ1のCPU1501によって行われるものである。CPU1501は当然、RAM1502にロードされたプログラムやデータを用いてこの処理を実行する。
操作者がコンピュータ1側で操作部1504を操作し、アプリケーション3に対して印刷を指示すると、アプリケーション3からオペレーティングシステム2を経由してプリンタドライバ4に印刷指令が渡される。
プリンタドライバ4はアプリケーション3から発行された印刷指令に基づき、印刷対象を画像データに変換して圧縮し、圧縮した画像データを、両面印刷の有無、印刷部数の指定などを指定するジョブ情報コマンド、用紙サイズ、用紙タイプ、給紙元、排紙先、画像データのラインの長さとライン数などを指定するページ情報コマンド、ページの終了を示すページ終了コマンド、およびジョブの終了を通知するジョブ終了コマンドとともに「プリンタコマンド」として出力する。
なお、両面印刷においては、綴じる辺が長辺か短辺かによって長辺綴じ、短辺綴じの2種類があり、長辺綴じで短辺から給紙するいわゆる縦送りである場合、および短辺綴じで長辺から給紙するいわゆる横送りである場合には、裏面のページの画像を180度回転する必要があるので、プリンタドライバ4はあらかじめ、綴じ方向と給紙方向に応じて、必要な場合には画像を180度回転する。また、本実施形態においては、排紙先は常にフェースダウントレイが指定される。
プリンタコマンドが出力されると、オペレーティングシステム2はこのプリンタコマンドを順次ランゲージモニタ5に引き渡す。ランゲージモニタ5は、受け取ったプリンタコマンドを順次プリンタ7に送信する。なおランゲージモニタ5はプリンタコマンド中の画像データコマンドをプリンタ7に送信する前に、ステータス要求コマンドを送信し、プリンタ7のステータスを取得して、画像データコマンドが送信可能であることを確認する。
プリンタ7の制御回路25は画像データコマンドを受信すると、画像データをFIFOメモリ22に格納する。制御回路25はまた、ページ終了コマンドを受信すると、プリンタエンジン24に対して印刷開始を指示する。プリンタエンジン24は印刷開始を指示されると、給紙を行い、用紙が所定の位置に達したときに画像データの出力を要求する。画像データの出力が要求されると、復号回路23はFIFOメモリ22から圧縮された画像を読み出し、復号した元の画像データをプリンタエンジン24に出力する。このときFIFOメモリ22から読み出された画像データは、FIFOメモリ22から取り除かれる。
ランゲージモニタ5はまた、プリンタ7から取得したプリンタステータスがページの印刷が正常終了したことを示した場合には、該当するページメモリを解放する。ランゲージモニタ5はまた、取得したプリンタステータスがエラーを示した場合には、印刷が正常終了していないページを含むシートから再送信を試みる。ここでシートとは、一枚の紙に相当し、片面印刷においては1ページによって、両面印刷においては2ページによって構成される。
このようにしてジョブの全ページのプリンタコマンドを転送し終えると、ランゲージモニタ5はジョブの全シートの印刷完了を待ち、ジョブの全シートの印刷が完了した場合には、ジョブを終了する。
次に、図3および図4を参照し、ランゲージモニタ5が使用するシート管理テーブル101のデータ構造を説明する。
図3は片面3ページのジョブを処理する際にCPU1501が参照するシート管理テーブルの構成例を示す図である。図4は両面6ページのジョブを処理する際にCPU1501が参照するシート管理テーブルの構成例を示す図である。
シート管理テーブル101(以下、101a〜101h全てに共通する説明の場合には、特にa〜hを付けない)には、次のシート管理テーブルのRAM1502におけるアドレスを示す次のシートアドレス102、表面ページのデータバッファ(RAM1502内に設けられているバッファメモリ)におけるアドレスを示す表面ページアドレス103、裏面ページのデータバッファにおけるアドレスを示す裏面ページアドレス104、未送信の部数を示す未送信カウンタ105、印刷未完了の部数を示す未完了カウンタ106が構成要素として含まれている。
CPU1501は、オペレーティングシステム2から上記各種の構成要素を受信した順に、先頭シート管理テーブルアドレス107(a、b)、および次のシートアドレス102によって図3,4に示すような線形リストを構成する。
ここで、次のシートアドレス102がNULLである場合には、次のシート管理テーブル101が存在しないことを示す。また、表面ページアドレス103がNULLである場合には、そのシートはジョブの終了を示す空シートであることを示す。また、裏面ページアドレス104がNULLである場合には、そのシートには裏面ページが存在せず、片面印刷を行うシートであることを示す。
次に図10を参照し、ランゲージモニタ5のデータ受信処理の詳細を説明する。図10は、CPU1501が、上記プリントコマンドを参照して図3,4に示すような線形リスト(シート管理テーブル群)を生成する処理のフローチャートである。なお、同図のフローチャートに従った処理をCPU1501に実行させるためのプログラムは外部記憶装置1506からRAM1502にロードされているものとする。
まず、ステップS1にて、オペレーティングシステム2から渡されたプリンタコマンドをRAM1502内に設けられているバッファにコピーする。次にステップS2にて、一つのコマンドの受信が完了しているか判定する。コマンドが途中で切れており、一つのコマンドの受信が完了していない場合には直ちに処理を終了し、次のコマンド受信に備える。一つのコマンドの受信が完了している場合には、ステップS3にて、受信したコマンドがジョブ情報コマンドであるか判定する。受信したコマンドがジョブ情報コマンドであった場合には、ステップS4にて受信したジョブ情報コマンドをRAM1502内に設けられているワーク領域にコピーし、ジョブ情報コマンドをバッファから削除し、処理を終了する。
ステップS3にて受信したコマンドがジョブ情報コマンドでなかった場合には、ステップS5にて、受信したコマンドがページ終了コマンドであるか判定する。受信したコマンドがページ終了コマンドであった場合には、ステップS6にて、ジョブ情報コマンドにより両面印刷が指定されているか判定する。ジョブ情報コマンドにより両面印刷が指定されていない場合には、ステップS7にて、表面ページアドレス103に、バッファ内の1ページぶんのコマンド群の先頭アドレスを設定する。なお、コマンド群のバッファ内における位置が分かるのであれば、どのような情報を表面ページアドレス103に設定するようにしても良い。
また、ステップS7では、裏面ページアドレス104をNULLに設定する。またステップS7では、未完了カウンタ106をジョブ情報コマンドにより指定された印刷部数に設定する。そしてこのようにして表面ページアドレス103、裏面ページアドレス、未完了カウンタ106を含むシート管理テーブルを、シート管理テーブル101の線形リストの末尾に追加し、処理を終了する。
一方、ステップS6にて、ジョブ情報コマンドにより両面印刷が指定されている場合には、ステップS8にて、保留ページの有無を判定する。ここで、保留ページとは、両面印刷の表面のページを一時的にRAM1502中の所定のエリアに保持したものである。
保留ページがない場合には、ステップS11にて、バッファ内の1ページぶんのコマンド群の先頭アドレスを保留ページの先頭アドレスとして記憶し、処理を終了する。
一方、ステップS8にて、保留ページがある場合には、ステップS9にて、表面になるべき保留ページと、裏面になるべき現在のページの組み合わせで両面印刷が可能であるか判定する。具体的には例えば、
・ 表面のページ情報コマンドで指定される用紙サイズが両面印刷可能なサイズ、例えばA3、B4、A4、B5のいずれかでない場合には両面印刷が可能でない。
・ 表面のページ情報コマンドで指定される用紙タイプが両面印刷可能なタイプ、例えば普通紙でない場合には両面印刷が可能でない。
・ 裏面のページ情報コマンドで指定される用紙サイズが、表面のページ情報コマンドで指定される用紙サイズと一致しない場合には両面印刷が可能でない。
・ 裏面のページ情報コマンドで指定される用紙タイプが、表面のページ情報コマンドで指定される用紙タイプと一致しない場合には両面印刷が可能でない。
・ 裏面のページ情報コマンドで指定される給紙元指定が、表面のページ情報コマンドで指定される給紙元指定と一致しない場合には両面印刷が可能でない。
・ 上記のいずれにも該当しない場合には両面印刷が可能である。
のように判定する。
ステップS9にて、両面印刷が可能であると判定された場合には、ステップS12にて、裏面ページアドレス104にバッファ内の1ページぶんのコマンド群の先頭アドレスを設定し、表面ページアドレス103に保留ページの先頭アドレスを設定し、未完了カウンタ106をジョブ情報コマンドにより指定された印刷部数に設定する。そして更にステップS12では、このようにして表面ページアドレス103、裏面ページアドレス、未完了カウンタ106を含むシート管理テーブルを、シート管理テーブル101の線形リストの末尾に追加し、処理を終了する。
この際に、両面印刷を行うことを指示するために、裏面ページアドレス104が指す裏面ページのページ情報コマンドの排紙先指定を両面ユニットに、また表面ページアドレス103が指す裏面ページのページ情報コマンドの給紙元指定を両面ユニットに、それぞれ変更する。コマンド次にステップS13にて、保留ページアドレスに保留ページがないことを示すNULLを格納し、処理を終了する。
ステップS9にて、両面印刷が可能でないと判定された場合には、保留ページを片面印刷するとともに現在のページを保留ページとするために、ステップS10にて、裏面ページアドレス104にNULLを設定し、表面ページアドレス103に保留ページの先頭アドレスを設定し、未完了カウンタ106をジョブ情報コマンドにより指定された印刷部数に設定する。そして更にステップS10では、このようにして表面ページアドレス103、裏面ページアドレス、未完了カウンタ106を含むシート管理テーブルを、シート管理テーブル101の線形リストの末尾に追加する。
そして、ステップS11にて、バッファ内の1ページぶんのコマンド群の先頭アドレスを保留ページの先頭アドレスとして記憶し、処理を終了する。
一方、ステップS5にて、受信したコマンドがページ終了コマンドでなかった場合には、ステップS14にて、受信したコマンドがジョブ終了コマンドであるか判定する。受信したコマンドがジョブ終了コマンドでなかった場合は、受信したコマンドがページ情報コマンドまたは画像データである場合であり、1ページぶんのコマンドをまだ受信し終えてない場合なので、受信したコマンドをそのままバッファに残し、処理を終了する。
一方、ステップS14にて、受信したコマンドがジョブ終了コマンドであった場合は、ステップS15にて保留ページの有無を判定する。保留ページがない場合には、直接ステップS18に進む。
保留ページがある場合には、両面印刷が指定されているが、対応する裏面のページがない場合なので、片面印刷を行うために、ステップS16にてステップS10と同様の処理を行う。次にステップS17にて、保留ページアドレスに保留ページがないことを示すNULLを格納し、ステップS18に進む。
ステップS18では、ジョブの終了を示すために、表面ページアドレス103および裏面ページアドレス104をNULLに設定したシート管理テーブルを、シート管理テーブルの線形リストの末尾に追加し、処理を終了する。
なお、以上の処理において、シート管理テーブルを線形リストの末尾に追加する場合には、追加する前に末尾であったシート管理テーブルに含まれる「次のシートアドレス102」には、新たに追加するシート管理テーブルのアドレスを設定する必要がある。
次に、図5および図6を参照し、ランゲージモニタ5が使用する送信データ管理テーブル111のデータ構造を説明する。図5は片面3ページのジョブを処理する場合に参照される送信データ管理テーブル111の構成例を示す図である。図6は両面6ページ(一枚滞留)のジョブを処理する場合に参照される送信データ管理テーブル111の構成例を示す図である。
送信データ管理テーブル111(以下、111a〜111i全てに共通する説明の場合には、特にa〜iを付けない)は、次の送信データ管理テーブル111のRAM1502におけるアドレスを示す次の送信データアドレス112、その送信データ管理テーブル111に対応するシート管理テーブル101のRAM1502におけるアドレスを示すシート管理テーブルアドレス113、その送信データ管理テーブル111の種類が片面印刷または両面印刷の表面ページ、両面印刷の裏面ページ、あるいは二枚滞留の両面印刷の場合に裏面ページが入るべき空きテーブルのいずれであるかを示す送信データ種別114、印刷順序を示すページ番号(不図示)を構成要素として含むものである。
このような線形リストは、印刷が行われる順に、先頭送信データ管理テーブルアドレス117(a、b)、および次の送信データアドレス112によって構成する。次の送信データアドレス112がNULLである場合には、次の送信データ管理テーブルが存在しないことを示す。前述したように、フェースダウン排紙を行う場合には表面よりも裏面を先に印刷するため、図6において同一シートの裏面が表面に先行している。
次に図14を参照し、二枚滞留交互給紙の両面印刷における、印刷順序を説明する。図14は、二枚滞留交互給紙の両面印刷における、印刷順序とページの関係を示した表である。
両面印刷を行う際には、裏面を印刷後、表面の印刷を開始するまでに、用紙の前端と後端を反転させた後に、用紙を感光ドラムまで搬送する、いわゆる再給紙を行う必要があり、一枚滞留の両面印刷ではこの間印刷が行えないため、印刷速度が遅くなる。二枚滞留交互給紙の両面印刷においては、この問題を解決するために、上述の反転および再給紙を行っている時間を利用して、別のシートを印刷することにより印刷速度が遅くならないようにする。具体的には、以下のような規則に従って印刷を行う。
・ 同一シートの裏面印刷と表面印刷の間に、別のシートを2ページ印刷する。
・ 裏面印刷と表面印刷を交互に行う。
・ ただし、送信順序2に対応するページはシート1に先行するシートの表面であるが、そのようなページは存在しないため印刷を行うことができず、この間時間が空く。
・ また、送信順序7に対応するページはシート4の裏面であるが、そのようなページが存在しない場合には印刷を行うことができず、この間時間が空く。
・ 二枚滞留交互給紙の両面印刷を行う場合、シートの長さの上限は、用紙搬送路の長さなどにより制約を受けるため、例えばA4横送りよりも長い用紙では二枚滞留交互給紙の両面印刷を行うことができない。そのような場合には一枚滞留にて両面印刷を行う。
・ 二枚滞留交互給紙の両面印刷を行う場合、用紙サイズまたは用紙タイプが異なるシートを混在して印刷することはできない。
次に、図7、図8および図9を参照し、二枚滞留交互給紙の両面印刷における、送信データ管理テーブル111の構成方法を説明する。図7は2ページの送信データが登録されている状態における線形リストを示す図、図8は4ページの送信データが登録されている状態における線形リストを示す図、図9は6ページの送信データが登録されている状態における線形リストを示す図である。
最初の2ページを登録したときには、図7に示すように、シート1裏面、空き、シート1表面の順に送信データ管理テーブル111a〜111cを構成する。これらは図14の送信順序1、3、4にそれぞれ相当する。
そして更に次の2ページを登録する際には、図7に示す線形リスト(送信データ管理テーブル111a〜111c)を検索し、検索された空きの送信データ管理テーブル111bをシート2裏面ページに変更する(その結果送信データ管理テーブル111bは送信データ管理テーブル111dとなる)とともに、線形リストの末尾に空きの送信データ管理テーブル111f、およびシート2表面ページの送信データ管理テーブル111gを順に追加する。
なお、その際には、送信データ管理テーブル111c中の「次の送信データアドレス112」には、送信データ管理テーブル111fのアドレスを設定する。これにより、送信データ管理テーブル111cは送信データ管理テーブル111eとなる。また、送信データ管理テーブル111f中の「次の送信データアドレス112」には、送信データ管理テーブル111gのアドレスを設定する。
そして更に、2ページを登録する際には、図7に示す線形リスト(送信データ管理テーブル111a〜111c)を検索し、検索された空きの送信データ管理テーブル111fをシート3裏面ページに変更する(その結果送信データ管理テーブル111fは送信データ管理テーブル111hとなる)とともに、線形リストの末尾に空きの送信データ管理テーブル111j、およびシート3表面ページの送信データ管理テーブル111kを順に追加する。
なお、その際には、送信データ管理テーブル111g中の「次の送信データアドレス112」には、送信データ管理テーブル111jのアドレスを設定する。これにより、送信データ管理テーブル111gは送信データ管理テーブル111iとなる。また、送信データ管理テーブル111j中の「次の送信データアドレス112」には、送信データ管理テーブル111kのアドレスを設定する。
このようにして、必要なだけのページを追加していくことができる。
次に図11を参照し、ランゲージモニタ5の送信データ登録処理の詳細を説明する。図11は、CPU1501が、上記プリントコマンドを参照して図7,8,9に示すような線形リスト(シート管理テーブル群)を生成する処理のフローチャートである。なお、同図のフローチャートに従った処理をCPU1501に実行させるためのプログラムは外部記憶装置1506からRAM1502にロードされているものとする。
なお、送信データ登録処理は、データ受信処理と並行に動作する。送信データ登録処理が起動されるとまず、ステップS31にて、シート管理テーブル101が存在するか判定する。具体的には先頭シート管理テーブルアドレス107がNULLである場合には、シート管理テーブル101が存在しないので、ステップS31に戻る。
先頭シート管理テーブルアドレス107がNULLでない場合には、シート管理テーブル101が存在するので、ステップS32にて現在のシートアドレスに先頭シート管理テーブルアドレス107を設定する。
次にステップS33にて、現在のシートアドレスが示すシート管理テーブル101が、ジョブの終了を示す空シートであるか判定する。具体的には表面ページアドレス103がNULLでない場合には、現在のシートは空シートではないため、ステップS34にて、現在のシート管理テーブル101の未完了カウンタ106を未送信カウンタ105にコピーする。
次にステップS35にて、エラーが発生しているか判定する。なお、エラーが発生しているか否かを示す情報は、後述する処理手順により取得される。エラーが発生している場合には、データの送信をやり直さなければならないため、ステップS31に戻る。
エラーが発生していない場合には、ステップS36にて、現在のシートが片面印刷するシートであるか判定する。具体的には、現在のシート管理テーブル101の裏面ページアドレス104がNULLである場合には、現在のシートは片面印刷するシートであるため、ステップS37にて送信データ管理テーブル111を検索する。空きの送信データ管理テーブル111があれば、二枚滞留の両面印刷から片面印刷に移行した場合であり、その空きを使用することはできないので、それを削除する。次にステップS47に進む。
一方、ステップS36にて、現在のシート管理テーブル101の裏面ページアドレス104がNULLでない場合には、現在のシートは両面印刷するシートであるため、ステップS38にて、二枚滞留で両面印刷が可能であるか判定する。具体的には、現在のシートの用紙サイズが、例えばA4またはB5でなかった場合には、二枚滞留で両面印刷が可能でないので、ステップS39にて送信データ管理テーブル111を検索する。
現在のシートの用紙サイズは、上記ページ情報コマンドを参照することにより得られる。
空きの送信データ管理テーブル111があれば、二枚滞留の両面印刷から一枚滞留の両面印刷に移行した場合であり、その空きを使用することはできないので、それを削除する。
次にステップS40にて、シート管理テーブルアドレス113を現在のシートアドレスに、送信データ種別114を裏面ページに設定した送信データ管理テーブル111を、送信データ管理テーブル111の線形リストの末尾に追加し、ステップS47に進む。
一方、ステップS38にて、現在のシートの用紙サイズが、例えばA4またはB5であった場合には、二枚滞留で両面印刷が可能なので、ステップS41にて送信データ管理テーブル111を検索する。
空きの送信データ管理テーブル111がなければ、ステップS45に進む。空きの送信データ管理テーブル111があった場合には、ステップS42にて、空きテーブルが使用可能であるか、すなわち前のシートのページと混在して二枚滞留の両面印刷を続けることができるかを判定する。具体的には、末尾の送信データ管理テーブル111のページの用紙サイズおよび用紙タイプが、現在のシートの用紙サイズおよび用紙タイプとそれぞれ一致する場合には、混在して印刷を続けることが可能であり、空きテーブルが使用できるため、ステップS43にて、検索された送信データ管理テーブル111の、シート管理テーブルアドレス113を現在のシートアドレスに、送信データ種別114を裏面ページにそれぞれ設定し、ステップS46に進む。
ステップS42にて、末尾の送信データ管理テーブル111のページの用紙サイズまたは用紙タイプが、現在のシートの用紙サイズまたは用紙タイプと一致しない場合には、混在して印刷を続けることが可能でなく、空きテーブルが使用できないため、ステップS44にて、送信データ管理テーブル111を検索し、空きの送信データ管理テーブル111があれば、それを削除し、ステップS45に進む。
ステップS45では、シート管理テーブルアドレス113を現在のシートアドレスに、送信データ種別114を裏面ページに設定した送信データ管理テーブル111を、送信データ管理テーブル111の線形リストの末尾に追加し、ステップS46に進む。
ステップS46では、シート管理テーブルアドレス113をNULLに、送信データ種別114を空きテーブルに設定した送信データ管理テーブル111を、送信データ管理テーブル111の線形リストの末尾に追加し、ステップS47に進む。
ステップS47では、シート管理テーブルアドレス113を現在のシートアドレスに、送信データ種別114を表面ページに設定した送信データ管理テーブル111を、送信データ管理テーブル111の線形リストの末尾に追加し、次にステップS48にて、現在のシート管理テーブル101の未送信カウンタ105から1を減算し、次にステップS49にて、現在のシート管理テーブル101の未送信カウンタ105が0であるか判定する。
現在のシート管理テーブル101の未送信カウンタ105が0でない場合には、ステップS35に戻り、現在のシートの送信データ登録を継続する。現在のシート管理テーブル101の未送信カウンタ105が0である場合には、そのシートの送信データ登録が指定された印刷部数に応じた回数行われた場合なので、ステップS50にて、次のシート管理テーブル101が存在するか判定する。具体的には、現在のシート管理テーブル101の、次のシートアドレス102がNULLでない場合には、次のシート管理テーブル101が存在するため、ステップS51にて、現在のシートアドレスに現在のシート管理テーブル101の、次のシートアドレス102を格納し、次にステップS33に戻り、次のシートの送信データ登録を開始する。
ステップS50にて、現在のシート管理テーブル101の、次のシートアドレス102がNULLである場合には、次のシート管理テーブル101が存在しないため、ステップS52にて、エラーが発生しているか判定する。
エラーが発生している場合は、ステップS31に戻る。エラーが発生していない場合は、ステップS50に戻り、次のシート管理テーブル101が追加されるか、あるいはエラーが発生するまでステップS50からステップS52の処理を繰り返す。
一方、ステップS33にて、表面ページアドレス103がNULLである場合には、現在のシートはジョブの終了を示す空シートであるため、ステップS52にて、エラーが発生しているか判定する。エラーが発生している場合は、ステップS31に戻る。
エラーが発生していない場合は、ステップS54にて、印刷が完了したか判定する。具体的には、先頭シート管理テーブル107が、現在のシートアドレス、すなわちジョブの終了を示す空シートのアドレスと等しい場合には、印刷の完了により、後述する処理手順に従って、空シート以外のシート管理テーブル101が全て削除された場合なので、ステップS55にてジョブ終了処理を行う。ここでは、空シートの削除など、ワーク領域を印刷前に戻す処理を行う。次にステップS31に戻る。
ステップS54にて、先頭シート管理テーブル107が、現在のシートアドレスと等しくない場合には、印刷が完了していない場合なので、ステップS53に戻り、印刷が完了するか、あるいはエラーが発生するまでステップS53からステップS54の処理を繰り返す。
以上の処理により、シート管理テーブル、送信データ管理テーブルを参照して、印刷処理をプリンタ7に行わせることができる。
次に図12を参照し、ランゲージモニタ5のデータ送信処理の詳細を説明する。図12は、CPU1501が、プリンタ7に印刷対象のデータを送信する処理のフローチャートである。なお、同図のフローチャートに従った処理をCPU1501に実行させるためのプログラムは外部記憶装置1506からRAM1502にロードされているものとする。
なお、データ送信処理は、データ受信処理および送信データ登録処理と並行に動作する。
データ送信処理が起動されるとまず、ステップS71にて、送信データの有無を判定する。具体的には先頭送信データ管理テーブルアドレス117がNULLである場合には、送信データ管理テーブル111が存在しないので、ステップS71に戻る。
先頭送信データ管理テーブルアドレス117がNULLでない場合には、送信データ管理テーブル111が存在するので、ステップS72にて現在の送信データ管理テーブルアドレスに先頭送信データ管理テーブルアドレス117を格納する。次にステップS86にて、データクリアコマンドをプリンタ7に送信する。プリンタ7は、データクリアコマンドを受信すると、受信済みの印刷データを破棄するとともに、内部に保持するページ番号を0に初期化する。次にステップS87にて、送信ページ番号に0を格納する。
次にステップS73にて、現在の送信データ管理テーブルの送信データ種別114が空きテーブルであるか判定する。現在の送信データ管理テーブルの送信データ種別114が空きテーブルでない場合には、ステップS74にて、送信ページ番号に1を加算し、現在の送信データ管理テーブルの送信ページ番号(不図示)に格納する。
次に、ステップS75にて、エラーが発生しているか判定する。エラーが発生していない場合は、ステップS76にて、コマンドが送信可能であるか判定する。なお、コマンドが送信可能であるか否かを示す情報は、後述する処理手順により取得される。コマンドが送信可能でない場合には、ステップS75に戻り、コマンドが送信可能になるか、あるいはエラーが発生するまで、ステップS75からステップS76の処理を繰り返す。
ステップS76にて、コマンドが送信可能である場合には、ステップS77にて、送信データ種別114が表面ページであるか裏面ページであるかに従って、シート管理テーブルアドレス113が指すシート管理テーブルの、表面ページアドレス103あるいは裏面ページアドレス104が指すアドレスに格納されているコマンドのうち、未送信の先頭コマンドをプリンタ7に送信する。
次にステップS78にて、1ページぶんのコマンドを全て送信し終えたか判定する。1ページぶんのコマンドを全て送信し終えていない場合は、ステップS75に戻り、コマンドの送信を継続する。
一方、1ページぶんのコマンドを全て送信し終えている場合は、ステップS79にて、次の送信データ管理テーブル111が存在するか判定する。具体的には、次の送信データアドレス113がNULLでない場合には、次の送信データ管理テーブル111が存在するので、ステップS80にて現在の送信データ管理テーブルアドレスに次の送信データアドレス113を格納し、ステップS73に戻る。
一方、ステップS79にて、次の送信データアドレス113がNULLである場合には、次の送信データ管理テーブル111が存在しないので、ステップS81にて、エラーが発生しているか判定する。エラーが発生している場合は、データ送信をやり直さなければならないため、ステップS83に戻り、全ての送信データ管理テーブル111を削除し、ステップS71に戻る。
エラーが発生していない場合は、ステップS82に進み、印刷が完了しているか判定する。印刷が完了している場合には、ステップS71に戻る。印刷が完了していない場合には、ステップS79に戻り、次の送信データ管理テーブル111が追加されるか、印刷が完了するか、あるいはエラーが発生するまでステップS79からステップS82の処理を繰り返す。
ステップS73にて、現在の送信データ管理テーブルの送信データ種別114が空きテーブルである場合は、現在の送信データ管理テーブルの次の送信データ管理テーブルの送信データを送信するべき場合であり、空きテーブルが使用できなくなるため、ステップS84にて現在の送信データ管理テーブルアドレスに次の送信データアドレス113を格納し、ステップS85にて現在の送信データ管理テーブル111すなわち空きのテーブルを削除してステップS73に戻る。
次に図13を参照し、ランゲージモニタ5のステータス監視処理の詳細を説明する。図13は、CPU1501が、プリンタ7との通信処理を行い、ステータスを監視するための処理のフローチャートである。なお、同図のフローチャートに従った処理をCPU1501に実行させるためのプログラムは外部記憶装置1506からRAM1502にロードされているものとする。
なお、ステータス監視処理は、データ受信処理、送信データ登録処理およびデータ送信処理と並行に動作する。
ステータス監視処理が起動されるとまず、ステップS91にて、プリンタステータスを取得する。具体的には、プリンタ7にステータス要求コマンドを送信し、プリンタ7がこれに応じて返信するプリンタステータスを受信する。プリンタステータスには少なくとも以下の情報が含まれる。
・ プリンタ7がエラー状態であるか否か
・ ページ情報コマンドを受信可能であるか否か
・ 画像データコマンドを受信可能であるか否か
・ 印刷が完了したページのページ番号
次にステップS92にて、エラーが発生しているか判定する。エラーが発生している場合には、ステップS91に戻る。エラーが発生していない場合には、ステップS93にて、印刷完了ページ番号が前回取得した値から変化したか判定する。印刷完了ページ番号が前回取得した値から変化していない場合はステップS91に戻る。
印刷完了ページ番号が前回取得した値から変化した場合は、ステップS94にて、印刷が完了したページが表面であるか判定する。具体的には、印刷が完了した送信データ管理テーブル111の送信データ種別114が表面ページでない場合には、印刷が完了したページは表面ではないため、ステップS98に進む。
印刷が完了した送信データ管理テーブル111の送信データ種別114が表面ページである場合は、ステップS95にて印刷が完了した送信データ管理テーブル111のシート管理テーブル113が指すシート管理テーブル101の未完了カウンタ106から1を減算する。
次にステップS96にて、未完了カウンタ106が0であるか判定する。未完了カウンタ106が0でない場合はステップS98に進む。未完了カウンタ106が0である場合には、指定された部数の印刷が完了した場合なので、ステップS97にて、印刷が完了した送信データ管理テーブル111のシート管理テーブル113が指すシート管理テーブル101を削除する。この際に、表面ページアドレス103が指すデータバッファ、および裏面ページアドレス104がNULLでない場合には裏面ページアドレス104が指すデータバッファを解放する。次にステップS98に進む。
ステップS98では、印刷が完了した送信データ管理テーブル111を削除し、ステップS91に戻る。
以上の処理により、両面印刷を行う場合に、印刷を行う順にページが送信されるので、両面印刷のための追加メモリを必要とすることなしに、片面印刷時と同じ容量のメモリにて両面印刷を行うことができる。
[第2の実施形態]
上記第1の実施形態では、排紙先は常にフェースダウントレイであり、常に裏面を表面に先行して印刷していたが、これに代えて、操作者からフェースアップ排紙を指定された場合、あるいはプリンタ7の排紙先がレバー、またはパネルからの指定などによりフェースアップ排紙が指定されている場合には、表面を裏面に先行して印刷するようにしても良い。
なお、第1の実施形態では、両面印刷時、一枚滞留または二枚滞留交互給紙にて印刷を行っていたが、これに代えて任意の方法、例えば二枚滞留非交互給紙(2、1、4、3…の順)または三枚滞留交互給紙(2、4、6、1、8、3、10、5…の順)などにより両面印刷を行うようにしても良い。
[その他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャート(機能構成)に対応するプログラムコードが格納されることになる。
本発明の第1の実施形態に係るコンピュータ1、プリンタ7の機能構成を示すブロック図である。 プリンタ7の基本構成を示すブロック図である。 片面3ページのジョブを処理する際にCPU1501が参照するシート管理テーブルの構成例を示す図である。 両面6ページのジョブを処理する際にCPU1501が参照するシート管理テーブルの構成例を示す図である。 片面3ページのジョブを処理する場合に参照される送信データ管理テーブル111の構成例を示す図である。 両面6ページ(一枚滞留)のジョブを処理する場合に参照される送信データ管理テーブル111の構成例を示す図である。 2ページの送信データが登録されている状態における線形リストを示す図である。 4ページの送信データが登録されている状態における線形リストを示す図である。 6ページの送信データが登録されている状態における線形リストを示す図である。 CPU1501が、上記プリントコマンドを参照して図3,4に示すような線形リスト(シート管理テーブル群)を生成する処理のフローチャートである。 CPU1501が、上記プリントコマンドを参照して図7,8,9に示すような線形リスト(シート管理テーブル群)を生成する処理のフローチャートである。 CPU1501が、プリンタ7に印刷対象のデータを送信する処理のフローチャートである。 CPU1501が、プリンタ7との通信処理を行い、ステータスを監視するための処理のフローチャートである。 二枚滞留交互給紙の両面印刷における、印刷順序とページの関係を示した表である。 コンピュータ1の基本構成を示すブロック図である。

Claims (12)

  1. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータであって、
    送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加する手段を備えることを特徴とするコンピュータ。
  2. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータであって、
    2枚滞留で両面印刷可能でない場合には、末尾に裏ページを追加し、末尾に表ページを追加する手段と、
    2枚滞留で両面印刷可能である場合には、送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加する手段を備えることを特徴とするコンピュータ。
  3. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータにおける情報処理方法であって、
    送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップを備えることを特徴とするコンピュータにおける情報処理方法。
  4. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータにおける情報処理方法であって、
    2枚滞留で両面印刷可能でない場合には、末尾に裏ページを追加し、末尾に表ページを追加するステップと、
    2枚滞留で両面印刷可能である場合には、送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップとを備えることを特徴とするコンピュータにおける情報処理方法。
  5. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータで実行されるプログラムあって、
    送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップをコンピュータに実行させることを特徴とするプログラム。
  6. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータで実行されるプログラムであって、
    2枚滞留で両面印刷可能でない場合には、末尾に裏ページを追加し、末尾に表ページを追加するステップと、
    2枚滞留で両面印刷可能である場合には、送信データ管理テーブルに空きテーブルがない場合、末尾に裏ページを追加し、末尾に空きテーブルを追加し、末尾に表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、空きテーブルを裏ページに変更し、末尾に空きテーブルを追加し、末尾に表ページを追加するステップとをコンピュータに実行させることを特徴とするプログラム。
  7. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータであって、
    送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第2のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加する手段を備えることを特徴とするコンピュータ。
  8. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータであって、
    2枚滞留で両面印刷可能でない場合には、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加する手段と、
    2枚滞留で両面印刷可能である場合には、送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第2のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第3のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第3のシートの表ページを追加する手段と
    を備えることを特徴とするコンピュータ。
  9. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータが行う情報処理方法であって、
    送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第2のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加するステップを備えることを特徴とする情報処理方法。
  10. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータが行う情報処理方法であって、
    2枚滞留で両面印刷可能でない場合には、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加するステップと、
    2枚滞留で両面印刷可能である場合には、送信データ管理テーブルの送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第2のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第3のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第3のシートの表ページを追加するステップと
    を備えることを特徴とする情報処理方法。
  11. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータで実行されるプログラムであって、
    送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第2のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加するステップをコンピュータに実行させることを特徴とするプログラム。
  12. 両面印刷が可能な印刷装置に出力される送信データを生成するコンピュータで実行されるプログラムであって、
    2枚滞留で両面印刷可能でない場合には、送信データ管理テーブルの末尾に第1のシートの裏ページを追加し、送信データ管理テーブルの末尾に第1のシートの表ページを追加するステップと、
    2枚滞留で両面印刷可能である場合には、送信データ管理テーブルに空きテーブルがない場合、送信データ管理テーブルの末尾に第2のシートの裏ページを追加し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第2のシートの表ページを追加し、送信データ管理テーブルに空きテーブルがある場合、送信データ管理テーブルの空きテーブルを第3のシートの裏ページに変更し、送信データ管理テーブルの末尾に空きテーブルを追加し、送信データ管理テーブルの末尾に第3のシートの表ページを追加するステップとをコンピュータに実行させることを特徴とするプログラム。
JP2004149390A 2004-05-19 2004-05-19 コンピュータ、情報処理方法、プログラム Expired - Fee Related JP4250560B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004149390A JP4250560B2 (ja) 2004-05-19 2004-05-19 コンピュータ、情報処理方法、プログラム
US11/131,196 US7595900B2 (en) 2004-05-19 2005-05-18 Information processing method and information processing apparatus
KR1020050041700A KR100734978B1 (ko) 2004-05-19 2005-05-18 정보 처리 방법 및 정보 처리 장치
CNB2005100727708A CN100375004C (zh) 2004-05-19 2005-05-19 信息处理方法、信息处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004149390A JP4250560B2 (ja) 2004-05-19 2004-05-19 コンピュータ、情報処理方法、プログラム

Publications (3)

Publication Number Publication Date
JP2005332167A JP2005332167A (ja) 2005-12-02
JP2005332167A5 JP2005332167A5 (ja) 2007-06-28
JP4250560B2 true JP4250560B2 (ja) 2009-04-08

Family

ID=35448544

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004149390A Expired - Fee Related JP4250560B2 (ja) 2004-05-19 2004-05-19 コンピュータ、情報処理方法、プログラム

Country Status (4)

Country Link
US (1) US7595900B2 (ja)
JP (1) JP4250560B2 (ja)
KR (1) KR100734978B1 (ja)
CN (1) CN100375004C (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006018748A (ja) * 2004-07-05 2006-01-19 Canon Inc 情報処理装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP2007183894A (ja) * 2005-12-06 2007-07-19 Canon Inc 情報処理装置、印刷制御方法、記憶媒体およびプログラム
JP4736927B2 (ja) * 2006-04-21 2011-07-27 ブラザー工業株式会社 情報処理装置、画像形成システム、およびデバイスドライバのプログラム
JP2008030287A (ja) * 2006-07-28 2008-02-14 Fuji Xerox Co Ltd 印刷装置、印刷システム及びプログラム
KR101269465B1 (ko) * 2006-11-07 2013-05-30 삼성전자주식회사 화상형성장치 및 그 인쇄오류 방지방법
JP2008310676A (ja) * 2007-06-15 2008-12-25 Canon Inc 情報処理装置、印刷装置、情報処理システム、印刷処理方法、記憶媒体、プログラム
JP2009088796A (ja) * 2007-09-28 2009-04-23 Konica Minolta Business Technologies Inc 画像形成装置
JP4805992B2 (ja) * 2008-09-30 2011-11-02 株式会社沖データ 画像処理装置
US20130141757A1 (en) * 2011-12-06 2013-06-06 Alan Jay Swire Printer driver caching method
JP6904204B2 (ja) * 2017-09-28 2021-07-14 ブラザー工業株式会社 プリンタドライバおよび、情報処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58104561A (ja) * 1981-12-17 1983-06-22 Canon Inc 両面記録装置
JP3208851B2 (ja) 1992-07-09 2001-09-17 富士ゼロックス株式会社 プリンタ制御装置
JPH09127746A (ja) * 1995-10-30 1997-05-16 Canon Inc 複合装置
JP3495834B2 (ja) 1996-01-11 2004-02-09 キヤノン株式会社 情報処理装置および印刷装置および印刷システムおよび情報処理装置のデータ処理方法および印刷システムのデータ処理方法
US6611347B1 (en) * 1996-12-20 2003-08-26 Canon Kabushiki Kaisha Print control apparatus, print control method, storage medium, and computer readable program performing a form overlay process
JP3278394B2 (ja) * 1998-02-25 2002-04-30 キヤノン株式会社 情報処理装置、情報処理方法、及び、記憶媒体
KR100547100B1 (ko) 1998-11-17 2006-05-25 삼성전자주식회사 인쇄데이터의 양면 인쇄방법_
US6631007B1 (en) * 1999-12-14 2003-10-07 International Business Machines Corporation System and method for presenting multiple sheetlets on a medium surface while presenting multiple logical pages within the sheetlets
JP4387553B2 (ja) * 2000-04-27 2009-12-16 キヤノン株式会社 印刷制御装置及び方法と情報処理装置及び方法

Also Published As

Publication number Publication date
KR100734978B1 (ko) 2007-07-04
JP2005332167A (ja) 2005-12-02
CN1700166A (zh) 2005-11-23
US20050270552A1 (en) 2005-12-08
US7595900B2 (en) 2009-09-29
CN100375004C (zh) 2008-03-12
KR20060048004A (ko) 2006-05-18

Similar Documents

Publication Publication Date Title
KR100734978B1 (ko) 정보 처리 방법 및 정보 처리 장치
US7812996B2 (en) Information processing apparatus and method for deleting blank pages while maintaining page order
US20060028678A1 (en) Image processing apparatus and its control method
JP5847560B2 (ja) 印刷制御装置、その制御方法、及びプログラム
JPH08278728A (ja) 画像形成装置
JP2006221609A (ja) 印刷装置、印刷システム、ジョブ処理方法ならびにプログラム、記憶媒体
JP2011141885A (ja) 印刷システム、制御方法及びプログラム
JP4804555B2 (ja) 情報処理装置及びその制御方法、並びにコンピュータプログラム
JPH09123562A (ja) 画像処理装置
US5923437A (en) Image processing method and apparatus having automatic response to presence of detachable storage medium
JP2005202912A (ja) 印刷システム及びその制御方法、印刷方法、ホスト装置、プリンタ
JP2007156903A (ja) 印刷システム及びその制御方法、コンピュータプログラム、記憶媒体
JP2000137798A (ja) 画像入出力装置、画像入出力方法および画像処理システム
US6989908B1 (en) Image input and output method, image input and output apparatus, and image processing system
JP2007055024A (ja) 印刷装置
JP2002019198A (ja) 画像形成装置
JP3010559B2 (ja) 印刷システムならびに印刷制御方法および装置
JP3380598B2 (ja) 両面印刷制御方法および印刷制御装置
JP2001105668A (ja) 画像出力装置及びその制御方法
JP2005088375A (ja) 印刷装置
JP3216132B2 (ja) 画像形成装置
JP2004038363A (ja) プリンタ駆動制御用プログラムおよびコンピュータ読み取り可能な記録媒体
JP5288329B2 (ja) 印刷装置および印刷システムおよび印刷制御プログラム
JPH11191820A (ja) 画像入出力方法、画像入出力装置及び画像処理システム
JP2004216905A (ja) 画像形成装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070514

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070514

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080818

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081009

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090113

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090119

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

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4250560

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140123

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees