JP5518904B2 - 印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 - Google Patents

印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 Download PDF

Info

Publication number
JP5518904B2
JP5518904B2 JP2011551352A JP2011551352A JP5518904B2 JP 5518904 B2 JP5518904 B2 JP 5518904B2 JP 2011551352 A JP2011551352 A JP 2011551352A JP 2011551352 A JP2011551352 A JP 2011551352A JP 5518904 B2 JP5518904 B2 JP 5518904B2
Authority
JP
Japan
Prior art keywords
printer
function
programming code
information processing
programming
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.)
Active
Application number
JP2011551352A
Other languages
English (en)
Other versions
JP2012529681A (ja
Inventor
グリーベル スタファン
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.)
Sato Holdings Corp
Original Assignee
Sato Holdings Corp
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 Sato Holdings Corp filed Critical Sato Holdings Corp
Publication of JP2012529681A publication Critical patent/JP2012529681A/ja
Application granted granted Critical
Publication of JP5518904B2 publication Critical patent/JP5518904B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、概してプリンタに関し、特に、プログラミングコードによりプリンタの機能を拡張することに関する。
大半のラベル及びタグプリンタは、従来の予め定められた専用の制御言語により動作する。例えば、サトーバーコードプリンタ言語(”SBPL”)、ゼブラプログラミング言語(”ZPL”)、データマックスプリンタ言語(”DPL”)、インターメックプリンタ言語(”IPL”)等は、全て、ユーザーがプリンタ出力機能の変更を実施するための、極めて重要で最小限のスキルレベルを必要とする専用の機能を備えている。プリンタ供給メーカにより提供され、上述したプリンタ言語をサポートするような様々なプリンタモデルは、所定の個々のコマンドにより定義される印刷タスクを実行できる。プリンタ機能の特定の変更は、普通は、プリンタのファームウェアの変更により行われる。
それぞれのプリンタ個々の制御言語は予め決まっているので、既存のプリンタは、所定のタスクの実行のみが可能である。もし、様々なプリンタ機能の追加が必要なら、プリンタのファームウェアの変更が必要である。このことは、複雑なソースコードの改訂版、及び、このソースコードの改訂板を作成するための埋め込みプログラミング開発ツールの改訂を、よく伴う。これは柔軟な手法ではなく、プリンタのエンドユーザーによってカスタマイズは、ローカルには行えない。
さらに、プリンタの機能が設計の時点でプログラムに内蔵されても、異なるタイプのデータファイル又はデータセッティングが既存のプログラムされた機能を作動させることはできる、しかし、新しいものは追加できない。その上、プログラムされたアプリケーションは、限られた数の状況に対してのみ設計される。新しい機能が追加されたとき、プログラム全体が置き換えられなければならず、プリンタは再起動されなければならない。これは、多くの時間を要し、それ故、費用がかかる。
従来技術において、プリンタのファームウェアソースコードを変更することなく、かつ、高価な開発ツールなしに、ラベル/タグプリンタのソフトウェアをカスタマイズ又は改変する能力はない。
そこで、プリンタの機能を改変するためのステムと、プリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法と、が提供される。プリンタは、印刷動作を制御するためのファームウェアとインターフェースするように提供されるプログラミングコードと、ファームウェアと、一緒に提供される。プログラミングコードは、少なくとも1つのプレースホルダを含む。第2プログラミングコードは、プロセッサ読み取り可能媒体上で実行されたとき、新しい又は異なるプリンタ機能を提供するために、第1プログラミングコードとインターフェースするように提供される。第2プログラミングコードは、少なくとも1つのプレースホルダの機能として実行され、前記ファームウェアへの作用、及び操作が可能となるように、カスタム化及び拡張機能のためのプリンタアプリケーションプログラミングインターフェースとして形式が整えられたプリンタ拡張機能のセットが供給され、ファームウェアと組み合わせてプリンタアプリケーションプログラミングインターフェースを使用する


