JP2017049654A - エミュレーション装置およびエミュレーションプログラム - Google Patents

エミュレーション装置およびエミュレーションプログラム Download PDF

Info

Publication number
JP2017049654A
JP2017049654A JP2015170510A JP2015170510A JP2017049654A JP 2017049654 A JP2017049654 A JP 2017049654A JP 2015170510 A JP2015170510 A JP 2015170510A JP 2015170510 A JP2015170510 A JP 2015170510A JP 2017049654 A JP2017049654 A JP 2017049654A
Authority
JP
Japan
Prior art keywords
printer
command
conversion unit
data
host device
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.)
Pending
Application number
JP2015170510A
Other languages
English (en)
Inventor
知弥 落合
Tomoya Ochiai
知弥 落合
オーウェン ローレンス
Lawrence Owen
オーウェン ローレンス
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.)
Star Micronics Co Ltd
Original Assignee
Star Micronics Co Ltd
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 Star Micronics Co Ltd filed Critical Star Micronics Co Ltd
Priority to JP2015170510A priority Critical patent/JP2017049654A/ja
Priority to PCT/JP2016/055785 priority patent/WO2017038118A1/ja
Publication of JP2017049654A publication Critical patent/JP2017049654A/ja
Pending legal-status Critical Current

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】接続するホスト装置とプリンタとの組み合わせを変更する場合に必要となるエミュレーションプログラムの開発を、より少ない工数で効率的に行うことができるようにする。
【解決手段】ホスト装置のプリンタドライバ12で生成された元のコマンドデータを、プリンタに依存しない特定のコマンド体系から成る中間のコマンドデータに変換する第1の変換部31と、第1の変換部31により生成された中間のコマンドデータを、ホスト装置に接続されるプリンタに対応したコマンド体系から成る目的のコマンドデータに変換する第2の変換部32とを備え、第1の変換部31に対応したエミュレーションプログラムの開発と、第2の変換部32に対応したエミュレーションプログラムの開発とを分けて効率的に行うことができるようにする。
【選択図】図4

Description

