(57)【特許請求の範囲】
【請求項１】
制御の対象となる制御対象プリンタの動作を制御するドライバモジュールと、アプリケーションモジュールと、を含むプリンタ制御装置であって、
前記ドライバモジュールは、
前記制御対象プリンタとは異なる変換対象プリンタの動作を制御するためのプリンタ制御情報を格納するために前記アプリケーションモジュールが確保する制御情報用メモリ領域のデータサイズを取得するメモリ領域サイズ取得手段と、
前記取得したデータサイズに基づいて、前記アプリケーションモジュールが確保した前記制御情報用メモリ領域の範囲を識別し、当該識別した範囲で前記制御情報用メモリ領域に対してアクセスして、前記制御対象プリンタの動作を制御するためのプリンタ制御情報を読み書きするメモリ領域アクセス手段と、
を含むことを特徴とするプリンタ制御装置。
【請求項２】
請求項１に記載のプリンタ制御装置において、
前記ドライバモジュールは、
所定のプリンタ制御項目について、前記制御対象プリンタに応じた制御パラメタの値と、前記制御対象プリンタとは異なる変換対象プリンタに応じた制御パラメタの値と、を対応づける変換テーブルを参照する変換テーブル参照手段と、
前記アプリケーションモジュールが前記制御情報用メモリ領域に格納した、前記プリンタ制御項目に対する前記変換対象プリンタに応じた制御パラメタの値を取得する制御パラメタ取得手段と、
前記変換テーブルに基づいて、前記取得した制御パラメタの値を前記制御対象プリンタに応じた制御パラメタの値に変換して出力する制御パラメタ変換手段と、
をさらに含むことを特徴とするプリンタ制御装置。
【請求項３】
請求項２に記載のプリンタ制御装置において、
前記アプリケーションモジュールは、前記プリンタ制御項目について、前記変換対象プリンタに応じた制御パラメタの値を含んだプリンタ制御情報を前記制御情報用メモリ領域に格納し、
前記変換テーブルは、前記制御情報用メモリ領域内において、前記プリンタ制御項目に対する制御パラメタの値が格納されている位置を表すアドレス情報を、当該プリンタ制御項目に対応づけて格納しており、
前記制御パラメタ取得手段は、前記制御情報用メモリ領域内の前記アドレス情報が表す位置を参照して、前記プリンタ制御項目に対する制御パラメタの値を取得する
ことを特徴とするプリンタ制御装置。
【請求項４】
請求項１に記載のプリンタ制御装置において、
前記ドライバモジュールは、
所定のプリンタ制御項目と、当該プリンタ制御項目に対する前記制御対象プリンタに応じた制御パラメタの値と、を対応づける追加項目テーブルを参照する追加項目テーブル参照手段と、
前記追加項目テーブルに基づいて、前記制御情報用メモリ領域の所定位置に記憶された前記プリンタ制御情報に対して、前記プリンタ制御項目に対する制御パラメタの値を上書きする制御項目上書き手段と、
をさらに含むことを特徴とするプリンタ制御装置。
【請求項５】
アプリケーションモジュールを備えたコンピュータにおいて、制御の対象となる制御対象プリンタの動作を制御するプリンタ制御方法であって、
前記制御対象プリンタとは異なる変換対象プリンタの動作を制御するためのプリンタ制御情報を格納するために前記アプリケーションモジュールが確保する制御情報用メモリ領域のデータサイズを取得するメモリ領域サイズ取得ステップと、
前記取得したデータサイズに基づいて、前記アプリケーションモジュールが確保した前記制御情報用メモリ領域の範囲を識別し、当該識別した範囲で前記制御情報用メモリ領域に対してアクセスして、前記制御対象プリンタの動作を制御するためのプリンタ制御情報を読み書きするメモリ領域アクセスステップと、
を含むことを特徴とするプリンタ制御方法。
【請求項６】
アプリケーションモジュールを備えたコンピュータにおいて、制御の対象となる制御対象プリンタの動作を制御するプログラムであって、
前記制御対象プリンタとは異なる変換対象プリンタの動作を制御するためのプリンタ制御情報を格納するために前記アプリケーションモジュールが確保する制御情報用メモリ領域のデータサイズを取得するメモリ領域サイズ取得手段、及び
前記取得したデータサイズに基づいて、前記アプリケーションモジュールが確保した制御情報用メモリ領域の範囲を識別し、当該識別した範囲で前記制御情報用メモリ領域に対してアクセスして、前記制御対象プリンタの動作を制御するためのプリンタ制御情報を読み書きするメモリ領域アクセス手段、
としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務アプリケーションなどのアプリケーションモジュールからの指示に基づいて、制御の対象となる制御対象プリンタの動作を制御するプリンタ制御装置、プリンタ制御方法及びプログラムに関する。
【背景技術】
【０００２】
一般に、アプリケーションプログラムを開発する際、当該アプリケーションプログラムにおいて印刷を行うためのルーチンは、アプリケーションプログラムとは別個にインストールされているプリンタドライバプログラムを呼び出している。これによりアプリケーションプログラム内部においては、特定のプリンタに固有の仕様や制御命令などの情報を記述する必要がなくなり、プリンタの機種によらずに一定のプリント結果が得られるようになっている。
【０００３】
ところが、業務用アプリケーションプログラムの開発においては、当該業務用アプリケーションプログラムが、特定のプリンタを含めたシステムの一部として提供されることから、当該特定のプリンタ（専用プリンタ）が利用されることを前提として、一般的な開発規則に従わずに、当該専用プリンタ用のプリンタドライバ固有のサイズのメモリ空間を確保していたり、当該専用プリンタのプリンタドライバ固有のデータ構造にアクセスしたりしている場合がある。
【特許文献１】特開２００５‐５５９３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
こうした一般的な開発規則に従わないアプリケーションプログラムがインストールされていると、専用プリンタの故障などによって、専用プリンタとは異なる機種のプリンタ（置き換えプリンタ）が設置されると、アプリケーションプログラムが動作しなかったり、プリンタから意図通りの出力が得られなかったりという不具合が生じる。これは、専用プリンタと置き換えプリンタとのそれぞれのプリンタドライバのデータ構造の一部に相違があったり、プリンタドライバが必要とするメモリ空間のサイズが相違したりしているからである。
【０００５】
なお、特許文献１には、プリンタドライバの設定項目と設定値の入力を受けて、その設定値を変換することで、プリンタドライバのユーザインタフェース（ＵＩ）の設計変更を容易にする技術が開示されている。
【０００６】
本発明は上記実情に鑑みてなされたものであって、その目的の一つは、専用プリンタを前提としているアプリケーションプログラムがインストールされたシステムにおいて、当該専用プリンタに代替して異なる機種のプリンタを設置する際に発生する不具合を防止できるプリンタ制御装置、プリンタ制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本発明に係るプリンタ制御装置は、制御の対象となる制御対象プリンタの動作を制御するドライバモジュールと、アプリケーションモジュールと、を含むプリンタ制御装置であって、前記ドライバモジュールは、所定のプリンタ制御項目について、前記制御対象プリンタに応じた制御パラメタと、前記制御対象プリンタとは異なる変換対象プリンタに応じた制御パラメタと、を対応づける変換テーブルを参照する変換テーブル参照手段と、前記アプリケーションモジュールが出力する、前記プリンタ制御項目に対する前記変換対象プリンタに応じた制御パラメタを取得する制御パラメタ取得手段と、前記変換テーブルに基づいて、前記取得した制御パラメタを前記制御対象プリンタに応じた制御パラメタに変換して出力する制御パラメタ変換手段と、を含むことを特徴とする。
【０００８】
上記構成によれば、ドライバモジュールが変換対象プリンタに応じた制御パラメタを制御対象プリンタに応じた制御パラメタに変換して出力することで、変換対象プリンタを前提としているアプリケーションモジュールを実行する場合に、変換対象プリンタを制御対象プリンタに置き換える際に発生する不具合を防止できる。
【０００９】
また、上記プリンタ制御装置において、前記変換テーブルは、前記アプリケーションモジュールが出力するプリンタ制御情報における、前記プリンタ制御項目に対する制御パラメタの含まれる位置を表すアドレス情報を、前記プリンタ制御項目に対応づけており、前記制御パラメタ取得手段は、前記アドレス情報に基づいて、前記プリンタ制御命令に含まれる前記プリンタ制御項目に対する制御パラメタを取得することとしてもよい。これにより、アプリケーションモジュールがあるプリンタ制御項目について、変換対象プリンタに応じた制御パラメタをドライバモジュール標準の仕様とは異なるメモリ領域上の位置に記憶させた場合であっても、ドライバモジュールは正しく当該プリンタ制御項目に対する制御パラメタを取得することができる。
【００１０】
また、本発明に係る他のプリンタ制御装置は、制御の対象となる制御対象プリンタの動作を制御するドライバモジュールと、アプリケーションモジュールと、を含むプリンタ制御装置であって、前記ドライバモジュールは、前記制御対象プリンタとは異なる変換対象プリンタに応じて、前記アプリケーションモジュールが確保する制御情報用メモリ領域のデータサイズを取得するメモリ領域サイズ取得手段と、前記取得したデータサイズに基づいて前記制御情報用メモリ領域を識別し、当該識別した制御情報用メモリ領域に対してアクセスして、前記制御対象プリンタの動作を制御するためのプリンタ制御情報を読み書きするメモリ領域アクセス手段と、を含むことを特徴とする。
【００１１】
上記構成によれば、ドライバモジュールは、変換対象プリンタに応じてアプリケーションモジュールが確保した制御情報用メモリ領域のデータサイズに基づいて当該メモリ領域を識別してアクセスすることで、バッファオーバランなどの問題を起こすことなく、アプリケーションモジュールが出力したプリンタ制御情報を読み書きできる。
【００１２】
また、上記プリンタ制御装置において、前記ドライバモジュールは、所定のプリンタ制御項目と、当該プリンタ制御項目に対する前記制御対象プリンタに応じた制御パラメタと、を対応づける追加項目テーブルを参照する追加項目テーブル参照手段と、前記追加項目テーブルに基づいて、前記制御情報用メモリ領域の所定位置に記憶された前記プリンタ制御情報に対して、前記プリンタ制御項目に対する制御パラメタの情報を上書きする制御項目上書き手段と、をさらに含むこととしてもよい。上記構成によれば、例えば変換対象プリンタに応じてアプリケーションモジュールが確保した制御情報用メモリ領域より大きなデータサイズのメモリ領域を制御対象プリンタ用のドライバモジュールが予定していた場合であっても、変換対象プリンタ用の制御情報用メモリ領域内に入りきらない制御情報の少なくとも一部を実際に確保された制御情報用メモリ領域に上書きすることができる。これにより、制御対象プリンタに応じた制御情報用メモリ領域のデータサイズと変換対象プリンタに応じた制御情報用メモリ領域のデータサイズとが異なる場合であっても、必要な制御情報をメモリ領域に記憶させて、利用できる。
【００１３】
また、本発明に係るプリンタ制御方法は、アプリケーションモジュールを実行するコンピュータにおいて、制御の対象となる制御対象プリンタの動作を制御するプリンタ制御方法であって、所定のプリンタ制御項目について、前記制御対象プリンタに応じた制御パラメタと、前記制御対象プリンタとは異なる変換対象プリンタに応じた制御パラメタと、を対応づける変換テーブルを参照するステップと、前記アプリケーションモジュールが出力する、前記プリンタ制御項目に対する前記変換対象プリンタに応じた制御パラメタを取得するステップと、前記変換テーブルに基づいて、前記取得した制御パラメタを前記制御対象プリンタに応じた制御パラメタに変換して出力するステップと、を含むことを特徴とする。
【００１４】
また、本発明に係るプログラムは、アプリケーションモジュールを実行するコンピュータにおいて、制御の対象となる制御対象プリンタの動作を制御するプログラムであって、所定のプリンタ制御項目について、前記制御対象プリンタに応じた制御パラメタと、前記制御対象プリンタとは異なる変換対象プリンタに応じた制御パラメタと、を対応づける変換テーブルを参照する変換テーブル参照手段、前記アプリケーションモジュールが出力する、前記プリンタ制御項目に対する前記変換対象プリンタに応じた制御パラメタを取得する制御パラメタ取得手段、及び前記変換テーブルに基づいて、前記取得した制御パラメタを前記制御対象プリンタに応じた制御パラメタに変換して出力する制御パラメタ変換手段、としてコンピュータを機能させることを特徴とする。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１６】
図１は、本発明の一実施形態に係るプリンタ制御装置を含むコンピュータシステムの一例を表す構成図である。当該コンピュータシステムは、図１に示すように、プリンタ制御装置１０と、プリンタ制御装置１０による制御の対象となる制御対象プリンタであるプリンタ１５と、を含んで構成されている。
【００１７】
プリンタ制御装置１０は、例えば一般的なパーソナルコンピュータ等であって、制御部１１、記憶部１２及びインタフェース部１３を含んで構成されている。
【００１８】
ここで、制御部１１は、ＣＰＵ等であって、記憶部１２に格納されたプログラムに従って動作する。特に本実施の形態においては、この制御部１１は、後述するアプリケーションモジュール及びドライバモジュールの機能を実現している。
【００１９】
記憶部１２は、制御部１１によって実行されるプログラムを保持するコンピュータで読み取り可能な記憶媒体であって、ＲＡＭやＲＯＭ等のメモリ素子とディスクデバイス等との少なくとも一方を含んで構成されている。また、記憶部１２は、制御部１１のワークメモリとしても動作する。さらに、記憶部１２は、ドライバモジュールが参照する各種の設定ファイルを保持している。
【００２０】
インタフェース部１３は、プリンタ１５との間でデータ送受信を行う。特に、後述するドライバモジュールからの制御命令をプリンタ１５に対し送信することで、プリンタ１５の動作の制御を行う。
【００２１】
プリンタ制御装置１０は、機能的に、図２に示すように、アプリケーションモジュール２０及びドライバモジュール３０を含んで構成されている。さらに、アプリケーションモジュール２０は、機能的に、メモリ領域確保部２１及び制御情報出力部２２を含んで構成されている。また、ドライバモジュール３０は、機能的に、制御パラメタ取得部３１、制御パラメタ変換部３２及び制御情報更新部３３を含んで構成されている。これらの機能は、例えば記憶部１２に記憶されたプログラムを制御部１１が実行することで実現できる。
【００２２】
アプリケーションモジュール２０は、所定の業務を行うモジュールである。ここでは、アプリケーションモジュール２０が行う業務は、例えば帳票の印刷など、プリンタを使用するものを含んでいるものとする。さらに、アプリケーションモジュール２０は、使用するプリンタとして、プリンタ１５とは異なる専用プリンタ（変換対象プリンタ）を想定して開発されたものであるとする。
【００２３】
メモリ領域確保部２１は、プリンタの動作を制御するためのプリンタ制御情報を記憶する制御情報用メモリ領域Ｍを、記憶部１２内に確保する。メモリ領域確保部２１は、例えばアプリケーションモジュール２０の実行開始時などに制御情報用メモリ領域Ｍの確保を行う。確保された制御情報用メモリ領域Ｍは、アプリケーションモジュール２０及びドライバモジュール３０によるプリンタ制御情報の読み書きのためのアクセスの対象となる。
【００２４】
ここでは、制御情報用メモリ領域Ｍは、図２に示すように、基本領域ＭＢと拡張領域ＭＥとを含んでいるものとする。基本領域ＭＢは、どのプリンタにも共通の制御項目として予め定められたプリンタ制御項目に対する制御パラメタを格納するためのメモリ領域であって、例えば給紙トレイ情報などのプリンタ制御項目に対する制御パラメタを格納できる。
【００２５】
また、拡張領域ＭＥは、プリンタごとに独自のプリンタ制御項目に対する制御パラメタを格納可能なメモリ領域である。通常、アプリケーションモジュールが拡張領域ＭＥを確保する場合、ドライバモジュールから当該ドライバモジュールが必要とするメモリ領域のデータサイズの情報を取得し、取得したデータサイズに応じて拡張領域ＭＥを確保する。しかしながら、本実施形態におけるアプリケーションモジュール２０は変換対象プリンタ専用に開発されたものであるため、実際に使用するプリンタに関わらず、変換対象プリンタ用のドライバモジュールが必要とするメモリ領域のデータサイズに応じて、拡張領域ＭＥを確保するものとする。具体的にここでは、メモリ領域確保部２１は、拡張領域ＭＥとして１０２４バイトのメモリ領域を確保する例について説明する。
【００２６】
制御情報出力部２２は、プリンタの動作を制御するために必要なプリンタ制御情報を、メモリ領域確保部２１が確保した制御情報用メモリ領域Ｍに対して出力する。制御情報出力部２２が出力するプリンタ制御情報には、例えば給紙トレイ情報などのプリンタ制御項目に対する、変換対象プリンタに応じた制御パラメタが含まれる。具体的に制御情報出力部２２が出力するプリンタ制御情報の例については、後に詳しく説明する。
【００２７】
ドライバモジュール３０は、アプリケーションモジュール２０からの指示に基づいて、プリンタ１５の動作を制御するモジュールである。具体的に、ドライバモジュール３０は、メモリ領域確保部２１が確保した制御情報用メモリ領域Ｍに格納されたプリンタ制御情報を利用して、プリンタ１５の動作を制御する。
【００２８】
制御パラメタ取得部３１は、制御情報用メモリ領域Ｍを参照して、アプリケーションモジュール２０の出力するプリンタ制御情報に含まれる制御パラメタを取得する。制御パラメタ取得部３１が制御パラメタを取得する場合、基本領域ＭＢに格納された所定のプリンタ制御項目に対する制御パラメタについては、所定の格納場所を参照することで取得できる。一方、拡張領域ＭＥに格納された制御パラメタについては、後述するように、変換テーブルを参照して当該制御パラメタの格納場所の情報を取得し、取得した格納場所を参照することで取得する。
【００２９】
制御パラメタ変換部３２は、制御パラメタ取得部３１が取得した制御パラメタを、必要に応じて変換して出力する。具体的に、制御パラメタ変換部３２は、アプリケーションモジュール２０が出力する変換対象プリンタに応じた制御パラメタを、変換テーブルを参照して、プリンタ１５に応じた制御パラメタに変換する。制御パラメタ変換部３２によって得られた変換後の制御パラメタは、プリンタ１５の動作制御のために用いられる。
【００３０】
制御情報更新部３３は、必要に応じて制御情報用メモリ領域Ｍに格納されたプリンタ制御情報を更新する。例えば、制御情報更新部３３は、プリンタ１５の動作制御に用いられるプリンタ制御項目のうち、アプリケーションモジュール２０が拡張領域ＭＥ内に格納場所を確保しない項目について、当該プリンタ制御項目に対する制御パラメタを拡張領域ＭＥ内に上書きする。上書きしたプリンタ制御情報は、アプリケーションモジュール２０が出力した情報と同様に、制御パラメタ取得部３１による取得対象とすることができる。
【００３１】
次に、具体的に制御情報出力部２２又は制御情報更新部３３が出力するプリンタ制御情報と、出力されたプリンタ制御情報をドライバモジュール３０が取得し、変換する処理の具体例について、説明する。
【００３２】
まず第１の例として、基本領域ＭＢに含まれるプリンタ制御項目に対する制御パラメタの変換を行う場合について、給紙トレイ情報を例として説明する。制御情報出力部２２は、基本領域ＭＢ内の、給紙トレイ情報の制御項目に対応する所定の格納場所に、給紙トレイＩＤの値を制御パラメタとして書き込む。この給紙トレイＩＤの値は、ドライバモジュールの標準仕様として定義されている場合もあるが、その場合でも数や種類に限りがあるため、プリンタ独自の値を用いる場合がある。ここでは、制御情報出力部２２は、変換対象プリンタについて独自の値を給紙トレイＩＤの値として出力するものとする。したがって、プリンタ１５に対応するドライバモジュール３０が、この給紙トレイＩＤの値をそのまま用いてプリンタ１５の動作制御を行おうとすると、プリンタ１５に予期せぬ動作をさせたり、エラーを発生させたりすることとなる。
【００３３】
そこで、制御パラメタ変換部３２は、制御パラメタ取得部３１が基本領域ＭＢから取得した給紙トレイＩＤの値を、プリンタ１５に応じた値に変換する。具体的に、制御パラメタ変換部３２は、変換テーブルを参照して給紙トレイＩＤの値を変換する。変換テーブルは、変換対象となるプリンタ制御項目について、変換対象プリンタに応じた制御パラメタと、プリンタ１５に応じた制御パラメタと、を対応づけるテーブルである。変換テーブルは、例えば図３（ａ）に示すようなテキストファイル形式の設定ファイルとして、記憶部１２に保持されている。図３（ａ）の設定ファイルの例においては、図３（ｂ）に示す表にあるような制御パラメタの対応関係が規定されている。例えば制御情報出力部２２が給紙トレイＩＤの値として１０２を出力した場合、制御パラメタ変換部３２はこの値をプリンタ１５の給紙トレイ２を表す制御パラメタに変換する。これにより、例えばアプリケーションモジュール２０が給紙トレイＩＤとして１０２を指定して印刷ジョブを実行する場合、ドライバモジュール３０は給紙トレイ２を用いてプリンタ１５に印刷を実行させることができる。
【００３４】
次に、第２の例として、拡張領域ＭＥに含まれるプリンタ制御項目に対する制御パラメタの変換を行う場合について、排紙トレイ情報を例として説明する。ここで、排紙トレイ情報については、基本領域ＭＢ内に格納場所が予め用意されていないものとする。この場合、プリンタに対して排紙トレイを指定する制御を行うために、制御情報出力部２２は、拡張領域ＭＥ内に排紙トレイ情報のプリンタ制御項目に対応する制御パラメタとして、排紙トレイＩＤの値を格納する。ところが、この拡張領域ＭＥ内の制御パラメタの格納場所は、ドライバモジュールによって異なるため、第１の例と同様の処理を行おうとしても、そもそも制御パラメタ取得部３１は拡張領域ＭＥから目的とする制御パラメタを取得することができない。
【００３５】
そこで、制御パラメタ取得部３１は、所定の変換テーブルを参照して、目的とする制御パラメタの格納場所を取得したうえで、取得した格納場所を参照して制御パラメタを取得する。この場合の変換テーブルは、例えば図４に示すような設定ファイルとして、記憶部１２に保持されている。図４の例の設定ファイルの場合、その２行目及び３行目において、目的とする制御パラメタが拡張領域ＭＥの先頭からのオフセット値６４バイトの位置に記憶されており、そのデータサイズが２バイトであることが示されている。すなわち、排紙トレイＩＤの値は、拡張領域ＭＥの先頭から数えて、６４バイト目の位置から６６バイト目の位置までの領域に格納されていることとなる。制御パラメタ取得部３１は、拡張領域ＭＥ内の６４バイト目から６６バイト目までの位置を参照することで、制御情報出力部２２が出力した排紙トレイＩＤの値を取得できる。
【００３６】
続いて、制御パラメタ変換部３２は、制御パラメタ取得部３１が取得した制御パラメタに対して、第１の例と同様の変換を行う。具体的に、図４の例の設定ファイルの場合、４行目以降が図３（ａ）と同様の制御パラメタの対応関係を表しており、制御パラメタ変換部３２はこのような変換テーブルを参照して変換を行う。これにより、アプリケーションモジュール２０が排紙トレイ情報のような基本領域ＭＢ内に格納場所が用意されていないプリンタ設定項目を独自に拡張領域ＭＥに格納する場合であっても、ドライバモジュール３０は正しく当該プリンタ設定項目に対する制御パラメタを取得し、プリンタ１５に応じた制御パラメタに変換して出力することができる。
【００３７】
次に、第３の例として、アプリケーションモジュール２０が指定しないプリンタ制御項目に関する例について、説明する。前述したように、メモリ領域確保部２１は、変換対象プリンタに応じた１０２４バイトの拡張領域ＭＥを記憶部１２内に確保する。しかしながら、ドライバモジュールが利用する拡張領域のデータサイズは、対応するプリンタごとに異なる。そのため、ドライバモジュール３０が本来１０２４バイトを超える拡張領域を利用することを予定している場合、そのままではドライバモジュール３０は拡張領域ＭＥの先頭から１０２４バイト目以降のメモリ領域にデータを読み書きする可能性があり、バッファオーバランなどの不具合が生じるおそれがある。
【００３８】
そこで、制御情報用メモリ領域Ｍにアクセスする制御パラメタ取得部３１及び制御情報更新部３３は、メモリ領域確保部２１が確保する拡張領域ＭＥのデータサイズの情報を取得し、取得したデータサイズに基づいて、確保された拡張領域ＭＥを超えるメモリ領域へのアクセスを制限する。具体的に、ドライバモジュール３０は、メモリ領域確保部２１が確保する拡張領域ＭＥのデータサイズの情報を、予め記憶部１２に保持された設定ファイルなどにより取得する。図５は、このようなデータサイズの情報を含む設定ファイルの例であり、データサイズの情報が２行目に記載されている。以上の方法によれば、変換対象プリンタとプリンタ１５との間でドライバモジュールが利用する拡張領域のデータサイズに違いがある場合であっても、ドライバモジュールが制御情報用メモリ領域以外のメモリ領域にアクセスしてしまう不具合を防ぐことができる。
【００３９】
しかしながら、この方法によれば、ドライバモジュール３０は、本来拡張領域の１０２４バイト目以降の領域に格納すべきプリンタ制御項目に対する制御パラメタについては、取得することができない。そこで、制御パラメタ取得部３１は、このようなプリンタ制御項目に対する制御パラメタを、予め記憶部１２に保持された設定ファイルなどから取得することとしてもよい。具体的に、例えば図５に示す設定ファイルの例において、３行目以降はこのようなプリンタ制御項目及びこれに対応する制御パラメタの一例である。図５の例においては、ステープラ情報、パンチ情報及び排出トレイ情報のプリンタ制御項目に対する制御パラメタとして、現在の設定を維持することを表す「KEEP」という値が対応づけられている。制御パラメタ取得部３１は、この値を取得することにより、アプリケーションモジュール２０が当該プリンタ制御項目に対する制御パラメタを指定していない場合であっても、設定ファイルに記載された制御パラメタによりプリンタ１５の動作を制御することが可能となる。
【００４０】
また、制御情報更新部３３が、本来拡張領域の１０２４バイト目以降の領域に格納すべきプリンタ制御項目に対する制御パラメタを、１０２４バイトまでの拡張領域ＭＥ内の所定の位置に上書きすることとしてもよい。この場合、制御情報更新部３３は、図５の例に示す設定ファイルに代えて、当該プリンタ制御項目と、これに対する制御パラメタと、制御パラメタを書き込む拡張領域ＭＥ内の所定位置を表す情報と、を対応づける設定ファイルを参照する。そして、当該設定ファイルを参照して得られた拡張領域ＭＥ内の所定位置に、制御パラメタの情報を書き込む。制御パラメタ取得部３１は、拡張領域ＭＥ内の所定位置に格納されたデータを読み出すことで、当該プリンタ制御項目に対する制御パラメタを取得できる。なお、ここで、制御情報更新部３３が制御パラメタの情報を書き込む位置をドライバモジュール３０が使用しないプリンタ制御情報が格納されている位置にすることで、不要なデータとして設定されているプリンタ制御情報を上書きして必要な制御パラメタを拡張領域ＭＥに記憶させることができる。
【００４１】
以上説明した本実施の形態に係るコンピュータシステムにおいて、プリンタの置き換えを行う場合、ユーザは以下のような作業を行う。すなわち、まず置き換え後の制御対象プリンタに対応し、上述したドライバモジュールの機能を実現するデバイスドライバのプログラムをインストールする。そして、アプリケーションモジュール２０が変換対象プリンタに応じて出力する制御パラメタや、確保する拡張領域ＭＥのデータサイズの情報と、置き換え後の制御対象プリンタに応じた制御パラメタや、必要な拡張領域のデータサイズの情報とに基づいて、変換テーブルやデータサイズの情報を含んだ設定ファイルを作成する。さらに、作成した設定ファイルを、ドライバモジュールが参照できるように記憶部１２に保持させる。これにより、ユーザがアプリケーションモジュール２０を修正する必要なく、プリンタ制御装置１０は置き換え後の制御対象プリンタに対して不具合なく動作制御を行うことができる。
【００４２】
以上説明した本実施の形態によれば、ドライバモジュール３０が変換対象プリンタに応じた制御パラメタを制御対象プリンタに応じた制御パラメタに変換して出力することで、変換対象プリンタに応じた制御パラメタの情報を使用するアプリケーションモジュール２０を実行する場合であっても、プリンタ１５の動作制御を行うことができる。これにより、変換対象プリンタをプリンタ１５に置き換えることによる不具合を防止できる。また、ドライバモジュール３０は、変換対象プリンタに応じてアプリケーションモジュール２０が確保した拡張領域ＭＥのデータサイズに基づいて当該メモリ領域にアクセスすることで、バッファオーバランなどの不具合の発生を防ぐことができる。
【００４３】
なお、以上の説明においては、１つの変換対象プリンタに応じて用意されたアプリケーションモジュール２０の出力に対して、ドライバモジュール３０がプリンタ１５に応じた制御パラメタの変換等を行う例について説明したが、ドライバモジュール３０が変換の対象とする変換対象プリンタは、複数あってもよい。この場合、ドライバモジュール３０は、それぞれの変換対象プリンタに応じて用意された、複数の変換テーブルや拡張領域のデータサイズの情報を含む複数の設定ファイルの中から、プリンタ制御情報を出力するアプリケーションモジュールに応じて設定ファイルを選択する。そして、選択した設定ファイルを参照してプリンタの制御を行う。これにより、ドライバモジュール３０は、それぞれ別の変換対象プリンタを使用する前提で開発された複数のアプリケーションモジュールに応じて、望ましいプリンタ１５の制御を行うことができる。
【００４４】
さらに、複数の設定ファイルの中から参照する設定ファイルを選択する場合、ドライバモジュール３０は、プリンタ制御情報に含まれるプリンタ名やメーカー名などのプリンタの機種に関する情報を取得し、取得した情報に基づいて参照する設定ファイルを選択することとしてもよい。これにより、ドライバモジュール３０はアプリケーションモジュールと変換対象プリンタとの対応関係に関する情報を予め取得できない場合であっても、制御情報用メモリ領域の確保を行ったアプリケーションモジュールが使用を想定している変換対象プリンタに応じて、制御パラメタの変換や制御情報用メモリ領域へのアクセスを行うことができる。
【００４５】
また、以上の説明においては、ドライバモジュール３０が参照する変換テーブルや拡張領域ＭＥのデータサイズの情報は、テキストファイル形式の設定ファイルにより記憶部１２に保持されることとしている。これにより、本実施形態に係るプリンタ制御装置が専用の設定情報編集手段などを用意していない場合であっても、ユーザは、テキストファイルを編集することで変換対象となる制御パラメタの値や制御情報用メモリ領域のデータサイズの情報を指定することができる。しかし、本発明の実施形態はこのような方法に限られず、例えば専用のユーザインタフェースを備えた設定情報編集手段が、ユーザの入力する変換テーブルやデータサイズの情報を取得し、取得した情報を記憶部１２に保持させることとしてもよい。
【００４６】
また、以上の説明においては、アプリケーションモジュール２０が確保する制御情報用メモリ領域は、基本領域と拡張領域に分かれており、拡張領域が各ドライバモジュールに応じたデータサイズが可変のメモリ領域であるとしたが、本実施形態に係るプリンタ制御装置はこのような場合でなくとも適用可能である。すなわち、例えば制御情報用メモリ領域が全体としてドライバモジュールごとに異なるデータサイズのメモリ領域である場合にも、当該メモリ領域のデータサイズや、当該メモリ領域内に格納されるプリンタ制御項目に応じた制御パラメタの格納位置の情報を、設定ファイル等を参照して取得することにより、アプリケーションモジュールの想定する変換対象プリンタに応じた制御対象プリンタの動作制御が可能となる。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施の形態に係るプリンタ制御装置の概略の構成を表すブロック図である。
【図２】本発明の実施の形態に係るプリンタ制御装置の機能を表す機能ブロック図である。
【図３】本発明の実施の形態に係るプリンタ制御装置により参照される、変換テーブルを含む設定ファイルの一例である。
【図４】本発明の実施の形態に係るプリンタ制御装置により参照される、変換テーブルを含む設定ファイルの別の一例である。
【図５】本発明の実施の形態に係るプリンタ制御装置により参照される、制御情報用メモリ領域のデータサイズの情報を含む設定ファイルの一例である。
【符号の説明】
【００４８】
１０  プリンタ制御装置、１１  制御部、１２  記憶部、１３  インタフェース部、１５  プリンタ、２０  アプリケーションモジュール、２１  メモリ領域確保部、２２  制御情報出力部、３０  ドライバモジュール、３１  制御パラメタ取得部、３２  制御パラメタ変換部、３３  制御情報更新部。
【図１】
0004645419.tif 000002
【図２】
0004645419.tif 000003
【図３】
0004645419.tif 000004
【図４】
0004645419.tif 000005
【図５】
0004645419.tif 000006