(57)【特許請求の範囲】
【請求項１】
ホストから印字データまたは行先頭移動コマンドを受信する受信手段と、
行の印字位置を記憶する印字位置記憶手段と、
行の印字すべきデータを記憶する行バッファ記憶手段と、
前記受信手段により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する印字データ展開手段と、
前記受信手段により行先頭移動コマンドを受信した場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新する行先頭更新手段と、
を備えることを特徴とする印刷装置。
【請求項２】
ホストから印字データまたは行先頭移動コマンドを受信する受信手段と、
行の印字位置を記憶する印字位置記憶手段と、
行の印字すべきデータを記憶する行バッファ記憶手段と、
前記受信手段により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する印字データ展開手段と、を備え、
前記受信手段により第１の行先頭移動コマンドを受信した場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新し、
前記受信手段により第２の行先頭移動コマンドを受信した場合は、前記行バッファ記憶手段に記憶されたデータを印刷してからクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新するよう、
前記行先頭移動コマンドが、前記第１の行先頭移動コマンドか、前記第２の行先頭移動コマンドかを区別する手段を備えることを特徴とする印刷装置。
【請求項３】
行の印字位置を記憶する印字位置記憶手段と、行の印字すべきデータを記憶する行バッファ記憶手段とを備えた印刷装置の制御方法であって、
ホストから印字データまたは行先頭移動コマンドを受信する受信工程と、
前記受信工程により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する展開工程と、
前記受信工程により行先頭移動コマンドを受信した場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新する行先頭更新工程と、
を備えることを特徴とする印刷装置の制御方法。
【請求項４】
行の印字位置を記憶する印字位置記憶手段と、行の印字すべきデータを記憶する行バッファ記憶手段とを備えた印刷装置の制御方法であって、
ホストから印字データまたは行先頭移動コマンドを受信する受信工程と、
前記受信工程により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する印字データ展開工程と、
前記受信工程により行先頭移動コマンドを受信した場合は、このコマンドが第１の行先頭移動コマンドか、前記第２の行先頭移動コマンドかを区別する工程と、
当該区別工程により、前記受信した行先頭移動コマンドが、第１の行先頭移動コマンドの場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新し、
前記区別工程により、前記受信した行先頭移動コマンドが、前記第２の行先頭移動コマンドの場合は、前記行バッファ記憶手段に記憶されたデータを印刷してからクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新する
ことを特徴とする印刷装置の制御方法。
【請求項５】
行の印字位置を記憶する印字位置記憶手段と、行の印字すべきデータを記憶する行バッファ記憶手段とを備えた印刷装置を制御するプログラムを記録した情報記録媒体であって、
ホストから印字データまたは行先頭移動コマンドを受信する受信手順と、
前記受信手順により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する展開手順と、
前記受信手順により行先頭移動コマンドを受信した場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新する行先頭更新手順と、
を含む処理を実行させるプログラムを記録した情報記録媒体。
【請求項６】
行の印字位置を記憶する印字位置記憶手段と、行の印字すべきデータを記憶する行バッファ記憶手段とを備えた印刷装置を制御するプログラムを記録した情報記録媒体であって、
ホストから印字データまたは行先頭移動コマンドを受信する受信手順と、
前記受信手順により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する印字データ展開手順と、
前記受信手順により行先頭移動コマンドを受信した場合は、このコマンドが第１の行先頭移動コマンドか、前記第２の行先頭移動コマンドかを区別する手順と、
当該区別手順により、前記受信した行先頭移動コマンドが、第１の行先頭移動コマンドの場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新し、
前記区別手順により、前記受信した行先頭移動コマンドが、前記第２の行先頭移動コマンドの場合は、前記行バッファ記憶手段に記憶されたデータを印刷してからクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新する
処理を実行させるプログラムを記録した情報記録媒体。
【請求項７】
アプリケーションから印刷コマンドを受信する受信手段と、
前記受信手段により受信された印刷コマンドをプリンタ印字指令に変換する変換手段と、
前記変換手段により変換されたプリンタ印字指令が行の先頭でのみ有効なものか否か判断する判断手段と、
前記判断手段による判断に基づいて、該プリンタ印字指令が行の先頭でのみ有効な場合には印字位置を行の先頭へ移動するプリンタ印字指令を該プリンタ印字指令に挿入する挿入手段と、
該プリンタ印字指令をプリンタへ送信する送信手段とを備えることを特徴とするプリンタの制御装置。
【請求項８】
アプリケーションから印刷コマンドを受信する受信工程と、
前記受信された印刷コマンドをプリンタ印字指令に変換する変換工程と、
前記変換されたプリンタ印字指令が行の先頭でのみ有効なものか否か判断する判断工程と、
前記判断に基づいて、該プリンタ印字指令が行の先頭でのみ有効な場合には印字位置を行の先頭へ移動するプリンタ印字指令を該プリンタ印字指令に挿入する挿入工程と、
該プリンタ印字指令をプリンタへ送信する送信工程とを
備えることを特徴とするプリンタの制御装置の制御方法。
【請求項９】
アプリケーションから印刷コマンドを受信する受信手順と、
前記受信された印刷コマンドをプリンタ印字指令に変換する変換手順と、
前記変換されたプリンタ印字指令が行の先頭でのみ有効なものか否か判断する判断手順と、
前記判断に基づいて、該プリンタ印字指令が行の先頭でのみ有効な場合には印字位置を行の先頭へ移動するプリンタ印字指令を該プリンタ印字指令に挿入する挿入手順と、
該プリンタ印字指令をプリンタへ送信する送信手順とを
含む処理を実行させるプログラムを記録した情報記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷装置、印刷装置の制御方法、および、情報記録媒体に関し、特に、現在の印字モードや改行量などの設定値を保持したまま、無駄な改行動作を行わずに行の先頭へ印字位置を移動させることができる印刷装置、印字装置の制御方法、および、これを実現する情報記録媒体に関する。
【０００２】
【従来の技術】
プリンタなどの印刷装置を駆動するためのドライバについては、近年標準化が進み、種々のプリンタについて同じような印刷イメージが得られるようになってきている。
【０００３】
このような標準の一つがＯＰＯＳ（ＯＬＥ ｆｏｒ Ｒｅｔａｉｌ ＰＯＳ）である。これは、Ｗｉｎｄｏｗｓが持つ中核機能の一つであるＯＬＥを利用して、パーソナルコンピュータ上にＰＯＳアプリケーションを作るための標準である。ＯＰＯＳは、どのようなプリンタに対しても同じコマンドが使用できるように設計されている。
【０００４】
一方、プリンタによっては、歴史的な理由から、現在の印字位置が行の先頭になければ実行できないコマンドが存在するものがある。例えば、行の先頭でなければ以下のようなコマンドが実行できないプリンタが存在する。
【０００５】
位置揃え（右寄せ、左寄せ、中央揃え）の設定。
【０００６】
左マージンや印字領域幅の設定。
【０００７】
用紙のカット。
【０００８】
しかし、ＯＰＯＳの仕様では、「行の先頭」か否かを区別することは必要ないこととなっている。したがって、行の先頭か否かを考慮せずに、上記のコマンドを実行するようなアプリケーションが作成されることになる。
【０００９】
したがって、上記のコマンドを実行するように指示が発せられた場合に「行の先頭」に印字位置を移動するための処理を行う部分が必要になる。これを担うのがプリンタドライバと呼ばれるソフトウェアである。プリンタドライバは使用するプリンタのそれぞれについて、そのプリンタとともにメーカー等が提供するソフトウェアである。
【００１０】
ユーザがアプリケーションに対して印刷の指令を出すと、アプリケーションはＯＰＯＳ仕様に基づいたコマンドをプリンタドライバに送付する。プリンタドライバは、ＯＰＯＳ仕様のコマンドを自分が担当するプリンタの印字指令列に変換して、プリンタに送信する。プリンタは送信された指令列に従って印字を行う。
【００１１】
このように、各社各様のプリンタがある状況であっても、これらの相違をプリンタドライバが吸収するため、アプリケーション開発者は、ＯＰＯＳ仕様にしたがったコマンドを出力するアプリケーションを作成すればよい。
【００１２】
したがって、プリンタドライバが、送られたきたＯＰＯＳ仕様のコマンドをすべて解釈し、処理して、プリンタの現在の状況を追跡できるようにすれば、「行の先頭」か否かは判明するはずである。
【００１３】
【発明が解決しようとする課題】
しかし、実際にはこのようなことを行うのは困難である。ＯＰＯＳ仕様にはＤｉｒｅｃｔＩＯ（直接入出力）というメソッド（関数）がある。このメソッドでは、各プリンタ固有のあらゆるパターンのデータを指定することができる。プリンタドライバが、直接入出力メソッドのデータを含むアプリケーションから送られた命令をすべて完全に解析し、プリンタの状況を追跡することは不可能ではないが、パフォーマンスが大きく低下するという問題が生ずる。
【００１４】
またＯＰＯＳ仕様が採用されているＷｉｎｄｏｗｓなどのオペレーティングシステムでは、複数のプロセスが同時に動作する。このような場合には、他のプロセスが送信したデータを解析することができないので、結局プリンタの状況を追跡することができなくなる。
【００１５】
さらに、ＯＰＯＳ仕様上は、プリンタドライバがプリンタへ送信したデータが正常にプリンタで処理されたか否かを知る手段がないため、プリンタドライバはデータ送信の完了をもってプリンタがそのデータを完全に処理できたものとみなす。したがって、上記のような手法でプリンタの状態を追跡できたとしても、それは結局のところプリンタの状態を予想しているすぎない。
【００１６】
このため、上記のように行の先頭でしか使用できないコマンドを実行するためには、プリンタの印字位置を強制的に行の先頭に移動することができるようにする必要がある。
【００１７】
また、１ページ全体をプリンタ内のバッファに展開して印刷するページモードでは、バッファに展開されたデータの一部または全部を消去するコマンドが用意されているのに対し、１行ずつバッファに展開して印刷するスタンダードモードでは、従来、展開されたデータを消去するコマンドが用意されていなかったため、印刷アプリケーションを作成するときに不便な場合が多かった。
【００１８】
一方、印字改行というコマンドを実行すれば、強制的に印字位置を次の行の先頭に移動させることができるが、この場合、その行のデータが不要な場合であっても印字がされてしまうし、印字位置が既に行の先頭になっている場合であっても改行がされてしまうため、紙が１行分無駄になってしまう、という問題がある。
【００１９】
このほか、プリンタの初期化というコマンドを使用すれば、強制的に印字位置を行の先頭に移動させることができるが、これでは、プリンタに関する種々の設定もリセットされてしまうため、印刷アプリケーションを作成するときに不便な場合が多かった。
【００２０】
本発明は、以上のような問題を解決するためになされたもので、現在の印字モードや改行量などの設定値を保持したまま、無駄な改行動作を行わずに行の先頭へ印字位置を移動させることができる印刷装置、印刷装置の制御方法、および、これらを実現する情報記録媒体を提供することを目的とする。
【００２１】
【課題を解決するための手段】
以上の目的を達成するための発明は下記の発明である。
【００２２】
（１）ホストから印字データまたは行先頭移動コマンドを受信する受信手段と、
行の印字位置を記憶する印字位置記憶手段と、
行の印字すべきデータを記憶する行バッファ記憶手段と、
前記受信手段により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する印字データ展開手段と、
前記受信手段により行先頭移動コマンドを受信した場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新する行先頭更新手段と、
を備えることを特徴とする印刷装置である。
【００２３】
本発明により、行バッファをクリアして印字位置を行の先頭に強制的に移動することができる印刷装置を提供することができる。
【００２４】
（２）ホストから印字データまたは行先頭移動コマンドを受信する受信手段と、
行の印字位置を記憶する印字位置記憶手段と、
行の印字すべきデータを記憶する行バッファ記憶手段と、
前記受信手段により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する印字データ展開手段と、を備え、
前記受信手段により第１の行先頭移動コマンドを受信した場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新し、
前記受信手段により第２の行先頭移動コマンドを受信した場合は、前記行バッファ記憶手段に記憶されたデータを印刷してからクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新するよう、
前記行先頭移動コマンドが、前記第１の行先頭移動コマンドか、前記第２の行先頭移動コマンドかを区別する手段を備えたことを特徴とする印刷装置である。
【００２６】
（３）行の印字位置を記憶する印字位置記憶手段と、行の印字すべきデータを記憶する行バッファ記憶手段とを備えた印刷装置の制御方法であって、
ホストから印字データまたは行先頭移動コマンドを受信する受信工程と、
前記受信工程により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する展開工程と、
前記受信工程により行先頭移動コマンドを受信した場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新する行先頭更新工程と、
を備えることを特徴とする印刷装置の制御方法である。
【００２７】
（４）行の印字位置を記憶する印字位置記憶手段と、行の印字すべきデータを記憶する行バッファ記憶手段とを備えた印刷装置の制御方法であって、
ホストから印字データまたは行先頭移動コマンドを受信する受信工程と、
前記受信工程により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する印字データ展開工程と、
前記受信工程により行先頭移動コマンドを受信した場合は、このコマンドが第１の行先頭移動コマンドか、前記第２の行先頭移動コマンドかを区別する工程と、
当該区別工程により、前記受信した行先頭移動コマンドが、第１の行先頭移動コマンドの場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新し、
前記区別工程により、前記受信した行先頭移動コマンドが、前記第２の行先頭移動コマンドの場合は、前記行バッファ記憶手段に記憶されたデータを印刷してからクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新する
ことを特徴とする印刷装置の制御方法である。
【００２８】
（５）行の印字位置を記憶する印字位置記憶手段と、行の印字すべきデータを記憶する行バッファ記憶手段とを備えた印刷装置を制御するプログラムを記録した情報記録媒体であって、
ホストから印字データまたは行先頭移動コマンドを受信する受信手順と、
前記受信手順により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する展開手順と、
前記受信手順により行先頭移動コマンドを受信した場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新する行先頭更新手順と、
を含む処理を実行させるプログラムを記録した情報記録媒体である。
【００２９】
（６）行の印字位置を記憶する印字位置記憶手段と、行の印字すべきデータを記憶する行バッファ記憶手段とを備えた印刷装置を制御するプログラムを記録した情報記録媒体であって、
ホストから印字データまたは行先頭移動コマンドを受信する受信手順と、
前記受信手順により印字データを受信した場合は、該印字データを前記行バッファ記憶手段に展開し、前記印字位置記憶手段に記憶された印字位置を次の場所に更新する印字データ展開手順と、
前記受信手順により行先頭移動コマンドを受信した場合は、このコマンドが第１の行先頭移動コマンドか、前記第２の行先頭移動コマンドかを区別する手順と、
当該区別手順により、前記受信した行先頭移動コマンドが、第１の行先頭移動コマンドの場合は、前記行バッファ記憶手段に記憶されたデータを印刷せずにクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新し、
前記区別手順により、前記受信した行先頭移動コマンドが、前記第２の行先頭移動コマンドの場合は、前記行バッファ記憶手段に記憶されたデータを印刷してからクリアし、前記印字位置記憶手段に記憶された印字位置を行の先頭に更新する
処理を実行させるプログラムを記録した情報記録媒体である。
【００３０】
（７）アプリケーションから印刷コマンドを受信する受信手段と、
前記受信手段により受信された印刷コマンドをプリンタ印字指令に変換する変換手段と、
前記変換手段により変換されたプリンタ印字指令が行の先頭でのみ有効なものか否か判断する判断手段と、
前記判断手段による判断に基づいて、該プリンタ印字指令が行の先頭でのみ有効な場合には印字位置を行の先頭へ移動するプリンタ印字指令を該プリンタ印字指令に挿入する挿入手段と、
該プリンタ印字指令をプリンタへ送信する送信手段とを備えることを特徴とするプリンタの制御装置である。
【００３１】
本発明により、印字位置を行の先頭に強制的に移動することができる印刷装置を制御するためのプリンタドライバを備える装置を提供することができる。
【００３２】
（８）アプリケーションから印刷コマンドを受信する受信工程と、
前記受信された印刷コマンドをプリンタ印字指令に変換する変換工程と、
前記変換されたプリンタ印字指令が行の先頭でのみ有効なものか否か判断する判断工程と、
前記判断に基づいて、該プリンタ印字指令が行の先頭でのみ有効な場合には印字位置を行の先頭へ移動するプリンタ印字指令を該プリンタ印字指令に挿入する挿入工程と、
該プリンタ印字指令をプリンタへ送信する送信工程とを
備えることを特徴とするプリンタの制御装置の制御方法である。
【００３３】
（９）アプリケーションから印刷コマンドを受信する受信手順と、
前記受信された印刷コマンドをプリンタ印字指令に変換する変換手順と、
前記変換されたプリンタ印字指令が行の先頭でのみ有効なものか否か判断する判断手順と、
前記判断に基づいて、該プリンタ印字指令が行の先頭でのみ有効な場合には印字位置を行の先頭へ移動するプリンタ印字指令を該プリンタ印字指令に挿入する挿入手順と、
該プリンタ印字指令をプリンタへ送信する送信手順とを
含む処理を実行させるプログラムを記録した情報記録媒体である。
【００３４】
【発明の実施の形態】
以下に本発明の一実施形態を説明する。なお、この実施形態は、例示のためのものであり、本発明を制限するものではない。したがって、各要素を均等なものに適宜置換することができ、これらも本発明の範囲に含まれる。
【００３５】
図１は、本発明の実施形態の例であるプリンタ１００の基本的な構成を示す図である。以下説明する。
【００３６】
インターフェース１０１は、ホストコンピュータから送信される印字情報を受信する。
【００３７】
受信した印字情報にしたがって、ＣＰＵ １０２は、フォントＲＯＭ １０３からフォント情報を読み出し、どのドットに点を打ち、どのドットは打たないか等の２値情報を行バッファ１０４に展開する。
【００３８】
ＣＰＵ １０２は、行バッファ１０４がいっぱいになった場合や、印字改行指令、印字復帰指令などの行送り指令を受信した場合などに印字ヘッド１０５を駆動して、行バッファ１０４に記憶された情報に基づいて紙などへの印字を行う。
【００３９】
一方、印字情報に各種のコマンドが含まれる場合には、これらのコマンドに対応する処理をＣＰＵ １０２が実行する。
【００４０】
ＣＰＵ １０２の動作はプログラムＲＯＭ １０６に記憶されたプログラムに従って行われる。プログラムＲＯＭ １０６を消去書込可能なＲＯＭによって実現すれば、このプログラムの更新や修正が容易になる。プリンタに導入するプログラム自体は、フロッピーディスクやハードディスクなどの情報記録媒体に記録することが可能である。
【００４１】
また、プリンタの現在の設定を記憶するためのＲＡＭなどの記憶装置１０７が備えられている。これには、プリンタの現在の印字位置１０８、印字モード、改行量、定義データ等の各種設定値が記憶される。
【００４２】
本実施例では、印字位置が行の先頭にあるとは、以下の２条件を満たす場合をいう。またこの場合を、行バッファ１０４が空である、ともいう。
【００４３】
（１）ＲＡＭ １０７に記憶された現在の印字位置１０８が行バッファ１０４の先頭を指している。
【００４４】
（２）行バッファ１０４がクリアされており、印字データが展開されていない。
【００４５】
本発明では、印字位置を行の先頭に移動するためにホストが送ることができるコマンドとして、以下の２種類のコマンドを採用する。
【００４６】
（ａ）ＧＳ Ｔ ０ もしくは ＧＳ Ｔ '０'
（ｂ）ＧＳ Ｔ １ もしくは ＧＳ Ｔ '１'
これらを１６進数で表記すると、それぞれ、以下のようになる。
【００４７】
（ａ）１ＤＨ ５４Ｈ ００Ｈ もしくは １ＤＨ ５４Ｈ ３０Ｈ
（ｂ）１ＤＨ ５４Ｈ ０１Ｈ もしくは １ＤＨ ５４Ｈ ３１Ｈ
これらはそれぞれ、以下のような動作をプリンタに対して指示する。この動作の様子を図２のフローチャートに示す。
【００４８】
（１）印字位置が行の先頭であるか否かを調べる（Ｓ２０１）。
【００４９】
（２）行の先頭である場合には、本コマンドの処理を終了する。
【００５０】
（３）行の先頭でない場合には、コマンドの種類を区別する（Ｓ２０３）。
【００５１】
（４）ＧＳ Ｔ ０ もしくは ＧＳ Ｔ '０'の場合には、行バッファ１０４をクリアし（Ｓ２０４）、印字位置１０８を行バッファ１０４の先頭に設定して（Ｓ２０５）、本コマンドの処理を終了する。
【００５２】
（５）ＧＳ Ｔ １ もしくは ＧＳ Ｔ '１'の場合には、行バッファ１０４の内容を印字し（Ｓ２０６）、行バッファ１０４をクリアし（Ｓ２０７）、印字位置１０８を行バッファ１０４の先頭に設定して（Ｓ２０８）、本コマンドの処理を終了する。
【００５３】
これらの処理が行われる際に、ＲＡＭ １０７に記憶されている印字モード、改行量、定義データなどの各種パラメータの値は変更しない点が、本発明の特徴である。
【００５４】
ＲＡＭ １０７に記憶されている各種パラメータの値を維持したまま印字位置を行の先頭へ移動するコマンドとして、従来、印字改行（ＬＦ）および印字復帰（ＣＲ）というコマンドが採用されていたが、本発明とは、以下のように動作が異なる。
【００５５】
ＬＦでは、行バッファ１０４および印字位置１０８の状態にかかわらず、行バッファ１０４の内容を印字してから改行が行われる。したがって、行バッファ１０４に展開されたデータが不要な場合であってもこれが印刷されてしまうし、行バッファ１０４が空の場合であっても必ず１行分の紙送りがされてしまうため、用紙に無駄が生ずる。
【００５６】
ＣＲでは、行バッファ１０４および印字位置１０８の状態にかかわらず、行バッファ１０４の内容を印字してから復帰が行われる。したがって、行バッファ１０４に展開されたデータが不要な場合であってもこれが印刷されてしまうため、次の印字が重ね打ちになってしまう。
【００５７】
本発明のコマンド構成では、印字位置が行の先頭にある場合には、改行動作が行われないので用紙の無駄が生じないし、行バッファ１０４が空でない場合には、これを印字してから行の先頭に移行するか、抹消してから行の先頭に移行するかが選択できるため、ＬＦとＣＲのみが用意されているプリンタに比較して、より細かい制御が可能となる。
【００５８】
一方、本発明に係るプリンタなどの印刷装置を制御するためのプリンタドライバの構成について以下に説明する。
【００５９】
プリンタドライバは、ＯＰＯＳ仕様のコマンドをアプリケーションから受信し、これをプリンタ制御コマンドに変換してプリンタへ送信する。図３を参照して、プリンタドライバの動作を説明する。
【００６０】
（１）ＯＰＯＳ仕様のコマンドを受信する（Ｓ３０１）。
【００６１】
（２）ＯＰＯＳ仕様のコマンドを、これに対応するプリンタの制御コマンドに変換する（Ｓ３０２）。
【００６２】
（３）プリンタの制御コマンドに行の先頭でなければ実行できないコマンドが含まれるか調べる（Ｓ３０３）。
【００６３】
（４）含まれていない場合は、プリンタの制御コマンドをそのままプリンタに送り（Ｓ３０４）、手順（１）に戻る。
【００６４】
（５）含まれている場合は、そのコマンドの直前に印字位置を行の先頭へ移動するコマンドを挿入する（Ｓ３０５）。
【００６５】
（６）挿入後のコマンドをプリンタへ送信し（Ｓ３０６）、手順（１）に戻る。
【００６６】
プリンタドライバをこのような構成にすれば、プリンタドライバはプリンタの状態を追跡する必要がなく、単に行の先頭でのみ実行可能なコマンドの前に印字位置を強制的に行の先頭に移動するコマンドを付加するだけで、行の先頭でのみ実行可能なコマンドを正常にかつ確実に処理することができる。
【００６７】
【発明の効果】
以上説明したように、本発明に係る印刷装置によれば、プリンタドライバが必要に応じて行の先頭への移動のコマンドが挿入して印刷装置へ送信を行うので、アプリケーションからは印字位置が行の先頭であるか否かにかかわりなく印刷コマンドをプリンタドライバに送信することができる。その一方で、プリンタドライバなどが印刷装置に行の先頭に印刷位置を移動するコマンドを送った場合には、印刷位置を用紙の無駄を発生させず、不要なデータを印刷せずに行の先頭に移動できる。また、この移動の際に印刷装置の各種設定は変更されないため、便利である。
【図面の簡単な説明】
【図１】本発明の実施例である印刷装置の基本構成を示す説明図である。
【図２】本発明に係る印刷装置におけるコマンドの処理を示すフローチャートである。
【図３】本発明に係るプリンタドライバにおけるコマンドの処理を示すフローチャートである。
【符号の説明】
１００     プリンタ
１０１     インターフェース
１０２     ＣＰＵ
１０３     フォントＲＯＭ
１０４     行バッファ
１０５     印字ヘッド
１０６     プログラムＲＯＭ
１０７     ＲＡＭ
【図１】
0003711431.tif 000002
【図２】
0003711431.tif 000003
【図３】
0003711431.tif 000004