以下、添付図面を参照しながら、本発明に係る印刷システム1の好適な実施形態について詳細に説明する。
図1は、本発明に係る印刷システム1の構成の一例を示す図である。
図1に示すように、例えば、1又は複数の複合機100(例えば各フロアに数台ずつの画像形成装置)、1又は複数のクライアントPC101(例えば管理者に1台、ユーザ毎に1台ずつの情報処理装置)、1又は複数の認証サーバ102(例えば拠点毎に設置)、1又は複数のワークフローサーバ103(例えば拠点毎に設置)がLAN(Local Area Network)110を介して接続される。
複合機100は、プリンタ、スキャナ、コピー、ファクシミリ等の機能を有する画像形成装置である。また、カードリーダ3040で読み取られたカードIDに応じた利用権限に従って、プリンタ、スキャナ、コピー、ファクシミリの各機能のユーザ利用を制限することが可能である。
クライアントPC101は、複合機100の設定を行うPCで、ネットワークを介してHTTP(Hyper Text Transfer Protocol)で複合機100と通信することができる(例えば、マイクロソフト社のInternet Explorer(登録商標))機能を搭載したPCである。また、ユーザから印刷ジョブを投入するためのPCでもあり、ユーザがアプリケーションからプリンタドライバを介して印刷ジョブを生成し、プリンタドライバがLPR(Line PRinter Daemon)やその他の印刷プロトコルを用いて、印刷ジョブを複合機100に送信することができる。
なお、本実施形態ではXML形式のXPSデータを複合機100に送信することで、複合機100で印刷を行うことが可能となるよう構成されている。
また、上記Internet Explorer(登録商標)のようなブラウザを用いて、ワークフローサーバ103にアクセスし、ワークフローサーバ103上で動作する社内システムの利用などができる。例えば、各種申請や各種情報取得や各種業務管理を行うことができる。
認証サーバ102は、複合機100やワークフローサーバ103がユーザ認証を行うためのサーバである。カードIDに紐づくユーザ名、メールアドレス、利用権限等のデータを持っている。認証サーバ102は、複合機100やワークフローサーバ103からの問い合わせに対して、ユーザの有無と、ユーザが存在する場合は、そのユーザ情報を返答する機能を有する。認証サーバ102は、1つのサーバで構成しても良い。また、認証サーバ102は、プライマリおよびセカンダリの2つのサーバによって構成しても良い。また、認証サーバ102は、3つ以上のサーバによって構成しても良い。
ワークフローサーバ103は、社内システムなどのワークフローシステムを動作させるためのサーバである。クライアントPC101は、ワークフローサーバ103にアクセスし、各種申請や各種情報取得や各種業務管理などを行うことができる。
ワークフローサーバでは、申請された情報に従って、複合機100で印刷するためのXPSデータを生成し、クライアントPC101に送信する。
また、ワークフローサーバ103は、認証サーバ102と連携して、ワークフローシステムへのアクセスを制御したり、アクセスしたユーザの特定をしたりすることも可能である。ワークフローサーバ103は、1つのサーバで構成しても良い。また、ワークフローサーバ103は、プライマリおよびセカンダリの2つのサーバによって構成しても良い。また、ワークフローサーバ103は、3つ以上のサーバによって構成しても良い。また、ワークフローサーバ103は、ワークフローシステムのすべての機能を1台に搭載せずに、各機能を分散させてサーバを構成してもよい。例えば、申請システム用のワークフローサーバ、業務管理用のワークフローサーバ、などのように機能を水平分散するような構成であってもよい。
次に、図2、3を参照しながら、クライアントPC101、認証サーバ102、ワークフローサーバ103、複合機100について説明する。
図2は、クライアントPC101、認証サーバ102、ワークフローサーバ103のハードウエア構成を示す図、図3は、複合機100のハードウエア構成を示す図である。
図2に示すように、クライアントPC101、認証サーバ102、ワークフローサーバ103では、システムバス2004を介してCPU(Central Processing Unit)2001、RAM(Random Access Memory)2002、ROM(Read Only Memory)2003、入力コントローラ2005、ビデオコントローラ2006、メモリコントローラ2007、通信I/Fコントローラ2008が接続される。
CPU2001は、システムバス2004に接続される各デバイスやコントローラを統括的に制御する。
ROM2003あるいは外部メモリ2011は、CPU2001の制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、各サーバあるいは各PCが実行する各種プログラム等を保持している。
RAM2002は、CPU2001の主メモリ、ワークエリア等として機能する。CPU2001は、処理の実行に際して必要なプログラム等をROM2003あるいは外部メモリ2011からRAM2002にロードし、ロードしたプログラムを実行することで各種動作を実現する。
入力コントローラ2005は、キーボード(KB)2009やマウス(図示しない)等のポインティングデバイス等からの入力を制御する。
ビデオコントローラ2006は、CRT(Cathode Ray Tube)2010等の表示器への表示を制御する。表示器はCRTに限らず、液晶ディスプレイ等の他の表示器でもよい。これらは、必要に応じて管理者が使用する。
メモリコントローラ2007は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、あるいは、PCMCIA(Personal Computer Memory Card International Association)カードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ2011へのアクセスを制御する。
通信I/Fコントローラ2008は、LAN110のようなネットワークを介して外部機器と接続・通信し、ネットワーク上での通信制御処理を実行する。通信I/Fコントローラ2008は、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP(User Datagram Protocol)を用いた通信等が可能である。
CPU2001は、例えばRAM2002内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT2010上に表示することが可能である。また、CPU2001は、CRT2010上のマウスカーソル(図示しない)等によるユーザ指示を可能とする。
クライアントPC101、認証サーバ102、ワークフローサーバ103のハードウエア上で動作する各種プログラムは、外部メモリ2011に記録されており、必要に応じてRAM2002にロードされ、CPU2001により実行される。プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等は、外部メモリ2011に格納されている。
次に、複合機100のハードウエア構成について説明する。
図3に示すように、複合機100は、コントローラユニット3020と、操作部3030と、カードリーダ3040と、プリンタ3050と、スキャナ3060の各ハードウエア構成を有して構成されている。
また、コントローラユニット3020は、CPU3001と、RAM3002と、ROM3003と、ハードディスクドライブ(HDD)3004と、ネットワークインタフェース(Network I/F)3005と、モデム(MODEM)3006と、操作部インタフェース(操作部I/F)3007と、イメージバスインタフェース(IMAGE BUS I/F)3008と、外部インタフェース(外部I/F)3009と、システムバス3010と、ラスタイメージプロセッサ(RIP)3011と、プリンタインタフェース(プリンタI/F)3012と、スキャナインタフェース(スキャナI/F)3013と、画像処理部3014と、画像バス3015の各ハードウエア構成を有して構成されている。
コントローラユニット3020は、画像入力デバイスとして機能するスキャナ3060や、画像出力デバイスとして機能するプリンタ3050と接続する一方、ネットワーク110や、例えばPSTN(Public Switched Telephone Network)またはISDN(Integrated Services Digital Network)等の公衆回線網(WAN)と接続することで、画像データやデバイス情報の入出力を行う。
CPU3001は、システムバス3010及び画像バス3015に接続される各デバイスを統括的に制御するプロセッサである。
RAM3002は、CPU3001が動作するためのワークメモリであり、また、プログラムを記録するためのプログラムメモリや、画像データを一時記録するための画像メモリの機能も有する。例えば、カードリーダ3040で読み取ったカードIDなどが記憶される。
ROM3003は、システムのブートプログラムや各種の制御プログラムが格納されている。HDD3004は、システムを制御するための各種のプログラム及び画像データ等を格納する。なお、ROM3003またはHDD3004には、図13に示すジョブ情報DB221や、ジョブDB260が格納されている。なお、HDD3004は情報を永続的に記憶するための媒体であって、その形態をHDDに限定するものではない。例えば、SSD(Solid State Drive)などの媒体であってもよい。
Network I/F3005は、LAN110に接続し、データ入出力を行う。MODEM3006は、公衆回線網に接続し、FAXにおける送受信等のデータの入出力を行う。
操作部I/F3007は、ユーザインタフェース(UI)である操作部3030におけるインタフェースであり、操作部3030に表示する画像データを操作部3030に対して出力する。また、操作部I/F3007は、本システムのユーザが操作部3030から入力した情報(例えば、ユーザ情報等)をCPU3001に伝える役割をする。なお、操作部3030は、キーボードに相当するタッチパネルを有する表示部を備え、当該表示部に表示されたキーボードのボタンを、ユーザが押下(指等でタッチ)することにより、各種の指示を行うことができる。
IMAGE BUS I/F3008は、システムバス3010と、画像データを高速で転送する画像バス3015とを接続し、データ構造を変換するバスブリッジである。
外部I/F3009は、USB、IEEE1394、プリンタポート、RS−232C等の外部入力を受け付けるインタフェースである。本実施形態においては、外部I/F3009には、ICカード認証で必要となるICカードの情報を読み取るためのカードリーダ3040が接続されている。そして、CPU3001は、この外部I/F3009を介してカードリーダ3040によるICカードからの情報の読み取りを制御し、当該ICカードから読み取られた情報を取得可能となっている。
以上の3001〜3009に示すデバイスがシステムバス3010上に配置され、相互に通信可能となっている。
RIP3011は、例えば、PDLコードや、XPSデータ内のXML形式のページデータ等のベクトルデータをビットマップイメージに展開する。
プリンタI/F3012は、プリンタ3050とコントローラユニット3020とを接続し、画像データの同期系/非同期系の変換を行う。
スキャナI/F3013は、スキャナ3060とコントローラユニット3020とを接続し、画像データの同期系/非同期系の変換を行う。
画像処理部3014は、入力画像データに対して、補正処理、加工処理、編集処理を行ったり、プリント出力画像データに対して、プリンタの補正処理、解像度変換処理等を行ったりする。また、画像処理部3014は、これらの処理に加えて、画像データの回転処理や、多値画像データに対してはJPEG、2値画像データに対してはJBIG、MMR、MH等の圧縮伸張処理を行う。
以上の3008、3011〜3014に示すデバイスが画像バス3015上に配置され、相互に通信可能となっている。画像バス3015は、例えば、PCI(Peripheral Component Interconnect)バスまたはIEEE1394で構成されている。
操作部3030は、具体的に、LCD(Liquid Crystal Display)表示部を有し、当該LCD表示部上にタッチパネルシートが貼られており、本システムの操作画面を表示するとともに、表示した操作画面のキー(ボタン)が押されると、その位置情報が操作部I/F3007を介してCPU3001に伝えられる。また、操作部3030は、各種の操作キーとして、例えば、スタートキー、ストップキー、IDキー、リセットキー等のキーボード機能を備える。
ここで、操作部3030のスタートキーは、例えば、原稿画像の読み取り動作を開始する際などに操作される。このスタートキーの中央部には、例えば、緑と赤の2色のLED(Light Emitting Diode)があり、その各色の発光によってスタートキーが使える状態にあるかどうかが示される。また、操作部3030のストップキーは、例えば、稼働中の動作を止める際などに操作される。また、操作部3030のIDキーは、例えば、ユーザ(使用者)のユーザIDを入力する際などに操作される。また、操作部3030のリセットキーは、例えば、操作部3030による設定を初期化する際などに操作される。
カードリーダ3040は、CPU3001からの制御により、認証カードに相当するICカード(例えば、ソニー(登録商標)社のフェリカ(FeliCa)(登録商標))内に記憶されているユーザ識別情報を読み取るものである。カードリーダ3040で読み取られたユーザ識別情報は、外部I/F3009を介してCPU3001へ通知される。
プリンタ3050は、例えば、ラスタイメージデータを用紙上に画像として変換するものである。その変換方式としては、感光体ドラムや感光体ベルトを用いた電子写真方式や、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの変換方式を用いても構わない。プリンタ3050のプリント動作の起動は、CPU3001からの指示によって開始される。なお、プリンタ3050には、異なる用紙のサイズまたは異なる用紙の向きを選択できるように複数の給紙段が構成されており、それぞれの給紙段に対応した用紙カセットが設けられている。
スキャナ3060は、原稿となる紙上の画像を照明し、CCD(Charge Coupled Device)ラインセンサを用いて原稿を走査することで、原稿の画像をラスタイメージデータとして電気信号に変換する。原稿用紙は原稿フィーダのトレイにセットされ、複合機100のユーザが操作部3030から読み取り起動指示を行うことにより、CPU3001がスキャナ3060に指示を与え、フィーダは、原稿用紙を1枚ずつフィードして原稿の画像の読み取り動作を行う。
以上のような構成によって、複合機100は、スキャナ3060から読み込んだ画像データをLAN110上に送信したり、LAN110から受信した印刷データ(XPSデータ)をプリンタ3050で印刷出力したりすることができる。また、複合機100は、スキャナ3060から読み込んだ画像データをMODEM3006から公衆回線網上にFAX送信したり、公衆回線網からFAX受信した画像データをプリンタ3050で印刷出力したりすることができる。
次に、図4、10、11、12、13、14、15、16、17、18、19を参照しながら、印刷システム1の機能と利用するデータについて説明する。
図4は、本発明に係る印刷システム1の機能構成を示すブロック図、図10は、クライアントPC101のCRT2010に表示される表示画面の一例を示すイメージ図、図11は、複合機100の操作部3030に表示される表示画面の一例を示すイメージ図、図12は、ユーザ情報900の一例を示す図、図13は、書誌情報910の一例を示す図、図14は、ジョブ920の一例を示す図、図15は、XPSファイル930の一例を示す図、図16は、前処理データ941の一例を示す図、図17は、後処理データ951の一例を示す図、図18は、文字データ970の一例を示す図、図19は、図形データ980の一例を示す図である。
図4を用いて、本実施形態の各装置の機能について説明する。
まず、クライアントPC101の処理を実行するための機能について説明する。
クライアントPC101は、アプリケーション部300、プリンタドライバ部301、N/W通信部302、ウェブブラウザ部303等を有する。
アプリケーション部300は、ユーザにGUI(Graphic User Interface)を提供し、ユーザの目的に適った画像データを生成する。
プリンタドライバ部301は、アプリケーション部300が生成したXPS(XML Paper Specification)ファイル930を受け取り、XPSファイル930に対して、書誌情報910を付与し、ジョブ920を生成する。
図14に示すように、ジョブ920には、書誌情報910、XPSファイル930等が含まれる。なお、書誌情報910は複合機100とプリンタドライバが通信する際のプロトコル上でXPSファイルを送信する際のヘッダー情報として付加されるものであるが、XPSファイル内に書誌情報ファイルを格納するように構成することも可能である。
図13に示すように、書誌情報910には、ジョブオーナ911、ジョブ名912、印刷方法913、カラーモード914等が含まれる。
ジョブオーナ911は、ジョブを作成したユーザの名前を表わす情報であり、クライアントPCにログインしたユーザのユーザ名等である。なお、複合機100にログインしたユーザのユーザ情報900のユーザ名902と一致する情報で、ユーザのジョブを特定する際に利用される。
ジョブ名912は、ジョブを識別するための情報である。マイジョブ画面2100上のジョブリストにジョブの名称として表示される。
印刷方法913は、ジョブ920を印刷するときの体裁を表わす情報である。例えば、片面印刷、両面印刷、製本印刷などの情報が設定される。
カラーモード914は、ジョブ920を印刷するときの印刷色を表わす情報である。例えば、カラー、モノクロ、オートなどの情報が設定される。
図15に示すように、XPSファイル930は、前処理ファイル940、後処理ファイル950、ページディレクトリ960、リソースディレクトリ990などから構成され、これらのファイルやディレクトリをZIP形式でデータ圧縮したものである。
なお、XPSファイルについて、より具体的には、XPSファイルは「_rels/.rels」「FixedDocumentSequence」「FixedDocument」「FixedPage」「イメージファイルやフォントファイル(リソースファイル)」「プリントチケット」で構成され、これらのファイルがアーカイブされたアーカイブデータである。
上記各ファイルは以下のとおりである。
a)_rels/.rels:文書データとしてXPSデータの開始点となるパーツである。後述するFixedDocumentSequence(以下、「FDS」と略す。)への参照タグを有する。
b)FDS:一つの文書データの構成情報が記述されたパーツである。後述するFixedDocument(以下、「FD」と略す。)への参照タグを有する。なお、一つのデータは複数のドキュメントを有する場合がある。つまり、FDSは、複数のFDへの参照タグを有する場合がある。
c)FD:一つのドキュメントの構成情報が記述されたパーツ(ページ構成データのファイル)である。FixedPage(以下、「FP」と略す。)への参照タグを有する。なお、一つのドキュメントは複数のページを有する場合がある。つまり、FDは、複数のFPへの参照タグを有する場合がある。
d)FP:印刷対象(出力対象)となるページ情報が記述されたパーツ(出力対象データのファイル)である。必要に応じて、イメージファイルやフォントファイルへの参照タグを有する場合がある。例えば、当該ページにイメージの描画が存在する場合は、当該イメージファイルへの参照タグを有することになる。なお、このFPには、描画するための印刷データが記憶されている。
なお、本実施形態では、「FixedPage」をページディレクトリ960のページファイルとして説明する。また、イメージファイルやフォントファイル(リソースファイル)」をリソースディレクトリ990の各リソースファイルとして説明する。また、プリントチケットは必要におじて保持するファイルであり、プリントチケットには、例えば印刷体裁の設定情報等を記憶することができる。なお本実施形態の前処理ファイル940、後処理ファイル950はプリントチケットと同等のファイルとしてアーカイブデータに格納されている。
なお、前処理を指定しないXPSファイル930であれば、前処理ファイル940を含まない構成であってもよい。同様に、後処理を指定しないXPSファイル930であれば、後処理ファイル950を含まない構成であってもよい。同様に、特定のリソース(フォントデータや画像データ)を必要としないXPSファイル930であれば、リソースディレクトリ990を含まない構成にすることも可能である。
また、本実施形態では、前処理としてスキャンを行う制御情報と前処理ファイル940に、後処理として印刷を行う制御情報を後処理ファイル950に記憶させる構成としたが、後処理は印刷のみとする場合には、後処理ファイル950を保持しない構成をとることも可能である。
この場合、スキャンを行う制御情報をFixedPageファイル内に記述して、印刷指示後のXPSファイルを画像データに変換する際のXPSファイルの解析中にスキャンを行う制御情報の有無を判断するようにしてもよい。
印刷指示後(印刷実行中)にスキャンを行う制御情報の有無を判断する場合は、ステップS423の印刷処理中にステップS302〜S307の処理を行うことで実現することが可能である。
XPSファイル930は、PDLデータと同様に印刷データをXML形式で表現したファイルであり、マイクロソフト社が仕様を定義しているファイル形式である。PDLファイルは、印刷データを1ファイルで記述したデータであるのに対して、XPSファイルは、印刷データを複数のファイルで記述したデータであることが特徴である。具体的には、PDLファイルは、画像やフォントを直接ページに埋め込んで各プリンタに合わせた言語で記述したバイナリデータの1ファイル構成である。一方、XPSファイルは、画像やフォントなどの各リソースをファイルとして独立させ、さらにページはXML(eXtensible Markup Language)で記述され、さらに各ページ独立したファイルで構成され、さらにそれらすべてのファイルを圧縮して一つにまとめたファイル構成であることが特徴となっている。
前処理ファイル940は、ジョブ920を実行する前に処理されるべき内容が記述されるファイルである。このファイルは、形式は特に問わないが、XPSの仕様に従って、XMLで記述されるものとする。
前処理ファイル940には、1又は複数の前処理データ941が含まれる。ジョブ920を実行する前に処理する内容が複数ある場合は、前処理データ941は複数記述される。また、前処理が存在しない場合は、前処理ファイル940自体が存在しない。
図16に示すように、前処理データ941には、種類942、属性943、メッセージ944などが含まれる。
種類942には、前処理で行う処理の種類が記述される。例えば、種類942の値として、スキャンが設定される。
属性943には、種類942の処理を実行するための属性が記述される。例えば、種類942がスキャンと設定されている場合、スキャン後のデータの格納先や、スキャンデータのカラーや、解像度、濃度、などが設定される。ここでの格納先とは、後述する画像ディレクトリ993内の特定の画像ファイル994へのファイルパスが指定されうる。
これにより、前処理でスキャンを行った後に、あらかじめ指定された特定の画像(例えば、図20の4005や図21の4015)とスキャン画像(例えば、図22の4025)を入れ替えることが可能となる。
メッセージ944には、前処理実行時に複合機100の操作部3030に表示する文字列が設定される。例えば、スキャン画面2200のメッセージ2201として利用される。これにより、ジョブ920の前処理データを書き換えるだけで、スキャン時のメッセージを変更することが用意になる。よって、複合機100に搭載しているプログラムを変更することなく、柔軟にワークフローを実行することができる。例えば、資格証明書が必要なジョブであれば、メッセージには「資格証明書をスキャンしてください。」と設定したり、電車遅延証明書が必要なジョブであれば、「遅延証明書をスキャンしてください。」と設定したりできる。これにより、ユーザは、何をスキャンすべきか、が明確になるので、ユーザにとって利便性があがる。
後処理ファイル950は、ジョブ920を実行した後に処理されるべき内容が記述されるファイルである。このファイルは、形式は特に問わないが、XPSの仕様に従って、XMLで記述されるものとする。
後処理ファイル950には、1又は複数の後処理データ951が含まれる。ジョブ920を実行した後に処理する内容が複数ある場合は、後処理データ951は複数記述される。また、後処理が存在しない場合は、後処理ファイル950自体が存在しない。
図17に示すように、後処理データ951には、種類952、属性953、メッセージ954などが含まれる。
種類952には、後処理で行う処理の種類(出力方法)が記述される。例えば、種類952の値として、FAX、メール、印刷、サーバなどの出力方法が設定される。これにより、ジョブ実行後に、自動でジョブデータをFAXしたり、メールしたり、印刷したり、ファイルサーバへ送信したりすることが可能となる。また、複数の処理を指定できるので、ユーザが印刷後に印刷された紙文書を用いてFAX、メールなど送信方法毎に操作する手間を省くことができる。
属性953には、種類952の処理を実行するための属性が記述される。例えば、種類952がFAXと設定されている場合には、FAXの送信先電話番号や、リトライ回数、タイムアウト値、濃度などが設定されうる。また、種類952がメールと設定されている場合には、メール送信先のメールアドレスや、リトライ回数、タイムアウト値などが設定されうる。また、種類953が印刷と設定されている場合には、印刷枚数や、カラー属性、片面・両面・製本などの印刷方法などが設定されうる。また、種類953がサーバと設定されている場合には、ファイルサーバの特定のディレクトリパス、またファイルサーバがアクセス制御されている場合は、認証用のユーザとパスワードとドメインなどが設定されうる。
あらかじめ属性953にこれらの必要情報を埋め込んでおくことで、ユーザが複合機100操作時に誤って送信先を設定してしまうことを防ぐことができる。複合機100の操作部3030は、クライアントPC101のCRT2010に比べて解像度が低かったり、設置位置がユーザの目線より下で見にくかったりして誤操作のリスクが高い。
よってあらかじめクライアントPC101で設定できれば、複合機100で誤操作のリスクを軽減できる。また、定型ジョブとして宛先を埋め込んだジョブをテンプレート化しておけば、送信先を誤るリスクをさらに回避することができる。
本実施形態では、すでに属性に宛先が埋め込まれているので、選択間違いによる誤送信を防ぐことができる。
また、定型ジョブ作成時には、まだ送信先などの属性が決まっていないこともある。この場合には、種類952には値を設定するが、属性953には何も設定しないことも可能である。
これにより、より柔軟なワークフローを実現でき、ユーザがより使いやすいシステムを実現している。
メッセージ954には、後処理時に複合機100の操作部3030に表示する文字列が設定される。例えば、属性入力画面2300のメッセージ2301として利用される。
ページディレクトリ960には、1又は複数のページファイル961が含まれる。また、このページファイル961は、印刷データのページ数分存在する。ページファイル961には、文字データ970、図形データ980などが含まれる。各ページファイル961はXPSの仕様に従ってXMLで記述される。基本的に文字データ970と図形データ980を組み合わせてページが記述される。
図18に示すように、文字データ970には、ソース971、属性972、文字列973などが含まれる。ソース971には、文字データを描画するためのフォントを定義したフォントファイル992のファイルパスを指定する。属性972には、文字データを描画する開始位置(例えばX座標、Y座標)や、文字サイズ、太字、イタリック、斜体などの装飾などの属性を指定する。文字列973は、文字データを描画する文字列が設定される。
図19に示すように、図形データ980には、ソース981、属性982などが含まれる。ソース981には、図形データを描画するための画像を定義した画像ファイル994のファイルパスを指定する。属性982には、図形データを描画する開始位置や、画像のサイズ、縮小率などが設定される。また、図形データ980は、特定の画像を使用しなくてもよい。ソース981に何も指定しない場合には、属性にベクタ情報を設定することで、円形、四角、三角などの図形を描画させることも可能である。
リソースディレクトリ990には、フォントディレクトリ991、画像ディレクトリ993などが含まれる。
フォントディレクトリ991には、1又は複数のフォントファイル992が含まれる。フォントファイル992は、文字データ970を描画するためのフォントの情報が記述されている。
画像ディレクトリ993には、1又は複数の画像ファイル994が含まれる。
画像ファイル994は、JPEG(Joint Photographic Experts Group)、PNG(Portable Network Graphics)、GIF(Graphic Interchange Format)などの形式のファイルであり、各ページ内に挿入されるデータである。
なお、XPSファイルのファイル構成については上述したが、XPS V1.0の仕様では、XPSファイル930内の最上位の階層に、_relsディレクトリが存在し、「_rels/.rels」ファイルが格納されている。次に、Documentsディレクトリが存在し、「FixedDocument」「FixedPage」ファイルが格納されている。次にMetaDataディレクトリが存在し、「Thumbnail」「PrintTicket」ファイルなどが格納されている。次に、「FixedDocumentSequenceファイル」がXPSファイルとして構成されている。
なお本実施形態では、すべてのディレクトリ、ファイルを図示せずに、本実施形態を構成する上で必要不可欠なディレクトリやファイルのみ図示している。
また、上記構成は一例であり、本実施形態では、構成上必要なディレクトリやファイルのみ図示している関係上、いくつかの階層構造を省略して図示している。
よって、省略している定義上必要なディレクトリ、ファイルを含んだ構成であったり、省略した階層構造を含んだ構成であったりしたとしても、実現可能であることは言うまでもない。
N/W通信部302は、LAN110等のネットワークを介して外部機器と接続・通信を行うもので、TCP/IPやUDPなどの通信プロトコルに従って通信を制御する。これによりクライアントPC101は、同じくLAN110に接続された複合機100、認証サーバ102、ワークフローサーバ103等と通信が可能となる。
ウェブブラウザ部303は、外部システムとのインタフェースとなる。ワークフローサーバ103などのウェブサーバとHTTP通信を行うことができる。ユーザ操作を受け付けてウェブサーバにリクエストを送ったり、ウェブサーバからのレスポンス(HTML文書)をCRT2010に表示したりする。
次に認証サーバ102の処理を実行するための機能について説明する。
認証サーバ102は、認証管理部400、N/W(Network)通信部401、認証DB402等を有する。認証サーバ102は、冗長構成をとることが可能で、複数台設置してもよい。
認証サーバ102は、システム内でのユーザ情報の検索という役割を有するため、ユーザ情報の格納及び検索機能を持つ情報処理装置であれば種類を問わない。
認証管理部400は、認証DB402のデータを使って外部からの問い合わせに対応する。例えば、NTLMやKerberosなどの認証プロトコルを用いた認証要求を受け付けて、ユーザの認証を行うことができる。また、LDAP(Lightweight Directory Access Protocol)などの検索プロトコルを用いた検索要求を受け付けて、ユーザ情報の検索を行うことができる。認証管理部400は認証や検索を行うことが目的であり、その認証方式やプロトコルは上記に限らない。
また認証方法としては、カード認証とユーザ認証の2種類を提供する。カード認証の際は、カードID901の照合を行う。ユーザ認証の際は、ユーザ名902およびパスワード903の照合を行う。
また認証管理部400は、複合機100からカード情報を受け付けてカードID901の照合(認証)を行ったり、ワークフローサーバ103からユーザ情報を受け付けて、ユーザ名902およびパスワード903の照合(認証)を行ったりする。この結果、照合(認証)に成功すれば、後述するユーザ情報900を返答する。
また認証管理部400は、認証DB402を管理するための機能を提供する。具体的には認証サーバ102の外部メモリ2011に対して、認証DB402の書き込み、読み込み、削除、更新などを行う。
認証DB402は、認証サーバ102の外部メモリ2011に格納される情報である。また認証DB402は、認証サーバ102が複合機100やワークフローサーバ103から認証要求を受け付けた時に、認証処理を行うために必要な情報である。認証DB402は、1又は複数のユーザ情報900を有している。
ユーザ情報900には、カードID901、ユーザ名902、パスワード903、メールアドレス904などが含まれる。
カードID901は、複数のユーザ情報900の中から特定のユーザ情報900を検索するための外部キーとなる。
ユーザ名902は、複合機100を利用する際のユーザ名となる。複合機100の操作ログや操作画面などに表記される情報となる。
パスワード903は、ユーザを照合する際に利用する情報となる。
メールアドレス904は、複合機100から利用ユーザがメールを送信するために必要な情報となる。例えば複合機100でスキャンした画像データをメールで送信する場合などに利用される。
N/W通信部401は、クライアントPC101が有するN/W通信部302と同等の機能を有するものである。
次にワークフローサーバ103の処理を実行するための機能について説明する。
ワークフローサーバ103は、ジョブ編集部500、ワークフロー管理部501、N/W通信部502、定型ジョブDB503等を有する。
ジョブ編集部500は、ワークフローに合わせて定型ジョブの編集を行う。例えば、ワークフローサーバ103は、定型ジョブとしてあらかじめ用意されているジョブ920に対して、クライアントPC101からリクエストを受け付けると、後処理を追加することがある。このとき、ジョブ920を解析して、XPSファイル930の後処理ファイル950に、指定された後処理データ951を追加する機能を有する。
ワークフロー管理部501は、クライアントPC101からのリクエストに応じて、定型ワークフローを提供する。定型ワークフローはあらかじめ用意されている業務フローであり、例えば、立替経費申請や資格取得申請、電故申請、休日出勤申請などがある。クライアントPC101からのリクエストに応じて、申請メニュー画面1100や、申請画面1200、後処理設定画面1300などの画面を提供する。なお、これらの画面はHTML文書としてワークフローサーバ103からクライアントPC101にHTTP送信され、クライアントPC101ではウェブブラウザ部303がそれを解析し、CRT部2010に表示する。
申請メニュー画面1100は、クライアントPC101がウェブブラウザ部303でワークフローサーバ103にアクセスしたときに、ワークフローサーバ103からクライアントPC101に最初に送信される画面である。なお、この画面が表示される前に、ユーザ名およびパスワードを求めるログイン画面が表示されるものとする。この不図示のログイン画面において、ワークフローサーバ103は認証サーバ102と認証を行い、アクセスしたユーザを特定することができる。申請メニュー画面1100には、ユーザ名やメニュー階層等が表示される。また、あらかじめ用意された申請するメニュー1101が表示され、ユーザはそのメニューを選択し申請を行うことができる。
申請画面1200は、申請メニュー1100でメニュー1101のいずれかが選択されたときに表示される画面である。プレビュー1201や前処理1202、後処理1203、後処理追加ボタン1204、実行ボタン1205等から構成される。ユーザはプレビュー1201を利用して、どのような帳票が実行されるのか、をあらかじめ確認することができる。
また、前処理1202を利用して、ジョブ実行時にどのような前処理が行われるのか、を事前に確認することができる。また、後処理1203を利用して、ジョブ実行後にどのような後処理が行われるのか、を事前に確認することができる。
さらに、後処理追加ボタン1204を押下することで、後処理を追加することができる。また、実行ボタン1205を押下すると、該ワークフロージョブを実行することができる。なお、ここで実行されたワークフロージョブは、ワークフローサーバ103のジョブ編集部500で後処理などを追加してXPSファイル930として再構成され、続いてクライアントPC101のプリンタドライバ部301で書誌情報910を追加され、最後に複合機100へ投入される。
後処理設定画面1300は、クライアントPC101で表示される申請画面1200で実行ボタン1205を押下したときに表示される画面である。後処理設定画面1300は、種類の選択1301や属性の選択1302、キャンセルボタン1303、設定ボタン1304等から構成される。種類の選択1301において、印刷、ファクス、メール、ファイルサーバなどの追加したい後処理を設定することができる。属性の選択1302において、種類の選択1301で選ばれた後処理を実行するために必要な属性を設定することができる。
つまり、クライアントPC101(情報処理装置)で出力する方法を指定する。そして、この指定に従って、後処理ファイルが生成される。具体的には、例えば後処理ファイルの4013の出力方法定義情報4016のように出力方法が定義(記述)される。
なお、属性値は種類によって異なるので、種類の選択1301で何かの値が選択されると、属性の選択1302の値は種類に応じて表示内容が変更されるものとする。例えば、種類の選択1301でメールが選択された場合、属性の選択1302では、宛先入力、自分へ送信、実行時に宛先指定などを選択することができる。また、キャンセルボタン1303を押下することで、後処理追加設定をキャンセルすることができる。
この場合、申請画面1200に遷移する。また、設定ボタン1304を押下することで、後処理設定画面1300で設定した後処理をジョブに追加することができる。このボタンを押下すると、申請画面1200に遷移する。なお、追加した後処理は後処理1203に表示される。
N/W通信部502は、クライアントPC101が有するN/W通信部302と同等の機能を有するものである。
定型ジョブDB503は、ワークフローサーバ103の外部メモリ2011に格納される情報である。例えば、立替経費申請や資格取得申請など、あらかじめフォーマットが決まっているジョブを管理者が作成しておき、この定型ジョブDB503に格納される。
次に複合機100の処理を実行するための機能について説明する。
複合機100は、OS(Operating System)部200とアプリケーション部250とで構成される。
OS部200は、複合機100やアプリケーション部250の制御を行う。アプリケーション部250は、OS部200上で動作するアプリケーションであり、OS部200の機能を利用しながらOS部200と協働して各種処理を行う。
OS部200は、N/W通信部201、パネル表示部202、アプリケーション管理部203、XPS解析部204、印刷制御部205、各種サーバ通信部206、ファクス制御部207、スキャナ制御部208等を有する。
N/W通信部201は、クライアントPC101が有するN/W通信部302と同等の機能を有するものである。
パネル表示部202は、複合機100の操作部3030にユーザが複合機100を操作するための画面を表示するためのものである。OS部200で用意された画面を表示したり、アプリケーション部250から指示を受けて画面を表示したりする。
アプリケーション管理部203は、複合機100に搭載されたアプリケーション部250を制御する。データ交換や指示・命令を統括し、OS部200とアプリケーション部250の橋渡しを行う。
XPS解析部204は、XPSファイル930を解析し、ビットマップ画像を作成する。XPSファイル930を直接印刷する際に利用される。
印刷制御部205は、複合機100のプリンタ3050を制御するためのものである。指定されたジョブデータをビットマップ画像に変換し、既知の印刷技術により用紙等のメディアに印刷を行う。
各種サーバ通信部206は、メールサーバ、ファイルサーバなどと通信を行う。ジョブ実行後に画像データをメールで送信したり、画像データをファイルサーバの指定ディレクトリへ格納したりするときに使われる。例えば、SMTP(Simple Mail Transfer Protocol)やFTP(File Transfer Protocol)などのプロトコルに則って通信を行う。
ファクス制御部207は、MODEM3006を制御する。宛先や各属性を指定して、ファクス送受信の一連の処理を実行する。
スキャナ制御部208は、スキャナ3060、スキャナI/F3013、画像処理部3014等を制御する。スキャン読み取りを行ったり、スキャンした原稿を画像データに変換したりといったスキャンに関わる一連の処理を実行する。
アプリケーション部250は、プリンタドライバ通信部251、カードリーダ制御部252、ジョブ解析部253、ジョブ管理部254、ジョブ編集部255、画面制御部256、認証制御部257、ジョブDB260、書誌DB261等を有する。
プリンタドライバ通信部251は、クライアントPC101のプリンタドライバ部301と通信を行う。LPRやRAWなどの印刷プロトコルに従ってクライアントPC101からジョブ(例えば、XPSファイル)を受け付ける。
カードリーダ制御部252は、複合機100に接続されたカードリーダ3040を制御するためのものである。カードリーダ3040にICカードがかざされたというイベント通知を受け取ったり、かざされたICカードからカードIDを読み取るように指令を出したりする。
ジョブ解析部253は、クライアントPC101から受け付けたジョブ920の解析を行う。また、ジョブ920を解析して、書誌情報910やXPSファイル930を取得し、さらに書誌情報910やXPSファイル930そのものの解析も行う。XPSファイル930の解析では、前処理データ941や後処理データ951の読み込みを行う。
ジョブ管理部254は、ジョブDB260や書誌DB261に格納されているデータの管理を行う。ジョブ解析部253で解析した書誌情報910を書誌DB261に書き込み、ジョブ920をジョブDB260に書き込む。また、特定のユーザのジョブ920の一覧取得を行ったり、不必要になったジョブ920や書誌情報910の削除を行ったりする。より詳細には複合機100のHDD3004に対して、データの書き込み、読み込み、削除、更新などを行う。
ジョブ編集部255は、ジョブ920の編集を行う。特にジョブ920のXPSファイル930の編集を行う。XPSファイル930はZIP圧縮されているため、ジョブ編集部255はXPSファイル930の解凍・および編集後の圧縮を行う。また、指定された画像ディレクトリ993の画像ファイル994とスキャンして取得した画像データとの差し替えも行う。また、XPSファイル930から前処理ファイル940と後処理ファイル950の削除を行うこともできる。
画面制御部256は、OS部200に指示をして、図11に示すマイジョブ画面2100、スキャン画面2200、属性入力画面2300などの画面を表示する。
マイジョブ画面2100は、ユーザが複合機100のジョブDB260に格納されたジョブ920を実行するための画面である。画面にはリストが表示されユーザが印刷可能な印刷ジョブ一覧が表示される。ユーザはリストから印刷したい印刷ジョブを選択し、実行ボタン2103を押下することによって、選択されたジョブを実行することができる。また、リストの更新や、リストに表示された印刷ジョブの削除なども行うことが可能である。また、コピータブ2101やファクスタブ2102などを押下することによって、それぞれの機能の画面へ遷移することが可能である。
スキャン画面2200は、ユーザに原稿のスキャンを促すための画面である。ジョブ920実行時、XPSファイル930に前処理データ941が含まれていた場合、スキャンモードに変更しこの画面に遷移する。ここで表示されるメッセージ2201は、前処理データ941に設定されたメッセージ944が表示される。なお、メッセージ944が未設定の場合は、デフォルトのメッセージが表示されるものとする。また、キャンセルボタン2202を押下することで、該ジョブの実行を中止することができる。また、実行ボタン2203を押下することで、スキャンを開始することができる。
属性入力画面2300は、ジョブ920の後処理実行時に必要な属性がなかった場合に表示される画面である。ここで表示されるメッセージ2301は後処理データ951のメッセージ954が表示される。また、宛先を選択させたい場合は、選択リスト2302が表示される。選択リスト2302は、不図示の複合機100に設定されたアドレス帳と連携しており、アドレス帳内の宛先を選択することが可能である。また、不図示のソフトウエアキーボードや外部接続されたキーボードなどを使って、宛先を直接入力することも可能である。また、キャンセルボタン2303を押下することで、該ジョブの実行を中止することができる。また、実行ボタン2304を押下することで、後処理の実行を再開することができる。
認証制御部257は、認証サーバ102と通信を行うためのものである。ICカードから読み取ったカードIDを認証サーバ102に送信し、ユーザ情報900を受け取る。
なお、本実施形態では、ICカード(読取対象物)を用いる構成としたが、ユーザ認証の際には指紋や静脈など(読取対象物)の生体情報を用いて、権限を付与したい場合にはICカードを用いる構成としてもよい。この場合、生体情報を読み取るリーダが複合機100に接続されているものとする。
また、ユーザ認証の際には、ユーザ名・パスワードなどの識別情報を入力させる画面を用いる構成とすることも可能である。なお、識別情報の入力にあたっては操作部3030にソフトウエアキーボードを表示し、ユーザに識別情報を入力させる。
つまり、ユーザ認証に用いる情報は、ユーザを特定するための識別情報(カードID、生体情報、ユーザ名・パスワード)が入力されればよい。
ジョブDB260は、複合機100のHDD3004に格納される情報で、1又は複数のジョブ920を格納している。ジョブDB260にジョブ920はファイル形式で格納されている。
書誌DB261は、複合機100のHDD3004に格納される情報で、1又は複数の書誌情報910を格納している。書誌情報910はジョブ920に含まれている。なお、処理パフォーマンスの観点から書誌情報910はジョブ920とは別に管理する。例えば、ユーザのジョブ一覧を取得するときにジョブ920を毎回解析するのには手間がかかる。よって、ユーザ名などの必要な情報のみを抽出している書誌情報910をジョブ920とは別管理することによって、処理速度の向上を図ることが可能である。
次に、図5、図20、図21、図22を参照しながら、本発明に係る印刷システム1の処理概要について説明する。
図5は、印刷システム1の処理概要図、図20は、定型ジョブの一例を示す図、図21は、後処理追加後の定型ジョブの一例を示す図、図22は、前処理後のジョブの一例を示す図である。
なお、本実施形態では、複合機100にジョブを格納し、複合機100にログインすることで当該ジョブを出力できる形態で説明するが、この形態に限ることはない。
例えば、ファイルサーバやプリントサーバ等のサーバにジョブを蓄積しておき、複合機100にログインすると、このサーバからジョブの一覧を取得し、複合機100の操作部3030に表示させる。また一覧からジョブを選択して出力指示することで、サーバからジョブを複合機100が受付、この受け付けたジョブを取得し(ステップS212)、前処理や後処理を実行するようにすることも可能である。
図5は、クライアントPC101がワークフローサーバ103と連携してジョブを生成し複合機100に投入するステップと、ユーザによってジョブが選択され複合機100がジョブを実行するステップと、複合機100がジョブの前処理を実行するステップと、複合機100がジョブの後処理を実行するステップとに分かれている。
クライアントPC101は、ワークフローサーバ103にアクセスし申請の開始を行い(1−1)、メール送信などの必要なジョブ後処理を追加する(1−2)。ワークフローサーバ103は定型ジョブの編集を行って、クライアントPC101に送信する(1−3)。クライアントPC101は受け付けた定型ジョブに書誌情報910を追加してジョブ920を作成し、任意の複合機100に投入する(1−4)。
複合機100の操作部3030に表示されたジョブリストのジョブをユーザが選択すると(2−1)、複合機100は該ジョブの実行を開始する(2−2)。
複合機100は、ジョブ920を解析し、前処理ファイル940を読み込む(3−1)。複合機100は、ユーザにスキャンを要求し(3−2)、ユーザのスキャン実行を検知する(3−3)。複合機100は、ユーザのスキャン実行結果の画像データを取得し、前処理ファイル940に記述されている画像ファイル994と、スキャン画像とを差し替える(3−4)。
複合機100は、後処理ファイル950を読み込む(4−1)。複合機100は、後処理ファイル950に記述された処理を行う。まず、画像データの印刷を行い(4−2)、次に画像データをファイルサーバへ送信し(4−3)、最後に画像データをメールで送信する(4−4)。
図20は、ワークフローサーバ103に格納されている定型ジョブを示す一例である。図5の1−1の処理で用いる定型ジョブを表している。
画像4001は、XPSファイル930のプレビュー画像を示している。また、ファイル4002は前処理ファイル940の一例で、4006がスキャン処理定義情報(読取定義情報)である。
ファイル4003は、後処理ファイル950の一例で、4007が出力方法を定義した出力方法定義情報である。
ファイル4004は、ページファイル961の一例、ファイル4005は、画像ファイル994の一例を表している。
図21は、後処理追加後の定型ジョブを示す一例である。図5の1−2で用いる編集された定型ジョブを表している。
画像4011は、XPSファイル930のプレビュー画像を示している。また、ファイル4012は前処理ファイル940の一例、ファイル4013は、後処理ファイル950の一例、ファイル4014は、ページファイル961の一例、ファイル4015は、画像ファイル994の一例を表している。
図22は、前処理後のジョブを示す一例である。図5の3−4の処理で用いる定型ジョブを表している。
画像4021は、XPSファイル930のプレビュー画像を示している。また、ファイル4022は前処理ファイル940の一例、ファイル4023は、後処理ファイル950の一例、ファイル4024は、ページファイル961の一例、ファイル4025は、画像ファイル994の一例を表している。
次に、図6、7、8、9を参照しながら、本発明に係る印刷システム1の詳細な処理について説明する。
図6は、印刷システム1のジョブ投入処理の一例を示すフローチャート、図7は、印刷システム1のジョブ実行処理の一例を示すフローチャート、図8は、印刷システム1のデータ前処理の一例を示すフローチャート、図9は、印刷システム1のデータ後処理の一例を示すフローチャートである。
まず、図6を参照しながら、印刷システム1のジョブ投入処理について説明する。
なお、本実施形態における特徴は、例えば、ステップS209、ステップS302、ステップS304、ステップS307、図9の処理である。
図6では、クライアントPC101はワークフローサーバ103と連携してジョブ920を生成し、生成したジョブ920を複合機100に投入する。
図6に示すように、クライアントPC101はワークフローサーバ103にアクセスし、申請メニューの選択を行う(ステップS100)。例えば、申請メニュー画面1100の申請するメニュー1101から所望のメニューを選択する。
クライアントPC101は、後処理の指定を行う(ステップS101)。例えば、申請画面1200で後処理追加ボタン1204を押下し、後処理設定画面1300に遷移して、種類の選択1301や属性の選択1302を行う。なお、後処理の指定は必要に応じて行うため、定型ジョブであらかじめ用意された後処理以外に特に追加する必要がなければ、追加は行わなくても良い。
クライアントPC101は、申請の実行を行う(ステップS102)。例えば、申請画面1200で実行ボタン1205を押下する。
ワークフローサーバ103は、クライアントPC101から申請実行を受け付け(ステップS103)、該当する定型ジョブを定型ジョブDB503から取得し(ステップS104)、ステップS101で指定された後処理を定型ジョブに追加する(ステップS105)。具体的には、XPSファイル930の後処理ファイル950に、後処理データ951を追記する。例えば、クライアントPC101(情報処理装置)で出力する方法(メール)が指定されると、この指定に従って、後処理ファイル4013の出力方法定義情報4016のように出力方法が定義(記述)される。そして、ワークフローサーバ103は、編集した定型ジョブをクライアントPC101に送信する。
クライアントPC101は、ワークフローサーバ103から定型ジョブを受け付け(ステップS107)、必要に応じてユーザに印刷属性を設定させる(ステップS108)。例えば、後処理データ951に印刷を含む場合に、片面・両面などの印刷方法や、カラー・モノクロなどのカラーモードを設定させる。
クライアントPC101は、ジョブ920を生成し(ステップS109)、任意の複合機100に投入する(ステップS110)。具体的には、書誌情報910を作成し、書誌情報910とワークフローサーバ103から受け取ったXPSファイル930とを結合し、ジョブ920とする。書誌情報910は、クライアントPC101にログインしているユーザのユーザ名をジョブオーナ911とし、申請メニュー画面1100で選択された申請するメニュー1101をジョブ名912とし、ステップS108で設定された印刷属性を印刷方法913、カラーモード914とする。なお、ステップS108でこれらの印刷属性が設定されない場合は、書誌情報910のこれらの値も未設定であってもよい。
複合機100は、クライアントPC101からジョブ920を受け付け(ステップS111)(アーカイブデータ受信)、ジョブ920の書誌情報910を解析する(ステップS112)。複合機100は、解析した書誌情報910を書誌DB261に格納し(ステップS113)、解析終了したジョブ920をジョブDB260に格納する(ステップS114)。なお、書誌情報910とジョブ920はジョブIDなどによって関連付けられて管理されるものとする。つまり、ステップS113〜ステップS114の処理はジョブ920のアーカイブデータを記憶する処理である(アーカイブデータ記憶)。
次に、図7を参照しながら、印刷システム1のジョブ実行処理について説明する。
図7では、複合機100は選択されたジョブ920を実行する。
図7に示すように、複合機100は、カードリーダ3040でICカードを検知し、ICカードに格納されたカードIDを読み取る(ステップS200)。複合機100は、認証サーバ102に対して、ステップS200で読み取ったカードIDを送信し、ユーザ情報検索要求を発行する(ステップS201)。
認証サーバ102は、複合機100からユーザ情報検索要求を受け付け(ステップS202)、認証DB402を用いてユーザ情報900を検索する(ステップS203)。具体的には、認証DB402に格納された複数のユーザ情報900の中から、複合機100から送信されてきたカードIDに一致するカードIDを持ったユーザ情報900を検索する。認証サーバ102は、ユーザ情報900の有無と、ユーザ情報900が見つかった場合は、該当するユーザ情報900とを複合機100に返答する(ステップS204)。ユーザ情報900が見つかった場合は認証成功となる。
複合機100は、認証サーバ102から検索結果を受け付け(ステップS205)、その結果を判断する(ステップS206)。
複合機100は、ステップS206の判断結果、ユーザ情報900が見つからなかったと判断した場合は、エラー処理を行う(ステップS207)。具体的には、操作部3030に、「ユーザが登録されていません。」というようなメッセージを表示する。これにより、登録されていない第三者が複合機100を利用することを防ぐことができ、よりセキュリティの高いシステムを実現している。
複合機100は、ステップS206の判断結果、ユーザ情報900が見つかったと判断した場合は、当該複合機100にログイン処理を行い、ログインしたユーザのジョブ一覧表示を行う(ステップS208)。具体的には、上記で取得したユーザ情報900のユーザ名902に一致する書誌情報910を書誌DB261から検索し一覧とし、マイジョブ画面2100のような画面にジョブリストとして表示する。
複合機100は、ユーザからジョブが選択され実行指示されるのを待ち受ける(ステップS209)。つまり、ステップS209の処理は、ジョブ920のXPSファイル(アーカイブデータ)の出力指示を受け付ける処理である(出力指示受付)。
複合機100は、ユーザからジョブ実行指示がなされると、選択されているジョブの書誌情報910を取得し、選択ジョブ一覧とする(ステップS210)。
複合機100は、選択ジョブ一覧を順次実行する。まず、選択ジョブ一覧のすべてのジョブを実行したかどうか、を判断する(ステップS211)。この判断結果、全ジョブを実行していれば、処理を終了する。一方、この判断結果、まだ全ジョブを実行していなければ、選択ジョブ一覧から未実行のジョブを取得する(ステップS212)。具体的には、選択されたジョブの書誌情報910に一致する書誌情報910に関連付くジョブ920を、ジョブDB260から検索して取得する。
複合機100は、選択されたジョブ920に対して、図8に示すデータ前処理を行い(ステップS213)、XPSデータ再構築を行う(ステップS214)。XPSデータ再構築とは、後述するステップS300で解凍され、スキャンした画像で置き換えがされたたXPSファイル930から前処理ファイル940および後処理ファイル950の削除を行い、再びXPSファイル930の圧縮(生成)を行う。後述する印刷処理では、OS部200のXPS解析部204でXPSデータを解釈し画像データに変換処理を行うが、この段階で前処理ファイル940や後処理ファイル950といった画像変換処理に不必要なファイルを削除することで、処理速度を向上させることが可能である。また、削除した後処理ファイル950は、データ後処理(ステップS215)で必要になるので、メモリ上に保存しておく。
続いて、複合機100は、図9に示すデータ後処理を行う(ステップS215)。一連の処理が終わると、該ジョブ920および該書誌情報910をジョブDB260および書誌DB261から削除する。
これにより、印刷の一連の流れにおいて、印刷の処理を一旦中断し、XPSファイル内に記述されたスキャンする制御情報に従って、スキャンモードに複合機100を切替えてスキャン実行させて(前処理)、印刷データを生成して印刷(後処理)までシームレスに実行することができる。
次に、図8を参照しながら、印刷システム1のデータ前処理について説明する。
図8では、複合機100はジョブ920のXPSファイル930を解析し、ジョブの前処理を行う。
図8に示すように、複合機100は、ジョブ920のXPSファイル930を解凍し、回答したXPSファイルに前処理ファイル940が含まれるかどうか、を判断する(ステップS300)。前処理ファイル940があるかどうかは、例えばファイル名での検索によって判断することが可能である。
ステップS300の判断結果、前処理ファイル940が含まれていないと判断された場合は、処理を終了して呼び出し元に戻る。前処理ファイル940が含まれていない場合も、呼び出し元に戻って、続くステップS214の処理を継続することで、通常のXPSファイルの処理も可能となる。ここで言う通常のXPSファイルとは、前処理ファイル940や後処理ファイル950を含まない、XPSファイルのことである。
つまり、前処理ファイル940や後処理ファイル950を含まないXPSファイルである場合には、画像を置き換えることがない通常の印刷がステップS402で実行される。また、前処理ファイル940がない時点で後処理ファイル950を含まないと判断して、ステップS401へ処理を移し、ステップS402で印刷を行うことも可能である。従って、読取定義情報がない場合には、印刷を実行すると言い換えることが可能である。
ステップS300の判断結果、前処理ファイル940が含まれていると判断された場合は、複合機100は、前処理ファイル940から前処理データ941を読み込む(ステップS301)。
複合機100は、前処理ファイル940にスキャン指示4006があるかどうかを判断する(ステップS302)。前処理ファイル940には、1又は複数の前処理データ941が含まれている。なお、本実施形態の前処理データ941は、種類942がスキャンしか定義されていないため、前処理データ941があるということは、スキャン指示があるとみなされる。つまり、ステップS302は、XPSファイルに複合機100(画像形成装置)でスキャンする(原稿読取を実行する)処理を定義したスキャン処理定義情報(読取定義情報)があるか否かを判定する処理である(読取定義情報判定)。
ステップS302の判断結果、スキャン指示がないと判断された場合、処理を終了して呼び出し元に戻る。
ステップS302の判断結果、スキャン指示があると判断された場合、複合機100は、該スキャン指示を読み込む(ステップS303)。具体的には、前処理データ941の属性943やメッセージ944を読み込む。
複合機100は、スキャン処理を実行する(ステップS304)。具体的には、属性943で設定されたカラーや解像度や濃度でスキャンを行うように、スキャナ制御部208に指示し、ユーザからの原稿スキャン指示を待つ。また、画面制御部256を使って操作部3030にスキャン画面2200を表示する。つまり、ステップS304は、スキャンする(原稿を読み取る)ための通知をする(読取通知)処理である。
このとき画面のメッセージ2201として、前処理データ941から読み取ったメッセージ944を表示する。これにより、ジョブに合わせたスキャン読み取りメッセージを表示することが可能になる。ユーザにとっては、より操作がわかりやすい仕組みを実現している。
複合機100は、ユーザからのスキャン指示を待ち受ける(ステップS305)。具体的には、スキャン画面2200が表示された後に、原稿がセットされ、実行ボタン2203が押されたかどうか、を判定する。
ステップS305の結果、実行ボタン2203が押下されたと判断された場合、複合機100はセットされた原稿を読み取り、既知の技術により画像データに変換する(ステップS306)。
複合機100は、スキャンにより取得した画像データと、XPSファイル930内の画像データとを差し替える(ステップS307)。XPSファイル930内の差し替え対象の画像ファイル994は、前処理データ941の属性943に格納先としてファイルパスで指定されるものである。つまり、ステップS307は、スキャンした(読み取られた)領収書などの原稿の画像を、リソースファイルとして、ファイルパスに指定されているファイルと置き換える(格納する)処理である。なお、ファイル名が異なる場合には、置き換え前の画像のファイル名を置き換え後の画像のファイル名に引き継ぐように構成する。
また、ファイルの置き換えは、読取定義情報である4006の「Resources/Images/Image1」の置き換えるファイル(画像)を特定する情報に従って置き換える。つまり、読取定義情報4006(スキャン指示)には、置き換えるファイル(画像)を特定する画像特定情報を含んでいる。
複合機100は、前処理ファイル940に前処理データ941が含まれる数だけこれら一連の処理を繰り返す(ステップS301〜ステップS307)。これにより、複数の前処理データ941を実行できるので、一枚の画像だけでなく複数の画像差し替えが可能となる。
また、一連の処理(ステップS300〜ステップS307)を実施することで、ジョブ実行時に必要な原稿をスキャンさせることができる。
従来は、確証の写しが必要となるワークフローを実行する場合は、確証貼り付け用の帳票を印刷し、確証をコピーし、確証のコピーを貼り付け用帳票に張り付けてスキャンする、という操作が必要であった。もしくは、スキャンした確証を貼り付け用帳票と合成するようなプログラムを作成し、アプリケーション部250として複合機100に組み込んで実行する必要があった。
従って、この一連の処理により、従来のようなユーザの作業負担を増やさず、最小限の手順でワークフローを実行することができる。また、後者のようにプログラムを作成する必要はなく、ジョブに必要情報を埋め込むだけでよいので、ワークフローを柔軟に変更、追加したりすることができる。よって、ユーザや管理者にとって利便性の高いシステムとなる。
次に、図9を参照しながら、印刷システム1のデータ後処理について説明する。
図9では、複合機100はジョブ920のXPSファイル930を解析し、ジョブの後処理を行う。
図9に示すように、複合機100は、ジョブ920のXPSファイル930に後処理ファイル950が含まれるかどうかを判断する(ステップS400)。
ステップS400の判断結果、後処理ファイル950が含まれていないと判断された場合は、複合機100は、ジョブ920の書誌情報910を読み込み(ステップS401)、印刷制御部205に書誌情報910の印刷情報を設定し、既知の技術を用いて、XPSファイル930の印刷を行う(ステップS402)。XPSファイル930を用いた印刷は、XPSデータから描画する画像データを生成して印刷を行う。
なお、ジョブ920に書誌情報910が含まれていなかったり、書誌情報910に印刷に必要な印刷方法913、カラーモード914等が含まれていなかったりした場合は、複合機100にあらかじめ設定された初期値にて印刷を行う。
クライアントPC101のOffice等のアプリケーションで生成された、後処理ファイル950を含まないXPSファイルは、上記一連の処理(ステップS400〜ステップS402)のように印刷を行う。これにより、クライアントPC101のOffice等のアプリケーションで生成され、印刷指示されたXPSファイルであっても、本実施形態で説明するスキャン指示のあるXPSファイル930であっても処理することができるので、より汎用性の高い印刷システムとなる。
ステップS400の判断結果、後処理ファイル950が含まれていると判断された場合は、複合機100は、後処理ファイル950から後処理データ951を読み(ステップS403)、未実行の後処理データ951があるかどうかを判断する(ステップS404)。つまり、ステップS404は、4007の出力方法定義情報があるか否かを判定し(出力方法定義情報判定)、出力方法定義情報の内容に従って後処理する方法(印刷、ファクシミリ送信、メール送信、ファイル送信)を決定する(出力方法決定)。決定する処理は、ステップS405、ステップS410、ステップS415となる。
ステップS404の判断結果、後処理ファイル950に記述されたすべての後処理データ951を処理したと判断された場合、複合機100は、処理を終了し、呼び出し元へ戻る。
ステップS404の判断結果、後処理ファイル950に記述された後処理データ951のうち未処理の後処理データ951が存在すると判断された場合、複合機100は、後処理データ951の種類952がファクスかどうか、を判断する(ステップS405)。
ステップS405の判断結果、後処理データ951の種類952がファクスであると判断された場合、複合機100は、後処理データ951の属性953を読み込み(ステップS406)、必要な属性が不足していないかどうかを判断する(ステップS407)。例えば、ファクス送信先は必須属性とし、リトライ回数やタイムアウトは任意属性とする。
ステップS407の判断結果、不足属性があると判断された場合、複合機100は、属性入力画面2300を表示し、ユーザから不足属性の入力を待ち受ける(ステップS408)。このとき、属性入力メッセージ2301には、後処理データ951のメッセージ954を表示する。
ステップS407の判断結果、不足属性がないと判断された場合、もしくは不足属性がユーザによって入力された場合、複合機100は、XPSファイル930を既知の技術により画像データに変換し、ファックス送信先にファクス送信を行う(ステップS409)。つまり、ステップS409は、置き換えられたスキャン画像(リソースファイル)を用いたXPSファイルをファックス出力する処理である。
ステップS405の判断結果、後処理データ951の種類952がファクスでないと判断された場合、複合機100は、後処理データ951の種類952がメールかどうか、を判断する(ステップS410)。
ステップS410の判断結果、後処理データ951の種類952がメールであると判断された場合、複合機100は、後処理データ951の属性953を読み込み(ステップS411)、必要な属性が不足していないかどうかを判断する(ステップS412)。例えば、メールアドレスは必須属性とし、件名、文面などは任意属性とする。
ステップS407の判断結果、不足属性があると判断された場合、複合機100は、属性入力画面2300を表示し、ユーザから不足属性の入力を待ち受ける(ステップS413)。
ステップS412の判断結果、不足属性がないと判断された場合、もしくは不足属性がユーザによって入力された場合、複合機100は、XPSファイル930を添付して送信先メールアドレスに対してメール送信を行う(ステップS414)。つまり、ステップS414、置き換えられたスキャン画像(リソースファイル)を用いたXPSファイルをメール出力する処理である。
ステップS410の判断結果、後処理データ951の種類952がメールでないと判断された場合、複合機100は、後処理データ951の種類952がサーバかどうか、を判断する(ステップS415)。
ステップS415の判断結果、後処理データ951の種類952がサーバであると判断された場合、複合機100は、後処理データ951の属性953を読み込み(ステップS416)、必要な属性が不足していないかどうかを判断する(ステップS417)。例えば、ホスト名、ディレクトリ名等は必須属性とし、ファイル名は任意属性とする。
ステップS417の判断結果、不足属性があると判断された場合、複合機100は、属性入力画面2300を表示し、ユーザから不足属性の入力を待ち受ける(ステップS418)。
ステップS417の判断結果、不足属性がないと判断された場合、もしくは不足属性がユーザによって入力された場合、複合機100は、XPSファイル930をファイルサーバへ送信する(ステップS419)。つまり、ステップS419は、置き換えられたスキャン画像(リソースファイル)を用いたXPSファイルをファイルサーバへ出力する処理である。
ステップS415の判断結果、後処理データ951の種類952がサーバでないと判断された場合、複合機100は、後処理データ951の属性953を読み込み(ステップS420)、印刷条件が設定されているかどうか、を判断する(ステップS421)。
ステップS421の判断結果、印刷条件に不足属性があると判断された場合、複合機100は、ジョブ920の書誌情報910を読み込み(ステップS422)、印刷制御部205に書誌情報910の印刷情報を設定し、既知の技術を用いて、XPSファイル930の印刷を行う(ステップS423)。つまり、ステップS423は、置き換えられたスキャン画像(リソースファイル)を用いたXPSファイルを印刷するべく画像処理部3014へ出力する処理である。
なお、ジョブ920に書誌情報910が含まれていなかったり、書誌情報910に印刷に必要な印刷方法913、カラーモード914等が含まれていなかったりした場合は、複合機100にあらかじめ設定された初期値にて印刷を行う。また、初期値ではなく、属性入力画面2300を表示し、ユーザから不足属性の入力を待ち受けてもよい。また、印刷設定する際は、印刷設定を、書誌情報910から取得せずに、XPSファイル930の不図示のPrintTicketファイルから取得するよう構成してもよい。
なお、印刷条件に不足属性がないと判断された場合は、後処理データ951の属性953から、枚数、印刷方法、カラーモードなどの印刷属性を取得して、既知の技術により印刷を行う。
このように、ジョブ920に後処理を埋め込むことで、ユーザの手間を省くことができ、また誤送信防止にも効果がある。
従来は、後処理を埋め込めなかったので、ワークフロー実行時に控えを余分に印刷しておきたかったり、メールで自分に送信したかったりした場合、印刷後にそれぞれの操作を行う必要があった。後処理を複数埋め込めることで、ジョブ実行時に複合機100の前で行う操作を最小限にすることができ、ユーザの手間が省ける。
また、従来は、ファクスやメールなどで宛先を選ぶ時に、選び間違うことがあった。後処理をあらかじめ埋め込むことで、ジョブ実行時に、クライアントPC101よりも画面の見にくい複合機100で操作することによる宛先の選び間違いリスクを軽減できる。さらに、ワークフロー用に定型ジョブを用意することで、あらかじめ決まった宛先を埋め込んでおけるので、ワークフローの宛先をユーザが意識する必要がない。また、組織変更などでワークフローを処理する部署がかわったとしても、定型ジョブ内の宛先を書き換えるだけでよいので、ユーザは意識せずに正しい宛先に送信される。
本実施形態の印刷システム1は、前処理や後処理を埋め込んだXPSファイルも実行できる。前処理ファイル940が存在しない場合は処理をスキップし(ステップS300)、後処理ファイル950が存在しない場合は印刷を行う(ステップS400〜S403)ように構成する。
本実施形態によれば、複合機100(画像形成装置)に記憶するジョブの出力指示をした際に、ジョブに記憶されている読取制御情報に従ってユーザに読取処理を行わせることで、出力用途に応じたデータを複合機100(画像形成装置)上で生成し、出力することができることができる。
また、本実施形態によれば、ジョブ内部に実行前の動作を埋め込むことで、印刷の一連の流れにおいてスキャンした画像を埋め込み、申請書類を出力することができるので作業負荷を軽減することができる。
また、ジョブ内部に実行後の動作を埋め込むことで、メール送信、ファイル送信、ファクス送信、印刷などの動作をジョブ実行後に自動で行うことができる。よって、申請した書類の控えをとる作業の負荷軽減をすることができる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明におけるプログラムは、図6〜図9に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図6〜図9の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図6〜図9の各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。