JP2005050045A - 帳票データ作成装置及び方法 - Google Patents
帳票データ作成装置及び方法 Download PDFInfo
- Publication number
- JP2005050045A JP2005050045A JP2003204816A JP2003204816A JP2005050045A JP 2005050045 A JP2005050045 A JP 2005050045A JP 2003204816 A JP2003204816 A JP 2003204816A JP 2003204816 A JP2003204816 A JP 2003204816A JP 2005050045 A JP2005050045 A JP 2005050045A
- Authority
- JP
- Japan
- Prior art keywords
- data
- creation
- display
- printing
- 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.)
- Withdrawn
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
【課題】帳票の印刷機能を持たないクライアントにその帳票を送信して印刷させる。
【解決手段】クライアント1500は、サーバ1000に対して帳票の定型データの在処と可変データとを送信して、帳票の作成を要求する。サーバはその定型データと可変データとを合成してHTMLデータに変換し、また、HTMLにより転送先のメールアドレスを指定し、転送するデータとして定型データのファイル名とを記述してクライアント1500に送信する。クライアント1500は、HTMLでの記述にしたがって、定型データと可変データとを指定されたメールアドレスに対して電子メールで送信する。その宛先のプリンタ2000は、帳票印刷アプリケーションを起動して定型データと可変データとを合成して印刷を実行する。
【選択図】図8
【解決手段】クライアント1500は、サーバ1000に対して帳票の定型データの在処と可変データとを送信して、帳票の作成を要求する。サーバはその定型データと可変データとを合成してHTMLデータに変換し、また、HTMLにより転送先のメールアドレスを指定し、転送するデータとして定型データのファイル名とを記述してクライアント1500に送信する。クライアント1500は、HTMLでの記述にしたがって、定型データと可変データとを指定されたメールアドレスに対して電子メールで送信する。その宛先のプリンタ2000は、帳票印刷アプリケーションを起動して定型データと可変データとを合成して印刷を実行する。
【選択図】図8
Description
【0001】
【発明の属する技術分野】
本発明は、クライアント端末から例えばHTML(Hyper Text Markup Language)形式などにより受信した要求に基づいて、固定のフォームデータと可変の差し込みデータとをフォームオーバレイし、一つの帳票データを生成して当該クライアントに送信するウエブサーバ等の帳票作成装置及び方法に関する。
【0002】
【従来の技術】
従来、帳票作成サーバがウエブブラウザ(クライアント端末)からのHTML形式で既述されたユーザ要求データを受信し、ユーザにより指定される定型(固定形式)のデータファイル(これを帳票ファイルと呼ぶ)に、ユーザ指定の可変データ(レコード毎に内容が異なる非定型データ)を挿入してフォームオーバレイし、帳票データを生成した後、作成した帳票データをPDF(Portable Document Format)などのフォーマットに変換してウエブクライアントに配信するサービスがあった(特許文献1等参照)。
【0003】
【特許文献1】
特開2002−163596号公報
【0004】
【発明が解決しようとする課題】
ところが、従来、帳票作成サーバが帳票データを送信するあて先であるウエブクライアントにおいて、HTMLで記述された文書を解釈して表示する一般的なウエブブラウザが稼働している場合、帳票データをPDF形式などの一定の形式のデータに変換してそのウエブクライアントに配信しても、その形式に対応したアプリケーションプログラムがそのクライアントにインストールされていない場合には、受信した帳票データを出力することはできなかった。例えば、受信したデータがPDFデータであれば、それを表示あるいは印刷により出力するためのアプリケーションとして、アドビ社のAcrobat Reader(登録商標)などがクライアントに存在しなければ、該クライアントでは受信した帳票データを解釈、表示、印刷することができなかった。
【0005】
このように、サーバが作成した帳票データを表示および印刷するためのアプリケーションがクライアントに備わっていない場合には、作成された帳票をクライアントが表示及び印刷できないという事態が生じるという問題があった。
【0006】
本発明は、上記の問題点を解決するためになされたものであり、クライアント装置にたとえばHTMLが解釈可能なウエブブラウザ等のアプリケーションが存在していれば、それを用いて帳票の作成及び印刷機能を有する他の機器によって帳票を作成して印刷させることが可能な帳票データの作成および送信が可能な帳票作成装置及び方法を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記目的を達成する本発明は以下に示す構成を備える。
【0008】
クライアント機器に接続された帳票データ作成装置であって、
クライアント機器から、帳票作成要求と共に定型データの指定と可変データとを受信する受信手段と、
前記定型データの指定に基づいて獲得した定型データと前記可変データとを合成して表示用データを作成する表示用データ作成手段と、
前記定型データの指定と前記可変データと印刷可能な機器の指定とを含む印刷用データを作成する印刷用データ作成手段と、
前記表示用データと前記印刷用データとを併せて前記クライアント機器に送信する送信手段とを備える。
【0009】
この構成により、本発明にかかる帳票作成装置は、表示用データと印刷用データとを別々に作成し、表示用データに印刷可能な機器の指定を含む印刷用データを付加してクライアントに送信することで、表示をクライアント自身で、印刷を印刷可能な機器で行わせることが可能となる。
【0010】
更に好ましくは、前記表示用データ作成手段および前記印刷用データ作成手段は、前記表示用データおよび前記印刷用データをHTML形式で作成し、前記表示用データ作成手段は、前記定型データからHTML形式で表現できないデータを削除して表示用データを作成し、前記印刷用データ作成手段は、前記定型データの指定と前記可変データとについて非表示の属性を付与して印刷用データを作成する。
【0011】
この構成により、クライアントでは印刷用データは表示されることはなく、また、表示用データからは表現不可能なデータは削除されるから、表示データは必ずクライアントが表示可能である。
【0012】
更に好ましくは、前記印刷用データ作成手段は、前記印刷可能な機器の指定として、前記定型データと前記可変データとを合成するための帳票作成手段と、作成された帳票データを印刷するための印刷手段とを有する機器で利用可能な電子メールアドレスを前記印刷用データに含ませる。
【0013】
【発明の実施の形態】
[第1の実施の形態]
図7は本発明にかかる帳票印刷システムの構成を示す図である。サーバ1000及びクライアント1500は共にコンピュータである。サーバ1000は、サーバとしてクライアントにサービスを提供するためのプログラムが稼働している点でクライアントとは異なる。図7において、サーバ1000においては帳票作成アプリケーションプログラム1001やHTTP(HyperText Transfer Protocol)サーバプログラム1002等が実行されており、後述のプログラムも実行されている。ここでHTTPサーバプログラム1002には、帳票データ等から帳票データを作成するプログラムなどのいわゆるスクリプトも含まれるものとする。また、サーバ1000は、後述する印刷機能を有する機器の電子メールアドレスやURL等を含む機器のリスト1003を有している。
【0014】
クライアント1500ではウエブブラウザプログラム1501と電子メールプログラム1502が実行される。
【0015】
またプリンタ2000では、単に受信したページ記述言語等の解釈実行のみならず、電子メールを受信するための電子メールプログラム2001と、ウエブブラウザ2002と、帳票を合成して印刷するための帳票印刷アプリケーションプログラム2003が実行されている。
【0016】
なお、本実施形態では、HTTPを用いたネットワークを利用しており、その前提としてTCP/IPを利用している。そして、名前解決に不可欠なネームサーバやパケットの経路制御を行うルータ、POP等を用いた場合の電子メールの配信を実現するメールサーバ等が本実施形態のシステムには必要であるが、それらTCP/IPを実現するネットワーク資源については当然備えられているものとして、その説明を省略する。
【0017】
図1は本発明の第一の実施形態を示すサーバコンピュータ1000およびクライアントコンピュータ1500の構成を説明するブロック図である。
【0018】
コンピュータ1000,1500は、ROM103あるいはRAM102に記憶されたプログラム等に基づいて処理を実行するCPU101を備え、CPU101はシステムバス104に接続される各デバイスを総括的に制御する。RAM102はCPU101の主メモリ,ワークエリア等として機能する。ROM103はCPU101の制御プログラムや各種データを記憶する。キーボードコントローラ(KBC)105は、キーボード109や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)106は、CRTディスプレイ(CRT)110の表示を制御する。スピーカーコントローラ(SPC)113は、スピーカー114の音声再生を制御する。ディスクコントローラ(DKC)107は、ハードディスク(HD)111やフロッピ(登録商標)ディスク(FD)112等の外部メモリとのアクセスを制御する。
【0019】
ハードディスク111には、ブートプログラムや、サーバであれば図4のフローチャートで示されるような種々のプログラム、HTTPサーバサービスなどのアプリケーションのプログラムファイル,ユーザファイル,図7の機器リスト、編集ファイル等を記憶し、クライアントであれば図3及び図5に示されるプログラムファイルや電子メールプログラムファイル、ウエブクライアントのプログラムファイルなどを記憶している
ネットワークコントローラ(NC)108は、所定のネットワークインタフェース121を介してネットワークに接続され、クライアントコンピュータやサーバコンピュータやプリンタなど他のネットワーク機器との通信制御処理を実行する。
【0020】
図2は本発明の実施形態を示すプリンタ2000の構成を説明するブロック図である。プリンタ2000において、プリンタCPU201は、ROM203のプログラム用ROMに記憶された制御プログラム或いは外部メモリ206に記憶された制御プログラムに基づいてシステムバス204に接続される各種のデバイスとのアクセスを総括的に制御し、印刷部インタフェース207を介して接続される印刷部(プリンタエンジン)208に出力情報としての画像信号を出力する。また、このROM203のプログラムROMには、CPU201の図6のフローチャートで示されるような制御プログラムや各種組み込みアプリケーション(電子メール、ウエブブラウザ、帳票印刷アプリケーション)等のプログラムを記憶する。ROM203のフォント用ROMには、上記出力情報を生成する際に使用するフォントデータ等を記憶する。
【0021】
ネットワークコントローラ(NC)210は、所定のネットワークインタフェース221を介してネットワークに接続され、クライアントコンピュータやサーバコンピュータなど他のネットワーク機器との通信制御処理を実行する。RAM202は、CPU201の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM202は、出力情報展開領域や、環境データ格納領域、NVRAM(不揮発性RAM)等のほか、プリンタ実行される電子メールプログラムやウエブクライアントプログラム、帳票作成アプリケーションプログラムの実行のために用いられる。ディスクコントローラ(DKC)205は、外部メモリ206およびハードディスク(HD)211へのアクセスを制御する。ICカード等の外部メモリ206は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。ハードディスク(HD)211は、印刷データやプログラムファイル等を記憶する。また、操作パネル209には操作のためのスイッチおよびLED表示器等が配されている。
【0022】
なお、サーバ、クライアント、プリンタすべてにおいて、TCP/IPのプロトコルスタックを備えたオペレーティングシステムが稼働していることを前提としている。
【0023】
このように構成された各システムにおける実施形態を、図3〜図6のフローチャートに従って説明する。
【0024】
<本実施形態のシステムの動作>
図8は、クライアントコンピュータ1500,サーバコンピュータ1000、プリンタ2000それぞれによる帳票作成要求からその印刷に至る協調動作の概要を示すシーケンス図である。図中かっこ書きは図3乃至図6のフローチャートにおける対応するステップの番号を示す。
【0025】
クライアント1500から、サーバ1000の帳票作成要求の受け入れ窓口となるアドレス(URL)にアクセスすると、すなわちHTTPサーバに対してURLとともにHTTPリクエストを送信すると、要求されたページのデータとともHTTPレスポンスがクライアント1500に返される。クライアント1500で帳票の識別子や可変データ、レスポンスデータの種類の指定等を入力して送信を指示すると、再びサーバ1000にHTTPリクエストが送信される。このHTTPリクエストには、帳票データの指定と可変データ、レスポンスデータの指定が含まれる。それを受信したサーバ1000は、受信したデータに基づいて、HTMLで作成した表示用の帳票データと、帳票を印刷可能な機器に送信して印刷させるための印刷用データとその宛先とを含むHTTPレスポンスを作成してクライアント1500に送信する。それを受信したクライアント1500は、表示用の帳票データをウエブブラウザ1501により表示する。その画面上で帳票の印刷指示がされたなら、HTTPレスポンスに添付されていた印刷用データを、同じく添付されていた宛先に電子メールとして送信する。図8の例では宛先はプリンタ2000である。プリンタ2000は電子メールを受信して、それに含まれる印刷用データから帳票を作成し、印刷する。
【0026】
このようにして、クライアントにサーバから受信したデータを印刷する機能が備えられていなくとも、印刷する機能を有する機器へと転送して印刷を行うことができる。そして、後述のように、本実施形態では転送のためにHTMLに規定されたフォーム(FORM)エレメントのアクション(ACTION)属性を利用している。このため、クライアントがウエブブラウザを有してさえいれば、クライアントにこの転送を行わせることが可能となる。
【0027】
図3はクライアントコンピュータ1500のウエブブラウザ1501によるサーバ1000へのHTTPリクエスト送信時のフローチャートである。
【0028】
クライアントコンピュータ1500でウエブブラウザ1501が実行されている際に、ブラウザ画面でユーザにより、帳票作成要求のための所定のURL(Uniform Resource Locators)が指定されると、そのURLで特定されるサーバコンピュータ1000のデータにアクセスする(ステップS3−1)。
【0029】
サーバ1000は特定されたデータをクライアント1500に対してHTTPレスポンスとして返し、クライアント1500はそのHTTPレスポンスを受信する(ステップS3−2)。そのデータは、帳票指定値と該帳票に挿入する可変データを指定するHTMLフォーム文書である。
【0030】
ここでHTMLフォーム文書とは、HTMLのフォームエレメントが記述されたHTML文書のことである。フォームエレメントは、基本的には、フォームタグ<FORM>と</FORM>とで挟まれた中にインプットエレメント<INPUT>を必要なだけ並べて記述したもので、ウエブブラウザがそれを解釈実行することで、インプットエレメントの数だけユーザに入力を行わせることができる。インプットエレメントではタイプ属性を指定でき、タイプ属性として「テキスト」を指定しておけば、テキストで帳票指定値や可変データ、レスポンスデータ指定をユーザが入力できる。なお、帳票指定値とは、フォームオーバレイ処理に用いられる書式を表す定型データを一意的に指定するための値であり、たとえば定型データのファイル(これを帳票ファイルと呼ぶ。)名やURLなどである。
【0031】
また、レスポンスデータ指定は限られた候補の中から選択させるために、タイプ属性として「ラジオ」などを使用する。レスポンスデータ指定は、表示用の帳票データの形式を指定するためのパラメータで、たとえば、これが「text/html」であれば、サーバ1000はHTMLで記述された帳票データを作成してクライアントに送信することを示す。この型はそのままMIME(Multipurpose Internet Mail Extensions)のコンテントタイプ(ファイル属性)を示す。
【0032】
さらに、インプットエレメントを設けてそのタイプ属性として「サブミット」を指定しておけば、そのインプットエレメントに対応してブラウザ画面に表示される送信ボタンをユーザが押すことで、フォームエレメントのアクション属性で指定されたURLへと入力されたデータが送信される。
【0033】
ウエブブラウザ1501は、ブラウザ画面に表示した、上記のように記述されたHTMLフォーム文書において、ユーザが入力した帳票指定値と可変データおよびレスポンスデータ指定を、そのHTMLフォーム文書に含まれる送信ボタンが押下されることにより(ステップS3−3−YES)、HTTPリクエストとして、前記サーバにフォームデータ(すなわちHTMLフォーム文書に対して入力されたデータ)を送信して処理を終了する(ステップS3−4)。
【0034】
このようにして、クライアントコンピュータ1500は、サーバに必要なデータを送信して帳票の作成を要求する。
【0035】
図4はサーバコンピュータ1000での本発明の第一の実施形態を示す帳票作成要求(データ配信リクエスト)受信時のフローチャートである。
【0036】
サーバコンピュータ1000のCPU101は、クライアントコンピュータ1500のウエブブラウザ1501からHTTPリクエストを受け取ると(ステップS4−1)、そのHTTPリクエストに含まれる帳票指定値と可変データ、そしてレスポンスデータ指定の値を取り出す(ステップS4−2)。
【0037】
ステップS4−2でHTTPリクエストから取り出された帳票指定値に該当する帳票ファイルのデータをハードディスク(HD)211からRAM202に読み出す(ステップS4−3)。
【0038】
ステップS4−2でHTTPリクエストから取り出されたレスポンスデータ指定が”text/html”の場合(ステップS4−4)、レスポンス指定で指定されたHTMLでは表現できないデータが読み出された帳票ファイルのデータに含まれる場合(ステップS4−5)、帳票ファイルのデータからHTMLでは表現できないデータを削除する(ステップS4−6)。
【0039】
ステップS4−6で指定データ型(すなわちHTML)では表現不可能なデータを削除後の帳票ファイルの定型データに、前記ステップS4−2でHTTPリクエストから取り出された可変データを差し込み、合成することで擬似的なフォームオーバレイを行う(ステップS4−7)。
【0040】
そして合成された帳票データのフォーマットを、前記指定のHTMLフォーマットにデータ変換する(ステップS4−8)。
【0041】
ステップS4−7において帳票ファイルに可変データを合成する位置は、帳票ファイルにおいて指定しておくことができる。たとえば、可変データを挿入する欄が複数あれば、可変データを一定のセパレータで区切って入力させておけば、セパレータにより区切られるデータごとに、指定された位置に順番に合成することで、可変データの挿入ができる。この場合帳票毎の区切りは更に別の区切り文字を用意する。
【0042】
たとえば、帳票ファイルのデータは、それを構成するオブジェクト毎に、属性や位置が指定されたデータ列により構成される。文字オブジェクトであれば、文字コードと書体、サイズ、位置、色等の属性が指定される。また、罫線であれば、太さ、始点位置、終点位置、色、線の種類(実線や破線等)などの属性が帳票ファイルのデータ中で指定されている。したがって、可変データを合成するには、その位置等の属性を特定して追加すればよい。可変データがたとえば文字であれば、その文字コードと書体、サイズ、合成される位置、色を帳票ファイルに追加する。そして、それらオブジェクトを特定する属性のうち、HTMLの表記法には含まれていないものがあれば、それを削除して変換対象とはしない。HTMLに変換できない属性については、たとえば変換対象となる形式毎に予め特定しておき、それをテーブルなどとしてサーバ1000に登録しておく。そして、変換前の帳票ファイルのデータ中に当該テーブルに登録された属性が表れたなら、ステップS4−6において削除対象とする。なおステップS4−6を独立した工程として行わずに、ステップS4−8の中で、HTML変換時に同時に行うこともできる。
【0043】
ステップS4−9では、生成されたHTMLフォーマットの文書データに、クライアント1500からプリンタ2000にデータを送信するための以下のようなHTMLフォームエレメントをセクションとして追加する。
【0044】
<FORM ACTION=”mailto:MailAddress” ENCTYPE=”multipart/form−data” METHOD=”POST”>
<!−− 画面には表示されない非表示フィールド −>
<INPUT TYPE”hidden” NAME=”定型データ” VALUE=Value1>
<INPUT TYPE”hidden” NAME=”可変データ” VALUE=Value2>
<!−− プリンタへの転送ボタン −>
<INPUT TYPE=”submit” VALUE=”送信”>プリンタへ送信
</FORM>。
【0045】
上記MailAddressには、プリンタ2000の組み込み電子メールアプリケーションの受信用メールアドレスを、上記Value1には、帳票ファイルのファイル名または前記ハードディスク211に格納されるデータのURLを、上記Value2には、前記可変データをそれぞれデータとして入れる(ステップS4−9)。それ以外の部分は、上記の通りであればよい。
【0046】
このフォームエレメントをウエブブラウザが解釈実行すると、ブラウザ画面には、このフォームエレメントを添付したHTML文書(可変データが合成された帳票の表示用データ)が表示され、それとともに、上記フォームエレメントに含まれるインプットエレメントにより「プリンタへ送信」と表示された送信ボタンも表示される。定型データと可変データについてはタイプ属性としてhiddenが指定されているために表示されない。ユーザが画面上で送信ボタンを押すと、インプットエレメントに記述されたValue1及びValue2が、それぞれ定型データ、可変データとして、MailAddressにあてて、電子メールとして送信される。
【0047】
そしてサーバ1000はこのHTML文書データを、ウエブクライアント1501にHTTPレスポンスとして送信し(ステップS4−10)、再び、前記ステップS4−1のHTTPリクエスト待ちに戻る。なお、この待ちは記載の便宜上ループとしているが、他のプロセスを実行することもできる。
【0048】
サーバ1000は、上記フォームエレメントに挿入するMailAddressを、本実施形態ではプリンタ2000に決めておき、そのメールアドレスを書き込んでいる。ネットワークが小規模であればこれでも十分であるが、多くのセグメントが相互に接続されて構成される大規模なネットワークの場合には、帳票を印刷する機能を有する機器も複数存在し得るのでこれでは不十分である。そこで、たとえば、クライアントのIPアドレスとMailAddressとの対応表を予め策してそれを表に保持し、クライアントのIPアドレスに応じてMailAddressの値を表から得てそれを書き込んでも良い。
【0049】
図5はクライアントコンピュータ1500のウエブブラウザ1501によるサーバ1000からのレスポンス受信時のフローチャートである。
【0050】
クライアントコンピュータ1500のウエブブラウザ1501は、ステップS3−4のHTTPリクエストに対するサーバコンピュータ1000からのHTTPレスポンス(ステップS4−10で送信)を受け取った際に(ステップS5−1)、そのHTTPレスポンスのHTMLデータであるHTMLフォーマット文書の帳票ページをブラウザ画面に表示する(ステップS5−2)。すなわち、ステップS4−9で作成されたHTML文書がウエブブラウザ1501により表示される。ステップS4−9で作成されたフォームエレメントをウエブブラウザが解釈実行すると、上述の通りブラウザ画面には、このフォームエレメントを添付したHTML文書(可変データが合成された帳票の表示用データ)と送信ボタンとが表示される。
【0051】
サーバコンピュータ1000のステップS4−9でHTMLデータに追加されたプリンタ2000へのメール送信用のHTMLフォームの「プリンタへ送信」ボタンが、ユーザによって押下された際に(ステップS5−3)、HTMLフォームデータ(Value1,Value2)を電子メールとして指定されたプリンタ2000のメールアドレスに送信する(ステップS5−4)。
【0052】
図6はプリンタ2000でのメール受信時のフローチャートである。
【0053】
プリンタ2000のCPU201は、たとえば配信される電子メールを定期的にチェックしており、クライアントコンピュータ1500からメール送信されたデータを受けとると(ステップS6−1)、ROM203のプログラムROMからプリンタ組み込み電子メールアプリケーション2001を起動し(ステップS6−2)、プリンタ組み込み電子メールアプリケーション2001に受信した電子メールのデータを渡す(ステップS6−3)。また、プリンタ2000がSMPTなどによりクライアント1500から直接メールを受信するようにすれば、リアルタイムで帳票を印刷させることができる。
【0054】
プリンタ組み込み電子メールアプリケーション2001は、電子メールに含まれるデータの「定型データ」フィールドから帳票ファイルのファイル名またはURLを取得し(ステップS6−4)、更に「可変データ」フィールドから帳票に差し込む可変データを取得する(ステップS6−5)。
【0055】
ステップS6−4で取得したデータが帳票ファイルのファイル名である場合(ステップS6−6−YES)、プリンタ2000のCPU201は、プリンタのハードディスク211から、該当するファイルを捜し(ステップS6−7)、該当ファイルが見つかった場合には、そのファイルのデータを読み出し、RAM202に格納する(ステップS6−8)。
【0056】
一方ファイル名でなくURLであれば、たとえばウエブブラウザプログラムを備えていればそれを起動してURLで特定されるデータを獲得する。また、獲得する手段がなければ、たとえばクライアントに対して処理不能の旨を通知するメール送信などを行う。
【0057】
プリンタ2000のCPU201は、ROM203のプログラムROMからプリンタ組み込み帳票印刷アプリケーション2003を起動し(ステップS6−9)、プリンタ組み込み帳票印刷アプリケーション2003に、ステップS6−8によってRAM202に格納された帳票データと、ステップS6−5で取得された可変データを渡す(ステップS6−10)。
【0058】
プリンタ組み込み帳票印刷アプリケーション2003は、帳票データと可変データとをプリンタオーバレイを利用して、フォームオーバレイ印刷を行う(ステップS6−11)。プリンタオーバレイでは、前述したとおり、サーバ1000が表示用の帳票データを作成する場合と同じ要領でオーバレイ処理を行われればよい。もちろん、HTMLへの変換は不要であるから、単に合成するだけでよい。
【0059】
以上の手順により、クライアントが帳票を印刷する機能を有していなくとも、その機能を備えた機器に対してデータを転送させ、転送先の機器で印刷を行わせることができる。クライアントはどの機器が印刷機能を有しているか知らなくとも印刷を行える。また、帳票を印刷する機能は、帳票生成システム内の少なくとも1つの装置が備えていれば、その装置において全ての帳票を印刷させることができる。また、帳票の印刷機能を有する装置の帳票データの転送は、HTMLで規定された機能を利用して行うために、クライアントには特別のアプリケーションプログラムは不要であり、一般的に入手可能なウエブブラウザさえ備えていればよい。
【0060】
[第1の実施形態の変形例1]
なお、第1実施形態では、帳票の印刷機能をプリンタに持たせているが、たとえば帳票印刷用の電子メールアプリケーション2001、帳票印刷アプリケーション2003などを備え、プリンタが接続されたコンピュータを印刷サーバとして利用することもできる。この場合には、プリンタ2000に代えてその印刷サーバのメールアドレスをサーバ1000がステップS4−9において指定することで、上記実施形態と同様の処理を行うことが可能となる。このようにすれば、プリンタにアプリケーションプログラムを実行させる必要が無く、安価なプリンタとコンピュータとでシステムを構成できる。
【0061】
[第1の実施形態の変形例2]
本実施形態では、メールにより転送する先で遂行させる機能は帳票の合成と印刷であったが、クライアントが持たない機能についてはひろく適用することができる。その場合、サーバはクライアントが持たない機能を有する機器の所在を予め知っておき、そこを転送先として指摘する。
【0062】
[第1実施形態に係る発明の効果]
以上述べたように本実施形態によれば、HTMLのような印刷には不適なウエブページしか解釈できないウエブクライアントにおいても、印刷指示時には、データを忠実に反映した出力結果を出力装置から得ることができるという効果がある。
【0063】
[第2の実施の形態]
第2実施形態は、ローカルネットワークやインターネットに接続されたクラインアントコンピュータと、クラインアントコンピュータからのデータ配信要求に従い所定のデータをクラインアントに配信するサーバコンピュータと、クラインアントコンピュータからの印刷要求に従い、受信したデータを組み込みアプリケーションで前処理し、ラスタライズして印刷するプリンタなどの出力装置とで構成される印刷システムに関する。
【0064】
従来、ローカルネットワークやインターネットに接続されたデータ印刷プログラムを有するクラインアントコンピュータは、同ネットワークに接続されたサーバコンピュータにネットワークを介してデータ配信を要求し、該要求を受信したサーバコンピュータは所定のデータを該クラインアントコンピュータに配信していた。クラインアントコンピュータは、サーバコンピュータから配信されたデータをプリンタ記述言語(PDL)などプリンタコントローラが解釈・実行できるデータ形式に変換することなくプリンタに送信する際に、プリンタで該データを前処理するプリンタ組み込みアプリケーションの前処理指定をその印刷データと共に送信していた。プリンタは、クラインアントコンピュータから印刷データと共にプリンタ組み込みアプリケーション前処理指定を受け取った際には、該指定された組み込みアプリケーションを呼び出して印刷データを処理した後、処理後の印刷データを印刷ジョブとして印刷処理していた。
【0065】
ところが従来、クラインアントコンピュータからプリンタにプリンタ組み込みアプリケーション前処理指定と共に印刷データが送信されてきた際、プリンタに指定の組み込みアプリケーションがインストールされてない場合には、そのデータを処理することができずにエラーとなるか、もしくはプリンタがローカルネットワークまたはインターネットを介して所定のアプリケーションを検索し、ダウンロードして実行するかのいずれかの方法をとる必要があった。後者の場合は、ダウンロードしたアプリケーションのバージョンが、送信されてきた印刷データの処理に必要なバージョンと必ずしも一致しないという問題もあった。
【0066】
本実施形態は、上記の問題点を解決するためのもので、プリンタが組み込みアプリケーションによる前処理指定された印刷データをクラインアントコンピュータから受け取った際に、印刷データの前処理を行う適切なプリンタ組み込みアプリケーションをプリンタ内で見つけることができないという問題を防ぐ方法を提供するものである。
【0067】
本実施形態おいて、サーバコンピュータ、クライアントコンピュータはともに図1に示す構成を有する。またプリンタは図2に示す構成を有する。
【0068】
これら装置から構成されたシステムにおける実施形態を、図9に示した本発明のアプリケーションコンテナの概念図と、図10〜図14のフローチャートに従って説明する。
【0069】
本実施形態において、本発明の印刷システムは、サーバコンピュータ1000、クライアントコンピュータ1500、プリンタ2000から構成される。
【0070】
図10はクライアントコンピュータ1500での本実施形態を示す印刷指示時のフローチャートである。
【0071】
本印刷システムの構成要素であるクライアントコンピュータ1500において、クライアントコンピュータのCPU101は、ユーザの指示により、サーバコンピュータ1000に存在するデータの印刷プロセスを開始する(ステップS15−1)。
【0072】
ステップS15−1でユーザがデータ印刷を行うのに指定したプリンタ2000に印刷予約要求を送信する(ステップS15−2)。要求送信後、プリンタ2000からのレスポンスを待つ状態に遷移する(ステップS15−3)。
【0073】
図11はプリンタ2000での本発明の第一の実施形態を示す印刷予約要求受信時のフローチャートである。
【0074】
本印刷システムの構成要素であるプリンタ2000において、クライアントコンピュータ1500から印刷予約要求を受け取ると(ステップS16−1)、プリンタ2000のCPU201は、アプリケーションコンテナ4000を生成する。アプリケーションコンテナ4000は、Java(登録商標)のクラスのオブジェクトインスタンスであり、プリンタ2000のCPU201のワークエリアであるRAM202上で動作するJava(登録商標)仮想マシン(Java(登録商標) Virtual Machine)のワークエリアである同RAM202上に生成する。
【0075】
アプリケーションコンテナ4000のクラスは、図9に示したような各種set/getメソッドのアクセッサ(Accessor)を提供する(ステップS16−2)。
【0076】
プリンタ2000のCPU201は、ROM203に記憶される自装置を示す一意なプリンタIDを読み出し、その値を、生成されたアプリケーションコンテナ4000のアクセッサメソッドsetPrinterIdを呼び出して、アプリケーションコンテナオブジェクトにセットする(ステップS16−3)。
【0077】
また、CPU201がRAM202の不揮発性部であるNVRAMに記憶する、アプリケーションコンテナを生成した累算数を読み出し、その値を、アプリケーションコンテナ4000のアクセッサメソッドsetReservationNumberを呼び出して、アプリケーションコンテナオブジェクト4000にセットする(ステップS16−4)。
そして、CPU201は、該アプリケーションコンテナを、印刷予約要求を送信したクライアントコンピュータ1500に返信し(ステップS16−5)、再び、ステップS16−1のクライアントコンピュータからの印刷予約要求待ちに遷移する。
【0078】
ここで再び、図10のクライアントコンピュータ1500での印刷指示時のフローチャートに戻る。ステップS15−3で、プリンタ2000からのレスポンスを待つ状態にいるクライアントコンピュータ1500のCPU101は、プリンタ2000のステップS16−5の処理により返信されたアプリケーションコンテナ4000を受け取り(ステップS15−4)、ステップS15−1でユーザが印刷を行うのに指定した印刷用データの配信を、サーバコンピュータ1000に要求する(ステップS15−5)。
【0079】
更に、プリンタ2000からレスポンスデータとして受信したアプリケーションコンテナ4000を、ステップS15−5の配信要求に続けて、サーバコンピュータ1000に送信する(ステップS15−6)。
【0080】
クライアント1500は、サーバコンピュータ1000にアプリケーションコンテナ4000を送信後、ステップS15−5での配信要求に対するサーバコンピュータ1000からのレスポンス待ちの状態に遷移する(ステップS15−7)。
【0081】
図12はサーバコンピュータ1000での本発明の第一の実施形態を示すデータ配信要求受信時のフローチャートである。
【0082】
本印刷システムの構成要素であるサーバコンピュータ1000において、サーバコンピュータ1000のCPU101は、クライアントコンピュータ1500からデータ配信要求を受け取ると(ステップS7−1)、クライアントコンピュータ1500から、データ配信要求に引き続いて、アプリケーションコンテナのデータが送信されて来たかどうかを判定し(ステップS7−2)、アプリケーションコンテナ4000のデータを受信したと判断した場合には、ステップS7−1で受け取ったデータ配信要求に示されるクライアントコンピュータ1500が要求するデータを、ハードディスク111から読み出し(ステップS7−3)、そのデータを、ステップS7−2で受け取ったアプリケーションコンテナ4000のアクセッサメソッドsetTargetDataを呼び出して、アプリケーションコンテナにセットする(ステップS7−4)。
【0083】
更に、データを印刷処理することが可能なJava(登録商標)アプリケーションのバイトコードをハードディスク111から読み出し(ステップS7−5)、そのバイトコードのデータを、ステップS7−2で受け取ったアプリケーションコンテナ4000のアクセッサメソッドsetApplicationCodeを呼び出して、アプリケーションコンテナ4000にセットする(ステップS7−6)。
【0084】
そして、CPU101は、アプリケーションコンテナ4000を、データ配信要求を送信したクライアントコンピュータ1500に返信し(ステップS7−7)、再び、ステップS7−1のクライアントコンピュータからのデータ配信要求待ちに遷移する。
【0085】
再々度、図10のクライアントコンピュータ1500での印刷指示時のフローチャートに戻り、ステップS15−7で、サーバコンピュータ1000からのレスポンスを待つ状態にいるクライアントコンピュータ1500のCPU201は、サーバコンピュータ1000のステップS7−7の処理により返信されたアプリケーションコンテナを受け取り(ステップS15−8)、受け取ったアプリケーションコンテナをプリンタ2000に送信し(ステップS15−9)、印刷プロセスを終了する。
【0086】
図13はプリンタ2000での印刷データ受信時のフローチャートである。
【0087】
プリンタ2000のCPU201は、クライアントコンピュータ1500から印刷データを受け取ると(ステップS8−1)、印刷データがアプリケーションコンテナであるかどうかを判別し(ステップS8−2)、アプリケーションコンテナ4000であると判断した場合には、アプリケーションコンテナ4000のアクセッサメソッドgetPrinterIdを呼び出して、該アプリケーションコンテナにセットされているプリンタIDの値を読み出す(ステップS8−3)。
【0088】
そしてそのプリンタIDが、ROM203に記憶される自装置を示す一意なプリンタIDと同一かどうかを判定し(ステップS8−4)、自プリンタIDと同一ではないと判断した場合には、アプリケーションコンテナが自装置で生成されたものでない旨のエラーメッセージを、アプリケーションコンテナ4000のアクセッサメソッドsetErrorMessageを呼び出して、アプリケーションコンテナオブジェクトにセットし(ステップS8−7)、そのアプリケーションコンテナを、印刷データ送信元のクライアントコンピュータ1500に返し(ステップS8−8)、再び、ステップS8−1のクライアントコンピュータからの印刷データ受信待ちに遷移する。
【0089】
一方、ステップS8−4で、自プリンタIDと同一であると判断した場合には、アプリケーションコンテナ4000のアクセッサメソッドgetReservationNumberを呼び出して、アプリケーションコンテナにセットされている予約受け付け番号の値を読み出す(ステップS8−5)。
【0090】
読み取った受け付け番号が、現在RAM202の印刷ジョブキュー内で処理待ちである他の全てのアプリケーションコンテナのジョブ受け付け番号の列における何番目かを判断し、印刷ジョブキュー内の該位置に、該アプリケーションコンテナを印刷ジョブとして差し入れ(ステップS8−6)、再び、ステップS8−1のクライアントコンピュータからの印刷データ受信待ちに遷移する。
【0091】
図9はプリンタ2000での印刷データ処理時のフローチャートである。プリンタ2000のCPU201は、RAM202の印刷ジョブキュー内の印刷ジョブを処理する際、その印刷ジョブが、アプリケーションコンテナ4000のデータであるかどうかを判別する(ステップS9−1)。
【0092】
アプリケーションコンテナ4000であると判断した場合には、そのアプリケーションコンテナ4000のアクセッサメソッドgetTargetDataを呼び出して、そのアプリケーションコンテナにセットされている印刷データを読み出す(ステップS9−2)。
【0093】
そして、更に、そのアプリケーションコンテナ4000のアクセッサメソッドgetApplicationCodeを呼び出して、そのアプリケーションコンテナにセットされているJava(登録商標)アプリケーションのバイトコードを読み出す(ステップS9−3)。
【0094】
CPU201は、ステップS9−3で読み出したJava(登録商標)アプリケーションのバイトコードを、前記RAM202上で動作するJava(登録商標)仮想マシン(Java(登録商標) Virtual Machine)において実行し、そのJava(登録商標)アプリケーションの処理用データとして、前記ステップS9−2で読み出した印刷データを与える(ステップS9−4)。
【0095】
そのJava(登録商標)アプリケーションは、その印刷データをラスタライズし(ステップS9−5)、生成されたラスタライズデータを、CPU301が画像信号として印刷部(プリンタエンジン)308に出力し、印刷を行って(ステップ9−6)、処理を終了する。
【0096】
以上述べたように本実施形態によれば、印刷システムを構成するサーバ装置、クライアント装置、出力装置間のデータの受け渡しにアプリケーションコンテナを用いることで、印刷ジョブを処理する組み込みアプリケーションが出力装置内にあるかどうかを気にすることなく、印刷ジョブを処理できるという効果がある。
【0097】
[そのほかの実施の態様]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0098】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコード(図3乃至図6および図10乃至図14の手順のプログラムコード)を記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【0099】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0100】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0101】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0102】
【発明の効果】
以上説明したように、クライアントが必要な機能、たとえば帳票を印刷する機能を有していなくとも、その機能を備えた機器に対してデータを転送させ、転送先の機器で機能を果たさせる(たとえば印刷を行わせる)ことができる。クライアントはどの機器が必要な機能を有しているか知らなくともその機能を他の機器により遂行させる(すなわち印刷させる)ことができる。
【0103】
また、帳票を印刷する機能は、帳票生成システム内の少なくとも1つの装置が備えていれば、その装置において全ての帳票を印刷させることができる。また、帳票の印刷機能を有する装置の帳票データの転送は、HTMLで規定された機能を利用して行うために、クライアントには特別のアプリケーションプログラムは不要であり、一般的に入手可能なウエブブラウザさえ備えていればよい。
【図面の簡単な説明】
【図1】本発明のサーバおよびクライアントコンピュータの構成を説明するブロック図である。
【図2】本発明のプリンタの構成を説明するブロック図である。
【図3】本発明の第1の実施形態のクライアントウエブブラウザのサーバリクエスト送信時のフローチャートである。
【図4】本発明の第1の実施形態のサーバコンピュータのデータ配信リクエスト受信時のフローチャートである。
【図5】本発明の第1の実施形態のクライアントウエブブラウザのサーバレスポンス受信時のフローチャートである。
【図6】本発明の第1の実施形態のプリンタのメール受信時のフローチャートである。
【図7】本発明の第1実施形態に係る帳票生成システムの構成を説明するブロック図である。
【図8】本発明の第1実施形態に係る帳票生成手順のシーケンスを示す図である。
【図9】本発明の第2実施形態のアプリケーションコンテナの概念図である。
【図10】本発明の第2実施形態のクライアントコンピュータでの印刷指示時のフローチャートである。
【図11】本発明の第2の実施形態のプリンタの印刷予約要求受信時のフローチャートである。
【図12】本発明の第2実施形態のサーバコンピュータのデータ配信要求受信時のフローチャートである。
【図13】本発明の第2実施形態のプリンタの印刷データ受信時のフローチャートである。
【図14】本発明の第2実施形態のプリンタの印刷データ処理時のフローチャートである。
【符号の説明】
101 CPU
102 RAM
103 ROM
104 システムバス
1000 サーバコンピュータ
201 CPU
202 RAM
203 ROM
204 システムバス
2000 プリンタ
【発明の属する技術分野】
本発明は、クライアント端末から例えばHTML(Hyper Text Markup Language)形式などにより受信した要求に基づいて、固定のフォームデータと可変の差し込みデータとをフォームオーバレイし、一つの帳票データを生成して当該クライアントに送信するウエブサーバ等の帳票作成装置及び方法に関する。
【0002】
【従来の技術】
従来、帳票作成サーバがウエブブラウザ(クライアント端末)からのHTML形式で既述されたユーザ要求データを受信し、ユーザにより指定される定型(固定形式)のデータファイル(これを帳票ファイルと呼ぶ)に、ユーザ指定の可変データ(レコード毎に内容が異なる非定型データ)を挿入してフォームオーバレイし、帳票データを生成した後、作成した帳票データをPDF(Portable Document Format)などのフォーマットに変換してウエブクライアントに配信するサービスがあった(特許文献1等参照)。
【0003】
【特許文献1】
特開2002−163596号公報
【0004】
【発明が解決しようとする課題】
ところが、従来、帳票作成サーバが帳票データを送信するあて先であるウエブクライアントにおいて、HTMLで記述された文書を解釈して表示する一般的なウエブブラウザが稼働している場合、帳票データをPDF形式などの一定の形式のデータに変換してそのウエブクライアントに配信しても、その形式に対応したアプリケーションプログラムがそのクライアントにインストールされていない場合には、受信した帳票データを出力することはできなかった。例えば、受信したデータがPDFデータであれば、それを表示あるいは印刷により出力するためのアプリケーションとして、アドビ社のAcrobat Reader(登録商標)などがクライアントに存在しなければ、該クライアントでは受信した帳票データを解釈、表示、印刷することができなかった。
【0005】
このように、サーバが作成した帳票データを表示および印刷するためのアプリケーションがクライアントに備わっていない場合には、作成された帳票をクライアントが表示及び印刷できないという事態が生じるという問題があった。
【0006】
本発明は、上記の問題点を解決するためになされたものであり、クライアント装置にたとえばHTMLが解釈可能なウエブブラウザ等のアプリケーションが存在していれば、それを用いて帳票の作成及び印刷機能を有する他の機器によって帳票を作成して印刷させることが可能な帳票データの作成および送信が可能な帳票作成装置及び方法を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記目的を達成する本発明は以下に示す構成を備える。
【0008】
クライアント機器に接続された帳票データ作成装置であって、
クライアント機器から、帳票作成要求と共に定型データの指定と可変データとを受信する受信手段と、
前記定型データの指定に基づいて獲得した定型データと前記可変データとを合成して表示用データを作成する表示用データ作成手段と、
前記定型データの指定と前記可変データと印刷可能な機器の指定とを含む印刷用データを作成する印刷用データ作成手段と、
前記表示用データと前記印刷用データとを併せて前記クライアント機器に送信する送信手段とを備える。
【0009】
この構成により、本発明にかかる帳票作成装置は、表示用データと印刷用データとを別々に作成し、表示用データに印刷可能な機器の指定を含む印刷用データを付加してクライアントに送信することで、表示をクライアント自身で、印刷を印刷可能な機器で行わせることが可能となる。
【0010】
更に好ましくは、前記表示用データ作成手段および前記印刷用データ作成手段は、前記表示用データおよび前記印刷用データをHTML形式で作成し、前記表示用データ作成手段は、前記定型データからHTML形式で表現できないデータを削除して表示用データを作成し、前記印刷用データ作成手段は、前記定型データの指定と前記可変データとについて非表示の属性を付与して印刷用データを作成する。
【0011】
この構成により、クライアントでは印刷用データは表示されることはなく、また、表示用データからは表現不可能なデータは削除されるから、表示データは必ずクライアントが表示可能である。
【0012】
更に好ましくは、前記印刷用データ作成手段は、前記印刷可能な機器の指定として、前記定型データと前記可変データとを合成するための帳票作成手段と、作成された帳票データを印刷するための印刷手段とを有する機器で利用可能な電子メールアドレスを前記印刷用データに含ませる。
【0013】
【発明の実施の形態】
[第1の実施の形態]
図7は本発明にかかる帳票印刷システムの構成を示す図である。サーバ1000及びクライアント1500は共にコンピュータである。サーバ1000は、サーバとしてクライアントにサービスを提供するためのプログラムが稼働している点でクライアントとは異なる。図7において、サーバ1000においては帳票作成アプリケーションプログラム1001やHTTP(HyperText Transfer Protocol)サーバプログラム1002等が実行されており、後述のプログラムも実行されている。ここでHTTPサーバプログラム1002には、帳票データ等から帳票データを作成するプログラムなどのいわゆるスクリプトも含まれるものとする。また、サーバ1000は、後述する印刷機能を有する機器の電子メールアドレスやURL等を含む機器のリスト1003を有している。
【0014】
クライアント1500ではウエブブラウザプログラム1501と電子メールプログラム1502が実行される。
【0015】
またプリンタ2000では、単に受信したページ記述言語等の解釈実行のみならず、電子メールを受信するための電子メールプログラム2001と、ウエブブラウザ2002と、帳票を合成して印刷するための帳票印刷アプリケーションプログラム2003が実行されている。
【0016】
なお、本実施形態では、HTTPを用いたネットワークを利用しており、その前提としてTCP/IPを利用している。そして、名前解決に不可欠なネームサーバやパケットの経路制御を行うルータ、POP等を用いた場合の電子メールの配信を実現するメールサーバ等が本実施形態のシステムには必要であるが、それらTCP/IPを実現するネットワーク資源については当然備えられているものとして、その説明を省略する。
【0017】
図1は本発明の第一の実施形態を示すサーバコンピュータ1000およびクライアントコンピュータ1500の構成を説明するブロック図である。
【0018】
コンピュータ1000,1500は、ROM103あるいはRAM102に記憶されたプログラム等に基づいて処理を実行するCPU101を備え、CPU101はシステムバス104に接続される各デバイスを総括的に制御する。RAM102はCPU101の主メモリ,ワークエリア等として機能する。ROM103はCPU101の制御プログラムや各種データを記憶する。キーボードコントローラ(KBC)105は、キーボード109や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)106は、CRTディスプレイ(CRT)110の表示を制御する。スピーカーコントローラ(SPC)113は、スピーカー114の音声再生を制御する。ディスクコントローラ(DKC)107は、ハードディスク(HD)111やフロッピ(登録商標)ディスク(FD)112等の外部メモリとのアクセスを制御する。
【0019】
ハードディスク111には、ブートプログラムや、サーバであれば図4のフローチャートで示されるような種々のプログラム、HTTPサーバサービスなどのアプリケーションのプログラムファイル,ユーザファイル,図7の機器リスト、編集ファイル等を記憶し、クライアントであれば図3及び図5に示されるプログラムファイルや電子メールプログラムファイル、ウエブクライアントのプログラムファイルなどを記憶している
ネットワークコントローラ(NC)108は、所定のネットワークインタフェース121を介してネットワークに接続され、クライアントコンピュータやサーバコンピュータやプリンタなど他のネットワーク機器との通信制御処理を実行する。
【0020】
図2は本発明の実施形態を示すプリンタ2000の構成を説明するブロック図である。プリンタ2000において、プリンタCPU201は、ROM203のプログラム用ROMに記憶された制御プログラム或いは外部メモリ206に記憶された制御プログラムに基づいてシステムバス204に接続される各種のデバイスとのアクセスを総括的に制御し、印刷部インタフェース207を介して接続される印刷部(プリンタエンジン)208に出力情報としての画像信号を出力する。また、このROM203のプログラムROMには、CPU201の図6のフローチャートで示されるような制御プログラムや各種組み込みアプリケーション(電子メール、ウエブブラウザ、帳票印刷アプリケーション)等のプログラムを記憶する。ROM203のフォント用ROMには、上記出力情報を生成する際に使用するフォントデータ等を記憶する。
【0021】
ネットワークコントローラ(NC)210は、所定のネットワークインタフェース221を介してネットワークに接続され、クライアントコンピュータやサーバコンピュータなど他のネットワーク機器との通信制御処理を実行する。RAM202は、CPU201の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM202は、出力情報展開領域や、環境データ格納領域、NVRAM(不揮発性RAM)等のほか、プリンタ実行される電子メールプログラムやウエブクライアントプログラム、帳票作成アプリケーションプログラムの実行のために用いられる。ディスクコントローラ(DKC)205は、外部メモリ206およびハードディスク(HD)211へのアクセスを制御する。ICカード等の外部メモリ206は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。ハードディスク(HD)211は、印刷データやプログラムファイル等を記憶する。また、操作パネル209には操作のためのスイッチおよびLED表示器等が配されている。
【0022】
なお、サーバ、クライアント、プリンタすべてにおいて、TCP/IPのプロトコルスタックを備えたオペレーティングシステムが稼働していることを前提としている。
【0023】
このように構成された各システムにおける実施形態を、図3〜図6のフローチャートに従って説明する。
【0024】
<本実施形態のシステムの動作>
図8は、クライアントコンピュータ1500,サーバコンピュータ1000、プリンタ2000それぞれによる帳票作成要求からその印刷に至る協調動作の概要を示すシーケンス図である。図中かっこ書きは図3乃至図6のフローチャートにおける対応するステップの番号を示す。
【0025】
クライアント1500から、サーバ1000の帳票作成要求の受け入れ窓口となるアドレス(URL)にアクセスすると、すなわちHTTPサーバに対してURLとともにHTTPリクエストを送信すると、要求されたページのデータとともHTTPレスポンスがクライアント1500に返される。クライアント1500で帳票の識別子や可変データ、レスポンスデータの種類の指定等を入力して送信を指示すると、再びサーバ1000にHTTPリクエストが送信される。このHTTPリクエストには、帳票データの指定と可変データ、レスポンスデータの指定が含まれる。それを受信したサーバ1000は、受信したデータに基づいて、HTMLで作成した表示用の帳票データと、帳票を印刷可能な機器に送信して印刷させるための印刷用データとその宛先とを含むHTTPレスポンスを作成してクライアント1500に送信する。それを受信したクライアント1500は、表示用の帳票データをウエブブラウザ1501により表示する。その画面上で帳票の印刷指示がされたなら、HTTPレスポンスに添付されていた印刷用データを、同じく添付されていた宛先に電子メールとして送信する。図8の例では宛先はプリンタ2000である。プリンタ2000は電子メールを受信して、それに含まれる印刷用データから帳票を作成し、印刷する。
【0026】
このようにして、クライアントにサーバから受信したデータを印刷する機能が備えられていなくとも、印刷する機能を有する機器へと転送して印刷を行うことができる。そして、後述のように、本実施形態では転送のためにHTMLに規定されたフォーム(FORM)エレメントのアクション(ACTION)属性を利用している。このため、クライアントがウエブブラウザを有してさえいれば、クライアントにこの転送を行わせることが可能となる。
【0027】
図3はクライアントコンピュータ1500のウエブブラウザ1501によるサーバ1000へのHTTPリクエスト送信時のフローチャートである。
【0028】
クライアントコンピュータ1500でウエブブラウザ1501が実行されている際に、ブラウザ画面でユーザにより、帳票作成要求のための所定のURL(Uniform Resource Locators)が指定されると、そのURLで特定されるサーバコンピュータ1000のデータにアクセスする(ステップS3−1)。
【0029】
サーバ1000は特定されたデータをクライアント1500に対してHTTPレスポンスとして返し、クライアント1500はそのHTTPレスポンスを受信する(ステップS3−2)。そのデータは、帳票指定値と該帳票に挿入する可変データを指定するHTMLフォーム文書である。
【0030】
ここでHTMLフォーム文書とは、HTMLのフォームエレメントが記述されたHTML文書のことである。フォームエレメントは、基本的には、フォームタグ<FORM>と</FORM>とで挟まれた中にインプットエレメント<INPUT>を必要なだけ並べて記述したもので、ウエブブラウザがそれを解釈実行することで、インプットエレメントの数だけユーザに入力を行わせることができる。インプットエレメントではタイプ属性を指定でき、タイプ属性として「テキスト」を指定しておけば、テキストで帳票指定値や可変データ、レスポンスデータ指定をユーザが入力できる。なお、帳票指定値とは、フォームオーバレイ処理に用いられる書式を表す定型データを一意的に指定するための値であり、たとえば定型データのファイル(これを帳票ファイルと呼ぶ。)名やURLなどである。
【0031】
また、レスポンスデータ指定は限られた候補の中から選択させるために、タイプ属性として「ラジオ」などを使用する。レスポンスデータ指定は、表示用の帳票データの形式を指定するためのパラメータで、たとえば、これが「text/html」であれば、サーバ1000はHTMLで記述された帳票データを作成してクライアントに送信することを示す。この型はそのままMIME(Multipurpose Internet Mail Extensions)のコンテントタイプ(ファイル属性)を示す。
【0032】
さらに、インプットエレメントを設けてそのタイプ属性として「サブミット」を指定しておけば、そのインプットエレメントに対応してブラウザ画面に表示される送信ボタンをユーザが押すことで、フォームエレメントのアクション属性で指定されたURLへと入力されたデータが送信される。
【0033】
ウエブブラウザ1501は、ブラウザ画面に表示した、上記のように記述されたHTMLフォーム文書において、ユーザが入力した帳票指定値と可変データおよびレスポンスデータ指定を、そのHTMLフォーム文書に含まれる送信ボタンが押下されることにより(ステップS3−3−YES)、HTTPリクエストとして、前記サーバにフォームデータ(すなわちHTMLフォーム文書に対して入力されたデータ)を送信して処理を終了する(ステップS3−4)。
【0034】
このようにして、クライアントコンピュータ1500は、サーバに必要なデータを送信して帳票の作成を要求する。
【0035】
図4はサーバコンピュータ1000での本発明の第一の実施形態を示す帳票作成要求(データ配信リクエスト)受信時のフローチャートである。
【0036】
サーバコンピュータ1000のCPU101は、クライアントコンピュータ1500のウエブブラウザ1501からHTTPリクエストを受け取ると(ステップS4−1)、そのHTTPリクエストに含まれる帳票指定値と可変データ、そしてレスポンスデータ指定の値を取り出す(ステップS4−2)。
【0037】
ステップS4−2でHTTPリクエストから取り出された帳票指定値に該当する帳票ファイルのデータをハードディスク(HD)211からRAM202に読み出す(ステップS4−3)。
【0038】
ステップS4−2でHTTPリクエストから取り出されたレスポンスデータ指定が”text/html”の場合(ステップS4−4)、レスポンス指定で指定されたHTMLでは表現できないデータが読み出された帳票ファイルのデータに含まれる場合(ステップS4−5)、帳票ファイルのデータからHTMLでは表現できないデータを削除する(ステップS4−6)。
【0039】
ステップS4−6で指定データ型(すなわちHTML)では表現不可能なデータを削除後の帳票ファイルの定型データに、前記ステップS4−2でHTTPリクエストから取り出された可変データを差し込み、合成することで擬似的なフォームオーバレイを行う(ステップS4−7)。
【0040】
そして合成された帳票データのフォーマットを、前記指定のHTMLフォーマットにデータ変換する(ステップS4−8)。
【0041】
ステップS4−7において帳票ファイルに可変データを合成する位置は、帳票ファイルにおいて指定しておくことができる。たとえば、可変データを挿入する欄が複数あれば、可変データを一定のセパレータで区切って入力させておけば、セパレータにより区切られるデータごとに、指定された位置に順番に合成することで、可変データの挿入ができる。この場合帳票毎の区切りは更に別の区切り文字を用意する。
【0042】
たとえば、帳票ファイルのデータは、それを構成するオブジェクト毎に、属性や位置が指定されたデータ列により構成される。文字オブジェクトであれば、文字コードと書体、サイズ、位置、色等の属性が指定される。また、罫線であれば、太さ、始点位置、終点位置、色、線の種類(実線や破線等)などの属性が帳票ファイルのデータ中で指定されている。したがって、可変データを合成するには、その位置等の属性を特定して追加すればよい。可変データがたとえば文字であれば、その文字コードと書体、サイズ、合成される位置、色を帳票ファイルに追加する。そして、それらオブジェクトを特定する属性のうち、HTMLの表記法には含まれていないものがあれば、それを削除して変換対象とはしない。HTMLに変換できない属性については、たとえば変換対象となる形式毎に予め特定しておき、それをテーブルなどとしてサーバ1000に登録しておく。そして、変換前の帳票ファイルのデータ中に当該テーブルに登録された属性が表れたなら、ステップS4−6において削除対象とする。なおステップS4−6を独立した工程として行わずに、ステップS4−8の中で、HTML変換時に同時に行うこともできる。
【0043】
ステップS4−9では、生成されたHTMLフォーマットの文書データに、クライアント1500からプリンタ2000にデータを送信するための以下のようなHTMLフォームエレメントをセクションとして追加する。
【0044】
<FORM ACTION=”mailto:MailAddress” ENCTYPE=”multipart/form−data” METHOD=”POST”>
<!−− 画面には表示されない非表示フィールド −>
<INPUT TYPE”hidden” NAME=”定型データ” VALUE=Value1>
<INPUT TYPE”hidden” NAME=”可変データ” VALUE=Value2>
<!−− プリンタへの転送ボタン −>
<INPUT TYPE=”submit” VALUE=”送信”>プリンタへ送信
</FORM>。
【0045】
上記MailAddressには、プリンタ2000の組み込み電子メールアプリケーションの受信用メールアドレスを、上記Value1には、帳票ファイルのファイル名または前記ハードディスク211に格納されるデータのURLを、上記Value2には、前記可変データをそれぞれデータとして入れる(ステップS4−9)。それ以外の部分は、上記の通りであればよい。
【0046】
このフォームエレメントをウエブブラウザが解釈実行すると、ブラウザ画面には、このフォームエレメントを添付したHTML文書(可変データが合成された帳票の表示用データ)が表示され、それとともに、上記フォームエレメントに含まれるインプットエレメントにより「プリンタへ送信」と表示された送信ボタンも表示される。定型データと可変データについてはタイプ属性としてhiddenが指定されているために表示されない。ユーザが画面上で送信ボタンを押すと、インプットエレメントに記述されたValue1及びValue2が、それぞれ定型データ、可変データとして、MailAddressにあてて、電子メールとして送信される。
【0047】
そしてサーバ1000はこのHTML文書データを、ウエブクライアント1501にHTTPレスポンスとして送信し(ステップS4−10)、再び、前記ステップS4−1のHTTPリクエスト待ちに戻る。なお、この待ちは記載の便宜上ループとしているが、他のプロセスを実行することもできる。
【0048】
サーバ1000は、上記フォームエレメントに挿入するMailAddressを、本実施形態ではプリンタ2000に決めておき、そのメールアドレスを書き込んでいる。ネットワークが小規模であればこれでも十分であるが、多くのセグメントが相互に接続されて構成される大規模なネットワークの場合には、帳票を印刷する機能を有する機器も複数存在し得るのでこれでは不十分である。そこで、たとえば、クライアントのIPアドレスとMailAddressとの対応表を予め策してそれを表に保持し、クライアントのIPアドレスに応じてMailAddressの値を表から得てそれを書き込んでも良い。
【0049】
図5はクライアントコンピュータ1500のウエブブラウザ1501によるサーバ1000からのレスポンス受信時のフローチャートである。
【0050】
クライアントコンピュータ1500のウエブブラウザ1501は、ステップS3−4のHTTPリクエストに対するサーバコンピュータ1000からのHTTPレスポンス(ステップS4−10で送信)を受け取った際に(ステップS5−1)、そのHTTPレスポンスのHTMLデータであるHTMLフォーマット文書の帳票ページをブラウザ画面に表示する(ステップS5−2)。すなわち、ステップS4−9で作成されたHTML文書がウエブブラウザ1501により表示される。ステップS4−9で作成されたフォームエレメントをウエブブラウザが解釈実行すると、上述の通りブラウザ画面には、このフォームエレメントを添付したHTML文書(可変データが合成された帳票の表示用データ)と送信ボタンとが表示される。
【0051】
サーバコンピュータ1000のステップS4−9でHTMLデータに追加されたプリンタ2000へのメール送信用のHTMLフォームの「プリンタへ送信」ボタンが、ユーザによって押下された際に(ステップS5−3)、HTMLフォームデータ(Value1,Value2)を電子メールとして指定されたプリンタ2000のメールアドレスに送信する(ステップS5−4)。
【0052】
図6はプリンタ2000でのメール受信時のフローチャートである。
【0053】
プリンタ2000のCPU201は、たとえば配信される電子メールを定期的にチェックしており、クライアントコンピュータ1500からメール送信されたデータを受けとると(ステップS6−1)、ROM203のプログラムROMからプリンタ組み込み電子メールアプリケーション2001を起動し(ステップS6−2)、プリンタ組み込み電子メールアプリケーション2001に受信した電子メールのデータを渡す(ステップS6−3)。また、プリンタ2000がSMPTなどによりクライアント1500から直接メールを受信するようにすれば、リアルタイムで帳票を印刷させることができる。
【0054】
プリンタ組み込み電子メールアプリケーション2001は、電子メールに含まれるデータの「定型データ」フィールドから帳票ファイルのファイル名またはURLを取得し(ステップS6−4)、更に「可変データ」フィールドから帳票に差し込む可変データを取得する(ステップS6−5)。
【0055】
ステップS6−4で取得したデータが帳票ファイルのファイル名である場合(ステップS6−6−YES)、プリンタ2000のCPU201は、プリンタのハードディスク211から、該当するファイルを捜し(ステップS6−7)、該当ファイルが見つかった場合には、そのファイルのデータを読み出し、RAM202に格納する(ステップS6−8)。
【0056】
一方ファイル名でなくURLであれば、たとえばウエブブラウザプログラムを備えていればそれを起動してURLで特定されるデータを獲得する。また、獲得する手段がなければ、たとえばクライアントに対して処理不能の旨を通知するメール送信などを行う。
【0057】
プリンタ2000のCPU201は、ROM203のプログラムROMからプリンタ組み込み帳票印刷アプリケーション2003を起動し(ステップS6−9)、プリンタ組み込み帳票印刷アプリケーション2003に、ステップS6−8によってRAM202に格納された帳票データと、ステップS6−5で取得された可変データを渡す(ステップS6−10)。
【0058】
プリンタ組み込み帳票印刷アプリケーション2003は、帳票データと可変データとをプリンタオーバレイを利用して、フォームオーバレイ印刷を行う(ステップS6−11)。プリンタオーバレイでは、前述したとおり、サーバ1000が表示用の帳票データを作成する場合と同じ要領でオーバレイ処理を行われればよい。もちろん、HTMLへの変換は不要であるから、単に合成するだけでよい。
【0059】
以上の手順により、クライアントが帳票を印刷する機能を有していなくとも、その機能を備えた機器に対してデータを転送させ、転送先の機器で印刷を行わせることができる。クライアントはどの機器が印刷機能を有しているか知らなくとも印刷を行える。また、帳票を印刷する機能は、帳票生成システム内の少なくとも1つの装置が備えていれば、その装置において全ての帳票を印刷させることができる。また、帳票の印刷機能を有する装置の帳票データの転送は、HTMLで規定された機能を利用して行うために、クライアントには特別のアプリケーションプログラムは不要であり、一般的に入手可能なウエブブラウザさえ備えていればよい。
【0060】
[第1の実施形態の変形例1]
なお、第1実施形態では、帳票の印刷機能をプリンタに持たせているが、たとえば帳票印刷用の電子メールアプリケーション2001、帳票印刷アプリケーション2003などを備え、プリンタが接続されたコンピュータを印刷サーバとして利用することもできる。この場合には、プリンタ2000に代えてその印刷サーバのメールアドレスをサーバ1000がステップS4−9において指定することで、上記実施形態と同様の処理を行うことが可能となる。このようにすれば、プリンタにアプリケーションプログラムを実行させる必要が無く、安価なプリンタとコンピュータとでシステムを構成できる。
【0061】
[第1の実施形態の変形例2]
本実施形態では、メールにより転送する先で遂行させる機能は帳票の合成と印刷であったが、クライアントが持たない機能についてはひろく適用することができる。その場合、サーバはクライアントが持たない機能を有する機器の所在を予め知っておき、そこを転送先として指摘する。
【0062】
[第1実施形態に係る発明の効果]
以上述べたように本実施形態によれば、HTMLのような印刷には不適なウエブページしか解釈できないウエブクライアントにおいても、印刷指示時には、データを忠実に反映した出力結果を出力装置から得ることができるという効果がある。
【0063】
[第2の実施の形態]
第2実施形態は、ローカルネットワークやインターネットに接続されたクラインアントコンピュータと、クラインアントコンピュータからのデータ配信要求に従い所定のデータをクラインアントに配信するサーバコンピュータと、クラインアントコンピュータからの印刷要求に従い、受信したデータを組み込みアプリケーションで前処理し、ラスタライズして印刷するプリンタなどの出力装置とで構成される印刷システムに関する。
【0064】
従来、ローカルネットワークやインターネットに接続されたデータ印刷プログラムを有するクラインアントコンピュータは、同ネットワークに接続されたサーバコンピュータにネットワークを介してデータ配信を要求し、該要求を受信したサーバコンピュータは所定のデータを該クラインアントコンピュータに配信していた。クラインアントコンピュータは、サーバコンピュータから配信されたデータをプリンタ記述言語(PDL)などプリンタコントローラが解釈・実行できるデータ形式に変換することなくプリンタに送信する際に、プリンタで該データを前処理するプリンタ組み込みアプリケーションの前処理指定をその印刷データと共に送信していた。プリンタは、クラインアントコンピュータから印刷データと共にプリンタ組み込みアプリケーション前処理指定を受け取った際には、該指定された組み込みアプリケーションを呼び出して印刷データを処理した後、処理後の印刷データを印刷ジョブとして印刷処理していた。
【0065】
ところが従来、クラインアントコンピュータからプリンタにプリンタ組み込みアプリケーション前処理指定と共に印刷データが送信されてきた際、プリンタに指定の組み込みアプリケーションがインストールされてない場合には、そのデータを処理することができずにエラーとなるか、もしくはプリンタがローカルネットワークまたはインターネットを介して所定のアプリケーションを検索し、ダウンロードして実行するかのいずれかの方法をとる必要があった。後者の場合は、ダウンロードしたアプリケーションのバージョンが、送信されてきた印刷データの処理に必要なバージョンと必ずしも一致しないという問題もあった。
【0066】
本実施形態は、上記の問題点を解決するためのもので、プリンタが組み込みアプリケーションによる前処理指定された印刷データをクラインアントコンピュータから受け取った際に、印刷データの前処理を行う適切なプリンタ組み込みアプリケーションをプリンタ内で見つけることができないという問題を防ぐ方法を提供するものである。
【0067】
本実施形態おいて、サーバコンピュータ、クライアントコンピュータはともに図1に示す構成を有する。またプリンタは図2に示す構成を有する。
【0068】
これら装置から構成されたシステムにおける実施形態を、図9に示した本発明のアプリケーションコンテナの概念図と、図10〜図14のフローチャートに従って説明する。
【0069】
本実施形態において、本発明の印刷システムは、サーバコンピュータ1000、クライアントコンピュータ1500、プリンタ2000から構成される。
【0070】
図10はクライアントコンピュータ1500での本実施形態を示す印刷指示時のフローチャートである。
【0071】
本印刷システムの構成要素であるクライアントコンピュータ1500において、クライアントコンピュータのCPU101は、ユーザの指示により、サーバコンピュータ1000に存在するデータの印刷プロセスを開始する(ステップS15−1)。
【0072】
ステップS15−1でユーザがデータ印刷を行うのに指定したプリンタ2000に印刷予約要求を送信する(ステップS15−2)。要求送信後、プリンタ2000からのレスポンスを待つ状態に遷移する(ステップS15−3)。
【0073】
図11はプリンタ2000での本発明の第一の実施形態を示す印刷予約要求受信時のフローチャートである。
【0074】
本印刷システムの構成要素であるプリンタ2000において、クライアントコンピュータ1500から印刷予約要求を受け取ると(ステップS16−1)、プリンタ2000のCPU201は、アプリケーションコンテナ4000を生成する。アプリケーションコンテナ4000は、Java(登録商標)のクラスのオブジェクトインスタンスであり、プリンタ2000のCPU201のワークエリアであるRAM202上で動作するJava(登録商標)仮想マシン(Java(登録商標) Virtual Machine)のワークエリアである同RAM202上に生成する。
【0075】
アプリケーションコンテナ4000のクラスは、図9に示したような各種set/getメソッドのアクセッサ(Accessor)を提供する(ステップS16−2)。
【0076】
プリンタ2000のCPU201は、ROM203に記憶される自装置を示す一意なプリンタIDを読み出し、その値を、生成されたアプリケーションコンテナ4000のアクセッサメソッドsetPrinterIdを呼び出して、アプリケーションコンテナオブジェクトにセットする(ステップS16−3)。
【0077】
また、CPU201がRAM202の不揮発性部であるNVRAMに記憶する、アプリケーションコンテナを生成した累算数を読み出し、その値を、アプリケーションコンテナ4000のアクセッサメソッドsetReservationNumberを呼び出して、アプリケーションコンテナオブジェクト4000にセットする(ステップS16−4)。
そして、CPU201は、該アプリケーションコンテナを、印刷予約要求を送信したクライアントコンピュータ1500に返信し(ステップS16−5)、再び、ステップS16−1のクライアントコンピュータからの印刷予約要求待ちに遷移する。
【0078】
ここで再び、図10のクライアントコンピュータ1500での印刷指示時のフローチャートに戻る。ステップS15−3で、プリンタ2000からのレスポンスを待つ状態にいるクライアントコンピュータ1500のCPU101は、プリンタ2000のステップS16−5の処理により返信されたアプリケーションコンテナ4000を受け取り(ステップS15−4)、ステップS15−1でユーザが印刷を行うのに指定した印刷用データの配信を、サーバコンピュータ1000に要求する(ステップS15−5)。
【0079】
更に、プリンタ2000からレスポンスデータとして受信したアプリケーションコンテナ4000を、ステップS15−5の配信要求に続けて、サーバコンピュータ1000に送信する(ステップS15−6)。
【0080】
クライアント1500は、サーバコンピュータ1000にアプリケーションコンテナ4000を送信後、ステップS15−5での配信要求に対するサーバコンピュータ1000からのレスポンス待ちの状態に遷移する(ステップS15−7)。
【0081】
図12はサーバコンピュータ1000での本発明の第一の実施形態を示すデータ配信要求受信時のフローチャートである。
【0082】
本印刷システムの構成要素であるサーバコンピュータ1000において、サーバコンピュータ1000のCPU101は、クライアントコンピュータ1500からデータ配信要求を受け取ると(ステップS7−1)、クライアントコンピュータ1500から、データ配信要求に引き続いて、アプリケーションコンテナのデータが送信されて来たかどうかを判定し(ステップS7−2)、アプリケーションコンテナ4000のデータを受信したと判断した場合には、ステップS7−1で受け取ったデータ配信要求に示されるクライアントコンピュータ1500が要求するデータを、ハードディスク111から読み出し(ステップS7−3)、そのデータを、ステップS7−2で受け取ったアプリケーションコンテナ4000のアクセッサメソッドsetTargetDataを呼び出して、アプリケーションコンテナにセットする(ステップS7−4)。
【0083】
更に、データを印刷処理することが可能なJava(登録商標)アプリケーションのバイトコードをハードディスク111から読み出し(ステップS7−5)、そのバイトコードのデータを、ステップS7−2で受け取ったアプリケーションコンテナ4000のアクセッサメソッドsetApplicationCodeを呼び出して、アプリケーションコンテナ4000にセットする(ステップS7−6)。
【0084】
そして、CPU101は、アプリケーションコンテナ4000を、データ配信要求を送信したクライアントコンピュータ1500に返信し(ステップS7−7)、再び、ステップS7−1のクライアントコンピュータからのデータ配信要求待ちに遷移する。
【0085】
再々度、図10のクライアントコンピュータ1500での印刷指示時のフローチャートに戻り、ステップS15−7で、サーバコンピュータ1000からのレスポンスを待つ状態にいるクライアントコンピュータ1500のCPU201は、サーバコンピュータ1000のステップS7−7の処理により返信されたアプリケーションコンテナを受け取り(ステップS15−8)、受け取ったアプリケーションコンテナをプリンタ2000に送信し(ステップS15−9)、印刷プロセスを終了する。
【0086】
図13はプリンタ2000での印刷データ受信時のフローチャートである。
【0087】
プリンタ2000のCPU201は、クライアントコンピュータ1500から印刷データを受け取ると(ステップS8−1)、印刷データがアプリケーションコンテナであるかどうかを判別し(ステップS8−2)、アプリケーションコンテナ4000であると判断した場合には、アプリケーションコンテナ4000のアクセッサメソッドgetPrinterIdを呼び出して、該アプリケーションコンテナにセットされているプリンタIDの値を読み出す(ステップS8−3)。
【0088】
そしてそのプリンタIDが、ROM203に記憶される自装置を示す一意なプリンタIDと同一かどうかを判定し(ステップS8−4)、自プリンタIDと同一ではないと判断した場合には、アプリケーションコンテナが自装置で生成されたものでない旨のエラーメッセージを、アプリケーションコンテナ4000のアクセッサメソッドsetErrorMessageを呼び出して、アプリケーションコンテナオブジェクトにセットし(ステップS8−7)、そのアプリケーションコンテナを、印刷データ送信元のクライアントコンピュータ1500に返し(ステップS8−8)、再び、ステップS8−1のクライアントコンピュータからの印刷データ受信待ちに遷移する。
【0089】
一方、ステップS8−4で、自プリンタIDと同一であると判断した場合には、アプリケーションコンテナ4000のアクセッサメソッドgetReservationNumberを呼び出して、アプリケーションコンテナにセットされている予約受け付け番号の値を読み出す(ステップS8−5)。
【0090】
読み取った受け付け番号が、現在RAM202の印刷ジョブキュー内で処理待ちである他の全てのアプリケーションコンテナのジョブ受け付け番号の列における何番目かを判断し、印刷ジョブキュー内の該位置に、該アプリケーションコンテナを印刷ジョブとして差し入れ(ステップS8−6)、再び、ステップS8−1のクライアントコンピュータからの印刷データ受信待ちに遷移する。
【0091】
図9はプリンタ2000での印刷データ処理時のフローチャートである。プリンタ2000のCPU201は、RAM202の印刷ジョブキュー内の印刷ジョブを処理する際、その印刷ジョブが、アプリケーションコンテナ4000のデータであるかどうかを判別する(ステップS9−1)。
【0092】
アプリケーションコンテナ4000であると判断した場合には、そのアプリケーションコンテナ4000のアクセッサメソッドgetTargetDataを呼び出して、そのアプリケーションコンテナにセットされている印刷データを読み出す(ステップS9−2)。
【0093】
そして、更に、そのアプリケーションコンテナ4000のアクセッサメソッドgetApplicationCodeを呼び出して、そのアプリケーションコンテナにセットされているJava(登録商標)アプリケーションのバイトコードを読み出す(ステップS9−3)。
【0094】
CPU201は、ステップS9−3で読み出したJava(登録商標)アプリケーションのバイトコードを、前記RAM202上で動作するJava(登録商標)仮想マシン(Java(登録商標) Virtual Machine)において実行し、そのJava(登録商標)アプリケーションの処理用データとして、前記ステップS9−2で読み出した印刷データを与える(ステップS9−4)。
【0095】
そのJava(登録商標)アプリケーションは、その印刷データをラスタライズし(ステップS9−5)、生成されたラスタライズデータを、CPU301が画像信号として印刷部(プリンタエンジン)308に出力し、印刷を行って(ステップ9−6)、処理を終了する。
【0096】
以上述べたように本実施形態によれば、印刷システムを構成するサーバ装置、クライアント装置、出力装置間のデータの受け渡しにアプリケーションコンテナを用いることで、印刷ジョブを処理する組み込みアプリケーションが出力装置内にあるかどうかを気にすることなく、印刷ジョブを処理できるという効果がある。
【0097】
[そのほかの実施の態様]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0098】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコード(図3乃至図6および図10乃至図14の手順のプログラムコード)を記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【0099】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0100】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0101】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0102】
【発明の効果】
以上説明したように、クライアントが必要な機能、たとえば帳票を印刷する機能を有していなくとも、その機能を備えた機器に対してデータを転送させ、転送先の機器で機能を果たさせる(たとえば印刷を行わせる)ことができる。クライアントはどの機器が必要な機能を有しているか知らなくともその機能を他の機器により遂行させる(すなわち印刷させる)ことができる。
【0103】
また、帳票を印刷する機能は、帳票生成システム内の少なくとも1つの装置が備えていれば、その装置において全ての帳票を印刷させることができる。また、帳票の印刷機能を有する装置の帳票データの転送は、HTMLで規定された機能を利用して行うために、クライアントには特別のアプリケーションプログラムは不要であり、一般的に入手可能なウエブブラウザさえ備えていればよい。
【図面の簡単な説明】
【図1】本発明のサーバおよびクライアントコンピュータの構成を説明するブロック図である。
【図2】本発明のプリンタの構成を説明するブロック図である。
【図3】本発明の第1の実施形態のクライアントウエブブラウザのサーバリクエスト送信時のフローチャートである。
【図4】本発明の第1の実施形態のサーバコンピュータのデータ配信リクエスト受信時のフローチャートである。
【図5】本発明の第1の実施形態のクライアントウエブブラウザのサーバレスポンス受信時のフローチャートである。
【図6】本発明の第1の実施形態のプリンタのメール受信時のフローチャートである。
【図7】本発明の第1実施形態に係る帳票生成システムの構成を説明するブロック図である。
【図8】本発明の第1実施形態に係る帳票生成手順のシーケンスを示す図である。
【図9】本発明の第2実施形態のアプリケーションコンテナの概念図である。
【図10】本発明の第2実施形態のクライアントコンピュータでの印刷指示時のフローチャートである。
【図11】本発明の第2の実施形態のプリンタの印刷予約要求受信時のフローチャートである。
【図12】本発明の第2実施形態のサーバコンピュータのデータ配信要求受信時のフローチャートである。
【図13】本発明の第2実施形態のプリンタの印刷データ受信時のフローチャートである。
【図14】本発明の第2実施形態のプリンタの印刷データ処理時のフローチャートである。
【符号の説明】
101 CPU
102 RAM
103 ROM
104 システムバス
1000 サーバコンピュータ
201 CPU
202 RAM
203 ROM
204 システムバス
2000 プリンタ
Claims (8)
- クライアント機器に接続された帳票データ作成装置であって、
クライアント機器から、帳票作成要求と共に定型データの指定と可変データとを受信する受信手段と、
前記定型データの指定に基づいて獲得した定型データと前記可変データとを合成して表示用データを作成する表示用データ作成手段と、
前記定型データの指定と前記可変データと印刷可能な機器の指定とを含む印刷用データを作成する印刷用データ作成手段と、
前記表示用データと前記印刷用データとを併せて前記クライアント機器に送信する送信手段とを備えることを特徴とする帳票データ作成装置。 - 前記表示用データ作成手段および前記印刷用データ作成手段は、前記表示用データおよび前記印刷用データをHTML形式で作成し、前記表示用データ作成手段は、前記定型データからHTML形式で表現できないデータを削除して表示用データを作成し、前記印刷用データ作成手段は、前記定型データの指定と前記可変データとについて非表示の属性を付与して印刷用データを作成することを特徴とする請求項1に記載の帳票データ作成装置。
- 前記印刷用データ作成手段は、前記印刷可能な機器の指定として、前記定型データと前記可変データとを合成するための帳票作成手段と、作成された帳票データを印刷するための印刷手段とを有する機器で利用可能な電子メールアドレスを前記印刷用データに含ませることを特徴とする請求項1又は2に記載の帳票データ作成装置。
- クライアント機器に接続された帳票データ作成方法であって、
クライアント機器から、帳票作成要求と共に受信した定型データの指定と可変データとを受信する受信工程と、
前記定型データの指定に基づいて獲得した定型データと前記可変データとを合成して表示用データを作成する表示用データ作成工程と、
前記定型データの指定と前記可変データと印刷可能な機器の指定とを含む印刷用データを作成する印刷用データ作成工程と、
前記表示用データと前記印刷用データとを併せて前記クライアント機器に送信する送信工程とを備えることを特徴とする帳票データ作成方法。 - 前記表示用データ作成工程および前記印刷用データ作成工程は、前記表示用データおよび前記印刷用データをHTML形式で作成し、前記表示用データ作成工程は、前記定型データからHTML形式で表現できないデータを削除して表示用データを作成し、前記印刷用データ作成工程は、前記定型データの指定と前記可変データとについて非表示の属性を付与して印刷用データを作成することを特徴とする請求項4に記載の帳票データ作成方法。
- 前記印刷用データ作成工程は、前記印刷可能な機器の指定として、前記定型データと前記可変データとを合成するための帳票作成工程と、作成された帳票データを印刷するための印刷工程とを有する機器で利用可能な電子メールアドレスを前記印刷用データに含ませることを特徴とする請求項4又は5に記載の帳票データ作成方法。
- クライアント機器に接続されたコンピュータにより帳票データを作成させるためのプログラムであって、
クライアント機器から、帳票作成要求と共に定型データの指定と可変データとを受信する受信手段と、
前記定型データの指定に基づいて獲得した定型データと前記可変データとを合成して表示用データを作成する表示用データ作成手段と、
前記定型データの指定と前記可変データとを含む印刷用データを作成する印刷用データ作成手段と、
前記表示用データと前記印刷用データとを併せて前記クライアント機器に送信する送信手段ととしてコンピュータを機能させることを特徴とするプログラム。 - クライアント装置と、該クライアント装置に接続されたサーバ装置および印刷装置とを備える帳票作成システムであって、
前記サーバ装置は、前記クライアント装置から、帳票作成要求と共に定型データの指定と可変データとを受信する受信手段と、前記定型データの指定に基づいて獲得した定型データと前記可変データとを合成して表示用データを作成する表示用データ作成手段と、前記定型データの指定と前記可変データとを含む印刷用データを作成する印刷用データ作成手段と、前記表示用データに前記印刷用データを付加して前記クライアント装置に送信する送信手段とを有し、
前記クライアント装置は、前記サーバ装置から受信した前記表示用データを表示する表示手段と、前記印刷用データを当該データ中において指定された宛先に送信する転送手段とを有し、
前記転送手段による前記印刷用データの宛先の装置は、前記クライアント装置から受信した印刷用データに含まれる前記定型データに前記可変データをオーバレイして帳票データを作成する手段と、作成した帳票データを印刷する印刷手段とを有することを特徴とする帳票作成システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003204816A JP2005050045A (ja) | 2003-07-31 | 2003-07-31 | 帳票データ作成装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003204816A JP2005050045A (ja) | 2003-07-31 | 2003-07-31 | 帳票データ作成装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005050045A true JP2005050045A (ja) | 2005-02-24 |
Family
ID=34263703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003204816A Withdrawn JP2005050045A (ja) | 2003-07-31 | 2003-07-31 | 帳票データ作成装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005050045A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020013195A (ja) * | 2018-07-13 | 2020-01-23 | キヤノン株式会社 | プリントサーバー、制御方法、およびそのプログラム |
US20220091806A1 (en) * | 2019-12-19 | 2022-03-24 | Lob.com, Inc. | Method and system for aggregate asset routing |
US11699124B2 (en) | 2019-12-19 | 2023-07-11 | Lob.com, Inc. | Method and system for physical asset tracking |
US11782662B1 (en) | 2022-03-25 | 2023-10-10 | Lob.com, Inc. | Method and system for asset routing |
-
2003
- 2003-07-31 JP JP2003204816A patent/JP2005050045A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020013195A (ja) * | 2018-07-13 | 2020-01-23 | キヤノン株式会社 | プリントサーバー、制御方法、およびそのプログラム |
JP7086767B2 (ja) | 2018-07-13 | 2022-06-20 | キヤノン株式会社 | プリントサーバー、制御方法、およびそのプログラム |
US20220091806A1 (en) * | 2019-12-19 | 2022-03-24 | Lob.com, Inc. | Method and system for aggregate asset routing |
US11699124B2 (en) | 2019-12-19 | 2023-07-11 | Lob.com, Inc. | Method and system for physical asset tracking |
US11748052B2 (en) * | 2019-12-19 | 2023-09-05 | Lob.com, Inc. | Method and system for aggregate asset routing |
US11782662B1 (en) | 2022-03-25 | 2023-10-10 | Lob.com, Inc. | Method and system for asset routing |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11412030B2 (en) | Service providing system for scanning over a network | |
US7570374B2 (en) | Document generation apparatus and file conversion system | |
US6222634B1 (en) | Apparatus and method for printing related web pages | |
US7477167B2 (en) | Character string processing apparatus, character string processing method, and image-forming apparatus | |
US6928462B2 (en) | System and method for distributed processing of non-processable elements of a document to be rendered on a client | |
JPH10233860A (ja) | データ通信装置及びその方法 | |
JP5595032B2 (ja) | 情報処理システム、その制御方法、情報処理装置、情報提供装置、画像処理装置およびプログラム | |
JP2002196901A (ja) | 仮想的な印刷プレビュー方法 | |
US8570581B2 (en) | Image forming method and system using XHTML-print data | |
JP4590080B2 (ja) | プリンタシステム及びその制御方法 | |
JPH07175603A (ja) | プリント処理システム | |
JP3533811B2 (ja) | データ変換装置、データ変換装置を備えたネットワークシステムおよびデータ伝送方法 | |
JP3519240B2 (ja) | 印刷制御装置及びコンピュータ読み取り可能な記憶媒体 | |
US7508539B2 (en) | Image forming device, layouter, and renderer | |
JPH11143670A (ja) | インターネット情報印刷システム | |
JP2005050045A (ja) | 帳票データ作成装置及び方法 | |
JP4045800B2 (ja) | プリントシステム及び方法 | |
JP2004062243A (ja) | クライアントサーバシステム、クライアント、サーバ、コンピュータ装置、印刷用イメージの作成方法及びプログラム | |
JP2000090000A (ja) | クライアントコンピュ―タの操作方法 | |
US7333979B2 (en) | Image processing apparatus having web server function | |
JPH10307831A (ja) | 文書処理システム | |
JP4463282B2 (ja) | 情報管理装置および方法 | |
US20020032726A1 (en) | Method and device for processing an electronic document in a communication network | |
JPH11283006A (ja) | データ供給装置および印刷制御装置およびデータ処理装置およびデータ処理装置のデータ処理方法およびデータ供給装置のデータ処理方法および印刷制御装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JPH11203080A (ja) | 画像処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20061003 |