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