説明

印刷システム、印刷制御装置、印刷装置およびプリンタドライバプログラム

【課題】印刷用データの生成処理に関する負荷分散を容易に実現することが可能な印刷システムを提供する。
【解決手段】印刷システム1は、印刷用の出力データを生成するPC10およびプリンタドライバ20、プリンタ30とプリンタ内の印刷制御部40および印刷エンジン50とを備える。出力データを生成するプリンタドライバ20は、ユーザからの印刷出力指令に応じて実行すべき各処理について、PC10(第1の印刷制御装置)で実行すべきか、プリンタ30(第2の印刷制御装置)で実行すべきかを決定する。そして、第2の印刷制御装置で実行すべき処理に対応するモジュールプログラムを内蔵した出力データを生成して印刷制御部40にダウンロードし、分散印刷を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷システムに関し、特に印刷制御技術に関する。
【背景技術】
【0002】
印刷出力用のデータを分散して生成する技術が存在する。
【0003】
例えば、特許文献1には、ホストコンピュータとプリンタ内部の印刷制御部との双方が、印刷出力用データ生成機能を有する印刷制御装置として機能する技術が記載されている。より詳細には、印刷出力用データを生成するに際して、ホストコンピュータとプリンタ内部の印刷制御部との間で適宜に負荷が分散される。
【0004】
【特許文献1】特開2001−109598号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献1のような技術においては、印刷出力用データの生成処理を双方の印刷制御装置で実行するために、ホストコンピュータで実行されるプログラム(プリンタドライバ)と、プリンタ内部の印刷制御部で実行されるプログラムとが用いられる。
【0006】
しかしながら、このような従来の技術においては、それぞれのプログラムが別個のプログラムとしてプログラミングされて作成されるものであった。そのため、2種類のプログラムを別個に作成する必要があり、プログラミングの手間が非常に大きいなどの問題がある。
【0007】
そこで、この発明は、印刷用データの生成処理に関する負荷分散を容易に実現することが可能な印刷システムおよびそれに関連する技術を提供することを課題とする。
【課題を解決するための手段】
【0008】
上記課題を解決すべく、請求項1の発明は、印刷システムであって、第1の印刷制御手段と第2の印刷制御手段とを有し、印刷出力指令に応じて実行すべき各処理を互いに分担して処理する複数の印刷制御手段と、前記複数の印刷制御手段により生成された印刷データに基づき印刷出力動作を行う印刷出力手段とを備え、前記第1の印刷制御手段は、前記印刷出力指令に応じて実行すべき各処理を、前記複数の印刷制御手段のいずれで担当するかを決定する決定手段と、前記第2の印刷制御装置での担当処理に関するモジュールプログラムを内蔵した出力データを生成する生成手段とを有し、前記第2の印刷制御手段は、前記出力データ内の前記モジュールプログラムに基づいて前記出力データに関する変更処理を実行する変更手段、を有し、前記印刷出力手段は、前記変更処理が施された出力データに基づいて、前記印刷出力動作を行うことを特徴とする。
【0009】
請求項2の発明は、請求項1の発明に係る印刷システムにおいて、前記第1の印刷制御手段は、前記第1の印刷制御手段での担当処理に関するモジュールプログラムを用いて当該担当処理を実行し、その実行結果を前記出力データに反映させる実行手段、をさらに有することを特徴とする。
【0010】
請求項3の発明は、請求項1または請求項2の発明に係る印刷システムにおいて、前記第2の印刷制御手段は、前記印刷出力手段とともに印刷装置に内蔵されていることを特徴とする。
【0011】
請求項4の発明は、請求項1または請求項2の発明に係る印刷システムにおいて、前記第2の印刷制御手段は、前記印刷出力手段を有する印刷装置とは別個の装置として構成されていることを特徴とする。
【0012】
請求項5の発明は、請求項1ないし請求項4のいずれかの発明に係る印刷システムにおいて、前記出力データは、ページ記述言語によるデータを含むことを特徴とする。
【0013】
請求項6の発明は、請求項5の発明に係る印刷システムにおいて、前記ページ記述言語によるデータは、XPS形式のデータであることを特徴とする。
【0014】
請求項7の発明は、印刷用の出力データを生成する印刷制御装置であって、印刷出力指令に応じて実行すべき各処理を、前記印刷制御装置である第1の印刷制御装置と前記第1の印刷制御装置以外の第2の印刷制御装置とを含む複数の印刷制御装置のいずれで担当するかを決定する決定手段と、前記第2の印刷制御装置での担当処理に関するモジュールプログラムを内蔵した前記出力データを生成する生成手段とを備えることを特徴とする。
【0015】
請求項8の発明は、請求項7の発明に係る印刷制御装置において、前記第1の印刷制御装置での担当処理に関するモジュールプログラムを用いて当該担当処理を実行し、その実行結果を前記出力データに反映させる実行手段、をさらに備えることを特徴とする。
【0016】
請求項9の発明は、第1の印刷制御装置において実行され、第2の印刷制御装置への出力データを生成するプリンタドライバプログラムであって、印刷出力指令に応じて実行すべき各処理を、前記第1の印刷制御装置と前記第2の印刷制御装置とを含む複数の印刷制御装置のいずれで担当するかを決定する手順と、前記第2の印刷制御装置での担当処理に関するモジュールプログラムを内蔵した前記出力データを生成する手順とを含むことを特徴とする。
【0017】
請求項10の発明は、請求項9の発明に係るプリンタドライバプログラムにおいて、前記第1の印刷制御装置での担当処理に関するモジュールプログラムを用いて当該担当処理を実行し、その実行結果を前記出力データに反映させる手順、をさらに含むことを特徴とする。
【0018】
請求項11の発明は、請求項9または請求項10の発明に係るプリンタドライバプログラムにおいて、前記出力データは、ページ記述言語によるデータを含むことを特徴とする。
【0019】
請求項12の発明は、請求項11の発明に係るプリンタドライバプログラムにおいて、前記ページ記述言語によるデータは、XPS形式のデータであることを特徴とする。
【0020】
請求項13の発明は、第1の印刷制御装置において実行され、第2の印刷制御装置へのページ記述言語による出力データを生成するプリンタドライバプログラムであって、前記出力データを生成するための複数の処理を、前記第1の印刷制御装置と前記第2の印刷制御装置とを含む複数の印刷制御装置のいずれで担当するかを決定する手順と、前記複数の処理のうちの特定処理を前記第1の印刷制御装置で担当すべき旨が決定されたときには、前記特定処理に対応するモジュールプログラムを用いて当該特定処理を実行し、その実行結果を前記出力データに反映させる手順と、前記特定処理を前記第2の印刷制御装置で担当すべき旨が決定されたときには、前記モジュールプログラムを内蔵した前記出力データを生成する手順とを含むことを特徴とする。
【0021】
請求項14の発明は、印刷制御装置であって、前記印刷制御装置とは別の印刷制御装置からの印刷用の出力データを取得する取得手段と、前記出力データ内にモジュールプログラムが存在するときには、当該モジュールプログラムに基づいて、前記出力データに関する変更処理を実行する変更手段とを備えることを特徴とする。
【0022】
請求項15の発明は、印刷装置であって、外部の印刷制御装置からの印刷用の出力データを取得する取得手段と、前記出力データ内にモジュールプログラムが存在するときには、当該モジュールプログラムに基づいて、前記出力データに関する変更処理を実行する変更手段と、前記変更手段により変更された前記出力データに基づいて、印刷出力動作を行う印刷出力手段とを備えることを特徴とする。
【発明の効果】
【0023】
請求項1ないし請求項15に記載の発明によれば、印刷用データの生成処理に関する負荷分散を容易に実現することが可能である。
【発明を実施するための最良の形態】
【0024】
以下、本発明の実施形態を図面に基づいて説明する。
【0025】
<1.システム概要>
図1は、実施形態に係る印刷システムの構成を示す概略図である。
【0026】
図1に示すように、印刷システム1は、印刷出力機能を有するプリンタ30と、印刷用の出力データを生成するコンピュータ10とを備える。
【0027】
コンピュータ10は、CPU、半導体メモリ(RAM等)およびハードディスク等を有している。コンピュータ10は、そのCPU等を用いて各種のプログラムを実行することによって様々な機能を実現する。
【0028】
具体的には、コンピュータ10には所定のOS(オペレーティングシステム)がインストールされており、コンピュータ10は文書作成ソフトウエアなどのアプリケーションプログラムを当該OS上で実行することが可能である。また、当該アプリケーションプログラムは、ユーザによる印刷指令に応じて、プリンタ30に関するプリンタドライバプログラム(単にプリンタドライバとも称する)20を呼び出して実行する。これにより、コンピュータ10は、プリンタ30の印刷出力を制御する印刷制御装置として機能する。
【0029】
ここでは、プリンタドライバ20は、アプリケーションプログラムにおける文字および図形等を含むコンテンツを、所定のページ記述言語(PDL:Page Description Language )で記述されたデータに変換して出力する。すなわち、プリンタドライバ20は、印刷出力用データとして、PDL形式のデータを生成して出力する。ここでは、PDL形式のデータとして、XPS(XML Paper Specification)形式のデータを用いる場合を例示する。なお、PDL形式のデータは、XPS形式のデータに限定されず、ポストスクリプト(PS:Post Script)形式等のその他のデータ形式であってもよい。
【0030】
また、コンピュータ10は、図2に示すように、設定部21と基本描画部22と決定部23と内部実行部24とフィルタ埋込部25と出力部26とを有する。これらの処理部は、プリンタドライバ20の実行によって実現される。なお、図2は、コンピュータ(印刷制御装置)10の構成を示す機能ブロック図である。
【0031】
設定部21は、印刷に関する各種の設定処理を行う処理部である。この設定処理においては、例えば図7に示すようなGUI(グラフィカル・ユーザ・インターフェース)が用いられる。すなわち、図7のような設定画面DGに基づいて、ユーザからの印刷出力指令に応じて実行すべき各種の処理が設定される。例えば、ウォーターマーク設定、Nup設定、フォーム設定(フォームオーバーレイ設定とも称する)などの各種設定処理が実行される。
【0032】
基本描画部22は、アプリケーションプログラムにおける文字および図形等を含むコンテンツを所定のページ記述言語(PDL)による印刷出力用データ(ここではXPS形式データ)に変換する基本的な描画機能を有する。
【0033】
また、図7のような設定画面DGにて設定された各種機能に対応する内容は、所定のページ記述言語(PDL)による印刷出力用データ内において記述され、設定される。
【0034】
ここにおいて、この実施形態においては、XPS形式の印刷出力用データ(出力データ)はコンピュータ10内で完全に作成されるのではなく、コンピュータ10とプリンタ30(詳細にはプリンタ30内の印刷制御部40)との双方によって負荷分散されて作成される。
【0035】
具体的には、コンピュータ10内の決定部23は、印刷出力指令に応じて実行すべき各処理を、複数の印刷制御装置のいずれで担当するかを決定する。詳細には、決定部23は、設定部21によって設定された各種機能(例えばウォーターマーク付与機能等)を実現するための各処理を、コンピュータ10(第1の印刷制御装置)と、コンピュータ10以外の印刷制御装置(第2の印刷制御装置)とのいずれで担当するかを決定する。なお、ここでは、コンピュータ10以外の印刷制御装置として、単一の印刷制御装置40を例示するが、これに限定されず、コンピュータ10以外の印刷制御装置は、2つ以上の印刷制御装置で構成されていてもよい。
【0036】
例えば、決定部23は、印刷出力用のXPS形式データの作成に関する複数の処理のうち、第1の印刷制御手段(例えばコンピュータ10)で実行すべき第1の処理C1と、第2の印刷制御手段(例えばプリンタ30内の印刷制御部40)で実行すべき第2の処理C2とを区別して決定する。
【0037】
この負荷分散における判定基準としては、各種の基準を用いることができる。例えば、プリンタ30がビジー状態であるか否かを判定基準として用いることができる。詳細には、プリンタ30がビジー状態である場合にはフォーターマークの付加処理をコンピュータ10側で実行すべきと判定すればよい。逆に、プリンタ30がビジー状態でない場合には、フォーターマークの付加処理をプリンタ30側(詳細には、その印刷制御部40)で実行すべきと判定すればよい。
【0038】
処理C1は、プリンタドライバ20を実行する装置(例えばコンピュータ10)の内部で実行される。換言すれば、処理C1は、プリンタドライバ20が実行される装置と同一の装置内部において実行される。端的に言えば、処理C1は、コンピュータ10での担当処理である。
【0039】
内部実行部24は、決定部23によって処理C1として決定された内容を実行する処理部である。具体的には、内部実行部24は、当該処理C1に対応するモジュールプログラム(具体的には、ダイナミックリンクライブラリ281,282,283,...(図6参照))を呼び出して実行する。これにより、処理C1に対応するモジュールプログラムがコンピュータ10において実行され、当該処理C1に関する実質的な処理が実行される。
【0040】
例えば、図7でウォーターマーク「複製厳禁」が設定され、当該ウォーターマークの付与処理が処理C1として決定された場合には、ウォーターマークに関する文字「複製厳禁」に基づくビットマップ画像が生成されるとともに、当該ビットマップ画像を所定の位置に配置する処理が実行される。これにより、図9に示すように、印刷用紙内においてウォーターマーク(ここでは「複製厳禁」)WMが印刷内容として付加される。
【0041】
一方、処理C2は、プリンタドライバ20を実行する装置(例えばコンピュータ10)とは異なる装置において、実行される。すなわち、処理C2は、コンピュータ10以外の印刷制御装置での担当処理であり、コンピュータ10内部では実質的には実行されない。そして、コンピュータ10においては、当該処理C2に対応するモジュールプログラムをXPS形式のデータに埋め込む処理が実行される。この埋め込み処理は、フィルタ埋込部25によって実行される。
【0042】
このように、フィルタ埋込部25は、処理C2に対応するモジュールプログラム(具体的には、ダイナミックリンクライブラリ(DLL))を出力データ(XPS形式データ)に埋め込む処理を実行する。換言すれば、フィルタ埋込部25は、当該モジュールプログラムを内蔵した出力データを生成する生成部である。
【0043】
例えば、図7でウォーターマーク「複製厳禁」が設定され、当該ウォーターマークの付与処理が処理C2として決定された場合には、XPS形式データ(具体的には、その一部のメタデータ)において、図8に示すような内容がマークアップ形式で記述される。図8では、ウォーターマークが付与されるべき旨のみを示す内容が例示されている。そして、ウォーターマーク処理を実際に実行するダイナミックリンクライブラリ(ウォーターマーク付与フィルタ281(図6参照))が、XPS形式データに埋め込まれる。このように、ウォーターマークに関する実際の生成処理(文字「複製厳禁」に関するビットマップ画像の生成処理)等はコンピュータ10では実行されない。なお、後述するように、実際の生成処理等は、XPS形式データに埋め込まれた当該ダイナミックリンクライブラリを用いて、プリンタ30内の印刷制御部40で実行される。
【0044】
その他の各種の処理に関しても、コンピュータ10内部で実行すべきか否かが判定され、その判定結果に基づいて、上記と同様の処理が実行される。これにより、モジュールプログラムが必要に応じて埋め込まれたデータファイル(XPS形式データ)、が生成される。
【0045】
図6は、プリンタドライバ内のフィルタ群281,282,283,...等を示す図である。図6に示すように、コンピュータ10(詳細にはプリンタドライバ20)は、それぞれ個別の処理に対応する複数のモジュールプログラム(ダイナミックリンクライブラリ)281,282,283,...を有している。各モジュールプログラムは、通過する入力データに対して変化を加えて出力するものであることなどから、「フィルタ」とも称される。詳細には、ウォーターマーク付与処理に対応するウォーターマーク付与フィルタ281、Nup処理に対応するNupフィルタ282、およびフォーム処理に対応するフォームフィルタ283等が、「フィルタ」としてコンピュータ10内に設けられている。ここで、「Nup」処理は、Nページの内容を1枚の印刷用紙に割り付ける処理であり、「Nin1」処理などとも称される(図11参照)。また、フォーム処理は、ユーザによって作成された「フォーム」を読み込む処理である。「フォーム」は、枠線、ロゴ、および方眼紙等の各種要素がユーザによって適宜に組み合わせられて予め作成された定型書式ファイルである。
【0046】
上記のような複数の処理のうち、コンピュータ10で実行すべき旨が判定された処理C1は、対応するモジュールプログラム(フィルタ)を用いてコンピュータ10で実行され、その実行結果がXPS形式データに記述される。一方、コンピュータ10以外で実行すべき旨が判定された処理C2は、コンピュータ10では実行されることなく、当該処理C2に対応するモジュールプログラム(フィルタ)がXPS形式データに埋め込まれる。そして、処理C2に関する実質的な実行動作は、XPS形式データに埋め込まれたモジュールプログラム(フィルタ)を用いて、コンピュータ10以外の印刷制御装置(例えばプリンタ30内の印刷制御装置40)によって行われる。
【0047】
換言すれば、複数の処理のうちの特定処理(例えばウォーターマーク付与処理)をコンピュータ10で担当すべき旨が決定されたときには、当該特定処理に対応するモジュールプログラム(例えばウォーターマークDLL281)を用いて当該特定処理が実行される。そして、その実行結果がXPS形式データに反映される。一方、当該特定処理をコンピュータ10以外の印刷制御装置で担当すべき旨が決定されたときには、同じモジュールプログラム(例えばウォーターマークDLL281)がXPS形式データに埋め込まれ、当該モジュールプログラムを内蔵したXPS形式データが生成される。そして、コンピュータ10以外の印刷制御装置(例えば印刷制御装置40)は、当該XPS形式データを受信すると、当該XPS形式データに埋め込まれたモジュールプログラム(フィルタ)を用いて、この特定処理を実行する。
【0048】
ここにおいて、コンピュータ10および印刷制御装置40等は、或る処理(例えばウォーターマーク付与処理)を実行する際には、いずれも同じモジュールプログラム(例えばウォーターマークDLL281)を用いる。したがって、コンピュータ10用のプログラムと印刷制御装置40用のプログラムとを別個に作成する場合に比べて、プログラム作成の手間を低減することができる。
【0049】
出力部26は、上述のようにして生成されたXPS形式データを指定された出力先に出力する出力処理を実行する。例えば、出力部26は、プリンタ30へと当該XPS形式データを送信する。
【0050】
図3は、プリンタ(印刷装置)30の構成を示す機能ブロック図である。図3に示すように、プリンタ30は、印刷制御部(印刷制御装置とも称する)40と印刷出力部50とを備えている。換言すれば、印刷制御部40は、印刷出力部50とともにプリンタ30(印刷装置)に内蔵されている。なお、上述のコンピュータ10は、プリンタ30の外部装置であるとも表現される。
【0051】
プリンタ30内の印刷制御部40は、上述のようにしてコンピュータ10により生成されたXPS形式データを当該コンピュータ10から受信して取得し、当該XPS形式データに関する印刷制御動作を実行する。印刷制御部40は、XPS形式データにモジュールプログラムが埋め込まれている場合には、当該モジュールプログラムに基づいて、XPS形式データに関する変更処理(追加処理)を実行する。これにより、当該XPS形式データは印刷用データの最終形態に更に近づく。
【0052】
また、印刷出力部50は、変更処理が施された出力データ等に基づいて、印刷出力動作を行う。
【0053】
印刷制御部40は、図3に示すように、ファイルサーチ部41とフィルタ実行部42とイメージ化部(ラスタライズ部)43と、転送部44とを備えている。
【0054】
ファイルサーチ部41は、XPS形式データを受信して取得し、当該取得したXPS形式データ内に埋め込まれているモジュールプログラムを検索する。換言すれば、ファイルサーチ部41は、当該XPS形式データ(XPS形式ファイル)内にモジュールプログラムが存在するか否かを判定する。フィルタ実行部42は、XPS形式データ内にモジュールプログラムが存在する場合に、当該モジュールプログラムに基づき、当該モジュールプログラムに対応する変更処理を実行する。フィルタ実行部42による変更処理が終了すると、XPS形式データが最終的な形態に変更される。イメージ化部43は、最終的なXPS形式データに基づいて、ラスタライズ処理を実行する。そして、転送部44は、ラスタライズ処理が施された後のデータ(ラスタライズデータとも称する)を印刷出力部50へと転送する。印刷出力部50は、ラスタライズデータに基づいて印刷出力動作を行う。
【0055】
例えば、ウォーターマークの付与処理を実際に実行するウォーターマークDLL281(図6)が、XPS形式データに埋め込まれている場合を想定する。この場合には、フィルタ実行部42は、XPS形式データ内の当該ウォーターマークDLL281を用いて、ウォーターマークに関する実際の生成処理(文字「複製厳禁」に関するビットマップ画像の生成処理および配置処理)等をXPS形式データの変更処理の一部として実行する。そして、イメージ化部43は、変更処理が施された後のXPS形式データに対して更にラスタライズ処理を施し、当該ラスタライズ処理後のデータ(ラスタライズデータ)が転送部44によって印刷出力部50に転送される。印刷出力部50は、当該ラスタライズデータに基づいて印刷用紙上への印刷出力を行う。
【0056】
<2.動作>
つぎに、図4および図5等を参照しながら、印刷システム1における印刷動作についてさらに詳細に説明する。図4は、コンピュータ10における動作を示すフローチャートであり、図5は、プリンタ30における動作を示すフローチャートである。なお、図7の設定画面DG等を用いた設定処理、および印刷出力指令の受付処理が、図4のステップS11の前に予め終了しているものとする。
【0057】
まず、ステップS11においては、コンピュータ10はプリンタ30と通信して、プリンタ30(印刷出力用デバイス)の情報を取得する。具体的には、負荷分散処理における負荷分担装置(および負荷分担割合等)を決定するための情報が取得される。詳細には、プリンタ30がビジー状態であるか否かなどに関する情報(稼働状況に関する情報とも称される)が取得される。例えば、プリンタ30が他のジョブの実行中である場合には、当該プリンタ30がビジー状態であると判定される。あるいは、単一のジョブの実行中である場合にはビジー状態であるとは判定せずに、所定数(例えば3つ)以上のジョブの実行中である場合にビジー状態であると判定するようにしてもよい。さらには、プリンタ30での実行中ジョブ数(あるいは待機中ジョブ数でもよい)などをも取得して、ビジー状態の程度をも判定するようにしてもよい。
【0058】
次のステップS12においては、ステップS11で取得された(プリンタ30の)稼働状況に応じて、負荷分散における負荷分担装置等が決定される。
【0059】
ここでは、例えば2つのジョブがプリンタ30で実行中である旨がステップS11で取得され、プリンタ30での稼働状態が中程度であると判定され、次のような負荷分散の内容が決定されるものとする。すなわち、設定画面DG等で実行すべき旨が設定された複数の付加的な処理のうちの一部の付加的な処理がコンピュータ10で実行され、他の一部の付加的な処理がコンピュータ10以外の印刷制御装置で実行されることが、ステップS12において決定されるものとする。詳細には、プリンタドライバ20で設定可能な複数の付加的な処理のうち、ウォーターマーク付与処理が処理C1として決定され、Nup処理が処理C2として決定されるものとする。
【0060】
その後、コンピュータ10以外で実行すべき旨が決定された処理C2に関しては、ステップS13においてフィルタ埋込処理が実行される。ここでは、ステップS13において、Nup処理に関するモジュールプログラムであるNupフィルタ282が、XPS形式のデータに埋め込まれる。
【0061】
図10は、XPS形式データの一例を示す図である。XPS形式データは、図10に示すような階層化構造を有しており、複数のフォルダに区分された複数のファイルで構成される。図10の左側には、XPS形式データ(ここでは「PrintData.xps」)のフォルダー構成を示すフォルダーツリーが示されている。また、図10の右側には、当該XPS形式データ(「PrintData.xps」)のルート位置に格納される5つのフォルダと1つのファイルとが示されている。ここで、当該5つのフォルダは、「[Content_Types].xml」、「_rels」、「Documents」、「FixedDocumentSequence.fdseq」、「Metadata」であり、当該1つのファイルは、「Nup.DLL」(Nupフィルタ282)である。
【0062】
ステップS13においては、図10に示すように、Nupフィルタ282が、XPS形式のデータ(PrintData.xps)内に埋め込まれる。図10では、当該XPS形式データ内のルート位置にNupフィルタ282(Nup.DLL)が格納されて埋め込まれている様子が示されている。このように、処理C2はコンピュータ10では実行されず、その代わりに、当該処理C2に関するモジュールプログラムがXPS形式データに埋め込まれる。また、XPS形式のメタデータフォルダ(「Metadata」)内には、図8に類似するメタデータが保存される。図8ではウォーターマーク付与に関する指定内容がマークアップ言語形式で記載される例が示されているが、ここではNup処理に関する詳細な指定内容がマークアップ言語形式で記載される。
【0063】
一方、コンピュータ10側で実行すべき旨が決定された処理C1は、ステップS14において実行される。詳細には、当該処理C1は、コンピュータ10において、対応するモジュールプログラムを用いて実行される。そして、その実行結果がXPS形式データに反映される。ここでは、ウォーターマーク処理はコンピュータ10側で実行されるべき旨が決定されているため、次のステップS14において、ウォーターマーク付与フィルタ281を用いてウォーターマーク付与処理が実行され、その実行結果がXPS形式データに反映される。具体的には、ウォーターマーク文字をビットマップ画像化する処理等が実行され、当該ビットマップ画像がXPS形式データに記述される。なお、処理C1に対応するモジュールプログラム(ウォーターマーク付与フィルタ281)は、XPS形式データには内蔵されない。
【0064】
そして、ステップS15において、Nupフィルタ282を内蔵したXPS形式データが、プリンタ30へと送信(出力)される。
【0065】
つぎに、図5を参照しながら、プリンタ30における動作について説明する。
【0066】
プリンタ30は、コンピュータ10からの印刷データ(XPS形式データ)を受信する(ステップS21)と、当該受信したデータ内にモジュールプログラム(フィルタ)が存在するか否かを判定する(ステップS22)。
【0067】
XPS形式データ内に「フィルタ」が存在するとき(すなわちフィルタが埋め込まれているとき)には、埋め込まれていたフィルタを用いて、XPS形式データに関する変更処理を実行する(ステップS23)。例えば、Nupフィルタ282が埋め込まれている場合には、当該Nupフィルタ282を用いてNup処理が実行される。当該Nup処理に関する詳細情報は、XPS形式データ内のメタデータフォルダにマークアップ言語で記載されているデータに基づいて取得される。例えば、Nup処理における「N」の値、用紙およびページの向きに関する情報等が取得される。そして、当該情報とNupフィルタ282とに基づいて、Nup処理が実行される。当該Nup処理の実行結果はXPS形式データにさらに記載され、XPS形式データは最終形態に変更される。
【0068】
XPS形式データ内に「フィルタ」が存在しないとき、あるいは、ステップS23での処理が全て終了したときには、ステップS24に進む。
【0069】
ステップS24においては、最終的なXPS形式データが解析され、ラスタライズ処理が実行され、ラスタライズデータが生成される。
【0070】
そして、ステップS25において、ラスタライズデータが印刷制御部40から印刷出力部50に転送され、印刷出力部50が印刷用紙上に印刷内容を描画する。すなわち、印刷出力部50による印刷出力動作が実現される。
【0071】
上記のような動作によれば、コンピュータ10で実行すべき旨が判定された処理C1は、当該処理C1に対応する各モジュールプログラムを用いてコンピュータ10において実行される。一方、コンピュータ10以外の装置で実行すべき旨が判定された処理C2に関しては、当該処理C2に対応する各モジュールプログラムがXPS形式データに埋め込まれる。そして、当該XPS形式データを受信したプリンタ30は、当該XPS形式データに埋め込まれたモジュールプログラムを用いて、処理C2を実行する。
【0072】
図11は、Nup処理(詳細には2up処理)を示す図である。Nup処理(2up処理)は、各ページを所定割合(例えば60%)に縮小して、各ページを1枚の用紙内に割り付ける処理を含む。したがって、Nup処理は、各ページ内の各要素の位置を算出する処理などを含む。モジュールプログラム282は、このようなNup処理を実質的に実行することが可能なダイナミックリンクライブラリとして構成されている。
【0073】
例えば、Nup処理が処理C2として決定される場合には、図11に示すようなNup処理はコンピュータ10内では行われることなく、当該Nup処理に対応するモジュールプログラム(Nupフィルタ)282がXPS形式データに埋め込まれる。そして、当該XPS形式データを受信したプリンタ30が、当該XPS形式データに埋め込まれたモジュールプログラム282を用いて、処理C2を実行する。このようにして、コンピュータ10とプリンタ30(印刷制御装置40)との間での負荷分散処理が実現される。
【0074】
ここにおいて、或る処理(例えばNup処理)がコンピュータ10で実行されるべきと判定される場合であっても或いは逆にコンピュータ10以外の装置で実行されるべきと判定される場合であっても、当該処理の実行に際しては、同じモジュールプログラムが利用される。したがって、上述の従来技術のように、プリンタドライバを実行するコンピュータと、印刷出力デバイスであるプリンタとの双方において、それぞれ別個のプログラムを作成して準備しておくことを要しない。したがって、プログラム作成に要する時間およびコスト等を削減することが可能である。
【0075】
なお、プリンタ30においては、コンピュータ10と同じOSがインストールされていることが好ましい。ただし、これに限定されず、上記の各モジュールプログラム281,282,...が動作する環境であればよい。例えば、プリンタ30のOSがコンピュータ10のOSとは異なる場合であっても、各種のミドルウエアをプリンタ30に導入することなどによって、上記の各モジュールプログラム281,282,...がプリンタ30において実行可能であればよい。
【0076】
<3.変形例>
<3−1.印刷装置>
上記実施形態においては、印刷装置として単機能プリンタを例示したが、これに限定されない。印刷装置は、プリンタ機能、スキャナー機能および/またはファクシミリ通信機能等などの複数の機能を有する装置、詳細にはMFP(マルチ・ファンクション・ペリフェラル)(複合機とも称する)、などであってもよい。
【0077】
<3−2.決定基準>
また、上記実施形態においては、プリンタ30の稼働状況に基づいて、各種フィルタ機能をコンピュータ10とプリンタ30(印刷制御部40)とのいずれで実行するかを決定する場合を例示した。しかしながら、負荷分散の決定基準としては、これに限定されず、各種の基準を用いることができる。
【0078】
例えば、コンピュータ10のCPUの処理性能情報と出力先装置(プリンタ30等)のCPUの処理性能情報とを用いて、各種処理に関する負担割合を決定するようにしてもよい。
【0079】
より具体的には、コンピュータ10は、自機のCPU情報(CPU名およびクロック数等)を取得するとともに、プリンタ30のCPU情報(CPU名およびクロック数等)をプリンタ30から取得する。そして、両CPUの性能比等に応じて、コンピュータ10とプリンタ30との負担割合を決定し、当該負担割合に応じて、コンピュータ10で実行すべき処理C1とコンピュータ10以外の印刷制御装置で実行すべき処理C2とを決定するようにすればよい。
【0080】
詳細には、コンピュータ10とコンピュータ10以外の印刷制御装置(例えば印刷制御装置40)とで、複数の処理を当該複数の処理の負荷の大きさを考慮した上で、それぞれの負担割合に応じて分担するようにすればよい。たとえば、或るフィルタ(第1のフィルタ)による処理と別のフィルタ(第2のフィルタ)による処理とが同程度の処理負荷であり、且つ、両印刷制御装置の負担割合がいずれも50%である場合を想定する。この場合には、コンピュータ10で第1のフィルタによる処理を実行するとともに第2のフィルタをXPS形式データに埋め込み、XPS形式データに埋め込まれた第2のフィルタによる処理を、コンピュータ10以外の装置(印刷制御装置40等)で実行すればよい。
【0081】
あるいは、或る1つの処理を細分化した複数の処理を生成し、コンピュータ10とコンピュータ10以外の印刷制御装置(例えば印刷制御装置40)とでそれぞれの負担割合に応じて分担するようにしてもよい。
【0082】
たとえば、負担割合がいずれも50%であるときには、複数のページにわたるウォーターマーク付与処理のうち、奇数ページに関するウォーターマーク付与処理を処理C1として決定し、偶数ページに関するウォーターマーク付与処理を処理C2として決定すればよい。そして、コンピュータ10以外の印刷制御装置での担当処理に関するウォーターマーク付与フィルタ281を内蔵したXPS形式データを生成すればよい。なお、この場合には、処理C2として決定された処理内容(具体的には、偶数ページに関するウォーターマーク付与処理をさらに実行すべき旨等)をXPS形式データ内の設定ファイル(メタファイル)に記述しておけばよい。
【0083】
同様に、Nup処理における変換後の奇数ページ(印刷出力時の奇数ページ)に関する処理を処理C1として決定し、Nup処理における変換後の偶数ページに関する処理を処理C2として決定するようにしてもよい。そして、コンピュータ10以外の印刷制御装置での担当処理に関するNupフィルタ282を内蔵したXPS形式データを生成すればよい。なお、この場合には、処理C2として決定された処理内容(具体的には、変換後の偶数ページに関するNup処理をさらに実行すべき旨等)をXPS形式データ内の設定ファイル(メタファイル)に記述しておけばよい。
【0084】
また、負荷分散の決定基準としては、出力先の装置(例えばMFP)がデータ格納機能を有しているか否か、との基準を用いるようにしてもよい。
【0085】
具体的には、出力先の印刷装置がデータ格納機能を有していない場合には、所定の処理(例えばウォーターマーク付与処理)をコンピュータ10で実行する。その一方、出力先の印刷装置がデータ格納機能を有している場合には、コンピュータ10では当該処理を行うことなく、当該処理に対応するフィルタ(ウォーターマーク付与フィルタ281等)をXPS形式データに埋め込むようにする。そして、当該XPS形式データを受信した印刷装置内の印刷制御装置が、当該フィルタに対応する処理を実行するようにすればよい。
【0086】
また、この場合において、当該印刷装置(MFP等)は、受信したXPS形式データを、受信した状態のまま格納しておくことが好ましい。すなわち、内蔵されたフィルタ処理を実行しない状態のまま格納しておくことが好ましい。また、当該印刷装置(MFP等)は、格納されたデータに対する新たな印刷指示をその操作入力部等を用いて受け付ける際に、再び当該フィルタ処理を実行した上で印刷出力するか或いは当該フィルタ処理を実行せずに印刷出力するかを選択できるように構成されることがさらに好ましい。具体的には、当該MFP等は、新たな印刷指示の際に、当該MFP等のダイアログを表示し、一旦指示されていた付加処理(ウォーターマーク付与処理等)を無効化する選択肢を表示する。そして、当該選択肢が選択されるときには、当該MFP等は、フィルタ処理が実行されていない状態のデータに基づいて印刷出力動作を行うようにすればよい。これによれば、ウォーターマーク付与処理を実行すべき旨が付されたXPS形式データを再び印刷出力する際に、当該ウォーターマーク付与処理を実行することなく印刷出力することが可能である。すなわち、ウォーターマークが付与されていない印刷出力物を得ることが可能である。このように、受信したXPS形式データを、受信した状態のまま(フィルタ処理の未実行状態のまま)格納しておくことなどによれば、格納されたXPS形式データを再利用する際の自由度が向上する。
【0087】
<3−3.フィルタ>
上記実施形態においては、XPS形式のデータに埋め込まれるモジュールプログラムとして、ウォーターマーク付与フィルタ、Nupフィルタ、フォームフィルタなどのフィルタを例示したが、これに限定されない。
【0088】
例えば、RGBデータからYMCKデータへの色変換処理を実行する色変換フィルタ285(図12参照)を、XPS形式のデータに埋め込むようにしてもよい。ここにおいて、色変換フィルタは、出力先の印刷装置の色特性を反映したカラーマネージメント情報を含んで構成されることが好ましい。
【0089】
あるいは、文字データをXPS形式データ内でイメージ化する文字イメージ化フィルタ286(図12参照)を、XPS形式データに埋め込むようにしてもよい。なお、図13は、文字イメージ化フィルタ286により実行される処理を示す図である。図13に示すように、文字イメージ化フィルタ286は、文字コード等(「ポイント10pt」、「コード4098」、「座標(100,100)」などの情報を含む)で表現されていた文字データを、画像データ等(「幅20」、「高さ20」、「(画像データのバイナリコード)」などの情報を含む)に変換する処理等を実行するモジュールプログラムである。
【0090】
<3−4.システム構成等>
また、上記実施形態においては、コンピュータ10からプリンタ30へと出力データを送信する場合を例示しているが、これに限定されない。例えば、コンピュータ10(第1のコンピュータとも称する)で生成したデータを可搬性記録媒体(USBメモリ等)を媒介にして別のコンピュータ(第2のコンピュータとも称する)へと移動し、当該第2のPCから印刷装置へとデータを送信するようにしてもよい。
【0091】
図14はこのような変形例を示す図である。図14を参照しながら当該変形例について説明する。
【0092】
まず、或るプリンタ30向けのXPS形式データを、上記実施形態と同様に、印刷出力指令に応じてコンピュータ10で生成する。このXPS形式データには、或るモジュールプログラム(フィルタ)が埋め込まれているものとする。そして、ユーザは、当該XPS形式データを可搬性記録媒体に記録し、移動先(例えば遠隔地)のコンピュータ60(第2のコンピュータ)に読み込ませる。このコンピュータ60にはデータ転送用のプログラムがインストールされているものとする。当該データ転送用のプログラムを用いることによって、XPS形式データは、コンピュータ60からプリンタ30(詳細には印刷制御部40)に転送される。その後においては、上記実施形態と同様に、XPS形式データに内蔵されたモジュールプログラム(フィルタ)を用いた処理が印刷制御部40によって行われればよい。
【0093】
これによれば、コンピュータ10にインストールされているプリンタドライバとコンピュータ60にインストールされているプリンタドライバとが異なるときであっても、コンピュータ10からの出力と同じ印刷出力結果を得ることができる。特に、コンピュータ10にインストールされているプリンタドライバが特殊な機能を有するものであるとしても、当該機能をモジュールプログラムとしてXPS形式データに埋め込んで、移動先でも印刷出力することが可能である。このように、同じプリンタドライバがインストールされていないコンピュータを用いても、同じ印刷出力結果を得ることができる。
【0094】
また、ここでは、XPS形式データがコンピュータ60を介して印刷制御部40に転送され、XPS形式データに内蔵されたフィルタ処理を印刷制御部40が実行する変形例を示したが、これに限定されない。例えば、XPS形式データに内蔵されたフィルタに関する処理を、コンピュータ60が実行するようにしてもよい。ここにおいて、コンピュータ60は、印刷出力部50を有するプリンタ30(印刷装置)とは別個の装置として構成されるものである、とも表現される。
【0095】
詳細には、コンピュータ60は、コンピュータ10からのXPS形式データ内にフィルタが存在することが確認されるときには、当該フィルタに関する処理を当該フィルタを用いて実行する。そして、フィルタ処理の実行結果をXPS形式データに記述し、XPS形式データを完成させる。このようにして、XPS形式データに内蔵されたフィルタ処理がコンピュータ60によって実行される。
【0096】
また、完成したXPS形式データは、コンピュータ60からプリンタ30内の印刷制御部40に送信される。印刷制御部40は、コンピュータ10からのXPS形式データ内に「フィルタ」が存在しないことを確認し、当該XPS形式データに基づきラスタライズデータを作成する。そして、印刷出力部50は、当該ラスタライズデータに基づいて、印刷出力物を形成する。このような動作によっても、同様の効果を得ることができる。
【図面の簡単な説明】
【0097】
【図1】印刷システムの概略構成を示す図である。
【図2】印刷制御装置の構成を示す機能ブロック図である。
【図3】プリンタの構成を示す機能ブロック図である。
【図4】印刷制御装置における動作を示すフローチャートである。
【図5】プリンタにおける動作を示すフローチャートである。
【図6】プリンタドライバ内のフィルタ群を示す図である。
【図7】プリンタドライバにおける設定画面を示す図である。
【図8】マークアップ言語形式での記載例(一部)を示す図である。
【図9】ウォーターマークの印刷出力例を示す図である。
【図10】XPS形式データの一例を示す図である。
【図11】Nup処理(詳細には2up処理)を示す図である。
【図12】プリンタドライバ内のフィルタ群を示す図である。
【図13】文字イメージ化フィルタにより実行される処理を示す図である。
【図14】変形例に係るシステム構成を示す図である。
【符号の説明】
【0098】
1 印刷システム
10,60 コンピュータ
20 プリンタドライバ
30 プリンタ(印刷装置)
40 印刷制御部(印刷制御装置)
50 印刷出力部
281〜286 モジュールプログラム(フィルタ)