本発明は、ホスト装置からプリンタに出力する印刷データのコマンド体系の変換を行うエミュレーション装置およびエミュレーションプログラムに関するものである。
従来、ホスト装置のアプリケーションで編集した文書や画像をプリンタから印刷するシステムが多く用いられている。一般に、文書や画像は、アプリケーション固有の形式のファイルで保存され、オペレーティングシステム上で動作するプリンタドライバを介して、プリンタが解釈できる形式の印刷データに変換されて印刷される。
この印刷データへの変換にエミュレータ(エミュレーションドライバ)が用いられる場合もある。エミュレーションとは、データの意味を定義付けた各種コマンド体系のうち、ホスト装置が対応するコマンド体系をプリンタが解釈できるコマンド体系に変換することを意味する。一般に、1つのエミュレータは、ある特定の機種のプリンタをターゲットとしてコマンド体系の変換を行うものとして作られる。したがって、ホスト装置に接続するプリンタを変える場合は、変更後のプリンタに合わせてエミュレーションの記述を変更する必要がある。
従来、ホスト装置に接続するプリンタを変える場合に、ホスト装置のアプリケーション側の仕様や設定に変更を加えることなく、変更前のプリンタと同様の印刷出力を変更後のプリンタにおいて得られるようにした技術が提案されている(例えば、特許文献1参照)。
特許文献1に記載の印刷システムでは、プリンタAのプリンタドライバがインストールされたホスト装置に接続されているプリンタAを別のプリンタBに変える場合、ランゲージモニタプログラムおよび印刷データ変換プログラムをホスト装置に追加インストールする。そして、これらのプログラムを用いて、プリンタドライバにより生成されたプリンタAに対応した印刷データをいったん中間データ(ラスタ画像データ)に変換した後、当該中間データをプリンタBに対応した印刷データに更に変換するようにしている。
特許文献1に記載の印刷システムによれば、追加インストールされたランゲージモニタプログラムおよび印刷データ変換プログラム(以下、これらをエミュレーションプログラムという)によって、プリンタAに対応した印刷データがプリンタBに対応した印刷データに変換されるので、ホスト装置のアプリケーション側に変更を加えることなく、変更前のプリンタAと同様の印刷出力を変更後のプリンタBにおいて再現することができる。
特許第4627683号公報
しかしながら、上記特許文献1に記載の技術では、ホスト装置に接続するプリンタの種類数に応じて多数のエミュレーションプログラムが必要になるという問題があった。例えば、ホスト装置に接続するプリンタをプリンタAからプリンタCに変更する場合は、プリンタAに対応した印刷データをプリンタCに対応した印刷データに変換するためのエミュレーションプログラムを別途作成する必要がある。また、ホスト装置にプリンタDを接続する場合は、プリンタAに対応した印刷データからプリンタDに対応した印刷データに変換するためのエミュレーションプログラムが必要となる。
さらに、例えばプリンタBに対応するプリンタドライバがホスト装置にインストールされている場合は、当該ホスト装置に接続するプリンタの種類に応じて、プリンタB→プリンタA、プリンタB→プリンタC、プリンタB→プリンタD、・・・といった多数のエミュレーションプログラムを作成する必要がある。このように、作成すべきエミュレーションプログラムが多数に上り、そのための開発に多くの時間とコストがかかるという問題があった。
本発明は、このような問題を解決するために成されたものであり、接続するホスト装置とプリンタとの組み合わせを変更する場合に必要となるエミュレーションプログラムの開発を、より少ない工数で効率的に行うことができるようにすることを目的とする。
上記した課題を解決するために、本発明では、ホスト装置で生成された元のコマンドデータを、プリンタに依存しない特定のコマンド体系から成る中間のコマンドデータに変換する第1の変換部と、第1の変換部により生成された中間のコマンドデータを、ホスト装置に接続されるプリンタに対応したコマンド体系から成る目的のコマンドデータに変換する第2の変換部とを備える。
上記のように構成した本発明によれば、元のコマンドデータを中間のコマンドデータに変換する第1の変換部に対応したエミュレーションプログラムの開発と、中間のコマンドデータを目的のコマンドデータに変換する第2の変換部に対応したエミュレーションプログラムの開発とを分けて行うことが可能となる。しかも、中間のコマンドデータは、プリンタに依存しない特定のコマンド体系から成るため、第1の変換部に対応したエミュレーションプログラムを開発する際には、第2の変換部のことは全く意識しなくてもよい。同様に、第2の変換部に対応したエミュレーションプログラムを開発する際には、第1の変換部のことは全く意識しなくてもよい。
そして、あるプリンタXのコマンド体系(元のコマンドデータ)に対応して作成された第1の変換部と、あるプリンタYのコマンド体系(目的のコマンドデータ)に対応して作成された第2の変換部とを任意に組み合わせて適用すれば、プリンタXに対応したコマンドデータをプリンタYに対応したコマンドデータに変換することができる。このとき、プリンタX対応のコマンドデータ→プリンタY対応のコマンドデータという変換の組み合わせが新しいものであったとしても、第1の変換部、第2の変換部の少なくとも一方のエミュレーションプログラムが別の組み合わせで既に作成済みであれば、その作成済みのエミュレーションプログラムを新たに作成する必要はない。
以上のことから、本発明によれば、接続するホスト装置とプリンタとの組み合わせを変更する場合(ホスト装置に接続するプリンタを変更する場合や、プリンタに接続するホスト装置を変更する場合など)に必要となるエミュレーションプログラムの開発を、より少ない工数で効率的に行うことができるようになる。
本実施形態のエミュレーション装置を備えた印刷システムの全体の概略構成を示す図である。 本実施形態による印刷システムのハードウェア構成を示す図である。 本実施形態によるホスト装置が記憶している各種プログラムおよび当該各種プログラムによる概略の動作例を示す図である。 本実施形態のエミュレータが備える機能構成例を示すブロック図である。 第1の変換部による動作の具体例を説明するための図である。 第2の変換部による動作の具体例を説明するための図である。 第2の変換部による動作の他の具体例を説明するための図である。
以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態のエミュレーション装置を備えた印刷システムの全体の概略構成を示す図である。例えば、図1(a)に示すように、本実施形態による印刷システムは、ホスト装置10およびプリンタ20を備えて構成されている。
ホスト装置10とプリンタ20との間は、シリアルケーブルあるいはEthernet(登録商標)などの有線のインタフェースケーブルによって接続されている。あるいは、ホスト装置10とプリンタ20との間をBluetooth(登録商標)あるいはWi−Fiなどの無線通信ネットワークを介して接続するようにしてもよい。
図1(a)に示す構成において、本実施形態のエミュレーション装置は、ホスト装置10が備えている。なお、図1(b)に示すように、プリンタ20に対してインタフェースカード20Aを着脱可能に構成し、インタフェースカード20Aが本実施形態によるエミュレーション装置の機能を備えるようにしてもよい。あるいは、図1(c)に示すように、ホスト装置10に対してインタフェースカード10Aを着脱可能に構成し、インタフェースカード10Aが本実施形態によるエミュレーション装置の機能を備えるようにしてもよい。
図2は、本実施形態による印刷システムのハードウェア構成を示す図である。なお、図2は、図1(a)のように印刷システムを構成した場合のハードウェア構成例を示している。
図2に示すように、ホスト装置10は、そのハードウェア構成として、CPU101、I/F102、液晶ディスプレイ等の表示部103、タッチパネル等の入力部104、ROM105、RAM106およびハードディスク107を備えている。CPU101は、ハードディスク107に記憶されたプログラムに従って、ホスト装置10の動作を制御する。特に、本実施形態では、CPU101は、アプリケーションプログラムによって生成された文書や画像等のデータを、プリンタ20が理解できるコマンド体系の印刷データに変換し、変換した印刷データをI/F102からプリンタ20に出力する。
また、プリンタ20は、そのハードウェア構成として、CPU201、I/F202、印刷部203、ROM204およびRAM205を備えている。CPU201は、ROM204またはRAM205に記憶されたプログラムに従って、プリンタ20の動作を制御する。特に、本実施形態では、ホスト装置10から送られてきた印刷データをI/F202にて受信し、当該印刷データで示されるコマンドに従って印刷部203により印刷を実行する。
図3は、ホスト装置10のハードディスク107が記憶している各種プログラムおよび当該各種プログラムによる概略の動作例を示す図である。図3に示すように、ホスト装置10のハードディスク107は、アプリケーションプログラム(以下、単にアプリケーションと略す)11、プリンタドライバ12、エミュレーションプログラム(以下、エミュレータという)13およびポートドライバ14を記憶している。
なお、印刷システムを図1(b)のように構成する場合、ホスト装置10がアプリケーション11、プリンタドライバ12およびポートドライバ14を備え、プリンタ20に挿入されたインタフェースカード20Aがエミュレータ13を備える構成とする。この場合、プリンタドライバ12によって生成された印刷データは、ポートドライバ14を介してプリンタ20に送信され、エミュレータ13に供給される。
また、印刷システムを図1(c)のように構成する場合、例えば、ホスト装置10がアプリケーション11、プリンタドライバ12およびポートドライバ14を備え、ホスト装置10に挿入されたインタフェースカード10Aがエミュレータ13を備える構成とすることが可能である。あるいは、ホスト装置10がアプリケーション11およびポートドライバ14を備え、インタフェースカード10Aがプリンタドライバ12およびエミュレータ13を備える構成とすることも可能である。あるいは、ポートドライバ14もインタフェースカード10Aが備えるようにしてもよい。
印刷システムを図1(a)のように構成する場合、エミュレータ13を備えるホスト装置10は、本発明のエミュレーション装置に相当する。また、印刷システムを図1(c)のように構成し、ホスト装置10がエミュレータ13を備える場合も、ホスト装置10が本発明のエミュレーション装置に相当する。
これらの場合、エミュレータ13(本発明のエミュレーションプログラム)を例えばCD−ROMのような記録媒体に記録し、当該プログラムをホスト装置10に読み込ませることによって、ホスト装置10をエミュレーション装置として構築することが可能である。エミュレーションプログラムを記録する記録媒体としては、CD−ROM以外に、フレキシブルディスク、磁気テープ、光ディスク、光磁気ディスク、DVD、不揮発性メモリカード等を用いることができる。また、エミュレーションプログラムをインターネット等のネットワークを介してホスト装置10にダウンロードするようにしてもよい。
一方、図1(b)の構成において、インタフェースカード20Aがエミュレータ13を備える場合、または、図1(c)の構成において、インタフェースカード10Aがエミュレータ13を備える場合は、当該インタフェースカード10A,20Aが本発明のエミュレーション装置に相当する。この場合、エミュレータ13(本発明のエミュレーションプログラム)は、例えば、インタフェースカード10A,20A内にあらかじめインストールされている。図1(c)の構成の場合は、記録媒体またはインターネット等のネットワークを介してホスト装置10にダウンロードしたエミュレーションプログラムをインタフェースカード10A内に記録するようにしてもよい。
本実施形態では、アプリケーション11の一例としてPOSアプリケーションを用い、レシート画像の印刷を行うものとする。この場合、アプリケーション11は、レシート画像を生成し、そのレシート画像と共に印刷指示をプリンタドライバ12に出力する。プリンタドライバ12は、ある機種のプリンタ20に対応したものであり、当該プリンタ20が理解できるコマンド体系に基づくコマンドデータから成る印刷データを生成して出力する。なお、プリンタドライバ12が生成する印刷データのコマンド体系を「第1のコマンド体系」とする。
すなわち、プリンタドライバ12は、アプリケーション11から供給されるレシート画像を、プリンタ20の機種に対応した第1のコマンド体系による印刷データ(デバイスに依存したコマンドデータ)に変換する。具体的には、プリンタドライバ12は、第1のコマンド体系に従って、プリンタ20において紙媒体にレシート画像を形成させるためのコマンドデータや、プリンタ20の印刷部203を制御するためのコマンドデータ(例えば、紙媒体のフィードやカット等を指示するコマンドデータ)を生成する。
プリンタドライバ12によって生成された印刷データは、エミュレータ13に供給される。エミュレータ13は、プリンタドライバ12から供給された印刷データ(元のコマンドデータ)を、任意のコマンド体系から成る印刷データ(目的のコマンドデータ)に変換する。ここで、任意のコマンド体系は、第1のコマンド体系であってもよいし、それ以外の第2のコマンド体系であってもよい。
本実施形態において、エミュレータ13は、第1のコマンド体系から成る元のコマンドデータを、デバイス(プリンタ20)に依存しないコマンド体系から成る中間のコマンドデータにいったん変換する。そして、エミュレータ13は、変換した中間のコマンドデータを、第1のコマンド体系または第2のコマンド体系から成る目的のコマンドデータにさらに変換する。
ここで、プリンタドライバ12に対応したプリンタ20がホスト装置10に接続されている場合、エミュレータ13は、プリンタドライバ12から供給された元のコマンドデータを、中間のコマンドデータにいったん変換した後、第1のコマンド体系から成る目的のコマンドデータに変換する。
一方、ホスト装置10に接続するプリンタ20を変更した場合には、エミュレータ13は、プリンタドライバ12から供給された元のコマンドデータを、中間のコマンドデータにいったん変換した後、変更後のプリンタ20に対応する第2のコマンド体系から成る目的のコマンドデータに変換する。この場合は、変更後のプリンタ20に対応したエミュレータ13を用意する必要がある。本実施形態では、この新たなエミュレータ13の開発を効率的に行うことができるようにしている。なお、その詳細については後述する。
エミュレータ13により生成された印刷データ(目的のコマンドデータ)は、ポートドライバ14を介してプリンタ20に送信される。このとき、ポートドライバ14は、エミュレータ13により生成された目的のコマンドデータを、アプリケーション11により指定されたポートを介してプリンタ20に送信する。
なお、上記のように、プリンタドライバ12に対応したプリンタ20がホスト装置10に接続されている場合、元のコマンドデータおよび目的のコマンドデータは、何れも第1のコマンド体系となる。この場合でも、プリンタドライバ12からコマンドデータを直接プリンタ20に出力せずに、エミュレータ13を介してコマンドデータを出力することにより、以下のようなメリットを得ることができる。
第1に、多種多様なプリンタ接続が可能となる。すなわち、エミュレータ13の仕組みを導入することにより、同一のコマンド体系のプリンタを含む各種エミュレーション対応プリンタを自由に接続することができるようになる。第2に、同一コマンド体系のプリンタ間での互換性を確保することができる。例えば、同じコマンド体系のプリンタであっても、コマンド仕様に変更があると、旧仕様のコマンドに対応したプリンタを新仕様のコマンドに対応のプリンタに置き換えた場合は、コマンド変換が必要となるが、エミュレータ13を用いることで容易に置き換えが可能となる。
図4は、図3に示した本実施形態のエミュレータ13が備える機能構成例を示すブロック図である。図4に示すように、本実施形態のエミュレータ13は、その機能構成として、第1の変換部31および第2の変換部32を備えている。第1の変換部31および第2の変換部32は何れも、モジュール化されたプログラムによって実現される機能構成である。
エミュレータ13は、第1の変換部31および第2の変換部32に対応したモジュールプログラムを登録して実装可能なプラットフォーム30を有しており、各モジュールプログラムをプラグインによってプラットフォーム30に登録または削除することが可能に構成されている。なお、プリンタドライバ12やポートドライバ14もモジュールプログラムで構成し、エミュレータ13と同じプラットフォーム30にプラグインによって登録または削除することを可能に構成してもよい。
第1の変換部31は、プリンタドライバ12により生成された第1のコマンド体系から成る元のコマンドデータ(以下、元データと略すことがある)を、プリンタ20に依存しない特定のコマンド体系から成る中間のコマンドデータ(以下、中間データと略すことがある)に変換する。ここで、第1の変換部31は、元のコマンドデータに含まれる複数のコマンドの1つ1つを、特定のコマンド体系で表されるコマンドに逐次変換することにより、中間のコマンドデータを生成する。
また、第2の変換部32は、第1の変換部31により生成された中間のコマンドデータを、ホスト装置10に接続されるプリンタ20に対応したコマンド体系から成る目的のコマンドデータ(以下、目的データと略すことがある)に変換する。ここで、第2の変換部32は、中間のコマンドデータに含まれる複数のコマンドの1つ1つを、プリンタ20に対応したコマンド体系で表されるコマンドに逐次変換することにより、目的のコマンドデータを生成する。
図5は、第1の変換部31による動作の具体例を説明するための図である。図5(a)は、プリンタドライバ12により生成された第1のコマンド体系から成る元データ(デバイスに依存したコマンドデータ)の一例を示している。また、図5(b)は、第1の変換部31により変換された特定のコマンド体系から成る中間データ(デバイスに依存しないコマンドデータ)の一例を示している。
図5(a)のように、元データは、
<ESC>@<ESC>i22Title<ESC>i00<CR><LF>Hello World<CR><LF><ESC>d2
というデータであり、複数のコマンドが順に配列されたものとなっている。
ここで、各コマンドの機能は以下の通りである。
・<ESC>@:プリンタ初期化
・<ESC>i22:縦3倍、横3倍の拡大文字指定
iに続く数字が縦方向の拡大倍率を指定するものであり、例えば“0”=1倍〜“3”=4倍を指定することが可能である。更にその後に続く数字が横方向の拡大倍率を指定するものであり、例えば“0”=1倍〜“3”=4倍を指定することが可能である。
・Title:印刷する文字列
この例では、“Title”の文字列が縦3倍、横3倍に拡大して印字されることになる。
・<ESC>i00:縦1倍、横1倍の拡大文字指定
・<CR><LF>:印字改行
・Hello World:印刷する文字列
この例では、“Hello World”の文字列が縦1倍、横1倍の通常サイズで印字されることになる。
・<CR><LF>:印字改行
・<ESC>d2:用紙のフィードおよびカット
これは、用紙をカッター位置までフィードしてカットすることを意味する。
以上に示した元データの各コマンドは、第1の変換部31によって、図5(b)に示す中間データの各コマンドにそれぞれ変換される。変換された中間データの各コマンドは、元データの各コマンドと機能は同じであるが、表現形式が異なっている。図5(b)に示すように、中間データの個々のコマンドは、コマンドのタイプを表すデータ“type”と、パラメータの値を表すデータ“value”との組み合わせで構成される。この特定のコマンド体系による表現形式は、デバイスに依存しないものとなっている。元データの各コマンドと中間データの各コマンドとの対応関係は、以下の通りである。
・<ESC>@
→type:initialize value:
・<ESC>i22
→type:magnify height value:2
type:magnify width value:2
中間データでは、縦方向の拡大倍率と横方向の拡大倍率とを別々のコマンドとして分けて記述する。
・Title
→type:text value:Title
・<ESC>i00
→type:magnify height value:0
type:magnify width value:0
・<CR><LF>
→newline value:0
・Hello World
→type:text value:Hello World
・<CR><LF>
→newline value:0
・<ESC>d2
→type:feed value:cutter
type:cut value:100%
中間データでは、フィードとカットとを別々のコマンドとして分けて記述する。
図6は、第2の変換部32による動作の具体例を説明するための図である。図6(a)は、第1の変換部31により生成された特定のコマンド体系から成る中間データ(図5(b)に示したものと同じ)を示している。また、図6(b)は、第2の変換部32により変換された目的データの一例を示している。図6(b)では、目的データのコマンド体系の一例として、元データと同じ第1のコマンド体系を示している。
例えば、プリンタ20の機種に対応したプリンタドライバ12がホスト装置10にインストールされていて、そのプリンタ20をホスト装置10にそのまま接続して使用する場合は、第1のコマンド体系から成る元データを中間データにいったん変換し、それを更に第1のコマンド体系から成る目的データに変換することになる。この場合における中間データの各コマンドと目的データの各コマンドとの対応関係は、以下の通りである。
・type:initialize value:
→<ESC>@:プリンタ初期化
・type:magnify height value:2
→<ESC>h2:縦3倍の拡大文字指定
・type:magnify width value:2
→<ESC>w2:横3倍の拡大文字指定
・type:text value:Title
→Title:印刷する文字列
・type:magnify height value:0
→<ESC>h0:縦1倍の拡大文字指定
・type:magnify width value:0
→<ESC>w0:横1倍の拡大文字指定
・newline value:0
→<CR><LF>:印字改行
・type:text value:Hello World
→Hello World:印刷する文字列
・newline value:0
→<CR><LF>:印字改行
・type:feed value:cutter
→<ESC>j:用紙をカッター位置までフィード
・type:cut value:100%
→<ESC>d0:用紙をカット
なお、図5(a)に示した元のコマンドデータと、図6(b)に示した目的のコマンドデータとは共に第1のコマンド体系によるものであるが、一部コマンドの内容が変わっている。これは、元データから中間データに変換する際に、1つのコマンドを2つに分けて記述した後、中間データから目的データに変換する際に、上記のように分けられた2つのコマンドをそれぞれ元データのコマンド体系に変換したからである。コマンドが一部相違しているものの、どちらのコマンドデータに基づいて印刷を実行しても、印刷結果は全く同じものとなる。
図7は、第2の変換部32による動作の他の具体例を説明するための図である。図7(a)は、第1の変換部31により生成された特定のコマンド体系から成る中間データ(図5(b)に示したものと同じ)を示している。また、図7(b)は、第2の変換部32により変換された目的データの一例を示している。図7(b)では、目的データの一例として、第1のコマンド体系とは異なる第2のコマンド体系(HTML形式のコマンド体系)を示している。
例えば、第1のコマンド体系に対応したプリンタドライバ12がインストールされているホスト装置10において、接続するプリンタ20を変更した場合は、変更後のプリンタ20に対応する第2の変換部32のモジュールプログラムをプラグインによりプラットフォーム30に登録することにより、第2の変換部32を差し替える。そして、プラットフォーム30に元々登録されている第1の変換部31により変換された中間データを、上記のように新たに登録した第2の変換部32によって第2のコマンド体系(HTML形式のコマンド体系)から成る目的データに変換する。この場合における中間データの各コマンドと目的データの各コマンドとの対応関係は、以下の通りである。
・type:initialize value:
→<html><body>:プリンタ初期化
・type:magnify height value:2
type:magnify width value:2
→<h1>:タイトル指定
中間データの拡大文字指定に関する2つのコマンドによりタイトル開始の書式と認識し、<h1>のタグを生成する。
・type:text value:Title
→Title:印刷する文字列
・type:magnify height value:0
type:magnify width value:0
→</h1>:タイトル指定解除
中間データの拡大文字指定に関する2つのコマンドによりタイトル終了の書式と認識し、</h1>のタグを生成する。
・newline value:0
→<p>:印字改行
・type:text value:Hello World
→Hello World:印刷する文字列
・newline value:0
→</p>:印字改行
・type:feed value:cutter
type:cut value:100%
→</body></html>
feed とcutによりドキュメントの終了と認識し、</body></html>のタグを生成する。
以上詳しく説明したように、本実施形態によれば、元データを中間データに変換する第1の変換部31に対応したモジュールプログラムの開発と、中間データを目的データに変換する第2の変換部32に対応したモジュールプログラムの開発とを分けて行うことが可能となる。しかも、中間のコマンドデータは、プリンタ20に依存しない特定のコマンド体系から成るため、第1の変換部31に対応したモジュールプログラムを開発する際には、第2の変換部32のことは全く意識しなくてもよい。同様に、第2の変換部32に対応したモジュールプログラムを開発する際には、第1の変換部31のことは全く意識しなくてもよい。
そして、元データのコマンド体系に対応して作成された第1の変換部31と、目的データのコマンド体系に対応して作成された第2の変換部32とを任意に組み合わせてプラットフォーム30に登録すれば、第1のコマンド体系による元のコマンドデータを第2のコマンド体系に対応した目的のコマンドデータに変換することができる。
このとき、第1のコマンド体系→第2のコマンド体系という変換の組み合わせが新しいものであったとしても、第1のコマンド体系に対応した第1の変換部31のモジュールプログラムまたは第2のコマンド体系に対応した第2の変換部32のモジュールプログラムが別の組み合わせで既に作成済みであれば、第1の変換部31または第2の変換部32に対応したモジュールプログラムを新たに作成する必要はない。
例えば、図6および図7で例示したように、ホスト装置10に接続するプリンタ20を変更した場合、第2の変換部32に対応するモジュールプログラムを新たにプラットフォーム30に登録すればよく、第1の変換部31のモジュールプログラムはそのまま利用することができる。
また、図面による例示はしていないが、プリンタ20に接続するホスト装置10を変更する場合、すなわち、第1のコマンド体系とは異なるコマンド体系に対応したプリンタドライバ12がインストールされたホスト装置10にプリンタ20を接続する場合は、第1の変換部31に対応するモジュールプログラムを新たにプラットフォーム30に登録すればよく、第2の変換部32のモジュールプログラムはそのまま利用することができる。
さらに言えば、接続するホスト装置10とプリンタ20との組み合わせを変更した場合、その組み合わせが新しいものであれば、従来はその新しい組み合わせに係るエミュレーションプログラムを新たに開発する必要があった。これに対して、本実施形態によれば、第1のコマンド体系と第2のコマンド体系との組み合わせが新しいものであっても、第1のコマンド体系に対応する第1の変換部31のモジュールプログラムと第2のコマンド体系に対応する第2の変換部32のモジュールプログラムとが個別に作成済みであれば、それらを組み合わせてプラットフォーム30に登録するだけでよく、エミュレーションプログラムの新たな開発は全く不要である。
以上のことから、本実施形態によれば、ホスト装置10に接続するプリンタ20を変更する場合や、プリンタ20に接続するホスト装置10を変更する場合などに必要となるエミュレーションプログラムの開発を、より少ない工数で効率的に行うことができるようになる。
なお、上記実施形態では、コマンドのタイプを表すデータ“type”と、パラメータの値を表すデータ“value”との組み合わせによって中間のコマンドデータを記述する例について説明したが、表現形式はこれに限定されない。要は、特定のデバイスに依存しない表現形式で、所定のルールに従ってコマンドの内容を意味づけできる形式のコマンド体系であれば適用することが可能である。
また、上記実施形態では、ホスト装置10に接続するプリンタ20を変更する場合や、プリンタ20に接続するホスト装置10を変更する場合を例に挙げて、第1の変換部31または第2の変換部32を変更して適用する例について説明したが、このようなケースに限定されない。例えば、複数のコマンド体系に対応可能なプリンタ20において、使用するコマンド体系を切り替えるようなケースにも本発明を適用することが可能である。また、複数のコマンド体系に対応したプリンタドライバ12がインストールされているホスト装置10において、使用するプリンタドライバ12を切り替えるようなケースにも本発明を適用することが可能である。
また、上記実施形態では、プラットフォーム30に登録する第1の変換部31または第2の変換部32を差し替える形で適用する例について説明したが、本発明はこれに限定されない。例えば、複数種類のコマンド体系に対応した第1の変換部31をプラットフォーム30に登録しておき、何れか1つを任意に選択して適用できるようにしてもよい。同様に、複数種類のコマンド体系に対応した第2の変換部32をプラットフォーム30に登録しておき、何れか1つを任意に選択して適用できるようにしてもよい。
また、上記実施形態では、図5〜図7において、テキスト文字を印字するといった極めてシンプルな例を説明したが、印刷例はこれに限定されない。例えば、テキスト文字の他に、所定の画像やバーコードといったテンプレートによる構成要素を挿入したドキュメントを印刷することも可能である。この場合、中間データにおいてテンプレートは、例えば以下のように記述する。ここで、“value”の値は、テンプレートの画像の格納場所を示すアドレスである。
type:template1 value:Address
また、テンプレート内に差込印刷するフィールドがある場合は、例えば以下のように記述することが可能である。
type:template1 value:Address
type:field1 value:MILK
type:field2 value:$8.99
この例では、“template1”で表されるテンプレート内の2つのフィールドに、“MILK”および“$8.99”という値を差し込んで印刷することを意味している。
また、上記実施形態では、ホスト装置10にインストールされているアプリケーション11がPOSアプリケーションで、プリンタ20がレシート画像を印刷するものである例について説明したが、本発明はこれに限定されない。すなわち、アプリケーション11は任意のものを適用することが可能であり、プリンタ20も任意のものを適用することが可能である。
また、上記実施形態では、第2の変換部32により変換された目的のコマンドデータに従って、プリンタ20によって紙媒体に印刷を実行する例について説明したが、本発明はこれに限定されない。例えば、印刷出力イメージをPDF(Portable Document Format)のファイルに出力するようにしてもよい。この場合、目的のコマンドデータに対応する第2のコマンド体系は、印刷イメージをPDFファイルに出力するためのコマンド体系となる。
また、上記実施形態では、ホスト装置10にインストールされているプリンタドライバ12とは別にエミュレータ13を備える構成について説明したが、本発明はこれに限定されない。例えば、エミュレータ13がプリンタドライバ12の中にビルトインされた構成としてもよい。
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
10 ホスト装置
10A インタフェースカード
11 アプリケーション
12 プリンタドライバ
13 エミュレータ
14 ポートドライバ
20 プリンタ
30 プラットフォーム
31 第1の変換部
32 第2の変換部

