(57)【要約】【課題】留め置き印刷において実行される先行処理の優先順序を好適に決定し、ユーザの待機時間を低減する仕組みを提供する。【解決手段】本実施形態に係る画像形成装置は、外部装置から印刷データを受信して保持し、操作部を介したユーザ操作による印刷指示に従って、保持している印刷データに基づく画像データを用いてシートに画像形成（留め置き印刷）を行う。また、本画像形成装置は、印刷データを受信してから印刷指示を受け付けるまでの間に印刷データに基づく画像データの生成を開始する先行処理を実行。さらに、本画像形成装置は、第１の印刷データに基づく第１の先行処理中に、特定のユーザに関連づけられた第２の印刷データを受信したことに基づき、第１の先行処理を中断して、第２の印刷データに基づく第２の先行処理を開始するよう制御する。【選択図】  図４Ａ
2019098701.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から印刷データを受信して保持し、操作部を介したユーザ操作による印刷指示に従って、保持している前記印刷データに基づく画像データを用いてシートに画像形成を行う画像形成装置であって、
印刷データを受信してから前記印刷指示を受け付けるまでの間に印刷データに基づく画像データの生成を開始する先行処理を実行する先行手段と、
第１の印刷データに基づく第１の先行処理中に、特定のユーザに関連づけられた第２の印刷データを受信したことに基づき、前記第１の先行処理を中断して、前記第２の印刷データに基づく第２の先行処理を開始するよう制御する制御手段と
を備えることを特徴とする画像形成装置。
【請求項２】
外部装置から印刷データを受信して保持し、操作部を介したユーザ操作による印刷指示に従って、保持している前記印刷データに基づく画像データを用いてシートに画像形成を行う画像形成装置であって、
印刷データを受信してから印刷指示を受け付けるまでの間に印刷データに基づく画像データの生成を開始する先行処理を実行する先行手段と、
第１の印刷データに基づく第１の先行処理の後に第２の印刷データに基づく第２の先行処理が予約登録されている状態において、前記第１の先行処理中に特定のユーザに関連づけられた第３の印刷データを受信したことに基づき、前記第１の先行処理が終了した後に前記第３の印刷データに基づく第３の先行処理を開始するよう制御する制御手段と
を備えることを特徴とする画像形成装置。
【請求項３】
各ユーザにおける印刷ジョブの履歴情報から各ユーザに関連付けられた印刷データに基づく先行処理を実行する優先順位を決定する決定手段をさらに備え、
前記特定のユーザとは、前記第１の印刷データに関連するユーザの前記優先順位よりも高い優先順位を有するユーザであることを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記決定手段は、前記外部装置から印刷データを受信した時刻から、該印刷データへの前記印刷指示を受け付けた時刻までの滞留時間の平均である平均滞留時間に従って前記優先順位を決定することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記決定手段は、各ユーザの印刷ジョブの履歴情報から滞留時間の極大値と極小値とを除いて前記平均滞留時間を取得することを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記決定手段は、さらに、前記滞留時間の加重平均を用いて前記平均滞留時間を取得することを特徴とする請求項４又は５に記載の画像形成装置。
【請求項７】
前記決定手段は、所定の時間帯ごとの前記平均滞留時間を取得することを特徴とする請求項４乃至６の何れか１項に記載の画像形成装置。
【請求項８】
ユーザ操作によって、所定のユーザの前記優先順位を設定する設定手段をさらに備え、
前記決定手段は、前記設定手段によって設定された所定のユーザの優先順位を反映するように、各ユーザの優先順位を決定することを特徴とする請求項３乃至７の何れか１項に記載の画像形成装置。
【請求項９】
前記決定手段は、各ユーザが前記外部装置を介して前記画像形成装置にジョブを保持させ、該画像形成装置において印刷指示を行った印刷ジョブの数を示すジョブの滞留数に従って前記優先順位を決定することを特徴とする請求項３に記載の画像形成装置。
【請求項１０】
外部装置から印刷データを受信して保持し、操作部を介したユーザ操作による印刷指示に従って、保持している前記印刷データに基づく画像データを用いてシートに画像形成を行う画像形成装置の制御方法であって、
先行手段が、印刷データを受信してから前記印刷指示を受け付けるまでの間に印刷データに基づく画像データの生成を開始する先行処理を実行する先行工程と、
制御手段が、第１の印刷データに基づく第１の先行処理中に、特定のユーザに関連づけられた第２の印刷データを受信したことに基づき、前記第１の先行処理を中断して、前記第２の印刷データに基づく第２の先行処理を開始するよう制御する制御工程と
を含むことを特徴とする画像形成装置の制御方法。
【請求項１１】
外部装置から印刷データを受信して保持し、操作部を介したユーザ操作による印刷指示に従って、保持している前記印刷データに基づく画像データを用いてシートに画像形成を行う画像形成装置の制御方法であって、
先行手段が、印刷データを受信してから印刷指示を受け付けるまでの間に印刷データに基づく画像データの生成を開始する先行処理を実行する先行工程と、
制御手段が、第１の印刷データに基づく第１の先行処理の後に第２の印刷データに基づく第２の先行処理が予約登録されている状態において、前記第１の先行処理中に特定のユーザに関連づけられた第３の印刷データを受信したことに基づき、前記第１の先行処理が終了した後に前記第３の印刷データに基づく第３の先行処理を開始するよう制御する制御工程と
を含むことを特徴とする画像形成装置の制御方法。
【請求項１２】
外部装置から印刷データを受信して保持し、操作部を介したユーザ操作による印刷指示に従って、保持している前記印刷データに基づく画像データを用いてシートに画像形成を行う画像形成装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
先行手段が、印刷データを受信してから前記印刷指示を受け付けるまでの間に印刷データに基づく画像データの生成を開始する先行処理を実行する先行工程と、
制御手段が、第１の印刷データに基づく第１の先行処理中に、特定のユーザに関連づけられた第２の印刷データを受信したことに基づき、前記第１の先行処理を中断して、前記第２の印刷データに基づく第２の先行処理を開始するよう制御する制御工程と
を含むことを特徴とするプログラム。
【請求項１３】
外部装置から印刷データを受信して保持し、操作部を介したユーザ操作による印刷指示に従って、保持している前記印刷データに基づく画像データを用いてシートに画像形成を行う画像形成装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
先行手段が、印刷データを受信してから印刷指示を受け付けるまでの間に印刷データに基づく画像データの生成を開始する先行処理を実行する先行工程と、
制御手段が、第１の印刷データに基づく第１の先行処理の後に第２の印刷データに基づく第２の先行処理が予約登録されている状態において、前記第１の先行処理中に特定のユーザに関連づけられた第３の印刷データを受信したことに基づき、前記第１の先行処理が終了した後に前記第３の印刷データに基づく第３の先行処理を開始するよう制御する制御工程と
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年のネットワーク環境の普及に伴い、複数のユーザで複数の画像形成装置を共有して利用することが一般的になってきた。それに伴い、機密性の高い印刷物を出力する際に他ユーザに見られないように、画像形成装置でユーザ認証を実行してから印刷実行を行う「留め置き印刷」の要望が高まっている。
【０００３】
特許文献１には、サーバ機能を有する画像形成装置内でホストコンピュータから送信された印刷ジョブを一時的に蓄積し、蓄積された印刷ジョブは画像形成装置上でユーザ認証を行うことにより、印刷実行される技術が提案されている。しかし、留め置き印刷ではユーザからの印刷指示が入力された後に印刷ジョブのレンダリング処理を開始するためユーザの出力待ちが発生する。そのため、ユーザの出力待ちを低減する仕組みとして、印刷指示が入力される前に、留め置きされた後に印刷ジョブ内のページ記述言語で記載される印刷データを処理して画像データを生成する「先行レンダリング処理（以降、先行処理と略記する。）」を行う技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４０３３８５７号公報
【特許文献２】特開平１０−９０５１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術には以下に記載する課題がある。例えば、上記従来技術では、一台の画像形成装置に対して複数のユーザがほぼ同時に印刷ジョブを投入する場合、画像形成装置はジョブの投入順で先行処理を実行する。つまり、画像形成装置に留め置かれた順で先行処理が実行される。この場合、ユーザが留め置かれた印刷ジョブの印刷処理を実行する際に当該印刷ジョブの先行処理がまだ完了してない可能性がある。それにより、先行処理の出力待ち時間の短縮効果がなくなる場合がある。
【０００６】
この課題に対して、特許文献２では、ジョブの優先度を細かく設定し、設定された優先度の順序でレンダリング処理を実行する技術が提案されている。しかし、優先順序を設定することは、ユーザにとっては煩わしい作業が増え、他のユーザに優先順序の設定を変更されて意図しない結果となる可能性もあり、改善が望まれている。
【０００７】
本発明は、上述の問題の少なくとも一つに鑑みて成されたものであり、留め置き印刷において実行される先行処理の優先順序を好適に決定し、ユーザの待機時間を低減する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、外部装置から印刷データを受信して保持し、操作部を介したユーザ操作による印刷指示に従って、保持している前記印刷データに基づく画像データを用いてシートに画像形成を行う画像形成装置であって、印刷データを受信してから前記印刷指示を受け付けるまでの間に印刷データに基づく画像データの生成を開始する先行処理を実行する先行手段と、第１の印刷データに基づく第１の先行処理中に、特定のユーザに関連づけられた第２の印刷データを受信したことに基づき、前記第１の先行処理を中断して、前記第２の印刷データに基づく第２の先行処理を開始するよう制御する制御手段とを備えることを特徴とする。
【０００９】
また、本発明は、外部装置から印刷データを受信して保持し、操作部を介したユーザ操作による印刷指示に従って、保持している前記印刷データに基づく画像データを用いてシートに画像形成を行う画像形成装置であって、印刷データを受信してから印刷指示を受け付けるまでの間に印刷データに基づく画像データの生成を開始する先行処理を実行する先行手段と、第１の印刷データに基づく第１の先行処理の後に第２の印刷データに基づく第２の先行処理が予約登録されている状態において、前記第１の先行処理中に特定のユーザに関連づけられた第３の印刷データを受信したことに基づき、前記第１の先行処理が終了した後に前記第３の印刷データに基づく第３の先行処理を開始するよう制御する制御手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、留め置き印刷において実行される先行処理の優先順序を好適に決定し、ユーザの待機時間を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】システム構成の一例を示す図。
【図２】印刷処理フローを示すシーケンス。
【図３】印刷ジョブの留め置き処理を説明する図。
【図４Ａ】優先順序番号に基づき先行処理を開始するフローチャート。
【図４Ｂ】留め置き対象のジョブを受け付けた際に優先順序番号に基づき先行処理を制御するフローチャート。
【図５】単純平均を用いて算出した平均滞留時間に基づき優先順序番号を決定するフローチャート。
【図６】中央値平均を用いて算出した平均滞留時間に基づき優先順序番号を決定するフローチャート。
【図７】加重平均を用いて算出した平均滞留時間に基づき優先順序番号を決定するフローチャート。
【図８】時間帯別平均滞留時間に基づき優先順序番号を決定するフローチャート。
【図９】ユーザの優先順序番号を手動で設定するフローチャート。
【図１０】ジョブ滞留数に基づき優先順序番号を決定するフローチャート。
【図１１】全ユーザの画像形成装置 印刷履歴テーブル。
【図１２】（Ａ）ユーザトータル印刷情報テーブル、（Ｂ）全ユーザの平均滞留時間に基づく優先順序テーブル、（Ｃ）全ユーザの先行処理待ちテーブル。
【図１３】（Ａ）ユーザＡの中央値テーブル、（Ｂ）ユーザＡの滞留時間帯別のジョブ数テーブル。
【図１４】（Ａ）ユーザＡの時間帯別テーブル、（Ｂ）ユーザＢの時間帯別テーブル。
【図１５】（Ａ）全ユーザの時間帯別平均滞留時間に基づく優先順序テーブル、（Ｂ）ある時間帯の全ユーザの先行処理テーブル。
【図１６】（Ａ）優先度設定対象ユーザ選択画面、（Ｂ）ユーザ優先度の設定画面、（Ｃ）ユーザ優先順序テーブル。
【図１７】（Ａ）投入順による先行処理実行順序テーブル、（Ｂ）手動設定優先度による先行処理実行順序テーブル。
【図１８】（Ａ）投入順による先行処理実行順序テーブル、（Ｂ）ジョブ滞留数による優先順序テーブル。
【発明を実施するための形態】
【００１２】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１３】
＜第１の実施形態＞
＜システムの構成＞
以下では、添付図面を参照して、本発明の第１の実施形態について説明する。まず、図１は、本発明の一実施例を示す画像形成装置を有する印刷システムの構成を説明する。図１（Ａ）に示す画像形成装置１０１〜１０３は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）、ＬＢＰ（Ｌａｓｅｒ  Ｂｅａｍ  Ｐｒｉｎｔｅｒ）のいずれであってもよい。画像形成装置１０１〜１０３は、留め置き印刷可能な画像形成装置であればよい。また、画像形成装置１０１〜１０３のプリント方式はどのようなものであってもよい。
【００１４】
図１のシステムでは、３台の画像形成装置を例として示しているが、本発明の印刷システムでは１台以上の任意の画像形成装置を有する構成であればよい。画像形成装置１０１〜１０３は、イーサネット（登録商標）等のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０５を介し、各種指示を行うホストコンピュータ（ＰＣ）１０４と接続される。画像形成装置１０１〜１０３は、ＰＣ１０４からの印刷指示内容に応じて処理を実行する。なお、図１（Ａ）に示した構成のように複数の画像形成装置がＬＡＮ１０５を介して接続される場合は、画像形成装置は他の画像形成装置から印刷ジョブを受け取って印刷を実行することが可能である。
【００１５】
以下、画像形成装置１０１を用いて説明する構成は、画像形成装置１０２〜１０３についても同様である。従って、以下では画像形成装置１０１の構成を代表して記載し、他の画像形成装置１０２〜１０３の構成については記載を省略する。
【００１６】
画像形成装置１０１は、コントローラ１１０、プリント機構１１１、カードリーダ１１２、及び操作パネル１１３を備える。また、コントローラ１１０は、ネットワークＩ／Ｆ１２０、リーダＩ／Ｆ１２１、パネルＩ／Ｆ１２２、ＣＰＵ１２３、ＨＤＤ１２４、ＲＡＭ１２５、ＲＯＭ１２６、デバイスＩ／Ｆ１２７、ＲＩＰ回路１２８、及び画像処理回路１２９をシステムバス１３０上に有する。
【００１７】
コントローラ１１０は、ＲＯＭ１２６又はＨＤＤ１２４に記憶されたプログラムによって画像形成装置１０１の全体を統括的に制御する。ネットワークＩ／Ｆ１２０は、例えばＬＡＮカード等で実現され、ＬＡＮ１０５に接続して外部装置、例えばＰＣ１０４との間で情報の入出力を行う。リーダＩ／Ｆ１２１は、外部からの認証情報を受け取るカードリーダ１１２に対するインタフェース部であり、外部から入力された認証情報を受け取りＣＰＵ１２３に伝える役割をする。パネルＩ／Ｆ１２２は、各種メニューや印刷ジョブ情報等を表示可能な表示画面を有する操作パネル１１３に対するインタフェース部であり、操作パネル１１３に対して操作画面データを出力する。また、パネルＩ／Ｆ１２２は、操作パネル１１３から操作者が入力した情報をＣＰＵ１２３に伝える役割をする。
【００１８】
ＣＰＵ１２３は、画像形成装置１０１全体を制御するための中央処理装置である。ＨＤＤ１２４は、ハードディスクドライブやソリッドステートドライブなどの記憶装置であり、各種処理のためのシステムソフトウェア及び入力された印刷ジョブや画像データ等を格納する。ＲＡＭ１２５は、ＣＰＵ１２３が動作するためのシステムワークメモリであり、入力された印刷ジョブや画像データを一時記憶するための画像メモリでもある。ＲＯＭ１２６は、ブートＲＯＭであり、システムのブートプログラムが格納されている。ＣＰＵ１２３は、ＲＯＭ１２６又はＨＤＤ１２４に記憶されたプログラムを必要に応じてＲＡＭ１２５に読み出して実行することにより各種制御を実現する。
【００１９】
デバイスＩ／Ｆ１２７は、プリント機構１１１とコントローラ１１０とを接続し、画像データの同期系／非同期系の変換を行う。ＲＩＰ回路１２８はラスターイメージプロセッサであり、中間データ（ディスプレイリスト）を解析してイメージに展開する。画像処理回路１２９は、印刷ジョブを解析して生成されたイメージデータに対してプリント機構１１１に応じた補正、解像度変換等の処理を行う。プリント機構１１１は、コントローラ１１０の指示に従って、印刷を実行する。即ち、プリント機構１１１は、印刷データに基づきシート（記録紙等）に画像を形成する。カードリーダ１１２は、ユーザが持つＩＤカード等の情報を読み取り可能な機能を有し、ＩＤカードから読み取ったユーザ情報をコントローラ１１０へ通知する。操作パネル１１３は、コントローラ１１０より操作画面データを受け取り、受け取った画面の表示やユーザからの操作指示を受け取りコントローラ１１０へ通知する。
【００２０】
図１（Ｂ）は、画像形成装置１０１〜１０３の動作を制御するコントローラ１１０のソフトウェア構成を例示する。コントローラ１１０は、ソフトウェアとして、認証部１３１、設定部１３２、書誌管理部１３３、印刷制御部１３４、ジョブ解析部１３５、先行処理部１３６、留め置き制御部１３７、印刷実行部１３８、ＰＤＬ解析部１３９、及び中間データ生成部１４０を含む。これら各部１３１〜１４０は、ＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に記憶されたプログラムを必要に応じてＲＡＭ１２５に読み出して実行することにより実現される機能部である。
【００２１】
認証部１３１は、リーダＩ／Ｆ１２１（又は操作パネル１１３）よりシステムバス１３０を通じて認証情報を受け取り、受け取った認証情報を留め置き制御部１３７へ通知する。設定部１３２は、パネルＩ／Ｆ１２２よりシステムバス１３０を通じて操作パネル１１３への入出力の制御を行う。書誌管理部１３３は、留め置き制御部１３７が受信した印刷ジョブや印刷ジョブに関する情報を制御し管理する。
【００２２】
印刷制御部１３４は、ネットワークＩ／Ｆ１２０を通じて入力された印刷指示や印刷ジョブの情報を取得し、留め置き制御部１３７や印刷実行部１３８に対して印刷ジョブの処理を指示する。留め置き制御部１３７は、印刷制御部１３４から受け取った印刷ジョブに対して印刷ジョブの解析、管理、先行処理の制御や印刷実行部１３８への印刷指示を行う。ジョブ解析部１３５は、留め置き制御部１３７が受信した印刷ジョブの解析を行う。先行処理部１３６は、留め置き制御部１３７が受信した印刷ジョブのジョブ解析部１３５の解析結果に応じて、印刷ジョブのレンダリング処理を実行する。
【００２３】
印刷実行部１３８は、印刷制御部１３４や留め置き制御部１３７で受け取った印刷ジョブに対して、ＰＤＬ解析部１３９、中間データ生成部１４０、ＲＩＰ回路１２８、及び画像処理回路１２９を制御して画像の生成を行う。さらに、印刷実行部１３８は、生成した画像を、デバイスＩ／Ｆ１２７を通じてプリント機構１１１へ出力し、印刷処理を実行させる。ＰＤＬ解析部１３９は、印刷実行部１３８より指示を受けた印刷ジョブのＰＤＬ解析を行う。なお、ＰＤＬは、Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅの略語であり、ページ記述言語を示す。中間データ生成部１４０は、ＰＤＬ解析部１３９が解析した情報を基に、中間データを生成する。
【００２４】
＜印刷シーケンス＞
次に、図２を参照して、本実施形態に係る画像形成装置１０１〜１０３を有する印刷システムがＰＣ１０４から印刷ジョブを受信して画像形成装置１０１で印刷する際のシーケンスを説明する。図中、各ステップには「Ｓ」を付してある。なお、図２に示す画像形成装置１０１が実行する処理は、画像形成装置１０１のＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に記憶されたプログラムを必要に応じてＲＡＭ１２５に読み出して実行することにより実現される。また、図２に示すＰＣ１０４が実行する処理は、ＰＣ１０４の不図示のＣＰＵがＨＤＤ等に記憶されたプログラムを必要に応じてＲＡＭに読み出して実行することにより実現される。
【００２５】
Ｓ２０１で、ＰＣ１０４は、ユーザのログイン処理を実行し、Ｓ２０２で、ログインしたユーザによる任意のアプリケーションからのデータの印刷要求を受け付ける。印刷要求を受け付けると、Ｓ２０３で、ＰＣ１０４は、ログイン情報等からユーザを識別するためのユーザ情報を取得する。続いて、Ｓ２０４で、ＰＣ１０４は、上記Ｓ２０３で取得したユーザ情報を印刷ジョブに付与して印刷ジョブを生成し、Ｓ２０５で、当該印刷ジョブを画像形成装置１０１に送信する。
【００２６】
Ｓ２０６で、画像形成装置１０１は、ＰＣ１０４からの印刷ジョブを受信すると、ＨＤＤ１２４に印刷ジョブを保存する。そして、Ｓ２０７で、画像形成装置１０１は、当該印刷ジョブに付与されたユーザ情報を抽出し、Ｓ２０７で書誌情報を作成し、Ｓ２０８でＨＤＤ１２４に書誌情報を保存（登録）する。続いて、Ｓ２０９で、画像形成装置１０１は、ＨＤＤ１２４に保存されているユーザの優先順序テーブルからユーザの優先順序番号を取得する。更に、Ｓ２１０で、画像形成装置１０１は、ユーザの優先順序番号に従って、投入順となっている先行処理の順番をソートする。
【００２７】
Ｓ２１１で、画像形成装置１０１は、書誌情報の保存を終えると、ソートした先行処理の順番に従って、先行レンダリング処理を開始する。複数ユーザが複数印刷ジョブを投入した場合には、ユーザの優先度に従って先行レンダリング処理の順序を決定し、決定された順序に基づき先行レンダリング処理を開始する。詳細については後述する。そして、Ｓ２１２で、画像形成装置１０１は、先行処理の結果を逐次ＨＤＤ１２４に保存する。
【００２８】
Ｓ２１３で、画像形成装置１０１は、ユーザの入力に従って、ログイン処理を実行する。ここでのユーザ入力は、操作パネル１１３を介した入力でもよいし、カードリーダ１１２を介した入力であってもよい。続いて、Ｓ２１４で、画像形成装置１０１は、当該ユーザのユーザ情報をログイン情報等から取得し、Ｓ２１５で、当該ユーザの書誌情報に基づいて当該ユーザの印刷ジョブ一覧を操作パネル１１３に表示する。
【００２９】
Ｓ２１６で、画像形成装置１０１は、ユーザからの印刷指示を受けると、Ｓ２１７で、上記Ｓ２１０で保存していた先行処理の結果を印刷ジョブに付加する。先行処理結果の印刷ジョブへの付加についての詳細は後述する。続いて、Ｓ２１８で、画像形成装置１０１は、印刷ジョブに付加された先行処理結果を用いて、仕上げのレンダリング処理を実行し、Ｓ２１９で印刷を行い、印刷処理が完了すると、Ｓ２２０で印刷ジョブの情報に基づきユーザの優先度を再計算する。
【００３０】
＜留め置き処理＞
次に、図３を参照して、本実施形態に係る画像形成装置１０１〜１０３が備えるコントローラ１１０が備えるソフトフェア（１３３〜１４０）が実行する印刷ジョブの留め置き処理の処理手順を説明する。図３（Ａ）は、コントローラ１１０が実行する印刷ジョブ留め置き処理の処理手順を示す。図３（Ｂ）は、画像形成装置が受信する印刷ジョブの構成例を示す。図３（Ｃ）は、コントローラ１１０がＨＤＤ１２４に記憶するユーザＡの書誌情報の一例を示す。図３（Ｄ）は、ＨＤＤ１２４に記憶するユーザテーブルを示す。ユーザが初めてジョブを投入する際に、ユーザテーブルに新しい列を追加する。ユーザに対してユーザ番号３０１を付与し、ユーザの諸情報（ユーザ名３０２、作成時刻３０３、最後ログイン時刻３０４）を登録する。なお、ユーザがログインして印刷する度に最後ログイン時刻３０４が更新される。以下で説明する処理は、例えば、ＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００３１】
Ｓ３０１で、印刷制御部１３４は、ネットワークＩ／Ｆ１２０を通じてＰＣ１０４などから送信された印刷ジョブの受信を行う。印刷ジョブは、例えば図３（Ｂ）に示すようなデータ構成であり、データの最初に各種設定情報を含むヘッダー情報を持ち、その後に各ページのデータ（ＰＤＬデータ）が含まれる構成となっている。各ページの情報内のＰ１、Ｌｉｎｅ１、Ｔｅｘｔ１などはページを構成するための描画コマンドの例である。
【００３２】
次に、Ｓ３０２で、印刷制御部１３４は、Ｓ３０１で受信した印刷ジョブを、留め置くかそのまま印刷を行うかを判断する。留め置くか否かの判断方法は、画像形成装置内で記憶しているパラメータが留め置きを指し示すものであるか、或いは印刷ジョブのヘッダー内に情報が埋め込まれているものを解析するなどの方法でもよい。そのまま印刷する場合はＳ３０３へ進み、留め置く場合はＳ３０５へ進む。
【００３３】
Ｓ３０３で、印刷実行部１３８は、ＰＤＬ解析部１３９や中間データ生成部１４０を制御して印刷ジョブの解析を行い、ＲＩＰ回路１２８によって、生成された中間データに対して仕上げのレンダリング処理を実行させ画像データを生成する。ここでの、仕上げのレンダリング処理は、留め置きされていないデータであるため、先行処理が実行されておらず、データの全てに対するレンダリング処理となる。続いて、Ｓ３０４で、印刷実行部１３８は、Ｓ３０３で生成された画像データを画像処理回路１２９で画像補正をした後、デバイスＩ／Ｆ１２７を通じてプリント機構１１１へ転送を行って印刷を実行し、処理を終了する。
【００３４】
一方、印刷ジョブを留め置く場合は、Ｓ３０５で、留め置き制御部１３７は、印刷ジョブ内に含まれるユーザ情報の取得を行う。図３（Ｂ）の例では、ユーザ情報は「ユーザ名：ユーザＡ」で示されるものである。また、このユーザ情報は、印刷ジョブのヘッダー情報内に含まれていなくても、送信元のホストコンピュータ１０４からユーザ情報を別途送る構成であればよい。ユーザ情報とは、ユーザ名やユーザＩＤなど印刷実行を行ったユーザを識別できる情報であればよい。
【００３５】
続いて、Ｓ３０６で、留め置き制御部１３７は、Ｓ３０５で取得したユーザ名が、図３（Ｄ）のユーザテーブルの中のユーザ名３０２の何れかと一致するか否かを判断する。既に一致するユーザ名がある場合Ｓ３０８に進み、一致するユーザ名がなければＳ３０７に進む。Ｓ３０７で、留め置き制御部１３７は、ユーザ情報を図３（Ｄ）のユーザテーブルに登録し、Ｓ３０８に進む。
【００３６】
Ｓ３０８で、ジョブ解析部１３５は、受信した印刷ジョブに含まれる印刷設定情報と文書名とを取得する。この印刷設定情報には、例えば片面印刷か両面印刷かを示す情報、カラーで印刷するかモノクロで印刷するかの情報、出力する用紙サイズに関する情報など、印刷に関する設定情報が含まれる。なお、図３（Ｂ）は一例であり、印刷設定情報の一部が無い印刷データであってもよく、その場合はＨＤＤ１２４やＲＯＭ１２６が持つ初期設定値とするか、印刷実行時にユーザから設定してもらう構成であってもよい。
【００３７】
次に、Ｓ３０９で、留め置き制御部１３７は、Ｓ３０５で取得したユーザ情報と、Ｓ３１０で取得した印刷設定情報及び文書名とを関連付ける。そして、留め置き制御部１３７は、これら関連付けられた情報を、一レコードとして、そのユーザ情報に対応する書誌情報に追加する。図３（Ｃ）は、ユーザＡの書誌情報の一例を示す。図３（Ｃ）に示すように、書誌情報には、ジョブ番号、ファイル情報、印刷設定情報、ページ数、レンダリング予測時間、及び先行処理情報が含まれる。ジョブ番号は、投入されたジョブを固有に識別する番号である。ファイル情報は、ファイル名と当該ファイルの保存先情報を含む。印刷設定情報は、例えば、カラーモード、印刷モード（片面又は両面）、用紙サイズなど印刷する際の設定情報を含む。ページ数は、当該ジョブ印刷する総ページ数を示す。レンダリング予測時間は、各ページのレンダリングに掛かる予想時間の情報を含む。先行処理結果は、先行処理が完了したか否か情報と、先行処理結果を示す情報、例えばそのファイルの保存先等を示す情報とを含む。Ｓ３１０で、書誌管理部１３３は、Ｓ３０９で一レコードが追加された書誌情報をＨＤＤ１２４に保存する。また、書誌管理部１３３は、受信した印刷ジョブを、今回追加された一レコードに対応する印刷ジョブとしてＨＤＤ１２４に保存し、処理を終了する。
【００３８】
＜先行処理＞
以下では、図４Ａ、図４Ｂ、図５、図１１、及び図１２を参照して、ユーザごとの優先順位に基づく先行処理について説明する。図２におけるユーザ優先度の再計算処理（Ｓ２２０）について、本発明では「平均滞留時間」などを用いて優先度を決定し、決定した優先度に基づいて先行処理を実行する。また、本実施形態では、「単純平均」を用いて平均滞留時間を計算し、それに基づきユーザ優先度を決定する。なお、本発明は、優先順位の決定処理として、ジョブ（印刷）の実行後、例えば上記Ｓ２２０で行ってもよいし、留め置きする印刷ジョブを新たに受信した際、例えば、Ｓ２０６で行ってもよい。或いは、予め定められた時間に定期的に行うようにしてもよい。
【００３９】
図１１は、画像形成装置１０１のＨＤＤ１２４に格納されている印刷履歴テーブル１１００である。印刷履歴テーブル１１００は、印刷ジョブ番号１１０１、ユーザ名１１０２、投入時刻１１０３、印刷実行時刻１１０４、及び滞留時間１１０５から構成され、これまでに印刷したジョブの情報の履歴が記録されている。印刷ジョブ番号１１０１は、ジョブごとに割り当てられた固有の識別番号である。ユーザ名１１０２は、ジョブを投入したユーザを識別するための情報である。投入時刻１１０３は、ユーザが印刷ジョブをＰＣ１０４から画像形成装置１０１に投入した際の時刻である。印刷実行時刻１１０４は、画像形成装置１０１がジョブの印刷処理を開始した時刻である。滞留時間１１０５は、投入時刻１１０３と印刷実行時刻１１０４の差分時間である。つまり、滞留時間とは、ジョブが投入されてから、当該ジョブの印刷実行指示を受け付けるまでの期間を示す。
【００４０】
図１２（Ａ）は、画像形成装置１０１のＨＤＤ１２４に格納されるユーザトータル印刷情報テーブル１２１１であり、ユーザ名１２０１、トータル滞留時間１２０２、及びジョブ数カウンタ１２０３から構成される。ユーザ名１２０１は、印刷履歴テーブル１１００のユーザ名１１０２に対応する。トータル滞留時間１２０２は、印刷履歴テーブル１１００に記録された履歴情報の中で、ユーザごとの滞留時間の合計を示す。ジョブ数カウンタ１２０３は、印刷履歴テーブル１１００に記録された履歴情報の中で、ユーザごとのジョブの数を示す。
【００４１】
図１２（Ｂ）は画像形成装置１０１のＨＤＤ１２４に格納される平均滞留時間に基づく優先順序テーブル１２１２であり、優先順序番号１２０４、ユーザ名１２０５、及びユーザの平均滞留時間１２０６から構成される。優先順序番号１２０４は、ユーザごとの先行処理の実施に関する優先順位を示す。図１２の例では、ユーザＢの優先順位が最も高く、その後に、ユーザＣ、ユーザＡと続いている。ユーザ名１２０５は、印刷履歴テーブル１１００のユーザ名１１０２に対応する。平均滞留時間１２０６は、ユーザごとの平均滞留時間であり、１つのジョブに係る平均的な滞留時間を示す。
【００４２】
図１２（Ｃ）は先行処理待ちテーブル１２１３の一例である。印刷ジョブ番号１２０７、ユーザ名１２０８、及び投入時刻１２０９から構成される。印刷ジョブ番号１２０７は、先行処理を待機中の印刷ジョブを識別する番号である。ユーザ名１２０８は、印刷履歴テーブル１１００のユーザ名１１０２に対応する。投入時刻１２０９は、ユーザが印刷ジョブをＰＣ１０４から画像形成装置１０１に投入した際の時刻である。
【００４３】
＜先行処理の開始＞
図４Ａを参照して、ユーザの優先順序番号に従って先行処理順序を決定し、先行処理を開始する処理手順を説明する。以下で説明する処理は、例えば、ＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。本フローチャートは、例えば、先行処理を実行していない段階で新たに複数の留め置き印刷の印刷ジョブを受け付けた際に実行される。
【００４４】
Ｓ４０１で、先行処理部１３６は、先行処理待ちテーブル１２１３内のジョブを投入したユーザの優先順序番号を取得する。この優先順序番号はＨＤＤ１２４に格納されている優先順序テーブル１２１２の優先順序番号１２０４であり、後述する平均滞留時間を用いて決定されたものである。先行処理部１３６は、ジョブを投入したユーザに対応する優先順序番号１２０４を優先順序テーブル１２１２から取得する。
【００４５】
Ｓ４０２で、先行処理部１３６は、先行処理待ちテーブル１２１３内で投入順となっているジョブを、ユーザ優先順序番号の小さい順、即ち、優先順でソートする。なお、図１２（Ｃ）に示す先行処理待ちテーブル１２１３では、投入順に各ジョブが格納されている状態を示す。その後、Ｓ４０３で、先行処理部１３６は、ソートされた先行処理待ちテーブル１２１３の最初のジョブを指すように、先行処理ポインタを作成する。
【００４６】
次に、Ｓ４０４で、先行処理部１３６は、先行処理ポインタが指すジョブの先行処理を実行する。続いて、Ｓ４０５で、先行処理部１３６は、ジョブの先行処理結果を書誌情報に付加する。さらに、Ｓ４０６で、先行処理部１３６は、先行処理ポインタが先行処理待ちテーブル１２１３の終端に達しているか否かを判断する。達している場合は処理を終了し、達してない場合はＳ４０７に進む。Ｓ４０７で、先行処理部１３６は、先行処理ポインタを次のジョブを指すように変更し、Ｓ４０４に処理を戻す。
【００４７】
＜先行処理の制御＞
続いて、図４Ｂを参照して、留め置き印刷の印刷ジョブを新たに受け付けた場合の先行処理の制御手順について説明する。以下で説明する処理は、例えば、ＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。本フローチャートは、図４Ａの処理によって先行処理を開始した後に留め置き印刷の印刷ジョブを新たに受け付けた場合に際に実行される。
【００４８】
Ｓ４１１で、先行処理部１３６は、留め置き印刷の新たなジョブを受け付け、先行処理待ちテーブル１２１３の最後尾に当該ジョブを追加する。ここでは、既に図４ＡのＳ４０２でソートされた後の先行処理待ちテーブルとなっており、先行処理部１３６は、その状態の最後尾に新たに受け付けた印刷ジョブを追加する。続いて、Ｓ４１２で、先行処理部１３６は、現在未実行の印刷ジョブは一つだけか否かを判断する。つまり、ここでは、先行処理対象のジョブが受け付けた印刷ジョブのみか否かを判断している。一つだけの場合はＳ４１３に進み、そうでない場合はＳ４１４に進む。Ｓ４１３で、先行処理部１３６は、受け付けた印刷ジョブの先行処理を実行し、処理を終了する。
【００４９】
一方、Ｓ４１４で、先行処理部１３６は、Ｓ４０２と同様に、新たな印刷ジョブを追加した状態で、ユーザ優先順序番号の小さい順で先行処理待ちテーブル１２１３をソートする。続いて、Ｓ４１５で、先行処理部１３６は、現在実行中の先行処理を中断するか否かを判断する。より詳細には、ここでは、まず現在実行中の先行処理があるか否かを判断し、もしあれば、さらにＳ４１４でソートされた先行処理待ちテーブル１２１３で現在実行中の先行処理よりも優先的に実行される印刷ジョブがあるか否かを判断する。優先的に実行される印刷ジョブがある場合には、先行処理部１３６は、現在実行中の先行処理を中断すると判断する。或いは、先行処理部１３６は、優先的に実行される印刷ジョブがある場合には、さらに、現在実行中の先行処理を中断する設定がなされているか否かを判断してもよい。このような設定が行われている場合にのみ、先行処理部１３６は、現在実行中の先行処理を中断すると判断してもよい。当該設定については、画像形成装置１０１において操作パネル１１３を介して事前に設定することができる。つまり、先行処理部１３６は、当該設定がなされている場合は、優先的に実行される印刷ジョブがある場合であっても、現在実行中の先行処理が完了した後に実行されるように、再度、先行処理待ちテーブル１２１３をソートする必要がある。また、先行処理部１３６は、優先的に実行される印刷ジョブがある場合には、実行中の先行処理に対応するユーザの優先順位と、当該優先的に実行される印刷ジョブのユーザの優先順位とに基づいて、現在実行中の先行処理を中断するか否かを判断してもよい。例えば、優先的に実行される印刷ジョブのユーザが最も優先順位の高い優先順位番号、即ち、”１”である場合には、現在実行中の先行処理を中断すると判断してもよい。或いは、実行中の先行処理に対応するユーザの優先順位と、当該優先的に実行される印刷ジョブのユーザの優先順位との間に、２以上の優先順位の差がある場合に、現在実行中の先行処理を中断すると判断してもよい。
【００５０】
Ｓ４１５で現在実行中の先行処理を中断すると判断するとＳ４１６に進み、そうでない場合はＳ４１７に進む。Ｓ４１６で、先行処理部１３６は、現在実行中の先行処理を中断し、Ｓ４１７に進む。なお、先行処理は印刷ジョブが複数ページに渡る場合にはページごとに実行されるため、完了したページのデータはそのまま保持しておき、後に先行処理を再開した際には先行処理が完了していないページから継続することが望ましい。Ｓ４１７で、先行処理部１３６は、新しく決定された先行処理待ちテーブル１２１３の順に従って、先行処理を実行し、処理を終了する。
【００５１】
＜平均滞留時間の算出＞
単純平均を用いて平均滞留時間を計算するには、あるユーザが実行したすべての印刷ジョブの滞留時間の平均値を計算する。図５を参照して、ユーザＡを例とした単純平均を用いて均滞留時間を計算する処理手順を説明する。以下で説明する処理は、例えば、ＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。図１１の印刷履歴テーブル１１００において、これまでにユーザＡが投入した印刷ジョブ（ユーザ名１１０２が「Ａ」となっているジョブ）は、最後に受け付けたジョブ（”１１３０２３”）を含めて１２個である。以下では、最後に受け付けた、ジョブ番号１１０１が”１１３０２３”である印刷ジョブの印刷実行指示を受け付けた際に平均滞留時間を算出（再計算）する際の処理について説明する。
【００５２】
まずＳ５０１で、ＣＰＵ１２３は、対象となる今回（最後）の印刷ジョブ（ここでは、印刷ジョブ番号１１０１が”１１３０２３”のジョブに相当）の投入時刻１１０３を取得する。続いて、Ｓ５０２で、ＣＰＵ１２３は、今回の印刷ジョブの印刷実行時刻１１０４を取得する。Ｓ５０３で、ＣＰＵ１２３は、今回の印刷ジョブの投入時刻１１０３と印刷実行時刻１１０４の時刻差を算出して、その時刻差を滞留時間１１０５に保存する。
【００５３】
次に、Ｓ５０４で、ＣＰＵ１２３は、図１２（Ａ）のユーザトータル印刷情報テーブル１２１１から、ユーザＡがこれまでに実行した印刷ジョブ（最後のジョブを除く）のトータル滞留時間１２０２を取得する。ここでは、ユーザ名１２０１が「Ａ」となっている、「４８０分」に相当する。続いて、Ｓ５０５で、ＣＰＵ１２３は、図１２（Ａ）のユーザトータル印刷情報テーブル１２１１から、ユーザＡがこれまでに実行した印刷ジョブ（最後のジョブを除く）の数であるジョブ数カウンタ１２０３の値を取得する。ここでは、ユーザ名１２０１が「Ａ」となっている、「１１」に相当する。
【００５４】
Ｓ５０６で、ＣＰＵ１２３は、Ｓ５０３で算出した今回のジョブの滞留時間をＳ５０４で取得したトータル滞留時間に加算（４８０分＋１３８０分＝１８６０分）する。さらに、ＣＰＵ１２３は、図１２（Ａ）のユーザトータル印刷情報テーブル１２１１におけるユーザＡのトータル滞留時間１２０２に加算結果を保存する。また、Ｓ５０７で、ＣＰＵ１２３は、Ｓ５０５で取得したユーザＡの印刷ジョブ実行数に１を加算したもの（１１＋１＝１２）をジョブ数カウンタ１２０３に保存する。
【００５５】
次に、Ｓ５０８で、ＣＰＵ１２３は、Ｓ５０６で計算したトータル滞留時間をＳ５０７で計算した印刷ジョブ数カウンタで割ることで、ユーザＡの平均滞留時間を算出する（１８６０分／１２＝１５５分）。続いて、Ｓ５０９で、ＣＰＵ１２３は、Ｓ５０８で算出したユーザＡの平均滞留時間を、図１２（Ｂ）の平均滞留時間に基づく優先順序テーブル１２１２の平均滞留時間１２０６に保存する。さらに、Ｓ５１０で、ＣＰＵ１２３は、平均滞留時間の短いユーザに小さい優先順序番号１２０４を付与し、優先順序テーブル１２１２に格納する。つまり、ここでは、Ｓ５０９で新たに更新した平均滞留時間に従って優先順位の再計算が行われる。
【００５６】
図１２（Ｂ）の優先順序テーブル１２１２を平均滞留時間の短い順でソートするとユーザＢ、Ｃ、Ａの順番となる。そのため、ユーザＢの優先順序番号が１、ユーザＣの優先順序番号が２、ユーザＡの優先順序番号が３となる。ここで付与された優先順序番号は図４が示す先行処理を実施する際に使用される優先順位となり、優先順序番号が小さいほど優先的に先行処理が実行される。
【００５７】
例えば、図１２（Ｃ）は印刷ジョブ番号１２０７が投入順となっている先行処理待ちテーブル１２１３である。図１２（Ｂ）の優先順序番号１２０４を用いると、印刷ジョブ番号１２０７が、上から１１３０２５、１１３０２７、１１３０２６、１１３０２４にソートされる。これらの制御は、平均滞留時間が短いユーザほど、ジョブを投入してからすぐに印刷実行する傾向があるとの判断に基づく。そのため、ユーザ毎に平均滞留時間を算出し、平均滞留時間が短いユーザのジョブから順に先行レンダリングを実行することにより、ユーザの印刷待ち時間が低減される。つまり、平均滞留時間が短いユーザほど、印刷ジョブを投入してから印刷実行指示を行うまでの時間が短いため、これらのユーザのジョブに関連する先行処理を優先的に実行しておくことで、当該ユーザの待ち時間を低減することができる。
【００５８】
以上説明したように、本実施形態に係る画像形成装置は、外部装置から印刷データを受信して保持し、操作部を介したユーザ操作による印刷指示に従って、保持している印刷データに基づく画像データを用いてシートに画像形成（留め置き印刷）を行う。また、本画像形成装置は、印刷データを受信してから印刷指示を受け付けるまでの間に印刷データに基づく画像データの生成を開始する先行処理を実行。さらに、本画像形成装置は、第１の印刷データに基づく第１の先行処理中に、特定のユーザに関連づけられた第２の印刷データを受信したことに基づき、第１の先行処理を中断して、第２の印刷データに基づく第２の先行処理を開始するよう制御する。また、本画像形成装置は、第１の印刷データに基づく第１の先行処理の後に第２の印刷データに基づく第２の先行処理が予約登録されている状態において、先行処理の制御を切り替えてもよい。この場合、本画像形成装置は、第１の先行処理中に特定のユーザに関連づけられた第３の印刷データを受信したことに基づき、第１の先行処理が終了した後に第３の印刷データに基づく第３の先行処理を開始するよう制御する。このように、本実施形態によれば、留め置き印刷において実行される先行処理の優先順序を好適に決定し、ユーザの待機時間を低減することができる。
【００５９】
＜第２の実施形態＞
以下では、本発明の第２の実施形態について説明する。上記第１の実施形態では、単純平均を用いて平均滞留時間を算出する実施例について説明した。しかし、単純平均を用いた場合、極大値と極小値が存在するため、適切な平均滞留時間が算出されない可能性がある。例えば、図１１の印刷履歴テーブル１１００において、ユーザＡの場合、平均滞留時間１５５分に対して、印刷ジョブ番号１１０１が１１３００１のジョブの滞留時間（１０分）が極小値となる。また、印刷ジョブ番号１１０１が１１３０２３のジョブの滞留時間（１３８０分）が極大値となる。そこで、これらの極小値及び極大値の間には１３７０分もの差があり平均滞留時間の精度に悪影響を及ぼすものである。従って、本実施形態では、極値の影響を避け、より正確な平均滞留時間を算出するため、中央値平均を用いて平均滞留時間を計算する方法を、ユーザＡを例として、図６及び図１３（Ａ）を用いて説明する。
【００６０】
図１３（Ａ）はユーザＡの印刷履歴のうち中央値をまとめた中央値テーブル１３１１であり、印刷ジョブ番号１３０１、ユーザ名１３０２、投入時刻１３０３、印刷実行時刻１３０４、及び滞留時間１３０５から構成される。このテーブルに格納している印刷ジョブは、図１１の印刷履歴テーブル１１００のうち、極値（上記極小値（１０分）及び極大値（１３８０分））の滞留時間を切り捨てたユーザＡの印刷ジョブである。図６を参照して、ユーザＡを例とした中央値平均を用いて平均滞留時間を計算する処理手順を説明する。以下で説明する処理は、例えば、ＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００６１】
まず、Ｓ６０１で、ＣＰＵ１２３は、図１１の印刷履歴テーブル１１００からユーザＡの全ジョブ履歴を取得する。なお、ユーザＡの全ジョブ履歴の中には最後のジョブ履歴も含まれており、図５のＳ５０１〜Ｓ５０３で示すような処理により生成されるものとする。続いて、Ｓ６０２で、ＣＰＵ１２３は、ユーザＡの全ジョブ履歴を滞留時間１１０５で昇順に並び替える。さらに、Ｓ６０３で、ＣＰＵ１２３は、昇順に並び替えたユーザＡの全ジョブ履歴に対して、滞留時間の少ない方の１０％である印刷ジョブと、滞留時間の多い方の１０％である印刷ジョブとを切り捨てる。この割合は、履歴情報とし格納されているジョブ総数の割合となる。
【００６２】
次に、Ｓ６０４で、ＣＰＵ１２３は、Ｓ６０３で生成した、ユーザＡの全ジョブ履歴のうち、滞留時間を基準とした１０％から９０％までを図１３（Ａ）の中央値テーブル１３１１に格納する。ユーザＡの場合、印刷ジョブが１２個あり、１２個の１０％が１．２個になるが、四捨五入すると１個になり、滞留時間の一番短いジョブ（最小値）と滞留時間の一番長いジョブ（最大値）を１個ずつ切り捨てることになる。ユーザＡの滞留時間が最小値のジョブは図１１の印刷ジョブ番号１１０１が１１３００１に該当するジョブであり、滞留時間が最大値のジョブは図１１の印刷ジョブ番号１１０１が１１３０２３に該当するジョブである。
【００６３】
次に、Ｓ６０５で、ＣＰＵ１２３は、Ｓ６０３で生成したジョブ履歴に対して上記第１の実施形態で説明した単純平均を用いて平均滞留時間を算出する。ユーザＡの全ジョブ履歴のうち、滞留時間を基準とした１０％〜９０％のジョブのトータル滞留時間は４７０分であり、トータルジョブ数は１０個である。そのため、中央平均を用いたユーザＡの平均滞留時間は、４７０分／１０個＝４７分になる。続いて、Ｓ６０６で、ＣＰＵ１２３は、Ｓ６０５で算出した平均滞留時間を図１２（Ｂ）の優先順序テーブル１２１２のユーザＡに対する平均滞留時間１２０６に格納する。さらに、Ｓ６０７で、ＣＰＵ１２３は、平均滞留時間１２０６の短いユーザに小さい優先順序番号を付与し、優先順序テーブル１２１２に格納し、処理を終了する。ここで付与された優先順序番号は図４が示す先行処理を実施する際に使用される。
【００６４】
ユーザＡの場合、単純平均で算出した平均滞留時間が１５５分であるのに対し、中央平均で算出した平均滞留時間は４７分となる。これにより、優先順序テーブル１２１２では、ユーザＣの平均滞留時間（６３分）よりも、ユーザＡの平均滞留時間（４７分）の方が短くなるため、上記第１の実施形態と異なり、優先順位が順にユーザＢ、ユーザＡ、ユーザＣとなる。このように、単純平均の計算方法では平均滞留時間が極小値と極大値の影響を受けやすいことに対して、中央値平均の計算方法では極値の影響を抑え、より適切な平均滞留時間を算出できるようになる。
【００６５】
＜変形例＞
しかし、中央値平均を用いて算出した平均滞留時間でも、まだ十分に適切とは言えない場合があるため、加重平均を用いて平均滞留時間を計算してもよい。加重平均は滞留時間が、所定の時間帯に属するジョブの数を重みにして、より適切な平均滞留時間を算出する方法である。次に、加重平均を用いた平均滞留時間の算出についてユーザＡを例として、図７及び図１３（Ｂ）を用いて説明する。
【００６６】
図１３（Ｂ）はユーザＡの滞留時間帯別のジョブ数を示す滞留時間帯別テーブル１３１２であり、番号１３０６、加重平均時間帯１３０７、及びジョブ数１３０８の情報から構成される。図７を参照して、ユーザＡを例とした加重平均を用いて平均滞留時間を計算する処理手順を説明する。以下で説明する処理は、例えば、ＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００６７】
Ｓ７０１で、ＣＰＵ１２３は、図１３（Ａ）のユーザＡの中央値テーブル１３１１から、一番短い滞留時間（２０分）を取得する。続いて、Ｓ７０２で、ＣＰＵ１２３は、図１３（Ａ）のユーザＡの中央値テーブル１３１１から、一番長い滞留時間（９５分）を取得する。さらに、Ｓ７０３で、ＣＰＵ１２３は、Ｓ７０１で取得した最小滞留時間とＳ７０２で取得した最大滞留時間の差を算出する。ユーザＡの場合、この時間差は７５分になる。
【００６８】
次に、Ｓ７０４で、ＣＰＵ１２３は、Ｓ７０３で算出した滞留時間の差を５等分（等分する数字は変更可能）する。ここで、１等分については「差分単位等分時間」と称する。ユーザＡの場合、７５分の時間差を５等分すると「差分単位等分時間」が１５分になる。続いて、Ｓ７０５で、ＣＰＵ１２３は、Ｓ７０１で取得した最小滞留時間にＳ７０４で算出した差分単位等分時間を加算していき、５個の加重平均時間帯を算出する。ＣＰＵ１２３は、算出した各加重平均時間帯を図１３（Ｂ）の加重平均時間帯１３０７に格納する。ユーザＡの場合、「２０分から３５分まで」、「３６分から５０分まで」、「５１分から６５分まで」、「６６分から８０分まで」、及び「８１分から９５分まで」となる。
【００６９】
次に、Ｓ７０６で、ＣＰＵ１２３は、Ｓ７０５で算出した各加重平均時間帯に属する印刷ジョブをカウントする加重カウンタを生成し、初期値として０を設定する。ここでは、第一加重カウンタから第五加重カウンタまで合計５つ生成され、滞留時間帯別テーブル１３１２に示すように、番号１３０６が順に１、２、３、４、５と割り当てられる。続いて、Ｓ７０７で、ＣＰＵ１２３は、図１３（Ａ）の全ジョブの数をカウントする全ジョブカウンタを生成し、初期値として０を設定する。さらに、Ｓ７０８で、ＣＰＵ１２３は、参照ポインタを図１３（Ａ）のユーザＡの中央値テーブル１３１１の先頭ジョブに設定する。
【００７０】
次に、Ｓ７０９で、ＣＰＵ１２３は、参照ポインタが指すジョブの滞留時間がどの加重平均時間帯に属するかを判断する。例えば、印刷ジョブ番号１３０１が１１３００４のジョブの場合、滞留時間が２９分であるため、第一加重平均時間帯に属する。続いて、Ｓ７１０で、ＣＰＵ１２３は、Ｓ７０８で判断した加重平均時間帯のカウンタに１を加算する。第一加重平均時間帯に属する場合には、ＣＰＵ１２３は、第一加重カウンタに１を加算する。
【００７１】
次に、Ｓ７１１で、ＣＰＵ１２３は、参照ポインタと全ジョブカウンタに１を加算する。続いて、Ｓ７１２で、ＣＰＵ１２３は、参照ポインタが図１３（Ａ）中央値テーブル１３１１の終端を超えたか否かを判断する。参照ポインタが中央値テーブル１３１１の終端を超えていない場合はＳ７０９に進み、超えている場合はＳ７１３に進む。
【００７２】
Ｓ７１３で、ＣＰＵ１２３は、全てのジョブに対する処理が終了すると、各加重カウンタの値を対応する各加重平均時間帯に属する図１３（Ｂ）のジョブ数１３０８に保存する。続いて、Ｓ７１４で、ＣＰＵ１２３は、Ｓ７１０で算出した各加重平均時間帯内のジョブ数とＳ７１１で算出した全ジョブ数の比率を算出し、各加重平均時間帯のジョブの重みにする。ユーザＡの場合、第一加重平均時間帯のジョブの重みは０．３（３／１０＝０．３）であり、第二加重平均時間帯のジョブの重みは０．５である。また、第三加重平均時間帯のジョブの重みは０であり、第四加重平均時間帯のジョブの重みは０であり、第五加重平均時間帯のジョブの重みは０．２である。
【００７３】
次に、Ｓ７１５で、ＣＰＵ１２３は、以下の式１に基づき加重平均を用いて平均滞留時間を算出する。ｘは各ジョブの滞留時間を示し、ｗは各ジョブが属する加重平均時間帯の重みを示し、ｎは加重平均時間帯の数を示す。式１により、ユーザＡの平均滞留時間は４２．９分となる。
【００７４】
【数１】
2019098701.tif 000003
【００７５】
次に、Ｓ７１６で、ＣＰＵ１２３は、算出した平均滞留時間を図１２（Ｂ）の優先順序テーブル１２１２のユーザＡに対する平均滞留時間１２０６に格納する。続いて、Ｓ７１７で、ＣＰＵ１２３は、平均滞留時間１２０６の短いユーザに小さい優先順序番号を付与し、優先順序テーブル１２１２に格納し、処理を終了する。ここで付与された優先順序番号は図４が示す先行処理を実施する際に使用される。中央平均が極値の影響を抑えることに対して、加重平均では更に滞留時間が属する時間帯に基づきより正確で、適切な平均滞留時間を算出することができるため、ユーザごとの印刷待ち時間をより好適に低減しうる。
【００７６】
＜第３の実施形態＞
以下では、本発明の第３の実施形態について説明する。上記第１及び第２の実施形態では、ユーザ毎に滞留時間の平均を算出した。しかし、同じユーザでも時間毎の印刷行動パターンが異なる。例えば、あるユーザが朝の時間帯に印刷ジョブを投入したら直ぐに印刷処理を実行する。しかし、お昼の時間帯に投入したジョブは２時間以上経ってから印刷処理を実行する。この場合、時間帯に関係なく平均滞留時間を使用することは適切ではない。そこで、本実施形態では、より正確な平均滞留時間を算出するために、一日をいくつかの時間帯に分け、時間帯別の平均滞留時間を算出し、更に時間帯別平均時間に基づき優先順序番号を付与する。複数のユーザがほぼ同時に印刷ジョブを投入した場合、ジョブを投入する時刻が属する時間帯のユーザの優先順序を取得し、ユーザの時間帯別平均滞留時間に基づき先行処理の順序を決定する。
【００７７】
図１４（Ａ）は、画像形成装置１０１のＨＤＤ１２４に格納される、ユーザＡの時間帯別の平均滞留時間を示す時間帯別テーブル１４１１を示す。時間帯別テーブル１４１１は、２時間を一つの時間帯にして、一日を１２等分にした時間帯１４０１、その時間帯に印刷されたジョブの滞留時間の合計時間１４０２、その時間帯に印刷されたジョブ数１４０３、及び時間帯毎の平均滞留時間１４０４から構成される。ある時間帯で印刷ジョブが一回も実行されない場合、その時間帯の平均滞留時間はデフォルトの６０分に設定される。図１４（Ｂ）は、画像形成装置１０１のＨＤＤ１２４に格納される、ユーザＢの時間帯別テーブル１４１２である。図１４（Ａ）と同様、時間帯１４０５、合計時間１４０６、ジョブ数１４０７、及び時間帯毎の平均滞留時間１４０８から構成される。
【００７８】
図１５（Ａ）は、画像形成装置１０１のＨＤＤ１２４に格納される、全ユーザ時間帯別テーブル１５１１であり、ユーザＡとＢの時間帯別の平均滞留時間が格納されている。図１５（Ａ）のテーブル１５１１は、時間帯１５０１、時間帯平均滞留時間に基づくユーザの優先順序番号１５０２、ユーザ名１５０３、及びあるユーザのある時間帯の平均滞留時間１５０４から構成される。図１５（Ｂ）は、先行処理順序がジョブ投入順となっている先行処理順序テーブル１５１２を示す。先行処理順序テーブル１５１２は、先行順序番号１５０５、印刷ジョブ番号１５０６、ジョブを投入したユーザ名１５０７、及びジョブの投入時刻１５０８から構成される。
【００７９】
図８及び図１５を使用して時間帯別の平均滞留時間を算出する処理手順を説明する。図１５（Ｂ）が示すように、１０時３２分にユーザＡとユーザＢがほぼ同時に複数の印刷ジョブを投入した場合を例として説明する。以下で説明する処理は、例えば、ＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。図８のＳ８０１〜Ｓ８０３は、図５のＳ５０１〜Ｓ５０３と同様の処理であり、ユーザの最後の印刷ジョブの滞留時間を算出する処理であるため説明を省略する。
【００８０】
Ｓ８０４で、ＣＰＵ１２３は、印刷ジョブの投入時刻１５０８がどの時間帯１４０１に属するかを判断する。今回のジョブの投入時刻は１０時３２分であるため、時間帯別テーブル１４１１の時間帯１４０１では「１０−１２時」に相当する。続いて、Ｓ８０５で、ＣＰＵ１２３は、ユーザＡの時間帯別テーブル１４１１からユーザＡが当該時間帯に実行した印刷ジョブの滞留時間（差分時間）の合計時間（トータル）１４０２を取得する。さらに、Ｓ８０６で、ＣＰＵ１２３は、Ｓ８０１〜Ｓ８０３の処理により算出した最後のジョブの滞留時間と、Ｓ８０５で取得した当該時間帯の平均滞留時間の合計時間の和を算出し、結果をユーザＡの時間帯別テーブルの合計時間１４０２に格納する。
【００８１】
Ｓ８０７で、ＣＰＵ１２３は、ユーザＡの時間帯別テーブル１４１１で当該時間帯のジョブ数１４０３の値に１を加える。続いて、Ｓ８０８で、ＣＰＵ１２３は、Ｓ８０６で計算した合計時間１４０２を当該時間帯のジョブ数１４０３の値で割り、その値を当該時間帯の平均滞留時間１４０４とする。さらに、Ｓ８０９で、ＣＰＵ１２３は、平均滞留時間を図１５（Ａ）の全ユーザ時間帯別テーブル１５１１に格納する。最後に、Ｓ８１０で、ＣＰＵ１２３は、当該時間帯の平均滞留時間１５０４が短いユーザに小さい優先順序番号１５０２を付与するように、優先順序テーブル１２１２を更新する。以上の処理をユーザＢに対しても実行する。
【００８２】
図１５（Ｂ）に示した投入順の先行処理順序テーブル１５１２の例では、ユーザＡが先に印刷ジョブを投入し、その直後にユーザＢが印刷ジョブを投入している。投入した順に従う場合、ユーザＡが投入したジョブの先行順序番号が１、ユーザＢが投入したジョブの先行順序番号が２となる。そのため、先行処理の実行はＡ、Ｂの順となる。
【００８３】
図１５（Ａ）に示した全ユーザ時間帯別平均滞留時間に基づくテーブル１５１１では、ユーザＡの時間帯１５０１「１０−１２時」の平均滞留時間１５０４が２５分であり、ユーザＢの時間帯１５０１「１０−１２時」の平均滞留時間１５０４が１４分である。「１０−１２時」時間帯の平均滞留時間の小さい順に、ユーザＢが投入したジョブの先行順序番号が１、ユーザＡが投入したジョブの先行順序番号が２となる。そのため、先行レンダリング処理の実行はＢ、Ａの順となる。このように、時間帯別に平均滞留時間を計算し、ジョブの投入時刻が属する時間帯の平均滞留時間が小さい順に先行レンダリングを実行することにより先行レンダリングの実行順序がより合理的になり、各ユーザの印刷待ち時間の短縮に繋がる。
【００８４】
＜第４の実施形態＞
以下では、本発明の第４の実施形態について説明する。上第１乃至第３の実施形態はユーザの印刷履歴に基づき平均滞留時間を算出し、更に平均滞留時間に基づき優先順序番号を付与し、自動的に先行処理順序を変更する実施例を説明した。しかし、実際の運用においては、平均滞留時間と関係なく、特定の人が投入した印刷ジョブを優先して印刷するケースもある。このような状況に対応するため、本実施形態では、ユーザの優先順序番号を設定し、それに基づき先行処理の優先順序を決定する方法を説明する。なお、本実施形態は、上記第１乃至第３の実施形態で算出された優先順位を修正するように使用されてもよい。つまり、本実施形態は、上記第１乃至第３の実施形態で算出された優先順位に対して、さらにユーザ操作によって設定された優先順位を反映するように制御してもよい。
【００８５】
図１６（Ｃ）は、ＨＤＤ１２４に格納されるユーザ優先順序テーブル１６２３であり、ユーザ名１６１１、及びユーザの優先順序番号１６１２から構成される。図１７（Ａ）は、ＨＤＤ１２４に格納される投入順による先行処理の実行順序テーブル１７１１であり、優先順序番号１７０１、印刷ジョブ番号１７０２、ユーザ名１７０３、及び投入時刻１７０４から構成される。図１７（Ｂ）は、ＨＤＤ１２４に格納される手動設定優先度による先行処理の実行順序テーブル１７１２であり、先行処理順序番号１７０５、印刷ジョブ番号１７０６、ユーザ名１７０７、及びジョブの投入時刻１７０８から構成される。図１６（Ａ）及び図１６（Ｂ）は、ユーザ優先度の選択画面１６２１、１６２２を示し、画像形成装置１０１の管理者は操作パネル１１３からアクセスできる。選択画面１６２１は、選択ラジオボタン１６０１、優先度設定対象ユーザ１６０２、上スクロールボタン１６０３、下スクロールボタン１６０４、決定ボタン１６０５、及びキャンセルボタン１６０６を含んで構成される。選択画面１６２２は、選択ラジオボタン１６０７、優先度１６０８、決定ボタン１６０９、及びキャンセルボタン１６１０を含んで構成される。各コンポーネントの詳細については後述する。
【００８６】
以下では、図９及び図１６を参照して、ユーザ優先順序の設定処理を説明する。図９は、選択画面１６２１、１６２２を介して手動でユーザの優先度（優先順序番号）を設定する処理の処理手順を示す。図１６（Ａ）の優先度設定対象ユーザの選択画面１６２１、及び図１６（Ｂ）のユーザ優先度の選択画面１６２２は、操作パネル１１３等に設けられた不図示の優先度設定ボタンを押下することで表示される。以下で説明する処理は、例えば、ＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００８７】
Ｓ９０１で、ＣＰＵ１２３は、図３（Ｄ）のユーザテーブルからユーザ名を取得し、これらに対応するユーザを優先度設定対象ユーザ１６０２に設定して、図１６（Ａ）の選択画面１６２１を操作パネル１１３に表示する。続いて、Ｓ９０２で、ＣＰＵ１２３は、選択画面１６２１のキャンセルボタン１６０６が押下されたかどうかを判定し、押下されていれば処理を終了し、押下されていなければＳ９０３に進む。
【００８８】
Ｓ９０３で、ＣＰＵ１２３は、選択画面１６２１の決定ボタン１６０５が押下されたかどうかを判定し、押下されていなければＳ９０２の処理に戻り、押下されていればＳ９０４に進む。なお、図１６（Ａ）の優先度設定対象ユーザ１６０２に設定したいユーザが表示されていない場合、上スクロールボタン１６０３又は下スクロールボタン１６０４を押下することにより、表示領域を上下にスクロールすることができる。
【００８９】
Ｓ９０４で、ＣＰＵ１２３は、図１６（Ａ）で選択ラジオボタン１６０１の中で選択状態となっているユーザを取得し、当該ユーザの優先順序番号を図１６（Ｃ）のユーザ優先順序テーブル１６２３から取得する。そして、ＣＰＵ１２３は、優先順序番号の「０」、「１」、「２」をそれぞれ「高い」、「普通」、「低い」の優先度文字列に変換する。さらに、ＣＰＵ１２３は、この優先度文字列と一致する優先度１６０８の左にある選択ラジオボタン１６０７を選択状態にした、図１３（Ｂ）に示すような、ユーザの優先度設定の選択画面１６２２を操作パネル１１３に表示する。
【００９０】
Ｓ９０５で、ＣＰＵ１２３は、選択画面１６２２のキャンセルボタン１６１０が押下されたかどうかを判定し、押下されていれば、選択画面１６２２を閉じて、Ｓ９０１に戻り、キャンセルボタン１６１０が押下されていなければ、Ｓ９０６に進む。Ｓ９０６で、ＣＰＵ１２３は、選択画面１６２２の決定ボタン１６０９が押下されたかどうかを判定し、押下されていなければＳ９０５に戻り、押下されていればＳ９０７に進む。
【００９１】
そして、Ｓ９０７で、ＣＰＵ１２３は、選択ラジオボタン１６０７が選択状態になっている、優先度１６０８を取得し、優先度の「高い」、「普通」、「低い」を、優先順序番号の「０」、「１」、「２」に変換する。さらに、ＣＰＵ１２３は、変換された優先順序番号を、図１６（Ｃ）のユーザ優先順序テーブル１６２３の当該ユーザに対応する優先順序番号１６１２に設定して、Ｓ９０１に戻る。なお、設定された優先順序番号は図４に示した先行処理に使用される。
【００９２】
上述のような設定処理により、例えば、図１７（Ａ）の投入順による先行処理の実行順序テーブル１７１１が図１６（Ｃ）のユーザ優先順序テーブル１６２３により、図１７（Ｂ）の手動設定優先度による先行処理の実行順序テーブル１７１２のように更新される。平均滞留時間の長いユーザの場合、上記第１乃至第３の実施形態の平均滞留時間を使用すると当該ユーザの先行レンダリング処理順序が後ろになる。一方、本実施形態によれば、当該ユーザの優先度を「高い」と設定することにより、優先順序番号は「２」となり、平均滞留時間に関係せず最優先で先行レンダリングを実施することが可能となる。
【００９３】
＜第５の実施形態＞
以下では、本発明の第５の実施形態について説明する。上記第１乃至第３の実施形態は平均滞留時間で先行処理順を決定し、上記第４の実施形態はユーザ優先度でユーザの優先順序を決定する処理を説明した。一方、本実施形態は、ユーザが投入したジョブの滞留数（以降では、略して滞留数と称する。）でユーザの優先順序を決定する処理を説明する。滞留数の多いユーザは、大量のジョブを投入し、一定時間経過してから一気に印刷する傾向がある。それに対して、滞留数の少ないユーザは、ジョブを投入してからすぐに印刷する傾向がある。そのため、滞留数の少ないユーザが投入した印刷ジョブを先に先行処理する方が各ユーザの待ち時間の低減に繋がる可能性が高い。
【００９４】
図１０及び図１８を参照して、本実施形態に係る滞留数に応じた優先順位の決定処理を説明する。図１８（Ａ）は投入順による先行処理の実行順序テーブル１８１１であり、先行順序番号１８０１、印刷ジョブ番号１８０２、ジョブ投入ユーザ名１８０３、及びジョブ投入時刻１８０４から構成される。図１８（Ｂ）は滞留数による優先順序テーブル１８１２であり、優先順序番号１８０５、ユーザ名１８０６、及び滞留数１８０７から構成される。図１０を参照して、滞留数により優先順序番号を決定する処理手順を説明する。以下で説明する処理は、例えば、ＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００９５】
Ｓ１００１で、ＣＰＵ１２３は、投入順による先行処理の実行順序テーブル１８１１を参照する参照ポインタを作成し、最初は一番目のジョブを指すように設定する。続いて、Ｓ１００２で、ＣＰＵ１２３は、参照ポインタが実行順序テーブル１８１１の終端に到達しているか否かを判断する。到達してない場合はＳ１００３に進み、到達した場合はＳ１００８に進む。
【００９６】
Ｓ１００３で、ＣＰＵ１２３は、参照ポインタが指しているジョブの印刷ジョブ番号と一致する書誌情報（図３（Ｃ）が示す）を取得する。続いて、Ｓ１００４で、ＣＰＵ１２３は、このジョブを投入したユーザの滞留数をカウントする滞留数カウンタが作成されているか否かを判断する。作成されていない場合は、Ｓ１００５に進み、ＣＰＵ１２３は、滞留数カウンタを作成し、初期値として１を設定し、Ｓ１００６に進む。一方、既に作成されている場合は、そのままＳ１００６に進む。
【００９７】
Ｓ１００６で、ＣＰＵ１２３は、滞留数カウンタに１を加算する。続いて、Ｓ１００７で、ＣＰＵ１２３は、参照ポインタを次のジョブに進めて、Ｓ１００２に処理を戻す。一方、Ｓ１００２で参照ポインタが実行順序テーブル１８１１の終端に到達したと判断されると、Ｓ１００８に進み、ＣＰＵ１２３は、滞留数の小さいユーザに小さい優先順序番号を付与し、優先順序テーブル１８１２を更新して格納し、処理を終了する。ここで付与された優先順序番号は図４が示す先行処理を実施する際に使用される。上記の処理は新しいジョブが先行処理の実行順序テーブル１８１１に投入される度に実行される。
【００９８】
図１８（Ａ）の実行順序テーブル１８１１に対して上記Ｓ１００１〜Ｓ１００８の処理を実行する場合、図１８（Ｂ）の優先順序テーブル１８１２に示すように、ユーザＡ、Ｂ、Ｃの滞留数は１、２、３となる。滞留数の小さい順で優先順序番号を付与するため、ユーザＡの優先順序番号が１、ユーザＢの優先順序番号が２、ユーザＣの優先順序番号が３となる。
【００９９】
以上により、ユーザのジョブ滞留数に基づき印刷ジョブの優先順序番号を決定する処理が完了し、決定された優先順序番号の小さいユーザのジョブ順に先行処理が実行される。なお、以上の説明では、滞留数の少ないユーザが投入したジョブを先に先行処理するように処理しているが、実際の運用状況に応じて滞留数の多い順で先行処理を行うようにしてもよい。本実施形態では、滞留数に基づき優先順序番号を決定することにより、滞留数の少ないユーザが投入したジョブを先に先行処理することとなるので、各ユーザの印刷待ち時間の低減に繋がる。
【０１００】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０１】
１０１、１０２、１０３：画像形成装置、１１０：コントローラ、１１１：プリント機構、１１２：カードリーダ、１１３：動作パネル、１２０：ネットワークＩ／Ｆ、１２１：リーダＩ／Ｆ、１２２：パネルＩ／Ｆ、１２３：ＣＰＵ、１２４：ＨＤＤ、１２５：ＲＡＭ、１２６：ＲＯＭ、１２７：デバイスＩ／Ｆ、１２８：ＲＩＰ、１２９：画像処理回路、１３１：認証部、１３２：設定部、１３３：書誌管理部、１３４：印刷制御部、１３５：ジョブ解析部、１３６：先行処理部、１３７：留め置き制御部、１３８：印刷実行部、１３９：ＰＤＬ解析部、１４０：中間データ生成部
【図１】
2019098701.tif 000004
【図２】
2019098701.tif 000005
【図３】
2019098701.tif 000006
【図４Ａ】
2019098701.tif 000007
【図４Ｂ】
2019098701.tif 000008
【図５】
2019098701.tif 000009
【図６】
2019098701.tif 000010
【図７】
2019098701.tif 000011
【図８】
2019098701.tif 000012
【図９】
2019098701.tif 000013
【図１０】
2019098701.tif 000014
【図１１】
2019098701.tif 000015
【図１２】
2019098701.tif 000016
【図１３】
2019098701.tif 000017
【図１４】
2019098701.tif 000018
【図１５】
2019098701.tif 000019
【図１６】
2019098701.tif 000020
【図１７】
2019098701.tif 000021
【図１８】
2019098701.tif 000022