(57)【特許請求の範囲】
【請求項１】
プリンタと通信可能な情報処理装置であって、
前記プリンタの能力情報を格納するための複数のデータ要素がマークアップ言語で定義された汎用プリンタデータ構造定義ファイルを格納し、当該汎用プリンタデータ構造定義ファイルの各データ要素に前記プリンタの関連特徴に対応するデータで埋めることにより作成された汎用プリンタ記述ファイルを格納する格納手段と、
前記格納手段によって格納された汎用プリンタ記述ファイルと前記汎用プリンタデータ構造定義ファイルとを比較して前記汎用プリンタ記述ファイルを構文解析することにより前記プリンタに固有のプリンタドライバを作成する作成手段とを有することを特徴とする情報処理装置。
【請求項２】
プリンタと通信可能な情報処理装置の処理方法であって、
前記プリンタの能力情報を格納するための複数のデータ要素がマークアップ言語で定義された汎用プリンタデータ構造定義ファイルを格納し、当該汎用プリンタデータ構造定義ファイルの各データ要素に前記プリンタの関連特徴に対応するデータで埋めることにより作成された汎用プリンタ記述ファイルを格納する格納工程と、
前記格納工程において格納された汎用プリンタ記述ファイルと前記汎用プリンタデータ構造定義ファイルとを比較して前記汎用プリンタ記述ファイルを構文解析することにより前記プリンタに固有のプリンタドライバを作成する作成工程とを有することを特徴とする情報処理装置の処理方法。
【請求項３】
コンピュータに、請求項２に記載の情報処理装置の処理方法の各工程を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、いくつかのオペレーティングシステムのうち何れか１つを利用しているコンピュータシステムにおいて、プリンタドライバを構成し、それにより、プリンタドライバがコンピュータシステムのアプリケーションプログラムとプリンタとの間に必要なインタフェースを形成可能なように使用される汎用プリンタ記述ファイルのデータ構造に関する。
【０００２】
【従来の技術】
プリンタは、典型的には、一般にプリンタドライバとして知られているソフトウェアモジュールによりコンピュータなどのクライアント機器とインタフェースされている。現在、多くのプリンタドライバは、モノリシックモデルに基づいて複数の異なるプリンタを駆動すべく構成されている。何れか１つの特定のプリンタを駆動するには、そのプリンタに対応するプリンタ記述ファイルがその特定のプリンタを支援するドライバを構成するようにそのドライバに提供されなければならない。プリンタにより支援される能力、機能及び指令などの特定のプリンタに関連する情報が、プリンタドライバを構成するためにそのプリンタドライバによる次のアクセス及び処理のためのプリンタ記述ファイルに格納される。
【０００３】
適合性の問題のため、異なる汎用プリンタドライバが異なるオペレーティングシステム毎に要求される。このように、Microsoft Windows 95用の汎用プリンタドライバは、Apple Macintoshオペレーティングシステム用の汎用プリンタドライバとは異なるものである。同様に、各々異なるオペレーティングシステムに応じて、異なるプリンタ記述ファイルが要求される。例えば、Microsoft Windows NTは、一般にGeneric Printer Description（「GPD」）ファイルとして知られているプリンタ記述ファイルフォーマットを利用しており、Appleコンピュータは、一般にPostscript Printer Description（「PPD」）ファイルとして知られているAdobe Systems社で開発された異なるプリンタ記述ファイルフォーマットを利用している。
【０００４】
また、プリンタメーカーがそれぞれのプリンタ製品シリーズを支援するために、そのメーカー独自のプリンタドライバを開発することも一般に行われている。通常、そのようなメーカー専用のプリンタドライバが開発されるのは、ある特定のオペレーティングシステムで一般に使用されている汎用プリンタドライバでは、そのメーカーのプリンタが支援する機能又はユーザインタフェース能力を完全には実現できないからである。この専用プリンタドライバに応じて、何れか１つの特定のプリンタを支援する専用プリンタドライバの構成のために専用プリンタ記述ファイルも要求される。同様に、各々特定のプリンタのために、異なる専用プリンタ記述ファイルが様々なオペレーティングシステムの各々を支援するために作成されなければならない。
【０００５】
【発明が解決しようとする課題】
このような構成において、いくつかの問題があることが明らかになっている。
第１に、様々なオペレーティングシステムにおいて各々の特定のプリンタを支援するために、多数のプリンタ記述ファイルが必要であるため、それらのプリンタ記述ファイルを作成して実現する際にシステムソフトウェアの開発者やシステム管理者は多大の時間と資源を浪費することになる。第２に、様々なオペレーティングシステムにおける特定のプリンタの支援に必要な複数の異なるプリンタ記述ファイルフォーマットは、特定のプリンタの機能及びユーザインタフェース能力の実現に関して矛盾する傾向がある。第３に、プリンタ記述ファイルが異なるフォーマットをとるために、フォーマット毎に独自の開発ツールと独自の構文解析ツールが必要になり、その結果、開発に長い時間を要し、開発の複雑さとコストが増す。第４に、現時点では、追加のプリンタ特徴や能力に関連する記述データを追加するためにプリンタ記述ファイルを拡張するには、それら新たな特徴及び能力を処理するために対応するプリンタドライバも必ず修正しなければならない。これらの問題があるため、プリンタのユーザに対してプリンタの能力と機能は首尾一貫した形では提示されなくなっている。また、これらの問題により、システムソフトウェア開発時に、プリンタドライバ及びそれらそれぞれのプリンタ記述ファイルを開発し、実現するために、著しく長い開発時間と高いコストが必要である。
【０００６】
これらの問題を処理するため、インターネットエンジニアリングタスクフォース（IETF）のプリンタワーキンググループ（PWG）は、いわゆる「汎用プリンタ記述ファイルフォーマット」の開発の必要性を説いている。即ち、PWGは適切なファイルフォーマットに必要な機能条件及びその他の条件を記載した、Software Requirements Specificationバージョン0.04を1998年11月12日発行している。しかしながら、適切なファイルフォーマットはまだ提案されていない。
【０００７】
本発明の目的は、実質的に如何なるプリンタ及びオペレーティングシステムに対しても実現でき、それにより、コンピュータシステムによって利用されているオペレーティングシステムにかかわらず、プリンタドライバがプリンタとインタフェース可能な、汎用プリンタ記述データファイル（「UPDF」）のデータ構造を定義することである。また、本発明の目的は、最初はデータ構造に提供されないプリンタ記述データの追加を可能にするようにデータ構造の拡張可能性を提供することである。これらの目的及びその他の目的、特徴及び利点は本発明によって実現される。
【０００８】
【課題を解決するための手段】
本発明は、プリンタと通信可能な情報処理装置であって、前記プリンタの能力情報を格納するための複数のデータ要素がマークアップ言語で定義された汎用プリンタデータ構造定義ファイルを格納し、当該汎用プリンタデータ構造定義ファイルの各データ要素に前記プリンタの関連特徴に対応するデータで埋めることにより作成された汎用プリンタ記述ファイルを格納する格納手段と、前記格納手段によって格納された汎用プリンタ記述ファイルと前記汎用プリンタデータ構造定義ファイルとを比較して前記汎用プリンタ記述ファイルを構文解析することにより前記プリンタに固有のプリンタドライバを作成する作成手段とを有することを特徴とする。
【００１１】
好ましい形態では、汎用プリンタデータ構造定義は、データ要素及びそれらに対応する属性が厳密な階層を成して定義されるように拡張可能マークアップ言語（「ＸＭＬ」）を使用して作成される。ＸＭＬに従って、汎用プリンタデータ構造定義は文書型記述（「ＤＴＤ」）ファイルとして知られているファイルの中に保持される。ＸＭＬの構文と、ＤＴＤファイルの汎用プリンタデータ構造定義の中におけるデータ要素の構造階層とは、特定のプリンタに対応する汎用プリンタ記述ファイルを作成するときに一致していなければならない。作成後、汎用プリンタ記述ファイルは、実質的にＸＭＬを支援するどのオペレーティングシステム環境においてもプリンタを支援するためのプリンタドライバを構成可能とするために、プリンタドライバによるアクセスに備えてメモリ領域に格納される。
【００１２】
例えば、汎用プリンタデータ構造定義は、プリンタの能力、特性、特徴及び制御機能などのプリンタ記述データを格納するために、所定の一組のデータ要素とそれらに対応する属性を所定の固定された階層の形態で含むＤＴＤファイルの中で規定される。ＤＴＤで定義される汎用プリンタデータ構造を、特定のプリンタを表現するプリンタ記述データで埋めて、その特定のプリンタに関わる汎用プリンタ記述ファイルを作成する。汎用プリンタ記述ファイルの中に新たなデータ要素を追加することにより、汎用プリンタデータ構造定義では規定されていない特定プリンタの追加の特徴又は能力を考慮することができる。汎用プリンタ記述ファイルはメモリ領域の中に格納され、後に、実質的にどのオペレーティングシステムにおいても、汎用プリンタ記述ファイルに記述されている特定のプリンタとインタフェースするようにプリンタドライバを構成するためにアクセスされ、使用される。
【００１３】
この構成によって、本発明は、実質的に如何なるオペレーティングシステムでも特定のプリンタに対応する汎用プリンタ記述ファイルを作成するのに使用可能である標準化された、階層をなす汎用プリンタ記述データ構造定義を提供する。従って、本発明によれば、複数のオペレーティングシステムで特定のプリンタを支援するために多数のプリンタ記述ファイルを作成する必要性が減少する。
【００１４】
【発明の実施の形態】
図１は、本発明の実施と関連して使用されるコンピュータ４０とプリンタ５０の外観を示す図である。コンピュータ４０は、好ましくは、MicrosoftのWindows95又はWindows NTなどのウィンドウイング（windowing）環境を有するＩＢＭ  ＰＣコンパチブルコンピュータなどのパーソナルコンピュータ（以下、「ＰＣ」という）から構成されるホストプロセッサ４１を含む。コンピュータ４０には、表示画面４２を含む表示装置４３と、テキストデータやユーザからの指令を入力するためのキーボード４６と、ポインティングデバイス４７とが設けられている。好ましくは、ポインティングデバイス４７は、表示画面４２に表示されるオブジェクトを指示したり、操作したりするためのマウスである。
【００１５】
コンピュータ４０は、コンピュータディスク４５及び／又はフロッピーディスクドライブ４４のようなコンピュータ読み取り可能な記憶媒体を含む。フロッピーディスクドライブ４４は、コンピュータ４０が着脱自在の記憶媒体に格納されたデータ、アプリケーションプログラムなどの情報をアクセスできるようにするための手段を構成する。コンピュータ４０が着脱自在のＣＤ−ＲＯＭ媒体に格納された情報をアクセスできるようにするための同様なＣＤ−ＲＯＭインタフェース（図示せず）をコンピュータ４０に設けても良い。
【００１６】
プリンタ５０は、紙又は透明フィルムなどの記録媒体上に画像を形成する、レーザプリンタ又はインクジェットプリンタなどのプリンタである。但し、コンピュータ４０の内部のプリンタドライバを介してプリンタをコンピュータにインタフェースできるのであれば、本発明はその他のプリンタと組み合わせても適用できる。
【００１７】
図２は、コンピュータ４０及びプリンタ５０の内部構造を示すブロック図である。図２において、コンピュータ４０は、コンピュータバス１０１にインタフェースされるプログラム可能なマイクロプロセッサなどの中央処理装置（「ＣＰＵ」）１００を含む。コンピュータバス１０１には、表示装置４３にインタフェースするための表示装置インタフェース１０２、両方向通信回線１０６を介してプリンタ５０にインタフェースするためのプリンタインタフェース１０４、フロッピーディスクドライブ４４にインタフェースするためのフロッピーディスクインタフェース１２４、キーボード４６にインタフェースするためのキーボードインタフェース１０９、及びポインティングデバイス４７にインタフェースするためのポインティングデバイスインタフェース１１０も結合している。ランダムアクセスメモリ（「ＲＡＭ」）１１６は、コンピュータバス１０１にインタフェースし、ＣＰＵ１００に記憶装置へのアクセスを提供する。特に、格納されたプログラム命令シーケンスを実行するときに、ＣＰＵ１００はそれらの命令シーケンスをディスク４５（又は不図示のネットワークインタフェースを介してアクセスされるコンピュータ読み取り可能な媒体などの別の記憶媒体）からＲＡＭ１１６へロードし、ＲＡＭ１１６から格納されているそれらのプログラム命令シーケンスを読み出して実行する。また、ウィンドウイングオペレーティングシステムの下で利用可能な標準ディスクスワッピング技法によってディスク４５とＲＡＭ１１６との間でメモリの各セグメントがスワッピングできることも認識すべきである。コンピュータ４０内の読み取り専用メモリ（「ＲＯＭ」）１０３はキーボード４６の操作に関わるスタートアップ命令シーケンス又は基本入出力オペレーティングシステム（「ＢＩＯＳ」）などの不変の命令シーケンスを格納している。
【００１８】
ディスク４５は、オペレーティングシステム１１１、アプリケーションプログラム１１２、プリンタドライバ１１４、汎用プリンタデータ構造定義ファイル（ＵＰＤＳＤ）１５０、汎用プリンタ記述ファイル（ＵＰＤＦ）１４０、及びその他のアプリケーションプログラム、ファイル及びドライバ１１９などのデバイスドライバを構成するようにＣＰＵ１００で実行可能なプログラム命令シーケンスを格納するコンピュータ読み取り可能な媒体の一例である。アプリケーションプログラムは、そのプログラムによりコンピュータ４０がファイルを生成し、それらのファイルを操作し、且つディスク４５に格納し、それらのファイルのデータを表示画面４２を介してユーザに提示し、且つプリンタ５０を介してデータを印刷するプログラムである。また、ディスク４５は、上述したように、好ましくはウィンドウイングオペレーティングシステムであるオペレーティングシステム１１１を格納している。また、ディスク４５にはデバイスドライバも格納されている。デバイスドライバの少なくとも１つは、プリンタ５０に対してソフトウェアインタフェースを形成するプリンタドライバ１１４である。コンピュータ４０とプリンタ５０との間で交換されるデータは、プリンタドライバ１１４により符号化されるプログラム命令シーケンスを介してプリンタドライバ１１４により得られる。汎用プリンタデータ構造定義ファイル１５０と汎用プリンタ記述ファイル１４０は、プリンタドライバ１１４がプリンタ５０の能力、特性、特徴及び制御機能に従ってプリンタ５０に対して適正なインタフェースを提供できるように、プリンタドライバ１１４を構成する間アクセスされ、利用される。プリンタドライバ１１４を構成するために汎用プリンタデータ構造定義ファイル１５０と汎用プリンタ記述ファイル１４０がどのように利用されるかについては、後に更に詳細に説明する。
【００１９】
尚、プリンタドライバ１１４は、各プリンタに共通の共通プリンタドライバと個々のプリンタに固有の固有プリンタドライバとを含む。
【００２０】
再び図２を参照すると、プリンタ５０はプリントコントローラ１２０とプリンタエンジン１３１とを含む。プリントコントローラ１２０は、プリンタ５０からプリント出力を得るためにプリンタエンジン１３１とインタフェースする複数のコンピュータ化された装置及び電子装置を含む。図２に示すように、プリントコントローラ１２０は８ビット又は１６ビットのマイクロプロセッサなどのＣＰＵ１２１、ＲＯＭ１２２、制御ロジック１２４、及びバス１２６に接続する入出力ポート１２７を含む。また、制御ロジック１２４にはＲＡＭ１２９も接続されている。入出力ポート１２７には、後の印刷動作中に使用するために両方向リンク１０６を介してコンピュータ４０により得ることができるプリンタパラメータを格納するＥＥＰＲＯＭ１３２が接続している。
【００２１】
プリンタエンジン１３１は、プリンタ５０からプリント出力を得るためのコンピュータ化された装置、電子装置及び物理的な装置を含む。制御ロジック１２４はプリンタエンジン１３１に直接的に制御信号を供給し、入出力ポート１２７を介してプリンタエンジン１３１に制御ロジックを提供する。また、入出力ポート１２７はプリンタエンジン１３１のセンサ出力信号を制御ロジック１２４に供給する。
【００２２】
ＲＯＭ１２２は、フォントデータ、プリンタ５０を制御するためのプログラム命令シーケンス、及びプリンタの動作に必要な他の不変データを格納している。ＲＡＭ１２９は、プリンタエンジン１３１で記録可能な媒体（図示せず）へプリントアウトを行うためにＲＯＭ１２２のプログラム命令シーケンスによって定義されるプリントバッファにプリントデータを格納している。ＥＥＰＲＯＭ１３２は、プリンタ関連情報を格納する再プログラム可能な不揮発性メモリを構成する。このプリンタ関連情報は、プリンタ５０の動作パラメータをコンピュータ４０に報知すると共に、プリンタ５０の様々な構成に対応するために両方向通信回線１０６を介してプリンタ５０へ送信されるプリントデータをプリンタドライバ１１４が変更できるようにするために、コンピュータ４０のプリンタドライバ１１４へ提供されても良い。好ましくは、プリンタドライバ１１４を構成するためにコンピュータ４０が両方向リンク１０６を介してアクセスできるように汎用プリンタの記述ファイル１４０及び汎用プリンタのデータ構造定義ファイル１５０をプリンタ５０のＲＯＭ１２２又はＥＥＰＲＯＭ１３２にも格納する。
【００２３】
図３は、プリンタドライバ１１４の構成に利用される汎用プリンタ記述ファイル１４０の汎用プリンタデータ構造定義ファイル１５０の構成を示す図である。図３では、複数の所定のデータ要素が所定の論理、階層構造を成して配列されている。所定の複数のデータ要素は、典型的にはプリンタ５０のような複数のプリンタの１つにより支援される様々な能力、特性、特徴及び制御機能に関連するデータを格納する。汎用プリンタデータ構造定義ファイル１５０は、各々のデータ要素、その関連属性及びデータ構造定義中のその他のデータ要素との相互関係を定義するために、厳密な構文とのコンプライアンスを必要とする拡張可能マークアップ言語に従って作成される。この拡張可能マークアップ言語は、厳格な階層としてデータ要素を配列することが求められるだけでなく、汎用プリンタデータ構造定義ファイルの所定の複数のデータ要素に含まれない、新たなデータ要素の追加のためにデータ構造の拡張を可能とする。また、拡張可能マークアップ言語は、Microsoft Windows、UNIX、及びApple Macintoshオペレーティングシステムなどのほぼ全てのオペレーティングシステムから独立している。代表的な汎用プリンタのデータ構造定義を「ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格」として図７乃至図２３に示す。
【００２４】
再び図３を参照すると、汎用プリンタデータ構造定義ファイル１５０は、図３に機器能力（DeviceCap）１５１として示されている機器能力データ要素から構成されている。この機器能力データ要素１５１は、図３に示すデータ構造の機能ユニット全体を表現する。機器能力データ要素１５１は汎用プリンタデータ構造定義ファイル１５０のルートに位置している。機器能力データ要素１５１はそれ自体もデータ要素である複数の部分要素を含む。機器能力データ要素１５１に含まれる部分要素は、機器能力ヘッダ（DeviceCap.Header）データ要素１５４、UPDFバージョン（UPDFVersion）データ要素１５２及び特徴（Features）データ要素１５５である。機器能力ヘッダデータ要素１５４は、記述されている特定のプリンタ機器のヘッダ情報を定義する機器ヘッダタグである。機器能力ヘッダデータ要素１５４は、部分要素として、ファイルバージョン（FileVersion）データ要素１５６、製品（Product）データ要素１５７、モデル名（ModelName）データ要素１５８、愛称（NickName）データ要素１５９、機器識別（DeviceID）データ要素１６０、ローカル（Locale）データ要素１６１及びファイル名（FileName）データ要素１６２を含む。ファイルバージョンデータ要素１５６は、後に汎用プリンタ記述ファイルのファイルバージョンを識別する際に使用するために予約されている。製品データ要素１５７は、記述されているプリンタ機器の製品名を特定するのに使用される。モデル名データ要素１５８は、記述されているプリンタ機器のモデル名を特定するのに使用される。愛称データ要素１５９は、記述されているプリンタ機器の愛称を特定するのに使用される。機器識別データ要素１６０は、記述されているプリンタ機器を識別するのに使用され、それ自体、更なる識別のための部分要素（図示せず）を含む。ローカルデータ要素１６１は、日本語、米語、英語、フランス語、ドイツ語及びスペイン語のうち何れか１つの言語を識別するのに使用される。ファイル名データ要素１６２は、後の使用に備えて予約されている。
【００２５】
UPDFバージョンデータ要素１５２は、汎用プリンタ記述ファイルのバージョンを識別するのに使用され、部分要素として、更にバージョンの識別のためのフォーマットバージョン（FormatVersion）データ要素１５３を含む。特徴データ要素１５５は、記述されているプリンタ機器全体の記述の始まりと終わりをマークするのに使用される。特徴データ要素１５５は、部分要素として、プリンタ機器のファックス、プリンタ及びスキャナそれぞれの能力を記述するファックス能力（FaxCap）データ要素１６３、プリンタ能力（PrinterCap）データ要素１６９及びスキャナ能力（ScanCap）データ要素１７０を含む。
【００２６】
ファックス能力データ要素１６３は、ファックス能力ヘッダ（FaxCap.Header）データ要素１６４及び特徴（Features）データ要素１６８を含む。ファックス能力ヘッダデータ要素１６４は、ファックス（Fax）データ要素１６５、言語（Language）データ要素１６６、モジュール名（ModuleNames）データ要素１６７を更に含む。これらのファックス関連データ要素は、後にプリンタ機器のファックス能力を記述する際に使用するために予約されている。同様に、スキャナ能力データ要素１７０はスキャナ能力ヘッダ（ScanCap.Header）データ要素１７１及び特徴（Features）データ要素１７５を含む。スキャナ能力ヘッダデータ要素１７１は、スキャン（Scan）データ要素１７２、言語（Language）データ要素１７３及びモジュール名（ModuleNames）データ要素１７４を更に含む。これらのデータ要素も、後にプリンタ機器のスキャナ能力を記述する際に使用するために予約されている。
【００２７】
プリンタ能力データ要素１６９は、記述されているプリンタ機器のプリンタ関連能力及び機能を表現する。プリンタ能力データ要素１６９は、部分要素として、プリンタ能力ヘッダ（PrinterCap.Header）データ要素１７６及び特徴（Features）データ要素１７７を含む。プリンタ能力ヘッダデータ要素１７６は、プリンタ機器のヘッダ情報を表現し、部分要素として、プリンタ（Printer）データ要素１７８、言語（Language）データ要素１７９及びモジュール名（ModuleNames）データ要素１８０を更に含む。プリンタデータ要素１７８はプリンタの識別に使用され、言語データ要素１７９は使用されるべきPDLプリンタ言語、好ましくはLIPS4、PCL5e、PCL5c、PCL6、XL、PS2、PS3、GDIGM、ESCP及びRASTERからなる言語群のうち１つを識別するのに使用される。モジュール名データ要素１８０は後の使用に備えて予約されている。
【００２８】
プリンタ能力データ要素１６９の下の、特徴データ要素１７７はプリンタ機器のプリンタ関連特徴及び能力の完全記述の始まりと終わりをマークするのに使用される。図４を参照すると、特徴データ要素１７７は、部分要素として、物理的（Physical）データ要素１８１、プラットフォーム（Platform）データ要素１８８、リソース（Resource）データ要素１９４、フォント（Fonts）データ要素１９５、オーバーレイ（Overlays）データ要素１９８、フォーム（Forms）データ要素１９９、コミュニケーション（Communication）データ要素２００、ＯＥＭデータ要素２０１、ローカリゼーション（Localization）データ要素２０２及びグローバル（Global）データ要素２０３を含む。
【００２９】
物理的データ要素１８１は記述されているプリンタ機器のハードウェア構成を識別し、部分要素として、エンジン（Engine）データ要素１８２、ＲＡＭデータ要素１８３、ＲＯＭデータ要素１８４、カラー（Color）データ要素１８５、挿入（Inserters）データ要素１８６及び記憶装置（Storages）データ要素１８７を含む。エンジンデータ要素１８２は、記述されているプリンタ機器に含まれるプリンタエンジンの種類、例えばレーザプリンタエンジンやバブルジェットプリンタエンジンなどを記述するのに使用される。ＲＡＭデータ要素１８３は、記述されているプリンタ機器の内部のＲＡＭの容量を記述するために使用され、ＲＯＭデータ要素１８４は記述されているプリンタ機器に設けられたＲＯＭの容量を記述するために使用される。カラーデータ要素１８５は、記述されているプリンタ機器がカラー印刷を支援するか否か及び記録可能な媒体に色空間を形成する方式を指示する。挿入データ要素１８６は、記述されているプリンタ機器の挿入を支援する能力を指示する。記憶装置データ要素１８７は、記述されているプリンタ機器が記憶装置を支援するか否かを指示する。
【００３０】
プラットフォームデータ要素１８８は、記述されているプリンタ機器の何らかのオペレーティングシステムの特徴及び能力を識別する。このプラットフォームデータ要素１８８は、部分要素として、モジュール名（ModuleNames）データ要素１８９、ホストレンダリング（HostRendering）データ要素１９０、オブジェクトシグネチャー（ObjectSignature）データ要素１９１、コールバック手続き（DDBProc）データ要素１９２及びキャッシュ手続き（CacheProc）データ要素１９３を含む。モジュール名データ要素１８９は、何らかのオペレーティングシステムの特徴及び能力と関連するオブジェクト及び／又は２進ファイルの名前を識別する。ホストレンダリングデータ要素１９０は、記述されているプリンタ機器がホストレンダリングを支援することができるか否かを指示する。オブジェクトシグネチャーデータ要素１９１は、記述されているプリンタ機器がオブジェクトシグネチャーを支援するか否かを指示する。コールバック手続きデータ要素１８２は、記述されているプリンタ機器により使用されるコールバック手続きを指示する。キャッシュ手続きデータ要素１９３は、記述されているプリンタ機器により使用されるキャッシュ手続きを指示する。
【００３１】
リソースデータ要素１９４、オーバーレイデータ要素１９８、フォームデータ要素１９９、コミュニケーションデータ要素２００、ＯＥＭデータ要素２０１及びローカリゼーションデータ要素２０２は、全て、後にそれぞれ対応する名前により指示されるプリンタの機能や能力を記述する際に使用するために予約されている。フォントデータ要素１９５は、記述されているプリンタ機器のフォント能力を識別する。このフォントデータ要素１９５は、部分要素として、デフォルトフォント（DefaultFont）データ要素１９６及び内部フォント（InternalFont）データ要素１９７を含む。デフォルトフォントデータ要素１９６は、記述されているプリンタ機器がデフォルトフォントを支援するか否かを指示する。内部フォントデータ要素１９７は、記述されているプリンタ機器が内部フォントを支援するか否かを指示する。内部フォントデータ要素１９７は、部分要素（図示せず）として、プリンタ機器の内部フォント能力を更に識別するためにフォント符号化データ要素、フォントバージョンデータ要素、フォント文字セットデータ要素、フォント状態データ要素及びフォント識別データ要素を含む。
【００３２】
グローバルデータ要素２０３は、記述されているプリンタ機器のグローバルな能力及び機能を識別し、部分要素として、ユーザインタフェース（User Interface）データ要素２０４、媒体（Media）データ要素２１３、用紙処理（PaperHandling）データ要素２１７、後処理（Finishings）データ要素２２０、カラー（Colors）データ要素２３１及び拡張ユニット（ExpUnits）データ要素２３４を含む。ユーザインタフェースデータ要素２０４は、記述されているプリンタ機器により支援されるユーザインタフェース能力及び機能を識別し、部分要素として、プリンタメモリ管理（PrinterMemoriManage）データ要素２０５、ページプロテクト（PageProtects）データ要素２０６、解像度（Resolutions）データ要素２０７、トナーセーブ（Tonersaves）データ要素２０８、スムージングモード（SmoothingModes）データ要素２０９、ディザスムージング（DitherSmoothings）データ要素２１０、ディザ（Dithers）データ要素２１１及びユーザインタフェース制約（UIConstraints）データ要素２１２を更に含む。プリンタメモリ管理データ要素２０５は、ユーザが記述されているプリンタ機器においてメモリを管理する様々なモードの中から１つを選択することを可能にするのに使用される。ページプロテクトデータ要素２０７は、記述されているプリンタ機器がページプロテクションを支援するか否かを指示するのに使用される。解像度データ要素２０６は、記述されているプリンタ機器のプリンタ解像度を支援する能力を指示する。トナーセーブデータ要素２０８は、記述されているプリンタ機器がトナーセーブ機能を支援するか否かを指示する。スムージングモードデータ要素２０９は、記述されているプリンタ機器が印刷時にスムージングモードの選択を支援するか否かを指示する。ディザスムージングデータ要素２１０は、記述されているプリンタ機器が印刷時にユーザによるディザスムージングの選択を支援するか否かを指示する。ディザデータ要素２１１は、記述されているプリンタ機器がディザ能力を支援するか否かを指示し、部分要素として、ディザ機能性を更に記述するためのハーフトーンデータ要素（図示せず）及びグレイアウトデータ要素（図示せず）を更に含む。
【００３３】
ユーザインタフェース制約データ要素２１２は、記述されているプリンタ機器が支援できない能力又は機能をユーザが選択するのを阻止するためのユーザインタフェース制約を識別する。このユーザインタフェース制約データ要素２１２は、部分要素として、許可される最大コピー枚数、許可される最大バインディングマージン、印刷媒体の面の方向、許可されるペイントモード、許可されるプリンタ用紙名、許可される定着モード、許可される位置合わせモード、許可される色校正及び許可される用紙レイアウトを記述するためのいくつかのデータ要素（図示せず）を更に含む。
【００３４】
媒体データ要素２１３は、記述されているプリンタ機器により支援される記録媒体の能力及び機能を識別する。媒体データ要素２１３は、用紙（Papers）データ要素２１４、ＵＤＰ情報（UdpInfos）データ要素２１５及び媒体（Medias）データ要素２１６を更に含む。用紙データ要素２１４は、記述されているプリンタ機器により支援される用紙の大きさとレイアウトを指示し、部分要素として、用紙の面積を指示するためのデータ要素（図示せず）、用紙レイアウトを指示するためのデータ要素（図示せず）及び用紙の仕上げ能力を指示するためのデータ要素（図示せず）を更に含む。用紙の面積を指示するデータ要素は、部分要素として、記述されているプリンタ機器により支援される用紙の大きさ、面積及びマージンを記述するためのいくつかのデータ要素を含む。ＵＤＰ情報データ要素２１５は、記述されているプリンタ要素の、ユーザが定義した用紙情報を支援する能力を指示し、部分要素として、ユーザが定義した用紙のデフォルトサイズ、マージンサイズ及び最大・最小サイズを指示するためのいくつかのデータ要素（図示せず）を更に含む。
【００３５】
用紙処理データ要素２１７は、記述されているプリンタ機器により支援される用紙の供給源及び宛先を指示し、部分要素として、用紙供給源（PaperSources）データ要素２１８及び用紙宛先（PaperDestinations）データ要素２１９を更に含む。用紙供給源データ要素２１８は用紙供給源を表すトレイアイデンティティ及びそのトレイが支援できる用紙を指示する。用紙宛先データ要素２１９は用紙の宛先出力及びその宛先出力が支援できる用紙の種類を指示する。後処理データ要素２２０は、記述されているプリンタ機器のプリント後能力及び機能を指示し、部分要素として、両面能力を指示する両面（Duplex）データ要素２２１、ブックレット能力を指示するブックレット（Booklet）データ要素２２２、中央見開き及びステープル能力を指示する中央見開・ステープル（CenterFoldandStaple）データ要素２２３、順序反転能力の支援を指示する順序反転（ReverseOrder）データ要素２２４、プリントジョブをオフセットするための能力を指示するジョブオフセット（JobOffset）データ要素２２５、文書を照合するための能力を指示するグループ照合（CollateGroup）データ要素２２６、メールボックス能力の支援を指示するメールボックス（Mailbox）データ要素２２７、ステープル能力を指示するステープル（Staple）データ要素２２８、折りたたみ能力を指示する折りたたみ（Folds）データ要素２２９及び穴あけ能力を指示する穴あけ（HolePunch）データ要素２３０を更に含む。
【００３６】
カラーデータ要素２３１は、記述されているプリンタ機器のカラー機能及び能力を記述するのに使用され、部分要素として、カラー処理（ColorProcessing）データ要素２３２及びプリントされた媒体における色空間を定義する画素の濃さ（PixelDepths）データ要素２３３を更に含む。カラー処理データ要素２３２は、色空間処理及びカラーモードスイッチ能力を指示するデータ要素（図示せず）を更に含む。
【００３７】
拡張ユニットデータ要素２３４は、プリンタ機器のための拡張ユニットの様々な種類のプリンタ機器による支援を識別するのに使用される。この拡張ユニットデータ要素２３４は、部分要素として、プリンタ機器内部の拡張ＲＡＭを識別する拡張ＲＡＭ（ExpRAMS）データ要素２３５と、記述されているプリンタ機器における拡張フォントカードを識別する拡張フォントカード（ExpFontCards）データ要素２３６、記述すべきプリンタ装置における拡張両面ユニットを識別する拡張両面（ExpDuplexs）データ要素２３７、記述されているプリンタ機器における拡張用紙供給源ユニットを識別する拡張用紙供給源（ExpPaperSources）データ要素２３８、記述されているプリンタ機器における拡張用紙宛先ユニットを識別する拡張用紙宛先（ExpPaperDestinations）データ要素２３９、記述されているプリンタ機器における拡張挿入ユニットを識別する拡張挿入（ExpInserters）データ要素２４０及び記述されているプリンタ機器における拡張記憶装置ユニットを識別する拡張記憶装置（ExpStorages）データ要素２４１を更に含む。
【００３８】
図５は、図３及び図４の汎用プリンタデータ構造定義ファイル１５０に従って作成される汎用プリンタ記述ファイル１４０の１つのデータ要素のフォーマットを説明する図である。図５において、機器能力データ要素１５１のフォーマットは、そのデータ要素の構成要素を識別するために提供される。図５に示すフォーマットは、汎用プリンタデータ構造定義ファイル１５０を定義するために使用される拡張可能マークアップ言語の構文に従って要求される。スタートタグ４００は、機器能力データ要素１５１の第１の構成要素であり、そのデータ要素の始まりを識別するために使用される。スタートタグ４００の後には、機器能力データ要素１５１と関連するデータが記述され、機器能力エンドタグ４０１まで続けられる。拡張可能マークアップ言語により定義されるデータ要素と関連するデータは、データ値、部分要素として他のデータ要素、或いはデータ値及び／又は部分要素の組み合わせから構成されている。再び図５を参照すると、機器能力データ要素１５１と関連するデータは、機器能力ヘッダデータ要素１５４、UPDFバージョンデータ要素１５２及び特徴データ要素１５５を含む３つの部分要素から構成されている。これら３つの部分要素は、全て汎用プリンタデータ構造定義ファイル１５０の同じ階層レベルに位置し、それ自体、関連するデータ及び／又は部分要素を有することができる（図３を参照）。このように、部分要素がそれぞれ上位のデータ要素に従属することによりデータ要素の入れ子形階層が確立される。即ち、スタートタグ４００とエンドタグ４０１は、機器能力データ要素１５１と関連する特定のデータ階層を包み込んでいるのである。
【００３９】
汎用プリンタデータ構造定義ファイル１５０は、汎用プリンタ記述ファイル１４０に配置するための特定プリンタデータ構造を作成すべくアクセスされ、利用される。汎用プリンタ記述ファイル１４０は、汎用プリンタデータ構造定義ファイル１５０で定義されたデータ要素をプリンタ５０などの特定のプリンタに対応するデータで埋めることにより作成される。その後、汎用プリンタ記述ファイル１４０を固定ディスク４５又はフロッピーディスク４４などのメモリ領域に格納し、ＣＰＵ１００でプリンタドライバ初期設定プロセスを実行する間に、プリンタドライバ１１４がこのファイルをアクセスする。また、ＣＰＵ１００におけるプリンタドライバ初期設定プロセスの実行中にプリンタドライバ１１４が両方向リンク１０６を介してアクセスできるように、汎用プリンタ記述ファイル１４０をＲＯＭ１２２又はＥＥＰＲＯＭ１３２などのプリンタのメモリ領域に格納することも可能である。汎用プリンタ記述ファイル１４０に含まれるプリンタ関連データは、コンピュータ４０のアプリケーション１１２とプリンタ５０との間のインタフェースを提供するプリンタドライバを構成する初期設定プロセスの間にプリンタドライバ１１４に渡される。このように、汎用プリンタ記述ファイル１４０は、実質的にどのようなオペレーティングシステムでもプリンタ５０を支援するためのプリンタドライバ１１４を構成するのに使用される。
【００４０】
図６は、本発明の好ましい実施形態の動作を示すフローチャートである。簡単に言えば、図６に従うと、特定のプリンタの構成及び能力の情報を定義する特定プリンタデータ構造をアクセスし、汎用データ構造定義に照らして特定プリンタデータ構造を構文解析し、特定プリンタデータ構造の有効性を確認し、プリンタドライバが指定されたプリンタの全ての能力を利用して適正な構成における特定プリンタに対してプリンタドライバがプリントできるように特定プリンタデータ構造によってプリンタドライバを構成するのである。
【００４１】
図６は、共通プリンタドライバの制御を示すもので、アプリケーションにより印刷が指示されると実行される動作である。
【００４２】
より詳細に説明すると、アプリケーションの画面からユーザが印刷を指示した共通プリンタドライバが固有プリンタドライバを作成する処理である。ＯＳには現在選択されたプリンタの名称がレジストリに保持されている。そして、アプリケーションから印刷が指示されると、共通プリンタドライバはレジストリに保持されているプリンタ名称をもらって、ステップＳ６０１で前述したデータ構造のような特定プリンタデータ構造をアクセスする。データ構造が既に固定ディスク４５にダウンロードされていれば、そのディスク４５の汎用プリンタデータファイル（UPDF）１４０にアクセスし、さもなければフロッピーディスク又はＣＤ−ＲＯＭで特定される着脱自在の媒体の何れか１つに対してアクセスする。特定プリンタデータ構造が固定ディスク４５にまだ格納されていない状況では、通信インタフェース１０６を介してプリンタ５０にアクセスする。また、インターネット接続やローカルエリアネットワーク又はワイドエリアネットワークなどの別の手段を介してアクセスしても良い。
【００４３】
ステップＳ６０２で固定ディスク４５に格納されている汎用プリンタデータ構造定義ファイル１５０に照らして特定プリンタデータ構造を構文解析する。この構文解析ステップＳ６０２の目的は、特定プリンタデータ構造の有効性を保証すると共に汎用プリンタデータ構造定義ファイル（UPDSD）１５０にまだ含まれていないデータ構造の追加マークアップ拡張を認識することである。特定プリンタデータ構造の有効性を確認したならばステップＳ６０４へ進み、そうでない場合にはエラーを検出し、終了する。
【００４４】
ステップＳ６０４では、特定プリンタデータ構造に応じて固有のプリンタドライバ１１４を構成する。この構成ステップによれば、汎用プリンタドライバであるプリンタドライバ１１４を特定プリンタデータ構造により特定されるプリンタと正確に通信して構成すると共に特定プリンタデータ構造により特定される全ての能力を利用して構成する。例えば、特定プリンタデータ構造があるプリンタについて利用可能な特定の仕上げオプションを特定している場合、その仕上げオプションをアクセスしてプリンタドライバ１１４を構成すると共に、ユーザがそのような仕上げ操作の所望の設定を選択できるユーザインタフェースを表示してプリンタドライバ１１４を構成する。
【００４５】
その後、ステップＳ６０５へ進み、プリンタドライバ１１４はプリンタ５０に対してプリントを実行する。
【００４６】
本発明の好ましい実施形態では、汎用プリンタデータ構造定義ファイル１５０は拡張可能マークアップ言語（「ＸＭＬ」）に従って定義され、ＸＭＬによって支援されるファイル及び文書型記述（「ＤＴＤ」）ファイルと呼ばれるファイルの中に保持される。ＸＭＬは徐々に知られてきているマークアップ言語であり、特定のオペレーティングシステムに従属することはなく、厳密な構文の使用と、ＤＴＤファイル内で提供されるゆるぎないデータ構造定義への準拠とによって、どの汎用プリンタ記述ファイルにおいても一貫性を保つ。ＸＭＬの拡張可能性は、ＤＴＤの中の汎用プリンタデータ構造定義ファイル１５０の所定のデータ要素群には提供されない特定の汎用プリンタ記述ファイル１４０の中にデータ要素の追加を可能とする。それゆえ、実質的に如何なるオペレーティングシステムでもプリンタドライバ１１４の構成のために複数のプリンタの何れか１つのプリンタをも表現するＤＴＤファイルで提供される汎用プリンタデータ構造定義ファイル１５０に基づいて汎用プリンタ記述ファイル１４０を作成できる。また、ＤＴＤファイルは、汎用プリンタ記述ファイル１４０がＤＴＤファイル内で提供される汎用プリンタデータ構造定義ファイル１５０に従っていることを確認するためにエラー検査に使用される。そのようなエラー検査により、汎用プリンタ記述ファイルがある１つのＤＴＤのデータ構造定義に準拠していることを確認し、多数の汎用プリンタ記述ファイル、プリンタドライバ及びオペレーティングシステムの一致を得ることができる。
【００４７】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００４８】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００４９】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５０】
プログラムコードを供給するための記憶媒体としては、例えばフロッピーディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００５１】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５２】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【図１】本発明と関連して使用されるコンピュータ及びプリンタの斜視図である。
【図２】プリンタにインタフェースされるコンピュータのハードウェア構成を示す詳細なブロック図である。
【図３】本発明の実施形態による汎用プリンタ記述ファイルの汎用プリンタデータ構造定義ファイルの構成を示す図である。
【図４】更に、図３の汎用プリンタデータ構造定義ファイルの構成を示す図である。
【図５】汎用プリンタ記述ファイルのデータ要素のフォーマットを示す図である。
【図６】特定プリンタデータ構造を用いて汎用プリンタドライバを構成する動作を示すフローチャートである。
【図７】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図８】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図９】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図１０】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図１１】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図１２】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図１３】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図１４】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図１５】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図１６】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図１７】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図１８】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図１９】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図２０】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図２１】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図２２】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【図２３】ＸＭＬでＵＰＤＦを作成するためのＤＴＤ規格を示す図である。
【符号の説明】
４０  コンピュータ
４３  表示装置
４４  フロッピーディスクドライブ
４５  固定ディスク
４６  キーボード
４７  ポインティングデバイス
５０  プリンタ
１００  中央処理装置（ＣＰＵ）
１０１  コンピュータバス
１０２  表示装置インタフェース
１０３  読み取り専用メモリ（ＲＯＭ）
１０４  プリンタインタフェース
１０６  両方向通信回線
１０９  キーボードインタフェース
１１０  ポインティングデバイスインタフェース
１１１  オペレーティングシステム
１１２  アプリケーション
１１４  プリンタドライバ
１１６  ランダムアクセスメモリ（ＲＡＭ）
１１９  その他のドライバ
１２０  プリントコントローラ
１２１  中央処理装置（ＣＰＵ）
１２２  読み取り専用メモリ（ＲＯＭ）
１２４  制御ロジック
１２６  バス
１２７  入出力ポート
１２９  ランダムアクセスメモリ（ＲＡＭ）
１３１  プリンタエンジン
１３２  ＥＥＰＲＯＭ
１４０  汎用プリンタ記述ファイル（UPDF）
１５０  汎用プリンタデータ構造定義ファイル（UPDSD）
【図１】
0004630417.tif 000002
【図２】
0004630417.tif 000003
【図３】
0004630417.tif 000004
【図４】
0004630417.tif 000005
【図５】
0004630417.tif 000006
【図６】
0004630417.tif 000007
【図７】
0004630417.tif 000008
【図８】
0004630417.tif 000009
【図９】
0004630417.tif 000010
【図１０】
0004630417.tif 000011
【図１１】
0004630417.tif 000012
【図１２】
0004630417.tif 000013
【図１３】
0004630417.tif 000014
【図１４】
0004630417.tif 000015
【図１５】
0004630417.tif 000016
【図１６】
0004630417.tif 000017
【図１７】
0004630417.tif 000018
【図１８】
0004630417.tif 000019
【図１９】
0004630417.tif 000020
【図２０】
0004630417.tif 000021
【図２１】
0004630417.tif 000022
【図２２】
0004630417.tif 000023
【図２３】
0004630417.tif 000024