本発明の他の特徴と利点が添付された図面を参照する以下の説明により明らかになるであろう。
本発明を説明する目的のため、図面に、好適な形態を示す。しかし、本発明は、図に示されたそのままの構成及び手段に限定されるべきものでないことに留意されたい。本発明の特徴及び利点は、付随する図面を参照した以下の説明により明らかになるであろう。
図1は、好適な実施形態によるハードウェアの構成例を示す。 図2は、図1に示す情報処理装置の一例の機能素子を示す。 図3は、好適な実施形態により提供されるプリンタAPIを示すブロック図である。 図4は、ラベル/タグプリンタにより印刷される、好適な実施形態により提供されたAPIにより定義される、ラベルの例を示す。 図5は、横位置、縦位置のそれぞれを示し、かつ、ラベル上に提供されるデータフィールドについて定義されるデータフィールドサイズの例を示す。 図6は、ラベル/タグプリンタにより印刷され、APIにより定義される、ラベルの別の例であり、好適な実施形態により提供される色オプションを示すものである。 図7は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。 図8は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。 図9は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。 図10は、複数の電気的メモリの形式を含む好適な実施形態の実装を示すものである。
本技術によれば、ラベル/タグプリンタに供給されているファームウェアのソースコードを更新、変更、又は、改変をすること無しに、かつ、高価な開発ツールの必要がなく、各人がラベル/タグプリンタの設定をカスタマイズすることが可能となるように、1つ以上のインターフェースが提供される。故に、ラベル/タグプリンタは、プリンタのファームウェアを開発したプリンタの専用のインタープリタ型言語を使用して、アプリケーションを記述するのにその他のツールを使用することなく、効果的に、アプリケーション開発を行うことが可能となっている。
好適な実施形態においては、インタープリタ型スクリプト言語が、ラベル/タグプリンタと組み合わせて供給される。カスタム化及び拡張機能のためのプリンタファームウェアへの作用、及び操作が可能となるように、プリンタアプリケーションプログラミングインターフェース(API)として形式が整えられたプリンタ拡張機能のセットが供給される。これらのAPIは、ラベル/タグプリンタに提供されていることが望ましい。好適な実施形態において、インタープリタ型スクリプト言語はLUAである。
上記プリンタファームウェアを、例えば、スクリプト言語で開発された上記一群のプリンタAPIにインターフェースすることにより、ラベル/タグプリンタが種々のタスクを行うのに使用するソフトウェアによる命令を介して、ラベル/タグプリンタのユーザーは、改善された柔軟性やユーザー補助機能を享受することができる。プリンタのファームウェアと組み合わせてAPIを使用することにより、ユーザーは、カスタムプリンタ機能を開発可能であり、ラベル/タグプリンタのファームウェアのソースコードを改変する必要が無くなり、また、ラベル/タグプリンタのファームウェアソースコードの変更や改変に一般に必要となる開発ツールにアクセスする必要が無くなる。以下に詳しく記述するように、本技術に関連して提供されるAPIは、種々の機能、例えば、違う種類のキーボードや表示ディスプレイのためのインターフェース機能、可変フォントや印刷レンダリングの形式を提供する機能、プリンタのファイルシステムにアクセスする機能、プリンタの設定機能、及び、ラベル/タグプリンタに関係する種々のその他の機能を提供する。
よって、本発明は、ファームウェアのソースコードを改変することなく、また、例えば、予め定義された専用の制御ファームウェア及びプリンタのファームウェアを改変するためのソフトウェア開発ツールを含む高価な埋め込み型システムを必要とすることなく、複数の印刷に関する解決策を提供するものである。
さらに、カスタム機能及びプリンタにAPIによる機能を提供するためにプログラミングコードをプリンタに展開することを含む、プリンタの機能のためのプログラミングコードの開発をユーザーに可能とさせるという特徴がここで提供される。その後、ここでの教示にしたがって、ユーザーは、前に展開されたプログラミングコードを再展開することなく前に展開されたプログラミングコード内に統合される追加のプログラミングコードを開発する。このようにして、拡張プリンタ機能のためにコードが開発され、そして、例えば、ラベル及びタグプリンタに展開される。
その後、ユーザーは、1つ又は他のプリンタ機能のため、又は、前に展開されたコードの機能を改変するために、実行時に実行されるプログラミングコードを含む追加のコードを開発する。ここでの教示にしたがって、前に展開されたコードが残っていても、ユーザーは、追加のコードをプリンタに展開することだけが必要である。新しい機能又は改良機能を提供するコードのみを開発し展開することをユーザーに可能とすることにより、多大な時間が節約できる。
それ故、ユーザーは、追加機能を含む必要なプログラムを開発することと、そして、このコードをプリンタに提供することのみが必要とされる。好ましい実施形態において、コードはフラッシュ(又は、既知の)メモリにダウンロードされ、その後、プリンタにより受け取られる。以下に詳しく述べるように、前に展開されたプログラムは、新たに展開されたプログラミングコードを統合することが好ましく、1つの統一されたプログラムとして作用する。
ラベル及びタグプリンタのようなプリンタにランタイムプログラミングコードを導入する能力は、その能力を有効とさせることにより、プリンタに前に展開されたコードを再展開することを要さずに改善点と新しいプリンタ機能をプリンタに展開することを組み込み、従来技術の欠点を解決する。このようにして、プリンタのファームウェアとインターフェースする前に展開されたカスタムプログラミングは、より簡単により早く改変されるか、更新されることができる。ユーザーは、追加機能用の特別のプログラミングコードの開発と、後にプリンタのファームウェアとインターフェースするフラッシュメモリへコードをダウンロードすることによるように、それをプリンタへ展開することのみが必要である。
好ましい実施形態において、従来技術で既知のように、カスタマイズされた機能のために開発された前に展開されたプログラミングコードは、後に展開されたコードを前に展開されたコードに統合する後に展開されたプログラミングコードのためのプレースホルダを含む。好ましくは、前に展開されたプログラミングコードは、新たに展開されたコードをロードし、再展開又はプリンタ装置の再起動を必要とすることなく、実行時において新機能を実行する。このように、新たに追加されたプログラムされた命令は、実行時に実行される。ある実施形態において、新しく展開されたプログミングコードは、前に展開されたプログラミングコードと同じプログラミング言語で開発又は記述される。他の実施形態において、新しく展開されたプログミングコードは、前に展開されたコードとは異なるプログラミング言語で開発される。どちらにしても、新しく展開されたプログミングコードにより提供される機能は、プリンタが実行する前に展開されたコードを含むソフトウェアの一部として完全に統合され、便利である。
好ましい実施形態において、前に展開されたカスタマイズされたコードを持つプリンタに対して展開されるカスタマイズされたプログラミングコードは、スクリプトプログラムとして開発され、インタープリタによりトークン化され、開始前にSDRAMメモリへロードされる。前に展開されたカスタムプログラミングコードが実行されるとき、命令は、新しく展開又は導入されたプログラムがトークン化プログラムに追加されることができた否かを見るために一覧の作成を実行することが望ましい。トークン化されたランタイム(SDRAM内)は、オリジナルと新しく導入されたプログラムとの両方を含む。オリジナル又は前に展開されたプログラムは、追加された特別なプログラムを何も認識しないので、前に展開されたプログラムは、追加プログラムについてのユーザー補助を提供するプレースホルダを含む。したがって、プリンタファームウェアAPIによりロードされたカスタマイズされたプログラミングアプリケーションは、好ましくは、その後統合される新しく展開又は導入されたプログラムのためのプレースホルダを含む。新しく展開されたプログラムは、オリジナルプログラムの一部に完全に統合されたものとして動作するのが望ましい。
好ましい実施形態において、カスタマイズされたプログラミングコードは、スプレッドシート、データベース、テキストエディタ、ワードプロセッサ、統合開発環境等を含む、一般的なプラットフォームの複数のいずれかで開発することができ、新しいカスタムプリンタ機能は、ユーザーの要望通りユーザーにより追加できる。エンドユーザーに、前に展開されたアプリケーションと統合されるカスタムアプリケーションを開発することを可能とすることにより、ここで教示することは、プリンタのファームウェアによって提供される完全なプログラミングと、カスタマイズされた機能を提供するいくつかの前に展開されたアプリケーションとは、新しく開発されたプログラミングコードと統合されるので、プリンタの機能を強化するための強力な方法(way)を提供する。
実施形態によれば、カスタマイズされたプログラミングコードによる、新しい、又は、改変されたプリンタの機能は、プリンタのファームウェアによっては影響されない。代わりに、スクリプトで提供される命令を含むプログラム命令は、プレースホルダの機能として、既存のカスタマイズされたプログラミングコードへ「導入」される。このような高レベルなコード導入技術は、エンドユーザーに、プリンタのファームウェアを変える必要なく、又は、改変又は改良されたプリンタの機能と共に更新されたカスタマイズされたプログラムアプリケーションの再展開をする必要なく、プリンタの機能を簡単かつ素早く改変及び改良を可能とする。
参照図面においては、同様の参照番号は同様の構成要素を示す。図1は、本発明の実施形態における、直接接続されたケーブルを介して、又は、通信ネットワークを介して、プリンタアプリケーションプログラムを供給及びインストールするためのハードウェアの構成例を示すものであり、ここでは一般的に、システム100と称する。図1中での例においては、情報処理装置102には、例えば、本技術の当業者には周知であるように、LUAプログラミング言語でアプリケーションを開発するためのプログラム統合開発環境(IDE)が提供されており、情報処理装置102は、本発明をサポートするために必要な全てのデータベースを有するのが好ましい。しかし、ここでの情報処理装置102は、通信ネットワーク106又は、情報処理装置102が結合できるその他の通信ネットワークを介して、必要とされるいずれのデータベースにもアクセスできるようなものを想定している。通信ネットワーク106は、インターネットのような世界的な公共ネットワークであることが好ましいが、広域ネットワーク(WAN)やローカルネットワーク(LAN)や、又はイントラネットやコンピュータデバイスや周辺機器との通信を可能にするその他のネットワークでもよい。
好適な実施形態において、情報処理装置102は、通信ネットワーク106を介してデータの送受信をすることができる任意のコンピュータ読み取り可能媒体機器であり、例えば、大型汎用コンピュータ、小型コンピュータ、パーソナルコンピュータ、ノート型コンピュータ、携帯情報端末(PDA)、携帯電話、及び、ウェブテレビのようなインターネットアクセス可能な機器である。また、情報処理装置102は、MICROSOFT INTERNET EXPLORE(登録商標)、MOZILLA FIREFOX(登録商標)のようなウェブブラウザのソフトウェアが装備されていることが望ましい。情報処理装置102は、既知のデータ通信ネットワーク技術を使用した通信ネットワーク106に接続される。
また、図1には、プリンタ108が示されている。プリンタ108は、好ましくは、ラベル/タグプリンタであり、情報処理装置102から受けたデータのラベル及びタグを印刷する操作が可能であるものが好ましい。情報処理装置102に関係無く、又は、情報処理装置102と連携して、ラベル/タグプリンタ108の機能の入出力を行うことが可能とするために、ラベル/タグプリンタ108には、キーボード110及び表示ディスプレイ112が備えられてもよい。
図2は、情報処理装置102の一例の機能構成要素を示し、これは、ソフトウェアコードを実行し、情報処理装置102の動作を制御するための1つ以上の中央処理装置(CPU)202を含んでいる。その他の構成要素としては、読み取り専用メモリ(ROM)204、ランダムアクセスメモリ(RAM)206、通信ネットワークを介して他のコンピュータデバイスとデータへのデータの送受信を行うための1つ以上のネットワークインターフェース208、プログラミングコードのデータベース及びアプリケーションデータを格納するための、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、CDROM、又はDVDのような記憶装置210、キーボード、マウス、トラックボール、マイク等の1つ以上の入力装置212、及び表示ディスプレイ214が挙げられる。さらに、また、ラベル/タグプリンタ108には、1つ以上の機能素子202から214が好適に形成、又は備えられてもよい。
情報処理装置102の種々の構成要素は、物理的に同じ筐体に含まれる必要は無く、また、一箇所に設置される必要もない。例えば、記憶装置210は、情報処理装置102の残りの構成要素から離れた場所に設置してもよい。また、記憶装置210は、ネットワークインターフェース208を介した通信ネットワーク106を介してCPU202に接続してもよい。情報処理装置102は、ハイパーテキスト・マークアップ言語(HTML)、Java(登録商標)アプレット、Active−X制御プログラムを通信するための通信ウェブサーバーとして機能し、また、必要なデータベース、フォーラム、及びその他の通信サービスを提供することができるようにするため、十分な記憶容量を有するメモリを有することが好ましい。情報処理装置102は、例えば、図2に示すように、その予測される操作環境に適した構成要素と共に配置される。CPU202、ネットワークインターフェース208、及びメモリや格納素子については、期待される要求が満たされるようにその能力が確保されるように選択する。
本発明は、コンピュータが実行可能なコード(すなわちソフトウェア)を作成する分野の当業者において、1つ以上の一般向けコンピュータプログラミング言語と開発環境の組み合わせたもの(これは、LUA、C、C++、Visual Basic、JAVA(登録商標)、HTML、XML、ACTIVE SERVER PAGES、JAVA(登録商標) server pages、servlets、MYSQL、及びPHPを含むが、これらに限るものではない)を使用することにより、ここに述べる機能を実装することを可能とするものである。
本発明は、ここにおいては一例として、ウェブブラウザとウェブサイトサーバー(例えば、情報処理装置)を使用したウェブを基本としたシステムについて記述しているが、システム100は、そのような構成に限るものではない。ここでは、システム100は、既知の通信方法、例えば、インターネットワークパケット交換(IPX)、ダイアルアップネットワーク、第三者機関のネットワーク、個人のネットワーク、又は高度情報通信網(VAN)のようなローカルエリアネットワークプロトコルと結合した非インターネットブラウザであるWINDOWS(登録商標)ビューワーを使用して、ラベル/タグプリンタ108が通信を行い、かつ、情報処理装置102から受け取ったデータを出力できるように構成されると想定する。
さらに、情報処理装置102には、任意の適切なオペレーティングシステムを使用することができると想定する。上記任意の適切なオペレーティングシステムには、例えば、DOS、WINDOWS(登録商標)3.x、WINDOWS(登録商標)95、WINDOWS(登録商標)98、WINDOWS(登録商標) NT、WINDOWS(登録商標)2000、WINDOWS(登録商標) ME、WINDOWS(登録商標) CE、WINDOWS(登録商標) POCKET PC、WINDOWS(登録商標) XP、MAC OS(登録商標)、UNIX(登録商標)、LINUX(登録商標)、PALM OS(登録商標)、POCKET PC、及びその他の適当なオペレーティングシステムを含む。
好ましい実施形態において、ラベル/タグプリンタ108のアプリケーションは、LUAプログラミング言語で開発される。好適な実施形態において、アプリケーションに備えられたLUAプログラミングステートメントの実行を機能することができるように機能するLUAインタープリタが備えられる。一般の高度プログラミング言語と違って、LUAは、スクリプト言語であり、基本的なプログラミング言語ではない。種々の機能を実行させるようなSBPL命令や又は、その他の予め定義された命令を受ける一般のラベル/タグプリンタとは違って、本発明は、LUA言語の拡張である、プリンタファームウェアとインターフェースし、また、LUAインタープリタにより解釈されるプリンタAPIを実装するものである。これにより、関数呼び出しを介すること等により、より高度で複雑なアプリケーションを開発することが可能になる。さらに、従来のラベル/タグプリンタでは、一箇所の変更点を実装するために、対応するファームウェアアプリケーションを完全に上書きする必要があったが、LUAプログラミング言語の拡張機能であるAPIを実装することにより、ラベル/タグプリンタ108の機能を部分的に改変することが可能となった。
本発明の別の利点は、LUAプログラミング言語で開発され、ラベル/タグプリンタ108により解釈されるアプリケーションは、よりコンパクトな構成であり、かつ、著しく動作が速いということが挙げられる。この理由は、従来のラベル/タグプリンタは、種々の機能(本発明においては、APIにより達成される)を実行するのにより多くのソフトウェア命令を必要とするからである。さらに、LUAインタープリタは、関数呼び出しや変数宣言等における利点を利用することにより、効率的に本発明のAPIとインターフェースし、メモリに対する要求が減ったことにより、コードの利便性が、従来技術におけるラベル/タグプリンタより著しく向上した。
従来技術のラベル/タグプリンタに対する本発明のLUAプリンタAPIの別の利点は、インタープリタが、SBPLやZPLのような既存の制御言語を介して印刷機能にアクセスする必要なく、印刷機能にアクセスすることが可能ということである。いい換えると、APIは、ラベル/タグプリンタ108の印刷機能を制御するファームウェアに対して、直接インターフェースする。これは、従来技術によるシステムに対する改善点である。従来技術によるシステムにおいては、例えば既存の制御言語とのインターフェースするためにSBPL命令の生成が必要となり、これにより、プリンタの機能を改変するのに関連した直接、及び間接的な工程が増加してしまう。
さらに、本発明のAPIは、LUAインタープリタを介してインターフェースするので、ラベル/タグプリンタ108における内部メモリの必要性を除いて、アプリケーションのサイズの制限が実質的に無くなる。これは、例えば、インストールされうるコードの行数の制限を持ち、また、動的メモリ割り当てをサポートしていない従来技術におけるラベル/タグプリンタに対する改善点である。本発明におけるAPIは、例えば、或る特定の機能のために実装されたプログラミングコードの量を増やすことができるようにメモリを解放すること(ガーベジコレクション機能)等の関数呼び出しやその他の高度なプログラミング言語機能をサポートしている。
本発明の別の利点は、MICROSOFT VISUAL STUDIOやその他の統合的開発環境(IDE)等の開発ツールをLUAのプラグイン構成要素として使用できるということが挙げられる。各ラベル/タグプリンタ108のアプリケーション開発は、ビジュアルな統合開発環境におけるソフトウェア開発になじんだ、又は快適さを感じる開発者にとってより魅力的なものとなる。
本発明の別の利点は、プリンタ動作をシミュレーション可能であるLUA仮想マシンを有するコンピュータ上で、LUAアプリケーションを走らせることが可能であるということが挙げられる。ユーザーは、アプリケーションをプリンタにダウンロードしてインストールする前に、開発したLUAアプリケーションをコンピューター上でテストすることが可能であり、これにより、LUAアプリケーションをテストするために実際にプリンタを動作させることが不要となる。
好適な実施形態において、複数の独立したLUA仮想マシンは、連結操作可能であり、また、これらは、ネットワーク上の1つのラベル/タグプリンタ108に実装することができる。この方法においては、例えば、地域的な設定や言語の設定等の種々のカスタマイズ設定に応じてデータを並べかえるバーコードプリンタに対して、設定可能な動的ローカル設定が実装可能である。種々のローカル設定は、特定のコンピュータシステムのオペレーティングシステム上に格納されてもよい。また、動作の変更は、例えば、このローカルの設定に依存してもよい。
LUAインタープリタを介してAPIを実装することにより、従来技術においてこれまで利用できたものに加えて、さらなる追加機能が提供される。好適な実施形態における追加のプリンタ機能及び改善された実装について以下に説明する。
好ましくは、1つの実施形態においては、プログラム関数呼び出し、及び、変数の宣言、アドレッシング、及び変数を介してのプログラム関数への値の受け渡し機能は、LUAの実装を介してサポートされる。好ましくは、プログラム関数は、関数が成功して完了したかどうかを現すエラーコードのような値を返す。例えば、関数が意図したように実行されなかった場合、エラーの原因、エラーの症状、エラーの結果、又はその他の適切な情報を現すエラーコードを返す。好ましくは、テーブル名、文字列の値、日付、数値等の関数名や変数名はユーザーに積極的には表示されない。又は、少なくとも、一部又は全てを隠して表示を行ってもよい。
セキュリティの実装は、例えば、ユーザーが特定のデータや、1つ以上のデータディレクトリにアクセスしたり、又は、データディレクトリやデータファイル等を作成、消去、又は改変する、といった種々のタスクを実行するための十分な認証やアクセス許可権を持っていることを要求すること等は、ここに記載している技術によりサポートされるのが望ましい。
APIによりサポートされる別の特徴は、インターフェースのレンダリング機能である。ここで使われている「レンダリング」という意味は、一般に、対話式プログラミングオブジェクトの作成を示す。例えば、レンダリングされたオブジェクトは、データフィールド(テキストベースのフィールド)、バーコード、グラフィックフィールドとして形成されてもよい。これらレンダリングされたオブジェクトは、例えば、メソッドのようなもので操作できる1つ以上の特性を有している。好ましくは、APIによりレンダリングされたオブジェクト(例えば、テキストフィールド、バーコード、及び、グラフィックフィールド)には、ラベルオブジェクトが備えられ(例えば付加される、又は埋め込まれる)、これは、ラベル/タグプリンタ108を介して供給される。
さらに、APIは、エラーを出すことなしに、ラベルの開発中、又はラベルの印刷中、又はその両方の処理中において、少なくともその一部が、ラベル/タグプリンタ108のプリント可能領域の外側にあるラベル上に位置するバーコードのようなオブジェクトの供給をサポートする。この特徴により、例えば、ラベル/タグプリンタ108により、半分しか印刷されないバーコードを有するラベルを開発することが可能となる。この特徴により、ユーザーが部分的、又は不完全なオブジェクト、例えば、バーコードをラベル/タグプリンタ108を使用して、ラベル上に印刷したい場合において、従来技術の方法に対する改善点となっている。
実施形態において、及び動作中において、レンダリングされたオブジェクト、例えば、テキストフィールド、バーコード、グラフィックボックス、画像等の各位置は、水平、及び、垂直位置パラメータ(例えば、「hPos」及び「vPos」)により定義される。このパラメータ値は、オブジェクトの固定点の位置を定義することが好ましい。パラメータhPos及びvPosが適切に設定された場合、あるエラーパラメータ(例えば「E_SUCCESS」)が定義される。また、パラメータhPos及びvPosが適切に設定されなかった場合、違うエラーパラメータ(例えば「EPARAM」)が定義される。
位置決めを定義するためのパラメータに加えて、本発明は、オブジェクト、例えば、バーコードや画像オブジェクトの倍率をサポートする。例えば、水平及び垂直倍率パラメータ(例えば、「hMag」及び「vMag」)は、水平及び垂直ピクセル倍率を設定するために定義されており(例えば、1〜12倍)、これにより、オブジェクトの水平及び垂直倍率の程度を現す。
図3は、好適な実施形態により提供される、ラベル/タグプリンタ108をのインターフェースするための関連するAPI302を示すブロック図である。図3に示すように、キーボードAPI304は、ラベル/タグプリンタ108に統合されたキーボード110からの信号を受信及び、解釈(読み込み)する働きを行う。又は、キーボードAPI304は、ラベル/タグプリンタ108に直接結合されていない外部キーボード又は他の入力装置212からの信号を読み込んで解釈する働きを行う。ディスプレイAPI306は、様々なテキスト、及び図形コンテンツを、プリンタ108に統合された表示ディスプレイ112に書き込む働きを行う。又は、ディスプレイAPI306は、テキスト、及び図形コンテンツを、ラベル/タグプリンタ108に付属した外部表示ディスプレイ214に書き込む働きを行う。ディスプレイAPI306は、例えば、様々な違った種類の文字言語のためのフォントや符号化方式を広く選択できるようにサポートするのが望ましい。
引き続き図3を参照して説明する。印刷レンダリングAPI308は、ラベル/タグプリンタ108により印刷されるラベル上に出力されるユーザー定義のデータフィールド要素をサポートする。このようなデータフィールド要素の例として、テキストデータフィールド、一次元及び二次元バーコード、線と長方形、三角関数、画像、個々のピクセル、図形、書式付き日付、及びカウント値が上げられる。プリンタレンダリングAPI308により、ユーザーは、データフィールドの型、及び、特定のラベル及びタグ上に出力するデータフィールドの位置を定義することができる。プリンタレンダリングAPI308により、様々な言語をサポートするフォント及び符号化方式のための選択可能なオプションが提供されることが望ましい。固定長及び可変長データ形式がサポートされていることが望ましく、これは、フィールド定義に含まれるか、又は、プリンタレンダリングAPI308を介して、ファイル又は通信インターフェースから入力される。その他の特徴として、上記の1つ以上のフィールドオブジェクトの色を定義するための選択可能色出力オプションをサポートすることが挙げられる。さらに、白紙や印刷されたラベル/タグを出力するために、印刷レンダリングAPI308の関数として、1つ以上の印刷命令又は給紙命令を発行することが可能である。さらに、印刷レンダリングAPI308により、ユーザーが選択可能な印刷品質制御機能が提供されることが望ましい。
さらに、コンパクトフラッシュ(登録商標)メモリカード、SDメモリカード、USBメモリ機器等である、ラベル/タグプリンタ108の読み込み専用メモリファイルシステム、ランダムアクセスメモリファイルシステム、フラッシュメモリファイルシステム、又は、外部メモリ源のうち、少なくとも1つに置かれたファイルについて、ユーザーは、格納、消去、読み込み及び書き込みの操作が可能となるようにするため、ファイルシステムAPI310が備えられることが望ましい。ラベル/タグプリンタ108に付随した種々の内部及び外部メモリ源に格納されたデータやファイル等にアクセスする手段をユーザーに提供したことにより、ユーザーは、より柔軟に、ラベル/タグプリンタ108の動作の制御及び操作を行うことができる。ファイルシステムAPI310に関連して提供される望ましい機能の例としては、ラベル/タグプリンタ108のファイルシステムのフォーマット、登録するディレクトリの階層の決定、特定のディレクトリへの移動、新しいディレクトリの作成、ファイルのコピー、ディレクトリ又はファイルの消去、ファイルシステムにおいて使用するバイト又は使用可能なバイトの決定、及び、ファイル又はディレクトリへのアクセス権の変更が挙げられる。
引き続き図3を参照して説明する。無線識別(RFID)API312は、ラベル/タグプリンタ108に備えられたRFIDチップ/インレイ(内部構成部材)への読み込み及び書き込みのためのアクセスをサポートする。さらに、リアルタイムクロックAPI314により、ユーザーは、日時データを定義し、また、日時データをラベル/タグプリンタ108から読み込むことを可能としている。コンフィギュレーションAPI316は、ユーザー定義のプリンタに特定のパラメータをサポートするものである。例えば、コンフィギュレーションAPI316を使用することにより、ユーザーは、印刷スピード、印刷品質、日時機能、現地言語設定、メニュー制御等に関連した通信パラメータを定義することができる。一般にラベル/タグプリンタ108に備えられたファームウェアに限定され、特別なソフトウェアと技能を持った技術的な熟練者にのみ改変可能であるようなラベル/タグプリンタ108の制御動作をユーザーが定義及び改変できるようにするのに、コンフィギュレーションAPI316は特に有用である。また、コミュニケーションAPI318は、外部I/Oインターフェース機器との通信を制御することが望ましい。複数の通信プロトコルと仕様がサポートされる。サポートされる通信プロトコルと仕様の例として、RS232、RS485、RS422、USB、LAN、WAN、WLAN、及び外部デジタルリレーインターフェースが挙げられる。
図3に示すその他のAPI302として、プリンタに含まれるデバイスを制御する働きを行うデバイスAPI320、ある時点のプリンタの状態を報告する働きを行うプリンタステータスAPI322、ラベル/タグプリンタ108に送られたXML命令、及び/又は、XMLファイルのような命令、及び/又は、ファイルの構文解析を行う働きをするパーサーAPI324が挙げられる。構文解析が行われると、XML命令は、インタープリトすることが可能となり、ラベル/タグプリンタ108による出力を制御するのに使用することができる。
デバイスAPI320、プリンタステータスAPI322、及びパーサーAPI324に加えて、API302は、種々の用紙機能をサポートするためのペーパーハンドリングAPI326を有することが望ましい。この機能として、ラベル及びタグの1つ以上の用紙サイズについて、印刷給紙、用紙送り、行送り、テスト送り等が挙げられる。さらに、ラベル/タグプリンタ108に備えられるベル、ブザーやその他の音声装置に対する音声制御機能を提供するサウンドAPI328が挙げられる。さらに、ラベル/タグプリンタ108に備えられるラベルギャップセンサーやラベルマークセンサー等のセンサー機器からの情報を受信する働きを行い、また、ラベルの末端に達した時点、インクリボンの末端に達した時点、ラベルやインクリボンの末端に近づいた時点等の種々の条件を判断する働きを行うセンサーAPI330が挙げられる。ある実施形態において、センサーAPI330は、1つ以上の条件が発生したと判断された時に警告を発する働きをする。図3に示されるその他のAPI302として、ラベル/タグプリンタ108に起こった種々のイベントを受信し処理するイベントAPI332、必要に応じてデータのビット操作を行う働きをするビットハンドリングAPI334、ラベル/タグプリンタ108に起きるかもしれないエラー、例えば、停電、メモリーエラー、用紙詰まり等を処理する働きをするエラーハンドリングAPI336が挙げられる。
したがって、好適な実施形態においては、例えば、LUAプログラミング言語やCプログラミング言語で複数のAPI302が開発され、インタープリタが既存の制御言語、例えば、SBPLやZPLを介して印刷機能にアクセスすることなく、それらをラベル/タグプリンタ108に実装することができる。1つ以上の実施形態において、図3に示したAPI302に加えて、種々のその他の機能を実装することが想定できる。例えば、開発を迅速及び容易にするため、テーブル及び/又は、メタテーブルを複製する機能をサポートする。その他の例としては、エラーコード値をエラー文字列値の結果で決定する機能(例えば、err2str)、1つ以上の書式(例えば、XML、LUA、及びその他の形式)でテーブルを保存する機能、複数の書式で提供されたテーブルをロードする機能、及び、メニュー及びプロンプト用の複数の書き言葉や話し言葉をサポートする機能等が挙げられる。
図4は、好適な実施形態において提供されるものであり、API302を使用して定義されたものである、ラベル/タグプリンタ108により印刷された例のラベル400を示す。図4に示すように、印刷されたテキストデータの向き及び位置に関わらず、アンカーポイント402は、ラベル400上のテキストデータの左上位置(例えば、hMag及びvMag変数で定義される)に定義されている。また、図4には、ラベル400がラベル/タグプリンタ108により印刷される時のラベル400の給紙方向404が示されている。ラベル400上に印刷されたテキストデータに加えて、図形画像406がレンダリングAPI308により、レンダリングされる等して提供される。
図5は、ラベル400に提供するデータフィールド500用に定義されたデータフィールドサイズの例を示し、また、データフィールド500の左上隅の水平及び垂直位置(例えば、hPos及びvPos)502、及び、右下隅位置504の水平及び垂直位置をそれぞれ示す。さらに、データ方向関数506(例えば、dir(0,.359))は、それがラベル400上に出力される時の、データフィールド500の相対的な向きを示す。
図6は、好適な実施形態において提供されるものであり、API302を使用して定義されたものである、ラベル/タグプリンタ108により印刷された他の例のラベル600を示す。これは、図6に示す例のラベル600において、複数の色602、604、及び606がラベル600上に、それぞれの位置608に供給されているのが示されている。したがって、ここに示すように、LUA APIは、LUAインタープリタを介してAPIを解釈することにより、ラベル/タグプリンタ108のファームウェアとLUAインタープリタと共同して動作するインターフェースであり、顧客は、好ましい印刷動作を実行するLUAアプリケーションプログラムを作成することができる。
図7を参照して説明する。好適な実施形態において、ラベル/タグプリンタ108は、2つの種類のメモリ、すなわち、フラッシュメモリ702とシンクロナスDRAM(SDRAM)704が備えられる。フラッシュメモリ702(ROMの代わりとして用いるのが望ましい)は、その他の適当なデータのうち、ラベル/タグプリンタ108の立ち上げコード、基本ファームウェア(例えば、ドライバやバーコード書式等)、LUA API及び、LUA仮想マシン等を格納する。本技術においてよく知られているように、フラッシュメモリ702に格納された立ち上げコードは、プリンタ108の立ち上がり処理において動作する。好適な実施形態において、ラベル/タグプリンタ108の基本ファームウェア及びLUA APIは、圧縮された形式でフラッシュメモリ702に格納されており、よって、フラッシュメモリ702のメモリ容量を節約できる。さらに、例えば、LUAアプリケーションプログラム及び/又は既存のアプリケーションプログラムへ展開及び導入される追加プログラミングコードを含む、カスタマイズされたプログラミングは、好ましくは、フラッシュメモリ702に格納される。
ラベル/タグプリンタ108の立ち上げ処理前においては、SDRAM704は、空きスペースを大きくしておき、また、データをすぐ受信できるようにしておくことが望ましい。図8に示すように、ラベル/タグプリンタ108が立ち上がる時、ラベル/タグプリンタ108のファームウェア、LUA API、及び、LUA仮想マシンはフラッシュメモリ702に圧縮形式で格納されていることが望ましい。立ち上げ処理が完了した後、このファームウェア、LUA API,及び、LUA仮想マシンは、解凍され、非圧縮形式で、SDRAM704に供給される。この後、ラベル/タグプリンタ108の基本ファームウェア、ドライバ、バーコードデータ、ラベル書式、パーサー、画像バッファ、及びその他のデータは、動作させるため、適宜、一時的にSDRAM704に格納される。
さらに、例えば、LUAプログラミング言語で開発されたアプリケーションプログラムは、SDRAM704へ供給される。図8に示し、ここで述べたように、LUAアプリケーションは、アプリケーションプログラムへ展開され「導入」される追加プログラミングコード(「IP」と示した)のためのプレースホルダを必要に応じて含むことが望ましい。
図9を参照すると、LUA仮想マシンは、SDRAM704を介して、プリンタ108のファームウェア、LUA API、及びパーサーと関連して動作することが好ましい。好ましい実施形態において、ラベル/タグプリンタ108は、印刷動作においてはフラッシュメモリ702のみに依存せず、その代わり、SDRAM704に格納された非圧縮のデータと命令を介して動作する。SDRAM704は、フラッシュメモリ702よりもより高速かつ効率的に動作し、かつ、SDRAM704は、印刷動作完了後、非圧縮のデータと命令を消去できるので、本実施形態は、一般の典型的な従来技術によるシステム及び方法より好ましい。
図9及び10を参照すると、印刷動作中、ここで述べたものと関連したLUA APIは、LUA仮想マシンを介して動作し、ラベル/タグプリンタ108のバッファに格納されたラベル画像やその他のオブジェクトを出力するためのラベル/タグプリンタ108のファームウェアをインターフェースする。ラベル/タグプリンタ108は、好ましくはLUA APIを介して定義されている複数の入力源から指示命令(例えば、LUA APIを介して)及び/又は、データを受信できることが望ましい。例えば、データはスキャンすることができ、また、タイピングすることができ、又は、入力装置212、通信ポート、ネットワークインターフェース208等の任意の適切な入力ポートを介して供給、及び受信することが可能であってよい。
以上、説明及び主張し、かつ、添付図面にて示したように、ラベル/タグプリンタ108により与えられる機能性は、プリンタ108のファームウェアとインターフェースするAPI302の機能として、向上、改変、又は追加されることが好ましい。アプリケーションは、LUAプログラミング言語等の高度なプログラミング言語を用いて定義されることが好ましく、これにより、各個人が、特定のプリンタモデルのファームウェアの専用プログラミング言語に精通する必要が無くなり、又は、このプリンタのファームウェアを改変するための専用の開発ツールに触れる必要が無くなる。さらに、現在実行しているLUAアプリケーションへ「導入」される追加のプログラミングコードは、LUAアプリケーションと共に、又は、LUAアプリケーションに加えて、受信可能であり、かつ実行される。よって、プリンタにおいて、プリンタ専用のインタープリタ言語を用いることにより、アプリケーションそのものを書く必要なく、アプリケーション開発を行うことが可能となり、プログラミングコードは、アプリケーション中に備えられているプレースホルダの一機能として実行中のアプリケーションへ導入できる。
ここで教示するように、予め実行されているプリンタアプリケーションとインターフェースする新しいプリンタアプリケーションが複数のプレースホルダの一機能として開発及び展開されることができる。新しいプリンタ機能は、全プログラムを置き換えることなく、プリンタを置き換え及び再起動することなく、提供される。よって、前に展開されたLUAプログラムのような従来技術における時間とプログラム作成の制約が、プリンタ機能を追加することをユーザーができるようにすることにより、克服される。ここで教示することにしたがって、ユーザーは、前に展開されたプログラムの改編、及び、プリンタへプログラムを再展開する必要がない。代わりに、プレースホルダを備えるカスタムアプリケーションが、新しいアプリケーションが提供されたときに認識でき、拡張されたプリンタ機能を迅速かつ便利に提供するために、プレースホルダによって、カスタムアプリケーションが、前に展開されたアプリケーションへ新しいアプリケーションを導入できる。
本発明は、その特定の実施形態に関連して説明及び表現したが、本技術の当業者においては、その他多くの変形、及び改変及び使用は、当然、明白な事であろう。それゆえ、ここで開示した特定の事例にのみ、本発明を制限するものではない。

