以下、本発明を適用するのに好適である実施例について説明を行う。
<プリンタ制御システムの構成>
図1は本発明の実施例を示すプリンタ制御システムの構成を説明するブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。
同図において、ホストコンピュータ3000は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備え、システムバス4に接続される各デバイスをCPU1が総括的に制御する。また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶し、ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。RAM2は、CPU1の主メモリ、ワークエリア等として機能する。
キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、CRTディスプレイ(CRT)10の表示を制御する。7はディスクコントローラ(DKC)で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フレキシブルディスク(FD)等の外部メモリ11とのアクセスを制御する。プリンタコントローラ(PRTC)8は、双方向性インタフェイス(インタフェイス)21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウィンドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウィンドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
プリンタ1500は、CPU12により制御される。プリンタCPU12は、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ14に記憶された制御プログラム等に基づいてシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ROM13のデータ用ROMには、ハードディスク等の外部メモリ14がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
CPU12は入力部18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知できる。RAM19は、CPU12の主メモリや、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、18は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
また、前述した外部メモリ14は1個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
図2は、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されているホストコンピュータにおける典型的な印刷処理の構成図である。アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在し、実行される場合にOSやそのモジュールを利用するモジュールによってRAM2にロードされ実行されるプログラムモジュールである。また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部ディスク11のHDに追加することが可能となっている。外部メモリ11に保存されているアプリケーション201はRAM2にロードされて実行されるが、このアプリケーション201からプリンタ1500に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力(描画)を行う。
グラフィックエンジン202は、印刷装置ごとに用意されたプリンタドライバ203を同様に外部メモリ11からRAM2にロードし、アプリケーション201の出力をプリンタドライバ203に設定する。そして、アプリケーション201から受け取るGDI(Graphic Device Interface)関数からDDI(Device Driver Interface)関数に変換して、プリンタドライバ203へDDI関数を出力する。プリンタドライバ203は、グラフィックエンジン202から受け取ったDDI関数に基づいて、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。変換されたプリンタ制御コマンドは、OSによってRAM2にロードされたシステムスプーラ204を経てインタフェイス21経由でプリンタ1500へ印刷データとして出力される仕組みとなっている。
本実施形態の印刷システムは、図2で示すプリンタとホストコンピュータからなる印刷システムに加えて、更に第3図に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
<本実施形態における印刷関連のソフトウエアモジュール>
図3は、図2のシステムを拡張したもので、グラフィックエンジン202からプリンタドライバ203へ印刷命令を送る際に、一旦中間コードからなるスプールファイル303を生成する構成をとる。図2のシステムでは、アプリケーション201が印刷処理から開放されるのはプリンタドライバ203がグラフィックエンジン202からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図3のシステムでは、スプーラ302がすべての印刷命令を中間コードデータに変換し、スプールファイル303に出力した時点である。通常、後者の方が短時間で済む。また、図3で示すシステムにおいては、スプールファイル303の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを1ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。
これらの目的のために、図2のシステムに対し、図3の様に中間コードデータでスプールする様、システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ203が提供するウィンドウから設定を行い、プリンタドライバ203がその設定内容をRAM2上あるいは外部メモリ11上に保管する。
以下、図3の詳細を説明する。図に示す通り、この拡張された処理方式では、グラフィックエンジン202からの印刷命令であるDDI関数をディスパッチャ301が受け取る。ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令(DDI関数)が、アプリケーション201からグラフィックエンジン202へ発行された印刷命令(GDI関数)に基づくものである場合には、ディスパッチャ301は外部メモリ11に格納されているスプーラ302をRAM2にロードし、プリンタドライバ203ではなくスプーラ302へ印刷命令(DDI関数)を送付する。
スプーラ302は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル303に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル(PDF:Page Description File)と呼ぶ。また、スプーラ302は、プリンタドライバ203に対して設定されている印刷データに関する加工設定(Nup、両面、ステイプル、カラー/モノクロ指定等)をプリンタドライバ203から取得してジョブ単位のファイルとしてスプールファイル303に保存する。この時部単位に格納されている設定ファイルをジョブ設定ファイル(簡略してSDF:Spool Description Fileと呼ぶこともある)と呼ぶ。このジョブ設定ファイルについては後述する。なお、スプールファイル303は外部メモリ11上にファイルとして生成するが、RAM2上に生成されても構わない。更にスプーラ302は、外部メモリ11に格納されているスプールファイルマネージャ304をRAM2にロードし、スプールファイルマネージャ304に対してスプールファイル303の生成状況を通知する。その後、スプールファイルマネージャ304は、スプールファイル303に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
スプールファイルマネージャ304がグラフィックエンジン202を利用して印刷を行えると判断した際には、外部メモリ11に格納されているデスプーラ305をRAM2にロードし、デスプーラ305に対して、スプールファイル303に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
デスプーラ305はスプールファイル303に含まれる中間コードのページ描画ファイルをスプールファイル303に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、GDI関数を再生成し、もう一度グラフィックエンジン202経由でGDI関数を出力する。
ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令(DDI関数)がデスプーラ305からグラフィックエンジン202へ発行された印刷命令(GDI関数)に基づいたものである場合には、ディスパッチャ301はスプーラ302ではなく、プリンタドライバ203に印刷命令を送る。
プリンタドライバ203はグラフィックエンジン202から取得したDDI関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ204経由でプリンタ1500に出力する。
更に、図3では、これまで説明した拡張システムに加えて、プレビューア306、設定変更エディタ307を配し、プレビュー、印刷設定変更、複数ジョブの結合を可能にした例を示している。
印刷プレビュー、印刷設定変更、複数ジョブの結合を行うためには、まずユーザが図9に示すプリンタドライバのプロパティにおいて、「出力先の指定」を行う手段であるプルダウンメニュー901において「ストア」を指定する必要がある。なお、プレビューだけをみたい場合は、出力先の指定として「プレビュー」を選択することによっても可能である。
このようにプリンタドライバのプロパティで設定されている内容は設定ファイルとしてOSが提供する構造体(Windows(登録商標)OSでは、DEVMODEと呼ばれる)に格納される。その構造体には、例えばスプールファイル303に含まれる加工設定中にスプールファイルマネージャ304にストアを行うかどうかの設定が含まれており、スプールファイルマネージャ304がプリンタドライバを介して加工設定を読み込み、ストア指定がなされていた場合、前述したようにスプールファイル303にページ描画ファイルとジョブ設定ファイルとが生成・格納され、図16のようにスプールファイルマネージャのウィンドウ画面がポップアップされ、スプールファイル303にスプールされたジョブがリスト表示される。図16には、4つのジョブがスプールされている例を示しており、メニューバーもしくは、そのすぐ下のメニューアイコンを押下することにより、ジョブの操作を行うことができる。メニューバーとメニューアイコンの操作の数は同じである。操作種類としては、ジョブを選択した状態で、「印刷」、中間コードのスプールファイルをそのまま残して印刷を行わせる「セーブして印刷」、印刷設定を考慮したジョブの出力プレビューを見るための「プレビュー」、中間コードのスプールファイルを削除する「削除」、中間コードのスプールファイルのコピーを生成する「複製」、複数の中間コードのスプールファイルのジョブを結合して1つのジョブにする「結合」、結合ジョブを元の複数のジョブに分割する「分割」、単体ジョブもしくは結合ジョブの印刷設定(レイアウト設定やフィニッシング設定等)を変更する「ジョブ編集」、あるジョブの印刷順序を最初にする「先頭に移動」、あるジョブの印刷順序を1つ早くする「1つ上に移動」、あるジョブの印刷順序を1つお則する「1つ下に移動」、あるジョブの印刷順序を最後にする「最後に移動」の以上11個の操作がある。
スプールファイルマネージャのウィンドウ画面(図16)上で、ある単体ジョブもしくは結合ジョブのプレビュー指定がされた場合、外部メモリ11に格納されているプレビューア306をRAM2にロードし、プレビューア306に対して、スプールファイル303に記述された中間コードのジョブのプレビュー処理を行うように指示する。
(プレビューア)
プレビューア306はスプールファイル303に含まれる中間コードのページ描画ファイル(PDF)を順次読み出し、スプールファイル303に格納されているジョブ設定ファイル(SDF)に含まれる加工設定情報の内容に従って加工し、グラフィックエンジン202に対してGDI関数を出力し、グラフィックエンジン202が自身のクライアント領域に描画データを出力することによって、画面上の出力が可能となる。
グラフィックエンジン202は、指定された出力先に応じて適切なレンダリングを行うことが可能である。このことから、プレビューア306は、デスプーラ305同様に、スプールファイル303に含まれる中間コードをスプールファイル303に含まれる加工設定の内容に従って加工し、グラフィックエンジン202を利用して出力する方法で実現可能となる。このようにプリンタドライバで設定されている加工設定をジョブ設定ファイルとしてスプールファイル303に格納し、このジョブ設定ファイルに基づいてページ描画ファイルのデータを加工して出力することにより、実際の描画データがどのように印刷されるか、更には、Nup(Nページの論理ページを1ページの物理ページに縮小配置して印刷する処理)指定されている場合、両面印刷されている場合、製本印刷指定されている場合、スタンプが指定されている場合、それぞれに応じて、プリンタで出力されるものに近い印刷プレビューをユーザに提供することができる。なお、従来の文書作成等のアプリケーションソフトウェアが有しているプレビュー機能は、あくまでそのアプリケーションにおけるページ設定に基づいて描画しているため、プリンタドライバでの印刷設定が反映されず、実際に印刷出力されるプレビューをユーザに認識させることはできなかった。
上記のようにプレビュー処理を行うことにより、図17のようにスプールファイル303に含まれる印刷の加工設定の大プレビューがプレビューア306によって画面上に表示され、その後、ユーザの非表示指示によって、プレビューア306がクローズされ、制御がスプールファイルマネージャのウィンドウ画面(図16)に移行する。
そして、ユーザがプレビューア306によって表示された内容に従って、印刷を行うならば、スプールファイルマネージャ304上で、「印刷」もしくは「セーブして印刷」を指示することにより印刷要求を発行する。印刷要求は前述したように、デスプーラ305によりジョブ設定ファイルに基づいてページ描画ファイルを加工してGDI関数を生成し、グラフィックエンジン202に伝えられ、ディスパッチャ301経由で、プリンタドライバ203に印刷命令が送られ、印刷が実行される。
(設定変更エディタ)
次に、設定変更エディタ307を用いた設定変更について説明する。
その実現方法としては、プレビュー同様、図9において「ストア」指定されたジョブに関して設定可能である。同様のフローによりスプールファイルマネージャ304がポップアップされ、スプールされたジョブがリスト表示される。スプールファイルマネージャのウィンドウ画面(図16)上で、「ジョブ編集」が指定され、設定変更指示がされた場合、外部メモリ11に格納されている設定変更エディタ307をRAM2にロードし、設定変更エディタ307に対して、現在またはデフォルトの加工設定の表示を行うように指示する。そして図18のようなジョブ設定画面が表示される。
設定変更エディタ307は、「ジョブ編集」が指定されたジョブのジョブ設定ファイルをスプールファイル303から取得し、そのジョブ設定ファイルに指定されている設定項目に基づいて図18のジョブ設定画面のデフォルト値を変更する。図18に示す例では、「ジョブ編集」指定されたジョブのジョブ設定ファイルには、部数:1部、印刷方法:片面、ステイプル:なし、レイアウト:1ページ/枚等が指定されていることになる。
この設定変更エディタ307でもスプールファイル303に含まれる中間コードのページ描画ファイルをスプールファイル303に格納されているジョブ設定ファイルに含まれる加工設定の内容に従って加工し、グラフィックエンジン202を用いて自身のクライアント領域に出力することによって、図18に示す画面上の小プレビュー出力が可能となる。
またここで、スプールファイル303に格納されているジョブ設定ファイルに含まれる加工設定の内容を変更、修正することが可能である。その際、プリンタドライバ203の設定可能な項目を設定変更エディタ307上のユーザインターフェイスに持っていても、プリンタドライバ203自身のユーザインターフェイスを呼び出しても構わない。図18に示すように、分数、印刷方法(片面、両目、製本印刷)、ステイプル(サドルフィニッシャー等)、ページレイアウト、配置順等の指定ができ、また「詳細設定」を押下することにより、プリンタドライバで指定できる項目の大半を設定しなおすことが可能となる。ただし、解像度、グラフィックモード等の印刷品位に関する設定の変更は許可しないものとする。
ここで変更された変更項目は設定変更エディタ307上の認証要求に従い、変更が認証され、制御がスプールファイルマネージャ304に移行する。変更が認証されたものは、印刷設定の変更を保存することになるが、オリジナルのジョブ設定ファイルには保存せずに、ジョブ編集等で用いられるジョブ出力用設定ファイルを新たに生成して保存することになる。ジョブ出力用設定ファイルについての詳細は、図10以降で後述する。
そして、ユーザがプレビューア306での確認同様、設定変更内容に従って、印刷を行うならば、スプールファイルマネージャ304上で、印刷要求を発行する。印刷要求はグラフィックエンジン202に伝えられ、ディスパッチャ301経由で、プリンタドライバ203に印刷命令が送られ、印刷が実行される。
また、スプールファイルマネージャのウィンドウ画面(図16)では、複数の印刷ジョブを結合し、一つの印刷ジョブとして印刷するように指定することが可能である。これも、プレビュー、設定変更同様、図9のプリンタドライバのプロパティにおいて出力先を「ストア」指定されたジョブが前提となる。
ユーザが印刷ジョブの結合を行う場合、まず、アプリケーション201からプリンタドライバ203を呼び出し、図9に示すようなユーザインターフェイス上からストアを選択する。前記同様、この選択により、スプールファイル303にストアされ、図16のようにスプールファイルマネージャのウィンドウ画面(図16)がポップアップされる。スプールされたジョブはスプールファイルマネージャのウィンドウ上にリスト表示される。アプリケーション201から同様の操作をすることにより、スプールファイルマネージャ304上に複数ジョブのリスト表示がされることになる。
ここで、複数ジョブを選択し、「結合」が指定された場合、外部メモリ11に格納されている設定変更エディタ307をRAM2にロードし、設定変更エディタ307に対して、リスト上の先頭ジョブまたはデフォルトの加工設定の表示を行うように指示する。そして図18のような結合設定画面が表示される。ここでは、設定変更エディタ307を結合設定画面として用いているが、別モジュールのものを用いても構わない。
この設定変更エディタ307は、スプールファイル303に含まれる中間コードのページ描画ファイルをスプールファイル303に格納されているジョブ設定情報に含まれる加工設定の内容に従って加工し、結合ジョブとして指定されたすべてのジョブに対して、グラフィックエンジン202を用いて自身のクライアント領域に出力することによって、画面上の出力を行う。その際、図18に示すプレビュー領域に選択された全てのジョブの小プレビューが可能となる。また、結合ジョブを生成する際に、それぞれの単体ジョブのジョブ設定ファイルを拡張したジョブ出力用設定ファイルを生成する。このジョブ出力用設定ファイルは、ジョブ編集を行う際にも生成されるものであり、1つのジョブに対して1つできるものであり、結合ジョブの場合もまた1つ生成される。
ここではそれぞれのジョブに対して、結合する前の加工設定で表示することも、結合ジョブとして統一の加工設定に変更、修正して表示することも可能である。その際、プリンタドライバ203の設定可能な項目を設定変更エディタ307上のユーザインターフェイスに持っていても、プリンタドライバ203自身のユーザインターフェイスを呼び出しても構わない。
ここで結合されたジョブ及び変更された変更項目は、前述したように、設定変更エディタ307上の認証要求に従い、変更が認証され、制御がスプールファイルマネージャ304に移行する。これらの操作により、先に選択された複数ジョブは、スプールファイルマネージャのウィンドウ上で一つの結合ジョブとして表示される。
そして、ユーザがプレビューア306での確認同様、設定変更内容に従って、印刷を行うならば、スプールファイルマネージャ304上で、印刷要求を発行する。印刷要求はグラフィックエンジン202に伝えられ、ディスパッチャ301経由で、プリンタドライバ203に印刷命令が送られ、印刷が実行される。
<レーザビームプリンタの構成>
図4は、プリンタ1500の一例である両面印刷機能を有するカラーレーザプリンタの断面図である。
このプリンタはホストコンピュータ3000より入力した印刷データに基づいて得られる各色毎の画像データで変調されたレーザ光をポリゴンミラー31により感光ドラム15を走査して静電潜像を形成する。そして、この静電潜像をトナー現像して可視画像を得、これを中間転写体9へ全色について多重転写してカラー可視画像を形成する。そして更に、このカラー可視画像を転写材2へ転写し、転写材2上にカラー可視画像を定着させる。以上の制御を行う画像形成部は、感光ドラム15を有するドラムユニット、接触帯電ローラ17を有する一次帯電部、クリーニング部、現像部、中間転写体9、用紙カセット1や各種ローラ3、4、5、7を含む給紙部、転写ローラ10を含む転写部及び定着部25によって構成されている。
ドラムユニット13は、感光ドラム(感光体)15と感光ドラム15のホルダを兼ねたクリーニング機構を有するクリーナ容器14とを一体に構成したものである。このドラムユニット13はプリンタ本体に対して着脱自在に支持され、感光ドラム15の寿命に合わせて容易にユニット交換可能に構成されている。上記感光ドラム15はアルミシリンダの外周に有機光導電体層を塗布して構成し、クリーナ容器14に回転可能に支持されている。感光ドラム15は、図示しない駆動モータの駆動力が伝達されて回転するもので、駆動モータは感光ドラム15を画像形成動作に応じて反時計回り方向に回転させる。感光ドラム15の表面を選択的に露光させることにより静電潜像が形成されるように構成されている。スキャナ部30では、変調されたレーザ光を、モータ31aにより画像信号の水平同期信号を同期して回転するポリゴンミラーにより反射し、レンズ32、反射鏡33を介して感光ドラムを照射する。
現像部は、上記静電潜像を可視画像化するために、イエロー(Y)、マゼンダ(M)、シアン(C)の現像を行う3個のカラー現像器20Y、20M、20Cと、ブラック(B)の現像を行う1個のブラック現像器21Bとを備えた構成を有する。カラー現像器20Y、20M、20C及びブラック現像器21Bには、スリープ20YS、20MS、20CS及び21BSと、これらスリープ20YS、20MS、20CS、21BSそれぞれの外周に圧接する塗布ブレード20YB、20MB、20CB及び21BBとがそれぞれ設けられる。また3個のカラー現像器20Y、20M、20Cには塗布ローラ20YR、20MR、20CRが設けられている。
また、ブラック現像器21Bはプリンタ本体に対して着脱可能に取り付けられており、カラー現像器20Y、20M、20Cは回転軸22を中心に回転する現像ロータリー23にそれぞれ着脱可能に取り付けられている。
ブラック現像器21Bのスリープ21BSは感光ドラム15に対して例えば300μm程度の微小間隔を持って配置されている。ブラック現像器21Bは、器内に内蔵された送り込み部材によってトナーを搬送すると共に、時計回り方向に回転するスリープ21BSの外周に塗布ブレード21BBによって塗布するように摩擦帯電によってトナーへ電荷を付与する。また、スリープ21BSに現像バイアスを印加することにより、静電潜像に応じて感光ドラム15に対して現像を行って感光ドラム15にブラックトナーによる可視画像を形成する。
3個のカラー現像器20Y、20M、20Cは、画像形成に際して現像ロータリー23の回転に伴って回転し、所定のスリープ20YS、20MS、20CSが感光ドラム15に対して300μm程度の微小間隔を持って対向することになる。これにより所定のカラー現像器20Y、20M、20Cが感光ドラム15に対向する現像位置に停止し、感光ドラム15に可視画像が作成される。
カラー画像形成時には、中間転写体9の1回転毎に現像ロータリー23が回転し、イエロー現像器20Y、マゼンダ現像器20M、シアン現像器20C、次いでブラック現像器21Bの順で現像工程がなされ、中間転写体9が4回転してイエロー、マゼンダ、シアン、ブラックのそれぞれのトナーによる可視画像を順次形成し、その結果フルカラー可視画像を中間転写体9上に形成する。
中間転写体9は、感光ドラム15に接触して感光ドラム15の回転に伴って回転するように構成されたもので、カラー画像形成時に時計回り方向に回転し、感光ドラム15から4回の可視画像の多重転写を受ける。また、中間転写体9は画像形成時に後述する転写ローラ10が接触して転写材2を挟持搬送することにより転写材2に中間転写体9上のカラー可視画像を同時に多重転写する。中間転写体の外周部には、中間転写体9の回転方向に関する位置を検知するためのTOPセンサ9a及びRSセンサ9bと、中間転写体に転写されたトナー像の濃度を検知するための濃度センサ9cが配置されている。
転写ローラ10は、感光ドラム15に対して接離可能に支承された転写帯電器を備えたもので、金属軸を中抵抗発泡弾性体により巻回することによって構成されている。
転写ローラ10は、図4に実線で示すように中間転写体9上にカラー可視画像を多重転写している間は、カラー可視画像を乱さぬように下方に離開している。そして、上記中間転写体9上に4色のカラー可視画像が形成された後は、このカラー可視画像を転写材2に転写するタイミングに合わせてカム部材(不図示)により転写ローラ10を図示点線で示す上方に位置させる。これにより転写ローラ10は転写材2を介して中間転写体9に所定の押圧力で圧接すると共に、バイアス電圧が印加され、中間転写体9上のカラー可視画像が転写材2に転写される。
定着部25は、転写2を搬送させながら、転写されたカラー可視画像を定着させるものであり、転写材2を加熱する定着ローラ26と転写材2を定着ローラ26に圧接させるための加圧ローラ27とを備えている。定着ローラ26と加圧ローラ27とは中空状に形成され、内部にそれぞれヒータ28、29が内蔵されている。即ち、カラー可視画像を保持した転写材2は定着ローラ26と加圧ローラ27とにより搬送されると共に、熱及び圧力を加えることによりトナーが表面に定着される。
可視画像定着後の転写材2は、その後排紙ローラ34、35、36によって排紙部37へ排出して画像形成動作を終了する。
クリーニング手段は、感光ドラム15上及び中間転写体9上に残ったトナーをクリーニングするものであり、感光ドラム15上に形成されたトナーによる可視画像を中間転写体9に転写した後の廃トナーあるいは、中間転写体9上に作成された4色のカラー可視画像を転写材2に転写した後の廃トナーは、クリーナ容器14に蓄えられる。
印刷される転写材(記録用紙)2は、給紙トレイ1から給紙ローラ3により取り出されて中間転写体9と転写ローラ10との間に挟まれるようにして搬送されてカラートナー画像が記録され、定着部25を通過してトナー像が定着される。片面印刷の場合には、案内38が上方の排紙部に記録用紙を導くように搬送経路を形成するが、両面印刷に対しては、下方の両面ユニットに導くように経路を形成する。
両面ユニットに導かれた記録用紙は、搬送ローラ40によりトレイ1の下部(二点鎖線で示す搬送経路)に一旦送り込まれた後に逆方向に搬送され、両面トレイ39に送られる。両面トレイ39上では、用紙は給紙トレイ1に載置された状態とは表裏が逆になり、また搬送方向について前後が逆になっている。この状態で再びトナー像の転写、定着を再度行うことで、両面印刷ができる。
<印刷用中間データの保存処理>
図5は、スプーラ302における、スプールファイル303の生成におけるページ単位保存ステップの処理をフローチャートで示したものである。
まずステップ501では、スプーラ302は、アプリケーションからグラフィックエンジン202を介して印刷要求を受け付ける。アプリケーションにおいては、図8に示すような印刷設定を入力するダイアログが表示され、このダイアログから入力された印刷設定がプリンタドライバよりスプーラ303に渡される。図8に示す設定入力ダイアログにおいては、801のような1物理ページにレイアウトする論理ページの数を決定するような設定項目等を含んでいる。
ステップ502では、スプーラ302は、受け付けた印刷要求がジョブ開始要求か判定し、もしステップ502でジョブ開始要求であると判断した場合には、ステップ503に進み、スプーラ302は、中間データを一時的に保存するためのスプールファイル303を作成する。続いて、ステップ504では、スプーラ302は、スプールファイルマネージャ304へ印刷処理の進捗を通知し、続くステップ505でスプーラ302のページ数カウンタを1に初期化する。ここで、スプールファイルマネージャ304においては、印刷が開始されたジョブに対するジョブの情報や加工設定などをスプールファイル303より読み込み、記憶する。
一方、ステップ502において、ジョブ開始要求ではなかったと判断した場合には、ステップ506に進む。
ステップ506では、スプーラ302は、受け付けた要求がジョブ終了要求かどうかの判別を行う。ジョブ終了要求でないと判断した場合には、ステップ507に進み、改ページかどうかの判別を行う。もしもステップ507で改ページであると判断した場合には、ステップ508に進み、スプールファイルマネージャ304へ印刷処理の進捗を通知する。そしてページ数カウンタをインクリメントして、中間コードを格納しているページ描画ファイルを閉じ、次のページ描画ファイルを生成する。
ステップ507において、受け付けた印刷要求が改ページではないと判断した場合には、ステップ509に進み、スプーラ302は、ページ描画ファイルへの中間コードの書き出しの準備を行う。
次に、ステップ510では、印字要求をスプールファイル303へ格納するため、スプーラ302は、印字要求のDDI関数の中間コードへの変換処理を行う。ステップ511では、スプーラ302は、ステップ510において格納可能な形に変換された印刷要求(中間コード)をスプールファイル303のページ描画ファイルへ書き込む。その後、ステップ501に戻り、再びアプリケーションからの印刷要求を受け付ける。この一連のステップ501からステップ511までの処理を、アプリケーションよりジョブ終了要求(End Doc)を受け取るまで続ける。また、スプーラ302は、同時にプリンタドライバ203からDEVMODE構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイルとしてスプールファイル303に格納する。一方、ステップ506にて、アプリケーションからの印刷要求がジョブ終了であると判断した場合には、アプリケーションからの印刷要求は全て終了であるので、ステップ512に進み、スプールファイルマネージャ304へ印刷処理の進捗を通知し、処理を終える。
<スプールファイルの生成>
図6は、スプールファイルマネージャ304における、スプールファイル303生成プロセスと以降説明する印刷データ生成プロセスの間での制御の詳細をフローチャートで示したものである。
ステップ601では、スプールファイルマネージャ304は、スプーラ302あるいはデスプーラ305からの印刷処理の進捗通知を受け付ける。
ステップ602では、スプールファイルマネージャ304は、もし進捗通知が前述のステップ504において通知されるスプーラ302からの印刷開始通知であるかどうか判定し、もしそうであればステップ603へ進み、印刷の加工設定をスプールファイル303から読み込み、ジョブの管理を開始する。一方、ステップ602において、スプーラ302からの印刷開始通知でなければステップ604へ進み、スプールファイルマネージャ304は、進捗通知が前述のステップ508において通知されるスプーラ302からの1論理ページの印刷終了通知であるかどうか判定する。ここで1論理ページの印刷終了通知であればステップ605へ進み、この論理ページに対する論理ページ情報を格納する。そして、続くステップ606では、この時点でスプールが終了したn論理ページに対して、1物理ページの印刷が開始できるかを判定する。ここで、印刷可能である場合はステップ607へ進み、印刷する1物理ページに対して割り付けられる論理数から物理ページ番号を決定する。
物理ページの計算については、例えば、加工設定が1物理ページに4論理ページを配置するような設定の場合、第1物理ページは第4論理ページがスプールされた時点で印刷可能となり、第1物理ページとなる。続いて、第2物理ページは第8論理ページがスプールされた時点で印刷可能となる。
また、論理ページ数の総数が1物理ページに配置する論理ページ数の倍数でなくても、ステップ512におけるスプール終了通知によって1物理ページに配置する論理ページが決定可能である。
そして、ステップ608では、図10に示すような形式で、印刷可能となった物理ページを構成する論理ページ番号と、その物理ページ番号などの情報がジョブ出力用設定ファイル(物理ページ情報を含むファイル)に保存され、物理ページ情報が1物理ページ分追加されたことがデスプーラ305に通知される。その後ステップ601に戻り、次の通知を待つ。本実施例においては、印刷データ1ページ、即ち1物理ページを構成する論理ページがスプールされた時点で印刷ジョブのスプールが全て終了していなくても印刷処理が可能である。
一方、ステップ604において、進捗通知がスプーラ302からの1論理ページの印刷終了通知でなかった場合ステップ609へ進み、スプールファイルマネージャ304は、前述のステップ512において通知されるスプーラ302からのジョブ終了通知であるかどうかを判定する。ここで、ジョブ終了通知である場合、前述のステップ606へ進む。一方、ジョブ終了通知でない場合、ステップ610へ進み、スプールファイルマネージャ304は、受け付けた通知がデスプーラ305からの1物理ページの印刷終了通知であるかどうか判定する。ここで、1物理ページの印刷終了通知である場合はステップ612へ進み、加工設定の印刷が全て終了したかを判定する。印刷終了した場合、ステップ612へ進み、デスプーラ305に印刷終了の通知を行う。一方、加工設定に対する印刷がまだ終了していないと判断した場合、前述の606へ進む。本実施例におけるデスプーラ305は印刷処理を行う単位として1物理ページ数を想定している。また、ステップ608では、1物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしているが、再利用不要な場合には、共有メモリ等高速な媒体を使用し、1物理ページ単位で次々と上書きする実装にして、速度とリソースを節約するような実装形式であってもよい。また、デスプールの進捗よりもスプールの進捗の方が早い場合や全ページのスプール終了後からデスプールが開始されるような場合には、ステップ608で1物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じて、複数物理ページもしくは全物理ページが印刷可能になったという通知内容にして、通知回数を節約することが可能である。
ステップ610において、通知がデスプーラ305からの1物理ページの印刷終了通知でないと判断された場合、ステップ613へ進み、スプールファイルマネージャ304は、デスプーラ305からの印刷終了通知かどうかを判定する。通知がデスプーラ305からの印刷終了通知と判定された場合、ステップ614へ進み、スプールファイルマネージャ304は、スプールファイル303の該当するページ描画ファイルの削除を行って処理を終える。ただし、一方、デスプーラ305からの印刷終了通知でなかった場合はステップ615へ進み、その他通常処理を行い、次の通知を待つ。
<スプールファイルの出力>
図7は、デスプーラ305における、印刷データの生成プロセスの詳細をフローチャートで示したものである。
デスプーラ305は、スプールファイルマネージャ304からの印刷要求に応じて、スプールファイル303から必要な情報(ページ描画ファイルおよびジョブ設定ファイル)を読み出して印刷データを生成する。生成された印刷データにおけるプリンタへの転送方法については図3で説明した通りである。
印刷データの生成では、まず、ステップ701において、前述のスプールファイルマネージャ304からの通知を入力する。続くステップ702では、デスプーラ305は、入力された通知がジョブの終了通知かどうか判定し、ジョブ終了通知であるならばステップ703へ進み、終了フラグを立て、ステップ705へ進む。一方、ステップ702においてジョブ終了通知でない場合は、ステップ704に進み、前述のステップ608における1物理ページの印刷開始要求が通知されたかどうか判定する。ステップ704において開始要求と判定されなかった場合は、ステップ710へ進み、その他エラー処理を行い、ステップ701へ戻り次の通知を待つ。一方、ステップ704において1物理ページの印刷開始要求と判定された場合は、ステップ705へ進み、デスプーラ305は、ステップ704で通知を受けた印刷処理可能な物理ページのIDを保存する。続くステップ706では、デスプーラ305は、ステップ705で保存した物理ページIDのすべてのページに関して印刷処理が済んでいるかどうか判定する。ここで全物理ページの処理が済んでいる場合は、ステップ707へ進み、前述のステップ703で終了フラグが立てられているのか判定する。終了フラグがたっている場合は、ジョブの印刷が終了したとみなし、デスプーラ305の処理終了の通知をスプールファイルマネージャ304に通知し、処理を終える。ステップ707で、終了フラグが立っていないと判定された場合は、ステップ701へ戻り次の通知を待つ。一方、ステップ706で、印刷可能な物理ページが残っていると判定された場合には、ステップ708へ進み、デスプーラ305は、保存された物理ページIDから未処理の物理ページIDを順に読み出し、読み出した物理ページIDに対応する物理ページの印刷データ生成に必要な情報を読み込み、印刷処理を行う。印刷処理はスプールファイル303に格納された印刷要求命令をデスプーラ305においてグラフィックエンジン202が認識可能な形式(GDI関数)に変換し、転送する。本実施例のような、複数論理ページを1物理ページにレイアウトするような加工設定(以下Nページ印刷)については、このステップで縮小配置を考慮にいれながら変換する。必要な印刷処理が終えたならば、続くステップ709において1物理ページの印刷データ生成終了の通知をスプールファイルマネージャ304に対して行う。そして再びステップ706へ戻り、ステップ705で保存しておいた印刷可能な物理ページIDすべてについて印刷処理を行うまで繰り返す。
以上が、ディスパッチャ301、スプーラ302、スプールファイルマネージャ304、デスプーラ305を用いた印刷処理の流れである。上記のように処理することにより、スプーラ302が中間コードを生成してスプールファイル303に格納するタイミングでアプリケーション201が印刷処理から開放されるので、プリンタドライバ203に直接出力するよりも短時間で済む。また、スプールファイル303にプリンタドライバの印刷設定を踏まえた中間ファイル(ページ描画ファイル、ジョブ設定ファイル)として一時保存しているので、実際に印刷されるべき印刷プレビューをユーザに認識させることや、複数のアプリケーションにより生成した印刷ジョブの結合や並び替えが可能となり、印刷設定の変更を行う場合にも、再度アプリケーションを立ち上げて印刷をすることなしにユーザに行わせることを可能とする。
ここで、スプーラ302を用いた印刷処理において、デスプーラ305によりグラフィックエンジン202への印刷要求時にジョブ出力用設定ファイルが生成されるが、プレビューやジョブ結合等を行う場合もジョブ出力用設定ファイルが生成される。ジョブ出力用設定ファイルは、単体ジョブの場合はジョブ設定ファイルと同等のものであり、結合ジョブの場合は複数のジョブ設定情報に基づいて生成されるものである。ここでジョブ出力用設定ファイルについて説明する。
<ジョブ出力用設定ファイルの構成>
図10は、ステップ608において、スプールファイルマネージャ304が生成する印刷可能となった物理ページを構成する情報を保存しているジョブ出力用設定ファイルの例を示す。フィールド1001は、ジョブを識別するためのIDで、本情報を保存しているファイル名や共有メモリの名称という形で保持することも可能である。フィールド1002はジョブ設定情報である。ジョブ設定情報には、グラフィックエンジン202に対してジョブの印刷を開始するために必要な構造体、Nページ印刷の指定、ページ枠などの追加描画の指定、部数、ステイプルなどのフィニッシング指定など、1つのジョブに対して1つしか設定できない情報が含まれている。ジョブ設定情報1002には、ジョブに対する機能に応じて必要なだけ情報が保存される。フィールド1003はジョブの物理ページ数で、本フィールド以降、この数の分だけ物理ページ情報が保存されていることを示す。本実施例では、印刷可能な物理ページ数を通知する方式であるので、このフィールドは無くても動作可能である。これ以降、フィールド1004から最後までフィールド1003の数だけ物理ページ情報が格納される。物理ページ情報については図12で説明する。
図11は、図10のフィールド1002に図示されたジョブ設定情報の一例である。フィールド1101は全物理ページ数である。フィールド1102は、全論理ページ数である。フィールド1101および1102は、印刷データに追加して、ページ数などを付加情報として印刷する場合などに利用する。印刷が続いている際には、両フィールドは暫定的な値、もしくは、印刷が終了するまでスプールファイルマネージャ304は印刷可能な物理ページの情報の作成を延期する。フィールド1103は本印刷ジョブを何部印刷するかを指定する部数情報である。フィールド1104は、フィールド1103で複数部印刷する設定の場合、部単位で印刷するかどうかの指定である。フィールド1104はステイプル、パンチ、Z折などのフィニッシング情報で、プリンタ本体もしくは外部にフィニッシャーがある場合に指定される。フィールド1106は付加印刷情報で、ページ枠などの飾り、日付などの付加情報、ユーザ名、ページ数、ウォーターマーク印刷等、ジョブに対して付加する情報が保存される。機能が増えるに従って本ジョブ設定情報に含まれるフィールドの数も増加し、例えば、両面印刷が可能な場合は、両面印刷の指定を保存するフィールドが追加される。
図12は、図10のフィールド1004に図示された物理ページ情報の一例を示す。最初のフィールド1201は物理ページ番号で、印刷順序の管理や、物理ページ番号を追加印刷する際に使用される値である。フィールド1202は物理ページ設定情報で、物理ページ毎にレイアウトやカラー・モノクロの指定が可能である場合、レイアウトやカラー・モノクロの設定が保存される。フィールド1203は本物理ページに割り付けられる論理ページ数で、1物理ページに4ページを割り付ける場合には4もしくは4ページ印刷を示すIDが保存される。フィールド1204以降はフィールド1203で指定された数だけ論理ページの情報が保存される。アプリケーション201から印刷されたページ数によっては、1203で指定されるページ数よりも実際のページデータ数が少なくなる場合がある。その場合には、論理ページ情報に空ページを示す特別なデータを保存して対応する。
図13は、1202の物理ページ設定情報の例である。フィールド1301は物理ページ上への論理ページの配置順で、Nページ印刷で、物理ページ上に論理ページを配置する順番(左上から横へ、左上から下へ等)の指定が保存されている。システムによっては、配置順ではなく、フィールド1204以降の論理ページ情報の順番をページ番号順ではなく、配置順に応じた順序で配することで1301の設定を代用する場合もある。フィールド1302は両面印刷の表・裏の情報で、例えば綴じ代を表裏でそろえる際に使用される。フィールド1303はカラーページかモノクロページかの指定で、プリンタがモノクロモードとカラーモードを持つ場合、カラーページとモノクロページが混在する文書で、カラーページをカラーモードで、モノクロページをモノクロモードで印刷したい場合などに使用される値である。この情報を持つことにより、オートカラーモードとして、ページ単位にカラープリンタで処理を変更することが可能となる。つまり、カラーページは、中間転写体(中間転写ドラム、中間転写ベルト)もしくは転写体(転写ドラム、転写ベルト)がデバイスカラーの数分、YMCKなら4回転し、モノクロページは、ブラックだけ1回転することにより転写制御することを可能とする。フィールド1304は付加印刷情報で、物理ページに対して、ページ数や、日付などの付加情報を印刷する場合に使用される。物理ページ設定情報も、システムの機能に応じてフィールドが追加される。
図14は、1204で示された論理ページ情報の一例を示す。フィールド1401は論理ページのIDで、このIDを利用して、スプールファイル303から論理ページに対応するページ描画ファイルの中間コードを参照する。このIDを利用して論理ページの中間コードへアクセス可能であれば良く、ファイルやメモリポインタであっても、論理ページを構成する中間コード自身が入っていてもよい。フィールド1402は論理ページ番号で論理ページ番号を付加情報として印刷する場合や、論理ページIDの補助情報に使用される。フィールド1403のフォーマット情報には、論理ページ単位で指定可能である各種設定項目が保存される。例えば、ページ枠などの付加印刷情報、拡縮率などの論理ページ単位に指定される各種設定の情報が保存される。また、必要であれば、論理ページ単位のカラー・モノクロ情報などの論理ページに対する属性情報を保存する事も可能である。逆に、論理ページ単位で設定を切りかえる事や論理ページ単位での属性情報が不要であるようなシステムでは、フィールド1403は不要である。
ジョブ出力用設定ファイルは、上記のように構成されている。なお、ジョブ設定ファイルもほぼ同様であり、印刷体裁(片面、両面、製本印刷)、印刷レイアウト(Nup、ポスター印刷)、付加情報(ウォーターマーク、日付、ユーザ名の付加)、部数、用紙サイズ情報がジョブとして有しており、物理ページ毎に、論理ページの配置順、両面印刷の表面か、裏面か、カラーモード等から構成されている。
更に、図3では、これまで説明した拡張システムに加えて、ジョブの設定変更機能を持つ設定変更エディタ307を配した例を示している。本実施例ではジョブの設定内容は、単体ジョブは、ジョブ設定ファイルに、また結合ジョブは、図10に示したジョブ出力用設定ファイル中に含まれており、中間コードを保存しているページ描画ファイル303とは独立しているため、ジョブ出力用設定ファイルを作り変えることでジョブの設定変更が可能である。設定変更エディタ307は単独で、あるいはスプールファイルマネージャ304と連携して、ジョブ出力用設定ファイルを作り変え、あるいは、一部を書き換えることでジョブの設定変更機能を実現している。
<設定変更の処理手順>
図15は、設定変更エディタ307におけるジョブ設定変更処理プロセスの詳細をフローチャートで示したものである。
まずステップ1501では、設定変更エディタは、ジョブ設定ファイルもしくはジョブ出力用設定ファイルを読み込む。ジョブ出力用設定ファイルはプレビューア305、デスプーラ303が読み込むものと同じファイルである。次に、ステップ1502へ進み、読み込んだ結果を、ユーザに表示する。ステップ1503で、図18に示したようなユーザインターフェイス上で、ユーザとの対話を行い、前述したメニューの指定等により設定内容を変更する。このステップは、対話形式でなく、ファイルなどに書きこまれた設定変更の内容に応じて変更するバッチ形式でもよい。次にステップ1504へ進み、ステップ1501で設定変更エディタは、最初に読み込んだ内容と、現在指定されている設定内容に変更があったかどうかの判定を行う。設定内容に変更が合った場合は、ステップ1505へ進み、新規のジョブ出力用設定ファイルを生成し、変更があったことをスプールファイルマネージャに通知して終了する。ステップ1505で、変更がないと判定された場合は、変更がなかったことをスプールファイルマネージャに通知して終了する。このように新規のジョブ出力用設定ファイルを生成するが、図18のユーザインターフェイス画面において、「OK」ボタンが選択されることにより、新規のジョブ出力用設定ファイルが有効となり、古いジョブ出力用設定ファイルは削除される。また、ジョブ出力用設定ファイルからの変更ではなく、単体ジョブのジョブ設定ファイルの場合は削除せずに保存しておく。また、図18の画面で「初期状態に戻す」ボタンが選択された場合は、新規のジョブ出力用設定ファイルを削除し、古いジョブ出力用設定ファイルが有効となり、表示に反映させる。本実施例では、設定変更エディタ307を別モジュールとして説明しているが、単にスプールファイルマネージャ304のユーザインターフェイスの一部であってもよい。設定変更エディタ307で実際に変更内容をジョブ出力用設定ファイルに書きこまずに、設定変更の内容のみをスプールファイルマネージャ304へと通知するだけで、実際のジョブ出力用設定ファイルの変更はスプールファイルマネージャ304側で行う実装形式でもよい。
図3では、更に、複数印刷ジョブを結合し、一つの印刷ジョブとして印刷する拡張システムが図示されているが、結合ジョブをデスプール・プレビューするための拡張について説明する。
通常、中間形式のスプールファイル303はジョブ単位で作成される。単独ジョブの場合は、処理対象ジョブファイル中の各論理ページの中間コードを順に読み出して処理を行うので、フィールド1401の論理ページIDは、各論理ページがファイルのどこに位置しているのかを示す相対あるいは絶対オフセットで実現可能である。結合ジョブの場合はフィールド1401のジョブIDから、スプールファイルと、そのジョブに属するページ情報を特定する必要がある。本実施例では、スプールファイルを識別するIDを論理ページIDに付加することで、スプールファイルを特定する方式とする。この場合、主な変更点はフィールド1401のみで済む。スプールファイルが識別できれば、ページ部分の読み込みは単独ジョブの処理と同じロジックで処理することが可能であるからである。また、スプールファイルが各論理ページ毎に別ファイルの形で保存されている場合は、論理ページのファイル名をそのままフィールド1401の論理ページIDとする実装形もある。
<ストア処理時のプレビュー表示>
次に、前述したように中間データ及びジョブ出力用設定ファイルとして保存された印刷ジョブに基づいて印刷プレビュー画像を表示する手順について説明する。利用者は、アプリケーションプログラムからの印刷時に、図9のように印刷ジョブのストア処理を指定することで、図5の手順によって中間コードとジョブ出力用設定ファイルとにより定義される印刷ジョブを作成させることができる。この結果、図16のように、現在格納されている印刷ジョブのリストが表示される。利用者は印刷ジョブりストから所望の印刷ジョブを指定して、印刷ジョブの編集、結合、すでに結合されているジョブへの印刷ジョブの追加、結合されたジョブ内におけるの印刷ジョブの順序変更などの操作を行うことができる。
この際、印刷ジョブをリストから指定して編集や結合等の操作をボタンやメニューなどから指定すると、図18に示したようなジョブ全体にわたる印刷プレビュー画面が表示される。なお、この印刷プレビュー画面は、通常のアプリケーションなどで用意されているプレビュー画面などのように、ページ単位で表示するものと異なり、単一の、あるいは結合された印刷ジョブ全体にわたって、ページのつながりなど、ページ間の関係についてもプレビュー表示できる。
図19は、アプリケーションプログラム等で作成したデータを、ストア指定をして印刷させた場合の手順である。図9の画面で出力先としてメニュー901から「ストア」を選択しておき、印刷させせると、図9の手順が実行される。まず、ステップS1901においてスプーラを起動し、中間データおよびジョブ出力設定ファイルを生成して格納する。「ストア」が指定された場合には、スプーラは印刷開始をスプールマネージャに対して指示せず、中間データは印刷されずに保持される。この状態の印刷ジョブを、本実施形態ではストアされた印刷ジョブと呼ぶことにする。
そして、ステップS1901で中間データに変換されて保持されている印刷ジョブを、すでにストアされている印刷ジョブリストにステップS1902において追加する。ただし、本実施形態では、ストアされた印刷ジョブは、ストアされた印刷ジョブを管理するためのプログラム(図3のプレビューア306および設定変更エディタ307)の実行中だけ保持され、その実行を終了するとストアされた印刷ジョブは消去される。しかしながら、いったんストアした印刷ジョブは、それを積極的に削除するまでは保持するようにしてもよい。
ストアされた印刷ジョブのリストに新たな印刷ジョブが追加されると、ステップS1903において、図16に示すようにそれらジョブのリストを表示する。なお、中間データとして保持されている印刷ジョブを保持されているジョブ、その中から、結合あるいは編集のために選択されたジョブを対象ジョブと呼ぶことにする。
<ジョブリストの表示>
図20は図19のステップS1903の詳細を示すフロー図である。なお、図20の手順は、ジョブリスト中からジョブが選択された場合など、表示すべき状態に変更が生じる都度実行され、ジョブリスト表示が更新される。
まず、ステップS2001において、複数のジョブが選択されているか判定する。否の場合にはステップS2002において選択されているジョブがあるか判定する。選択されているジョブがある場合には、そのジョブを注目ジョブとし、また、編集ボタンをイネーブルにする。編集ボタンは、図16におけるボタン1608である。図16はまさに単一のジョブが選択された状態であり、編集ボタンがイネーブルになっている。
一方、選択されているジョブがない場合には、ステップS2004において、最後に選択されていたジョブを注目ジョブとする。最後に選択されていたジョブがなければ、すなわち、最初にジョブリストを表示する場合にはジョブリストの先頭のジョブを注目ジョブとする。
注目ジョブが決定されると、ステップS2005において、その注目ジョブと結合できないジョブを保持されているジョブ全体から探し出し、それが注目ジョブと結合できない旨と結合できない理由とを所定のメモリ領域等に設定する。なお、注目ジョブと結合できないジョブとは、例えば、指定された解像度や1画素あたりのビット数、あるいはグラフィックモードのいずれかが注目ジョブとは異なるジョブである。
最後に、ステップS2006において、ジョブリストを表示する。この際、ステップS2005で結合できない旨およびその理由が設定されたジョブについては、そのジョブを表示した欄に、注目ジョブと結合できない旨を示すシンボルとその理由とが表示される。図26はこの様子を示している。選択されたジョブ2601に対して、ジョブ2602は結合可能であるが、ジョブ2603以下は結合できないために、その旨示すシンボルが左側に、結合できない理由がコメント欄に表示されている。
一方複数のジョブが選択されている場合には、ステップS2007において選択されたジョブ同士が結合可能か判定され、結合可能であればステップS2008において結合ボタン(図16のボタン1606)がイネーブル(操作可能状態)にされ、ステップS2006に進んでジョブリストが表示される。
また、選択されたジョブすべてを結合できない場合には、ステップS2009において、保持されているジョブすべてについて結合できない旨が設定される。ステップS2006では、ステップS2009において結合できない旨設定されたジョブについて、その旨を示すシンボルやコメントを表示する。
このようにして、ジョブリストが表示される。前述したように、図20の手順はジョブリストからジョブが選択される都度再実行されるために、選択されたジョブに応じて、結合の可否や、編集操作や結合操作の可・不可を利用者に提示することができる。
<編集・結合操作>
表示されたジョブリストからジョブが選択された状態で、編集ボタン(選択ジョブが単一の場合)や結合ボタン(選択ジョブが複数の場合)が操作されると、図21の手順が遂行される。なお、結合不可能なジョブが選択されている場合には結合操作はできない。
まずステップS2101において、操作が結合操作であるか判定される。結合操作であれば、ステップS2102において、選択されているジョブ出力用設定ファイルを仮に結合する。この操作は確定されていないので、仮のジョブ出力用ファイルを作成してそれを使用する。なお、ジョブの結合時には、各ジョブの設定をそのまま用いず、一部の設定を変更して統一している。
統一の仕方としては、所定の設定に変更したり、先頭のジョブに他のジョブが合わせたり、クリアしたりしている。例えば、結合されるジョブの印刷方法の指定は、それらがすべて両面印刷の場合以外には片面印刷に統一される。また、綴じ代やステイプル指定、正順/逆順の別、フェイスアップ/ダウンの別、インサータの使用などは先頭のジョブに合わせられる。部数や製本指定などはクリアされる。
そして、ステップS2102で結合されたジョブ出力用設定ファイル、あるいは編集の対象として選択されたジョブのジョブ出力用設定ファイルを用いて、ステップS2103においてプレビュー表示を実行し、ステップS2104で対象ジョブ一覧を表示する。プレビュー画面には、編集あるいは結合の対象となるジョブに含まれる全ページのサムネール画像がそのレイアウトに従って表示される。また、対象ジョブ一覧には、編集あるいは結合操作の対象となっているジョブの名称やページ数、ページレイアウトが一覧表示される。この一覧表示において、結合操作の場合にはジョブの順序を所望の順序に入れ替えることができるし、所望のジョブを対象ジョブ群から削除することもできる。このように対象ジョブを操作した場合には、図21の手順は再実行され、プレビュー画面および対象ジョブ一覧が再表示される。
また、対象ジョブの印刷設定を変更することも可能である。変更できる項目は、ジョブ出力用設定ファイルの編集によって変更することができる項目である。中間データを操作する必要がある項目は、本実施形態では操作させていない。しかしながら、処理時間や必要な資源などを考慮しなければ、すべての項目を再設定させることもできる。本実施形態のシステムで再設定可能な項目としては、印刷方法(片面/両面/製本)や、部数、ステイプルの有無などがある。
<対象ジョブの印刷プレビュー表示>
図22は、図16に示した印刷ジョブのリスト表示画面において、利用者がジョブ編集や結合等、所望の操作を指示した場合に、図18のようなジョブプレビュー画面を表示する手順を示すフローチャートであり、図21のステップS2103の詳細に相当する。
図22において、まず、ステップS2201で対象ジョブそれぞれのレイアウト設定を取得する。レイアウト設定項目には、印刷方法、ページレイアウト、ページ枠、フィニッシング、給紙切り替え等の項目があるが、これら情報は図10乃至図13に示したジョブ出力用設定ファイルから取得される。
ここで、レイアウト設定項目について簡単に説明しておく。設定される項目の例を挙げると次のようなものがある。
(1)印刷方法:片面/両面/製本のいずれかが指定される。片面および両面は周知の通りである。製本は、印刷された用紙を2つ折りにしてとじ合わせるだけで本の体裁になるように印刷する方法である。製本印刷が指定された場合には、2つ折りにする単位として、1部分まとめて2つ折りにする方法と、所定枚数を指定し、所定枚数ごとに2つ折りにしてからそれを重ね合わせてとじる方法とが指定できる。この2つ折りにする単位を製本単位と呼ぶ。
製本印刷の場合、例えば2枚の出力用紙を重ね合わせて2つ折りにすることで製本するために、アプリケーションで作成された論理ページ順に印刷することはできない。製本された状態で右乃至左から(これは別途指定される)ページを繰ることで、論理ページ順にページが配置されるよう、予め論理ページの出力順、すなわち、どの物理ページにどのようにどの論理ページを配置するかを決定しておく。論理ページの順序は、排紙がフェイスアップかフェイスダウンかによっても異なる。
製本印刷は、ページの順序を考えずに形式だけを考えれば両面2アップ印刷に相当するために、論理ページ4ページ分が1枚のシートに印刷される。したがって必要な枚数Sは、S=論理ページ数/4(少数部切り上げ)によって与えられる。例えば排紙方式をフェイスアップ、製本単位をS枚とした場合、第P番目の製本単位の、第Q枚目のシートの表面(初めに印刷される面)には、第(4×(P−1)+2×Q−1)論理ページと第(4×(P−1)+4×S−2×(Q−1))論理ページが、その裏面には第(4×(P−1)+2×Q)論理ページと第(4×(P−1)+4×S−2×Q−1)論理ページが配置される。フェイスアップの場合には、裏面と表面とを入れ替えればよい。
(2)製本開き方向:見開きの方向を示し、上開き、右開き、左開きが指定できる。
(3)製本単位:前述したとおり、2つ折りにする単位を示す。
(4)ページレイアウト:Nアップ印刷と呼ばれる、N論理ページをシートの1面に納めるレイアウトや、ポスター印刷と呼ばれる、1論理ページを複数のシートに分割して印刷するレイアウトを指定できる。
(5)フィニッシング:印刷後の処理を指定できる。例えば、インサータと呼ばれる外付けの装置により、印刷したシートとは別途供給されるシートを表紙として挿入することができる。
(6)給紙切り替え:給紙の仕方を指定する。例えば、中差しと呼ばれる指定を行うと、2つの給紙口を用いて、一方の給紙口から供給されるシートに印刷し、他方の給紙口から供給されるシートを印刷されるシートの間に挿入して排出する。すなわち、2つの給紙口から交互にシートを使用する。
レイアウトとして指定できる項目には以上のようなものがある。
次に、ステップS2202において論理ページ情報が取得される。論理ページとは、アプリケーションプログラムなどで作成されたデータにおけるページであり、Nアップ印刷が指定された場合には、複数の論理ページがひとつの物理ページ、すなわち1枚のシートの片面に印刷されることになる。この論理ページ情報は、図14に示した通りである。
ステップS2203では、ステップS2201およびステップS2202において取得した情報に基づいて、ページテンプレートを描画する。ページテンプレートとは、レイアウトに応じた各物理ページの枠組みであり、指定された用紙サイズや片面/両面/製本の指定、縦長/横長などのレイアウトに対応したものが描画される。ただしポスター印刷が指定されている場合には組み合わせた状態がプレビュー表示されるために、この限りではない。
次にステップS2204で、プレビュー表示される各ページに付されるページ番号を描画する。ここでは、レイアウトに応じて論理ページあるいは物理ページ順にページが付される。これにより、利用者は印刷プレビュー画面上で、レイアウトに応じた正確なページ番号を見ることができる。
ステップS2205では、各ページテンプレートに対応して、論理ページを描画する。ここでは、図10乃至図14に示したジョブ出力用設定ファイルが参照され、ひとつの物理ページ上に、ジョブ出力用設定ファイルに登録された設定に従って論理ページを描画する。描画される論理ページの中間データは、図14に示した論理ページ情報を参照して獲得される。
最後に、ステップS2206において、総ページ数あるいは必要枚数が描画される。総ページ数とは論理ページ数であり、必要枚数とは出力される用紙の枚数である。
(ページテンプレート描画)
図23は、図22のステップS2203の詳細を示すフロー図である。ステップS2301においてレイアウト設定を取得し(かっこ書きなのは、図22のステップS2201でレイアウトを取得しているためである)、ステップS2302,ステップS2303で印刷方法判定する。製本印刷であればステップS2304で製本印刷用のページテンプレートを取得し、両面印刷であればステップS2309で両面印刷用のページテンプレートを取得する。
片面印刷であれば、ステップS2306で中差し印刷であるか判定する。中差し印刷とは、出力される印刷済みの用紙の間に別途供給される用紙を挿入して排出する印刷方法で、例えばオーバーヘッドプロジェクタ用の透過原稿を印刷する場合などに利用される。中差し印刷であれば、中差し印刷用のページテンプレートをステップS2207で取得し、中差し印刷でなければステップS2308で片面印刷用のページテンプレートを取得する。
最後に、ステップS2305で取得したページテンプレートのデータに従ってページテンプレートを描画する。
(ページ番号描画)
図24は、図22のステップS2204の詳細を示すフロー図である。ステップS2401においてレイアウト設定を取得し(かっこ書きなのは、図22のステップS2201でレイアウトを取得しているためである)、ステップS2402,ステップS2403で印刷方法判定する。製本印刷であればステップS2404で製本印刷用にページ番号を描画し、両面印刷であればステップS2406で両面印刷用にページ番号を描画する。片面印刷であれば、ステップS2405で片面印刷用のページ番号を描画する。
(論理ページ描画)
図25は、図22のステップS2205の詳細を示すフロー図である。ステップS2501においてレイアウト設定を取得し(かっこ書きなのは、図22のステップS2201でレイアウトを取得しているためである)、ステップS2502,ステップS2503で印刷方法判定する。製本印刷であればステップS2504で製本印刷用に論理ページを描画し、両面印刷であればステップS2506で両面印刷用に論理ページを描画する。片面印刷であれば、ステップS2505で片面印刷用の論理ページを描画する。なお、論理ページの描画においては、ジョブ出力用設定ファイルおよび論理ページ情報に従って論理ページを描画するために、印刷方法に応じた場合分けを行わないような処理とすることもできる。
<プレビュー表示の詳細>
上述のように、レイアウトの指定に応じて印刷プレビュー画面が表示される。以下ではその詳細について説明する。
(中差し指定時のプレビュー)
印刷方法として片面が指定された場合、複数の給紙口を備えた印刷装置であれば中差しの指定を行うことができる。中差しを指定する画面の例が図37に示されている。図37においては、「Enable Cover Insertion Unit」なるチェックボックスがチェックされており、これによって中差しのフラグ等がセットされ、印刷時および印刷プレビュー時にこのフラグを参照して中差しが実行される。
ページテンプレートを描画する際に、図23のステップS2307では中差し用のページテンプレートを取得している。このテンプレートの例が図38に示されている。このように、中差しが指定されている場合、2枚の用紙が重なった様子を示すページテンプレートが利用され、その上側に論理ページが描画される。
こうして、プレビュー画面上においても、中差しされること、また、中差しがされた結果を確認できる。また、図示していないが、図35と同様、中差しされた用紙を示す画像をポインタで指し示すと、その画像が中差し用紙であることを示す文字列、例えば「中差し用紙」といった文字列が表示される。
<製本印刷時プレビュー表示>
次に、印刷方法として製本印刷が指定されている場合のプレビュー表示の仕方について、その詳細を説明する。
図27、図28、図29は、それぞれ製本印刷時のページテンプレート取得、ページ番号描画、論理ページ描画手順を示すフローチャートである。それぞれ、図23のステップS2304、図24のステップS2404、図25のステップS2504に相当する。
(製本印刷用ページテンプレートの取得)
図27において、ステップS2701でレイアウト設定を取得すると、ステップS2702で製本後の開き方が上開きに設定されているか判定し、上開きであればステップS2704で製本印刷用上開きページのテンプレートを取得する。上開き用のページテンプレートを用いて描画されたプレビュー画面の例が図34(B)に示されている。左側から順に第1ページ、第2,3ページ、という順に表示されている。上開きの製本印刷プレビュー時には、本の体裁は横長になるので、表紙(第1ページ)および裏表紙(第8ページ)は横長のテンプレートとなる。中間は上方向への見開きとなるので、ページ3402のように、水平方向の綴じ目を中心として上下に見開いた状態で表示できるテンプレートが利用される。
また、上開きでない場合、すなわち左右開きの場合にはステップS2703において左右開き用のページテンプレートを取得する。この例は図30に示されている。この場合には、見開きは左右方向になるために、ページ3001のように垂直方向の綴じ目を中心として見開いた上他で表示できるテンプレートが利用される。右開き・左開きの別は、テンプレートでは区別する必要はない。
このようにして取得したテンプレートが、図23のステップS2305で描画される。なお、後述するように表紙インサートが指定されている場合には、表紙はインサータから給紙されるため、印刷の対象にはならないが、プレビュー画面には表紙として表示される。そのために、インサートされる表紙のテンプレートも描画される。
(製本印刷用ページ番号描画)
図28においては、ステップS2801でレイアウト設定を取得すると、ステップS2802で製本後の開き方が右開きに設定されているか判定し、右開きであればステップS2805で製本右開き用のページ番号を描画する。また、右開きでない場合、ステップS2803で左開きが設定されているか判定し、左開きであればステップS2806において製本左開き用にページ番号を描画する。また左開きでない場合には上開きであるから、ステップS2804で製本上開き用にページ番号を描画する。ただし、表紙がインサートされる場合には、インサートされる表紙に対してはページ番号を描画しない。
図30は左開きの場合のページ番号描画例を示す。この場合には左から右へと、ページの進行に従ってページ番号も振られている。図34(A)は右開きの場合のページ番号描画例を示す。この場合には右から左へと、ページの進行に従ってページ番号が振られている。図34(B)は上開きの場合のページ番号描画例を示す。この場合には、各論理ページに対応づけてページ番号を付けるのはスペース的に難しいので、2ページずつまとめて、ページの進行に従ってページ番号が振られている。
(製本印刷用論理ページ描画)
図27,図28でページテンプレートおよびページ番号が描画されると、図29において論理ページの内容が描画される。
図29においては、ステップS2901でレイアウト設定を取得すると、ステップS2902で製本後の開き方が右開きに設定されているか判定し、右開きであればステップS2905で製本右開き用に論理ページを描画する。また、右開きでない場合、ステップS2903で左開きが設定されているか判定し、左開きであればステップS2906において製本左開き用に論理ページを描画する。また左開きでない場合には上開きであるから、ステップS2904で製本上開き用に論理ページを描画する。
製本後に論理ページが指定通り配置されるように、製本印刷時のシートへの論理ページの割付け方は、前述した(図22の説明において述べた)とおり、フェイスアップ/ダウンの指定や製本単位の指定によって変わる。しかしながら、プレビュー画面上では、それらの指定に関係なく、論理ページの順序で、すなわち、製本後にページを繰っていく順序で各論理ページが表示される。ただし、製本単位の指定は、プレビュー画面上で理解できるように表示される。また、表紙インサートの場合には、インサートされる表紙には論理ページは描画されないが、挿入される表紙であることを示すために、ページ枠を示すテンプレートは表示される。これらについては後述する。
図30は左開きの場合の論理ページ描画例を示す。この場合には左から右へと、ページを繰る順序で論理ページが進行する。また、図34(A)は左開きの例であり、最左端を表紙として、右に進行するように論理ページが配置される。図34(B)は上開きの例である。プレビュー画面では、各印刷されるシートは横方向に並べられるために、全体としては上から下への配置はしていないものの、各シートに限れば、上から下へと論理ページが順次配置される。すなわち、左上から右下へとジグサグ上に配置される。
このようにプレビュー表示することで、利用者は製本時のページ配置を確認しやすくなる。すなわち、片面や両面といった通常のレイアウトでは物理ページのプレビューを表示する意味があるが、製本印刷時には、論理ページは物理ページ上に順を追って配置されるわけではないので、物理をプレビューしても出力結果が想像しづらい。このため、製本印刷が指定された場合には、見開きの状態を表示する。また、通常のレイアウトでは総ページ数(総用紙枚数)を表示するが、製本印刷時には、総論理ページ数を表示する。
また、右開き時には、右から左へ、左開き時には左から右へ、上開き時には上から下へ論理ページを並べてプレビュー表示することで、製本印刷の完成形が理解しやすい。
(製本単位の指定)
製本単位の指定に関わらず、プレビュー画面における論理ページの順序は見開きの順序であることは説明した。しかしながら、製本単位の指定によって論理ページの描画において利用されるテンプレートは異なる場合がある。
図31は、全部で8論理ページの文書に対して、印刷された全用紙をまとめて2つ折りにして製本する、全ページ単位の設定が指定された場合のプレビュー画像の例である。画面3101の設定画面で全ページ単位が指定された場合、プレビュー画面3102にように、表紙(第1ページ)および裏表紙(第8ページ)以外はすべて見開きで表示される。
図32は、全部で8論理ページの文書に対して、製本単位を1枚とするN枚印刷(N=1)が指定された場合のプレビュー画像の例である。画面3201の設定画面でN枚印刷が指定された場合、プレビュー画面3202にように、N枚単位で表紙と裏表紙がどのページかわかるように表示される。図32の例では、第1ページから第4ページまでが製本単位となる1枚のシートであり、第5ページから第8ページが次の製本単位となる1枚のシートである。このように、製本単位が指定されると、製本単位ごとに分割されてプレビュー画面が表示される。なお、図33は製本単位として3枚を指定する画面の例である。
この結果、印刷出力前に、分割された製本という出力結果を予想しづらい印刷結果を画面上で確認できる。
(表紙インサート時の論理ページ描画)
上述のように製本印刷時の論理ページは描画されるが、インサータを利用し、表紙をインサートする場合には図29のステップS2904〜S2906における処理においてそのことが考慮される。
図35,36は表紙インサート時のプレビュー画面の例である。論理ページ描画時に、表紙インサート指定がされていると判定されると、挿入される表紙の裏表を白紙のページとして、その次のページから第1論理ページを描画し、引き続き論理ページ順に描画した後、最後に挿入される表紙の裏表が白紙のページとして挿入される。
図35の表示窓3501では、左開きが指定されており、その最初の2ページは挿入される表紙であるので、白紙であり、しかもページ番号も付けられない。また図35においてはカーソルが表紙上にある。この場合にはツールチップによってそれがインサートされる表紙であることが「製本表紙」と表示される。図36の表示窓3601では、左開きが指定されており、カーソルが表紙裏面にある。この場合にはツールチップによって、それがインサートされる表紙の裏面であることが「製本表紙(裏)」と表示される。
図36の表示窓3602においては、裏表紙の部分がプレビュー画面として表示されている。挿入される表紙は2つ折りにすることで裏表紙にもなるので、裏表紙も白紙のページを表示する。この部分にもページ番号は付けられない。
図36の表示窓3603は上開きかつ表紙挿入が指定された場合のプレビュー画面である。この場合にも左開きと同様(右開きも同様)、インサートされる表紙として白紙のページが表示され、それに続いて第1論理ページから描画される。
このように、製本印刷のプレビュー時、インサータから表紙が挿入される設定になっている場合には、表紙のついた形でプレビューを行う。なお、この設定はデバイスのオプション装着状況、インサータの指定と連動する。
これによって、インサータから表紙を挿入する場合にも、実際の出力結果がプレビュー上で確認できる。
以上説明したように、本実施形態の印刷制御方法および装置によれば、ホスト上でスプールされたジョブをプレビューする際、製本印刷が指定されている場合には見開きの状態をプレビュー表示する。このため、製本印刷が指定された場合には、製本後の印刷結果を確認することができる。
また、製本単位の指定に応じて、見開きで表示する単位を変えて表示することで、プレビュー画面において、分割された製本という出力結果を予想しづらい印刷結果を確認できる。
また、製本印刷の「左開き、右開き」あるいは「上開き」の指定に合わせて、見開きの順序でプレビュー表示することで、製本印刷の完成形が理解しやすい。
また、製本印刷のプレビュー時、インサータから表紙が挿入される設定になっている場合には、表紙のついた形でプレビュー表示することで、インサータから表紙を挿入する場合にも、実際の出力結果がプレビュー上で確認できる。
また、デバイスで中差しが差し込まれる設定になっている場合には、プレビュー上でも中差しがなされることを反映した表示を行う。これにより、中差しされること、中差しがどのようになされるのか、がプレビューで確認できる。
[他の実施の形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(複写機、プリンタ、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述の実施形態の機能を実現する図19〜図25及び図27〜図29の手順を実現するプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入或いは接続された機能拡張ユニットのメモリに書き込まれた後、そのプログラムコードをその機能拡張ユニットのCPUなどが実行して前述の実施形態の機能が実現される場合も含まれる。