Claims (5)

  1. ホスト装置で生成された元のコマンドデータを、プリンタに依存しない特定のコマンド体系から成る中間のコマンドデータに変換する第1の変換部と、
    上記第1の変換部により生成された上記中間のコマンドデータを、上記ホスト装置に接続されるプリンタに対応したコマンド体系から成る目的のコマンドデータに変換する第2の変換部とを備えたことを特徴とするエミュレーション装置。
  2. 上記第1の変換部に対応したモジュールプログラムおよび上記第2の変換部に対応したモジュールプログラムを登録して実装可能なプラットフォームを有し、上記モジュールプログラムを上記プラットフォームにプラグインにより登録または削除可能に構成したことを特徴とする請求項1に記載のエミュレーション装置。
  3. 上記第1の変換部は、上記元のコマンドデータに含まれる複数のコマンドの1つ1つを、上記特定のコマンド体系で表されるコマンドに逐次変換することにより、上記中間のコマンドデータを生成することを特徴とする請求項1に記載のエミュレーション装置。
  4. 上記第2の変換部は、上記中間のコマンドデータに含まれる複数のコマンドの1つ1つを、上記ホスト装置に接続されるプリンタに対応したコマンド体系で表されるコマンドに逐次変換することにより、上記目的のコマンドデータを生成することを特徴とする請求項3に記載のエミュレーション装置。
  5. ホスト装置で生成された元のコマンドデータを、プリンタに依存しない特定のコマンド体系から成る中間のコマンドデータに変換する第1の変換手段、および
    上記第1の変換手段により生成された上記中間のコマンドデータを、上記ホスト装置に接続されるプリンタに対応したコマンド体系から成る目的のコマンドデータに変換する第2の変換手段
    としてコンピュータを機能させるためのコンピュータ読み取り可能なエミュレーションプログラム。
