(57)【特許請求の範囲】
【請求項１】
印刷動作を制御するためのファームウェアを備えたラベル／タグプリンタの機能性を改変する方法であり、この方法は、
第１プログラミングコードの開発であり、この第１プログラミングコードは、コンピュータ読み取り可能な媒体で実行されると、前記ラベル／タグプリンタのファームウェアは、複数の機能とインターフェースを可能とした複数のアプリケーションプログラミングインターフェースを有し、前記ラベル／タグプリンタのバーコードを半分だけ印字する等の前記ラベル／タグプリンタに関する様々な機能性を改変するものであり、
前記第１プログラミングコードは、スクリプト言語で書かれ、かつ、前記ファームウェアは、専用プログラミング言語で書かれたものである、
第１プログラミングコードを開発し、
前記コンピュータ読み取り可能な媒体上で前記第１プログラミングコードを実行し、前記複数のアプリケーションプログラミングインターフェースを介して前記第１プログラミングコードを前記ファームウェアとインターフェースさせ、
前記第１プログラミングコードを実行し、前記ファームウェアと前記複数のアプリケーションプログラミングインターフェースを介してインターフェースすることにより、前記ラベル／タグプリンタの前記様々な機能性を改変し、
前記ファームウェアは、前記第１プログラミングコードと前記インターフェースすることによっては改変されないものである、ラベル／タグプリンタの機能性を改変する方法。
【請求項２】
請求項１に記載のラベル／タグプリンタの機能性を改変する方法において、
前記スクリプト言語はＬＵＡであること、
を特徴とするラベル／タグプリンタの機能性を改変する方法。
【請求項３】
請求項２に記載のラベル／タグプリンタの機能性を改変する方法において、
前記スクリプト言語を実行する動作は、ＬＵＡ仮想マシンにおいて、前記第１プログラミングコードを解釈する動作をさらに有すること、
を特徴とするラベル／タグプリンタの機能性を改変する方法。
【請求項４】
請求項１に記載のラベル／タグプリンタの機能性を改変する方法において、
前記第１プログラミングコードは、前記ラベル／タグプリンタ以外のコンピュータデバイス上でテスト可能であること、
を特徴とするラベル／タグプリンタの機能性を改変する方法。
【請求項５】
ラベル／タグプリンタの機能性を改変するためのシステムであり、このシステムは、
印刷機能を有するラベル／タグプリンタと、
スクリプト言語で書かれ、かつ、コンピュータ読み取り可能な媒体で実行可能であり、印刷機能を改変するための命令を含むものである、第１プログラミングコードと、
専用プログラミング言語で書かれ、かつ、前記ラベル／タグプリンタ上で実行されると、印刷動作の制御を行う、ファームウェアと、
前記第１プログラミングコードが実行されるコンピュータ読み取り可能な媒体、から構成され、
前記第１プログラミングコードは、前記コンピュータ読み取り可能な媒体上で実行されると、前記ラベル／タグプリンタのバーコードを半分だけ印字する等の前記ラベル／タグプリンタに関する様々な機能性を改変されるようにするために、前記ファームウェアは、複数の機能とインターフェースを可能とした複数のアプリケーションプログラミングインターフェースを有し、かつ、前記ファームウェアは、前記第１プログラミングコードによる前記ファームウェアとの前記インターフェースでは改変されないものである、ラベル／タグプリンタの機能性を改変するためのシステム。
【請求項６】
請求項５に記載のラベル／タグプリンタの機能性を改変するためのシステムにおいて、
前記スクリプト言語はＬＵＡであること、
を特徴とするラベル／タグプリンタの機能性を改変するためのシステム。
【請求項７】
請求項６に記載のラベル／タグプリンタの機能性を改変するためのシステムにおいて、
前記スクリプト言語を実行する動作は、ＬＵＡ仮想マシンにおいて、前記第１プログラミングコードを解釈する動作をさらに有すること、
を特徴とするラベル／タグプリンタの機能性を改変するためのシステム。
【請求項８】
請求項５に記載のラベル／タグプリンタの機能性を改変するためのシステムにおいて、
前記第１プログラミングコードは、ファームウェアなしで書かれること、
を特徴とするラベル／タグプリンタの機能性を改変するためのシステム。
【請求項９】
印刷動作を制御するためのファームウェアを備えたラベル／タグプリンタの機能性を改変する方法であり、この方法は、
第１プログラミングコードの開発であり、この第１プログラミングコードは、コンピュータ読み取り可能な媒体で実行されると、前記ラベル／タグプリンタのファームウェアは、複数の機能とインターフェースを可能とした複数のアプリケーションプログラミングインターフェースを有し、前記ラベル／タグプリンタのバーコードを半分だけ印字する等の前記ラベル／タグプリンタに関する様々な機能性を改変するものであり、前記第１プログラミングコードは、スクリプト言語で書かれ、かつ、前記ファームウェアは、専用プログラミング言語で書かれたものである、
前記第１プログラミングコードを開発し、
前記第１プログラミングコードと前記ファームウェアを、前記ラベル／タグプリンタに備えられる第１メモリ上に、圧縮形式で格納し、
前記ラベル／タグプリンタを立ち上げる時に、圧縮されている前記第１プログラミングコードと前記ファームウェアの圧縮を復元して、前記ラベル／タグプリンタに備えられる第２メモリへ渡し、
前記第２メモリ上で前記第１プログラミングコードと前記ファームウェアとを実行し、前記複数のアプリケーションプログラミングインターフェースを介して前記第１プログラミングコードを前記ファームウェアとインターフェースし、
前記第１プログラミングコードを実行して前記ファームウェアと前記複数のアプリケーションプログラミングインターフェースを介してインターフェースすることにより、前記ラベル／タグプリンタの前記様々な機能性を改変し、前記ファームウェアは、前記第１プログラミングコードと前記インターフェースすることによっては改変されないものである、ラベル／タグプリンタの機能性を改変する方法。
【請求項１０】
請求項９に記載のラベル／タグプリンタの機能性を改変する方法において、
前記第１メモリは、フラッシュメモリであること、
を特徴とするラベル／タグプリンタの機能性を改変する方法。
【請求項１１】
請求項９に記載のラベル／タグプリンタの機能性を改変する方法において、
前記第２メモリは、ＳＤＲＡＭであること、
を特徴とするラベル／タグプリンタの機能性を改変する方法。
【請求項１２】
ラベル／タグプリンタの機能性を改変するためのシステムであり、このシステムは、
印刷機能を有するラベル／タグプリンタと、
スクリプト言語で書かれ、かつ、コンピュータ読み取り可能な媒体で実行可能であり、印刷機能を改変するための命令を含むものである、第１プログラミングコードと、
専用プログラミング言語で書かれ、かつ、前記ラベル／タグプリンタ上で実行されると、印刷動作の制御を行う、ファームウェアと、
前記第１プログラミングコードと前記ファームウェアが圧縮形式で格納される第１メモリと、
前記第１プログラミングコードと前記ファームウェアが実行される第２メモリと、
から構成され、
前記ラベル／タグプリンタが立ち上げられるとき、前記第１メモリ内の圧縮された前記第１プログラミングコードと前記ファームウェアは、圧縮を復元されて、前記第２メモリへと渡され、
前記第１プログラミングコードと前記ファームウェアが、前記第２メモリ上で実行される時、前記ラベル／タグプリンタの機能が改変されるようにするために、前記第１プログラミングコードと前記ファームウェアが有する複数の機能とインターフェースを可能とした複数のアプリケーションプログラミングインターフェースを有し、かつ、前記ファームウェアは、前記第１プログラミングコードが前記ファームウェアと前記インターフェースすることによっては改変されないものである、ラベル／タグプリンタの機能性を改変するためのシステム。
【請求項１３】
請求項１２に記載のラベル／タグプリンタの機能性を改変するためのシステムにおいて、
前記第１メモリはフラッシュメモリであること、
を特徴とするラベル／タグプリンタの機能性を改変するためのシステム。
【請求項１４】
請求項１２に記載のラベル／タグプリンタの機能性を改変するためのシステムにおいて、
前記第２メモリはＳＤＲＡＭであること、
を特徴とするラベル／タグプリンタの機能性を改変するためのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にプリンタに関するものであり、より具体的には、ラベル／タグプリンタのファームウェアとのインターフェースを提供することにより、プリンタの性能を向上させるものである。
【背景技術】
【０００２】
ほとんどのラベル／タグプリンタは、従来、予め定義されている専用の制御言語を介して動作する。例えば、ＳＡＴＯのバーコードプリンタ言語（ＳＢＰＬ）、ＺＥＢＲＡのプログラミング言語（ＺＰＬ）、ＤＡＴＡＭＡＸのプリンタ言語（ＤＰＬ），ＩＮＴＥＲＭＥＣのプリンタ言語（ＩＰＬ）等は、全て、ユーザーがプリンタの出力機能を変更するのを可能にするために、極めて最小の熟練レベルしか要しない専用機能を備えている。種々のプリンタモデル、例えば、上記に挙げたプリンタ言語をサポートするプリンタメーカーにより供給されるプリンタモデルは、予め定義された個別の命令により定義された印刷タスクを実行することができる。一般に、プリンタ機能の特定の変更は、プリンタのファームウェアを改変することにより行う。
【０００３】
各プリンタのそれぞれの制御言語は予め定義されている。したがって、既存のプリンタは、予め定義されたタスクを行うことしかできない。それゆえ、種々のプリンタ機能を追加する必要がある場合は、ファームウェアを変更する必要がある。この改訂を行うには、しばしば、複雑なソースコードの改訂版を作成したり、その改訂版を作成するための埋め込みプログラム開発ツールを作成することが必要となる。これは、顧客が現場で行うことができるような柔軟性をもったアプローチやカスタマイズではない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術においては、プリンタのファームウェアのソースコードを変更しないと、ラベル／タグプリンタのソフトウェアをカスタマイズ又は改変することができず、また、これには高価な開発ツールが必要であった。
【０００５】
したがって、印刷動作を制御するファームウェアを備えたプリンタの機能性を改変するためのシステム及び方法が定義される。第１プログラミングコードは、それがコンピュータ読み取り可能な媒体上で実行されたとき、プリンタのファームウェアとインターフェースし、プリンタの機能を改変するように開発される。第１プログラミングコードは、ＬＵＡプログラミング言語のような第１プログラミング言語で書かれており、ファームウェアは、上記第１プログラミング言語とは異なる第２プログラミング言語で書かれたものである。したがって、第１プログラミングコードがコンピュータ読み取り可能な媒体上で実行され、プリンタの機能は、第１プログラミングコードがファームウェアとインターフェースした結果として改変される。ファームウェア自体は、このインターフェースすることによっては改変されない。
【課題を解決するための手段】
【０００６】
好適な実施形態において、インタープリターされるスクリプト言語がラベル／タグプリンタに関連して提供され、これを使用して、アプリケーションプログラミングインターフェース（ＡＰＩ）を介してプリンタのファームウェアとインターフェースして作用するソフトウェアアプリケーション（すなわち、プリンタアプリケションプログラム）を開発する。
【０００７】
好適には、ラベル／タグプリンタには、ＬＵＡ仮想マシンが備えられる。好ましくは、ＬＵＡスクリプト言語は、アプリケーションプログラミングインターフェース（ＡＰＩ）を介してプリンタのファームウェアとインターフェースする、ラベル／タグプリンタに適応したプリンタアプリケーションを開発するのに使用される。これにより、プリンタの全てのファームウェア及びハードウェアの機能へのアクセスが可能となる。
【０００８】
本発明のその他の特徴及び利点は、付随する図面を参照した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【０００９】
本発明を説明する目的のため、図面に、好適な形態を示す。しかし、本発明は、図に示されたそのままの構成及び手段に限定されるべきものでないことに留意されたい。本発明の特徴及び利点は、付随する図面を参照した以下の説明により明らかになるであろう。
【００１０】
【図１】図１は、本発明によるハードウェアの構成例を示す。
【図２】図２は、図１に示す情報処理装置の一例の機能素子を示す。
【図３】図３は、好適な実施形態により提供されるプリンタＡＰＩを示すブロック図である。
【図４】図４は、ラベル／タグプリンタにより印刷される、本発明により提供されたＡＰＩにより定義される、ラベルの例を示す。
【図５】図５は、横位置、縦位置のそれぞれを示し、かつ、ラベル上に提供されるデータフィールドについて定義されるデータフィールドサイズの例を示す。
【図６】図６は、ラベル／タグプリンタにより印刷され、ＡＰＩにより定義される、ラベルの別の例であり、好適な実施形態により提供される色オプションを示すものである。
【図７】図７は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。
【図８】図８は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。
【図９】図９は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。
【図１０】図１０は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。
【発明を実施するための形態】
【００１１】
本技術によれば、ラベル／タグプリンタに供給されているファームウェアのソースコードを更新、変更、又は改変すること無しに、かつ、高価な開発ツールの必要がなく、各人がラベル／タグプリンタの設定をカスタマイズすることが可能となるように、一つ以上のインターフェースが備えられる。故に、ラベル／タグプリンタは、プリンタの専用のインタープリタ型言語を使用することにより、アプリケーションを記述するのにその他のツールを使用することなく、効果的に、アプリケーション開発を行うことが可能となっている。
【００１２】
好適な実施形態においては、インタープリタ型スクリプト言語が、ラベル／タグプリンタと組み合わせて供給される。カスタム化及び拡張機能のためのプリンタファームウェアへの作用、及び操作が可能となるように、プリンタアプリケーションプログラミングインターフェース（ＡＰＩ）として形式が整えられたプリンタ拡張機能のセットが供給される。これらのＡＰＩは、ラベル／タグプリンタに提供されていることが望ましい。好適な実施形態において、インタープリタ型スクリプト言語はＬＵＡである。
【００１３】
上記プリンタファームウェアを、例えば、スクリプト言語で開発された上記一群のプリンタＡＰＩにインターフェースすることにより、ラベル／タグプリンタが種々のタスクを行うのに使用するソフトウェアによる命令を介して、ラベル／タグプリンタのユーザーは、改善された柔軟性やユーザー補助機能を享受することができる。プリンタのファームウェアと組み合わせてＡＰＩを使用することにより、ユーザーは、ラベル／タグプリンタのファームウェアのソースコードを改変する必要が無くなり、また、ラベル／タグプリンタのファームウェアソースコードの変更や改変に一般に必要となる開発ツールにアクセスする必要が無くなる。以下に詳しく記述するように、本技術に関連して提供されるＡＰＩは、種々の機能、例えば、違う種類のキーボードや表示ディスプレイのためのインターフェース機能、可変フォントや印刷レンダリングの形式を提供する機能、プリンタのファイルシステムにアクセスする機能、プリンタの設定機能、及び、ラベル／タグプリンタに関係する種々のその他の機能を提供する。
【００１４】
よって、本発明は、ファームウェアのソースコードを改変することなく、また、例えば、予め定義された専用の制御ファームウェア及びプリンタのファームウェアを改変するためのソフトウェア開発ツールを含む高価な埋め込み型システムを必要とすることなく、複数の印刷に関する解決策を提供するものである。
【００１５】
参照図面においては、同様の参照番号は同様の構成要素を示す。図１は、本発明の実施形態における、直接接続されたケーブルを介して、又は、通信ネットワークを介して、プリンタアプリケーションプログラムを供給及びインストールするためのハードウェアの構成例を示すものであり、ここでは一般的に、システム１００と称する。図１中での例においては、情報処理装置１０２には、例えば、本技術の当業者には周知であるように、ＬＵＡプログラミング言語でアプリケーションを開発するためのプログラム統合開発環境（ＩＤＥ）が提供されており、。情報処理装置１０２は、本発明をサポートするために必要な全てのデータベースを有するのが好ましい。しかし、ここでの情報処理装置１０２は、通信ネットワーク１０６又は、情報処理装置１０２が結合できるその他の通信ネットワークを介して、必要とされるいずれのデータベースにもアクセスできるようなものを想定している。通信ネットワーク１０６は、インターネットのような世界的な公共ネットワークであることが好ましいが、広域ネットワーク（ＷＡＮ）やローカルネットワーク（ＬＡＮ）や、又はイントラネットやコンピュータデバイスや周辺機器との通信を可能にするその他のネットワークでもよい。
【００１６】
好適な実施形態において、情報処理装置１０２は、通信ネットワーク１０６を介してデータの送受信をすることができる任意のコンピュータ読み取り可能媒体機器であり、例えば、大型汎用コンピュータ、小型コンピュータ、パーソナルコンピュータ、ノート型コンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、及び、ウェブテレビのようなインターネットアクセス可能な機器である。また、情報処理装置１０２は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥ（登録商標）、ＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸ（登録商標）のようなウェブブラウザのソフトウェアが装備されていることが望ましい。情報処理装置１０２は、既知のデータ通信ネットワーク技術を使用した通信ネットワーク１０６に接続される。
【００１７】
また、図１には、プリンタ１０８が示されている。プリンタ１０８は、好ましくは、ラベル／タグプリンタであり、情報処理装置１０２から受けたデータのラベル及びタグを印刷する操作が可能であるものが好ましい。情報処理装置１０２に関係無く、又は、情報処理装置１０２と連携して、ラベル／タグプリンタ１０８の機能の入出力を行うことが可能とするために、ラベル／タグプリンタ１０８には、キーボード１１０及び表示ディスプレイ１１２が備えられてもよい。
【００１８】
図２は、情報処理装置１０２の一例の機能構成要素を示し、これは、ソフトウェアコードを実行し、情報処理装置１０２の動作を制御するための一つ以上の中央処理装置（ＣＰＵ）２０２を含んでいる。その他の構成要素としては、読み取り専用メモリ（ＲＯＭ）２０４、ランダムアクセスメモリ（ＲＡＭ）２０６、通信ネットワークを介して他のコンピュータデバイスとデータへのデータの送受信を行うための一つ以上のネットワークインターフェース２０８、プログラミングコードのデータベース及びアプリケーションデータを格納するための、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、ＣＤＲＯＭ、又はＤＶＤのような記憶装置２１０、キーボード、マウス、トラックボール、マイク等の一つ以上の入力装置２１２、及び表示ディスプレイ２１４が挙げられる。さらに、また、ラベル／タグプリンタ１０８には、一つ以上の機能素子２０２から２１４が好適に形成、又は備えられてもよい。
【００１９】
情報処理装置１０２の種々の構成要素は、物理的に同じ筐体に含まれる必要は無く、また、一箇所に設置される必要もない。例えば、記憶装置２１０は、情報処理装置１０２の残りの構成要素から離れた場所に設置してもよい。また、記憶装置２１０は、ネットワークインターフェース２０８を介した通信ネットワーク１０６を介してＣＰＵ２０２に接続してもよい。情報処理装置１０２は、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）、Ｊａｖａ（登録商標）アプレット、Ａｃｔｉｖｅ−Ｘ制御プログラムを通信するための通信ウェブサーバーとして機能し、また、必要なデータベース、フォーラム、及びその他の通信サービスを提供することができるようにするため、十分な記憶容量を有するメモリを有することが好ましい。情報処理装置１０２は、例えば、図２に示すように、その予測される操作環境に適した構成要素と共に配置される。ＣＰＵ２０２、ネットワークインターフェース２０８、及びメモリや格納素子については、期待される要求が満たされるようにその能力が確保されるように選択する。
【００２０】
本発明は、コンピュータが実行可能なコード（すなわちソフトウェア）を作成する分野の当業者において、一つ以上の一般向けコンピュータプログラミング言語と開発環境の組み合わせたもの（これは、ＬＵＡ、Ｃ、Ｃ＋＋、Ｖｉｓｕａｌ  Ｂａｓｉｃ、ＪＡＶＡ（登録商標）、ＨＴＭＬ、ＸＭＬ、ＡＣＴＩＶＥ  ＳＥＲＶＥＲ  ＰＡＧＥＳ、ＪＡＶＡ（登録商標）  ｓｅｒｖｅｒ  ｐａｇｅｓ、ｓｅｒｖｌｅｔｓ、ＭＹＳＱＬ、及びＰＨＰを含むが、これらに限るものではない）を使用することにより、ここに述べる機能を実装することを可能とするものである。
【００２１】
本発明は、ここにおいては一例として、ウェブブラウザとウェブサイトサーバー（例えば、情報処理装置）を使用したウェブを基本としたシステムについて記述しているが、システム１００は、そのような構成に限るものではない。ここでは、システム１００は、既知の通信方法、例えば、インターネットワークパケット交換（ＩＰＸ）、ダイアルアップネットワーク、第三者機関のネットワーク、個人のネットワーク、又は高度情報通信網（ＶＡＮ）のようなローカルエリアネットワークプロトコルと結合した非インターネットブラウザであるＷＩＮＤＯＷＳ（登録商標）ビューワーを使用して、ラベル／タグプリンタ１０８が通信を行い、かつ、情報処理装置１０２から受け取ったデータを出力できるように構成されると想定する。
【００２２】
さらに、情報処理装置１０２には、任意の適切なオペレーティングシステムを使用することができると想定する。上記任意の適切なオペレーティングシステムには、例えば、ＤＯＳ、ＷＩＮＤＯＷＳ（登録商標）３．ｘ、ＷＩＮＤＯＷＳ（登録商標）９５、ＷＩＮＤＯＷＳ（登録商標）９８、ＷＩＮＤＯＷＳ（登録商標）  ＮＴ、ＷＩＮＤＯＷＳ（登録商標）２０００、ＷＩＮＤＯＷＳ（登録商標）  ＭＥ、ＷＩＮＤＯＷＳ（登録商標）  ＣＥ、ＷＩＮＤＯＷＳ（登録商標）  ＰＯＣＫＥＴ  ＰＣ、ＷＩＮＤＯＷＳ（登録商標）  ＸＰ、ＭＡＣ  ＯＳ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、ＰＡＬＭ  ＯＳ（登録商標）、ＰＯＣＫＥＴ  ＰＣ、及びその他の適当なオペレーティングシステムを含む。
【００２３】
好ましい実施形態において、ラベル／タグプリンタ１０８のアプリケーションは、ＬＵＡプログラミング言語で開発される。好適な実施形態において、アプリケーションに備えられたＬＵＡプログラミングステートメントの実行を機能することができるように機能するＬＵＡインタープリタが備えられる。一般の高度プログラミング言語と違って、ＬＵＡは、スクリプト言語であり、基本的なプログラミング言語ではない。種々の機能を実行させるようなＳＢＰＬ命令や又は、その他の予め定義された命令を受ける一般のラベル／タグプリンタとは違って、本発明は、ＬＵＡ言語の拡張である、プリンタファームウェアとインターフェースし、また、ＬＵＡインタープリタにより解釈されるプリンタＡＰＩを実装するものである。これにより、関数呼び出しを介すること等により、より高度で複雑なアプリケーションを開発することが可能になる。さらに、従来のラベル／タグプリンタでは、一箇所の変更点を実装するために、対応するファームウェアアプリケーションを完全に上書きする必要があったが、ＬＵＡプログラミング言語の拡張機能であるＡＰＩを実装することにより、ラベル／タグプリンタ１０８の機能を部分的に改変することが可能となった。
【００２４】
本発明の別の利点は、ＬＵＡプログラミング言語で開発され、ラベル／タグプリンタ１０８により解釈されるアプリケーションは、よりコンパクトな構成であり、かつ、著しく動作が速いということが挙げられる。この理由は、従来のラベル／タグプリンタは、種々の機能（本発明においては、ＡＰＩにより達成される）を実行するのにより多くのソフトウェア命令を必要とするからである。さらに、ＬＵＡインタープリタは、関数呼び出しや変数宣言等における利点を利用することにより、効率的に本発明のＡＰＩとインターフェースし、メモリに対する要求が減ったことにより、コードの利便性が、従来技術におけるラベル／タグプリンタより著しく向上した。
【００２５】
従来技術のラベル／タグプリンタに対する本発明のＬＵＡプリンタＡＰＩの別の利点は、インタプリタが、ＳＢＰＬやＺＰＬのような既存の制御言語を介して印刷機能にアクセスする必要なく、印刷機能にアクセスすることが可能ということである。いい換えると、ＡＰＩは、ラベル／タグプリンタ１０８の印刷機能を制御するファームウェアに対して、直接インターフェースする。これは、従来技術によるシステムに対する改善点である。従来技術によるシステムにおいては、例えば既存の制御言語とのインターフェースするためにＳＢＰＬ命令の生成が必要となり、これにより、プリンタの機能を改変するのに関連した直接、及び間接的な工程が増加してしまう。
【００２６】
さらに、本発明のＡＰＩは、ＬＵＡインタープリタを介してインターフェースするので、ラベル／タグプリンタ１０８における内部メモリの必要性を除いて、アプリケーションのサイズの制限が実質的に無くなる。これは、例えば、インストールされうるコードの行数の制限を持ち、また、動的メモリ割り当てをサポートしていない従来技術におけるラベル／タグプリンタに対する改善点である。本発明におけるＡＰＩは、例えば、或る特定の機能のために実装されたプログラミングコードの量を増やすことができるようにメモリを解放すること（ガーベジコレクション機能）等の関数呼び出しやその他の高度なプログラミング言語機能をサポートしている。
【００２７】
本発明の別の利点は、ＭＩＣＲＯＳＯＦＴ  ＶＩＳＵＡＬ  ＳＴＵＤＩＯやその他の統合的開発環境（ＩＤＥ）等の開発ツールをＬＵＡのプラグイン構成要素として使用できるということが挙げられる。各ラベル／タグプリンタ１０８のアプリケーション開発は、ビジュアルな統合開発環境におけるソフトウェア開発になじんだ、又は快適さを感じる開発者にとってより魅力的なものとなる。
【００２８】
本発明の別の利点は、プリンタ動作をシミュレーション可能であるＬＵＡ仮想マシンを有するコンピュータ上で、ＬＵＡアプリケーションを走らせることが可能であるということが挙げられる。ユーザーは、アプリケーションをプリンタにダウンロードしてインストールする前に、開発したＬＵＡアプリケーションをコンピューター上でテストすることが可能であり、これにより、ＬＵＡアプリケーションをテストするために実際にプリンタを動作させることが不要となる。
【００２９】
好適な実施形態において、複数の独立したＬＵＡ仮想マシンは、連結操作可能であり、また、これらは、ネットワーク上の一つのラベル／タグプリンタ１０８に実装することができる。この方法においては、例えば、地域的な設定や言語の設定等の種々のカスタマイズ設定に応じてデータを並べかえるバーコードプリンタに対して、設定可能な動的ローカル設定が実装可能である。種々のローカル設定は、特定のコンピュータシステムのオペレーティングシステム上に格納されてもよい。また、動作の変更は、例えば、このローカルの設定に依存してもよい。
【００３０】
ＬＵＡインタープリタを介してＡＰＩを実装することにより、従来技術においてこれまで利用できたものに加えて、さらなる追加機能が提供される。好適な実施形態における追加のプリンタ機能及び改善された実装について以下に説明する。
【００３１】
好ましくは、一つの実施形態においては、プログラム関数呼び出し、及び、変数の宣言、アドレッシング、及び変数を介してのプログラム関数への値の受け渡し機能は、ＬＵＡの実装を介してサポートされる。好ましくは、プログラム関数は、関数が成功して完了したかどうかを現すエラーコードのような値を返す。例えば、関数が意図したように実行されなかった場合、エラーの原因、エラーの症状、エラーの結果、又はその他の適切な情報を現すエラーコードを返す。好ましくは、テーブル名、文字列の値、日付、数値等の関数名や変数名はユーザーに積極的には表示されない。又は、少なくとも、一部又は全てを隠して表示を行ってもよい。
【００３２】
セキュリティの実装は、例えば、ユーザーが特定のデータや、一つ以上のデータディレクトリにアクセスしたり、又は、データディレクトリやデータファイル等を作成、消去、又は改変する、といった種々のタスクを実行するための十分な認証やアクセス許可権を持っていることを要求すること等は、ここに記載している技術によりサポートされるのが望ましい。
【００３３】
ＡＰＩによりサポートされる別の特徴は、インターフェースのレンダリング機能である。ここで使われている「レンダリング」という意味は、一般に、対話式プログラミングオブジェクトの作成を示す。例えば、レンダリングされたオブジェクトは、データフィールド（テキストベースのフィールド）、バーコード、グラフィックフィールドとして形成されてもよい。これらレンダリングされたオブジェクトは、例えば、メソッドのようなもので操作できる一つ以上の特性を有している。好ましくは、ＡＰＩによりレンダリングされたオブジェクト（例えば、テキストフィールド、バーコード、及び、グラフィックフィールド）には、ラベルオブジェクトが備えられ（例えば付加される、又は埋め込まれる）、これは、ラベル／タグプリンタ１０８を介して供給される。
【００３４】
さらに、ＡＰＩは、エラーを出すことなしに、ラベルの開発中、又はラベルの印刷中、又はその両方の処理中において、少なくともその一部が、ラベル／タグプリンタ１０８のプリント可能領域の外側にあるラベル上に位置するバーコードのようなオブジェクトの供給をサポートする。この特徴により、例えば、ラベル／タグプリンタ１０８により、半分しか印刷されないバーコードを有するラベルを開発することが可能となる。この特徴により、ユーザーが部分的、又は不完全なオブジェクト、例えば、バーコードをラベル／タグプリンタ１０８を使用して、ラベル上に印刷したい場合において、従来技術の方法に対する改善点となっている。
【００３５】
実施形態において、及び動作中において、レンダリングされたオブジェクト、例えば、テキストフィールド、バーコード、グラフィックボックス、画像等の各位置は、水平、及び、垂直位置パラメータ（例えば、「ｈＰｏｓ」及び「ｖＰｏｓ」）により定義される。このパラメータ値は、オブジェクトの固定点の位置を定義することが好ましい。パラメータｈＰｏｓ及びｖＰｏｓが適切に設定された場合、あるエラーパラメータ（例えば「Ｅ＿ＳＵＣＣＥＳＳ」）が定義される。また、パラメータｈＰｏｓ及びｖＰｏｓが適切に設定されなかった場合、違うエラーパラメータ（例えば「ＥＰＡＲＡＭ」）が定義される。
【００３６】
位置決めを定義するためのパラメータに加えて、本発明は、オブジェクト、例えば、バーコードや画像オブジェクトの倍率をサポートする。例えば、水平及び垂直倍率パラメータ（例えば、「ｈＭａｇ」及び「ｖＭａｇ」）は、水平及び垂直ピクセル倍率を設定するために定義されており（例えば、１〜１２倍）、これにより、オブジェクトの水平及び垂直倍率の程度を現す。
【００３７】
図３は、好適な実施形態により提供される、ラベル／タグプリンタ１０８をのインターフェースするための関連するＡＰＩ３０２を示すブロック図である。図３に示すように、キーボードＡＰＩ３０４は、ラベル／タグプリンタ１０８に統合されたキーボード１１０からの信号を受信及び、解釈（読み込み）する働きを行う。又は、キーボードＡＰＩ３０４は、ラベル／タグプリンタ１０８に直接結合されていない外部キーボード又は他の入力デバイス２１２からの信号を読み込んで解釈する働きを行う。ディスプレイＡＰＩ３０６は、様々なテキスト、及び図形コンテンツを、プリンタ１０８に統合された表示ディスプレイ１１２に書き込む働きを行う。又は、ディスプレイＡＰＩ３０６は、テキスト、及び図形コンテンツを、ラベル／タグプリンタ１０８に付属した外部表示ディスプレイ２１４に書き込む働きを行う。ディスプレイＡＰＩ３０６は、例えば、様々な違った種類の文字言語のためのフォントや符号化方式を広く選択できるようにサポートするのが望ましい。
【００３８】
引き続き図３を参照して説明する。印刷レンダリングＡＰＩ３０８は、ラベル／タグプリンタ１０８により印刷されるラベル上に出力されるユーザー定義のデータフィールド要素をサポートする。このようなデータフィールド要素の例として、テキストデータフィールド、一次元及び二次元バーコード、線と長方形、三角関数、画像、個々のピクセル、図形、書式付き日付、及びカウント値が上げられる。プリンタレンダリングＡＰＩ３０８により、ユーザーは、データーフィールドの型、及び、特定のラベル及びタグ上に出力するデータフィールドの位置を定義することができる。プリンタレンダリングＡＰＩ３０８により、様々な言語をサポートするフォント及び符号化方式のための選択可能なオプションが提供されることが望ましい。固定長及び可変長データ形式がサポートされていることが望ましく、これは、フィールド定義に含まれるか、又は、プリンタレンダリングＡＰＩ３０８を介して、ファイル又は通信インターフェースから入力される。その他の特徴として、上記の一つ以上のフィールドオブジェクトの色を定義するための選択可能色出力オプションをサポートすることが挙げられる。さらに、白紙や印刷されたラベル／タグを出力するために、印刷レンダリングＡＰＩ３０８の関数として、一つ以上の印刷命令又は給紙命令を発行することが可能である。さらに、印刷レンダリングＡＰＩ３０８により、ユーザーが選択可能な印刷品質制御機能が提供されることが望ましい。
【００３９】
さらに、コンパクトフラッシュ（登録商標）メモリカード、ＳＤメモリカード、ＵＳＢメモリ機器等である、ラベル／タグプリンタ１０８の読み込み専用メモリファイルシステム、ランダムアクセスメモリファイルシステム、フラッシュメモリファイルシステム、又は、外部メモリ源のうち、少なくとも一つに置かれたファイルについて、ユーザーは、格納、消去、読み込み及び書き込みの操作が可能となるようにするため、ファイルシステムＡＰＩ３１０が備えられることが望ましい。ラベル／タグプリンタ１０８に付随した種々の内部及び外部メモリ源に格納されたデータやファイル等にアクセスする手段をユーザーに提供したことにより、ユーザーは、より柔軟に、ラベル／タグプリンタ１０８の動作の制御及び操作を行うことができる。ファイルシステムＡＰＩ３１０に関連して提供される望ましい機能の例としては、ラベル／タグプリンタ１０８のファイルシステムのフォーマット、登録するディレクトリの階層の決定、特定のディレクトリへの移動、新しいディレクトリの作成、ファイルのコピー、ディレクトリ又はファイルの消去、ファイルシステムにおいて使用するバイト又は使用可能なバイトの決定、及び、ファイル又はディレクトリへのアクセス権の変更が挙げられる。
【００４０】
引き続き図３を参照して説明する。無線識別（ＲＦＩＤ）ＡＰＩ３１２は、ラベル／タグプリンタ１０８に備えられたＲＦＩＤチップ／インレイ（内部構成部材）への読み込み及び書き込みのためのアクセスをサポートする。さらに、リアルタイムクロックＡＰＩ３１４により、ユーザーは、日時データを定義し、また、日時データをラベル／タグプリンタ１０８から読み込むことを可能としている。コンフィギュレーションＡＰＩ３１６は、ユーザー定義のプリンタに特定のパラメータをサポートするものである。例えば、コンフィギュレーションＡＰＩ３１６を使用することにより、ユーザーは、印刷スピード、印刷品質、日時機能、現地言語設定、メニュー制御等に関連した通信パラメータを定義することができる。一般にラベル／タグプリンタ１０８に備えられたファームウェアに限定され、特別なソフトウェアと技能を持った技術的な熟練者にのみ改変可能であるようなラベル／タグプリンタ１０８の制御動作をユーザーが定義及び改変できるようにするのに、コンフィギュレーションＡＰＩ３１６は特に有用である。また、コミュニケーションＡＰＩ３１８は、外部Ｉ／Ｏインターフェース機器との通信を制御することが望ましい。複数の通信プロトコルと仕様がサポートされる。サポートされる通信プロトコルと仕様の例として、ＲＳ２３２、ＲＳ４８５、ＲＳ４２２、ＵＳＢ、ＬＡＮ、ＷＡＮ、ＷＬＡＮ、及び外部デジタルリレーインターフェースが挙げられる。
【００４１】
図３に示すその他のＡＰＩ３０２として、プリンタに含まれるデバイスを制御する働きを行うデバイスＡＰＩ３２０、ある時点のプリンタの状態を報告する働きを行うプリンタステータスＡＰＩ３２２、ラベル／タグプリンタ１０８に送られたＸＭＬ命令、及び／又は、ＸＭＬファイルのような命令、及び／又は、ファイルの構文解析を行う働きをするパーサーＡＰＩ３２４が挙げられる。構文解析が行われると、ＸＭＬ命令は、インタープリトすることが可能となり、ラベル／タグプリンタ１０８による出力を制御するのに使用することができる。
【００４２】
デバイスＡＰＩ３２０、プリンタステータスＡＰＩ３２２、及びパーサーＡＰＩ３２４に加えて、ＡＰＩ３０２は、種々の用紙機能をサポートするためのペーパーハンドリングＡＰＩ３２６を有することが望ましい。この機能として、ラベル及びタグの一つ以上の用紙サイズについて、印刷給紙、用紙送り、行送り、テスト送り等が挙げられる。さらに、ラベル／タグプリンタ１０８に備えられるベル、ブザーやその他の音声装置に対する音声制御機能を提供するサウンドＡＰＩ３２８が挙げられる。さらに、ラベル／タグプリンタ１０８に備えられるラベルギャップセンサーやラベルマークセンサー等のセンサー機器からの情報を受信する働きを行い、また、ラベルの末端に達した時点、インクリボンの末端に達した時点、ラベルやインクリボンの末端に近づた時点等の種々の条件を判断する働きを行うセンサーＡＰＩ３３０が挙げられる。ある実施形態において、センサーＡＰＩ３３０は、一つ以上の条件が発生したと判断された時に警告を発する働きをする。図３に示されるその他のＡＰＩ３０２として、ラベル／タグプリンタ１０８に起こった種々のイベントを受信し処理するイベントＡＰＩ３３２、必要に応じてデータのビット操作を行う働きをするビットハンドリングＡＰＩ３３４、ラベル／タグプリンタ１０８に起きるかもしれないエラー、例えば、停電、メモリーエラー、用紙詰まり等を処理する働きをするエラーハンドリングＡＰＩ３３６が挙げられる。
【００４３】
したがって、好適な実施形態においては、例えば、ＬＵＡプログラミング言語やＣプログラミング言語で複数のＡＰＩ３０２が開発され、インタープリターが既存の制御言語、例えば、ＳＢＰＬやＺＰＬを介して印刷機能にアクセスすることなく、それらをラベル／タグプリンタ１０８に実装することができる。一つ以上の実施形態において、図３に示したＡＰＩ３０２に加えて、種々のその他の機能を実装することが想定できる。例えば、開発を迅速及び容易にするため、テーブル及び／又は、メタテーブルを複製する機能をサポートする。その他の例としては、エラーコード値をエラー文字列値の結果で決定する機能（例えば、ｅｒｒ２ｓｔｒ）、一つ以上の書式（例えば、ＸＭＬ、ＬＵＡ、及びその他の形式）でテーブルを保存する機能、複数の書式で提供されたテーブルをロードする機能、及び、メニュー及びプロンプト用の複数の書き言葉や話し言葉をサポートする機能等が挙げられる。
【００４４】
図４は、好適な実施形態において提供されるものであり、ＡＰＩ３０２を使用して定義されたものである、ラベル／タグプリンタ１０８により印刷された例のラベル４００を示す。図４に示すように、印刷されたテキストデータの向き及び位置に関わらず、アンカーポイント４０２は、ラベル４００上のテキストデータの左上位置（例えば、ｈＭａｇ及びｖＭａｇ変数で定義される）に定義されている。また、図４には、ラベル４００がラベル／タグプリンタ１０８により印刷される時のラベル４００の給紙方向４０４が示されている。ラベル４００上に印刷されたテキストデータに加えて、図形画像４０６がレンダリングＡＰＩ３０８により、レンダリングされる等して提供される。
【００４５】
図５は、ラベル４００に提供するデータフィールド５００用に定義されたデータフィールドサイズの例を示し、また、データフィールド５００の左上隅の水平及び垂直位置（例えば、ｈＰｏｓ及びｖＰｏｓ）５０２、及び、右下隅位置５０４の水平及び垂直位置をそれぞれ示す。さらに、データ方向関数５０６（例えば、ｄｉｒ（０，．３５９））は、それがラベル４００上に出力される時の、データフィールド５００の相対的な向きを示す。
【００４６】
図６は、好適な実施形態において提供されるものであり、ＡＰＩ３０２を使用して定義されたものである、ラベル／タグプリンタ１０８により印刷された他の例のラベル６００を示す。これは、。図６に示す例のラベル６００において、複数の色６０２、６０４、及び６０６がラベル６００上に、それぞれの位置６０８に供給されているのが示されている。したがって、ここに示すように、ＬＵＡ  ＡＰＩは、ＬＵＡインタプリタを介してＡＰＩを解釈することにより、ラベル／タグプリンタ１０８のファームウェアとＬＵＡインタプリタと共同して動作するインターフェースであり、顧客は、好ましい印刷動作を実行するＬＵＡアプリケーションプログラムを作成することができる。
【００４７】
図７を参照して説明する。好適な実施形態において、ラベル／タグプリンタ１０８は、２つの種類のメモリ、すなわち、フラッシュメモリ７０２とシンクロナスＤＲＡＭ（ＳＤＲＡＭ）７０４が備えられる。フラッシュメモリ７０２（ＲＯＭの代わりとして用いるのが望ましい）は、その他の適当なデータのうち、ラベル／タグプリンタ１０８の立ち上げコード、基本ファームウェア（例えば、ドライバやバーコード書式等）、ＬＵＡ  ＡＰＩ及び、ＬＵＡ仮想マシン等を格納する。本技術においてよく知られているように、フラッシュメモリ７０２に格納された立ち上げコードは、プリンタ１０８の立ち上がり処理において動作する。好適な実施形態において、ラベル／タグプリンタ１０８の基本ファームウェア及びＬＵＡ  ＡＰＩは、圧縮された形式でフラッシュメモリ７０２に格納されており、よって、フラッシュメモリ７０２のメモリ容量を節約できる。
【００４８】
ラベル／タグプリンタ１０８の立ち上げ処理前においては、ＳＤＲＡＭ７０４は、空きスペースを大きくしておき、また、データをすぐ受信できるようにしておくことが望ましい。図８に示すように、ラベル／タグプリンタ１０８が立ち上がる時、ラベル／タグプリンタ１０８のファームウェア、ＬＵＡ  ＡＰＩ、及び、ＬＵＡ仮想マシンはフラッシュメモリ７０２に圧縮形式で格納されていることが望ましい。立ち上げ処理が完了した後、このファームウェア、ＬＵＡ  ＡＰＩ，及び、ＬＵＡ仮想マシンは、圧縮を解かれ、非圧縮形式で、ＳＤＲＡＭ７０４に供給される。この後、ラベル／タグプリンタ１０８の基本ファームウェア、ドライバ、バーコードデータ、ラベル書式、パーサー、画像バッファ、及びその他のデータは、動作させるため、適宜、一時的にＳＤＲＡＭ７０４に格納される。
【００４９】
図９を参照すると、ＬＵＡ仮想マシンは、ＳＤＲＡＭ７０４を介して、プリンタ１０８のファームウェア、ＬＵＡ  ＡＰＩ、及びパーサーと結合して動作することが好ましい。好ましい実施形態において、ラベル／タグプリンタ１０８は、印刷動作のみにおいてはフラッシュメモリ７０２に依存せず、その代わり、ＳＤＲＡＭ７０４に格納された非圧縮のデータと命令を介して動作する。ＳＤＲＡＭ７０４は、フラッシュメモリ７０２よりもより高速かつ効率的に動作し、かつ、ＳＤＲＡＭ７０４は、印刷動作完了後、非圧縮のデータと命令を消去できるので、本実施形態は、一般の典型的な従来技術によるシステム及び方法より好ましい。
【００５０】
図９及び１０を参照すると、印刷動作中、ここで述べたものと結びついたＬＵＡ  ＡＰＩは、ＬＵＡ仮想マシンを介して動作し、ラベル／タグプリンタ１０８のバッファに格納されたラベル画像やその他のオブジェクトを出力するためのラベル／タグプリンタ１０８のファームウェアをインターフェースする。ラベル／タグプリンタ１０８は、好ましくはＬＵＡ  ＡＰＩを介して定義されている複数の入力源から指示命令（例えば、ＬＵＡ  ＡＰＩを介して）及び／又は、データを受信できることが望ましい。例えば、データはスキャンすることができ、また、タイピングすることができ、又は、入力装置２１２、通信ポート、ネットワークインターフェース２０８等の任意の適切な入力ポートを介して供給、及び受信することが可能であってよい。
【００５１】
以上、説明及び主張し、かつ、添付図面にて示したように、ラベル／タグプリンタ１０８により与えられる機能性は、プリンタ１０８のファームウェアとインターフェースするＡＰＩ３０２の機能として、向上、改変、又は追加されることが好ましい。アプリケーションは、ＬＵＡプログラミング言語等の高度なプログラミング言語を用いて定義されることが好ましく、これにより、各個人が、特定のプリンタモデルのファームウェアの専用プログラミング言語に精通する必要が無くなり、かつ、このプリンタのファームウェアを改変するための専用の開発ツールに触れる必要が無くなる。よって、プリンタにおいて、プリンタ専用のインタープリタ言語を用いることにより、アプリケーションそのものを書く必要なく、アプリケーション開発を行うことが可能となる。
【００５２】
本発明は、その特定の実施形態に関連して説明及び表現したが、本技術の当業者においては、その他多くの変形、及び改変及び使用は、当然、明白な事であろう。それゆえ、ここで開示した特定の事例にのみ、本発明を制限するものではない。
【図１】
0005693235.tif 000002
【図２】
0005693235.tif 000003
【図３】
0005693235.tif 000004
【図４】
0005693235.tif 000005
【図５】
0005693235.tif 000006
【図６】
0005693235.tif 000007
【図７】
0005693235.tif 000008
【図８】
0005693235.tif 000009
【図９】
0005693235.tif 000010
【図１０】
0005693235.tif 000011