(57)【特許請求の範囲】
【請求項１】
印刷装置に送信すべき印刷データを生成する情報処理装置であって、
アプリケーションにより生成された印刷すべきデータを中間コード形式の印刷ジョブに変換し、該印刷すべきデータの印刷設定情報と関連付けて一時保存する中間コード変換手段と、
前記中間コード変換手段により変換された複数の異なる印刷すべきデータに対応する複数の中間コード形式の印刷ジョブを結合して１つの結合ジョブにする結合指示をする結合指示手段と、
前記結合指示手段により複数の印刷ジョブを１つの結合ジョブにする結合指示がなされた場合に、前記一時保存されている当該複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない設定内容が当該複数の印刷ジョブで異なっているかを判断する判断手段と、
前記判断手段により１つの印刷ジョブに対して１つしか設定できない設定内容が複数の印刷ジョブで異なっていると判断された場合に、当該設定内容を統一する旨の確認メッセージを表示する確認メッセージ表示手段と、
前記確認メッセージ表示手段により前記確認メッセージを表示した後で、１つの印刷ジョブに対して１つしか設定できない設定内容を統一した結合ジョブ用の印刷設定情報を生成する設定統一手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記確認メッセージ表示手段は、前記結合対象の複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない情報が異なる場合に、当該設定を統一するか、印刷ジョブの結合を行わないかを選択させるよう確認するための確認メッセージを表示することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記中間コード形式の印刷ジョブは、ページ単位のページ描画ファイルとして一時保存されていることを特徴とする請求項１乃至２記載の情報処理装置。
【請求項４】
前記結合ジョブ用の印刷設定情報は、物理ページにレイアウトされるページ描画ファイルを指定する情報が付加されていることを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記印刷設定情報は、印刷ジョブ単位の印刷設定ファイルとして一時保存されていることを特徴とする請求項１乃至４記載の情報処理装置。
【請求項６】
前記印刷ジョブもしくは前記結合ジョブの印刷設定情報に基づいたプレビューを表示するよう制御するプレビュー表示制御手段を更に有することを特徴とする請求項１乃至５記載の情報処理装置。
【請求項７】
前記結合ジョブ内の複数の印刷ジョブを操作し、印刷ジョブの順序を入れ替える順序制御手段を更に有することを特徴とする請求項１乃至６記載の情報処理装置。
【請求項８】
前記結合ジョブ内の複数の印刷ジョブを操作し、特定の印刷ジョブの削除を行うジョブ削除手段を更に有することを特徴とする請求項１乃至７記載の情報処理装置。
【請求項９】
前記結合ジョブに対して、結合前の複数の印刷ジョブへ分割するジョブ分割手段を更に有することを特徴とする請求項１乃至８記載の情報処理装置。
【請求項１０】
前記印刷ジョブもしくは前記結合ジョブを指定させ、指定された印刷ジョブの複製を作成するジョブ複製手段を更に有することを特徴とする請求項１乃至９記載の情報処理装置。
【請求項１１】
前記印刷ジョブもしくは前記結合ジョブは、印刷設定情報に基づいて、当該ジョブの基となる中間コード形式のデータ作成時の初期状態の戻す設定初期化手段を更に有することを特徴とする請求項１乃至１０記載の情報処理装置。
【請求項１２】
前記印刷ジョブもしくは前記結合ジョブ内の論理ページに対して、指定するページの削除を行うページ編集手段を更に有することを特徴とする請求項１乃至１１記載の情報処理装置。
【請求項１３】
前記中間コード変換手段により一時保存された中間コード形式のデータに基づいて、前記印刷装置に送信すべき印刷データを生成する印刷データ生成手段を更に有することを特徴とする請求項１乃至１２記載の情報処理装置。
【請求項１４】
前記中間コード変換手段により一時保存された中間コード形式のデータをＯＳの描画手段で解釈可能な描画命令に変換して出力する描画命令生成手段と、
前記アプリケーションからＯＳの描画手段を介して受け取った印刷命令は前記中間データ変換手段に渡し、前記描画命令生成手段からＯＳの描画手段を介して受け取った印刷命令は前記印刷データ生成手段に渡す印刷命令割り振り手段とを更に有することを特徴とする請求項１３記載の情報処理装置。
【請求項１５】
前記描画命令はＧＤＩ関数であり、前記印刷命令はＤＤＩ関数であり、前記印刷データはプリンタ言語であることを特徴とする請求項１４記載の情報処理装置。
【請求項１６】
印刷装置に送信すべき印刷データを生成する情報処理装置における情報処理方法であって、
アプリケーションにより生成された印刷すべきデータを中間コード形式の印刷ジョブに変換し、該印刷すべきデータの印刷設定情報と関連付けて一時保存する中間コード変換工程と、
前記中間コード変換工程で変換された複数の異なる印刷すべきデータに対応する複数の中間コード形式の印刷ジョブを結合して１つの結合ジョブにする結合指示をする結合指示工程と、
前記結合指示工程により複数の印刷ジョブを１つの結合ジョブにする結合指示がなされた場合に、前記一時保存されている当該複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない設定内容が当該複数の印刷ジョブで異なっているかを判断する判断工程と、
前記判断工程で１つの印刷ジョブに対して１つしか設定できない設定内容が複数の印刷ジョブで異なっていると判断された場合に、当該設定内容を統一する旨の確認メッセージを表示する確認メッセージ表示工程と、
前記確認メッセージ表示工程で前記確認メッセージを表示した後で、１つの印刷ジョブに対して１つしか設定できない設定内容を統一した結合ジョブ用の印刷設定情報を生成する設定統一工程と、
を含むことを特徴とする情報処理方法。
【請求項１７】
前記確認メッセージ表示工程は、前記結合対象の複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない情報が異なる場合に、当該設定を統一するか、印刷ジョブの結合を行わないかを選択させるよう確認するための確認メッセージを表示することを特徴とする請求項１６記載の情報処理方法。
【請求項１８】
前記中間コード形式の印刷ジョブは、ページ単位のページ描画ファイルとして一時保存されていることを特徴とする請求項１６乃至１７記載の情報処理方法。
【請求項１９】
前記結合ジョブ用の印刷設定情報は、物理ページにレイアウトされるページ描画ファイルを指定する情報が付加されていることを特徴とする請求項１８記載の情報処理方法。
【請求項２０】
前記印刷設定情報は、印刷ジョブ単位の印刷設定ファイルとして一時保存されていることを特徴とする請求項１６乃至１９記載の情報処理方法。
【請求項２１】
前記印刷ジョブもしくは前記結合ジョブの印刷設定情報に基づいたプレビューを表示するよう制御するプレビュー表示制御工程を更に含むことを特徴とする請求項１６乃至２０記載の情報処理方法。
【請求項２２】
前記結合ジョブ内の複数の印刷ジョブを操作し、印刷ジョブの順序を入れ替える順序制御工程を更に含むことを特徴とする請求項１６乃至２２記載の情報処理方法。
【請求項２３】
前記結合ジョブ内の複数の印刷ジョブを操作し、特定の印刷ジョブの削除を行うジョブ削除工程を更に含むことを特徴とする請求項１６乃至２２記載の情報処理方法。
【請求項２４】
前記結合ジョブに対して、結合前の複数の印刷ジョブへ分割するジョブ分割工程を更に含むことを特徴とする請求項１６乃至２３記載の情報処理方法。
【請求項２５】
前記印刷ジョブもしくは前記結合ジョブを指定させ、指定された印刷ジョブの複製を作成するジョブ複製工程を更に含むことを特徴とする請求項１６乃至２４記載の情報処理方法。
【請求項２６】
前記印刷ジョブもしくは前記結合ジョブは、印刷設定情報に基づいて、当該ジョブの基となる中間コード形式のデータ作成時の初期状態の戻す設定初期化工程を更に含むことを特徴とする請求項１６乃至２５記載の情報処理方法。
【請求項２７】
前記印刷ジョブもしくは前記結合ジョブ内の論理ページに対して、指定するページの削除を行うページ編集工程を更に含むことを特徴とする請求項１６乃至２６記載の情報処理方法。
【請求項２８】
前記中間コード変換工程により一時保存された中間コード形式のデータに基づいて、前記印刷装置に送信すべき印刷データを生成する印刷データ生成工程を更に含むことを特徴とする請求項１６乃至２７記載の情報処理方法。
【請求項２９】
前記中間コード変換工程により一時保存された中間コード形式のデータをＯＳの描画手段で解釈可能な描画命令に変換して出力する描画命令生成工程と、
前記アプリケーションからＯＳの描画手段を介して受け取った印刷命令は前記中間データ変換工程に渡し、前記描画命令生成工程からＯＳの描画手段を介して受け取った印刷命令は前記印刷データ生成工程に渡す印刷命令割り振り工程とを更に含むことを特徴とする請求項２８記載の情報処理方法。
【請求項３０】
前記描画命令はＧＤＩ関数であり、前記印刷命令はＤＤＩ関数であり、前記印刷データはプリンタ言語であることを特徴とする請求項２９記載の情報処理方法。
【請求項３１】
印刷装置に送信すべき印刷データを生成する情報処理装置において実行されるコンピュータ読み取り可能なプログラムが格納された記憶媒体であって、
アプリケーションにより生成された印刷すべきデータを中間コード形式の印刷ジョブに変換し、該印刷すべきデータの印刷設定情報と関連付けて一時保存する中間コード変換工程と、
前記中間コード変換工程で変換された複数の異なる印刷すべきデータに対応する複数の中間コード形式の印刷ジョブを結合して１つの結合ジョブにする結合指示をする結合指示工程と、
前記結合指示工程により複数の印刷ジョブを１つの結合ジョブにする結合指示がなされた場合に、前記一時保存されている当該複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない設定内容が当該複数の印刷ジョブで異なっているかを判断する判断工程と、
前記判断工程で１つの印刷ジョブに対して１つしか設定できない設定内容が複数の印刷ジョブで異なっていると判断された場合に、当該設定内容を統一する旨の確認メッセージを表示する確認メッセージ表示工程と、
前記確認メッセージ表示工程で前記確認メッセージを表示した後で、１つの印刷ジョブに対して１つしか設定できない設定内容を統一した結合ジョブ用の印刷設定情報を生成する設定統一工程と、
を含むことを特徴とするコンピュータ読み取り可能なプログラムが格納された記憶媒体。
【請求項３２】
前記確認メッセージ表示工程は、前記結合対象の複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない情報が異なる場合に、当該設定を統一するか、印刷ジョブの結合を行わないかを選択させるよう確認するための確認メッセージを表示することを特徴とする請求項３１記載の記憶媒体。
【請求項３３】
前記中間コード形式の印刷ジョブは、ページ単位のページ描画ファイルとして一時保存されていることを特徴とする請求項３１乃至３２記載の記憶媒体。
【請求項３４】
前記結合ジョブ用の印刷設定情報は、物理ページにレイアウトされるページ描画ファイルを指定する情報が付加されていることを特徴とする請求項３３記載の記憶媒体。
【請求項３５】
前記印刷設定情報は、印刷ジョブ単位の印刷設定ファイルとして一時保存されていることを特徴とする請求項３１乃至３４記載の記憶媒体。
【請求項３６】
前記印刷ジョブもしくは前記結合ジョブの印刷設定情報に基づいたプレビューを表示するよう制御するプレビュー表示制御工程を更に含むことを特徴とする請求項３１乃至３５記載の記憶媒体。
【請求項３７】
前記結合ジョブ内の複数の印刷ジョブを操作し、印刷ジョブの順序を入れ替える順序制御工程を更に含むことを特徴とする請求項３１乃至３６記載の記憶媒体。
【請求項３８】
前記結合ジョブ内の複数の印刷ジョブを操作し、特定の印刷ジョブの削除を行うジョブ削除工程を更に含むことを特徴とする請求項３１乃至３７記載の記憶媒体。
【請求項３９】
前記結合ジョブに対して、結合前の複数の印刷ジョブへ分割するジョブ分割工程を更に含むことを特徴とする請求項３１乃至３８記載の記憶媒体。
【請求項４０】
前記印刷ジョブもしくは前記結合ジョブを指定させ、指定された印刷ジョブの複製を作成するジョブ複製工程を更に含むことを特徴とする請求項３１乃至３９記載の記憶媒体。
【請求項４１】
前記印刷ジョブもしくは前記結合ジョブは、印刷設定情報に基づいて、当該ジョブの基となる中間コード形式のデータ作成時の初期状態の戻す設定初期化工程を更に含むことを特徴とする請求項３１乃至４０記載の記憶媒体。
【請求項４２】
前記印刷ジョブもしくは前記結合ジョブ内の論理ページに対して、指定するページの削除を行うページ編集工程を更に含むことを特徴とする請求項３１乃至４１記載の記憶媒体。
【請求項４３】
前記中間コード変換工程により一時保存された中間コード形式のデータに基づいて、前記印刷装置に送信すべき印刷データを生成する印刷データ生成工程を更に含むことを特徴とする請求項３１乃至４２記載の記憶媒体。
【請求項４４】
前記中間コード変換工程により一時保存された中間コード形式のデータをＯＳの描画手段で解釈可能な描画命令に変換して出力する描画命令生成工程と、
前記アプリケーションからＯＳの描画手段を介して受け取った印刷命令は前記中間データ変換工程に渡し、前記描画命令生成工程からＯＳの描画手段を介して受け取った印刷命令は前記印刷データ生成工程に渡す印刷命令割り振り工程とを更に含むことを特徴とする請求項４３記載の記憶媒体。
【請求項４５】
前記描画命令はＧＤＩ関数であり、前記印刷命令はＤＤＩ関数であり、前記印刷データはプリンタ言語であることを特徴とする請求項４４記載の記憶媒体。
【請求項４６】
印刷装置に送信すべき印刷データを生成するコンピュータ読み取り可能なプログラムであって、
アプリケーションにより生成された印刷すべきデータを中間コード形式の印刷ジョブに変換し、該印刷すべきデータの印刷設定情報と関連付けて一時保存する中間コード変換用プログラムコードと、
前記中間コード変換工程で変換された複数の異なる印刷すべきデータに対応する複数の中間コード形式の印刷ジョブを結合して１つの結合ジョブにする結合指示をする結合指示用プログラムコードと、
前記結合指示用プログラムコードにより複数の印刷ジョブを１つの結合ジョブにする結合指示が発行された場合に、前記一時保存されている当該複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない設定内容が当該複数の印刷ジョブで異なっているかを判断する判断用プログラムコードと、
前記判断用プログラムコードにより１つの印刷ジョブに対して１つしか設定できない設定内容が複数の印刷ジョブで異なっていると判断された場合に、当該設定内容を統一する旨の確認メッセージを表示する確認メッセージ表示用プログラムコードと、
前記確認メッセージ表示用プログラムコードにより前記確認メッセージを表示した後で、１つの印刷ジョブに対して１つしか設定できない設定内容を統一した結合ジョブ用の印刷設定情報を生成する設定統一用プログラムコードと、
を含むことを特徴とするコンピュータ読み取り実行可能なコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および情報処理方法およびコンピュータ読み取り可能なプログラムが格納された記憶媒体に関するもので、特にホストコンピュータにおいて、複数の印刷要求を一つの印刷ジョブに結合する技術にするものである。
【０００２】
【従来の技術】
従来、ホストコンピュータにおいて、あるアプリケーションにより生成された一つのドキュメント（文書データ）を印刷する場合、通常そのドキュメントから生成されるひとつの印刷ジョブに対しては、予めプリンタドライバで設定される複数の印刷設定項目からなる一組の印刷設定属性が定義される。
【０００３】
また、アプリケーションで印刷指示した文書データをプリンタに出力せずにクライアント（ホストコンピュータ）に保持しておき、複数の文書データをまとめて１つのジョブとしてプリンタに送信する「まとめ印刷」機能を有するソフトウェアがある。
【０００４】
ユーザが複数のアプリケーション、例えば、文書を作成するのに適したアプリケーションＡ、表を作成するのに適したアプリケーションＢ、図面を作成するのに適したアプリケーションＣ等により生成した印刷ジョブをまとめて印刷したい場合があるが、しかしながら「まとめ印刷」機能は、複数の印刷ジョブをまとめて１つの印刷ジョブにしているだけであり、まとめ印刷するという指示がされ、まとめ印刷用にデータをスプールした順番で印刷時も出力されるため、ユーザは出力したページにスプールしなければならず、使い勝手が悪いという問題があった。例えば、文書、図面、文書、表、文書と１ページづつなる資料を印刷したい場合には、アプリケーションＡにより１ページ目を作成し、スプールさせ、アプリケーションＢにより２ページ目を作成し、スプールさせ、再度アプリケーションＡにより３ページ目を作成し、スプールさせ、アプリケーションＣにより４ページ目を作成し、スプールさせ、アプリケーションＡにより５ページ目を作成して、スプールしなければならなかった。
【０００５】
また、まとめて１つにした印刷すべきデータのプレビューをみたい場合にも、それぞれのアプリケーションにより提供されているプレビューを見ることはできるが、プリンタドライバで設定される複数の印刷設定を反映したプレビューを見ることはできなかった。
【０００６】
更に、複数のファイルをまとめて１つの印刷ジョブとして印刷したい場合には、まとめたジョブに対してフィニッシングの指定をユーザが行いたい場合にもそれを提供する手段がなく、その場合のプレビュー機能を有しているものがないという問題があり、実際にどのように印刷装置で印刷出力されるのか、印刷してみなければわからないという問題がある。
【０００７】
また、「まとめ印刷」を使用してデバイス側でページレイアウト機能（Ｎページ／枚）を使用した場合には、複数のジョブに対して同様のページレイアウト処理を行うことが可能であるが、元の印刷ジョブ毎に異なるレイアウトをもたせたまま印刷ジョブの結合を行うことができなかった。
【０００８】
【発明が解決しようとする課題】
このように従来の「まとめ印刷」は、ただの連続印刷であるにすぎず、ページ単位に異なるレイアウトを用いて１つの印刷ジョブを作成するようなことはできなかった。
【０００９】
そこで本発明は、それぞれの印刷設定情報をもった印刷ジョブを結合できる仕組みを提供することを目的とする。
【００１０】
また、それぞれに印刷設定情報を有した複数の印刷ジョブをまとめて一つの結合ジョブを作る際に、もともと印刷をするときの設定がばらばらであるような場合には、何らかの設定の統一を行わう機構を持つ必要があり、自動的に統一する場合、何を変更したことによって統一したのかが分かる仕組みを提供することを目的とする。
【００１１】
また、複数の印刷ジョブをまとめた後にジョブ単位で管理・編集する機能、例えば、印刷した順序に関係無く、印刷順序をジョブ単位で並び替えられる機能や、ジョブ単位で、結合ジョブ中から印刷ジョブを削除することや、結合ジョブを元の単独の複数ジョブに戻す機能を提供することを目的とする。
【００１２】
また、印刷ジョブを論理ページ単位で編集すること、例えば、不要なページの削除が行える仕組みを提供することを目的とする。
【００１３】
更に、結合ジョブをページ単位で編集した後、元の単独ジョブに戻す仕組みを提供することを目的とする。
【００１４】
【課題を解決するための手段】
上記目的を達成する本発明の情報処理装置は、以下に示す構成を備える。
【００１５】
即ち、印刷装置に送信すべき印刷データを生成する情報処理装置であって、アプリケーションにより生成された印刷すべきデータを中間コード形式の印刷ジョブに変換し、該印刷すべきデータの印刷設定情報と関連付けて一時保存する中間コード変換手段と、前記中間コード変換手段により変換された複数の異なる印刷すべきデータに対応する複数の中間コード形式の印刷ジョブを結合して１つの結合ジョブにする結合指示をする結合指示手段と、前記結合指示手段により複数の印刷ジョブを１つの結合ジョブにする結合指示がなされた場合に、前記一時保存されている当該複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない設定内容が当該複数の印刷ジョブで異なっているかを判断する判断手段と、前記判断手段により１つの印刷ジョブに対して１つしか設定できない設定内容が複数の印刷ジョブで異なっていると判断された場合に、当該設定内容を統一する旨の確認メッセージを表示する確認メッセージ表示手段と、前記確認メッセージ表示手段により前記確認メッセージを表示した後で、１つの印刷ジョブに対して１つしか設定できない設定内容を統一した結合ジョブ用の印刷設定情報を生成する設定統一手段とを有する。
【００１６】
また、前記確認メッセージ表示手段は、前記結合対象の複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない情報が異なる場合に、当該設定を統一するか、印刷ジョブの結合を行わないかを選択させるよう確認するための確認メッセージを表示する。
【００１７】
また、前記中間コード形式の印刷ジョブは、ページ単位のページ描画ファイルとして一時保存されている。
【００１８】
また、前記結合ジョブ用の印刷設定情報は、物理ページにレイアウトされるページ描画ファイルを指定する情報が付加されている。
【００１９】
また、前記印刷設定情報は、印刷ジョブ単位の印刷設定ファイルとして一時保存されている。
【００２０】
また、前記印刷ジョブもしくは前記結合ジョブの印刷設定情報に基づいたプレビューを表示するよう制御するプレビュー表示制御手段を更に有する。
【００２１】
また、前記結合ジョブ内の複数の印刷ジョブを操作し、印刷ジョブの順序を入れ替える順序制御手段を更に有する。
【００２２】
また、前記結合ジョブ内の複数の印刷ジョブを操作し、特定の印刷ジョブの削除を行うジョブ削除手段を更に有する。
【００２３】
また、前記結合ジョブに対して、結合前の複数の印刷ジョブへ分割するジョブ分割手段を更に有する。
【００２４】
また、前記印刷ジョブもしくは前記結合ジョブを指定させ、指定された印刷ジョブの複製を作成するジョブ複製手段を更に有する。
【００２５】
また、前記印刷ジョブもしくは前記結合ジョブは、印刷設定情報に基づいて、当該ジョブの基となる中間コード形式のデータ作成時の初期状態の戻す設定初期化手段を更に有する。
【００２６】
また、前記印刷ジョブもしくは前記結合ジョブ内の論理ページに対して、指定するページの削除を行うページ編集手段を更に有する。
【００２７】
また、前記中間コード変換手段により一時保存された中間コード形式のデータに基づいて、前記印刷装置に送信すべき印刷データを生成する印刷データ生成手段を更に有する。
【００２８】
また、前記中間コード変換手段により一時保存された中間コード形式のデータをＯＳの描画手段で解釈可能な描画命令に変換して出力する描画命令生成手段と、前記アプリケーションからＯＳの描画手段を介して受け取った印刷命令は前記中間データ変換手段に渡し、前記描画命令生成手段からＯＳの描画手段を介して受け取った印刷命令は前記印刷データ生成手段に渡す印刷命令割り振り手段とを更に有する。
【００２９】
また、前記描画命令はＧＤＩ関数であり、前記印刷命令はＤＤＩ関数であり、前記印刷データはプリンタ言語である。
【００３０】
また、本発明のその他の解決手段は、上記装置を制御する方法、プログラムが格納された記憶媒体、もしくはコンピュータプログラムにおいて実現する。
【００３１】
【発明の実施の形態】
［第一実施例］
以下、本発明を適用するのに好適である実施例について説明を行う。
【００３２】
図１は本発明の実施例を示すプリンタ制御システムの構成を説明するブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ、ＷＡＮ等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。
【００３３】
同図において、ホストコンピュータ３０００は、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。また、このＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等を記憶し、ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３のデータ用ＲＯＭあるいは外部メモリ１１には上記文書処理等を行う際に使用する各種データを記憶する。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。
【００３４】
キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インタフェイス（インタフェイス）２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。
【００３５】
なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【００３６】
プリンタ１５００は、ＣＰＵ１２により制御される。プリンタＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、このＲＯＭ１３のプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ＲＯＭ１３のデータ用ＲＯＭには、ハードディスク等の外部メモリ１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
【００３７】
ＣＰＵ１２は入力部１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知できる。ＲＡＭ１９は、ＣＰＵ１２の主メモリや、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００３８】
また、前述した外部メモリ１４は１個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないＮＶＲＡＭを有し、操作パネル１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【００３９】
図２は、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されているホストコンピュータにおける典型的な印刷処理の構成図である。アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１に保存されたファイルとして存在し、実行される場合にＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされ実行されるプログラムモジュールである。また、アプリケーション２０１およびプリンタドライバ２０３は、外部メモリ１１のＦＤや不図示のＣＤ？ＲＯＭ、あるいは不図示のネットワークを経由して外部ディスク１１のＨＤに追加することが可能となっている。外部メモリ１１に保存されているアプリケーション２０１はＲＡＭ２にロードされて実行されるが、このアプリケーション２０１からプリンタ１５００に対して印刷を行う際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００４０】
グラフィックエンジン２０２は、印刷装置ごとに用意されたプリンタドライバ２０３を同様に外部メモリ１１からＲＡＭ２にロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。そして、アプリケーション２０１から受け取るＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）関数からＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）関数に変換して、プリンタドライバ２０３へＤＤＩ関数を出力する。プリンタドライバ２０３は、グラフィックエンジン２０２から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）に変換する。変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経てインタフェイス２１経由でプリンタ１５００へ印刷データとして出力される仕組みとなっている。
【００４１】
本実施形態の印刷システムは、図２で示すプリンタとホストコンピュータからなる印刷システムに加えて、更に図３に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【００４２】
図３は、図２のシステムを拡張したもので、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、一旦中間コードからなるスプールファイル３０３を生成する構成をとる。図２のシステムでは、アプリケーション２０１が印刷処理から開放されるのはプリンタドライバ２０３がグラフィックエンジン２０２からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図３のシステムでは、スプーラ３０２がすべての印刷命令を中間コードデータに変換し、スプールファイル３０３に出力した時点である。通常、後者の方が短時間で済む。また、図３で示すシステムにおいては、スプールファイル３０３の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを１ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。
【００４３】
これらの目的のために、図２のシステムに対し、図３の様に中間コードデータでスプールする様、システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ２０３が提供するウインドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ２上あるいは外部メモリ１１上に保管する。
【００４４】
以下、図３の詳細を説明する。図に示す通り、この拡張された処理方式では、グラフィックエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ３０１が受け取る。ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づくものである場合には、ディスパッチャ３０１は外部メモリ１１に格納されているスプーラ３０２をＲＡＭ２にロードし、プリンタドライバ２０３ではなくスプーラ３０２へ印刷命令（ＤＤＩ関数）を送付する。
【００４５】
スプーラ３０２は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル３０３に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル（ＰＤＦ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｉｌｅ）と呼ぶ。また、スプーラ３０２は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定（Ｎｕｐ、両面、ステイプル、カラー／モノクロ指定等）をプリンタドライバ２０３から取得してジョブ単位のファイルとしてスプールファイル３０３に保存する。このジョブ単位に格納されている設定ファイルをジョブ設定ファイル（簡略してＳＤＦ：Ｓｐｏｏｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｉｌｅと呼ぶこともある）と呼ぶ。このジョブ設定ファイルについては後述する。なお、スプールファイル３０３は外部メモリ１１上にファイルとして生成するが、ＲＡＭ２上に生成されても構わない。更にスプーラ３０２は、外部メモリ１１に格納されているスプールファイルマネージャ３０４をＲＡＭ２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を通知する。その後、スプールファイルマネージャ３０４は、スプールファイル３０３に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【００４６】
スプールファイルマネージャ３０４がグラフィックエンジン２０２を利用して印刷を行えると判断した際には、外部メモリ１１に格納されているデスプーラ３０５をＲＡＭ２にロードし、デスプーラ３０５に対して、スプールファイル３０３に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【００４７】
デスプーラ３０５はスプールファイル３０３に含まれる中間コードのページ描画ファイルをスプールファイル３０３に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、ＧＤＩ関数を再生成し、もう一度グラフィックエンジン２０２経由でＧＤＩ関数を出力する。
【００４８】
ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）がデスプーラ３０５からグラフィックエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、ディスパッチャ３０１はスプーラ３０２ではなく、プリンタドライバ２０３に印刷命令を送る。
【００４９】
プリンタドライバ２０３はグラフィックエンジン２０２から取得したＤＤＩ関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。
【００５０】
更に、図３では、これまで説明した拡張システムに加えて、プレビューア３０６、設定変更エディタ３０７を配し、プレビュー、印刷設定変更、複数ジョブの結合を可能にした例を示している。
【００５１】
印刷プレビュー、印刷設定変更、複数ジョブの結合を行うためには、まずユーザが図９に示すプリンタドライバのプロパティにおいて、「出力先の指定」を行う手段であるプルダウンメニューにおいて「ストア」を指定する必要がある。なお、プレビューだけをみたい場合は、出力先の指定として「プレビュー」を選択することによっても可能である。
【００５２】
このようにプリンタドライバのプロパティで設定されている内容は設定ファイルとしてＯＳが提供する構造体（ＷｉｎｄｏｗｓＯＳでは、ＤＥＶＭＯＤＥと呼ばれる）に格納される。その構造体には、例えばスプールファイル３０３に含まれる加工設定中にスプールファイルマネージャ３０４にストアを行うかどうかの設定が含まれており、スプールファイルマネージャ３０４がプリンタドライバを介して加工設定を読み込み、ストア指定がなされていた場合、前述したようにスプールファイル３０３にページ描画ファイルとジョブ設定ファイルとが生成・格納され、図１６のようにスプールファイルマネージャのウインドウ画面がポップアップされ、スプールファイル３０３にスプールされたジョブがリスト表示される。図１６には、４つのジョブがスプールされている例を示しており、メニューバーもしくは、そのすぐ下のメニューアイコンを押下することにより、ジョブの操作を行うことができる。メニューバーとメニューアイコンの操作の数は同じである。操作種類としては、ジョブを選択した状態で、「印刷」、中間コードのスプールファイルをそのまま残して印刷を行わせる「セーブして印刷」、印刷設定を考慮したジョブの出力プレビューを見るための「プレビュー」、中間コードのスプールファイルを削除する「削除」、中間コードのスプールファイルのコピーを生成する「複製」、複数の中間コードのスプールファイルのジョブを結合して１つのジョブにする「結合」、結合ジョブを元の複数のジョブに分割する「分割」、単体ジョブもしくは結合ジョブの印刷設定（レイアウト設定やフィニッシング設定等）を変更する「ジョブ編集」、あるジョブの印刷順序を最初にする「先頭に移動」、あるジョブの印刷順序を１つ早くする「１つ上に移動」、あるジョブの印刷順序を１つお則する「１つ下に移動」、あるジョブの印刷順序を最後にする「最後に移動」の以上１１個の操作がある。
【００５３】
スプールファイルマネージャのウインドウ画面（図１６）上で、ある単体ジョブもしくは結合ジョブのプレビュー指定がされた場合、外部メモリ１１に格納されているプレビューア３０６をＲＡＭ２にロードし、プレビューア３０６に対して、スプールファイル３０３に記述された中間コードのジョブのプレビュー処理を行うように指示する。
【００５４】
プレビューア３０６はスプールファイル３０３に含まれる中間コードのページ描画ファイル（ＰＤＦ）を順次読み出し、スプールファイル３０３に格納されているジョブ設定ファイル（ＳＤＦ）に含まれる加工設定情報の内容に従って加工し、グラフィックエンジン２０２に対してＧＤＩ関数を出力し、グラフィックエンジン２０２が自身のクライアント領域に描画データを出力することによって、画面上の出力が可能となる。
【００５５】
グラフィックエンジン２０２は、指定された出力先に応じて適切なレンダリングを行うことが可能である。このことから、プレビューア３０６は、デスプーラ３０５同様に、スプールファイル３０３に含まれる中間コードをスプールファイル３０３に含まれる加工設定の内容に従って加工し、グラフィックエンジン２０２を利用して出力する方法で実現可能となる。このようにプリンタドライバで設定されている加工設定をジョブ設定ファイルとしてスプールファイル３０３に格納し、このジョブ設定ファイルに基づいてページ描画ファイルのデータを加工して出力することにより、実際の描画データがどのように印刷されるか、更には、Ｎｕｐ（Ｎページの論理ページを１ページの物理ページに縮小配置して印刷する処理）指定されている場合、両面印刷されている場合、製本印刷指定されている場合、スタンプが指定されている場合、それぞれに応じて、プリンタで出力されるものに近い印刷プレビューをユーザに提供することができる。なお、従来の文書作成等のアプリケーションソフトウェアが有しているプレビュー機能は、あくまでそのアプリケーションにおけるページ設定に基づいて描画しているため、プリンタドライバでの印刷設定が反映されず、実際に印刷出力されるプレビューをユーザに認識させることはできなかった。
【００５６】
上記のようにプレビュー処理を行うことにより、図１７のようにスプールファイル３０３に含まれる印刷の加工設定の大プレビューがプレビューア３０６によって画面上に表示され、その後、ユーザの非表示指示によって、プレビューア３０６がクローズされ、制御がスプールファイルマネージャのウインドウ画面（図１６）に移行する。
【００５７】
そして、ユーザがプレビューア３０６によって表示された内容に従って、印刷を行うならば、スプールファイルマネージャ３０４上で、「印刷」もしくは「セーブして印刷」を指示することにより印刷要求を発行する。印刷要求は前述したように、デスプーラ３０５によりジョブ設定ファイルに基づいてページ描画ファイルを加工してＧＤＩ関数を生成し、グラフィックエンジン２０２に伝えられ、ディスパッチャ３０１経由で、プリンタドライバ２０３に印刷命令が送られ、印刷が実行される。
【００５８】
次に、設定変更エディタ３０７を用いた設定変更について説明する。
【００５９】
その実現方法としては、プレビュー同様、図９において「ストア」指定されたジョブに関して設定可能である。同様のフローによりスプールファイルマネージャ３０４がポップアップされ、スプールされたジョブがリスト表示される。スプールファイルマネージャのウインドウ画面（図１６）上で、「ジョブ編集」が指定され、設定変更指示がされた場合、外部メモリ１１に格納されている設定変更エディタ３０７をＲＡＭ２にロードし、設定変更エディタ３０７に対して、現在またはデフォルトの加工設定の表示を行うように指示する。そして図１８のようなジョブ設定画面が表示される。
【００６０】
設定変更エディタ３０７は、「ジョブ編集」が指定されたジョブのジョブ設定ファイルをスプールファイル３０３から取得し、そのジョブ設定ファイルに指定されている設定項目に基づいて図１８のジョブ設定画面のデフォルト値を変更する。図１８に示す例では、「ジョブ編集」指定されたジョブのジョブ設定ファイルには、部数：１部、印刷方法：片面、ステイプル：なし、レイアウト：１ページ／枚等が指定されていることになる。
【００６１】
この設定変更エディタ３０７でもスプールファイル３０３に含まれる中間コードのページ描画ファイルをスプールファイル３０３に格納されているジョブ設定ファイルに含まれる加工設定の内容に従って加工し、グラフィックエンジン２０２を用いて自身のクライアント領域に出力することによって、図１８に示す画面上の小プレビュー出力が可能となる。
【００６２】
またここで、スプールファイル３０３に格納されているジョブ設定ファイルに含まれる加工設定の内容を変更、修正することが可能である。その際、プリンタドライバ２０３の設定可能な項目を設定変更エディタ３０７上のユーザインターフェイスに持っていても、プリンタドライバ２０３自身のユーザインターフェイスを呼び出しても構わない。図１８に示すように、分数、印刷方法（片面、両目、製本印刷）、ステイプル（サドルフィニッシャー等）、ページレイアウト、配置順等の指定ができ、また「詳細設定」を押下することにより、プリンタドライバで指定できる項目の大半を設定しなおすことが可能となる。ただし、解像度、グラフィックモード等の印刷品位に関する設定の変更は許可しないものとする。
【００６３】
ここで変更された変更項目は設定変更エディタ３０７上の認証要求に従い、変更が認証され、制御がスプールファイルマネージャ３０４に移行する。変更が認証されたものは、印刷設定の変更を保存することになるが、オリジナルのジョブ設定ファイルには保存せずに、ジョブ編集等で用いられるジョブ出力用設定ファイルを新たに生成して保存することになる。ジョブ出力用設定ファイルについての詳細は、図１０以降で後述する。
【００６４】
そして、ユーザがプレビューア３０６での確認同様、設定変更内容に従って、印刷を行うならば、スプールファイルマネージャ３０４上で、印刷要求を発行する。印刷要求はグラフィックエンジン２０２に伝えられ、ディスパッチャ３０１経由で、プリンタドライバ２０３に印刷命令が送られ、印刷が実行される。
【００６５】
また、スプールファイルマネージャのウインドウ画面（図１６）では、複数の印刷ジョブを結合し、一つの印刷ジョブとして印刷するように指定することが可能である。これも、プレビュー、設定変更同様、図９のプリンタドライバのプロパティにおいて出力先を「ストア」指定されたジョブが前提となる。
【００６６】
ユーザが印刷ジョブの結合を行う場合、まず、アプリケーション２０１からプリンタドライバ２０３を呼び出し、図９に示すようなユーザインターフェイス上からストアを選択する。前記同様、この選択により、スプールファイル３０３にストアされ、図１６のようにスプールファイルマネージャのウインドウ画面（図１６）がポップアップされる。スプールされたジョブはスプールファイルマネージャのウインドウ上にリスト表示される。アプリケーション２０１から同様の操作をすることにより、スプールファイルマネージャ３０４上に複数ジョブのリスト表示がされることになる。
【００６７】
ここで、複数ジョブを選択し、「結合」が指定された場合、外部メモリ１１に格納されている設定変更エディタ３０７をＲＡＭ２にロードし、設定変更エディタ３０７に対して、リスト上の先頭ジョブまたはデフォルトの加工設定の表示を行うように指示する。そして図１８のような結合設定画面が表示される。ここでは、設定変更エディタ３０７を結合設定画面として用いているが、別モジュールのものを用いても構わない。
【００６８】
この設定変更エディタ３０７は、スプールファイル３０３に含まれる中間コードのページ描画ファイルをスプールファイル３０３に格納されているジョブ設定情報に含まれる加工設定の内容に従って加工し、結合ジョブとして指定されたすべてのジョブに対して、グラフィックエンジン２０２を用いて自身のクライアント領域に出力することによって、画面上の出力を行う。その際、図１８に示すプレビュー領域に選択された全てのジョブの小プレビューが可能となる。また、結合ジョブを生成する際に、それぞれの単体ジョブのジョブ設定ファイルを拡張したジョブ出力用設定ファイルを生成する。このジョブ出力用設定ファイルは、ジョブ編集を行う際にも生成されるものであり、１つのジョブに対して１つできるものであり、結合ジョブの場合もまた１つ生成される。
【００６９】
ここではそれぞれのジョブに対して、結合する前の加工設定で表示することも、結合ジョブとして統一の加工設定に変更、修正して表示することも可能である。その際、プリンタドライバ２０３の設定可能な項目を設定変更エディタ３０７上のユーザインターフェイスに持っていても、プリンタドライバ２０３自身のユーザインターフェイスを呼び出しても構わない。
【００７０】
ここで結合されたジョブ及び変更された変更項目は、前述したように、設定変更エディタ３０７上の認証要求に従い、変更が認証され、制御がスプールファイルマネージャ３０４に移行する。これらの操作により、先に選択された複数ジョブは、スプールファイルマネージャのウインドウ上で一つの結合ジョブとして表示される。
【００７１】
そして、ユーザがプレビューア３０６での確認同様、設定変更内容に従って、印刷を行うならば、スプールファイルマネージャ３０４上で、印刷要求を発行する。印刷要求はグラフィックエンジン２０２に伝えられ、ディスパッチャ３０１経由で、プリンタドライバ２０３に印刷命令が送られ、印刷が実行される。
【００７２】
図４は、プリンタ１５００の一例である両面印刷機能を有するカラーレーザプリンタの断面図である。
【００７３】
このプリンタはホストコンピュータ３０００より入力した印刷データに基づいて得られる各色毎の画像データで変調されたレーザ光をポリゴンミラー３１により感光ドラム１５を走査して静電潜像を形成する。そして、この静電潜像をトナー現像して可視画像を得、これを中間転写体９へ全色について多重転写してカラー可視画像を形成する。そして更に、このカラー可視画像を転写材２へ転写し、転写材２上にカラー可視画像を定着させる。以上の制御を行う画像形成部は、感光ドラム１５を有するドラムユニット、接触帯電ローラ１７を有する一次帯電部、クリーニング部、現像部、中間転写体９、用紙カセット１や各種ローラ３、４、５、７を含む給紙部、転写ローラ１０を含む転写部及び定着部２５によって構成されている。
【００７４】
ドラムユニット１３は、感光ドラム（感光体）１５と感光ドラム１５のホルダを兼ねたクリーニング機構を有するクリーナ容器１４とを一体に構成したものである。このドラムユニット１３はプリンタ本体に対して着脱自在に支持され、感光ドラム１５の寿命に合わせて容易にユニット交換可能に構成されている。上記感光ドラム１５はアルミシリンダの外周に有機光導電体層を塗布して構成し、クリーナ容器１４に回転可能に支持されている。感光ドラム１５は、図示しない駆動モータの駆動力が伝達されて回転するもので、駆動モータは感光ドラム１５を画像形成動作に応じて反時計回り方向に回転させる。感光ドラム１５の表面を選択的に露光させることにより静電潜像が形成されるように構成されている。スキャナ部３０では、変調されたレーザ光を、モータ３１ａにより画像信号の水平同期信号を同期して回転するポリゴンミラーにより反射し、レンズ３２、反射鏡３３を介して感光ドラムを照射する。
【００７５】
現像部は、上記静電潜像を可視画像化するために、イエロー（Ｙ）、マゼンダ（Ｍ）、シアン（Ｃ）の現像を行う３個のカラー現像器２０Ｙ、２０Ｍ、２０Ｃと、ブラック（Ｂ）の現像を行う１個のブラック現像器２１Ｂとを備えた構成を有する。カラー現像器２０Ｙ、２０Ｍ、２０Ｃ及びブラック現像器２１Ｂには、スリープ２０ＹＳ、２０ＭＳ、２０ＣＳ及び２１ＢＳと、これらスリープ２０ＹＳ、２０ＭＳ、２０ＣＳ、２１ＢＳそれぞれの外周に圧接する塗布ブレード２０ＹＢ、２０ＭＢ、２０ＣＢ及び２１ＢＢとがそれぞれ設けられる。また３個のカラー現像器２０Ｙ、２０Ｍ、２０Ｃには塗布ローラ２０ＹＲ、２０ＭＲ、２０ＣＲが設けられている。
【００７６】
また、ブラック現像器２１Ｂはプリンタ本体に対して着脱可能に取り付けられており、カラー現像器２０Ｙ、２０Ｍ、２０Ｃは回転軸２２を中心に回転する現像ロータリー２３にそれぞれ着脱可能に取り付けられている。
【００７７】
ブラック現像器２１Ｂのスリープ２１ＢＳは感光ドラム１５に対して例えば３００μｍ程度の微小間隔を持って配置されている。ブラック現像器２１Ｂは、器内に内蔵された送り込み部材によってトナーを搬送すると共に、時計回り方向に回転するスリープ２１ＢＳの外周に塗布ブレード２１ＢＢによって塗布するように摩擦帯電によってトナーへ電荷を付与する。また、スリープ２１ＢＳに現像バイアスを印加することにより、静電潜像に応じて感光ドラム１５に対して現像を行って感光ドラム１５にブラックトナーによる可視画像を形成する。
【００７８】
３個のカラー現像器２０Ｙ、２０Ｍ、２０Ｃは、画像形成に際して現像ロータリー２３の回転に伴って回転し、所定のスリープ２０ＹＳ、２０ＭＳ、２０ＣＳが感光ドラム１５に対して３００μｍ程度の微小間隔を持って対向することになる。これにより所定のカラー現像器２０Ｙ、２０Ｍ、２０Ｃが感光ドラム１５に対向する現像位置に停止し、感光ドラム１５に可視画像が作成される。
【００７９】
カラー画像形成時には、中間転写体９の１回転毎に現像ロータリー２３が回転し、イエロー現像器２０Ｙ、マゼンダ現像器２０Ｍ、シアン現像器２０Ｃ、次いでブラック現像器２１Ｂの順で現像工程がなされ、中間転写体９が４回転してイエロー、マゼンダ、シアン、ブラックのそれぞれのトナーによる可視画像を順次形成し、その結果フルカラー可視画像を中間転写体９上に形成する。
【００８０】
中間転写体９は、感光ドラム１５に接触して感光ドラム１５の回転に伴って回転するように構成されたもので、カラー画像形成時に時計回り方向に回転し、感光ドラム１５から４回の可視画像の多重転写を受ける。また、中間転写体９は画像形成時に後述する転写ローラ１０が接触して転写材２を挟持搬送することにより転写材２に中間転写体９上のカラー可視画像を同時に多重転写する。中間転写体の外周部には、中間転写体９の回転方向に関する位置を検知するためのＴＯＰセンサ９ａ及びＲＳセンサ９ｂと、中間転写体に転写されたトナー像の濃度を検知するための濃度センサ９ｃが配置されている。
【００８１】
転写ローラ１０は、感光ドラム１５に対して接離可能に支承された転写帯電器を備えたもので、金属軸を中抵抗発泡弾性体により巻回することによって構成されている。
【００８２】
転写ローラ１０は、図４に実線で示すように中間転写体９上にカラー可視画像を多重転写している間は、カラー可視画像を乱さぬように下方に離開している。そして、上記中間転写体９上に４色のカラー可視画像が形成された後は、このカラー可視画像を転写材２に転写するタイミングに合わせてカム部材（不図示）により転写ローラ１０を図示点線で示す上方に位置させる。これにより転写ローラ１０は転写材２を介して中間転写体９に所定の押圧力で圧接すると共に、バイアス電圧が印加され、中間転写体９上のカラー可視画像が転写材２に転写される。
【００８３】
定着部２５は、転写２を搬送させながら、転写されたカラー可視画像を定着させるものであり、転写材２を加熱する定着ローラ２６と転写材２を定着ローラ２６に圧接させるための加圧ローラ２７とを備えている。定着ローラ２６と加圧ローラ２７とは中空状に形成され、内部にそれぞれヒータ２８、２９が内蔵されている。即ち、カラー可視画像を保持した転写材２は定着ローラ２６と加圧ローラ２７とにより搬送されると共に、熱及び圧力を加えることによりトナーが表面に定着される。
【００８４】
可視画像定着後の転写材２は、その後排紙ローラ３４、３５、３６によって排紙部３７へ排出して画像形成動作を終了する。
【００８５】
クリーニング手段は、感光ドラム１５上及び中間転写体９上に残ったトナーをクリーニングするものであり、感光ドラム１５上に形成されたトナーによる可視画像を中間転写体９に転写した後の廃トナーあるいは、中間転写体９上に作成された４色のカラー可視画像を転写材２に転写した後の廃トナーは、クリーナ容器１４に蓄えられる。
【００８６】
印刷される転写材（記録用紙）２は、給紙トレイ１から給紙ローラ３により取り出されて中間転写体９と転写ローラ１０との間に挟まれるようにして搬送されてカラートナー画像が記録され、定着部２５を通過してトナー像が定着される。片面印刷の場合には、案内３８が上方の排紙部に記録用紙を導くように搬送経路を形成するが、両面印刷に対しては、下方の両面ユニットに導くように経路を形成する。
【００８７】
両面ユニットに導かれた記録用紙は、搬送ローラ４０によりトレイ１の下部（二点鎖線で示す搬送経路）に一旦送り込まれた後に逆方向に搬送され、両面トレイ３９に送られる。両面トレイ３９上では、用紙は給紙トレイ１に載置された状態とは表裏が逆になり、また搬送方向について前後が逆になっている。この状態で再びトナー像の転写、定着を再度行うことで、両面印刷ができる。
【００８８】
図５は、スプーラ３０２における、スプールファイル３０３の生成におけるページ単位保存ステップの処理をフローチャートで示したものである。
【００８９】
まずステップ５０１では、スプーラ３０２は、アプリケーションからグラフィックエンジン２０２を介して印刷要求を受け付ける。アプリケーションにおいては、図８に示すような印刷設定を入力するダイアログが表示され、このダイアログから入力された印刷設定がプリンタドライバよりスプーラ３０３に渡される。図８に示す設定入力ダイアログにおいては、８０１のような１物理ページにレイアウトする論理ページの数を決定するような設定項目等を含んでいる。
【００９０】
ステップ５０２では、スプーラ３０２は、受け付けた印刷要求がジョブ開始要求か判定し、もしステップ５０２でジョブ開始要求であると判断した場合には、ステップ５０３に進み、スプーラ３０２は、中間データを一時的に保存するためのスプールファイル３０３を作成する。続いて、ステップ５０４では、スプーラ３０２は、スプールファイルマネージャ３０４へ印刷処理の進捗を通知し、続くステップ５０５でスプーラ３０２のページ数カウンタを１に初期化する。ここで、スプールファイルマネージャ３０４においては、印刷が開始されたジョブに対するジョブの情報や加工設定などをスプールファイル３０３より読み込み、記憶する。
【００９１】
一方、ステップ５０２において、ジョブ開始要求ではなかったと判断した場合には、ステップ５０６に進む。
【００９２】
ステップ５０６では、スプーラ３０２は、受け付けた要求がジョブ終了要求かどうかの判別を行う。ジョブ終了要求でないと判断した場合には、ステップ５０７に進み、改ページかどうかの判別を行う。もしもステップ５０７で改ページであると判断した場合には、ステップ５０８に進み、スプールファイルマネージャ３０４へ印刷処理の進捗を通知する。そしてページ数カウンタをインクリメントして、中間コードを格納しているページ描画ファイルを閉じ、次のページ描画ファイルを生成する。
【００９３】
ステップ５０７において、受け付けた印刷要求が改ページではないと判断した場合には、ステップ５０９に進み、スプーラ３０２は、ページ描画ファイルへの中間コードの書き出しの準備を行う。
【００９４】
次に、ステップ５１０では、印字要求をスプールファイル３０３へ格納するため、スプーラ３０２は、印字要求のＤＤＩ関数の中間コードへの変換処理を行う。ステップ５１１では、スプーラ３０２は、ステップ５１０において格納可能な形に変換された印刷要求（中間コード）をスプールファイル３０３のページ描画ファイルへ書き込む。その後、ステップ５０１に戻り、再びアプリケーションからの印刷要求を受け付ける。この一連のステップ５０１からステップ５１１までの処理を、アプリケーションよりジョブ終了要求（Ｅｎｄ  Ｄｏｃ）を受け取るまで続ける。また、スプーラ３０２は、同時にプリンタドライバ２０３からＤＥＶＭＯＤＥ構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイルとしてスプールファイル３０３に格納する。一方、ステップ５０６にて、アプリケーションからの印刷要求がジョブ終了であると判断した場合には、アプリケーションからの印刷要求は全て終了であるので、ステップ５１２に進み、スプールファイルマネージャ３０４へ印刷処理の進捗を通知し、処理を終える。
【００９５】
図６は、スプールファイルマネージャ３０４における、スプールファイル３０３生成プロセスと以降説明する印刷データ生成プロセスの間での制御の詳細をフローチャートで示したものである。
【００９６】
ステップ６０１では、スプールファイルマネージャ３０４は、スプーラ３０２あるいはデスプーラ３０５からの印刷処理の進捗通知を受け付ける。
【００９７】
ステップ６０２では、スプールファイルマネージャ３０４は、もし進捗通知が前述のステップ５０４において通知されるスプーラ３０２からの印刷開始通知であるかどうか判定し、もしそうであればステップ６０３へ進み、印刷の加工設定をスプールファイル３０３から読み込み、ジョブの管理を開始する。一方、ステップ６０２において、スプーラ３０２からの印刷開始通知でなければステップ６０４へ進み、スプールファイルマネージャ３０４は、進捗通知が前述のステップ５０８において通知されるスプーラ３０２からの１論理ページの印刷終了通知であるかどうか判定する。ここで１論理ページの印刷終了通知であればステップ６０５へ進み、この論理ページに対する論理ページ情報を格納する。そして、続くステップ６０６では、この時点でスプールが終了したｎ論理ページに対して、１物理ページの印刷が開始できるかを判定する。ここで、印刷可能である場合はステップ６０７へ進み、印刷する１物理ページに対して割り付けれられる論理数から物理ページ番号を決定する。
【００９８】
物理ページの計算については、例えば、加工設定が１物理ページに４論理ページを配置するような設定の場合、第１物理ページは第４論理ページがスプールされた時点で印刷可能となり、第１物理ページとなる。続いて、第２物理ページは第８論理ページがスプールされた時点で印刷可能となる。
【００９９】
また、論理ページ数の総数が１物理ページに配置する論理ページ数の倍数でなくても、ステップ５１２におけるスプール終了通知によって１物理ページに配置する論理ページが決定可能である。
【０１００】
そして、ステップ６０８では、図１０に示すような形式で、印刷可能となった物理ページを構成する論理ページ番号と、その物理ページ番号などの情報がジョブ出力用設定ファイル（物理ページ情報を含むファイル）に保存され、物理ページ情報が１物理ページ分追加されたことがデスプーラ３０５に通知される。その後ステップ６０１に戻り、次の通知を待つ。本実施例においては、印刷データ１ページ、即ち１物理ページを構成する論理ページがスプールされた時点で印刷ジョブのスプールが全て終了していなくても印刷処理が可能である。
【０１０１】
一方、ステップ６０４において、進捗通知がスプーラ３０２からの１論理ページの印刷終了通知でなかった場合ステップ６０９へ進み、スプールファイルマネージャ３０４は、前述のステップ５１２において通知されるスプーラ３０２からのジョブ終了通知であるかどうかを判定する。ここで、ジョブ終了通知である場合、前述のステップ６０６へ進む。一方、ジョブ終了通知でない場合、ステップ６１０へ進み、スプールファイルマネージャ３０４は、受け付けた通知がデスプーラ３０５からの１物理ページの印刷終了通知であるかどうか判定する。ここで、１物理ページの印刷終了通知である場合はステップ６１２へ進み、加工設定の印刷が全て終了したかを判定する。印刷終了した場合、ステップ６１２へ進み、デスプーラ３０５に印刷終了の通知を行う。一方、加工設定に対する印刷がまだ終了していないと判断した場合、前述の６０６へ進む。本実施例におけるデスプーラ３０５は印刷処理を行う単位として１物理ページ数を想定している。また、ステップ６０８では、１物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしているが、再利用不要な場合には、共有メモリ等高速な媒体を使用し、１物理ページ単位で次々と上書きする実装にして、速度とリソースを節約するような実装形式であってもよい。また、デスプールの進捗よりもスプールの進捗の方が早い場合や全ページのスプール終了後からデスプールが開始されるような場合には、ステップ６０８で１物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じて、複数物理ページもしくは全物理ページが印刷可能になったという通知内容にして、通知回数を節約することが可能である。
【０１０２】
ステップ６１０において、通知がデスプーラ３０５からの１物理ページの印刷終了通知でないと判断された場合、ステップ６１３へ進み、スプールファイルマネージャ３０４は、デスプーラ３０５からの印刷終了通知かどうかを判定する。通知がデスプーラ３０５からの印刷終了通知と判定された場合、ステップ６１４へ進み、スプールファイルマネージャ３０４は、スプールファイル３０３の該当するページ描画ファイルの削除を行い処理を終える。ただし、一方、デスプーラ３０５からの印刷終了通知でなかった場合はステップ６１５へ進み、その他通常処理を行い、次の通知を待つ。
【０１０３】
図７は、デスプーラ３０５における、印刷データの生成プロセスの詳細をフローチャートで示したものである。
【０１０４】
デスプーラ３０５は、スプールファイルマネージャ３０４からの印刷要求に応じて、スプールファイル３０３から必要な情報（ページ描画ファイルおよびジョブ設定ファイル）を読み出して印刷データを生成する。生成された印刷データにおけるプリンタへの転送方法については図３で説明した通りである。
【０１０５】
印刷データの生成では、まず、ステップ７０１において、前述のスプールファイルマネージャ３０４からの通知を入力する。続くステップ７０２では、デスプーラ３０５は、入力された通知がジョブの終了通知かどうか判定し、ジョブ終了通知であるならばステップ７０３へ進み、終了フラグを立て、ステップ７０５へ進む。一方、ステップ７０２においてジョブ終了通知でない場合は、ステップ７０４に進み、前述のステップ６０８における１物理ページの印刷開始要求が通知されたかどうか判定する。ステップ７０４において開始要求と判定されなかった場合は、ステップ７１０へ進み、その他エラー処理を行い、ステップ７０１へ戻り次の通知を待つ。一方、ステップ７０４において１物理ページの印刷開始要求と判定された場合は、ステップ７０５へ進み、デスプーラ３０５は、ステップ７０４で通知を受けた印刷処理可能な物理ページのＩＤを保存する。続くステップ７０６では、デスプーラ３０５は、ステップ７０５で保存した物理ページＩＤのすべてのページに関して印刷処理が済んでいるかどうか判定する。ここで全物理ページの処理が済んでいる場合は、ステップ７０７へ進み、前述のステップ７０３で終了フラグが立てられているのか判定する。終了フラグがたっている場合は、ジョブの印刷が終了したとみなし、デスプーラ３０５の処理終了の通知をスプールファイルマネージャ３０４に通知し、処理を終える。ステップ７０７で、終了フラグが立っていないと判定された場合は、ステップ７０１へ戻り次の通知を待つ。一方、ステップ７０６で、印刷可能な物理ページが残っていると判定された場合には、ステップ７０８へ進み、デスプーラ３０５は、保存された物理ページＩＤから未処理の物理ページＩＤを順に読み出し、読み出した物理ページＩＤに対応する物理ページの印刷データ生成に必要な情報を読み込み、印刷処理を行う。印刷処理はスプールファイル３０３に格納された印刷要求命令をデスプーラ３０５においてグラフィックエンジン２０２が認識可能な形式（ＧＤＩ関数）に変換し、転送する。本実施例のような、複数論理ページを１物理ページにレイアウトするような加工設定（以下Ｎページ印刷）については、このステップで縮小配置を考慮にいれながら変換する。必要な印刷処理が終えたならば、続くステップ７０９において１物理ページの印刷データ生成終了の通知をスプールファイルマネージャ３０４に対して行う。そして再びステップ７０６へ戻り、ステップ７０５で保存しておいた印刷可能な物理ページＩＤすべてについて印刷処理を行うまで繰り返す。
【０１０６】
以上が、ディスパッチャ３０１、スプーラ３０２、スプールファイルマネージャ３０４、デスプーラ３０５を用いた印刷処理の流れである。上記のように処理することにより、スプーラ３０２が中間コードを生成してスプールファイル３０３に格納するタイミングでアプリケーション２０１が印刷処理から開放されるので、プリンタドライバ２０３に直接出力するよりも短時間で済む。また、スプールファイル３０３にプリンタドライバの印刷設定を踏まえた中間ファイル（ページ描画ファイル、ジョブ設定ファイル）として一時保存しているので、実際に印刷されるべき印刷プレビューをユーザに認識させることや、複数のアプリケーションにより生成した印刷ジョブの結合や並び替えが可能となり、印刷設定の変更を行う場合にも、再度アプリケーションを立ち上げて印刷をすることなしにユーザに行わせることを可能とする。
【０１０７】
ここで、スプーラ３０２を用いた印刷処理において、デスプーラ３０５によりグラフィックエンジン２０２への印刷要求時にジョブ出力用設定ファイルが生成されるが、プレビューやジョブ結合等を行う場合もジョブ出力用設定ファイルが生成される。ジョブ出力用設定ファイルは、単体ジョブの場合はジョブ設定ファイルと同等のものであり、結合ジョブの場合は複数のジョブ設定情報に基づいて生成されるものである。ここでジョブ出力用設定ファイルについて説明する。
【０１０８】
図１０は、ステップ６０８において、スプールファイルマネージャ３０４が生成する印刷可能となった物理ページを構成する情報を保存しているジョブ出力用設定ファイルの例を示す。フィールド１００１は、ジョブを識別するためのＩＤで、本情報を保存しているファイル名や共有メモリの名称という形で保持することも可能である。フィールド１００２はジョブ設定情報である。ジョブ設定情報には、グラフィックエンジン２０２に対してジョブの印刷を開始するために必要な構造体、Ｎページ印刷の指定、ページ枠などの追加描画の指定、部数、ステイプルなどのフィニッシング指定など、１つのジョブに対して１つしか設定できない情報が含まれている。ジョブ設定情報１００２には、ジョブに対する機能に応じて必要なだけ情報が保存される。フィールド１００３はジョブの物理ページ数で、本フィールド以降、この数の分だけ物理ページ情報が保存されていることを示す。本実施例では、印刷可能な物理ページ数を通知する方式であるので、このフィールドは無くても動作可能である。これ以降、フィールド１００４から最後までフィールド１００３の数だけ物理ページ情報が格納される。物理ページ情報については図１２で説明する。
【０１０９】
図１１は、図１０のフィールド１００２に図示されたジョブ設定情報の一例である。フィールド１１０１は全物理ページ数である。フィールド１１０２は、全論理ページ数である。フィールド１１０１および１１０２は、印刷データに追加して、ページ数などを付加情報として印刷する場合などに利用する。印刷が続いている際には、両フィールドは暫定的な値、もしくは、印刷が終了するまでスプールファイルマネージャ３０４は印刷可能な物理ページの情報の作成を延期する。フィールド１１０３は本印刷ジョブを何部印刷するかを指定する部数情報である。フィールド１１０４は、フィールド１１０３で複数部印刷する設定の場合、部単位で印刷するかどうかの指定である。フィールド１１０４はステイプル、パンチ、Ｚ折などのフィニッシング情報で、プリンタ本体もしくは外部にフィニッシャーがある場合に指定される。フィールド１１０６は付加印刷情報で、ページ枠などの飾り、日付などの付加情報、ユーザ名、ページ数、ウォーターマーク印刷等、ジョブに対して付加する情報が保存される。機能が増えるに従って本ジョブ設定情報に含まれるフィールドの数も増加し、例えば、両面印刷が可能な場合は、両面印刷の指定を保存するフィールドが追加される。
【０１１０】
図１２は、図１０のフィールド１００４に図示された物理ページ情報の一例を示す。最初のフィールド１２０１は物理ページ番号で、印刷順序の管理や、物理ページ番号を追加印刷する際に使用される値である。フィールド１２０２は物理ページ設定情報で、物理ページ毎にレイアウトやカラー・モノクロの指定が可能である場合、レイアウトやカラー・モノクロの設定が保存される。フィールド１２０３は本物理ページに割り付けられる論理ページ数で、１物理ページに４ページを割り付ける場合には４もしくは４ページ印刷を示すＩＤが保存される。フィールド１２０４以降はフィールド１２０３で指定された数だけ論理ページの情報が保存される。アプリケーション２０１から印刷されたページ数によっては、１２０３で指定されるページ数よりも実際のページデータ数が少なくなる場合がある。その場合には、論理ページ情報に空ページを示す特別なデータを保存して対応する。
【０１１１】
図１３は、１２０２の物理ページ設定情報の例である。フィールド１３０１は物理ページ上への論理ページの配置順で、Ｎページ印刷で、物理ページ上に論理ページを配置する順番（左上から横へ、左上から下へ等）の指定が保存されている。システムによっては、配置順ではなく、フィールド１２０４以降の論理ページ情報の順番をページ番号順ではなく、配置順に応じた順序で配することで１３０１の設定を代用する場合もある。フィールド１３０２は両面印刷の表・裏の情報で、例えば綴じ代を表裏でそろえる際に使用される。フィールド１３０３はカラーページかモノクロページかの指定で、プリンタがモノクロモードとカラーモードを持つ場合、カラーページとモノクロページが混在する文書で、カラーページをカラーモードで、モノクロページをモノクロモードで印刷したい場合などに使用される値である。この情報を持つことにより、オートカラーモードとして、ページ単位にカラープリンタで処理を変更することが可能となる。つまり、カラーページは、中間転写体（中間転写ドラム、中間転写ベルト）もしくは転写体（転写ドラム、転写ベルト）がデバイスカラーの数分、ＹＭＣＫなら４回転し、モノクロページは、ブラックだけ１回転することにより転写制御することを可能とする。フィールド１３０４は付加印刷情報で、物理ページに対して、ページ数や、日付などの付加情報を印刷する場合に使用される。物理ページ設定情報も、システムの機能に応じてフィールドが追加される。
【０１１２】
図１４は、１２０４で示された論理ページ情報の一例を示す。フィールド１４０１は論理ページのＩＤで、このＩＤを利用して、スプールファイル３０３から論理ページに対応するページ描画ファイルの中間コードを参照する。このＩＤを利用して論理ページの中間コードへアクセス可能であれば良く、ファイルやメモリポインタであっても、論理ページを構成する中間コード自身が入っていてもよい。フィールド１４０２は論理ページ番号で論理ページ番号を付加情報として印刷する場合や、論理ページＩＤの補助情報に使用される。フィールド１４０３のフォーマット情報には、論理ページ単位で指定可能である各種設定項目が保存される。例えば、ページ枠などの付加印刷情報、拡縮率などの論理ページ単位に指定される各種設定の情報が保存される。また、必要であれば、論理ページ単位のカラー・モノクロ情報などの論理ページに対する属性情報を保存する事も可能である。逆に、論理ページ単位で設定を切りかえる事や論理ページ単位での属性情報が不要であるようなシステムでは、フィールド１４０３は不要である。
【０１１３】
ジョブ出力用設定ファイルは、上記のように構成されている。なお、ジョブ設定ファイルもほぼ同様であり、印刷体裁（片面、両面、製本印刷）、印刷レイアウト（Ｎｕｐ、ポスター印刷）、付加情報（ウォーターマーク、日付、ユーザ名の付加）、部数、用紙サイズ情報がジョブとして有しており、物理ページ毎に、論理ページの配置順、両面印刷の表面か、裏面か、カラーモード等から構成されている。
【０１１４】
更に、図３では、これまで説明した拡張システムに加えて、ジョブの設定変更機能を持つ設定変更エディタ３０７を配した例を示している。本実施例ではジョブの設定内容は、単体ジョブは、ジョブ設定ファイルに、また結合ジョブは、図１０に示したジョブ出力用設定ファイル中に含まれており、中間コードを保存しているページ描画ファイル３０３とは独立しているため、ジョブ出力用設定ファイルを作り変えることでジョブの設定変更が可能である。設定変更エディタ３０７は単独で、あるいはスプールファイルマネージャ３０４と連携して、ジョブ出力用設定ファイルを作り変え、あるいは、一部を書き換えることでジョブの設定変更機能を実現している。
【０１１５】
図１５は、設定変更エディタ３０７におけるジョブ設定変更処理プロセスの詳細をフローチャートで示したものである。
【０１１６】
まずステップ１５０１では、設定変更エディタは、ジョブ設定ファイルもしくはジョブ出力用設定ファイルを読み込む。ジョブ出力用設定ファイルはプレビューア３０５、デスプーラ３０３が読み込むものと同じファイルである。次に、ステップ１５０２へ進み、読み込んだ結果を、ユーザに表示する。ステップ１５０３で、図１８に示したようなユーザインターフェイス上で、ユーザとの対話を行い、前述したメニューの指定等により設定内容を変更する。このステップは、対話形式でなく、ファイルなどに書きこまれた設定変更の内容に応じて変更するバッチ形式でもよい。次にステップ１５０４へ進み、ステップ１５０１で設定変更エディタは、最初に読み込んだ内容と、現在指定されている設定内容に変更があったかどうかの判定を行う。設定内容に変更が合った場合は、ステップ１５０５へ進み、新規のジョブ出力用設定ファイルを生成し、変更があったことをスプールファイルマネージャに通知して終了する。ステップ１５０５で、変更がないと判定された場合は、変更がなかったことをスプールファイルマネージャに通知して終了する。このように新規のジョブ出力用設定ファイルを生成するが、図１８のユーザインターフェイス画面において、「ＯＫ」ボタンが選択されることにより、新規のジョブ出力用設定ファイルが有効となり、古いジョブ出力用設定ファイルは削除される。また、ジョブ出力用設定ファイルからの変更ではなく、単体ジョブのジョブ設定ファイルの場合は削除せずに保存しておく。また、図１８の画面で「初期状態に戻す」ボタンが選択された場合は、新規のジョブ出力用設定ファイルを削除し、古いジョブ出力用設定ファイルが有効となり、表示に反映させる。本実施例では、設定変更エディタ３０７を別モジュールとして説明しているが、単にスプールファイルマネージャ３０４のユーザインターフェイスの一部であってもよい。設定変更エディタ３０７で実際に変更内容をジョブ出力用設定ファイルに書きこまずに、設定変更の内容のみをスプールファイルマネージャ３０４へと通知するだけで、実際のジョブ出力用設定ファイルの変更はスプールファイルマネージャ３０４側で行う実装形式でもよい。
【０１１７】
図３では、更に、複数印刷ジョブを結合し、一つの印刷ジョブとして印刷する拡張システムが図示されているが、結合ジョブをデスプール・プレビューするための拡張について説明する。
【０１１８】
通常、中間形式のスプールファイル３０３はジョブ単位で作成される。単独ジョブの場合は、処理対象ジョブファイル中の各論理ページの中間コードを順に読み出して処理を行うので、フィールド１４０１の論理ページＩＤは、各論理ページがファイルのどこに位置しているのかを示す相対あるいは絶対オフセットで実現可能である。結合ジョブの場合はフィールド１４０１のジョブＩＤから、スプールファイルと、そのジョブに属するページ情報を特定する必要がある。本実施例では、スプールファイルを識別するＩＤを論理ページＩＤに付加することで、スプールファイルを特定する方式とする。この場合、主な変更点はフィールド１４０１のみで済む。スプールファイルが識別できれば、ページ部分の読み込みは単独ジョブの処理と同じロジックで処理することが可能であるからである。また、スプールファイルが各論理ページ毎に別ファイルの形で保存されている場合は、論理ページのファイル名をそのままフィールド１４０１の論理ページＩＤとする実装形もある。
【０１１９】
実際に複数文書をを結合する際のユーザの操作フローを説明する。図１９はスプールファイルマネージャ３０４の画面上にリストアップされる状態までのユーザ操作を説明したフローチャートである。
【０１２０】
ステップ１９０１では、アプリケーション上から印刷を開始する際に、プリンタドライバのダイアログを開いて、ユーザインタフェイス上で操作可能な状態で中間ファイル形式へとスプールする指定をする。図９のプリンタドライバのダイアログの例では、９０１のコンボボックスから「ストア」の指定を選択する。次にステップ１９０２に進み、印刷（実際の印刷ではなく、アプリからみると印刷されたように見える。つまり、バックグラウンド印刷処理を行っているからであり、アプリケーションからグラフィックエンジンへの描画命令の出力を行っている）を開始すると、図１６に図示される様に、中間ファイル形式でスプールされた状態でユーザの指定を受け付けられるようにスプールファイルマネージャ３０４のユーザインタフェイスに画面に中間データ形式で作成された印刷ジョブがリストアップされる。この状態でユーザはリスト上から文書をひとつ選択して印刷させることも、いったん印刷設定を変更し、画面上で設定の内容を確認することも可能である。
【０１２１】
この場合、ユーザは複数の印刷文書を結合することを目的としているので、ステップ１９０３へ進み結合すべき全ての文書を「ストア」の設定をして印刷したかを判定する。結合対象文書で印刷（グラフィックエンジンへの描画命令の出力処理）が済んでいないものが残っている場合にはステップ１９０１へ戻り、他の結合対処文書の印刷処理を繰り返す。結合対象文書の印刷が全て終わっている場合には、結合処理へと進む。
【０１２２】
図２０は、図１６でリストアップされている複数の文書を結合する際のユーザ操作を説明したフローチャートである。
【０１２３】
まず、ステップ２００１で、図１６のユーザインタフェイス上で結合を行いたい文書をユーザに対してマウス等のポインティングデバイスを用いて選択させ、スプールファイルマネージャ３０４は文書である中間データ形式の印刷ジョブが選択された場合には、その印刷ジョブが選択されたことをユーザに報知させるように選択状態を識別報知する。これは文書アイコンのまわりの色を反転させる（図２２）ことにより実現するものであるが、ＯＳの公知技術であるので詳細な制御説明は省略する。図２２は、結合したい複数文書（この例では３文書）を選択した状態を示している。
【０１２４】
この状態からステップ２００２へと進み、ユーザに対してメニューやツールバー等から結合を指示させ、スプールファイルマネージャ３０４がジョブ結合指示がユーザからなされたと判断した場合は、印刷ジョブの結合を行う。ここで、本システムは結合対象となっている文書が保存されている中間ファイルから、それぞれの文書の設定内容をジョブ設定ファイルを読み出すことにより調べ、１つの印刷ジョブに対して１つしか設定できない設定内容、例えばフィニッシングに関する情報、があるか否かを判断し、その設定内容が指定されている場合は、図２３に示すような結合対象文書と結合文書の設定に関する確認メッセージを表示する。なお、本実施例では、１つの印刷ジョブに対して１つしか設定できない設定内容が指定されている場合は必ず設定解除メッセージを表示させるよう制御したが、これに限らず、結合対象の複数の印刷ジョブの設定内容を判断し、１つの印刷ジョブに対して１つしか設定できない設定内容が複数の印刷ジョブで異なっている場合に、設定解除メッセージを表示させるように制御してもよい。
【０１２５】
続くステップ２００３で、ユーザはこの確認メッセージの内容を確認し、結合するかしないかを選択できるようなユーザインタフェース（図２３）をスプールファイル３０４は表示するよう制御し、結合するかしないかのいずれの指示がユーザからなされたのかを判断する。
【０１２６】
ステップ２００３で、結合しない旨の指定がなされたと判断された場合には、ステップ２００１へと戻って文書（印刷ジョブ）の選択をやり直す。ステップ２００１より更にさかのぼり、図１９の印刷フローへ戻って、新たな文書を印刷しても、すでに印刷した文書を設定を変更して再印刷する場合もある。
【０１２７】
ステップ２００３で、結合する旨の指定がなされたと判断された場合は、ステップ２００４へ進み、スプールファイルマネージャ３０４は設定変更エディタ３０７を用いて、選択された複数の印刷ジョブの結合を行うよう制御する。
【０１２８】
ステップ２００４では、図２４に示すように、設定変更エディタによって結合された結合ジョブを示す結合ジョブアイコンを表示させ、結合前の複数の印刷ジョブを示すジョブアイコンを表示しないようユーザインタフェースの表示を制御する。
【０１２９】
なお、結合ジョブが生成された場合でも、結合されたそれぞれの印刷ジョブのページ描画ファイルおよびジョブ設定ファイルはスプールファイル３０３にスプールしたままであり、結合ジョブ用のジョブ出力用設定ファイルが作成されているだけである。このジョブ出力用設定ファイル内の物理ページ情報に、どのページ描画ファイルをどのページレイアウトでどこに配置させるかという情報がなされている。
【０１３０】
図２１は、複数の文書を結合する場合に設定の統一・丸めの例を示した図である。設定項目は簡略化のため、部数・Ｎページ印刷に絞っている。文書Ａは５部・４ページ印刷の設定、文書Ｂは２部・１ページ印刷の設定で印刷されたものである。
【０１３１】
この文書Ａと文書Ｂを結合する場合、部数は１部にリセット、文書Ａの部分は４ページ印刷、文書Ｂのレイアウト情報は１ページ印刷の設定にしている。部数は、印刷ジョブを扱う単位に関する設定（図１１で指定）、つまり１つの印刷ジョブに１つの設定しかできないため結合ジョブでは統一もしくは新たな値にリセットする必要がある。ページレイアウト（レイアウト情報）は個々の文書・ページに対する設定、つまり物理ページ情報（図１２の１２０３））で保持している情報であり統一する必要はないので元文書の設定のまま印刷されている。
【０１３２】
結合する際に、このように設定を変えたり変えなかったりするものがある理由を説明する。一般に、印刷設定には多くの種類があるが、これを結合後のジョブ全体で一つしか存在し得ないものと、結合ジョブ中のそれぞれのジョブやページごとに存在可能なものに分類したものが図２６の表である。
【０１３３】
結合ジョブで一つしかもてない設定というのは、ステープルの設定のように、文書Ａと文書Ｂを結合したジョブ全体にステープルするのは意味があるが、文書Ｂの部分だけステープルするのでは、結合した意味がなくなってしまうような設定を言う。これに対して、文書Ａと文書Ｂを単にステープルして出力したいような場合は、元の文書で設定した４ページ印刷・１ページ印刷という設定は保存したい。実際、１ページ上に複数のページを印刷する設定は、印刷する用紙の面に対して面付けする設定であるので、結合する際にジョブ全体でまとめる必要がない。このような、設定項目は結合後も混在することが可能である。
【０１３４】
ステップ２００３の確認メッセージは、結合後であっても設定の混在が可能なシステムにおいて、混在させる設定項目や設定を統一する設定項目についてユーザに確認を求めている。上述の図２３は、設定を統一する項目のみをユーザに提示している。実際の設定項目は多くの種類があるので、確認メッセージは全ての項目を列挙するのでなく、図２３のように代表的なものだけを呈する形式にする方が使い勝手がよい。
【０１３５】
図２９は、中間ファイルの論理的構造を説明した図である。大きく分けて、印刷ジョブの設定情報部分とジョブの各ページのデータとが保存されている。印刷ジョブの設定情報部分は上述のジョブ設定ファイル（ＳＤＦ）に対応し、Ｗｉｎｄｏｗｓ環境では、ＤＥＶＭＯＤＥやＰＤＥＶＩＣＥと呼ばれる構造体の情報を始め、印刷ダイアログで設定された項目がすべて保存されている。各ページのデータは上述のページ描画ファイル（ＰＤＦ）に相当し、システムの実装に応じてページ単位で別の実体を持つ構造でも、図２９のように全てを１ファイルに収める構造でもよい。複数ジョブを結合する時には、対象となっている文書の中間ファイルからＳＤＦ部をスキャンし、設定の内容を比較して、設定の統一・丸め処理を行う。
【０１３６】
次に、結合処理の内部データ構造について説明する。図２７は、スプールファイルマネージャ３０４上にリストアップされている状態における、ジョブを管理するデータ構造（ジョブ管理リスト）の一例である。スプールファイルマネージャ３０４は中間ファイルがスプールされるたびに、ジョブ管理リストに中間ファイルのＩＤを追加する。中間ファイルのＩＤは、ＩＤから中間ファイルを特定可能な情報で、たとえば、中間ファイルがファイルシステム中に存在するものであればファイル名、メモリ中に存在するものであればポインタなどがＩＤとして用いられる。
【０１３７】
図２８は結合ジョブを管理する場合にスプールファイルマネージャ３０４がジョブ管理リストの一例である。この例では、結合ジョブと通常のジョブとを区別するためにジョブが結合ジョブであるかどうかのフラグとジョブＩＤのペアで一つのジョブを表現している。フラグ通常のジョブを示す場合には、中間ファイルのＩＤが格納されている。フラグが結合ジョブを示す場合には、結合ジョブへのＩＤが格納されている。
【０１３８】
ここでは、結合ジョブはメモリ中で管理されているので、結合ジョブを表現する構造体へのポインタが格納されている。結合ジョブを表現する構造体は、結合ジョブ中のジョブ数と、結合ジョブ中の各印刷ジョブの中間ファイルのＩＤから構成されている。この様に、実際にデータが格納された中間ファイルを直接操作するのではなく、ジョブＩＤといる論理的な値を操作することで、ジョブ操作に必要とするリソースを節約することが可能である。また、ジョブの結合を繰り返しても中間ファイルの構造が保存されているためジョブをスプールされた時点の状態に復帰することも可能となる。
【０１３９】
図３２は、スプーラ３０２およびスプールファイルマネージャ３０４でのジョブ操作処理を示したフローチャートである。
【０１４０】
まず、ステップ３２０１において、スプーラ３０２もしくはスプールファイルマネージャ３０４はユーザからの通知、印刷開始通知を受け付ける。
【０１４１】
ステップ３２０２において、スプーラ３０２は、受け付けた通知がストア設定のジョブ印刷通知であるかを判定する。ステップ３２０２でストア設定の印刷開始通知だと判定された場合は、ステップ３２０３へ進み、スプールファイルマネージャ３０４は自身で保持しているジョブ管理リストに、通知された印刷ジョブの中間ファイルＩＤを登録し、次の通知を受け付けるために再びステップ３２０１へ戻る。
【０１４２】
ステップ３２０２でストア設定のジョブ印刷開始通知では無いと判定された場合は、ステップ３２０４へ進み、スプールファイルマネージャ３０４は、図１６におけるジョブ結合の指示通知であるかの判定を行う。結合の指示通知であった場合は、ステップ３２０５へ進み、スプールファイルマネージャ３０４は設定変更エディタ３０７を用いて、結合ジョブを管理するための結合ジョブ構造体を作成する。
【０１４３】
そしてステップ３２０６へ進み、スプールファイルマネージャ３０４は、現在選択されている結合対象ジョブの中間ファイルＩＤを全てステップ３２０５で作成した結合ジョブ構造体へコピーする。次にステップ３２０７へ進み、スプールファイルマネージャ３０４は、保持しているジョブ管理リストから、結合ジョブ構造体へコピーされたジョブを削除し、新たにステップ３２０５で作成した結合ジョブ構造体をジョブ管理リストに追加する。そして再び、ステップ３２０１へと戻り次の入力を待つ。
【０１４４】
ステップ３２０４で結合の指示で無い場合は、更にステップ３２０８へ進み、スプールファイルマネージャ３０４は、ジョブの削除の指示かどうかを判定する。ジョブの削除指示である場合、ステップ３２０９へ進み、削除を指定されているジョブが結合ジョブであるか通常のジョブであるかを判定する。ここで結合ジョブであると判定された場合は、ステップ３２１０へ進み、ジョブ管理リストに登録されているポインタの先にある結合ジョブ構造体を削除し、ステップ３２１１へ進み、ジョブ管理リストから削除指示されたジョブを削除する。
【０１４５】
ステップ３２０９で結合ジョブでは無いと判定された場合は、ステップ３２１０を飛び越してステップ３２１１へ進み、スプールファイルマネージャ３０４は、ジョブをジョブ管理リストから削除する。そして再び、ステップ３２０１へと戻り次の入力を待つ。
【０１４６】
ステップ３２０８で削除の指示で無いと判定された場合は、ステップ３２１２へ進み、スプールファイルマネージャ３０４は、ジョブの複製指示であるか判定する。ジョブの複製指示であると判定された場合は、スプールファイルマネージャ３０４は、現在選択されている複製対象ジョブＩＤをジョブ管理リストに追加する。これは結合ジョブであっても同様で、結合ジョブ構造体を示すポインタをコピーすればよい。ただし、単にコピーする方式では、ジョブを削除する場合の管理が複雑になるため、ジョブの参照回数を別リストで保存しておく必要がある。もしくは、中間ファイルや結合ジョブ構造体自体をコピーし別のＩＤを付けて管理する方式でもよい。この場合、削除の管理は簡単であるが、コピーに要する時間やコピーされた中間ファイルを保存するためのリソースを余分に消費することになるので、システムの性格に応じて使い分ける必要がある。
【０１４７】
そして再び、ステップ３２０１へと戻り次の入力を待つ。ステップ３２１２でジョブの複製で無いと判定された場合は、ステップ３２１４へ進み、スプールファイルマネージャ３０４は、ジョブの分解指示であるかを判定する。ジョブの分解指示であると判定された場合は、ステップ３２１５へ進み、スプールファイルマネージャ３０４は、分解対象となっているジョブのジョブポインタが指し示す結合ジョブ構造体中に保持されている中間ファイルＩＤを全てジョブ管理リストへ戻し、分解対象のジョブをジョブ管理リストから削除し結合ジョブ構造体も削除する。そしてスプールファイルマネージャ３０４は、図１６のユーザインタフェース画面に、単体ジョブのジョブアイコンを表示させる。
【０１４８】
また、ステップ３２１５へ進む前に、図２５のように本当に分解処理をしてもいいのかを確認するメッセージを出してもよい。そして再び、ステップ３２０１へと戻り次の入力を待つ。
【０１４９】
次に、結合ジョブの操作について説明する。結合ジョブを印刷プレビューする際に使用するデータ構造では、図１０〜図１４に示したようにジョブ−用紙（表／裏）−論理ページというような構成で管理しているが、このデータ構造を構成するための結合ジョブの情報は図２８の結合ジョブ構造体（ジョブ出力用設定ファイル）に示すようなジョブ単位の管理となっている。そのため、本システムでは、結合ジョブを構成する印刷ジョブ単位の操作を行うことができる。
【０１５０】
図３０は、結合ジョブの設定を変更するためのユーザインタフェイスの一例を示している。３００１は、結合ジョブに含まれている印刷ジョブの一覧が表示されている。３００２で示されるジョブ順序変更インタフェースを操作することでジョブの順序を変更することが可能である。３００２の一番上のボタンは、選択された印刷ジョブを結合ジョブ内の最初（一番上）の移動するボタンである。次のボタンは、選択された印刷ジョブを１つ上の印刷ジョブとの順番を入れ替えるボタンである。次のボタンは、選択された印刷ジョブを１つ下の印刷ジョブとの順番を入れ替えるボタンである。一番下のボタンは、選択された印刷ジョブを結合ジョブ内の最後（一番下）に移動するボタンである。このように、順序変更ボタンを操作することにより、結合ジョブ内での印刷ジョブの順序を変更させることが可能となる。つまり、従来技術でなきなかった、アプリケーションＡでジョブ１、ジョブ３、ジョブ５と続けてスプールしておき、次のアプリケーションＢでジョブ２を、アプリケーションＣでジョブ４を順次スプールし、ジョブ結合した後で、この順序変更ボタンを操作することにより、ジョブ１、ジョブ２、ジョブ３、ジョブ４、ジョブ５と順序を整列させることができ、操作性が格段に向上する。なお、順序変更にともなって、ジョブ出力用設定ファイルの物理ページの番号（もしくはジョブＩＤ）が更新されることになる。
【０１５１】
また、３００３で示されるジョブ削除インタフェースを操作することで、結合ジョブから印刷ジョブの削除を行うことが可能である。なお、印刷ジョブの削除を行うことによって、ジョブ出力用設定ファイル内の該当する物理ページもしくは論理ページの番号が更新されることになる。
【０１５２】
図３３はジョブの順序入れ替えとジョブ削除をした際の処理フローを示すフローチャートである。
【０１５３】
ステップ３３１０で、スプールファイルマネージャ３０４は、ユーザからの入力を受け付ける。
【０１５４】
ステップ３２０２に進み、スプールファイルマネージャ３０４は、ユーザからの入力がジョブの削除要求であるかを判定する。ジョブの削除要求であると判定された場合には、ステップ３３０３へ進み、結合ジョブ中の最後のジョブであるかどうかの判定を行う。削除を実行した結果結合ジョブ中にデータが存在しなくなるような場合には何もせずにステップ３３０１へ戻り次の入力を待つ。ユーザインタフェースの処理によって、削除の結果データがなくなるような場合には最初からユーザが削除を選択できないようにしてもかまわない。
【０１５５】
ステップ３３０３で選択されたジョブを削除してもデータがなるなら無いと判定されたらステップ３３０４へ進み、スプールファイルマネージャ３０４は、削除を指定されたジョブのＩＤを結合ジョブ構造体から削除する。図３１の（２）はステップ３３０４の処理でのデータ構成変化の例である。この例では、第２ジョブを削除している。結合ジョブ構造体から第２ジョブを示すジョブＩＤを削除して、空いた位置にそれ以降に並んでいるジョブをずらす。さらに、結合ジョブ中のジョブ数を保持しているデータを一つ減らすことで、削除処理が完了する。
【０１５６】
ステップ３３０２で、ジョブ削除の要求では内と判定された場合にはステップ３３０５へ進み、スプールファイルマネージャ３０４は、ジョブの順序入れ替えの指示であるかどうかの判定を行う。ステップ３３０５でジョブの順序変更であると判定された場合は、ステップ３３０６へと進み、現在選択されている移動対象のジョブの移動先となっているジョブとのＩＤを入れかえる。図３１の（１）はジョブの順序を変更するときのデータ構成変化で、第２ジョブを一番先頭に持ってくる場合の例を示している。結合ジョブ構造体の第１ジョブの位置に保持されているジョブＩＤと第２ジョブの位置に保持されているジョブＩＤを入れ替えることでジョブの順序変更が実現される。ステップ３３０５でジョブの順序入れ替え無いと判定された場合は、その指示に応じた処理を行いステップ３３０１へと戻る。
【０１５７】
次に、ページ単位の操作について説明する。図３０の３００４のコントロールで論理ページ単位でページを削除することができる。この場合、物理ページ情報ファイルを操作することになる。図３０の３００５でプレビューが表示されているので、ジョブ管理リストから物理ページ情報ファイルをすでに作成済みである。
【０１５８】
図３４はジョブ中の論理ページを削除する処理を説明したフローチャートである。結合ジョブを対象としているが、ジョブ境界の処理が違うだけで、単独のジョブでも同じフローとなる。
【０１５９】
まずステップ３４０１で、スプールファイルマネージャ３０４は、削除対象のページがジョブの最後のデータであるかどうかを判定する。削除することによってジョブ中からデータが存在しなくなってしまうような場合には、削除処理を行わないで終了する。
【０１６０】
ステップ３４０１で削除してもよいと判定された場合は、ステッ３４０２へと進み、物理ページ情報ファイルからプレビュー上で選択されている論理ページに対応するページを検索する。そして、ステップ３４０３へ進み、そのファイルが結合ジョブの最終ページであるかどうかを判定する。
【０１６１】
最終ページで無い場合は、ステップ３４０５へ進みさらに、ジョブ境界、つまり、結合ジョブを構成している要素のジョブの最終ページであるかの判定を行う。ここでジョブ境界の判定を行うのは、ジョブの境界で特別な処理をする必要がある場合だけでよい。ジョブ境界の特別な処理の例を挙げると、両面印刷でジョブＡの最終ページが表面に印刷されている場合に、その用紙の裏側に、続くジョブＢの先頭ページを印刷するかどうかを設定できるような場合は、設定に応じて、最終ページの裏側に何も印刷せずに、次の用紙の表面にジョブＢの先頭ページが印刷される様にするか、続けて裏面にジョブＢの先頭ページを印刷するようにするか、物理ページ情報ファイルを構成し分けるようなする処理がある。
【０１６２】
ステップ３４０５でジョブの境界であると判定された場合は、ステップ３４０７に進み、ジョブ境界の処理を行いステップ３４０８へ進む。ステップ３４０５でジョブ境界ページで無いと判定された場合は、ステップ３４０８に進む。ステップ３４０８では、スプールファイルマネージャ３０４は、空いたページをつめる為に、処理対象の論理ページの次のページをずらす処理をする。そしてステップ３４０９へ進み処理対象ページを一つ後ろにずらしてステップ３４０３へと戻る。順次繰り返した結果結合ジョブの最終ページまで処理が進むと、ステップ３４０３で最終ページであると判定され、ステップ３４０４へ進む。
【０１６３】
ステップ３４０４ではページをずらした結果、現在の処理対象である最終物理ページ上に論理ページがなくなったかを判定する。物理ページ上に表示すべき論理ページが無い場合には、ステップ３４０５へ進み物理ページ情報自体を削除する。物理ページが空で無い場合には、物理ページを削除せずにそのまま終了する。
【０１６４】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（複写機、プリンタ、ファクシミリ装置など）に適用してもよい。
【０１６５】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。
【０１６６】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１６７】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＤＶＤ、ＭＯ、ＲＯＭなどを用いることができる。
【０１６８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１６９】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１７０】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）にインストールし、そのインストールされたプログラムコードを読出し実行することによっても、達成される。
【０１７１】
この場合、インターネットのダウンロードサービス等でダウンロードされ、インストールされたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体は本発明を構成することになる。
【０１７２】
【発明の効果】
以上説明したように、本発明は、印刷装置に送信すべき印刷データを生成する情報処理装置であって、アプリケーションにより生成された印刷すべきデータを中間コード形式の印刷ジョブに変換し、該印刷すべきデータの印刷設定情報と関連付けて一時保存する中間コード変換手段と、前記中間コード変換手段により変換された複数の異なる印刷すべきデータに対応する複数の中間コード形式の印刷ジョブを結合して１つの結合ジョブにする結合指示をする結合指示手段と、前記結合指示手段により複数の印刷ジョブを１つの結合ジョブにする結合指示がなされた場合に、前記一時保存されている当該複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない設定内容が当該複数の印刷ジョブで異なっているかを判断する判断手段と、前記判断手段により１つの印刷ジョブに対して１つしか設定できない設定内容が複数の印刷ジョブで異なっていると判断された場合に、当該設定内容を統一する旨の確認メッセージを表示する確認メッセージ表示手段と、前記確認メッセージ表示手段により前記確認メッセージを表示した後で、１つの印刷ジョブに対して１つしか設定できない設定内容を統一した結合ジョブ用の印刷設定情報を生成する設定統一手段とを有するので、印刷設定情報を有した複数の印刷ジョブの結合が可能となり、結合時に１つの印刷ジョブに対して１つしか設定できない設定内容を統一することを確認メッセージで確認でき、更にその結合時の印刷設定の不具合をなくすことができる。
【０１７３】
また、前記確認メッセージ表示手段は、前記結合対象の複数の印刷ジョブの印刷設定情報を解析し、１つの印刷ジョブに対して１つしか設定できない情報が異なる場合に、当該設定を統一するか、印刷ジョブの結合を行わないかを選択させるよう確認するための確認メッセージを表示するので、ユーザの所望としない結合を回避することが可能となる。
【０１７４】
また、前記中間コード形式の印刷ジョブは、ページ単位のページ描画ファイルとして一時保存されているので、ジョブの結合時等、データの扱いが簡単になる。
【０１７５】
また、前記結合ジョブ用の印刷設定情報は、物理ページにレイアウトされるページ描画ファイルを指定する情報が付加されているので、結合ジョブ自体にはページ描画ファイルのような中間データ形式の描画データは持たなくて済むので結合時の処理が軽くなる。
【０１７６】
また、前記印刷設定情報は、印刷ジョブ単位の印刷設定ファイルとして一時保存されているので、ジョブが扱い安くなる。
【０１７７】
また、前記印刷ジョブもしくは前記結合ジョブの印刷設定情報に基づいたプレビューを表示するよう制御するプレビュー表示制御手段を更に有するので、ユーザに印刷前に印刷結果を確認することが可能となる。
【０１７８】
また、前記結合ジョブ内の複数の印刷ジョブを操作し、印刷ジョブの順序を入れ替える順序制御手段を更に有するので、ユーザが中間コード作成時には特に印刷順序を考慮しないで作成でき、いつでもユーザの好みに合わせて順序を決定することができる。
【０１７９】
また、前記結合ジョブ内の複数の印刷ジョブを操作し、特定の印刷ジョブの削除を行うジョブ削除手段を更に有するので、再度結合ジョブを作り直す必要がなくなる。
【０１８０】
また、前記結合ジョブに対して、結合前の複数の印刷ジョブへ分割するジョブ分割手段を更に有するので、それぞれの単体ジョブに戻せるので、ユーザは安心して結合ジョブの生成を試すことが可能となる。
【０１８１】
また、前記印刷ジョブもしくは前記結合ジョブを指定させ、指定された印刷ジョブの複製を作成するジョブ複製手段を更に有するので、あるジョブの中に別のジョブをいれたい場合にも複製を作りページ制御することが可能となる。
【０１８２】
また、前記印刷ジョブもしくは前記結合ジョブは、印刷設定情報に基づいて、当該ジョブの基となる中間コード形式のデータ作成時の初期状態の戻す設定初期化手段を更に有するので、ユーザは安心してジョブの編集などの操作を行えるようになる。
【０１８３】
また、前記印刷ジョブもしくは前記結合ジョブ内の論理ページに対して、指定するページの削除を行うページ編集手段を更に有するので、ユーザの所望とするジョブ操作が可能となり、操作性および自由度が向上する。
【０１８４】
また、前記中間コード変換手段により一時保存された中間コード形式のデータに基づいて、前記印刷装置に送信すべき印刷データを生成する印刷データ生成手段を更に有するので、所望とするジョブを生成した後でアプリケーションを再度起動することなくそのまま印刷することができる。
【０１８５】
また、前記中間コード変換手段により一時保存された中間コード形式のデータをＯＳの描画手段で解釈可能な描画命令に変換して出力する描画命令生成手段と、前記アプリケーションからＯＳの描画手段を介して受け取った印刷命令は前記中間データ変換手段に渡し、前記描画命令生成手段からＯＳの描画手段を介して受け取った印刷命令は前記印刷データ生成手段に渡す印刷命令割り振り手段とを更に有するので、従来の印刷データ変換手段を用いることができ、このような仕組みを提供する場合にも開発工程が少なくて済む。
【０１８６】
また、前記描画命令はＧＤＩ関数であり、前記印刷命令はＤＤＩ関数であり、前記印刷データはプリンタ言語であるので、一般的なＯＳに対して本仕組みを提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施例を示す印刷制御装置の構成を説明するブロック図である。
【図２】プリンタが接続されたホストコンピュータの典型的なプリントシステムの構成を示すブロック図である。
【図３】アプリケーションからの印刷命令をプリンタ制御コマンドに変換する前に、一旦中間コードスプールするプリントシステムの構成を示すブロック図である。
【図４】本発明におけるプリンタについて説明した図である。
【図５】スプーラ３０２における処理を示したフローチャートである。
【図６】スプールファイルマネージャ３０４における印刷制御について示したフローチャートである。
【図７】デスプーラ３０５における処理を示したフローチャートである。
【図８】印刷設定画面の一例である。
【図９】印刷スプール設定画面の一例である。
【図１０】スプールファイルマネージャ３０４からデスプーラ３０５に対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示した図である。
【図１１】スプールファイルマネージャ３０４からデスプーラ３０５に対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示した図である。
【図１２】スプールファイルマネージャ３０４からデスプーラ３０５に対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示した図である。
【図１３】スプールファイルマネージャ３０４からデスプーラ３０５に対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示した図である。
【図１４】スプールファイルマネージャ３０４からデスプーラ３０５に対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示した図である。
【図１５】設定変更エディタ３０７における設定変更処理について示したフローチャートである。
【図１６】スプールファイルマネージャ３０４でスプールされている印刷ジョブ一覧を表示する画面の一例である。
【図１７】プレビューア３０６の画面の一例である。
【図１８】設定変更エディタ３０７の画面の一例である。
【図１９】図１６に示すようにスプールファイルマネージャ３０４にスプールする際のユーザの操作について示したフローチャートである。
【図２０】ジョブ結合時のユーザの操作について示したフローチャートである。
【図２１】複数文書を結合する際の、設定の統一・丸めを説明するための概念図である。
【図２２】複数文書を結合するために、結合の対象となる複数の文書を選択するユーザインタフェイスの一例である。
【図２３】結合時に設定の統一・丸めの確認を求めるユーザインタフェイスの一例である。
【図２４】図２２で選択された複数文書が結合されたことを示すユーザインタフェイスの一例である。
【図２５】ジョブを分解する際の確認メッセージの一例である。
【図２６】結合する際に設定統一・丸めを行う際に、統一しない設定と統一する設定との分類の一例である。
【図２７】スプールファイルマネージャ３０４が複数の印刷ジョブを管理する際のデータ構造の一例である。
【図２８】スプールファイルマネージャ３０４が複数の印刷ジョブと複数の結合ジョブを管理する際のデータ構造の一例である。
【図２９】中間ファイルの内部構造の一例である。
【図３０】結合ジョブの編集を行う画面の一例である。
【図３１】結合後のジョブをジョブ単位で順序入れ替えや、削除を行う際のデータ処理の一例である。
【図３２】スプールファイルマネージャ３０４におけるジョブの編集処理の一例を示すフローチャートである。
【図３３】設定変更エディタ３０７における結合ジョブのジョブ単位編集処理をした際のスプールファイルマネージャ３０４での処理の一例を示すフローチャートである。
【図３４】設定変更エディタ３０７でページ単位の削除をした場合の、スプールファイルマネージャ３０４での処理の地位例を示すフローチャートである。
【符号の説明】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
１２  ＣＰＵ
１３  ＲＯＭ
１９  ＲＡＭ
３０００  ホストコンピュータ
１５００  プリンタ
【図１】
0003631068.tif 000002
【図２】
0003631068.tif 000003
【図３】
0003631068.tif 000004
【図４】
0003631068.tif 000005
【図５】
0003631068.tif 000006
【図６】
0003631068.tif 000007
【図７】
0003631068.tif 000008
【図８】
0003631068.tif 000009
【図９】
0003631068.tif 000010
【図１０】
0003631068.tif 000011
【図１１】
0003631068.tif 000012
【図１２】
0003631068.tif 000013
【図１３】
0003631068.tif 000014
【図１４】
0003631068.tif 000015
【図１５】
0003631068.tif 000016
【図１６】
0003631068.tif 000017
【図１７】
0003631068.tif 000018
【図１８】
0003631068.tif 000019
【図１９】
0003631068.tif 000020
【図２０】
0003631068.tif 000021
【図２１】
0003631068.tif 000022
【図２２】
0003631068.tif 000023
【図２３】
0003631068.tif 000024
【図２４】
0003631068.tif 000025
【図２５】
0003631068.tif 000026
【図２６】
0003631068.tif 000027
【図２７】
0003631068.tif 000028
【図２８】
0003631068.tif 000029
【図２９】
0003631068.tif 000030
【図３０】
0003631068.tif 000031
【図３１】
0003631068.tif 000032
【図３２】
0003631068.tif 000033
【図３３】
0003631068.tif 000034
【図３４】
0003631068.tif 000035