JP2015170510A 2015-08-31 2015-08-31 エミュレーション装置およびエミュレーションプログラム Pending JP2017049654A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015170510A JP2017049654A (ja) 2015-08-31 2015-08-31 エミュレーション装置およびエミュレーションプログラム
PCT/JP2016/055785 WO2017038118A1 (ja) 2015-08-31 2016-02-26 エミュレーション装置およびエミュレーションプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015170510A JP2017049654A (ja) 2015-08-31 2015-08-31 エミュレーション装置およびエミュレーションプログラム

Publications (1)

Publication Number Publication Date
JP2017049654A true JP2017049654A (ja) 2017-03-09

Family

ID=58186988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015170510A Pending JP2017049654A (ja) 2015-08-31 2015-08-31 エミュレーション装置およびエミュレーションプログラム

Country Status (2)

Country Link
JP (1) JP2017049654A (ja)
WO (1) WO2017038118A1 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001325087A (ja) * 2000-05-12 2001-11-22 Seiko Epson Corp 書き換え可能なコマンド記憶部を利用したコマンド解析
JP5708012B2 (ja) * 2011-02-22 2015-04-30 セイコーエプソン株式会社 プリンター変更用プログラム、プリンター変更方法、及び、ホスト装置

Also Published As

Publication number Publication date
WO2017038118A1 (ja) 2017-03-09

