(57)【要約】【課題】、中間データの生成に関する柔軟性を向上させることのできる情報処理装置、中間データ生成方法、及び中間データ生成プログラムの提供を目的とする。【解決手段】印刷設定情報を入力させる画面を表示させる表示手段と、前記印刷設定情報についてメモリに保持される値と中間データに出力する値との対応情報を管理する対応情報管理手段と、前記対応情報管理手段に基づいて前記印刷設定情報を前記中間データに変換する変換手段とを有することにより上記課題を解決する。【選択図】図１
2009251898.tif 000002
【特許請求の範囲】
【請求項１】
印刷設定情報を入力させる画面を表示させる表示手段と、
前記印刷設定情報についてメモリに保持される値と中間データに出力する値との対応情報を管理する対応情報管理手段と、
前記対応情報管理手段に基づいて前記印刷設定情報を前記中間データに変換する変換手段とを有することを特徴とする情報処理装置。
【請求項２】
前記対応情報管理手段は、前記中間データに出力する情報を出力順に管理することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記対応情報管理手段は、
前記印刷設定情報についてメモリに保持される値と当該値の意味を示す情報との第一の対応情報と
前記値の意味を示す情報と前記中間データに出力する値との第二の対応情報とを含むことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
コンピュータが実行する中間データ生成方法であって、
印刷設定情報を入力させる画面を表示させる表示手順と、
前記印刷設定情報についてメモリに保持される値と中間データに出力する値との対応情報を管理する対応情報管理手段に基づいて前記印刷設定情報を前記中間データに変換する変換手順とを有することを特徴とする中間データ生成方法。
【請求項５】
前記対応情報管理手段は、前記中間データに出力する情報を出力順に管理することを特徴とする請求項４記載の中間データ生成方法。
【請求項６】
前記対応情報管理手段は、
前記印刷設定情報についてメモリに保持される値と当該値の意味を示す情報との第一の対応情報と
前記値の意味を示す情報と前記中間データに出力する値との第二の対応情報とを含むことを特徴とする請求項４又は５記載の中間データ生成方法。
【請求項７】
コンピュータに、
印刷設定情報を入力させる画面を表示させる表示手順と、
前記印刷設定情報についてメモリに保持される値と中間データに出力する値との対応情報を管理する対応情報管理手段に基づいて前記印刷設定情報を前記中間データに変換する変換手順とを実行させるための中間データ生成プログラム。
【請求項８】
前記対応情報管理手段は、前記中間データに出力する情報を出力順に管理することを特徴とする請求項７記載の中間データ生成プログラム。
【請求項９】
前記対応情報管理手段は、
前記印刷設定情報についてメモリに保持される値と当該値の意味を示す情報との第一の対応情報と
前記値の意味を示す情報と前記中間データに出力する値との第二の対応情報とを含むことを特徴とする請求項７又は８記載の中間データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、中間データ生成方法、及び中間データ生成プログラムに関し、特に印刷データに関する中間データを生成する情報処理装置、中間データ生成方法、及び中間データ生成プログラムに関する。
【背景技術】
【０００２】
プリンタドライバの主な機能は、ユーザより印刷設定の入力を受け付けることと、アプリケーションによって作成された文書データ及び印刷設定情報をリンタに解釈可能な印刷データ（ＰＤＬ（Page Description Language）データ）に変換することである。
【０００３】
ここで、ＰＤＬデータの仕様は、プリンタの機種等に応じて異なる。そこで、従来、文書データ及び印刷設定情報からＰＤＬデータへの変換を直接的に行うのではなく、プリンタの機種に非依存な中間言語による中間データへ変換を行い、中間データに基づいてＰＤＬデータを作成するという形態が用いられている。
【特許文献１】特願２００１−３５０６０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来、中間データの生成（変換）ロジックはプログラム内にハードコーディングされていた。したがって、プリンタの機能強化等に伴って印刷設定情報の仕様の変更又は中間データの仕様の変更が発生するたびに、中間データの生成処理においてもソースコードの修正、コンパイル、リンク、及びインストールといった煩雑な作業が必要とされた。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、中間データの生成に関する柔軟性を向上させることのできる情報処理装置、中間データ生成方法、及び中間データ生成プログラムの提供を目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、本発明は、印刷設定情報を入力させる画面を表示させる表示手段と、前記印刷設定情報についてメモリに保持される値と中間データに出力する値との対応情報を管理する対応情報管理手段と、前記対応情報管理手段に基づいて前記印刷設定情報を前記中間データに変換する変換手段とを有することを特徴とする。
【０００７】
このような情報処理装置では、中間データの生成に関する柔軟性を向上させることができる。
【発明の効果】
【０００８】
本発明によれば、中間データの生成に関する柔軟性を向上させることのできる情報処理装置、中間データ生成方法、及び中間データ生成プログラムを提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるシステム構成例を示す図である。同図において、ホストコンピュータ１０とプリンタ２０とはＬＡＮ（Local Area Network）等のネットワーク（有線又は無線の別は問わない。）によって接続されている。
【００１０】
ホストコンピュータ１０は、プリンタ２０に対して印刷ジョブの実行を要求するコンピュータであり、ＯＳ１１、アプリケーション１２、及びプリンタドライバ１３等のソフトウェアプログラムを有する。これらのプログラムは、ホストコンピュータ１０のメモリにロードされ、ホストコンピュータ１０のＣＰＵにその機能を実現させる。
【００１１】
ＯＳ１１は、いわゆるＯＳ（Operating System）である。ＯＳ１１は、ＤＥＶＭＯＤＥ構造体１１１をメモリ上で管理する。ＤＥＶＭＯＤＥ構造体１１１は、印刷設定情報（印刷条件）に関するパラメータの値を管理するための構造体である。
【００１２】
図２は、本実施の形態におけるＤＥＶＭＯＤＥ構造体の構成例を示す図である。同図では、ＤＥＶＭＯＤＥ構造体１１１に属する一部のメンバ変数の変数名及びデータ型とその値の例とが示されている。
【００１３】
同図に示されるように、ＤＥＶＭＯＤＥ構造体は、Ｐｕｂｌｉｃ領域とＰｒｉｖａｔｅ領域とを有する。Ｐｕｂｌｉｃ領域の構成（メンバ変数の構成）はＯＳ１１によって定められており、プリンタドライバのベンダは自由に変更することはできない。したがって、Ｐｕｂｉｃ領域は、複数のプリンタドライバに対して共通のものとなる。
【００１４】
一方、Ｐｒｉｖａｔｅ領域の構成は、プリンタドライバのベンダが任意に定義可能である。したがって、プリンタドライバの製品ごとに異なりうる。図中の定義内容は、プリンタドライバ１３（プリンタ２０）に対応するものであるとする。
【００１５】
図１に戻る。  アプリケーション１２は、ユーザによる操作に応じて、印刷対象となる文書データを生成する。
【００１６】
プリンタドライバ１３は、いわゆるプリンタドライバであり、ユーザインタフェース部１４及び描画部１５等を有する。ユーザインタフェース部１４は、印刷ジョブに対する印刷設定情報（印刷条件等）の入力を受け付けるためのＧＵＩ（Graphical User Interface）である印刷設定ダイアログをホストコンピュータ１０の表示装置に表示させる。ユーザインタフェース部１４は、印刷設定ダイアログに入力された設定値を、ＤＥＶＭＯＤＥ構造体１１１に登録（格納）する。
【００１７】
描画部１５は、ＤＥＶＭＯＤＥ構造体１１１に登録された設定値に基づいて、印刷ジョブの対象とされた文書データ（アプリケーション１２によって生成された文書データ）をプリンタ２０が解釈可能なＰＤＬ（Page Description Language）データ５２に変換する。描画部１５は、レンダリング部１５１、中間言語出力部１５２、及びＰＤＬ出力部１５３等を有する。
【００１８】
レンダリング部１５１は、印刷ジョブの対象とされた文書データをアプリケーション１２に非依存なラスタデータに変換し、ホストコンピュータ１０のメモリ上に描画する。
【００１９】
中間言語出力部１５２は、ＤＥＶＭＯＤＥ構造体１１１に設定された情報を、中間データ５１に変換する。中間データ５１は、各種存在するＰＤＬに対して非依存な（プリンタ２０の機種に対して非依存な）中間言語によって記述されるデータである。本実施の形態において、中間データ５１は、以下のような構造を有する。
【００２０】
図３は、本実施の形態における中間データの構造例を示す図である。同図において、中間データ５１は、Ｊｏｂ情報、Ｐａｇｅ情報、及びＤｏｃ情報を含む。Ｊｏｂ情報は、印刷ジョブの制御に関する情報である。Ｐａｇｅ情報は、ページ単位に関する情報である。Ｄｏｃ情報は、レンダリング部１５１によって描画されたラスタデータに関する情報である。
【００２１】
各情報は、それぞれ階層的な構造を有する。例えば、Ｐａｇｅ情報は、一つ以上のＦｅａｔｕｒｅ情報を含む。また、各Ｆｅａｔｕｒｅ情報は、印刷に関する機能単位の情報であり、一つ以上のＡｔｔｒｉｂｕｔｅ情報を含む。Ａｔｔｒｉｂｕｔｅ情報は、印刷設定に関する属性（印刷属性）であり、その一つがＤＥＶＭＯＤＥ構造体１１１の一つのメンバ変数に対応する。
【００２２】
また、図４は、本実施の形態における中間データの具体例を示す図である。同図に示されるように本実施の形態における中間データ５１は、ＸＭＬ（eXtensible Markup Language）形式によって記述される。但し、中間データ５１の形式がＸＭＬ形式に限定されることを意図するものではない。同図において、Ｊｏｂ要素５１１（＜Ｊｏｂ＞タグで囲まれた要素）、Ｐａｇｅ要素５１２、Ｄｏｃ要素５１３のそれぞれは、図３におけるＪｏｂ情報、Ｐａｇｅ情報、Ｄｏｃ情報に相当する。
【００２３】
また、Ｐａｇｅ要素５１２には、一つのＦｅａｔｕｒｅ情報として、＜ＳｒｃＰａｇｅｒＩｎｆｏ＞タグで囲まれたＳｒｃＰａｐｅｒＩｎｆｏ要素が例示されている。「ＳｒｃＰａｇｅｒＩｎｆｏ」は、機能の名前（各Ｆｅａｔｕｒｅ情報に対して付けられる名前。以下、「Ｆｅａｔｕｒｅ名」という。）である。ＳｒｃＰａｐｅｒＩｎｆｏ要素における各属性（例えば、ｏｒｉｅｎｔａｔｉｏｎ、ｍｅａｓｕｒｅ等）は、Ａｔｔｒｉｂｕｔｅ情報に相当する。
【００２４】
すなわち、中間言語出力部１５２は、図２に示されるようなＤＥＶＭＯＤＥ構造体１１１を、図４に示されるような中間データ５１に変換する。この際、中間言語出力部１５２は、変換マップファイル１６及び変換ルールファイル１７に格納された変換規則に基づいて斯かる変換を行う。すなわち、本実施の形態において、中華データ５１の生成方法（中間データ５１への変換方法）は、固定的にプログラム内にハードコーディングされているのではなく、変換マップファイル１６及び変換ルールファイル１７といった外部ファイル内に定義されている。なお、変換マップファイル１６及び変換ルールファイル１７は、例えば、ホストコンピュータ１０のＨＤＤに保存されている。
【００２５】
図５は、変換マップファイルの定義例を示す図である。同図において、変換マップファイル１６には、Ｆｅａｔｕｒｅ情報ごとに当該Ｆｅａｔｒｕｒｅ情報に属するＡｔｔｒｉｂｕｔｅ情報について、ＤＥＶＭＯＤＥ構造体における値とその値の意味との対応情報が定義されている。
【００２６】
＜Ｆｅａｔｕｒｅ＞タグで囲まれたＦｅａｔｕｒｅ要素が一つのＦｅａｔｕｒｅ情報に対応する。Ｆｅａｔｕｒｅ要素は、一つ以上のｍａｐ要素を子要素として含む。ｍａｐ要素は、ＤＥＶＭＯＤＥ構造体における値とその意味との対応情報であり、そのｎａｍｅ属性によって印刷属性の名前（属性名）が指定されている。
【００２７】
例えば、同図において、ｍａｐ要素１６１のｎａｍｅ属性の値は「ｏｒｉｅｎｔａｔｉｏｎ」である。これにより、当該ｍａｐ要素１６１はＤＥＶＭＯＤＥ構造体におけるｄｍＯｒｉｅｎｔａｔｉｏｎメンバ変数に対応することが分かる。斯かる対応は、中間言語出力部１５２が知っている（中間言語出力部１５２にハードコーディングされている。）。ｍａｐ要素１６１の子要素である各Ｖａｌｕｅ要素において、ｄｍＯｒｉｅｎｔａｔｉｏｎメンバ変数が取り得る値（ｓｒｃ）とその意味を示す文字列（ｄｓｔ）とが定義されている。同図によれば、ｄｍＯｒｉｅｎｔａｔｉｏｎメンバ変数の値「１」は「ｐｏｒｔｒａｉｔ」を意味し、「２」は「ｌａｎｄｓｃａｐｅ」を意味することが定義されている。
【００２８】
なお、変換マップファイル１６には、少なくとも中間データ５１に変換するにあたって値に変換が必要な印刷属性（すなわち、ＤＥＶＭＯＤＥ構造体１１１の値をそのまま中間データ５１において利用できない印刷属性）について定義されていればよい。
【００２９】
また、図６は、変換ルールファイルの定義例を示す図である。変換ルールファイル１７には中間データ５１に対する情報の出力順、及び出力内容（出力する情報（属性等）の項目名、初期値、値の範囲（取り得る値））等が定義されている。
【００３０】
ルート要素は、ＥＰＴＤ要素である。ＥＰＴＤ要素には、中間データ５１の形式のバージョン等、基本情報が定義されている。
【００３１】
ＥＰＴＤ要素は、Ｊｏｂ情報、Ｐａｇｅ情報、及びＤｏｃ情報のそれぞれに対応する三つのＳｃｏｐｅ要素を子要素として含む。Ｓｃｏｐｅ要素のｎａｍｅ属性によって各Ｓｃｏｐｅ要素が対応する情報が識別される。例えば、同図においてＳｃｏｐｅ要素１７１のｎａｍｅ属性の値は「Ｐａｇｅ」である。したがって、Ｓｃｏｐｅ要素１７１は、Ｐａｇｅ情報を出力するための定義であることが分かる。
【００３２】
各Ｓｃｏｐｅ要素は、対応する情報（Ｊｏｂ情報、Ｐａｇｅ情報、又はＤｏｃ情報）に属するＦｅａｔｕｒｅ情報ごとにその出力情報が定義されたＦｅａｔｕｒｅ要素を子要素として含む。Ｆｅａｔｕｒｅ要素は、対応するＦｅａｔｕｒｅ情報に属するＡｔｔｒｉｂｕｔｅ情報ごとにその出力情報が定義されたＡｔｔｒｉｂｕｔｅ要素を子要素として含む。
【００３３】
Ａｔｔｒｉｂｕｔｅ要素のｎａｍｅ属性には、対応する印刷属性が定義される。また、そのｄｅｆａｕｌｔ属性には、対応する印刷属性の初期値が定義されている。また、上記したｏｒｉｅｎｔａｔｉｏｎ属性のように値が選択的な印刷属性については、Ａｔｔｒｉｂｕｔｅ要素の子要素であるＶａｌｕｅ要素によって値の意味（すなわち、変換マップファイル１６によって解釈される値の意味）と、中間データ５１に出力する値との対応情報が定義されている。一つのＶａｌｕｅ要素は、一つの値に対応する。Ｖａｌｕｅ要素のｓｒｃ属性は、値の意味を示し、ｄｓｔ属性は中間データ５１へ出力する値（変換後の値）を示す。
【００３４】
例えば、同図では、便宜上一つのＦｅａｔｕｒｅ要素１７１１について詳述されている。Ｆｅａｔｕｒｅ要素１７１１は、そのｎａｍｅ属性の値より、中間データ５１におけるＳｒｃＰａｐｅｒＩｎｆｏ要素を出力するための定義であることが識別される。Ｆｅａｔｕｒｅ要素１７１１の子要素の一つであるＡｔｔｒｉｂｕｔｅ要素１７１１ａのｎａｍｅ属性の値は「ｏｒｉｅｎｔａｔｉｏｎ」である。したがって、Ａｔｔｒｉｂｕｔｅ要素１７１１ａは、ｏｒｉｅｎｔａｔｉｏｎ属性に対する定義であることが識別される。Ａｔｔｒｉｂｕｔｅ要素１７１１ａには、ｏｒｉｅｎｔａｔｉｏｎ属性が取り得る値の意味ごとにＶａｌｕｅ要素が子要素として含まれている。この中で、例えば、一番目のＶａｌｕｅ要素では、ｓｒｃ属性に「ｐｏｒｔｒａｉｔ」が、ｄｓｔ属性に「ＰＯＲＴＲＡＩＴ」が定義されている。したがって、この場合「ＰＯＲＴＲＡＩＴ」が中間データ５１に出力される。
【００３５】
なお、変換ルールファイル１７において、各要素（Ｓｃｏｐｅ、Ｆｅａｔｕｒｅ、Ａｔｔｒｉｂｕｔｅ）の並び順が中間データ５１に対する出力順の定義となる。
【００３６】
図１に戻る。ＰＤＬ出力部１５３は、中間データ５１とレンダリング部１５１によって描画されたラスタデータとに基づいて、プリンタ２０に対応したＰＤＬによるＰＤＬデータ５２を生成する。ホストコンピュータ１０は、ＰＤＬデータ５２をプリンタ２０に送信することにより印刷ジョブの実行を指示する。プリンタ２０は、ＰＤＬデータ５２に基づいて印刷ジョブを実行する。
【００３７】
中間言語出力部１５２について更に詳しく説明する。図７は、中間言語出力部の構成例を示すクラス図である。同図において、中間言語出力部１５２は、インタフェースクラス１５２１、変換クラス１５２２、変換マップクラス１５２３、要素変換クラス１５２４、変換ルールクラス１５２５、及び要素変換ルールクラス１５２６等を含む。
【００３８】
インタフェースクラス１５２１は、呼び出し元（レンダリング部１５１）より中間データ５１の生成要求を受け付けるためのクラスである。変換クラス１５２２は、ＤＥＶＭＯＤＥ構造体１１１から中間データ５１への変換処理を制御するクラスである。要素変換クラス１５２４は、変換マップファイル１６の定義内容をメモリ上において保持するとともに、変換マップファイル１６の定義内容に従った変換を行うクラスである。要素変換クラス１５２４のインスタンス（要素変換オブジェクト１５２４Ａ）は、変換マップファイル１６のＦｅａｔｕｒｅ要素ごとにインスタンス化される。
【００３９】
変換ルールクラス１５２５及び要素変換ルールクラス１５２６は、変換ルールファイル１７の定義内容をメモリ上において保持するとともに、変換ルールファイル１７の定義内容に従った処理を行うクラスである。より詳しくは、要素変換ルールクラス１５２６は、変換ルールファイル１７の要素（Ｓｃｏｐｅ、Ｆｅａｔｕｒｅ、Ａｔｔｒｉｂｕｔｅ、Ｖａｌｕｅ）ごとにインスタンス化され、それぞれのインスタンス（要素変換ルールオブジェクト１５２６Ａ）は、対応する要素に定義された情報を格納する。変換ルールクラス１５２５は、要素変換ルールオブジェクト１５２６Ａを集約する。変換マップクラス１５２３は、要素変換オブジェクト１５２４Ａと、変換ルールファイル１７におけるＦｅａｔｕｒｅ要素に対応する要素変換ルールオブジェクト１５２６Ａとの関連付けを管理する。
【００４０】
以下、プリンタドライバ１３の処理手順について説明する。図８は、プリンタドライバによる中間データの生成処理を説明するためのシーケンス図である。同図では、図７におけるクラスのインスタンス（オブジェクト）が示されている。各オブジェクトの符号は、図７において対応するクラスに付されている符号の末尾に「Ａ」が付加されたものである。
【００４１】
レンダリング部１５１は、メモリ上にラスタデータをレンダリング（描画）すると、中間言語部１５２のインタフェースオブジェクト１５２１Ａに対して、ＤＥＶＭＯＤＥ構造体１１１から中間データ１５１への変換を要求する（Ｓ１０１）。インタフェースオブジェクト１５２１Ａは、当該変換要求を変換オブジェクト１５２２Ａに通知する（Ｓ１０２）。
【００４２】
変換オブジェクト１５２２Ａは、変換マップオブジェクト１５２３Ａに対して変換マップファイル１６の定義情報のロードを要求する（Ｓ１０３）。変換マップオブジェクト１５２３Ａは、変換マップファイル１６を読み込み、その定義情報におけるＦｅａｔｕｒｅ要素（図５参照）ごとに要素変換オブジェクト１５２４Ａをメモリ上に生成し、生成した要素変換オブジェクト１５２４Ａに変換マップファイル１６の内容を格納する（Ｓ１０４）。
【００４３】
図９は、変換マップファイルの定義情報がオブジェクトとしてロードされた状態を示す図である。
【００４４】
同図に示されるように、各要素変換オブジェクト１５２４Ａには、対応するＦｅａｔｕｒｅ要素に属するｍａｐ要素に定義されている対応情報が格納される。例えば、同図の要素変換オブジェクト１５２４Ａ−２は、図５のｍａｐ要素１６１に対応する。このように、要素変換オブジェクト１５２４Ａには、ｍａｐ要素の名前（ｏｒｉｅｎｔａｔｉｏｎ、ｓｉｚｅ等）と、その対応情報とが関連付けられて格納される。
【００４５】
また、変換マップオブジェクト１５２３Ａは、各要素変換オブジェクト１５２４Ａと、当該要素変換オブジェクト１５２４Ａが対応するＦｅａｔｕｒｅ要素のｎａｍｅ属性の値（Ｆｅａｔｕｒｅ名）と対応付けを管理する。同図では、「ＰａｇｅＳｒｃＩｎｆｏ」と要素変換オブジェクト１５２４Ａ−２とが関連付けられて管理されていることが示されている。なお、変換マップオブジェクト１５２３ＡにおけるＦｅａｔｕｒｅ名と要素変換オブジェクト１５２４Ａとの関連付けや、各要素変換オブジェクト１５２４Ａにおける対応情報の管理には、ＳＴＬ（Standard Template Library）のコンテナの一つであるｍａｐを用いるとよい。
【００４６】
図９に示されるような情報（オブジェクト群）がメモリ上に形成されると、変換オブジェクト１５２２Ａは、変換ルールオブジェクト１５２５Ａに対して変換ルールファイル１７の読み込みを指示する（Ｓ１０５）。変換ルールオブジェクト１５２５Ａは、変換ルールファイル１７（図６参照）を読み込み（Ｓ１０６）、変換ルールファイル１７内に定義されている要素（ＥＰＴＤ、Ｓｃｏｐｅ、Ｆｅａｔｕｒｅ、Ａｔｔｒｉｂｕｔｅ、Ｖａｌｕｅ）ごとに要素変換ルールオブジェクトを生成する（Ｓ１０７〜Ｓ１１１）。この際、変換ルールオブジェクト１５２５Ａは、各要素変換ルールオブジェクト１５２６Ａが対応する要素に定義されている情報を各オブジェクトに設定する。なお、ここで要素ごととは、要素の種別ごとではない。すなわち、三つのＳｃｏｐｅ要素に対しては三つの要素変換ルールオブジェクト１５２６Ａが生成される。
【００４７】
続いて、変換ルールオブジェクト１５２５Ａは、変換ルールファイル１７における各要素の親子関係に対応させて、各要素変換ルールオブジェクト１５２６Ａの間に関連付けを形成する（Ｓ１１２）。これにより、要素変換ルールオブジェクト１５２５Ａは、メモリ上において以下のようなツリー構造を形成する。
【００４８】
図１０は、変換ルールファイルの定義情報がオブジェクトとしてロードされた状態を示す図である。
【００４９】
同図における各矩形は全て要素変換ルールオブジェクト１５２５Ａである。矩形内の文字列はそのオブジェクトが対応する要素名を示す。また、（）内の文字列はそのオブジェクトが対応する要素のｎａｍｅ属性の値を示す。なお、図１０は、図６の内容の一部を表現したものである。また、Ｊｏｂオブジェクト及びＤｏｃオブジェクトには子オブジェクトが関連付けられていないが、これは便宜上省略されたものである。
【００５０】
続いて、変換オブジェクト１５２２Ａは、要素変換オブジェクト１５２４Ａと要素変換ルールオブジェクト１５２６Ａとの関連付けを変換マップオブジェクト１５２３Ａに要求する（Ｓ１１４）。変換マップオブジェクト１５２３Ａは、Ｆｅａｔｕｒｅ名が一致する要素変換オブジェクト１５２４Ａと要素変換ルールオブジェクト１５２６Ａとを関連付け、その関連付け情報を管理する。
【００５１】
図１１は、要素変換オブジェクトと要素変換ルールオブジェクトとが関連付けられた状態を示す図である。同図において、破線が両オブジェクト間の関連を示す。このように、Ｆｅａｔｕｒｅ名が一致する要素変換オブジェクト１５２４Ａと要素変換ルールオブジェクト１５２６Ａとが変換マップオブジェクト１５２３Ａによって一対一に関連付けられる。
【００５２】
続いて、変換オブジェクト１５２２Ａは、ＤＥＶＭＯＤＥ構造体１１１の変換及び中間データ５１の出力を変換ルールオブジェクト１５２５Ａに要求する（Ｓ１１５）。続いて、ステップＳ１１６からＳ１２１（Ｌｏｏｐ１）は、図１０に示されるようにロードされた要素変換ルールオブジェクト１５２６Ａのうち、ＥＰＴＤ要素、Ｓｃｏｐｅ要素、及びＦｅａｔｕｒｅ要素に対応するオブジェクトごとに実行される。また、図中Ｌｏｏｐ２（ステップＳ１１８〜Ｓ１２０）については、Ｌｏｏｐ１において処理対象とされた要素変換ルールオブジェクト１５２６ＡがＦｅａｔｕｒｅ要素に対応するオブジェクトである場合に、当該Ｆｅａｔｕｒｅ要素に属するＡｔｔｒｉｂｕｔｅ要素に対応する要素変換ルールオブジェクト１５２６Ａごとに実行される。なお、オブジェクトの処理順は、深さ優先探索に基づく。したがって、変換ルールファイル１７の定義順に処理が行われる。
【００５３】
まず、変換ルールオブジェクト１５２２Ａは、処理対象とされた要素変換ルールオブジェクト１５２６Ａ（以下、「カレントオブジェクト」という。）に関連付けられている要素変換オブジェクト１５２４Ａを変換マップ１５２３Ａより取得する（Ｓ１１６）。なお、少なくともカレントオブジェクトがＦｅａｔｕｒｅ要素に対応するものでなければ、要素変換オブジェクト１５２４Ａは取得されない。
【００５４】
続いて、変換ルールオブジェクト１５２２Ａは、取得された要素変換オブジェクト１５２４Ａを引数として（要素変換オブジェクト１５２４Ａが取得されなかった場合は空（ＮＵＬＬ）が指定される）、カレントオブジェクトに対して変換を要求する（Ｓ１１７）。引数に要素変換オブジェクト１５２４Ａが指定されている場合（すなわち、カレントオブジェクトが、Ｆｅａｔｕｒｅ要素に対応するオブジェクトである場合）、カレントオブジェクトは、自らの子オブジェクトであるＡｔｔｒｉｂｕｔｅ要素に対応する各要素変換ルールオブジェクト１５２６Ａ（以下、「Ａｔｔｒｉｂｕｔｅオブジェクト」という。）に対して関連付けの順番（すなわち、変換ルールファイル１７における定義順）に、変換を指示する。この際、取得された要素変換オブジェクト１５２４Ａが引数に指定される。
【００５５】
各Ａｔｔｒｉｂｕｔｅオブジェクトは、自らが対応するＡｔｔｒｉｂｕｔｅ要素のｎａｍｅ属性の値（印刷属性名（例えば、「ｏｒｉｅｎｔａｔｉｏｎ」等））を引数に指定して当該要素変換オブジェクト１５２４Ａに対してＤＥＶＭＯＤＥ構造体１１１における当該印刷属性の値の変換を要求する（Ｓ１１８）。要素変換オブジェクト１５２４Ａは、引数に指定された印刷属性名に対応するメンバ変数の値をＤＥＶＭＯＤＥ構造体１１１より取得し、引数に指定された印刷属性名に対応する対応情報（例えば、「ｏｒｉｅｎｔａｔｉｏｎ」に関連付けられている対応情報（図９参照）。）に基づいて、当該メンバ変数の値の意味（例えば、「ｐｏｒｔｒａｔｉｔ」）を返却する（Ｓ１１９）。Ａｔｔｒｉｂｕｔｅオブジェクトは、子オブジェクトであるＶａｌｕｅ要素に対応する要素変換ルールオブジェクト１５２６Ａ（以下、「Ｖａｌｕｅオブジェクト」という。）を用いて返却された意味に対応する値を判定する（Ｓ１２０）。例えば、「ｐｏｒｔｒａｉｔ」は、「ＰＯＲＴＲＡＩＴ」に変換される。
【００５６】
なお、子オブジェクトとしてＶａｌｕｅオブジェクトを有さないＡｔｔｒｉｂｕｔｅオブジェクトは、ＤＥＶＭＯＤＥ構造体において対応するメンバ変数に格納されている値をそのまま変換結果とする。また、ＤＥＶＭＯＤＥ構造体に値が格納されていない場合は、当該Ａｔｔｒｉｂｕｔｅ要素のｄｅｆａｕｌｔ属性の値を変換結果とする。
【００５７】
続いて、ステップＳ１２１において、カレントオブジェクトは中間言語によるデータを変換結果としてメモリ上に出力する（Ｓ１２１）。例えば、カレントオブジェクトＥＰＴＤ要素に対応するものである場合、バージョン情報や基本情報等、変換ルールファイル１７に記述されていた内容が出力される。また、カレントオブジェクオがＳｃｏｐｅ要素に対応するものである場合、当該Ｓｃｏｐｅ要素のｎａｍｅ属性の値（「Ｊｏｂ」、「Ｐａｇｅ」、又は「Ｄｏｃ」）が出力される。また、カレントオブジェクトがＦｅａｔｕｒｅ要素に対応するものである場合当該Ｆｅａｔｕｒｅ要素のｎａｍｅ属性の値（例えば、「ＳｃｒＰａｐｅｒＩｎｆｏ」）とＬｏｏｐ２におけるＡｔｔｒｉｂｕｔｅオブジェクトによる変換結果とが出力される。
【００５８】
続いて、変換オブジェクト１５２２Ａは、メモリ上に出力された情報を中間データ５１としてファイルに（例えば、ＨＤＤ（Hard Disk Drive）上に）出力する（Ｓ１２２）。この出力結果例は、図４に示されるとおりである。続いて、変換オブジェクト１５２２Ａは、全ての要素変換ルールオブジェクト１５２６Ａ、変換ルールオブジェクト１５２５Ａ、全ての要素変換オブジェクト１５２４Ａを破棄し、中間データ５１の生成を終了する（Ｓ１２３〜Ｓ１２７）。
【００５９】
上述したように、本実施の形態におけるプリンタドライバ１３によれば、変換マップファイル１６及び変換ルールファイル１７といった外部ファイルに定義された変換方法によって中間データへの変換（中間データの生成）が行われる。したがって、ＤＥＶＭＯＤＥ構造体や中間データの仕様変更があった場合でも、変換マップファイル１６又は変換ルールファイル１７の修正により当該仕様変換に対応することが可能となる。
【００６０】
また、変換方法が外部ファイル化されているため、プリンタドライバ１３（中間言語出力部１５２）の実装を単純化することができ、保守作業を簡便化することができる。この点について図を用いて説明する。
【００６１】
図１２は、変換方法が外部ファイル化されている場合とそうでない場合との構成の違いを説明するための図である。
【００６２】
同図において（Ａ）は、変換方法が外部ファイル化されていない場合（すなわち、ハードコーディングされている場合）を示す。この場合、ＤＥＶＭＯＤＥ構造体１１１のメンバ変数ごとにそれぞれ異なる変換処理が実装されていた。
【００６３】
一方、（Ｂ）は、本実施の形態のように変換方法が外部ファイル化されている場合を示す。この場合、変換ルールを解釈し変換を実行する、各メンバ変数に共通の汎用的な変換処理が実装されればよい。
【００６４】
また、本実施の形態では、変換ルールファイル１７には、ＤＥＶＭＯＤＥ構造体１１１の値と中間データ５１における値とは対応は直接対応付けられていない。すなわち、ＤＥＶＭＯＤＥ構造体１１と変換ルールファイル１７の間に変換マップファイル１６が介在している。これにより、変換ルールファイル１７のＤＥＶＭＯＤＥ構造体１１１に対する依存度を低減させることができる。但し、変換ルールファイル１７の独立性を確保する必要が無い場合は、変換ルールファイル１７のＶａｌｕｅ要素において、ＤＥＶＭＯＤＥ構造体１１１における値と中間データ５１に出力する値との対応関係を直接定義してもよい。この場合変換マップファイル１６は不要となる。
【００６５】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態におけるシステム構成例を示す図である。
【図２】本実施の形態におけるＤＥＶＭＯＤＥ構造体の構成例を示す図である。
【図３】本実施の形態における中間データの構造例を示す図である。
【図４】本実施の形態における中間データの具体例を示す図である。
【図５】変換マップファイルの定義例を示す図である。
【図６】変換ルールファイルの定義例を示す図である。
【図７】中間言語出力部の構成例を示すクラス図である。
【図８】プリンタドライバによる中間データの生成処理を説明するためのシーケンス図である。
【図９】変換マップファイルの定義情報がオブジェクトとしてロードされた状態を示す図である。
【図１０】変換ルールファイルの定義情報がオブジェクトとしてロードされた状態を示す図である。
【図１１】要素変換オブジェクトと要素変換ルールオブジェクトとが関連付けられた状態を示す図である。
【図１２】変換方法が外部ファイル化されている場合とそうでない場合との構成の違いを説明するための図である。
【符号の説明】
【００６７】
１０        ホストコンピュータ
１１        ＯＳ
１２        アプリケーション
１３        プリンタドライバ
１４        ユーザインタフェース部１４
１５        描画部
１６        変換マップファイル
１７        変換ルールファイル
２０        プリンタ
１５１      レンダリング部
１５２      中間言語出力部
１５３      ＰＤＬ出力部
１５２１    インタフェースクラス
１５２２    変換クラス
１５２３    変換マップクラス
１５２４    要素変換クラス
１５２５    変換ルールクラス
１５２６    要素変換ルールクラス
【図１】
2009251898.tif 000003
【図２】
2009251898.tif 000004
【図３】
2009251898.tif 000005
【図４】
2009251898.tif 000006
【図５】
2009251898.tif 000007
【図６】
2009251898.tif 000008
【図７】
2009251898.tif 000009
【図８】
2009251898.tif 000010
【図９】
2009251898.tif 000011
【図１０】
2009251898.tif 000012
【図１１】
2009251898.tif 000013
【図１２】
2009251898.tif 000014