(58)【調査した分野】(Int.Cl.,DB名)
前記記憶部に記憶された前記媒体排出方向情報が改行方向に対して逆方向の場合、前記改行コマンドの処理を,改行後の媒体位置が同一媒体内であるか否かを判断し、同一媒体内でない場合には、同一媒体内の改行動作を無効にして同一媒体外の改行量を前記記憶部に保留分の改行量として記憶させ、前記画像形成部に対して前記媒体の排出命令を発行する
ことを特徴とする請求項5に記載の媒体排出方法。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本発明の実施の形態につき詳細に説明する。
実施の形態で説明する各図は、本発明を十分に理解できる程度に、概略的に示してあるに過ぎない。よって、本発明は、図示例のみに限定されるものではない。なお、各図において、共通する構成要素や同様な構成要素については、同一の符号を付し、それらの重複する説明を省略する。
【0011】
[第1実施形態]
≪第1実施形態に係るプリンタの概要≫
実施形態1に係るプリンタは、改行方向(印刷媒体搬送方向)と用紙排出方向(印刷媒体排出方向)が異なる場合(特に、逆方向の場合)において、ページ内最終印字行の印字動作終了後、ページ下端位置まで印字データがないときには、即時に排出動作を実行する。詳細な制御については、後記する。
【0012】
≪第1実施形態に係るプリンタの構成≫
図1A、
図1B、及び
図1Cを参照して、第1実施形態に係るプリンタ1000の構成を説明する。
図1Aは、第1実施形態に係るプリンタ1000の機能構成図である。
図1Bは、第1実施形態にデータ解析部201の機能構成図である。
図1Cは、第1実施形態に係るプリンタ1000の要部(印字ヘッド302周辺)概略縦断面図である。
【0013】
本実施形態では、プリンタ1000が、上位側ホストPC(図示せず)からの印字データ、改行コマンド等のプリンタ制御コマンドにより、行単位で動作を行う水平インサータ方式のシリアルプリンタである場合を想定して説明する。
図1Aに示すように、プリンタ1000は、受信制御部100、受信バッファ101、主制御部200、機構制御部300、スペースモータ301、印字ヘッド302、改行モータ303、主記憶部400、検出回路部500、テーブルセンサ501、ペーパエンドセンサ502、及びメニュー設定記憶部600を備えて構成される。
【0014】
受信制御部100、主制御部200、機構制御部300、及び検出回路部500は、CPU(Central Processing Unit)によるプログラム実行処理や、専用回路等により実現される。また、受信バッファ101、及び主記憶部400は、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)等の記憶媒体として構成され、メニュー設定記憶部600は、フラッシュROM等の記憶媒体として構成される。
【0015】
ここで、プリンタ1000は、
図1Cに示す前方側のフィードローラ503を用いて前方から印字ヘッド302まで順方向に、媒体としての用紙を搬送し、印字ヘッド302を用いて印字後、(1)後方に向かって順方向に用紙を排出することも出来るし、(2)前方に向かって逆方向に用紙を排出することも出来る構成である。プリンタ1000は、用紙を排出することが出来る方向についての情報を、メニュー設定記憶部600に格納しており、用紙の排出方向の指定は、例えば、排出可能な方向の内から1つを、プリンタ1000が備えるメニュー画面(図示せず)を用いて選択され、また、上位側ホストPC(図示せず)から送信されるプリンタ制御コマンドを用いて選択される。
【0016】
(メニュー設定記憶部)
メニュー設定記憶部600には、プリンタ1000の各種設定情報が格納され、例えば、用紙を排出することが出来る方向についての情報が格納される。
【0017】
(主記憶部)
主記憶部400は、累計位置格納バッファ401、改行量保持バッファ402、及び排出方向格納バッファ403で構成される。
累計位置格納バッファ401には、改行動作の実行を保留された改行コマンドが実行されたときの改行到達位置が格納される。
改行量保持バッファ402には、改行動作の実行を保留された改行コマンドの改行量を累積加算した改行量情報が格納される。
排出方向格納バッファ403には、メニュー画面又はプリンタ制御コマンドにより指定される用紙の排出方向を示す排出方向情報が格納される。
【0018】
(受信制御部、受信バッファ)
受信制御部100は、主制御部200の指示に従い、図示しない上位側ホストPCから送信される印字データやプリンタ制御コマンドを受信する。以下では、「印字データ」を「画像データ」と呼ぶ場合がある。
ここで、印字データには、印字を行う文字データの他に、実際の印字動作に先立ち実施されるスペーシングなどの動作を要求する印字関連コマンドが含まれる。また、プリンタ制御コマンドには、プリンタ1000に改行動作を実行させるための改行コマンド、プリンタ1000に排出動作を実行させるための排出コマンドの他に、改行動作時の改行量N(Nは正の整数)を設定するための改行量設定コマンドや、排出動作時の用紙の排出方向を設定するための排出方向設定コマンド等が含まれる。
受信バッファ101は、受信制御部100が受信した印字データやプリンタ制御コマンドが格納される。
【0019】
(印字ヘッド、スペースモータ、改行モータ)
スペースモータ301は、印字ヘッド302を用紙の幅方向(主走査方向)に往復移動させる。
印字ヘッド302は、印字を行うための複数のドットピンを備えて構成され、用紙の幅方向(主走査方向)に移動自在である。印刷ヘッド302は、その往路及び復路において、用紙上にドットパターンを印字する。
改行モータ303は、印字ヘッド302の前方(上流側)に配設されるフィードローラ503(
図1C参照)、及び後方(下流側)に配設されるフィードローラ504(
図1C参照)に接続され、改行動作時や搬出動作時にフィードローラ503,504を時計回り、又は反時計回りに回動させる。これにより、フィードローラ503,504に接触する用紙は、用紙の幅方向(主走査方向)に直交する方向である用紙の長さ方向(副走査方向)に搬送される。
【0020】
(機構制御部)
機構制御部300は、主制御部200から印字命令が指示された場合に、スペースモータ301を駆動し、印字ヘッド302を用紙の幅方向(主走査方向)に往復移動させる。これにより、印刷ヘッド302は、その往路及び復路において、用紙上にドットパターンを印字する。
【0021】
また、機構制御部300は、改行量保持バッファ402に格納される値を指定改行量とする改行命令が主制御部200から指示された場合に、指定された改行量に応じて所定の回転速度で改行モータ303を駆動し、フィードローラ503,504を回転させる。フィードローラ503,504に接触する用紙は、指定された改行量の分だけ順方向に搬送され、これにより、改行動作が完了する。以下では、「順方向」を「印刷媒体搬送方向」と呼ぶ場合がある。
【0022】
また、機構制御部300は、排出方向格納バッファ403に格納される排出方向情報が設定された排出命令が主制御部200から指示された場合に、設定された排出方向情報に従い、所定の方向に改行モータ303を駆動し、フィードローラ503,504を回転させる。フィードローラ503,504に接触する用紙は、設定された方向(順方向又は逆方向)に搬送され、最終的にはプリンタ1000の外部に排出される。これにより、排出動作が完了する。以下では、「逆方向」を「印刷媒体排出方向」と呼ぶ場合がある。
【0023】
(テーブルセンサ、ペーパエンドセンサ)
テーブルセンサ501は、フィードローラ503(
図1C参照)の前方に配設され、用紙の有無を検出する。テーブルセンサ501が検出した情報は、主制御部200に送られ、後記する給紙処理を開始する為の判定に用いられる。
ペーパエンドセンサ502は、フィードローラ503(
図1C参照)と印字ヘッド302との間に配設され、用紙の有無を検出する。ペーパエンドセンサ502が検出した情報は、後記する給紙処理における頭出し動作や、後記する改行コマンド保留制御処理の排出動作で用いられる。
【0024】
(検出回路部)
検出回路部500は、テーブルセンサ501やペーパエンドセンサ502に情報を検出させるための回路であり、検出した情報を主制御部200に送信する。
【0025】
(主制御部)
主制御部200は、給紙口に用紙がセットされたことをテーブルセンサ501が検出した場合に、頭出し位置へ用紙の搬送を開始する。具体的には、主制御部200は、機構制御部300を制御し、用紙が順方向へ搬送されるように改行モータ303の回転を開始させる。これに伴い、フィードローラ503も回転する。
また、主制御部200は、ペーパエンドセンサ502が「用紙無し」を検出している状態から、用紙の先端部を検出することで「用紙有り」に変化するのを監視する。そして、主制御部200は、ペーパエンドセンサ502が「用紙有り」を検出した時点から、印字媒体を所定時間搬送することで、頭出し位置まで用紙を搬送する。
【0026】
また、主制御部200は、図示しない上位側ホストPCから送信される印字データやプリンタ制御コマンドを、受信制御部100を介して受信し、受信したデータを受信バッファ101に格納する。また、主制御部200は、改行コマンド保留制御部202(
図1B参照)を含むデータ解析部201を備える構成であり、データ解析部201は、受信バッファ101に格納された受信データを取り出し、改行コマンド保留制御部202でデータ内容(コマンド)を解析し、コマンド種別に応じて各種コマンド処理を実行する。データ解析部201、改行コマンド保留制御部202の詳細は、プリンタ1000の動作で説明を行うこととし、ここでは簡単な処理の説明に留めることにする。
【0027】
(データ解析部)
データ解析部201は、受信バッファ101に格納された印字データ及びプリンタ制御コマンドを解析する。
また、
図1Bに示すように、データ解析部201は改行コマンド保留制御部202を備えている。
【0028】
(改行コマンド保留制御部)
改行コマンド保留制御部202は、受信バッファ101からデータを取り出し、プリンタ制御コマンドを解析し、コマンド種別に応じてコマンド処理を実行するもので、特に改行コマンドの実行を保留する制御を行う。
なお、詳細については、プリンタ1000の動作で説明する。
以上で、第1実施形態に係るプリンタ1000の構成についての説明を終了する。
【0029】
≪第1実施形態に係るプリンタの動作≫
以下では、第1実施形態に係るプリンタ1000の主な動作について説明する。
ここで、プリンタ1000は、メニュー画面(図示せず)を用いて「用紙排出方向」、及び「頭出し位置」があらかじめ設定されていることにする。
頭出し位置とは、搬送方向に対して用紙先端から印字開始位置までの距離であり、メニュー画面で選択されている位置である。頭出し位置の距離は、メニュー画面を用いた設定により、1/12インチ、2/12インチ、3/12インチ、4/12インチ等の設定が可能であり、ここではプリンタ1000のデフォルトである3/12インチを例に挙げて説明する。プリンタ1000の副走査方向の解像度は、1/360インチであり、前記メニュー画面で3/12インチが選択されている場合、90/360インチとなる。
【0030】
<プリンタの全体処理の流れ>
図2を参照して、プリンタ1000の全体処理の流れを説明する。
図2は、第1実施形態に係るプリンタ1000の全体処理の概略フローチャートである。主制御部200や機構制御部300は、
図2に示すプリンタ1000の全般的な処理の中で実行される。
【0031】
まず、ステップS001の「受信データリード処理&データ解析処理」で、受信データリード処理(
図4参照)や、受信データを解析する改行コマンド保留制御処理(
図5参照)が行われる。
続いて、ステップS002の「印字データ作成処理」で、受信したデータが印字データであった場合に、その印字データのドットパターンを作成する。
【0032】
続いて、ステップS003の「機構制御処理」で、印字データを印字ヘッド302で印字する為に印字ヘッド302を主走査方向へ駆動するスペースモータ301や、改行や排出動作をさせる為に改行モータ303を回転させる処理が行われる。従って、
図3に示す給紙処理はここで行われる。
続いて、ステップS004の「センサ検出処理」で、各種センサの状態を検出する為に、検出回路部500の制御が継続的に実行される。
そして、ステップS001〜ステップS004の処理は、受信バッファ101内のデータがなくなるまで繰り返し実行される。
以上で、全体処理についての説明を終了する。
【0033】
<給紙処理>
プリンタ1000の給紙処理は、用紙の頭出し位置までの搬送と、制御に必要なワークエリアの初期化を行う。
図3を参照して、プリンタ1000の給紙処理の動作について説明する。
図3は、第1実施形態に係るプリンタ1000の給紙処理の概略フローチャートである。
【0034】
給紙口に用紙がセットされたことをテーブルセンサ501が検出した場合、主制御部200は、頭出し位置へ用紙の搬送を開始する(ステップS101)。具体的には、主制御部200は、機構制御部300に命令を送信し、機構制御部300は、用紙が順方向へ搬送されるように改行モータ303の回転を開始させる。これに伴い、フィードローラ503も回転する。
【0035】
続いて、主制御部200は、頭出し位置まで用紙の搬送が完了したか否かを判定する(ステップS102)。具体的には、主制御部200は、検出回路部500を制御して、ペーパエンドセンサ502が「用紙無し」を検出している状態から、用紙の先端部を検出することで「用紙有り」に変化するのを監視する。そして、主制御部200は、ペーパエンドセンサ502が「用紙有り」を検出した時点から、所定時間、印字媒体を順方向に搬送することで、頭出し位置まで用紙の搬送が完了したことを判定する。
【0036】
続いて、データ解析部201の改行コマンド保留制御部202は、プリンタ1000に設定されているページ長管理方法が「仕様1」及び「仕様2」のいずれであるかを判定する(ステップS103)。ページ長管理方法が「仕様1」である場合に処理はステップS104に進み、ページ長管理方法が「仕様2」である場合に給紙処理は終了する。ページ長管理方法については後記する。
【0037】
続いて、ステップS103で仕様1の場合に、主制御部200は、プリンタ1000の制御で必要なワークエリアを初期化する。具体的には、主制御部200は、メニューで設定されている頭出し位置の距離を、用紙先端からの累計移動距離を保持する為の累計位置格納バッファ401に設定する(ステップS104)。ここで、仕様1の場合、累計位置格納バッファに“90”がセットされ、仕様2の場合、“0”がセットされることになる。ページ長管理方法の詳細については後記するが、仕様1の場合、用紙先端をページ長の基準位置として管理する為、給紙動作完了直後の累計位置格納バッファ401には頭出し位置と同値が格納される。一方、仕様2の場合、頭出し位置をページ長の基準位置として管理する為、給紙動作完了直後の累計位置格納バッファ401には“0”が格納される。
給紙処理に続いて、処理はステップS004(
図2参照)に進む。以上で、給紙処理についての説明を終了する。
【0038】
<受信データリード処理>
図4を参照して、プリンタ1000の受信データリード処理の動作について説明する。
図4は、第1実施形態に係るプリンタ1000の受信データリード処理の概略フローチャートである。
【0039】
給紙処理の動作が終了すると、主制御部200のデータ解析部201は、受信制御部100を介してデータを受信したか否かを判定する(ステップS201)。データを受信している場合(ステップS201“Yes”)に処理はステップS202に進み、一方、データを受信していない場合(ステップS201“No”)に受信データリード処理は終了する。
【0040】
ステップS201で“Yes”の場合に、データ解析部201は、受信バッファ101から受信データをリードする(ステップS202)。
ステップS202に続いて、改行コマンド保留制御処理を実行する(ステップS203)。改行コマンド保留制御処理については後記する。改行コマンド保留制御処理後に受信データリード処理は終了する。
受信データリード処理に続いて、処理は改行コマンド保留制御処理(
図5参照)に進む。以上で、受信データリード処理についての説明を終了する。
【0041】
<改行コマンド保留制御処理>
図5を参照して、プリンタ1000の改行コマンド保留制御処理の動作について説明する。
図5は、第1実施形態に係るプリンタ1000の改行コマンド保留制御処理の概略フローチャートである。
【0042】
最初に、主制御部200の改行コマンド保留制御部202は、主記憶部400の排出方向格納バッファ403に格納される排出方向情報を参照し、排出方向が改行方向(順方向)に対して逆方向であるか否かを判定する(ステップS301)。排出方向が改行方向に対して逆方向である場合(ステップS301“Yes”)に処理はステップS302に進み、一方、排出方向が改行方向に対して逆方向でない(順方向である)場合(ステップS301“No”)に処理はステップS312に進む。ステップS312では、従来と同様の各コマンド処理(印字データ、改行コマンド、及び排出コマンドを含む処理)を実行する。
【0043】
ステップS301で“Yes”の場合に、改行コマンド保留制御部202は、受信データが印字データ以外であるか否かを判定する(ステップS302)。受信データが印字データ以外である場合(ステップS302“Yes”)に処理はステップS303に進み、一方、受信データが印字データである場合(ステップS302“No”)に処理はステップS313に進む。
【0044】
ステップS302で“Yes”の場合(受信データが印字データ以外の場合)に、改行コマンド保留制御部202は、さらに受信データが改行コマンドであるか否かを判定する(ステップS303)。受信データが改行コマンドである場合(ステップS303“Yes”)に処理はステップS304に進み、一方、受信データが改行コマンドでない場合(ステップS303“No”)に処理はステップS309に進む。
【0045】
ステップS303で“Yes”の場合(受信データが改行コマンドの場合)に、改行コマンド保留制御部202は、主記憶部400の改行量保持バッファ402に改行コマンドで指定されている改行量を加算し(ステップS304)、続いて、主記憶部400の累計位置格納バッファ401に改行コマンドで指定されている改行量を加算する(ステップS305)。
【0046】
ここで、改行コマンドによる改行量の指定方法は、改行数により指定する方法や絶対量により指定する方法などがある。改行数により指定する方法を例に挙げて説明すると、1つの改行における改行量は、メニュー画面や改行量設定コマンド等で設定されている。多くのプリンタの場合、デフォルトでは6LPI(Line Per Inch)であり、1インチ当たり6回の改行動作を実施できる量となり、本実施形態のプリンタ1000の場合には、プリンタ1000の解像度が1/360インチの為、改行量は60/360インチとなる。なお、改行量設定コマンドで1改行時の改行量Nが指定されている場合には、N/360インチとなる。
【0047】
ステップS305に続いて、ステップS305で加算された累計位置格納バッファ401に格納される値が、ページ長以上であるか否かを判定する(ステップS306)。ここで、ページ長は、プリンタ1000の図示しないメニュー画面により設定可能であるが、上位側ホストPCより印字データ送信前にページ長設定コマンドを送信してくるケースもある。例えば、ページ長の設定が11インチだった場合に、プリンタ1000の解像度が1/360インチの為、ページ長は3960/360インチとなる。
【0048】
ステップS306で“No”の場合(累計位置格納バッファ401の値がページ長未満であった場合)、改行量は保留したまま改行コマンド保留制御処理を終了する。つまり、この時点では改行動作の要求は発生せず、次のデータ解析へ移行する。
一方、ステップS306で“Yes”の場合(累計位置格納バッファ401の値がページ長以上であった場合)、ページ長管理仕様別処理を実行する(ステップS307)。ページ長管理仕様別処理については後記する。ページ長管理仕様別処理後に処理はステップS308に進む。
【0049】
ステップS307に続いて、主制御部200は、機構制御部300に対して用紙排出命令を発行する(ステップS308)。機構制御部300は、主制御部400の排出方向格納バッファ403に保持されている排出方向情報に従い、順方向又は逆方向への用紙排出動作を実行する(
図2のステップS003)。そして、改行コマンド保留制御処理は終了する。
【0050】
ここで、逆方向へ用紙を排出する場合、主制御部200は、排出動作中にペーパエンドセンサ502の状態を監視し、用紙状態に応じて排出動作停止タイミングを制御する。
具体的には、主制御部200は、ペーパエンドセンサ502が「用紙有り」を検出している状態から逆方向へ排出動作を実行した場合、排出動作中に用紙先端部により前記センサの出力が「用紙有り」から「用紙無し」に変化するのを監視し、「用紙無し」を検出した時点から固定量の排出量へ切替え特定位置で排出動作を停止する。
一方、主制御部200は、ペーパエンドセンサ502が「用紙無し」を検出している状態から逆方向へ排出動作を実行した場合、前記センサが用紙下端を認識後、さらに排出動作を継続し、今度は用紙先端部により前記センサの出力が「用紙有り」から「用紙無し」に変化するのを監視し、「用紙無し」を検出した時点から固定量の排出量へ切替え特定位置で排出動作を停止する。
【0051】
ステップS303で“No”の場合(受信データが改行コマンドでない場合)に、改行コマンド保留制御部202は、受信データが排出コマンドであるか否かを判定する(ステップS309)。受信データが排出コマンドである場合(ステップS309“Yes”)に処理はステップS310に進み、一方、受信データが排出コマンドでない場合(ステップS309“No”)に処理はステップS312に進む。
【0052】
ステップS309で“Yes”の場合(受信データが排出コマンドの場合)に、累計位置格納バッファ401の内容をクリアする(ステップS310)。続いて、改行コマンド保留制御部202は、それまで保留していた改行量を実行する必要がない為、改行量保持バッファ402の内容をクリアする(ステップS311)。そして、主制御部200は、機構制御部300に対して用紙排出命令を発行し(ステップS308)、改行コマンド保留制御処理が終了する。
【0053】
一方、ステップS301で“No”の場合(排出方向が順方向の場合)や、ステップS309で“No”の場合(受信データが排出コマンドでない場合)に、主制御部200のデータ解析部201は、各コマンドに対応した従来と同様のコマンド処理(印字データ、改行コマンド、及び排出コマンドを含む処理)を実行する(ステップS312)。そして、処理が終了する。
【0054】
ステップS302で“No”の場合(受信データが印字データである場合)に、データ解析部201の改行コマンド保留制御部202は、改行量保持バッファ402を参照し、保留中の改行データがあるか否かを判定する(ステップS313)。保留中の改行データがある場合(ステップS313“Yes”)に処理はステップS314に進み、一方、保留中の改行データがない場合(ステップS313“No”)に改行コマンド保留制御処理は終了する。
【0055】
ステップS313で“Yes”の場合(保留中の改行データがある場合)、改行コマンド保留制御部202は、印字前に保留中の改行を実行する必要がある為に、機構制御部300に対して、改行量保持バッファ402に格納される値を指定改行量とする改行命令を発行する(ステップS314)。続いて、改行コマンド保留制御部202は、改行量保持バッファ402の内容をクリアする(ステップS315)。そして、改行コマンド保留制御処理は終了する。
【0056】
改行コマンド保留制御処理に続いて、処理は印字データ作成処理(
図2のステップS002)に進む。つまり、保留中の改行データが無かった場合には、即時に印字データ作成処理を実行し、保留中の改行データがあった場合には、改行を行った後に印字データ作成処理を実行する。なお、印字データには、実際の印字動作に先立ち実施されるスペーシングなどの動作を要求する印字関連コマンドが含まれる。印字データ作成処理で作成されたドットパターンは、機構制御部300を介して駆動されるスペースモータ301によって移動する印字ヘッド302により印字が行われる(
図2のステップS003)。以上で、改行コマンド保留制御処理についての説明を終了する。
【0057】
<ページ長管理仕様別処理>
図6及び
図7を参照して、プリンタ1000のページ長管理仕様別処理の動作について説明する。
図6は、ページ長管理方法について説明するための図である。
図7は、第1実施形態に係るプリンタ1000のページ長管理仕様別処理の概略フローチャートである。
【0058】
図6を参照して、ページ長管理方法について説明する。プリンタ1000では、ページ長管理方法に2種類の方法があり、
図6(a)に示すように、用紙の先端位置をページ長の基準とする「仕様1」と、
図6(b)に示すように、頭出し位置をページ長の基準とする「仕様2」との方法である。つまり、仕様1と仕様2とでは、ページ長の基準位置がそれぞれ異なっている。仕様1は、単票帳票用に作成されたデータを単票帳票に印字する場合の為の制御であり、仕様2は、連続紙用に作成されたデータを連続して複数枚の単票帳票に印字する場合に、連続紙へ印字した場合と同様の印字結果が得られるようにする為の制御である。なお、仕様1と仕様2とは、プリンタ1000のメニュー画面で切り替えられる構成となっており、これにより、プリンタ1000のユーザは、ユーザの環境によって仕様1と仕様2との何れか一方を、メニュー画面により選択する。
【0059】
仕様1の場合、累計改行量がページ長以上になった場合、用紙が排出されるのみである。すなわち、ページ長を超えた改行量については無視され、次ページへの持ち越しはない。一方、仕様2の場合、累計改行量がページ長以上になった場合、既に実際の用紙終端を越えているが、次ページに持ち越すことができる。
【0060】
次に、
図7を参照して、プリンタ1000のページ長管理仕様別処理の動作について説明する。
最初に、データ解析部201の改行コマンド保留制御部202は、プリンタ1000に設定されているページ長管理方法が「仕様1」及び「仕様2」のいずれであるかを判定する(ステップS401)。ページ長管理方法が「仕様1」である場合に処理はステップS402に進み、ページ長管理方法が「仕様2」である場合に処理はステップS404に進む。
【0061】
ステップS401で「仕様1」の場合、ページ長を超えた改行量を次ページに持ち越す必要が無い為に、改行コマンド保留制御部202は、改行量保持バッファ402の内容をクリアし(ステップS402)、続いて、累計位置格納バッファ401の内容をクリアする(ステップS403)。そして、ページ長管理仕様別処理は終了する。
【0062】
一方、ステップS401で「仕様2」の場合、ページ長を超えた改行量を次ページに持ち越す必要がある為に、改行コマンド保留制御部202は、累計位置格納バッファ401に格納されている値からページ長を減算する(ステップS404)。これにより、ページ長を超えた分の改行量を次ページの累計位置とする。また、改行コマンド保留制御部202は、ページ長を超えた分の改行量を改行量保持バッファ402へセット(格納)する(ステップS405)。これにより、次ページの印字位置がずれる事がない。そして、ページ長管理仕様別処理は終了する。
ページ長管理仕様別処理に続いて、処理はステップS308(
図5参照)に進む。以上で、第1実施形態に係るプリンタ1000の動作についての説明を終了する。
【0063】
≪第1実施形態に係るプリンタの効果≫
図8及び
図9を参照して、第1実施形態に係るプリンタ1000の効果を従来技術のプリンタと比較しながら説明する。
図8は、排出動作完了までの各動作時間の積み上げ時間を説明するための図である。
図9は、排出動作完了までの各動作における用紙の位置を説明するための図である。
【0064】
図8及び
図9に示すように、第1実施形態に係るプリンタ1000は、従来技術のプリンタで動作していた改行動作2の実行がなくなり、さらには、排出動作についても改行動作2の改行量分だけ排出量が短くなる。そのため、改行動作2の実行時間分、及び排出動作の短縮分だけ印字ジョブ時間が短縮する。
【0065】
なお、第1実施形態に係るプリンタ1000における処理時間(累計位置格納バッファ401や改行量保持バッファ402の更新時間や第1実施形態の動作で説明した種々の判定を行う時間など)は、排出動作の時間に比べれば微々たる時間であるが、処理時間を明示する為に、
図8では記載してある。なお、第1実施形態に係るプリンタ1000における処理時間は、印字動作1,2中に並行して処理を行うことも可能である。
【0066】
以上のように、第1実施形態に係るプリンタ1000は、改行方向と用紙排出方向とが異なる場合(特に、逆方向の場合)に、印字動作を実行するまで改行動作を保留しておき、印字動作を実行する直前で保留していた改行動作を実行することで、排出動作前の無駄な改行動作の実行を無くすことができる。そのため、第1実施形態に係るプリンタ1000は、排出動作完了までの印字ジョブ時間を短縮することができる。
【0067】
[第2実施形態]
≪第2実施形態に係るプリンタの概要≫
第2実施形態に係るプリンタ1000a(図示せず)は、第1実施形態に係るプリンタ1000の機能に加えて、空白ページの制御を行うことができる。これにより、上位側ホストPCが空白ページを抑止する手段を持たない環境である場合や特別な中間ソフトウェアを持たない場合でも、第2実施形態に係るプリンタ1000aは、空白ページの出力を管理することができる。
【0068】
≪第2実施形態に係るプリンタの構成≫
図10を参照して、第2実施形態に係るプリンタ1000a(図示せず)の構成を説明する。
図10は、第2実施形態に係るプリンタ1000aのデータ解析部201aの機能構成図である。
第1実施形態に係るデータ解析部201と、第2実施形態に係るデータ解析部201aとの違いは、空白ページ制御部203が追加されている点である。以下では、第2実施形態に係るプリンタ1000aの構成の内、変更されているデータ解析部201aの機能を中心に説明する。
【0069】
(データ解析部)
データ解析部201aは、改行コマンド保留制御部202、及び空白ページ制御部203を備えて構成される。
空白ページ制御部203は、第1実施形態で説明した累計位置格納バッファ401(
図1参照)、及び改行量保持バッファ402(
図1参照)を用いて、空白ページの出力を制御する。詳細は、第2実施形態に係るプリンタ1000aの動作で説明する。
以上で、第2実施形態に係るプリンタ1000aの構成についての説明を終了する。
【0070】
≪第2実施形態に係るプリンタの動作≫
図3に示す給紙処理、
図4に示す受信データリード処理、及び
図6に示すページ長管理仕様別処理については、第1実施形態と同様なので説明を省略する。以下では、第2実施形態に係るプリンタ1000aの改行コマンド保留制御処理について説明する。
【0071】
<改行コマンド保留制御処理>
図11を参照して、プリンタ1000aの改行コマンド保留制御処理の動作について説明する。
図11は、第2実施形態に係るプリンタ1000aの改行コマンド保留制御処理の概略フローチャートである。
図5に示す第1実施形態に係るプリンタ1000の改行コマンド保留制御処理と、
図11に示す第2実施形態に係るプリンタ1000aの改行コマンド保留制御処理との違いは、ステップS307の前にステップS701が追加されている点、及びステップS307の後にステップS702が追加されている点である。なお、第1実施形態と同様の動作については、
図5と同様のステップを付して説明を省略する。
【0072】
ステップS306で“Yes”の場合(累計位置格納バッファ401の値がページ長以上であった場合)に、空白ページ判定処理を実行する(ステップS701)。空白ページ判定処理については後述する。空白ページ判定処理後に処理はステップS307に進む。
【0073】
ステップS307に続いて、空白ページ制御部203は、ステップS701の空白ページ判定処理で空白ページ出力許可情報をセットされているか否かを判定する(ステップS702)。空白ページ出力許可情報がセットされている場合(ステップS702“Yes”)に処理はステップS308に進み、ステップS308で排出命令を発行し、一方、空白ページ出力許可情報がセットされていない場合(ステップS702“No”)に処理は終了する。これにより、空白ページの出力を抑止する事が可能となる。なお、空白ページが出力されなかった場合(ステップS702“No”と判定さえた場合)、既にステップS307にて次ページに対しての制御が行われているので、そのページが次のページとして扱われる。
【0074】
<空白ページ判定処理>
図12を参照して、プリンタ1000の空白ページ判定処理の動作について説明する。
図12は、第2実施形態に係るプリンタ1000aの空白ページ判定処理の概略フローチャートである。
最初に、空白ページ制御部203は、現在のページに印字データが無かったか否かを判定する(ステップS801)。ステップS801における印字データの有無の判定は、例えば、従来の制御でも使用されている印字データを解析した場合にセットされ、排出動作が行われた場合にリセットされるフラグを用いることが可能である。印字データが無かった場合(ステップS801“Yes”)に処理はステップS802に進む。ここで、印字データが無かった場合(ステップS801“Yes”)は、既にステップS306で累積位置がページ長を超えているので、そのページは空白ページであることが分かる。すなわち、累積位置がページ長を超えている場合、かつ印字データが存在しなかった場合には、そのページは空白ページであることを示す。一方、印字データがあった場合(ステップS801“No”)に処理はステップS804に進む。
【0075】
ステップS801で“Yes”と判定された場合(印字データが無かった場合であり、ページが空白ページである場合)、空白ページ制御部203は、メニュー画面で、空白ページの出力が許可されているか否かを判定する(ステップS802)。空白ページの出力が許可されている場合(ステップS802“Yes”)に処理はステップS803に進み、空白ページの出力が許可されていない場合(ステップS802“No”)に処理はステップS804に進む。
【0076】
ステップS802で“Yes”と判定された場合、空白ページ制御部203は、空白ページ出力許可情報をセットする(ステップS803)。一方、ステップS801で“No”と判定された場合や、ステップS802で“No”と判定された場合に、空白ページ出力許可情報をリセットする(ステップS804)。そして、処理はステップS307(
図11参照)に進む。
以上で、第2実施形態に係るプリンタ1000aの動作についての説明を終了する。
【0077】
≪第2実施形態に係るプリンタの効果≫
以上のように、第2実施形態に係るプリンタ1000aは、第1実施形態での制御方法を利用して、空白ページの制御を行う。そのため、第2実施形態に係るプリンタ1000aは、上位側ホストPCが空白ページを抑止する手段を持たない環境である場合や特別な中間ソフトウェアを持たない場合でも、空白ページの出力を管理することができる。これにより、第2実施形態に係るプリンタ1000aは、空白ページの排出時間、さらには空白ページ排出後の次ページ給紙動作時間を無くすことができるため、1ジョブあたりのスループットが向上する。
【0078】
[変形例]
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。実施形態の変形例を以下に示す。
【0079】
(プリンタ)
第1実施形態及び第2実施形態で説明した制御方法は、第1実施形態で説明したプリンタ1000、及び第2実施形態で説明したプリンタ1000a(図示せず)以外にも、上位側ホストPCからの印字データ、改行コマンド等の制御コマンド等により、行単位で動作を行うシリアルプリンタであり、かつ改行コマンドによる用紙搬送方向と用紙排出方向が逆方向に設定可能な構成を持つプリンタに対して広く適用可能である。
【0080】
(改行コマンド保留制御部)
第1実施形態及び第2実施形態に係る改行コマンド保留制御部202は、ステップS306で累計位置格納バッファ401に格納される値がページ長未満であった場合に、改行量は保留したまま処理を終了する、つまり、この時点では改行動作の要求は発生せず、次のデータ解析へ移行していた。しかしながら、改行コマンド保留制御部202は、累計位置格納バッファ401に格納される値がページ長未満であった場合、かつ、改行量を保留中にホストからのデータ送信が終了、または何らかの原因でホストからのデータ送信が途絶えた場合、タイムアウト時間を監視する事で、改行動作を実行するようにしてもよい。
タイムアウト制御については公知の技術の為、詳細な説明は省略するが、受信データを強制的に出力するプリンタ内にデータを保持し続ける状態を避ける為に用いられている制御方法である。
【0081】
[比較例]
図13を参照して、比較例として本発明の制御を実施しないプリンタの印字ジョブの制御について説明する。
上位側ホストPCは、
図13(a)に示すように、ページ内最終印字データ(印字データ2)を送信した後、ホスト側アプリケーションで設定されているページ長に合わせたページ最終位置近傍までの改行コマンド3〜改行コマンド7を送信し、最後に排出コマンドを送信する場合がある。
図13(a)に示すようなデータシーケンスは、改行動作による用紙吸入方向と排出動作による用紙排出方向とが同一方向に設定されるプリンタの使用環境において、帳票印刷用に合わせて作成されたデータに多く見られる。
【0082】
そして、このプリンタは、
図13(a)に示すようなデータシーケンスを受信すると、
図13(b)に示すように、最終印字行である印字データ2の印字動作終了後、印字する印字データが無いにも関わらず、改行コマンド3〜改行コマンド7による改行動作により改行した後に逆方向へ排出コマンドによる排出動作を行う。そのため、排出完了までに余計に時間がかかるという問題があった。
【0083】
これに対し、第1実施形態に係るプリンタ1000は、改行方向と用紙排出方向とが異なる場合(特に、逆方向の場合)に、印字動作を実行するまで改行動作を保留しておき、印字動作を実行する直前で保留していた改行動作を実行することで、排出動作前の無駄な改行動作の実行を無くすことができる。そのため、第1実施形態に係るプリンタ1000は、排出動作完了までの印字ジョブ時間を短縮することができる。