(57)【特許請求の範囲】
【請求項１】
複数のエミュレーションの切り替えを行うエミュレーション切り替えコマンドにより、印刷処理を行うエミュレーションの起動条件を指定し、前記エミュレーションを起動して印刷を行う印刷装置において、
受信したエミュレーション切り替えコマンドで指定されたエミュレーションの起動条件に合うエミュレーション及びプログラムが存在するかどうかを、起動中のエミュレーションが判断する手段を備え、
前記エミュレーション切り替えコマンドで指定されたエミュレーションの起動条件に合うエミュレーション及びプログラムがなく、前記エミュレーション切り替えコマンドで指定されたエミュレーションの種類と同じエミュレーションが存在する場合には、前記種類の同じエミュレーションのエミュレーション及びプログラムの条件を起動条件とすることを特徴とする印刷装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、レーザプリンタ、インクジェットプリンタなどの印刷装置に関し、特に複数のエミュレーションを切り替えて印刷を行う場合の制御技術に関する。
【０００２】
【従来の技術】
従来では、複数のエミュレーションを切り替えて印刷を行う場合、専用のプリンタドライバを使用してホストから印刷データを転送するに際し、通常、同データの先頭には印刷処理を行うエミュレーションの起動する条件（エミュレーションの種類及びスイッチＮｏ．又は予め登録されたプログラムのＮｏ．）を指定するエミュレーション切り替えコマンドのデータがある。同コマンドにより、まず印刷処理を行うエミュレーションが起動される。現在ホストのＯＳがウィンドウズの場合、あるいはネットワークを使用した環境では、前述の印刷方法は主流となっている。
【０００３】
また、専用のプリンタドライバを使用せず印刷データを転送する場合、同データには前述のコマンドが存在しないので、印刷前に予め操作パネルによりエミュレーションの起動を指定しなければならない。この場合、前述の環境に比べ、複数のユーザ及びエミュレーションを切り替えての印刷には適さない環境とも言える。
【０００４】
【発明が解決しようとする課題】
前者の場合、印刷データを転送する度に、エミュレーション切り替えコマンドにより指定されたエミュレーションの起動条件に従い、エミュレーションの切り替え処理が行われる。このとき、同コマンドにより指定されたエミュレーションの起動条件と、現在起動中のエミュレーションの起動条件が同じ場合でも、エミュレーションの切り替え処理（再起動）を行っていた。
【０００５】
このため、エミュレーションの切り替え処理を行っている間は、受信した印刷データの解析処理は行われないので、後者のように予めエミュレーションを起動した状態で印刷データを転送した場合に比べ、印刷速度が遅くなるという問題があった。
【０００６】
この問題を解決するためには、後者の方法による印刷があるが、これはプリンタの設定をホスト側で専用のプリンタドライバを使用して行うのでなく、プリンタの操作パネルで行うことになるので、複数のユーザが使用する場合、また、複数のエミュレーションを切り替えて印刷処理を行う場合、操作上多くの手間を必要とし、特にネットワークを使用した環境には全く適さないと言える。
【０００７】
また前者の場合、同コマンドで指定されたエミュレーションの起動条件に合うエミュレーション及びプログラムが存在しない場合、エミュレーションを切り替えることができず、現在起動中のエミュレーションが以降の描画データを処理することになる。
【０００８】
このとき、同データはこのエミュレーションのコマンドデータではないので、印刷結果は正常でない。データ量によっては、この正常でない印刷内容が複数枚出力されることもあり、用紙の無駄遣いとなる。また受信バッファにデータが残り、その後に受信するデータを正常に処理できない場合もある。
【０００９】
この問題を解決するためには、データ転送前に印刷する条件に合うエミュレーション、又は予め印刷条件が登録されたプログラムが存在するか、プリンタの設定を確認しなければならず、多くの操作の手間を必要とする。また、データ転送後にジョブキャンセルする方法があるが、これを実行するための操作の手間を必要とする。しかも、これは前述のように正常でない印刷内容が複数枚出力されてから気が付く場合が多く、用紙を無駄に使用することになる。
【００１０】
本発明は、指定されたエミュレーション起動条件に従い、エミュレーションの切り替え処理を行うべきかどうかの判断をすることができる印刷装置を提供することを目的とするものである。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、請求項１記載の発明は、複数のエミュレーションの切り替えを行うエミュレーション切り替えコマンドにより、印刷処理を行うエミュレーションの起動条件を指定し、同エミュレーションを起動して印刷を行う印刷装置において、受信したエミュレーション切り替えコマンドで指定されたエミュレーションの起動条件に合うエミュレーション及びプログラムが存在するかどうかを、起動中のエミュレーションが判断する判断手段を備え、前記エミュレーション切り替えコマンドで指定されたエミュレーションの起動条件に合うエミュレーション及びプログラムがなく、前記エミュレーション切り替えコマンドで指定されたエミュレーションの種類と同じエミュレーションが存在する場合は、前記種類と同じエミュレーションのエミュレーション及びプログラムの条件を起動条件とすることを特徴とする。
【００１５】
請求項１記載の発明では、受信したエミュレーション切り替えコマンドで指定されたエミュレーションの起動条件に合うエミュレーション及びプログラムが存在するかどうか、起動中のエミュレーションが判断し、指定された起動条件に合うエミュレーション及びプログラムは存在しないが、指定されたエミュレーションの種類に合うエミュレーションが存在する場合は、同エミュレーションのエミュレーション及びプログラムの条件を起動条件とし起動することにより、同描画データを印刷処理でき、同様にその後転送される描画データに対して正常に処理できる状態になる。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面に従って説明する。図１は印刷装置のブロック構成図である。印刷装置は、ファームウェア（ＲＯＭ）１、ＣＰＵ２、ワークメモリ（ＲＡＭ）３、ＮＶＲＡＭ４、印刷部５、表示部（操作パネル）６、ホストＩ／Ｆ７を備える。
【００２０】
図２はエミュレーション切り替えコマンドデータの一例を示す図、図３はエミュレーションの起動条件の情報を示す図、図４はエミュレーション切り替えを指定したコマンドデータの一例を示す図、図５は起動中のエミュレーションの起動条件（ａ）とエミュレーション切り替えコマンドで指定した起動条件（ｂ）を示す図である。
【００２１】
まず、本実施形態の参考例１を説明する。現在起動中のエミュレーションの起動条件は、図３に示す通り、エミュレーションの種類及びスイッチＮｏ．で構成され、同情報をワークメモリ３に格納する。またスイッチＮｏ．とは、同一エミュレーションの印刷条件の設定内容がプログラム登録されている場合、その登録した順番を表す番号である。
【００２２】
ここで動作例として、現在起動中のエミュレーションの起動条件が図５（ａ）に示す内容のとき、図２に示すコマンドデータの文法に従い、図４に示す内容のコマンドデータを受信処理した場合、同コマンドにより指定された起動条件は、図５（ｂ）の通りとなる。これらにより、起動中のエミュレーションの起動条件と、先のコマンドにより指定された起動条件とを比較することができる。
【００２３】
図１２は第１の制御例を示すフローチャートである。受信バッファにデータがあるかどうかを判断し（Ｓ１）、ない場合には、その他の処理を行う（Ｓ２）。データがある場合は、コマンドの解析と処理を行って（Ｓ３）、エミュレーション切り替えの指定があるか判断する（Ｓ４）。指定がなければ、その他のコマンド処理を行う（Ｓ５）。指定があれば、指定されたエミュレーションの起動条件と起動中のエミュレーションの起動条件が同じか判断する（Ｓ６）。同じでなければ、エミュレーションの切り替え処理を行う（Ｓ７）。
【００２４】
本実施形態の参考例２を説明する。エミュレーション切り替えコマンドにより指定されたエミュレーションの起動条件と、現在起動中のエミュレーションの起動条件が同じ場合でもエミュレーションの切り替え処理を行うと、印刷速度が遅くなる。
【００２５】
そこで本参考例２では図５（ａ），（ｂ）の起動条件を比較すると、同じ起動条件となるので、先のコマンドの指定によるエミュレーションの切り替え処理は行わない（図１２参照）。
【００２６】
図６は起動した状態の印刷条件の情報の一例を示す図、図７は起動後に変更された印刷条件の情報の一例を示す図である。なお、図７において網掛け部分は変更された設定内容を示す。
【００２７】
本実施形態の参考例３を説明する。現在起動中のエミュレーションにおいて、図６に示す起動時の印刷条件の設定内容に対して、起動後に操作パネル６により、印刷条件が図７に示すような設定内容に変更された場合は、異なるユーザから印刷データを受信したと判断し、先のコマンドで指定されたエミュレーションの起動条件に従い、エミュレーションの切り替え処理を行う。このようにすると、操作パネル６で設定された印刷条件に従い、意図した描画結果が得られる（この場合、印刷方向と自動改行の有無が変更されている）。
【００２８】
図１３は第２の制御例を示すフローチャートである。受信バッファにデータがあるかどうかを判断し（Ｓ１１）、ない場合には、その他の処理を行う（Ｓ１２）。データがある場合は、コマンドの解析と処理を行って（Ｓ１３）、エミュレーション切り替えの指定があるか判断する（Ｓ１４）。指定がなければ、その他のコマンド処理を行う（Ｓ１５）。指定があれば、指定されたエミュレーションの起動条件と起動中のエミュレーションの起動条件が同じか判断する（Ｓ１６）。同じでなければ、エミュレーションの切り替え処理を行う（Ｓ１７）。同じであれば、操作パネル６により印刷条件を変更されているか判断する（Ｓ１８）。変更されていれば、エミュレーションの切り替え処理を行う（Ｓ１７）。
【００２９】
図８はエミュレーションの切り替え処理の動作モードの情報を示す図である。本実施形態の参考例４を説明する。専用のプリンタドライバによっては、転送するデータ中に印刷条件を設定するコマンドデータが存在する場合がある。このため、このような転送データにより起動されたエミュレーションでは、起動後に印刷条件が変更されることになるので、参考例２において、この状態で同様な印刷データを転送したとき、同データの先頭のエミュレーション切り替えコマンドで指定したエミュレーションの起動条件と、起動中のエミュレーションの起動条件が同じ場合、エミュレーション切り替え処理を行わないで印刷処理することになる。このため、先の印刷条件を設定するコマンドデータを含む印刷データによっては、意図した描画結果を得られない。
【００３０】
そこで、コマンドで指定されたエミュレーションの起動条件と、起動中のエミュレーションの起動条件が同じ場合は、エミュレーションの切り替え処理を行わない動作モードと、常に指定された起動条件に従いエミュレーションの切り替え処理を行う動作モードをユーザが選択し、その設定内容を図８に示す通り格納する。
【００３１】
図１４は第３の制御例を示すフローチャートである。受信バッファにデータがあるかどうかを判断し（Ｓ２１）、ない場合には、その他の処理を行う（Ｓ２２）。データがある場合は、コマンドの解析と処理を行って（Ｓ２３）、エミュレーション切り替えの指定があるか判断する（Ｓ２４）。指定がなければ、その他のコマンド処理を行う（Ｓ２５）。指定があれば、常にエミュレーションの切り替え処理を行う動作モードか判断する（Ｓ２６）。そうでなければ、エミュレーションの切り替え処理を行う（Ｓ２７）。そうであれば、指定されたエミュレーションの起動条件と起動中のエミュレーションの起動条件が同じか判断する（Ｓ２８）。同じでなければ、エミュレーションの切り替え処理を行う（Ｓ２７）。
【００３２】
図９はエラー履歴の情報の一例を示す図、図１０はエラー履歴をリセットした状態の情報の一例を示す図である。本実施形態の参考例５を説明する。エミュレーションの切り替え処理を行わなかった場合、ユーザエラー（コマンドエラー）が発生していたときはエラー履歴として残っている場合がある。このため、ユーザ側から見ると、この場合、ユーザエラーが残った状態で印刷処理されるので、印刷結果がおかしくなると判断されてしまう。通常、エミュレーションを再起動した場合は、以前のユーザエラーは残らない（リセットされる）。
【００３３】
そこで、エミュレーションの切り替え処理を行わない場合には、現在起動中のエミュレーションに図９に示すようなエラーの情報がエラー履歴として残っているとき、このエラー履歴を図１０に示すように、リセット（エラーなしの状態）にする。
【００３４】
図１５は第４の制御例を示すフローチャートである。受信バッファにデータがあるかどうかを判断し（Ｓ３１）、ない場合には、その他の処理を行う（Ｓ３２）。データがある場合は、コマンドの解析と処理を行って（Ｓ３３）、エミュレーション切り替えの指定があるか判断する（Ｓ３４）。指定がなければ、その他のコマンド処理を行う（Ｓ３５）。指定があれば、指定されたエミュレーションの起動条件と起動中のエミュレーションの起動条件が同じか判断する（Ｓ３６）。同じでなければ、エミュレーションの切り替え処理を行う（Ｓ３７）。同じであれば、エラー履歴をリセットする（Ｓ３８）。
【００３５】
図１１（ａ），（ｂ）は表示部のメッセージの各例を示す図である。本実施形態の参考例６を説明する。ユーザエラーがリセットされたかどうかは、通常はサマリーシート（印刷条件一覧印刷）などを印刷しなければ、その内容を確認することができない。そこでエミュレーションの切り替え処理を行わず、エラー履歴をリセットした場合、図１１に示す通り、操作パネル６にメッセージを表示する。
【００３６】
図１６は第５の制御例を示すフローチャートである。受信バッファにデータがあるかどうかを判断し（Ｓ４１）、ない場合には、その他の処理を行う（Ｓ４２）。データがある場合は、コマンドの解析と処理を行って（Ｓ４３）、エミュレーション切り替えの指定があるか判断する（Ｓ４４）。指定がなければ、その他のコマンド処理を行う（Ｓ４５）。指定があれば、指定されたエミュレーションの起動条件と起動中のエミュレーションの起動条件が同じか判断する（Ｓ４６）。同じでなければ、エミュレーションの切り替え処理を行う（Ｓ４７）。同じであれば、エラー履歴をリセットし（Ｓ４８）、操作パネル６にメッセージを表示する（Ｓ４９）。
【００３７】
図１７はエミュレーションの起動条件の情報を示す図、図１８はエミュレーション切り替えを指定したコマンドデータの一例を示す図、図１９は指定されたエミュレーションの起動条件の一例を示す図、図２０は既存（常駐）のエミュレーションの起動条件（ａ）と登録されたプログラムの起動条件（ｂ）を示す図である。
【００３８】
請求項１記載の発明に対応した本実施形態を説明する。エミュレーションの起動条件は、図１７に示す通り、エミュレーションの種類及びスイッチＮｏ．で構成され、同情報をワークメモリ３に格納する。スイッチＮｏ．とは同一エミュレーションの印刷条件の設定内容がプログラム登録されている場合、その登録した順番（１〜ｎ）を表す番号である。同Ｎｏ．０の場合は、プログラム登録されていない初期状態の起動条件を示す。
【００３９】
ここで動作例として、図１８に示す内容のコマンドデータを受信処理した場合、同コマンドにより指定された起動条件は図１９の通りとなる。また、プリンタに存在する（既存の）エミュレーション（初期状態、スイッチＮｏ．は全て“０”）及び登録されたプログラムの起動条件の情報を図２０に示す。これらにより、図１９に示すコマンドで指定された起動条件と、図２０の各起動条件を比較することができる。
【００４０】
図２１は第６の制御例を示すフローチャートである。受信バッファにデータがあるかどうかを判断し（Ｓ５１）、ない場合には、その他の処理を行う（Ｓ５２）。データがある場合は、コマンドの解析と処理を行って（Ｓ５３）、エミュレーション切り替えの指定があるか判断する（Ｓ５４）。指定がなければ、その他のコマンド処理を行う（Ｓ５５）。指定があれば、指定されたエミュレーションの起動条件と同じものが既存の起動条件にあるか判断する（Ｓ５６）。あれば、指定された起動条件でエミュレーションの切り替え処理を行う（Ｓ５７）。なければ、ジョブキャンセルする（Ｓ５８）。
【００４１】
また、本実施形態は、同コマンドで指定されたエミュレーションの起動条件に合うエミュレーション及びプログラムが存在しない場合には、エミュレーションを切り替えることができず、現在起動中のエミュレーションが以降の描画データを処理することになり、正常でない印刷内容が複数枚出力されるのを防止するものである。
【００４２】
図１９と図２０の起動条件を比較した結果、同じ起動条件となるものがない場合には、その後の描画データをジョブキャンセルする。この場合、エミュレーションの種類“Ｒ０２”と同じ種類の既存のエミュレーションが存在するが（図１９）、同じスイッチＮｏ．の起動条件のものがない。従って、指定された起動条件に合うものがないので、ジョブキャンセルされる（図２１参照）。
【００４３】
図２２は指定されたエミュレーションの種類と合う起動条件の一例を示す図である。さらに、本実施形態は、同コマンドで指定されたエミュレーションの起動条件において、エミュレーションの種類に合うものは存在するが、スイッチＮｏ．（同エミュレーションでプログラムとして登録された順番）に合うものが存在しない場合も、起動条件に合うものが存在しないと判断され、エミュレーションを切り替えず、同様に正常でない印刷結果を出力し、受信バッファにデータが残るのを防止するものである。
【００４４】
本実施形態において、図１９に示す指定された起動条件と合うものがない場合には、さらにエミュレーションの種類が同じものがあるか検索する。同じものがある場合、その起動条件（図２２）に従いエミュレーションを起動する。この場合、エミュレーションの種類“Ｒ０２”と同じ種類の既存のエミュレーションが存在するが（図１９）、同じスイッチＮｏ．の起動条件のものがない。そこで、再度同じ種類のエミュレーションが存在するか、既存のエミュレーションの起動条件（図１９）を検索する。指定されたエミュレーションの種類“Ｒ０２”と同じものが存在するので（図１９）、同条件を起動条件とする（図２２）。
【００４５】
図２３は第７の制御例を示すフローチャートである。受信バッファにデータがあるかどうかを判断し（Ｓ６１）、ない場合には、その他の処理を行う（Ｓ６２）。データがある場合は、コマンドの解析と処理を行って（Ｓ６３）、エミュレーション切り替えの指定があるか判断する（Ｓ６４）。指定がなければ、その他のコマンド処理を行う（Ｓ６５）。指定があれば、指定されたエミュレーションの起動条件と同じものが既存の起動条件にあるか判断する（Ｓ６６）。あれば、指定された起動条件でエミュレーションの切り替え処理を行う（Ｓ６７）。なければ、指定されたエミュレーションの種類と同じものが既存の起動条件にあるか判断する（Ｓ６８）。あれば、検索した同じ種類のエミュレーションへ切り替える（Ｓ６９）。なければジョブキャンセルする（Ｓ７０）。
【００４６】
図２４は操作パネルのメッセージの一例を示す図である。この参考例７は、本実施形態においてエミュレーションの切り替え処理を行わず、描画データをジョブキャンセルした場合、ユーザ側から見るとプリンタが正常に動作しないと判断されてしまう（問題視される）のを防止するものである。第２の実施形態において、ジョブキャンセルした場合、操作パネル６にメッセージを表示する（図２４参照）。
【００４７】
図２５は第８の制御例を示すフローチャートである。受信バッファにデータがあるかどうかを判断し（Ｓ７１）、ない場合には、その他の処理を行う（Ｓ７２）。データがある場合は、コマンドの解析と処理を行って（Ｓ７３）、エミュレーション切り替えの指定があるか判断する（Ｓ７４）。指定がなければ、その他のコマンド処理を行う（Ｓ７５）。指定があれば、指定されたエミュレーションの起動条件と同じものが既存の起動条件にあるか判断する（Ｓ７６）。あれば、指定された起動条件でエミュレーションの切り替え処理を行う（Ｓ７７）。なければ、ジョブキャンセルし（Ｓ７８）、操作パネル（表示部）６にメッセージを表示する（Ｓ７９）。
【００４８】
【発明の効果】
請求項１記載の発明によれば、受信したエミュレーション切り替えコマンドで指定されたエミュレーションの起動条件に合うエミュレーション及びプログラムが存在するかどうか、起動中のエミュレーションが判断し、指定された起動条件に合うエミュレーション及びプログラムは存在しないが、指定されたエミュレーションの種類に合うエミュレーションが存在する場合には、同エミュレーションのエミュレーション及びプログラムの条件を起動条件とし起動することにより、同描画データを印刷処理でき、同様にその後転送される描画データに対して正常に処理できる状態にすることができる。
【図面の簡単な説明】
【図１】印刷装置のブロック構成図である。
【図２】エミュレーション切り替えコマンドデータの一例を示す図である。
【図３】エミュレーションの起動条件の情報を示す図である。
【図４】エミュレーション切り替えを指定したコマンドデータの一例を示す図である。
【図５】起動中のエミュレーションの起動条件（ａ）とエミュレーション切り替えコマンドで指定した起動条件（ｂ）を示す図である。
【図６】起動した状態の印刷条件の情報の一例を示す図である。
【図７】起動後に変更された印刷条件の情報の一例を示す図である。
【図８】エミュレーションの切り替え処理の動作モードの情報を示す図である。
【図９】エラー履歴の情報の一例を示す図である。
【図１０】エラー履歴をリセットした状態の情報の一例を示す図である。
【図１１】（ａ），（ｂ）は表示部のメッセージの各例を示す図である。
【図１２】第１の制御例を示すフローチャートである。
【図１３】第２の制御例を示すフローチャートである。
【図１４】第３の制御例を示すフローチャートである。
【図１５】第４の制御例を示すフローチャートである。
【図１６】第５の制御例を示すフローチャートである。
【図１７】エミュレーションの起動条件の情報を示す図である。
【図１８】エミュレーション切り替えを指定したコマンドデータの一例を示す図である。
【図１９】指定されたエミュレーションの起動条件の一例を示す図である。
【図２０】既存（常駐）のエミュレーションの起動条件（ａ）と登録されたプログラムの起動条件（ｂ）を示す図である。
【図２１】第６の制御例を示すフローチャートである。
【図２２】指定されたエミュレーションの種類と合う起動条件の一例を示す図である。
【図２３】第７の制御例を示すフローチャートである。
【図２４】操作パネルのメッセージの一例を示す図である。
【図２５】第８の制御例を示すフローチャートである。
【符号の説明】
１  ファームウェア
２  ＣＰＵ
３  ワークメモリ
４  ＮＶＲＡＭ
５  印刷部
６  表示部（操作パネル）
７  ホストＩ／Ｆ
【図１】
0004397473.tif 000002
【図２】
0004397473.tif 000003
【図３】
0004397473.tif 000004
【図４】
0004397473.tif 000005
【図５】
0004397473.tif 000006
【図６】
0004397473.tif 000007
【図７】
0004397473.tif 000008
【図８】
0004397473.tif 000009
【図９】
0004397473.tif 000010
【図１０】
0004397473.tif 000011
【図１１】
0004397473.tif 000012
【図１２】
0004397473.tif 000013
【図１３】
0004397473.tif 000014
【図１４】
0004397473.tif 000015
【図１５】
0004397473.tif 000016
【図１６】
0004397473.tif 000017
【図１７】
0004397473.tif 000018
【図１８】
0004397473.tif 000019
【図１９】
0004397473.tif 000020
【図２０】
0004397473.tif 000021
【図２１】
0004397473.tif 000022
【図２２】
0004397473.tif 000023
【図２３】
0004397473.tif 000024
【図２４】
0004397473.tif 000025
【図２５】
0004397473.tif 000026