Claims (25)

  1. ファームウェアと、印刷動作を制御するための前記ファームウェアとインターフェースするように提供される第1プログラミングコードと、を備えたプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法であり、この方法は、プロセッサ読み取り可能媒体上で実行されたとき、前記ファームウェアとインターフェースし、前記プリンタに第1の機能を提供する前記第1プログラミングコードを開発し、前記第1プログラミングコードは、少なくとも1つのプレースホルダを含み、
    プロセッサ読み取り可能媒体上で実行されたとき、前記第1プログラミングコードとインターフェースし、前記第1の機能とは異なる前記プリンタの第2の機能を提供する第2プログラミングコードを開発し、前記プロセッサ読み取り可能媒体上に前記第1プログラミングコードを提供し、及び、実行し、前記第1の機能を備えるために前記ファームウェア前記第1プログラミングコードによりインターフェースし、前記プロセッサ読み取り可能媒体上に前記第2プログラミングコードを提供し、及び、実行し、前記第2の機能を提供するために前記第1プログラミングコードにより前記第2プログラミングコードとインターフェースし、前記第2プログラミングコードは、前記少なくとも1つのプレースホルダの機能として実行され、前記ファームウェアへの作用、及び操作が可能となるように、カスタム化及び拡張機能のためのプリンタアプリケーションプログラミングインターフェースとして形式が整えられたプリンタ拡張機能のセットが供給され、前記ファームウェアと組み合わせて前記プリンタアプリケーションプログラミングインターフェースを使用するプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  2. 請求項1に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、前記第1プログラミングコードは、前記第2プログラミングコードが実行される前に実行されること、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  3. 請求項2に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、前記第1プログラミングコード及び前記プリンタは、前記第2プログラミングコードが提供されて実行される前とその間には、再起動されないこと、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  4. 請求項1に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、前記第1プログラミングコードは、前記第2プログラミングコードが実行される間には、改変されないこと、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  5. 請求項1に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、前記第1プログラミングコードは、前記プロセッサ読み取り可能媒体上に前記第2プログラミングコードが提供されたか否かを断定するコマンドを実行すること、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  6. 請求項1に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、前記第1プログラミングコード及び前記第2プログラミングコードは、異なるプログラミング言語で記述されていること、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  7. 請求項1に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、前記第1プログラミングコード及び前記第2プログラミングコードは、同じプログラミング言語で記述されていること、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  8. 請求項1に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、さらに、プロセッサ読み取り可能媒体上で実行されたとき、前記第1プログラミングコードとインターフェースし、前記第1の機能及び前記第2の機能とは異なる前記プリンタの第3の機能を提供する第3プログラミングコードを開発し、前記プロセッサ読み取り可能媒体上に前記第3プログラミングコードを提供し、及び、実行し、前記第3の機能を提供するために前記第3プログラミングコードを前記第1プログラミングコードとインターフェースさせ、前記第3プログラミングコードは、前記少なくとも1つのプレースホルダの機能として実行されること、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  9. 請求項1に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、前記第1プログラミングコード及び前記第2プログラミングコードは、インタープリタによりトークン化されること、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  10. 請求項1に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、前記プリンタは、ラベル及びタグプリンタであること、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  11. 請求項1に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、前記第1プログラミングコードは、スクリプト言語で記述されていること、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  12. 請求項1に記載のプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法において、前記第1プログラミングコードは、LUAプログラミング言語で記述されていること、を特徴とするプリンタの機能の改変を実現するコンピュータ・ソフトウェアによる情報処理方法。
  13. プリンタの機能を改変するシステムであって、前記システムは、プリンタの機能を有するプリンタと、プリンタに設けられ、プリンタ上で実行されたときに印刷動作を制御するファームウェアと、プロセッサ読み取り可能媒体上で実行され、前記プリンタに第1の機能を提供するコマンドを含み、さらに、少なくとも1つのプレースホルダを含む第1プログラミングコードと、プロセッサ読み取り可能媒体上で実行され、前記第1の機能とは異なる前記プリンタの第2の機能を提供するために前記第1プログラミングコードとインターフェースするように提供される第2プログラミングコードと、前記第1プログラミングコード及び前記第2プログラミングコードが実行されるプロセッサ読み取り可能媒体と、を備え、前記第2プログラミングコードは前記少なくとも1つのプレースホルダの機能として実行され、前記ファームウェアへの作用、及び操作が可能となるように、カスタム化及び拡張機能のためのプリンタアプリケーションプログラミングインターフェースとして形式が整えられたプリンタ拡張機能のセットが供給され、前記ファームウェアと組み合わせて前記プリンタアプリケーションプログラミングインターフェースを使用すること、を特徴とするプリンタの機能を改変するシステム。
  14. 請求項13に記載のプリンタの機能を改変するシステムにおいて、前記第1プログラミングコードは、前記第2プログラミングコードが実行される前に実行されること、を特徴とするプリンタの機能を改変するシステム。
  15. 請求項14に記載のプリンタの機能を改変するシステムにおいて、前記第1プログラミングコードは、前記第2プログラミングコードが提供されて実行される前とその間には、再起動されないこと、を特徴とするプリンタの機能を改変するシステム。
  16. 請求項13に記載のプリンタの機能を改変するシステムにおいて、前記第1プログラミングコードは、前記第2プログラミングコードが実行される前とその間には、改変されないこと、を特徴とするプリンタの機能を改変するシステム。
  17. 請求項13に記載のプリンタの機能を改変するシステムにおいて、前記第1プログラミングコードは、前記プロセッサ読み取り可能媒体上に前記第2プログラミングコードが提供されたか否かを断定するコマンドを実行すること、を特徴とするプリンタの機能を改変するシステム。
  18. 請求項13に記載のプリンタの機能を改変するシステムにおいて、前記第1プログラミングコード及び前記第2プログラミングコードは、異なるプログラミング言語で記述されていること、を特徴とするプリンタの機能を改変するシステム。
  19. 請求項13に記載のプリンタの機能を改変するシステムにおいて、前記第1プログラミングコード及び前記第2プログラミングコードは、同じプログラミング言語で記述されていること、を特徴とするプリンタの機能を改変するシステム。
  20. 請求項13に記載のプリンタの機能を改変するシステムにおいて、プロセッサ読み取り可能媒体上で実行されたとき、前記第1プログラミングコードとインターフェースし、前記第1の機能及び前記第2の機能とは異なる前記プリンタの第3の機能を提供する第3プログラミングコードをさらに備え、前記第3プログラミングコードは、前記プロセッサ読み取り可能媒体上に提供され、及び、実行され、前記第3の機能を提供するために前記第1プログラミングコードとインターフェースし、前記第3プログラミングコードは、前記少なくとも1つのプレースホルダの機能として実行されること、を特徴とするプリンタの機能を改変するシステム。
  21. 請求項13に記載のプリンタの機能を改変するシステムにおいて、前記第1プログラミングコード及び前記第2プログラミングコードをトークン化するインタープリタをさらに備えること、を特徴とするプリンタの機能を改変するシステム。
  22. 請求項13に記載のプリンタの機能を改変するシステムにおいて、前記プリンタは、ラベル及びタグプリンタであること、を特徴とするプリンタの機能を改変するシステム。
  23. 請求項13に記載のプリンタの機能を改変するシステムにおいて、前記第1プログラミングコードは、スクリプト言語で記述されていること、を特徴とするプリンタの機能を改変するシステム。
  24. 請求項13に記載のプリンタの機能を改変するシステムにおいて、前記第1プログラミングコードは、LUAプログラミング言語で記述されていること、を特徴とするプリンタの機能を改変するシステム。
  25. 請求項13に記載のプリンタの機能を改変するシステムにおいて、前記第1プログラミングコードの実行は、LUA仮想マシン内で前記第1プログラミングコードを翻訳することをさらに含むこと、を特徴とするプリンタの機能を改変するシステム。

