(57)【要約】【課題】  用紙を折って製本の体裁をなす印刷物を作成する場合に、各印刷領域に対して、複数の印刷ページデータを配置した印刷物を作成することが可能な印刷制御装置を提供する。【解決手段】  １枚の用紙に印刷データの複数ページを組み合わせて印刷する際の各ページの配置を決める配置データを入力し、入力された前記配置データに従って印刷データから単一のページとして印刷すべきページデータ部分を抽出して保持し、保持されるページデータから生成される印刷データを出力する印刷制御装置は、その配置データに対して、用紙に印刷した結果を製本した場合の１ページ上にさらに複数の印刷データページを組み合わせ配置することを指定する指定ユニットと、配置データに従い、製本した場合の１ページ上に複数のページデータを配置した印刷データを生成する生成ユニットと、を備える。【選択図】  図２５
2011034592.tif 000002
【特許請求の範囲】
【請求項１】
第１のサイズのページデータと、前記第１のサイズの２倍である第２のサイズのページデータとが混在した文書データを入力する入力手段と、
第２のサイズのページデータを２つの前記第１のサイズのページデータに分割することにより前記第１のサイズの第１ページと第２ページとを生成する分割手段と、
用紙を２つに折ることで本を生成する製本印刷が指定され、かつ、前記用紙を２つに折ることにより得られる見開き領域に前記第１ページと第２ページとが配置される場合、前記第１ページと第２ページとの間に隙間が生じないような配置処理を実行し、前記製本印刷が指定され、かつ、前記見開き領域に前記第１ページと第２ページとが配置されない場合、前記配置処理とは異なる配置処理を実行する配置制御手段と、
を備えることを特徴とする印刷制御装置。
【請求項２】
前記分割手段により分割されることにより生成されたページが前記見開き領域に配置されない場合、前記配置制御手段は、レイアウト領域のサイズを縮小するための縮小処理およびレイアウト位置を変更するための移動処理のうち少なくともいずれか１つが適用されたページを各領域に配置することを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記用紙を２つに折ることにより得られる見開き領域に前記第１ページと第２ページとが配置される場合、前記配置制御手段は、前記第１ページと第２ページとに分割される前の前記第２のサイズのページを前記見開きに領域に配置することを特徴とする請求項１または２に記載の印刷制御装置。
【請求項４】
前記見開き領域は、異なる印刷用紙にまたがる領域であることを特徴とする請求項１乃至３のいずれか１項に記載の印刷制御装置。
【請求項５】
印刷制御装置の入力手段が、第１のサイズのページデータと、前記第１のサイズの２倍である第２のサイズのページデータとが混在した文書データを入力する入力工程と、
前記印刷制御装置の分割手段が、第２のサイズのページデータを２つの前記第１のサイズのページデータに分割することにより前記第１のサイズの第１ページと第２ページとを生成する分割工程と、
前記印刷制御装置の配置制御手段が、用紙を２つに折ることで本を生成する製本印刷が指定され、かつ、前記用紙を２つに折ることにより得られる見開き領域に前記第１ページと第２ページとが配置される場合、前記第１ページと第２ページとの間に隙間が生じないような配置処理を実行し、前記製本印刷が指定され、かつ、前記見開き領域に前記第１ページと第２ページとが配置されない場合、前記配置処理とは異なる配置処理を実行する配置制御工程と、
を有することを特徴とする印刷制御方法。
【請求項６】
前記分割工程により分割されることにより生成されたページが前記見開き領域に配置されない場合、前記配置制御工程は、レイアウト領域のサイズを縮小するための縮小処理およびレイアウト位置を変更するための移動処理のうち少なくともいずれか１つが適用されたページを各領域に配置することを特徴とする請求項５に記載の印刷制御方法。
【請求項７】
前記用紙を２つに折ることにより得られる見開き領域に前記第１ページと第２ページとが配置される場合、前記配置制御工程は、前記第１ページと第２ページに分割される前の前記第２のサイズのページを前記見開きに領域に配置することを特徴とする請求項５または６に記載の印刷制御方法。
【請求項８】
前記見開き領域は、異なる印刷用紙にまたがる領域であることを特徴とする請求項５乃至７のいずれか１項に記載の印刷制御方法。
【請求項９】
印刷制御装置のコンピュータを、
第１のサイズのページデータと、前記第１のサイズの２倍である第２のサイズのページデータとが混在した文書データを入力する入力手段、
第２のサイズのページデータを２つの前記第１のサイズのページデータに分割することにより前記第１のサイズの第１ページと第２ページとを生成する分割手段、
用紙を２つに折ることで本を生成する製本印刷が指定され、かつ、前記用紙を２つに折ることにより得られる見開き領域に前記第１ページと第２ページとが配置される場合、前記第１ページと第２ページとの間に隙間が生じないような配置処理を実行し、前記製本印刷が指定され、かつ、前記見開き領域に前記第１ページと第２ページとが配置されない場合、前記配置処理とは異なる配置処理を実行する配置制御手段、
として機能させるためのプログラム。
【請求項１０】
前記分割手段により分割されることにより生成されたページが前記見開き領域に配置されない場合、前記配置制御手段は、レイアウト領域のサイズを縮小するための縮小処理およびレイアウト位置を変更するための移動処理のうち少なくともいずれか１つが適用されたページを各領域に配置する請求項９に記載のプログラム。
【請求項１１】
前記用紙を２つに折ることにより得られる見開き領域に前記第１ページと第２ページとが配置される場合、前記配置制御手段は、前記第１ページと第２ページとに分割される前の前記第２のサイズのページを前記見開きに領域に配置する請求項９または１０に記載のプログラム。
【請求項１２】
前記見開き領域は、異なる印刷用紙にまたがる領域である請求項９乃至１１のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、印刷制御方法およびプログラムに関するものである。
【背景技術】
【０００２】
文字や表、画像など、データの種類が異なると、データを定義する構造やそれらデータに対する編集操作が異なるために、データの種類に応じた様々なアプリケーションプログラムが提供されている。利用者は、文字を編集するためには文字処理プログラム、表を編集するためには表計算プログラム、画像を編集するためには画像編集プログラムといった具合に、データの種類別にアプリケーションを使い分けている。
【０００３】
このように、利用者はデータの種類ごとにアプリケーションプログラムを使い分けるのが一般的である。しかし、利用者が作成しようとする文書としては、例えば文字のみや、表のみ、画像のみといった１種類のデータのみから構成される文書よりも、文字と表、文字と画像など、複数種類のデータから構成される文書の方が一般的である。そこで複数種類のデータを含む目的文書を作成するために、利用者は各種アプリケーションが備えている印刷機能を利用してアプリケーションごとにデータを印刷させ、印刷物を所望の順序に組み合わせる必要があった。
【０００４】
あるいは、いわゆるオフィススイートと呼ばれる、各種アプリケーションによってひとつの統合アプリケーションを形成するプログラムには、各アプリケーションで生成されたデータを組み合わせ、ひとつの文書を構成する機能を提供するものもある。この統合アプリケーションを使用する場合には、利用者は、各アプリケーションで作成したデータを、統合アプリケーションに含まれる特定のアプリケーションによってひとつの目的文書にまとめることができる。
【０００５】
ページ単位のデータをレイアウトする処理はプリンタドライバなどで行われている。例えば、１ページに対して、一つの原稿のページデータを出力するだけでなく、複数の原稿ページデータを印刷するＮページ印刷と呼ばれる機能がある。このＮページ印刷は、複数のページを用紙の１面に縮小配置するもので、両面印刷とともに用紙の節約等の目的で利用されている。
【０００６】
また、両面印刷機能を有する出力装置において、出力された用紙を２つに折るとページ順序が合う様にページ順序を組かえて印刷する製本印刷と呼ばれる機能がある。１枚の用紙の場合、２つ折りによって表裏合わせて４つの印刷領域ができるので、４ページを配置して印刷する体裁となる。
【０００７】
さらに複雑に、用紙を４つ折りもしくはそれ以上の折りをして、３辺を裁断することで製本の体裁をなすように現行のページを配置し印刷する方法もある。
【０００８】
また、Ｎページレイアウトとは逆に、１ページのデータを複数の用紙に拡大連続印刷するレイアウト方法がある。これはポスター印刷や拡大連写などと呼ばれ、印刷された用紙を貼り合わせることで元の１ページを拡大した印刷結果を得ることできる。
【０００９】
また、印刷情報をページ単位にレイアウトするような処理はプリンタドライバなどで行われている。代表的なものとして、「Nページ印刷」と呼ばれるレイアウト方法がある。これは、複数のページを用紙の１面に縮小配置するもので、両面印刷とともに用紙の節約等の目的で利用されている。
【００１０】
このNページ印刷とは逆に、１ページ分のデータを複数の用紙に拡大連続印刷するレイアウト方法がある。これは「ポスター印刷」や「拡大連写」などと呼ばれ、印刷された用紙を貼り合わせることで元の１ページを拡大した印刷結果を得ることできる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平１０−０９３８０９号公報
【特許文献２】特開平０９−０２６８６５号公報
【特許文献３】特開平０９−２６１３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、利用者が各種アプリケーションによる印刷物を組み合わせてひとつの目的文書を作成する場合、例えばページ番号を各ページに振るためには、いったん必要なデータをすべて印刷出力し、文書としてまとめてから付すべきページ番号を決定する必要がある。そして、各アプリケーションによって、そのアプリケーションで作成された原稿の各ページ（これを論理ページあるいは原稿ページと呼ぶ）ごとに、決定されたページ番号を書き込んでいく。アプリケーションプログラムがページ番号を振る機能を有している場合であっても、不連続部分があればその部分についてはやはり利用者がページ番号を指定しなければならない。また、目的文書のページを再配置した場合には、ページ番号もそれに合わせて振り直さなければならない。あるいは、複数の原稿ページを、印刷物としての１ページ（これを物理ページあるいは印刷ページと呼ぶ）にまとめたり、片面印刷から両面印刷に変更するなど、データの内容にかかる変更ではなく、単に書式を変更する場合であっても、アプリケーションによって編集および印刷のし直しが必要となる。
【００１３】
このように、データの種類ごとにそれを管理できるアプリケーションが異なることから、アプリケーション間のインターフェースを利用者自身が人手によって提供しなければならない。このことは、利用者に多大な労力が要求されるということであり、生産性の低下をもたらす。さらに、多くの人手を介することからエラーの発生も生じやすかった。
【００１４】
一方、統合アプリケーションを利用して目的文書を作成する場合、印刷出力せずに、データの状態で各種データを配置することができる。このため、印刷物を組み合わせて目的文書を作成する場合ほどには労力は必要とされることはない。しかしながら、各種データを編集・作成するためのアプリケーションは、統合アプリケーションに含まれるものに限られてしまい、利用者が望むアプリケーションが使用できるとは限らない。また、統合アプリケーションによって作成された目的文書はひとつの文書ファイルであり、ファイル単位で編集・出力等の管理が行われる。そのために、文書ファイルの一部について書式を設定しようとしてもアプリケーションの機能による制約が多く、例えば書式が変わる部分ごとに書式設定を変更しては印刷し直すといった作業が必要とされる。このため、多くの労力が必要とされて生産性が低い点においては、前述した方法と変わりはなかった。
【００１５】
従来の技術では、製本の体裁にした場合の一つの印刷領域に原稿データの１ページを配置することはできるが、複数のページを印刷することはできない。用紙を折って製本する場合には、物理的な折り処理の都合上用紙サイズがある程度制限を受けるため、１つの印刷領域の大きさもそれに応じて制限を受けることになる。この限られた印刷領域を有効に利用して、情報量を多く出力したくても、１つの印刷領域に１ページしか出力できないという欠点がある。
【００１６】
また、カタログなどでは、製本結果の見開きで大きな１ページを表現することがある。しかし、このようなレイアウトをするには、印刷処理の前に、見開きのそれぞれのページに配置される小さなページの原稿、いわゆる泣き別れの原稿、を用意し、それぞれを見開き位置に合うように調整する等の特別な処理が必要となるため、従来のレイアウト方式では対応できない。このような複雑で特殊なレイアウトを行うには、専門のオペレータが介在するようなシステムを用いて作成する必要があった。
【課題を解決するための手段】
【００１７】
本発明は、上述の課題に鑑みてなされたものであり、その目的とするところは、用紙を折って製本の体裁をなす印刷物を作成する場合において、各印刷領域に対して、複数の印刷ページデータを配置した印刷物を作成できる印刷制御装置および方法を提供することにある。
【００１８】
本発明の一つの側面にかかる印刷制御装置は、第１のサイズのページデータと、前記第１のサイズの２倍である第２のサイズのページデータとが混在した文書データを入力する入力手段と、
第２のサイズのページデータを２つの前記第１のサイズのページデータに分割することにより前記第１のサイズの第１ページと第２ページとを生成する分割手段と、
用紙を２つに折ることで本を生成する製本印刷が指定され、かつ、前記用紙を２つに折ることにより得られる見開き領域に前記第１ページと第２ページとが配置される場合、前記第１ページと第２ページとの間に隙間が生じないような配置処理を実行し、前記製本印刷が指定され、かつ、前記見開き領域に前記第１ページと第２ページとが配置されない場合、前記配置処理とは異なる配置処理を実行する配置制御手段と、
を備えることを特徴とする。
【００１９】
本発明の他の側面にかかる印刷制御方法は、印刷制御装置の入力手段が、第１のサイズのページデータと、前記第１のサイズの２倍である第２のサイズのページデータとが混在した文書データを入力する入力工程と、
前記印刷制御装置の分割手段が、第２のサイズのページデータを２つの前記第１のサイズのページデータに分割することにより前記第１のサイズの第１ページと第２ページとを生成する分割工程と、
前記印刷制御装置の配置制御手段が、用紙を２つに折ることで本を生成する製本印刷が指定され、かつ、前記用紙を２つに折ることにより得られる見開き領域に前記第１ページと第２ページとが配置される場合、前記第１ページと第２ページとの間に隙間が生じないような配置処理を実行し、前記製本印刷が指定され、かつ、前記見開き領域に前記第１ページと第２ページとが配置されない場合、前記配置処理とは異なる配置処理を実行する配置制御工程と、を有することを特徴とする。
【発明の効果】
【００２０】
本発明にかかる、印刷制御装置および方法によれば、用紙を折って製本の体裁をなす印刷物を作成する場合に、各印刷領域に対して、複数の印刷ページデータを配置した印刷物を作成することが可能になる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態を示す印刷制御装置の構成を説明するブロック図である。
【図２】プリンタが接続されたホストコンピュータの典型的なプリントシステムの構成を示すブロック図である。
【図３】アプリケーションからの印刷命令をプリンタ制御コマンドに変換する前に、一旦中間コードスプールするプリントシステムの構成を示すブロック図である。
【図４】本発明におけるプリンタについて説明した図である。
【図５】スプーラ３０２における処理を示したフローチャートである。
【図６】スプールファイルマネージャ３０４における印刷制御について示したフローチャートである。
【図７】デスプーラ３０５における処理を示したフローチャートである。
【図８】印刷設定画面の一例である。
【図９】印刷スプール設定画面の一例である。
【図１０】ステップＳ６０８において、スプールファイルマネージャ３０４が生成する印刷可能となった物理ページを構成する情報を保存しているジョブ出力用設定ファイルの例を示す図である。
【図１１】図１０のフィールド１００２に図示されたジョブ設定情報の一例を示す図である。
【図１２】図１０のフィールド１００４に図示された物理ページ情報の一例を示す図である。
【図１３】図１２の１２０２の物理ページ設定情報の例を示す図である。
【図１４】スプールファイルマネージャ３０４からデスプーラ３０５に対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示した図である。
【図１５】設定変更エディタ３０７における設定変更処理について示したフローチャートである。
【図１６】スプールファイルマネージャ３０４でスプールされている印刷ジョブ一覧を表示する画面の一例である。
【図１７】プレビューア３０６の画面の一例である。
【図１８】設定変更エディタ３０７の画面の一例である。
【図１９】製本印刷の製本印刷処理の概要を示す図である。
【図２０】製本印刷の製本印刷処理の概要を示す図である。
【図２１】第１実施形態で説明するページ配置を求める方法を示す図である。
【図２２】第２実施形態で説明するページ配置を求める方法を示す図である。
【図２３】全ページを一まとめにして製本印刷を行う方法を説明するフローチャートである。
【図２４】ページの配置を定める方法を説明するフローチャートである。
【図２５】複数の製本印刷の選択について示した図である。
【図２６】用紙節約の方法について説明したフローチャートである。
【図２７】任意の用紙枚数を１ブロックとして製本印刷を行う方法を説明したフローチャートである。
【図２８】第１実施形態の配置方式を設定するためのＧＵＩの例である。
【図２９】第３実施形態の配置方式を設定するためのＧＵＩの例である。
【図３０】第３実施形態で説明するページ配置を求める方式の図である。
【図３１】アプリケーションからの印刷命令をプリンタ制御コマンドに変換する前に、一旦中間コードスプールするプリントシステムの構成を示すブロック図である。
【図３２】中間コードデータファイルのデータフォーマットの概略を説明する図である。
【図３３】ページ分割の概念を示す図で、（ａ）は原稿ページを示し、（ｂ）は、原稿ページを見開きに配置するために、原稿ページを左右に２等分した状態を示す図である。
【図３４】分割データを表現するページ情報の例を示す図である。
【図３５】ページを分割する属性がつけられたページデータのレイアウトの概念を示す図である。
【図３６】ページ分割後のデータをレイアウトする際に生じるデータの欠けを説明する図であり、（ａ）はA3、Landscapeの原稿ページを示し、（ｂ）は、その原稿ページを２分割したデータを、A4、Portrait用紙のプリンタの描画領域を考慮に入れてレイアウトする場合の例を示す図である。
【図３７】本発明のデータの欠けを防止するためのレイアウトの一例を説明する図である。
【図３８】ページ分割したデータを、従来のレイアウト方法で配置した例と、本発明のレイアウトを適用した一例を示す図である。
【図３９】用紙を折って本を作成する製本印刷のレイアウトをする図であり、（ａ）は製本した背表紙側から見た状態を示す図であり、（ｂ）は製本した内側から見た状態を示す図である。
【図４０】ページ分割後のデータ構造の一例を示す図である。
【図４１】ページ分割を行う場合の、処理手順の説明するフローチャートである。
【図４２】ページレイアウトを適用する場合の、処理手順を説明するフローチャートである。
【図４３】分割ページのレイアウト制御を説明する図である。
【図４４】スタンドアロン型の文書処理システムのブロック図である。
【図４５】文書処理システムを実現するコンピュータのブロック図である。
【図４６】ブックファイルの構造の一例を示す図である。
【図４７】ブック属性の一覧を示す図である。
【図４８】章属性の一覧を示す図である。
【図４９】ページ属性の一覧を示す図である。
【図５０】ブックファイルを開く手順のフローチャートである。
【図５１】電子原稿ファイルをブックファイルにインポートする手順のフローチャートである。
【図５２】アプリケーションデータを電子原稿ファイルに変換する手順のフローチャートである。
【図５３】既存のブックファイルを開いた際のユーザインターフェース画面の一例を示す図である。
【図５４】新規のブックファイルを開いた際のユーザインターフェース画面の一例を示す図である。
【図５５】クライアントサーバ型の文書処理システムのブロック図である。
【発明を実施するための形態】
【００２２】
＜システム概要＞
本発明の実施形態である文書処理システムの概要を、図４４〜図５５を参照して説明する。この文書処理システムでは、一般アプリケーションにより作成されたデータファイルが、電子原稿ライタによって電子原稿ファイルに変換される。製本アプリケーションはその電子原稿ファイルを編集する機能を提供している。以下、その詳細は説明する。
【００２３】
＜システム構成及び動作＞
図４４は、本実施形態の文書処理システムのソフトウエア構成を示す図である。文書処理システムはデジタルコンピュータ１０１０によって実現されている。一般アプリケーション１０１０は、ワードプロセシングやスプレッドシート、フォトレタッチ、ドローあるいはペイント、プレゼンテーション、テキスト編集などの機能を提供するアプリケーションプログラムであり、印刷機能を有している。これらアプリケーションは、作成された文書データや画像データなどのアプリケーションデータを印刷するにあたって、オペレーティングシステム（ＯＳ）により提供される所定のインタフェースを利用する。すなわち、アプリケーション１０１０は、作成したデータを印刷するために、前記インタフェースを提供するＯＳの出力モジュールに対して、あらかじめ定められる、ＯＳに依存する形式の出力コマンドを送信する。出力コマンドを受けた出力モジュールは、プリンタ等の出力デバイスが処理可能な形式にそのコマンドを変換し、それを出力する。出力デバイスが処理可能な形式はデバイスの種類やメーカ、機種などによって異なるために、デバイスごとにデバイスドライバが提供されており、ＯＳではそのデバイスドライバを利用してコマンドの変換を行う。ＯＳとしてマイクロソフト社のウインドウズを利用する場合には、前述した出力モジュールとしてはＧＤＩと呼ばれるモジュールが相当する。
【００２４】
電子原稿ライタ１０２０は、前述のデバイスドライバのひとつとして、本文書処理システム実現のために提供されるソフトウエアモジュールである。ただし、電子原稿ライタ１０２０は特定の出力デバイスを目的としておらず、後述の製本アプリケーション１０４０やプリンタドライバ１０６０により処理可能な形式に出力コマンドを変換する。この電子原稿ライタ１０２０による変換後の形式（以後電子原稿形式と呼ぶ）は、ページ単位の原稿を詳細な書式をもって表現可能であれば特に問わない。実質的な標準形式のうちでは、例えばアドビシステムズによるＰＤＦ形式や、ＳＧＭＬ形式などが電子原稿形式として採用できる。アプリケーション１０１０により電子原稿ライタ１０２０を利用させる場合には、出力に使用するデバイスドライバとして電子原稿ライタ１０２０を指定してから印刷を実行させる。ただし、電子原稿ライタ１０２０によって作成されたままの電子原稿ファイルは、電子原稿ファイルとして完全な形式を備えていない。そのため、デバイスドライバとして電子原稿ライタ１０２０を指定するのは製本アプリケーション１０４０であり、その管理下でアプリケーションデータの電子原稿ファイルへの変換が実行される。製本アプリケーション１０４０は、電子原稿ライタ１−２が生成した新規の不完全な電子原稿ファイルを後述する形式を備えた電子原稿ファイルとして完成させる。以下では、この点を明瞭に識別する必要がある際には、電子原稿ライタ１０２０によって作成されたファイルを電子原稿ファイルと呼び、製本アプリケーションによって構造を与えられた電子原稿ファイルをブックファイルと呼ぶ。
【００２５】
このようにデバイスドライバとして電子原稿ライタ１０２０を指定し、一般アプリケーション１０１０によりそのデータを印刷させることで、アプリケーションデータはアプリケーション１０１０によって定義されたページ（以後論理ページあるいは原稿ページと呼ぶ）を単位とする電子原稿形式に変換され、電子原稿ファイル１０３０としてハードディスクなどの記憶媒体に格納される。なお、ハードディスクは、本実施形態の文書処理システムを実現するコンピュータが備えているローカルドライブであってもよいし、ネットワークに接続されている場合にはネットワーク上に提供されるドライブであっても良い。
【００２６】
製本アプリケーション１０４０は電子原稿ファイルあるいはブックファイル１０３０を読み込み、それを編集するための機能を利用者に提供する。ただし製本アプリケーション１０４０は、各ページの内容を編集する機能は提供しておらず、ページを最小単位として構成される、後述する章やブックの構造を編集するための機能を提供している。
【００２７】
製本アプリケーション１０４０によって編集されたブックファイル１０３０を印刷する際には、製本アプリケーション１０４０によって電子原稿デスプーラ１０５０が起動される。電子原稿デスプーラ１０５０は、指定されたブックファイルをハードディスクから読み出し、ブックファイルに記述された形式で各ページを印刷するために、前述したＯＳの出力モジュールに適合する出力コマンドを生成し、不図示の出力モジュールに出力する。その際に、出力デバイスとして使用されるプリンタ１０７０のドライバ１０６０がデバイスドライバとして指定される。出力モジュールは、指定されたプリンタ１０７０のデバイスドライバ１０６０を用いて受信した出力コマンドを、プリンタ１０７０で解釈実行可能なデバイスコマンドに変換する。そしてデバイスコマンドはプリンタ１０７０に送信され、プリンタ１０７０によってコマンドに応じた画像が印刷される。
【００２８】
図４５は、コンピュータ１０００のハードウエアブロック図である。図４５において、ＣＰＵ２０１０は、ＲＯＭ２０３０のプログラム用ＲＯＭに記憶された、あるいはハードディスク２１１０からＲＡＭ２０２０にロードされたＯＳや一般アプリケーション、製本アプリケーションなどのプログラムを実行し、図４４のソフトウエア構成や、後述するフローチャートの手順を実現する。ＲＡＭ２０２０は、ＣＰＵ２０１０の主メモリ、ワークエリア等として機能する。キーボードコントローラ（ＫＢＣ）２０５０は、キーボード２０９０や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）２０６０は、ＣＲＴディスプレイ２１００の表示を制御する。ディスクコントローラ（ＤＫＣ）２０７０は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、後述する編集ファイル等を記憶するハードディスク（ＨＤ）２１１０やフロッピー(登録商標)ディスク（ＦＤ）等とのアクセスを制御する。ＰＲＴＣ２０８０は、接続されたプリンタ１０７０との間の信号の交換を制御する。ＮＣ２１２０はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
【００２９】
＜電子原稿データの形式＞
編集アプリケーション１０４０の詳細に言及する前に、ブックファイルのデータ形式を説明する。ブックファイルは紙媒体の書物を模した３層の層構造を有する。上位層は「ブック」と呼ばれ、１冊の本を模しており、その本全般に係る属性が定義されている。その下の中間層は、本でいう章に相当し、やはり「章」と呼ばれる。各章についても、章ごとの属性が定義できる。下位層は「ページ」であり、アプリケーションプログラムで定義された各ページに相当する。各ページついてもページごとの属性が定義できる。ひとつのブックは複数の章を含んでいてよく、また、ひとつの章は複数のページを含むことができる。
【００３０】
図４６（Ａ）は、ブックファイルの形式の一例を模式的に示す図である。この例のブックファイルは、ブック，章，ページは、それぞれに相当するノードにより示されている。ひとつのブックファイルはひとつのブックを含む。ブック，章は、ブックとしての構造を定義するための概念であるから、定義された属性値と下位層へのリンクとをその実体として含む。ページは、アプリケーションプログラムによって出力されたページごとのデータを実体として有する。そのため、ページは、その属性値のほか、原稿ページの実体（原稿ページデータ）と各原稿ページデータへのリンクを含む。なお、紙媒体等に出力する際の印刷ページは複数の原稿ページを含む場合がある。この構造に関してはリンクによって表示されず、ブック、章、ページ各階層における属性として表示される。
【００３１】
図４６において、ブック３０１０には、ブック属性が定義されているとともに、２つの章３０２０Ａ，３０２０Ｂがリンクされている。このリンクにより、章３０２０Ａ，３０２０Ｂがブック３０１０に包含されていることが表示される。章３０２０Ａには、ページ３０３０Ａ，３０３０Ｂがリンクされ、これらページが含まれることが示されている。各ページ３０３０Ａ，３０３０Ｂにはそれぞれ属性値が定義され、その実体である原稿ページデータ（１）、（２）へのリンクが含まれる。これらリンクは、図４６（Ｂ）に示す原稿ページデータ３０４０のデータ（１），（２）を指し示し、ページ３０３０Ａ、３０３０Ｂの実体が、原稿ページデータ（１）、（２）であることを表示する。
【００３２】
図４７は、ブック属性のリストである。下位層と重複して定義可能な項目に関しては、下位層の属性値が優先採用される。そのため、ブック属性にのみ含まれる項目に関しては、ブック属性に定義された値はブック全体を通して有効な値となる。しかし、下位層と重複する項目については、下位層において定義されていない場合における既定値としての意味を有する。なお、図示された各項目は具体的に１項目に対応するのではなく、関連する複数の項目を含むものもある。
【００３３】
図４８は章属性の、図４９はページ属性のリストである。章属性とページ属性との関係もブック属性と下位層の属性との関係と同様である。
【００３４】
ブック属性に固有の項目は、印刷方法、製本詳細、表紙／裏表紙、インデックス紙、合紙、章区切りの６項目である。これらは、ブックを通して定義される項目である。印刷方法属性としては、片面印刷、両面印刷、製本印刷の３つの値を指定できる。製本印刷とは、別途指定する枚数の用紙を束にして２つ折りにし、その束をつづり合わせることで製本が可能となる形式で印刷する方法である。製本詳細属性としては、製本印刷が指定されている場合に、見開き方向や、束になる枚数等が指定できる。
【００３５】
表紙／裏表紙属性は、ブックとしてまとめられる電子原稿ファイルを印刷する際に、表紙および裏表紙となる用紙を付加することの指定、及び付加した用紙への印刷内容の指定を含む。インデックス紙属性は、章の区切りとして、印刷装置に別途用意される耳付きのインデックス紙の挿入の指定およびインデックス（耳）部分への印刷内容の指定を含む。この属性は、印刷用紙とは別に用意された用紙を所望の位置に挿入するインサート機能を持ったインサータが使用する印刷装置に備えられている場合か、あるいは、複数の給紙カセットを使用可能である場合に有効となる。これは合紙属性についても同様である。
【００３６】
合紙属性は、章の区切りとして、インサータからあるいは給紙カセットから供給される用紙の挿入の指定、および、合紙を挿入する場合には、給紙元の指定などを含む。
【００３７】
章区切り属性は、章の区切り目において、新たな用紙を使用するか、新たな印刷ページを使用するか、特に何もしないか等の指定を含む。片面印刷時には新たな用紙の使用と新たな印刷ページの使用とは同じ意味を持つ。両面印刷時には、「新たな用紙の使用」を指定すれば連続する章が１枚の用紙に印刷されることは無いが、「新たな印刷ページの使用」を指定すれば、連続する章が１枚の用紙の表裏に印刷されることがあり得る。
【００３８】
章属性に関しては、章に固有の項目はなく、すべてブック属性と重複する。したがって、章属性における定義とブック属性における定義とが異なれば、章属性で定義された値が優先する。ブック属性と章属性とにのみ共通する項目は、用紙サイズ、用紙方向、Ｎ−ｕｐ印刷指定、拡大縮小、排紙方法の５項目である。このうち、Ｎ−ｕｐ印刷指定属性は、１印刷ページに含まれる原稿ページ数を指定するための項目である。指定可能な配置としては、１×１や１×２、２×２、３×３、４×４などがある。排紙方法属性は、排出した用紙にステイプル処理を施すか否かを指定するための項目であり、この属性の有効性は使用する印刷装置がステイプル機能を有するか否かに依存する。
【００３９】
ページ属性に固有の項目には、ページ回転属性、ズーム、配置指定、アノテーション、ページ分割などがある。ページ回転属性は、原稿ページを印刷ページに配置する際の回転角度を指定するための項目である。ズーム属性は、原稿ページの変倍率を指定するための項目である。変倍率は、仮想論理ページ領域のサイズを１００％として指定される。仮想論理ページ領域とは、原稿ページを、Ｎｕｐ等の指定に応じて配置した場合に、１原稿ページが占める領域である。例えば１×１であれば、仮想論理ページ領域は１印刷ページに相当する領域となり、１×２であれば、１印刷ページの各辺を約７０パーセントに縮小した領域となる。
【００４０】
ブック、章、ページについて共通な属性として、ウオーターマーク属性およびヘッダ・フッタ属性がある。ウオーターマークとは、アプリケーションで作成されたデータに重ねて印刷される、別途指定される画像や文字列などである。ヘッダ・フッタは、それぞれ各ページの上余白および下余白に印刷されるウオーターマークである。ただし、ヘッダ・フッタには、ページ番号や日時など、変数により指定可能な項目が用意されている。なお、ウオーターマーク属性およびヘッダ・フッタ属性において指定可能な内容は、章とページとは共通であるが、ブックはそれらと異なっている。ブックにおいてはウオーターマークやヘッダ・フッタの内容を設定できるし、また、ブック全体を通してどのようにウオーターマークやヘッダ・フッタを印刷するかを指定することができる。一方、章やページでは、その章やページにおいて、ブックで設定されたウオーターマークやヘッダ・フッタを印刷するか否かを指定できる。
【００４１】
＜ブックファイルの生成手順＞
ブックファイルは上述したような構造および内容を有している。次に、製本アプリケーション１０４０および電子原稿ライタ１０２０によってブックファイルを作成する手順を説明する。ブックファイルの作成は、製本アプリケーション１０４０によるブックファイルの編集操作の一環として実現される。図５０は、製本アプリケーション１０４０によりブックファイルを開く際の手順である。
【００４２】
まず、開こうとするブックファイルが、新規作成すべきものであるか、それとも既存のものであるか判定する（ステップＳ７０１０）。新規作成の場合には、章を含まないブックファイルを新規に作成する（ステップＳ７０２０）。新規に作成されるブックファイルは、図４６の例で示せば、ブックノード３０１０のみ有し、章のノードに対するリンクが存在しないブックのノードとなる。ブック属性は、新規作成用としてあらかじめ用意された属性のセットが適用される。そして、新規ブックファイルを編集するためのユーザインターフェース（ＵＩ）画面を表示する（ステップＳ７０４０）。図５４は、新規にブックファイルが作成された際のＵＩ画面の一例である。この場合には、ブックファイルは実質的な内容を持たないために、ＵＩ画面１１０００には何も表示されない。
【００４３】
一方、既存のブックファイルがあれば、指定されたブックファイルを開き（ステップＳ７０３０）、そのブックファイルの構造、属性、内容に従ってユーザインターフェース（ＵＩ）画面を表示する。図５３は、このＵＩ画面の一例である。ＵＩ画面１１０００は、ブックの構造を示すツリー部１１０１０と、印刷された状態を表示するプレビュー部１１０２０とを含む。ツリー部１１０１０には、ブックに含まれる章、各章に含まれるページが、図４６（Ａ）のような木構造で表示される。ツリー部１１０１０に表示されるページは原稿ページである。プレビュー部１１０２０には、印刷ページの内容が縮小されて表示される。その表示順序は、ブックの構造を反映したものとなっている。
【００４４】
さて、開かれたブックファイルには、電子原稿ライタによって電子原稿ファイルに変換されたアプリケーションデータを、新たな章として追加することができる。この機能を電子原稿インポート機能と呼ぶ。図５０の手順によって新規に作成されたブックファイルに電子原稿インポートすることで、そのブックファイルには実体が与えられる。この機能は、図５３の画面にアプリケーションデータをドラッグアンドドロップ操作することで起動される。図５１に電子原稿インポートの手順を示す。
【００４５】
まず、指定されたアプリケーションデータを生成したアプリケーションプログラムを起動し、デバイスドライバとして電子原稿ライタ１０２０を指定してアプリケーションデータを印刷出力させることで、電子原稿データに変換する（ステップＳ８０１０）。変換を終えたなら、変換されたデータが画像データであるか否かを判定する（ステップＳ８０２０）。この判定は、ウインドウズＯＳの下であれば、アプリケーションデータのファイル拡張子に基づいて行える。例えば、拡張子が「ｂｍｐ」であればウインドウズビットマップデータであり、「ｊｐｇ」であればｊｐｅｇ圧縮された画像データ、「ｔｉｆｆ」であればｔｉｆｆ形式の画像データであると判定できる。
【００４６】
画像データでなかった場合には、ステップＳ８０１０で生成された電子原稿ファイルを、現在開かれているブックファイルのブックに、新たな章として追加する（ステップＳ８０３０）。章属性としては、ブック属性と共通するものについてはブック属性の値がコピーされ、そうでないものについては、あらかじめ用意された規定値に設定される。
【００４７】
画像データである場合には、原則として新たな章は追加されず、指定されている章に、ステップＳ８０１０で生成された電子原稿ファイルに含まれる各原稿ページが追加される（ステップＳ８０４０）。ただし、ブックファイルが新規作成されたファイルであれば、新たな章が作成されて、その章に属するページとして電子原稿ファイルの各ページが追加される。ページ属性は、上位層の属性と共通のものについてはその属性値が与えられ、アプリケーションデータにおいて定義された属性を電子原稿ファイルに引き継いでいるものについてはその値が与えられる。例えば、Ｎｕｐ指定などがアプリケーションデータにおいてされていた場合には、その属性値が引き継がれる。このようにして、新規なブックファイルが作成され、あるいは、新規な章が追加される。
【００４８】
図５２は、図５１のステップＳ８０１０において、電子原稿ライタ１０２０により電子原稿ファイルを生成させる手順のフローチャートである。まず、新たな電子原稿ファイルを作成してそれを開く（ステップＳ９０１０）。指定したアプリケーションデータに対応するアプリケーションを起動し、電子原稿ライタをデバイスドライバとして、ＯＳの出力モジュールに対して出力コマンドを送信させる。出力モジュールは、受信した出力コマンドを電子原稿ライタによって電子原稿形式のデータに変換し、出力する（ステップＳ９０２０）。出力先はステップＳ９０１０で開いた電子原稿ファイルである。指定されたデータすべてについて変換が終了したか判定し（ステップＳ９０３０）、終了していれば電子原稿ファイルを閉じる（ステップＳ９０４０）。電子原稿ライタ１０２０によって生成される電子原稿ファイルは、図４６（Ｂ）に示した、原稿ページデータの実体を含むファイルである。
【００４９】
＜ブックファイルの編集＞
以上のようにして、アプリケーションデータからブックファイルを作成することができる。生成されたブックファイルについては、章及びページに対して次のような編集操作が可能である。
（１）新規追加
（２）削除
（３）コピー
（４）切り取り
（５）貼り付け
（６）移動
（７）章名称変更
（８）ページ番号名称振り直し
（９）表紙挿入
（１０）合紙挿入
（１１）インデックス紙挿入
（１２）各原稿ページに対するページレイアウト。
【００５０】
このほか、いったん行った編集操作を取り消す操作や、さらに取り消した操作をやり直す操作が可能である。これら編集機能により、例えば複数のブックファイルの統合、ブックファイル内で章やページの再配置、ブックファイル内で章やページの削除、原稿ページのレイアウト変更、合紙やインデックス紙の挿入などといった編集操作が可能となる。これらの操作を行うと、図４７乃至５に示す属性に捜査結果が反映されたり、あるいはブックファイルの構造に反映される。たとえば、ブランクページの新規追加操作を行えば、指定された箇所にブランクページが挿入される。このブランクページは原稿ページとして扱われる。また、原稿ページに対するレイアウトを変更すれば、その変更内容は、印刷方法やＮ−ｕｐ印刷、表紙／裏表紙、インデックス紙、合紙、章区切りといった属性に反映される。
【００５１】
＜ブックファイルの出力＞
以上のように作成・編集されるブックファイルは印刷出力を最終目的としている。利用者が図５３に示す製本アプリケーションのＵＩ画面１１０００からファイルメニューを選択し、そこから印刷を選択すると、指定した出力デバイスにより印刷出力される。この際、まず製本アプリケーション１０４０は、現在開かれているブックファイルからジョブチケットを作成して電子原稿デスプーラ１０５０に渡す。電子原稿デスプーラ１０５０は、ジョブチケットをＯＳの出力コマンド、例えばウインドウズのＧＤＩコマンドに変換し、それを出力モジュール、例えばＧＤＩに送信する。出力モジュールは、指定されたプリンタドライバ１０６０によってデバイスに適したコマンドを生成し、そのデバイスに送信する。
【００５２】
ジョブチケットは原稿ページを最小単位とする構造を有するデータである。ジョブチケットにおける構造は、用紙上における原稿ページのレイアウトを定義している。ジョブチケットは１ジョブにつき１つ発行される。そのため、まず最上位にドキュメントというノードがあり、文書全体の属性、例えば両面印刷／片面印刷などが定義されている。その下には、用紙ノードが属し、用いるべき用紙の識別子や、プリンタにおける給紙口の指定などの属性が含まれる。各用紙ノードには、その用紙で印刷されるシートのノードが属する。１シートは１枚の用紙に相当する。各シートには、印刷ページ（物理ページ）が属する。片面印刷ならば１シートには１物理ページが属し、両面印刷ならば１シートに２物理ページが属する。各物理ページには、その上に配置される原稿ページが属する。また物理ページの属性として、原稿ページのレイアウトが含まれる。
【００５３】
電子原稿デスプーラ１０５０は、上述のジョブチケットを、出力モジュールへの出力コマンドに変換する。
【００５４】
＜そのほかのシステム構成＞
本実施形態の文書処理システムの概要は以上のようなものである。これはスタンドアロン型のシステムであるが、これを拡張したサーバクライアントシステムでもほぼ同様の構成・手順でブックファイルが作成・編集される。ただし、ブックファイルや印刷処理はサーバによって管理される。
【００５５】
図５５はサーバクライアント型文書処理システムの構成を示すブロック図である。クライアント文書処理システムは、スタンドアロン型システムに、クライアントモジュールであるＤＯＭＳ（文書出力管理サービス）ドライバ１０９０およびＤＯＭＳプリントサービスモジュール１１００、ＤＳ（文書サービス）クライアントモジュール１０８０を加えた構成を有する。このクライアント文書処理システム１２０００に、文書管理サーバ１２０１０および印刷集中管理サーバ１２０２０およびプリントサーバ１２０３０が接続されている。これらサーバは、通常ネットワークによってクライアント文書処理システムと接続されるが、サーバが同時にクライアントとしても機能する場合には、ネットワーク間の通信をシミュレートするプロセス間通信によって接続される。なお図５５では文書管理サーバ１２０１０と印刷集中管理サーバ１２０２０の両サーバがクライアントに接続されているが、いずれか一方のみがネットワーク上に存在する場合もあり得る。接続されているサーバが文書管理サーバであれば、そのクライアントモジュールを含む文書管理サーバクライアントシステム１２０１０ＳＣが、印刷集中管理サーバ１２０２０であれば、そのクライアントモジュールを含む印刷管理サーバクライアントシステム１２０２０ＳＣが、スタンドアロン型文書管理システムに追加される。
【００５６】
文書管理サーバ１２０１０は、製本アプリケーション１０４０により作成・編集されたブックファイルを格納するサーバである。文書管理サーバ１２０１０によってブックファイルを管理する場合、ブックファイルは、クライアントＰＣのローカルＨＤに代わって、あるいはそれに加えて、文書管理サーバ１２０１０のデータベース１２１１０に保存される。製本アプリケーション１０４０と文書管理サーバ１２０１０との間のブックファイルの保存および読み出しは、ＤＳクライアント１０８０及びＤＳコア１２１２０を介して行われる。
【００５７】
印刷集中管理サーバ１２０２０は、クライアント文書管理システム１２０００に格納された、あるいは文書管理サーバ１２０１０に格納されたブックファイルの印刷を管理するサーバである。クライアントにおける印刷要求は、ＤＯＭＳドライバ１０９０およびＤＯＭＳプリントサービスモジュール１１００を介して印刷集中管理サーバ１２０２０のＤＯＭＳＷＧサーバモジュール１２２１０に送信される。集中印刷管理サーバ１２０２０は、クライアントのプリンタで印刷する場合にはクライアントのＤＯＭＳプリントサービスモジュール１１００を介して電子原稿デスプーラ１０５０に電子原稿データを渡し、プリントサーバ１２０３０により印刷する場合には、プリントサーバ１２０３０のＤＯＭＳプリントサービスモジュール１２０３０に送信する。集中印刷管理サーバは、例えば保存されているブックファイルに対して印刷要求を発行した利用者の資格などについてセキュリティチェックを行ったり、印刷処理のログを保存したりする。このように、文書処理システムは、スタンドアロンとしても、クライアントサーバシステムとしても実現できる。
【００５８】
＜プレビュー表示の内容＞
すでに説明したとおり、ブックファイルが製本アプリケーションによって開かれると、図５３に示すユーザインターフェース画面１１０００が表示される。ツリー部１１０１０には、開いているブック（以下、注目ブックと呼ぶ）の構造を示すツリーが表示される。プレビュー部には、利用者の指定に応じて、３通りの表示方法が用意されている。第１は原稿ページをそのまま表示する原稿ビューと呼ばれるモードである。原稿ビューモードでは、注目ブックに属する原稿ページの内容が縮小されて表示される。プレビュー部の表示にレイアウトは反映されない。第２は印刷ビューモードである。印刷ビューモードでは、プレビュー部１１０２０には、原稿ページのレイアウトが反映された形で原稿ページが表示される。第３は簡易印刷ビューモードである。簡易印刷ビューモードでは、各原稿ページの内容はプレビュー部の表示には反映されず、レイアウトのみが反映される。
【００５９】
以下、製本アプリケーション１０４０に関連した実施形態を説明する。
【００６０】
＜第１実施形態＞
以下、本発明を適用するのに好適な実施形態について説明を行う。図１は本発明の第１実施形態を示すプリンタ制御システムの構成を説明するブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ、ＷＡＮ等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。
【００６１】
図１において、ホストコンピュータ３０００は、ＲＯＭ１０３のプログラム用ＲＯＭあるいは外部メモリ１１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１０１を備え、システムバス４に接続される各デバイスをＣＰＵ１０１が総括的に制御する。また、このＲＯＭ１０３のプログラム用ＲＯＭあるいは外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等を記憶し、ＲＯＭ１０３のフォント用ＲＯＭあるいは外部メモリ１１１には上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ１０３のデータ用ＲＯＭあるいは外部メモリ１１１には上記文書処理等を行う際に使用する各種データを記憶する。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。
【００６２】
キーボードコントローラ（ＫＢＣ）１０５は、キーボード１０９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）１０６は、ＣＲＴディスプレイ（ＣＲＴ）１１０の表示を制御する。１０７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）１０８は、双方向性インタフェース（インタフェース）１２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。
【００６３】
なお、ＣＰＵ１０１は、例えば、ＲＡＭ１０２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１０１は、ＣＲＴ１１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【００６４】
プリンタ１５００は、ＣＰＵ１１２により制御される。プリンタＣＰＵ１１２は、ＲＯＭ１１３のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部メモリ１１４に記憶された制御プログラム等に基づいてシステムバス１１５に接続される印刷部（プリンタエンジン）１１７に出力情報としての画像信号を出力する。また、このＲＯＭ１１３のプログラムＲＯＭには、ＣＰＵ１１２の制御プログラム等を記憶する。ＲＯＭ１１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ＲＯＭ１１３のデータ用ＲＯＭには、ハードディスク等の外部メモリ１１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
【００６５】
ＣＰＵ１１２は入力部１１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知できる。ＲＡＭ１１９は、ＣＰＵ１１２の主メモリや、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１１４は、メモリコントローラ（ＭＣ）１２０によりアクセスを制御される。外部メモリ１１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、入力部１１８には前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００６６】
また、前述した外部メモリ１１４は１個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないＮＶＲＡＭを有し、操作パネル１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【００６７】
図２は、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されているホストコンピュータにおける典型的な印刷処理の構成図である。図２において、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１１に保存されたファイルとして存在し、実行される場合にＯＳやそのモジュールを利用するモジュールによってＲＡＭ１０２にロードされ実行されるプログラムモジュールである。また、アプリケーション２０１およびプリンタドライバ２０３は、外部メモリ１１１のＦＤや不図示のＣＤ−ＲＯＭ、あるいは不図示のネットワークを経由して外部ディスク１１のＨＤに追加することが可能となっている。外部メモリ１１１に保存されているアプリケーション２０１はＲＡＭ１０２にロードされて実行されるが、このアプリケーション２０１からプリンタ１５００に対して印刷を行う際には、同様にＲＡＭ１０２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００６８】
グラフィックエンジン２０２は、印刷装置ごとに用意されたプリンタドライバ２０３を同様に外部メモリ１１１からＲＡＭ１０２にロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。そして、アプリケーション２０１から受け取るＧＤＩ（Graphic Device Interface）関数からＤＤＩ（Device Driver Interface）関数に変換して、プリンタドライバ２０３へＤＤＩ関数を出力する。プリンタドライバ２０３は、グラフィックエンジン２０２から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えば、ＰＤＬ（Page Description Language）に変換する。変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ１０２にロードされたシステムスプーラ２０４を経てインタフェース１２１経由でプリンタ１５００へ印刷データとして出力される仕組みとなっている。
【００６９】
本実施形態の印刷システムは、図２で示すプリンタとホストコンピュータからなる印刷システムに加えて、更に図３に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【００７０】
図３は、図２のシステムを拡張したもので、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、一旦中間コードからなるスプールファイル３０３を生成する構成をとる。図２のシステムでは、アプリケーション２０１が印刷処理から開放されるのはプリンタドライバ２０３がグラフィックエンジン２０２からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図３のシステムでは、スプーラ３０２がすべての印刷命令を中間コードデータに変換し、スプールファイル３０３に出力した時点である。通常、後者の方が短時間で済む。
【００７１】
また、図３で示すシステムにおいては、スプールファイル３０３の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを１ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。
【００７２】
これらの目的のために、図２のシステムに対し、図３の様に中間コードデータでスプールする様、システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ２０３が提供するウインドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ１０２上あるいは外部メモリ１１１上に保管する。
【００７３】
以下、図３の詳細を説明する。図に示す通り、この拡張された処理方式では、グラフィックエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ３０１が受け取る。ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づくものである場合には、ディスパッチャ３０１は外部メモリ１１１に格納されているスプーラ３０２をＲＡＭ１０２にロードし、プリンタドライバ２０３ではなくスプーラ３０２へ印刷命令（ＤＤＩ関数）を送付する。
【００７４】
スプーラ３０２は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル３０３に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル（ＰＤＦ：Page Description File）と呼ぶ。また、スプーラ３０２は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定（Ｎｕｐ、両面、ステイプル、カラー／モノクロ指定等）をプリンタドライバ２０３から取得してジョブ単位のファイルとしてスプールファイル３０３に保存する。この時部単位に格納されている設定ファイルをジョブ設定ファイル（簡略してＳＤＦ：Spool Description Fileと呼ぶこともある）と呼ぶ。
【００７５】
このジョブ設定ファイルについては後述する。なお、スプールファイル３０３は外部メモリ１１１上にファイルとして生成するが、ＲＡＭ１０２上に生成しても構わない。更にスプーラ３０２は、外部メモリ１１１に格納されているスプールファイルマネージャ３０４をＲＡＭ１０２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を通知する。その後、スプールファイルマネージャ３０４は、スプールファイル３０３に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【００７６】
スプールファイルマネージャ３０４がグラフィックエンジン２０２を利用して印刷を行えると判断した際には、外部メモリ１１１に格納されているデスプーラ３０５をＲＡＭ１０２にロードし、デスプーラ３０５に対して、スプールファイル３０３に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。デスプーラ３０５はスプールファイル３０３に含まれる中間コードのページ描画ファイルをスプールファイル３０３に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、ＧＤＩ関数を再生成し、もう一度グラフィックエンジン２０２経由でＧＤＩ関数を出力する。
【００７７】
ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）がデスプーラ３０５からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、ディスパッチャ３０１はスプーラ３０２ではなく、プリンタドライバ２０３に印刷命令を送る。プリンタドライバ２０３はグラフィックエンジン２０２から取得したＤＤＩ関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。
【００７８】
更に、図３では、これまで説明した拡張システムに加えて、プレビューア３０６、設定変更エディタ３０７を配し、プレビュー、印刷設定変更、複数ジョブの結合を可能にした例を示している。印刷プレビュー、印刷設定変更、複数ジョブの結合を行うためには、まずユーザが図９に示すプリンタドライバのプロパティにおいて、「出力先の指定」を行う手段であるプルダウンメニューにおいて「ストア」を指定する必要がある。なお、プレビューだけをみたい場合は、出力先の指定として「プレビュー」を選択することによっても可能である。
【００７９】
このようにプリンタドライバのプロパティで設定されている内容は設定ファイルとしてＯＳが提供する構造体（Ｗｉｎｄｏｗｓ（登録商標）ＯＳでは、ＤＥＶＭＯＤＥと呼ばれる）に格納される。その構造体には、例えば、スプールファイル３０３に含まれる加工設定中にスプールファイルマネージャ３０４にストアを行うかどうかの設定が含まれており、スプールファイルマネージャ３０４がプリンタドライバを介して加工設定を読み込み、ストア指定がなされていた場合、前述したようにスプールファイル３０３にページ描画ファイルとジョブ設定ファイルとが生成・格納され、図１６のようにスプールファイルマネージャのウインドウ画面がポップアップされ、スプールファイル３０３にスプールされたジョブがリスト表示される。図１６には、４つのジョブがスプールされている例を示しており、メニューバーもしくは、そのすぐ下のメニューアイコンを押下することにより、ジョブの操作を行うことができる。
【００８０】
メニューバーとメニューアイコンの操作の数は同じである。操作種類としては、ジョブを選択した状態で、「印刷」、中間コードのスプールファイルをそのまま残して印刷を行わせる「セーブして印刷」、印刷設定を考慮したジョブの出力プレビューを見るための「プレビュー」、中間コードのスプールファイルを削除する「削除」、中間コードのスプールファイルのコピーを生成する「複製」、複数の中間コードのスプールファイルのジョブを結合して１つのジョブにする「結合」、結合ジョブを元の複数のジョブに分割する「分割」、単体ジョブもしくは結合ジョブの印刷設定（レイアウト設定やフィニッシング設定等）を変更する「ジョブ編集」、あるジョブの印刷順序を最初にする「先頭に移動」、あるジョブの印刷順序を１つ早くする「１つ上に移動」、あるジョブの印刷順序を１つ遅くする「１つ下に移動」、あるジョブの印刷順序を最後にする「最後に移動」の以上１１個の操作がある。スプールファイルマネージャのウインドウ画面（図１６）上で、ある単体ジョブもしくは結合ジョブのプレビュー指定がされた場合、外部メモリ１１１に格納されているプレビューア３０６をＲＡＭ１０２にロードし、プレビューア３０６に対して、スプールファイル３０３に記述された中間コードのジョブのプレビュー処理を行うように指示する。
【００８１】
プレビューア３０６はスプールファイル３０３に含まれる中間コードのページ描画ファイル（ＰＤＦ）を順次読み出し、スプールファイル３０３に格納されているジョブ設定ファイル（ＳＤＦ）に含まれる加工設定情報の内容に従って加工し、グラフィックエンジン２０２に対してＧＤＩ関数を出力し、グラフィックエンジン２０２が自身のクライアント領域に描画データを出力することによって、画面上の出力が可能となる。
【００８２】
グラフィックエンジン２０２は、指定された出力先に応じて適切なレンダリングを行うことが可能である。このことから、プレビューア３０６は、デスプーラ３０５同様に、スプールファイル３０３に含まれる中間コードをスプールファイル３０３に含まれる加工設定の内容に従って加工し、グラフィックエンジン２０２を利用して出力する方法で実現可能となる。このようにプリンタドライバで設定されている加工設定をジョブ設定ファイルとしてスプールファイル３０３に格納し、このジョブ設定ファイルに基づいてページ描画ファイルのデータを加工して出力することにより、実際の描画データがどのように印刷されるか、更には、Ｎｕｐ（Ｎページの論理ページを１ページの物理ページに縮小配置して印刷する処理）指定されている場合、両面印刷されている場合、製本印刷指定されている場合、スタンプが指定されている場合、それぞれに応じて、プリンタで出力されるものに近い印刷プレビューをユーザに提供することができる。なお、従来の文書作成等のアプリケーションソフトウェアが有しているプレビュー機能は、あくまでそのアプリケーションにおけるページ設定に基づいて描画しているため、プリンタドライバでの印刷設定が反映されず、実際に印刷出力されるプレビューをユーザに認識させることはできなかった。
【００８３】
上記のようにプレビュー処理を行うことにより、図１７のようにスプールファイル３０３に含まれる印刷の加工設定の大プレビューがプレビューア３０６によって画面上に表示され、その後、ユーザの非表示指示によって、プレビューア３０６がクローズされ、制御がスプールファイルマネージャのウインドウ画面（図１６）に移行する。
【００８４】
ユーザがプレビューア３０６によって表示された内容に従って、印刷を行う場合には、スプールファイルマネージャ３０４上で、「印刷」もしくは「セーブして印刷」を指示することにより印刷要求を発行する。印刷要求は前述したように、デスプーラ３０５によりジョブ設定ファイルに基づいてページ描画ファイルを加工してＧＤＩ関数を生成し、グラフィックエンジン２０２に伝えられ、ディスパッチャ３０１経由で、プリンタドライバ２０３に印刷命令が送られ、印刷が実行される。
【００８５】
次に、設定変更エディタ３０７を用いた設定変更について説明する。その実現方法としては、プレビュー同様、図９において「ストア」指定されたジョブに関して設定可能である。同様のフローによりスプールファイルマネージャ３０４がポップアップされ、スプールされたジョブがリスト表示される。スプールファイルマネージャのウインドウ画面（図１６）上で、「ジョブ編集」が指定され、設定変更指示がされた場合、外部メモリ１１１に格納されている設定変更エディタ３０７をＲＡＭ１０２にロードし、設定変更エディタ３０７に対して、現在またはデフォルトの加工設定の表示を行うように指示する。そして図１８のようなジョブ設定画面が表示される。
【００８６】
設定変更エディタ３０７は、「ジョブ編集」が指定されたジョブのジョブ設定ファイルをスプールファイル３０３から取得し、そのジョブ設定ファイルに指定されている設定項目に基づいて図１８のジョブ設定画面のデフォルト値を変更する。図１８に示す例では、「ジョブ編集」指定されたジョブのジョブ設定ファイルには、部数：１部、印刷方法：片面、ステイプル：なし、レイアウト：１ページ／枚等が指定されていることになる。
【００８７】
この設定変更エディタ３０７でもスプールファイル３０３に含まれる中間コードのページ描画ファイルをスプールファイル３０３に格納されているジョブ設定ファイルに含まれる加工設定の内容に従って加工し、グラフィックエンジン２０２を用いて自身のクライアント領域に出力することによって、図１８に示す画面上の小プレビュー出力が可能となる。
【００８８】
またここで、スプールファイル３０３に格納されているジョブ設定ファイルに含まれる加工設定の内容を変更、修正することが可能である。その際、プリンタドライバ２０３の設定可能な項目を設定変更エディタ３０７上のユーザインターフェースに持っていても、プリンタドライバ２０３自身のユーザインターフェースを呼び出しても構わない。図１８に示すように、分数、印刷方法（片面、両目、製本印刷）、ステイプル（サドルフィニッシャー等）、ページレイアウト、配置順等の指定ができ、また「詳細設定」を押下することにより、プリンタドライバで指定できる項目の大半を設定しなおすことが可能となる。ただし、解像度、グラフィックモード等の印刷品位に関する設定の変更は許可しないものとする。
【００８９】
ここで変更された変更項目は設定変更エディタ３０７上の認証要求に従い、変更が認証され、制御がスプールファイルマネージャ３０４に移行する。変更が認証されたものは、印刷設定の変更を保存することになるが、オリジナルのジョブ設定ファイルには保存せずに、ジョブ編集等で用いられるジョブ出力用設定ファイルを新たに生成して保存することになる。ジョブ出力用設定ファイルについての詳細は、図１０以降で後述する。
【００９０】
ユーザがプレビューア３０６での確認同様、設定変更内容に従って、印刷を行う場合には、スプールファイルマネージャ３０４上で、印刷要求を発行する。印刷要求はグラフィックエンジン２０２に伝えられ、ディスパッチャ３０１経由で、プリンタドライバ２０３に印刷命令が送られ、印刷が実行される。
【００９１】
また、スプールファイルマネージャのウインドウ画面（図１６）では、複数の印刷ジョブを結合し、一つの印刷ジョブとして印刷するように指定することが可能である。これも、プレビュー、設定変更同様、図９のプリンタドライバのプロパティにおいて出力先を「ストア」指定されたジョブが前提となる。
【００９２】
ユーザが印刷ジョブの結合を行う場合、まず、アプリケーション２０１からプリンタドライバ２０３を呼び出し、図９に示すようなユーザインターフェース上からストアを選択する。前記同様、この選択により、スプールファイル３０３にストアされ、図１６のようにスプールファイルマネージャのウインドウ画面（図１６）がポップアップされる。スプールされたジョブはスプールファイルマネージャのウインドウ上にリスト表示される。アプリケーション２０１から同様の操作をすることにより、スプールファイルマネージャ３０４上に複数ジョブのリスト表示がされることになる。
【００９３】
ここで、複数ジョブを選択し、「結合」が指定された場合、外部メモリ１１１に格納されている設定変更エディタ３０７をＲＡＭ１０２にロードし、設定変更エディタ３０７に対して、リスト上の先頭ジョブまたはデフォルトの加工設定の表示を行うように指示する。そして図１８のような結合設定画面が表示される。ここでは、設定変更エディタ３０７を結合設定画面として用いているが、別モジュールのものを用いても構わない。
【００９４】
この設定変更エディタ３０７は、スプールファイル３０３に含まれる中間コードのページ描画ファイルをスプールファイル３０３に格納されているジョブ設定情報に含まれる加工設定の内容に従って加工し、結合ジョブとして指定されたすべてのジョブに対して、グラフィックエンジン２０２を用いて自身のクライアント領域に出力することによって、画面上の出力を行う。その際、図１８に示すプレビュー領域に選択された全てのジョブの小プレビューが可能となる。また、結合ジョブを生成する際に、それぞれの単体ジョブのジョブ設定ファイルを拡張したジョブ出力用設定ファイルを生成する。このジョブ出力用設定ファイルは、ジョブ編集を行う際にも生成されるものであり、１つのジョブに対して１つできるものであり、結合ジョブの場合もまた１つ生成される。
【００９５】
ここではそれぞれのジョブに対して、結合する前の加工設定で表示することも、結合ジョブとして統一の加工設定に変更、修正して表示することも可能である。その際、プリンタドライバ２０３の設定可能な項目を設定変更エディタ３０７上のユーザインターフェースに持っていても、プリンタドライバ２０３自身のユーザインターフェースを呼び出しても構わない。
【００９６】
ここで結合されたジョブ及び変更された変更項目は、前述したように、設定変更エディタ３０７上の認証要求に従い、変更が認証され、制御がスプールファイルマネージャ３０４に移行する。これらの操作により、先に選択された複数ジョブは、スプールファイルマネージャのウインドウ上で一つの結合ジョブとして表示される。ユーザがプレビューア３０６での確認同様、設定変更内容に従って、印刷を行う場合には、スプールファイルマネージャ３０４上で、印刷要求を発行する。印刷要求はグラフィックエンジン２０２に伝えられ、ディスパッチャ３０１経由で、プリンタドライバ２０３に印刷命令が送られ、印刷が実行される。
【００９７】
図４は、プリンタ１５００の一例である両面印刷機能を有するカラーレーザプリンタの断面図である。このプリンタはホストコンピュータ３０００より入力した印刷データに基づいて得られる各色毎の画像データで変調されたレーザ光をポリゴンミラー３１により感光ドラム１５を走査して静電潜像を形成する。この静電潜像をトナー現像して可視画像を得、これを中間転写体９へ全色について多重転写してカラー可視画像を形成する。更に、このカラー可視画像を転写材２へ転写し、転写材２上にカラー可視画像を定着させる。以上の制御を行う画像形成部は、感光ドラム１５を有するドラムユニット、接触帯電ローラ１７を有する一次帯電部、クリーニング部、現像部、中間転写体９、用紙カセット１や各種ローラ３、４、５、７を含む給紙部、転写ローラ１０を含む転写部及び定着部２５によって構成されている。
【００９８】
ドラムユニット１３は、感光ドラム（感光体）１５と感光ドラム１５のホルダを兼ねたクリーニング機構を有するクリーナ容器１４とを一体に構成したものである。このドラムユニット１３はプリンタ本体に対して着脱自在に支持され、感光ドラム１５の寿命に合わせて容易にユニット交換可能に構成されている。上記感光ドラム１５はアルミシリンダの外周に有機光導電体層を塗布して構成し、クリーナ容器１４に回転可能に支持されている。感光ドラム１５は、図示しない駆動モータの駆動力が伝達されて回転するもので、駆動モータは感光ドラム１５を画像形成動作に応じて反時計回り方向に回転させる。感光ドラム１５の表面を選択的に露光させることにより静電潜像が形成されるように構成されている。スキャナ部３０では、変調されたレーザ光を、モータ３１ａにより画像信号の水平同期信号を同期して回転するポリゴンミラーにより反射し、レンズ３２、反射鏡３３を介して感光ドラムを照射する。
【００９９】
現像部は、上記静電潜像を可視画像化するために、イエロー（Ｙ）、マゼンダ（Ｍ）、シアン（Ｃ）の現像を行う３個のカラー現像器２０Ｙ、２０Ｍ、２０Ｃと、ブラック（Ｂ）の現像を行う１個のブラック現像器２１Ｂとを備えた構成を有する。カラー現像器２０Ｙ、２０Ｍ、２０Ｃ及びブラック現像器２１Ｂには、スリープ２０ＹＳ、２０ＭＳ、２０ＣＳ及び２１ＢＳと、これらスリープ２０ＹＳ、２０ＭＳ、２０ＣＳ、２１ＢＳそれぞれの外周に圧接する塗布ブレード２０ＹＢ、２０ＭＢ、２０ＣＢ及び２１ＢＢとがそれぞれ設けられる。また３個のカラー現像器２０Ｙ、２０Ｍ、２０Ｃには塗布ローラ２０ＹＲ、２０ＭＲ、２０ＣＲが設けられている。
【０１００】
また、ブラック現像器２１Ｂはプリンタ本体に対して着脱可能に取り付けられており、カラー現像器２０Ｙ、２０Ｍ、２０Ｃは回転軸２２を中心に回転する現像ロータリー２３にそれぞれ着脱可能に取り付けられている。
【０１０１】
ブラック現像器２１Ｂのスリープ２１ＢＳは感光ドラム１５に対して例えば、３００μｍ程度の微小間隔を持って配置されている。ブラック現像器２１Ｂは、器内に内蔵された送り込み部材によってトナーを搬送すると共に、時計回り方向に回転するスリープ２１ＢＳの外周に塗布ブレード２１ＢＢによって塗布するように摩擦帯電によってトナーへ電荷を付与する。また、スリープ２１ＢＳに現像バイアスを印加することにより、静電潜像に応じて感光ドラム１５に対して現像を行って感光ドラム１５にブラックトナーによる可視画像を形成する。
【０１０２】
３個のカラー現像器２０Ｙ、２０Ｍ、２０Ｃは、画像形成に際して現像ロータリー２３の回転に伴って回転し、所定のスリープ２０ＹＳ、２０ＭＳ、２０ＣＳが感光ドラム１５に対して３００μｍ程度の微小間隔を持って対向することになる。これにより所定のカラー現像器２０Ｙ、２０Ｍ、２０Ｃが感光ドラム１５に対向する現像位置に停止し、感光ドラム１５に可視画像が作成される。
【０１０３】
カラー画像形成時には、中間転写体９の１回転毎に現像ロータリー２３が回転し、イエロー現像器２０Ｙ、マゼンダ現像器２０Ｍ、シアン現像器２０Ｃ、次いでブラック現像器２１Ｂの順で現像処理がなされ、中間転写体９が４回転してイエロー、マゼンダ、シアン、ブラックのそれぞれのトナーによる可視画像を順次形成し、その結果フルカラー可視画像を中間転写体９上に形成する。
【０１０４】
中間転写体９は、感光ドラム１５に接触して感光ドラム１５の回転に伴って回転するように構成されたもので、カラー画像形成時に時計回り方向に回転し、感光ドラム１５から４回の可視画像の多重転写を受ける。また、中間転写体９は画像形成時に後述する転写ローラ１０が接触して転写材２を挟持搬送することにより転写材２に中間転写体９上のカラー可視画像を同時に多重転写する。中間転写体の外周部には、中間転写体９の回転方向に関する位置を検知するためのＴＯＰセンサ９ａ及びＲＳセンサ９ｂと、中間転写体に転写されたトナー像の濃度を検知するための濃度センサ９ｃが配置されている。
【０１０５】
転写ローラ１０は、感光ドラム１５に対して接離可能に支承された転写帯電器を備えたもので、金属軸を中抵抗発泡弾性体により巻回することによって構成されている。転写ローラ１０は、図４に実線で示すように中間転写体９上にカラー可視画像を多重転写している間は、カラー可視画像を乱さぬように下方に離開している。そして、上記中間転写体９上に４色のカラー可視画像が形成された後は、このカラー可視画像を転写材２に転写するタイミングに合わせてカム部材（不図示）により転写ローラ１０を図示点線で示す上方に位置させる。これにより転写ローラ１０は転写材２を介して中間転写体９に所定の押圧力で圧接すると共に、バイアス電圧が印加され、中間転写体９上のカラー可視画像が転写材２に転写される。
【０１０６】
定着部２５は、転写２を搬送させながら、転写されたカラー可視画像を定着させるものであり、転写材２を加熱する定着ローラ２６と転写材２を定着ローラ２６に圧接させるための加圧ローラ２７とを備えている。定着ローラ２６と加圧ローラ２７とは中空状に形成され、内部にそれぞれヒータ２８、２９が内蔵されている。即ち、カラー可視画像を保持した転写材２は定着ローラ２６と加圧ローラ２７とにより搬送されると共に、熱及び圧力を加えることによりトナーが表面に定着される。可視画像定着後の転写材２は、その後排紙ローラ３４、３５、３６によって排紙部３７へ排出して画像形成動作を終了する。
【０１０７】
クリーニング手段は、感光ドラム１５上及び中間転写体９上に残ったトナーをクリーニングするものであり、感光ドラム１５上に形成されたトナーによる可視画像を中間転写体９に転写した後の廃トナーあるいは、中間転写体９上に作成された４色のカラー可視画像を転写材２に転写した後の廃トナーは、クリーナ容器１４に蓄えられる。
【０１０８】
印刷される転写材（記録用紙）２は、給紙トレイ１から給紙ローラ３により取り出されて中間転写体９と転写ローラ１０との間に挟まれるようにして搬送されてカラートナー画像が記録され、定着部２５を通過してトナー像が定着される。片面印刷の場合には、案内３８が上方の排紙部に記録用紙を導くように搬送経路を形成するが、両面印刷に対しては、下方の両面ユニットに導くように経路を形成する。
【０１０９】
両面ユニットに導かれた記録用紙は、搬送ローラ４０によりトレイ１の下部（二点鎖線で示す搬送経路）に一旦送り込まれた後に逆方向に搬送され、両面トレイ３９に送られる。両面トレイ３９上では、用紙は給紙トレイ１に載置された状態とは表裏が逆になり、また搬送方向について前後が逆になっている。この状態で再びトナー像の転写、定着を再度行うことで、両面印刷ができる。
【０１１０】
図５は、スプーラ３０２における、スプールファイル３０３の生成におけるページ単位保存ステップの処理をフローチャートで示したものである。まずステップＳ５０１では、スプーラ３０２は、アプリケーションからグラフィックエンジン２０２を介して印刷要求を受け付ける。アプリケーションにおいては、図８に示すような印刷設定を入力するダイアログが表示され、このダイアログから入力された印刷設定がプリンタドライバよりスプーラ３０２に渡される。図８に示す設定入力ダイアログにおいては、８０１のような１物理ページにレイアウトする論理ページの数を決定するような設定項目等を含んでいる。
【０１１１】
ステップＳ５０２では、スプーラ３０２は、受け付けた印刷要求がジョブ開始要求か判定し、もしステップＳ５０２でジョブ開始要求であると判断した場合には、ステップＳ５０３に進み、スプーラ３０２は、中間データを一時的に保存するためのスプールファイル３０３を作成する。続いて、ステップＳ５０４では、スプーラ３０２は、スプールファイルマネージャ３０４へ印刷処理の進捗を通知し、続くステップＳ５０５でスプーラ３０２のページ数カウンタを１に初期化する。ここで、スプールファイルマネージャ３０４においては、印刷が開始されたジョブに対するジョブの情報や加工設定などをスプールファイル３０３より読み込み、記憶する。
【０１１２】
一方、ステップＳ５０２において、ジョブ開始要求ではなかったと判断した場合には、ステップＳ５０６に進む。ステップＳ５０６では、スプーラ３０２は、受け付けた要求がジョブ終了要求かどうかの判別を行う。ジョブ終了要求でないと判断した場合には、ステップＳ５０７に進み、改ページかどうかの判別を行う。もしもステップＳ５０７で改ページであると判断した場合には、ステップＳ５０８に進み、スプールファイルマネージャ３０４へ印刷処理の進捗を通知する。そしてページ数カウンタをインクリメントして、中間コードを格納しているページ描画ファイルを閉じ、次のページ描画ファイルを生成する。
【０１１３】
ステップＳ５０７において、受け付けた印刷要求が改ページではないと判断した場合には、ステップＳ５０９に進み、スプーラ３０２は、ページ描画ファイルへの中間コードの書き出しの準備を行う。次に、ステップＳ５１０では、印字要求をスプールファイル３０３へ格納するため、スプーラ３０２は、印字要求のＤＤＩ関数の中間コードへの変換処理を行う。ステップＳ５１１では、スプーラ３０２は、ステップＳ５１０において格納可能な形に変換された印刷要求（中間コード）をスプールファイル３０３のページ描画ファイルへ書き込む。その後、ステップＳ５０１に戻り、再びアプリケーションからの印刷要求を受け付ける。この一連のステップＳ５０１からステップＳ５１１までの処理を、アプリケーションよりジョブ終了要求（End Doc）を受け取るまで続ける。また、スプーラ３０２は、同時にプリンタドライバ２０３からＤＥＶＭＯＤＥ構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイルとしてスプールファイル３０３に格納する。
【０１１４】
一方、ステップＳ５０６にて、アプリケーションからの印刷要求がジョブ終了であると判断した場合には、アプリケーションからの印刷要求は全て終了であるので、ステップＳ５１２に進み、スプールファイルマネージャ３０４へ印刷処理の進捗を通知し、処理を終える。
【０１１５】
図６は、スプールファイルマネージャ３０４における、スプールファイル３０３生成プロセスと以降説明する印刷データ生成プロセスの間での制御の詳細をフローチャートで示したものである。図６において、ステップＳ６０１では、スプールファイルマネージャ３０４は、スプーラ３０２あるいはデスプーラ３０５からの印刷処理の進捗通知を受け付ける。ステップＳ６０２では、スプールファイルマネージャ３０４は、もし進捗通知が前述のステップＳ５０４において通知されるスプーラ３０２からの印刷開始通知であるかどうか判定し、もしそうであればステップＳ６０３へ進み、印刷の加工設定をスプールファイル３０３から読み込み、ジョブの管理を開始する。
【０１１６】
一方、ステップＳ６０２において、スプーラ３０２からの印刷開始通知でなければステップＳ６０４へ進み、スプールファイルマネージャ３０４は、進捗通知が前述のステップＳ５０８において通知されるスプーラ３０２からの１論理ページの印刷終了通知であるかどうか判定する。ここで１論理ページの印刷終了通知であればステップＳ６０５へ進み、この論理ページに対する論理ページ情報を格納する。そして、続くステップＳ６０６では、この時点でスプールが終了したｎ論理ページに対して、１物理ページの印刷が開始できるかを判定する。ここで、印刷可能である場合はステップＳ６０７へ進み、印刷する１物理ページに対して割り付けられる論理数から物理ページ番号を決定する。
【０１１７】
物理ページの計算については、例えば、加工設定が１物理ページに４論理ページを配置するような設定の場合、第１物理ページは第４論理ページがスプールされた時点で印刷可能となり、第１物理ページとなる。続いて、第２物理ページは第８論理ページがスプールされた時点で印刷可能となる。また、論理ページ数の総数が１物理ページに配置する論理ページ数の倍数でなくても、ステップＳ５１２におけるスプール終了通知によって１物理ページに配置する論理ページが決定可能である。
【０１１８】
ステップＳ６０８では、図１０に示すような形式で、印刷可能となった物理ページを構成する論理ページ番号と、その物理ページ番号などの情報がジョブ出力用設定ファイル（物理ページ情報を含むファイル）に保存され、物理ページ情報が１物理ページ分追加されたことがデスプーラ３０５に通知される。その後ステップＳ６０１に戻り、次の通知を待つ。本実施形態においては、印刷データ１ページ、即ち１物理ページを構成する論理ページがスプールされた時点で印刷ジョブのスプールが全て終了していなくても印刷処理が可能である。
【０１１９】
一方、ステップＳ６０４において、進捗通知がスプーラ３０２からの１論理ページの印刷終了通知でなかった場合ステップＳ６０９へ進み、スプールファイルマネージャ３０４は、前述のステップＳ５１２において通知されるスプーラ３０２からのジョブ終了通知であるかどうかを判定する。ここで、ジョブ終了通知である場合、前述のステップＳ６０６へ進む。一方、ジョブ終了通知でない場合、ステップＳ６１０へ進み、スプールファイルマネージャ３０４は、受け付けた通知がデスプーラ３０５からの１物理ページの印刷終了通知であるかどうか判定する。ここで、１物理ページの印刷終了通知である場合はステップＳ６１２へ進み、加工設定の印刷が全て終了したかを判定する。印刷終了した場合、ステップＳ６１２へ進み、デスプーラ３０５に印刷終了の通知を行う。
【０１２０】
一方、加工設定に対する印刷がまだ終了していないと判断した場合、前述の６０６へ進む。本実施形態におけるデスプーラ３０５は印刷処理を行う単位として１物理ページ数を想定している。また、ステップＳ６０８では、１物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしているが、再利用不要な場合には、共有メモリ等高速な媒体を使用し、１物理ページ単位で次々と上書きする実装にして、速度とリソースを節約するような実装形式であってもよい。また、デスプールの進捗よりもスプールの進捗の方が早い場合や全ページのスプール終了後からデスプールが開始されるような場合には、ステップＳ６０８で１物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じて、複数物理ページもしくは全物理ページが印刷可能になったという通知内容にして、通知回数を節約することが可能である。
【０１２１】
ステップＳ６１０において、通知がデスプーラ３０５からの１物理ページの印刷終了通知でないと判断された場合、ステップＳ６１３へ進み、スプールファイルマネージャ３０４は、デスプーラ３０５からの印刷終了通知かどうかを判定する。通知がデスプーラ３０５からの印刷終了通知と判定された場合、ステップＳ６１４へ進み、スプールファイルマネージャ３０４は、スプールファイル３０３の該当するページ描画ファイルの削除を行い処理を終える。ただし、一方、デスプーラ３０５からの印刷終了通知でなかった場合はステップＳ６１５へ進み、その他通常処理を行い、次の通知を待つ。
【０１２２】
図７は、デスプーラ３０５における、印刷データの生成プロセスの詳細をフローチャートで示したものである。図７において、デスプーラ３０５は、スプールファイルマネージャ３０４からの印刷要求に応じて、スプールファイル３０３から必要な情報（ページ描画ファイルおよびジョブ設定ファイル）を読み出して印刷データを生成する。生成された印刷データにおけるプリンタへの転送方法については図３で説明した通りである。
【０１２３】
印刷データの生成では、まず、ステップＳ７０１において、前述のスプールファイルマネージャ３０４からの通知を入力する。続くステップＳ７０２では、デスプーラ３０５は、入力された通知がジョブの終了通知かどうか判定し、ジョブ終了通知であるならばステップＳ７０３へ進み、終了フラグを立て、ステップＳ７０５へ進む。一方、ステップＳ７０２においてジョブ終了通知でない場合は、ステップＳ７０４に進み、前述のステップＳ６０８における１物理ページの印刷開始要求が通知されたかどうか判定する。ステップＳ７０４において開始要求と判定されなかった場合は、ステップＳ７１０へ進み、その他エラー処理を行い、ステップＳ７０１へ戻り次の通知を待つ。
【０１２４】
一方、ステップＳ７０４において１物理ページの印刷開始要求と判定された場合は、ステップＳ７０５へ進み、デスプーラ３０５は、ステップＳ７０４で通知を受けた印刷処理可能な物理ページのＩＤを保存する。続くステップＳ７０６では、デスプーラ３０５は、ステップＳ７０５で保存した物理ページＩＤのすべてのページに関して印刷処理が済んでいるかどうか判定する。ここで全物理ページの処理が済んでいる場合は、ステップＳ７０７へ進み、前述のステップＳ７０３で終了フラグが立てられているのか判定する。終了フラグがたっている場合は、ジョブの印刷が終了したとみなし、デスプーラ３０５の処理終了の通知をスプールファイルマネージャ３０４に通知し、処理を終える。ステップＳ７０７で、終了フラグが立っていないと判定された場合は、ステップＳ７０１へ戻り次の通知を待つ。
【０１２５】
一方、ステップＳ７０６で、印刷可能な物理ページが残っていると判定された場合には、ステップＳ７０８へ進み、デスプーラ３０５は、保存された物理ページＩＤから未処理の物理ページＩＤを順に読み出し、読み出した物理ページＩＤに対応する物理ページの印刷データ生成に必要な情報を読み込み、印刷処理を行う。印刷処理はスプールファイル３０３に格納された印刷要求命令をデスプーラ３０５においてグラフィックエンジン２０２が認識可能な形式（ＧＤＩ関数）に変換し、転送する。
【０１２６】
本実施形態のような、複数論理ページを１物理ページにレイアウトするような加工設定（以下Ｎページ印刷）については、このステップＳで縮小配置を考慮にいれながら変換する。必要な印刷処理が終えたならば、続くステップＳ７０９において１物理ページの印刷データ生成終了の通知をスプールファイルマネージャ３０４に対して行う。そして再びステップＳ７０６へ戻り、ステップＳ７０５で保存しておいた印刷可能な物理ページＩＤすべてについて印刷処理を行うまで繰り返す。
【０１２７】
以上が、ディスパッチャ３０１、スプーラ３０２、スプールファイルマネージャ３０４、デスプーラ３０５を用いた印刷処理の流れである。上記のように処理することにより、スプーラ３０２が中間コードを生成してスプールファイル３０３に格納するタイミングでアプリケーション２０１が印刷処理から開放されるので、プリンタドライバ２０３に直接出力するよりも短時間で済む。また、スプールファイル３０３にプリンタドライバの印刷設定を踏まえた中間ファイル（ページ描画ファイル、ジョブ設定ファイル）として一時保存しているので、実際に印刷されるべき印刷プレビューをユーザに認識させることや、複数のアプリケーションにより生成した印刷ジョブの結合や並び替えが可能となり、印刷設定の変更を行う場合にも、再度アプリケーションを立ち上げて印刷をすることなしにユーザに行わせることを可能とする。
【０１２８】
ここで、スプーラ３０２を用いた印刷処理において、デスプーラ３０５によりグラフィックエンジン２０２への印刷要求時にジョブ出力用設定ファイルが生成されるが、プレビューやジョブ結合等を行う場合もジョブ出力用設定ファイルが生成される。ジョブ出力用設定ファイルは、単体ジョブの場合はジョブ設定ファイルと同等のものであり、結合ジョブの場合は複数のジョブ設定情報に基づいて生成されるものである。ここでジョブ出力用設定ファイルについて説明する。
【０１２９】
図１０は、ステップＳ６０８において、スプールファイルマネージャ３０４が生成する印刷可能となった物理ページを構成する情報を保存しているジョブ出力用設定ファイルの例を示す。フィールド１００１は、ジョブを識別するためのＩＤで、本情報を保存しているファイル名や共有メモリの名称という形で保持することも可能である。フィールド１００２はジョブ設定情報である。ジョブ設定情報には、グラフィックエンジン２０２に対してジョブの印刷を開始するために必要な構造体、Ｎページ印刷の指定、ページ枠などの追加描画の指定、部数、ステイプルなどのフィニッシング指定など、１つのジョブに対して１つしか設定できない情報が含まれている。ジョブ設定情報１００２には、ジョブに対する機能に応じて必要なだけ情報が保存される。フィールド１００３はジョブの物理ページ数で、本フィールド以降、この数の分だけ物理ページ情報が保存されていることを示す。本実施形態では、印刷可能な物理ページ数を通知する方式であるので、このフィールドは無くても動作可能である。これ以降、フィールド１００４から最後までフィールド１００３の数だけ物理ページ情報が格納される。物理ページ情報については図１２で説明する。
【０１３０】
図１１は、図１０のフィールド１００２に図示されたジョブ設定情報の一例である。フィールド１１０１は全物理ページ数である。フィールド１１０２は、全論理ページ数である。フィールド１１０１および１１０２は、印刷データに追加して、ページ数などを付加情報として印刷する場合などに利用する。印刷が続いている際には、両フィールドは暫定的な値、もしくは、印刷が終了するまでスプールファイルマネージャ３０４は印刷可能な物理ページの情報の作成を延期する。フィールド１１０３は本印刷ジョブを何部印刷するかを指定する部数情報である。フィールド１１０４は、フィールド１１０３で複数部印刷する設定の場合、部単位で印刷するかどうかの指定である。フィールド１１０４はステイプル、パンチ、Ｚ折などのフィニッシング情報で、プリンタ本体もしくは外部にフィニッシャーがある場合に指定される。フィールド１１０６は付加印刷情報で、ページ枠などの飾り、日付などの付加情報、ユーザ名、ページ数、ウオーターマーク印刷等、ジョブに対して付加する情報が保存される。機能が増えるに従って本ジョブ設定情報に含まれるフィールドの数も増加し、例えば、両面印刷が可能な場合は、両面印刷の指定を保存するフィールドが追加される。
【０１３１】
図１２は、図１０のフィールド１００４に図示された物理ページ情報の一例を示す。最初のフィールド１２０１は物理ページ番号で、印刷順序の管理や、物理ページ番号を追加印刷する際に使用される値である。フィールド１２０２は物理ページ設定情報で、物理ページ毎にレイアウトやカラー・モノクロの指定が可能である場合、レイアウトやカラー・モノクロの設定が保存される。フィールド１２０３は本物理ページに割り付けられる論理ページ数で、１物理ページに４ページを割り付ける場合には４もしくは４ページ印刷を示すＩＤが保存される。フィールド１２０４以降はフィールド１２０３で指定された数だけ論理ページの情報が保存される。アプリケーション２０１から印刷されたページ数によっては、１２０３で指定されるページ数よりも実際のページデータ数が少なくなる場合がある。その場合には、論理ページ情報に空ページを示す特別なデータを保存して対応する。
【０１３２】
図１３は、１２０２の物理ページ設定情報の例である。フィールド１３０１は物理ページ上への論理ページの配置順で、Ｎページ印刷で、物理ページ上に論理ページを配置する順番（左上から横へ、左上から下へ等）の指定が保存されている。システムによっては、配置順ではなく、フィールド１２０４以降の論理ページ情報の順番をページ番号順ではなく、配置順に応じた順序で配することで１３０１の設定を代用する場合もある。フィールド１３０２は両面印刷の表・裏の情報で、例えば、綴じ代を表裏でそろえる際に使用される。
【０１３３】
フィールド１３０３はカラーページかモノクロページかの指定で、プリンタがモノクロモードとカラーモードを持つ場合、カラーページとモノクロページが混在する文書で、カラーページをカラーモードで、モノクロページをモノクロモードで印刷したい場合などに使用される値である。この情報を持つことにより、オートカラーモードとして、ページ単位にカラープリンタで処理を変更することが可能となる。つまり、カラーページは、中間転写体（中間転写ドラム、中間転写ベルト）もしくは転写体（転写ドラム、転写ベルト）がデバイスカラーの数分、ＹＭＣＫなら４回転し、モノクロページは、ブラックだけ１回転することにより転写制御することを可能とする。フィールド１３０４は付加印刷情報で、物理ページに対して、ページ数や、日付などの付加情報を印刷する場合に使用される。物理ページ設定情報も、システムの機能に応じてフィールドが追加される。
【０１３４】
図１４は、１２０４で示された論理ページ情報の一例を示す。フィールド１４０１は論理ページのＩＤで、このＩＤを利用して、スプールファイル３０３から論理ページに対応するページ描画ファイルの中間コードを参照する。このＩＤを利用して論理ページの中間コードへアクセス可能であれば良く、ファイルやメモリポインタであっても、論理ページを構成する中間コード自身が入っていてもよい。フィールド１４０２は論理ページ番号で論理ページ番号を付加情報として印刷する場合や、論理ページＩＤの補助情報に使用される。フィールド１４０３のフォーマット情報には、論理ページ単位で指定可能である各種設定項目が保存される。例えば、ページ枠などの付加印刷情報、拡縮率などの論理ページ単位に指定される各種設定の情報が保存される。また、必要であれば、論理ページ単位のカラー・モノクロ情報などの論理ページに対する属性情報を保存することも可能である。逆に、論理ページ単位で設定を切りかえることや論理ページ単位での属性情報が不要であるようなシステムでは、フィールド１４０３は不要である。
【０１３５】
ジョブ出力用設定ファイルは、上記のように構成されている。なお、ジョブ設定ファイルもほぼ同様であり、印刷体裁（片面、両面、製本印刷）、印刷レイアウト（Ｎｕｐ、ポスター印刷）、付加情報（ウォーターマーク、日付、ユーザ名の付加）、部数、用紙サイズ情報がジョブとして有しており、物理ページ毎に、論理ページの配置順、両面印刷の表面か、裏面か、カラーモード等から構成されている。
【０１３６】
更に、図３では、これまで説明した拡張システムに加えて、ジョブの設定変更機能を持つ設定変更エディタ３０７を配した例を示している。本実施形態ではジョブの設定内容は、単体ジョブは、ジョブ設定ファイルに、また結合ジョブは、図１０に示したジョブ出力用設定ファイル中に含まれており、中間コードを保存しているページ描画ファイル３０３とは独立しているため、ジョブ出力用設定ファイルを作り変えることでジョブの設定変更が可能である。設定変更エディタ３０７は単独で、あるいはスプールファイルマネージャ３０４と連携して、ジョブ出力用設定ファイルを作り変え、あるいは、一部を書き換えることでジョブの設定変更機能を実現している。
【０１３７】
図１５は、設定変更エディタ３０７におけるジョブ設定変更処理プロセスの詳細をフローチャートで示したものである。まずステップＳ１５０１では、設定変更エディタは、ジョブ設定ファイルもしくはジョブ出力用設定ファイルを読み込む。ジョブ出力用設定ファイルはプレビューア３０５、デスプーラ３０３が読み込むものと同じファイルである。次に、ステップＳ１５０２へ進み、読み込んだ結果を、ユーザに表示する。ステップＳ１５０３で、図１８に示したようなユーザインターフェース上で、ユーザとの対話を行い、前述したメニューの指定等により設定内容を変更する。このステップは、対話形式でなく、ファイルなどに書きこまれた設定変更の内容に応じて変更するバッチ形式でもよい。
【０１３８】
次にステップＳ１５０４へ進み、ステップＳ１５０１で設定変更エディタは、最初に読み込んだ内容と、現在指定されている設定内容に変更があったかどうかの判定を行う。設定内容に変更があった場合は、ステップＳ１５０５へ進み、新規のジョブ出力用設定ファイルを生成し、変更があったことをスプールファイルマネージャに通知して終了する。ステップＳ１５０４で、変更がないと判定された場合は、変更がなかったことをスプールファイルマネージャに通知して終了する。このように新規のジョブ出力用設定ファイルを生成するが、図１８のユーザインターフェース画面において、「ＯＫ」ボタンが選択されることにより、新規のジョブ出力用設定ファイルが有効となり、古いジョブ出力用設定ファイルは削除される。また、ジョブ出力用設定ファイルからの変更ではなく、単体ジョブのジョブ設定ファイルの場合は削除せずに保存しておく。
【０１３９】
また、図１８の画面で「初期状態に戻す」ボタンが選択された場合は、新規のジョブ出力用設定ファイルを削除し、古いジョブ出力用設定ファイルが有効となり、表示に反映させる。本実施形態では、設定変更エディタ３０７を別モジュールとして説明しているが、単にスプールファイルマネージャ３０４のユーザインターフェースの一部であってもよい。設定変更エディタ３０７で実際に変更内容をジョブ出力用設定ファイルに書きこまずに、設定変更の内容のみをスプールファイルマネージャ３０４へと通知するだけで、実際のジョブ出力用設定ファイルの変更はスプールファイルマネージャ３０４側で行う実装形式でもよい。
【０１４０】
図３では、更に、複数印刷ジョブを結合し、一つの印刷ジョブとして印刷する拡張システムが図示されているが、結合ジョブをデスプール・プレビューするための拡張について説明する。
【０１４１】
通常、中間形式のスプールファイル３０３はジョブ単位で作成される。単独ジョブの場合は、処理対象ジョブファイル中の各論理ページの中間コードを順に読み出して処理を行うので、フィールド１４０１の論理ページＩＤは、各論理ページがファイルのどこに位置しているのかを示す相対あるいは絶対オフセットで実現可能である。結合ジョブの場合はフィールド１４０１のジョブＩＤから、スプールファイルと、そのジョブに属するページ情報を特定する必要がある。本実施形態では、スプールファイルを識別するＩＤを論理ページＩＤに付加することで、スプールファイルを特定する方式とする。この場合、主な変更点はフィールド１４０１のみで済む。スプールファイルが識別できれば、ページ部分の読み込みは単独ジョブの処理と同じロジックで処理することが可能であるからである。また、スプールファイルが各論理ページ毎に別ファイルの形で保存されている場合は、論理ページのファイル名をそのままフィールド１４０１の論理ページＩＤとする実装形もある。
【０１４２】
図１９は、本発明で述べる製本印刷とその実現結果について説明したものである。製本印刷とは、紙の両面に出力された印刷結果を２つ折りにした結果、ページ順序があうように印刷するものである。これには、以下のような場合がある。
【０１４３】
１．印刷される全ページを製本の枚数単位とする場合
２．任意のページを製本の枚数単位とする場合
ここでいう製本の枚数単位とは、出力された用紙を何枚単位でまとめて２つ折りにして製本印刷をすればよいかをあらわす。また、図２０に示すように、製本印刷によって出力される製本の体裁には以下の場合がある。
【０１４４】
１．左から昇順にページ配置（左開き）
２．右から昇順にページ配置（右開き）
また、印刷されるページが横向きの場合も、ページの回転を行うだけで、ページの順序は変わらない。
【０１４５】
以下、製本印刷の処理について詳しく述べる。まず、図２５のフローチャートについて説明する。図２５において、ステップＳ２５０１において、ユーザが製本印刷の設定をしていればステップＳ２５０２へ進み、していなければ通常の印刷を行うとしてステップＳ２５０７へ進む。ステップＳ２５０２において、製本印刷の枚数単位に関する設定と印刷体裁に関する設定を取得する。印刷枚数単位の設定には以下の選択肢がある。
【０１４６】
１．印刷するページすべてをひとまとめにして製本印刷
２．指定された任意ページ単位をひとまとめにして製本印刷
また、印刷体裁の設定には以下の選択肢がある。
【０１４７】
１．左開き
２．右開き
ステップＳ２５０３において、製本印刷の枚数単位に全ページが選択されていればステップＳ２５０４へ進み、選択されていなければステップＳ２５０５へ進む。ステップＳ２５０４において、製本の枚数単位を印刷ページ全体に設定し、製本印刷を行う。この処理の詳細については後述する。
【０１４８】
ステップＳ２５０５において、製本印刷の枚数単位に特定の枚数が選択されていればステップＳ２５０６へ進み、選択されていなければステップＳ２５０７へ進む。ステップＳ２５０６において、指定された枚数単位で製本印刷を行う。この処理の詳細については後述する。ステップＳ２５０７において、通常の印刷処理を行う。
【０１４９】
以下に図２５におけるステップＳ２５０４に関する処理を、図２３を用いて詳しく説明する。その前に、処理の概要を、図２１を用いて説明する。
【０１５０】
一番上には、元となる印刷データが並んでいる。これを図１９に示すように二つ折りで製本する形式に配置する。折ることで、表裏合わせて４つの印刷可能な面ができるので、各面に２ページのデータを配置して印刷する場合の例を説明しているのが図２１である。まず、配置用の２次元配列（２×Ｎ）を用意する。２×Ｎとなっているのは、一つの面に２つのページデータを配置するからで、一つの面に４ページのデータを配置するならば、４×Ｎの配列を用意する。配列の大きさＮは、印刷データのページ数に応じて変わるので、十分大きなサイズの配列を確保するか、適宜配列のリサイズを行いながら処理を進める必要がある。
【０１５１】
印刷すべき順序に並んでいる元データを、配列用データに並べて行く。並べる様子は、一番上の元データと配列用データの間に線を引いて示している。次に、実際に印刷する際に、この配置用データから２ページのデータを取り出して、用紙上に配置、印刷する。印刷結果と配置データの関係は真中の配置データと一番下に示す印刷結果を見開いた模式図の間に矢印を引いて示している。このようにもとの印刷データと実際に用紙上に出力される位置の関係が定められる。
【０１５２】
この設定をするためのＧＵＩ例を図２８に示す。製本印刷の詳細を設定するダイアログに、２ページ印刷などのレイアウトを設定するためのコントロールおよびそのページ構成順序を設定するためのコントロールが付加されている。
【０１５３】
次に、図２３の説明をする。図２３において、ステップＳ２３０１において、印刷ページ数を取得する。この印刷ページはアプリケーションからの印刷データがすべてスプール終了した時点で取得可能である。ステップＳ２３０２において、印刷体裁を取得する。ステップＳ２３０３において、製本印刷の進捗カウンタを０にセットする。このカウンタが偶数のときに印刷されるページは折り込まれたときに内側になるように印刷され、奇数のときに印刷されるページは折り込まれたときに外側になるように印刷される。
【０１５４】
ステップＳ２３０４において、ページ配置用のデータを作成して使用する紙の枚数を求める。この処理の詳細については後述する。ステップＳ２３０５において２つ折りにしたとき一番内側になる用紙の内側に印刷されるデータ２面分を以下の式を用いて計算する。この２ページを元に以降印刷されるページを算出する。
【０１５５】
基本配置データ１＝用紙枚数×２
基本配置データ２＝用紙枚数×２＋１
ここの配置データは、図２１の中央に示すページ配置を決める際に使用したデータ配列である。図２１の例で言えば、基本配置データが３と求まった場合、配置用データ配列の３番目、つまり、元データの５ページと６ページが配置されるページである。
【０１５６】
例えば、アプリケーションから５０ページの印刷データが送られてきた場合は、図２１に示すように、一つの面上に２ページを印刷する指定の製本印刷の場合、製本印刷の結果使用する枚数は７枚となり、２つ折りしたときに折り込まれる用紙に印刷される基本配置データは、７×２＝１４番目と７×２＋１＝１５番目となる。
【０１５７】
ステップＳ２３０６において、製本印刷処理が終了した場合には処理を終え、終わっていなかった場合にはステップＳ２３０７へ進む。ステップＳ２３０７において、印刷要求を行う２ページを以下の式で計算する。
【０１５８】
印刷配置データ１＝基本配置データ１−進捗カウンタ
印刷配置データ２＝基本配置データ２＋進捗カウンタ
例えば、上の５０ページ製本印刷の場合は、次の出力は配置用配列の１４−１＝１３番目と１５＋１＝１６番目となる。以降進捗カウンタが増加するたびに１２番目と１７番目、１１番目と１８番目・・・となっていく。また、始めは進捗カウンタが０なので基本配置データが最初の印刷ページとなる。
【０１５９】
ステップＳ２３０６において、計算された印刷配置データ２がステップＳ２３０４で求めた配置用データの数より大きいかどうか判定し、大きくなった場合は余白扱いとなり、ステップＳ２３０９へ進む。大きくなければステップＳ２３１０へスキップする。ステップＳ２３０９において、印刷配置データ２は余白が配置されるので、例えば、余白をあらわすページ番号０を代入する。
【０１６０】
ステップＳ２３１０、ステップＳ２３１１およびステップＳ２３１３において、印刷体裁（左開きか右開きか）および進捗カウンタから（折り込んだ際に内側にくるか外側にくるか）から計算された２ページの配置を決定する。具体的には、内側外側の判定は印刷要求回数が偶数の場合内側、奇数の場合外側となる。
【０１６１】
左開きで折り込み内側になるページの場合ステップＳ２３１２へ進む
左開きで折り込み外側になるページの場合ステップＳ２３１４へ進む
右開きで折り込み外側になるページの場合ステップＳ２３１２へ進む
右開きで折り込み内側になるページの場合ステップＳ２３１４へ進む
ステップＳ２３１２において、印刷配置データ１を左側に、印刷配置データ２を右側に配置する。ステップＳ２３１４において、印刷配置データ１を右側に、印刷配置データ２を左側に配置する。ステップＳ２３１５において、印刷配置データの示すもとデータのページを印刷領域上に配置する。ステップＳ２３１６において、印刷進捗カウンタを１増加させる。ステップＳ２３１７において、次の印刷要求が可能かどうかを判定し、可能ならばステップＳ２３１８へ進み、不可能ならば次の印刷要求が可能になるまで待つ。ステップＳ２３１８において、配置完了した印刷ページに対して紙１面分の印刷要求を行う。ステップＳ２３１９において、次のページの出力要求が可能かどうか判定し、可能ならばステップＳ２３０６へ進み、可能でないならば可能になるまで待つ。
【０１６２】
以下に図２３におけるステップＳ２３０４に関する処理を、図２４を用いて詳しく説明する。図２３において、ステップＳ２４０１において、元となるデータを出力順に並べる。通常、アプリケーションから印刷された順に印刷するが、ページ順序を入れ替えられるようなシステムでは、この入れ替えた順序で並べる必要がある。ステップＳ２４０２において、配置データを取得する。図２１の場合、１つの配置可能領域に対して２ページ分のデータを配置するという指定がされているデータが取得される。
【０１６３】
ステップＳ２４０３において、ステップＳ２４０１で並べた元データを指し示すカウンタと、配置用データを差し示すカウンタとを先頭を指し示すように初期化する。ステップＳ２４０４において、元データを指し示すカウンタが元データ数を超えているかを判定する。元データ数を超えていれば全てのデータが配置用データに格納されたので処理を終えて戻る。そうでなければ、ステップＳ２４０５へと進む。ステップＳ２４０５において、元データ用のカウンタが指し示す先のデータを取り出す。一番最初は先頭を示しているので先頭ページが取り出される。ステップＳ２４０６において、取り出したデータを格納する先の配置用データがいっぱいかどうかを判定する。既に確保してある配置用データの配列がいっぱいに埋まっている場合は、ステップＳ２４０７へすすむ。まだ配置用データに余裕がある場合は、ステップＳ２４０８へ進む。
【０１６４】
ステップＳ２４０７において、配置用データを適宜サイズを増やす。ステップＳ２４０６〜２４０７は最初に十分大きなサイズの配置用データを確保している場合や、元データサイズが小さいことが分かっている場合には無くてもかまわない。ステップＳ２４０８において、配置用データのカウンタが指し示している領域にステップＳ２４０５で取り出した元データを格納する。ステップＳ２４０９において、元データのカウンタ、配置用データのカウンタをそれぞれインクリメントする。
【０１６５】
以下に図２５におけるステップＳ２５０６に関する処理を図２７を用いて詳しく説明する。ここでいう枚数単位とは何枚毎に折り込んで製本印刷を行うかを表している。例えば、アプリケーションからの４０ページの印刷データを一つの印刷領域に１ページずつ、２枚単位で製本印刷する場合、２つ折りした１つのブロックには８ページ分のデータが配置されることになる。よって、印刷データ全体を５ブロックに分けて製本印刷することになる。
【０１６６】
ステップＳ２７０１において、印刷体裁および枚数単位を取得する。ステップＳ２７０２において、印刷終了ページを０にセットする。ステップＳ２７０３において、製本印刷処理が終わりかどうか判定し、終了ならば処理を終え、終了でなければステップＳ２７０４へ進む。ステップＳ２７０４において、製本印刷処理可能になる印刷配置データ（製本印刷可能判定配置データ）を取得する。ステップＳ２７０４で求められる製本印刷可能判定配置データ数は、ブロック内の最大配置データ数となる。始めのブロックにおける製本印刷可能判定配置データ数は以下によって求められる。
【０１６７】
製本印刷可能判定配置データ＝枚数単位×４
第２ブロック以降については、製本印刷可能判定配置データ数は以下によって求められる。
【０１６８】
製本印刷可能判定ページ＝前のブロックの製本印刷可能判定ページ＋枚数単位×４
例えば、上記４０ページ２枚単位の製本印刷の場合、最初のブロックにおける製本印刷可能判定ページは２×４＝８ページとなり、次のブロックは８＋２×４＝１６ページとなる。以降２４ページ、３２ページ、４０ページとなっていく。
【０１６９】
ステップＳ２７０５において、スプールが終了しているページ数を取得する。ステップＳ２７０６において、製本印刷処理可能になる印刷配置データ（製本印刷可能判定配置データ）までスプール終了しているかあるいは全ページのスプールが終了しているかどうかを判定し、処理可能ならばステップＳ２７０７へ進み、可能でなければステップＳ２７０５へ戻る。
【０１７０】
ステップＳ２７０７において、進捗カウンタを０にセットする。ステップＳ２７０８において、２つ折りにしたとき一番内側になる用紙の内側に印刷される配置データ２つ分を以下の式を用いて計算する。この２配置データを元に以降印刷される配置データを算出する。
【０１７１】
基本配置データ１＝製本印刷可能判定配置データ−枚数単位×２＋１
基本配置データ２＝製本印刷可能判定配置データ−枚数単位×２
ステップＳ２７０９において、現在のブロックの印刷要求が終了したか判定し、終了ならばステップＳ２７０３へすすみ、終了していなければステップＳ２７１０へ進む。具体的には、進捗カウンタが枚数単位に等しくなった場合に印刷要求が終了したと判定する。ステップＳ２７１０において、印刷要求を行う２配置データを以下の式で計算する。
【０１７２】
印刷配置データ１＝基本配置データ１＋進捗カウンタ
印刷配置データ２＝基本配置データ２−進捗カウンタ
始めは進捗カウンタが０なので基本配置データが最初の印刷ページとなる。ステップＳ２７１１において、計算された印刷配置データが配置データのサイズより大きいかどうかを判定し、大きくなった場合は余白扱いとなり、ステップＳ２７１２へ進む。大きくなければステップＳ２７１３へスキップする。ステップＳ２７１２において、印刷ページは余白が配置されるので、例えば、余白をあらわすページ番号０を代入する。ステップＳ２７１３、ステップＳ２７１４およびステップＳ２７１６において、印刷体裁（左開きか右開きか）および進捗カウンタから（折り込んだ際に内側にくるか外側にくるか）から計算された２配置データの配置を決定する。具体的には、内側外側の判定は印刷要求回数が偶数の場合内側、奇数の場合外側となる。
【０１７３】
左開きで折り込み内側になるページの場合ステップＳ２７１５へ進む
左開きで折り込み外側になるページの場合ステップＳ２７１７へ進む
右開きで折り込み外側になるページの場合ステップＳ２７１５へ進む
右開きで折り込み内側になるページの場合ステップＳ２７１７へ進む
ステップＳ２７１５において、印刷配置データ１を左側に、印刷配置データ２を右側に配置する。ステップＳ２７１７において、印刷配置データ１を右側に、印刷配置データ２を左側に配置する。ステップＳ２７１８において、二つ折りのどちら側か決まった方の印刷可能領域に対して、印刷配置データ中の元データを配置する。ステップＳ２７１９において、印刷進捗カウンタを１増加させる。ステップＳ２７２０において、次の印刷要求が可能かどうかを判定し、可能ならばステップＳ２７２１へ進み、不可能なら次の印刷要求が可能になるまで待つ。ステップＳ２７２１において、配置完了した印刷ページに対して紙１面分の印刷要求を行う。この印刷要求の処理は、具体的には、デスプーラ３０５が、配置完了したページデータをスプールファイル３０３から読み出し、ＧＤＩ関数である描画データを再生成してグラフィックエンジン２０２に対して出力する処理に相当する。
【０１７４】
このように、製本の体裁時の１ページに相当する一つの印刷領域に対して、指定される任意の論理ページを配置した印刷データを生成することが可能となり、結果として、印刷装置で製本印刷される際に１ページに複数のページがレイアウトされる印刷物を得ることが可能となる。
【０１７５】
＜第２実施形態＞
全ページがスプール終了してから任意枚数単位の製本印刷処理を行う場合において、その最終ブロックに印刷されるページ数が少ない場合、最終ブロックに限り指定枚数より少ない枚数単位で製本印刷を行うことによって、使用する用紙を少なくすることが可能である。例えば、残り配置データ数が３個に対して枚数単位が２の場合、配置可能領域５個分が余白になってしまうが、これを１枚単位に変更した場合、余白は１配置領域分ですみ、用紙の枚数が１枚少なくてすむ。
【０１７６】
以降図２６によって最終ブロックの枚数調整処理について詳しく説明する。これは、印刷ページに対して必要以上に大きい枚数単位が指定された場合にも適用される。例えば、アプリケーションからの６０ページの印刷データを一つの配置可能領域（印刷可能領域）に２ページ配置し、用紙１０枚単位での分冊製本印刷が指定された場合、２ページ配置するため配置データは３０個となり用紙枚に対して４つの配置データが配置されるため、３０を４つに分けることにより、実際に必要な用紙枚数は８枚であることがわかる。よって本第２実施形態では、枚数単位は１０枚から８枚へ調整されることにより用紙枚数の節約を行う。なお、この処理は分冊製本印刷や複数ページ配置に限らず、まとめ製本印刷や論理ページを印刷可能領域全体に製本印刷する場合も同じ出力結果になる。
【０１７７】
以下の図２６の処理は、第２７図におけるステップＳ２７０６とステップＳ２７０７の間において処理することによって目的が達成される。図２６において、ステップＳ２６０１において、全ページのスプールが終了したかどうか判定し、終了していればステップＳ２６０２に進み、進んでいなければ処理を抜ける。ステップＳ２６０２において、残り配置データ数を以下の式で計算する。
【０１７８】
残り配置データ数＝配置データ数−現在の製本印刷可能判定配置データ数
ステップＳ２６０３において、現在設定されている枚数単位におけるブロックに収まる配置可能データ数と、残り配置データ数を比較して、残り配置データ数が少なければステップＳ２６０４へ進み、そうでなければ調整処理は必要ないとして処理を抜ける。ステップＳ２６０４において、残りページがおさまるもっとも小さい製本の枚数単位を以下の式によって求める。
【０１７９】
新しい製本枚数単位＝残り配置データ数÷４（小数点以下切り上げ）
よって、スプールファイルマネージャ３０４は、適する枚数を製本印刷の枚数として設定することになり、ユーザがプリンタドライバのＵＩを用いて最初に指定した枚数よりも少ない用紙枚数に配置された印刷データが生成されることになる。
【０１８０】
よって、本第２実施形態では、使用する用紙を少なくすることが可能になる。
【０１８１】
＜第３実施形態＞
配置方法を指定する際に、全てを統一した形式ではなく、配置可能な領域（１枚の用紙を二つ折りすると４つの領域となる）毎に異なる形式として指定できるようにしてもよい。この場合の配置決定は、図２３のステップＳ２３０４の処理を変更することで実現可能である。例えば、先頭ページを表紙として別に扱い、１領域に１ページで出力し、その他のページは各２ページずつを一つの配置可能な領域に配置するようなことも可能である。先頭ページを別扱いして、常に１つの領域に１ページを配置するような設定をすることが可能であるようなＧＵＩの例を図２９に示す。
【０１８２】
図２９のＧＵＩ例は、図２８のＧＵＩにさらに、カバーページを別扱いするかどうかを選択かのうであるようなチェックボックスコントロールが追加されている。このチェックボックスにチェックがなされている場合には、先頭ページを別として扱い、通常の１領域に１ページの印刷を行い、その他の部分に関しては、一つの領域に複数のページを配置するという設定をすることが可能である。図２２はこの場合の、配置データ作成の様子を示した図である。まず、元データを出力順に並べる。配置用データは、基本的に各２ページであるので２×Ｎの配列として確保する。そして、配置用データの先頭の第１領域に対して、元データの先頭ページの１ページを配置する。次の部分は飛ばして、配置用データの２つめに移り、配置用データの第１領域に元データの２ページ目、配置用データ２番目の第二領域に元データの３ページ目、配置用データの次に移り３番目の第１領域に元データの４ページ目という用に処理を続ける。このようにして作成した配置用データと、実際の出力の関係は、図２２の中央の配置用データと一番下の出力模式図の間に矢印で示している。
【０１８３】
本第３実施形態では、配置方法を指定する際に、全てを統一した形式ではなく、配置可能な領域毎に異なる形式を指定することができる。
【０１８４】
＜第４実施形態＞
一つの印刷領域に対して複数のページを配置するのとは逆に、見開きを構成するような複数の印刷領域をあわせて大きく一つの印刷領域として使用する配置方法を取ることも可能である。この場合のページ配置を定める方法を図３０に示す。図３０において、元のデータの第２ページ目を配置データの２番目と３番目に入れることで、見開きを大きく同じページのデータを出力することを指定する。この配置データを使用して印刷した場合の様子が一番下の図に示してある。元データと配置データの関連は実線で、配置データと出力結果の関連の様子は矢印でそれぞれ示してある。
【０１８５】
第４実施形態によれば、一つの印刷領域に対して複数のページを配置するのとは逆に、見開きを構成するような複数の印刷領域をあわせて大きく一つの印刷領域として使用する配置方法を取ることが可能となる。
【０１８６】
＜第５実施形態＞
本実施形態においては、製本印刷の見開きページを想定し、その両ページで左右が別の媒体（紙）でも、一続きの印刷情報、イメージ情報の連続性を維持しつつ、該当ページに所定の情報のレイアウト（貼り付け）することができるようにする、あるいは、表紙から裏表紙にかけてイメージが一続きになる製本を可能にする実施の形態を説明する。
【０１８７】
尚、説明において、上述の第１乃至第４実施形態の説明で使用した図面と共通する図面については、その図面を利用して説明するものとする。
【０１８８】
本実施形態の印刷システムは、図２で示すプリンタとホストコンピュータからなる印刷システムに加えて、更に、図３１に示すように、アプリケーション２０１からの印刷データを一旦、中間コードデータでスプール構成を有する。
【０１８９】
図３１は図２のシステムを拡張したもので、同図に示す通り、この拡張された処理方式では、グラフィックエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ３０１が受け取る。ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づくものである場合には、ディスパッチャ３０１は外部メモリ１１１に格納されているスプーラ３０２をＲＡＭ１０２にロードし、プリンタドライバ２０３ではなくスプーラ３０２へ印刷命令（ＤＤＩ関数）を送付する。
【０１９０】
スプーラ３０２は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル３０３に出力する。
【０１９１】
また、スプーラ３０２は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定（見開き製本印刷等）をプリンタドライバ２０３から取得してジョブ単位のファイルとしてスプールファイル３０３に保存する。
【０１９２】
なお、スプールファイル３０３は外部メモリ１１１上にファイルとして生成するが、ＲＡＭ１０２上に生成しても構わない。更にスプーラ３０２は、外部メモリ１１１に格納されているスプールファイルマネージャ３０４をＲＡＭ１０２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を通知する。その後、スプールファイルマネージャ３０４は、スプールファイル３０３に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【０１９３】
スプールファイルマネージャ３０４がグラフィックエンジン２０２を利用して印刷を行えると判断した際には、外部メモリ１１１に格納されているデスプーラ３０５をＲＡＭ１０２にロードし、デスプーラ３０５に対して、スプールファイル３０３に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。デスプーラ３０５はスプールファイル３０３に含まれる中間コードのページ描画ファイルをスプールファイル３０３に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、ＧＤＩ関数を再生成し、もう一度グラフィックエンジン２０２経由でＧＤＩ関数を出力する。
【０１９４】
ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）がデスプーラ３０５からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、ディスパッチャ３０１はスプーラ３０２ではなく、プリンタドライバ２０３に印刷命令を送る。プリンタドライバ２０３はグラフィックエンジン２０２から取得したＤＤＩ関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。
【０１９５】
ここで適用するシステムは、アプリケーション２０１で中間ファイルを読み込むことを前提としているので、ディスパッチャ３０１を設定せず直接スプーラ３０２へデータを送り、中間ファイルを作成する簡略化されたシステムでも良い。このシステムのほうが、処理が少なくなるので、リソースの消費が少ないなどの利点も多い。どちらの形式を利用するかは、システムの目的に応じて構成を変更することが可能である。
【０１９６】
図３２は、中間コードデータファイル（中間ファイル）のデータフォーマットの概略を説明する図である。レイアウト処理がしやすいように、ページごとに大きくグループ化されている。
【０１９７】
中間ファイルのヘッダ情報として、ページ数、ユーザ情報などの文書全体で必要となるような情報が保持される。その後にページ情報が続き、ページ情報として、ページIDと、ファイルアクセス方法やファイルフォーマットの実装の自由度を高めるために、実際のデータとの関連付けをするリンク情報を保持する。ページ情報は、この内容に限るものではなく、その他製本印刷において必要な情報をページ情報として保持することができる。
【０１９８】
各ページ情報が個別に格納された後に、実際のページデータ（１〜Ｎ）が格納される。このページデータには、ページ毎のデータが、例えば、元の一つ一つの図形や文字列のデータ、が保持される。
【０１９９】
また、中間ファイルの生成は、種々のアプリケーションから生成された印刷情報に限るものではなく、スキャナなどの外部機器から取り込まれた画像ファイルを利用することも可能である。この場合、取り込まれた画像データを中間ファイル形式に合うようにヘッダ情報を付加して直接取り込むことも可能であり、また、画像データを印刷し、スプーラ３０２経由で中間ファイル形式に変換してから読み込むことも可能である。
【０２００】
次に、印刷情報のレイアウトにおいて、見開きで１つのまとまりとなる原稿を見開きページに分割するページ分割の概念を図３３を用いて説明する。ここでは、カタログのように見開きの２面を利用して１つの大きなページを表示する場合を想定している。図３３（ａ）の「LR」と書かれたページが原稿ページである。これを見開きに配置するために、原稿ページを左右に２等分しているのが図３３（ｂ）である。例えば、原稿ページがA3、Landscapeのサイズである場合、分割後の各ページのサイズはA4、Portraitの原稿が２枚（２ページ分）となる。
【０２０１】
原稿ページを分割して処理するために、分割データを表現するページ情報（ページ分割の属性がつけられたデータ）の例を図３４に示す。元となるページを特定するためのページＩＤは共通となる。ページ分割として２分割を想定しているため、分割した右側か左側かを示すデータがページ情報に追加されている。実際のページデータは共通であるので、リンク情報として同一のページデータを指し示すことでデータの重複を防ぐことが可能である。
【０２０２】
中間ファイルとして格納されているデータのうち、ページＩＤの共通性、分割情報の有無によって、そのデータが通常のデータであるか、分割されたデータであるかを識別することが可能である。
【０２０３】
このページ分割は、印刷形式を製本印刷として指定された場合に実行されるものであり、中間ファイルデータには分割に関する分割情報（右側のデータか左側にデータか）と、実データの指定、共通データの指示等が、分割単位のページで管理される。
【０２０４】
ホストコンピュータ３０００は、その印刷データの処理において、データが分割データであると識別すると、実データへのリンク情報に基づき実データを特定して、所定の形態によりレイアウト処理を実行する。
【０２０５】
ページが分割されたデータを、所定の記憶媒体にレイアウト（貼り付け）するための位置座標の対応づけを図３５を用いて説明する。図３５は、ページを分割する属性がつけられたページデータのレイアウトの概念を示す図である。この図では、A3、Landscapeの原稿ページをA4、Portraitの用紙にレイアウトする方法を示している。原稿ページの左半分を表現する場合、原稿ページの座標と用紙座標の対応づけは以下のようになる。
【０２０６】
原稿ページの左上を用紙の左上に、同じく原稿ページの左下を用紙の左下に、そして、原稿ページの上辺の中央を用紙の右上に、原稿ページの下辺の中央を用紙の右下というように、座標の関係付けを行ない配置する。
【０２０７】
原稿ページの右半分を示す場合も同様に、原稿ページの座標と用紙座標の対応は、原稿ページの上辺中央と用紙左上、原稿ページ下辺中央と用紙左下、原稿ページの右上と用紙の右上、そして原稿ページ右下と用紙の右下となる。
【０２０８】
実際には、原稿の縦横比と用紙の縦横比が異なるため、微調整をする場合がある。現在流通しているプリンタのほとんどは、用紙上に描画できない領域があるが、これを考慮に入れるとさらに処理は複雑になる。
【０２０９】
図３６はA3、Landscapeの原稿ページ（図３６（ａ））を２分割した左側を、A4、Portrait用紙のプリンタの描画領域を考慮に入れてレイアウトする場合の例を示す図である。図３６（ｂ）で、外側実線が用紙サイズの外形を示し、内側の実線がその描画可能な領域である。原稿ページ、図３６（ａ）の中央部に印刷されている図形である「○（丸印）」が、図３６（ｂ）の描画可能な領域の関係で、丸印の右側の欠けが多くなっていることがわかる。このように、分割の切り取り線（図３６（ａ）中央の一点鎖線）付近に描かれている図形は描画領域の関係で、単純にページを分割して、そのデータを貼り付けただけでは、原稿データで描画されているデータを完全に分割した領域に描画することができなくなり、データの欠落が生じてしまう。本実施形態では、この欠けを防ぐために、以下の調整を行ってレイアウト制御を行なう。
【０２１０】
図３７は、レイアウト制御のためにページを分割する際、用紙サイズと描画領域との関係で、描画することができない領域近くに配置されるデータの欠落を防止するための３種類の調整を示している。
【０２１１】
調整（１）は描画位置を平行移動して調整する方式である。「平行移動」とは、製本印刷において、綴じ代部分を確保するために、ページデータの配置位置を綴じ代等の印刷形式の影響を受けない位置にシフトしてデータの欠落を防止するレイアウトの態様である。移動の調整において、実線の矩形３７ａは用紙サイズを示し、内側の矩形３７ｂは、その用紙の描画領域を示す。また、点線の矩形３７ｃは調整後の原稿の描画位置を示している。用紙サイズと描画領域との関係で、描画することができない幅寸法３７ｅ（製本印刷した場合の綴じ代）に相当する幅を平行移動させて、分割前に原稿ページの描画範囲となっていた部分を確保するように調整するものである。単に描画データをずらしているので、データの表示位置は全体に左に寄って描画されることになる。
【０２１２】
調整（２）は、配置するデータを縮小により描画領域に収める方式で、描画領域に収まるように縮小することで、描画領域を示す部分と、調整後の原稿の描画位置とが重なったような表示となっている（３７ｄ）。この調整による場合、用紙の左右方向へのずれはないが、描画するデータの大きさ（寸法）が、縮小により変わってしまうことになる。
【０２１３】
調整（３）は平行移動（１）と縮小（２）とを組合わせたハイブリッド型による調整方式である。
【０２１４】
いずれの場合も完全に欠けを防ぐようにするか、多少欠けを許容して、原稿のイメージをできるだけ保存するか、また、どの方法を採用するかは、システムの用途・目的によって異なる。すべてを自動化せずに、どの方法を採用するかをユーザに選択させることも可能である。
【０２１５】
図３８は、原稿ページ３８２０の分割（ページの泣き別れ）を示す図であり、分割されたページが連続した領域に配置される場合の配置例を示している。２UP印刷などと呼ばれる印刷では、ページの１面に複数の原稿ページを配置することが可能であるが、分割された原稿が連続した形で並べて配置された場合、従来技術では、レイアウト３８２０ように二つの分割ページデータはばらばらに無関係のデータとして配置される。この場合、左側を描画する際には、左半分のページサイズに相当する範囲でクリップ処理を行い、右側にかかる描画データが印刷されないようにする必要がある。
【０２１６】
本実施形態におけるレイアウト制御では、生成され、若しくは読み取りにより生成されたデータをページ単位に分割する場合、分割ページとして管理する分割情報を、中間データに付与し、この情報に基づきレイアウト制御においてデータの貼り付けの制御が行なわれる。１ページ内に複数ページの情報をレイアウトする場合、それぞれのデータが分割されたデータであるかどうかを、分割情報に基づき識別をする。分割されたデータが１ページ内にレイアウトされる場合は、この分割情報に基づきデータの関連付けが行なわれ、それぞれの実データのリンクからレイアウト３８３０のように表示させること、すなわち、原稿３８２０を復元することが可能となる（泣き別れのページの復元処理）。
【０２１７】
図３９は、製本印刷を実行する場合に対して、本実施形態を適用した場合の例を示す図である。製本印刷とは、用紙の中央を折ることで、表裏４つの面を構成し、その４面にデータを印刷して本のように扱える出力物を作成する印刷形態である。一度に折りたたむ用紙の枚数を２枚とした場合、それぞれの分冊単位では４面ｘ２枚で８ページ分の原稿を印刷することになる。
【０２１８】
図３９は、２枚の用紙を中央で折り曲げて製本する場合の例を示す図で、（ａ）は製本した背表紙側から見た状態を示す図であり、（ｂ）は製本した内側から見た状態を示す図である。１枚目の用紙３９１０の印刷面には、背表紙側に（８ページ目，１ページ目）の情報が印刷されることとなり、その裏側に（２ページ目，７ページ目）の情報が印刷されることとなる。同様に、２枚目の用紙３９２０の印刷面には、（６ページ目、３ページ目）の情報が印刷されることとなり、その裏側に（４ページ目，５ページ目）の情報が印刷されることとなる。
【０２１９】
ここで、原稿の２ページ目、３ページ目が分割されたページとすると、本発明を適用した場合、製本結果において見開きを構成し、すなわち連続した領域に配置されることを検出し、見開きで表示したときに、分割前の原稿イメージに近くなるように、配置することが可能となる。
【０２２０】
このように、本実施形態にかかるレイアウト方法は、分割ページが配置される用紙が、NUP印刷のように同一用紙の同一面上だけでなく、用紙の裏表や、異なる用紙上に配置される場合でも適用することが可能である。
【０２２１】
図４１に、ページを分割する場合の処理の流れを示すフローチャートを示す。
【０２２２】
まず、ステップＳ４１１０で、分割する対象のページを特定して、ページ分割の指定を行う。この場合の「指定」とは、ユーザが特定のページを指定して分割する方法でも、自動的にページの分割を設定することにしてもよい。自動的な分割とは、例えば、A4とA3の原稿が混在している場合に、A3の原稿をすべてA4に分割するような処理である。
【０２２３】
次に、ステップＳ４１２０処理を進め、ステップＳ４１１０でページ分割が指定された分割対象のページに対して、分割後のレイアウト制御のために、ページ情報を作成する。このページ情報の作成には、図３４に示すような分割の属性を示すデータ構造を作成し、その分割にかかるページ情報を他のページ情報と識別するためのページIDを書き込む処理を行なう。ページIDを共通にするデータは、その元となる（原稿）データの共通性を示すものである。
【０２２４】
次にステップＳ４１３０に処理を進め、ステップＳ４１２０で作成したページ情報と、実ページデータとの間に関連付けを行なう（リンクを張る）。このとき、同一のページデータに対してリンクを張る方法ならばリソース使用量は削減できるが、ページ削除処理で一方のページのみが削除されたような場合に、実データが削除可能かどうかを判定する必要がある等、処理が複雑になる。実データもコピーする場合は、リソース使用量が増えるが、処理は簡単である。また、左半分にのみ出現するデータおよび分割線上に出現するデータを抜き出して左ページのデータとすることも可能である。この場合、領域判定が必要となり分割処理に時間的なコストがかかることになる。いずれの方法であってもレイアウトは適用可能である。
【０２２５】
次に、ステップＳ４１４０に進み、ページ情報に分割情報を設定する。図３３に示す分割方法をとる場合、図３４に示すように、右側半分もしくは左側半分であることを示すようなフラグをセットする。原稿がPortraitで、上下に分割する場合には、上半分／下半分を示すフラグをセットすればよい。３分割する場合は、右／中／左、もしくは上／中／下のようなフラグというように分割方法に応じたフラグをセットすればよい。この分割情報と、ステップＳ４１２０で処理したページIDとに基づき、分割の内容を特定することができる。
【０２２６】
次にステップＳ４１５０に処理を進め、新たに作成した分割後のページをそれぞれ単独のページとして管理できるようにする。
【０２２７】
そしてステップＳ４１６０に処理を進め、分割前のページを分割後のページで置き換える。すなわち、ステップＳ４６００の処理を完了することにより、元となる原稿データは、個別のページデータ単位で管理することが可能となり、その個別の管理データに基づき、レイアウトを実行すれば、元の原稿データは復元可能となる。
【０２２８】
図３３で示すような管理情報を保持している場合に、第２ページ目を左右に分割した場合のデータの例を図４０に示す。図中にあるように、中間ファイルの構造としては、原稿ページの第２ページ目を分割する処理により、分割されたそれぞれがページ単位に管理されることとなる。すなわち、分割にかかる情報が、２ページ目と３ページ目のページ情報としてそれぞれ右側、左側を示す分割情報を保持して格納される。
【０２２９】
分割後のページ情報は、分割の属性を示すデータを除き、通常のページ情報と同じ形式で管理されるので、分割にかかるページであってもレイアウトの方式によっては区別なく扱うことも可能である。図４０におけるページ情報１は通常のページデータを示し、ページ情報２及び３はそれぞれ分割にかかるページ情報であり、その内容として分割の属性を示すフラグ情報（例えば、原稿データの左側か、右側のデータを特定する情報）を有する。実際にレイアウトする場合には、分割ページ相互間の関連性を維持する必要があり、その関連性の有無は分割情報及びページIDにより判断される。
【０２３０】
実際に、ページ単位に管理されているデータに基づいてレイアウトをする場合の処理の流れを図４２に示す。ステップＳ４２１０でページの配置順を決定する。これは、NUP印刷の場合、１枚目の用紙の表面には、右側、左側にそれぞれどのページを配置するかというレベルの配置順指定であり、細かな座標指定の準備段階である。この段階で、どのページと、どのページが隣接するかなどが確定する。
【０２３１】
次にステップＳ４２２０に処理を進め、ページの分割情報に基づき、隣接しているのが分割ページかどうかを判断する。単なる２UP印刷であれば隣の２ページ分のデータで判定可能であるが、４UPの場合には、上の２つ、下の二つ、右側の二つ・・・というように、４つの配置をすべて調べる必要がある。９UP１６UPと増えた場合もすべてを調べる必要がある。しかし、必要なのは分割属性を持つページだけなので調べるべきパターンはある程度限定可能である。
【０２３２】
ステップＳ４２２０で分割ページ同士が並んでいないと判定された場合は（Ｓ４２４０−Ｎｏ）、特別なレイアウトをする必要がないので、ステップＳ４２４０に進み、通常のレイアウト処理を行い描画位置やサイズを確定する。
【０２３３】
ステップＳ４２２０の処理で分割されたページが隣接していると判断された場合には（Ｓ４２２０−Ｙｅｓ）、処理をステップＳ４２３０へ進め、その隣接ページが泣き別れのページの復元処理が必要かを判断する。
【０２３４】
本来であれば、あるページを左右に分割してできた２ページの右側が相対的に右側、左半分が相対的に左側に位置する場合には復元処理が可能である。システムによっては、同一ページを分割したことを判定に入れない場合もある。この場合には、異なるページのデータがひとつのページと判断してもよい。また、もっと簡単に、分割されたページであれば常に復元処理を行う場合もある。
【０２３５】
ステップＳ４２３０で泣き別れのページに該当し、復元処理が可能であると判断された場合には（Ｓ４２３０−Ｙｅｓ）、図３８にあるように分割前のイメージとなるように位置や大きさをレイアウトする。ステップＳ４２３０で、泣き別れのページに該当しない、若しくは、元のデータのように復元する必要がないと判断された場合には（Ｓ４２３０−Ｎｏ）、ステップＳ４２６０へ処理を進め、図３７で説明したような、分割ページのレイアウト制御を行う。
【０２３６】
図３８のレイアウト３８３０のように元ページのイメージを復元することが可能である場合には、左右それぞれでクリップをかけて印刷するのではなく、もともと１ページのデータとして描画することも可能である。このような処理をする場合には、ページデータ自体を左右で分割するようなデータ量削減処理をしていないことが前提となる。
【０２３７】
図４３は図４２のステップＳ４２６０の処理を具体的に示すフローチャートである。図３７では、ページ単位のレイアウト処理として、（１）移動、（２）縮小、（３）縮小と移動の組合わせ、の３つの態様によりレイアウト処理をすることが可能であることを説明したが、そのレイアウト処理の具体的な処理は、図４３の各ステップの処理に基づくことになる。
【０２３８】
ステップＳ４３１０では、中間ファイルとしてページ単位に管理されているページデータと、レイアウトしようとするページの印刷可能領域とを比較する。その結果に基づき、ステップＳ４３２０で、ページデータが印刷可能領域にレイアウト可能か否かを判断する。レイアウト可能か否かの判断は、単純にページデータの貼り付けができるか否かに限られず、例えば、分割したページデータをレイアウトした場合に、データの欠落が生じるか否かも含めて判断する。
【０２３９】
ステップＳ４３１０での判断に基づき、レイアウトが可能と判断された場合（Ｓ４３２０−Ｙｅｓ）、処理をステップＳ４３３０に進め、通常のページレイアウトを実行する。
【０２４０】
一方、ステップＳ４３２０の判断に基づき、そのページデータが印刷可能な領域に収まらないと判断された場合は、ステップＳ４３４０以降のページレイアウトを制御する処理に移行する。ステップＳ４３４０ではページレイアウトをデータの平行移動より制御することが可能か否かを判断する。「平行移動」とは、図３７の「（１）移動」を説明する図で示したように、製本印刷において、綴じ代部分（例えば３７ｅの幅）を確保するために、ページデータの配置位置を左側にシフトしてデータの欠落を防止するレイアウトの態様である。
【０２４１】
ステップＳ４３４０で、平行移動させても、印刷可能領域にページデータを収めることができないと判断された場合、例えば、図３７の「（１）移動」を説明する図で、左側にページデータをシフトした場合に、ページ中央部の「○」印は印刷可能領域の収めることができるようになるが、左側にあるページデータが欠落する場合もある。このように平行移動によってもページデータを十分にレイアウトすることができない場合は（ステップＳ４３４０−Ｎｏ）、処理をステップＳ４３６０に処理を進める。
【０２４２】
平行移動が可能な場合は（ステップＳ４３４０−Ｙｅｓ）、処理をステップＳ４３５０に進め、ページデータを平行移動させたレイアウト制御を実行する（Ｓ４３５０）。
【０２４３】
ステップＳ４３７０において、レイアウト条件（縮小の条件）が重畳して与えられているか否かを判断し、縮小のレイアウト条件が課されている場合は、処理をステップＳ４３８０に進める。重畳した条件が与えられていない場合は、そのまま処理を終了する。
【０２４４】
ステップＳ４３６０で縮小が可能と判断された場合は（Ｓ４３６０−Ｙｅｓ）、ページデータを縮小したレイアウトページ制御が実行される（Ｓ３４８０）。
【０２４５】
図４３の各ステップの処理によらず、オペレータは、その分割ページのレイアウト方式を直接に指定することも可能である（Ｓ４３８５、Ｓ４３９０）。
【０２４６】
また、各ステップにより設定され、若しくはオペレータにより選択されたレイアウト条件、例えば、平行移動のシフト量、縮小の倍率等は、ホストコンピュータ側のメモリ（１０２、１０３）に格納され、印刷情報全体に統一して反映させることができる。
【０２４７】
本実施形態によれば、原稿ページを分割して、分割されたページの関連性を保持しつつ複数の個別のページとして管理し、製本印刷におけるデータの復元、データの欠落を防ぐレイアウト制御が可能となる。
【０２４８】
＜他の実施形態＞
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（複写機、プリンタ、ファクシミリ装置など）に適用してもよい。
【０２４９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムモジュールを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムモジュールを読出し実行することによっても、達成される。
【０２５０】
この場合、記憶媒体から読み出されたプログラムモジュール自体が前述した実施形態の機能を実現することになり、そのプログラムモジュールを記憶した記憶媒体は本発明を構成することになる。
【０２５１】
プログラムモジュールを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０２５２】
また、コンピュータが読み出したプログラムモジュールを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムモジュールの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０２５３】
さらに、記憶媒体から読出されたプログラムモジュールが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムモジュールの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
また、ホストコンピュータに本発明を適用することにより製本の体裁をなす印刷物における各印刷領域に対して、複数の印刷ページデータを配置した印刷物を得るための印刷データを生成することが可能になる。
【０２５４】
また、本発明によれば、用紙に印刷した結果を製本した場合の１ページ上にさらに複数の印刷データページを組み合わせて指定できる配置データを入力できるので、ユーザが望む配置方式を選択することが可能にする。
【０２５５】
また、他の発明によれば、前記入力手段は、１ページ上の複数ページデータの配置順を入力できるので、ユーザが望む配置方式を選択することが可能になる。
【０２５６】
また、本発明によれば、表紙のレイアウトと表紙以外の面のレイアウトとで異なる配置データを入力できるので、より高度にユーザが望む配置方式を選択することが可能になる。
【０２５７】
また、本発明によれば、見開き面を一つの印刷領域としてデータを出力させる指定ができるので、より高度にユーザが望む配置方式を選択することが可能になる。
【０２５８】
また、本発明にかかる、印刷制御装置及び方法によれば、原稿ページを分割して、分割されたページの関連性を保持しつつ複数の個別のページとして管理し、製本印刷におけるデータの復元、データの欠落を防ぐレイアウト制御が可能となる。
【０２５９】
また、本発明によれば、表紙、及び裏表紙、あるいは見開きサイズに対するレイアウトの面付け制御を容易に実行することが可能となる。
【０２６０】
また、本発明によれば、原稿ページが縮小レイアウトされる際の倍率値のばらつきを防止し、均一な倍率での印刷結果を得ることが可能となる。  
【図１】
2011034592.tif 000003
【図２】
2011034592.tif 000004
【図３】
2011034592.tif 000005
【図４】
2011034592.tif 000006
【図５】
2011034592.tif 000007
【図６】
2011034592.tif 000008
【図７】
2011034592.tif 000009
【図８】
2011034592.tif 000010
【図９】
2011034592.tif 000011
【図１０】
2011034592.tif 000012
【図１１】
2011034592.tif 000013
【図１２】
2011034592.tif 000014
【図１３】
2011034592.tif 000015
【図１４】
2011034592.tif 000016
【図１５】
2011034592.tif 000017
【図１６】
2011034592.tif 000018
【図１７】
2011034592.tif 000019
【図１８】
2011034592.tif 000020
【図１９】
2011034592.tif 000021
【図２０】
2011034592.tif 000022
【図２１】
2011034592.tif 000023
【図２２】
2011034592.tif 000024
【図２３】
2011034592.tif 000025
【図２４】
2011034592.tif 000026
【図２５】
2011034592.tif 000027
【図２６】
2011034592.tif 000028
【図２７】
2011034592.tif 000029
【図２８】
2011034592.tif 000030
【図２９】
2011034592.tif 000031
【図３０】
2011034592.tif 000032
【図３１】
2011034592.tif 000033
【図３２】
2011034592.tif 000034
【図３３】
2011034592.tif 000035
【図３４】
2011034592.tif 000036
【図３５】
2011034592.tif 000037
【図３６】
2011034592.tif 000038
【図３７】
2011034592.tif 000039
【図３８】
2011034592.tif 000040
【図３９】
2011034592.tif 000041
【図４０】
2011034592.tif 000042
【図４１】
2011034592.tif 000043
【図４２】
2011034592.tif 000044
【図４３】
2011034592.tif 000045
【図４４】
2011034592.tif 000046
【図４５】
2011034592.tif 000047
【図４６】
2011034592.tif 000048
【図４７】
2011034592.tif 000049
【図４８】
2011034592.tif 000050
【図４９】
2011034592.tif 000051
【図５０】
2011034592.tif 000052
【図５１】
2011034592.tif 000053
【図５２】
2011034592.tif 000054
【図５３】
2011034592.tif 000055
【図５４】
2011034592.tif 000056
【図５５】
2011034592.tif 000057