Similar Documents

Publication Publication Date Title
JP2018147259A (ja) 情報処理装置、プログラム、記憶媒体、情報処理方法
CN102681802B (zh) 信息处理设备及打印方法
CN106371776B (zh) 打印机驱动器以及信息处理装置
JP2006338411A (ja) 印刷システム、印刷システムの制御方法及びプログラム
US20150302280A1 (en) Data processing apparatus, recording apparatus and control method of the data processing apparatus
JP5446852B2 (ja) 印刷処理装置、印刷処理プログラム、および印刷処理方法
US20110007353A1 (en) Image forming apparatus and computer readable medium
WO2017038118A1 (ja) エミュレーション装置およびエミュレーションプログラム
JP6060534B2 (ja) 画像処理装置、画像処理システムおよび印刷方法
JP6330790B2 (ja) 印刷制御システム、印刷制御装置およびプログラム
JP2009269179A (ja) 印刷装置、プログラム及び記録媒体
JP2005275545A (ja) 帳票印刷制御装置、帳票印刷制御方法、及び帳票印刷制御プログラム
JP6213624B2 (ja) 記録装置、及び、記録装置の制御方法
JP2020144807A (ja) 情報処理装置とその制御方法、及びプログラム
JP6656795B2 (ja) 情報処理装置、情報処理方法、情報処理プログラムおよび記憶媒体
JP5171400B2 (ja) 画像形成装置および画像形成プログラム
JP5353477B2 (ja) 画像処理装置及びプログラム
JP2014029633A (ja) 情報処理装置および印刷システム
JP4735128B2 (ja) ドキュメント処理装置
JP2018129575A (ja) 画像データ出力装置、画像データ出力システム、及び画像データ出力方法
JP2016078333A (ja) 印刷装置、印刷装置の制御方法、及び、印刷システム
KR100528863B1 (ko) 텍스트데이터 추출이 가능한 인쇄장치 및 그의텍스트데이터 추출방법
JP2013228817A (ja) 画像処理装置、及び、画像処理方法
JP2014048737A (ja) 記録装置、及び、記録装置の制御方法
JP2019102050A (ja) 変換装置、印刷システムおよびプログラム