JP2011551352A 2009-06-08 2009-06-08 印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法 Active JP5518904B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/060812 WO2010143308A1 (en) 2009-06-08 2009-06-08 System and method for injecting run-time programming code in a printing device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014080196A Division JP5727067B2 (ja) 2014-04-09 2014-04-09 印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法

Publications (2)

Publication Number Publication Date
JP2012529681A JP2012529681A (ja) 2012-11-22
JP5518904B2 true JP5518904B2 (ja) 2014-06-11

Family

ID=43308576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011551352A Active JP5518904B2 (ja) 2009-06-08 2009-06-08 印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法

Country Status (12)

Country Link
US (1) US9886289B2 (ja)
EP (1) EP2441001A4 (ja)
JP (1) JP5518904B2 (ja)
KR (1) KR101682455B1 (ja)
CN (1) CN102483709B (ja)
AR (1) AR093176A1 (ja)
AU (1) AU2009347773B2 (ja)
CA (1) CA2766954C (ja)
MY (1) MY161493A (ja)
NZ (1) NZ596755A (ja)
SG (1) SG176714A1 (ja)
WO (1) WO2010143308A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436422B2 (en) * 2010-02-10 2016-09-06 Sato Holdings Kabushiki Kaisha System and method for printer emulation on a computing device not being connected to the printer
US9176751B2 (en) * 2012-04-04 2015-11-03 Xerox Corporation Tools and methods for customizing multi-function devices
US9052863B2 (en) * 2012-08-14 2015-06-09 Seiko Epson Corporation ePOS printing
US20150007156A1 (en) * 2013-06-26 2015-01-01 Sap Ag Injecting patch code at runtime
CN107408310B (zh) * 2015-03-19 2022-01-07 录象射流技术公司 向印刷机提供编码指令的方法
JP6455376B2 (ja) 2015-09-11 2019-01-23 ブラザー工業株式会社 画像処理装置および端末装置
US10703112B2 (en) * 2017-12-13 2020-07-07 Datamax-O'neil Corporation Image to script converter
IT201900011847A1 (it) * 2019-07-16 2021-01-16 Fotoba Int S R L Procedimento di realizzazione di un supporto stampato e relativo sistema di stampa

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4833626A (en) * 1986-10-14 1989-05-23 International Business Machines Corporation Optimizing printer throughput
US5526469A (en) * 1994-06-14 1996-06-11 Xerox Corporation System for printing image data in a versatile print server
US5805777A (en) * 1995-10-11 1998-09-08 Eastman Kodak Company Extended printer control interface
US6057858A (en) * 1996-08-07 2000-05-02 Desrosiers; John J. Multiple media fonts
US5754748A (en) 1996-09-13 1998-05-19 Lexmark International, Inc. Download of interpreter to a printer
US5812759A (en) * 1996-11-08 1998-09-22 Allen Bradley Company, Inc. Fault handling with loaded functions
US6146030A (en) * 1997-03-21 2000-11-14 Intermec Ip Corporation Method and apparatus for printing laminated bar code symbols and other symbols suffering from specular reflection distortions
US5999732A (en) * 1998-03-23 1999-12-07 Sun Microsystems, Inc. Techniques for reducing the cost of dynamic class initialization checks in compiled code
JPH11313213A (ja) * 1998-04-27 1999-11-09 Canon Inc 情報処理装置、情報処理方法及び媒体
US5983021A (en) * 1998-05-27 1999-11-09 Sun Microsystems Dynamically switching statically bound function calls to dynamically bound function calls without recompilation
US6260157B1 (en) * 1999-02-16 2001-07-10 Kurt Schurecht Patching of a read only memory
US7472910B1 (en) * 1999-03-30 2009-01-06 Canon Kabushiki Kaisha Animation display apparatus, arcade game machine, control method and apparatus thereof, and storage medium
AU2919501A (en) 1999-10-29 2001-05-08 Zih Corporation Printer programming tool and method
US6525835B1 (en) * 1999-12-15 2003-02-25 Pitney Bowes Inc. Method and system for parcel label generation
US8359405B1 (en) * 2000-02-28 2013-01-22 John Border Performance enhancing proxy and method for enhancing performance
US6847466B1 (en) * 2000-04-27 2005-01-25 Hewlett-Packard Development Company, L.P. Printing method
US6721807B2 (en) * 2000-08-10 2004-04-13 International Business Machines Corporation Extensible and efficient double dispatch in single-dispatch object-oriented programming languages
EP1255227A1 (en) * 2001-04-27 2002-11-06 STMicroelectronics Limited Vertices index processor
US7571388B2 (en) * 2001-05-31 2009-08-04 International Business Machines Corporation Computer-readable memory medium for fast drawing of text fields and labels using a Java swing application program interface
US20020186393A1 (en) * 2001-06-11 2002-12-12 Pochuev Denis A. Document printing using format-specific translation modules
US20030020948A1 (en) * 2001-07-27 2003-01-30 Jarvis Daniel Cook Dynamically loaded applications in a printer
EP1456763A4 (en) * 2001-11-20 2005-10-12 Contentguard Holdings Inc SYSTEMS AND METHODS FOR CREATING, HANDLING AND PROCESSING RIGHTS EXPRESSIONS AND CONTRACTS USING SEGMENTED TEMPLATES
US7283268B2 (en) * 2002-07-11 2007-10-16 Paxar Corporation Printer with interpreter
US7784044B2 (en) * 2002-12-02 2010-08-24 Microsoft Corporation Patching of in-use functions on a running computer system
US7145682B2 (en) * 2002-12-20 2006-12-05 Hewlett-Packard Development Company, L.P. Temporary printer firmware upgrade
JP4298362B2 (ja) * 2003-04-17 2009-07-15 キヤノン株式会社 情報処理装置及び印刷プレビュー表示方法
US7869068B2 (en) * 2003-06-27 2011-01-11 Zoran Corporation Printer driver extension and related method
US7139005B2 (en) * 2003-09-13 2006-11-21 Microsoft Corporation Optimized fixed-point mathematical library and graphics functions for a software-implemented graphics rendering system and method using a normalized homogenous coordinate system
JP3793197B2 (ja) * 2003-12-03 2006-07-05 キヤノン株式会社 情報処理装置、情報処理方法、情報処理プログラム並びに記憶媒体
US20050137937A1 (en) * 2003-12-17 2005-06-23 Angela Njo Method and apparatus for web-based label printing
KR20050068829A (ko) * 2003-12-30 2005-07-05 삼성전자주식회사 프린터의 요청에 의한 인쇄 데이터 전송방법 및 장치
US7382400B2 (en) * 2004-02-19 2008-06-03 Robert Bosch Gmbh Image stabilization system and method for a video camera
US20050237556A1 (en) * 2004-04-06 2005-10-27 Watkins Rex D Printer input device having intelligent and non-intelligent modes
JP2006085291A (ja) 2004-09-14 2006-03-30 Fuji Xerox Co Ltd 情報処理装置及びアプリケーションプログラム
US7458894B2 (en) * 2004-09-15 2008-12-02 Microsoft Corporation Online gaming spectator system
US7957016B2 (en) * 2004-09-20 2011-06-07 Marvell International Technology Ltd. Method and apparatus for image processing
US20060072140A1 (en) * 2004-10-05 2006-04-06 Kabushiki Kaisha Toshiba System and method for configuring printer driver settings
JP4597834B2 (ja) * 2004-10-18 2010-12-15 株式会社リコー 画像形成装置、情報処理方法、情報処理プログラム及び記録媒体
JP4438064B2 (ja) * 2004-11-15 2010-03-24 キヤノン株式会社 データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
US20060106629A1 (en) * 2004-11-16 2006-05-18 Cohen Mark N Record transfer
CN100422923C (zh) * 2004-11-23 2008-10-01 国际商业机器公司 增强便携式装置的显示输出能力的设备和方法
JP4591148B2 (ja) * 2005-03-25 2010-12-01 富士ゼロックス株式会社 機能変換装置、機能変換方法、機能変換プログラム、デバイスデータ生成装置、デバイスデータ生成方法、及びデバイスデータ生成プログラム
US7872668B2 (en) * 2005-08-26 2011-01-18 Nvidia Corporation Video image processing with programmable scripting and remote diagnosis
US20070083713A1 (en) * 2005-10-11 2007-04-12 Antonio Torrini System on a chip integrated circuit, processing system and methods for use therewith
JP4612903B2 (ja) * 2006-10-24 2011-01-12 キヤノン株式会社 映像再生装置およびその制御方法
US7680783B2 (en) * 2006-12-28 2010-03-16 Sap Ag Configurable search strategy
JP2008276478A (ja) * 2007-04-27 2008-11-13 Brother Ind Ltd タグラベル編集装置及びタグラベル作成装置
US8589866B2 (en) * 2007-08-29 2013-11-19 Ricoh Company, Ltd. Automatically generating capability-based computer peripheral device drivers
JP4912288B2 (ja) * 2007-12-20 2012-04-11 キヤノン株式会社 管理装置及び情報処理方法
JP5111153B2 (ja) * 2008-02-22 2012-12-26 キヤノン株式会社 サーバ、デバイス管理方法、プログラム
US7979260B1 (en) * 2008-03-31 2011-07-12 Symantec Corporation Simulating PXE booting for virtualized machines
NZ591880A (en) 2008-10-27 2013-12-20 Sato Kk Label printer api using program scripting language
US9778921B2 (en) * 2009-06-02 2017-10-03 Apple Inc. Method for creating, exporting, sharing, and installing graphics functional blocks
US8701104B2 (en) * 2009-12-14 2014-04-15 Opera Software Asa System and method for user agent code patch management
US8941673B2 (en) * 2011-11-08 2015-01-27 Red Hat, Inc. Rendering images in a remote web browser

