(57)【特許請求の範囲】
【請求項１】
アプリケーションを用いて、印刷データと分散印刷の設定が定義された印刷指示文書とを生成する文書生成手段と、
プリントサービス提供プログラムの制御下にて、前記印刷指示文書で定義された分散印刷の設定である分散印刷の印刷先となる複数のプリンタを指定する情報を読み出す読み出し手段と、
前記読み出し手段により読み出された情報を、前記アプリケーションの制御下にて、前記印刷指示文書に格納させる格納手段と、
前記格納手段により格納された前記印刷指示文書の分散印刷の設定に従って前記印刷データの分散印刷を実行する分散印刷実行手段と
を備えることを特徴とする印刷制御装置。
【請求項２】
前記プリントサービス提供プログラムを用いて複数のプリンタに対応する分散印刷の出力先となる仮想プリンタを設定する設定手段と、
前記設定手段が設定した分散印刷を行う仮想プリンタを指定した場合に、前記プリントサービス提供プログラムを用いて、前記仮想プリンタに対応する前記複数のプリンタに対して特定の印刷設定を行う手段と
を更に備えることを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記分散印刷の設定は分散印刷の割合であり、
前記アプリケーションを用いて、分散印刷の割合と、複数の分散印刷の出力先に対応する仮想プリンタを指定する指定手段を更に備え、
前記分散印刷実行手段は、前記プリントサービス提供プログラムを用いて、前記指定手段による分散印刷の出力先と分散割合に従った分散印刷を実行することを特徴とする請求項１に記載の印刷制御装置。
【請求項４】
印刷制御装置で実行される印刷制御方法であって、
文書生成手段が、アプリケーションを用いて、印刷データと分散印刷の設定が定義された印刷指示文書とを生成する文書生成工程と、
読み出し手段が、プリントサービス提供プログラムの制御下にて、前記印刷指示文書で定義された分散印刷の設定である分散印刷の印刷先となる複数のプリンタを指定する情報を読み出す読み出し工程と、
格納手段が、前記読み出し工程により読み出された情報を、前記アプリケーションの制御下にて、前記印刷指示文書に格納させる格納工程と、
分散印刷実行手段が、前記格納工程で格納された前記印刷指示文書の分散印刷の設定に従って前記印刷データの分散印刷を実行する分散印刷実行工程と
を備えることを特徴とする印刷制御方法。
【請求項５】
設定手段が、前記プリントサービス提供プログラムを用いて複数のプリンタに対応する分散印刷の出力先となる仮想プリンタを設定する設定工程と、
特定の印刷設定を行う手段が、前記設定工程が設定した分散印刷を行う仮想プリンタを指定した場合に、前記プリントサービス提供プログラムを用いて、前記仮想プリンタに対応する前記複数のプリンタに対して特定の印刷設定を行う工程と
を更に備えることを特徴とする請求項４に記載の印刷制御方法。
【請求項６】
前記分散印刷の設定は分散印刷の割合であり、
指定手段が、前記アプリケーションを用いて、分散印刷の割合と、複数の分散印刷の出力先に対応する仮想プリンタを指定する指定工程を更に備え、
前記分散印刷実行工程は、前記プリントサービス提供プログラムを用いて、前記指定工程による分散印刷の出力先と分散割合に従った分散印刷を実行することを特徴とする請求項４に記載の印刷制御方法。
【請求項７】
請求項４乃至６のいずれか１項に記載の印刷制御方法をコンピュータに実行させることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書処理プログラム等、様々なプログラムによって生成される出力データをひとつの文書としてまとめ、その文書に対する編集機能を提供する文書処理システムにおいて使用される印刷制御装置及びその印刷制御方法等に関するものである。
【背景技術】
【０００２】
文字や表、画像など、データの種類が異なると、データを定義する構造やそれらデータに対する編集操作が異なるために、データの種類に応じた様々なアプリケーションプログラムが提供されている。利用者は、文字を編集するためには文字処理プログラム、表を編集するためには表計算プログラム、画像を編集するためには画像編集プログラムといった具合に、データの種類別にアプリケーションを使い分けている。
【０００３】
このように、利用者はデータの種類ごとにアプリケーションプログラムを使い分けるのが一般的である。しかし、利用者が作成しようとする文書としては、例えば文字のみや、表のみ、画像のみといった１種類のデータのみから構成される文書よりも、文字と表、文字と画像など、複数種類のデータから構成される文書の方が一般的である。そこで複数種類のデータを含む目的文書を作成するために、利用者は各種アプリケーションが備えている印刷機能を利用してアプリケーションごとにデータを印刷させ、印刷物を所望の順序に組み合わせる必要があった。
【０００４】
あるいは、いわゆるオフィススイートと呼ばれる、各種アプリケーションによってひとつの統合アプリケーションを形成するプログラムには、各アプリケーションで生成されたデータを組み合わせ、ひとつの文書を構成する機能を提供するものもある。この統合アプリケーションを使用する場合には、利用者は、各アプリケーションで作成したデータを、統合アプリケーションに含まれる特定のアプリケーションによってひとつの目的文書にまとめることができる。
【０００５】
また、近年、マニュアル、カタログ、会議資料などの文書を電子文書で保管し、必要なときに、必要な部数だけ印刷するシステム（POD：Print On Demand）が普及している。ＰＯＤシステムは、ユーザが作成した文書ファイルを印刷管理サーバにアップロードし、印刷管理サーバのオペレータが文書ファイルの印刷を行わせるものである。このようなシステムでは、通常の印刷のように、どのプリンタで出力するか、どのような体裁で出力するか、プリンタのどの機能を使用して印刷するか、といった指示を毎回行うのではなく、印刷すべき文書をオペレータが最初に印刷指示する際に、印刷管理サーバ上で上述した内容指示を、電子文書化して印刷指示情報の好適な一例である印刷指示文書（一般にジョブチケットと呼ばれる）とし、このジョブチケット情報を印刷管理サーバに登録しておくことにより、印刷文書作成者がいないような場合でも、毎回同一の出力体裁を得ることが可能になるようになっている。
【０００６】
また、そのようなシステムでは、印刷のスピードアップのため、あらかじめ登録した複数のプリンタへ処理を分散させる機能を備えたものもある。また、指定したプリンタが故障などで使用不可となったような時でも印刷の保証を行うため、あらかじめ指定されたプリンタで代行して印刷を行う機能を備えたものもある。この機能を使用する場合は、印刷指示文書（ジョブチケット）に記述されている印刷指示を、複数のプリンタへ同じように伝え、どのプリンタでも同一の成果物を得るようになっている。また、複数のプリンタで異なる条件（部数など）で出すためには、それぞれのジョブチケットが印刷管理サーバに登録する必要がある。
【０００７】
上述の従来技術として、例えば、以下の特許文献１乃至５に示されるものがある。
【特許文献１】特開平０９−００６５５７号公報
【特許文献２】特開２０００−０１０７５３号公報
【特許文献３】特開２００１−０４３０５１号公報
【特許文献４】特開平１１−３４５１００号公報
【特許文献５】特開平１１−１３４１３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来のＰＯＤシステムでは、ジョブチケットを予め印刷管理サーバに登録する必要があり、また、分散印刷等のＰＯＤシステムの機能を利用するためには、ＰＯＤシステムの印刷管理サーバを利用しなければならず、コストがかかってしまうという問題点がある。
【０００９】
そこで近年、クライアントＰＣから直接複数のプリンタに対する印刷ジョブを生成する分散印刷機能を持った印刷システムが考えられている。しかしながら、このような分散印刷機能を有した印刷システムは、クライアントＰＣが印刷指示を行うたびに、分散されるそれぞれのプリンタドライバの印刷設定を行う必要があり、常に印刷文書作成者がいる必要がある。
【００１０】
また、利用者が各種アプリケーションによる印刷物を組み合わせてひとつの目的文書を作成する場合、例えばページ番号を各ページに振るためには、いったん必要なデータをすべて印刷出力し、文書としてまとめてから付すべきページ番号を決定する必要がある。そして、各アプリケーションによって、そのアプリケーションで作成された原稿の各ページ（これを論理ページあるいは原稿ページと呼ぶ）ごとに、決定されたページ番号を書き込んでいく。アプリケーションプログラムがページ番号を振る機能を有している場合であっても、不連続部分があればその部分についてはやはり利用者がページ番号を指定しなければならない。また、目的文書のページを再配置した場合には、ページ番号もそれに合わせて振り直さなければならない。あるいは、複数の原稿ページを、印刷物としての１ページ（これを物理ページあるいは印刷ページと呼ぶ）にまとめたり、片面印刷から両面印刷に変更するなど、データの内容にかかる変更ではなく、単に書式を変更する場合であっても、アプリケーションによって編集および印刷のし直しが必要となる。
【００１１】
このように、データの種類ごとにそれを管理できるアプリケーションが異なることから、アプリケーション間のインターフェースを利用者自身が人手によって提供しなければならない。このことは、利用者に多大な労力が要求されるということであり、生産性の低下をもたらす。さらに、多くの人手を介することからエラーの発生も生じやすかった。
【００１２】
一方、統合アプリケーションを利用して目的文書を作成する場合、印刷出力せずに、データの状態で各種データを配置することができる。このため、印刷物を組み合わせて目的文書を作成する場合ほどには労力は必要とされることはない。
【００１３】
しかしながら、各種データを編集・作成するためのアプリケーションは、統合アプリケーションに含まれるものに限られてしまい、利用者が望むアプリケーションが使用できるとは限らない。また、統合アプリケーションによって作成された目的文書はひとつの文書ファイルであり、ファイル単位で編集・出力等の管理が行われる。そのために、文書ファイルの一部について書式を設定しようとしてもアプリケーションの機能による制約が多く、例えば書式が変わる部分ごとに書式設定を変更しては印刷し直すといった作業が必要とされる。このため、多くの労力が必要とされて生産性が低い点においては、前述した方法と変わりはなかった。
【００１４】
更に、分散印刷や代行印刷を行うプリンタとして指定されている複数のプリンタ間で、複数のプリンタのそれぞれの機能が異なる場合に、印刷指示文書に設定されている指示を、共通のデータとして、一括して複数のプリンタに通知できないという問題が生じる。
【００１５】
通常は、ユーザに印刷で使用するプリンタのプリンタドライバＵＩを介して印刷設定を指定させる。そして、その指定がＯＳを介してＯＳが提供するデータ構造体であるＤＥＶＭＯＤＥにプリンタドライバの固有の印刷設定情報が書き込まれ、印刷時にＤＥＶＭＯＤＥの設定がプリンタドライバに読み込まれて印刷データの生成が行われる。ここで、ＤＥＶＭＯＤＥは、ＯＳが提供するデータ構造体であり、後述するようにすでに規定されている標準部分と、各プリンタベンダーが自由に利用できる拡張部分とが存在している。このため、ＤＥＶＭＯＤＥの構造体が利用できる部分は、ＤＥＶＭＯＤＥの構造体の構造を知ることが出来る標準部分であった。
【００１６】
比較的自由に記述でき、仕様を別途入手しなければＤＥＶＭＯＤＥの構造を窺い知ることができない拡張部分に設定されている印刷設定の内容は、拡張部分の仕様を内部的に知っているＤＥＶＭＯＤＥに書き込んだプリンタドライバしか理解することができない。そのため、分散印刷を行わせる統合アプリケーションが理解することができないという問題があった。
【００１７】
上記課題を鑑み、本発明は印刷文書の処理を複数のプリンタにより分散して行なう場合でも、共通となる一般指示情報に基づいて、固有の印刷設定情報が必要なプリンタに対しては、その情報を生成し、印刷文書の分散処理の実行を可能にすることを目的とする。
【課題を解決するための手段】
【００１８】
上記課題を解決する本発明にかかる印刷制御装置は、アプリケーションを用いて、印刷データと分散印刷の設定が定義された印刷指示文書とを生成する文書生成手段と、
プリントサービス提供プログラムの制御下にて、前記印刷指示文書で定義された分散印刷の設定である分散印刷の印刷先となる複数のプリンタを指定する情報を読み出す読み出し手段と、
前記読み出し手段により読み出された情報を、前記アプリケーションの制御下にて、前記印刷指示文書に格納させる格納手段と、
前記格納手段により格納された前記印刷指示文書の分散印刷の設定に従って前記印刷データの分散印刷を実行する分散印刷実行手段と
を備えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、利用者の望むアプリケーションプログラムによって作成されるデータをひとまとめにした文書の作成および編集を可能とするとともに、その操作性を高めて文書編集の生産性を向上させることが可能になる。
【００２０】
本発明によれば、印刷指示情報に含まれる共通の設定だけでは、印刷処理ができない場合でも、印刷指示情報に含まれる共通の一般指示情報に基づいてプリンタ固有の印刷設定情報を生成し、その情報に基づき印刷文書の処理を実行することが可能になる。
【００２１】
印刷文書の処理を複数のプリンタにより分散して行なう場合であっても、共通となる一般指示情報に基づいて、固有の印刷設定情報が必要なプリンタに対しては、その情報を生成し、印刷文書の分散処理の実行が可能になる。
【００２２】
印刷文書の処理を複数のプリンタの代行順位に従い、処理する場合であっても、共通となる一般指示情報に基づいて、代行順位に該当するプリンタであり、固有の印刷設定情報が必要なプリンタに対しては、その情報を生成し、印刷文書の代行順位に従った処理の実行が可能になる。
【００２３】
印刷文書を作成した時点での各種設定が印刷指示情報に含まれるので、一旦保存した後も、他社のプリンタに対しても、ＤＥＶＭＯＤＥの拡張部分を含めた指示を利用した印刷を行なうことが可能になる。
【発明を実施するための最良の形態】
【００２４】
＜システム概要＞
本発明の情報処理システムに好適な実施形態である文書処理システムの概要を、図１０〜図２３を参照して説明する。この文書処理システムでは、一般アプリケーションにより作成されたデータファイルが、電子原稿ライタによって電子原稿ファイルに変換される。製本アプリケーションはその電子原稿ファイルを編集する機能を提供している。以下、その詳細は説明する。
【００２５】
＜システム構成及び動作＞
図１０は、本実施形態の文書処理システムのソフトウェア構成を示す図である。文書処理システムは、本発明の印刷制御装置に好適な実施形態であるデジタルコンピュータ１０００によって実現されている。一般アプリケーション１０１０は、ワードプロセシングやスプレッドシート、フォトレタッチ、ドローあるいはペイント、プレゼンテーション、テキスト編集などの機能を提供するアプリケーションプログラムであり、ＯＳに対する印刷機能を有している。これらアプリケーションは、作成された文書データや画像データなどのアプリケーションデータを印刷するにあたって、オペレーティングシステム（ＯＳ）により提供される所定のインターフェース（一般に、ＧＤＩと呼ばれる）を利用する。
【００２６】
すなわち、アプリケーション１０１０は、作成したデータを印刷するために、前記インターフェースを提供するＯＳの出力モジュールに対して、あらかじめ定められる、ＯＳに依存する形式の出力コマンド（ＧＤＩ関数と呼ばれる）を送信する。出力コマンドを受けた出力モジュールは、プリンタ等の出力デバイスが処理可能な形式にそのコマンドを変換し、変換されたコマンド（ＤＤＩ関数と呼ばれる）を出力する。出力デバイスが処理可能な形式はデバイスの種類やメーカ、機種などによって異なる。そのために、デバイスごとにデバイスドライバが提供されており、ＯＳではそのデバイスドライバを利用してコマンドの変換を行い、印刷データを生成し、ＪＬ（Job Language）でくくることにより印刷ジョブが生成される。ＯＳとしてマイクロソフト社のウインドウズを利用する場合には、前述した出力モジュールとしてはＧＤＩと呼ばれるモジュールが相当する。
【００２７】
電子原稿ライタ１０２０は、前述のデバイスドライバを改良したものであり、本文書処理システム実現のために提供されるソフトウェアモジュールである。ただし、電子原稿ライタ１０２０は特定の出力デバイスを目的としておらず、後述の製本アプリケーション１０４０やプリンタドライバ１０６０により処理可能な形式に出力コマンドを変換する。この電子原稿ライタ１０２０による変換後の形式（以後電子原稿形式と呼ぶ）は、ページ単位の原稿を詳細な書式をもって表現可能であれば特に問わない。実質的な標準形式のうちでは、例えばアドビシステムズによるＰＤＦ形式や、ＳＶＧ形式などが電子原稿形式として採用できる。アプリケーション１０１０により電子原稿ライタ１０２０を利用させる場合には、出力に使用するデバイスドライバとして電子原稿ライタ１０２０を指定してから印刷を実行させる。
【００２８】
ただし、電子原稿ライタ１０２０によって作成されたままの電子原稿ファイルは、電子原稿ファイルとして完全な形式を備えていない。そのため、デバイスドライバとして電子原稿ライタ１０２０を指定するのは製本アプリケーション１０４０であり、その管理下でアプリケーションデータの電子原稿ファイルへの変換が実行される。製本アプリケーション１０４０は、電子原稿ライタ１−２が生成した新規の不完全な電子原稿ファイルを後述する形式を備えた電子原稿ファイルとして完成させる。以下では、この点を明瞭に識別する必要がある際には、電子原稿ライタ１０２０によって作成されたファイルを電子原稿ファイルと呼び、製本アプリケーションによって構造を与えられた電子原稿ファイルをブックファイルと呼ぶ。また、特に区別する必要がない場合は、アプリケーションにより生成されるドキュメントファイル、電子原稿ファイル、及びブックファイルをいずれも文書ファイル（または文書データ）と呼ぶ。
【００２９】
デバイスドライバとして電子原稿ライタ１０２０を指定し、一般アプリケーション１０１０によりそのデータを印刷させる。これにより、アプリケーションデータはアプリケーション１０１０によって定義されたページ（以後論理ページあるいは原稿ページと呼ぶ）を単位とする電子原稿形式に変換され、電子原稿ファイル１０３０としてハードディスクなどの記憶媒体に格納される。なお、ハードディスクは、本実施形態の文書処理システムを実現するコンピュータが備えているローカルドライブであってもよいし、ネットワークに接続されている場合にはネットワーク上に提供されるドライブであっても良い。
【００３０】
製本アプリケーション１０４０は電子原稿ファイルあるいはブックファイル１０３０を読み込み、それを編集するための機能を利用者に提供する。ただし製本アプリケーション１０４０は、各ページの内容を編集する機能は提供しておらず、ページを最小単位として構成される、後述する章やブックの構造を編集するための機能を提供している。
【００３１】
製本アプリケーション１０４０によって編集されたブックファイル１０３０を印刷する際には、製本アプリケーション１０４０によって電子原稿デスプーラ１０５０が起動される。電子原稿デスプーラ１０５０は、指定されたブックファイルをハードディスクから読み出し、ブックファイルに記述された形式で各ページを印刷するために、前述したＯＳの出力モジュールに適合する出力コマンドを生成し、不図示の出力モジュールに出力する。その際に、出力デバイスとして使用されるプリンタ１０７０のドライバ１０６０がデバイスドライバとして指定される。出力モジュールは、指定されたプリンタ１０７０のデバイスドライバ１０６０を用いて受信した出力コマンドを、プリンタ１０７０で解釈実行可能なデバイスコマンドに変換する。そしてデバイスコマンドはプリンタ１０７０に送信され、プリンタ１０７０によってコマンドに応じた画像が印刷される。
【００３２】
図１１は、コンピュータ１０００のハードウエアブロック図である。図１１において、ＣＰＵ２０１０は、ＲＯＭ２０３０のプログラム用ＲＯＭに記憶された、あるいはハードディスク２１１０からＲＡＭ２０２０にロードされたＯＳや一般アプリケーション、製本アプリケーションなどのプログラムを実行する。ＣＰＵ２０１０は、図１０のソフトウェア構成や、後述するフローチャートの手順を実現する。ＲＡＭ２０２０は、ＣＰＵ２０１０の主メモリ、ワークエリア等として機能する。キーボードコントローラ（ＫＢＣ）２０５０は、キーボード２０９０や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）２０６０は、ＣＲＴディスプレイ２１００の表示を制御する。ディスクコントローラ（ＤＫＣ）２０７０はブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、後述する編集ファイル等を記憶するハードディスク（ＨＤ）２１１０やフレキシブルディスク（ＦＤ）等とのアクセスを制御する。ＰＲＴＣ２０８０は、接続されたプリンタ１０７０との間の信号の交換を制御する。ＮＣ２１２０はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
【００３３】
＜電子原稿データの形式＞
編集アプリケーション１０４０の詳細に言及する前に、ブックファイルのデータ形式を説明する。ブックファイルは紙媒体の書物を模した３層の層構造を有する。上位層は「ブック」と呼ばれ、１冊の本を模しており、その本全般に係る属性が定義されている。その下の中間層は、本でいう章に相当し、やはり「章」と呼ばれる。各章についても、章ごとの属性が定義できる。下位層は「ページ」であり、アプリケーションプログラムで定義された各ページに相当する。各ページついてもページごとの属性が定義できる。ひとつのブックは複数の章を含んでいてよく、また、ひとつの章は複数のページを含むことができる。
【００３４】
図１２（Ａ）は、ブックファイルの形式の一例を模式的に示す図である。この例のブックファイルは、ブック，章，ページは、それぞれに相当するノードにより示されている。ひとつのブックファイルはひとつのブックを含む。ブック，章は、ブックとしての構造を定義するための概念であるから、定義された属性値と下位層へのリンクとをその実体として含む。ページは、アプリケーションプログラムによって出力されたページごとのデータを実体として有する。そのため、ページは、その属性値のほか、原稿ページの実体（原稿ページデータ）と各原稿ページデータへのリンクを含む。なお、紙媒体等に出力する際の印刷ページは複数の原稿ページを含む場合がある。この構造に関してはリンクによって表示されず、ブック、章、ページ各階層における属性として表示される。
【００３５】
図１２において、ブック３０１０には、ブック属性が定義されているとともに、２つの章３０２０Ａ，３０２０Ｂがリンクされている。このリンクにより、章３０２０Ａ，３０２０Ｂがブック３０１０に包含されていることが表示される。章３０２０Ａには、ページ３０３０Ａ，３０３０Ｂがリンクされ、これらページが含まれることが示されている。各ページ３０３０Ａ，３０３０Ｂにはそれぞれ属性値が定義され、その実体である原稿ページデータ（１）、（２）へのリンクが含まれる。これらリンクは、図１２（Ｂ）に示す原稿ページデータ３０４０のデータ（１）、（２）を指し示し、ページ３０３０Ａ、３０３０Ｂの実体が、原稿ページデータ（１）、（２）であることを表示する。
【００３６】
図１３は、ブック属性のリストである。下位層と重複して定義可能な項目に関しては、下位層の属性値が優先採用される。そのため、ブック属性にのみ含まれる項目に関しては、ブック属性に定義された値はブック全体を通して有効な値となる。しかし、下位層と重複する項目については、下位層において定義されていない場合における既定値としての意味を有する。なお、図示された各項目は具体的に１項目に対応するのではなく、関連する複数の項目を含むものもある。
【００３７】
図１４は章属性の、図１５はページ属性のリストである。章属性とページ属性との関係もブック属性と下位層の属性との関係と同様である。
【００３８】
ブック属性に固有の項目は、印刷方法、製本詳細、表紙／裏表紙、インデックス紙、合紙、章区切りの６項目である。これらは、ブックを通して定義される項目である。印刷方法属性としては、片面印刷、両面印刷、製本印刷の３つの値を指定できる。製本印刷とは、別途指定する枚数の用紙を束にして２つ折りにし、その束をつづり合わせることで製本が可能となる形式で印刷する方法である。製本詳細属性としては、製本印刷が指定されている場合に、見開き方向や、束になる枚数等が指定できる。
【００３９】
表紙／裏表紙属性は、ブックとしてまとめられる電子原稿ファイルを印刷する際に、表紙および裏表紙となる用紙を付加することの指定、及び付加した用紙への印刷内容の指定を含む。インデックス紙属性は、章の区切りとして、印刷装置に別途用意される耳付きのインデックス紙の挿入の指定およびインデックス（耳）部分への印刷内容の指定を含む。この属性は、印刷用紙とは別に用意された用紙を所望の位置に挿入するインサート機能を持ったインサータが使用する印刷装置に備えられている場合か、あるいは、複数の給紙カセットを使用可能である場合に有効となる。これは合紙属性についても同様である。
【００４０】
合紙属性は、章の区切りとして、インサータからあるいは給紙カセットから供給される用紙の挿入の指定、および、合紙を挿入する場合には、給紙元の指定などを含む。
【００４１】
章区切り属性は、章の区切り目において、新たな用紙を使用するか、新たな印刷ページを使用するか、特に何もしないか等の指定を含む。片面印刷時には新たな用紙の使用と新たな印刷ページの使用とは同じ意味を持つ。両面印刷時には、「新たな用紙の使用」を指定すれば連続する章が１枚の用紙に印刷されることは無いが、「新たな印刷ページの使用」を指定すれば、連続する章が１枚の用紙の表裏に印刷されることがあり得る。
【００４２】
章属性に関しては、章に固有の項目はなく、すべてブック属性と重複する。したがって、章属性における定義とブック属性における定義とが異なれば、章属性で定義された値が優先する。ブック属性と章属性とにのみ共通する項目は、用紙サイズ、用紙方向、Ｎ−ｕｐ印刷指定、拡大縮小、排紙方法の５項目である。このうち、Ｎ−ｕｐ印刷指定属性は、１印刷ページに含まれる原稿ページ数を指定するための項目である。指定可能な配置としては、１×１や１×２、２×２、３×３、４×４などがある。排紙方法属性は、排出した用紙にステイプル処理を施すか否かを指定するための項目であり、この属性の有効性は使用する印刷装置がステイプル機能を有するか否かに依存する。
【００４３】
ページ属性に固有の項目には、ページ回転属性、ズーム、配置指定、アノテーション、ページ分割などがある。ページ回転属性は、原稿ページを印刷ページに配置する際の回転角度を指定するための項目である。ズーム属性は、原稿ページの変倍率を指定するための項目である。変倍率は、仮想論理ページ領域のサイズを１００％として指定される。仮想論理ページ領域とは、原稿ページを、Ｎｕｐ等の指定に応じて配置した場合に、１原稿ページが占める領域である。例えば１×１であれば、仮想論理ページ領域は１印刷ページに相当する領域となり、１×２であれば、１印刷ページの各辺を約７０パーセントに縮小した領域となる。
【００４４】
ブック、章、ページについて共通な属性として、ウォーターマーク属性およびヘッダ・フッタ属性がある。ウォーターマークとは、アプリケーションで作成されたデータに重ねて印刷される、別途指定される画像や文字列などである。ヘッダ・フッタは、それぞれ各ページの上余白および下余白に印刷されるウォーターマークである。
【００４５】
ただし、ヘッダ・フッタには、ページ番号や日時など、変数により指定可能な項目が用意されている。なお、ウォーターマーク属性およびヘッダ・フッタ属性において指定可能な内容は、章とページとは共通であるが、ブックはそれらと異なっている。ブックにおいてはウォーターマークやヘッダ・フッタの内容を設定できるし、また、ブック全体を通してどのようにウォーターマークやヘッダ・フッタを印刷するかを指定することができる。一方、章やページでは、その章やページにおいて、ブックで設定されたウォーターマークやヘッダ・フッタを印刷するか否かを指定できる。
【００４６】
＜ブックファイルの生成手順＞
ブックファイルは上述したような構造および内容を有している。次に、製本アプリケーション１０４０および電子原稿ライタ１０２０によってブックファイルを作成する手順を説明する。ブックファイルの作成は、製本アプリケーション１０４０によるブックファイルの編集操作の一環として実現される。図１６は、製本アプリケーション１０４０によりブックファイルを開く際の手順である。
【００４７】
まず、製本アプリケーション１０４０は、開こうとするブックファイルが、新規作成すべきものであるか、それとも既存のものであるか判定する（ステップＳ７０１０）。新規作成の場合には、製本アプリケーション１０４０は、章を含まないブックファイルを新規に作成する（ステップＳ７０２０）。新規に作成されるブックファイルは、図１２の例で示せば、ブックノード３０１０のみ有し、章のノードに対するリンクが存在しないブックのノードとなる。ブック属性は、新規作成用としてあらかじめ用意された属性のセットが適用される。そして、新規ブックファイルを編集するためのユーザインターフェース（ＵＩ）画面を表示する（ステップＳ７０４０）。図２０は、新規にブックファイルが作成された際のＵＩ画面の一例である。この場合には、ブックファイルは実質的な内容を持たないために、ＵＩ画面１１０００には何も表示されない。
【００４８】
一方、既存のブックファイルがあれば、製本アプリケーション１０４０は、指定されたブックファイルを開き（ステップＳ７０３０）、そのブックファイルの構造、属性、内容に従ってユーザインターフェース（ＵＩ）画面を表示する。図１９は、このＵＩ画面の一例である。ＵＩ画面１１０００は、ブックの構造を示すツリー部１１０１０と、印刷された状態を表示するプレビュー部１１０２０とを含む。ツリー部１１０１０には、ブックに含まれる章、各章に含まれるページが、図１２（Ａ）のような木構造で表示される。ツリー部１１０１０に表示されるページは原稿ページである。プレビュー部１１０２０には、印刷ページの内容が縮小されて表示される。その表示順序は、ブックの構造を反映したものとなっている。
【００４９】
さて、開かれたブックファイルには、電子原稿ライタによって電子原稿ファイルに変換されたアプリケーションデータを、新たな章として追加することができる。この機能を電子原稿インポート機能と呼ぶ。図１６の手順によって新規に作成されたブックファイルに電子原稿インポートすることで、そのブックファイルには実体が与えられる。この機能は、図１９の画面にアプリケーションデータをドラッグアンドドロップ操作することで起動される。図１７に電子原稿インポートの手順を示す。
【００５０】
まず、指定されたアプリケーションデータを生成したアプリケーションプログラムを起動し、デバイスドライバとして電子原稿ライタ１０２０を指定してアプリケーションデータを印刷出力させることで、電子原稿データに変換する（ステップＳ８０１０）。変換を終えたなら、変換されたデータが画像データであるか否かを判定する（ステップＳ８０２０）。この判定は、ウインドウズＯＳの下であれば、アプリケーションデータのファイル拡張子に基づいて行える。例えば、拡張子が「ｂｍｐ」であればウインドウズビットマップデータであり、「ｊｐｇ」であればｊｐｅｇ圧縮された画像データ、「ｔｉｆｆ」であればｔｉｆｆ形式の画像データであると判定できる。また、このような画像データの場合はＳ８０１０のようにアプリケーションを起動せずに、画像データから直接電子原稿ファイルを生成することが可能であるため、Ｓ８０１０の処理を省略することも可能である。
【００５１】
画像データでなかった場合には、製本アプリケーション１０４０は、ステップＳ８０１０で生成された電子原稿ファイルを、現在開かれているブックファイルのブックに、新たな章として追加する（ステップＳ８０３０）。章属性としては、ブック属性と共通するものについてはブック属性の値がコピーされ、そうでないものについては、あらかじめ用意された規定値に設定される。
【００５２】
画像データである場合には、原則として新たな章は追加されず、指定されている章に、ステップＳ８０１０で生成された電子原稿ファイルに含まれる各原稿ページが追加される（ステップＳ８０４０）。
【００５３】
ただし、ブックファイルが新規作成されたファイルであれば、新たな章が作成されて、その章に属するページとして電子原稿ファイルの各ページが追加される。ページ属性は、上位層の属性と共通のものについてはその属性値が与えられ、アプリケーションデータにおいて定義された属性を電子原稿ファイルに引き継いでいるもにについてはその値が与えられる。例えば、Ｎｕｐ指定などがアプリケーションデータにおいてされていた場合には、その属性値が引き継がれる。このようにして、新規なブックファイルが作成され、あるいは、新規な章が追加される。
【００５４】
図１８は、図１７のステップＳ８０１０において、電子原稿ライタ１０２０により電子原稿ファイルを生成させる手順のフローチャートである。まず、新たな電子原稿ファイルを作成してそれを開く（ステップＳ９０１０）。指定したアプリケーションデータに対応するアプリケーションを起動し、電子原稿ライタをデバイスドライバとして、ＯＳの出力モジュールに対して出力コマンドを送信させる。出力モジュールは、受信した出力コマンドを電子原稿ライタによって電子原稿形式のデータに変換し、出力する（ステップＳ９０２０）。出力先はステップＳ９０１０で開いた電子原稿ファイルである。電子原稿ライタ１０２０は、指定されたデータすべてについて変換が終了したか判定し（ステップＳ９０３０）、終了していれば電子原稿ファイルを閉じる（ステップＳ９０４０）。電子原稿ライタ１０２０によって生成される電子原稿ファイルは、図１２（Ｂ）に示した、原稿ページデータの実体を含むファイルである。
【００５５】
＜ブックファイルの編集＞
以上のようにして、アプリケーションデータからブックファイルを作成することができる。生成されたブックファイルについては、章及びページに対して次のような編集操作が可能である。
（１）新規追加
（２）削除
（３）コピー
（４）切り取り
（５）貼り付け
（６）移動
（７）章名称変更
（８）ページ番号名称振り直し
（９）表紙挿入
（１０）合紙挿入
（１１）インデックス紙挿入
（１２）各原稿ページに対するページレイアウト。
【００５６】
このほか、いったん行った編集操作を取り消す操作や、さらに取り消した操作をやり直す操作が可能である。これら編集機能により、例えば複数のブックファイルの統合、ブックファイル内で章やページの再配置、ブックファイル内で章やページの削除、原稿ページのレイアウト変更、合紙やインデックス紙の挿入などといった編集操作が可能となる。これらの操作を行うと、図１３乃至１８に示す属性に捜査結果が反映されたり、あるいはブックファイルの構造に反映される。たとえば、ブランクページの新規追加操作を行えば、指定された箇所にブランクページが挿入される。このブランクページは原稿ページとして扱われる。また、原稿ページに対するレイアウトを変更すれば、その変更内容は、印刷方法やＮ−ｕｐ印刷、表紙／裏表紙、インデックス紙、合紙、章区切りといった属性に反映される。
【００５７】
＜ブックファイルの出力＞
以上のように作成・編集されるブックファイルは印刷出力を最終目的としている。利用者が図１９に示す製本アプリケーションのＵＩ画面１１０００からファイルメニューを選択し、そこから印刷を選択すると、指定した出力デバイスにより印刷出力される。この際、まず製本アプリケーション１０４０は、現在開かれているブックファイルからジョブチケットを作成して電子原稿デスプーラ１０５０に渡す。電子原稿デスプーラ１０５０は、ジョブチケットをＯＳの出力コマンド、例えばウインドウズのＧＤＩコマンドに変換し、それを出力モジュール、例えばＧＤＩに送信する。出力モジュールは、指定されたプリンタドライバ１０６０によってデバイスに適したコマンドを生成し、そのデバイスに送信する。
【００５８】
ジョブチケットは原稿ページを最小単位とする構造を有するデータである。ジョブチケットにおける構造は、用紙上における原稿ページのレイアウトを定義している。ジョブチケットは１ジョブにつき１つ発行される。そのため、まず最上位にドキュメントというノードがあり、文書全体の属性、例えば両面印刷／片面印刷などが定義されている。その下には、用紙ノードが属し、用いるべき用紙の識別子や、プリンタにおける給紙口の指定などの属性が含まれる。各用紙ノードには、その用紙で印刷されるシートのノードが属する。１シートは１枚の用紙に相当する。各シートには、印刷ページ（物理ページ）が属する。片面印刷ならば１シートには１物理ページが属し、両面印刷ならば１シートに２物理ページが属する。各物理ページには、その上に配置される原稿ページが属する。また物理ページの属性として、原稿ページのレイアウトが含まれる。
【００５９】
電子原稿デスプーラ１０５０は、上述のジョブチケットを、出力モジュールへの出力コマンドに変換する。
【００６０】
＜そのほかのシステム構成＞
本実施形態の文書処理システムの概要は以上のようなものである。これはスタンドアロン型のシステムであるが、これを拡張したサーバクライアントシステムでもほぼ同様の構成・手順でブックファイルが作成・編集される。ただし、ブックファイルや印刷処理はサーバによって管理される。
【００６１】
図２１はサーバクライアント型文書処理システムの構成を示すブロック図である。クライアント文書処理システムは、スタンドアロン型システムに、クライアントモジュールであるＤＯＭＳ（Document Output Management Service：文書出力管理サービス）ドライバ１０９０を有する。また、クライアント文書処理システムは、ＤＯＭＳプリントサービスモジュール（プリントサービス提供プログラム）１１００、ＤＳ（文書サービス）クライアントモジュール１０８０を加えた構成を有する。このクライアント文書処理システム１２０００に、文書管理サーバ１２０１０および印刷集中管理サーバ１２０２０およびプリントサーバ１２０３０が接続されている。これらサーバは、通常ネットワークによってクライアント文書処理システムと接続されるが、サーバが同時にクライアントとしても機能する場合には、ネットワーク間の通信をシミュレートするプロセス間通信によって接続される。なお図２１では文書管理サーバ１２０１０と印刷集中管理サーバ１２０２０の両サーバがクライアントに接続されているが、いずれか一方のみがネットワーク上に存在する場合もあり得る。接続されているサーバが文書管理サーバであれば、そのクライアントモジュールを含む文書管理サーバクライアントシステム１２０１０ＳＣがスタンドアロン型文書管理システムに追加される。印刷集中管理サーバ１２０２０であれば、そのクライアントモジュールを含む印刷管理サーバクライアントシステム１２０２０ＳＣが、スタンドアロン型文書管理システムに追加される。
【００６２】
文書管理サーバ１２０１０は、製本アプリケーション１０４０により作成・編集されたブックファイルを格納するサーバである。文書管理サーバ１２０１０によってブックファイルを管理する場合、ブックファイルは、クライアントＰＣのローカルＨＤに代わって、あるいはそれに加えて、文書管理サーバ１２０１０のデータベース１２１１０に保存される。製本アプリケーション１０４０と文書管理サーバ１２０１０との間のブックファイルの保存および読み出しは、ＤＳクライアント１０８０及びＤＳコア１２１２０を介して行われる。
【００６３】
印刷集中管理サーバ１２０２０は、クライアント文書管理システム１２０００に格納された、あるいは文書管理サーバ１２０１０に格納されたブックファイルの印刷を管理するサーバである。クライアントにおける印刷要求は、ＤＯＭＳドライバ１０９０およびＤＯＭＳプリントサービスモジュール１１００を介して印刷集中管理サーバ１２０２０のＤＯＭＳＷＧサーバモジュール１２２１０に送信される。集中印刷管理サーバ１２０２０は、クライアントのプリンタで印刷する場合にはクライアントのＤＯＭＳプリントサービスモジュール１１００を介して電子原稿デスプーラ１０５０に電子原稿データを渡す。そして、プリントサーバ１２０３０により印刷する場合には、プリントサーバ１２０３０のＤＯＭＳプリントサービスモジュール１２０３０に送信する。集中印刷管理サーバは、例えば保存されているブックファイルに対して印刷要求を発行した利用者の資格などについてセキュリティチェックを行ったり、印刷処理のログを保存したりする。このように、文書処理システムは、スタンドアロンとしても、クライアントサーバシステムとしても実現できる。
【００６４】
＜プレビュー表示の内容＞
すでに説明したとおり、ブックファイルが製本アプリケーションによって開かれると、図１９に示すユーザインターフェース画面１１０００が表示される。ツリー部１１０１０には、開いているブック（以下、注目ブックと呼ぶ）の構造を示すツリーが表示される。プレビュー部には、利用者の指定に応じて、３通りの表示方法が用意されている。第１は原稿ページをそのまま表示する原稿ビューと呼ばれるモードである。原稿ビューモードでは、注目ブックに属する原稿ページの内容が縮小されて表示される。プレビュー部の表示にレイアウトは反映されない。第２は印刷ビューモードである。印刷ビューモードでは、プレビュー部１１０２０には、原稿ページのレイアウトが反映された形で原稿ページが表示される。第３は簡易印刷ビューモードである。簡易印刷ビューモードでは、各原稿ページの内容はプレビュー部の表示には反映されず、レイアウトのみが反映される。
【００６５】
以下、電子原稿デスプーラー１０５０に関連した実施形態を説明する。
【００６６】
＜第１実施形態＞
＜装置の説明＞
以下、図面を用いて本発明にかかる実施形態を詳細に説明する。
【００６７】
図1は第１実施形態にかかる印刷制御装置（情報処理装置）及びその関連機器より構成されるシステムのブロック図である。同図において、１はシステム・バスであり、これから説明する各構成ブロックはこのシステム・バスに接続している。２はＣＰＵ（Central  Processing  Unit）である。３はプログラム・メモリ（以下、「ＰＭＥＭ」という。）で、印刷制御のためのプログラムを適宜、ハードディスク１０から選択し、読込みし、ＣＰＵ２にてそのプログラムは実行される。
【００６８】
また、キーボード１２から入力されたデータはテキスト・メモリでもあるＰＭＥＭにコード情報として格納される。４は通制御部であり、５の通信ポートに於ける入出力データの制御を行う。通信ポート５から出力された信号は、通信回線６を経由して、ネットワーク上の他の装置の通信ポートに伝えられる。ネットワーク上で共有されているプリンタや、画像読取装置とのデータの授受は、この通信制御部４を介して行われる。
【００６９】
また、本実施形態ではＬＡＮなどのネットワークに関して記述するが、この通信制御部４に接続される通信ポート５及び通信回線６が一般の公衆回線であっても本発明にかかる実施形態が適応できることは言うまでもない。
【００７０】
８は外部記憶制御部であり、９及び１０はデータファイル用のディスクで、例えば９は、フレキシブルディスク（ＦＤ）であり、１０はハードディスク（ＨＤ）である。１１は入力制御部であり、１２のキーボード、１３のマウス等の入力装置が接続する。操作者は、このキーボード１１を操作することによりシステムの動作指令等を入力する。
【００７１】
また、マウス１３はＣＲＴ１６上で画像情報を加工指示するためのポインティングデバイス（以下、「ＰＤ」と称す。）として機能する。これによりＣＲＴ１６上のカーソルをＸ，Ｙ方向任意に移動してコマンドメニュー上のコマンド・アイコンを選択して処理の指示を行なうほか編集対象の指示、描画位置の指示等を行なうことができる。１４はビデオ・イメージ・メモリ（以下、「ＶＲＡＭ」と称す。）であり、１５は表示出力制御部、１６はＣＲＴである。ＣＲＴ１６に表示されるデータはＶＲＡＭ１４上にビットマップデータとして展開されている。１７はプリンタ制御部であり、接続しているプリンタ１８に対するデータの出力制御を行う。１Ａは、画像読取機器制御部であり、接続している画像読取機器１Ｂの制御を行う。
【００７２】
本発明における実施形態において、画像読取サーバ装置には、１Ａ、１Ｂの構成要素が必須であるが、クライアント側装置では、前述のように通信制御部４及び通信ポート５を介してサーバ側で共有している構成要素を使用することができる。
【００７３】
更に、図１の構成は、画像読取機器と画像読取機器制御部が物理的に別々のコンポーネントであっても、画像読取機器制御部が、画像読取機器を含む１つのコンポーネントであっても同様な機能を有することとする。
【００７４】
なお、本実施形態でPMEMに記憶しているプログラムは、装置に直接接続されているハードディスク(HD)１０やフレキシブルディスク(ＦＤ)９などの記憶媒体にも記憶されていてもよい。さらに、ネットワークで接続されている他の装置上に記憶されていてもよい。また、本実施形態において使用するプログラムは、ＦＤやＨＤなどの記憶媒体やネットワークを介してシステムや印刷制御装置に供給することができる。
【００７５】
図２は本実施形態にかかる印刷制御の処理を説明するフローチャートである。
【００７６】
まず、ステップＳ２０１で、ユーザの指示により、印刷制御装置は印刷するべき対象となる印刷文書データ（以下、「印刷文書」という。）と、その印刷文書データを出力制御するための印刷指示文書データ（以下、「印刷指示文書」という。）の両方を受け取る。印刷指示文書は、印刷対象となる印刷文書に付随するデータであり、印刷対象の印刷文書をどのように印刷制御すべきかの情報が記述された電子文書データである。印刷文書と印刷指示文書は、場合により、統合されて一つの文書ファイルとなっている場合でも同様に、処理が可能である。
【００７７】
印刷指示文書の全体構造は、図５に示すようなデータ格納部を有するデータ構造を備える。印刷指示文書は、出力対象となるプリンタデバイス名（５０１）、印刷対象となる印刷文書名（５０２）、出力先の対象となるプリンタへの指示を記述する、プリンタへの指示情報部（５０３）を有する。また、印刷指示文書は、出力対象プリンタのＤＥＶＭＯＤＥ格納部（５０４）、印刷文書の各頁をどのような配置、順序で印刷するかを記述するページ配置情報部（５０５）を有する。また、印刷指示文書はプリンタデバイスとしてネットワーク上において分散して接続する分散プリンタが指定されている場合に、メンバプリンタ名を格納するメンバプリンタ名称格納部（５０６）を有する。更に、印刷指示文書は、各メンバプリンタに対応するＤＥＶＭＯＤＥを格納するメンバＤＥＶＭＯＤＥ格納部（５０７）を有する。
【００７８】
ここで、ＤＥＶＭＯＤＥとは、デバイス、ここでは、プリンタに設定可能な設定情報の構造体である。この構造体には、基本部分と、拡張部分がある。この基本部分のデータ構造は一般に公開されている。このため、基本部分は、テキスト化して可視的にプログラミングすることも可能である。そして、拡張部分とは、各社が機能を比較的自由に拡張可能なフィールドである。例えば、拡張部分のうち、自社開発の部分などの予めデータ構造の定義を入手可能な部分は、データ構造ツールで解析することにより、ＤＥＶＭＯＤＥの拡張部分の中身を知ることができる。しかし、拡張部分のうち、例えば、他社開発部分など、予めデータ構造を入手不能な部分は、データ構造が不明のため、解析不能であり内容を理解して設定することは一般にはできない。そこで、予めデータ構造を入手不能なＤＥＶＭＯＤＥの構造体であっても、そのＤＥＶＭＯＤＥ構造体のデータを使用することができる仕組みが求められている。DmCopyieには、デバイスが複数部数のコピーをサポートしているときは、印刷するコピー部数を指定できる。
【００７９】
図２２はＯＳが標準ＤＥＶＭＯＤＥとして提供しているデータ構造の一部を示す図である。このＤＥＶＭＯＤＥの標準部分は、マイクロソフト社が提供するＯＳの仕様の一部として盛り込まれている。以下、構造体の各メンバについて説明する。DmDeviceNameにおいては、ドライバがサポートするデバイス名を指定する。各デバイス ドライバは、重複しない文字列を持つ。DmSpecVersionでは、構造体の基準になった初期化データ仕様のバージョン番号を指定する。DmDriverVersionは、プリンタ ドライバの開発者が割り当てたプリンタ ドライバのバージョン番号を指定する。DmSizeは、dmDriverData (デバイス固有の情報) のメンバを除いたＤＥＶＭＯＤＥ構造体のサイズをバイト単位で指定する。
【００８０】
各社は、図２２のこの標準部分の構造体のメンバの値を設定することができる。ただし、図２２に図示されていない拡張部分については、拡張部分として一般には公開されない。DmDriverExtraは、この構造体に続くプライベートなドライバデータ（拡張ＤＥＶＭＯＤＥ、以下、拡張部分という。）のバイト長を保持する。デバイスドライバがデバイス固有の情報を使わないときは、このメンバに 0 を設定する。DmOrientationは、用紙の方向を指定できる。拡張部分は、本発明の拡張領域の好適な一例である。このメンバHADMORIENT_PORTRAIT （ポートレイト） または 、DMORIENT_LANDSCAPE（ランドスケープ） のどちらかになる。DmPaperSizeには、印刷する用紙のサイズを指定する。用紙の高さと幅がそれぞれ、dmPaperLength と dmPaperWidth メンバに対応するが、これらの値が設定されているときは、このメンバには 0 を設定することができる。以上が標準部分の説明である。
【００８１】
図２３は、標準領域の好適な一例であるＤＥＶＭＯＤＥの標準部分２３０１と、拡張部分２３０２のメモリマップを示す図である。標準部分２３０１は、予めＤＥＶＭＯＤＥのデータ構造が分かっているので、開発ツールを用いて、図２２に示すようなテキスト形式で表すことも出来る。例えば、DmDeviceName２３０４は図２２の同じメンバに対応する。２３０５乃至２３０７及び図示を省略する他のメンバも同様に対応する。一方、拡張部分は仕様が入手できない場合が多く、この場合にはどのような設定が格納されているのかを窺い知ることができない。図２３では、ＤＥＶＭＯＤＥの標準部分と、拡張部分が連続的にメモリに配置されている例を示しているが、連続的に配置されていなくてもよい場合も有る。拡張部分には、N-Up,ポスター印刷モード、ステイプルの有無など、レイアウトに関連する設定情報をはじめ、その他印刷に関する設定情報が格納される。
【００８２】
プリンタへの指示情報部５０３には、プリンタへ指示するための共通の情報である、一般的な指示情報（一般指示情報）が格納されている。例えば、ステイプル位置、パンチ種類、両面印刷する/しない、給紙口の指定、などである。通常では、このような一般指示情報をもとに、対象となるプリンタのプリンタドライバの固有の印刷設定（ＤＥＶＭＯＤＥ）を作成し、その作成したＤＥＶＭＯＤＥを使用してプリンタへ指示情報を送る。
【００８３】
ＤＥＶＭＯＤＥ格納部５０４において、ＤＥＶＭＯＤＥがすでに指示されている場合は、プリンタへの指示情報部５０３の記述にかかわらず、指示されているＤＥＶＭＯＤＥにより、プリンタへ指示を送る。ＤＥＶＭＯＤＥの内容が不明なプリンタの場合、一般的な印刷指示からＤＥＶＭＯＤＥを作成することが不可能であり、そのため、ユーザがプリンタのプロパティで指定した印刷指示をそのまま 印刷指示文書中に含んで使用することを想定したものである。ただし、ＤＥＶＭＯＤＥのうち、構造が明確になっている共通部分については、プリンタへの指示情報部５０３の印刷指示を反映させて、新しいＤＥＶＭＯＤＥを作成しても良いこととする。
【００８４】
本実施形態で使用するプリンタが、複数の分散プリンタとして指定されている場合の印刷指示文書の内容は、図６に示すようになる。プリンタデバイス名格納部（６０１）には、分散プリンタが指定されており、名称として、"プリンタセット１（分散用）"（６０２）、分散印刷実行の対象は３つのプリンタであることが記述されている（６０３）。
【００８５】
メンバプリンタ格納部（６０７）では、メンバプリンタ名として、"レーザプリンタ１"（６０８）、"レーザプリンタ２"（６０９）、" レーザプリンタ３"（６１０）等、複数のプリンタが設定されている。それぞれのメンバプリンタに対応するプリンタドライバの固有の印刷設定情報として、ＤＥＶＭＯＤＥ１（６１２），ＤＥＶＭＯＤＥ２（６１３）、ＤＥＶＭＯＤＥ３（６１４）がＤＥＶＭＯＤＥ格納部（６１１）に格納されている。
【００８６】
あらかじめ、ユーザは、図４のダイアログ画面により、分散プリンタの設定を行う。図４のダイアログにおける出力方法４０１で設定されている「割合分散」とは、一つの印刷指示を指定された複数のプリンタへ、指定された割合で分割して印刷を実行させる指示である。複数のプリンタをメンバプリンタとして有し、これらを仮想プリンタ群として指定することにより、これら仮想プリンタ群を所定の割合分散に従って動作させる。図４において、分散プリンタを選択した場合、分散させるプリンタをメンバプリンタとして登録する。そして、各プリンタのプロパティで、印刷指示を設定することにより、各プリンタに応じたＤＥＶＭＯＤＥが作成され、その操作により、図６に示すような印刷指示文書を作成することができる。
【００８７】
具体的には、図４で分散プリンタの設定を行なった後、製本アプリケーションにてユーザが分散プリンタを出力先に指定した場合、対応するＤＯＭＳドライバが、分散プリンタの各メンバプリンタのＤＥＶＭＯＤＥを取得して、製本アプリケーションに伝える。これにより、製本アプリケーションはＤＯＭＳドライバから渡された、メンバプリンタのＤＥＶＭＯＤＥを印刷指示文書に格納する。処理を次のステップに進め、ステップＳ２０２で印刷指示文書をオープンする。
【００８８】
そして、ＤＯＭＳプリントサービスにて、ステップＳ２０３で印刷指示文書に指定されたプリンタデバイス名を読み込み、印刷指示文書に、プリンタデバイス名が指定されているかどうかを調べる（Ｓ２０４）。プリンタデバイス名が指定されていない場合は（Ｓ２０４−なし）、システムに登録されているデフォルトプリンタ名を取得し、そのプリンタデバイスを出力対象とする（Ｓ２０５）。
【００８９】
次に、ＤＯＭＳプリントサービスにて、プリンタデバイス名に対するドライバがシステムにインストールされているかどうかをチェックする（Ｓ２０６）。ドライバがインストールされていない場合（Ｓ２０７−Ｎｏ）、エラーとし、プリンタが使用不可能であることをユーザに通知する（Ｓ２０８）。
【００９０】
プリンタドライバがインストールされている場合には（Ｓ２０７−Ｙｅｓ）、詳細を後述するステップＳ２０９に処理を進め、該当プリンタでの印刷処理を行う。
【００９１】
図３は、図２のステップＳ２０９における、プリンタへの印刷指示処理の流れを説明するフローチャートである。
【００９２】
ＤＯＭＳプリントサービスにて、指定されているプリンタが、分散用プリンタかどうかチェックし（Ｓ３０１）、分散プリンタの場合は（Ｓ３０１−Ｙｅｓ）、分散プリンタとしてメンバプリンタに指定されているプリンタの名称を読み込む（Ｓ３０２）。そして、そのプリンタへの出力の分散割合を読み込み（Ｓ３０３）、その分散割合に応じて、印刷指示文書の内容を書き換える（Ｓ３０４）。
【００９３】
電子原稿デスプーラにて、設定したプリンタに対応するプリンタドライバの固有の印刷設定情報（ＤＥＶＭＯＤＥ）が、印刷指示文書に含まれるか否かを調べる（Ｓ３０５）。印刷指示文書に含まれている場合は（Ｓ３０５−Ｙｅｓ）、それを読み込む（Ｓ３０７）。印刷指示文書に含まれていない場合は（Ｓ３０５−Ｎｏ）、図５における印刷指示文書に格納されているプリンタへの指示情報部５０３の内容（一般指示情報）であって、プリンタへの印刷指示部分の設定内容から、対象となるプリンタに対応するプリンタドライバの固有に印刷設定情報（ＤＥＶＭＯＤＥ）を作成する（Ｓ３０６）。このとき、実装によっては、ＤＥＶＭＯＤＥが含まれている場合でも、プリンタへの指示情報部５０３の印刷指示を組合わせて設定したＤＥＶＭＯＤＥを作成しても良い。
【００９４】
続いて、読み込んだ、または、作成したＤＥＶＭＯＤＥにより、プリンタへ通知するべき指示をプリンタへ送る（Ｓ３０８）。具体的には、ＤＯＭＳシステムに組み込まれた印刷処理モジュールであるデスプーラが、作成されたＤＥＶＭＯＤＥを用いて、ＯＳのＡＰＩである、ＣｒｅａｔｅＤＣ（）を呼び出すことにより、印刷指示をプリンタへ通知する。そして、印刷文書の内容を、印刷指示文書に含まれるデータの展開指示情報に基づき展開し、プリンタへ展開したデータを送出し（Ｓ３０９）、ステップＳ３０９の処理の後、プリンタに全ての印刷データを送出したことを通知する（Ｓ３１０）。
【００９５】
具体的には、ＯＳが提供するアプリケーション・プログラミング・インタフェースであるＣｒｅａｔｅＤＣ（）には、引数として、所望の記憶領域のポインタを与えることができる。デスプーラが、ＣｒｅａｔｅＤＣ（）に引数として拡張ＤＥＶＭＯＤＥを指し示すポインタを与え、ポインタが指し示す所望の記憶領域から、ＤＥＶＭＯＤＥの構造体を取得し、ドライバモジュールに送るようにＯＳを制御する。ＣｒｅａｔｅＤＣ（）を用いて、ＤＥＶＭＯＤＥの構造体を得たドライバは、得た情報に基づいて、印刷対象となるプリンタに対して命令を送信する。ＤＥＶＭＯＤＥに記述された内容に基づいて発行された命令がプリンタに送信され、プリンタはその命令に従って動作する。これにより、仕様を別途入手しなければＤＥＶＭＯＤＥの構造を窺い知ることができない拡張部分に設定されている印刷設定であっても、該設定を活用することができる。
【００９６】
ＤＯＭＳプリントサービスにて、分散すべきメンバプリンタがまだ残っているかどうかを調べ（Ｓ３１１）、残っている場合には、ステップＳ３０２に戻り、続いて第２メンバプリンタ以降の候補プリンタに対し、同様に処理を行う。全ての印刷が終了したら、その旨をユーザに通知し（Ｓ３１２）、印刷を終了する。
【００９７】
本実施形態によれば、印刷指示文書に含まれる共通の設定だけでは、印刷処理ができない場合でも、印刷指示文書に含まれる共通の一般指示情報に基づいてプリンタ固有の印刷設定情報を生成し、その情報に基づき印刷文書の処理を実行することが可能となる。
【００９８】
また、印刷文書の処理を複数のプリンタにより分散して行なう場合であっても、共通となる一般指示情報に基づいて、固有の印刷設定情報が必要なプリンタに対しては、その情報を生成し、印刷文書の分散処理の実行が可能となる。
【００９９】
＜第２実施形態＞
第１実施形態では、割合分散により複数のプリンタをそれぞれ制御する内容を説明した。本実施形態では、出力先として指示した第１のプリンタが使用不可能な状態にある時や、印刷が失敗した場合に、予め設定してある第２、第３のプリンタへ、その指示内容を代行させる代行印刷において、複数のメンバプリンタを制御する内容を説明するものである。
【０１００】
本実施形態で使用するプリンタとして、代行用のプリンタが指定されている場合の印刷指示文書の内容は、図９に示すようなデータ構造となる。プリンタデバイス名格納部（９０１）では、代行用のプリンタが指定されており、名称として、"プリンタセット２（代行用）"（９０２）、代行する対象は３つのプリンタであることが記述されている（９０３）。
【０１０１】
メンバプリンタ格納部（９０７）では、メンバプリンタ名として、"レーザプリンタ１"（９０８）、"レーザプリンタ２"（９０９）、" レーザプリンタ３"（９１０）等、複数のプリンタが設定されている。それぞれのメンバプリンタに対応するプリンタドライバの固有の印刷設定情報として、ＤＥＶＭＯＤＥ１（９１２），ＤＥＶＭＯＤＥ２（９１３）、ＤＥＶＭＯＤＥ３（９１４）がＤＥＶＭＯＤＥ格納部（９１１）に格納されている。
【０１０２】
予め、ユーザは、図８のダイアログにより、代行用プリンタを選択した場合、代行させるプリンタをメンバプリンタとして登録する。各プリンタのプロパティで、印刷指示を設定することにより、ＤＥＶＭＯＤＥが作成され、その操作により、図９に示す印刷指示文書を作成できる。
【０１０３】
具体的には、図８で代行プリンタの設定を行なった後、製本アプリケーションにてユーザが代行プリンタを出力先に指定した場合、対応するＤＯＭＳドライバが、代行プリンタの各メンバプリンタのＤＥＶＭＯＤＥを取得して、製本アプリケーションに伝える。これにより、製本アプリケーションはＤＯＭＳドライバから渡された、メンバプリンタのＤＥＶＭＯＤＥを印刷指示文書に格納する。代行は、メンバプリンタ名格納部に記述された順序で行われる。
【０１０４】
図７の処理の流れは、図２で示した、プリンタへの印刷指示処理Ｓ２０９の部分の詳細である。まず、ＤＯＭＳプリントサービスにて、指定されているプリンタが、代行用プリンタかどうかチェックし（Ｓ７０１）、代行用プリンタの場合は、代行用プリンタのメンバプリンタに指定されている第１のプリンタの名称を読み込む（Ｓ７０２）。
【０１０５】
ここで、第１のプリンタが使用可能であるかどうかをチェックする（Ｓ７０４）。使用可能ではない場合（Ｓ７０４−Ｎｏ）、代行用プリンタに設定されている第２のメンバプリンタを読み込み（Ｓ７０３）、そのプリンタに対して処理を行う。
【０１０６】
電子原稿デスプーラにて、設定したプリンタに対応するＤＥＶＭＯＤＥが、印刷指示文書に含まれるか否かを調べ（Ｓ７０５）、含まれている場合は、それを読み込む（Ｓ７０６）。含まれていない場合は、図５のプリンタへの指示情報部５０３の内容であって、プリンタへの印刷指示部分の設定内容から対象となるプリンタのＤＥＶＭＯＤＥを作成する（Ｓ７０７）。
【０１０７】
このとき、実装によっては、ＤＥＶＭＯＤＥが含まれている場合でも、プリンタへの指示情報部５０３の印刷指示を重ねて設定したＤＥＶＭＯＤＥを作成しても良い。
【０１０８】
続いて、読み込んだ、または、作成したＤＥＶＭＯＤＥにより、プリンタへ通知するべき指示をプリンタデバイスへ送る（Ｓ７０８）。具体的には、ＤＯＭＳシステムに組み込まれた印刷処理モジュールであるデスプーラが、作成されたＤＥＶＭＯＤＥを用いて、Ｗｉｎｄｏｗｓ（登録商標）ＡＰＩである、ＣｒｅａｔｅＤＣ（）を呼び出すことにより、印刷指示をプリンタへ通知する。ＣｒｅａｔｅＤＣ（）には、引数として、所望の記憶領域のポインタを与えることができ、そのポインタが指す記憶領域から、ＤＥＶＭＯＤＥの構造体を取得し、ドライバモジュールに送るものである。
【０１０９】
ＣｒｅａｔｅＤＣ（）から、ＤＥＶＭＯＤＥの構造体を得たドライバは、印刷対象となるプリンタに対して命令を送信する。ＤＥＶＭＯＤＥに記述された内容に基づいて発行された命令がプリンタに送信され、プリンタはその命令に従って動作する。従って、内容が不明な拡張ＤＥＶＭＯＤＥであっても、そのＤＥＶＭＯＤＥを指し示すポインタをＯＳに渡すと、ＯＳはポインタが指し示すアドレスからＤＥＶＭＯＤＥを読み出してドライバに送ることができる。
【０１１０】
プリンタ全体の制御を統括するプリンタコントローラは、プリンタエンジン、ソータやステイプラなどのオプションを、該ＤＥＶＭＯＤＥが示す設定情報に従って制御する。そして、印刷文書の内容を、印刷指示文書に含まれているデータの展開指示情報に基づき展開し、プリンタへ展開したデータを送出し（Ｓ７０９）、ステップＳ７０９の処理の後、プリンタに全ての印刷データを送出したことを通知する（Ｓ７１０）。
【０１１１】
ここで、ＤＯＭＳプリントサービスにて、印刷が成功したか否かをチェックし（Ｓ７１１）、成功していない場合は、代行用プリンタに設定されている次のメンバプリンタを読み込んで（Ｓ７０３）、そのプリンタについて、処理を続行する。全ての印刷が終了したら、その旨をユーザに通知し（Ｓ７１２）、印刷を終了する。
【０１１２】
本実施形態によれば、印刷文書の処理を複数のプリンタの代行順位に従い、処理する場合であっても、共通となる一般指示情報に基づいて、代行順位に該当するプリンタであり、固有の印刷設定情報が必要なプリンタに対しては、その情報を生成し、印刷文書の代行順位に従った処理の実行が可能となる。
【０１１３】
すなわち、本実施形態によれば、印刷すべき第１のプリンタで印刷が不可能となっていても、第１のプリンタの代行印刷によりメンバープリンタとして設定されている第２、第３のプリンタのＤＥＶＭＯＤＥにより、印刷文書データを出力することが可能となる。
【０１１４】
＜他の実施形態＞
本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（複写機、プリンタ、ファクシミリ装置など）に適用してもよい。
【０１１５】
本発明の目的は前述した機能を実現するソフトウェアを記憶したコンピュータ可読の記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。
【０１１６】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１７】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１１８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１１９】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【０１２０】
【図１】本発明の実施形態にかかる印刷制御装置及びその関連機器の構成を示すブロック図である。
【図２】印刷制御の処理を説明するフローチャートである。
【図３】割合分散による印刷指示の処理を説明するフローチャートである。
【図４】分散プリンタの設定を行うダイアログ例を示す図である。
【図５】印刷指示情報のデータ構造の例を示す図である。
【図６】複数の分散用プリンタを指定した場合の印刷指示情報のデータ構造の例を示す図である。
【図７】代行印刷による印刷指示の処理を説明するフローチャートである。
【図８】代行プリンタの設定を行うダイアログ例を示す図である。
【図９】複数の代行用プリンタを指定した場合の印刷指示情報のデータ構造の例を示す図である。
【図１０】スタンドアロン型の文書処理システムのブロック図である。
【図１１】文書処理システムを実現するコンピュータのブロック図である。
【図１２】ブックファイルの構造の一例を示す図である。
【図１３】ブック属性の一覧を示す図である。
【図１４】章属性の一覧を示す図である。
【図１５】ページ属性の一覧を示す図である。
【図１６】ブックファイルを開く手順のフローチャートである。
【図１７】電子原稿ファイルをブックファイルにインポートする手順のフローチャートである。
【図１８】アプリケーションデータを電子原稿ファイルに変換する手順のフローチャートである。
【図１９】既存のブックファイルを開いた際のユーザインターフェース画面の一例を示す図である。
【図２０】新規のブックファイルを開いた際のユーザインターフェース画面の一例を示す図である。
【図２１】クライアントサーバ型の文書処理システムのブロック図である。
【図２２】ＯＳが標準ＤＥＶＭＯＤＥとして提供しているデータ構造を示す図である。
【図２３】ＤＥＶＭＯＤＥの標準部分と拡張部分のデータ構造を示す図である。
【符号の説明】
【０１２１】
１      システム・バス
２      ＣＰＵ
３      プログラム・メモリ
４      通信制御部
５      通信ポート
６      通信回線
７      ネットワーク上の他の装置
８      外部記憶制御部
９、１０  データファイル用のディスク
１１    入力制御部
１２    キーボード
１３    マウス等の入力装置
１４    ビデオ・イメージ・メモリ
１５    表示出力制御部
１６    ＣＲＴ
１７    プリンタ制御部
１８    プリンタ
１９    外部機器制御部
１Ａ    画像入力機器制御部
１Ｂ    画像入力機器
【図１】
0004498372.tif 000002
【図２】
0004498372.tif 000003
【図３】
0004498372.tif 000004
【図４】
0004498372.tif 000005
【図５】
0004498372.tif 000006
【図６】
0004498372.tif 000007
【図７】
0004498372.tif 000008
【図８】
0004498372.tif 000009
【図９】
0004498372.tif 000010
【図１０】
0004498372.tif 000011
【図１１】
0004498372.tif 000012
【図１２】
0004498372.tif 000013
【図１３】
0004498372.tif 000014
【図１４】
0004498372.tif 000015
【図１５】
0004498372.tif 000016
【図１６】
0004498372.tif 000017
【図１７】
0004498372.tif 000018
【図１８】
0004498372.tif 000019
【図１９】
0004498372.tif 000020
【図２０】
0004498372.tif 000021
【図２１】
0004498372.tif 000022
【図２２】
0004498372.tif 000023
【図２３】
0004498372.tif 000024