JP2015531087A - Eposプリント - Google Patents

Eposプリント Download PDF

Info

Publication number
JP2015531087A
JP2015531087A JP2014556845A JP2014556845A JP2015531087A JP 2015531087 A JP2015531087 A JP 2015531087A JP 2014556845 A JP2014556845 A JP 2014556845A JP 2014556845 A JP2014556845 A JP 2014556845A JP 2015531087 A JP2015531087 A JP 2015531087A
Authority
JP
Japan
Prior art keywords
printer
print
status
document
api
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.)
Granted
Application number
JP2014556845A
Other languages
English (en)
Other versions
JP2015531087A5 (ja
JP6156394B2 (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of JP2015531087A publication Critical patent/JP2015531087A/ja
Publication of JP2015531087A5 publication Critical patent/JP2015531087A5/ja
Application granted granted Critical
Publication of JP6156394B2 publication Critical patent/JP6156394B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1207Improving or facilitating administration, e.g. print management resulting in the user being informed about print result after a job submission
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1228Printing driverless or using generic drivers
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1231Device related settings, e.g. IP address, Name, Identification
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1246Job translation or job parsing, e.g. page banding by handling markup languages, e.g. XSL, XML, HTML
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1289Remote printer device, e.g. being remote from client or server in server-client-printer device configuration, e.g. the server does not see the printer
    • 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
    • G06F3/1293Printer information exchange with computer
    • G06F3/1295Buffering means
    • 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
    • G06F3/1297Printer code translation, conversion, emulation, compression; Configuration of printer parameters
    • G06F3/1298Printer language recognition, e.g. programme control language, page description language
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • 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
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1805Receiving printer configuration commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1806Receiving job control commands
    • G06K15/1807Receiving job control commands relating to the print image preparation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • G06K15/1836Rasterization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00095Systems or arrangements for the transmission of the picture signal
    • H04N1/001Systems or arrangements for the transmission of the picture signal specially adapted for transmission via digital wireline networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00095Systems or arrangements for the transmission of the picture signal
    • H04N1/00103Systems or arrangements for the transmission of the picture signal specially adapted for radio transmission, e.g. via satellites
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00464Display of information to the user, e.g. menus using browsers, i.e. interfaces based on mark-up languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Astronomy & Astrophysics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

HTMLと互換性のあるスクリプト言語を使用して、Webブラウザーの印刷選択オプションを利用せずに印刷動作を行うために、インテリジェントモジュールと直接通信することができるメソッドやオブジェクトを定義する。印刷APIライブラリーは、必要なメソッド/オブジェクトを、Webページに組み込むために提供する。インテリジェントモジュールはスタンドアローンの電子デバイスでもよく、または、プリンターに結合されたインテリジェントデバイスでもよい。インテリジェントモジュールは、複数のプリンターを直接またはネットワークを通して管理してもよく、Webページ上の印刷APIと対象プリンターとの間の通信を変換/伝達する通信ブリッジを提供するために機能する。印刷APIでは、インテリジェントモジュールの固定IPアドレスを知っていて、印刷ドキュメントまたは印刷コマンドを定義し、既知のIPアドレスを用いてインテリジェントモジュールへ直接送信する。

Description

本発明は、TCP/IPネットワーク上での印刷に関する。特に、販売時点情報管理(POS)ネットワークにおける印刷に関する。
ネットワーク印刷とは、コンピューターネットワーク上で印刷資源を共有することを意味する。図1に示すように、ネットワーク印刷は初期には、印刷サーバー、またはプリンターサーバーとして応用されている。プリンターサーバー11は、共通のコンピューターネットワーク17上でクライアントプリンター13aをプリンター15aに接続する装置である。つまり、クライアントコンピューター13aは印刷ジョブをプリンターサーバー11へ送り、プリンターサーバー11はその印刷ジョブを受け取って保持し(つまり、スプールし)、プリンター15aが利用できるようになった時点でプリンターサーバー11は保持したその印刷ジョブを印刷のためにプリンター15aへ送る。プリンターサーバー11は、複数のプリンター15a〜15iにおいて、複数のクライアントコンピューター13a〜13nからの印刷ジョブを管理してもよいことは理解されるだろう。また、コンピューターネットワークには、有線通信リンクと無線通信リンクの両方が含まれてもよいことは理解されるだろう。それぞれのプリンター15a〜15iはローカルプリンターおよび/またはネットワークプリンターでよい。それぞれのプリンター15a〜15iは、プリンターサーバー11と直接ケーブル接続(たとえば、パラレルケーブル、USBケーブル、専用ケーブルなど)を通して、または有線ネットワーク接続(標準化されたネットワークカテゴリーケーブル(つまり、CAT5, 5e, 6)に関するIEEE802.11など)により、または無線ネットワーク接続(IEEE802.11a/b/g/nなど)により、または別の既知の無線ネットワーク接続(Bluetooth(登録商標)、HomeRF、HyperLanなど)により、直接接続されていてもよい。
プリンターサーバー11は、対象のプリンターが利用可能になるのを待つ間に、印刷ジョブの順番付け(スプーリング)を監督する。また、プリンター動作(たとえば、印刷したページ数や印刷時間など)の記録を取りながら、待ち行列の中の印刷ジョブを再度順番付けしたり削除したりすることを監督してもよい。結果として、プリンターサーバー11は、一般には複数の業界標準および/または専用の印刷プロトコールをサポートし、したがって、その管理の下に各プリンターのプリンタードライバーを含むこともある。プリンターサーバーは私的なネットワークによく適しているが、公的ネットワークと私的ネットワークの両方に、多くの用途を生むインターネットプロトコールTCP/IPを利用する方向へ業界が進んでいるため、インターネットでのインターフェースを通して公的なネットワークにおいて印刷機能を組み込むことが望ましくなってきている。
Webプラウザーは、よく利用されているインターネットインターフェース(一般的にはワールドワイドウェブ、つまりWWWまたはインターネット、の上で利用される)で、ハイパーテキストマークアップ言語(HTML)に基づくWebページを表示する。マークアップ言語は、タグを使用する文字に基づく言語システムで、人間が読むことのできる原文通りの書式で機械が実行できる命令を提供する。たとえば、Webページ上で表示のために情報をどのような書式にするか(表示画面上で、Webページ情報をどのように表示するか)、または所望の実行可能な機能をどのように指定するかについて、Webプラウザーにタグで指示することがある。
インターネットの発展にしたがって、HTMLの初期のバージョンで利用できたよりもさらに高機能を提供することが望ましくなった。この要望に取り組むために、HTMLのWebページ内に組み込むことができる、必要な機械コードすべてを提供するためにJava(登録商標)言語が適用された。これらの小さなアプリケーションはアプレットとして知られるようになった。Javaは、小さな装置や器具を制御するアプリケーションなど、多くのアプリケーションで使用される、すべての機能を持つオブジェクト指向プログラミング(OOP)言語である。
装置を制御するためにJavaアプリケーションを作成した企業では、それらの装置の制御プログラムについての専用の情報を公表することなく、サードパーティメーカーがそれらの装置を簡単に採用することを望んでいた。これは、アプリケーションプログラムインターフェース(API)ライブラリーを利用することで達成された。これらのライブラリーは、簡略化されたインターフェースを制御アプリケーションに提供し、それによって、サードパーティメーカーによる制御プログラムの採用を簡単にした。基本的には、APIは、たとえば、OOP言語におけるオブジェクトやクラスにある様な、入力要件と出力要件を指定した共通のコードの集まりであって、共通コードは、コード化されたアプリケーションにインターフェースを提供する。このように、ユーザーは特定のソフトウェアツールを再度コード化する必要がなく、また、そのソフトウェアツールをどのようにコード化するかを知る必要さえない。単にそのソフトウェアツールの呼び出し方、そのツールへの指定したパラメーターの渡し方、そのツールに所望の機能を実行させる方法、そして、指定した出力の受け取り方を知っていさえすればよい。JavaによってWebページはより弾力的になったが、Javaアプリンターケーション(そしてアプレット)は、スクリプトではなく機械コードの形で提供される、コンパイルされたプログラムであり、したがって、人間にはすぐには読めない。このように、アプレットの使用により、HTMLコードの可読性は減少した。
JavaScript(登録商標)は、スクリプト言語の形でJavaの弾力的な機能のいくつかを提供するが、この問題に取り組んでいる。JavaScriptはスクリプト言語であるため、JavaScriptコードを前処理する(つまり、コンパイルする)ことなく、JavaScriptコードをHTMLで実行できる。したがって、スクリプト(つまり、原文)の形のままである。Javaアプレットのように、JavaScriptは、HTMLのWebページに埋め込むことができる。そして、そのHTMLのWebページがダウンロードされるとき、またはトリガーイベントに反応して、WebブラウザーはJavaScriptを実行することになる。JavaScriptにより、Webページは弾力的にその内容を変更したり、現在のWebページに内容を加えたり、そのWebページから内容を送ったりすることができる。JavaScript、そしてほかのスクリプト言語では、WebブラウザーとWebブラウザーが動作しているオペレーティングシステムとの間の橋を提供することで、Webページはより対話的になることができる。これにより、Webページはユーザーのローカルな装置環境から情報を、たとえば、Webページに提供しても安全であるとWebプラウザーおよび/またはオペレーティングシステムがみなす、装置の位置やほかのユーザーの情報を、組み込むことできる。
JavaScriptの採用により、特定のタスクを実行するように設計された完全なスクリプトアプリケーションをソフトウェアデベロッパーは提供し始めた。これらのスクリプトアプリケーションがWebページに挿入するユニットとしてひとまとめにされると、ウィジェット(widget)と呼ばれるときがある。各ウィジェットは完全なスクリプトコードであるため、Javaアプレットにおける入力と出力の使い方と類似したやり方で、予期された入力の組と可能な出力のリストをウィジェットが持ってもよい。その結果、APIもスクリプトコード用に開発されてきてもいる。たとえば、ある会社が特定の装置で動作するスクリプトコードのライブラリーを作り、そのスクリプトコードをサードパーティデベロッパーのコードに統合しやすくするAPIのリストを提供してもよい。このようにして、サードパーティデベロッパーはその会社の装置がどのように動作するかを理解したり、その装置をどのようにプログラムするかを知る必要がない。提供されたAPIおよび/またはウィジェット(つまり、スクリプトコード)を使用することで、サードパーティデベロッパーは、その会社の装置の制御をすぐに挿入することができる。
これが、Webブラウザーからの印刷、つまり、HTML印刷、という話題につながる。ほとんどのWebプラウザーではツールバー(つまり、異なるタスクを呼び出すための選択可能なソフトウェアボタンという、目に見えるリスト)に印刷機能を提供している。そして、ユーザーがこの印刷機能を選択したときに、ローカルな装置のオペレーティングシステムの印刷APIを通してローカルな装置のプリンターをWebブラウザーがアクセスする。すなわち、Webブラウザーが動作している装置でどのような種類の印刷能力が利用できるかを、もしあったとしても、Webブラウザーは知らないし、セキュリティー上の理由から、オペレーティングシステムはこの情報をWebブラウザーとは共有しない。従って、Webブラウザーで印刷するには、Webブラウザーはオペレーティングシステムの印刷インターフェースを呼び出すことで、オペレーティングシステムへこの機能リクエストを渡さなくてはならない。
その結果、図2に示すように、Webページからの印刷はプリンターダイアローグボックスを通る必要がある。プリンターダイアローグボックス19はプリンター情報を提供し、印刷ドキュメントの書式を整えるために選択するオプションをユーザーに提供する。これらのオプションはプリンターの能力から決まるが、それらの能力はプリンタードライバーによって提供される。たとえば、プリンターダイアローグボックス19は、複数の利用可能なプリンターから選択を行う、プリンター選択オプション21を提供することがある。ボックス21a〜21cは、選択したプリンターの情報を提供することができ、それぞれ、たとえば、そのステータス、種類、場所である。ほかのオプションとしては、選択ボタン23で示すように、モノクロ印刷かカラー印刷かの選択を含んでもよい。ユーザーは印刷するページの範囲を入力してもよく、および/または、選択ボタン25と27で示すように、用紙の種類や用紙の向きを選択してもよい。
クイック印刷オプションを提供するWebブラウザーもある。これは、プリンターダイアローグボックスを使用することなく、その代わりに、印刷リクエストをデフォルトプリンターへ送り、プリンターのデフォルト設定をすべて受け入れることにより、現在表示されているWebページを印刷のために送信する。このリクエストはローカルなオペレーティングシステムの印刷APIへ送られる。印刷APIがクイック印刷をサポートしていて、デフォルト印刷とデフォルト設定が割り当てられていれば、印刷のためにWebページを受け入れることになる。望ましくないことだが、Webページ全体が印刷のために送られる。このように、Webページデベロッパーは、どのようにWebページが印刷されるか、またはどの部分が印刷されるかについての制御ができないし、一般に何が印刷されるかも制御できない。また、Webページデベロッパーは、どのプリンターが利用できるかも知らないし、その印刷能力も知らないし、各プリンターのデフォルト設定がどのようになっているかも知らない。まとめると、Webブラウザーはローカルな装置のオペレーティングシステムに働きかけをし、そのローカルなオペレーティングシステムにより適切なプリンタードライバーがアクセスされるだろうと仮定する。
XMLプリンターは、プリンタードライバーへの依存性を減らし、印刷ドキュメントの書式をもっと制御できるように開発されてきた。XMLプリンターはWebページだけに限定されているのではなく、ローカルの仮想プリンターとして動作することができる。すなわち、あたかも物理的なプリンターのように印刷リクエストに応答するが、物理的に印刷ドキュメントを作成するのではなく、その代わりに印刷ドキュメントがどのように見えるかを示すスクリプト言語記述を作成する。これは、表示画面上でのWebページの見栄えと書式を定義するためにHTMLスクリプト言語が使用されるやり方に類似している。そして、このスクリプト言語記述は、物理的な印刷物を作成するためにXML印刷をサポートする物理的なプリンターへと送ることができる。標準的には、XMLプリンターは、異なるプラットフォーム間と異なるドキュメント書式間で印刷の一貫性を維持するために利用される。たとえば、マイクロソフト社のワードで作成されたドキュメントが、アドビ社のアクロバットで作成された同じ文書と同じように印刷されることを、XML印刷ドキュメントファイルは保証している。
このように、XML印刷ドキュメントファイルと、XML印刷ドキュメントファイルを読むことができるプリンター(またはプリンタードライバー)があれば、プリンタードライバーの要求件の必要なしにそのプリンターへそのXML印刷ドキュメントファイルを送ってもよい。そのプリンター(またはプリンタードライバー)は、そのドキュメントの見栄えについてのスクリプトされた記述を読み、印刷のための固有の印刷イメージを生成することになる。XMLプリンターはプリンタードライバーへの依存性を減らし、それによりネットワーク上での印刷をし易くするが、どのような追加の印刷制御もWebページデベロッパーへは提供しない。すなわち、Webページデベロッパーは依然として、スクリプトアプリケーションやウィジェットの中から印刷を制御することはできず、それよりも印刷インターフェースとしてのWebプラウザーに依存する。
この点について、JavaScriptは何の支援も行わない。Webブラウザーはローカルなオペレーティングシステムとインターフェースし、ローカルなプリンターのAPIへアクセルしたり、XMLプリンターを呼び出してXML印刷ドキュメントを作成したりすることはあるかもしれないが、セキュリティー上の理由から、この情報をWebブラウザーはそこにあるJavaスクリプトとは共有しない。すなわち、JavaScriptの仕事は、従来は、Webページ上の情報を定義し、弾力的な機能性を提供することで、ドキュメントを印刷することはJavaスクリプトの仕事ではない。印刷機能を制御するのはWebブラウザーの仕事であり、そうしてこの制御を内部のスクリプトアプリケーションと共有はしない。その結果、これまでのところ、Javaスクリプトアプリケーションは、プリンターを直接制御することはできず、印刷リクエストの作成をWebブラウザーに要求しなければならない。そして、そのリクエストに応じて、Webブラウザーが印刷リクエストを作成し、次にはそのリクエストをローカルなオペレーティングシステムへ中継し、そして、ローカルなオペレーティングシステムが印刷ダイアローグボックスを呼び出してローカルな/ネットワーク接続されたプリンター(実物の、または仮想的)を設定することになる。
これらの困難にも関わらず、Web印刷、つまり、インターネット上での印刷へと歩みが進められてきた。たとえば、インターネット印刷プロトコール(IPP)は、インターネット上でのリモート印刷のために標準的なネットワークプロトコールを提供する。これにより、ユーザーのそれぞれの機器にそれぞれの印刷ドライバーが必要ではなくなる。IPPは、さまざまな印刷の必要性に、たとえば、印刷ジョブ、メディアの大きさ、解像度などの管理に、対しての制御を提供し、あたかもプリンターがローカルであるかのように類似の方法と操作をユーザーへ提供することを意図している。基本的には、IPPは、ネットワーク印刷プロトコールを定義するオープンな標準を集めたものであり、プリンターベンダーがこの標準を採用したら、IPPにより、ユーザーは、プリンターの能力の情報を得て、印刷ジョブのステータスを要求、または提出された印刷ジョブをキャンセルするために、ベンダーのプリンターと実時間で対話できるようになる。ローカルなプリンターの場合のように、この対話はプリンターダイアローグボックスを通して行われることになる。
インターネット印刷を提供するための別の手法としてはGoogle Cloud Printing(登録商標)、いわゆるGCP、が知られている。これはGoogle(登録商標)社が提供するサービスで、基本的には、デベロッパーが、印刷能力をデベロッパーのWebページやサービスに組み込むことを容認するものである。これは、Google社へ印刷要求を送り、Google社に印刷ジョブ(PDF印刷ジョブに限る)を準備させ、Google社にそれらをユーザーのあらかじめ登録されたプリンターへ転送させることでなされる。Google(登録商標)社はAPIを提供して、デベロッパーが必要なコードをすぐに組み込むことを容認し、標準の印刷ダイアローグボックスを使用して、PDF印刷ジョブを作成して提出する。理解されるだろうが、これは、Google社が印刷されるすべてのドキュメントにアクセスすることを意味するが、ユーザーに取ってはセキュリティーとプライバシーの問題が生じる。さらに記すべき点は、このサービスの別の制限として、印刷されるドキュメントは、ユーザーのコンピューター上に単にあるのではなく、すでにウェブ上にあることが要求される点である。したがって、ウェブ上にはない、ローカルに生成されたドキュメントを印刷するためには、このサービスは使用することができない。
必要なのは、Webブラウザー内からの印刷についてユーザーから行う制御を拡大するための方法である。
さらに好適であるのは、印刷要求をローカルなWebブラウザーへ送る必要性なしに、JavaScriptウィジェットなどのスクリプトアプリケーションを直接通してプリンターへデベロッパーが直接アクセスする、そしてプリンターを制御することである。
また、Webページの中のスクリプトアプリケーションで、印刷する情報を直接生成し形式を整え、印刷ダイアローグボックスの必要性なしに、またはWebページ内の内容による制限なしに、プリンターへ直接その情報を送ることができることが望ましい。
さらに、印刷ジョブを管理するために第三者に依存することなく、直接的なWeb印刷能力をユーザが持つことが望ましい。
上記の目的は、Webアプリケーションでドキュメントを作成し、ドキュメントをネットワークを通してプリンターへ送信する方法において達成される。WebアプリケーションはWebブラウザーにより実行され、前記方法は、アドレスを設定され、ドキュメントを受信し、ドキュメントをプリンターへ送信するように構成されていて、プリンターに接続するように構成されたインテリジェントモジュールを提供するステップと、アプリケーションプログラムインターフェース(API)は、インテリジェントモジュールのアドレスを指定するように構成されたaddressプロパティ要素と、命令バッファーにプリンターを制御するコマンドを追加し、命令バッファーのコマンドを集積することによりドキュメントを作成するように構成された、第1のメソッド要素と、ドキュメントをインテリジェントモジュールへ送信するように構成された、第2のメソッド要素とを含むプリケーションプログラムインターフェース(API)をWebアプリケーションに組み込むステップと、Webアプリケーションに組み込まれた第1のメソッド要素により、ドキュメントを作成するステップと、Webアプリケーションに組み込まれた第2のメソッド要素により、addressプロパティ要素により指定されたアドレスを持つインテリジェントモジュールへ、ドキュメントを送信するステップと、ドキュメントをインテリジェントモジュールからプリンターへ送信するステップとを備える。
好適には、Webアプリケーションは、インテリジェントモジュールまたはWebサーバーに配置され、インテリジェントモジュールは電子デバイスである。
前記方法は、さらにプリンターで用紙上にドキュメントを印刷するステップを含んでもよい。コマンドの一つは、印字のために文字を命令バッファーに追加するテキストコマンドでもよい。さらに、コマンド一つは、文字の特性を設定するパラメーターを命令バッファーに追加する、テキスト設定コマンドでもよい。テキスト設定コマンドには、文字の開始位置、位置揃え、言語、フォント、装飾、倍率、倍角の少なくとも一つを指定する、第1の文字設定パラメーターを含んでもよい。テキスト設定コマンドにはまた、文字を回転するかどうか、または文字のスムージングを有効化するかどうかを指定する、第2の文字設定パラメーターを含んでもよい。
コマンドの一つはまた、プリンターで用紙を供給するための命令を命令バッファーに追加する紙送りコマンドでもよい。
加えて、コマンドの一つは、印刷のためにラスターイメージを命令バッファーに追加するイメージコマンドでもよい。
好適には、前記APIにはhalftoneプロパティ要素が含まれていて、Webアプリケーションで描画されたカラーイメージは、印刷のためにhalftoneプロパティ要素の設定にしたがってイメージコマンドによって、ラスターイメージデータに変換される。ディザリング、誤差拡散、カラーイメージをラスターイメージデータに変換するための閾値の少なくとも一つをhalftoneプロパティ要素で指定することができる。
さらに好適には、APIにはbrightnessプロパティ要素が含まれ、brightnessプロパティ要素の設定にしたがって、イメージコマンドは、カラーイメージを印刷のためにラスターイメージデータに変換する。brightnessプロパティ要素は、たとえば、ラスターイメージデータの明るさを補正するために0.1から10までの範囲でガンマー値を指定することができる。
好適な実施例において、プリンターは、キーコードにより識別され得るロゴを登録するために不揮発性、つまり、NV、メモリーを備え、コマンドには、ロゴを印刷するために、命令バッファーにキーコードを追加するロゴコマンドが含まれ、追加されたキーコードは、NVメモリーに登録されたロゴを指定(つまり、識別)する。
コマンドの一つとしては、バーコードを印刷する命令を命令バッファーに追加するバーコードコマンドでもよく、バーコードコマンドにはバーコードパラメーターが含まれ、バーコードパラメーターは、バーコードの種類、バーコードの幅と高さ、および/またはバーコード種類に変換されるデータの少なくとも一つを指定する。
加えて、コマンドの一つとしては、2次元シンボルを印刷する命令を命令バッファーに追加するシンボルコマンドでもよく、シンボルコマンドはシンボルパラメーターを含み、シンボルパラメーターは、2次元シンボルの種類、2次元シンボルの誤り訂正レベル、または2次元シンボルに変換されるデータの少なくとも一つを指定する。
コマンドには、第1の線を第1の方向に引く命令を命令バッファーに追加する第1の線コマンドと、第2の線を第2の方向に引く命令を命令バッファーに追加する第2の線コマンドが含まれてもよく、第1の線コマンドは、第1の線の開始位置と終了位置を指定して線分として定義する第1の線パラメーターを含み、第2の線コマンドは、第2の線の開始位置を指定し、第2線の終了位置は除き、連続する線として定義する第2の線パラメーターを含む。好適には、ほかのコマンドとして、第2の線、それは第2の線コマンドにより開始されるが、その描画を終了させる命令を追加する第3の線コマンドがあり、第3の線コマンドは第3の線パラメーターを含み、第3の線パラメーターは第2の線の終了位置を指定する。
さらに好適には、コマンドの一つは、ページモードへ切り換える命令を命令バッファーに追加するページモードコマンドであり、ページモードは、印刷領域が定義され、その印刷領域にデータを配置し、バッチ動作で印刷領域が印刷される、印刷モードで、ページモードコマンドはさらに、印刷領域を指定する座標を含む、印刷領域を命令バッファーに追加する命令を追加する。好適には、コマンドの一つは、ページモードを終了させる命令を命令バッファーに追加する第2のページモードコマンドである。コマンドにはさらに、ページモードの設定を命令バッファーに追加する第3のページモードコマンドを含んでもよく、第3のページモードコマンドは、ページモードにおいて印刷する方向、または、ページモードにおいて印刷での開始位置を指定する座標を、指定する第3のページパラメーターを含む。コマンドにはさらに、ページモードにおいて線または四角形を描画する命令を命令バッファーに追加する第4のページモードコマンドを含んでもよく、第4のページモードコマンドは、ページモードにおいて線または四角形の開始位置と終了位置を指定する座標を含む。第4のページモードコマンドは、線または四角形の種類を指定する第4のページパラメーターを含んでもよい。
加えて、コマンドの一つとしては、用紙をカットする命令を命令バッファーに追加する、用紙カットコマンドでもよく、用紙カットコマンドは、用紙を供給することなく用紙をカットするか、用紙を供給した後で用紙をカットするかのいずれかを指定する用紙カットパラメーターを含む。
さらに好適には、ドロワーがプリンターに接続され、コマンドの一つとしては、ドロワーをキックオープンする命令を命令バッファーに追加する、ドロワーキックコマンドである。好適には、ドロワーキックコマンドには、ドロワーを開けるために加えられる信号のオン期間を指定する第1のドロワーパラメーターを含む。好適には、ドロワーは二つのコネクターによりプリンターに接続されていて、ドロワーとプリンターを接続するコネクターのいずれか一つを指定する第2のドロワーパラメーターを、ドロワーキックコマンドは含む。
加えて、プリンターにはブザーが備わっていてもよく、コマンドの一つとしては、ブザーをオンにする命令を命令バッファーに追加する、ブザーコマンドでもよい。ブザーの起動が繰り返される回数、またはパターンを指定するブザーパラメーターが、ブザーコマンドに含まれてもよい。
addressプロパティ要素はタイムアウト期間を設定するように構成されてもよく、好適には、前記方法は、タイムアウト期間の経過に対応して、addressプロパティ要素により指定されたプリンターでドキュメントを印刷する印刷ジョブをキャンセルするステップを含んでもよい。
addressプロパティ要素はさらに、ドキュメントをプリンターへ送信するために、プリンターのデバイスIDを設定するように構成されていてもよい。前記APIはさらに、プリンターから、印刷結果、エラーコード、および/またはプリンターステータスの一つを含む応答メッセージを取得するように構成された受信イベント要素を含んでいてもよく、前記方法はさらに、addressプロパティ要素により指定されたインテリジェントモジュールに接続されたプリンターから、応答メッセージを受信するステップを含んでもよい。好適には、エラーコードおよび/またはプリンターステータスは、自動的に回復可能なエラーおよび/または回復不能なエラーの一つの発生を示す。さらに好適には、プリンターにはカバーがあり、エラーコードおよび/またはプリンターステータスは、カバーが開いているときを示す。また好適には、プリンターには自動カッターがあり、自動カッターでエラーが発生したときを、エラーコードおよび/またはプリンターステータスで示す。また、プリンターは、用紙がプリンターにあるかどうかを検出するセンサーを持っていてもよく、そのセンサーによって用紙がないことが検出されるときを、エラーコードおよび/またはプリンターステータスで示す。また、インテリジェントモジュールへ送信したドキュメントに構文エラーがあるかどうかを、エラーコードおよび/またはプリンターステータスで示してもよい。
好適には、デバイスIDを持つプリンターが存在しないかどうかを、エラーコードまたはプリンターステータスで示す。インテリジェントモジュールに接続された通信ポートをプリンターが持つ場合、通信ポートでエラーが検出されたかどうかを、エラーコードおよび/またはプリンターステータスで示してもよい。さらに好適には、addressプロパティ要素は、プリンターでドキュメントを印刷する印刷ジョブをキャンセルするためにタイムアウト期間を設定するように構成され、タイムアウト期間が経過したかどうかを、エラーコードおよび/またはプリンターステータスで示す。さらに、印刷が成功裏に完了するかどうかを、エラーコードおよび/またはプリンターステータスで示してもよい。コネクターによりドロワーに接続されるようにプリンターが構成されていると仮定すると、コネクターの所定のピンのステータスを、エラーコードまたはプリンターステータスで示してもよい。また、プリンターがオフラインか、オンラインへ戻されることを待機しているか、または、プリンターから何の応答もなかったかを、エラーコードまたはプリンターステータスで示してもよい。また、用紙を供給するスイッチをプリンターが持っていてもよい。この場合、スイッチの動作により用紙が供給されているところかどうかを、エラーコードおよび/またはプリンターステータスで示してもよい。また、プリンターにはブザーがあってもよく、その場合、ブザーがオンにされているかどうかを、エラーコードおよび/またはプリンターステータスで示してもよい。プリンターまたはインテリジェントモジュールは、ドキュメントを印刷するための印刷ジョブをスプールするために構成されたスプーラーを持っていてもよく、スプーラーが停止したかどうかを、エラーコードまたはプリンターステータスで示してもよい。
好適には、前記APIは、そのAPIを初期化するためのコンストラクターを含む。この場合、前記方法には、ドキュメントを作成するステップの前に、APIを初期化するステップをさらに含んでもよい。
前記の目的は、Webアプリケーションでドキュメントを作成し、ドキュメントをネットワークを通してプリンターへ送信する方法において達成される。WebアプリケーションはWebブラウザーにより実行され、前記方法は、アドレスを設定され、ドキュメントを受信し、ドキュメントをプリンターへ送信するように構成されていて、プリンターに接続するように構成されたインテリジェントモジュールを提供するステップと、アプリケーションプログラムインターフェース(API)は、第1のオブジェクトは命令バッファーを含み、ドキュメントを作成する第1のオブジェクトと、第1のメソッド要素は、命令バッファーにプリンターを制御するコマンドを追加し、バッファーのコマンドを集積することによりドキュメントを作成するように構成されていて、第1のオブジェクトを処理する第1のメソッド要素と、ドキュメントを送信する第2のオブジェクトと、インテリジェントモジュールのアドレスを指定するように構成されたaddressプロパティ要素と、第2のメソッド要素は、バッファーのドキュメントをインテリジェントモジュールへ送信するように構成されていて、第2のオブジェクトを処理する第2のメソッド要素と、を提供し、Webアプリケーションに前記APIを組み込むステップと、Webアプリケーションに組み込まれた第1のメソッド要素によりドキュメントを作成するステップと、Webアプリケーションに組み込まれた第2のメソッド要素により、addressプロパティ要素により指定されたアドレスを持つインテリジェントモジュールへ、ドキュメントを送信するステップと、ドキュメントをインテリジェントモジュールからプリンターへ送信するステップとを備える。
好適には、本取り組みにおいて、前記APIは、第1のオブジェクトを初期化する第1のコンストラクターと、第2のオブジェクトを初期化する第2のコンストラクターとを含み、前記方法はさらに、ドキュメントを作成するステップの前に、第1のオブジェクトを初期化するステップと、ドキュメントを送信するステップの前に、第2のオブジェクトを初期化するステップを含む。
前記メソッドは、さらに、プリンターで用紙上にドキュメントを印刷するステップを備えていてもよい。
前記APIは、また、印刷結果、エラーコード、またはプリンターステータスのどれか一つを含む応答メッセージをプリンターから取得するように構成された受信イベント要素を含んでもよく、前記方法は、さらに、プリンターから応答メッセージを受信するステップを備えていてもよい。プリンターはaddressプロパティ要素により指定されたインテリジェントモジュールに接続され、応答メッセージを受信するステップより前に、第2のオブジェクトは初期化される。
前記目的は、また、Webアプリケーションでドキュメントを作成し、ドキュメントをネットワークを通してプリンターへ送信する方法において達成される。WebアプリケーションはWebブラウザーにより実行され、前記方法は、アドレスを設定されるように構成されたプリンターを提供するステップと、(i)プリンターのアドレスを指定するように構成されたaddressプロパティ要素と、(ii)命令バッファーにプリンターを制御するコマンドを追加し、バッファーのコマンドを集積することによりドキュメントを作成するように構成された、第1のメソッド要素と、(iii)バッファーのドキュメントをインテリジェントモジュールへ送信するように構成された、第2のメソッド要素と、を含むアプリケーションプログラムインターフェース(API)をWebアプリケーションに組み込むステップと、Webアプリケーションに組み込まれた第1のメソッド要素によりドキュメントを作成するステップと、Webアプリケーションに組み込まれた第2のメソッド要素により、addressプロパティ要素により指定されたアドレスを持つプリンターへ、ドキュメントを送信するステップと、ドキュメントを印刷するステップとを備える。
前記目的は、また、Webアプリケーションでドキュメントを作成し、ドキュメントをネットワークを通してプリンターへ送信するシステムにおいて達成される。WebアプリケーションはWebブラウザーにより実行され、前記システムは、ネットワークアドレスを設定されるように構成されていて、プリンターに接続するように構成されたインテリジェントモジュールと、WebアプリケーションはWebサーバーにインストールされ、ネットワークを通してインテリジェントモジュールに接続されたWebサーバーと、Webアプリケーションに組み込まれたアプリケーションプログラムインターフェース(API)とを備え、前記APIは、(i)インテリジェントモジュールのアドレスを指定するように構成されたaddressプロパティ要素と、(ii)命令バッファーにプリンターを制御するコマンドを追加し、バッファーのコマンドを集積することによりドキュメントを作成するように構成された、第1のメソッド要素と、(iii)バッファーのドキュメントをインテリジェントモジュールへ送信するように構成された、第2のメソッド要素とを含み、前記システムにおいて、第1のメソッド要素によりドキュメントが作成され、第2のメソッド要素により、addressプロパティ要素により指定されたアドレスを持つインテリジェントモジュールへ、ドキュメントが送信され、インテリジェントモジュールはドキュメントをプリンターへ送信する。
好適には、ドロワーがプリンターに接続され、コマンドの一つは、ドロワーをキックオープンする命令を命令バッファーに追加する、ドロワーキックコマンドである。
プリンターには、また、ブザーがあってもよく、コマンドの一つは、ブザーをオンさせる命令を命令バッファーに追加する、ブザーコマンドでもよい。
上記の目的は、また、HTML5 Canvasで描画したイメージをプリンターへ送信し、プリンターでイメージを印刷する方法において達成される。前記方法は、アドレスを設定されるように構成されていて、プリンターに接続されるように構成されたインテリジェントモジュールを提供するステップと、(i)描画されたイメージをラスターイメージデータへ変換する変換方法を指定するように構成された第1のプロパティ要素と、(ii)インテリジェントモジュールのアドレスを指定するように構成された第2のプロパティ要素と、(iii)イメージをラスターイメージデータへ変換し、変換したラスターイメージをインテリジェントモジュールへ送信するように構成された、メソッド要素とを含むアプリケーションプログラムインターフェース(API)をWebアプリケーションに組み込むステップと、第1のプロパティ要素により指定された変換方法にしたがって、メソッド要素によりイメージをラスターイメージデータへ変換するステップと、第2のプロパティ要素により指定されたアドレスにしたがって、メソッド要素によりラスターイメージデータをインテリジェントモジュールへ送信するステップと、ラスターイメージデータをインテリジェントモジュールからプリンターへ送信するステップを備える。
上記の目的は、また、アプリケーションでドキュメントを作成または編集する方法において達成される。ドキュメントはネットワークを通してプリンターへ送信されるように構成され、アプリケーションはWebブラウザーにより実行されるように構成される。前記方法は、ドキュメントは命令バッファーのコマンドを集積することにより作成されていて、命令バッファーへ追加されるように構成された、プリンターを制御するコマンドを提供するステップと、プリンターのアドレスをaddressプロパティ要素へ設定することを可能にする設定画面を表示するステップと、アイコンを含み、アイコンのそれぞれはプリンターを制御するコマンドの一つと対応していて、ドキュメントを編集および/または作成することを可能にする編集画面を表示するステップと、アイコンの指定した一つが、それはコマンドに対応しているが、編集画面上で選択される場合、編集画面上でコマンドのパラメーターを入力することを可能にする入力ボックスを表示するステップと、編集画面で選択か入力されるパラメーターを持つコマンドを命令バッファーに追加するステップを備える。
好適には、前記方法はさらに、編集画面上で編集されたか、作成されたドキュメントをXML言語コードへ変換するステップと、コードを表示するステップを備える。前記方法はさらに、編集画面上で編集されたか、作成されたドキュメントの第1の部分を印刷プレビューに変換するステップと、印刷プレビューを表示するステップを備えていてもよい。オプションとしては、前記方法はまた、addressプロパティ要素により指定されたアドレスを持つプリンターへドキュメントを送信するボタンを表示するステップを備えていてもよい。
上記目的はさらに、Webアプリケーションでドキュメントを作成し、ドキュメントをプリンターへ送信し、ネットワークを通してプリンターのステータスを取得する方法において達成されてもよい。WebアプリケーションはWebブラウザーにより実行され、前記方法は、ネットワークアドレスを設定され、ドキュメントを受信し、ドキュメントをプリンターへ送信するように構成されていて、プリンターに接続するように構成されたインテリジェントモジュール(インテリジェントモジュールは、好適には、物理的な電子デバイスである)を提供するステップと、(i)インテリジェントモジュールのアドレスを指定するように構成されたaddressプロパティ要素と、(ii)プリンターの一つまたはそれ以上のステータスを確認するように構成されたstatusイベント要素と、(iii)statusイベント要素を動作させることを有効化するように構成されたopenメソッド要素とを含むアプリケーションプログラムインターフェース(API)をWebアプリケーションに組み込むステップと、インテリジェントモジュールのアドレスをaddressプロパティ要素に設定するステップと、プリンターの指定されたステータスを受信するように、statusイベント要素を動作させることを有効化するステップと、を備える。
好適には、前記APIは、statusイベント要素の動作を無効化するように構成されたcloseメソッド要素を含み、前記方法はさらに、statusイベント要素を無効化するステップを備える。
前記APIはまた、プリンターのステータスを更新する時間間隔を指定するintervalプロパティ要素を含んでもよく、前記方法はさらに、intervalプロパティ要素に時間間隔を設定するステップを備える。
前記APIはさらに、プリンターから最後に取得したステータスを指定するstatusプロパティ要素を含んでもよい。
加えて、前記方法はさらに、プリンターのデバイスIDを設定するステップを含んでもよく、addressプロパティ要素は、デバイスIDにより指定されたプリンターのステータスを受信するために、そのプリンターのデバイスIDを指定するように構成される。
オプションとしては、Webアプリケーションはインテリジェントモジュール、またはWebサーバーに配置されてもよい。
プリンターのステータスには、プリンターがオンラインかオフラインかを示すステータスが含まれてもよい。
加えて、プリンターにはカバーがあってもよく、プリンターのステータスには、カバーが開いているか閉じているかを示すステータスが含まれてもよい。
好適には、前記APIはさらに、(i)命令バッファーにプリンターを制御するコマンドを追加し、バッファーのコマンドを集積することによりドキュメントを作成する、第1のメソッド要素と、(ii)バッファーのドキュメントをインテリジェントモジュールへ送信するように構成された、第2のメソッド要素とを含む。この場合、前記方法はさらに、Webアプリケーションに組み込まれた第1のメソッド要素により、ドキュメントを作成するステップと、addressプロパティ要素により指定されたアドレスを持つインテリジェントモジュールへ、Webアプリケーションに組み込まれた第2のメソッド要素によりドキュメントを送信するステップと、インテリジェントモジュールからプリンターへドキュメントを送信するステップを備えてもよい。
前記方法はまた、ドキュメントをプリンターの用紙上に印刷するステップを備えてもよい。この場合、プリンターのステータスには、プリンターの紙の供給が終了したか、終了に近いかを示すステータスが含まれてもよい。好適には、ドロワーがプリンターに接続され、コマンドの一つは、ドロワーをキックオープンする命令を命令バッファーに追加する、ドロワーキックコマンドである。プリンターのステータスには、ドロワーが開いているか閉じているかを示すステータスが含まれてもよい。
上記の目的はまた、Webアプリケーションでドキュメントを作成し、ドキュメントをプリンターへ送信し、ネットワークを通してプリンターのステータスを取得するシステムにおいても達成される。WebアプリケーションはWebブラウザーにより実行され、前記システムは、アドレスを設定されるように構成されていて、プリンターに接続するように構成されたインテリジェントモジュールと、WebアプリケーションはWebサーバーにインストールされていて、ネットワークを通してインテリジェントモジュールに接続されたWebサーバーと、Webアプリケーションに組み込まれたアプリケーションプログラムインターフェース(API)とを備え、前記APIは(i)インテリジェントモジュールのアドレスを指定するように構成されたaddressプロパティ要素と、(ii)プリンターの一つまたはそれ以上のステータスを確認するように構成されたstatusイベント要素と、(iii)statusイベント要素の動作を有効化するように構成されたopenメソッド要素とを含み、前記システムにおいて、statusイベント要素の動作がopenメソッド要素により有効化された後で、statusイベント要素により指定された、プリンターのステータスは、addressプロパティ要素により指定された、プリンターから、Webブラウザーへ送信される。
好適には、プリンターにはカバーがあり、プリンターのステータスには、カバーが開いているか閉じているかを示すステータスが含まれる。
さらに好適には、前記APIはさらに、命令バッファーにプリンターを制御するコマンドを追加し、バッファーのコマンドを集積することによりドキュメントを作成するように構成された、第1のメソッド要素と、命令バッファーのドキュメントをインテリジェントモジュールへ送信するように構成された、第2のメソッド要素とを提供し、前記システムにおいて、ドキュメントは、第1のメソッド要素により作成され、addressプロパティ要素により指定されたアドレスを持つインテリジェントモジュールへ、第2のメソッド要素により送信される。
好適には、ドロワーがプリンターに接続され、コマンドの一つは、ドロワーをキックオープンする命令を命令バッファーに追加する、ドロワーキックコマンドである。
プリンターのステータスにはさらに、ドロワーが開いているか閉じているかを示すステータスが含まれていてもよい。
以下の記述と請求項を添付の図面とともに参照することで、本発明のより完全な理解ととともに、ほかの目的と達成事項は明確になり理解されるだろう。
図面においては、同様な部分は同様な参照符号で示される。
典型的なプリンターサーバーの配置を示す図である。 典型的なプリンターダイアローグボックスを示す図である。 本発明の第1実施例である。 本発明の第2実施例である。 命令バッファーを示し、本発明の制御コマンドを数例示す。 POSシステムに適用した、本発明の具体例を示す。 ePOS-Print APIによって実現されることがある印字の種類の例を示す。 ePOS-Print-Canvas APIによって実現されることがある印刷の種類の例を示す。 本発明の一実施例における印刷の流れの例である。 本発明のシステム構築例を示す。 WebアプリケーションをTMインテリジェントプリンターへ登録する状況を示す。 本発明のePOS-Print APIを使用して作成したサンプルプログラムの画面の例を示す。 図12の設定ボタンを起動することに対応して呼び出されることがある設定画面の例である。 ePOS-Print APIを使用した第1の印刷物の例と、ePOS-Print-Canvas APIIを使用した第2の印刷物の例とを示す。 初期表示状態から印刷ジョブ完了までのプロセスステップの流れを示す流れ図である。 クーポン発行のためのプロセスステップの流れを示す流れ図である。 本発明の動作環境の例である。 サンプルプログラムの環境設定を構成するためのプロセスフローを示す。 TMインテリジェントプリンターのネットワーク設定の例である。 デバイス設定の例である。 構成されうる、デバイス設定の例を示す。 ePOS-Print APIを使用したプログラミングのサンプルワークフローである。 ePOS-Print APIを組み込むためにHTMLの<script>タグを使用する例を示す。 印刷ドキュメントを作成するためのプログラムコードセグメントの例を示す。 文字印字ドキュメントを作成するためのスクリプトコードの例を示す。 グラフィック印刷ドキュメントを作成するためのサンプルスクリプトコードを示す。 ページモードの印刷ドキュメントを作成するためのサンプルコードを示す。 印刷ドキュメントを送信するためのサンプルコードを示す。 プリンターのエンドポイントアドレスについての詳細を示す表である。 コールバック関数を実装するためのサンプルコードである。 コールバック関数のエラーハンドリング方法の例である。 印刷を行わずにプリンターステータスを確認するためにステータスイベント通知機能の使い方を示す。 ePOS-Print-Canvas APIを使用したプログラミングのワークフローを示す。 ePOS-Print-Canvas APIを組み込むためのサンプルコードを示す。 HTML5-Canvasで描画するためのサンプルコードを示す。 印刷のために印刷ドキュメントを送信するためのサンプルコードである。 コールバック関数による結果受信を印刷するためのサンプルコードを示す。 コールバック関数によるエラーハンドリングのためのサンプルコードを示す。 印刷を行わずにプリンターステータスを確認するためにステータスイベント通知機能を使用するサンプルコードである。 ePOS-Print APIのメソッドと要素のいくつかを列記する。 ePOS-Print APIのメソッドと要素のいくつかを列記する。 ePOS-Print APIのメソッドと要素のいくつかを列記する。 ePOS-Print APIのメソッドと要素のいくつかを列記する。 ePOS-Print Builderオブジェクトのコンストラクターのサンプルコードを示す。 位置揃えパラメーターの種類の例を示す。 ePOS-Print Builderオブジェクトの戻り値を示す。 例外エラーを示す。 文字位置揃えの使い方を示すサンプルコードである。 改行量を30ドットに設定するサンプルコードを示す。 倒立印字パラメーターのためのBoolean値を示す。 倒立印字を設定するためのサンプルコードである。 文字列の中で印字できない文字を示すためのエスケープシーケンスである。 addText(data)の使い方を示すサンプルコードである。 対象言語を指定するためのlangパラメーターの例を示す。 addTextLang(lang)メソッドの使い方を示すサンプルコードである。 fontパラメーターのサンプル値を示す。 addTextFont(font)メソッドの使い方を示すサンプルコードである。 smoothパラメーターの可能な値を示す。 addTextSmooth(smooth)メソッドの使い方を示すサンプルコードである。 dwのパラメーター値である。 dhのパラメーター値である。 文字の倍角を、横倍角と縦倍角に設定するためのサンプルコードを示す。 widthパラメーターの可能な値を示す。 heightパラメーターの可能な値を示す。 横倍率を4倍にし縦倍率を4倍にするためのサンプルコードを示す。 reverseパラメーターの可能な値を示す。 ulパラメーターの可能な値を示す。 emパラメーターの可能な値を示す。 colorパラメーターの可能な値を示す。 アンダーライン装飾を設定するためのサンプルコードを示す。 印字位置を左端から120ドットに設定するためのサンプルコードを示す。 紙送りを30ドットするためのサンプルコードを示す。 紙送りを3行するためのサンプルコードを示す。 文字列を印字した後で、新しい行を始めるためのサンプルコードを示す。 addImageメソッドにおいてcolorパラメーターのサンプル値を示す。 addImageメソッドにおいてmodeパラメーターのサンプル値を示す。 ページモードで幅300ドット、高さ300ドットのイメージを印刷するためのサンプルコードを示す。 addLogoメソッドの使い方を示すサンプルコードである。 バーコードの種類の例を示す。 バーコードの種類の例を示す。 バーコードの種類の例を示す。 バーコードの種類の例を示す。 hriパラメーターのいくつかの可能な値を示す。 バーコードの印字の仕方を示すサンプルコードである。 addSymbolメソッドにおいてdataパラメーターの2Dコードの種類の例を示す。 addSymbolメソッドにおいてdataパラメーターの2Dコードの種類の例を示す。 addSymbolメソッドにおいてtypeパラメーターのサンプル値を示す。 addSymbolメソッドにおいてlevelパラメーターのサンプル値を示す。 2次元シンボルを印字するためのサンプルコードを示す。 addHlineメソッドのいくつかのstyleパラメーターを示す。 横罫線を二重線で描画するためのサンプルコードを示す。 addVLineBeginメソッドのstyleパラメーターの例を示す。 縦罫線を左端から100ドットと200ドットの位置に細線で描画するためのサンプルコードを示す。 addVLineEndメソッドのstyleパラメーターの例を示す。 縦罫線を左端から100ドットと200ドットの位置に細線で描画するためのサンプルコードを示す。 ページモードで文字「ABCDE」を印字するためのサンプルコードを示す。 原点(100、50)、幅200ドット、高さ30ドットの印字領域を指定して、文字「ABCDE」を印字するためのサンプルコードを示す。 addPageDirectionメソッドのdirパラメーターのいくつかの例を示す。 時計回りに90度回転させて、文字「ABCDE」を印字するためのサンプルコードを示す。 addPageAreaメソッドで指定した領域内の印字開始位置を(50、30)に指定して、文字「ABCDE」を印字するためのサンプルコードを示す。 addPageLineメソッドのstyleパラメーターの例を示す。 開始位置(100、0)と終了位置(500、0)の間を細い実線で描画するためのサンプルコードを示す。 addPageRectangleメソッドでのstyleパラメーターの例を示す。 開始位置(100、0)と終了位置(500、200)を頂点とする四角形を細い二重線で描画するためのサンプルコードを示す。 addCutメソッドの種類の例を示す。 フィードカットするためのサンプルコードを示す。 addCutメソッドのdrawerパラメーターの例を示す。 addCutメソッドのtimeパラメーターの例を示す。 ドロワーキックコネクター2番ピンに100ミリ秒のパルス信号を出力するためのサンプルコードを示す。 ブザーパターンの例を示す。 addSoundメソッドのrepeatパラメーターの設定の仕方の例を示す。 音のパターンAを3回繰り返すためのサンプルコードを示す。 toString()メソッドの使い方を示すサンプルコードである。 モノクロ(2階調)印刷に適用するハーフトーン処理方法の指定の仕方を示す。 ハーフトーンの種類を誤差拡散として設定するためのサンプルコードを示す。 明るさを2.2に設定するためのサンプルコードを示す。 命令バッファーをクリアし、初期状態に戻すためのサンプルコードを示す。 ePOSPrint(address)の使い方を示すサンプルコードである。 send(request)メソッドの使い方を示すサンプルコードである。 open( )メソッドの使い方を示すサンプルコードである。 close( )メソッドの使い方を示すサンプルコードである。 addressプロパティの使い方の例を示す。 enabledプロパティの使い方の例を示す。 intrervalプロパティの使い方の例を示す。 statusプロパティの使い方の例を示す。 responseオブジェクトのいくつかのプロパティを示す。 successの値を示す。 codeの値を示す。 statusの値を示す。 印刷ドキュメントを作成して送信し、印刷結果をメッセージボックスで表示するためのサンプルコードを示す。 errorオブジェクトのいくつかのプロパティを列記する。 印刷ドキュメントを作成して送信し、通信エラー発生時にHTTPステータスコードをメッセージボックスに表示するためのサンプルコードを示す。 onstatuschangeイベントの使い方の例を示す。 ononlineイベントの使い方の例を示す。 onofflineイベントの使い方の例を示す。 onpoweroffイベントの使い方の例を示す。 oncoverokイベントの使い方の例を示す。 oncoveropenイベントの使い方の例を示す。 onpaperokイベントの使い方の例を示す。 onpapernearendイベントの使い方の例を示す。 onpaperendイベントの使い方の例を示す。 ondrawerclosedイベントの使い方の例を示す。 ondraweropenイベントの使い方の例を示す。 ePOS-Print-Canvas APIのいくつかの要素を列記する。 新しいePOS-Print-Canvas APIオブジェクトの作成を示すサンプルコードである。 cutパラメーターの例を示す。 modeパラメーターの例を示す。 Canvas(ID='myCanvas')を印刷するためのサンプルコードである。 open( )メソッドの使い方を示すサンプルコードである。 close( )メソッドの使い方を示すサンプルコードである。 addressプロパティの使い方を示すサンプルコードである。 enabledプロパティの使い方を示すサンプルコードである。 intervalプロパティの使い方を示すサンプルコードである。 statusプロパティの使い方を示すサンプルコードである。 いくつかのhalftoneプロパティを示す。 halftoneプロパティの使い方を示すサンプルコードである。 brightnessプロパティの使い方を示すサンプルコードである。 responseオブジェクトのいくつかのプロパティを示す。 successの値を示す。 codeの値を示す。 statusの値を示す。 Canvas(ID=myCanvas)を印刷し、印刷結果をメッセージボックスに表示するためのサンプルコードを示す。 errorオブジェクトのいくつかのプロパティを列記する。 Canvas(ID=myCanvas)を印刷し、通信エラー発生時にHTTPステータスコードをメッセージボックスに表示するためのサンプルコードを示す。 onstatuschangeイベントの使い方を示すサンプルコードである。 ononlineイベントの使い方の例を示す。 onofflineイベントの使い方の例を示す。 onpoweroffイベントの使い方の例を示す。 oncoverokイベントの使い方の例を示す。 oncoveropenイベントの使い方の例を示す。 onpaperokイベントの使い方の例を示す。 onpapernearendイベントの使い方の例を示す。 onpaperendイベントの使い方の例を示す。 ondrawerclosedイベントの使い方の例を示す。 ondraweropenイベントの使い方の例を示す。 本発明のePOS Print editorのサンプルメインページ(すなわち、index.HTMLまたはホームページ)を示す。 本発明のePOS Print editorの設定タブを選択することで生ずる設定画面を示す。 設定画面により与えられるオプションのいくつかをまとめた表である。 本発明のePOS Print editorの編集画面の別の図である。 本発明のePOS Print editorのプレビューイメージの例を示す。 「印刷」タブが選択されたときのePOS Print editorの図の例である。 本発明のインポート画面を示す。 APIタブが選択されたときのePOS Print editorの図の例である。
従来は、インターネット上のWebページから印刷するためには、ユーザーは通常、Webブラウザーのインターフェース上のWebブラウザーの印刷選択ボタンを通して、またはインターネット上のサードパーティーの印刷サービスを通して行わなくてはならなかった。プリンターなどのローカルなリソースへのアクセスはWebブラウザーが制御する。基本的には、Webブラウザーはローカルなオペレーティングシステムへのインターフェースとして機能し、次にはそのオペレーティングシステムが設置されたプリンタードライバーへのアクセスを制御する。インターネット上のサードパーティーの印刷サービスを通して印刷することを望む場合、印刷するドキュメントも単にユーザーのローカルなデバイス上だけではなく、インターネット上に存在することが必要である。どちらの場合でも、ユーザーはプリンターダイアローグボックスを通して利用可能な登録されたプリンターと印刷オプションから選択することが要求されるが、そこから印刷をしようとしているWebページでは、それらのプリンターもそれらの印刷オプションもわからない。
ネットワーク印刷の能力を改善するためには、Webアプリケーション、つまり、Webページ、の能力を上げる努力を本発明では行っている。特に、Webブラウザーの印刷選択ボタンを通すことなく、または、サードパーティーのインターネット印刷サービスに依存することなく、ネットワークプリンターとネットワークされていないプリンターを直接制御するために、Webページ内で実行されるスクリプトアプリケーション(つまり、ウィジェットやメソッドなど)の能力を上げる努力を行っている。
好適な実施例におけるプリンターは、ローカルなプリンターおよび/またはリモートなプリンターでよい。すなわち、本発明では、Webブラウザーからの印刷支援や明示的な印刷許可を要求することなく、印刷ドキュメントを作成し、プリンターと交信し、そして制御することを、Webページスクリプトアプリケーションに認めている。スクリプトアプリケーションにより直接作成された印刷ドキュメントに加えて、印刷ドキュメントは印刷するためにインターネット上に存在しなくてもいい 。好適な実装においては、以下の記載でスクリプトアプリケーションに触れるときはいつでも、スクリプトアプリケーションはJavaに基づくスクリプト言語であるJavaScript言語で実現されるとして述べる。しかしながら、当該技術で既知のほかのスクリプト言語を使用して本発明が実現されてもよいことは理解されるだろう。
本発明では印刷能力をWebページに追加し、Webページは典型的にはWebブラウザー経由でアクセスされるため、Webブラウザーを動作させることが可能なローカルの計算デバイスは、本発明の好適な実施例に含まれる。既存のネットワークプリンターとネットワークされていないプリンターとともに本発明を使用することを容易にするために、Webページから印刷命令を受け取り、それらを接続されたプリンターのために適切な通信形式/言語に変換することが可能なインターフェースボックス(つまり、デバイス、装置、またはモジュール)を経由してWebページが通信することはさらに好適である。好適には、インターフェースボックスは、Webページとプリンターとの通信のための変換サービスを提供し、与えられたプリンターに適切な印刷ドキュメントを作成するために必要な援助をさらに提供する。インターフェースボックスは計算および判断能力を持つため、それはインテリジェントデバイスである。記載を簡単にするために、以後は、インターフェースボックスをインテリジェントモジュールと呼ぶ。
もしプリンターがネットワークプリンターではない場合、 そのプリンターはインテリジェントモジュール(好適には物理的な計算装置/計算デバイス)を経由してローカルな計算デバイス(そこにはWebブラウザーが設置されている)に接続される。また、プリンターがネットワークプリンターであった場合にも、そのインテリジェントモジュールがそのプリンターとの通信インターフェースとして機能することが好適である。さらに、ネットワーク環境では、インテリジェントモジュールは、複数の(ネットワーク接続されている、そしてされていない)プリンターとの通信インターフェースとして機能してもよい。
本発明は、Webブラウザーとプリンターを持つ計算環境であればどこで実現されてもいいが、説明を容易にするため、そして好適な実施例の例として、ここに本発明は小売業環境において実現されるとして記載する。特に、本発明は販売時点情報管理(つまり、POS)システム、またはPOSネットワークにおいて実現されるとして記載する。しかしながら、本発明は、ネットワーク接続された、そしてネットワーク接続されていない、ほかの計算/印刷環境において実現されてもいいことは理解されるだろう。
POSシステムにおいて、商取引を実現し、その取引の記録を維持するために、販売時点情報管理デバイスは各チェックアウトステーションに位置する。このように、チェックアウトステーションは、物理的な顧客が商品および/またはサービスに対して商人に支払う、小売業環境(または小売業設備)内の場所である。POSシステムには複数のPOSデバイスが含まれていてもよい。それは、計算および/またはネットワーキング能力を組み入れた電子キャッシュレジスターとして考えてもよい。典型的には、POSデバイスでは、顧客の記録のために領収書(または取引の概要)を印刷する、レシートプリンターを近くに(または統合されて)持つ。長さがわからない取引の概要を収容するために、レシートプリンターは典型的には、ロール紙プリンター(つまり、ロール紙、言わばペーパーロール、に印刷し、印刷された取引の要約の最後で、ロール紙から印刷された部分を切るプリンター)である。しかしながら、用紙プリンターおよび、ほかのロール紙ではないプリンターでも本発明が適合することは理解されるだろう。
POSデバイスは典型的にはPOSシステム内でネットワーク接続され、簿記と在庫管理のために取引の記録をつける中央サーバーと通信し、さらにPOSデバイスに対して、製品価格(または製品価格の更新)、クーポン、販促広告、製品情報(製品説明および/または在庫があるかなど)と、ほかのデータなどの情報を提供してもよい。中央サーバーは、ローカルエリアネットワークおよび/またはワイドエリアネットワークの一部であってもいいし、オプションとして、複数のサーバーに分配されていてもいい。中央サーバーはインターネット経由でアクセスすることができてもよいと考えられる。
POSシステムネットワークは、専用のコンピューター化されたPOSデバイスから構成されるため、複雑であり、購入、設定、維持、更新に費用がかかることがある。POSシステムを実現し維持する費用と困難さは、同じPOSシステムネットワーク内で、(異なるメーカーからの)異なるPOSデバイス機種と(異なるメーカーからの)異なるプリンター機種を使用すると、さらに増す。これは理解されるだろうが、それらの異なるPOSデバイスは、異なる能力を持つ異なる動作プラットホーム(つまり、異なるオペレーティングシステム、OS、で動作する)かもしれないし、それらの異なるプリンター機種は、異なる動作プラットホームのために異なるドライバー要件/能力を持つかもしれない
POSシステムネットワークを設定し、維持し、更新するための費用と複雑さを本発明がどのように削減できるかを以下に記載する。特に、異なるPOSデバイス機種と異なるプリンター機種を組み合わせたPOSシステムネットワークについてである。
好適な実施例では、POSシステムはネットワークを通して実現されて、販売取引を実現し記録するためにPOSデバイスとして機能するリモートWeb端末によりアクセスが可能であり、ネットワークサーバー内で維持されるWebページアプリンターケーション(つまり、Webページ)経由で商取引が管理される。または、Webページはインテリジェントモジュールにより維持され、POSデバイスはそのインテリジェントモジュールからWebページをアクセスしてもよい。どちらの場合も、各POSデバイスはWebブラウザー経由でWebページにアクセスし、そのWebページを使用してプリンターへ印刷する。好適には、商取引はまたWebページ経由で入力されて記録される。
プリンターは典型的にはPOSデバイスの近くにあるが、ネットワークサーバーによって制御されるか、POSデバイスによって制御される。どちらの場合も、以下により詳しく説明するように、インテリジェントモジュール経由でプリンターとの通信がなされることが好適である。
または、どのようなネットワークサーバーも使用することなく、本発明が実現されてもよい。この場合、インテリジェントモジュールはWebページをPOSデバイスに提供し、POSデバイスとプリンターとの通信を行ってもよい。この実現においては、POSデバイスがコンピューターネットワークの一部であることを除外するものではない。
このように、POSデバイスの動作プラットホームは限定要因ではない。必要なことは、動作プラットホームによらずに、POSデバイスがWebブラウザーを動作させることが可能であることだけである。実際に、最低限の計算力を持つ単純化された計算デバイスを使用して、POSデバイスを実現してもよい。たとえば、基礎的な計算能力と通信能力を持つ安価なタブレットコンピュータとしてPOSデバイスを実現してもよい。
図3を参照すると、Webページ31はWebブラウザー33の中に示されている。好適にはWebブラウザー33は計算デバイス(つまり、図4に示す計算デバイス51などのデータ処理装置)の中で動作する。その計算デバイスはPOSデバイスとして機能してもよい。当該技術では既知であるが、インターネットなどのTCP/IPネットワークの中でWebページをアクセスするためのインターフェースをWebブラウザー33は提供し、所望のWebページをアクセスするためのネットワークアドレスを入力することができるアドレスフィールド35を典型的には含んでいる。たとえば、Webページ31はインテリジェントモジュール37に保持され(つまり、配置され)、Webブラウザー33にダウンロードされてもよい。または、Webページ31は、Webブラウザー33があるコンピュータデバイスに組み込まれてもよい(つまり、デフォルトでそこに存在していてもよい)。好適にはWebページ31は、HTMLおよび/またはそれを変化させた言語などのマークアップ言語で書かれ、JavaScriptなどのスクリプト言語をサポートする。
本発明において、Webブラウザー33は、インテリジェントモジュール37経由で一つまたはそれ以上のプリンター、PrinterID_1とPrinterID_2、と通信する。オプションとしては、これらのプリンターはPOSプリンター(つまり、レシートプリンター)であってもいいし、それぞれのロール紙39aと39b上にオプションとして印刷してもよい。
好適には、インテリジェントモジュール37は、少なくとも一つの印刷アプリケーションプログラムインターフェース、つまり、API_1からAPI_3まで名付けられた印刷API、を経由してWebページ31と通信する。説明のために、印刷アプリケーションプログラムインターフェースAPI_1からAPI_3まではWebページ31の中に埋め込まれて示され、それぞれの印刷スクリプトアプリケーション、たとえば、Print_Script_App_1からPrint_Script_App_3まで、とのインターフェースを提供する。希望があれば、すべての印刷スクリプトアプリケーションの機能性を結合して単一の印刷API経由でアクセスしてもよい。さらに好適には、これらの印刷スクリプトアプリケーションは、以下に述べるように、いろいろなプリンター機能を提供するJavaスクリプトアプリケーションであり、少なくとも一つの印刷APIを経由してアクセス可能である。API_1からAPI_3まで(そしてそれぞれの印刷スクリプトアプリケーションPrint_Script_App_1からPrint_Script_App_3まで)は、本印刷能力を組み込むために、印刷APIライブラリーの一部としてWebページデベロッパーに提供されてもよい。
API_1からAPI_3までは、Webページ31に印刷インターフェースを提供し、印刷スクリプトアプリケーションPrint_Script_App_1からPrint_Script_App_3までは印刷能力を提供し、および/またはインテリジェントモジュール37と通信するように設計されている。印刷APIと印刷スクリプトアプリケーションは、API_1+Print_Script_App_1やAPI_2+Print_Script_App_3によって示されているように、Webページ31内にまとめて一体として埋め込まれていてもよい。この場合、両者は、APIまたは印刷APIという共通の用語で呼ばれてもよく、このAPIはこのように、Webページ31とのインターフェース、印刷ドキュメントの作成、そしてその印刷ドキュメントのインテリジェントモジュール37への送信を扱うことになる。
当業者には理解されうるように、印刷APIは特定の(オブジェクト志向言語において定義されるように)ソフトウェアクラスの例であり、それらは(OOP言語において定義されるように)コンストラクターによって作成されてもよい。一つの実施例としては、印刷APIは、そのAPIを初期化するためのコンストラクターを含んでもよい。
ほかの実施例としては、印刷APIはWebページ31内に埋め込まれるが、その対応する印刷スクリプトアプリケーションはインテリジェントモジュール37内で別に保持されるように、印刷APIとその対応する印刷スクリプトアプリケーションを分離してもよい。これは、API_3はWebページ31内に埋め込まれ、それに対応する印刷スクリプトアプリケーションPrint_Script_App_3はインテリジェントモジュール37内に保持されることで示されている。このように、Print_Script_App_3が必要とする計算リソースのいくつかは、Webブラウザー33が存在するデバイスから外され、インテリジェントモジュール37に実装されてもよい。この場合、API_3は印刷ドキュメントを定義するために必要なすべてのデータをPrint_Script_App_3へ送ることになり、その後Print_Script_App_3は対応する印刷ドキュメントをインテリジェントモジュール37内で作成し、作成された印刷ドキュメントを特定のプリンターへ送信することになる。印刷APIをそれの対応する印刷スクリプトアプリケーションから分離することにより、Webブラウザー内の印刷APIを変えることなく、インテリジェントモジュール37内のスクリプトアプリケーションを更新することもできる。この場合、Webデベロッパーに対しては、印刷APIライブラリーをWebデベロッパーのWebページへの組み込みのために提供しながら、対応する印刷スクリプトアプリケーションの実現の詳細を、インテリジェントモジュール37またはネットワークサーバーに保持して、Webデベロッパーから隠すことができる。
好適な実施例において、印刷APIのそれぞれはインテリジェントモジュール37と直接通信する。したがって、インテリジェントモジュール37は、IP_ADD_1と示されている、ネットワークアドレスを受け取る(つまり、割り当てられる)ように構成されている。このネットワークアドレスは、静的アドレスでも、動的に割り当てられるアドレスでもよい。
好適には、印刷APIのそれぞれは、インテリジェントモジュール37のネットワークアドレスを受け取るように構成された、addressプロパティ要素(つまり、アドレスデータフィールド)を提供され、それにより、印刷APIのそれぞれはインテリジェントモジュール37と通信を行うことができる。インテリジェントモジュール37のネットワークアドレスが静的(つまり、固定)であれば、各API内のaddressプロパティ要素はユーザにより設定されてもよい。または、ネットワークアドレスが動的であれば、インテリジェントモジュール37のネットワークアドレスを判定するためにネットワークアドレス判定サービスを使用し、各APIのaddressプロパティ要素にその判定されたアドレスが入力されてもよい。さらに好適には、addressプロパティ要素はタイムアウト期間を設定するように構成される。このタイムアウト期間は、インテリジェントモジュールからアクノリッジメントやほかの応答を受け取るために割り当てられた最大時間を示してもよい。好適には、印刷APIには、タイムアウト期間の経過に対応して、印刷ジョブ(または、提出された印刷要求)をキャンセルするためのステップ、またはプロセスが含まれている。
さらに好適には、各プリンターは、名称または識別コード(ID)、または(ネットワーク)アドレスによって識別可能である。説明を容易にするために、プリンターIDおよび/またはプリンターネットワークアドレスの両方は、参照符号PrinterID_1とprinterID_2によって指定される。さらに、説明を容易にするために、プリンターIDが使用されるときはいつでも、プリンターIDの代わりにプリンターネットワークアドレスを使用することを本発明では想定しているため、プリンターネットワークアドレスで代用されてもよいことは理解されるだろう。さらに好適には、その名称、プリンターID、および/またはプリンターアドレスが印刷APIに提供される。したがって、印刷APIは、名称、プリンターID、および/またはプリンターネットワークアドレスによって対象プリンターを指定し、印刷要求、または印刷ドキュメントを受け取ってもよい。
一つの実施例において、印刷APIのaddressプロパティ要素は拡張されて対象プリンターのID(またはネットワークアドレス)も受け取るようになる。たとえば、対象プリンターを識別するもの(デバイスIDまたはデバイスネットワークアドレス)を設定するように、addressプロパティ要素が構成されていてもよい。これにより、そのプリンターが、印刷されるドキュメントが送信されるプリンターとして指定される。さらに、印刷APIは、プリンターから応答メッセージを取得するように構成された受信イベント要素を持っていてもよい。応答メッセージは、印刷結果、エラーコード、および/またはプリンターステータスを含んでもよい。エラーコードまたはプリンターステータスは、自動的復元可能エラーまたは復元不可能エラーのどちらかが発生した事を示してもよい。このようにして、印刷APIは、addressプロパティ要素により指定されたインテリジェントモジュール経由で、プリンターから応答メッセージを受け取ることができる。このように、addressプロパティ要素に指定されたインテリジェントモジュール経由で、対象プリンターと印刷API間の通信が行われる。さらに、addressプロパティ要素は、タイムアウト期間を設定するように構成されていてもよい。このタイムアウト期間は、インテリジェントモジュールまたはプリンターからアクノリッジメントやほかの応答を受け取るために割り当てられた最大時間を示してもよい。好適には、印刷APIには、タイムアウト期間の経過に対応して、addressプロパティ要素により指定されたプリンターでドキュメントを印刷する、印刷ジョブ(または、提出された印刷要求)をキャンセルするためのステップ、またはプロセスが含まれている。
または、印刷APIは、特定のプリンターを指定することなく、インテリジェントモジュール37へ印刷要求を送信してもよく、インテリジェントモジュール37は、印刷要求を発行したデバイスへの近接情報に基づいて、またはどのプリンターが利用可能か(つまり、使用されていないか)を判定することによりプリンターを選択してもよい。この場合、好適には、インテリジェントモジュール37は、印刷要求を発行したデバイスに一番近いプリンターを選択するために、Webページが動作しているデバイスの位置とプリンターの位置をわかっている。さらにまたは、インテリジェントモジュール37が、印刷要求を発行する特定のデバイスに対してプリンターを選択したら、その選択されたプリンターは好適にはそのデバイスに割り当てられ、その同じデバイスからの将来のすべての印刷要求はその同じ選択されたプリンターへ送信される。
Webページ31内に埋め込まれた各印刷APIは、そのaddressプロパティ要素(インテリジェントモジュール37のネットワークアドレスを保持する)により、インテリジェントモジュール37と直接通信することができるため、ユーザーの介入なしに、または印刷APIが存在するWebブラウザー33へ印刷要求を提出することなしに、印刷APIはいつでも印刷要求を提出することができる。たとえば、チェックアウトステーションにおいて、製品項目がWebブラウザーによって識別され(つまり、スキャンされ)全体の取引概要に加えられながら、印刷APIは、印刷のために、購入のために合計されている各製品項目の記載を提出することができる。こうして、Webページ31は、データ(新たに生成されたデータおよび/または表示画面の一部を含む)の印刷ドキュメントを生成し、所望の時間に印刷のために印刷ドキュメントを提出することができる。たとえば、APIは、印刷ドキュメントの一部をセグメント単位で(つまり、異なる時間に)生成し、その後、セグメントを結合および/または配置してプリンターへ送信する複合印刷ドキュメントとしてもよい。または、本実施例においては、好適なプリンターはロール紙プリンターであるため、印刷APIは、印刷のためにプリンターへ複数のセグメントを送信し、印刷セッションの終わりに(つまり、チェックアウトステーションでの商取引の終わりに)、ロール紙の印刷した部分をカットする命令を送信してもよい。
動作においては、印刷スクリプトアプリケーション(またはAPIがそれの対応する印刷スクリプトアプリケーションと単一ユニットとして結合されている場合は、API自身)は、プリンター制御命令を命令バッファーに蓄積し(つまり、加え)、その後、蓄積されたプリンター制御命令を実行することで、印刷ドキュメントを定義する為の第1のメソッド要素(つまり、第1の実行可能ルーチンまたは第1の実行可能メソッド)を含む。好適には、印刷スクリプトアプリケーション(またはAPI)は、さらに、定義された印刷ドキュメントをインテリジェントモジュール37へ送信するように構成された、第2のメソッド要素(つまり、第2の実行可能ルーチン)を含む。第1と第2のメソッド要素を順に実行することで、印刷ドキュメントが作成されてもよい。
本説明においては、説明したソフトウェアメソッドのすべて、またはいくつかは、オブジェクト志向言語で定義されているソフトウェアオブジェクトで置き換えてもよい。
好適には、インテリジェントモジュール37はデータ処理デバイス(制御ユニット回路および/または中央処理装置、および/または揮発性/不揮発性電子メモリー、および/またはデータ/制御レジスタ、および/または信号バス、および/または電子通信インターフェース、および/またはルックアップテーブルを含み、それには限定されず)として実現される。インテリジェントモジュール37は、それ自体の物理的な筐体内にスタンドアローンユニットとして実現されてもよいし、または、プリンター、サーバー、または他の電子デバイスの中に組み込まれて(または物理的に付属されて)もよい。動作においては、インテリジェントモジュール37は、Webページ31内に埋め込まれた印刷APIから印刷ドキュメントを受け取り、それを特定の(または、ほかに指定された)プリンターに適した印刷ドキュメントへ(必要であれば)変換し、それを指定されたプリンターへ印刷のために送信する。オプションとしては、インテリジェントモジュール37は、プリンターのそれぞれに対してプリンタードライバーを含んでもよく、そのプリンタードライバーを用いて適切な印刷ドキュメントを定義してもよい。または、インテリジェントモジュール37は、印刷APIから命令バッファーの記録を受け取り、命令バッファーのプリンターコマンドを実行することで印刷ドキュメントを作成し、作成した印刷ドキュメントを適切なプリンターへ送信してもよい。さらにまたは、印刷APIから受け取るコマンドは、書式情報や印刷内容データなどの一般的な印刷記述でもよく、その後、インテリジェントモジュールは、必要なプリンターコマンドを決定して、指定されたプリンターの能力に基づいて、一般的な印刷記述に最も類似している印刷ドキュメントを生成し、そして、生成した印刷ドキュメントを指定されたプリンターへ送信してもよい。
上記の記載において、作成された印刷ドキュメントは、XML印刷ドキュメント、またはビットマップ印刷ドキュメント、または当該技術で既知の、ほかのドキュメント記述書式でもよい。
図示のように、プリンターPrinterID_1とPrinterID_2は、それぞれロール紙39aと39b上に印刷するPOSプリンターでもよい。これらのプリンターは、(完全にまたは部分的に着脱できる)カバー41,ドロワー43,ブザー45,用紙カッター(または自動カッター)47などの付属装置をさらに備えてもよい。好適には、これらの付属装置は、インテリジェントモジュール37によってプリンターへ中継される上記のプリンターコマンドによって、制御できる。。上記のように、対象プリンターが印刷APIへ送信するエラーコードまたはプリンターステータスの中には、カバーが開いているという表示もある。同様に、自動カッターでエラーが発生したことを、エラーコードまたはプリンターステータスが示してもよい。プリンターは、用紙がプリンターにあるかどうかを検出するセンサーを備えてもよく、そのセンサーによって用紙がないことが検出されるかどうかを、エラーコードまたはプリンターステータスで示してもよい。または、インテリジェントモジュール37へ送信したドキュメントに構文エラーがあるかどうかを、エラーコードまたはプリンターステータスで示してもよい。または、印刷APIがプリンターIDによって指定した対象プリンターが存在しないかどうかを、エラーコードまたはプリンターステータスで示してもよい。
PrinterID_1とPrinterID_2は、インテリジェントモジュール37と通信するために通信ポートを備えることは理解されるだろう。通信ポートでエラーが検出されるかどうかを、エラーコードまたはプリンターステータスで示してもよい。さらに、上記のタイムアウト期間が経過するかどうかを、エラーコードまたはプリンターステータスで示してもよい。または、印刷動作が成功裏に完了することを、エラーコードまたはプリンターステータスで示してもよい。上記のように、プリンターはコネクターによってドロワーに接続されてもよく、そのコネクターは少なくとも一本のピンを持っていてもよい。この場合、コネクターの所定のピンのステータスを、エラーコードまたはプリンターステータスで示してもよい。
または、プリンターがオフラインであること、またはオンラインに戻されることを待機しているところであること、またはプリンターから何の応答もないことを、エラーコードまたはプリンターステータスで示してもよい。
PrinterID_1とPrinterID_2は、さらに、用紙39aと39bを供給するためのスイッチを持っていてもよく、スイッチの動作により、いつ用紙が供給されているかを、エラーコードまたはプリンターステータスで示してもよい。さらに、いつブザー45がオンにされる(つまり、駆動される)かを、エラーコードまたはプリンターステータスで示してもよい。プリンターまたはインテリジェントモジュール37は、ドキュメントを印刷するための印刷ジョブをスプールするために構成されたスプーラーを持っていてもよく、スプーラーが停止したかどうかを、エラーコードまたはプリンターステータスで示してもよい。
図3の実施例において、ネットワーク接続されていてもよいし、いなくてもよいシステムとして、本発明は実現される。すなわち、Webブラウザー33が動作するローカルデバイスは、特定の中央サーバーに接続されていないスタンドアローンデバイスでもよい。ローカルデバイスが、スタンドアローンデバイスであるか、またはほかのPOSデバイスやサーバーにネットワーク接続されているかに関わらず、インテリジェントモジュール37は、プリンターとWebページ31間で、通信信号を中継し変換する(そして必要なコマンド信号と命令信号を生成する)プリンター制御ボックスとして機能してもよい。
図4は、本発明をネットワークで実現したものを示す。図3の要素と類似のすべての要素は、類似の参照符号を持ち、上記に記載されている。図示のように、ネットワーク55には、計算デバイス51,サーバー53,インテリジェントモジュール37、プリンターPrinterID_2を含む。計算デバイス51,サーバー53,インテリジェントモジュール37はネットワーク通信チャネル57経由で通信し、このチャネルは、有線チャネル、無線チャネル、またはその両方を結合したものでもよい。計算デバイス51は、タブレットコンピュータまたはほかのデータ処理デバイスでよいが、Webブラウザー33経由でWebページ31をアクセスする。オプションとしては、Webページ(つまり、Webアプリケーション)31は、サーバー53またはインテリジェントモジュール37からアクセスされる。すなわち、Webアプリケーション31は、サーバー53および/またはインテリジェントモジュール37に保持される(つまり記憶される、または置かれる)(そしてそこからアクセスされる)。
オプションとしては、プリンターPrinterID_2は、不揮発性メモリー59を含んでもよい。一実施例においては、ロゴのような、複数のあらかじめ定義されたイメージがメモリー59に記憶され、LOGO_1からLOGO_3までのような、IDコードにより識別/呼び出される。
上記説明のように、プリンター制御コマンドが蓄積される命令バッファーを、印刷APIは定義する。命令バッファーには、いろいろな種類の制御コマンドが蓄積されてもよい。図5には、本発明において、命令バッファー63に蓄積されてもよい、プリンター制御コマンド61の例を示す。各コマンドは、それを実行するために必要な一つまたはそれ以上の命令となってもよい。
たとえば、図5を参照すると、コマンドの一つは、印字のために文字を命令バッファーに追加するテキストコマンドでもよい。すなわち、そのテキストコマンドは、印字される文字が挿入される、定まった、または定まっていない長さのデータフィールドを定義してもよい。別のコマンドとしては、文字の特性を定義(つまり、設定)するパラメーターを命令バッファーへ追加するテキスト設定コマンドでもよい。特性としては、挿入された文字の大きさ、フォント、色などを含んでもよい。テキスト設定コマンドにより、複数の異なるパラメーターが設定されていてもよい。たとえば、第1のテキスト設定パラメーターにより、用紙上に印字する開始位置を指定してもよく、別のパラメーターにより、位置揃え要件を設定してもよい。ほかのパラメーターにより、挿入された文字の言語、フォント、装飾、倍率、および/または倍角を設定してもよい。追加のテキスト設定パラメーターとしては、印字文字を回転するかどうか、または文字のスムージングを有効化するかどうかを指定するパラメーターを含んでもよい。
別のコマンドとしては、プリンターで用紙を供給するための一つまたはそれ以上の命令を、命令バッファーに追加する紙送りコマンドでもよい。
さらに別のコマンドとしては、印刷のためにラスターイメージを追加するイメージコマンドでもよい。当該技術で知られているように、ラスターイメージとは典型的には、ビットマップのように一度に一点を表示媒体上に示すようにイメージを定義する四角形の領域であり、イメージファイルを定義する。好適には、印刷APIにはhalftoneプロパティ要素が含まれていて、Webアプリケーションで描画されたカラーイメージは、印刷のためにhalftoneプロパティ要素の設定にしたがってイメージコマンドによって、ラスターイメージデータに変換される。好適には、ディザリング、誤差拡散、および/またはカラーイメージをラスターイメージデータに変換するための閾値の少なくとも一つをhalftoneプロパティ要素で指定する。印刷APIには、brightnessプロパティ要素が含まれていてもよい。これにより、ラスターイメージデータの明るさを補正するために0.1から10.0までの範囲でガンマー値を指定することができる。この場合、brightnessプロパティ要素の設定にしたがって、イメージコマンドにより、カラーイメージを印刷のためのラスターイメージデータに変換することができる。
図4に示すように、PrinterID_2には、少なくとも一つのロゴを登録するために不揮発性(NV)メモリー59を備えてもよい。この場合、特定のロゴを識別するキーコードを、その識別したロゴを印刷するために、命令バッファーに追加するロゴコマンドが存在することが好適である。すなわち、キーコードは、NVメモリー59に登録された特定のロゴ(つまり、LOGO_1からLOGO_3までのロゴ)を指定する。
別のコマンドとしては、バーコードを印刷する命令を命令バッファーに追加するバーコードコマンドでもよい。好適には、複数のバーコードの種類がサポートされ、少なくとも、所望のバーコード種類、バーコードの幅と高さ、および/または選択されたバーコード種類に変換される(つまり、符号化される)データを指定するバーコードパラメーターが、バーコード命令に含まれる。
別のコマンドとしては、2次元シンボルを印刷する命令を命令バッファーに追加するシンボルコマンドでもよい。シンボルコマンドは、2次元シンボルの種類、2次元シンボルの誤り訂正レベル、2次元シンボルに変換されるデータの少なくとも一つを指定するシンボルパラメーターを含んでいてよい。
好適には、別のコマンドとしては、第1の線を引く命令を命令バッファーに追加する第1の線コマンドがある。第1の線コマンドは、第1の線の開始位置と終了位置を指定する第1の線パラメーターを含んでもよい。本発明では、不定の長さの第2の線を引き始める命令を命令バッファーに追加する第2の線コマンドもあってよい。この命令では、第2の線の開始位置を指定する第2の線パラメーターを提供するが、第2の線の終了位置を指定する線パラメーターは提供しない。この場合、好適には、本発明において、第2の線コマンドにより開始された第2の線の描画を終了させる(つまり、停止させる)命令を追加する第3の線コマンドが含まれている。第3の線コマンドは、第2の線の終了位置を指定する第3の線パラメーターを含んでもよい。
さらに別のコマンドとしては、ページモードへ切り換え、ページモードで印刷領域を追加する命令を命令バッファーに追加するページモードコマンドであってもよい。すなわち、ページモードは、印刷領域が定義され、その印刷領域にデータを配置し、バッチ動作で印刷領域が印刷される、印刷モードでよい。ページモードにはさらに、印刷領域に対して所望の配置場所を指定する、少なくとも一つの座標を含んでもよい。第2のページモードコマンドは、第1のページモードコマンドにより始められたページモードを終了させる命令を追加してもよい。さらに、第3のページモードコマンドは、第1のページモードコマンドで定義されたページモードに、少なくとも一つの設定(つまり、設定パラメーター)を追加してもよい。第3のページモードコマンドには、ページモードにおいて印刷する方向、または、ページモードにおいて印刷での開始位置を指定する座標を、指定する第3のページパラメーターを含んでいてよい。第4のページモードコマンドは、さらに、第1のページモードコマンドで定義されたページモードにおいて、線または四角形のような、あらかじめ定義した形状を、描画する命令を追加してもよい。ページモード内で、あらかじめ定義した形状の、つまり、線または四角形の、開始位置と終了位置を指定する座標を、第4のページモードコマンドは含んでもよい。さらに、形状の種類選択を指定する第4のページパラメーターを第4のページモードコマンドは含んでもよい。たとえば、線タイプまたは四角形タイプを、第4のページパラメーターで指定してもよい。
別のコマンドとしては、たとえば、用紙カッター47によるように、用紙を、つまり、印刷媒体を、カットする命令を命令バッファーに追加する、用紙カットコマンドでもよい。最初に用紙を供給することなく用紙をカットするか、用紙を供給したあとで用紙をカットするかのいずれかを指定する用紙カットパラメーターを、用紙カットコマンドは含んでもよい。
図3に示すように、本発明によるプリンターには、それに接続されるドロワー43があってもよい。そうであると仮定すると、別のコマンドとしては、ドロワーをキックして(つまり、解放して、または掛け金をはずして)開ける命令を命令バッファーに追加する、ドロワーキックコマンドでもよい。好適には、ドロワーキックコマンドには、ドロワーを開けるために加えられる信号のオン期間を指定する第1のドロワーパラメーターを含んでいる。さらに、好適には、ドロワーは二つのコネクターによりプリンターに接続されていて、ドロワーとプリンターを接続するコネクタのいずれか一つ(の解放)を指定する第2のドロワーパラメーターを、ドロワーキックコマンドは含む。
図3に示すように、PrinterID_2にはブザー45が備わっていてもよい。その場合、別のコマンドとしては、ブザーをオンにする(または起動する)命令を命令バッファーに追加する、ブザーコマンドでもよい。ブザーの起動が繰り返される回数、またはパターンを指定するブザーパラメーターが、ブザーコマンドに含まれてもよい。
POSシステムで実現される、本発明の具体的な例は以下の通りである。
図6は、POSシステム79で適用した、本発明の具体例を記載する。図示の通り、本例においては、上記のように、サーバー71、Webブラウザー73,インテリジェントモジュール75を含んでいる。説明のために、インテリジェントモジュール75は、TMインテリジェントプリンターとして示されているが、それは、一つまたはそれ以上のプリンターと通信する一つまたはそれ以上のインテリジェントモジュールの組み合わせから構成されてもよいことを示す。Webブラウザー73は、POSデバイス(電子/コンピューター化されたキャッシュレジスターなど)内で実行されてもよく、上記のように、Webブラウザー73によりWebページ77をアクセスする。説明を容易にするために、POSシステム79で適用された、本発明の印刷メカニズム/方法をePOS-Printと呼ぶ。
ePOS-Printは、マルチプラットフォーム環境においてPOSプリンターを制御するために機能を提供する。ePOS-Printを使用して、パーソナルコンピュータ、スマートフォーン、またはタブレットコンピュータ上のWebブラウザーからTMインテリジェントプリンター(つまり、一つまたはそれ以上のインテリジェントモジュールと、一つまたはそれ以上のプリンターの組み合わせ)へと、データを直接印刷することができる。
さらに、HTML5-Canvasにおいて描画された印刷イメージを印刷できる。当該技術で既知のように、HTML5-Canvasはグラフィックスのためのコンテナーであり、スクリプトを書くことによりグラフィックスを描画する手段を提供する。ePOS-Printは、印刷コマンドのためにAPI(本説明において印刷APIに等しい)を提供する。ホスト(つまり、Webブラウザー73が動作しているデバイスまたは入力端末)からTMインテリジェントプリンターのePOS-PrintサービスへHTTP経由で印刷ドキュメント(リクエスト)が送信されると、ePOS-Printは、そのドキュメントの印刷を処理し、応答ドキュメント(つまり、レスポンス)を返す。
本例においては多くの特徴がある。たとえば、本システムがネットワーク環境にある限り、HTML5をサポートするWebブラウザーを持つ入力端末は、どこからでも印刷を実行することができる。プリンタードライバーやプラグインのインストールは必要ない。印刷のためにパーソナルコンピュータやサーバーは必要ない。本システムにより、公的なネットワーククラウドと私的ネットワーククラウドから印刷が可能となる。本発明では、さらに、一般に、Webブラウザーがサポートする、どの言語においても印刷が可能となる。本発明では、印刷前に、TMプリンターのステータスを自動的に確認する。TMプリンターのステータスをあらかじめ確認する必要はない。本システムでは、プリンターの自動的にそのステータスを送信する機能(たとえば、AutoStatusBack機能)には対応していない。その代わりに、本システムでは、空の印刷コマンドを送信し、コマンド送信の結果に基づいてTMプリンターのステータスを確認する(つまり、判定する)ことができる。それにも関わらず、プリンター設定を変更するために、各プリンター専用のユーティリティープログラム、またはほかのユーティリティープログラムを使用してもよい。こうして、本発明では、TMインテリジェントプリンターを経由してTMプリンターによる印刷が可能である。本発明は、このように、ePOS-Print APIとePOS-Print-Canvas APIの両方を提供してもよい。上記のように、本発明では、さらに、デバイスフォントを印刷に使用することができ、バーコード印刷ができ、HTML5-Canvasで描画されたイメージの印刷ができ、TrueTypeフォントを印刷に使用することができる。好適には、デバイスフォントを印刷に使用することができ、バーコード印刷ができる。さらに好適には、ePOS-Print-Canvas APIにより、HTML5-Canvasで描画されたイメージの印刷ができ、TrueTypeフォントを印刷に使用することができる。
図7は、ePOS-Print APIによって実現することができる印字の種類の例を示す。二つのレシート81と83を示す。上記のように、レシート81は多様な印刷コマンドの実行例である。レシート81は、ロゴ印刷、文字位置揃え(中央揃え)、紙送り、用紙カットの例を示す。レシート83は、ラスターイメージ印刷、文字の横倍角印字、6倍(横)、4倍(縦)などの倍率、位置揃え(中央)、そして、バーコード印刷のための印刷コマンドの実行例を示す。
図8は、ePOS-Print-Canvas APIによって実現することができる印刷の種類の例を示す。本例においては、HTML5 Canvasにより作成されるグラフィックスはバーコードを含むが、これは典型的にはモノクログラフィックス(またはイメージ)であり、バーコードのすぐ上の絵のようなグラフィックスである。この絵のようなグラフィックスは、モノクロでも、多階調でも、カラーでもよい。
図9は、本発明の一実施例における印刷の流れの例である。本例においては、サーバー、無線LANルーター、Webブラウザー、TMインテリジェントプリンター、制御可能なプリンターが示されている。好適には、本発明のWebアプリケーション(つまり、Webページ)はサーバーに配置(つまり、保持)されてもよく、WebブラウザーがWebアプリケーションを表示する。動作においては、WebブラウザーがTMインテリジェントプリンター(または、インテリジェントモジュール)へ印刷データを送信してもよく、TMインテリジェントプリンターは、その制御下にある適切なプリンターへその印刷データを送信し、これらのプリンターがそのデータを印刷する。その後、TMインテリジェントプリンターは、応答ドキュメントをWebブラウザー(つまり、Webブラウザーを動作させている端末)へ返す。
ePOS-Print APIは複数の機能を提供してもよい。たとえば、位置揃え(文字位置揃えなど)、改行量、倒立文字、ページモードなどの印刷設定機能を提供できる。また、言語、フォント(デバイスフォント)、倍角、倍率、スムージング、印刷位置などの複数の文字データ設定(テキスト文字など)を提供することもできる。また、白黒の反転、下線、太字体などの文字装飾設定を提供することもできる。さらに、紙送り設定(ドット数、または行数による)などのプリンター操作制御項目を含んでいてもよい。好適には、ePOS-Print APIはまた、イメージ印刷(つまり、ラスターイメージとNVグラフィックス)、バーコード印刷、2次元符号印刷を提供する。さらに、罫線設定、ドロワーキック機能、ブザー機能、ESC/POSコマンド送信、応答ドキュメント獲得(印刷結果、プリンターステータス、および/またはシステムエラーステータス)を提供してもよい。
ePOS-Print-Canvas APIも複数の機能を提供してよい。たとえば、HTML5 Canvasで描画したイメージ(ラスターイメージ)の印刷、紙送りと用紙カット機能、応答ドキュメント獲得(印刷結果、プリンターステータス、および/またはシステムエラーステータスなど)を提供してもよい。
したがって、好適なWebブラウザーはHTML5をサポートするブラウザーである。HTML5をサポートするブラウザーの例としては、Windows(登録商標)Internet Explorer 9以降、Mozilla Firefox 3.6以降、Google Chrome 7以降、iOS 4.0以降のSafari、そしてAndroid 2.2以降の標準ブラウザーがある。
本発明のシステム構築例を図10に示す。この例においては、前のように、(Web)サーバー(そこにはWebアプリケーション、つまり、Webページ、が配置される)、入力端末(そこにはHTML5をサポートするWebブラウザーがインストールされている)、オプションの無線LANルーター、TMインテリジェントプリンター、TMインテリジェントプリンターにより制御可能なプリンターが示されている。前と同じように、TMインテリジェントプリンターは、Webブラウザーから送信された印刷データを受信し印刷し、および/または他のデバイスを制御し、その制御下にあるプリンターはTMインテリジェントプリンターから受信した印刷データを印刷する。
図11は、WebアプリケーションをTMインテリジェントプリンターへ登録する状況を示す。前に説明したように、入力端末は、ブラウザーを使って、Webアプリケーション(つまり、Webページ)を実行し(つまり、アクセスし)、デバイス制御(印刷データを含んでもよい)をTMインテリジェントプリンターへ送信する。その後、TMインテリジェントプリンターは、Webブラウザーから送信された、受信印刷データを印刷する。
本発明の好適な実施例においては、いくつかの制約が科されてもよい。たとえば、プリンターのドロワーとブザーは一緒に使用してはならない。当然のことだが、プリンターにブザーがなければ、プリンター機能は使用できない。
また、特定のWebブラウザーによる制約を本発明では妨げないことがある。たとえば、Internet Explorer 9では、安全保護されているWebパージ(典型的にはHTTPSというアドレスヘッダーにより識別される)からはプリンターへの印刷が許可されていない。
図12は、本発明において、ePOS-Print APIを使用して作成したサンプルプログラム画面の例を示す。以下の例においては、WebサーバーはIIS(Microsoft Internet Information Services)を使用して構成されていると仮定する。ボックス1では受付券を示し、ボックス2ではクーポンを示し、ボックス3では設定起動ボタンが示されている。一実施例において、ボックス1で受付券番号を印刷してもよく、ボックス2ではもちろんクーポンを印刷する。
図13は、図12の設定ボタンを起動することに対応して呼び出されることがある設定画面の例である。設定としては、インテリジェントプリンター(前に説明したように、インテリジェントモジュール内の)のネットワークアドレス(つまり、IPアドレス)、対象プリンターのデバイスID、タイムアウト時間設定、多階調印刷のオプションを含んでいてもよい。
図14は、ePOS-Print APIを使用した第1のサンプル印刷物と、ePOS-Print-Canvas APIIを使用した第2のサンプル印刷物とを示す。図示のように、好適には、グラフィックスを印刷するにはePOS-Print-Canvas APIが使用される。
図15は、初期表示状態から印刷ジョブ完了までのプロセスステップの流れを示す流れ図の例である。これはePOS-Print APIを使用して印刷した受付券番号発行の例である。プロセスは、ステップ91で、Webアプリケーション(つまり、サンプルプログラムWebページ)を開くことで始まる。その後、ステップ93で設定が入力される。設定としては、TMインテリジェントプリンターのIPアドレス、制御されるプリンターのデバイスID、(印刷)タイムアウト時間を含んでいてもよい。ステップ95に示すように、受付券番号発行オプションを選択する(つまり、クリックする)ことで、適切な受付券が作られる。その後、ePOS-Print Builderオブジェクトを呼ぶことで印刷データを作成してもよい(ステップ97)。その後、ePOS-Printオブジェクトが印刷物を作成する(ステップ99)。
図16は、クーポン発行のためのプロセスステップの流れを示す流れ図の例である。これはePOS-Print Canvas APIの例である。プロセスの流れは、本発明のWebページを開くことで始まる(ステップ101)。必要であれば、設定入力をしてもよい(ステップ103)。設定の例としては、TMインテリジェントプリンターのIPアドレス、印刷に使用されるプリンターのデバイスID、印刷タイムアウト時間がある。その後、クーポン発行オプションをクリックする(つまり、起動する/選択する)(ステップ105)。その後、Webページにより、クーポンをHTML5-Canvasで描画する(ステップ107)。最後にステップ109で、Webページにより、ePOS-Print Canvas API(つまり、ePOS-Print Canvas APIオブジェクト)を使用してTMインテリジェントプリンター(つまり、インテリジェントモジュール)へ印刷リクエストを発行する。
図17は、本発明の動作環境の例である。基本的に、図17では、以下に説明する、いくつかのサンプルプログラムのシステム構成図を示す。図17では、(192.168.192.10)という固定IPアドレスを持つWebサーバーを示す。Webサーバーにより、環境設定を構成してもよい。Webサーバーは、無線LANルーターと直接通信する。無線LANルーターは、たとえば、(192.168.192.1)という固定IPアドレスを持っていてもよい。無線LANルーターは、TMインテリジェントプリンター(たとえば、(192.168.192.20)という固定IPアドレスを持っていてもよい)と、TMインテリジェントプリンターによって制御することができるオプションの第2プリンターとの間に通信路(有線接続など)を提供する。好適には、オプションの第2プリンターも、たとえば、(192.168.192.21)という固定IPアドレスを持つ。本例においては、無線LANルーターは、HTML5をサポートするWebブラウザーを持つ入力端末への無線通信リンクを提供し、そのWebブラウザー上で、本発明のWebページが実行されてもよい。本例において、入力端末は動的なネットワークアドレスを持ち((192.168.192.XXX)と図示)、このアドレスはDHCPにより発行できる。たとえば、無線LANルーターは、DHCPにより入力端末へIPアドレスを発行してもよい。
図18は、サンプルプログラムの環境設定を構成するためのプロセスフローを示す。ステップ111において、SSID、IPアドレス、DHCP、割り当てられたIPアドレスなどのルーター設定を構成することでフローを始める。次にステップ113で、コンピューターの設定を行う。これは、IPアドレスなどの、コンピューターのネットワーク設定を構成する第1のサブステップ113aと、コンピューター上のWebサーバーを構成する第2のサブステップ113bに分割してもよい。ステップ115で、実行するプログラムを登録する。本例においては、ePOS-Print_API_UME_Sampleと呼ばれるサンプルプログラムが登録される。その後、入力端末の無線LAN(Wi-Fi)の設定を構成してルーターの設定と合致させ、ネットワーク接続を可能にするようにするなど、入力端末の設定を行う。ステップ119で、TMインテリジェントプリンターのネットワーク設定を行う。これはWebブラウザー経由で行ってもよい。次にステップ121で、制御されるプリンターのネットワーク設定を行う。当該技術で既知のように、ネットワーク設定ユーティリティを使用して、これらの設定を構成してもよい。ステップ123では、オプションのデバイスID設定を行う。これらの設定はWebブラウザー経由で行ってもよいが、本サンプルプログラムでは要求されていない。最後にステップ125では、Webブラウザー経由で必要なプログラム設定を行ってもよい。なお、本サンプルプログラムでは、プログラム設定は必要ない。
図19は、TMインテリジェントプリンターのネットワーク設定の例である。Webブラウザーを起動し、TMインテリジェントプリンターインターフェースのIPアドレスをアドレスバー127へ入力することで、設定を始めてもよい。その後、129で示すように、有線TCP/IP、または無線TCP/IPなどの構成を選択してもよい。そうするとTCP/IP設定画面が現れ、131で示すように、TMインテリジェントプリンターのネットワーク設定を行う。IPアドレスを確認するためには、TMインテリジェントプリンターを使用しステータス用紙を提出してもよい。
図20は、デバイス設定の例である。たとえば、ePOS-Printにより制御されるプリンターのIDを、TMインテリジェントプリンターへ設定してもよい。Webブラウザーを使用して、TMインテリジェントプリンターのIPアドレスを入力してもよい(133)。その後、構成するデバイスを選択する(135)。デバイス設定画面137が現れる。図21は、構成されうる、デバイス設定の例を示す。登録されたデバイス上の情報139が表示される。
上記の構成と登録シーケンスを実行すると、図12のサンプルプログラム画面となる。
次に、ePOS printを使用した、すなわち、本発明の印刷APIを使用したプログラミングのガイドについて述べる。
好適には2種類の印刷モードがあり、標準モードとページモードである。標準モードでは、文字は行ごとに印字される。フォントの大きさと、バーコードなどのイメージの高さに基づいて改行量は調整される。標準モードはレシートの印刷や、印刷スペースにしたがって用紙長さの変更が必要な、ほかの種類の印刷に適している。
ページモードでは、印刷領域が設定(つまり、定義)され、そこにデータが配置され、バッチ動作でそのデータが印刷される。たとえば、文字、イメージ、バーコードが位置座標によって印刷領域に配置されてもよく、その後、バッチ動作で結果としての印刷領域が印刷される。
図22は、ePOS-Print APIを使用したプログラミングのサンプルワークフローを示す。最初のステップ141は、WebページにePOS-Print APIを組み込むためである。好適には、ePOS-Print APIはJavaScriptとして提供され、次のファイル名規約に従うこともある:epos-print-2.x.x.js。すなわち、クライアントデバイス上でePOS-PrintがJavaScriptとして使用できるように、ePOS-Print APIが提供される。epos-print-2.x.x.js をアプリケーション(たとえば、Webページ)に組み込むことにより、ePOS-Print APIが使用される。ePOS-Print APIを使用するには、epos-print-2.x.x.jsがWebサーバー上に置かれ(つまり、提供され)、クライアントに配布される。たとえば、HTMLの<script>タグを使用して、ePOS-Print APIスクリプトをWebページに埋め込んでもよい。図23は、ePOS-Print APIを組み込むためにHTMLの<script>タグを使用する例を示す。
次のステップ143は、印刷されるドキュメントを作成するためである。ePOS-Print Builderオブジェクトを使用して、印刷ドキュメントを作成してもよい。たとえば、ePOS-Print Builderオブジェクトは、そのためのコンストラクターを使用して作成し、そのオブジェクトのメソッドを使用して印刷ドキュメントを作成する。以下に列記するように、toStringメソッドやほかの印刷APIメソッドまたは機能を使用して、印刷ドキュメントを得てもよい。図24は、印刷ドキュメントを作成するためのプログラムコードセグメントの例を示す。
文字印字ドキュメントを作成するには、テキストメソッドを使用して命令バッファーにフォント設定を記憶し、その後、印字ドキュメントを作成する。図25は、文字印字ドキュメントを作成するためのサンプルスクリプトコードを示す。このサンプルスクリプトコードでは、FontAを呼ばれるフォントを使用し、文字倍率を横4倍、縦4倍に設定し、装飾を太字としている。サンプルスクリプトの結果は、指定した文字設定で、Hello Worldという文字の印字ドキュメントを作成することである。
図26は、グラフィックの印刷ドキュメントを作成するためのサンプルスクリプトコードを示す。具体的には、このサンプルスクリプトコードは、logo.bmpというイメージファイルの印刷ドキュメントを作成する。基本的には、ラスターイメージを印刷する一つのやり方を記している。プリンター内の不揮発性メモリーに登録したグラフィックスを印刷する別の方法は、以下に述べる。本例において、グラフィックの印刷ドキュメントを作成するためには、HTML5-Canvasにおいてイメージを描画することで得られたラスターイメージを、addImageメソッドを使用して命令バッファーに記憶する。
図22のステップ143に示すように、印刷ドキュメントを作成する別の方法は、ページモードの印刷ドキュメントを作成することである。図27は、ページモードの印刷ドキュメントを作成するためのサンプルコードを示す。この例では、印刷領域にHello worldという文句を追加する。次の例ではaddPageBeginメソッドを使用している。命令バッファーにaddPageBeginメソッドを記憶すると、ページモードが開始する。命令バッファーに印刷領域が(addPageAreaメソッドにより)記憶され、命令バッファーに印刷開始位置が(addPagePositionメソッドにより)記憶される。その後、印刷データにしたがって印刷開始位置が指定される。その後、これらのメソッドは命令バッファーに記憶され、印刷データが作成される。ページモードを終了するために、命令バッファーにPageEndメソッドが記憶される。
図22に戻り、ステップ143の印刷ドキュメントの作成の次は、作成された印刷ドキュメントを送信するステップ145である。図28は、印刷ドキュメントを送信するためのサンプルコードを示す。本例において、ePOS-Printオブジェクトを使用して印刷ドキュメントは送信される。ePOS-Printオブジェクトはコンストラクターで作成してもよく、印刷ドキュメントと印刷に使用されるプリンターのエンドポイントアドレスをsendメソッドに指定(つまり、入力)して、印刷ドキュメントを送信してもよい。 図29は、プリンターのエンドポイントアドレスについての詳細を示す表である。
図22に示すように、最後のステップ147では印刷データを受信する。ePOS-Printオブジェクトのonreceiveプロパティ(後述)を用いてコールバック関数を設定することで、印刷結果を受信することができる。図30は、コールバック関数を実装するためのサンプルコードである。得ることができる情報の例としては、印刷結果、エラーコード、プリンターステータスがある。図31は、コールバック関数のエラーハンドリング方法の例である。図32は、印刷を行わずにプリンターステータスを確認するためにステータスイベント通知機能を使用する場合を示す。
図33は、ePOS-Print-Canvas APIを使用したプログラミングのワークフローを示す。ePOS-Print APIの場合と同じで、ePOS-Print-Canvas APIは、ePOS-Print-Canvas APIをWebページに組み込むステップ151で始まる。図34は、ePOS-Print-Canvas APIを組み込むためのサンプルコードを示す。説明のために、ePOS-Print-Canvas APIはJavaScriptとして示され、好適にはepos-print-2.x.x.jsという命名規約に従う。ePOS-Print-Canvas APIはWebサーバーに保持(つまり、配置、保有、または記憶)され、その後、クライアントに配布されて彼らのアプリケーション(つまり、Webページ)に組み込まれる。図34に示すように、ePOS-Print-Canvas APIはHTMLの<script>タグを使用してWebアプリケーションに組み込まれてもよい。
図33の次のステップ153は、HTML5-Canvasでの描画である。図35は、HTML5-Canvasで描画するためのサンプルコードを示す。次のステップ155は、描画したcanvasイメージの印刷である。図36は、印刷のために印刷ドキュメントを送信するためのサンプルコードを示す。ePOS-Print-Canvas APIを使用してHTML5-Canvasで描画した内容を印刷するには、コンストラクターを使用してePOS-Print-Canvas APIオブジェクトを作成する。Printメソッドを使用するには、canvasの内容と印刷に使用するプリンターのエンドポイントアドレス、そして用紙カットを選択するかどうかを指定し、その後ドキュメントを印刷する。
ステップ157で示すように、TMインテリジェントプリンター(つまり、インテリジェントモジュール)は送信物を受信する。図37は、コールバック関数により結果印刷を印刷するためのサンプルコードを示す。前記のように、ePOS-Print Canvas APIオブジェクトのonreceiveプロパティを用いてコールバック関数を設定することで、印刷結果を受信することができる。このように、印刷結果、エラーコード、プリンターステータスについての情報を得ることができる。図38は、コールバック関数によるエラーハンドリングのためのサンプルコードである。こうして、図39のサンプルコードに示すように、印刷を行わずにプリンターステータスを確認するために、ステータスイベント通知機能を使用することができる。
上記のように、印刷ドキュメントを作成するための多くのメソッドをePOS-Print APIは提供する。図40、図41、図42a、図42bは、ePOSBuilderオブジェクトにより定義されるように、ePOS-Print APIのメソッドと要素のいくつかを列記する。
当業者には理解されただろうが、コンストラクターにより、新しいePOS-Print Builderオブジェクトが作成され初期化されて、その後、オブジェクトを使用して、印刷される文字列またはグラフィックス、用紙カットなどを指定する制御コマンドを印刷する印刷ドキュメントを作成できる。好適には、このコンストラクターは次の構文に従う:ePOSBuilder( );。図43は、ePOS-Print Builderオブジェクトのコンストラクターのサンプルコードである。
文字の位置揃え設定を命令バッファーに追加する構文は、addTextAlign(align)という構文にしたがってもよい。ここでalignは位置揃えの種類を指定する。図44は、位置揃えパラメーターの種類の例を示す。図45は、ePOS-Print Builderオブジェクトの戻り値で、図46は、例外エラーである。図47は、文字の位置揃えの使い方を示すサンプルコードである。
改行量設定を命令バッファーに追加するメソッドは、好適にはaddTextLineSpace(linespc)という構文にしたがう。linespcパラメーターは改行量(ドット単位)を指定し、好適には0から255までの範囲の整数である。図48は、改行量を30ドットに設定するサンプルコードを示す。
倒立印字設定を命令バッファーに追加するメソッドは、好適には次の構文に従う:addTextRotate(rotate)。ここでrotateは、倒立印字の有無を指定するBoolean値である。図49は、倒立印字パラメーターのためのBoolean値を示す。図50は、倒立印字を設定するためのサンプルコードである。
文字の印字を命令バッファーに追加するメソッドは、好適にはaddText(data)という構文にしたがう。ここで、dataパラメーターは印字される文字列である。図51に示すように、水平タプや改行のような、印字できない文字は、エスケープシーケンスを使用してもよい。図52は、addText(data)の使い方を示すサンプルコードである。
言語設定を命令バッファーに追加するメソッドは、好適にはaddTextLang(lang)という構文にしたがう。ここで、langパラメーターは対象言語を指定する列である。図53は対象言語を指定するためのlangパラメーターの例を示す。図54はaddTextLang(lang)メソッドの使い方を示すサンプルコードである。
文字のフォント設定を命令バッファーに追加するメソッドは、好適にはaddTextFont(font)という構文にしたがう。ここで、fontパラメーターは所望のフォントを指定する列である。図55はfontパラメーターのサンプル値を示し、図56はaddTextFont(font)メソッドの使い方を示すサンプルコードである。
スムージング設定を命令バッファーに追加するメソッドは、好適にはaddTextSmooth(smooth)という構文にしたがう。ここで、smoothパラメーターは,
スムージングの有効化の有無を指定するBooleanである。図57はsmoothパラメーターの可能な値を示し、図58はaddTextSmooth(smooth)メソッドの使い方を示すサンプルコードである。
文字の倍角設定を命令バッファーに追加するメソッドは、好適にはaddTextDouble(dw, dh)という構文にしたがう。ここで、dwは横倍角を指定する、オプションのBooleanパラメーターで、dhは縦倍角を指定する、オプションのBooleanパラメーターである。図59はdwのパラメーター値を示し、図60はdhのパラメーター値を示す。図61は文字倍角を横倍角と縦倍角に設定するためのサンプルコードである。
文字の倍率設定を命令バッファーに追加するメソッドは、好適にはaddTextSize(width, height)という構文にしたがう。ここで、widthパラメーターは、文字の横倍率を指定する、オプションの数値パラメーターで、heightパラメーターは、文字の縦倍率を指定する、オプションの数値パラメーターである。図62はwidthパラメーターの可能な値を示し、図63はheightパラメーターの可能な値を示す。図64は、横倍率を4倍にし縦倍率を4倍にするためのサンプルコードである。
文字の装飾設定を命令バッファーに追加するメソッドは、好適にはaddTextStyle(reverse, ul, em, color)という構文にしたがう。ここで、reverseパラメーターは、文字について白黒を反転するかどうかを指定する、オプションのBooleanパラメーターで、ulは、文字のアンダーライン装飾を指定する、オプションのBooleanパラメーターで、emは、文字の太字装飾を指定する、オプションのBooleanパラメーターで、colorは、色を指定する、オプションの列パラメーターである。図65はreverseパラメーターの可能な値を示す。図66はulパラメーターの可能な値を示す。図67はemパラメーターの可能な値を示す。図68はcolorパラメーターの可能な値を示す。図69はアンダーライン装飾を設定するためのサンプルコードである。
横方向の文字の印字開始位置を命令バッファーに追加するメソッドは、好適にはaddTextPosition(x)という構文にしたがう。ここで、xは、横方向の印字開始位置(ドット単位)を指定する数値パラメーターで、0〜65535の範囲の整数値である。図70は、印字位置を左端から120ドットに設定するためのサンプルコードを示す。
ドット単位の紙送りを命令バッファーに追加するメソッドは、好適にはaddFeedUnit(unit)という構文にしたがう。ここで、unitは、紙送り量(ドット単位)を指定する数値パラメーターで、0〜255の範囲の整数値である。図71は、紙送りを30ドットするためのサンプルコードを示す。
行単位の紙送りを命令バッファーに追加するメソッドは、好適にはaddFeedLine(line)という構文にしたがう。ここで、lineは、紙送り量(行単位)を指定する整数の数値パラメーターで、0〜255の範囲にある。図72は紙送りを3行するためのサンプルコードを示す。
改行を命令バッファーに追加するメソッドは、好適にはaddFeed( )という構文にしたがう。図73は文字列を印字した後に、新しい行を開始するためのサンプルコードを示す。
addImageメソッドでは、ラスターイメージの印刷を命令バッファーに追加し、HTML5-Canvasで描画したグラフィックスを印刷する。さらに、HTML5-CanvasのRGBAフルカラーイメージの中で指定された範囲をhalftoneプロパティとbrightnessプロパティの設定にしたがって、ラスターイメージデータに変換する。イメージの1ピクセルがプリンターの1ドットに相当するとされ、イメージに透明色が含まれている場合、イメージの背景色を白とみなす。好適には次の構文にしたがう:addImage(context, x, y, width, height, color, mode)。ここで、contextはHTML5-Canvasの2Dコンテキストを指定するコンテキストパラメーターで、xは0〜65535の範囲の整数値で、印刷領域の横方向の開始位置を指定し、yは0〜65535の範囲の整数値で、印刷領域の縦方向の開始位置を指定し、widthは0〜65535の範囲の整数値で、印刷領域の幅を指定し、heightは0〜65535の範囲の整数値で、印刷領域の高さを指定し、colorは色を指定する、オプションの列パラメーターであり(図74はaddImageメソッドの中のcolorパラメーターのサンプル値を示す)、modeはカラーモードを指定する、オプションの列パラメーターである(図75はaddImageメソッドの中のmodeパラメーターのサンプル値を示す)。図76はページモードで幅300ドット、高さ300ドットのイメージを印刷するためのサンプルコードである。
NVロゴの印刷を命令バッファーに追加するメソッドは、好適にはaddLogo(key1, key2)という構文にしたがう。このメソッドで、プリンターのNVメモリーにすでに登録されているロゴを印刷する。key1パラメーターは、NVロゴの第1のキーコード1を指定する数値で、好適には0〜255の範囲の整数である。key2パラメーターは、NVロゴの第2のキーコード2を指定する数値で、好適には0〜255の範囲の整数である。図77はaddLogoメソッドの使い方を示すサンプルコードである。
バーコードの印刷を命令バッファーに追加するメソッドは、好適にはaddBarcode(data, type, hri, font, width, height)という構文にしたがう。dataパラメーターは、バーコードデータを列として指定する列である。typeパラメーターは、バーコードの種類を指定する列である。図78から図81は、バーコードの種類の例を示す。hriパラメーターは、HRIの位置を指定する、オプションの列パラメーターである。図82はhriパラメーターのいくつかの可能な値を示す。fontパラメーターは、HRIフォントを指定する、オプションの列である。widthパラメーターは、各モジュールの幅をドット単位で指定する、オプションの整数値で、好適には2〜6の範囲である。heightパラメーターは、バーコードの高さをドット単位で指定する、オプションの整数値で、好適には1〜255の範囲である。図83はバーコードの印字の仕方を示すサンプルコードである。
2次元シンボルの印刷を命令バッファーに追加するメソッドは、好適にはaddSymbol(data, type, level, width, height, size)という構文にしたがう。dataパラメーターは、好適には、2次元(2D)シンボルデータを文字列として指定する列である。図84と図85は、addSymbolメソッドの中でdataパラメーターの2Dコード種類の説明の例を示す。typeパラメーターは、2次元シンボルの種類を指定する列である。図86はaddSymbolメソッドの中でtypeパラメーターのサンプル値を示す。levelパラメーターは、エラー訂正レベルを指定する列である。図87はaddSymbolメソッドの中でlevelパラメーターのサンプル値を示す。widthパラメーターは、モジュールの幅を指定する整数値で、0〜255の範囲である。heightパラメーターは、モジュールの高さを指定する整数値で、0〜255の範囲である。sizeパラメーターは、2次元シンボルの最大の大きさを指定する整数値で、0〜65535の範囲である。図88は2次元シンボルを印字するためのサンプルコードを示す。
横罫線を引くために、横罫線の印刷を命令バッファーに追加するメソッドは、好適にはaddHLine(x1, x2, style)という構文にしたがう。ここで、x1パラメーターは、0〜65535の範囲の整数値で、横罫線の開始位置(ドット単位)を指定し、x2パラメーターは、0〜65535の範囲の整数値で、横罫線の終了位置(ドット単位)を指定し、styleパラメーターは、罫線の種類を指定する列である。図89はaddHLineメソッドのいくつかのstyleパラメーターを示す。図90は、左端から100ドットから200ドットまでと、左端から400ドットから500ドットまでの間の位置に、二重横罫線を描画するためのサンプルコードを示す。
縦罫線の開始を命令バッファーに追加する(つまり、縦罫線の描画を開始する)メソッドは、addVLineBegin(x, style)という構文にしたがう。ここで、xパラメーターは、0〜65535の範囲の整数値で、縦罫線の開始位置(ドット単位)を指定し、styleパラメーターは、罫線の種類を指定する、オプションの列である。図91はaddVLineBeginメソッドのstyleパラメーターの例を示す。図92は縦罫線を左端から100ドットと200ドットの位置に細線で描画するためのサンプルコードを示す。
縦罫線の終了を命令バッファーに追加する(つまり、縦罫線の描画を終了する)メソッドは、addVLineEnd(x, style)という構文にしたがう。ここで、xパラメーターは、0〜65535の範囲の整数値で、縦罫線の終了位置(ドット単位)を指定し、styleパラメーターは、描画を終了する罫線の種類を指定する、オプションの列である。図93はaddVLineEndメソッドのstyleパラメーターの例を示す。図94は、縦罫線を左端から100ドットと200ドットの位置に細線で描画するためのサンプルコードを示す。
ページモードへの切り換えを命令バッファーに追加する(つまり、ページモードの処理を開始する)メソッドは、addPageBegin( )という構文にしたがう。ページモードの終了を命令バッファーに追加する(つまり、ページモードの処理を終了する)メソッドは、addPageEnd( )という構文にしたがう。図95は、ページモードで文字「ABCDE」を印字するためのサンプルコードを示す。
addPageArea(x, y, width, height)メソッドでは、ページモードで印字領域(座標)を指定するために、ページモードの印字領域を命令バッファーに追加する。本API機能の後で、印刷データAPI機能(addTextメソッドなど)を指定すること。xパラメーターは0〜65535の範囲の整数で、横軸の原点(ドット単位)を指定する。ここで、0はプリンターの印字可能領域の左端である。yパラメーターは0〜65535の範囲の整数で、縦軸の原点を指定する。ここで、0は、紙送りをしていない位置である。widthパラメーターは0〜65535の整数値で、印字領域の幅(ドット単位)を指定する。図96は、原点(100、50)、幅200ドット、高さ30ドットの印字領域を指定して、文字「ABCDE」を印字するためのサンプルコードを示す。
ページモードの印字方向設定を命令バッファーに追加する(つまり、ページモードの印字方向を指定する)メソッドは、addPageDirection(dir)という構文にしたがう。この機能は、回転が要求されない場合は省略してもよい。dirパラメーターは、ページモードの印字方向を指定する列である。図97は、addPageDirectionメソッドのdirパラメーターのいくつかの例を示す。図98は、時計回りに90度回転させて、文字「ABCDE」を印字するためのサンプルコードである。
ページモードの印字位置設定領域を命令バッファーに追加する(つまり、addPageAreaメソッドで指定された領域内で印字開始位置(座標)を指定する)メソッドは、addPagePosition(x, y)という構文を持つ。xパラメーターは、0〜65535の範囲の整数値で、横方向の印字位置(ドット単位)を指定する。yパラメーターは、0〜65535の範囲の整数値で、縦方向の印字位置(ドット単位)を指定する。図99は、addPageAreaメソッドで指定した領域内の印字開始位置を(50、30)に指定して、文字「ABCDE」を印字するためのサンプルコードを示す。
ページモードの線描画を命令バッファーに追加する(つまり、ページモードで線を描画する)メソッドは、addPageLine(x1, y1, x2, y2, style)という構文にしたがう。x1パラメーターは、0〜65535の整数値で、線の横方向開始位置(ドット単位)を指定する。y1パラメーターは、0〜65535の整数値で、線の縦方向開始位置(ドット単位)を指定する。x2パラメーターは、0〜65535の整数値で、線の横方向終了位置(ドット単位)を指定する。y2パラメーターは、0〜65535の整数値で、線の縦方向終了位置(ドット単位)を指定する。styleパラメーターは、線の種類を指定する列である。図100は、addPageLineメソッドのstyleパラメーターの例を示す。図101は、開始位置(100、0)と終了位置(500、0)の間を細い実線で描画するためのサンプルコードである。
ページモードの四角形描画を命令バッファーに追加する(つまり、ページモードで四角形を描画する)メソッドは、addPageRectangle(x1, y1, x2, y2, style)という構文にしたがう。x1パラメーターは、0〜65535の整数値で、線の横方向開始位置(ドット単位)を指定する。y1パラメーターは、0〜65535の整数値で、線の縦方向開始位置(ドット単位)を指定する。x2パラメーターは、0〜65535の整数値で、線の横方向終了位置(ドット単位)を指定する。y2パラメーターは、0〜65535の整数値で、線の縦方向終了位置(ドット単位)を指定する。styleパラメーターは、線の種類を指定する列である。図102は、addPageRectangleメソッドのstyleパラメーターの例を示す。図103は、開始位置(100、0)と終了位置(500、200)を頂点とする四角形を細い二重線で描画するためのサンプルコードを示す。
用紙カットを命令バッファーに追加する(つまり、用紙カットを設定または起動する)メソッドは、addCut(type)という構文にしたがう。ここで、typeパラメーターは、用紙カットの種類を指定する列である。図104はaddCutメソッドの種類の例を示す。図105は紙送りカットするためのサンプルコードである。
ドロワーキックを命令バッファーに追加するメソッドは、addPulse(drawer, time)という構文を持つ。drawerパラメーターは、ドロワーキックコネクターを指定する列である。図106はaddPulseメソッドのdrawerパラメーターの例を示す。timeパラメーターは、ドロワーキック信号のオン時間(つまり、期間)を指定する、オプションのパラメーター列である。図107はaddPulseメソッドのtimeパラメーターの例を示す。図108は、ドロワーキックコネクター2番ピンに100ミリ秒のパルス信号を出力するためのサンプルコードを示す。
ブザーのオンを命令バッファーに追加する(つまり、ブザーを設定する)メソッドは、addSound(pattern, repeat)という構文をしたがう。patternパラメーターは、ブザーのパターンを指定する、オプションの列である。図109はブザーのパターンの例を示す。repeatパラメーターは、繰り返し回数を指定する、オプションの列である。図110はaddSoundメソッドのrepeatパラメーターの設定の仕方の例を示す。図111は音のパターンAを3回繰り返すためのサンプルコードを示す。
コマンドを命令バッファーに追加する(つまり、ESC/POSコマンドを送信する)メソッドは、addCommand(data)という構文を持つ。ここで、dataは、ESC/POSコマンドを文字列として指定する、オプションの列である。
ePOS-Print Builderオブジェクトにより生成された印刷ドキュメントを取得するメソッドは、toString( )という構文を持つ。図112はtoString( )メソッドの使い方を示すサンプルコードである。
halftoneプロパティは、ハーフトーン処理方法により実現されるが、そのオブジェクト種類はstringである。図113は、モノクロ(2階調)印刷に適用するハーフトーン処理方法の指定の仕方を示す。初期値はHALFTONE_DITHERである。図114は、ハーフトーンの種類を誤差拡散として設定するためのサンプルコードを示す。
明るさ補正は、ガンマー値を設定することで設定してもよい。0.1〜10.0の範囲のガンマー値が明るさ補正値として指定される(つまり、利用可能である)。図115は、明るさを2.2に設定するためのサンプルコードである。
コマンドは、ePOS-Print Builderオブジェクトのメソッドにより通常は追加されるが、プロパティから直接操作して、追加したり削除することができる。図116は、命令バッファーをクリアし、初期状態に戻すためのサンプルコードである。
ePOS-Printオブジェクトのコンストラクターは、新しいePOS-Printオブジェクトを作成し、初期化する。ePOS-Print Builderオブジェクトを使用して作成した印刷ドキュメントを送信して、プリンターを制御し、送信結果または通信ステータスを監視するメソッドは、ePOSPrint(address)という構文を持つ。ここで、addressは、印刷ドキュメントが送信されるプリンターのURL(つまり、ネットワークアドレス)を指定する、オプションの列である。図117は、ePOSPrint(address)の使い方を示すサンプルコードである。
sendメソッドでは、ePOS-Print Builderオブジェクトで作成した印刷ドキュメントを送信する。send(request)という構文を持ち、ここでrequestは、印刷ドキュメントを指定する列である。図118は、send(request)メソッドの使い方を示すサンプルコードである。
openメソッドでは、statusイベント動作を有効化する。addressプロパティにより指定された、プリンターのステータスをイベントで送信し、intervalプロパティにより指定された間隔でステータスを更新する。open( )という構文を持つ。図119は、open( )メソッドの使い方を示すサンプルコードである。
close( )メソッドでは、statusイベント動作を無効化する。図120は、close( )メソッドの使い方を示すサンプルコードである。
addressプロパティは、印刷に使用するプリンターのURLを指定するために使用される。図121は、addressプロパティの使い方の例である。
enabledプロパティは、statusイベント動作の有効/無効設定を保持する、Boolean値である。statusイベント動作の有効/無効設定を論理値で保持する。読み取り専用である。図122は、enabledプロパティの使い方の例である。
intervalプロパティは、ステータスを更新する間隔を指定する。ステータスを更新する間隔をミリ秒単位で指定する。3000ミリ秒(3秒)の初期値を持ち、最小値は1000ミリ秒(1秒以上)である。不正な値を指定した場合、3000ミリ秒とみなす。図123は、intrervalプロパティの使い方の例である。
statusプロパティは、プリンターのステータスを提供する。プリンターから最後に取得したステータスで、読み取り専用である。図124は、statusプロパティの使い方の例である。
onreceiveイベントは、コールバック関数を登録し、応答メッセージ受信イベントを取得するプロパティである。Function(response)という構文を持つ。コールバック関数のパラメーターとしては、resopnseをパラメーターとして、応答メッセージを名称として、objectをオブジェクト種類として含む。図125は、responseオブジェクトのいくつかのプロパティを示す。図126はsuccessの値を示す。図127はcodeの値を示す。図128はstatusの値を示す。図129は、印刷ドキュメントを作成して送信し、印刷結果をメッセージボックスに表示するためのサンプルコードを示す。
onerrorイベントプロパティは、コールバック関数を登録し、通信エラーイベントを取得する。Function(error)という構文を持つ。図130は、errorオブジェクトのいくつかのプロパティを列記する。図131は、印刷ドキュメントを作成して送信し、通信エラー発生時にHTTPステータスコードをメッセージボックスに表示するためのサンプルコードを示す。
onstatuschangeイベントは、コールバック関数を登録して、ステータス変更イベントを取得する。Function(status)という構文を持つ。図132は、onstatuschangeイベントの使い方の例である。
ononlineイベントは、コールバック関数を登録して、オンラインイベントを取得する。Function( )という構文を持つ。図133は、ononlineイベントの使い方の例である。
onofflineイベントは、コールバック関数を登録して、オフラインイベントを取得する。これもFunction( )という構文を持つ。図134は、onofflineイベントの使い方の例である。
onpoweroffイベントは、コールバック関数を登録して、無応答イベントを取得する。これもFunction( )という構文を持つ。図135は、onpoweroffイベントの使い方の例である。
oncoverokイベントは、コールバック関数を登録して、カバークローズイベントを取得する。これもFunction( )という構文を持つ。図136は、oncoverokイベントの使い方の例である。
oncoveropenイベントは、コールバック関数を登録して、カバーオープンイベントを取得する。これもFunction( )という構文を持つ。図137は、oncoveropenイベントの使い方の例である。
onpaperokイベントは、コールバック関数を登録して、用紙ありイベントを取得する。これもFunction( )という構文を持つ。図138は、onpaperokイベントの使い方の例である。
onpapernearendイベントは、コールバック関数を登録して、用紙ニアエンドイベントを取得する。これもFunction( )という構文を持つ。図139は、onpapernearendイベントの使い方の例である。
onpaperendイベントは、コールバック関数を登録して、用紙エンドイベントを取得する。これもFunction( )という構文を持つ。図140はonpaperendイベントの使い方の例である。
ondrawerclosedイベントは、コールバック関数を登録して、ドロワークローズイベントを取得する。これもFunction( )という構文を持つ。図141はondrawerclosedイベントの使い方の例である。
ondraweropenイベントは、コールバック関数を登録して、ドロワーオープンイベントを取得する。これもFunction( )という構文を持つ。図142はondraweropenイベントの使い方の例である。
いくつかのePOS-Print-Canvas API機能を以下に述べる。図143はePOS-Print-Canvas APIのいくつかの構成要素を列記する。
ePOS-Print-Canvas APIオブジェクトは、HTML5-Canvasで描画された印刷イメージを印刷し、印刷結果や通信ステータスを監視する。ePOS-Print-Canvas APIオブジェクトのコンストラクターを使い、新しいePOS-Print-Canvas APIオブジェクトを作成し初期化する。構文はCanvasPrint(address)であり、ここでaddressはaddressプロパティ(印刷に使用するプリンターのURL)を指定する、オプションの列である。図144は、新しいePOS-Print-Canvas APIオブジェクトを作成するサンプルコードを示す。
printメソッドは、HTML5-Canvasで描画されたイメージを印刷する。HTML5-CanvasのRGBAフルカラーイメージの中で指定された範囲を、halftoneプロパティとbrightnessプロパティの設定にしたがって、ラスターイメージデータに変換する。イメージの1ピクセルが1印刷ドットに相当する。イメージに透明色が含まれている場合、イメージの背景色を白とみなす。printメソッドはprint(canvas, cut, mode)という構文を持つ。canvasパラメーターは、印刷するHTML5-Canvasオブジェクトを指定する。cutパラメーターは、用紙をカットするかどうかを設定する、オプションのBooleanである。図145はcutパラメーターの例を示す。modeパラメーターは、カラーモードを指定する、オプションの列である。図146はmodeパラメーターの例を示す。図147はCanvas(ID='myCanvas')を印刷するためのサンプルコードである。
openメソッドでは、statusイベント動作を有効化する。addressプロパティにより指定された、プリンターのステータスをイベントで送信し、intervalプロパティにより指定された間隔でステータスを更新する。open( )という構文を持つ。図148はopen( )メソッドの使い方を示すサンプルコードである。
close( )メソッドでは、statusイベント動作を無効化する。close( )という構文を持つ。図149はclose( )メソッドの使い方を示すサンプルコードである。
addressプロパティは、印刷に使用するプリンターのURLを指定する。図150はaddressプロパティの使い方を示すサンプルコードである。
enabledプロパティは、statusイベント動作の有効/無効設定を保持する。Booleanタイプで、statusイベント動作の有効/無効設定を論理Boolean値で保持する。読み取り専用であり、初期値はfalseである。図151はenabledプロパティの使い方を示すサンプルコードである。
intervalプロパティは、ステータスを更新する間隔を指定する。ステータスを更新する間隔をミリ秒単位で指定する。初期値は3000ミリ秒(3秒)で、最小値は1000ミリ秒(1秒以上)である。不正な値を指定した場合、デフォルトで、3000ミリ秒とみなす。図152はintervalプロパティの使い方を示すサンプルコードである。
statusプロパティは、プリンターのステータスを提供する。これは、プリンターから最後に取得したステータスである。読み取り専用で、初期値は0である。図153はstatusプロパティの使い方を示すサンプルコードである。
ハーフトーン処理方法では、モノクロ(2階調)印刷に適用されるhalftoneプロパティを指定する。初期値はHALFTONE_DITHERである。図154はいくつかのhalftoneプロパティを示す。図155はhalftoneプロパティの使い方を示すサンプルコードである。
brightnessプロパティは、ガンマー値で設定する。具体的には、0.1〜10.0の範囲のガンマー値が、明るさ補正値として指定される。初期値は1.0である。図156はbrightnessプロパティの設定を示すサンプルコードである。
onreceiveイベントは、コールバック関数を登録し、応答メッセージ受信イベントを取得するプロパティである。Function(response)という構文を持つ。コールバック関数のパラメーターとしては、resopnseをパラメーターとして、応答メッセージを名称として、objectをオブジェクト種類として含む。図157はresponseオブジェクトのいくつかのプロパティを示す。図158はsuccessの値を示す。図159はcodeの値を示す。図160はstatusの値を示す。図161はCanvas(ID=myCanvas)を印刷し、印刷結果をメッセージボックスに表示するためのサンプルコードを示す。
onerrorイベントプロパティは、コールバック関数を登録し、通信エラーイベントを取得する。Function(error)という構文を持つ。図162はerrorオブジェクトのいくつかのプロパティを列記する。図163はCanvas(ID=myCanvas)を印刷し、通信エラー発生時にHTTPステータスコードをメッセージボックスに表示するためのサンプルコードを示す。
onstatuschangeイベントは、コールバック関数を登録して、ステータス変更イベントを取得する。Function(status)という構文を持つ。図164はonstatuschangeイベントの使い方を示すサンプルコードである。
ononlineイベントは、コールバック関数を登録して、オンラインイベントを取得する。Function( )という構文を持つ。図165はononlineイベントの使い方の例である。
onofflineイベントは、コールバック関数を登録して、オフラインイベントを取得する。これもFunction( )という構文を持つ。図166はonofflineイベントの使い方の例である。
onpoweroffイベントは、コールバック関数を登録して、無応答イベントを取得する。これもFunction( )という構文を持つ。図167はonpoweroffイベントの使い方の例である。
oncoverokイベントは、コールバック関数を登録して、カバークローズイベントを取得する。これもFunction( )という構文を持つ。図168はoncoverokイベントの使い方の例である。
oncoveropenイベントは、コールバック関数を登録して、カバーオープンイベントを取得する。これもFunction( )という構文を持つ。図169はoncoveropenイベントの使い方の例である。
onpaperokイベントは、コールバック関数を登録して、用紙ありイベントを取得する。これもFunction( )という構文を持つ。図170はonpaperokイベントの使い方の例である。
onpapernearendイベントは、コールバック関数を登録して、用紙ニアエンドイベントを取得する。これもFunction( )という構文を持つ。図171はonpapernearendイベントの使い方の例である。
onpaperendイベントは、コールバック関数を登録して、用紙エンドイベントを取得する。これもFunction( )という構文を持つ。図172はonpaperendイベントの使い方の例である。
ondrawerclosedイベントは、コールバック関数を登録して、ドロワークローズイベントを取得する。これもFunction( )という構文を持つ。図173aはondrawerclosedイベントの使い方の例である。
ondraweropenイベントは、コールバック関数を登録して、ドロワーオープンイベントを取得する。これもFunction( )という構文を持つ。図173bはondraweropenイベントの使い方の例である。
好適には、本発明はさらに、ePOS Print editorを組み込む。本発明のePOS Print editorの使用方法について以下に記載する。本ツールにより、ePOS-Print APIとサンプルコードを随意に作成することができる。以下のePOS Print editorを使用して、本発明のWebアプリンターケーションを開発してもよい。
好適には、本ePOS Print editorは、Webブラウザー環境内で動作する。すべての利用可能な印刷APIメソッド/オブジェクトを利用するために、WebブラウザーがHTML5-Canvasをサポートしていることが好適である。したがって、Webブラウザーは、次の(または類似の)Webブラウザーから選択されることが好適である。Windows Internet Explorer 9以降、Mozilla Firefox 13以降、Google Chrome 19以降、Apple Safari 5.1.7以降、iOS 5.1以降のiPad Safari。
希望があれば、ePOS Print editorは、サーバー、インテリジェントモジュール(上記)、またはTMインテリジェントプリンターで保持(つまり、記憶され、そこからアクセス)される。たとえば、IPネットワーク上で本ePOS Print editorのメインページ(つまり、index.HTMLまたはホームページ)をアクセスするには、Webブラウザーにeditorのネットワークアドレス、たとえば、http://[WebサーバーのIPアドレス、インテリジェントモジュールのIPアドレス、またはTMインテリジェントプリンターのIPアドレス]/editor/index.HTML、を入力してもよい。こうして、インテリジェントモジュール、またはTMインテリジェントプリンターにアクセスすると、上記のように、組み込まれた印刷APIを持つWebページアプリケーションを作成するために、文字編集(具体的にはePOS print編集)を提供するようにどちらも機能することができる。
ePOS Print editorにより、所望の機能を選択するためにグラフィックユーザーインターフェース、つまり、GUI、を利用して、カスタマイズしたePOS-Print APIまたはカスタマイズしたePOS-Print-Canvasに望まれる機能を記述することができ、editorに自動的に必要なスクリプトコードを生成させることができる。また、印刷物がどのように見えるかのステンシルまたはレイアウトをグラフィックの形でGUIを利用して描画または表現することで、editorを使用してもよく、そしてまた、所望の結果の見栄えと機能を達成するために必要なスクリプトコードをeditorは生成してもよい。
図174は、本発明のePOS Print editorのサンプルメインページ(すなわち、index.HTMLまたはホームページ)である。好適には、Webブラウザー161のアドレスフィールド163にePOS Print editor195のIPアドレスを入力することで、ePOS Print editorにWebブラウザー161経由でアクセスする。ePOS Print editorのメインページには、editorの能力を機能の種類で分類した、複数のタブ165a〜165fが含まれる。たとえば、タプ165aは、編集機能を選択し、それによりメイン編集領域またはウィンドウ167が立ち上がる。タブ165bはプレビュー機能を提供し、現在作業しているプロジェクトがどのように実行するかをプレビューする。APIタブ165cでは、ユーザーの要求を達成するために基礎となり得るモデルAPIコードを表示することができる。または、APIタブにより、共通のユーザー要求に対応した複数のあらかじめ定義された印刷APIの選択を提供することができる。さらにまた、API165cでは、現在のプロジェクト用のスクリプトコードを表示するウィンドウを立ち上げることができる。タブ165dはXMLという名称で、XML印刷ファイルを見て編集するために使用することができる。たとえば、プロジェクトをプレビューしているときに、現在のプロジェクトのXML印刷ドキュメントをXMLタブ165dで示すことができる。さらにまた、既存のXML印刷ドキュメントをさらに編集するためにインポートすることができる。本ePOS Print editorにより生成されたスクリプトコードを示すことに加えて、別の実施例では、APIタブ165cまたはXMLタブ165dにより、ユーザーが手でコードを編集することをさらに認めてもよい。印刷タブ165eは、現在の作業を印刷するための印刷オプション、または、画面上で見ることができる、あるいは接続されたプリンターへ送信された、現在のコードを模擬的に実行したときの印刷物を生成することで現在の作業を試験するための印刷オプションを立ち上げる。対象プリンターの機種、インテリジェントモジュールまたはTMインテリジェントプリンターのIPアドレス、対象プリンターのデバイスID、タイムアウト期間設定、および/またはプリンターステータスを監視するか否かの選択などのオプション選択などの、実行のために必要な設定を設定タブ165fにより、入力できる。
メイン編集領域167では、本発明の印刷APIにプログラムしてもよい、異なる編集機能選択肢(つまり、機能アイコンやソフトウェアボタンを通して選択できる選択肢)を選択する。これらの機能はさらに小分類される。
たとえば、第1の小分類169は、ほとんどの印刷ドキュメントで使用することがある最も共通の操作を提供する。第1の小分類は共通と名付けられていて、位置揃え、改行量、倒立印字などの機能が含まれる。位置揃え機能は、文字および/またはグラフィックスの所望の位置揃えを指定する(左揃え、中央揃え、右揃え、カスタマイズ揃えなど)。改行量機能により、ドット単位、または、インチおよび/またはセンチメートルなどの測定単位で所望の改行量を指定することができる。倒立印字機能は、文字および/またはグラフィックスの所望の倒立向きを指定する。倒立印字機能は、90゜、180゜、270゜などの固定選択肢に分けてもいいし、0゜〜360゜の範囲内でユーザーが指定してもいい。
第2の小分類171は、文字に関連する機能を提供し、文字と名付けられている。文字小分類には、言語、フォント、印字位置、スムージング、倍率、倍角、装飾、文字などの機能が含まれる。言語機能には、印刷物のために特定の言語を指定する役割がある。たとえば、日本語、英語、スペイン語、ドイツ語などから選択してもいい。フォント機能は、インストールされたフォントオプションのライブラリーから特定のフォントを指定する。印字位置機能は、文字印字が開始する、左端(または右端、上端、下端(大きさの決まった用紙に印刷の場合))からの位置を指定する。知られているように、選択した特定のフォントの倍率によっては文字は風変わりに見えることがある。スムージング機能は、このぎざぎざした、風変わりな見栄えを除き、文字の端部を滑らかにする。倍率機能は、特定の文字の倍率を指定する。倍角機能では、倍角で印刷するべき特定の文字を素早く指定する方法を提供する。装飾機能は、特定の文字装飾、つまり、下線、太字、イタリック体、色つき反転などを指定する。文字機能は、指定された文字を印刷する範囲および/または印刷する文字を指定する。
第3の小分類173は、紙送りに関連する機能を提供し、紙送りと名付けられている。紙送り小分類には、単位ごと、行数ごと、改行などの機能が含まれている。単位ごと機能では、紙送り量を、ドット、インチ、および/またはセンチメートルなどの測定単位で指定する。行数ごと機能では、紙送り量を、行数(つまり、1行ごとに増やして)で指定する。改行機能では新しい行を(つまり、キャリッジリターン機能タイプと類似の方法で1行ごとに増やして)提供する。
第4の小分類175は、画像に関連する機能を提供し、画像と名付けられている。画像小分類には、イメージ、NVロゴなどの機能が含まれる。イメージ機能では、ユーザーの提供するイメージの挿入がなされ、また、線、円、四角形などの基本形状を含む、描画ソフトウェアツールによる新しいイメージを作成(つまり定義)する機能をユーザーに提供してもいい。NVロゴ機能は、プリンターにすでに記憶された、アドレスで呼び出せるイメージに依存し、アドレスまたはローカルIDによりそれらのイメージの選択された一つを呼び出す。すなわち、NVロゴイメージのアドレスは、プリンター内の(好適には)不揮発性メモリーのローカルな(つまり、内部の)メモリー空間内の特定の記憶されたイメージを識別するIDコードでもいい。典型的には、NVロゴイメージは企業のロゴのイメージであるが、ロゴだけに限定されるものではない。
第5の小分類177は、バーコードに関連する機能を提供し、バーコードと名付けられている。バーコード小分類には、バーコード、2次元コードなどの機能が含まれる。バーコード機能は、(ユーザーが指定した種類の)リニアーバーコードを符号化する。すなわち、ユーザーは符号化される情報を提供し、提供した情報を符号化するリニアーバーコードを生成するためにバーコード機能を選択することができる。バーコード機能はさらに、定義したリニアーバーコードの大きさや位置などのオプションを含んでいてもいい。2次元コード機能は、QRコード(登録商標)のような、特定の種類のマトリックス(つまり、2次元)バーコードを符号化する。上記と同じように、ユーザーは符号化される情報(文字および/またはグラフィックス)を提供し、提供した情報を符号化するマトリックスバーコードを生成するたまに2次元コード機能を選択することができる。2次元コード機能はさらに、定義したマトリックスバーコードの大きさや位置などのオプションを含んでいてもいい。
第6の小分類179は、ページモードに関連する機能を提供し、ページモードと名付けられている。ページモード小分類には、ページ開始、印字領域、印字方向、印字位置、ページ終了などの機能が含まれる。ページ開始機能は、ページモード領域の開始位置を指定することができ、ページ終了機能は、ページモード領域の終了位置を指定することができる。印字位置機能は、ページモード印刷領域が位置するべき、印刷領域内の位置を指定してもいい。印字領域機能は、ページモード領域の指定領域(つまり2次元の大きさ)を指定することができる。最後に、印字方向機能は、ページモード領域の表現された内容の向きを指定することができる。たとえば、ページモードで水平に配置された文字が含まれている場合、同じ文字を垂直方向に沿って印刷するために印刷方向機能を使ってもいい。
第7の小分類181は、第1から第6までの小分類に含まれていない、残りの機能すべてをまとめてグループにすることができ、その他と名付けられている。本例においては、その他小分類には、用紙カット、ドロワーキック、ブザー、コマンドなどの機能が含まれる。コマンド機能では、プリンターへ送信するコマンドを指定する。プリンターが、用紙カッター、ドロワー、ブザーを持つPOSプリンターだと仮定すると、用紙カットコマンドにより、プリンターが印刷する印刷媒体(つまり、用紙)をカットするコマンドを発行し、ドロワーキックオプションにより、プリンターのドロワーをキックオープンするコマンドを挿入し(起動される特定のドロワーラッチコネクタをそれぞれ識別してもよく)、ブザーにより、特定のブザーパターンで特定の期間、そしてブザー動作の特定の繰り返し回数でブザーを起動するために、プリンターへのコマンドを定義する。
図175は、本発明のePOS Print editor195の設定タブ165fを選択することで生ずる設定画面を示す。設定画面では、対象プリンターの機種を入力する、または選択するためにプリンター機種フィールド183が提供される。インテリジェントモジュール、またはTMインテリジェントプリンターのIPアドレスを入力するIPアドレスフィールド185も提供される。デバイスIDフィールド187は対象プリンターのデバイスIDを受け取るが、対象プリンターに割り当てられたID名でもよい。印刷タイムアウトフィールド189には、行った印刷動作のタイムアウト期間を(ミリ秒単位で)設定することができる。プリンターのステータスを監視するか否かを選択する選択ボタン191も提供される。図176は、設定画面により提供されるオプションのいくつかをまとめた表である。
図177は、本発明のePOS Print editorの編集画面の、より小さい、別の図である。本編集画面は、図177で編集領域193を追加的に示すことを除けば、図174と同様である。上記のように、メインメニュー領域167では利用可能な機能が表示される。アイコンをクリックする(つまり、メインメニュー領域167からソフトウェアボタンを選択する)ことでそれを編集領域193の下部に追加することができる。アイコンをドラッグ(つまり、移動)して編集領域193のどこへでも挿入することもできる。編集領域193内のアイコンの位置は、最終的なスクリプトコードファイル内の関係するコードの位置(つまり、順序)を指定する。機能アイコン(または要素)を配置したあとで、必要に応じてそれを構成する。たとえば、NVロゴを編集領域167に追加した場合、選択するイメージを識別するキーコードを入力することでそれをその後構成する。編集領域193内に同じ機能アイコンを複数個持つことができることは理解されるだろう。こうして、メニュー領域で選択された機能(つまり、要素)を編集領域193で表示する。これらの要素は、編集領域193内でいつでも上や下へドラッグして、実行順序を変更することができる。各要素にはXボタンが右側に与えられ、どの要素も対応するXボタンによって削除可能である。インポートオプション197により、ePOS-Print Editorは過去の記憶したXMLデータをインポートできる。消去オプション199により、編集領域193内の編集した詳細内容を消去する。
図174に示すように、プレビュータブ165bを選択すると、プレビューイメージが提供される。図178は、本発明のePOS Print editorのサンプルプレビューイメージを示す。印刷ドキュメントのプレビュー101である。
プリンターが接続されている場合、印刷タブ165eを選択することでコードを試験するために実際の印刷を行ってもよい。図179は、印刷タブが選択されたときのePOS Print editorの図の例である。印刷タブ165eは、XML印刷ドキュメントのプレビューイメージを見るために利用してもいいし、XML印刷ドキュメントをインポートするために利用してもいい。たとえば、印刷タブ165eにより既存のXML印刷ドキュメントを開いてもいいし、コピーするなどして、XML印刷ドキュメントの内容を保存してもよい。ePOS-Print XMLドキュメントは、送信するデータ(ePOS-Print XML)区画に表示される。送信オプションを選択すると、プリンターへデータが送信され印刷される。情報区画には印刷ステータスが表示される。消去オプションを選択すると、情報ボックスの内容が消去される。
図180は本発明のインポート画面を示す。インポートされるePOS-Print XML印刷ドキュメントは、インポートするデータ(ePOS-Print XML)区画にペーストされ確認される。適用オプションを選択すると、ePOS-Print XML印刷ドキュメントがインポートされる。情報区画にはインポート情報または必要な情報が表示される。閉じるオプションで、インポート画面が閉じられる。
本発明の好適な実施例において、図174に示すように、APIタブ165cを選択すると、ePOS-Printサンプルコードが提供される。図181は、APIタブが選択されたときのePOS Print editorの図の例である。サンプルコードをコードファイルまたは編集領域にコピーすることで、ユーザーはサンプルコードを利用できる。
いくつかの特定の実施例とともに本発明を説明したが、上記の説明を考慮すると、さらに多くの代替例、変形例、変更例が明らかであることは当業者には明白である。こうして、すべてのそのような代替例、変形例、応用例、変更例は、添付の請求項の趣旨と範囲に入るものとして、ここに説明した発明が包含すると解釈される。

Claims (19)

  1. Webアプリケーションでドキュメントを作成し、前記ドキュメントをプリンターへ送信し、ネットワークを通して前記プリンターのステータスを取得する方法において、前記WebアプリケーションはWebブラウザーにより実行され、
    ネットワークアドレスを設定され、前記ネットワークを通して前記ドキュメントを受信し、前記ドキュメントを前記プリンターへ送信するように構成されていて、前記プリンターに接続するように構成された前記インテリジェントモジュールを提供するステップと、
    (i)前記インテリジェントモジュールの前記ネットワークアドレスを指定するように構成されたaddressプロパティ要素と、
    (ii)前記プリンターの一つまたはそれ以上のステータスを確認するように構成されたstatusイベント要素と、
    (iii)前記statusイベント要素の動作を有効化するように構成されたopenメソッド要素と、を含むアプリケーションプログラムインターフェース(API)を前記Webアプリケーションに組み込むステップと、
    前記インテリジェントモジュールの前記ネットワークアドレスを前記addressプロパティ要素に設定するステップと、
    前記openメソッド要素を使用して、前記statusイベント要素の動作を有効化し、前記プリンターの指定されたステータスを受信するステップと、を備える方法。
  2. 前記APIはさらに、前記statusイベント要素の前記動作を無効化するように構成されたcloseメソッド要素を含み、Webアプリケーションでドキュメントを作成する前記方法はさらに、前記closeメソッド要素を使用して、前記statusイベント要素を無効化するステップを備える、請求項1に記載の方法。
  3. 前記APIは、前記プリンターの前記ステータスを更新する間隔をあけるための時間間隔を指定するintervalプロパティ要素を含み、Webアプリケーションでドキュメントを作成する前記方法はさらに、前記intervalプロパティ要素に前記時間間隔を設定するステップを備える、請求項1に記載の方法。
  4. 前記APIは、前記プリンターから最後に取得したステータスを指定するstatusプロパティ要素を含む、請求項1に記載の方法。
  5. さらに、前記プリンターのデバイスIDを設定するステップを含み、前記addressプロパティ要素は、前記確認されたステータスが受信される前記プリンターの前記デバイスIDを指定するようにさらに構成される、請求項1に記載の方法。
  6. 前記Webアプリケーションは前記インテリジェントモジュールで保持され、前記Webブラウザーは前記インテリジェントモジュールから前記Webアプリケーションにアクセスする、請求項1に記載の方法。
  7. 前記WebアプリケーションはWebサーバーで保持され、前記Webブラウザーは前記Webサーバーから前記Webアプリケーションにアクセスする、請求項1に記載の方法。
  8. 前記一つまたはそれ以上のステータスには、前記プリンターがオンラインかオフラインかを示すステータスが含まれる、請求項1に記載の方法。
  9. 前記プリンターにはカバーがあり、一つまたはそれ以上のステータスには、前記カバーが開いているか閉じているかを示すステータスが含まれる、請求項1に記載の方法。
  10. 前記APIはさらに、
    命令バッファーに前記プリンターを制御するコマンドを追加し、前記命令バッファーのコマンドにしたがって前記ドキュメントを作成するように構成された、第1のメソッド要素と、
    前記作成されたドキュメントを前記ネットワークを通して前記インテリジェントモジュールへ送信するように構成された、第2のメソッド要素とを含み、
    Webアプリケーションでドキュメントを作成する前記方法はさらに、
    前記Webアプリケーションに組み込まれた前記第1のメソッド要素を使用して、前記ドキュメントを作成するステップと、
    前記Webアプリケーションに組み込まれた第2のメソッド要素を使用して、前記addressプロパティ要素により指定された前記ネットワークアドレスを持つ前記インテリジェントモジュールへ、前記ドキュメントを送信するステップと、
    前記インテリジェントモジュールに、前記受信したドキュメントを前記プリンターへ送信させるステップと、を備える、請求項1に記載の方法。
  11. さらに、前記プリンターが、それの受信したドキュメントを前記プリンターの紙媒体上に印刷するステップを備える、請求項10に記載の方法。
  12. 前記statusイベント要素により確認された、前記プリンターの前記一つまたはそれ以上のステータスには、前記紙媒体の供給が終了したか、または終了に近いかを示すステータスが含まれる、請求項11に記載の方法。
  13. 前記プリンターにはドロワーがあり、
    前記命令バッファーに追加された、前記プリンターを制御する前記コマンドの一つは、前記プリンターにそのドロワーをキックオープンすることを命令する、ドロワーキックコマンドである、請求項10に記載の方法。
  14. 前記プリンターの前記一つまたはそれ以上のステータスには、前記ドロワーが開いているか閉じているかを示すステータスが含まれる、請求項13に記載の方法。
  15. Webアプリケーションでドキュメントを作成し、前記ドキュメントをプリンターへ送信し、ネットワークを通して前記プリンターのステータスを取得するシステムにおいて、前記WebアプリケーションはWebブラウザーにより実行され、前記システムは、
    ネットワークアドレスを設定されるように構成され、前記プリンターに接続するように構成された前記インテリジェントモジュールと、
    前記ネットワークを通して前記インテリジェントモジュールに接続され、前記WebアプリケーションをWebサーバー内で保持するWebサーバーと、
    (i)前記インテリジェントモジュールの前記ネットワークアドレスを指定するように構成されたaddressプロパティ要素と、
    (ii)前記プリンターの一つまたはそれ以上のステータスを確認するように構成されたstatusイベント要素と、
    (iii)前記statusイベント要素の動作を有効化するように構成されたopenメソッド要素と、を含み、前記Webアプリケーションに組み込まれたとアプリケーションプログラムインターフェース (API)とを備え、
    前記openメソッド要素により前記statusイベント要素の動作が有効化された後で、前記statusイベント要素により指定された、前記プリンターの前記ステータスは、前記addressプロパティ要素により指定された、前記インテリジェントモジュールから、前記Webブラウザーへ送信される、システム。
  16. 前記プリンターにはカバーがあり、
    前記プリンターの前記一つまたはそれ以上のステータスには、前記カバーが開いているか閉じているかを示すステータスが含まれる、請求項15に記載のシステム。
  17. 前記APIはさらに、
    (i)命令バッファーに前記プリンターを制御するコマンドを追加し、前記命令バッファーのコマンドにしたがって前記ドキュメントを作成するように構成された、第1のメソッド要素と、
    (ii)前記ドキュメントを前記ネットワークを通して前記インテリジェントモジュールへ送信するように構成された、第2のメソッド要素と、を含み、
    前記ドキュメントは、前記第1のメソッド要素により作成され、前記addressプロパティ要素により指定された前記ネットワークアドレスを持つ前記インテリジェントモジュールへ、前記第2のメソッド要素により送信される、請求項15に記載のシステム。
  18. ドロワーが前記プリンターに接続され、
    命令バッファーに追加された、前記プリンターを制御する前記コマンドの一つは、前記プリンターに、その接続されたドロワーをキックオープンすることを命令する、ドロワーキックコマンドである、請求項17に記載のシステム。
  19. 前記プリンターの前記一つまたはそれ以上のステータスには、前記ドロワーが開いているか閉じているかを示すステータスが含まれる、請求項18に記載のシステム。
JP2014556845A 2012-08-14 2013-08-08 方法およびシステム Active JP6156394B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261683009P 2012-08-14 2012-08-14
US61/683,009 2012-08-14
PCT/JP2013/071943 WO2014027678A1 (en) 2012-08-14 2013-08-08 Epos printing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017111435A Division JP6384571B2 (ja) 2012-08-14 2017-06-06 端末の制御方法

Publications (3)

Publication Number Publication Date
JP2015531087A true JP2015531087A (ja) 2015-10-29
JP2015531087A5 JP2015531087A5 (ja) 2016-05-26
JP6156394B2 JP6156394B2 (ja) 2017-07-12

Family

ID=49213039

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014556845A Active JP6156394B2 (ja) 2012-08-14 2013-08-08 方法およびシステム
JP2017111435A Active JP6384571B2 (ja) 2012-08-14 2017-06-06 端末の制御方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017111435A Active JP6384571B2 (ja) 2012-08-14 2017-06-06 端末の制御方法

Country Status (7)

Country Link
US (6) US9098226B2 (ja)
EP (1) EP2740024A1 (ja)
JP (2) JP6156394B2 (ja)
KR (1) KR101600248B1 (ja)
CN (1) CN104508622B (ja)
IN (1) IN2014DN03284A (ja)
WO (1) WO2014027678A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016014921A (ja) * 2014-06-30 2016-01-28 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
JP2016148975A (ja) * 2015-02-12 2016-08-18 セイコーエプソン株式会社 制御装置、制御システム、及び、制御装置の制御方法
JP2018151744A (ja) * 2017-03-10 2018-09-27 日本電気株式会社 情報処理装置

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930896B1 (en) * 2010-07-23 2015-01-06 Amazon Technologies, Inc. Data anonymity and separation for user computation
US10354101B1 (en) * 2012-05-10 2019-07-16 Majid Amani System for providing an alternative control interface to specialty devices
US10846244B1 (en) * 2012-05-10 2020-11-24 Majid Amani System for providing an alternative control interface to specialty devices
JP6253234B2 (ja) * 2013-01-21 2017-12-27 スター精密株式会社 データ送信システムおよびデータ送信用プログラム
JP6325796B2 (ja) * 2013-11-06 2018-05-16 キヤノン株式会社 情報処理端末およびその制御方法、並びにプログラム
JP6378645B2 (ja) * 2014-06-13 2018-08-22 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
JP6525517B2 (ja) * 2014-06-30 2019-06-05 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
JP6488569B2 (ja) * 2014-06-30 2019-03-27 ブラザー工業株式会社 サーバ、および、コンピュータプログラム
US9876819B2 (en) * 2014-08-14 2018-01-23 Banff Cyber Technologies Pte Ltd Method and system for restoring websites
US9542676B2 (en) * 2014-11-13 2017-01-10 Seiko Epson Corporation Host device, printing system, and data processing method
US20160182604A1 (en) * 2014-12-19 2016-06-23 Zih Corp. Method for enabling communication between a user device browser and a local device
JP2016177436A (ja) * 2015-03-19 2016-10-06 株式会社リコー 情報処理装置、プログラム、情報処理システムおよび印刷システム
JP6468102B2 (ja) * 2015-07-14 2019-02-13 株式会社リコー 情報処理装置、印刷システム、情報処理方法、印刷方法及びプログラム
CN105022596A (zh) * 2015-07-16 2015-11-04 安徽水利水电职业技术学院 一种离线一体式的智能照片打印装置及其照片打印方法
US10346100B2 (en) * 2016-01-29 2019-07-09 Hewlett-Packard Development Company, L.P. Error diffusion
CN105912284A (zh) * 2016-05-09 2016-08-31 上海携程商务有限公司 打印机的监控方法及系统
US20180032483A1 (en) * 2016-07-29 2018-02-01 Seiko Epson Corporation Information processing device, control method of an information processing device, and storage medium
CN106598510B (zh) * 2016-11-18 2019-09-20 福建星网视易信息系统有限公司 兼容两种打印方式的方法及装置
US10769560B1 (en) 2017-05-10 2020-09-08 Massachusetts Mutual Life Insurance Company Systems and methods for chatbot applications tracking user stress levels
JP6759152B2 (ja) * 2017-05-24 2020-09-23 キヤノン株式会社 画像処理装置、方法、プログラム及びシステム
CN109388354B (zh) * 2017-08-02 2021-11-12 精工爱普生株式会社 服务器系统、终端装置及它们的工作方法、存储介质
JP7039305B2 (ja) 2018-01-30 2022-03-22 キヤノン株式会社 システムおよびそれを用いる方法、情報処理装置およびそれを用いる方法、およびプログラム
JP2019164445A (ja) * 2018-03-19 2019-09-26 株式会社リコー 情報処理装置、情報処理方法、プログラム、及び画像形成システム
JP7234687B2 (ja) 2019-02-27 2023-03-08 ブラザー工業株式会社 モジュール及びプログラム
JP7263837B2 (ja) 2019-02-27 2023-04-25 ブラザー工業株式会社 プログラム、アプリケーション、情報処理装置
JP7234688B2 (ja) * 2019-02-27 2023-03-08 ブラザー工業株式会社 プログラム、アプリケーション、情報処理装置
JP7298241B2 (ja) * 2019-03-28 2023-06-27 ブラザー工業株式会社 サポートプログラム、情報処理装置、および印刷方法
CN110210455B (zh) * 2019-06-18 2022-03-01 石家庄捷弘科技有限公司 一种打印内容格式化提取方法
JP7446815B2 (ja) * 2019-12-27 2024-03-11 キヤノン株式会社 プログラム及び制御方法
US11327698B2 (en) * 2020-06-25 2022-05-10 Zebra Technologies Corporation Method, system and apparatus for cloud-based printing
JP7295829B2 (ja) 2020-06-27 2023-06-21 淳史 岩崎 無人航空機用回転球体フレームの振動防止かつ衝撃緩衝装置その2
US20220383284A1 (en) * 2021-05-28 2022-12-01 Walmart Apollo, Llc Systems and methods of implementing a distributed retail point-of-sale hardware management network
US20220383285A1 (en) * 2021-05-28 2022-12-01 Walmart Apollo, Llc Systems and methods of managing hardware systems in a retail point-of-sale management network
KR20230032442A (ko) * 2021-08-31 2023-03-07 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 범용 프린터 드라이버를 위한 자동 프린터 선택
US20230185954A1 (en) * 2021-12-15 2023-06-15 Bank Of America Corporation Transmission of Sensitive Data in a Communication Network
CN114780044A (zh) * 2022-04-26 2022-07-22 北京太格时代自动化系统设备有限公司 一种高速铁路牵引变电所工作票打印方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117365A (ja) * 1997-04-24 1999-01-12 Canon Inc 画像保持装置、画像制御装置、出力制御装置、情報処理装置、及びそれらからなるシステム及び方法及びコンピュータ読み取り可能なプログラムが格納された記憶媒体
US20090106456A1 (en) * 2007-10-19 2009-04-23 Urs Muller Method and apparatus for interactions of web applications with the local host environment
US20100299588A1 (en) * 2009-05-21 2010-11-25 Michael Joseph Dattilo Method and system for providing interaction between a host system and web pages
JP2012048582A (ja) * 2010-08-27 2012-03-08 Canon Inc 印刷ジョブ管理システムおよびその制御方法、情報処理装置、印刷サーバ
JP2012094088A (ja) * 2010-10-29 2012-05-17 Seiko Epson Corp 画像入力システム、コンテンツサーバー、仲介サーバー、および、画像入力方法

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654378B1 (en) * 1992-03-18 2003-11-25 Broadcom Corp. Transaction control system including portable data terminal and mobile customer service station
EP0979458A4 (en) * 1996-05-14 2000-05-03 Ricoh Corp Ltd JAVA PRINTER
US6222634B1 (en) * 1997-07-11 2001-04-24 International Business Machines Corporation Apparatus and method for printing related web pages
US6327045B1 (en) * 1997-09-18 2001-12-04 Microsoft Corporation Computer network
EP1037138A3 (en) * 1999-03-18 2001-09-26 Seiko Epson Corporation Printer, information processing apparatus, methods of controlling them, and storage medium carrying computer program
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
JP4543458B2 (ja) * 1999-10-29 2010-09-15 セイコーエプソン株式会社 出力システム、出力装置、ホスト装置、これらの制御方法、および、情報記録媒体
US7685514B1 (en) * 2000-05-25 2010-03-23 International Business Machines Corporation Method and system for incorporation of graphical print techniques in a web browser
US20020083438A1 (en) * 2000-10-26 2002-06-27 So Nicol Chung Pang System for securely delivering encrypted content on demand with access contrl
US7424509B2 (en) * 2001-06-04 2008-09-09 Hewlett-Packard Development Company, L.P. System and method for printing from a web application
US6829060B2 (en) * 2001-10-30 2004-12-07 Hewlett-Packard Development Company, L.P. Web-based imaging service providing manual duplexing
US7600685B2 (en) * 2001-12-17 2009-10-13 Zih Corp. XML printer system with RFID capability
US7307745B2 (en) * 2002-01-21 2007-12-11 Canon Kabushiki Kaisha Web-based print server and client
KR100589811B1 (ko) * 2002-03-08 2006-06-14 세이코 엡슨 가부시키가이샤 인쇄 시스템, 프린터, pos 시스템, 컬러화 설정 장치,프린터 드라이버, 인쇄 제어 방법, 컬러화 설정 방법 및프로그램을 기록한 기록 매체
US20030225894A1 (en) 2002-03-25 2003-12-04 Tatsuo Ito Image forming apparatus including web service functions
JP4130108B2 (ja) 2002-03-25 2008-08-06 株式会社リコー Webサービス機能を有する画像形成装置
US20040028045A1 (en) * 2002-08-09 2004-02-12 Jonathan Cheng Data transmission method for portable communication apparatus
US20040080546A1 (en) * 2002-10-25 2004-04-29 Fritz Terry M. Print menu macros for printing devices
JP2004151953A (ja) * 2002-10-30 2004-05-27 Oki Data Corp 動作状態通知方法および画像形成システム及びデータ処理装置
US20040130744A1 (en) * 2003-01-03 2004-07-08 Vincent Wu Online print with driverless web print server
US7580143B2 (en) * 2003-03-19 2009-08-25 Ricoh Company, Ltd. Image forming apparatus, image forming method, and information processing apparatus for conducting print instruction thereto
JP4281414B2 (ja) * 2003-05-22 2009-06-17 セイコーエプソン株式会社 バーコードまたは二次元コードの印刷システム、バーコードまたは二次元コードのフォント設定方法、およびバーコードまたは二次元コードのフォント設定プログラム
JP4827388B2 (ja) 2003-07-31 2011-11-30 キヤノン株式会社 通信システム、情報処理装置、印刷制御方法、及びプログラム
US20050138117A1 (en) * 2003-12-18 2005-06-23 Samsung Electronics Co., Ltd. Method and system for pushing notifications to networked device
US20060178943A1 (en) * 2005-01-07 2006-08-10 Rollinson Joseph R Food order fulfillment system deploying a universal in-store point-of-sale (POS) for preparation and pickup scheduling
US7884958B2 (en) * 2005-04-15 2011-02-08 Seiko Epson Corporation Printer system, printer, and image registration method
KR100535442B1 (ko) * 2005-04-18 2005-12-09 주식회사 빅솔론 프린팅 장치, 상기 프린팅 장치의 제어 방법 및 상기프린팅 장치를 이용한 데이터 처리 장치
US8209688B2 (en) * 2005-10-31 2012-06-26 Xerox Corporation Enterprise Java Bean (EJB) based enterprise printing architecture
US7571864B2 (en) * 2005-12-16 2009-08-11 Pisafe, Inc. Method and system for creating and using barcodes
JP4066383B2 (ja) * 2006-07-06 2008-03-26 シチズンホールディングス株式会社 通信装置および通信制御方法、並びに当該通信装置を備えたプリンタ
US8775930B2 (en) * 2006-07-07 2014-07-08 International Business Machines Corporation Generic frequency weighted visualization component
US8040356B2 (en) * 2007-03-30 2011-10-18 Microsoft Corporation Color management user interface
US8270013B2 (en) * 2007-09-27 2012-09-18 Ricoh Company, Limited Printing system, printing method, and computer program product
JP5228547B2 (ja) * 2008-03-13 2013-07-03 セイコーエプソン株式会社 プリンタの制御方法およびプリンタシステムの制御方法、並びにプリンタ
US20100225955A1 (en) * 2009-03-03 2010-09-09 Almen Kevin D Print Button Widget
US20100309508A1 (en) * 2009-06-03 2010-12-09 Kamath Harish B Network print-related service
SG176714A1 (en) * 2009-06-08 2012-01-30 Sato Kk System and method for injecting run-time programming code in a printing device
US8289551B2 (en) * 2009-08-03 2012-10-16 Ricoh Company, Ltd. Approach for processing print data without a client print driver
JP5783672B2 (ja) * 2009-08-04 2015-09-24 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US8547575B2 (en) * 2010-03-09 2013-10-01 Ricoh Company, Ltd Printer discovery within a web page
US8477350B2 (en) * 2010-03-16 2013-07-02 Google Inc. Cloud-based print service
US8953181B2 (en) * 2010-04-20 2015-02-10 Ricoh Company, Ltd. Virtual print job preview and validation
JP5761923B2 (ja) * 2010-04-28 2015-08-12 キヤノン株式会社 印刷システム、情報処理装置及びその方法
JP2012048457A (ja) * 2010-08-26 2012-03-08 Canon Inc 印刷サーバ装置、印刷装置、情報処理方法及びプログラム
JP5713641B2 (ja) * 2010-11-16 2015-05-07 キヤノン株式会社 印刷中継システム、および印刷中継システムの制御方法、およびプログラム
US8817281B2 (en) * 2011-01-31 2014-08-26 Canon Kabushiki Kaisha Print setting server, document processing server, print system, and print setting method
CN105045545B (zh) 2011-02-10 2018-08-24 精工爱普生株式会社 网络系统、客户终端及设备服务器的控制方法
JP5709632B2 (ja) * 2011-04-27 2015-04-30 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
US8570572B2 (en) * 2011-05-26 2013-10-29 Xerox Corporation Method and apparatus for printing web-based content via cloud print service
JP5800579B2 (ja) * 2011-05-31 2015-10-28 キヤノン株式会社 情報処理装置、印刷制御方法及びコンピュータプログラム
JP5743723B2 (ja) * 2011-06-03 2015-07-01 キヤノン株式会社 印刷システム、サービス処理方法、及びプログラム
JP5885410B2 (ja) * 2011-06-29 2016-03-15 キヤノン株式会社 プルプリントシステム、プリントサーバおよびその制御方法、並びにプログラム
JP5843605B2 (ja) * 2011-06-29 2016-01-13 キヤノン株式会社 印刷制御装置、印刷制御方法、情報処理システム、情報処理装置、情報処理方法およびコンピュータプログラム
JP5751961B2 (ja) * 2011-07-11 2015-07-22 キヤノン株式会社 画像表示装置によって投射された画像を印刷する印刷システムおよびプログラム
JP5149430B2 (ja) * 2011-07-28 2013-02-20 株式会社 ディー・エヌ・エー 画像処理方法、ファイル変換方法、及び、ファイル変換プログラム
US8806574B2 (en) * 2011-10-05 2014-08-12 Hewlett-Packard Development Company, L.P. System and method for policy conformance in a web application
US9041955B2 (en) * 2011-10-27 2015-05-26 Hewlett-Packard Development Company, L.P. Printing system and methods using a printer server homepage from a print server
US20130298005A1 (en) 2012-05-04 2013-11-07 Motorola Mobility, Inc. Drawing HTML Elements

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117365A (ja) * 1997-04-24 1999-01-12 Canon Inc 画像保持装置、画像制御装置、出力制御装置、情報処理装置、及びそれらからなるシステム及び方法及びコンピュータ読み取り可能なプログラムが格納された記憶媒体
US20090106456A1 (en) * 2007-10-19 2009-04-23 Urs Muller Method and apparatus for interactions of web applications with the local host environment
US20100299588A1 (en) * 2009-05-21 2010-11-25 Michael Joseph Dattilo Method and system for providing interaction between a host system and web pages
JP2012048582A (ja) * 2010-08-27 2012-03-08 Canon Inc 印刷ジョブ管理システムおよびその制御方法、情報処理装置、印刷サーバ
JP2012094088A (ja) * 2010-10-29 2012-05-17 Seiko Epson Corp 画像入力システム、コンテンツサーバー、仲介サーバー、および、画像入力方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016014921A (ja) * 2014-06-30 2016-01-28 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
JP2016148975A (ja) * 2015-02-12 2016-08-18 セイコーエプソン株式会社 制御装置、制御システム、及び、制御装置の制御方法
JP2018151744A (ja) * 2017-03-10 2018-09-27 日本電気株式会社 情報処理装置

Also Published As

Publication number Publication date
US20150234628A1 (en) 2015-08-20
KR20150043466A (ko) 2015-04-22
JP6384571B2 (ja) 2018-09-05
CN104508622A (zh) 2015-04-08
US10032096B2 (en) 2018-07-24
KR101600248B1 (ko) 2016-03-04
US20150271346A1 (en) 2015-09-24
US9483224B2 (en) 2016-11-01
IN2014DN03284A (ja) 2015-07-10
JP6156394B2 (ja) 2017-07-12
WO2014027678A1 (en) 2014-02-20
CN104508622B (zh) 2017-05-17
US20140049790A1 (en) 2014-02-20
JP2017168140A (ja) 2017-09-21
EP2740024A1 (en) 2014-06-11
US9052863B2 (en) 2015-06-09
US9098226B2 (en) 2015-08-04
US9277064B2 (en) 2016-03-01
US20170017865A1 (en) 2017-01-19
US20140049791A1 (en) 2014-02-20
US10089560B2 (en) 2018-10-02
US20160142568A1 (en) 2016-05-19

Similar Documents

Publication Publication Date Title
JP6384571B2 (ja) 端末の制御方法
CN104583984B (zh) 设备控制系统以及设备控制系统的控制方法
CA3060951A1 (en) Printing data processing method and apparatus, electronic invoice generating method and server
CN106055290B (zh) 图像处理设备和图像处理方法
US8856637B2 (en) Applying borders to each page in N-up printing
US9606752B2 (en) Associating print settings to individual print objects in a print preview
JP6234417B2 (ja) 情報処理装置及びその制御方法とプログラム
KR100675859B1 (ko) 워터마크 인쇄방법 및 이를 이용한 호스트 장치
US20150116763A1 (en) Method of executing web application in image forming apparatus and image forming apparatus to perform the method
JP2009065655A (ja) 携帯形データ記憶媒体の存在を表示するシステムおよび方法
JP6984703B2 (ja) 文書操作機構
JP2008283684A (ja) 画像処理方法およびプログラムおよび画像処理装置および制御装置
JP2003084951A (ja) 文書処理装置および画像出力装置ならびにそれらの方法
JP2006252024A (ja) 印刷設定制御プログラム
JP2009065661A (ja) 画像処理システム、方法およびプログラム
JP2019503529A (ja) モバイル装置を用いたバーコード情報の通信システムおよび方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160330

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160330

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20160622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170419

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: 20170509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170522

R150 Certificate of patent or registration of utility model

Ref document number: 6156394

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150