<印刷システムの機能構成>
図1は、本発明のシステム構成図を示している。
ホストコンピュータ101は、ユーザの印刷指示に従いネットワーク104を介し、印刷装置102に印刷データの送信を行う。印刷装置(画像処理装置とも呼ぶ)102は、ネットワーク104を介して送信された印刷データまたはUSB等のリムーバブルメディアから取得した印刷データを印刷装置内で処理する。また、印刷装置102は、受信した印刷データを自ら処理できない場合、ネットワーク104を介して外部装置に印刷データを送信する。なお、本願では、印刷データの送信先である外部装置の一例としてサーバ103を記載したが、このサーバ103はクラウド上に配置されていても良い。また、サーバ103の代わりに他の印刷装置に印刷データを送信しても構わない。なお、本願では画像処理装置の一例として印刷装置を挙げて説明するが、画像処理装置は、印刷機能およびスキャナ機能等の複数の機能を備える複合機であっても良い。
サーバ103は、印刷装置102から送信された印刷データを印刷装置102で処理できるフォーマットの印刷データに変換し、ネットワーク104を介して変換後の印刷データを印刷装置102に送信する。そして、印刷装置102は、サーバにより変換された変換後の印刷データを印刷する。
また、印刷装置102は、電源投入時やスリープ復帰時にサーバ103にアクセスし、サーバ103が処理可能(変換可能)なデータフォーマットの情報を取得する。
次に、印刷装置102の詳細な機能モジュール構成を説明する。ネットワーク処理部201は、ネットワーク104を介して送信された印刷データをデータスプール208に格納する。また、ネットワーク処理部201は、データスプール208に格納された印刷データをサーバ103へ送信したり、サーバ103により変換された変換後の印刷データをデータスプール208に格納したりする。さらに、ネットワーク処理部201は、サーバ103からフォーマット特定情報306を取得し、フォーマット特定テーブル管理部202に格納する。
フォーマット特定テーブル管理部202は、フォーマット特定テーブル209を管理するとともに、ネットワーク処理部201を介してサーバ103から取得したフォーマット特定情報をフォーマット特定テーブル209に反映する。フォーマット特定テーブル209は、印刷装置102で処理可能なフォーマットの特定情報と、サーバ103から取得したフォーマット特定情報が含まれる。
フォーマット特定処理部203は、データスプール208に格納された印刷データのフォーマットを特定する。また、フォーマット特定処理部203は、フォーマットが特定された印刷データを解析処理部204で処理するか、サーバ103にフォーマットの変換処理を依頼するかを決定する。サーバ103にフォーマットの変換処理を依頼する必要がない場合、フォーマット特定処理部203は、データスプール208に格納された印刷データを解析処理部204に渡す。一方、サーバ103にフォーマットの変換処理を依頼する場合、フォーマット特定処理部203は、ネットワーク処理部201を介して印刷データをサーバ103に送信し、サーバ103から受信した変換後の印刷データを解析処理部204に渡す。
解析処理部204は、フォーマット特定処理部203から渡された印刷データをフォーマットに従って解析し、展開処理部205に渡す。展開処理部205は、解析処理部204で解析された印刷データから画像データ(例えば、ビットマップイメージ)を生成し、画像データスプール207に格納する。印刷処理部206は、画像データスプール207に格納された画像データを印刷する。なお、これらの機能モジュールを総称して印刷制御部200と呼ぶ。なお、印刷制御部200は、必ずしも図1に示されたモジュール201〜209を備える必要がなく、本願の課題を解決するために必要なモジュールを備えていれば良い。
次に、サーバ103の詳細な機能モジュール構成を説明する。ネットワーク処理部301は、ネットワーク104を介して送信された印刷データをデータスプール305に格納する。
解析処理部302は、送信された印刷データのフォーマットに従って印刷データを解析し、データ変換部303に渡す。データ変換部303は、解析処理部302で解析されたデータを所定のフォーマットの印刷データに変換し、データスプール305に格納する。ネットワーク処理部301は、データスプール305に格納された変換後の印刷データを印刷装置102へ送信することを指示する。なお、上述した所定のフォーマットとは、印刷装置102が印刷処理を実行可能なフォーマットである。
フォーマット特定情報管理部304は、サーバ103で処理可能なフォーマットの特定情報306を管理し、印刷装置102からの要求に従ってフォーマット特定情報306を印刷装置102に送信する。
<ハードウェア構成>
図2は、本発明の印刷装置102とサーバ103のハードウェア構成である。
印刷装置102は、ROM401、RAM402、CPU403、HDD404、ネットワークI/F405、エンジンI/F406、プリンタエンジン407から構成される。
ROM401は、不揮発性メモリであり、印刷装置102の各処理部201〜206のプログラムが格納される。RAM402は、揮発性メモリであり、電源投入時にROM401に格納された各処理部201〜206のプログラムが展開される。
フォーマット特定テーブル209は、ROM401に格納されており、電源投入時またはスリープ復帰時にRAM402に展開される。CPU403は、RAM402に展開された各処理部201〜206のプログラムを実行する演算プロセッサである。
HDD404は、大量の情報を格納可能な記憶装置であり、データスプール208、画像データスプール207の記憶領域になる。エンジンI/F406は、印刷処理部206の制御で、画像データスプール207の画像データをビデオデータに変換し、プリンタエンジン407に出力する。プリンタエンジン407は、不図示の印刷プロセスでビデオデータをもとに用紙に印刷する。ネットワークI/F405は、ホストコンピュータ101、サーバ103とネットワーク104を介して通信を行う。
なお、本願において印刷装置102が実行するフローチャートの各ステップは、CPU403が、メモリからフローチャートの処理に関係するプログラムを読み出して実行することで実現される。
サーバ103は、RAM501、CPU502、HDD503、ネットワークI/F504から構成される。RAM501は、揮発性メモリであり、電源投入時にHDD503に格納された各処理部301〜304のプログラムが展開される。
CPU502は、RAM501に展開された各処理部301〜304のプログラムを実行する演算プロセッサである。HDD503は、大量の情報を格納可能な記憶装置であり、各処理部301〜304のプログラムが格納され、また、データスプール305の記憶領域になる。ネットワークI/F504は、印刷装置102とネットワーク104を介してデータや情報の送受信を行う入出力インターフェースである。
なお、本願においてサーバ103が実行するフローチャートの各ステップは、CPU502が、メモリからフローチャートの処理に関係するプログラムを読み出して実行することで実現される。
<印刷データの一例>
図3は、本発明の印刷システムにおいて処理する印刷データの一例である。
印刷データ601は、PDF(Portable Document Format)データであり、Header、Body、Cross−reference tableから構成される。テキスト602は、Headerの先頭に記述され、PDFデータであることを示している。
印刷データ701は、電子書籍フォーマットであり、XML(eXtensible Markup Language)形式で記述された複数のファイルをZIP圧縮したデータである。シグネチャ702は、電子書籍フォーマットのデータの先頭にあるZIPヘッダのシグネチャであり、ZIP圧縮型式であることを示している。バイト列703は、ZIPヘッダの直後にあるファイル名(“mimetype”)とファイル内のテキスト“application/epub+zip”のバイト列であり、電子書籍フォーマットのデータであることを示している。
フォーマット特定処理部203は、これらの文字列やバイト列を検出することによりフォーマットを特定することができる。一例として挙げた印刷データ以外にも様々なフォーマットの印刷データがあり、データ内のコマンドを検索して特定する必要があるフォーマット(例えば、N201やESC/Pなど)も存在する。
<フォーマット特定情報取得処理>
図4は、印刷装置102のフォーマット特定テーブル管理部202がサーバ103からフォーマット特定情報306を取得するフローである。
印刷装置102は、印刷装置102が起動された時、または、スリープから復帰した時に、サーバ接続設定が有効か否かを参照する(S1001)。
サーバとの接続設定が有効であると判定された場合、印刷装置102は、ネットワーク処理部201を介してネットワーク104に接続されたサーバ103の起動状況を確認する(S1002)。サーバ103が起動している場合、サーバ103は、印刷装置102に応答メッセージを送信する(S1006)。
印刷装置102は、サーバ103からの応答メッセージを受け取る(S1003)と、サーバ103にフォーマット特定情報306の取得依頼を要求する(S1004)。
サーバ103は、印刷装置102からの取得依頼の要求に対し、フォーマット特定情報306を印刷装置102に送信する(S1007)。
印刷装置102は、サーバ103からフォーマット特定情報306を受け取ると、フォーマット特定テーブル209を更新する(S1005)。このように印刷装置102は、起動する度(または、スリープから復帰する度)に、フォーマット特定情報を取得することで、適切なフォーマットの特定方法を認識できる。
図6(a)は、サーバ103から取得するフォーマット特定情報306である。
フォーマット特定情報306は、フォーマット数801から検索キー808により構成される。
フォーマット数801は、サーバ103の解析処理部302で処理可能なフォーマットの数である。フォーマット特定情報306には、フォーマット数801に指定された数の802〜808が含まれる。
フォーマット名802は、フォーマットの名称であり、ファイル拡張子803は、フォーマットのファイル拡張子である。ファイル拡張子は、ファイル形式の印刷データの拡張子からフォーマットを特定するために用いられる。
検索キー数804は、印刷データを検索する検索キーの数である。806〜808は、検索キー数804の数だけ含まれる。検索優先度805は、検索の優先度であり、印刷装置102のフォーマット特定処理部203は、各フォーマットの検索優先度に基づいて検索の順番を決定する。検索オフセット806は、印刷データの先頭から何バイト目から検索を行うかを示す。
検索サイズ807は、検索キー808のサイズである。検索キー808は、印刷データ内を検索するための検索キーである。印刷装置102のフォーマット特定処理部203は、全ての検索キーに適合した場合にフォーマットを特定することができる。つまり、印刷装置102は、フォーマットの特定方法が記載されたフォーマット特定情報を取得することで、印刷データの印刷処理を実行できないとしても、印刷データのフォーマットを特定することが可能となる。
サーバ103の解析処理部302のプログラムが拡張され、処理可能なフォーマットが追加された場合、フォーマット特定情報管理部304は、フォーマット特定情報306を更新する。つまり、新規に追加されたフォーマットの特定方法がフォーマット特定情報306に追加される。
印刷装置102は、サーバ103から取得したフォーマット特定情報306を用いてフォーマット特定テーブル209を更新することで、新規のフォーマットであっても特定方法を認識することができ、印刷データのフォーマットを特定できる。
図6(b)は、フォーマット特定情報306の一例である。図6(b)において処理可能なフォーマットはPDFと電子書籍フォーマットであるため、フォーマット数として2が記述されている。
印刷装置102は図6(b)を参照することで、PDFデータ601は、先頭4バイトで特定することができ、PDFのフォーマット特定情報306は、検索キー数1、検索オフセット0、検索サイズ4、検索キーは“%PDF”と認識できる。処理対象の印刷データがこれらの条件に一致した場合、印刷装置102は、処理対象の印刷データのフォーマットがPDFであると認識できる。
一方、電子書籍フォーマットのデータ701は、先頭4バイトとヘッダ後の24バイトで特定することができる。電子書籍フォーマットのフォーマット特定情報306は、検索キー数2、検索オフセット0、検索サイズ4、検索キーは“0x50 0x4B 0x03 0x04”となる。また、検索オフセット−1(不定)、検索サイズ24、検索キーは“mimetypeapplication/epub”となる。処理対象の印刷データがこれらの条件に一致した場合、印刷装置102は、処理対象の印刷データのフォーマットが電子書籍フォーマットであると認識できる。
本願によれば、例えば、電子書籍フォーマットのデータのフォーマットを特定できない印刷装置102が、フォーマット特定情報306を使ってフォーマット特定テーブルを更新する。その結果、印刷装置102は、電子書籍フォーマットのデータを受信した場合に適切に印刷データのフォーマットを特定できる。
<フォーマット特定テーブル更新>
図5は、図4のS1005において実行される処理である。具体的には、印刷装置102が、更新前のフォーマット特定テーブル209を、サーバ103から受信したフォーマット特定情報306を使って更新する処理である。
印刷装置102は、フォーマット特定テーブル209のフォーマット数をFに代入し(S1101)、フォーマットカウンタAcを初期化する(S1102)。そして、印刷装置102は、S1004でサーバ103から取得したフォーマット特定情報306のフォーマット数をAに代入する(S1103)。
印刷装置102は、フォーマットカウンタAcとフォーマット特定情報306のフォーマット数Aを比較し(S1104)、フォーマットカウンタAcが超えるまでS1104〜S1112を繰り返し実行する。
印刷装置102は、サーバ103から取得したフォーマット特定情報306のAc番目の検索優先度をPaに代入し(S1105)、カウンタFcを初期化する(S1106)。 印刷装置102は、カウンタFcとフォーマット数Fを比較し(S1107)、カウンタFcがフォーマット数F以下の場合、フォーマット特定テーブル209のFc番目の検索優先度をPに代入し(S1108)、PaとPを比較する(S1109)。
PaがPと同等以下の場合、印刷装置102は、サーバ103から取得したフォーマット特定情報306のAc番目の情報をフォーマット特定テーブル209のFc番目に追加(S1110)する。印刷装置102は、フォーマットカウンタAcをインクリメントし(S1111)、S1104に戻る。
一方、Paの方が大きい場合、印刷装置102は、カウンタFcをインクリメントし(S1112)、S1107に戻る。S1107で、カウンタFcがフォーマット数Fを超えた場合、印刷装置102は、サーバ103から取得したフォーマット特定情報のAc番目の情報をフォーマット特定テーブル209の最後に追加する。
以上の処理により検索優先度順に並んだフォーマット特定テーブル209が生成される。
図6(c)は、印刷装置102が管理するフォーマット特定テーブル209である。
フォーマット特定テーブル209は、フォーマット数901から検索情報アドレス907と検索情報で構成される。検索情報は、検索キー数908から検索キー911で構成される。
フォーマット数901は、印刷装置102とサーバ103で処理可能なフォーマットの数である。902〜911はフォーマット数901の数だけ含まれる。
関数アドレス903は、フォーマット特定処理部203内の各フォーマットを特定する関数のアドレスである。ファイル拡張子904は、フォーマットのファイル拡張子であり、ファイル形式の印刷データの拡張子からフォーマットを特定する場合に用いられる。
検索優先度905は、印刷装置102が検索する順番を決定するために利用される。
処理フラグ906は、印刷装置102、サーバ103のどちらで処理を行うかを示す。
検索情報アドレス907は、フォーマットを特定するための検索情報のアドレスである。
検索キー数908は、印刷データを検索する際に使用される検索キーの数である。909〜911は、検索キー数908の数だけ含まれる。なお、検索キー数908から検索キー911の情報は、上述した検索キー数804、検索オフセット806から検索キー808と同じであるため説明は省略する。
図6(d)は、本実施例の更新前のフォーマット特定テーブル209の一例である。サーバ103で処理可能なフォーマットは含まれていない。PS、LIPSの印刷データは先頭データで特定できるフォーマットであるため、検索優先度905には0が設定され、N201の印刷データはコマンド解析が必要なため2が設定される。その結果、印刷データがPSフォーマットであるのかLIPSフォーマットであるのかの特定処理が、N201より優先して行われる。
印刷装置内で処理できるフォーマットはあらかじめ解析処理部204内に各フォーマットの特定関数があり、関数アドレス903にそれぞれの関数が設定される。
図6(e)は、本実施例の図5の更新処理後のフォーマット特定テーブル209の一例である。
印刷装置102は、サーバ103より図6(b)のフォーマット特定情報を取得し、図5の処理を実行することで図6(d)が図6(e)に更新される。
フォーマット特定処理部203は、PDF、PS、LIPS、電子書籍フォーマット、N201の順に印刷データのフォーマットの特定処理を行う。
<印刷処理>
図7は、印刷装置102で実行される印刷処理のフローである。
印刷装置102は、ホストコンピュータ101から印刷データを受信するか、リムーバブルメディアから印刷データを取得しユーザインターフェースからの印刷指示を受ける(S1201)。印刷装置102は、受信された印刷データがファイル形式であるかストリーム形式であるかを判定する(S1202)。具体的には、印刷装置102のネットワーク処理部201には、プリンタドライバが生成した印刷データを受信するストリームデータ受信部と、プリンタドライバ以外のソフトにより生成された印刷データを受信するファイルデータ受信部がある。どちらの受信部が印刷データを受信したかによりS1202の判定が実行される。
印刷データがファイル形式であった場合、印刷装置102は、ファイルのフォーマットを特定するフォーマット特定処理(詳細は図8にて後述)を行う(S1203)。
S1203により印刷データのフォーマットが特定され(S1204)、かつ、印刷データがサーバ103で処理されるべきフォーマットである場合(S1212−Yes)、印刷装置102は、処理情報が記述されたジョブチケットを生成する(S1213)。なお、処理情報とは、図12で後述する変換前の入力フォーマット、出力フォーマットを指す。
そして、印刷装置102は、S1213において生成したジョブチケットと印刷データを変換要求のデータとしてサーバ103へ送信する(S1214)。図12は、S1214において印刷装置102からサーバ103へ送信される変換要求のデータの一例である。サーバ103へ送信されるデータ1001は、入力フォーマット1002と出力フォーマット1003が記述されたジョブチケットと、印刷データ1004から構成される。入力フォーマット1002は、フォーマット特定処理部203で特定された印刷データのフォーマットである。出力フォーマット1003は、印刷装置102が処理可能なフォーマットである。データ1004は、印刷装置が受信した印刷データである。サーバ103は、ジョブチケットに従って、印刷データ1004のフォーマットを印刷装置が処理可能なフォーマットに変換する。
印刷装置102は、S1214において印刷データを送信した後、サーバ103から変換された印刷データを受信したか否かを判定する(S1215)。そして、変換後の印刷データを受信したと判定された場合(S1215−Yes)、印刷装置102は、変換後の印刷データの解析処理および展開処理を行うことで生成されたビットマップイメージを画像データスプール207に格納する(S1216)。そして、印刷装置102は、ビットマップイメージを使って印刷処理を実行する(S1217)。
一方、印刷装置102が、印刷データを自ら処理可能と判定した場合(S1212−No)、S1216およびS1217を実行することで印刷データの印刷処理が実行される。
S1204でファイルのフォーマットを特定できない(フォーマットNULL)場合、または、S1202で印刷データがファイル以外(ストリーム形式の印刷データ)である場合、印刷装置102は、ファイルのフォーマットを特定するフォーマット特定処理(詳細は図9にて後述)を行う(S1210)。
S1210のフォーマット特定処理により印刷データのフォーマットが特定され(S1211)、かつ、印刷データがサーバ103で処理されるべきフォーマットである場合(S1212−Yes)、印刷装置102は、S1213〜S1217を実行する。印刷装置102が、印刷データを自ら処理可能と判定した場合(S1212−No)、S1216−S1217が実行される。
S1211において印刷データのフォーマットを特定できなかった場合(フォーマットNULL)、印刷装置102は、不図示のユーザインターフェースにエラーを表示する(S1218)。
以上の処理により印刷装置102は、受信した印刷データが自ら処理できない場合であっても、サーバを使って印刷処理を実行することが可能となる。
<ファイルのフォーマット特定処理>
図8は、図7のS1203のフォーマット特定処理を説明するためのフローチャートである。
印刷装置102は、フォーマットカウンタFcを初期化し(S1301)、フォーマット特定テーブル209のフォーマット数をFに代入する(S1302)。
印刷装置102は、フォーマットカウンタFcとフォーマット数Fを比較し(S1303)、FcがFを超えた場合は、フォーマットを特定できなかったと判定する。そして、印刷装置102は、フォーマットNULLと特定する(S1308)。
FcがF以下の場合、印刷装置102は、フォーマット特定テーブルのFc番目の拡張子と印刷データのファイルの拡張子を比較する(S1304)。
拡張子が同じ場合、印刷装置102は、フォーマット特定テーブル209のFc番目の処理フラグが1か否かを判定する(S1305)。処理フラグが1と判定された場合(S1305−Yes)、印刷装置102は、印刷データのフォーマットと印刷データを処理する場所としてサーバを決定する(S1306)。
一方、処理フラグが0と判定された場合(S1305−No)、印刷装置102は、印刷データのフォーマットと印刷データを処理する場所として印刷装置を決定する(S1307)。
フォーマット特定テーブルのFc番目の拡張子と印刷データのファイルの拡張子が異なる場合(S1304−No)、印刷装置102は、フォーマットカウンタFcをインクリメントし(S1305)、S1303へ戻る。
以上の処理により、ファイル形式の印刷データのフォーマットが決定され、決定されたフォーマットの印刷データを処理すべき場所が決定される。
<ファイル以外のフォーマット特定処理>
図9は、図7のS1210のフォーマット特定処理を説明するためのフローチャートである。
S1401−S1403は、S1301−S1303と同じ処理であるため省略する。また、S1430はS1308と同じ処理であるため省略する。
FcがF以下の場合、印刷装置102は、フォーマット特定テーブル209のFc番目に検索情報アドレスが指定されているか判定する(S1404)。検索情報アドレスが指定されている場合(S1404−Yes)、印刷装置102は、サーバ処理のフォーマット特定処理(図10にて後述)を行う(S1405)。
S1405によりフォーマットを特定できた場合(S1406−Yes)、印刷装置102は、印刷データのフォーマットと印刷データを処理する場所としてサーバを決定する(S1407)。
一方、S1405によりフォーマットを特定できなかった場合(S1406−No)、印刷装置102は、フォーマットカウンタをインクリメントし(S1410)、S1403へ戻る。
S1404で検索情報アドレスが指定されていないと判定された場合(S1404−No)、印刷装置102は、フォーマット特定テーブル209のFc番目の関数を実行することでフォーマットを特定できたか判定する(S1420)。フォーマットを特定できた場合、印刷装置102は、フォーマット特定テーブル209のFc番目の処理フラグが1か判定する(S1421)。処理フラグが1の場合(S1421−Yes)、印刷装置102は、印刷データのフォーマットと処理場所としてサーバを決定する(S1407)。
一方、処理フラグが0の場合(S1421−No)、印刷装置102は、印刷データのフォーマットと処理場所として印刷装置を決定する(S1440)。
以上の処理により、ファイル形式とは異なる形式の印刷データのフォーマットが決定され、決定されたフォーマットの印刷データを処理すべき場所が決定される。
図10は、図9のS1405の詳細を説明するためのフローチャートである。
印刷装置102は、検索カウンタKcを初期化し(S1501)、検索情報アドレス907に格納された検索情報の検索キー数908をKに代入する(S1502)。検索カウンタKcと検索キー数Kを比較し(S1503)、KcがK以下の場合、印刷装置102は、検索情報のKc番目の検索オフセット909をOffsetに代入する(S1504)。
印刷装置102は、Offsetが0以上の場合(S1505−Yes)、印刷データのOffsetバイト分のデータをスキップし(S1506)、検索情報の検索サイズ分910のデータを読みだす(S1507)。
印刷装置102は、S1507で読み出したデータと検索情報の検索キー911と比較し(S1508)、一致しなかった場合は、印刷データはFc番目のフォーマットと異なるとしてFALSEと決定する(S1509)。一方、一致した場合、印刷装置102は、検索カウンタKcをインクリメントし(S1520)、S1503に戻る。
S1505で、Offsetが−1だった場合(S1505−No)、印刷装置102は、順次印刷データの中身のデータを読み込み(S1510)、検索情報の検索キー911と比較する(S1511)。
S1510で読み込まれたデータと検索キー911が一致した場合、印刷装置102は、検索カウンタKcをインクリメントし(S1520)、S1503に戻る。S1510で読み込まれたデータと検索キー911が一致しなかった場合、印刷装置102は、読み込まれたデータが検索キーに一致するか、または、読み込むべきデータがなくなるまでS1510〜S1512を繰り返し実行する。読み込むべきデータがなくなったら、印刷装置102は、FALSEと決定する(S1509)。全ての検索キー911が印刷データに含まれていた場合、印刷装置102は、印刷データはFc番目のフォーマットであると決定する(S1530)。
<サーバ103の印刷データ変換処理>
図11は、サーバ103の印刷データ変換処理フローである。
サーバ103は、印刷装置102から送信されたジョブチケットと印刷データを受信する(S1601)と、ジョブチケットから入力フォーマットと出力フォーマットを参照する(S1602)。サーバ103は、参照した入力フォーマットに従って、解析処理部302で印刷データを解析し(S1603)、データ変換部303で参照した出力フォーマットの印刷データに変換する(S1604)。
そしてサーバ103は、ジョブチケットで指定された出力フォーマットに変換された印刷データ(印刷装置102が処理可能な印刷データ)を印刷装置102に送信する(S1605)。
上記のとおり、印刷装置102は、フォーマットの特定方法が記述されたフォーマット特定情報を取得することで、例えば、サーバ103で処理可能なフォーマットが追加されてもフォーマットを特定できる。その結果、印刷装置102は、印刷データの印刷処理を実行することが可能になる。
[実施例2]
実施例1では、印刷装置が処理可能なフォーマットの印刷データは印刷装置で処理を行っていた。一方、本実施例においては、印刷装置102、サーバ103の処理性能を考慮して印刷データの処理場所を決める方法について説明する。
図13は、本実施例における図4のS1005のフォーマット特定テーブル209の更新処理を説明するためのフローチャートである。
なお、S1701からS1704は、S1101からS1104と同じ処理であるため説明は省略する。
サーバ103から取得したフォーマット特定情報のAc番目のフォーマット名を参照し、Ac番目のフォーマット名がフォーマット特定テーブル209にあるかを調べる(S1705)。フォーマット特定情報のAc番目のフォーマット名がフォーマット特定テーブル209にある場合、印刷装置102は、サーバ103から取得したフォーマット特定情報のAc番目の処理性能とフォーマット特定テーブル209の処理性能を比較する(S1706)。
サーバの処理性能の方が高い場合(S1706−Yes)、印刷装置102は、フォーマット特定テーブル209の処理フラグを1に変更し、サーバ側で処理するように切り替える(S1707)。
サーバの処理性能の方が低い場合(S1706−No)、次のフォーマットに処理を移すためにS1716のインクリメント処理が実行される。
また、S1705においてNoと判定された場合は、図5のS1105以降と同様の処理を行う。
本処理により、印刷装置102およびサーバ103の両者で実行可能なフォーマットは、効率的に処理可能な装置で解析処理が実行されることとなる。
図14(a)は、本実施例においてサーバ103から取得するフォーマット特定情報306である。
本実施例のフォーマット特定情報306は、図6(a)のフォーマット特定情報に加え、処理性能1101が追加されている。処理性能1101は、処理対象のフォーマットの印刷データを解析する際の処理性能のパラメータである。
図14(b)は、本実施例におけるフォーマット特定情報306の一例である。
処理可能なフォーマットはPDFと電子書籍フォーマットであり、処理性能は、PDFが10、電子書籍フォーマットが20である。これらの値は、サーバ103のCPU502の性能に応じて設定されたり、1ページ当たりの解析速度や1ページ当たりの解析に係る時間に基づいて設定される。
図14(c)は、本実施例における印刷装置102で管理されるフォーマット特定テーブル209である。
フォーマット特定テーブル209は、図6(c)のフォーマット特定テーブルに加え、処理性能1201が追加されている。処理性能1201は、印刷装置102の処理性能を示す点は異なるが、その他は処理性能1101と同じである。
図14(d)は、本実施例における更新処理前のフォーマット特定テーブル209の一例である。各フォーマットに処理性能のパラメータが設定されている。これらの値は、印刷装置102のCPU403の性能、1ページ当たりの解析速度、1ページ当たりの解析に係る時間に基づいて設定される。
図14(e)は、本実施例における図13の更新処理後のフォーマット特定テーブル209の一例である。
印刷装置102のフォーマット特定テーブル管理部202は、サーバ103より図14(b)のフォーマット特定情報を取得する。フォーマット特定テーブル管理部202は、フォーマット特定テーブル209に存在するPDFのフォーマット特定情報の処理性能(10)とフォーマット特定テーブル209の処理性能(10)を比較する。その結果、サーバ103の処理性能の方が高いため、処理フラグを1に置き換える。一方、フォーマット特定テーブル209に存在しない電子書籍フォーマットについては、検索優先度に従ってフォーマット特定テーブル209に追加される。
本実施例においては、CPU403の性能に応じて処理性能のパラメータを決定しているが、CPU403以外の印刷装置102のハードウェアの構成(例えば、HDD404の搭載有無)に応じて変更してもよい。例えば、解析処理部204において大容量の記憶領域が必要なフォーマット(例えばPDFなど)は、HDD404を搭載していない印刷装置102において印刷データのサイズが制限される。このようなケースにおいては、処理性能を0に設定することで、サーバ103での処理に切り替わり、サイズ制限を回避することができる。
なお、本実施例において更新された後のフォーマット特定テーブル209を用いた印刷処理は、実施例1と同じであるため詳細な説明は省略する。
上記のとおり、フォーマット特定情報に処理性能を加えることで、印刷装置102とサーバ103の両者で処理可能な印刷データについては、印刷装置102の処理性能とサーバ103の処理性能に応じて、どちらで処理するかを変えることができる。その結果、最適なパフォーマンスが得られるようになる。
[実施例3]
実施例2においては、印刷装置102とサーバ103の両者で処理可能な印刷データについては、処理性能を考慮して、適切な処理場所を選択した。本実施例では、さらに印刷データの生成元のアプリケーションを考慮し、適切な処理場所を決定する。
図17(a)は、本実施例においてサーバ103から取得するフォーマット特定情報306である。
本実施例のフォーマット特定情報306は、図14(a)のフォーマット特定情報に、アプリ情報数1301、アプリ情報毎の処理性能1302、名称サイズ1303、アプリケーション名1304が追加されている。
アプリ情報数1301は、フォーマット特定処理部203で振り分け判定をする際に参照するアプリ情報の数である。アプリ情報は、該当フォーマットへ変換する前のアプリケーションのフォーマットに関する情報である。
処理性能1302は、印刷データの生成元のアプリケーション単位の処理性能を示すパラメータである。名称サイズ1303は、印刷データの生成元のアプリケーション名1304のバイト数である。アプリケーション名1304は、印刷データの生成元のアプリケーションの名称であり、テキスト列の情報である。
図17(b)は、本実施例におけるフォーマット特定情報306の一例である。
フォーマットはPDFであり、アプリ情報数は2である。アプリ情報のアプリケーション名のテキスト列は”application1”, “application2”であり、それぞれ処理性能は20である。これらのアプリケーション以外は、フォーマットの処理性能1101の10となる。
図15は、本実施例の図4のS1005のフォーマット特定テーブル209の更新処理のフローである。
なお、S1801からS1804は、S1101からS1104と同じ処理であるため説明は省略する。
印刷装置102は、サーバ103から取得したフォーマット特定情報のAc番目のフォーマット名を参照し、フォーマット特定テーブル209にあるかを調べる(S1805)。フォーマット特定情報のAc番目のフォーマット名がフォーマット特定テーブル209にある場合、印刷装置102は、サーバ103から取得したフォーマット特定情報のAc番目の処理性能とフォーマット特定テーブル209の処理性能を比較する(S1806)。
サーバの処理性能の方が高い場合(S1806−Yes)、印刷装置102は、フォーマット特定テーブル209の処理フラグを1に変更し、サーバ側で処理するように切り替える(S1807)。さらに、印刷装置102は、アプリ情報数1301が0より大きいか否かを判定する(S1808)。アプリ情報数1301が0より大きいと判定された場合、フォーマット特定テーブル209のアプリ情報アドレス1401に処理性能1302からアプリケーション名1304を指定する。つまり、Ac番目のフォーマットのデータは、印刷データの生成元のアプリケーションに関わらずサーバで処理されることになる。
サーバの処理性能の方が低い場合(S1806−Yes)、印刷装置102は、S1808およびS1809を実行する。つまり、Ac番目のフォーマットの印刷データの生成元のアプリケーションがアプリケーション名1304である場合、印刷データはサーバで処理される。一方、Ac番目のフォーマットの印刷データの生成元のアプリケーションがアプリケーション名1304でない場合、印刷データは印刷装置102で処理される。
そして、S1817にてフォーマットカウンタAcがインクリメントされる。
なお、それ以外の処理については、図5と同じであるため説明は省略する。
図17(c)は、本実施例における印刷装置102のフォーマット特定テーブル管理部202で管理するフォーマット特定テーブル209である。
フォーマット特定テーブル209は、図14(c)のフォーマット特定テーブル209に加え、アプリ情報アドレス1401、アプリ情報数1402、アプリ情報毎の、処理性能1403、名称サイズ1404、アプリケーション名1405から構成される。アプリ情報アドレス1401は、サーバ103から取得したアプリ情報を格納したRAM402のアドレスである。アプリ情報数1402、処理性能1403、名称サイズ1404、アプリケーション名1405は、図17(a)のアプリ情報と同じである。
図17(d)は、本実施例における更新処理前のフォーマット特定テーブル209の一例である。
印刷装置102は、PDFの印刷処理が可能であり、処理性能は10である。
図17(e)は、本実施例における図15の更新処理後のフォーマット特定テーブル209の一例である。
印刷装置102のフォーマット特定テーブル管理部202は、サーバ103より図17(b)に示すPDFのフォーマット特定情報を取得すると、各処理性能を参照し、比較する。このときサーバ103から取得したフォーマット特定情報の処理性能は同等であるが、図17(b)に示すアプリ情報の処理性能(20)は印刷装置の処理性能よりも高いため、アプリ情報アドレス1401にアドレスを指定し、アプリ情報1402から1405をフォーマット特定テーブル209に追加する。
図16は、本実施例における印刷処理S1210のファイル以外のフォーマット特定処理フローである。
なお、S1901からS1903は、S1401からS1403と同じ処理であるため説明は省略する。
FcがF以下の場合、印刷装置102は、フォーマット特定テーブル209の検索情報アドレスが指定されているかを判定する(S1904)。検索情報アドレスが指定されている場合、印刷装置102は、フォーマット特定テーブル209のFc番目の検索情報アドレスを参照し、サーバ処理のフォーマット特定処理を行う(S1905)。サーバ処理のフォーマット特定処理でフォーマットを特定できた場合(S1906−Yes)、特定されたフォーマットと処理場所としてサーバを決定する(S1907)。
一方、フォーマットを特定できなかった場合(S1906−No)の処理は図9と同じである。
S1904で、Fc番目の検索情報アドレスが指定されていない場合、印刷装置102は、フォーマット特定テーブル209のFc番目の関数を実行することでフォーマットを特定できたか否かを判定する(S1920)。フォーマットを特定できた場合(S1920−Yes)、印刷装置102は、アプリ情報アドレス1401のアドレスが指定されているか調べる(S1921)。
アプリ情報アドレス1401のアドレスが指定されている場合(S1921−Yes)、印刷装置102は、印刷データの生成元のアプリケーション名がアプリ情報のアプリケーション名と一致するかを調べる(S1922)。S1922でアプリケーション名が一致した場合(S1922−Yes)、印刷装置102は、フォーマット特定テーブル209のFc番目の処理性能(印刷装置の処理性能)と、アプリ情報の処理性能を比較する(S1923)。例えば、印刷データのフォーマットがPDFであり、かつ、印刷データの生成元のアプリケーションがapplication1であった場合、印刷装置は、図17(e)を用いて印刷装置の処理性能(10)とアプリ情報の処理性能(20)が比較される。ここで、アプリ情報の処理性能が印刷装置102の処理性能よりも高い場合、印刷装置102は、印刷データのフォーマットと処理場所としてサーバを決定する(S1907)。
一方、アプリ情報の処理性能が印刷装置102の処理性能よりも低い場合、印刷装置102は、印刷データのフォーマットと処理場所として印刷装置102を決定する(S1940)。
S1922においてNoと判定された場合、印刷装置102は、フォーマット特定テーブル209のFc番目の処理フラグが1か判定し(S1924)、1であれば印刷データのフォーマットと処理場所としてサーバを決定する。一方、処理フラグが1でなければ、印刷装置102は、印刷データのフォーマットと処理場所として印刷装置を決定する(S1940)。
上記のとおり、印刷データの生成元のアプリケーションに基づいて、適切な処理場所を決定することができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である