以下に、図面を参照しながら、本発明を実施するための最良の形態(実施形態)について説明する。なお、以下に示す本発明の実施形態においては、複数のデータ(ファイル)を1つのデータ(ファイル)にまとめたアーカイブデータ(アーカイブファイル)として、XPSデータ(XPSファイル)を適用した例について説明する。
図1は、本発明の実施形態に係る印刷制御システム10の概略構成の一例を示す模式図である。なお、本発明の実施形態に係る印刷制御システム10は、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、更には、LAN、WAN等のネットワークを介して接続がなされて処理が行われるシステムであっても、適用できる。即ち、図1に示す印刷制御システム10(以降の説明では、図1に示す印刷制御システムを「印刷制御システム10−1」とする)は、一例を示したものであり、用途や目的に応じて様々な構成例があることは言うまでもない。
図1に示す印刷制御システム10−1は、情報処理装置に相当するホストコンピュータ(クライアントコンピュータ)100と、出力装置(印刷装置や画像形成装置)に相当するプリンタ200と、これらの装置を通信可能に接続するネットワーク300を有して構成されている。
ホストコンピュータ100は、図1に示すように、CPU101、RAM102、ROM103、システムバス104、入力コントローラ(以下、「入力C」と称する)105、ビデオコントローラ(以下、「VC」と称する)106、メモリコントローラ(以下、「MC」と称する)107、通信インターフェース(以下、「通信I/F」と称する)108、キーボード(以下、「KB」と称する)109、CRTディスプレイ(以下、「CRT」と称する)110、及び、外部メモリ111を有して構成されている。
CPU101は、ROM103或いは外部メモリ111に記憶されたプログラム等に基づいてシステムバス104に接続された各デバイスを制御して、当該ホストコンピュータ100における動作を統括的に制御する。
RAM102は、CPU101の主メモリ、ワークエリア等として機能する。CPU101は、処理の実行に際して必要なプログラム等をRAM102にロードして、プログラムを実行することで各種の動作を実現する。
ROM103には、CPU101の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)、CPU101が本実施形態に係るホストコンピュータ100の機能を実現するために必要な各種のプログラム等が記憶されている。なお、これらのプログラムは、外部メモリ111に記憶されている態様であってもよい。また、本実施形態で使用するOSは、例えばWindows_Vista(Microsoft社製)を想定するが、これに限定されるものではない。
システムバス104は、CPU101、RAM102、ROM103、入力C105、VC106、MC107及び通信I/F108を、相互に通信可能に接続する。
入力C105は、KB109やマウス等のポインティングデバイス(不図示)からの入力を制御する。
VC106は、CRT110等の表示装置への表示を制御する。なお、表示装置は、CRTであっても、液晶ディスプレイ等のその他の表示装置であってもよい。
MC107は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種のデータ等を記憶するハードディスク(HD)やフロッピーディスク(登録商標FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ111へのアクセスを制御する。
通信I/F108は、ネットワーク300を介して、外部装置(図1に示す例では、プリンタ200)との通信を制御する。例えば、通信I/F108は、TCP/IPを用いたインターネット通信やプリンタ200との間でデータ送受信等が可能である。
なお、CPU101は、例えばRAM102内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT110上での表示を可能としている。また、CPU101は、CRT110上のマウスカーソル(不図示)等でのユーザ指示を可能とする。
プリンタ200は、CPU201、RAM202、ROM203、システムバス204、通信インターフェース(以下、「通信I/F」と称する)205、印刷部インターフェース(以下、「印刷部I/F」と称する)206、メモリコントローラ(以下、「MC」と称する)207、印刷部208、操作部209、及び、外部メモリ210を有して構成されている。
CPU201は、ROM203或いは外部メモリ210に記憶されたプログラム等に基づいてシステムバス204に接続された各デバイスを制御して、当該プリンタ200における動作を統括的に制御する。例えば、CPU201は、ROM203或いは外部メモリ210に記憶されたプログラム等に基づいて印刷部(例えばプリンタエンジン)208に出力情報としての画像信号を出力する処理を行う。
RAM202は、CPU201の主メモリ、ワークエリア等として機能する。なお、RAM202は、出力情報展開領域、環境データ格納領域、NVRAM等にも用いられる。CPU201は、処理の実行に際して必要なプログラム等をRAM202にロードして、プログラムを実行することで各種の動作を実現する。また、RAM202は、増設ポート(不図示)に接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
ROM203には、フォントROM203a、プログラムROM203b、及び、データROM203cが設けられている。フォントROM203aには、上記出力情報を生成する際に使用する各種のフォントデータ等が記憶されている。プログラムROM203bには、CPU201がプリンタ200の各種機能を実現するために必要な各種のプログラムが記憶されている。データROM203cには、例えばCPU201が各種の処理を行う際に必要な各種のデータ(各種の情報も含む)が記憶され、また、外部メモリ210がないプリンタ200の場合には、ホストコンピュータ100で利用される情報等も記憶される。
システムバス204は、CPU201、RAM202、ROM203、通信I/F205、印刷部I/F206、MC207、及び、操作部209を、相互に通信可能に接続する。
通信I/F205は、ネットワーク300を介して、外部装置(図1に示す例では、ホストコンピュータ100)との通信を制御する。
印刷部I/F206は、印刷部208との通信を制御する。
MC207は、ハードディスク(HD)やICカード等の外部メモリ210へのアクセスを制御する。外部メモリ210は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、外部メモリ210は、1個に限らず、例えば、複数設けて、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。さらに、外部メモリ210は、例えば、NVRAM(不図示)を有し、操作部209からのプリンタモード設定情報を記憶するようにしてもよい。
操作部209は、例えば、操作パネル及び操作パネルの操作のためのスイッチ、並びに、LED表示器等を備えて構成されており、ユーザにより操作されるものである。
また、本実施形態では、プリンタ200がサポートするプリントデータは、XPSデータを想定しているが、同様のファイルフォーマットを有するデータであれば、これに限定されるものではない。
図2は、本発明の実施形態に係る印刷制御システム10の概略構成の変形例を示す模式図である。
図2に示す印刷制御システム10−2は、図1に示すホストコンピュータ100(具体的には、100−1〜100−4)、図1に示すプリンタ200(具体的には、200−1〜200−2)、及び、図1に示すネットワーク300に加えて、ローカルインターフェース301と、プリントサーバコンピュータ400を有して構成されている。
この場合、ホストコンピュータ100(100−1〜100−4)の通信I/F108は、ネットワークインターフェースカード(NIC)の機能を有するものとする。プリンタ200(200−1〜200−2)は、セントロニクスやUSB等のローカルインターフェース301を介してプリントサーバコンピュータ400と接続されて当該プリントサーバコンピュータ400を介してネットワーク300に接続される形態であっても、ネットワーク300に直接接続される形態であってもよい。なお、ネットワーク300に直接接続されているプリンタ200(具体的には、200−1)の通信I/F205は、ネットワークインターフェースカード(NIC)の機能を有するものとする。
また、プリントサーバコンピュータ400を介してネットワーク300に接続されるプリンタ200(具体的には、200−2)に対して各ホストコンピュータ100から印刷ジョブを送信する場合、まず、各ホストコンピュータ100は、プリントサーバコンピュータ400へ印刷ジョブを送信する。そして、プリントサーバコンピュータ400は、各ホストコンピュータ100から送信されてきた印刷ジョブを、当該プリントサーバコンピュータ400のプリントサブシステム(不図示)を介して、プリンタ200へ送信する。これにより、各ホストコンピュータ100は、プリントサーバコンピュータ400を介し
て印刷ジョブをプリンタ200へ送信することができる。
また、ネットワーク300に直接接続されているプリンタ200(具体的には、200−1)に対して各ホストコンピュータ100から印刷ジョブを送信する場合、各ホストコンピュータ100は、ネットワーク300に直接接続されているプリンタ200へ印刷ジョブを送信する。
次に、ホストコンピュータ100による前述したGDIプリントパスを用いた印刷制御機能の機能構成について説明を行う。
図3は、本発明の実施形態に係る印刷制御システム10のホストコンピュータ100によるGDIプリントパスを用いた印刷制御機能の機能構成の一例を示す模式図である。
ホストコンピュータ100には、GDIプリントパスを用いた際の印刷制御機能として、図3に示すように、アプリケーション131、GDI132、ユーザインターフェースドライバ133、スプーラ134、EMFスプールファイル135、プリントプロセッサ136、プリンタグラフィックスドライバ137及びランゲージモニタ138が構成される。
ここで、アプリケーション131、GDI132、ユーザインターフェースドライバ133、スプーラ134、プリントプロセッサ136及びプリンタグラフィックスドライバ137は、例えば、図1に示すCPU101とROM103或いは外部メモリ111に記憶されているプログラムとから構成される。また、EMFスプールファイル135は、例えば、図1に示す外部メモリ111に構成される。また、ランゲージモニタ138は、例えば、図1に示すCPU101とROM103或いは外部メモリ111に記憶されているプログラム、並びに、通信I/F108から構成される。
アプリケーション131は、GDI132を介してプリンタ200に対して印刷条件の設定を行う。より具体的に、アプリケーション131は、例えば、印刷に使用する用紙のサイズの設定や逆順で印刷するか否かの設定、製本の体裁で印刷を行う製本印刷を実施するか否かの設定など、各種の印刷条件を設定する処理を行う。
さらに、アプリケーション131は、GDI132等を介してプリンタ200に対して文書や写真画像等の描画命令を発行して印刷実行を指示する。以下、図3の説明等において、描画命令の発行に伴ってGDI132を介してスプーラ134に通知される文書・画像データ及び描画命令を総称して「印刷データ」と称する。
GDI132は、アプリケーション131等からの指示に基づき、GDIプリントパスに係る処理を行う。
ユーザインターフェースドライバ133は、GDI132を介して通知された印刷条件をプリンタ200に適合する内容に変更し、最終的な印刷条件を確定する処理を行う。さらに、ユーザインターフェースドライバ133は、GDI132を介して、最終的に確定した印刷条件をスプーラ134に通知する処理を行う。
スプーラ134は、GDI132を介して通知された印刷データ及び印刷条件をEMFスプールファイル135に格納する。
プリントプロセッサ136は、スプーラ134を介してEMFスプールファイル135に格納された印刷データを取得し、当該印刷データを1ページ単位で処理する。
プリンタグラフィックスドライバ137は、GDI132を介してプリントプロセッサ136で処理された印刷データを取得し、当該印刷データをプリンタ200で印刷出力可能なPDLデータに変換する処理を行う。
ランゲージモニタ138は、プリンタ200と双方向の通信を行い、プリンタ200の情報を取得してCRT110に表示する処理を行う。また、ランゲージモニタ138は、プリンタグラフィックスドライバ137が生成したPDLデータをプリンタ200に供給する。なお、ランゲージモニタ138は、プリンタ200が備えるメモリ容量や、エンジンコントローラの構成により異なる転送方法を採用することができる。
続いて、GDIプリントパスを用いた印刷制御機能における一連の動作について説明する。
まず、アプリケーション131は、ユーザからの操作指示に従って、印刷条件の設定、及び任意の文書又は写真画像等の印刷実行の指示を行う。
GDI132は、アプリケーション131から印刷実行の指示を受けると、ユーザインターフェースドライバ133に対して、プリンタ200での印刷条件の設定内容、及び、印刷開始のイベントを通知する。
ユーザインターフェースドライバ133は、GDI132からプリンタ200での印刷条件の設定内容の通知を受けると、通知された印刷条件の設定内容を参照して、プリンタ200において印刷出力可能な設定内容であるか否かを判断する。ここで、ユーザインターフェースドライバ133は、GDI132から通知された印刷条件の設定内容が、プリンタ200において印刷出力可能な設定内容になっていないと判断した場合には、プリンタ200において印刷出力可能な設定内容になるように、印刷条件の設定内容を更新(一部更新も含む)し、印刷条件を確定する。
続いて、アプリケーション131は、GDI132を介して、文書・画像データの描画命令を発行する。
スプーラ134は、アプリケーション131における描画命令の発行に伴って生成された印刷データ、及び、ユーザインターフェースドライバ133が確定した印刷条件の通知を受けると、通知された印刷データ及び印刷条件をEMFスプールファイル135に格納する。
プリントプロセッサ136は、スプーラ134を介してEMFスプールファイル135から印刷条件の設定内容及び印刷データを取得する。続いて、プリントプロセッサ136は、GDI132を介して、当該印刷条件の設定内容及び印刷データを1ページ単位で処理し、これをプリンタグラフィックスドライバ137に供給する。ここで、GDI132は、プリントプロセッサ136からプリンタグラフィックスドライバ137に印刷データを供給する際に、印刷データに含まれる描画命令をグラフィックス描画コマンドに変換する処理を行う。
プリンタグラフィックスドライバ137は、GDI132により生成されたグラフィックス描画コマンド及びGDI132から通知された印刷条件の設定内容に基づいて、GDI132を介してプリントプロセッサ136から供給された印刷データから、プリンタ200が解釈できるPDLデータを生成する。
ランゲージモニタ138は、当該ホストコンピュータ100からプリンタ200にPDLデータを伝送するために使用されるインターフェースを経由して、プリンタグラフィックスドライバ137から供給されたPDLデータをプリンタ200に供給(送信)する。
そして、プリンタ200(例えばCPU201)は、ランゲージモニタ138から供給されたPDLデータを解釈し、印刷画像データを用紙上に印刷出力する処理を行う。
次に、ホストコンピュータ100による前述したXPSプリントパスを用いた印刷制御機能の機能構成について説明を行う。
図4は、本発明の実施形態に係る印刷制御システム10のホストコンピュータ100によるXPSプリントパスを用いた印刷制御機能の機能構成の一例を示す模式図である。ここで、図4においては、図3に示す構成と同様の機能を有する構成については、同じ符号を付している。
ホストコンピュータ100には、XPSプリントパスを用いた際の印刷制御機能として、図4に示すように、アプリケーション131、WPF(Windows_Presentation_Foundation)印刷サポート141、ユーザインターフェースドライバ133、スプーラ134、XPSスプールファイル142、フィルタパイプラインマネージャ143、レイアウトフィルタ144、レンダリングフィルタ145及びランゲージモニタ138が構成される。
ここで、アプリケーション131、WPF印刷サポート141、ユーザインターフェースドライバ133、スプーラ134、フィルタパイプラインマネージャ143、レイアウトフィルタ144及びレンダリングフィルタ145は、例えば、図1に示すCPU101とROM103或いは外部メモリ111に記憶されているプログラムとから構成される。
また、XPSスプールファイル142は、例えば、図1に示す外部メモリ111に構成される。また、ランゲージモニタ138は、例えば、図1に示すCPU101とROM103或いは外部メモリ111に記憶されているプログラム、並びに、通信I/F108から構成される。
アプリケーション131は、WPF印刷サポート141を介してXPSデータを作成する処理を行う。また、アプリケーション131は、文書や写真画像等のドキュメント、印刷条件、描画命令をXPSデータに対して設定する処理を行う。以下、図4の説明等において、XPSデータに含まれている文書や写真画像等のドキュメント及び描画命令を総称して「印刷データ」と称する。さらに、アプリケーション131は、WPF印刷サポート141を介して印刷実行を指示する。
WPF印刷サポート141は、アプリケーション131からの指示に基づき、XPSデータを構成(作成)する処理を行う。また、WPF印刷サポート141は、当該XPSデータから印刷条件の設定内容を取り出して、ユーザインターフェースドライバ133に通知する処理を行う。また、WPF印刷サポート141は、ユーザインターフェースドライバ133が確定した印刷条件の設定内容をXPSデータに設定する処理を行う。さらに、WPF印刷サポート141は、XPSデータをスプーラ134に通知する処理を行う。
ユーザインターフェースドライバ133は、WPF印刷サポート141から通知された印刷条件をプリンタ200に適合する内容に変更し、最終的な印刷条件を確定する処理を行う。さらに、ユーザインターフェースドライバ133は、最終的に確定した印刷条件をWPF印刷サポート141に通知する処理を行う。
スプーラ134は、WPF印刷サポート141から通知されたXPSデータをXPSスプールファイル142に格納する。
フィルタパイプラインマネージャ143は、まず、スプーラ134を介してXPSスプールファイル142に格納されたXPSデータを取得する。そして、フィルタパイプラインマネージャ143は、取得したXPSデータをレイアウトフィルタ144及びレンダリングフィルタ145を介してプリンタ200で印刷出力可能なPDLデータに変換する処理を行う。
レイアウトフィルタ144は、XPSデータ内の印刷データやページ構成を編集する処理を行う。
レンダリングフィルタ145は、レイアウトフィルタ144により編集されたXPSデータ内の印刷データをプリンタ200で印刷出力可能なPDLデータに変換する処理を行う。ただし、本発明の実施形態では、XPSデータをプリントデータとして用い、XPSデータをプリンタ200に送信して、プリンタ200でXPSデータから描画する画像データを生成するため、レンダリングフィルタ145は使用されない。つまり、このレンダリングフィルタ145を通さずに処理がされる(XPSデータダイレクトプリント)。そのため、レンダリングフィルタ145を備えないようにすることも可能である。
ランゲージモニタ138は、プリンタ200と双方向の通信を行い、プリンタ200の情報を取得してCRT110に表示する処理を行う。また、ランゲージモニタ138は、フィルタパイプラインマネージャ143から通知されたXPSデータをプリンタ200に供給する。なお、ランゲージモニタ138は、プリンタ200が備えるメモリ容量や、エンジンコントローラの構成により異なる転送方法を採用することができる。
ここで、前述したXPSデータに含まれるパーツデータについて再度説明する。
XPSデータには、前述したように、以下のa)〜f)に示すパーツが存在し、それぞれ、以下のような参照を有する。
a)_rels/.rels:
文書の開始点となるパーツである。後述するb)FixedDocumentSequenceへの参照を有する。
b)FixedDocumentSequence(FDS):
1つの文書の構成情報が記述されるパーツである。後述するc)FixedDocumentへの参照を有する。なお、1つのデータは、複数のドキュメントを有することができる。即ち、FDSは、複数のFixedDocumentへの参照を有することができる。
c)FixedDocument(FD):
1つのドキュメントに存在する複数のページをページ順に並べて束ねるためのパーツである。即ち、1つのドキュメントの構成情報が記述されるパーツであり、後述するd)FixedPageへの参照を有する。なお、1つのドキュメントは、複数のページを有することができる。即ち、FDは、複数のFixedPageへの参照を有することができる。
d)FixedPage(FP):
1ページの描画内容が記述されたパーツである。必要に応じて、イメージファイルやフォントファイルなどの外部リソースファイルへの参照を有することができる。例えば、当該ページにイメージの描画が存在する場合には、当該イメージファイルへの参照を有することになる。
e)FixedPage.rels(FP.rels):
d)FixedPageに関連するパーツへの参照情報が記述されたパーツである。参照先としては、例えば、イメージファイル、フォントファイル、印刷設定情報が記述された後述するプリントチケットファイルなどである。
f)プリントチケット:
予め定義されたXMLスキーマの形式に従って記述された印刷条件の設定が記述されたファイルである。以下、印刷設定を行うために予め定義されたXMLスキーマの形式を「プリントスキーマ」と称し、印刷スキーマに従って印刷条件が記述されているXMLファイルを「プリントチケット」と称する。なお、プリントチケットを言い換えると、印刷に用いられる属性を記憶する属性情報ファイルである。
ここで、XPSデータに包含される各パーツの参照関係の論理的構造については、前述したように、図14にその一例が示され、また、XMLファイルの記述に基づいた参照関係については、前述したように、図15にその一例が示されている。
続いて、XPSプリントパスを用いた印刷制御機能における一連の動作について説明する。
まず、アプリケーション131は、ユーザからの操作指示に従って、任意の文書又は写真画像等のドキュメントを読み込む処理を行う。なお、前述した任意の文書には、予め作成されていたXPSデータも含まれる。
続いて、アプリケーション131は、ユーザからの操作指示に従って、XPSデータの作成を行い、文書や写真画像等のドキュメント、印刷条件、描画命令をXPSデータに設定する。なお、アプリケーション131は、予め作成されていたXPSデータを読み込んだ場合には、新たにXPSデータを作成することはなく、読み込んだXPSデータに含まれる印刷条件や描画命令をユーザからの操作指示に従って編集すればよい。
続いて、アプリケーション131は、ユーザからの操作指示に従って、XPSデータを用いて印刷実行の指示を行う。
WPF印刷サポート141は、アプリケーション131から印刷実行の指示を受けると、XPSデータ内のプリントチケットを取り出し、印刷条件の設定内容として当該プリントチケットをユーザインターフェースドライバ133に通知する。
ユーザインターフェースドライバ133は、WPF印刷サポート141からプリンタ200での印刷条件の設定内容の通知を受けると、通知された印刷条件の設定内容を参照して、プリンタ200において印刷出力可能な設定内容であるか否かを判断する。ここで、ユーザインターフェースドライバ133は、WPF印刷サポート141から通知された印刷条件の設定内容が、プリンタ200において印刷出力可能な設定内容になっていないと判断した場合には、プリンタ200において印刷出力可能な設定内容になるように、印刷条件の設定内容を更新(一部更新も含む)し、印刷条件を確定する。続いて、ユーザインターフェースドライバ133は、確定した印刷条件によりプリントチケットを更新し、WPF印刷サポート141に通知する。
図16は本発明におけるユーザインターフェースドライバ133が表示するユーザインターフェースのイメージ図であり、「環境情報を用いて色変換する」のラジオボックス部分が、本実施形態の特徴てきな処理を実現するための設定画面である。
例えば、図16のように、会議室Aを2部、会議室Bを1部と設定して、1・2ページ目のみ環境光の影響を考慮したカラーマッチングをする設定をした場合、図18のようなプリントチケットが作成される。
なお、本実施形態では、会議室Aや会議室Bの環境に適応させるために、各会議室の環境情報(プロファイル情報)は、予めユーザインターフェースドライバ133が参照可能にホストコンピュータ100の外部メモリ111に保持しており、この保持している環境情報を選択できるように構成する。しかしながら、会議室A、会議室B等の環境情報は、プリントサーバコンピュータ400やプリンタ200に保持しておき、プリントサーバコンピュータ400やプリンタ200と通信して環境情報を取得するように構成してもよい。つまり、環境情報はどこに記憶されているものであってもよい。
WPF印刷サポート141は、ユーザインターフェースドライバ133から通知されたプリントチケットをXPSデータに設定し、当該XPSデータをスプーラ134に通知する。
例えば、図18のようなプリントチケットが通知された場合、ソース側デバイスプロファイル3403と、図19のような状態で外部メモリ111に保存された、会議室Aと会議室Bのデスティネーション側デバイスプロファイルが、XPSデータに埋め込まれ、図20の構成をとる。
なお、ソース側デバイスプロファイル3403は、ホストコンピュータ100の外部メモリ211に予め記憶されているプロファイルである。ソース側デバイスプロファイル3403は環境光を適宜取得して、作成されてもよい。
WPF印刷サポート141は、ユーザインターフェースドライバ133から通知されたプリントチケットをXPSデータに設定し、当該XPSデータをスプーラ134に通知する。
スプーラ134は、WPF印刷サポート141からXPSデータの通知を受けると、通知されたXPSデータをXPSスプールファイル142に格納する。なお、WPF印刷サポート141を介さずにアプリケーション131からスプーラ134に任意のXPSデータを通知することも可能である。つまり、MXDWで作成したXPSデータを通知することも可能である。続いて、スプーラ134は、フィルタパイプラインマネージャ143に対して印刷開始のイベントを通知する。
フィルタパイプラインマネージャ143は、スプーラ134から印刷開始のイベントの通知を受けると、スプーラ134を介してXPSスプールファイル142に格納されているXPSデータを取得する。続いて、フィルタパイプラインマネージャ143は、当該XPSデータをレイアウトフィルタ144に通知する。
レイアウトフィルタ144は、通知されたXPSデータから印刷データ及びプリントチケットを取得する。続いて、レイアウトフィルタ144は、プリントチケットに記載されている印刷条件の設定内容に基づいて、印刷データの編集及びXPSデータのページ構成の編集を行う。なお、印刷データやページ構成の編集内容には、ビットマップの合成(ウォーターマーク)、ページ合成(割付)、ページ順序の変更(逆順)等が含まれる。続いて、レイアウトフィルタ144は、印刷データやページ構成の編集を終えた後のXPSデータをフィルタパイプラインマネージャ143に通知する。
続いて、フィルタパイプラインマネージャ143は、レイアウトフィルタ144から通知されたXPSデータをレンダリングフィルタ145に通知する。
レンダリングフィルタ145は、フィルタパイプラインマネージャ143から通知されたXPSデータから、印刷データ及びプリントチケットを取得する。続いて、レンダリングフィルタ145は、取得したプリントチケットに記載されている印刷条件の設定内容に基づいて、印刷データからプリンタ200が解釈できるPDLデータを生成し、当該PDLデータをフィルタパイプラインマネージャ143に通知する。
続いて、フィルタパイプラインマネージャ143は、レンダリングフィルタ145から通知されたPDLデータをランゲージモニタ138に供給する。
ランゲージモニタ138は、当該ホストコンピュータ100からプリンタ200にPDLデータを伝送するために使用されるインターフェースを経由して、フィルタパイプラインマネージャ143から供給されたPDLデータをプリンタ200に供給(送信)する。
そして、プリンタ200(例えばCPU201)は、ランゲージモニタ138から供給されたPDLデータを解釈し、印刷画像データを用紙上に印刷出力する処理を行う。
次に、ホストコンピュータ100によるXPSプリントパスを用いた印刷制御処理の処理手順について説明する。
図5は、本発明の実施形態に係る印刷制御システム10のホストコンピュータ100によるXPSプリントパスを用いた印刷制御処理の処理手順の一例を示すフローチャートである。なお、以下の説明では、主として、レイアウトフィルタ144における処理について記載する。
まず、図5のステップS101において、フィルタパイプラインマネージャ143は、スプーラ134から印刷開始のイベントの通知を受けると、スプーラ134を介して、XPSスプールファイル142に格納されているMXDWで作成されたXPSデータを取得する処理を行う。そして、フィルタパイプラインマネージャ143は、取得したXPSデータをレイアウトフィルタ144に通知する。
続いて、ステップS102において、レイアウトフィルタ144は、フィルタパイプラインマネージャ143から通知されたXPSデータを解析して、当該XPSデータ内のプリントチケットに記載されている印刷条件の設定内容に基づいて、印刷データの編集及びXPSデータのページ構成の編集を行う。
続いて、ステップS103において、レイアウトフィルタ144は、編集(生成)を終えた後のXPSデータをフィルタパイプラインマネージャ143に通知する処理を行う。
その後、フィルタパイプラインマネージャ143は、レイアウトフィルタ144から通知されたXPSデータをレンダリングフィルタ145に通知する処理を行う。そして、レンダリングフィルタ145は、フィルタパイプラインマネージャ143から通知されたXPSデータから、プリンタ200が解釈できるPDLデータを生成し、当該PDLデータをフィルタパイプラインマネージャ143に通知する。ここで、本実施形態に係るプリンタ200は、XPSデータをプリントデータとして使用するものであるため、レンダリングフィルタ145では、レイアウトフィルタ144で処理されたXPSデータに対して、特に処理は行わない。
そして、フィルタパイプラインマネージャ143は、レンダリングフィルタ145から通知されたプリントデータ(XPSデータ)をランゲージモニタ138に供給する。そして、ランゲージモニタ138は、当該ホストコンピュータ100からプリンタ200にPDLデータを伝送するために使用されるインターフェースを経由して、フィルタパイプラインマネージャ143から供給されたプリントデータ(XPSデータ)をプリンタ200に送信する(送信ステップ)。なお、プリンタ200へプリントデータ(XPSデータ)を送信する際には、プリンタ200で即時に印刷処理を実行できるようにするために、XPSデータを細分化データ(パケット)単位にしてプリンタ200に送信する。つまり、プリンタ200は、データストリームしながら、印刷を実行することが可能となる。
次に、図5のステップS102におけるXPSデータの解析・編集処理の詳細について説明する。
図6は、図5のステップS102におけるXPSデータの解析・編集処理の詳細な処理手順の一例を示すフローチャートである。
ステップS201で、レイアウトフィルタ144は、「_rels/.re
ls」パーツデータを検索し、これを伸長して取得する。この際、本実施形態では、当該検索の方法として、Local_File_Headerをデータの先頭から検索する方法を採用するものとする。また、このとき検索するLocal_File_Header内のデータ名としては、「_rels/.rels」である。以降、特に言及が無い限り、XPSデータ内のパーツデータ等の検索方法は、この方法を採用するものとする。また、本実施形態では、当該伸張の方法として、一般的なZIPデータの伸張方法を採用するものとし、伸張したデータはディレクトリ構成を保持したまま各種のファイルを外部メモリ111に書き出す形態で保存する。以降、XPSデータ内のパーツデータ等の伸長方法は、この方法を採用するものとする。
続いて、ステップS202において、レイアウトフィルタ144は、取得した次の「_rels/.rels」パーツデータ(ピースデータ)を解析し、XPSデータ内のFDSのデータ名を取得する処理を行う。ここで、前述したように、「_rels/.rels」パーツデータは、XML形式で記述されたファイルであり、本実施形態では、当該解析の方法として、一般的なXMLファイルの解析方法を採用するものとする。なお、以後、XML形式で記述されたファイルを解析する場合は、本例と同様に、一般的なXMLファイルの解析方法を採用するものとする。
続いて、ステップS203において、レイアウトフィルタ144は、XPSデータに含まれるプリントチケットを置換する。
次に、図6のステップS203におけるプリントチケット編集処理の詳細について説明する。
図7は、図6のステップS203におけるプリントチケット編集処理の詳細な処理
手順の一例を示すフローチャートである。
図6のステップS203の処理では、まず、図7のステップS301において、レ
イアウトフィルタ144は、FDS(FixedDocumentSeaquence)パーツデータに関連付けられたプリントチケットが存在するか否かを判断する。
ステップS301の判断の結果、FDSパーツデータに関連付けられたプリントチケットが存在しない場合には、ステップS302に進む。
ステップS302に進むと、レイアウトフィルタ144は、プリントチケットを作成して、これをXPSデータの中に含める処理を行う。
ステップS302の処理が終了した場合、或いは、ステップS701においてFPパーツデータに関連付けられたプリントチケットが存在すると判断された場合には、ステップS303に進む。
ステップS703に進むと、レイアウトフィルタ144は、図18に示すように、<PrintTicket>ルートタグの1階層下の子要素として、<Feature>タグ1401を挿入する。
ここで、図18は、本発明の実施形態を示し、プリントチケットの一例を示す模式図である。上述したように、レイアウトフィルタ144は、<Feature>タグ1401に反映する。
ここで反映されるのは、本実施形態の特徴として、ソース側デバイスプロファイルと、図19のような状態で外部メモリ111に保存された、会議室Aと会議室Bのデスティネーション側デバイスプロファイルとデスティネーション側デバイスプロファイルに対応する印刷部数である。
ここで、<Feature>タグ1401の挿入には、DOM等のインターフェースを備えた一般的なXML解析用モジュールを使用する。また、外部参照リソースリストの情報のプリントチケット内における表現の方法は、会議室Aと会議室Bのデスティネーション側デバイスプロファイルがXPSデータ内のどこに存在し、それぞれ何部印刷するかの指定を一意に復元できれば、どのような方法であってもよい。
以上の図7に示すステップS301〜S303の処理を経ることにより、図6のス
テップS203におけるプリントチケット編集処理が行われる。
図8は、本発明の実施形態に係る印刷制御システム10のプリンタ200によるXPSプリントパスを用いた印刷制御処理の処理手順の一例を示すフローチャートである。
まず、図8のステップS901において、プリンタ200のCPU201は、ホストコンピュータ100からXPSデータを受信する。この受信したXPSデータは、プリンタ200で即時に印刷処理させるために、ホストコンピュータ100でXPSデータを細分化データ(パケット)単位にして送信されたデータである。また、細分化データをデータストリームの受信に従って、順次プリンタ200の記憶領域(例えば、外部メモリ210)に記憶して格納する(データストリーム)。
なお、ステップS901のデータストリームは、後述するステップS902の処理を実行しながら行っている。また、ステップS902の処理は、データストリームしたデータをプリンタ200の記憶領域(例えば、外部メモリ210)から順次読み出し処理する。なお、ステップS902の処理は、各処理が実行できる単位(1つのファイル(パーツ)分)を受信していない(読み出しができない)場合は処理を待機する。
続いて、ステップS902において、プリンタ200のCPU201は、ステップS901で取得したXPSデータの解析を行って、XPSデータの印刷処理を行う。
次に、図8のステップS902におけるXPSデータの解析・印刷処理の詳細について説明する。
図9は、図8のステップS902におけるXPSデータの解析・印刷処理の詳細な処理手順の一例を示すフローチャートである。
図8のステップS902の処理では、まず、図9のステップS1001において、プリンタ200のCPU201は、未処理の「_rels/.rels」パーツデータが存在するか否かを判断する。
ステップS1001の判断の結果、未処理の「_rels/.rels」パーツデータが存在しない場合(即ち、全てのパーツデータについて解析(処理)済みである場合)には、図9におけるフローチャートの処理を終了する。即ち、図8のステップS902の処理を終了する。
一方、ステップS1001の判断の結果、未処理の「_rels/.rels」パーツデータが存在する場合には、ステップS1002に進む。
ステップS1002に進むと、プリンタ200のCPU201は、未処理の「_rels/.rels」パーツデータを全て取得したか否かを判断する。
ステップS1002の判断の結果、未処理の「_rels/.rels」パーツデータの全てを取得していない場合には、ステップS1003に進む。
ステップS1003に進むと、プリンタ200のCPU201は、次の「_rels/.rels」パーツデータを検索し、これを伸長して取得する。
ステップS1003の処理が終了した場合、或いは、ステップS1002において未処理の「_rels/.rels」パーツデータを全て取得したと判断された場合には、ステップS1004に進む。
続いて、ステップS1004において、プリンタ200のCPU201は、取得した次の「_rels/.rels」パーツデータを解析し、XPSデータ内のFDSのデータ名を取得する処理を行う。ここで、前述したように、「_rels/.rels」パーツデータは、XML形式で記述されたファイルであり、本実施形態では、当該解析の方法として、一般的なXMLファイルの解析方法を採用するものとする。なお、以後、XML形式で記述されたファイルを解析する場合は、本例と同様に、一般的なXMLファイルの解析方法を採用するものとする。
続いて、ステップS1005において、プリンタ200のCPU201は、ステップS1004でFDSのデータ名を取得できたか否かを判断する。
ステップS1005の判断の結果、ステップS1004でFDSのデータ名を取得できた場合には、ステップS1006に進む。
ステップS1006に進むと、プリンタ200のCPU201は、当該FDSの処理を行う。
ステップS1006の処理が終了した場合、或いは、ステップS1005においてFDSのデータ名を取得できなかったと判断された場合には、ステップS1001に戻り、ステップS1001以降の処理を再度行う。
以上の図9に示すステップS1001〜S1006の処理を経ることにより、図8のステップS902におけるXPSデータの解析・印刷処理が行われる。
次に、図9のステップS1006におけるFDSの処理の詳細について説明する。
図10は、図9のステップS1006におけるFDSの処理の詳細な処理手順の一例を示すフローチャートである。
本フローチャートを実施することで、図16で設定したように、環境に応じた部単位の印刷物を出力することができる。
図9のステップS1006の処理では、まず、図10のステップS1101において、プリンタ200のCPU201は、FDSパーツデータに関連付けられたプリントチケットからカラーマッチング情報3401を取得する。
なお、FDSパーツデータは、XPSデータの仕様上、ファイル内のどこにプリントチケットが存在するか解釈できる。また、カラーマッチング情報とは、図18の3401である。このカラーマッチング情報3401には、デスティネーション側デバイスプロファイルのファイル名が3402に記載されており、ソース側デバイスプロファイルのファイル名が3403に記載されている。これによって、デスティネーション側デバイスプロファイルとソース側デバイスプロファイルが取得することができる。
さらに、各環境における部数を3404、3405から取得し、会議室Aに対応するファイル名「kaigishitsuA.wcs」と「2」(3404の部数)・会議室Bに対応するファイル名「kaigishitsuB.wcs」と「1」(3405の部数)を対応付けてRAM202に記憶させる。
次に、ステップS1103では、ステップS1101で取得したカラーマッチング情報3401に含まれるソース側デバイスプロファイルのファイル名に従って、ソース側デバイスプロファイル3602のデータをXPSデータ内部から検索し、外部メモリ210に保存しておく。
次にステップS1102において、外部メモリ210などの領域に展開されている
部数カウンタを初期化する(部数=0)。
次にステップS1104では、ステップS1101で取得したカラーマッチング情報3401に含まれるデスティネーション側デバイスプロファイルのファイル名3402のデスティネーション側デバイスプロファイル3601のデータをXPSデータ内部から検索し、外部メモリ210に保存しておく。すなわち、環境に応じた印刷物を出力するためにプロファイルを切り換える切換処理である。
ステップS1104の処理をより具体的に説明すると、ステップS1101で記憶した「kaigishitsuA.wcs」と「2」(3404の部数)・「kaigishitsuB.wcs」と「1」(3405の部数)を参照し、まず、「kaigishitsuA.wcs」のプロファイルを読み出し、外部メモリ210に保存する。この保存したファイルは、後述するステップS1403で用いられる。また、このプロファイルを用いて印刷する部数を2と保持し、後述するステップS1107〜ステップS1105を繰り返す。「kaigishitsuA.wcs」の例では、ステップS1107〜ステップS1105の処理が2回繰り返される。また、「kaigishitsuA.wcs」の処理が終わると、「kaigishitsuB.wcs」プロファイルを読み出し、外部メモリ210に保存する。また、このプロファイルを用いて印刷する部数を1と保持し、後述するステップS1107〜ステップS1105を繰り返す。「kaigishitsuB.wcs」の例では、ステップS1107〜ステップS1105の処理は1回となる。この「kaigishitsuA.wcs」の2回と「kaigishitsuB.wcs」の1回繰り返されると後述するS1111で全部数印刷したと判定し処理を終了する。
ステップS1106では、ステップS1104で保持したデバイスプロファイルを適用する所定部数(「kaigishitsuA.wcs」の場合は「2」)分、描画したか否かを判定する。所定部数分描画した場合には、ステップS1111へ処理を移す。所定部数分描画していない場合には、ステップS1107へ処理を移す。
S1111で、ユーザに指定された部数分(全部数、本実施形態では3部)印刷されたかどうかを判定する。全部数分印刷したかどうかは、後述するステップS1105でインクリメントした値をカウントしておくことで実現可能である。
全部数分印刷されていれば、印刷を終了する。印刷されていなければ、ステップS1102に戻り、次のデバイスプロファイルを適用した印刷を実施する。
ステップS1107では、プリンタ200のCPU201は、次のFDSパーツデータを検索し、これを伸長して取得する。(部数分を繰り返す場合、同じFDSパーツを検索することになる。)
ステップS1107の処理が終了した場合、ステップS1108において、プリンタ200のCPU201は、取得した次のFDSパーツデータを解析し、XPSデータ内のFDのデータ名を1つ取得する処理を行う。(複数FDデータ(パーツ)を持つことも可能であるが、基本FDデータ(パーツ)は1つであるため、FDデータ(パーツ)は1つとして本実施形態を説明する。)
続いて、ステップS1109において、プリンタ200のCPU201は、ステップS1108でFDのデータ名を取得できたか否かを判断する。
ステップS1109の判断の結果、ステップS1108でFDのデータ名を取得できた場合には、ステップS1110に進む。
ステップS1110に進むと、プリンタ200のCPU201は、当該FDの処理を行う。
ステップS1105では、部数カウンタをインクリメント(+1)する。
以上の図10に示すステップS1102、S1104〜S1111の処理を繰り返すことにより、環境ごと(例えば、会議室A、会議室B)に指定された部数分、且つ環境に応じた色味の印刷物を指定された部数分出力することができる。
次に、図10のステップS1106におけるFDの処理の詳細について説明する。
図11は、図10のステップS1110におけるFDの処理の詳細な処理手順の一例を示すフローチャートである。
図10のステップS1110の処理では、まず、図11のステップS1201において、プリンタ200のCPU201は、ステップS1108で取得したFDのデータ名に従って、全てのFDパーツデータを取得したか否かを判定する。なお、XPSデータでは、複数のドキュメントとして複数のFDデータを持つことができるため、本ステップで全てのFDパーツデータを取得したかを判定する。しかしながら、通常では、FDデータは1つのケースが多いため、本実施形態では、FDデータは1つであることを前提に説明する。
ステップS1203では、プリンタ200のCPU201は、ステップS1108で取得したデータ名に従って、FDパーツデータを検索し、これを伸長して取得する。
ステップS1203の処理が終了した場合、には、ステップS1204に進む。
続いて、ステップS1204において、プリンタ200のCPU201は、取得したFDパーツデータ(ピースデータ)を解析し、XPSデータ内のFPのデータ名を1つ取得する処理を行う。
続いて、ステップS1205において、プリンタ200のCPU201は、ステップS1204でFPのデータ名を取得できたか否かを判断する。つまり、全てのFPを処理した場合にステップS1201へ処理を移し、本実施形態ではFDが1つであるため、本処理を終了する。
ステップS1205の判断の結果、ステップS1204でFPのデータ名を取得できた場合には、ステップS1206に進む。つまり、処理していないFPがある場合である。
ステップS1206に進むと、プリンタ200のCPU201は、当該FPの処理を行う。
ステップS1206の処理が終了した場合には、ステップS1204に戻り、次のFPに対する処理を行う。
以上の図11に示すステップS1204〜S1206の処理を経ることにより、図10のステップS1106における1つのFDの描画処理が行われる。
次に、図11のステップS1206におけるFPの処理の詳細について説明する。
図11は、図11のステップS1206におけるFPの処理の詳細な処理手順の一例を示すフローチャートである。
図11のステップS1206の処理では、まず、図11のステップS1301において、プリンタ200のCPU201は、ステップS1204で取得したFDのデータ名に従って、FPパーツデータを検索し伸長して取得する。
続いて、ステップS1302において、プリンタ200のCPU201は、FDパーツデータのカラーマッチング、描画処理を行う。
次に、図11のステップS1302におけるFPパーツデータの描画命令処理(FP描画命令処理)の詳細について説明する。
図13は、図11のステップS1302におけるFP描画命令処理の詳細な処理手順の一例を示すフローチャートである。
図11のステップS1302の処理では、まず、図13のステップS1401において、プリンタ200のCPU201は、図11のステップS1304の処理で取得したFPデータを解析して、描画命令を検出(抽出)する処理を行う。
続いて、ステップS1402において、プリンタ200のCPU201は、カラーマッチングをするかどうかを判定する。
カラーマッチングをするか否かは、図18の3407の記載を参照して、カラーマッチングするページか否かを判定する。3407は、図16で設定された反映させるページで指定されたページ情報が記載されている。なお、図16で全ページが指定された場合には、全てのページ情報が記載されている。
また、カラーマッチングをするか否かは、図17で設定されたカラーマッチングする対象(色変換対象)のオブジェクト(描画命令)であれば、カラーマッチングすると判定される。
なお、図17は図16に詳細設定ボタンが押下されることで表示され、ユーザの操作によって設定を受け付ける。また、設定された情報は図18のプリントチケット内に記載される。
カラーマッチングをすると判断した場合は、ステップS1403に移り、ソース側デバイスプロファイル3602とステップS1104で保持したデスティネーション側デバイスプロファイル3601を使用して、カラーマッチング処理をする。このカラーマッチング処理は、使用したい場所にあった色で印刷物を出力するために、ソース側デバイスプロファイル3602とデスティネーション側デバイスプロファイル3601から、色変換するためのテーブル(新たに作成されるプロファイル)を作成し、この色変換するテーブルに従って、色変換する処理である。本実施形態では、ステップS1403で新たに作成されるプロファイルを作成するようにしたが、XPSデータ内に予め作成したプロファイルを持たせるように構成してもよい。
また、デスティネーション側デバイスプロファイル自体をXPSデータ内に保持するように構成したが、プリンタ200にデスティネーション側デバイスプロファイルを保持させ、XPSデータ内には、デスティネーション側デバイスプロファイルのファイル名が記載されている構成であってもよい。つまり、ファイル名からプリンタ200の外部メモリ210からデスティネーション側デバイスプロファイルを取得する構成であってもよい。
なお、ステップS1401で取得した描画命令に外部リソースの参照が含まれている場合には、外部リソースファイル用いた描画処理する際にカラーマッチングする。
これによって、部数指定印刷で、複数の環境に応じた印刷物を出力することができる。
次にステップS1404で印刷対象に描画を行う。ステップS1403でカラーマッチングを実施した場合には、カラーマッチング後の描画情報を描画し、印刷部208で印刷を行う。
ステップS1405では、現在処理中のFPパーツデータを最後まで解析し、描画したか否かを判定する。全て解析し描画するまでステップS1401〜ステップS1405を繰り返す。
なお、本実施形態では、1描画命令ずつカラーマッチングして描画するように構成したが、カラーマッチングは、全ての描画命令をRIP後にイメージに対してカラーマッチングをするように構成してもよい。つまり、カラーマッチングする手順は限定されるものではない。
以上、本実施形態について説明したが、本実施形態では、プリンタ200側で描画処理を行うように構成したが、ホストコンピュータ100側でカラーマッチング処理及び描画処理(イメージ化)をして、プリンタ200に送信してプリンタ200で印刷するように構成することも可能である。
以上、本実施形態によれば、複数部数印刷で、簡易的に複数の環境に応じた出力物を得ることができる。
(本発明の他の実施形態)
ホストコンピュータ100及びプリンタ200における印刷制御処理を示す図5〜図13の各ステップは、コンピュータのCPUがROMなどに記憶されたプログラムを実行
することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図5〜図13に示すフローチャートに対応したプログラム)を、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。