(57)【要約】【課題】印刷設定の設定値を格納する構造体の取り扱いを簡便化することのできる情報処理装置、情報処理方法、及びプログラムの提供を目的とする。【解決手段】印刷設定の設定値を格納する構造体の構成情報を管理する構成情報管理手段と、前記印刷設定の設定値を入力させるための画面を表示装置に表示させ、該画面に入力された各設定値を前記構成情報に基づいて前記構造体に登録する登録手段とを有することにより上記課題を解決する。【選択図】図１
2009230426.tif 000002
【特許請求の範囲】
【請求項１】
印刷設定の設定値を格納する構造体の構成情報を管理する構成情報管理手段と、
前記印刷設定の設定値を入力させるための画面を表示装置に表示させ、該画面に入力された各設定値を前記構成情報に基づいて前記構造体に登録する登録手段とを有する情報処理装置。
【請求項２】
前記構成情報に基づいて前記構造体より前記各設定値を取得し、取得された各設定値に基づいてプリンタに解釈可能な印刷データを生成する印刷データ生成手段を有する請求項１記載の情報処理装置。
【請求項３】
前記構成情報は、前記各設定値に対応する各メンバ変数について、前記構造体における位置を示す情報を含む請求項１又は２記載の情報処理装置。
【請求項４】
コンピュータが実行する情報処理方法であって、
前記印刷設定の設定値を入力させるための画面を表示装置に表示させ、該画面に入力された各設定値を、構成情報管理手段によって管理される、印刷設定の設定値を格納する構造体の構成情報に基づいて前記構造体に登録する登録手順を有する情報処理方法。
【請求項５】
前記構成情報に基づいて前記構造体より前記各設定値を取得し、取得された各設定値に基づいてプリンタに解釈可能な印刷データを生成する印刷データ生成手順を有する請求項４記載の情報処理方法。
【請求項６】
前記構成情報は、前記各設定値に対応する各メンバ変数について、前記構造体における位置を示す情報を含む請求項４又は５記載の情報処理方法。
【請求項７】
請求項４乃至６いずれか一項記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関し、特に印刷設定に関する情報を処理する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
アプリケーション等によって編集又は作成された文書データの印刷にはプリンタドライバと呼ばれるソフトウェアプログラムが利用される。プリンタドライバは、印刷条件等を設定させるためのＧＵＩ（Graphical User Interface）である印刷設定ダイアログを表示させ、印刷設定ダイアログにおける設定内容に応じた印刷データを生成する。生成された印刷データは印刷ジョブの対象としてプリンタに送信される。
【０００３】
ところで、Ｗｉｎｄｏｗｓ（登録商標）等のＯＳでは、印刷設定ダイアログにおける設定値はＤＥＶＭＯＤＥ構造体によって管理される。すなわち、プリンタドライバは、印刷設定ダイアログに対する設定値をＤＥＶＭＯＤＥ構造体に格納する。また、プリンタドライバは、ＤＥＶＭＯＤＥ構造体に格納された設定値に基づいて印刷データを生成する。
【０００４】
斯かるＤＥＶＭＯＤＥ構造体には、Ｐｕｂｌｉｃ領域とＰｒｉｖａｔｅ領域とがある。Ｐｕｂｌｉｃ領域は予めＯＳ等において定められた領域であり、当該ＯＳ上で動作するプリンタドライバに対して共通のメンバ変数が定義された領域である。一方、Ｐｒｉｖａｔｅ領域は、そのメンバ変数をプリンタドライバごとに定義可能ないわゆる拡張領域である。したがって、Ｐｒｉｖａｔｅ領域では、各プリンタドライバに固有の機能に関する情報を管理するためのメンバ変数が定義される。
【０００５】
従来、ＤＥＶＭＯＤＥ構造体の定義内容（メンバ変数の定義）は、Ｐｕｂｌｉｃ領域又はＰｒｉｖａｔｅ領域の別を問わずヘッダファイル内（すなわち、ソースコード内）において行われていた。
【特許文献１】特開２００７−２４１８７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来、ＤＥＶＭＯＤＥ構造体の定義内容（メンバ変数の定義）は、Ｐｕｂｌｉｃ領域又はＰｒｉｖａｔｅ領域の別を問わずヘッダファイル内（すなわち、ソースコード内）において行われていた。したがって、プリンタドライバの機能拡張等に応じてＰｒｉｖａｔｅ領域の定義（すなわち、ヘッダファイル）が更新された場合、当該機能拡張等に関連するメンバ変数を参照していないソースコード（既存のメンバ変数のみを参照しているソースコード）であっても、再コンパイル等が必要とされるという問題があった。
【０００７】
また、既存のメンバ変数の構造体内における位置を変化させないためには、新たなメンバ変数は構造体の最後に追加しなければならなかった。しかし、この場合、メンバ変数をその意味又はユーザインタフェースに応じた順番で定義することができず、構造体の定義内容が非常に分かりにくいものになってしまうという問題があった。
【０００８】
本発明は、上記の点に鑑みてなされたものであって、印刷設定の設定値を格納する構造体の取り扱いを簡便化することのできる情報処理装置、情報処理方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００９】
そこで上記課題を解決するため、本発明は、印刷設定の設定値を格納する構造体の構成情報を管理する構成情報管理手段と、前記印刷設定の設定値を入力させるための画面を表示装置に表示させ、該画面に入力された各設定値を前記構成情報に基づいて前記構造体に登録する登録手段とを有することを特徴とする。
【００１０】
このような情報処理装置では、印刷設定の設定値を格納する構造体の取り扱いを簡便化することができる。
【発明の効果】
【００１１】
本発明によれば、印刷設定の設定値を格納する構造体の取り扱いを簡便化することのできる情報処理装置、情報処理方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるシステム構成例を示す図である。同図において、ホストコンピュータ１０とプリンタ２０とはＬＡＮ（Local Area Network）等のネットワーク（有線又は無線の別は問わない。）によって接続されている。
【００１３】
ホストコンピュータ１０は、プリンタ２０に対して印刷ジョブの実行を要求するコンピュータであり、ＯＳ１１、プリンタドライバ１２、及び情報配置ファイル１３等のソフトウェアを有する。
【００１４】
ＯＳ１１は、いわゆるＯＳ（Operating System）である。ＯＳ１１は、ＤＥＶＭＯＤＥ構造体１１１を管理する。ＤＥＶＭＯＤＥ構造体１１１は、印刷設定（印刷条件）に関するパラメータの値を管理するための構造体である。
【００１５】
図２は、本実施の形態におけるＤＥＶＭＯＤＥ構造体の定義例を示す図である。同図では、ヘッダファイル内における記述形式に準じて定義内容が示されている。したがって、プリンタドライバ１２のコンパイル時は、同図に示される記述内容がコンパイラによって参照される。
【００１６】
同図に示されるように、ＤＥＶＭＯＤＥ構造体は、Ｐｕｂｌｉｃ領域とＰｒｉｖａｔｅ領域とを有する。Ｐｕｂｌｉｃ領域の構成（メンバ変数の構成）はＯＳ１１によって定められており、プリンタドライバのベンダは自由に変更することはできない。したがって、Ｐｕｂｉｃ領域は、複数のプリンタドライバに対して共通のものとなる。なお、図中においてＰｕｂｌｉｃ領域の定義は空欄になっているが、便宜的なものである。
【００１７】
一方、Ｐｒｉｖａｔｅ領域の構成は、プリンタドライバのベンダが任意に定義可能である。したがって、プリンタドライバの製品ごとに異なりうる。図中の定義内容は、プリンタドライバ１２に対応するものであるとする。同図に示されるように、本実施の形態では、Ｐｒｉｖａｔｅ領域のメンバ変数は、単なる１０００バイトの配列である。当該１０００バイト内におけるメンバ変数の構成については、ヘッダファイル内では定義されていない。
【００１８】
図１に戻る。プリンタドライバ１２は、いわゆるプリンタドライバであり、ＵＩ部１２１及び描画処理部１２２等を有する。ＵＩ部１２１は、印刷設定（印刷条件等）の入力を受け付けるためのＧＵＩ（Graphical User Interface）である印刷設定ダイアログをホストコンピュータ１０の表示装置に表示させる。ＵＩ部１２１は、印刷設定ダイアログに入力された設定値を、ＤＥＶＭＯＤＥ構造体１１１に登録（格納）する。描画処理部１２２は、ＤＥＶＭＯＤＥ構造体１１１に登録された設定値に基づいて、アプリケーションデータ（文書データ等）をプリンタ２０が解釈可能な印刷データ（ＰＤＬ（Page Description Language）データ）に変換する。すなわち、ＤＥＶＭＯＤＥ構造体１１１を介してＵＩ部１２１から描画処理部１２２に対して印刷設定の設定値が伝達される。
【００１９】
情報配置ファイル１３は、ＤＥＶＭＯＤＥ構造体のＰｒｉｖａｔｅ領域の構成情報（以下、「Ｐｒｉｖａｔｅ領域構成情報」という。）が格納されたファイルであり、ホストコンピュータ１０の記憶装置に記録されている。図３は、Ｐｒｉｖａｔｅ領域構成情報の構成例を示す図である。
【００２０】
同図に示されるように、Ｐｒｉｖａｔｅ領域構成情報は、メンバ変数ごとに、変数名、オフセット、及びサイズが定義された情報である。変数名は、メンバ変数の名前である。オフセットは、Ｐｒｉｖａｔｅ領域におけるメンバ変数の相対的な位置であり、同図の例ではバイト単位で示されている。サイズは、メンバ変数のデータサイズである。同図の例では、データ型を記述することによりデータサイズが示されている。
【００２１】
また、図４は、Ｐｒｉｖａｔｅ領域構成情報の記述例を示す図である。同図は、図３に示される定義内容をＸＭＬ（eXtensible Markup Language）によって記述した例を示す。但し、Ｐｒｉｖａｔｅ領域構成情報がＸＭＬによって記述されなければならないことを意図するものではない。
【００２２】
図４の記述例では、一つのｉｔｅｍ要素が一つのメンバ変数の定義に対応する。すなわち、ｉｔｅｍ要素のｎａｍｅ属性の値は変数名を、ｏｆｆｓｅｔ属性の値はオフセットを、ｓｉｚｅ属性の値はサイズを示す。
【００２３】
以上のように、ホストコンピュータ１０では、ＤＥＶＭＯＤＥ構造体のＰｒｉｖａｔｅ領域の構成は、外部ファイル（プリンタドライバ１２のソースコードに対して外部であるという意味である。）である情報配置ファイル１３において定義されている。
【００２４】
したがって、Ｐｒｉｖａｔｅ領域に新たなメンバ変数を追加する場合、次のような作業を行えばよい。図５は、Ｐｒｉｖａｔｅ領域にメンバ変数を追加する際の作業内容を説明するための図である。
【００２５】
同図に示されるように、作業者は、新たなメンバ変数に対する定義（記述）を情報配置ファイル１３に追加すればよい（Ｓ１０１）。ここでは、当該メンバ変数を追加する位置（メンバ変数内の順番）に応じてオフセットの決定（算出）が必要である。また、当該メンバ変数以降のメンバ変数のオフセットについても修正が必要である。
【００２６】
また、Ｐｒｉｖａｔｅ領域の既存のメンバ変数を削除する場合、次のような作業を行えばよい。図６は、Ｐｒｉｖａｔｅ領域のメンバ変数を削除する際の作業内容を説明するための図である。
【００２７】
同図に示されるように、作業者は、削除対象とされたメンバ変数に対する定義（記述）を情報配置ファイル１３より削除すればよい（Ｓ２０１）。ここでは、当該メンバ変数以降のメンバ変数のオフセットの修正も必要である。
【００２８】
図５又は図６の作業により、情報配置ファイル１３及びヘッダファイルの定義は、次のように変更される。図７は、情報配置ファイル及びヘッダファイルの変更例を示す図である。同図において、（Ａ）は情報配置ファイル１３の定義内容（すなわち、Ｐｒｉｖａｔｅ領域構成情報）を示し、図３に対応する。また、（Ｂ）はヘッダファイルの定義内容を示し、図２に対応する。
【００２９】
同図では、（Ａ）に示されるように、１番目に４バイト（ＤＷＯＲＤ）のメンバ変数ｍｂｍＣｈｅｃｋＳｕｍが追加され、メンバ変数ｍｂｍＲｏｔａｔｅｄが削除された例が示されている。但し、斯かる変更は、（Ｂ）に示されるようにヘッダファイルの定義には影響しない。ヘッダファイル内では、１０００バイトのメモリを確保することのみが定義されており、１０００バイト内の構成については特定していないからである。したがって、メンバ変数の追加又は削除に応じてプリンタドライバ１２のコンパイルは必要ではない。
【００３０】
以下、プリンタドライバ１２がホストコンピュータ１０に実行させる処理手順について説明する。図８は、プリンタドライバのＵＩ部による処理手順を説明するためのフローチャートである。
【００３１】
ステップＳ３０１において、ＵＩ部１２１は、印刷設定ダイアログを表示させ、印刷設定ダイアログを介して印刷設定の設定値の入力をユーザより受け付ける。なお、印刷設定ダイアログの表示は、印刷対象とされる文書データを処理対象としているアプリケーションからの要求に応じて行われる。
【００３２】
印刷設定ダイアログにおいてＯＫボタンが押下される等により、印刷設定の完了が通知されると、ＵＩ部１２１は、情報配置ファイル１３を読み込み（Ｓ３０２）、印刷設定ダイアログにおいて設定された各設定値に対応する各メンバ変数のオフセットを取得する（Ｓ３０３）。続いて、各設定値を、メモリ上のＤＥＶＭＯＤＥ構造体１１１のＰｒｉｖａｔｅ領域において各メンバ変数のオフセットに対応する位置に書き込む（Ｓ３０４）。その後ＵＩ部１２１は、描画処理部１２２に対して描画処理の実行を要求する。
【００３３】
続いて、図９は、プリンタドライバの描画処理部による処理手順を説明するためのフローチャートである。同図の処理は、図８の処理に続いて行われる。
【００３４】
ＵＩ部１２１からの描画処理の実行要求に応じ、描画処理部１２２は、情報配置ファイル１３を読み込み（Ｓ４０１）、各設定値に対応する各メンバ変数のオフセットを取得する（Ｓ４０２）。続いて、描画処理部１２２は、メモリ上のＤＥＶＭＯＤＥ構造体１１１において各設定値が登録（格納）されている位置をオフセットに基づいて判定し、判定された位置より各設定値を取り出す（Ｓ４０３）。続いて、描画処理部１２２は、取得された設定値に応じた描画処理を実行し、印刷データを生成する（Ｓ４０４）。
【００３５】
上述したように、本実施の形態によれば、プリンタドライバ１２は、情報配置ファイル１３に格納されたＰｒｉｖａｔｅ領域構成情報に基づいてＰｒｉｖａｔｅ領域のメンバ変数の位置を判断する。したがって、Ｐｒｉｖａｔｅ領域の構成を変更した場合でも、当該変更が情報配置ファイル１３に反映されることにより、プリンタドライバ１２は、当該変更に応じてＤＥＶＭＯＤＥ構造体１１１を扱うことができる。
【００３６】
したがって、メンバ変数の追加又は削除や、配列長の変更等に応じた作業を簡便化することができる。
【００３７】
また、図１０に示されるように、プリンタドライバの製品ごとに情報配置ファイル１３を定義することで、ＤＥＶＭＯＤＥ構造体のヘッダファイルにおける定義を共通化することができる。同図では、プリンタドライバＡに対して情報配置ファイル１３ａが、プリンタドライバＢに対して情報配置ファイル１３ｂが定義された例が示されている。なお、プリンタドライバと情報配置ファイル１３との対応づけは、情報配置ファイル１３のファイル名や、情報配置ファイル１３の保存場所（フォルダ名等）に基づいて行えばよい。
【００３８】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施の形態におけるシステム構成例を示す図である。
【図２】本実施の形態におけるＤＥＶＭＯＤＥ構造体の定義例を示す図である。
【図３】Ｐｒｉｖａｔｅ領域構成情報の構成例を示す図である。
【図４】Ｐｒｉｖａｔｅ領域構成情報の記述例を示す図である。
【図５】Ｐｒｉｖａｔｅ領域にメンバ変数を追加する際の作業内容を説明するための図である。
【図６】Ｐｒｉｖａｔｅ領域のメンバ変数を削除する際の作業内容を説明するための図である。
【図７】情報配置ファイル及びヘッダファイルの変更例を示す図である。
【図８】プリンタドライバのＵＩ部による処理手順を説明するためのフローチャートである。
【図９】プリンタドライバの描画処理部による処理手順を説明するためのフローチャートである。
【図１０】ＤＥＶＭＯＤＥ構造体の定義が共通化された例を示す図である。
【符号の説明】
【００４０】
１０        ホストコンピュータ
１１        ＯＳ
１２        プリンタドライバ
１３        情報配置ファイル
２０        プリンタ
１２１        ＵＩ部
１２２        描画処理部
【図１】
2009230426.tif 000003
【図２】
2009230426.tif 000004
【図３】
2009230426.tif 000005
【図４】
2009230426.tif 000006
【図５】
2009230426.tif 000007
【図６】
2009230426.tif 000008
【図７】
2009230426.tif 000009
【図８】
2009230426.tif 000010
【図９】
2009230426.tif 000011
【図１０】
2009230426.tif 000012