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