(57)【要約】【課題】プリンタ置き換え時のトラブルを簡便な方法で解消できる制御データ変換装置を提供する。【解決手段】第１のプリンタの制御のために出力された制御データを第２のプリンタの制御データに変換する制御データ変換装置であって、第２のプリンタの制御データに含まれる各制御データ項目の各データ値に対して、複数の候補プリンタの各々において対応する制御データ項目のデータ値を関連づけた複数の変換規則候補を記憶しており、所与のヒント情報に基づいて、複数の変換規則候補のうち、第１のプリンタに係る変換規則を検索し、当該検索された変換規則によってデータ値の変換を行う制御データ変換装置である。【選択図】図１
2007148514.tif 000002
【特許請求の範囲】
【請求項１】
第１のプリンタの制御のために出力された制御データを、前記第１のプリンタとは異なる第２のプリンタの制御データに変換する制御データ変換装置であって、
前記第２のプリンタの制御データに含まれる各制御データ項目の各データ値に対して、複数の候補プリンタの各々において対応する制御データ項目のデータ値を関連づけた複数の変換規則候補を記憶する記憶手段と、
所与のヒント情報に基づいて、前記複数の変換規則候補のうち、前記第１のプリンタに係る変換規則を検索する検索手段と、
を有し、
前記第１のプリンタに係る変換規則を参照し、前記第１のプリンタの制御のために出力された制御データを、第２のプリンタにおける制御データへ変換することを特徴とする制御データ変換装置。
【請求項２】
請求項１に記載の制御データ変換装置であって、
前記ヒント情報には、制御データの構造に係るバージョン情報と、前記第１のプリンタの機種名と、の少なくとも一方が含まれることを特徴とする制御データ変換装置。
【請求項３】
第１のプリンタの制御のために出力された制御データを、前記第１のプリンタとは異なる第２のプリンタの制御データに変換する制御データ変換方法であって、
前記第２のプリンタの制御データに含まれる各制御データ項目の各データ値に対して、複数の候補プリンタの各々において対応する制御データ項目のデータ値を関連づけた複数の変換規則候補を記憶する記憶手段を備えたコンピュータを用い、
所与のヒント情報に基づいて、前記複数の変換規則候補のうち、前記第１のプリンタに係る変換規則を検索し、
前記第１のプリンタに係る変換規則を参照し、前記第１のプリンタの制御のために出力された制御データを、第２のプリンタにおける制御データへ変換することを特徴とする制御データ変換方法。
【請求項４】
第１のプリンタの制御のために出力された制御データを、前記第１のプリンタとは異なる第２のプリンタの制御データに変換するプログラムであって、
前記第２のプリンタの制御データに含まれる各制御データ項目の各データ値に対して、複数の候補プリンタの各々において対応する制御データ項目のデータ値を関連づけた複数の変換規則候補を記憶する記憶手段を備えたコンピュータに、
所与のヒント情報に基づいて、前記複数の変換規則候補のうち、前記第１のプリンタに係る変換規則を検索する検索手順と、
前記第１のプリンタに係る変換規則を参照し、前記第１のプリンタの制御のために出力された制御データを、第２のプリンタにおける制御データへ変換する手順と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタデバイスドライバの出力値を変換する制御データ変換装置に関する。
【背景技術】
【０００２】
近年一般的なアプリケーションプログラムでは、当該アプリケーションプログラムの処理として印刷を実行する場合、予めオペレーティングシステム（ＯＳ）が提供するＡＰＩ（Application Program Interface）を介して、プリンタメーカーが作成したプリンタドライバプログラムに印刷処理の実行を行なうよう指示する。ここにおいて、オペレーティングシステム側ではプリンタ制御用の一般的なデータを格納するためのデータ構造が予め定義されており、アプリケーションプログラムでは、この定義されたデータ構造に従って、制御用のデータ値を設定して、プリンタドライバへ指示を行なう。例えばＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは、このデータ構造体はＤＥＶＭＯＤＥと呼ばれている。
【０００３】
このようにデバイスドライバ側で印刷処理を実行することで、アプリケーションプログラム内部においては、特定のプリンタに固有の仕様や制御命令などの情報を記述する必要がなくなり、プリンタの機種によらずに一定のプリント結果が得られるようになっている。
【０００４】
ところが、アプリケーションプログラムによって、例えば業務用アプリケーションプログラムなどでは、当該業務用アプリケーションプログラムが、特定のプリンタを含めたシステムの一部として提供されることから、当該特定のプリンタ（専用プリンタ）が利用されることを前提として、一般的な開発規則に従っていない場合がある。
【０００５】
例えば、一般には専らプリンタドライバが作業領域等として利用するプライベートメモリ空間のサイズはプリンタによって異なり、当該サイズの情報は、例えばＤＥＶＭＯＤＥ等のデータ構造体に含まれる制御データ項目の一つとして設定されており、アプリケーションプログラムは、当該サイズの情報に従ってメモリ空間を確保する必要がある。しかしこうした開発規則に従わずに、専用プリンタに固有のサイズのメモリ空間を確保している場合がある。
【０００６】
また、こうしたプライベートメモリ空間内のデータにアクセスして書き換えるなどの処理を行うアプリケーションプログラムも存在するのが現状である。
【特許文献１】特開２００５‐５５９３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
こうした一般的な開発規則に従わないアプリケーションプログラムがインストールされていると、専用プリンタの故障などによって、専用プリンタとは異なる機種のプリンタ（置き換えプリンタ）が設置されるとき、アプリケーションプログラムが動作しなくなったり、プリンタから意図通りの出力が得られなかったりという不具合が生じる。これは、専用プリンタと置き換えプリンタとのそれぞれのプリンタドライバのデータ構造の一部に相違があったり、プリンタドライバが必要とするメモリ空間のサイズが相違したりしているからである。
【０００８】
なお、特許文献１には、プリンタドライバの設定項目と設定値の入力を受けて、その設定値を変換することで、プリンタドライバのユーザインタフェース（ＵＩ）の設計変更を容易にする技術が開示されている。
【０００９】
本発明は上記実情に鑑みてなされたもので、プリンタ置き換え時のトラブルを簡便な方法で解消できる制御データ変換装置を提供することを、その目的の一つとする。
【課題を解決するための手段】
【００１０】
上記従来例の問題点を解決するための本発明は、第１のプリンタの制御のために出力された制御データを、前記第１のプリンタとは異なる第２のプリンタの制御データに変換する制御データ変換装置であって、前記第２のプリンタの制御データに含まれる各制御データ項目の各データ値に対して、複数の候補プリンタの各々において対応する制御データ項目のデータ値を関連づけた複数の変換規則候補を記憶する記憶手段と、所与のヒント情報に基づいて、前記複数の変換規則候補のうち、前記第１のプリンタに係る変換規則を検索する検索手段と、を有し、前記第１のプリンタに係る変換規則を参照し、前記第１のプリンタの制御のために出力された制御データを、第２のプリンタにおける制御データへ変換することを特徴としている。
【００１１】
ここで前記ヒント情報には、制御データの構造に係るバージョン情報と、前記第１のプリンタの機種名と、の少なくとも一方が含まれることとしてもよい。
【００１２】
また、上記従来例の問題点を解決するための本発明は、第１のプリンタの制御のために出力された制御データを、前記第１のプリンタとは異なる第２のプリンタの制御データに変換する制御データ変換方法であって、前記第２のプリンタの制御データに含まれる各制御データ項目の各データ値に対して、複数の候補プリンタの各々において対応する制御データ項目のデータ値を関連づけた複数の変換規則候補を記憶する記憶手段を備えたコンピュータを用い、所与のヒント情報に基づいて、前記複数の変換規則候補のうち、前記第１のプリンタに係る変換規則を検索し、前記第１のプリンタに係る変換規則を参照し、前記第１のプリンタの制御のために出力された制御データを、第２のプリンタにおける制御データへ変換することを特徴としている。
【００１３】
さらに本発明の一態様は、第１のプリンタの制御のために出力された制御データを、前記第１のプリンタとは異なる第２のプリンタの制御データに変換するプログラムであって、前記第２のプリンタの制御データに含まれる各制御データ項目の各データ値に対して、複数の候補プリンタの各々において対応する制御データ項目のデータ値を関連づけた複数の変換規則候補を記憶する記憶手段を備えたコンピュータに、所与のヒント情報に基づいて、前記複数の変換規則候補のうち、前記第１のプリンタに係る変換規則を検索する検索手順と、前記第１のプリンタに係る変換規則を参照し、前記第１のプリンタの制御のために出力された制御データを、第２のプリンタにおける制御データへ変換する手順と、を実行させることを特徴としている。
【発明を実施するための最良の形態】
【００１４】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態の制御データ変換装置は、例えばプリンタドライバの一機能としてソフトウエア的に実現できる。本実施の形態の制御データ変換装置を含むコンピュータシステムは、図１に示すように、本実施の形態の制御データ変換装置としても動作する情報処理装置１と、この情報処理装置に接続されたプリンタ２とを含んで構成される。
【００１５】
ここで情報処理装置１は、ハードウエアの側面では一般的なパーソナルコンピュータとしての構成を備えており、具体例としては、制御部１１、記憶部１２、操作部１３、表示部１４、及びインタフェース（Ｉ／Ｆ）部１５を含んで構成される。
【００１６】
制御部１１は、ＣＰＵ等であって、記憶部１２に格納されたプログラムに従って動作する。本実施の形態では、この制御部１１は、アプリケーションプログラム、オペレーティングシステムのプログラム、及びデバイスドライバのプログラムをそれぞれ実行しているものとする。制御部１１の動作については後に述べる。
【００１７】
記憶部１２は、制御部１１によって実行されるプログラムを保持するコンピュータ読み取り可能な記憶媒体であって、ＲＡＭやＲＯＭ等のメモリ素子と、ハードディスク等のディスクデバイスと、の少なくとも一方を含んで構成されている。また、この記憶部１２は、制御部１１のワークメモリとしても動作する。さらに、本実施の形態では、この記憶部１２が、デバイスドライバによって参照される各種の設定ファイルを保持している。
【００１８】
操作部１３は、マウスやキーボード等であり、ユーザの指示操作を受けて、当該指示操作の内容を制御部１１に出力する。表示部１４は、ディスプレイ等であり、制御部１１から入力される指示に従って、情報を表示する。Ｉ／Ｆ部１５は、プリンタ２に接続され、制御部１１から入力される指示に従ってプリンタ２に対して制御指示や、形成の対象となる画像データを送信する。
【００１９】
本実施の形態の制御部１１は、上述のようにアプリケーションプログラムとデバイスドライバのプログラムとをそれぞれ実行することで、機能的には図２に示すように、アプリケーションモジュール２１と、ドライバモジュール２２とを含んで構成される。
【００２０】
アプリケーションモジュール２１は、印刷処理部Ｐを含み、この印刷処理部Ｐにおいてメモリ領域確保部３１と、制御データ出力部３２とを備える。また、ドライバモジュール２２は、初期化部４１と、データ値取得部４２と、データ値変換部４３と、データ値更新部４４と、設定支援処理部４５とを含んで構成される。
【００２１】
アプリケーションモジュール２１は、アプリケーションプログラムにおいて指示された業務処理を実行する。そしてこの業務処理において生成されたデータ等を印刷するにあたり、印刷処理部Ｐの処理を実行する。本実施の形態では、このアプリケーションモジュール２１が通常の開発規則に従わずに、特定の専用プリンタ（本発明にいう第１プリンタ）を利用することを前提として開発されているものとする。
【００２２】
すなわちここでは具体的な例として、メモリ領域確保部３１は、ドライバモジュール２２が要求するサイズのメモリ領域ではなく、上記専用プリンタに固有のサイズのメモリ領域を、記憶部１２に確保する。なお、本実施の形態においてドライバモジュールが要するメモリ領域は、図３に示すようにオペレーティングシステム所定のデータ構造を格納する基本領域ＭＢと、デバイスドライバ固有のプライベートデータを保持する拡張領域ＭＥとに分割される。
【００２３】
通常の開発規則に従う場合、メモリ領域確保部３１は、まず基本領域ＭＢを確保して、ドライバモジュール２２に対して初期化を要求する。そしてドライバモジュール２２が初期化を完了した後、基本領域ＭＢ内に保持される要求サイズを参照して当該サイズの拡張領域ＭＥを確保することになるが、ここでのメモリ領域確保部３１は、この要求サイズを無視して予め定められたサイズの領域を確保するものであり、初期化の要求を行う前に基本領域ＭＢと拡張領域ＭＥとの双方を確保してしまうか、または初期化後に基本領域ＭＢ内に保持される要求サイズを無視して予め定められたサイズの拡張領域ＭＥを確保する。
【００２４】
ここに、拡張領域ＭＥには、専らプリンタドライバが利用する制御データが格納される。また基本領域ＭＢに格納されるデータ構造は、例えばＷｉｎｄｏｗｓ（登録商標）におけるＤＥＶＭＯＤＥデータ構造であれば、
（１）デバイス名（dmDeviceName）、
（２）データのバージョン番号（dmSpecVersion）、
（３）ドライバプログラムのバージョン番号（dmDriverVersion）、
（４）ＤＥＶＭＯＤＥ構造体のサイズ（dmSize）、
（５）拡張領域ＭＥのサイズ（dmDriverExtra）、
（６）初期化されているデータ値の指定（dmFields）、
（７）用紙に関する制御データ項目群として、用紙方向（dmOrientation）、用紙サイズ（dmPaperSize）、及び用紙長さ・用紙幅（dmPaperLength、dmPaperWidth）、
（８）画像処理に関する制御データ項目であって、印刷出力する画像の拡大縮小率（dmScale）、
（９）印刷出力部数に関する制御データ項目（dmCopies）、
（１０）プリンタの機能に関する制御データ項目群として、解像度（dmPrintQuality）、カラーモノクロの別（dmColor）、両面印刷を行なうか否か（dmDuplex）、プリンタのＹ軸方向の解像度（dmYResolution）、TrueType（登録商標）フォントの印刷方法（dmTTOption）、複数部数を印刷する際にページ順にそろえるか否か（dmCollate）、及びフォーム名（dmFormName）、
（１１）ディスプレイデバイス（表示部１４等）に関する制御データ項目群として、色を表すのに用いるビット数（depth）を表す（dmBitsPerPel）、幅方向のピクセル数（dmPelsWidth）、高さ方向のピクセル数（dmPelsHeight）、ディスプレイモード（dmDisplayFlags）、及び周波数（dmDisplayFrequency）
といった制御データ項目のデータ値が含まれる。
【００２５】
なお、このデータ構造体中には、データ値が予約されている制御データ項目（dmDefalutSource）や、単に制御データ項目の開始位置のオフセットを所定の位置に合わせるためのパディング（dmUnusedPadding）などが含まれる。
【００２６】
また、用紙のサイズ指定においては、予め定数値が定義されているが、一般にはこの定数値を用いずに、当該用紙のサイズに関するデータ値の解釈はプリンタ２とデバイスドライバプログラムとにおいて自由に定めている。
【００２７】
制御データ出力部３２は、アプリケーションプログラムの処理において用紙の指定など、デバイスドライバに伝達するべき制御データのデータ値を、基本領域ＭＢ内のデータ構造に従って設定する。例えば、用紙サイズ（dmPaperSize）を、デバイスドライバにおいて「Ａ４」と解釈される値に設定する。なお本実施の形態の制御データ変換装置では、制御データ出力部３２が、基本領域ＭＢ内のデータ値だけでなく、拡張領域ＭＥ内のデータを書き換えている場合にも対処する。
【００２８】
ドライバモジュール２２の初期化部４１は、アプリケーションモジュール２１から初期化の要求を受けて、アプリケーションモジュール２１が確保したデバイスドライバ用のメモリ領域内のデータを初期化する。例えば、ドライバモジュール２２は、当該ドライバモジュール２２が本来必要とする拡張領域ＭＥのサイズの情報を制御データ項目のうち拡張領域ＭＥのサイズを表す項目（dmDriverExtra）に設定する。
【００２９】
データ値取得部４２は、制御データが格納されているメモリ領域（基本領域ＭＢ及び拡張領域ＭＥ）を参照して、アプリケーションモジュール２１が格納した制御データ値を取得する。なお、拡張領域ＭＥ内のデータ構造は、プリンタドライバによって異なるが、この場合の処理については後に述べる。
【００３０】
データ値変換部４３は、予め設定されている変換規則としての変換テーブルを参照して、データ値取得部４２が取得した制御データ項目のデータ値の少なくとも一部を変換し、制御データ項目を特定する情報と、変換後のデータ値とを出力する。ここでは記憶部１２に予め変換テーブルが設定されているものとする。この変換テーブルには、基本領域ＭＢ又は拡張領域ＭＥに含まれる制御データ項目の少なくとも一部について、アプリケーションモジュール２１が前提としている専用プリンタ（本発明の第１プリンタ）に対する当該制御データ項目のデータ値と、当該制御データ項目に対応するデータ値であって、プリンタ２（本発明の第２プリンタ）に対するデータ値とを関連づけるものである。
【００３１】
例えば基本領域ＭＢに含まれる制御データ項目のデータ値を変換する場合の例として、変換テーブルのうち、用紙に関する制御データ項目である用紙サイズ（dmPaperSize）に関する例について述べる。この変換テーブルには、図４に示すように変換の対象となるべき制御データ項目について、アプリケーションモジュール２１が出力するデータ値（専用プリンタ用のデータ値）と、実際に設定するべき値（プリンタ２用のデータ値）とを関連づけたものである。図４では、変換の対象となる制御データ項目の一例として、用紙サイズのデータ値の例を示している。ここでは具体的な例として、専用プリンタとプリンタ２との双方において用紙サイズのデータ値が給紙トレイの識別子として用いられている場合を示している。図４に例示するようにこのデータ値が異なっている場合、アプリケーションモジュール２１が出力したデータ値をそのまま用いてドライバモジュール２２が動作すると、プリンタ２が予期せぬ動作をしたり、エラーを発生してしまう可能性がある。図４の例では、専用プリンタにおいてはデータ値「１０２」で第２番目の給紙トレイを指定することを意味するのに対し、プリンタ２ではこのデータ値「１０２」に関連づけられた給紙トレイはなく、データ値「２」によって第２番目の給紙トレイが指定されるものとしている。
【００３２】
データ値更新部４４は、データ値変換部４３の出力に従ってアプリケーションモジュール２１が確保したメモリ領域に格納されている制御データ値を更新する。すなわちデータ値更新部４４は、データ値変換部４３から、制御データ項目を特定する情報と変換後のデータ値との入力を受けて、当該情報で特定される制御データ項目のデータ値を変換後のデータ値で上書きして更新する。ここで制御データ項目を特定する情報は、基本領域ＭＢまたは拡張領域ＭＥの先頭アドレスからのオフセット値であってもよいし、基本領域ＭＢにおけるＤＥＶＭＯＤＥ構造体のメンバー名（「dmPaperSize」など）であってもよい。
【００３３】
本実施の形態では、この変換テーブルの設定が一般に困難であることに鑑みて、プリンタ２ごとに、図５に示すように、専用プリンタ候補に対応する変換規則候補としての変換テーブル候補が、それぞれ変換テーブルを特定する情報としての固有のパターン番号に関連づけて複数格納されている。ここで変換テーブル候補（Ａ）は、図５に示すように、変換の対象となる制御データ項目の各データ値のリストであり、これらのデータ値のリストには、変換後の値であるプリンタ２に対するデータ値が関連づけられている（Ｂ）。
【００３４】
また記憶部１２にはさらに、図６（ａ）に示すように、この複数の変換テーブル候補のうちから、実際に利用する変換テーブルを選択する際のヒントとなるヒント情報と、変換テーブル候補を特定する情報（上述のパターン番号等）とを関連づける情報が変換辞書情報として格納されている。
【００３５】
また１種類のヒント情報のみでは変換テーブルが特定されない場合は、図６（ｂ）に示すように、１つのヒント情報について複数の変換テーブル候補を絞り込み候補として関連づけておいてもよい。このように１つのヒント情報に複数の変換テーブル候補を関連づける場合は、実際にアプリケーションモジュール２１から出力される、変換対象となる制御データ項目のデータ値によって、変換テーブルを特定するようにしてもよい。
【００３６】
ヒント情報は、例えばＤＥＶＭＯＤＥ構造体（基本領域ＭＢに格納されるデータ）の一部に係る情報であり、具体例を挙げると、デバイス名（dmDeviceName）、データのバージョン番号（dmSpecVersion）等である。また、デバイス名にメーカー名が含まれる場合は、当該メーカー名もヒントとなり得る。さらにこのヒント情報は、操作部１３などから利用者によって入力されるものであってもよい。
【００３７】
設定支援処理部４５は、この複数の変換テーブル候補のうちから実際に使用する変換テーブルを特定する処理（設定支援処理）を実行する。この設定支援処理のプログラムは、機能的には図７に示すように、ヒント情報取得部５１と、変換テーブル選択部５２と、変換テーブル設定部５３とを含む。
【００３８】
ヒント情報取得部５１は、基本領域ＭＢに格納されているデータ（ＤＥＶＭＯＤＥ構造体）や、操作部１３からの入力などにより、ヒント情報を取得する。このヒント情報取得部５１は、アプリケーションモジュール２１が基本領域ＭＢ内に格納するデータのうち、予め定められた制御データ項目に係るデータ値をヒント情報として取得する。
【００３９】
例えば、ヒント情報はＤＥＶＭＯＤＥ構造体のメンバのうち、専用プリンタの機種名が含まれるデバイス名（dmDeviceName）や、制御データの構造に係るバージョン情報（データのバージョン番号（dmSpecVersion））の制御データ項目のデータ値とする。この場合、基本領域ＭＢに格納されているＤＥＶＭＯＤＥ構造体のメンバのデータ値のうち、これらの制御データ項目に係るデータ値を取得して変換テーブル選択部５２に出力する。
【００４０】
なお、ヒント情報取得部５１は、例えばデバイス名の制御データ項目にメーカー名が含まれていれば、当該部分をメーカー名として分離し、デバイス名の残りの部分（おそらくはプリンタの機種名）とは別に出力してもよい。
【００４１】
さらにヒント情報取得部５１は、利用者から入力される指示により、操作部１３からメーカー名や、専用プリンタの機種名などが入力される場合は、これらをヒント情報として取得して変換テーブル選択部５２に出力する。この場合にもヒント情報取得部５１は基本領域ＭＢ内のデータ値を参照してもよい。このとき、基本領域ＭＢ内のデータ値として取得されるデータ値と、利用者が入力するデータ値とで同じ種類のヒント情報を表すものがある場合（例えば双方からメーカー名の情報が取得できる場合）は、予め定めた優先順位（例えば利用者の入力が優先、など）に従って、優先すると定められているヒント情報を選択的に出力すればよい。
【００４２】
変換テーブル選択部５２は、ヒント情報取得部５１から入力されるヒント情報をキーとして、変換辞書情報を参照し、予め記憶部１２に格納されている複数の変換テーブル候補から、実際に利用する変換テーブルを選択する。例えば入力されたヒント情報により、変換テーブル候補の一つが特定できる場合は、当該特定される変換テーブル候補を、実際に利用する変換テーブルとして、当該変換テーブルを特定する情報を出力する。
【００４３】
また、入力されたヒント情報に対して、複数の変換テーブル候補（絞り込み候補）が特定される場合は、表示部１４に対して複数の絞り込み候補に含まれるデータ値を提示して、そのうちの一つを選択させてもよい。この場合において複数の絞り込み候補間で互いに異なるデータ値を選択的に提示してもよい。こうして選択をさせる場合、変換テーブル選択部５２は絞り込み候補から選択された変換テーブルを特定する情報を出力する。
【００４４】
変換テーブル設定部５３は、変換テーブル選択部５２が出力する情報によって特定される変換テーブル候補の各データ値に対して、プリンタ２におけるデータ値を関連づけて、変換テーブルを生成し、実際に変換の処理に利用する変換テーブルとして記憶部１２に格納する。例えば、データ値変換部４３が記憶部１２内の所定のファイル名のデータを変換テーブルとして参照する場合、この変換テーブル設定部５３は、当該所定のファイル名を付して変換テーブルを記憶部１２に格納する。
【００４５】
すなわち、本実施の形態の制御データ変換装置によれば、専用プリンタを、プリンタ２で置き換える作業を行ったときに、利用者が設定支援処理のプログラムを実行する。ここでは設定支援処理部４５がドライバモジュール２２の一部として実装されているので、利用者はアプリケーションプログラムを動作させて印刷の処理を行わせる。ここでドライバモジュール２２のデータ値変換部４３が変換テーブルの設定がされていないことを検出して、設定支援処理部４５を起動することとすればよい。
【００４６】
設定支援処理部４５では、例えば基本領域ＭＢに格納されているＤＥＶＭＯＤＥ構造体のデータから、デバイス名や、バージョン番号を取得する。ここで例えばデバイス名が得られず（「デバイス名：不明」）、バージョン番号が「0x2500」であったとすると、設定支援処理部４５は、図６（ａ），（ｂ）に示したような変換辞書情報を参照し、このバージョン番号に対応する変換テーブル候補のパターン番号が「４」であることを検出する。そして変換辞書情報からパターン番号「４」に対応する変換テーブル候補を読み出す。そして、この変換テーブル候補に含まれる各データ値に対して、プリンタ２における対応するデータ値を関連づけた変換テーブルを生成し、実際に変換に使用する変換テーブルとして記憶部１２に格納する。
【００４７】
このようにアプリケーションモジュールが出力する情報等をヒント情報として、変換テーブルを予め定められた候補から選択して取得することで、本実施の形態では、変換テーブルの設定が簡便に行なわれ、プリンタ置き換え時のトラブルを簡便な方法で解消できる。
【００４８】
なお、変換の対象となる制御データ項目は、ここまでの説明のように基本領域ＭＢに含まれるものだけではない。例えば、拡張領域ＭＥに含まれる制御データ項目も、変換の対象となり得る。この場合は、基本領域ＭＢにおけるデータとは異なり、一般にそのデータ構造が公開されておらず、またプリンタの機種やドライバのバージョンによってデータ構造が異なるので、こうした点に配慮し、各制御データ項目において専用プリンタのデータ値と、プリンタ２に対するデータ値とを関連づけるだけでなく、変換対象となる制御データ項目の格納されている位置（オフセット）を変換テーブルに含めておく。
【００４９】
データ値取得部４２は、オフセットが関連づけられている制御データ項目については、当該オフセットの情報を参照して拡張領域ＭＥ内で、当該オフセットによって示される位置からデータ値を取得する。
【００５０】
この場合、データ値更新部４４は、データ値変換部４３から入力された制御データ項目を特定する情報によって、拡張領域ＭＥ内の制御データ項目が特定された場合は、当該制御データ項目の格納場所を表すオフセットを変換テーブルから取得して、変換後のデータ値を当該オフセットによって示される位置に格納する。なお、ここで制御データ項目を特定する情報としてオフセットの値が入力される場合は、当該入力されたオフセットによって示される位置に、変換後のデータ値を格納する。
【００５１】
さらに、拡張領域ＭＥのサイズが、プリンタ２のドライバモジュール２２が要求するサイズと異なる場合は、ドライバモジュール２２は、拡張領域ＭＥのデータサイズの情報を取得し、取得したデータサイズに基づいて、確保された拡張領域ＭＥを超えるメモリ領域へのアクセスを制限する動作を行なう。
【００５２】
このようにアクセスを制限すると、本来拡張領域ＭＥ内に格納するべきデータ値が格納できなくなる場合があるが、このような制御データ項目に対するデータ値は、予め記憶部１２に対応するデフォルト値を格納しておき、このデフォルト値を参照してプリンタ２を制御することとすればよい。
【００５３】
また、ヒント情報は、ここまでに述べたものに限られない。例えばアプリケ−ションモジュール２１のアプリケーション名や、データ値そのもののパターン（設定されるデータ値の値域が一致する変換テーブル候補を選択することになる）、選択された機能を表す文字列（例えば拡張領域ＭＥにステープルありなどを設定する際に用いられるデータ値のパターン）などであってもよい。
【００５４】
また、利用者からの入力を受ける場合において、専用プリンタのメーカー名や機種名などは予め設定されているリストから選択させるなど、その入力を支援する処理を行ってもよい。また、変換辞書情報は、操作部１３からの入力により、またはアップデートファイルなどを図示しない外部記憶媒体リーダから受け入れることで、書き換え可能としてもよい。またここまでの説明では、変換テーブルを生成して予め記憶部１２に格納しておくこととしたが、変換テーブル候補を直接参照して、データ値の変換を行ってもよい。
【００５５】
さらに、変換辞書情報を生成する際には、拡張領域ＭＥ内のデータ値など、制御データ項目の表す意味が既知でないデータ値については、そのデータ値そのものや、設定されるデータ値の値域などから推定して、制御データ項目の推定処理を実行してもよい。例えば、予めデータ値に含まれる可能性のある文字列と制御データ項目の名称とを関連づけるデータを記憶部１２に格納しておく。例えば文字列「STAPLE」について「ステープルの設定」との制御データ項目の名称を関連づけておく。そして拡張領域ＭＥ内に実際に設定されたデータ値が「STAPLE:YES」などとなっていれば、ステープルの設定と推定される情報を併せて当該データ値のオフセットを表示する。利用者は、ここで表示される情報を参照して、当該データ値のオフセットと、設定され得るデータ値と、当該データ値のそれぞれについて、プリンタ２のステープルの設定を表す対応するデータ値とを関連づけて、変換辞書情報を生成する。これにより、変換辞書情報の生成が支援される。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施の形態に係る制御データ変換装置を含むシステムの例を表す構成ブロック図である。
【図２】本発明の実施の形態に係る制御データ変換装置を含む情報処理装置の機能ブロック図である。
【図３】デバイスドライバのためにアプリケーションプログラムが確保するメモリ領域の構造例を表す説明図である。
【図４】本発明の実施の形態に係る制御データ変換装置での変換テーブルの例を表す説明図である。
【図５】本発明の実施の形態に係る制御データ変換装置での変換テーブル候補の例を表す説明図である。
【図６】本発明の実施の形態に係る制御データ変換装置での変換辞書情報の例を表す説明図である。
【図７】本発明の実施の形態に係る制御データ変換装置での変換テーブルの設定支援処理の例を表す機能ブロック図である。
【符号の説明】
【００５７】
１  情報処理装置、２  プリンタ、１１  制御部、１２  記憶部、１３  操作部、１４  表示部、１５  インタフェース部、２１  アプリケーションモジュール、２２  ドライバモジュール、３１  メモリ領域確保部、３２  制御データ出力部、４１  初期化部、４２  データ値取得部、４３  データ値変換部、４４  データ値更新部、４５  設定支援処理部、５１  ヒント情報取得部、５２  変換テーブル選択部、５３  変換テーブル設定部。
【図１】
2007148514.tif 000003
【図２】
2007148514.tif 000004
【図３】
2007148514.tif 000005
【図４】
2007148514.tif 000006
【図５】
2007148514.tif 000007
【図６】
2007148514.tif 000008
【図７】
2007148514.tif 000009