以下に添付図面を参照して、この発明にかかるプリンタの好適な実施の形態を詳細に説明する。
(印刷システムのシステム構成)
まず、この発明にかかる実施の形態の印刷システムのシステム構成について説明する。図1は、この発明にかかる実施の形態の印刷システムのシステム構成を示す説明図である。
図1において、この発明にかかる実施の形態の印刷システム100は、サーバであるプリンタ110と、プリンタ110に対して各種の要求を出力する複数のクライアント120と、によって構成される。クライアント120は、たとえば、汎用的なパーソナルコンピュータやタブレット端末などのコンピュータ装置によって実現することができる。
クライアント120は、プリンタ110との間で通信をおこなう通信制御部121と、印刷プログラムなどを記憶し当該印刷プログラムを実行するプログラム実行装置122と、を備えている。通信制御部121は、アナログ回路の要素とデジタル回路の要素を備えた混合信号回路などからなる通信回路によって実現することができる。
プログラム実行装置122は、CPU(Central Processing Unit)、ブートプログラムなどのプログラムを記憶するメモリ、およびプログラム実行装置122に対するデータの入出力回路などによって実現することができる(いずれも図示を省略する)。メモリは、たとえば、クライアント120を実現するパーソナルコンピュータが備えるハードディスクやタブレット端末が備えるSSD(Solid State Drive)におけるフラッシュメモリや印刷プログラムを外部ネットワークに配置することができるクラウドサーバなどによって実現することができる。
プリンタ110は、クライアント120との間で通信をおこなう通信制御部111を備えている。通信制御部111は、クライアント120が備える通信制御部121と同様に、アナログ回路の要素とデジタル回路の要素を備えた混合信号回路などからなる通信回路によって実現することができる。この実施の形態においては、通信制御部111によって、この発明にかかる通信手段が実現される。
通信制御部111は、クライアント120との間で通信をおこなうことにより、たとえば、クライアント120から送信される従来コマンドやXMLコマンドを受信する。従来コマンドやXMLコマンドについては後述する。また、通信制御部111は、クライアント120との間で通信をおこなうことにより、たとえば、プリンタ110において発生したエラーなどをクライアント120に通知してもよい。
また、プリンタ110は、印刷制御部112、従来コマンド構文解析部113、XMLコマンド構文解析部114、および、通信優先状態保持部116を備えている。プリンタ110が備える各部112〜114,116は、プリンタ110が備えるCPU、メモリ、データの入出力回路などによって実現することができる(いずれも図示を省略する)。プリンタ110が備えるメモリは、たとえば、RAM(Random Access Memory)やフラッシュメモリなどによって実現することができる。
印刷制御部112は、記録媒体に対する印刷動作をおこなう、図示を省略する印刷機構を制御する。印刷機構は、記録媒体に対する印字をおこなう印字ヘッドや、紙などの記録媒体を所定方向に搬送する紙送りローラを回転駆動する紙送りモータを備えている。
印字ヘッドは、たとえば、サーマル方式による印字をおこなうサーマルヘッドによって実現することができる。サーマルヘッドは、基板上に一列に配置された複数の発熱抵抗体を備えている。印刷制御部112は、従来コマンドやXMLコマンドに基づいて、サーマルヘッドが備える複数の発熱抵抗体を選択的に発熱させることにより感熱発色性の記録媒体(感熱紙)を発色させることによって印字をおこなう。
印字ヘッドは、サーマルヘッドによって実現するものに限らない。印字ヘッドは、サーマルヘッドに代えて、感圧発色性を有する記録媒体に対してワイヤーの先端を打ち当てることにより感圧方式による印字をおこなうインパクトヘッドによって実現してもよい。あるいは、印字ヘッドは、記録媒体に対してインク滴を吐出させることによって印字をおこなうインクジェットヘッドによって実現してもよい。
紙送りローラは、紙送りモータに連結されている。紙送りモータは、正回転方向および逆回転方向に回転可能であって、正回転または逆回転することにより、記録媒体を順方向または逆方向に搬送する。印刷制御部112は、印刷機構における印字ヘッドや紙送りモータを駆動制御することにより、印字ヘッドによる印字にあわせて所定方向に紙送りをおこない、クライアント120から送信された情報に基づく情報を記録媒体に印字する印刷動作をおこなう。この実施の形態においては、印字ヘッドや紙送りモータを制御する印刷制御部112によって、この発明にかかる印刷制御手段を実現することができる。
印刷制御部112は、従来コマンド構文解析部113およびXMLコマンド構文解析部114によって制御される。印刷制御部112は、従来コマンド構文解析部113による印刷制御部112の制御、および、XMLコマンド構文解析部114による印刷制御部112の制御のいずれか一方を選択的に受け付けるために、印刷制御部112と、従来コマンド構文解析部113およびXMLコマンド構文解析部114のいずれか一方の構文解析部と、を選択的に接続するように接続状態を切り替えるスイッチ115を備えている。
スイッチ115は、待機状態である「制御開始可能」と、「制御中」と、の2つの状態を取りうる。スイッチ115は、「制御開始可能」状態である場合に、従来コマンド構文解析部113およびXMLコマンド構文解析部114からの制御開始指示を受け付けることができる。スイッチ115は、「制御開始可能」状態である場合に、従来コマンド構文解析部113またはXMLコマンド構文解析部114からの制御開始指示を受け付けると、「制御中」状態に切り替わる。
「制御開始可能」状態であるスイッチ115に対して制御開始指示を出力した従来コマンド構文解析部113またはXMLコマンド構文解析部114は、スイッチ115の制御権をもつ。スイッチ115は、「制御中」状態である場合は、制御権をもつ構文解析部(従来コマンド構文解析部113またはXMLコマンド構文解析部114)から制御終了指示を受け付けた場合に、「制御開始可能」状態に切り替わる。これにより、スイッチ115は、ふたたび、従来コマンド構文解析部113およびXMLコマンド構文解析部114からの制御開始指示を受け付けることができる状態に切り替わる。
このように、「制御開始可能」状態であるスイッチ115に対して制御開始指示を出力した従来コマンド構文解析部113またはXMLコマンド構文解析部114によって、印刷制御部112を排他的に制御することができる。このようなスイッチ115の排他的制御により、スイッチ115が「制御中」状態である場合、すなわち、制御権をもつ構文解析部(従来コマンド構文解析部113またはXMLコマンド構文解析部114)によって占有されている状態の印刷制御部112は、当該制御権をもつ構文解析部から制御終了指示を受け付けるまで、あらたな制御開始指示を受け付けない。
この実施の形態においては、従来コマンド構文解析部113により印刷制御部112を制御する状態を第1の制御モードとし、XMLコマンド構文解析部114により印刷制御部112を制御する状態を第2の制御モードとする。スイッチ115は、この実施の形態においては、第1の制御モードと第2の制御モードとを切り替えるスイッチ115によって、この発明にかかる切替手段が実現される。
(従来コマンドの解析手順)
つぎに、従来コマンドの解析手順について説明する。従来コマンド構文解析部113は、通信制御部111がクライアント120から従来コマンドを受信した場合に、当該従来コマンドを解析する。
従来コマンドは、印刷動作にかかる各種の処理や印刷動作完了後の後処理など、印刷制御部112の制御にかかる一連のコマンドを含んでおり、各プリンタの製造者などによって開発されたプリンタ専用の記述言語によって記述されている。具体的に、従来コマンドは、通信制御部111による通信の開始を指示する従来コマンド通信要求(コマンド)と、当該従来コマンド通信要求によって開始された通信の終了を指示する従来コマンド通信切断要求(コマンド)と、印刷機構の印刷動作に関する印刷指示(コマンド)と、を含んでいる。
プリンタ110において、従来コマンドにおける従来コマンド通信要求と印刷指示と従来コマンド通信切断要求とは、一連のシーケンスとして処理される。このため、従来コマンドを受信している間、通信制御部111は、従来コマンドの受信に占有され、従来コマンド構文解析部113は、従来コマンドを一連のシーケンスとして処理する。この実施の形態においては、従来コマンドによって、この発明にかかる一連のコマンドを含む印刷要求が実現される。
通信制御部111は、従来コマンドを受信すると、当該従来コマンドに含まれる従来コマンド通信要求に基づいて制御開始指示を生成し、生成した制御開始指示を、従来コマンド構文解析部113を介して印刷制御部112に出力する。制御開始指示は、スイッチ115が「制御開始可能」状態である場合に、当該スイッチ115を介して印刷制御部112に受け付けられる。これにより、スイッチ115が「制御開始可能」状態から「制御中」状態に切り替わり、従来コマンド構文解析部113が印刷制御部112の制御権をもち、印刷制御部112を制御することができる。従来コマンド構文解析部113は、制御開始指示を出力した時点においてスイッチ115が「制御中」状態である場合、生成した各種の指示を所定のメモリにスプールしてもよい。
つぎに、通信制御部111は、従来コマンドに含まれる印刷指示に基づくコマンドを従来コマンド構文解析部113に送信する。従来コマンドに含まれる印刷指示は、印刷出力する出力内容(文字や図形など)を示す印刷データと、当該印刷データの印刷出力を指示するコマンドと、を含んでいる。
印刷データは、具体的には、たとえば、小売店において買い物をした顧客に対して当該小売店から発行するレシートを最終的な印刷結果とする場合、当該レシートに印刷される「店舗のロゴ」、「店舗の所在地、連絡先(代表電話番号など)」および「取引内容(購入品名、単価・小計額・預かり金額・釣り銭額などの金額明細)」などのように、当該レシートに印刷されるすべての文字や画像によって実現される。
従来コマンドにおいて、印刷指示は、先入れ先出し(FIFO:First In First Out)の形態で構成されている。従来コマンド構文解析部113は、印刷指示を一旦キューに格納した後、当該印刷指示の末尾に記述されるコマンドに基づいて、ラスター画像(画素を縦横に配列したビットマップ画像)に変換し、変換により得られたラスター画像と当該ラスター画像の印刷出力を指示するコマンドとを含む印刷指示を生成し、生成した印刷指示を印刷制御部112に対して送信する。
これにより、従来コマンド構文解析部113による従来コマンドの解析が実現される。具体的には、従来コマンド構文解析部113は、たとえば、RIP(Raster Image Processor)により実現することができる。RIPは、専用のハードウエア回路によって実現してもよく、ソフトウエア(ソフトウエアRIP)によって実現してもよい。
印刷制御部112は、従来コマンド構文解析部113から送信された印刷指示に基づいて印字ヘッドや紙送りモータを駆動制御し、当該印刷指示に含まれるラスター画像を記録媒体に印刷する印刷動作をおこなう。具体的には、印刷制御部112は、印字ヘッドと紙送りとの動作の同期をとりながら駆動制御することにより、印字ヘッドによる印字にあわせて所定方向に紙送りをおこない、印刷指示に含まれるラスター画像を記録媒体に印刷する印刷動作をおこなう。
その後、通信制御部111は、従来コマンドに含まれる従来コマンド通信切断要求に基づいて制御終了指示を生成し、生成した制御終了指示を、従来コマンド構文解析部113を介して印刷制御部112に出力する。これにより、スイッチ115が「制御中」状態から「制御開始可能」状態に切り替わり、従来コマンド構文解析部113がもつ印刷制御部112の制御権がなくなる。
(XMLコマンドの解析手順)
つぎに、XMLコマンドの解析手順について説明する。通信制御部111がクライアント120からXMLコマンドを受信した場合、XMLコマンド構文解析部114は当該XMLコマンドを解析する。
XMLコマンドは、印刷制御部112の制御に関するコマンドを含む所定の構造化形式のデータ、すなわち、構造化文書によって構成されている。XMLコマンドは、最終的な印刷結果を得るためにクライアント120からプリンタ110へ送信される印刷要求であって、記録媒体に印刷される印刷内容を示すプリントデータや、プリントデータが示す印刷内容の記録媒体への印刷を指示するコマンドを、所定のプロトコルにしたがって記述したXMLデータ(XML文書)によって構成することができる。XMLデータの記述にかかる所定のプロトコルについては、公知の各種の技術を用いて容易に実現できるため説明を省略する。
プリンタ110においては、1つの印刷結果(印刷物)を得るために複数のXMLコマンドを実行してもよい。この場合、複数のXMLコマンドのうちの各XMLコマンドに含まれるプリントデータは、1つの印刷結果に要求される最終的な印刷内容を複数に分割することにより得られる断片的な印刷内容のそれぞれを示す。具体的には、たとえば、小売店において買い物をした顧客に対して当該小売店から発行するレシートを1つの印刷結果として得る場合、当該レシートに印刷される「店舗のロゴ」、「店舗の所在地、連絡先(代表電話番号など)」、「取引内容(購入品名、単価・小計額・預かり金額・釣り銭額などの金額明細)」などのそれぞれを、断片的な印刷内容とすることができる。
この場合、上記のレシートを発行するために、プリンタ110は、「店舗のロゴ」を示すプリントデータと当該プリントデータが示す「店舗のロゴ」の記録媒体への印刷を指示するコマンドとによって構成されるXMLコマンド、「店舗の所在地、連絡先」を示すプリントデータと当該プリントデータが示す「店舗の所在地、連絡先」の記録媒体への印刷を指示するコマンドとによって構成されるXMLコマンド、「取引内容」を示すプリントデータと当該プリントデータが示す「取引内容」の記録媒体への印刷を指示するコマンドとによって構成される印刷要求の3つのXMLコマンドの3つのXMLコマンドをクライアント120から受信する。
XMLコマンド構文解析部114は、通信制御部111が受信したXML形式のXMLコマンドを読み込み、読み込んだXMLコマンドがXMLの文法規則に合致しているか否かをチェックする。XMLコマンド構文解析部114は、チェックをおこなった結果、XMLの文法規則に合致していると判断したXMLコマンドに基づいて、印刷制御部112を制御する。XMLコマンド構文解析部114は、さらに、厳密なチェックとして、そのXMLコマンドのデータ構造を規定するDTDファイルなどを参照して、データ構造の検証をおこなってもよい。
XMLコマンド構文解析部114は、通信制御部111がXMLコマンドを受信すると、当該XMLコマンドに基づいて制御開始指示を生成し、生成した制御開始指示を印刷制御部112に対して出力する。この制御開始指示は、スイッチ115が「制御開始可能」状態である場合に、当該スイッチ115を介して印刷制御部112に受け付けられる。これにより、スイッチ115が「制御開始可能」状態から「制御中」状態に切り替わり、XMLコマンド構文解析部114が印刷制御部112の制御権をもつ。プリンタ110において、後述する第1の優先状態が設定されている場合、XMLコマンド構文解析部114は、スイッチ115が「制御中」状態のときにXMLコマンドを受信すると、当該XMLコマンドまたは当該XMLコマンドの解析結果を、所定のメモリにスプールしてもよい。
つぎに、XMLコマンド構文解析部114は、受信したXMLコマンドに基づいて、当該XMLコマンドに含まれるプリントデータが示す印刷内容の印刷出力を指示する印刷指示を生成する。1つの印刷結果(印刷物)を得るために複数のXMLコマンドが存在する場合、XMLコマンド構文解析部114は、XMLコマンドごとに、当該XMLコマンドに含まれるプリントデータが示す断片的な印刷内容の印刷出力を指示する印刷指示を生成し、生成した印刷指示を印刷制御部112に対して送信する。
XMLコマンド構文解析部114は、XML形式によって記述されているプリントデータが示す文字や図形をラスター画像に変換し、変換により得られたラスター画像と当該ラスター画像の印刷出力を指示するコマンドとを含む印刷指示を生成する。これにより、XMLコマンド構文解析部114によるXMLコマンドの解析が実現される。
XMLコマンドが複数存在する場合、XMLコマンド構文解析部114は、各XMLコマンドを受信するごとに、当該XMLコマンドに基づいて指示を生成し、生成した印刷指示を印刷制御部112に対して送信する。印刷制御部112は、XMLコマンド構文解析部114から送信された印刷指示に基づいて印字ヘッドや紙送りモータを制御し、当該印刷指示に含まれるラスター画像を記録媒体に印刷する印刷動作をおこなう。
その後、XMLコマンド構文解析部114は、通信制御部111が受信したXMLコマンドに基づいて制御終了指示を生成し、生成した制御終了指示を印刷制御部112に対して出力する。これにより、スイッチ115が「制御中」状態から「制御開始可能」状態に切り替わり、XMLコマンド構文解析部114がもつ印刷制御部112の制御権がなくなる。
プリンタ110においては、クライアント120から送信された情報を受信すると、受信した情報の解析を従来コマンド構文解析部113およびXMLコマンド構文解析部114の双方においておこなう。そして、正常に解析がおこなわれた構文解析部(従来コマンド構文解析部113またはXMLコマンド構文解析部114)から印刷制御部112に対して、制御開始指示を出力する。これにより、制御開始指示を出力した構文解析部が印刷制御部112の制御権をもつ。
プリンタ110においては、スイッチ115が「制御開始可能」状態である場合に、印刷制御部112に対して先に制御開始指示を出力した構文解析部(従来コマンド構文解析部113またはXMLコマンド構文解析部114)による印刷制御部112の制御を優先する第1の優先状態と、XMLコマンド構文解析部114による印刷制御部112の制御を優先する第2の優先状態と、のうちいずれかの状態を選択的に設定することができる。
通信優先状態保持部115は、印刷制御部112の制御にかかる優先順位を設定する。具体的に、通信優先状態保持部116は、プリンタ110の現在の状態が第1の優先状態であるか第2の優先状態であるかを記憶する。通信優先状態保持部116は、プリンタ110が備えるメモリによって実現することができる。通信優先状態保持部116の設定(記憶)は、たとえばプリンタ110の起動時に設定される。
通信優先状態保持部116の設定は、たとえば、前回プリンタ110の電源を切断した時点における通信優先状態保持部116の設定を、プリンタ110が備える不揮発性のメモリに記憶しておき、プリンタ110の起動時に不揮発性のメモリに記憶されている情報を読み出して、通信優先状態保持部116を実現するメモリに格納することによって実現される。
通信優先状態保持部116における状態の設定は、クライアント120などの外部装置からのコマンド操作によって適宜切り替えるようにしてもよいし、プリンタ110が提供するGUI(Graphical User Interface)等の利用者操作によって、状態の設定を切り替えても構わない。これにより、印刷システム100の構築や管理の容易化を図ることができる。この実施の形態においては、通信優先状態保持部116によって、この発明にかかる順位設定手段が実現される。
プリンタ110は、通信優先状態保持部116において第1の優先状態および第2の優先状態が設定されている場合、「制御開始可能」状態のときに制御開始指示を出力した構文解析部(従来コマンド構文解析部113またはXMLコマンド構文解析部114)に応じてスイッチ115を制御し、第1の制御モードまたは第2の制御モードによる印刷動作をおこなう。第1の制御モードでは、従来コマンド構文解析部113により印刷制御部112を制御して印刷動作をおこなう。第2の制御モードでは、XMLコマンド構文解析部114により印刷制御部112を制御して印刷動作をおこなう。
また、プリンタ110は、通信優先状態保持部116において第2の優先状態が設定されている場合、通信制御部111によってXMLコマンドを受信すると、「制御開始可能」状態であるか「制御中」状態であるかにかかわらず、スイッチ115を制御して第2の制御モードに切り替える。通信優先状態保持部116において第2の優先状態が設定された状況において、第1の制御モードによる印刷動作をおこなっている場合、通信制御部111によってXMLコマンドを受信すると、第1の制御モードによる印刷動作が中断され、第2の制御モードによる印刷動作がおこなわれる。
(プリンタ110における状態遷移)
つぎに、プリンタ110における状態遷移について説明する。図2は、プリンタ110における状態遷移を示す説明図である。図2において、プリンタ110は、「制御開始可能」状態である場合(図2における符号210を参照)、クライアント120から送信される従来コマンドまたはXMLコマンドの受信を待機する。
クライアント120は、従来コマンドまたはXMLデータのいずれかの印刷コマンドを利用する。1つのクライアント120において、従来コマンドおよびXMLデータの両方の印刷コマンドを共存させ、従来コマンドによる印刷コマンドとXMLデータによる印刷コマンドとを利用できるようにしてもよい。
プリンタ110は、「制御開始可能」状態において従来コマンドを受信すると、第1の優先状態および第2の優先状態のいずれが設定されている場合にも、「従来コマンド処理中」状態に遷移する(図2における符号220を参照)。具体的に、プリンタ110は、「制御開始可能」状態210において受信した従来コマンドに基づく従来コマンド通信要求を受け付けた場合に、「従来コマンド処理中」状態220に遷移する。「従来コマンド処理中」状態220においては、従来コマンドを受信し、受信した従来コマンドに応じた動作をおこなう。プリンタ110は、「従来コマンド処理中」状態220において従来コマンド通信切断要求が発行された場合に、「制御開始可能」状態210に遷移する。
また、プリンタ110は、「制御開始可能」状態210においてXMLデータを受信すると、第1の優先状態および第2の優先状態のいずれが設定されている場合にも、「XMLコマンド処理中」状態に遷移する(図2における符号230を参照)。具体的に、プリンタ110は、「制御開始可能」状態210においてXMLデータを受信した場合に、「XMLコマンド処理中」状態230に遷移する。「XMLコマンド処理中」状態230においては、XMLデータを受信し、受信したXMLデータに応じた動作をおこなう。プリンタ110は、「XMLコマンド処理中」状態230においてXMLコマンド処理完了が発行された場合に、「制御開始可能」状態210に遷移する。
さらに、プリンタ110は、第2の優先状態が設定されている場合、「従来コマンド処理中」状態220においてXMLデータを受信すると、「XMLコマンド処理中」状態230に遷移する。具体的に、プリンタ110は、第2の優先状態が設定されている場合、「従来コマンド処理中」状態220においてXMLデータを受信すると、XMLデータの処理を優先し、従来コマンド通信を強制切断し、XMLデータの受信に切り替えることによって、「XMLコマンド処理中」状態230に遷移する。
プリンタ110は、従来コマンド通信を強制切断して強制的に遷移させた「XMLコマンド処理中」状態230においても、「制御開始可能」状態210から直接遷移させた場合と同様に、XMLデータを受信し、受信したXMLデータに応じた動作をおこなう。プリンタ110は、「XMLコマンド処理中」状態230においてXMLコマンド処理完了が発行された場合に、「制御開始可能」状態210に遷移する。
(従来のプリンタの一例)
つぎに、従来のプリンタの一例について説明する。図3は、従来のプリンタを備えた従来の印刷システムのシステム構成を示す説明図である。図3において、従来の印刷システム300は、従来のプリンタ310と、プリンタ310に対して各種の要求を出力するクライアント320と、によって構成される。
クライアント320は、印刷プログラムを記憶する記憶装置321と、印刷プログラムの実行にしたがってプリンタ310との間で通信をおこなう通信制御部322と、を備えている。プリンタ310は、クライアント320との間で通信をおこなう通信制御部311、クライアント320から送信される従来コマンドを解析する従来コマンド構文解析部312、クライアント320から送信されるXMLデータを解析するXMLコマンド構文解析部313、および、プリンタ310が備える各部を制御する印刷制御部314を備えている。
従来コマンド構文解析部312およびXMLコマンド構文解析部313は、それぞれ、印刷制御部314を制御する。従来コマンド構文解析部312は、クライアント320から送信される従来コマンドに基づいて印刷制御部314を制御する間、当該印刷制御部314を一時的に占用する。XMLコマンド構文解析部313は、クライアント320から送信されるXMLデータに基づいて印刷制御部314を制御する間、当該印刷制御部314を一時的に占用する。
(従来のプリンタ310における状態遷移)
つぎに、従来のプリンタ310における状態遷移について説明する。図4は、従来のプリンタ310における状態遷移を示す説明図である。図4において、従来のプリンタ310は、「制御開始可能」状態である場合(図4における符号410を参照)、複数のクライアント320のうちのいずれかのクライアント320から送信される従来コマンドまたはXMLコマンドの受信を待機する。
プリンタ310は、「制御開始可能」状態410において従来コマンドを受信すると、「従来コマンド通信中」状態に遷移する(図4における符号420を参照)。「従来コマンド通信中」状態420においては、クライアント320から送信される従来コマンドに基づいて、「コマンド受信待ち」状態(図4における符号420aを参照)と「コマンド実行中」状態(図4における符号420bを参照)とを適宜切り替えて印刷動作をおこなう。プリンタ310は、クライアント120からの切断要求(コマンド)の受信か、または、「コマンド受信待ち」状態420aにおいて切断信号を自ら発行することにより、再び、「制御開始可能」状態410に遷移する。
また、プリンタ310は、「制御開始可能」状態420においてXMLデータを受信すると、「XMLデータ処理中」状態に遷移する(図4における符号430を参照)。「XMLデータ処理中」状態430においては、XMLデータを受信し、受信したXMLデータに応じた動作をおこなう。プリンタ310は、「XMLデータ処理中」状態430においてXMLデータに基づく処理が完了した場合に、再び、「制御開始可能」状態410に遷移する。
従来のプリンタ310は、「従来コマンド通信中」状態420においては、XMLデータを受信しても「XMLデータ処理中」状態430には遷移せず、継続して、「従来コマンド通信中」状態430をとる。このため、XMLデータに基づく印刷動作を即時開始することができなかった。
これに対し、プリンタ110は、第2の優先状態が設定されている場合は、「従来コマンド処理中」状態220において通信制御部111によりXMLデータを受信した場合、従来コマンド通信を強制切断し、XMLデータの受信に切り替え、「XMLコマンド処理中」状態230に遷移する。これにより、XMLコマンド構文解析部114によって印刷制御部112の制御を独占的に利用することができ、XMLデータに基づく印刷動作を優先的におこなうことができる。
(プリンタ110の処理手順)
つぎに、プリンタ110の処理手順の一例について説明する。図5および図6は、プリンタ110の処理手順の一例を示すフローチャートである。プリンタ110は、プリンタ110において第1の優先状態が設定されている場合に、図5のフローチャートに示す処理を実行する。
図5のフローチャートにおいて、まず、通信制御部111において、従来コマンドを受信したか否かを判断する(ステップS501)。ステップS501において、従来コマンドを受信した場合(ステップS501:Yes)、従来コマンド構文解析部113において、受信した従来コマンドの構文を解析する(ステップS502)。
つぎに、ステップS502における解析結果に基づいて、通信制御部111から従来コマンド構文解析部113を介して、印刷制御部112に対して制御開始指示を出力する(ステップS503)。ステップS503においては、ステップS502における解析結果に基づいて、従来コマンドに含まれる通信開始指示に基づく制御開始指示を生成し、生成した制御開始指示を通信制御部111から従来コマンド構文解析部113を介して、印刷制御部112に対して出力する。これにより、従来コマンド構文解析部113が印刷制御部112の制御権をもつ。
つぎに、ステップS502における解析結果に基づいて、従来コマンド構文解析部113から印刷制御部112に対して印刷指示を出力する(ステップS504)。ステップS504において、従来コマンド構文解析部113から出力された印刷指示を受け付けた印刷制御部112は、当該印刷指示に基づいて印字ヘッドや紙送りモータを制御し、当該印刷指示に含まれるラスター画像を記録媒体に印刷する印刷動作をおこなう。
つぎに、印刷指示の出力を完了したか否かを判断する(ステップS505)。ステップS505においては、従来コマンドに含まれる複数の印刷指示における印刷データがそれぞれ示す文字や図形のラスター画像を、すべて印刷したか否かを判断する。ステップS505において、印刷指示の出力を完了していない場合(ステップS505:No)、ステップS504へ戻り、ステップS502における解析結果に基づいて、従来コマンド構文解析部113から印刷制御部112に対して、まだ出力していない印刷データを含む印刷指示を出力する。
一方、ステップS505において、印刷指示の出力を完了した場合(ステップS505:Yes)、ステップS502における解析結果に基づいて、通信制御部111から従来コマンド構文解析部113を介して、印刷制御部112に対して制御終了指示を出力して(ステップS506)、一連の処理を終了する。ステップS506においては、ステップS502における解析結果に基づいて、従来コマンドに含まれる通信終了指示に基づく制御終了指示を生成し、生成した制御終了指示を通信制御部111から従来コマンド構文解析部113を介して、印刷制御部112に対して出力する。
これにより、スイッチ115が「制御中」状態から「制御開始可能」状態に切り替わり、従来コマンド構文解析部113がもつ印刷制御部112の制御権がなくなって、印刷制御部112は、従来コマンド構文解析部113またはXMLコマンド構文解析部114による制御を待機する。
ステップS501において、従来コマンドを受信していない場合(ステップS501:No)、XMLコマンドを受信したか否かを判断する(ステップS507)。そして、従来コマンドを受信しておらず、XMLコマンドも受信していない場合(ステップS507:No)、ステップS501へ戻る。
ステップS507において、XMLコマンドを受信した場合(ステップS507:Yes)、XMLコマンド構文解析部114において、受信したXMLコマンドの構文を解析する(ステップS508)。そして、ステップS508における解析結果に基づいて、制御開始指示を出力し(ステップS509)、つぎに印刷指示を出力し(ステップS510)、その後、制御終了指示を出力して(ステップS511)、一連の処理を終了する。
プリンタ110は、通信優先状態保持部116において第2の優先状態が設定されている場合に、図5のフローチャートに示す処理および図6のフローチャートに示す処理を実行する。図6のフローチャートに示す処理は、図5のフローチャートに示す処理よりも優先される。
図6のフローチャートにおいて、まず、通信制御部111において、XMLコマンドを受信するまで待機する(ステップS601:No)。ステップS601において、XMLコマンドを受信した場合(ステップS601:Yes)、印刷制御部112が、従来コマンド構文解析部113による制御中であるか否かを判断する(ステップS602)。ステップS602において、従来コマンド構文解析部113による制御中ではない場合(ステップS602:No)、ステップS604へ移行する。
一方、ステップS602において、従来コマンド構文解析部113による制御中である場合(ステップS602:Yes)、従来コマンド構文解析部113による制御を中断して(ステップS603)、ステップS604へ移行する。ステップS603においては、中断した従来コマンドにかかるラスタデータをメモリに記憶してもよく、従来コマンド構文解析部113による制御を完全に中断(中止)してもよい。
ステップS604においては、XMLコマンド構文解析部114において、受信したXMLコマンドの構文を解析する(ステップS604)。そして、ステップS604における解析結果に基づいて、制御開始指示を出力し(ステップS605)、つぎに印刷指示を出力し(ステップS606)、その後、制御終了指示を出力して(ステップS607)、一連の処理を終了する。
従来コマンド構文解析部113による制御を中断した場合、ステップS606においては、XMLコマンドに基づいて優先して出力する印刷指示に基づく印刷内容を、中断がない場合に出力する印刷内容とは異なる態様で出力することを指示する印刷指示を出力してもよい。具体的には、たとえば、中断がない場合は印刷内容が黒色で記録された印刷をおこない、中断があった場合は印刷内容が赤色で記録された印刷をおこなうように指示する印刷指示を出力する。あるいは、具体的には、たとえば、中断がない場合と、中断があった場合とで、印刷内容における文字のフォントを異ならせるように指示する印刷指示を出力してもよい。
または、従来コマンド構文解析部113による制御を中断した場合、プリンタ110と接続可能な一般的な通知装置(ブザー、LED、LCDなど)を介して、従来コマンド構文解析部113による制御を中断したことを印刷システム100の利用者に通知してもよい。あるいは、従来コマンド構文解析部113による制御を中断した場合、中断した制御にかかる従来コマンドの送信元のクライアント320に対して、印刷が中断されたことを示す通知を送信してもよい。この場合、中断した制御にかかる従来コマンドの送信元のクライアント320に対して、印刷が中断されたことを示す通知に加えて、中断された印刷を再開するか否かの確認を求める確認要求を送信してもよい。
また、従来コマンド構文解析部113による制御を中断する場合、制御の中断直前に、通信制御部311を利用しクライアント320に印刷指示の中断を通知した後に、従来コマンド通信を強制切断してもよい。これにより、クライアント320は、印刷の中断を識別でき、XMLコマンドに基づいた印刷完了後に、中断された印刷内容の再印刷をおこなうことができる。
プリンタ110は、第2の優先状態が設定されているために中断した従来コマンドにかかるラスタデータをメモリに記憶した場合、ステップS607において制御終了指示を出力した後、スイッチ115を切り替えて印刷制御部112と従来コマンド構文解析部113とを接続し、メモリに記憶したラスタデータを印刷する印刷動作をおこなってもよい。これにより、中断された印刷内容を印刷した印刷物を発行することができる。
このように、プリンタ110において第2の優先状態が設定されている場合、図5のフローチャートに示す処理をおこなうことにより、スイッチ115が「制御開始可能」状態であれば、印刷制御部112に対して先に制御開始指示を出力した構文解析部(従来コマンド構文解析部113またはXMLコマンド構文解析部114)によって印刷制御部112を制御して印刷動作がおこなわれる。
また、プリンタ110において第2の優先状態が設定されている場合、図5のフローチャートに示す処理よりも図6のフローチャートに示す処理を優先して実行することにより、従来コマンド構文解析部113による印刷制御部112の制御によりスイッチ115が「制御中」状態であると、従来コマンド構文解析部113による印刷制御部112の制御が中断され、XMLコマンド構文解析部114による印刷制御部112の制御が優先しておこなわれ、XMLコマンドに基づく印刷動作がおこなわれる。
以上説明したように、この発明にかかる実施の形態のプリンタ110は、印刷制御手段を実現する印刷制御部112と、通信手段を実現する通信制御部111と、第1の解析手段を実現する従来コマンド構文解析部113と、第2の解析手段を実現するXMLコマンド構文解析部114と、切替手段を実現するスイッチ115と、を備えている。
印刷制御部112は、記録媒体に対する印刷動作をおこなう印刷機構を制御する。通信制御部111は、外部装置であるクライアント120との間で通信をおこなう。従来コマンド構文解析部113は、通信制御部111によるクライアント120との通信結果に基づいて、印刷制御部112の制御にかかる一連のコマンドを含む印刷要求である従来コマンドを解析し、当該従来コマンドに含まれる一連のコマンドに基づいて印刷制御部112をシーケンス制御する。XMLコマンド構文解析部114は、通信制御部111によるクライアント120との通信結果に基づいて、印刷制御部112の制御に関するコマンドを含むXMLコマンドを解析し、当該XMLコマンドに基づいて印刷制御部112を制御する。
スイッチ115は、従来コマンド構文解析部113により印刷制御部112を制御する第1の制御モードと、XMLコマンド構文解析部114により印刷制御部112を制御する第2の制御モードと、を選択的に切り替える。また、スイッチ115は、第1の制御モードにおいて、XMLコマンド構文解析部114から制御開始指示が出力されると、従来コマンド構文解析部113による印刷制御部112の制御を中断して、第2の制御モードに切り替えることを特徴としている。
この発明にかかる実施の形態のプリンタ110によれば、従来コマンドに含まれる一連のコマンドに基づいて印刷制御部112をシーケンス制御している途中で、XMLデータに基づく印刷を割り込ませることができる。これにより、緊急性が高いなど、従来コマンドにかかる一連のコマンドに基づく印刷よりも優先度の高い印刷が生じた場合には、当該優先度の高い印刷にかかるXMLコマンドを発行することにより、従来コマンドに基づく印刷をおこなっているか否かにかかわらず、XMLデータに基づく優先度の高い印刷を即時おこなうことができる。
上述したように、従来コマンド(プリンタコマンド)は、印刷動作にかかる各種の処理や印刷動作完了後の後処理など、印刷制御部112の制御にかかる一連のコマンドを含んでおり、各プリンタの製造者などによって開発されたプリンタ専用の記述言語によって記述されている。このため、印刷システム100において、従来コマンドに優先順位を示す情報を記述し、先に受信した従来コマンドに基づく印刷中に受信した後の従来コマンドの優先順位に基づいて、進行中の印刷を中断するようにした場合、クライアント側に専用のシステムが必要となり、また、専用のシステムを備えていないクライアントでは印刷システムを構成することができず、印刷システムの構築や管理が煩雑になる。
これに対し、この発明にかかる実施の形態のプリンタ110によれば、第2の優先状態が設定されている場合に受信したコマンドが従来コマンドであるかXMLコマンドであるかに基づいて、優先順位の高い印刷を優先しておこなうことができる。これにより、クライアント120から送信するコマンドの記述方式を異ならせるだけで優先順位の高い印刷を優先しておこなうことができ、複数のクライアント120が接続されることによって構築される印刷システム100の構築や管理の容易化を図ることができる。
このため、この発明にかかる実施の形態のプリンタ110によれば、印刷システムの構築や管理を複雑化することなく、印刷システムの構築や管理を複雑化することなく、印刷動作中であるか否かにかかわらず優先性が高い印刷を優先しておこなうことができる。
また、この発明にかかる実施の形態のプリンタ110は、印刷制御部112の制御にかかる優先順位を設定する優先順位設定手段を実現する通信優先状態保持部116を備え、スイッチ115は、通信優先状態保持部116によって設定されたXMLコマンド構文解析部114の優先順位が従来コマンド構文解析部113の優先順位よりも高い場合に、第1の制御モードにおいて、XMLコマンド構文解析部114からXMLデータに基づく制御開始指示が出力されると、従来コマンド構文解析部113による印刷制御部112の制御を中断して、第2の制御モードに切り替えることを特徴としている。
この発明にかかる実施の形態のプリンタ110によれば、XMLデータに基づく印刷と従来コマンドに基づく印刷とのうち、どちらの印刷を優先させるかを任意に設定することができる。これにより、プリンタ110の汎用性を高めることができる。