【特許請求の範囲】
【請求項1】
印刷システムであって、
第1の印刷制御手段と第2の印刷制御手段とを有し、印刷出力指令に応じて実行すべき各処理を互いに分担して処理する複数の印刷制御手段と、
前記複数の印刷制御手段により生成された印刷データに基づき印刷出力動作を行う印刷出力手段と、
を備え、
前記第1の印刷制御手段は、
前記印刷出力指令に応じて実行すべき各処理を、前記複数の印刷制御手段のいずれで担当するかを決定する決定手段と、
前記第2の印刷制御装置での担当処理に関するモジュールプログラムを内蔵した出力データを生成する生成手段と、
を有し、
前記第2の印刷制御手段は、
前記出力データ内の前記モジュールプログラムに基づいて前記出力データに関する変更処理を実行する変更手段、
を有し、
前記印刷出力手段は、前記変更処理が施された出力データに基づいて、前記印刷出力動作を行うことを特徴とする印刷システム。
【請求項2】
請求項1に記載の印刷システムにおいて、
前記第1の印刷制御手段は、
前記第1の印刷制御手段での担当処理に関するモジュールプログラムを用いて当該担当処理を実行し、その実行結果を前記出力データに反映させる実行手段、
をさらに有することを特徴とする印刷システム。
【請求項3】
請求項1または請求項2に記載の印刷システムにおいて、
前記第2の印刷制御手段は、前記印刷出力手段とともに印刷装置に内蔵されていることを特徴とする印刷システム。
【請求項4】
請求項1または請求項2に記載の印刷システムにおいて、
前記第2の印刷制御手段は、前記印刷出力手段を有する印刷装置とは別個の装置として構成されていることを特徴とする印刷システム。
【請求項5】
請求項1ないし請求項4のいずれかに記載の印刷システムにおいて、
前記出力データは、ページ記述言語によるデータを含むことを特徴とする印刷システム。
【請求項6】
請求項5に記載の印刷システムにおいて、
前記ページ記述言語によるデータは、XPS形式のデータであることを特徴とする印刷システム。
【請求項7】
印刷用の出力データを生成する印刷制御装置であって、
印刷出力指令に応じて実行すべき各処理を、前記印刷制御装置である第1の印刷制御装置と前記第1の印刷制御装置以外の第2の印刷制御装置とを含む複数の印刷制御装置のいずれで担当するかを決定する決定手段と、
前記第2の印刷制御装置での担当処理に関するモジュールプログラムを内蔵した前記出力データを生成する生成手段と、
を備えることを特徴とする印刷制御装置。
【請求項8】
請求項7に記載の印刷制御装置において、
前記第1の印刷制御装置での担当処理に関するモジュールプログラムを用いて当該担当処理を実行し、その実行結果を前記出力データに反映させる実行手段、
をさらに備えることを特徴とする印刷制御装置。
【請求項9】
第1の印刷制御装置において実行され、第2の印刷制御装置への出力データを生成するプリンタドライバプログラムであって、
印刷出力指令に応じて実行すべき各処理を、前記第1の印刷制御装置と前記第2の印刷制御装置とを含む複数の印刷制御装置のいずれで担当するかを決定する手順と、
前記第2の印刷制御装置での担当処理に関するモジュールプログラムを内蔵した前記出力データを生成する手順と、
を含むことを特徴とするプリンタドライバプログラム。
【請求項10】
請求項9に記載のプリンタドライバプログラムにおいて、
前記第1の印刷制御装置での担当処理に関するモジュールプログラムを用いて当該担当処理を実行し、その実行結果を前記出力データに反映させる手順、
をさらに含むことを特徴とするプリンタドライバプログラム。
【請求項11】
請求項9または請求項10に記載のプリンタドライバプログラムにおいて、
前記出力データは、ページ記述言語によるデータを含むことを特徴とするプリンタドライバプログラム。
【請求項12】
請求項11に記載のプリンタドライバプログラムにおいて、
前記ページ記述言語によるデータは、XPS形式のデータであることを特徴とするプリンタドライバプログラム。
【請求項13】
第1の印刷制御装置において実行され、第2の印刷制御装置へのページ記述言語による出力データを生成するプリンタドライバプログラムであって、
前記出力データを生成するための複数の処理を、前記第1の印刷制御装置と前記第2の印刷制御装置とを含む複数の印刷制御装置のいずれで担当するかを決定する手順と、
前記複数の処理のうちの特定処理を前記第1の印刷制御装置で担当すべき旨が決定されたときには、前記特定処理に対応するモジュールプログラムを用いて当該特定処理を実行し、その実行結果を前記出力データに反映させる手順と、
前記特定処理を前記第2の印刷制御装置で担当すべき旨が決定されたときには、前記モジュールプログラムを内蔵した前記出力データを生成する手順と、
を含むことを特徴とするプリンタドライバプログラム。
【請求項14】
印刷制御装置であって、
前記印刷制御装置とは別の印刷制御装置からの印刷用の出力データを取得する取得手段と、
前記出力データ内にモジュールプログラムが存在するときには、当該モジュールプログラムに基づいて、前記出力データに関する変更処理を実行する変更手段と、
を備えることを特徴とする印刷制御装置。
【請求項15】
印刷装置であって、
外部の印刷制御装置からの印刷用の出力データを取得する取得手段と、
前記出力データ内にモジュールプログラムが存在するときには、当該モジュールプログラムに基づいて、前記出力データに関する変更処理を実行する変更手段と、
前記変更手段により変更された前記出力データに基づいて、印刷出力動作を行う印刷出力手段と、
を備えることを特徴とする印刷装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−165199(P2010−165199A)
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願番号】特願2009−7237(P2009−7237)
【出願日】平成21年1月16日(2009.1.16)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】