Also Published As

Publication number Publication date
EP2441001A4 (en) 2012-10-31
CA2766954C (en) 2014-09-23
CN102483709B (zh) 2015-06-24
JP2012529681A (ja) 2012-11-22
EP2441001A1 (en) 2012-04-18
AU2009347773B2 (en) 2015-05-28
US20120137314A1 (en) 2012-05-31
KR101682455B1 (ko) 2016-12-05
AU2009347773A1 (en) 2011-12-15
NZ596755A (en) 2014-03-28
CA2766954A1 (en) 2010-12-16
CN102483709A (zh) 2012-05-30
US9886289B2 (en) 2018-02-06
AR093176A1 (es) 2015-05-27
WO2010143308A1 (en) 2010-12-16
SG176714A1 (en) 2012-01-30
KR20120030522A (ko) 2012-03-28
MY161493A (en) 2017-04-14

Similar Documents

Publication Publication Date Title
JP5693235B2 (ja) プログラムスクリプト言語を用いたラベル/タグプリンタapi
JP5518904B2 (ja) 印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法
KR100838871B1 (ko) 정보 처리 장치, 정보 처리 방법, 및 기억 매체
JP4812093B2 (ja) 情報処理装置、情報処理装置の制御方法、情報処理方法、プログラムおよび記憶媒体
JP5361358B2 (ja) 情報処理装置およびその制御方法、並びにプログラム
KR20120128663A (ko) 프린터 에뮬레이션을 위한 시스템 및 방법
US8687004B2 (en) Font file with graphic images
JP5532317B2 (ja) 画像形成制御プログラム、画像形成プログラム、及び画像形成設定情報のデータ構造
JP5727067B2 (ja) 印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法
JP4702948B2 (ja) デバイスドライバをカスタマイズする情報処理装置、方法、記憶媒体
JP2008015695A (ja) プログラム生成装置、プログラム生成方法、プログラム生成プログラム及びプリンタドライバ
JP2005085052A (ja) 携帯情報端末、印刷方法および印刷用プログラム
JP2012059106A (ja) カスタマイズ装置、印刷システム、カスタマイズ方法およびカスタマイズプログラム
JP2009289121A (ja) 情報処理装置、出力装置、出力処理方法、及びプログラム
JP2013097477A (ja) 印刷システム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20130418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140402

R150 Certificate of patent or registration of utility model

Ref document number: 5518904

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111219

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250