次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
次に本発明を実施するための最良の形態について図面を参照して説明する。
図1は、本発明の第1実施形態を示す情報処理装置を適用可能な印刷システムの構成を示すブロック図であり、本システムは、本発明の情報処理装置であるホストコンピュータ300と印刷装置150とが通信可能に接続される構成となっている。なお、通信接続形態は、所定のインタフェースによるか、ネットワークによるかは本発明の適用に限定されるものではない。
図1において、ホストコンピュータ300は、CPU1を備えている。CPU1は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて、図形や、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行し、システムバス4に接続される各デバイスをCPU1が総括的に制御する。
また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステムプログラム(以下OS)等が記憶され、ROM3のフォント用ROMあるいは外部メモリ11には、上記文書処理の際に使用するフォントデータ等が記憶され、ROM3のデータ用ROMあるいは外部メモリ11には、上記文書処理等を行う際に使用する各種データが記憶されている。
2はRAMで、CPU1の主メモリやワークエリア等として機能する。5はキーボードコントローラ(KBC)で、キーボード(KB)9や不図示のポインティングデバイスからのキー入力を制御する。6はCRTコントローラ(CRTC)で、CRTディスプレイ(CRT)10の表示を制御する。7はディスクコントローラ(DKC)で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、及びプリンタ制御コマンド生成プログラム(以下、プリンタドライバと記す)等を記憶する外部メモリ11とのアクセスを制御する。外部メモリ11は、ハードディスク(HD)やフレキシブルディスク(FD)等で構成される。
8はプリンタコントローラ(PRTC)で、所定の双方向性インタフェース21を介してプリンタ150に接続されて、プリンタ150との通信制御処理を実行する。なお、CPU1は、例えばRAM2上に設定された表示情報のアウトラインフォントへの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。
また、CPU1は、CRT10上に表示されるマウスカーソル等で指示されたコマンドに基づいて、登録された種々のウィンドウを開き、種々のデータ処理を実行する。これによって、ユーザは、印刷を実行する際、印刷の設定に関するウィンドウを開き、プリンタ150の設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行うことができる。
一方、プリンタ150は、プリンタCPU12を備えている。プリンタCPU12は、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ14に記憶された制御プログラム等に基づいて、システムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。また、このROM13のプログラム用ROMには、CPU12の制御プログラム等が記憶されている。ROM13のフォント用ROMには、上記出力情報を生成する際に使用するフォントデータ等が記憶され、ROM13のデータ用ROMには、ハードディスク等の外部メモリ14を用いないプリンタ150の場合ではホストコンピュータ300上で利用される情報等が記憶されている。
CPU12は、入力部18を介してホストコンピュータ300との通信処理が可能となっており、プリンタ150内の情報等をホストコンピュータ300に通知可能に構成されている。19は前記CPU12の主メモリやワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
なお、RAM19は、出力情報展開領域や、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)や、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータや、エミュレーションプログラム、フォームデータ等を記憶する。さらに、151は操作パネルで、操作のためのスイッチ及びLED表示器等が配されている。
また、前述した外部メモリ14は、少なくとも1個以上備えられ、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。さらに、図示しない不揮発性であるNVRAMを有し、操作パネル151からのプリンタモード設定情報を記憶するようにしても良い。
図2は、図1に示したホストコンピュータ300における典型的な印刷処理に供するモジュール構成を説明する図であり、ホストコンピュータ300には、プリンタ150等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されている。
図2において、アプリケーション201、グラフィックエンジン202、プリンタドライバ203、及びシステムスプーラ204は、外部メモリ11に保存されるファイルとして存在し、オペレーティングシステム(OS)やその他のモジュールによってRAM2にロードされ実行されるプログラムモジュールである。
また、アプリケーション201及びプリンタドライバ203は、FD、CD−ROMあるいは不図示のネットワークを経由して外部メモリ11(HD)に追加することが可能となっている。
外部メモリ11に保存されているアプリケーション201は、RAM2にロードされて実行されるが、このアプリケーション201からプリンタ150で印刷を行う際には、同様にRAM2にロードされることで実行可能となっているグラフィックエンジン202を利用して出力(描画)を行う。
グラフィックエンジン202は、プリンタごとに用意されたプリンタドライバ203を同様に外部メモリ11からRAM2にロードし、アプリケーション201の出力を、プリンタドライバ203を用いてプリンタ150の制御コマンドに変換する。変換されたプリンタ制御コマンドは、OSによってRAM2にロードされたシステムスプーラ204を経てインタフェース21経由でプリンタ150へ出力される仕組みとなっている。
図3は、図1に示したRAM2のメモリマップを説明する図であり、例えば本実施形態における印刷プログラムを含む印刷関連モジュールがホストコンピュータ300上のRAM2にロードされ実行可能となった状態に対応する。
図3において、301は印刷用のアプリケーション、302は空きメモリ、303は印刷関連データ、304は印刷関連プログラム、305はOS、306はBIOSであり、本実施形態における印刷制御プログラムは、印刷関連プログラム304の一部として存在している。このような構成を備える情報処理装置において本実施形態を図4等を参照しながら詳述する。
図4は、本発明に係る情報処理装置の周辺機器システムの構成を説明する図であり、データ処理システムを扱うユーザ490を基準として、ユーザ490は種々の電子機器、例えばPDA400、第1のプリンタ(インクジェットプリンタ401)、第2のプリンタ(レーザビームプリンタ460)、スキャナ462、ノートPC402、ストレージ461、デジタルカメラ403、PC404を操作する環境を備えているものとする。
図4において、ユーザ490が印刷やファイル転送にストレスを感じない伝送路(ネットワーク)が構築されている場合は、プリンタ460がシステム内の外部ストレージ461、スキャナ462の持つ機能を借りれば高機能マルチファンクションデバイスと同等の処理が実現可能となる。しかしながら、各デバイスは、それぞれ分離独立したドライバを介して専用装置として制御されている。
そこで、各リソースを統合するようにプリンタドライバにデバイス登録を行い統合化された1つのUIを提供してMFPシステムとして制御する。
図5は、図1に示したホストコンピュータ300のCRT10上に表示されるUIの一例を示す図である。
図5において、プリンタドライバの操作画面における機器構成グループボックス500に、プリンタのオプションの設定(この例では□両面ユニット、□内蔵HDD)とあわせて、□[周辺デバイスの能力を借用する]チェックボックスCKB1〜CHB3を用意する。このチェックボックスCKB1〜CHB3をONにするとプリンタドライバがプリンタをマルチファンクション化するために必要な周辺デバイスの探索、能力確認と設定を自動的に行う。
先ず、機器構成グループボックス500の[詳細設定…]ボタンBT1を押下すると、手動設定が行える[周辺デバイスの能力借用]ダイアログボックス501がCPU1がプリンタドライバを介して表示制御することによりCRT10上に表示される。
周辺デバイスの能力借用のダイアログボックス501ではプリンタをルートにし代替機能として借用できるデバイスがツリー表示されている。この設定を変更したい場合、デバイスを選択し、ダイアログ501の下部にある[プロパティ]ボタンBT2をおす。[プロパティ]ボタンBT2をおすと各デバイスのプロパティ502が開き設定を行う。
また、ツリー表示内容を更新するときは[更新]ボタンBT3を押下指示する。周辺デバイスの探索が開始され[周辺デバイスの能力探索]メッセージボックス503が開く。そして、探索が完了すると、ダイアログ501のツリー表示内容が更新される。
そして、代替機能としての外部ストレージが発見されれば、プリンタドライバUI上でもストア印刷の設定を有効にする。
図6は、図1に示したホストコンピュータ300のプリンタドライバが管理する代替機能ファイルの一例を示す図である。
図6において、プリンタが代替を必要とする機能を制御プログラムに通知する<代替機能>データ600の構成は、代替機能のカテゴリや各カテゴリの条件をデータとしてまとめたファイルに該当する。
また、本ファイルは、代替要求される機能カテゴリがルート下に併記される構成になっている。この例ではストレージ631やスキャナ641が機能カテゴリに該当する。ストレージ631下にはストレージに関する要求条件がまとめられている。ディスク632下ではサイズ指定633がされている。この例では最小10MBの領域が必要であることを記載している。
なお、この<代替機能>データはプリンタドライバにリソースとして持たせてもよい。プリンタからの動的取得が必須というわけではない。
図7は、本発明に係る情報処理装置における代替機能処理フェーズ動作を説明する図であり、ユーザ700による操作指示と、プリンタドライバ701とプリンタ702との動作を下方に進む時系列ステップにより本処理を説明する。なお、プリンタドライバ701の動作手順は、フローチャートによるステップと同等であり、これらのステップをモジュールとして構成することも本発明の適用範囲である。
図4に示したプリンタ460のように内蔵HDDを持たない場合、PC上のプリンタドライバが探索した外部ストレージ(例えばストレージ461)をマッピングし、ストレージ印刷を行う場合を例として以下説明する。
ユーザ700、プリンタドライバ701、プリンタ702、PC703およびその管理下にあるHDD704がシステム構成要因になる。
まず、代替機能の設定フェーズを説明する。
ユーザ700はプリンタドライバ701のUIを操作して、ステップ(710)で、図5に示したCKB3に対応すべく周辺機能借用をONにする。これにより、プリンタドライバ701に、周辺機能借用指示が入力される。そして、プリンタドライバ701は、周辺機能借用指示が入力されることに応じて、当該プリンタドライバの出力先に設定されているプリンタ702に対して代替機能要求を問い合わせる(711)。代替機能要求とは、他の周辺装置から機能の借用を受けるか否かを問い合わせる要求である。この代替機能要求に応答してプリンタ702からホストコンピュータのプリンタドライバ701に対して機能の借用を受ける旨の代替要求が返信されると(712)、プリンタドライバ701は、代替機能カテゴリと探索条件を考慮しつつ周辺ストレージの探索要求を発行する(713)。ここでは、探索ストレージとしてPC703に問合せが行われている。また、この問合せは、ネットワーク上の複数の探索ストレージに対して行われる。この探索要求に応答して周辺装置であるPC703が探索されたことを示す探索終了通知を発行することで、プリンタドライバ701は検索終了通知を受ける(714)。
また、探索される周辺装置は、PC703に限らず、他のプリンタやスキャナであっても構わない。例えば、代替機能カテゴリとしてストレージが指定され、探索条件としてストア印刷機能対応が指定されている場合は、HDDを備え、かつプリンタからのプルプリント機能(取り出し要求に対して印刷ジョブを送出する機能)に対応したPCやプリンタや複合機MFPが探索され、一方、代替機能カテゴリとしてストレージが指定され、探索条件としてフォーム印刷機能対応が指定されている場合は、HDDを備え、かつフォームデータの登録が行われているプリンタや複合機MFPが探索されることになる。
次に、ユーザ700に対してプリンタドライバ701は探索結果である周辺ストレージの候補の周辺デバイスリスト501を、CRT10上のUI(図5に示すUI参照)上に表示する(715)。
ユーザ700は、その設定に変更の必要があれば、ステップ(716)においてUIの設定を変更するために、使用ストレージを選択し、選択された使用ストレージの指定がプリンタドライバ701に入力される。そして、確定後、プリンタドライバ701は、探索された周辺デバイスであるPC703に対して、代替ストレージHDD704の確保を行い(717)、PC703より確保成功の通知を受ける(718)。ストレージの確保が成功することにより、周辺機能の借用が成功したことになり、プリンタドライバ701は、印刷設定UIを、借用が成功した周辺機能を設定可能な状態に更新して表示する。
次に、ストア印刷の実行フェーズを説明する。
ユーザ700は、任意のアプリケーションから印刷対象の文書を開き、ポインティングデバイスを操作してプリンタドライバ701のユーザインタフェースを介してストア印刷を指示し、印刷実行を指示する。この印刷実行指示に応じて、アプリケーションからプリンタドライバ701に対して、印刷対象の描画命令が入力され、プリンタドライバ701の印刷設定UIから指定されているストら印刷指示も受け付ける(720)。プリンタドライバ701は、アプリケーションが発行した印刷対象の描画命令に基づいて、プリンタ702が解釈可能なプリンタ言語(ページ記述言語:PDL)の印刷データを生成し、かつ、ストア印刷指示を含む印刷ジョブを構築して、プリンタ702へ印刷ジョブを送信する(721)。ここで構築される印刷ジョブは、ストア印刷命令だけでなく、印刷ジョブを格納しておくストレージ先のデバイス(本実施例では、PC703)を指定する情報も含んでいる。
これを受けて、プリンタ702は、プリンタドライバ701が生成した印刷ジョブを受信して解析し、指定されているストレージ先のデバイス指定情報を識別し、識別されたストレージ先のデバイスに対して、印刷ジョブのドキュメントを格納するように、PC703にストア指示を行う(722)。PC703は、ストア指示された印刷ジョブをHDD704に格納すると、ストア完了(ストア済み)をプリンタ702に通知する(723)。これを受けて、プリンタ702は、プリンタドライバ701にストア完了を通知すると(724)、プリンタドライバ701はUIを介してストア完了を表示する(725)。
最後にストア済みドキュメントの取り出しフェーズを説明する。
ユーザ700がプリンタ702の操作部を操作することにより、プリンタ702で印刷可能な印刷ジョブのリストがプリンタ702の操作部に表示され、表示されている複数の印刷ジョブからユーザが印刷したいドキュメントを選択することにより、PC703のHDD704にストアされている印刷ジョブのドキュメントの取り出しが指示される(730)。
これを受けて、PC703は、取り出し指示がなされたドキュメントをHDD704から取り出し、該取り出したドキュメントをプリンタ702に対して送出する(731)。プリンタ703は、PC704から受け取ったドキュメントの印刷ジョブを解析して、既知の技術を用いて印刷処理を行う(732)。そして、該ドキュメントの印刷処理が終了したら、ユーザ700は、プリンタ702上で排紙されている印刷済みドキュメントを得て(734)、処理を終了する。
なお、上述した実施形態においては、ホストコンピュータ300上で動作する印刷プログラムを記録する媒体を外部メモリとしているが、外部メモリとしては、FD、HDドライブ、CD−ROMやICメモリカード等であっても良い。さらに、印刷プログラム単独、もしくはOSやその他のホストコンピュータ300上で動作するプログラムと共にROM3に記録しておき、これをメモリマップの一部と成すように構成し、直接CPU1で実行することも可能である。
また、プリンタ150上で動作するとしている印刷プログラムについてもホストコンピュータ300上で動作する印刷プログラムと同様である。さらに、プリンタ150上で動作する印刷プログラム自身をホストコンピュータ300上で動作させ、ホストコンピュータ300から印刷イメージを図1に示す印刷部I/F16経由で印刷部17に送り、印刷制御システムを構築することも可能である。
なお、CRT10等の表示装置に同一機能となる所定の周辺機器が複数表示された場合に、プリンタドライバは、いずれの周辺機器を利用するのかをユーザに選択させるためのUIを表示する。
また、プリンタドライバは、例えばストレージ装置(ストレージ461)に蓄積される印刷ジョブを設定される所定の消去条件に基づいてジョブ処理終了後、あるいはユーザからの操作指示、あるいはホストコンピュータからのコマンドにより自在に消去することができるように構成されている。
なお、その際、セキュアプリント機能を付加可能としてもよいことはいうまでもない。
[プリンタドライバにおける処理]
図7に示した時系列の処理説明図に基づく、各構成の処理について、フローチャートを用いて以下に説明する。まず、図9を用いて、プリンタドライバ701の処理フローを説明する。
図8、図9は、本発明に係る情報処理装置における第1のデータ処理手順の一例を示すフローチャートであり、図7に示したプリンタドライバ701のデータ処理手順に対応する。なお、S800、S900〜S916、S921〜S926、S931〜S936は各ステップを示し、各ステップは、図1に示したCPU1がRAM2上に印刷関連プログラムをロードして実行することで実現される。
図1に示すようにホストコンピュータ300の外部メモリ11に格納されているプリンタドライバ701は、アプリケーションもしくはOS(オペレーションシステム)からのGUI(グラフィカルユーザインタフェース)呼び出し命令に応じて、図10に示すプリンタプロパティ画面1200を表示する。
図10は、図1に示したCRT10上に表示される第1のプリンタプロパティ画面の一例を示す図であり、例えば、プリンタフォルダからプリンタドライバが選択され、ユーザのマウス操作によりプロパティ表示指示がなされることによりこの画面が表示される。
図10の(a)において、プリンタプロパティ画面1200(簡単にドライバUIとも呼ぶ)は、図5に示した機器構成UI500をより詳細に示したものであるが、同一のUIである。このドライバUI上では、プリンタドライバ701に対応するプリンタ702のデバイス構成を設定することができる。この画面上では、「周辺デバイスの能力を借用する」ことを指定可能なチェックボックス1201を有しており、このチェックボックス1201が指定されることにより、詳細設定ボタン1202が有効になる。
そして、ユーザのマウス操作により詳細設定ボタン1202が押下されると、図10の(b)に示す周辺デバイスの能力借用画面1203がプリンタドライバ701により新たにダイアログ表示される。この能力借用画面1203は、代替機能カテゴリ及び検索の条件を設定するためのプロパティボタン1204と、更新ボタン1205と、検索された代替機能を提供可能なデバイスから能力借用を行うか否かを指定するチェックボックス1206を備えている。
そして、ユーザのマウス操作によりプロパティボタン1204が押下されると、代替機能カテゴリ1207および検索条件1208を設定するための図10の(c)に示すUIがダプリンタドライバ701によりイアログ表示される。
代替機能カテゴリ1207は、例えば、ストレージ機能や、スキャナ機能に相当する。検索条件1208は、例えば、ストレージ機能の場合、ストレージの容量、フォーム印刷機能ある/なし、ストア印刷機能ある/なしとなり、スキャナ機能の場合、カラースキャンする/しない、読み取り解像度の値に相当する。
この代替機能カテゴリおよび検索条件は、図6で示した代替機能ファイルをプリンタドライバ701が読み込むことで図1に示したCRT10上にダイアログ表示される。この図10の(c)に示すダイアログ表示されたUIから、代替機能カテゴリと検索条件をユーザのマウス操作により入力して、能力借用画面1203に戻り、更新ボタン1205をユーザのマウス操作により押下することにより、検索処理が実行される。
まず、プリンタドライバ701は、ステップS800において、入力された指示もしくはイベントがなにを行うためのイベントであるかを判断する。ここで、周辺デバイスの機能借用を行う指示がなされた場合には、ステップS900に進み、周辺機能借用フラグ(図1に示したRAM2上に保持される)を立てて、ステップS901の情報交換処理へ移る。
そして、ステップS902において、プリンタドライバ701は、当該プリンタドライバ701の出力先に設定されているプリンタ702に対して代替機能要求を問い合わせる。ここで、代替機能要求とは、他の周辺装置から機能の借用を受けるか否かを問い合わせる要求である。
この代替機能要求に応答してプリンタ702からホストコンピュータ300のプリンタドライバ701に対して機能の借用を受ける旨の代替要求が返信されると(S903)、プリンタドライバ701は、図10の(c)に示した代替機能カテゴリと検索条件を設定するためのUIを介して、代替機能カテゴリと探索条件を入力し、設定する(S904)。
そして、図10の(b)に示した能力借用UI1203において、更新ボタン1205が押下されることに応じて、ステップS905において、プリンタドライバ701は、設定されている代替機能カテゴリと探索条件とに基づいて、周辺ストレージの探索要求を発行する。この問合せは、図10の(c)に示す代替機能カテゴリ1207で設定されたカテゴリ情報と、検索条件1208で設定された検索条件情報とを含んでおり、ネットワーク上の複数の探索ストレージに対して発行される。そして、ステップS906で機能探索処理へ移る。なお、図10の(c)に示す代替機能カテゴリ1207で設定されたカテゴリ情報と、検索条件1208により、スキャナが指定された場合については、説明を省略する。
そして、ステップS907では、応答のある周辺ストレージを探索する。プリンタドライバ701は、この探索要求に応答して周辺装置から代替機能カテゴリと探索条件に合致することを示す探索終了通知を受け取り、ステップS908で、機能確保処理に移る。
この機能確保処理では、プリンタドライバ701は、探索結果である周辺ストレージの候補の周辺デバイスリスト501を、CRT10上のUI(図5および図10の(b)に示す能力借用UI1203参照)上に表示する。
次に、探索された代替機能について機能確保フェーズについて説明する。
なお、図8に示すフローチャートでは、機能確保フェーズを機能探索後に実施した例を説明している。なお、この実施形態において、検索カテゴリ1207は、ストレージであり、検索条件1208は、ストア印刷する設定がなされているものであるとする。
そして、ステップS909において、プリンタドライバ701は、検索された周辺デバイスが周辺ストレージであるかを判定する。そして、周辺ストレージが探索されたと判断すれば、ステップS911において、プリンタドライバ701は、図10の(b)に示す能力借用UI1203に示されるように、検索された周辺ストレージの候補をデバイスリストとして表示する。
一方、ステップS909で、周辺ストレージが探索されないと判断した場合は、ステップS910において、プリンタドライバ701は、ストレージ候補がないことを表示する。
図10の(b)に示す能力借用UI1203において、検索された周辺デバイスリストから所望の周辺デバイスのチェックボックス1206がチェックされ、ステップS912において、プリンタドライバ701は、使用するストレージや、ストレージ設定の変更について仮確定(仮選択)する。
そして、図10の(b)に示す能力借用UI1203において、OKボタン1209が押下されることに応じて、ステップS913において、プリンタドライバ701は、使用すべく仮確定されている周辺ストレージを有した周辺デバイスに対して、機能確保処理を行う。
そして、ステップS914では、プリンタドライバ701は、機能確保処理を行わせている周辺デバイスと通信することにより、ストレージの領域確保が成功したか否かを判断する。例えば代替ストレージとしてHDD704の領域確保に成功すれば、ステップS916において、プリンタドライバ701は、使用ストレージが確定されたことを示すフラグを「1」に保存し、プリンタドライバ701の印刷設定ユーザインタフェース1200の表示を更新して、ステップS800へ戻る。
一方、ステップS914で、ストレージの確保に失敗したと判断した場合は、ステップS915で、プリンタドライバ701は、失敗メッセージを表示し、使用ストレージをなしとし、ステップS800へ戻る。なお、ストレージの確保に失敗したと判断した場合は、他の周辺ストレージの選択を促してもよい。
なお、機能実行時に実行に先立って機能確保するフローも同様とみなすことができる。また、機能探索および機能確保フェーズはプリンタドライバ701あるいはプリンタ702のどちらでも行うことができる。
次に、プリンタドライバ701に発生するイベントの1つである、ストア印刷の実行フェーズについて図9を参照して説明する。
〔ストア印刷の実行フェーズの処理〕
前述したように、周辺ストレージの機能確保が成功することにより、ストレージ機能確保フラグが「1」に保存(図1に示すRAM2等保存されている)されており、プリンタドライバ701は、このフラグが「1」である場合に、印刷設定ユーザインタフェースの表示を図11の表示画面から図12に示す表示画面に更新する。
図11,図12は、図2に示したCRT10上に表示される第2のプリンタプロパティ画面の一例を示す図であり、例えば、プリンタフォルダからプリンタドライバが選択され、ユーザのマウス操作によりプロパティ表示指示がなされることによりこの画面が表示される。なお、現在ページ設定タブが選択された状態に対応する。
例えば、図11に示されるように、周辺デバイスの能力を借用する前は、印刷設定UI1300の印刷方法メニュー1301は、「印刷」と「編集+プレビュー」の2つの方法が選択可能に表示されているが、周辺デバイスの能力を借用(機能確保)した後は、図12に示されるように、印刷設定UI1300の印刷方法メニュー1302のように、「印刷」、「セキュアプリント」、「保存」、「編集+プレビュー」のように4つの方法が選択可能に表示されることになる。この印刷方法メニュー1302において、「セキュアプリント」が選択指示されることにより、ストア印刷が指示されることになる。
まず、ステップS920において、プリンタドライバ701に対してストア印刷が指示されると、ステップS921で、ストア印刷機能を実行して、ステップS922において、プリンタドライバ701は、前述のステップS913で確保した使用ストレージの確認を行う。ここで、確保できていないと判断した場合は、ステップS927で、機能探索処理と確保処理を再度行い、ステップS923へ進む。
一方、ステップS922で、使用ストレージの確認ができた場合は、ステップS923において、プリンタドライバ701は、アプリケーションから発行された描画コマンド(例えばGDI描画コマンド)に基づいてプリンタ702で解釈可能なページ記述言語形式の印刷ジョブ(プリンタ制御コードを含む)を生成し、ステップS924で、システムスプーラ204を介してプリンタ702へ印刷ジョブを出力する。この印刷ジョブには、ストア印刷指示と、印刷ジョブを格納する周辺ストレージの指定が含まれている。
次に、ステップS925において、プリンタドライバ701は、プリンタ702からストア完了通知を受信したか否かを確認する。後述するように、印刷ジョブのストア処理は、周辺デバイスにて行われるが、完了通知は、印刷ジョブの送信先のプリンタ702から受信することになる。
ここで、プリンタ702からストアの完了通知を受け取らなかった場合は、ステップS926において、プリンタドライバ701は、ストア未完了の旨を示す警告メッセージをCRT10のUI上に表示して、ステップS800へ戻る。
一方、ステップS925で、ストアの完了通知を受けた場合は、ストア印刷に係るプリンタドライバ701の処理は終了して、ステップS800へ戻る。
〔ストア済みドキュメントの取り出しフェーズの処理〕
最後に、ストア済みドキュメントの取り出しフェーズを説明する。
プリンタ702の操作部151を介して操作することでも、ストア済みドキュメントの印刷指示は行えるが、ここでは、プリンタドライバ701から、ストア済みドキュメントの印刷指示を行う場合について説明する。
ステップS931において、プリンタドライバ701がストアドキュメントの取り出しを指示される。例えば、プリンタドライバ701のユーザインタフェース上に図示省略したドキュメント取り出しボタンを設け、そのドキュメント取り出しボタンが押下されることにより、ステップS931で、ストア済みドキュメントの取り出し機能が実行される。
そして、ステップS932において、プリンタドライバ701は、ストアされたドキュメントの取り出し指示を受け付けると、使用するストレージである周辺デバイスが利用可能であるかを確認する。ここで、利用不可能であると判断した場合には、ステップS937で、機能探索及び確保処理を行い、ステップS933へ進む。
一方、ステップS932で、使用ストレージが確認されると、ステップS933において、プリンタドライバ701は、プリンタ702に対して、プリンタ702のために周辺デバイスにストアされているドキュメントのリストを要求し、プリンタ702からドキュメントリストを受け取り、ドキュメントリストを受け取ったプリンタドライバ701は、ドキュメントリストをUI上に表示する。
続いて、ステップS934において、プリンタドライバ701は、CRT10上に表示されているドキュメントリストからプリンタ702に取り出すドキュメントの指示を、ユーザ操作を介して入力し、該入力された特定のストアドキュメントをプリンタ702へ取り出すように取り出し指示を送出する。
次に、ステップS935において、プリンタドライバ701は、プリンタ702からの印刷完了通知を確認して、印刷完了通知を受け取った場合は、ストア済みドキュメントの取り出しフェーズの処理を終了して、ステップS800へ戻り、印刷完了通知を受け取らずに所定時間が経過すると、ステップS936において、ストアドキュメントの取り出し印刷が完了していない旨の警告メッセージをCRT10のUI上に表示して、ストア済みドキュメントの取り出しフェーズの処理を終了して、ステップS800へ戻る。
〔周辺デバイスにおけるストレージ確保処理〕
次に、図12を参照して周辺デバイスであるPC703において、HDD704にストレージ領域を確保する際の処理フローを説明する。
図13は、本発明に係る周辺装置におけるデータ処理手順の一例を示すフローチャートであり、例えば図7に示したPC703によるデータ処理手順に対応する。なお、S1000〜S1009、S1021〜S1026,S1031〜S1037は各ステップを示し、各ステップは、周辺装置のCPUがRAM等上に印刷関連プログラムをロードして実行することで実現される。
イベントが発生すると、ステップS1000で、イベントの種別を確認して、周辺ストレージの探索要求である場合には、ステップS1001において、周辺デバイスであるPC703は、プリンタドライバ701より周辺ストレージの探索要求があると、ステップS1002で、情報交換フェーズに移る。
次に、ステップS1003において、PC703は、プリンタドライバ701へストレージの有無、ストレージ容量、アクセス権を含む情報を返答して、ステップS1000に戻る。
なお、アクセス権は、周辺ストレージの探索要求を行ったプリンタドライバ701が動作するホストコンピュータのユーザ名が用いられる。
続いて、ステップS1000で、プリンタドライバ701より領域確保指示がくると、ステップS1004において、ストレージとしてのHDD704に情報を格納するための領域を確保し、周辺デバイスであるPC703は、ステップS1005で、機能確保フェーズに移り、ステップS1016において、PC703は、プリンタドライバ701からストレージの割り当てや設定を受け付ける。
そして、ステップS1007で、PC703は、ストレージ領域の確保が成功したか否かを判断し、成功したと判断した場合は、ステップS1009において、成功した旨をプリンタドライバ701へ返答して、ステップS1000へ戻る。
一方、ステップS1007で、ストレージ領域の確保が失敗したと判断した場合は、ステップS1008において、失敗した旨をプリンタドライバ701へ返答して、ステップS1000へ戻る。
〔ストア印刷された印刷ジョブのストア処理〕
次に、ストア印刷された印刷ジョブのストア処理の実行フェーズを説明する。
イベントが発生すると、ステップS1000で、イベントの種別を確認して、ストア印刷された印刷ジョブのストア要求である場合は、プリンタドライバ701は、プリンタ702へストア要求された印刷ジョブを送信するため、ステップS1021において、PC703は、プリンタ702からストア要求を受け付け、ストア機能実行フェーズを開始する。
ステップS1124において、周辺デバイスであるPC703は、プリンタ702からストアすべき印刷ジョブのドキュメントを受け取り、受け取ったドキュメントをHDD704に確保したストレージ領域に保存する。また保存したドキュメントに対するアクセス権の設定を行う。このアクセス権は、印刷ジョブのオーナーに対して付与されることになる。ステップS1025において、PC703は、プリンタから要求された印刷ジョブのストレージ処理が正常に終了したかを判断し、正常に終了したと判断された場合には、ステップS1027において、成功通知をプリンタ702に対して行い、また、ストレージ処理が正常に終了しなかった場合に、ステップS1026において、失敗通知をプリンタ702に対して行う。
〔最後にストア済みドキュメントの取り出し処理〕
最後にストア済みドキュメントの取り出しフェーズを説明する。
イベントが発生すると、ステップS1000で、イベントの種別を確認して、最後にストア済みドキュメントの取り出し要求である場合は、ステップS1031において、プリンタドライバ701もしくはプリンタ702から、ストアされているドキュメントの取り出し要求を受け付けることで、ステップS1032で、取り出し機能実行フェーズが開始される。
そして、ステップS1033において、周辺デバイスであるPC703は、プリンタ702から、HDD704に確保したストレージ領域にストアされているドキュメントファイルの読み出し要求を受け付け、要求された印刷ジョブのドキュメントの読み出しを行う。
ここでは、要求されたドキュメントに対するアクセス権と、読み出し要求に含まれるユーザIDとを比較し、一致した場合に読み出し許可を与え、ストアされているドキュメントを読み出し、読み出したドキュメントをプリンタ702へ送出する。
一方、アクセス権が不一致である場合や、指定されたドキュメントが存在しない場合は、失敗となる。
そして、ステップS1034において、周辺デバイスであるPC703は、要求されたドキュメントファイルの読み出しが成功したか否かを判断して、アクセス権が一致して読み出しが成功した場合には、ステップS1036で、印刷ジョブを送出と同時に成功通知をプリンタ702に返答し、ステップS1038において、読み出し済みのドキュメントファイルは、必要に応じ削除され、ステップS1000へ戻る。
一方、ステップS1034で、アクセス権の不一致もしくは要求されたドキュメントが存在しないと判断した場合は、失敗通知をプリンタ702に対して返答して、ステップS1000へ戻る。
なお、ステップS1038において、読み出し済みのドキュメントファイルは、必要に応じ削除される。必要に応じてとは、ドキュメントのストア時に、読み出し後削除することが設定されていれば削除し、設定されていない場合には、削除せずにそのままストアしておくという意味である。また、削除処理の切替については既知の技術であるため詳細な説明は省略する。
〔プリンタの代替機能を用いたストア印刷に係る処理〕
次に図14を参照、プリンタ702における代替機能を用いたストア印刷処理について説明する。
図14は、本発明に係る印刷装置におけるデータ処理手順の一例を示すフローチャートであり、例えば図7に示したプリンタ702によるデータ処理手順に対応する。なお、S1100〜S1103、S1122〜S1127,S1131〜S1139は各ステップを示し、各ステップは、図1に示したCPU12がRAM19上に印刷制御プログラムをロードして実行することで実現される。
先ず、ステップS1100において、プリンタ702において、実行すべきイベントの種類について確認して、図7に示したように、他の周辺装置から機能の借用を受けるか否かを問い合わせる代替機能要求をプリンタドライバ701から受け取った場合には、ステップS1101において、プリンタ702は、周辺デバイスの機能借用を許可すべく、周辺機能借用フラグをONにして、メモリ14にフラグを格納しておく。そして、ステップS1102へ進み、情報交換フェーズに処理を移し、ステップS1103において、プリンタ702は、プリンタドライバ701に対して、代替要求(図7に示した代替要求712)を送出して、ステップS1100へ戻る。
〔代替機能を用いたストア印刷の実行処理〕
次に、代替機能を用いたストア印刷の実行フェーズを説明する。
ステップS1100において、発生すべきイベントが、プリンタドライバ701から指示されたストア印刷である場合には、ステップS1122で、ストアジョブの機能実行フェーズを開始し、ステップS1123において、プリンタ702は、ストア要求ジョブを受け取り、RAM19に一時的に格納する。
また、プリンタ702は、プリンタドライバ701から送出される印刷ジョブを解析し、印刷ジョブで指定されているストレージ先の周辺デバイスを認識する。そして、認識された周辺デバイスに対して、代替機能を借用すべく、印刷ジョブのストア要求を印刷ジョブと共に転送するとともに、ストレージに対するアクセス権の設定を以来する。
なお、ストア要求には、印刷ジョブのアクセス権として、印刷ジョブのオーナー名を用いることを指定する。
次に、ステップS1124において、プリンタ702は、周辺デバイスであるPC703に印刷ジョブをストアが完了したか否かを判断し、PC703からストア失敗通知を受け付けた場合は、ステップS1125において、ストア印刷が失敗した旨をプリンタドライバ701へ返答し、ステップS1100へ戻る。
一方、ステップS1124で、PC703からストア完了通知を受け付けた場合は、ステップS1126において、ストア印刷が成功した旨をプリンタドライバ701へ返答する。そして、ステップS1127で、PC703に対して印刷ジョブのドキュメントのストア処理が完了すると、印刷ジョブの名称、受け付け時間、オーナー名、取り出しパスワードをストアリストとして管理し、外部メモリ14に格納して、すなわち、ストアリストを更新して、ステップS1100へ戻る。
〔代替機能を用いたストア済みドキュメントの取り出し処理〕
最後に、プリンタ702における代替機能を用いたストア済みドキュメントの取り出しフェーズを説明する。
ステップS1100において、発生すべきイベントが、プリンタドライバ701から指示されたストアドキュメントの取り出し要求である場合、または、プリンタ702の操作部からストアドキュメントの取り出し要求が入力された場合には、ステップS1131において、プリンタ702のCPU12は、ストアドキュメントの取り出し要求を内部的に発行し、ステップS1132で、取り出し機能の実行フェーズに処理が移される。
次いて、ステップS1133において、プリンタ702は、外部メモリ14に保存されている保存ドキュメントのストアリストを読み出し、操作部151に表示する。また、プリンタドライバ701からストアドキュメントの取り出し要求が発行されている場合には、プリンタ702は、読み出した保存ドキュメントのストアリストをプリンタドライバ701に対して送出する。
そして、表示もしくは送出されたストアリストに応じて、特定のドキュメントの読み出し要求を操作部151もしくはプリンタドライバ701から受け取った場合に、ステップS1134において、プリンタ702は、周辺デバイスであるPC703のHDD704から該特定のドキュメントを取り出すように取り出し要求をPC703に対して発行(依頼)する。
そして、ステップS1135において、プリンタ702は、周辺デバイスであるPC703から特定のドキュメントに対応する印刷ジョブを受け付けたか否かを判断し、所定時間印刷ジョブを受け付けない場合もしくはPC703から読み出し失敗通知を受けた場合は、ステップS1137において、ドキュメントの読み出しが失敗した旨をプリンタの操作部151に表示もしくは、プリンタドライバ701に対して返答して、ステップS1100へ戻る。
一方、ステップS1135で、プリンタ702が周辺デバイスであるPC703から特定ドキュメントに対応する印刷ジョブを受け付けた場合には、ステップS1136で、印刷ジョブを解析し、通常の印刷時と同様に印刷処理を実行する。
そして、ステップS1138において、ドキュメントの読み出しと印刷が成功した旨を操作部151に表示もしくは、プリンタドライバ701に対して返答する。そして、ステップS1138において、取り出したドキュメントの削除処理は必要に応じて行われ、ステップS1100へ戻る。
具体的には、印刷が成功した印刷ジョブをPC703に通知し、図12のステップS1038の処理をPC703に実行させる。
なお、上述した制御や操作主体を他のプログラム、ユーティリティ、プリンタやその操作パネルに置き換えても、ここまで説明したフローと本発明の目的と効果は達成できる。
以下、図15〜図17に示すメモリマップを参照して本発明に係る印刷システムで読み取り可能なデータ処理プログラムの構成について説明する。
図15〜図17は、本発明に係る印刷システムで読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図であり、図15は、情報処理装置における各種データ処理プログラムを格納する記憶媒体のメモリマップに対応し、図16は、周辺装置における各種データ処理プログラムを格納する記憶媒体のメモリマップに対応し、図17は、印刷装置における各種データ処理プログラムを格納する記憶媒体のメモリマップに対応する。
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図8、図9(プリンタドライバ701)、図13(周辺デバイスであるPC702)、図14(プリンタ702)に示す機能が外部からインストールされるプログラムによって、ホストコンピュータやサーバコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやftpサーバ等も本発明の請求項に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から排除するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるものではない。
なお、本発明は、上記した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。