以下、本発明の実施形態について図面に基づいて説明する。
以下において、USBとはUniversal Serial Busの略であり、双方向通信が可能な公知のインタフェースであるので、その詳細な説明は省略する。また、XMLとはW3Cで標準化されているExtensible Markup Languageのことであるので、その詳細な説明は省略する。
図1は、本実施形態に係る情報処理装置及び周辺装置からなる周辺装置制御システムの構成を表すブロック図である。図1において、1は、情報処理装置であり、一般的なパーソナルコンピュータ(以降、PCと略す場合がある)で構成される。PC1は、後述する図2に示されるようなハードウェアで構成され、OSとしてWindows(登録商標) XP等のような一般的なOSがインストールされている。なお、本実施形態ではABE社製のOSであると仮定する。
3は、プリンタであり、カラーインクジェットプリンタで構成され、本実施形態における周辺装置の一例としている。なお、本実施形態における周辺装置としては、プリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ及びこれらの複合機能を備える装置等であってもよい。プリンタ3は、後述する図3に示されるようなハードウェアで構成され、PC1とUSBインタフェース9を介して接続されており、互いに双方向通信を行うことができる。
30は、アプリケーションであり、実行可能形式のファイルで構成される。本実施形態では、アプリケーション30は、後述する図5に示すような印刷機能を備えるテキストエディタである。50は、後述する図4に示されるようなプリンタドライバである。
図2は、PC1のハードウェア構成の一例を表すブロック図である。PC1は、図2に示すようなハードウェア構成を有する。つまり、PC1は、ランダムアクセスメモリ部(RAM1201)、記憶部であるハードディスクドライブ部(HDD1202)、入力部の一例であるキーボード部(KBD1203)、を構成として有する。また、PC1は、制御部であるCPU1204、表示部の一例である表示用ディスプレイ(LCD1205)、通信制御部の一例であるネットワークボード(NB1207)、以上のPC1の構成要素を互いに接続するバス1206、を構成として有する。
なお、記憶部は、可搬性CD−ROM又は内部据付のROM等であってもよい。図1に示すPC1の各モジュール(アプリケーション30、プリンタドライバ50)は、HDD1202に記憶され、必要に応じてRAM1201に読み出されてCPU1204により実行される。これにより、CPU1204が、図1に示す各モジュールの機能を実現する。
図3は、プリンタ3のハードウェア構成を表すブロック図である。プリンタ3は、図3に示すようなハードウェア構成を有する。図3において、15は、マイクロプロセッサ等から構成されるCPUであり、プリンタ3の中央処理装置として、ROM16に記憶されているプログラムにしたがって、RAM17、通信部18、記録部19を制御する。なお、図3において、双方向矢印は、アドレス・データバスを表している。
ROM16にはプリンタドライバ50の制御にしたがってプリンタ3が記録(印刷)処理や、状態をPC1へ伝える処理を行うプログラムが記憶されている。RAM17は、主にPC1から送られて、それを基に記録部19によって印刷される印字データが一時的に記憶される。
通信部18にはUSBインタフェース9用の接続ポートが含まれており、USBの通信を制御する。記録部19は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等から構成される記録ユニットと、前記印字データを基に前記記録ヘッドにて印字用パルスを発生させるためのASIC等から構成される電気回路と、から構成される。
印刷可能なアプリケーション上での印刷操作によって、アプリケーションで開かれているファイルの表示内容(画像データ)が、EMF形式のスプールファイルとしてPC1のHDD1202に一時的に格納される。そして、プリンタドライバ50を介してプリンタ3制御用コマンドを含む印字データに変換された後、USBインタフェース9を介してプリンタ3に送られる。プリンタ3にて受信された印字データは、記録部19によって印字用パルスに変換されて、記録紙上に印刷される。
図4は、PC1におけるプリンタドライバの構成を表す図である。図4において、50は、PC1にインストールされているプリンタドライバであり、33〜39の複数のモジュールから構成される。30は、印刷可能なアプリケーションであり、例えば、後述する図5に示すような印刷機能を備えるテキストエディタである。
31は、Graphics Device Interface(GDI)であり、OSの一部である。32は、プリンタキューであり、スプーラ40の一部として構成され、印刷ジョブがキューイングされる。キューイングされた印刷ジョブは、プリンタキューフォルダ(ここでは説明を省略する)に表示される。
33は、プリントプロセッサであり、印刷レイアウトの変更や印刷画像の特殊処理が行われる。34は、グラフィックスドライバであり、プリンタドライバの画像処理のコアとして、GDI31から送られて来る描画命令を基に印刷用の画像処理を行い、印刷制御コマンドを作成する。
35は、UIモジュールであり、プリンタドライバのユーザインタフェースの提供及び制御を行う。39は、UIプラグインであり、UIモジュール35からフックされ、プリンタドライバのユーザインタフェース及び制御をプリンタ3特有のものにカスタマイズすることができる。36は、ランゲージモニタであり、データの通信I/Fとしてデータの送受信を制御する。37は、ポートモニタであり、ランゲージモニタ36から送られて来るデータを適切なポートに対して送信したり、プリンタ3から送られて来るデータを、クラスドライバ38を介して受信したりする処理を行う。
38は、クラスドライバであり、最もポートに近いローレベルのモジュールであり、本実施形態ではUSBのプリンタクラスのドライバに相当し、ポート(本実施形態ではUSBポート)を制御する。
41は、OS内のプリントジョブチケット/プリントジョブ能力マネージャであり、XML形式の階層構造で表現されるプリントジョブチケットやプリントジョブ能力に関する処理を制御する。アプリケーション30がプリンタドライバ50からプリントジョブ能力を取得するためにコールするプリントジョブ能力取得用のAPIは、このプリントジョブチケット/プリントジョブ能力マネージャ41が提供している。
42は、UIモジュール35内のプリントジョブチケット/プリントジョブ能力プロバイダであり、XML形式の階層構造で表現されるプリントジョブチケットやプリントジョブ能力に関する処理を制御する。後述する図53のステップS5303の処理は、このプリントジョブチケット/プリントジョブ能力プロバイダ42により制御される。
43は、UIプラグイン39内のプリントジョブチケット/プリントジョブ能力プロバイダであり、XML形式の階層構造で表現されるプリントジョブチケットやプリントジョブ能力に関する処理を制御する。後述する図53のステップS5304〜S5310の処理は、このプリントジョブチケット/プリントジョブ能力プロバイダ43により制御される。
プリントプロセッサ33、グラフィックスドライバ34、UIモジュール35、ランゲージモニタ36、ポートモニタ37、クラスドライバ38はOSの一部である。
図5は、印刷機能を備えるテキストエディタから印刷を行う時のユーザの操作の一例を表す図である。図5において、ユーザがFileメニューから印刷メニュー(Print...)217を選択することにより、テキスト表示部218に表示されているテキストの表示内容の印刷処理がPC1等において開始される。
図6は、Printダイアログを表す図である。図5において印刷メニュー217が選択されると、PC1は、図6に示すダイアログを表示する。219は、プリンタ選択部であり、ユーザはプリンタ選択部219を用いて印刷を実行させるプリンタを選択することができる。図6では、プリンタ3で印刷を行うことができるプリンタドライバ50が選択されている状態を表している。
220は、Preferencesボタンであり、ユーザがこのボタンを押下すると、PC1は、プリンタ選択部219で選択されているプリンタ用ドライバの印刷設定ダイアログを開いて詳細設定を行う。222は、Printボタンであり、ユーザがこのボタンを押下すると、PC1は、選択されている各設定で印刷を開始し、図6に示すPrintダイアログを閉じる。223は、Cancelボタンであり、ユーザがこのボタンを押下すると、PC1は、印刷を開始せずに図6に示すPrintダイアログを閉じる。
図7は、プリンタドライバ50の印刷設定ダイアログを表す図である。図7において、224は、印刷設定ダイアログであり、ユーザは、印刷設定ダイアログ224を用いて、プリンタドライバ50を介してプリンタ3で印刷するための各印刷設定を選択又は指定することができる。
227は、給紙方法選択部であり、ユーザは給紙方法選択部227を用いて給紙方法を「オートシートフィーダー(ASF)」、「カセット」の中から選択できる。図7では「ASF」が選択されている状態を表している。228は、解像度選択部であり、ユーザは解像度選択部228を用いて印刷時の解像度を「高」、「中」の中から選択できる。図7では「中」が選択されている状態を表している。
229は、用紙サイズ選択部であり、ユーザは用紙サイズ選択部229を用いて用紙サイズを「Letter」、「Legal」、「A4」、「B5」、「A4+」の中から選択できる。図7では「A4」が選択されている状態を表している。230は、用紙の種類選択部であり、ユーザは用紙の種類選択部230を用いて用紙の種類を「普通紙」、「写真用紙」、「プロ写真用紙」の中から選択できる。図7では「普通紙」が選択されている状態を表している。
231は、両面印刷選択部であり、ユーザは両面印刷選択部231を用いて両面印刷の方法を「片面」、「長辺両面」、「短辺両面」の中から選択できる。図7では「片面」が選択されている状態を表している。なお、「片面」は両面印刷せずに、片面だけに印刷する通常の印刷方法である。232は、印刷品位選択部であり、ユーザは印刷品質選択部232を用いて印刷品位を「オート」、「きれい」、「標準」の中から選択できる。図7では「オート」が選択されている状態を表している。
233は、カラー選択部であり、ユーザはカラー選択部233を用いてカラー印刷かモノクロ印刷かを選択できる。図7ではカラー印刷が選択されている状態を表している。234は、部数指定部であり、ユーザは部数指定部234を用いて印刷する部数を1〜255部の範囲内で任意の整数で指定できる。図7では1部が指定されている状態を表している。
235は、印刷の向き選択部であり、ユーザは印刷の向き選択部235を用いて印刷の向きを「縦」、「横」の中から選択できる。図7では「縦」が選択されている状態を表している。
236は、割り付け(N−UP)印刷選択部であり、割り付け印刷ページ数選択部237、割り付け印刷ページ順序選択部238、割り付け印刷出力用紙サイズ選択部239から構成される。ユーザは割り付け印刷選択部236を用いて割り付け印刷に関する設定を行うことができる。
ユーザは、割り付け印刷ページ数選択部237を用いて、割り付け印刷時に1ページ内に割り付けるページ数を「1」、「2」、「4」、「6」ページの中から選択できる。図7では「1」ページが選択されている状態を表している。なお、「1」ページが選択されている場合は、割り付け印刷ではなく、通常の1ページの印刷が行われる。また、ユーザは、割り付け印刷ページ順序選択部238を用いて、割り付け印刷時に1ページ内に割り付けるページの順序を以下の中から選択することができる。
「左上→右下(水平)」、「左上→右下(垂直)」、「右上→左下(水平)」、「右上→左下(垂直)」、「左下→右上(水平)」、「左下→右上(垂直)」、「右下→左上(水平)」、「右下→左上(垂直)」、「左上→右下(水平)又は左上→右下(垂直)」、「右下→左上(水平)又は右下→左上(垂直)」
図7では「左上→右下(水平)」が選択されている状態を表している。また、ユーザは、割り付け印刷出力用紙サイズ選択部239を用いて、割り付け印刷時の出力用紙サイズを「Letter」、「Legal」、「A4」、「B5」、「A4+」の中から選択できる。図7では「A4」が選択されている状態を表している。
225は、OKボタンであり、OKボタン225が押下されると、PC1は、選択又は指定された印刷設定を保存(セット)して、印刷設定ダイアログ224を閉じる。226は、キャンセルボタンであり、キャンセルボタン226が押下されると、PC1は、選択又は指定された印刷設定を破棄して、印刷設定ダイアログ224を閉じる。
なお、図7の印刷設定ダイアログは、プリンタ3を制御するためのプリンタドライバ50に特化したものであり、この印刷設定ダイアログを使って他のプリンタを制御することはできない。
図8は、印刷制御構造体を表す図である。図8において、PRINT_MODEは印刷制御構造体を表す定義であり、次のような単一階層構造のメンバーで構成される。
・[メンバー]:[内容]:[印刷設定]
・inputBin:給紙方法の指定:給紙方法選択部
・orientation:印刷の向きの指定:印刷の向き選択部
・color:カラー印刷の指定:カラー選択部
・resolution:解像度の指定:解像度選択部
・mediaType:用紙の種類の指定:用紙の種類選択部
・duplex:両面印刷の指定:両面印刷選択部
・nUp:割り付け印刷の指定:割り付け印刷ページ数選択部
・presentationDirection:割り付け印刷ページ順序の指定:割り付け印刷ページ順序選択部
・mediaSize:用紙サイズの指定:用紙サイズ選択部
・outputQuality:印刷品位の指定:印刷品位選択部
・outputMediaSize:割り付け印刷出力用紙サイズの指定:割り付け印刷出力用紙サイズ選択部
・copyCount:部数の指定:部数指定部
このOS上では、アプリケーション30とプリンタドライバ50との間でハンドリングされる印刷設定は、印刷制御構造体の形で表される。アプリケーション30は、印刷制御構造体のポインタを引数として、Applicaion Program Interface(以降、APIと略す場合がある)を介して、プリンタドライバ50に印刷設定を渡す。又は、アプリケーション30は、APIを介して、プリンタドライバ50から印刷設定を取得する。copyCount以外のメンバーは、longのポインタで定義されていて、これらのメンバーに代入する、或いは、代入される値が複数ある場合は、それらの値が該当するメンバーに対して配列の形でセットされる。最後の配列には、配列の終わりを表すゼロ(0)がセットされる。
図9〜図20は、印刷設定ファイルの内容を表す図である。印刷設定ファイルは、UIプラグイン39の構成ファイルの内の一つであり、プリンタドライバ50が備える設定可能な印刷設定に関する情報が記載されている。印刷設定ファイルは、テキスト形式のファイルであり、非階層構造の表現で印刷設定に関する情報が記載されている。ここで、非階層構造で表現される理由は、印刷設定ファイルが単一階層構造のメンバーから構成される印刷制御構造体を生成するために利用されるものであり、印刷制御構造体を生成するために必要な最小限のアーキテクチャで設計されているからである。図9〜図19において、Featureには印刷設定の各機能が定義されていて、Optionには各機能で設定可能なオプション(選択肢)が定義されている。Defaultには、各機能で設定(選択)される初期値が定義されている。
図9は、印刷設定ファイル内の給紙方法に関する情報を表す図である。図9において、給紙方法は次のように定義されている。
ID: 7 オートシートフィーダー(ASF)
ID: 267 カセット(Cassette)
印刷制御構造体(PRINT_MODE)のinputBinには、図9のIDで指定されている7、267がセットされる。初期値は「オートシートフィーダー(ASF)」である。
図10は、印刷設定ファイル内の印刷の向きに関する情報を表す図である。図10において、印刷の向きは次のように定義されている。
ID: 21 縦(Portrait)
ID: 22 横(Landscape)
印刷制御構造体(PRINT_MODE)のorientationには、図10のIDで指定されている21、22がセットされる。初期値は「縦」である。
図11は、印刷設定ファイル内のカラー印刷の方法に関する情報を表す図である。図11において、カラー印刷の方法は次のように定義されている。
ID: 31 カラー印刷(Color)
ID: 33 モノクロ印刷(Monochrome)
印刷制御構造体(PRINT_MODE)のcolorには、図11のIDで指定されている31、33がセットされる。初期値は「カラー印刷」である。
図12は、印刷設定ファイル内の解像度に関する情報を表す図である。図12において、解像度は次のように定義されている。
ID: −4 高(High)
DPI: (600,600) 600×600 [dpi]
ID: −3 中(Standard)
DPI: (300,300) 300×300 [dpi]
印刷制御構造体(PRINT_MODE)のresolutionには、図12のIDで指定されている−4、−3がセットされる。初期値は「中」である。
図13は、印刷設定ファイル内の用紙の種類に関する情報を表す図である。図13において、用紙の種類は次のように定義されている。
ID: 1 普通紙(Plain)
ID: 2 写真用紙(Photo)
ID: 285 プロ写真用紙(ProPhoto)
印刷制御構造体(PRINT_MODE)のmediaTypeには、図13のIDで指定されている1、2、285がセットされる。初期値は「普通紙」である。
図14は、印刷設定ファイル内の両面印刷に関する情報を表す図である。図14において、両面印刷は次のように定義されている。
ID: 51 片面(OneSided)
ID: 52 長辺両面(TwoSidedLongEdge)
ID: 53 短辺両面(TwoSidedShortEdge)
印刷制御構造体(PRINT_MODE)のduplexには、図14のIDで指定されている51、52、53がセットされる。初期値は「片面」である。
図15は、印刷設定ファイル内の割り付け印刷に関する情報を表す図である。図15において、割り付け印刷は次のように定義されている。
ID: 11 1ページ(PagesPerSheet1)
ID: 12 2ページ(PagesPerSheet2)
ID: 14 4ページ(PagesPerSheet4)
ID: 16 6ページ(PagesPerSheet6)
印刷制御構造体(PRINT_MODE)のnUpには、図15のIDで指定されている11、12、14、16がセットされる。初期値は「1ページ」である。
図16は、印刷設定ファイル内の割り付け印刷ページ順序に関する情報を表す図である。図16において、割り付け印刷ページ順序は次のように定義されている。
ID: 111 左上→右下(水平)(RightBottom)
ID: 112 左上→右下(垂直)(BottomRight)
ID: 113 右上→左下(水平)(LeftBottom)
ID: 114 右上→左下(垂直)(BottomLeft)
ID: 115 左下→右上(水平)(RightTop)
ID: 116 左下→右上(垂直)(TopRight)
ID: 117 右下→左上(水平)(LeftTop)
ID: 118 右下→左上(垂直)(TopLeft)
ID: 311 左上→右下(水平)又は左上→右下(垂直)(RightOrBottom)
ID: 312 右下→左上(水平)又は右下→左上(垂直)(LeftOrTop)
印刷制御構造体(PRINT_MODE)のpresentationDirectionには、図16のIDで指定されている111、112、113、114、115、116、117、118、311、312がセットされる。初期値は「左上→右下(水平)」である。
図17は、印刷設定ファイル内の用紙サイズに関する情報を表す図である。図17において、用紙サイズは次のように定義されている。
ID: 61 Letter
ID: 62 Legal
ID: 63 A4
ID: 64 B5
ID: 281 A4+(A4Plus)
印刷制御構造体(PRINT_MODE)のmediaSizeには、図17のIDで指定されている61、62、63、64、281がセットされる。初期値は「A4」である。
図18は、印刷設定ファイル内の印刷品位に関する情報を表す図である。図18において、印刷品位は次のように定義されている。
ID: 71 オート(Automatic)
ID: 72 きれい(High)
ID: 73 標準(Normal)
印刷制御構造体(PRINT_MODE)のoutputQualityには、図18のIDで指定されている71、72、73がセットされる。初期値は「オート」である。
図19は、印刷設定ファイル内の割り付け印刷出力用紙サイズに関する情報を表す図である。図19において、割り付け印刷出力用紙サイズは次のように定義されている。
ID: 61 Letter
ID: 62 Legal
ID: 63 A4
ID: 64 B5
ID: 281 A4+(A4Plus)
印刷制御構造体(PRINT_MODE)のoutputMediaSizeには、図19のIDで指定されている61、62、63、64、281がセットされる。初期値は「A4」である。
図20は、印刷設定ファイル内のコマンド制御に関する情報を表す図である。図20において、Commandにはプリンタ3を制御するための各印刷制御コマンドの制御方法が定義されている。各印刷制御コマンドにおいて、Orderには制御順序が、CallIDには制御関数の名前がそれぞれ定義されている。
CmdStartJobは、印刷ジョブの開始時の制御コマンドの制御方法であり、制御順序がJOB_SETUP.1、制御関数の名前がCMD_ID_STARTJOBである。CmdStartDocは、印刷ジョブに含まれるドキュメントの開始時の制御コマンドの制御方法であり、制御順序がDOC_SETUP.1、制御関数の名前がCMD_ID_STARTDOCである。
CmdStartPageは、ドキュメントに含まれるページの開始時の制御コマンドの制御方法であり、制御順序がPAGE_SETUP.1、制御関数の名前がCMD_ID_STARTPAGEである。CmdEndPageは、ドキュメントに含まれるページの終了時の制御コマンドの制御方法であり、制御順序がPAGE_FINISH.1、制御関数の名前がCMD_ID_ENDPAGEである。
CmdEndDocは、印刷ジョブに含まれるドキュメントの終了時の制御コマンドの制御方法であり、制御順序がDOC_FINISH.1、制御関数の名前がCMD_ID_ENDDOCである。CmdEndJobは、印刷ジョブの終了時の制御コマンドの制御方法であり、制御順序がJOB_FINISH.1、制御関数の名前がCMD_ID_ENDJOBである。
CmdGetPrnPropertiesは、プリンタドライバ50がアプリケーション30に印刷設定情報を返す時の制御コマンドの制御方法であり、制御順序がANY、制御関数の名前がCMD_ID_GETPRNPROPERTIESである。
図21は、印刷ジョブの構成を表す図である。図21において、「ジョブ」は1つの印刷ジョブを表し、ドキュメント1、ドキュメント2、・・・、ドキュメントNのN個のドキュメントから構成される。ドキュメント1は、ページ1、ページ2、・・・、ページXのXページである。ドキュメント2は、ページ1、ページ2、・・・、ページYのYページである。ドキュメントNは、ページ1、ページ2、・・・、ページZのZページである。このように、各ドキュメントが複数のページ(1ページの場合もある)でそれぞれ構成される。
図22は、各印刷制御コマンドを制御する制御関数の仕様を表す図である。図20に示す各制御関数は、図22に示すような処理を行い、その結果を返す仕様となっている。なお、これらの制御関数はUIプラグイン39に実装されている。ここで、図20に示す各制御関数とは、
CMD_ID_STARTJOB、CMD_ID_STARTDOC、CMD_ID_STARTPAGE、CMD_ID_ENDPAGE、CMD_ID_ENDDOC、CMD_ID_ENDJOB、CMD_ID_GETPRNPROPERTIES
である。
図23は、印刷設定情報の取得処理を表すフローチャートである。アプリケーション30がプリンタドライバ50から印刷設定を取得するために印刷設定取得用のAPIをコールする。すると、UIモジュール35がOSにロードされて、UIモジュール35において、図22に示す印刷設定情報の取得処理が開始される(S2301)。
UIモジュール35は、図9〜図20に示す印刷設定ファイルをロードし(S2302)、この印刷設定ファイルから印刷設定情報を生成する(S2303)。ステップS2303において、UIモジュール35は、印刷設定ファイルの中から図20に示すCmdGetPrnPropertiesの記述にしたがってCMD_ID_GETPRNPROPERTIESをコールしてUIプラグイン39をフックする。UIプラグイン39は、印刷設定ファイルに記述されていない印刷設定に関して、プリンタ3特有のものにカスタマイズを行う。なお、このカスタマイズの処理に関しては、本実施形態とは関係無いので、ここではその詳細説明を省略する。
UIモジュール35が、生成された印刷設定情報をCMD_ID_GETPRNPROPERTIESの引数である図8に示す印刷制御構造体(PRINT_MODE)にセットし(S2304)、印刷設定情報の取得処理を終了する(S2305)。
図24は、印刷処理を表すフローチャートである。アプリケーション30から印刷が開始されると、プリンタドライバ50がOSにロードされて、図24の印刷処理が開始される(S2401)。印刷処理が開始されると、プリンタドライバ50は、制御関数CMD_ID_STARTJOBをコールする。その結果、その印刷ジョブの開始の処理が実行される(S2402)。そして、プリンタドライバ50は、制御関数CMD_ID_STARTDOCをコールする。その結果、そのジョブ内のドキュメントの開始の処理が実行される(S2403)。
そして、プリンタドライバ50は、制御関数CMD_ID_STARTPAGEをコールする。その結果、ドキュメント内のページの開始の処理が実行される(S2404)。ページの開始の処理が実行されると、プリンタドライバ50は、後述する図25に示す印刷制御構造体の設定を行う処理を実行する(S2405)。印刷処理中のページが終了した場合(S2406においてYES)、プリンタドライバ50は、制御関数CMD_ID_ENDPAGEをコールする。その結果、そのページの終了処理が実行される(S2407)。
ステップS2407の後、プリンタドライバ50は、次のページが有るか否かを判定する(S2408)。次のページが有る場合(S2408においてYES)、プリンタドライバ50は、ステップS2404に戻る。次のページが無い場合(S2408においてNO)、プリンタドライバ50は、そのページが含まれるドキュメントの次のドキュメントが有るか否かを判定する(S2409)。
次のドキュメントが有る場合(S2409においてYES)、プリンタドライバ50は、ステップS2403に戻る。次のドキュメントが無い場合、プリンタドライバ50は、印刷処理を終了する(S2410)。
図25は、印刷制御構造体の設定を行う処理を表すフローチャートである。図25において、印刷制御構造体の設定を行う処理が開始されると(S2501)、プリンタドライバ50は、以下の処理を行う。つまり、プリンタドライバ50は、印刷設定ダイアログ224で選択、指定されている印刷設定情報を基に印刷制御構造体(PRINT_MODE)を設定し(S2502)、印刷制御構造体の設定を行う処理を終了する(S2503)。
前述した印刷システムは、非階層構造の表現で印刷設定に関する情報が記載されているテキスト形式の印刷設定ファイルと、単一階層構造のメンバーから構成される印刷制御構造体(PRINT_MODE)と、を利用している。以降、この印刷システムを「従来の印刷システム」と略す場合がある。一方、階層構造の表現で印刷設定に関する情報が記載されているXML形式のプリントジョブチケットを利用した印刷システム(以降、「新しい印刷システム」と略す場合がある)が存在する。そして、従来の印刷システムのアーキテクチャを基盤として、その上に新しい印刷システムを構築した統合印刷システムが考えられており、以下において、この統合印刷システムに関して説明する。
図26は、新しい印刷システムが実装されているOSにPrintダイアログを表す図である。新しい印刷システムが実装されているOS上で、図5に示す印刷機能を備えるテキストエディタにおいて、印刷メニュー217が選択されると、Printダイアログ240が表示される。Printダイアログ240を介して、後述するプリントジョブチケットや、プリントジョブ能力をサポートする新しい印刷システムに対応している任意のプリンタ又はプリンタドライバに対して各印刷設定を選択又は指定することができる。
図26において、241は、プリンタ選択部であり、ユーザはプリンタ選択部241を用いて、印刷を実行させるプリンタを選択することができる。図26では、プリンタ3で印刷を行うことができるプリンタドライバ50が選択されている状態を表している。以下では、OSの製造元であるABE社が定義しているABE社のパブリックスキーマの範囲で説明する。しかしながら、ユーザは、各印刷設定で選択できる選択肢としては、このパブリックスキーマの範囲に限らず、プリンタの製造元が定義しているプライベートスキーマで定義されている選択肢を選択することもできる。
242は、給紙方法選択部であり、ユーザは給紙方法選択部242を用いて、給紙方法を「オートシートフィーダー(ASF)」、「カセット」、「手差し」の中から選択できる。図26では「ASF」が選択されている状態を表している。243は、解像度選択部であり、ユーザは解像度選択部243を用いて、印刷時の解像度を「高」、「中」、「低」の中から選択できる。図26では「中」が選択されている状態を表している。
244は、用紙サイズ選択部であり、ユーザは用紙サイズ選択部244を用いて、用紙サイズを「Letter」、「Legal」、「A5」、「A4」、「B5」、「Photo (8×10インチ)」の中から選択できる。図26では「A4」が選択されている状態を表している。245は、用紙の種類選択部であり、ユーザは用紙の種類選択部245を用いて、用紙の種類を「普通紙」、「写真用紙」の中から選択できる。図26では「普通紙」が選択されている状態を表している。
246は、両面印刷選択部であり、ユーザは両面印刷選択部246を用いて、両面印刷の方法を「片面」、「長辺両面」、「短辺両面」の中から選択できる。図26では「片面」が選択されている状態を表している。なお、「片面」は両面印刷せずに、片面だけに印刷する通常の印刷方法である。247は、印刷品位選択部であり、ユーザは印刷品質選択部247を用いて、印刷品位を「オート」、「きれい」、「標準」、「ドラフト」の中から選択できる。図26では「オート」が選択されている状態を表している。
248は、カラー選択部であり、ユーザはカラー選択部248を用いて、カラー印刷の方法を「カラー」、「グレースケール」、「モノクロ」の中から選択できる。図26では、「カラー」が選択されている状態を表している。249は、部数指定部であり、部数指定部249を用いて、印刷する部数を1〜255部の範囲内で任意の整数で指定できる。図26では1部が指定されている状態を表している。
250は、印刷の向き選択部であり、印刷の向きを「縦」、「横」の中から選択できる。図26では「縦」が選択されている状態を表している。251は、割り付け(N−UP)印刷選択部であり、割り付け印刷ページ数選択部252、割り付け印刷ページ順序選択部253、割り付け印刷出力用紙サイズ選択部254から構成される。ユーザは割り付け印刷選択部251を用いて、割り付け印刷に関する設定を行うことができる。
ユーザは、割り付け印刷ページ数選択部252を用いて、割り付け印刷時に1ページ内に割り付けるページ数を「1」、「2」、「4」、「6」、「9」、「16」ページの中から選択できる。図26では「1」ページが選択されている状態を表している。なお、「1」ページが選択されている場合は、割り付け印刷ではなく、通常の1ページの印刷が行われる。ユーザは、割り付け印刷ページ順序選択部253を用いて、割り付け印刷時に1ページ内に割り付けるページの順序を以下の中から選択できる。
「左上→右下(水平)」、「左上→右下(垂直)」、「右上→左下(水平)」、「右上→左下(垂直)」、「左下→右上(水平)」、「左下→右上(垂直)」、「右下→左上(水平)」、「右下→左上(垂直)」
図26では「左上→右下(水平)」が選択されている状態を表している。ユーザは、割り付け印刷出力用紙サイズ選択部254を用いて、割り付け印刷時の出力用紙サイズを「Letter」、「Legal」、「A5」、「A4」、「B5」、「Photo (8×10インチ)」の中から選択できる。図26では「A4」が選択されている状態を表している。
255は、Printボタンであり、Printボタン255が押下されると、PC1は、選択されている印刷設定で印刷を開始し、Printダイアログを閉じる。256は、Cancelボタンであり、Cancelボタンが押下されると、PC1は、印刷を開始せずにPrintダイアログを閉じる。
前述した通り、プリンタの製造元が定義しているプライベートスキーマで定義されている選択肢を選択することも可能である。例えば、用紙サイズ選択部244又は割り付け印刷出力用紙サイズ選択部254において「A4+」を選択することもできる。そして、用紙の種類選択部245において「プロ写真用紙」を選択したり、割り付け印刷ページ順序選択部253において「左上→右下(水平)又は左上→右下(垂直)」や「右下→左上(水平)又は右下→左上(垂直)」を選択したりすることもできる。
図27〜図38は、プリントジョブスキーマの定義を表す図である。新しい印刷システムで利用されるプリントジョブチケットは、これらの図に示すプリントジョブスキーマで定義されるスキーマで規定されている。これらの図において、本実施形態では、本実施形態に関連する部分を説明し、一般的なスキーマの書式等に関してはその説明を省略する。これらの図において、pjsfはプリントジョブスキーマフレームワーク(Print Job Schema Framework)を表す。図27の3行目にxmlns:pjsf=“http://schemas.abe.com/printjobsche
maframework”と示すように、ABE社のパブリックスキーマとして名前空間
がセットされている。したがって、pjsfが記述される定義はABE社のパブリックスキーマとして取り扱われる。
pjskは、プリントジョブスキーマキーワード(Print Job Schema Keyword)を表す。図27の6行目に、xmlns:pjsk=“http:/
/schemas.abe.com/printjobschemakeywords”
と示すように、ABE社のパブリックスキーマとして、名前空間がセットされている。したがって、pjskが記述される定義はABE社のパブリックスキーマとして取り扱われる。
ParameterInitは、変数を表すスキーマである。Featureは、各印刷設定の機能を表すスキーマである。Propertyは、特性を表すスキーマであり、例えばDisplayNameで指定されるStringにセットされる文字列は、表示に使用することができる文字列を表す。Optionは、各機能のオプション(選択肢)を表すスキーマである。[Range]には印刷設定状況に応じて次の何れかの定義が代入される。
PrintJob :ジョブ単位でセットされる印刷設定
PrintDocument :ドキュメント単位でセットされる印刷設定
PrintPage :ページ単位でセットされる印刷設定
図27は、プリントジョブスキーマの名前空間、部数、給紙方法の定義を表す図である。図27において、3行目〜6行目にはプリントジョブスキーマの名前空間が定義されている。CopyCountは、部数指定部249で指定することができる印刷する部数の定義を表す。機能:InpubBinは、給紙方法選択部242で選択することができる給紙方法の定義を表す。オプション:ASFは「オートシートフィーダー(ASF)」、オプション:Cassetteは「カセット」、オプション:Manualは「手差し」の選択肢の定義を表す。
図28は、プリントジョブスキーマの印刷の向きの定義を表す図である。図28において、機能:Orientationは、印刷の向き選択部250で選択することができる印刷の向きの定義を表す。オプション:Portraitは「縦」、オプション:Landscapeは「横」の選択肢の定義を表す。
図29は、プリントジョブスキーマのカラー印刷の方法の定義を表す図である。図29において、機能:OutputColorはカラー選択部248で選択することができるカラー印刷の方法の定義を表す。オプション:Colorは「カラー」、オプション:Grayscaleは「グレースケール」、オプション:Monochromeは「モノクロ」の選択肢の定義を表す。
図30は、プリントジョブスキーマの解像度の定義を表す図である。図30において、機能:Resolutionは、解像度選択部243で選択することができる解像度の定義を表す。オプション:Highは「高」、オプション:Standardは「中」、オプション:Draftは「低」の選択肢の定義を表す。
図31は、プリントジョブスキーマの用紙の種類の定義を表す図である。図31において、機能:MediaTypeは用紙の種類選択部245で選択することができる用紙の種類の定義を表す。オプション:Plainは「普通紙」、オプション:Photoは「写真用紙」の選択肢の定義を表す。
図32は、プリントジョブスキーマの両面印刷の方法の定義を表す図である。図32において、機能:Duplexは両面印刷選択部246で選択することができる両面印刷の方法の定義を表す。オプション:OneSidedは「片面」、オプション:TwoSidedLongEdgeは「長辺両面」、TwoSidedShorEdgeは「短辺両面」の選択肢の定義を表す。
図33〜図35は、プリントジョブスキーマの割り付け(N−UP)印刷の定義を表す図である。これらの図において、機能:NUpは割り付け印刷選択部251選択することができる割り付けの定義を表す。
図33は、プリントジョブスキーマの割り付け印刷ページ数の定義を表す図である。図33において、各オプションは割り付け印刷ページ数選択部252で選択することができる割り付け印刷ページ数の定義を表す。オプション:PagesPerSheet1は「1」、オプション:PagesPerSheet2は「2」、オプション:PagesPerSheet4は「4」の選択肢の定義を表す。また、オプション:PagesPerSheet6は「6」、オプション:PagesPerSheet9は「9」、オプション:PagesPerSheet16は「16」の選択肢の定義を表す。
図34は、プリントジョブスキーマの割り付け印刷ページ順序の定義を表す図(その1)である。また、図35は、プリントジョブスキーマの割り付け印刷ページ順序の定義を表す図(その2)である。
図34、図35において、機能:PresentationDirectionは割り付け印刷ページ順序選択部253で選択することができる割り付け印刷ページ順序の定義を表す。このPresentationDirectionはFeature(機能)であるにもかかわらず[Range]が付加されていない。これは、機能:PresentationDirectionが図33〜図35に示す機能:NUpのSub−Feature(サブ機能)として、機能:NUpの中にネストされる(含まれる)定義であるからである。つまり、上位の機能、即ち、機能:NUpに付加されている[Range]が機能:PresentationDirectionにも適用されるからである。
これはOSの仕様であり、本実施形態を適用することができるOSの特徴の一つである。オプション:RightBottomは「左上→右下(水平)」、オプション:BottomRightは「左上→右下(垂直)」、オプション:LeftBottomは「右上→左下(水平)」の選択肢の定義を表す。また、オプション:BottomLeftは「右上→左下(垂直)」、オプション:RightTop「左下→右上(水平)」、オプション:TopRightは「左下→右上(垂直)」の選択肢の定義を表す。また、オプション:LeftTopは「右下→左上(水平)」、オプション:TopLeftは「右下→左上(垂直)」の選択肢の定義を表す。
図36は、プリントジョブスキーマの用紙サイズの定義を表す図である。図36において、機能:MediaSizeは用紙サイズ選択部244で選択することができる用紙サイズの定義を表す。オプション:Letterは「Letter」、オプション:Legalは「Legal」、オプション:A5は「A5」、オプション:A4は「A4」、オプション:B5は「B5」の選択肢の定義を表す。また、オプション:Photo8x10は「Photo (8×10インチ)」の選択肢の定義を表す。
図37は、プリントジョブスキーマの印刷品位の定義を表す図である。図37において、機能:OutputQualityは印刷品位選択部247で選択することができる印刷品位の定義を表す。オプション:Automaticは「オート」、オプション:Highは「きれい」、オプション:Normalは「標準」、オプション:Draftは「ドラフト」の選択肢の定義を表す。
図38は、プリントジョブスキーマの割り付け印刷出力用紙サイズの定義を表す図である。図38において、機能:OutputMediaSizeは割り付け印刷出力用紙サイズ選択部254で選択することができる割り付け印刷出力用紙サイズの定義を表す。オプション:Letterは「Letter」、オプション:Legalは「Legal」、オプション:A5は「A5」、オプション:A4は「A4」、オプション:B5は「B5」の選択肢の定義を表す。また、オプション:Photo8x10は「Photo (8×10インチ)」の選択肢の定義を表す。
図39〜図51は、統合印刷システムにおける印刷設定ファイルの内容を表す図である。これらの図において、図9〜図20に示す印刷設定ファイルと同様な内容に関しては、その説明を省略し、ここでは差分に関して説明する。
PrintJobSchemaKeywordMapは、FeatureやOptionで定義されている印刷設定の各機能やそれぞれの機能に関する各オプションをプリントジョブスキーマキーワードに割り当てるための定義である。なお、以下、PrintJobSchemaKeywordMapのことをPJSKMと略す場合もある。ここで述べているプリントジョブスキーマキーワードとは、図27で説明したpjskで定義されているプリントジョブスキーマキーワード(Print Job Schema Keyword)を表す。図27の6行目に、xmlns:pjsk=“http://sche
mas.abe.com/printjobschemakeywords”と示すよう
に、OSの製造元であるABE社のパブリックスキーマとして、名前空間がセットされている。
したがって、pjskが記述される定義はABE社のパブリックスキーマとして取り扱われる。このパブリックスキーマとして正しく取り扱われるようにするために、PJSKMで指定する文字列として、プリントジョブスキーマのパブリックスキーマで定義されているFeatureやOption(オプション)の定義と同じ文字列を使う必要がある。更に、その文字列を統合印刷システムにおける印刷設定ファイル内のFeatureやOptionの定義にも使う必要がある。
Featureの場合には、例えば、図39に示すようになる。統合印刷システムにおける印刷設定ファイル内の給紙方法に関する情報の定義の場合、[Range]にPrintJob、PrintDocument、PrintPageの何れかをセットしたPrintJobInputBinという文字列を、PJSKMで指定する文字列と、Featureの定義で使用する文字列との両方に使う必要がある。
但し、例外として後述する図46で示すPrintJobPresentationDirectionがある。プリントジョブスキーマで定義されている機能:PresentationDirectionは、機能:NUpにネストされる(含まれる)Sub−Featureであり、機能:NUpの[Range]が適用される。そのため、プリントジョブスキーマの定義では[Range]が付加されない。しかし、非階層構造の表現で印刷設定に関する情報が記載されているテキスト形式の統合印刷システムにおける印刷設定ファイルでは、PJSKMでプリントジョブスキーマのFeatureとして取り扱わせる。そのため、[Range]を付加したPrintJobPresentationDirectionという文字列を、PJSKMで指定する文字列と、Featureの定義で使用する文字列とで使う必要がある。
これは、非階層構造の表現の印刷設定ファイルを利用する従来の印刷システムのアーキテクチャを基盤として、その上に階層構造の表現のプリントジョブチケットを利用する新しい印刷システムを構築した統合印刷システムにおけるOSの仕様である。この使用は、本実施形態を適用することができるOSの特徴の一つである。
図39は、統合印刷システムにおける印刷設定ファイル内の給紙方法に関する情報を表す図である。図27に示すように、給紙方法を表すプリントジョブスキーマキーワードは、[Range]にPrintJobが付加されたPrintJobInputBinと定義されている。よって、Featureと、このFeatureのPJSKMと、にPrintJobInputBinが定義されている。給紙方法の選択肢(オプション)を表すプリントジョブスキーマキーワードはASF、Cassette、と定義されている。よって、Optionと、そのOptionのPJSKMに、それぞれASF、Cassette、が定義されている。
図40は、統合印刷システムにおける印刷設定ファイル内の印刷の向きに関する情報を表す図である。図28に示すように、印刷の向きを表すプリントジョブスキーマキーワードは、[Range]にPrintPageが付加されたPrintPageOrientationと定義されている。よって、Featureと、このFeatureのPJSKMと、にPrintPageOrientationが定義されている。印刷の向きの選択肢を表すプリントジョブスキーマキーワードは、Portrait、Landscapeと定義されている。よって、Optionと、そのOptionのPJSKMと、にそれぞれPortrait、Landscape、が定義されている。
図41は、統合印刷システムにおける印刷設定ファイル内のカラー印刷の方法に関する情報を表す図である。図29に示すように、カラー印刷の方法を表すプリントジョブスキーマキーワードは、[Range]にPrintPageが付加されたPrintPageOutputColorと定義されている。よって、Featureと、このFeatureのPJSKMと、にPrintPageOutputColorが定義されている。カラー印刷の方法の選択肢を表すプリントジョブスキーマキーワードはColor、Monochrome、と定義されている。よって、Optionと、そのOptionのPJSKMと、にそれぞれColor、Monochromeが定義されている。
図42は、統合印刷システムにおける印刷設定ファイル内の解像度に関する情報を表す図である。図30に示すように、解像度を表すプリントジョブスキーマキーワードは、[Range]にPrintPageが付加されたPrintPageResolutionと定義されている。よって、Featureと、このFeatureのPJSKMと、にPrintPageResolutionが定義されている。解像度の選択肢を表すプリントジョブスキーマキーワードはHigh、Standard、と定義されている。よって、Optionと、そのOptionのPJSKMと、にそれぞれHigh、Standardが定義されている。
図43は、統合印刷システムにおける印刷設定ファイル内の用紙の種類に関する情報を表す図である。図31に示すように、用紙の種類を表すプリントジョブスキーマキーワードは、[Range]にPrintPageが付加されたPrintPageMediaTypeと定義されている。よって、Featureと、このFeatureのPJSKMと、にPrintPageMediaTypeが定義されている。用紙の種類の選択肢を表すプリントジョブスキーマキーワードはPlain、Photoと定義されている。よって、Optionと、そのOptionのPJSKMと、にそれぞれPlain、Photo、が定義されている。
また、ProPhotoという「プロ写真用紙」を表すプライベートスキーマで定義されているプライベートの用紙の種類も定義されている。この「プロ写真用紙」を表すOptionと、そのOptionのPJSKMと、にProPhotoが定義されている。
このような印刷設定ファイルを使用する。このことで、プライベートスキーマで定義されているプライベートの用紙の種類の定義も、パブリックスキーマで定義されているパブリックの用紙の種類の定義と同様、プリントジョブチケットやプリントジョブ能力に取り込まれ、正しく処理される。
図44は、統合印刷システムにおける印刷設定ファイル内の両面印刷に関する情報を表す図である。図32に示すように、両面印刷を表すプリントジョブスキーマキーワードは、[Range]にPrintJobが付加されたPrintJobDuplexと定義されている。よって、Featureと、このFeatureのPJSKMと、にPrintJobDuplexが定義されている。両面印刷の選択肢を表すプリントジョブスキーマキーワードはOneSided、TwoSidedLongEdge、TwoSidedShortEdgeと定義されている。よって、Optionと、そのOptionのPJSKMと、にそれぞれOneSided、TwoSidedLongEdge、TwoSidedShortEdgeが定義されている。
図45は、統合印刷システムにおける印刷設定ファイル内の割り付け印刷に関する情報を表す図である。図33に示すように、割り付け印刷を表すプリントジョブスキーマキーワードは、[Range]にPrintJobが付加されたPrintJobNUpと定義されている。よって、Featureと、このFeatureのPJSKMと、にPrintJobNUpが定義されている。割り付け印刷の選択肢を表すプリントジョブスキーマキーワードはPagesPerSheet1、PagesPerSheet2、PagesPerSheet4、PagesPerSheet6と定義されている。よって、Optionと、そのOptionのPJSKMと、にそれぞれPagesPerSheet1、PagesPerSheet2、PagesPerSheet4、PagesPerSheet6が定義されている。
図46は、統合印刷システムにおける印刷設定ファイル内の割り付け印刷ページ順序に関する情報を表す図(その1)である。また、図47は、統合印刷システムにおける印刷設定ファイル内の割り付け印刷ページ順序に関する情報を表す図(その2)である。図34、図35に示すように、割り付け印刷ページ順序を表すプリントジョブスキーマキーワードは、前述した通り、機能:NUpのSub−Featureであるので、機能:NUpの[Range]が適用される。そのため、プリントジョブスキーマの定義上は[Range]が付加されないが、非階層構造の書式で表現される印刷設定ファイルにおいては、機能もサブ機能も同じルートを持つFeatureとして定義される。
そしてOSが、このような印刷設定ファイルからプリントジョブチケットやプリントジョブ能力を生成できるようにするため、印刷設定ファイル上では[Range]を付加して、形式上サブ機能ではなく、機能としてOSが処理できるようにしておく必要がある。
したがって、PresentationDirectionの上位である図33に示す機能:NUpと同じ、PrintJobという[Range]を付加したPJPDが、Featureと、このFeatureのPJSKMと、に定義されている。ここで、PJPDとは、PrintJobPresentationDirectionの略である。
割り付け印刷ページ順序の選択肢を表すプリントジョブスキーマキーワードは、
RightBottom、BottomRight、LeftBottom、BottomLeft、RightTop、TopRight、LeftTop、TopLeft
と定義されている。
よって、Optionと、そのOptionのPJSKMと、にそれぞれ
RightBottom、BottomRight、LeftBottom、BottomLeft、RightTop、TopRight、LeftTop、TopLeft
が定義されている。
また、RightOrBottomという「左上→右下(水平)又は左上→右下(垂直)」を表すプライベートスキーマで定義されているプライベートの割り付け印刷ページ順序も定義されている。また、LeftOrTopという「右下→左上(水平)又は右下→左上(垂直)」を表すプライベートスキーマで定義されているプライベートの割り付け印刷ページ順序も定義されている。そして、これらを表すOptionと、そのOptionのPJSKMと、にそれぞれRightOrBottom、LeftOrTop、が定義されている。
このような印刷設定ファイルを使用する。このことで、プライベートスキーマで定義されているプライベートの割り付け印刷ページ順序の定義もパブリックスキーマで定義されているパブリックの割り付け印刷ページ順序と同様プリントジョブチケットやプリントジョブ能力に取り込まれ、正しく処理される。
図48は、統合印刷システムにおける印刷設定ファイル内の用紙サイズに関する情報を表す図である。図36に示すように、用紙サイズを表すプリントジョブスキーマキーワードは、[Range]にPrintPageが付加されたPrintPageMediaSizeと定義されている。よって、Featureと、このFeatureのPJSKMと、にPrintPageMediaSizeが定義されている。用紙サイズの選択肢を表すプリントジョブスキーマキーワードはLetter、Legal、A4、B5と定義されている。よって、Optionと、そのOptionのPJSKMと、にそれぞれLetter、Legal、A4、B5、が定義されている。
また、A4Plusという「A4+」を表すプライベートスキーマで定義されているプライベートの用紙サイズも定義されている。よって、「A4+」を表すOptionと、そのOptionのPJSKMと、にA4Plusが定義されている。
このような印刷設定ファイルを使用する。このことで、プライベートスキーマで定義されているプライベートの用紙サイズの定義も、パブリックスキーマで定義されているパブリックの用紙サイズと同様に、プリントジョブチケットやプリントジョブ能力に取り込まれ、正しく処理される。
図49は、統合印刷システムにおける印刷設定ファイル内の印刷品位に関する情報を表す図である。図37に示すように、印刷品位を表すプリントジョブスキーマキーワードは、[Range]にPrintPageが付加されたPrintPageOutputQualityと定義されている。よって、Featureと、このFeatureのPJSKMと、にPrintPageOutputQualityが定義されている。
印刷品位の選択肢を表すプリントジョブスキーマキーワードはAutomatic、High、Normalと定義されている。よって、Optionと、そのOptionのPJSKMと、にそれぞれAutomatic、High、Normal、が定義されている。
図50は、統合印刷システムにおける印刷設定ファイル内の割り付け印刷出力用紙サイズに関する情報を表す図である。図38に示すように、割り付け印刷出力用紙サイズを表すプリントジョブスキーマキーワードは、[Range]にPrintPageが付加されたPrintPageOutputMediaSizeと定義されている。よって、Featureと、このFeatureのPJSKMと、にPrintPageOutputMediaSizeが定義されている。
割り付け印刷出力用紙サイズ選択肢を表すプリントジョブスキーマキーワードはLetter、Legal、A4、B5、と定義されている。よって、Optionと、そのOptionのPJSKMと、にそれぞれLetter、Legal、A4、B5、が定義されている。
また、A4Plusという「A4+」を表すプライベートスキーマで定義されているプライベートの割り付け印刷出力用紙サイズも定義されている。よって、「A4+」を表すOptionと、そのOptionのPJSKMと、にA4Plusが定義されている。
このような印刷設定ファイルを使用する。このことで、プライベートスキーマで定義されているプライベートの割り付け印刷出力用紙サイズの定義も、パブリックスキーマで定義されているパブリックの用紙サイズと同様に、プリントジョブチケットやプリントジョブ能力に取り込まれ、正しく処理される。
図51は、統合印刷システムにおける印刷設定ファイル内のコマンド制御に関する情報を表す図である。図51において、図20と同じ内容の部分に関しては、ここではその説明を省略する。図51において、CmdGetPrnJobCapsはプリンタドライバ50がアプリケーション30にプリントジョブ能力を返す時の制御コマンドの制御方法であり、制御順序がANY、制御関数の名前がCMD_ID_GETPRNJOBCAPSである。
図52は、統合印刷システムにおける各印刷制御コマンドを制御する制御関数の仕様を表す図である。図52において、図22と同じ内容の部分に関しては、ここではその説明を省略する。図51に示す各制御関数は、図52又は図22に示すような処理を行い、その結果を返す仕様となっている。なお、これらの制御関数はUIプラグイン39に実装されている。ここで、図51に示す各制御関数とは、CMD_ID_STARTJOB、CMD_ID_STARTDOC、CMD_ID_STARTPAGE、CMD_ID_ENDPAGE等である。また、図51に示す各制御関数とは、CMD_ID_ENDDOC、CMD_ID_ENDJOB、CMD_ID_GETPRNPROPERTIES、CMD_ID_GETPRNJOBCAPS等も含む。
図53は、統合印刷システムにおけるプリントジョブ能力の取得処理を表すフローチャートである。アプリケーション30がプリンタドライバ50からプリントジョブ能力を取得するためにプリントジョブ能力取得用のAPIをコールすると、UIモジュール35がOSにロードされる。そして、UIモジュール35等において、図53に示すプリントジョブ能力の取得処理が開始される(S5301)。
続いて、UIモジュール35は、図39〜図51に示す統合印刷システムにおける印刷設定ファイルをロードする(S5302)。続いて、UIモジュール35は、この印刷設定ファイルからプリントジョブ能力(第1のジョブチケット)を生成する(S5303)。
これはOSの制御であり、即ち、OSの仕様である。この時点において、生成されたプリントジョブ能力(第1のジョブチケット)は、非階層構造の表現で印刷設定に関する情報が記載されているテキスト形式の統合印刷システムにおける印刷設定ファイルから、OSにおける処理により生成されたものである。作業設定情報の一例が印刷設定ファイルである。
よって、例えば、プリントジョブスキーマにおいて、機能:NUpのSub−Featureとして定義されているPDは、図54に示すように、機能:NUpと同じルートを持つFeatureとしてプリントジョブ能力内に生成される。ここで、PDとは、PresentationDirectionの略である。より詳細な説明は、図57で後述するが、ここでns1は、パブリックのスキーマとして定義されているプリントジョブスキーマキーワードであるpjskに対して、このキーワードがプライベートのスキーマで定義されているものであることを表している。
続いて、UIプラグイン39は、ステップS5303で生成されたプリントジョブ能力の中からSub−Feature候補を検索する(S5304)。続いて、UIプラグイン39は、検索の結果、Sub−Feature候補が有るか否かを判定する(S5305)。
Sub−Feature候補が有ると判定すると(S5305においてYES)、UIプラグイン39は、そのSub−Feature候補内の情報を保存する(S5306)。例えば、図54に示す機能:PresentationDirectionは、ここではPrintJobという[Range]が付加されたFeatureを表しているが、これがSub−Feature候補である。よって、UIプラグイン39は、ステップS5306において、この中の次の情報
<pjsf:Option name=“ns1:RightBottom”>
<pjsf:Property name=“ns1:DisplayName”>
<pjsf:Value xsi:type=“xsd:string”>Hori
zontally from top left to bottom right</pjsf:Value>
</pjsf:Property>
</pjsf:Option>
が保存される。
続いて、UIプラグイン39は、ステップS5304で検索してステップS5305で見つけたSub−Feature候補を基に、プライベートのSub−Featureを生成する(S5307)。例えば、プリントジョブスキーマの定義において、PresentationDirectionは、機能:NUpのSub−Featureである。よって、図55に示すように、機能:NUp内のSub−Featureとして、
<pjsf:Feature name=“ns1: PresentationDir
ection”>
</pjsf:Feature>
というプライベートのSub−Featureが、生成される。
続いて、UIプラグイン39は、生成したプライベートのSub−Featureに対して、ステップS5306で保存されているSub−Feature候補内の情報をコピーする(S5308)。
例えば、図55に示す例では、
<pjsf:Option name=“ns1:RightBottom”>
<pjsf:Property name=“ns1:DisplayName”>
<pjsf:Value xsi:type=“xsd:string”>Hori
zontally from top left to bottom right</pjsf:Value>
</pjsf:Property>
</pjsf:Option>
という情報が、ステップS5307で生成されたプライベートのSub−FeatureであるPresentationDirectionにコピーされる。
この時点において、ns1のキーワードとして表される情報に関しては、プライベートのスキーマで定義されている情報であることを表し、OSにより、プライベートのスキーマで定義されている情報として取り扱われる。
続いて、UIプラグイン39は、生成したプライベートのSub−Featureと、そのSub−Feature内にコピーした情報と、に対して、それらの名前空間をプライベートからパブリックに変更する(S5309)。そして、UIプラグイン39は、ステップS5304に戻る。
例えば、図55に示す例では、ns1のキーワードとして表される情報である
<pjsf:Feature name=“ns1: PresentationDir
ection”>
<pjsf:Option name=“ns1:RightBottom”>
<pjsf:Property name=“ns1:DisplayName”>
<pjsf:Value xsi:type=“xsd:string”>Hor
izontally from top left to bottom right</pjsf:Value>
</pjsf:Property>
</pjsf:Option>
</pjsf:Feature>
に対して、ns1→pjskというように名前空間がプライベートからパブリックなものに変更され、図56に示すように、
<pjsf:Feature name=“pjsk: PresentationDi
rection”>
<pjsf:Option name=“pjsk:RightBottom”>
<pjsf:Property name=“pjsk:DisplayName”
>
<pjsf:Value xsi:type=“xsd:string”>Hor
izontally from top left to bottom right</pjsf:Value>
</pjsf:Property>
</pjsf:Option>
</pjsf:Feature>
というプリントジョブ能力(第2のジョブチケット)の一部が完成する。
一方、ステップS5305の判定において、Sub−Feature候補が無いと判定すると(S5305においてNO)、UIプラグイン39は、その時点で生成されている最新のプリントジョブ能力を戻り値にセットする(S5310)。そして、UIプラグイン39は、プリントジョブ能力の取得処理を終了する(S5311)。
これにより、後述する図57〜図67に示すような、プリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力(第2のジョブチケット)が完成する。以上述べたように、この印刷設定ファイルに設定されている特定の印刷設定情報を用いて、非階層構造を有する第1のジョブチケットを生成する。当該特定の印刷設定情報は、第1ジョブチケットのプライベート領域に対して設定される。更に、第1のジョブチケットから、特定の印刷設定情報を含む、階層構造を有する第2のジョブチケットを生成する。ここで、特定の印刷設定情報とは、PresentationDirectionである。
図54は、図53に示す統合印刷システムにおけるプリントジョブ能力の取得処理のステップS5303において生成されたプリントジョブ能力の一部を表す図である。例えばプリントジョブスキーマにおいて機能:NUpのSub−Featureとして定義されているPresentationDirectionは、機能:NUpと同じルートを持つFeatureとしてプリントジョブ能力内に生成される。
より詳細な説明は図57で後述するが、ここでns1は、パブリックのスキーマとして定義されているプリントジョブスキーマキーワードであるpjskに対して、このキーワードがプライベートのスキーマで定義されているものであることを表している。
図55は、図53に示す統合印刷システムにおけるプリントジョブ能力の取得処理のステップS5307、S5308において生成されたプリントジョブ能力の一部を表す図である。例えば、プリントジョブスキーマの定義において、PresentationDirectionは、機能:NUpのSub−Featureである。よって、機能:NUp内のSub−Featureとして、
<pjsf:Feature name=“ns1: PresentationDir
ection”>
</pjsf:Feature>
というプライベートのSub−Featureが生成される。
ここで生成されたプライベートのSub−Featureに対して、図53のステップS5306で保存されているSub−Feature候補内の
<pjsf:Option name=“ns1:RightBottom”>
<pjsf:Property name=“ns1:DisplayName”>
<pjsf:Value xsi:type=“xsd:string”>Hori
zontally from top left to bottom right</pjsf:Value>
</pjsf:Property>
</pjsf:Option>
という情報が、プライベートのSub−FeatureであるPresentationDirectionにコピーされる。
この時点において、ns1のキーワードとして表される情報に関しては、プライベートのスキーマで定義されている情報であることを表し、OSにより、プライベートのスキーマで定義されている情報として取り扱われる。
図56は、図53に示す統合印刷システムにおけるプリントジョブ能力の取得処理のステップS5309において生成されたプリントジョブ能力の一部を表す図である。図53のステップS5307において生成されたプライベートのSub−Featureと、図53のステップS5308においてそのSub−Feature内にコピーされた情報とに対して次の処理がなされる。即ち、図53のステップS5309において、Sub−Feature内にコピーされた情報の名前空間をプライベートからパブリックに変更する。これにより、例えば、図55に示す例で、ns1のキーワードとして表される情報に対して、ns1→pjskというように名前空間がプライベートからパブリックなものに変更される。そして、下記の情報が生成される。
<pjsf:Feature name=“ns1: PresentationDir
ection”>
<pjsf:Option name=“ns1:RightBottom”>
<pjsf:Property name=“ns1:DisplayName”>
<pjsf:Value xsi:type=“xsd:string”>Hor
izontally from top left to bottom right</pjsf:Value>
</pjsf:Property>
</pjsf:Option>
</pjsf:Feature>
、
<pjsf:Feature name=“pjsk: PresentationDi
rection”>
<pjsf:Option name=“pjsk:RightBottom”>
<pjsf:Property name=“pjsk:DisplayName”
>
<pjsf:Value xsi:type=“xsd:string”>Hor
izontally from top left to bottom right</pjsf:Value>
</pjsf:Property>
</pjsf:Option>
</pjsf:Feature>
というプリントジョブ能力が完成する。
図57〜図67は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力を表す図である。これらの図において、図27〜図38で説明した内容に関しては、ここではその説明を省略する。
図57は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力の名前空間、給紙方法を表す図である。図57において、6行目にはプライベートのプリントジョブスキーマの名前空間が定義されている。この定義により、ns1として表される情報は、プライベートのスキーマとして定義されているものであることが分かる。図53のステップS5303において、統合印刷システムにおける印刷設定ファイルからこのプリントジョブ能力が生成される。
図58は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力の印刷の向きを表す図である。図53のステップS5303において、統合印刷システムにおける印刷設定ファイルからこのプリントジョブ能力が生成される。
図59は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力のカラー印刷の方法を表す図である。図53のステップS5303において、統合印刷システムにおける印刷設定ファイルからこのプリントジョブ能力が生成される。
図60は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力の解像度を表す図である。図53のステップS5303において、統合印刷システムにおける印刷設定ファイルからこのプリントジョブ能力が生成される。
図61は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力の用紙の種類を表す図である。図53のステップS5303において、統合印刷システムにおける印刷設定ファイルからこのプリントジョブ能力が生成される。なお、オプション:ProPhotoは「プロ写真用紙」を表すプライベートのOptionである。
図62は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力の両面印刷の方法を表す図である。図53のステップS5303において、統合印刷システムにおける印刷設定ファイルからこのプリントジョブ能力が生成される。
図63は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力の割り付け(N−UP)印刷を表す図(その1)である。また、図64は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力の割り付け(N−UP)印刷を表す図(その2)である。図53のステップS5303〜S5309において、統合印刷システムにおける印刷設定ファイルからこのプリントジョブ能力が生成される。なお、オプション:RightOrBottomは「左上→右下(水平)又は左上→右下(垂直)」を表すプライベートのOptionである。また、オプション:LeftOrTopは「右下→左上(水平)又は右下→左上(垂直)」を表すプライベートのOptionである。
図65は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力の用紙サイズを表す図である。図53のステップS5303において、統合印刷システムにおける印刷設定ファイルからこのプリントジョブ能力が生成される。なお、A4Plusは「A4+」を表すプライベートのOptionである。
図66は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力の印刷品位を表す図である。図53のステップS5303において、統合印刷システムにおける印刷設定ファイルからこのプリントジョブ能力が生成される。
図67は、統合印刷システムにおけるプリンタドライバ50を介して取得することができるプリンタ3のプリントジョブ能力の割り付け印刷出力用紙サイズを表す図である。図53のステップS5303において、統合印刷システムにおける印刷設定ファイルからこのプリントジョブ能力が生成される。なお、A4Plusは「A4+」を表すプライベートのOptionである。
以下、図68に示すメモリマップを参照して、本実施形態に係る情報処理装置及び周辺装置からなる周辺装置制御システムで読み出し可能なデータ処理プログラムの構成について説明する。
図68は、周辺装置制御システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを示す図である。なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報、作成者等もこの記憶媒体に記憶されているものとする。また、特に図示しないが、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記録媒体に記録されていてもよい。
図68において、64は記憶媒体であり、ここではハードディスクで構成されているものとする。65は、ディレクトリ情報管理部であり、各種プログラムに従属するデータがこのディレクトリ情報管理部65で管理されている。66は、プログラム格納部であり、各種プログラムを情報処理装置にインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に解凍するためのプログラム等も記憶されている。
また、本実施形態における図23〜図25、図53にそれぞれ示す各フローチャートの実行によって実現できる各機能が、外部からインストールされるプログラムによって、情報処理装置によって実現されるようにしてもよい。そして、その場合、CD−ROMやフラッシュメモリやフレキシブルディスク等の記憶媒体により、或いはネットワークを介して外部の記憶媒体から、プログラムを含む情報群が情報処理装置や周辺装置に供給される場合でも、本実施形態は適用される。
以上のように、本実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本実施形態の目的が達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が本実施形態の新規な機能を実現することになる。よって、そのプログラムコードを記憶した記憶媒体は、本実施形態を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、EEPROM等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、本実施形態の機能が実現されるだけでない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
以上、説明したように、本実施形態では、印刷制御用に使用する非階層構造の印刷設定ファイルから非階層構造のプリントジョブ能力(第1のジョブチケット)を生成する。そして、この第1のジョブチケットから階層構造のプリントジョブ能力(第2のジョブチケット)を生成する。このことにより、印刷設定ファイルと印刷制御構造体とを利用した従来の印刷システムと、プリントジョブチケット/プリントジョブ能力(ジョブチケット)を利用した新しい印刷システムと、を統合した周辺装置制御システムを実現することができる。
本実施形態では、アプリケーション30の一例として印刷機能を備えるテキストエディタを挙げた。しかしながら、この例に限られることなく、例えば周辺装置から情報を取得して、それを利用するような任意のアプリケーションで本実施形態は実現可能であり、有効である。
また、本実施形態では、プリンタの例としてカラーインクジェットプリンタを使用したが、この例に限られることなく、例えば、モノクロLBP等の任意のプリンタを使用することができる。
また、本実施形態では、情報処理装置としてパーソナルコンピュータを想定した。しかしながら、この例に限られることなく、例えばDVDビデオプレーヤー、ゲーム、セットトップボックス、インターネット家電等、同様な使用方法が可能な任意の端末に対して実現することができ、有効である。
また、本実施形態では、周辺装置としてプリンタを例示しているが、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置等の何れかであっても、本実施形態の適用対象となり得る。
また、本実施形態では、OSに例としてWindows(登録商標) XPを使用したが、これらのOSに限られることなく、任意のOSを使用することができる。
また、本実施形態では、PC1とプリンタ3との間のインタフェースとして、USBインタフェースを用いた。しかしながら、このインタフェースに限られることなく、例えば、Ethernet(登録商標)、無線LAN、IEEE1394、Bluetooth、IrDA、パラレル、シリアル等の任意のインタフェースを用いるようにしてもよい。
上述したように、本実施形態によれば、非階層構造の印刷設定ファイルから階層構造のジョブチケットを効率良く、正確に生成することができる。
また、本実施形態によれば、OS標準の機能を使って第1のジョブチケットを生成するので、正しいジョブチケットを効率良く生成することができる。
また、本実施形態によれば、周辺装置又は周辺装置制御用ドライバが備える印刷設定に関する情報を第1のジョブチケットから取得して保存し、その情報を第2のジョブチケットにコピーして活用するので、正しいジョブチケットを効率良く生成することができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。