(57)【要約】【課題】留め置き印刷において、ユーザにより印刷指示されてからの印刷処理時間を短縮し、ユーザの出力待ちを少なくすること。【解決手段】画像形成装置101は、留め置きしたPDLデータを、通信プロトコルに基づいてソートし（S302，S311）、ユーザからの印刷指示が入力される前に前記ソートされた順序で先行してレンダリング処理して画像データを生成して記憶しておく（図４）。そして、画像形成装置101は、ユーザからの印刷指示を受けた際、印刷指示されたPDLデータに対応する画像データが記憶されている場合には、該PDLデータの印刷処理を、該PDLデータに対応する画像データを用いて実行する（図５）。【選択図】図３
2019123214.tif 000002
【特許請求の範囲】
【請求項１】
受信した印刷データを保存しておき、ユーザからの印刷指示が入力された場合に前記保存されている印刷データに基づきシートに画像を形成する画像形成装置であって、
前記保存されているページ記述言語で記載される印刷データの少なくとも一部のページを処理して該ページに対応する画像データを生成する先行処理の順序を、印刷データ受信時の通信プロトコルに基づいて決定する決定手段と、
前記印刷指示が入力される前に、前記決定手段で決定された順序で、前記保存されているページ記述言語で記載される印刷データの先行処理を行う先行処理手段と、
前記先行処理により生成された画像データを前記印刷データに対応付けて記憶する記憶手段と、
前記保存されている印刷データに対するユーザからの印刷指示を受けた場合、該印刷データに対応する画像データが前記記憶手段に記憶されている場合には、前記印刷指示された印刷データの印刷処理を該印刷データに対応する画像データを用いて実行する印刷実行手段と、
を有することを特徴とする画像形成装置。
【請求項２】
前記決定手段は、印刷データ受信時の通信プロトコルの優先度の高い順、及び通信時の電波強度から概算した距離の短い順で先行処理の順序を決定することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記通信プロトコルの優先度は、通信プロトコルの通信可能距離の規格に基づくことを特徴とする請求項２に記載の画像形成装置。
【請求項４】
他の装置からの要求に応じて印刷データを前記他の装置に送信する送信手段を有し、
前記送信手段は、他の装置に送信する印刷データに対応する画像データが前記記憶手段に記憶されている場合には、前記印刷データに該印刷データに対応する画像データを付加して送信することを特徴とする請求項１又は２に記載の画像形成装置。
【請求項５】
受信した印刷データを保存しておき、ユーザからの印刷指示が入力された場合に前記保存されている印刷データに基づきシートに画像を形成する画像形成装置の制御方法であって、
前記保存されているページ記述言語で記載される印刷データの少なくとも一部のページを処理して該ページに対応する画像データを生成する先行処理の順序を、印刷データ受信時の通信プロトコルに基づいて決定する決定ステップと、
前記印刷指示が入力される前に、前記決定ステップで決定された順序で、前記保存されているページ記述言語で記載される印刷データの先行処理を行う先行処理ステップと、
前記先行処理により生成された画像データを前記印刷データに対応付けて記憶手段に記憶する記憶ステップと、
前記保存されている印刷データに対するユーザからの印刷指示を受けた場合、該印刷データに対応する画像データが前記記憶手段に記憶されている場合には、前記印刷指示された印刷データの印刷処理を該印刷データに対応する画像データを用いて実行する印刷実行ステップと、
を有することを特徴とする画像形成装置の制御方法。
【請求項６】
コンピュータに、請求項５に記載の制御方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷ジョブを一度蓄積した後に印刷可能な画像形成装置の制御に関し、特に印刷ジョブの印刷実行時のレンダリング処理時間を短くする制御に関する。
【背景技術】
【０００２】
近年ネットワーク環境の普及に伴い、複数のユーザで複数の画像形成装置を共有して利用することが一般的になってきた。これにともない、機密性の高い印刷物を出力する際に他ユーザに見られないように、画像形成装置でユーザ認証を実行してから印刷実行を行う「留め置き印刷」の要望が高まっている。
【０００３】
特許文献１には、サーバ機能を有する画像形成装置内でホストコンピュータから送信された印刷ジョブを一時的に蓄積し、蓄積された印刷ジョブは画像形成装置上でユーザ認証を行うことにより、印刷実行される技術が提案されている。
特許文献１では、ユーザ認証後に印刷ジョブのレンダリング処理が開始される構成のため、ユーザは印刷ジョブのレンダリング処理の終了を待つことになる。そのため、「留め置き印刷」において印刷ジョブのレンダリング処理時間を短くする要望が高まっている。なお、留め置き印刷における印刷ジョブのレンダリング処理時間を短くする技術として、印刷ジョブの留め置き中に前もってレンダリング処理を行う先行レンダリング処理がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４０３３８５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のように、特許文献１では、先行レンダリング処理を行わず、ユーザからの印刷実行後に印刷ジョブのレンダリング処理を行っているため、印刷ジョブによっては出力を待たされる結果となる。なお、先行レンダリング処理を行ったとしても、複数の印刷ジョブが投入されている場合には、先行レンダリング処理の順番は先着順となる。このため、後に投入された印刷ジョブに対してユーザが印刷指示を出すと、まだ先行レンダリング処理が行われていない場合がある。この場合、印刷指示後に通常のレンダリング処理が開始されるため、ユーザは出力を待たされる結果となる。
【０００６】
本発明は、上記の課題を解決するためになされたものである。本発明は、留め置き印刷において、ユーザにより印刷指示されてからの印刷処理時間を短縮し、ユーザの出力待ちを少なくする仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、受信した印刷データを保存しておき、ユーザからの印刷指示が入力された場合に前記保存されている印刷データに基づきシートに画像を形成する画像形成装置であって、前記保存されているページ記述言語で記載される印刷データの少なくとも一部のページを処理して該ページに対応する画像データを生成する先行処理の順序を、印刷データ受信時の通信プロトコルに基づいて決定する決定手段と、前記印刷指示が入力される前に、前記決定手段で決定された順序で、前記保存されているページ記述言語で記載される印刷データの先行処理を行う先行処理手段と、前記先行処理により生成された画像データを前記印刷データに対応付けて記憶する記憶手段と、前記保存されている印刷データに対するユーザからの印刷指示を受けた場合、該印刷データに対応する画像データが前記記憶手段に記憶されている場合には、前記印刷指示された印刷データの印刷処理を該印刷データに対応する画像データを用いて実行する印刷実行手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、留め置き印刷において、ユーザにより印刷指示されてからの印刷処理時間を短縮し、ユーザの出力待ちを少なくすることができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態の画像形成装置を有する印刷システムの構成図
【図２】第１実施形態の印刷処理を示すシーケンス図
【図３】第１実施形態の印刷ジョブ留め置き処理を説明する図
【図４】第１実施形態の先行処理を説明するフローチャート
【図５】第１実施形態の印刷実行処理を説明するフローチャート
【図６】第１実施形態の先行処理結果の付加処理を説明するフローチャート
【図７】第１実施形態の先行処理結果付加後の印刷ジョブの一例を説明する図
【図８】第１実施形態の仕上げのレンダリング処理を説明するフローチャート
【図９】第１実施形態の仕上げのレンダリング処理を説明する図
【図１０】第３実施形態の印刷処理を示すシーケンス図
【図１１】第３実施形態の印刷実行処理を説明するフローチャート
【図１２】第３実施形態の印刷ジョブ送信処理を説明するフローチャート
【図１３】第３実施形態の先行処理結果の付加処理を説明するフローチャート
【図１４】第３実施形態の先行処理結果付加後の印刷ジョブを説明する図
【図１５】第３実施形態の仕上げのレンダリング処理を説明するフローチャート
【図１６】ユーザ認証後に操作パネルに表示されるUIの一例を説明する図
【図１７】第１実施形態の先行処理待ちテーブルを説明する図
【図１８】第１実施形態の電波強度と距離の換算例を説明する図
【図１９】第２実施形態の印刷処理を説明するフローチャート
【図２０】第１実施形態の通信プロトコル取得と距離の概算を説明するフローチャート
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。
〔第１実施形態〕
図１（Ａ）は、本発明の一実施形態を示す画像形成装置を有する印刷システムの構成を例示する図である。
【００１１】
図１（Ａ）において、101〜103は、本実施形態の画像形成装置である。画像形成装置101〜103は、MFP（Multi Function Printer）、SFP（Single Function Printer）、LBP（Laser Beam Printer）のいずれであってもよい。画像形成装置101〜103は、留め置き印刷可能な印刷装置であればよい。また、画像形成装置101〜103のプリント方式はどのようなものであってもよい。また、図１のシステムは、3台の画像形成装置を例として示しているが、1台以上の任意の画像形成装置を有する構成であればよい。
【００１２】
画像形成装置101〜103は、イーサネット（富士ゼロックス社 登録商標）等のLAN（Local Area Network）105を介し、各種指示を行うホストコンピュータ（以下「PC」）104と接続される。また、画像形成装置101〜103は、無線通信により、各種指示を行う無線接続端末141と接続される。画像形成装置101〜103は、PC104や無線接続端末141からの印刷指示内容に応じて処理を実行する。なお、図１（Ａ）に示した構成のように、複数の画像形成装置がLAN105を介して接続される場合は、画像形成装置は他の画像形成装置から印刷ジョブを受け取り印刷実行処理が可能である。この構成については第３実施形態で説明する。
【００１３】
なお、画像形成装置101〜103は同様の構成のため、画像形成装置101の構成を代表して記載し、他の画像形成装置102〜103の構成については記載を省略する。以下、画像形成装置101を用いて説明する構成は、画像形成装置102〜103についても同様である。
【００１４】
画像形成装置101は、コントローラ110、プリント機構111、カードリーダ112、操作パネル113等を備える。コントローラ110は、ネットワークI／F120、ネットワークI／F142、ネットワークI／F143、リーダI／F121、パネルI／F122、CPU123、HDD124、RAM125、ROM126、デバイスI／F127、RIP回路128、画像処理回路129をシステムバス130上に有する。
【００１５】
コントローラ110は、CPU123によりROM126又はHDD124に記憶されたプログラムを実行することによって画像形成装置101全体を制御する。
ネットワークI／F120は、例えばLANカード等で実現され、LAN105に接続して外部装置（例えばPC104）との間で情報の入出力を行う。
ネットワークI／F142は、例えば、Bluetooth（Bluetooth SIG登録商標）接続時に無線接続端末141との間で直接接続され情報の入出力を行う。
ネットワークI／F143は、例えば、Wi-Fi（Wi-Fi Alliance登録商標）接続時に無線接続端末141との間で直接接続され情報の入出力を行う。
【００１６】
リーダI／F121は、外部からの認証情報を受け取るカードリーダ112に対するインタフェース部である。リーダI／F121は、外部から入力された認証情報を受け取りCPU123に伝える役割と、無線接続端末141との間でNFC（Near Field Communication）接続により直接接続され情報の入出力を行う役割を有する。
カードリーダ112は、ユーザが持つIDカード等の情報を読み取り可能な機能を有し、IDカードから読み取ったユーザ情報や、無線接続端末141から受け取った印刷ジョブをコントローラ110へ送信する。
【００１７】
パネルI／F122は、各種メニューや印刷ジョブ情報等を表示可能な表示画面を有する操作パネル113に対するインタフェース部であり、操作パネル113に対して操作画面データを出力する。また、パネルI／F122は、操作パネル113から操作者が入力した情報をCPU123に伝える役割をする。
操作パネル113は、タッチパネルディスプレイやハードキー等を有する。操作パネル113は、コントローラ110より操作画面データを受け取り、該受け取った画面のタッチパネルディスプレイへの表示や、ユーザからの操作指示を受け取りコントローラ110へ通知する機能を有する。
【００１８】
CPU123は、画像形成装置101全体を制御するための中央処理装置である。HDD124は、ハードディスクドライブやソリッドステートドライブなどの記憶装置であり、各種処理のためのシステムソフトウェア及び入力された印刷ジョブや画像データ等を格納する。RAM125は、CPU123が動作するためのシステムワークメモリであり、入力された印刷ジョブや画像データを一時記憶するための画像メモリでもある。ROM126は、ブートROMであり、システムのブートプログラムが格納されている。CPU123は、ROM126又はHDD124に記憶されたプログラムを必要に応じてRAM125に読み出して実行することにより各種制御を実現する。
【００１９】
デバイスI／F127は、プリント機構111とコントローラ110とを接続し、画像データの同期系／非同期系の変換を行う。RIP回路128はラスターイメージプロセッサであり、中間データ（ディスプレイリスト）を解析してイメージに展開する。画像処理回路129は、印刷ジョブを解析して生成されたイメージデータに対してプリント機構111に応じた補正、解像度変換等の処理を行う。
プリント機構111は、コントローラ110の指示に従って、印刷を実行する。すなわち、プリント機構111は、印刷データに基づきシート（記録紙等）に画像を形成する。
【００２０】
図１（Ｂ）は、画像形成装置101〜103の動作を制御するコントローラ110のソフトウェア構成を例示する図である。
コントローラ110は、ソフトウェアとして、認証部131、設定部132、書誌管理部133、印刷制御部134、ジョブ解析部135、先行処理部136、留め置き制御部137、印刷実行部138、PDL解析部139、中間データ生成部140を実現する。すなわち、これら各部131〜140は、CPU123がROM126やHDD124に記憶されたプログラムを必要に応じてRAM125に読み出して実行することにより実現される機能部である。以下、詳細に説明する。
【００２１】
認証部131は、リーダI／F121（又は操作パネル113）よりシステムバス130を通じて認証情報を受け取り、留め置き制御部137へ通知する。設定部132は、パネルI／F122よりシステムバス130を通じて操作パネル113への入出力の制御を行う。
【００２２】
印刷制御部134は、ネットワークI／F120を通じて入力された印刷指示や印刷ジョブの情報を取得し、留め置き制御部137や印刷実行部138に対して印刷ジョブの処理を指示する。また、印刷制御部134は、各ネットワークI／F（120、142、143）やリーダI／F121から送られてきた情報を基に、その情報を受信した時の通信プロトコルを判断し、受信した情報にプロトコルの種別情報と受信時の電波状態の情報を付加する役割を有する。
【００２３】
留め置き制御部137は、印刷制御部134から受け取った印刷ジョブに対して印刷ジョブの解析、管理、先行処理の制御や、印刷実行部138への印刷指示を行う。ジョブ解析部135は、留め置き制御部137が受信した印刷ジョブの解析を行う。書誌管理部133は、留め置き制御部137が受信した印刷ジョブや印刷ジョブに関する情報を制御し管理する。先行処理部136は、留め置き制御部137が受信した印刷ジョブのジョブ解析部135の解析結果に応じて、印刷ジョブのレンダリング処理を行う。すなわち、先行レンダリング処理では、ソフトウェアにより印刷ジョブのレンダリング処理を行う。
【００２４】
印刷実行部138は、印刷制御部134や留め置き制御部137から受け取った印刷ジョブに対して、PDL解析部139、中間データ生成部140、RIP回路128、画像処理回路129の制御を行って画像の生成を行う。さらに、印刷実行部138は、該生成した画像を、デバイスI／F127を通じてプリント機構111へ出力し、印刷処理を実行させる。
【００２５】
PDL解析部139は、印刷実行部138より指示を受けた印刷ジョブのPDL解析を行う。なお、PDLは、Page Description Languageの略語であり、ページ記述言語を示す。中間データ生成部140は、PDL解析部139が解析した情報を基に、中間データを生成する。
【００２６】
図２は、第１実施形態の画像形成装置101〜103を有する印刷システムがPC104から印刷ジョブ（留め置き）を受信して画像形成装置101で印刷する時のシーケンスの一例を示したものである。図中、各ステップには「S」を付してある。なお、図２中の画像形成装置101が実行する処理は、画像形成装置101のCPU123がROM126又はHDD124に記憶されたプログラムを必要に応じてRAM125に読み出して実行することにより実現される。また、図２中のPC104が実行する処理は、PC104の不図示のCPUがHDD等に記憶されたプログラムを必要に応じてRAMに読み出して実行することにより実現される。
【００２７】
ユーザがPC104にログインし（S201）、PC104を操作して任意のアプリケーションからデータの印刷を要求すると（S202）、まずPC104は、ユーザ情報を取得する（S203）。そして、PC104は、上記S203で取得したユーザ情報を印刷ジョブに付与して印刷ジョブ（留め置き）を生成し（S204）、該印刷ジョブを画像形成装置101に送信する（S205）。
【００２８】
画像形成装置101は、印刷ジョブを受信すると、HDD124に印刷ジョブを保存する（S206）。そして、画像形成装置101は、該印刷ジョブに付与されたユーザ情報を抽出し、書誌情報を作成し（S207）、HDD124に書誌情報を保存（登録）すると共に、先行処理待ちテーブルに印刷ジョブ情報を追加する（S208）。画像形成装置101は、書誌情報の保存と先行処理待ちテーブルへの追加を終えると、先行処理待ちテーブルのソートを行う（S209）。その後、画像形成装置101は、先行処理待ちテーブルの先頭に記載された印刷ジョブから先行処理を開始し（S210）、先行処理の結果を逐次HDD124に保存する（S211）。
【００２９】
ユーザが画像形成装置101にログインすると（S212）、画像形成装置101は、該ユーザのユーザ情報を取得し（S213）、該ユーザの書誌情報に基づいて該ユーザの印刷ジョブ一覧を操作パネル113に表示する（S214）。
【００３０】
さらに、画像形成装置101は、ユーザからの印刷指示を受けると（S215）、上記S211で保存していた先行処理の結果を、印刷ジョブに付加する（S216）。先行処理の結果の印刷ジョブへの付加についての詳細は後述する。さらに、画像形成装置101は、先行処理結果が付加された印刷ジョブの先行処理結果を使って、仕上げのレンダリング処理を行い（S217）、印刷を行う（S218）。
【００３１】
なお、図２では画像形成装置101がPC104から印刷ジョブを受信する例を用いて印刷処理のシーケンスを説明したが、無線接続端末141から印刷ジョブを受信する構成でも同様である。
【００３２】
図３は、第１実施形態の画像形成装置101〜103が備えるコントローラ110がソフトウェア（138〜140等）により実行する印刷ジョブ留め置き処理を説明する図である。
図３（Ａ）は、第１実施形態の画像形成装置101〜103が備えるコントローラ110がソフトウェア（138〜140等）により実行する印刷ジョブ留め置き処理の一例を説明するフローチャートである。図３（Ｂ）は、画像形成装置101が受信する印刷ジョブの構成の一例を説明する図である。図３（Ｃ）は、コントローラ110がHDD124に記憶するユーザの印刷ジョブリストの一例を説明する図である。なお、図３（Ａ）、及び、後述する図４、図５、図６、図８及び図２０に示す処理は、CPU123がROM126又はHDD124に記憶されたプログラムを必要に応じてRAM125に読み出して実行することにより実現される。
【００３３】
S301において、印刷制御部134は、例えばネットワークI／F120を通じてPC104などから送信された印刷ジョブの受信を行う。印刷ジョブは、例えば図３（Ｂ）のような構成になっており、データの最初に各種設定情報を含むヘッダ情報を持ち、その後に各ページのデータ（PDLデータ）が含まれる。各ページの情報内の「P1」、「Line1」、「Text1」、「Rect1」、「Image1」、「Rect2」などは、ページを構成するための描画コマンドの例である。なお、無線接続端末141などからWi-Fi接続で直接送信された印刷ジョブはネットワークI／F142を通じて受信される。また、Bluetooth接続で直接送信された印刷ジョブはネットワークI／F143を通じて受信される。NFC接続で直接送信された印刷ジョブはカードリーダ112を通じて受信される。
【００３４】
S302において、印刷制御部134は、印刷データ受信時の通信プロトコルの種類判別と、受信時の電波強度を測定し、例えば図１８に示す距離換算テーブルに従って、送信元との概算距離を求める。電波強度の測定に失敗した場合には、計測不可を示す値、例えば「65535」など送信位置としてあり得ない値を概算距離とする。これら一連の処理は図２０を用いて後述する。
【００３５】
次にS303において、印刷制御部134は、上記S301で受信した印刷ジョブの情報を印刷待ちテーブルに追加し、S304に処理を進める。なお、印刷待ちテーブルは、例えば図１７に示す先行処理待ちテーブルと同様の構造である。
【００３６】
S304において、印刷制御部134は、上記S301で受信した印刷ジョブが「留め置きジョブ」か「そのまま印刷を行うジョブ」かを判断する。「留め置きジョブ」か否かの判断方法は、画像形成装置内で記憶しているパラメータが留め置きを指し示すものであるかとか、印刷ジョブのヘッダ内に情報が埋め込まれているものを解析するなどの方法で行うものとするが、公知のため詳細は省略する。上記S304において、「そのまま印刷を行うジョブ」と判断した場合（S304でNoの場合）、印刷制御部134は、S305に処理を進める。
【００３７】
S305において、印刷制御部134は、印刷実行部138に対して上記印刷待ちテーブルの先頭に記載された印刷ジョブから順に印刷処理を指示する。印刷実行部138は、PDL解析部139や中間データ生成部140を制御して上記印刷ジョブの解析や中間データの生成を行い、生成された中間データをRIP回路128にレンダリング処理させ、画像データを生成する。
【００３８】
次にS306において、印刷実行部138は、上記S305で生成された画像データを画像処理回路129で画像補正をした後、デバイスI／F127を通じてプリント機構111へ転送を行い印刷実行し、本フローチャートの処理を終了する。
【００３９】
一方、上記S304において、「留め置きジョブ」と判断した場合（S304でYesの場合）、印刷制御部134は、S307に処理を進める。
【００４０】
S307において、印刷制御部134は、留め置き制御部137に対して上記印刷ジョブの処理を指示する。留め置き制御部137は、印刷ジョブ内に含まれるユーザ情報の取得を行う。図３（Ｂ）の例では、ユーザ情報は「ユーザ名：ユーザA」で示される。なお、このユーザ情報は、印刷ジョブのヘッダ情報内に含まれていなくても、送信元のPC104からユーザ情報を別途送る構成でも構わない。ユーザ情報とは、ユーザ名やユーザIDなど印刷実行を行ったユーザを識別可能な情報であればどのような情報でもよい。
【００４１】
次にS308において、留め置き制御部137は、ジョブ解析部135に上記印刷ジョブの解析を指示する。ジョブ解析部135は、上記印刷ジョブに含まれる印刷設定情報と文書名等の情報（例えばページ数も含む）を取得する。この印刷設定情報には、例えば片面印刷か両面印刷かを示す情報、カラーで印刷するかモノクロで印刷するかの情報、出力する用紙サイズに関する情報などが含まれる。図３（Ｂ）は一例であり、印刷設定情報の一部が無い印刷データであってもよく、その時はHDD124やROM126が持つ初期設定値とするか、印刷実行時にユーザから設定してもらう構成であってもよい。
【００４２】
次にS309において、留め置き制御部137は、上記S307により取得したユーザ情報と、上記S308により取得した印刷設定情報と文書名等の情報と、上記S302により取得した通信プロトコルと送信元との概算距離とを関連付ける。そして、留め置き制御部137は、これら関連付けられた情報を、1レコードとする、そのユーザ情報に対応する書誌情報を作成する（例えば図３（Ｃ））。なお、ファイル情報に含まれる保存先には、当該処理を実行している画像形成装置自身を特定する情報が含まれる。
【００４３】
図３（Ｃ）は、本実施形態のユーザ毎の書誌情報の一例を示す図である。
ここでは、ユーザAの書誌情報を例示する。本実施形態の書誌情報は、例えば、ジョブID、ファイル情報、印刷設定情報、ページ数、通信プロトコル、概算距離、先行処理情報等を有する。なお、ジョブIDには、ジョブ毎に固有の値が設定される。また、概算距離の単位は、例えばメートルとする。また、先行処理情報は、先行処理の「未」／「済」を示す情報、先行処理結果の保存場所（ここではファイルパス）等の情報を含む。このように、書誌情報は、先行処理により生成された画像データを印刷データに対応付けて記憶する。
【００４４】
次にS310において、留め置き制御部137は、上記S309において作成された書誌情報の登録を、書誌管理部133に指示する。この指示に応じて、書誌管理部133は、該S309において作成された書誌情報をHDD124に保存（登録）する。また、留め置き制御部137は、図１７に示すような先行処理待ちテーブルに書誌情報の一部を登録する。この時、先行処理待ちテーブルに登録する情報は、ジョブID1701と、入稿時刻1702（入稿された日時）と、通信プロトコル1703と、概算距離1704（単位はメートル）を含む。新しいジョブは、先行処理待ちテーブルの最後尾に登録される。そして、留め置き制御部137は、上記印刷ジョブを、今回追加された1レコードに対応する印刷ジョブとしてHDD124に保存する。
【００４５】
次にS311において、留め置き制御部137は、先行処理待ちテーブルをソートし、本フローチャートの処理を終了する。なお、このソート手順は後述する図４（Ｂ）で詳細に説明する。
【００４６】
ここで図２０を参照して、通信プロトコルの取得及び距離を概算する処理（図３のS302）について説明する。
図２０は、第１実施形態の画像形成装置101〜103が備えるコントローラ110がソフトウェア（印刷制御部134等）により実行する通信プロトコルの取得及び距離を概算する処理（図３のS302）の一例を示すフローチャートである。
【００４７】
S2001において、印刷制御部134は、カードリーダ112で印刷ジョブを受信した（上記S301で受信した印刷ジョブがカードリーダ112で受信したもの）か否かを判定する。カードリーダ112で印刷ジョブを受信したと判定した場合（S2001でYesの場合）、印刷制御部134は、S2002に処理を進める。
S2002において、印刷制御部134は、受信時の通信プロトコルが「NFC」であることを、受信した印刷ジョブの情報に関連付ける。さらにS2003において、印刷制御部134は、NFC通信の距離として「1」を受信した印刷ジョブの情報に関連付け、本フローチャートの処理を終了する。
【００４８】
一方、上記S2001において、カードリーダ112で印刷ジョブを受信していないと判定した場合（S2001でNoの場合）、印刷制御部134は、S2004に処理を進める。
【００４９】
S2004において、印刷制御部134は、ネットワークI／F142で印刷ジョブを受信した（上記S301で受信した印刷ジョブがネットワークI／F142で受信したもの）か否かを判定する。ネットワークI／F142で印刷ジョブを受信したと判定した場合（S2004でYesの場合）、印刷制御部134は、S2005に処理を進める。
S2005において、印刷制御部134は、受信時の通信プロトコルが「Bluetooth」であることを、受信した印刷ジョブの情報に関連付ける。さらにS2006において、印刷制御部134は、ネットワークI／F142で測定したBluetooth通信の電波強度と図１８に示す距離換算テーブルから概算距離を求め、受信した印刷ジョブの情報に関連付け、本フローチャートの処理を終了する。
【００５０】
一方、上記S2004において、ネットワークI／F142で印刷ジョブを受信していないと判定した場合（S2004でNoの場合）、印刷制御部134は、S2007に処理を進める。
【００５１】
S2007において、印刷制御部134は、ネットワークI／F143で印刷ジョブを受信した（上記S301で受信した印刷ジョブがネットワークI／F143で受信したもの）か否かを判定する。ネットワークI／F143で印刷ジョブを受信したと判定した場合（S2007でYesの場合）、印刷制御部134は、S2008に処理を進める。
S2008において、印刷制御部134は、受信時の通信プロトコルが「Wi-Fi」であることを、受信した印刷ジョブの情報に関連付ける。さらにS2009において、印刷制御部134は、ネットワークI／F143で測定したWi-Fi通信の電波強度と図１８に示す距離換算テーブルから概算距離を求め、受信した印刷ジョブの情報に関連付け、本フローチャートの処理を終了する。
【００５２】
一方、上記S2007において、ネットワークI／F143で印刷ジョブを受信していないと判定した場合（S2007でNoの場合）、印刷制御部134は、S2010に処理を進める。
S2010において、印刷制御部134は、上記S301で受信した印刷ジョブをネットワークI／F120で受信したものとみなし、通信プロトコルは有線接続であることを、受信した印刷ジョブの情報に関連付ける。さらにS2011において、印刷制御部134は、有線接続の通信距離として「65535」を受信した印刷ジョブの情報に関連付け、本フローチャートの処理を終了する。
【００５３】
以下、図５を参照して、印刷実行処理について説明する。
図５は、第１実施形態の画像形成装置101〜103が備えるコントローラ110がソフトウェア（131、132、138等）により実行する印刷実行処理の一例を説明するフローチャートである。
【００５４】
S501において、認証部131は、ユーザが持つIDカードがカードリーダ112にかざされた場合に、カードリーダ112がIDカードから読み取ったユーザ情報をリーダI／F121を通じて受け取り、認証処理を行う。ここでは、ユーザが持つIDカードからユーザ情報を読み取る例を記載したが、操作パネル113等からユーザ情報とパスワードを入力してユーザ認証を行う方式や生体認証などの公知の認証方法を用いてもよい。認証処理に成功した場合、認証部131は、該ユーザ情報を設定部132に通知する。
【００５５】
S502において、設定部132は、上記S501で取得したユーザ情報と同じユーザ情報に対応する書誌情報を、書誌管理部133より受け取り、該書誌情報を基に印刷ジョブリストを生成し、パネルI／F122を通じて操作パネル113へ表示する。ここで操作パネル113に表示される情報は、例えば図１６の1601に示すようなものであり、印刷ジョブリストは一例として図１６の1602のように表示される。
【００５６】
図１６は、ユーザ認証後に操作パネル113に表示されるユーザインタフェース（UI）の一例を説明する図である。
ユーザは、印刷ジョブリスト1602から所望の印刷ジョブを選択し、プリント開始ボタン1603を押下することにより、該選択した印刷ジョブの印刷指示を行うことが可能である。また、ユーザは、印刷ジョブリスト1602から所望の印刷ジョブを選択し、印刷設定ボタン1604を押下することにより、該選択した印刷ジョブの印刷設定を変更することが可能である。なお、ログアウトボタン1605は、ログアウトするためのものである。
【００５７】
次にS503において、設定部132は、ユーザから印刷ジョブリスト1602に表示している印刷ジョブに対して印刷実行指示があったか否かを判断する。例えばユーザが印刷ジョブリスト1602から印刷ジョブを選択してプリント開始ボタン1603を押下した場合、設定部132は、印刷実行指示があったと判断する。また、プリント開始ボタン1603を押下することなく、例えばユーザがログアウトボタン1605を押下した場合又はタイムアウトした場合、設定部132は、印刷実行指示が無かったと判断する。
【００５８】
そして、印刷実行指示がなかったと判断した場合（S503でNoの場合）、設定部132は、本フローチャートの処理を終了する。
一方、印刷実行指示があったと判断した場合（S503でYesの場合）、設定部132は、S504に処理を進める。
【００５９】
S504において、設定部132は、印刷実行指示されたことを留め置き制御部137に通知する。留め置き制御部137は、印刷実行指示された印刷ジョブが先行処理済みであるか否かを判断する。この判断は、書誌情報を参照し、後述する図４に示す先行処理のS407でYesの場合に書誌情報の先行処理情報に付加される「先行処理：済」の情報に基づいて判断する。
上記S504において、印刷ジョブが先行処理済みであると判断した場合（S504でYesの場合）、留め置き制御部137は、S505に処理を進める。
【００６０】
S505において、留め置き制御部137は、先行処理結果の情報をPDLデータに付加する処理を行い、印刷ジョブの生成を行う。先行処理結果の付加処理の詳細は後述する図６、図７に示す。S505の後、留め置き制御部137は、印刷ジョブの印刷指示を、印刷実行部138に行う。該指示に応じて、印刷実行部138は後述するS508の処理を実行する。
【００６１】
一方、上記S504において、印刷ジョブが先行処理済みでないと判断した場合（S504でNoの場合）、留め置き制御部137は、S506に処理を進める。
S506において、留め置き制御部137は、印刷実行指示された印刷ジョブが先行処理中であるか否かを判断する。この判断は、上記S504と同様に書誌情報を参照し、先行処理中であるか否かで判断してもよいし、後述する図４に示す先行処理のS404で書誌情報に関連付けされた先行レンダリング処理済みの画像データが存在するか否かで判断してもよい。
【００６２】
そして、上記S506において、印刷実行指示された印刷ジョブが先行処理中であると判断した場合（S506でYesの場合）、留め置き制御部137は、S507に処理を進める。
S507において、留め置き制御部137は、先行処理中の印刷ジョブに対して先行処理の中断を行う。先行処理の中断の情報は先行処理部136へ通知され、後述する図４に示す先行処理のS405で説明する印刷指示があるかどうかの判断に使用される。上記S507の後、留め置き制御部137は、先行処理を中断した時点までに生成されてHDD124に保存されている先行処理結果（後述する図４に示す先行処理のS404で対応する書誌情報に関連付けされた画像データ）を先行処理情報として取得し、S505において印刷ジョブに付加する。
【００６３】
一方、上記S506において、印刷実行指示された印刷ジョブが先行処理中でないと判断した場合（S506でNoの場合）、留め置き制御部137は、印刷ジョブの印刷指示を、印刷実行部138に行う。該指示に応じて、印刷実行部138はS508の処理を実行する。
【００６４】
S508において、印刷実行部138は、仕上げのレンダリング処理を行う。仕上げのレンダリング処理は、印刷ジョブに先行処理結果の情報が付加されていない場合は、図３のS305のレンダリング処理と同様の処理である。なお、印刷ジョブに先行処理結果の情報が付加されている場合の仕上げのレンダリング処理の詳細は後述する図８で示す。
【００６５】
次にS509において、印刷実行部138が印刷を実行する。印刷実行部138による印刷の実行は図３のS306と同様の処理である。S509の後、印刷実行部138は、本フローチャートの処理を終了する。
【００６６】
以下、図６、図７を用いて、先行処理結果の付加処理（図５のS505）について説明する。
図６は、第１実施形態の画像形成装置101〜103が備えるコントローラ110がソフトウェア（留め置き制御部137）により実行する先行処理結果の付加処理（図５のS505）の一例を説明するフローチャートである。
図７は、第１実施形態の先行処理結果の付加処理によってPDLデータに付加される先行処理結果の一例を説明する図である。
【００６７】
S601において、留め置き制御部137は、PDLデータに先行処理結果を付与する処理の開始として、先行処理結果（この時点では空）に、図７の701のような識別子情報を付加する。識別子の情報は、先行処理結果が付与されていることを示す情報であり、文字列であったり数値であったりコントローラ内部で識別可能なものであれば構わない。
【００６８】
次にS602において、留め置き制御部137は、上記S601で付加された識別子の情報に続いて、先行処理結果に、図７の702のような先行処理情報を付加する。先行処理情報は、先行処理結果全体のデータサイズや対象の印刷ジョブの総ペース数や先行処理されているページ情報などを含むものである。なお、先行処理結果全体のデータサイズや先行処理結果の情報を指し示すインデックス情報など、後述の処理を行った後でないとわからない情報に関しては、情報を格納する領域だけ確保しておき、後述の処理後に情報の更新を行う（後述するS605で更新する）。図７の702に示した構成は一例であり、先行処理結果の情報を解析するのに必要な情報が揃っていればどのような構成でも構わない。
【００６９】
次にS603において、留め置き制御部137は、上記S602で付加された先行処理情報に続いて、先行処理結果に、図７の703のような先行処理結果の情報を付加する。ここでは、先行処理結果のページ数を示すもの、フォーマットを示すもの、先行処理結果の情報を示すものを、1つのセットとして情報を付加していく。703で示した例では、最初に1ページ目に対するセットの情報を付加しており、先行処理結果のフォーマットを「ファイルパス」としている。なお、フォーマットを「ファイルパス」とした場合、留め置き制御部137は、先行処理結果が格納されているHDD124のファイルパス情報（先行処理結果の記憶場所を特定する情報）を、先行処理結果の情報として付加する。
【００７０】
S604において、留め置き制御部137は、先行処理済みの全ページの情報を付加したかどうかを判断する。そして、まだ先行処理済みの全ページの情報を付加していないと判断した場合（S604でNoの場合）、留め置き制御部137は、S603に処理を戻し、次のページの処理に移行する。
【００７１】
一方、先行処理済みの全ページの情報を付加したと判断した場合（S604でYesの場合）、留め置き制御部137は、S605に処理を進める。
S605において、留め置き制御部137は、上記S602で作成した先行処理情報の更新を行う。先行処理結果全体のデータサイズや先行処理結果の情報を指し示すインデックス情報など予め確保しておいた領域に処理終了後の情報を上書き更新する。
【００７２】
次にS606において、留め置き制御部137は、上記S601〜S605で作成した先行処理結果（図７の701、702、703）に続いて、図７の704のようなPDLデータを付加する。本実施形態では、図７の704に示すように、PDLデータは加工することなく元の状態で付加している。該S606により、図７のような、先行処理結果とPDLデータが組み合わさった印刷ジョブが生成される。S606の後、留め置き制御部137は、本フローチャートの処理を終了する。
【００７３】
なお、上記説明では、フォーマットを「ファイルパス」とし、先行処理結果が格納されているHDD124のファイルパス情報を、先行処理結果の情報としてPDLデータに付加する場合について示した。これにより、画像データの無駄なメモリコピーを抑え、メモリ資源の節約が可能になる。しかし、フォーマットを「イメージ」とし、留め置き制御部137が、先行処理結果そのものである画像データ（イメージデータ）を、先行処理結果の情報としてPDLデータに付加するようにしてもよい。
【００７４】
以下、図８、図９を参照して、仕上げのレンダリング処理（図５のS508）について説明する。
図８は、第１実施形態の画像形成装置101〜103が備えるコントローラ110がソフトウェア（138〜140等）により実行する仕上げのレンダリング処理（図５のS508）の一例を説明するフローチャートである。
図９は、印刷実行部138、PDL解析部139、中間データ生成部140のソフトウェアモジュール構成の一例を説明する図である。
【００７５】
S801において、印刷実行部138は、印刷制御部134や留め置き制御部137より受け取った印刷ジョブを解析し、先行処理を実施した印刷ジョブか否かを判断する。印刷実行部138は、印刷ジョブに識別子情報（図７の701）が存在しない場合、印刷実行部138は、先行処理を実施していない印刷ジョブと判断し（S801でNoと判断し）、S808に処理を進める。なお、S808以降の処理については後述する。
【００７６】
一方、印刷実行部138は、印刷ジョブに識別子情報（図７の701）が存在する場合、印刷実行部138は、先行処理を実施した印刷ジョブと判断し（S801でYesと判断し）、S802に処理を進める。
【００７７】
S802において、印刷実行部138は、これから解析を行う解析対象ページが先行処理を実施したページか否か判断する。解析対象ページが印刷ジョブの先行処理情報（図７の702）に存在しない場合、印刷実行部138は、先行処理を実施したページでないと判断し（S802でNoと判断し）、S808に処理を進める。
【００７８】
一方、印刷実行部138は、解析対象ページが印刷ジョブの先行処理情報（図７の702）に存在する場合、印刷実行部138は、先行処理を実施したページであると判断し（S802でYesと判断し）、S803に処理を進める。図７に例示した印刷ジョブの場合、先行処理情報（702）にはページ1からページ10が存在するので、印刷実行部138は、ページ1からページ10を、先行処理を実施したページと判断する。
【００７９】
以下、S803〜S805の処理について、図９（Ａ）を参照しながら説明する。
S803において、印刷実行部138は、PDL解析部139に対してページ解析の「スキップ」を通知する。ページ解析スキップの通知を受けたPDL解析部139は、対象ページの解析処理をスキップし、中間データ生成部140に対して何の通知も行わず、次ページの解析処理に備える。印刷実行部138がPDL解析部139にページ解析の「スキップ」を通知するのは、印刷処理のパフォーマンスを向上するためである。なお、図９（Ｂ）のように、印刷実行部138がPDL解析部139に「スキップ」を通知せずに「開始」を通知する場合、PDL解析部139は、先行処理部136が先行処理で実施した解析処理を繰り返し実施することになり、印刷処理のパフォーマンスが低下する。
【００８０】
次に、S804において、印刷実行部138は、解析対象ページの先行処理結果の情報（図７の703）を中間データ生成部140に通知する。図７に示す印刷ジョブの例では、印刷実行部138の解析対象ページがページ1の場合、印刷実行部138は、ファイルパス「/xx/yy/image1」に格納された先行処理結果（ページ1のRIP画像）を中間データ生成部140に通知する。
【００８１】
このように、印刷実行部138が、PDL解析部139を経由せず、中間データ生成部140に先行処理結果を通知することで2つのメリットがある。
1つ目のメリットは、処理ステップを低減して処理速度を向上できることである。
2つ目のメリットは、ソフトウェアモジュールの開発コストを抑えられることである。
以下、図９（Ｃ）を用いて詳細に説明する。
【００８２】
図９（Ｃ）に示すように、印刷実行部138は、内部にPDL判定部1381を備え、複数のPDL解析部（139a、139b、139c）を制御する。例えば、PDL解析部139aは、LIPS（キヤノン登録商標：LBP Image Processing System）を解析するPDL解析部である。また、PDL解析部139bは、PS（アドビ社登録商標：PostScript）を解析するPDL解析部である。また、PDL解析部139cは、XPS（Microsoft社登録商標：XML Paper Specification）を解析するPDL解析部である。
【００８３】
なお、ページ解析をスキップしない場合、印刷実行部138は、印刷ジョブに含まれるPDLをPDL判定部1381で判定し、LIPSならPDL解析部139a、PSならPDL解析部139b、XPSならPDL解析部139cに必要な通知を行う。
【００８４】
印刷実行部138が先行処理結果をPDL解析部（139a、139b、139c）に通知する場合、各PDL解析部（139a、139b、139c）は、その通知をさらに中間データ生成部140に通知する対応が必要になる。この対応を実施する場合、まず処理ステップが増加するため処理速度が低下してしまう。また、この対応を複数のPDL解析部（139a、139b、139c）がそれぞれ実施すると、ソフトウェアモジュールの開発コストが上がってしまう。そこで本実施形態のように、印刷実行部138が中間データ生成部140に直接先行処理結果を通知する構成にすることで、処理速度向上と開発コスト抑制の効果を得ることができる。なお、PDL解析部139はハードウェアで実現してもよく、その場合には、本構成による開発コストへの寄与がより大きくなる。
【００８５】
以下、図８のフローチャートの説明に戻る。
S805において、中間データ生成部140は、上記S804において印刷実行部138から通知された先行処理結果から中間データを生成する。すなわち、中間データ生成部140は、先行処理結果であるファイルパスから該当ページの画像データを取得し、該画像データを用いて中間データを生成する。S803〜S805により、後述するS808〜S810のようにPDL解析部139がPDLデータを解析して該解析結果に基づいて中間データ生成部140が中間データを生成する場合と比較し、中間データの生成時間を大幅に短縮できる。
【００８６】
次にS806において、印刷実行部138は、RIP回路128を制御して、生成された中間データのレンダリングを行う。先行処理がされている場合には、そのページが先行処理により１枚の画像に変換されているため、仕上げのレンダリング処理時間を大幅に短縮できる。
【００８７】
次にS807において、印刷実行部138は、印刷ジョブの全ページの解析が終了したか判断する。そして、まだ全ページの解析が終了していないと判断した場合（S807でNoの場合）、印刷実行部138は、S801に処理を戻し、次ページの印刷実行処理に移行する。一方、全ページの解析が終了したと判断した場合（S807でYesの場合）、印刷実行部138は、本フローチャートの処理を終了する。
【００８８】
次に、上記S802において解析対象ページが先行処理を実施してないページと判断した場合の処理（S808〜S810）について、図９（Ｂ）を参照しながら説明する。
S808において、印刷実行部138は、解析対象ページの解析の開始をPDL解析部139に通知する。
次にS809において、PDL解析部139は、解析対象ページのPDLデータの解析を行い、その解析結果を中間データ生成部140に通知する。
次にS810において、中間データ生成部140は、PDL解析部139の解析結果から中間データを生成する。なお、中間データ生成後の処理は、解析対象ページが先行処理を実施したページと判断した場合と同じで、S806、S807の処理を経て、本フローチャートの処理が終了する。また、上記S801において印刷ジョブが先行処理を実施してない印刷ジョブと判断した場合についても同様である。
【００８９】
以下、図４を参照して、先行処理（図２のS210）について説明する。
図４（Ａ）は、第１実施形態の画像形成装置101〜103が備えるコントローラ110がソフトフェア（135、136等）により実行する先行処理の一例を説明するフローチャートである。図４（Ａ）の先行処理は、図３の印刷ジョブ留め置き処理により印刷ジョブがHDD124に留め置かれた後に実行される処理である。
【００９０】
S401において、ジョブ解析部135は、図１７に示すような先行処理待ちテーブルに印刷ジョブがあるかどうか確認する。印刷ジョブが無いと判断した場合（S401でNoの場合）、ジョブ解析部135は、再び先行処理待ちテーブルに印刷ジョブがあるかどうか確認する。この時、再びジョブを確認しに行くまでの間に任意の待機時間を入れてもよい。
一方、印刷ジョブが有ると判断した場合（S401でYesの場合）、ジョブ解析部135は、S402に処理を進める。
【００９１】
S402において、先行処理部136は、先行処理待ちテーブルの先頭の印刷ジョブIDに対応する印刷ジョブを、HDD124内から読み出す。
次にS403において、先行処理部136は、上記S402で取り出された印刷ジョブのレンダリング処理が行われていない一番最初のページについてレンダリング処理を行い画像データの生成を行う。1ページ分の処理が完了したら、先行処理部136は、S404に処理を進める。
【００９２】
S404において、先行処理部136は、上記S403で生成した画像データをHDD124に保存する。生成した画像データは先行処理している印刷ジョブに関連づいている書誌情報（特に先行処理情報）に関連付けられて保存される。
【００９３】
次にS405において、先行処理部136は、先行レンダリングのキャンセル要求が発行されているか否かを判断する。先行レンダリングのキャンセル要求が発行されていると判断した場合（S405でYesの場合）、先行処理部136は、S401に処理を戻す。すなわち、先行中に印刷指示がなされた場合、先行処理部136は先行処理実行中のページの先行処理をキャンセルする。これにより、キャンセルするよりも前に生成された画像データが先行処理結果として用いられる。
【００９４】
一方、上記S405において、先行レンダリングのキャンセル要求が発行されていないと判定した場合（S405でNoの場合）、先行処理部136は、S406に処理を進める。
S406において、先行処理部136は、印刷指示が発行されているか否かを判断する。例えば、図５のS507の先行処理において「中断の情報」が通知されている場合、印刷指示が発行されたと判断する。上記S406において、印刷指示が発行されていないと判断した場合（S406でNoの場合）、先行処理部136は、S407に処理を進める。
【００９５】
S407において、先行処理部136は、印刷ジョブの全ページが先行レンダリング済みであるか否かを判断する。まだ印刷ジョブに先行レンダリング未処理のページがあると判断した場合（S407でNoの場合）、先行処理部136は、S403に処理を戻す。
【００９６】
一方、上記S407において、印刷ジョブの全ページが先行レンダリング済みであると判断した場合（S407でYesの場合）、先行処理部136は、当該印刷ジョブに関連づいている書誌情報（特に先行処理情報）に先行処理済みの情報を付加し、S408に処理を進める。
【００９７】
また、上記S406において、印刷指示が発行されていると判断した場合（S406でYesの場合）にも、先行処理部136は、S408に処理を進める。
【００９８】
S408において、先行処理部136は、先行処理待ちテーブルの先頭にある印刷ジョブ情報を削除し、S401に処理を戻す。
【００９９】
図４（Ｂ）は、図３（Ａ）の印刷ジョブ留め置き処理において、印刷ジョブがHDD124に留め置かれると共に、先行レンダリング処理の待機テーブルである先行処理待ちテーブルに印刷ジョブ情報が追加された後、図３（Ａ）のS311で先行処理待ちテーブルのソートが行われる時の処理の一例を説明するフローチャートである。
【０１００】
S409において、留め置き制御部137は、図１７に示すような先行処理待ちテーブルを、通信プロトコル1703に記載された通信プロトコルの優先度が高い順にソートする。通信プロトコルの優先度は、図４（Ｃ）で示される通信プロトコルの通信可能距離の規格により決定する。本実施形態において、通信可能距離が短い通信プロトコルで受信した印刷ジョブを優先して先行レンダリング処理を行うので、優先順位は図４（Ｄ）に示されているように、高い方から、NFCによる直接接続、Bluetoothによる直接接続、Wi-Fiによる直接接続などの順に予め画像形成装置に登録しておく。そして、ソートの結果、図１７（Ｂ）から図１７（Ｃ）のように通信プロトコルの優先度が高い順に先行処理待ちテーブルが並び変わる。
【０１０１】
S410において、留め置き制御部137は、先行処理待ちテーブルを、受信時の通信プロトコルが同じグループで、受信時の電波強度による概算距離の昇順にソートする。図１７（Ｃ）では、ジョブID：4のジョブはジョブID：1よりも概算距離1704が小さい値の為、図１７（Ｄ）のように、同じ通信プロトコル内で概算距離が近い順に先行処理待ちテーブルが並び変わる。すなわち、留め置き制御部137は、印刷データ受信時の通信プロトコルの優先度の高い順、及び通信時の電波強度から概算した距離の短い順に、先行処理待ちテーブル内の印刷ジョブをソートする。
【０１０２】
S411において、留め置き制御部137は、先行レンダリング中の印刷ジョブと上記S409及びS410でソートした先行処理待ちテーブルの先頭ジョブを比較する。ここでのジョブ比較には「ジョブID」等を用いてもよい。
【０１０３】
上記S411において、先行レンダリング中のジョブと先行処理待ちテーブルの先頭ジョブとが同じと判断した場合（S411でYesの場合）、留め置き制御部137は、本フローチャートの処理を終了する。
【０１０４】
一方、上記S411において、先行レンダリング中のジョブと先行処理待ちテーブルの先頭ジョブとが異なると判断した場合（S411でNoの場合）、S412に処理を進める。
S412において、留め置き制御部137は、先行処理部136に先行レンダリング処理のキャンセル要求を発行し、本フローチャートの処理を終了する。
【０１０５】
例えば、図１７（Ａ）のような先行処理待ちテーブルで、ジョブID：1が先行レンダリング中だった時に、ジョブID：4のジョブ情報が追加されると図１７（Ｂ）のようになる。そして、S409のソート処理により先行処理待ちテーブルは図１７（Ｃ）のようになる。さらに、S410のソート処理により先行処理待ちテーブルは図１７（Ｄ）のようになる。そして、S411において、先行レンダリング中のジョブ（ジョブID：1）と先行処理待ちテーブルの先頭ジョブ（ジョブID：4）が違うため、S412において、ジョブID：1の先行レンダリング処理に対するキャンセル要求が発行される。これにより、画像形成装置101により近い位置にいるユーザの印刷ジョブ、すなわち印刷指示が早く出される可能性が高い印刷ジョブを、優先的に先行処理することが可能となる。
【０１０６】
以上のように、画像形成装置101が、先行レンダリングを行う順番を、印刷ジョブ受信時の通信プロトコルの優先度が高い順、かつ印刷ジョブの送信元との距離が近い順に先行レンダリング待ちテーブルの順番を最適化する。これにより、画像形成装置101により近い位置にいるユーザの印刷ジョブを優先的に先行レンダリング処理することが可能となる。また、画像形成装置101は、留め置き中の印刷ジョブに対して、ユーザからの印刷指示があった時に、記憶しておいたレンダリング処理結果の情報を印刷ジョブに付加する。さらに、画像形成装置101は、印刷実行時に印刷ジョブに付加されたレンダリング処理結果の情報を使用してレンダリング処理を実行する。この構成により、画像形成装置101に留め置いた印刷ジョブの先行処理を実現することができる。そして、画像形成装置101により近い位置にいるユーザは、遠い位置にいるユーザよりもすぐに印刷指示を出す可能性が高いので、印刷ジョブを距離が近い順に先行レンダリング処理をすることで、ユーザの出力待ち時間を短くすることができる。
【０１０７】
〔第２実施形態〕
第２実施形態は、第１実施形態と同様の構成に加え、留め置き印刷をしない場合に印刷待ちテーブルを並び替える実施形態である。第１実施形態と同一の部分は説明を省略し、第１実施形態と異なる部分を中心に説明する。
【０１０８】
図１９は、第２実施形態の画像形成装置101〜103が備えるコントローラ110がソフトウェア（133〜140等）により実行する印刷ジョブ留め置き処理の一例を説明するフローチャートである。なお、図１９に示す処理は、CPU123がROM126又はHDD124に記憶されたプログラムを必要に応じてRAM125に読み出して実行することにより実現される。
【０１０９】
S301〜S303は図３で説明した通りであるので説明を省略する。S304において、印刷制御部134は、受信した印刷ジョブが「そのまま印刷を行うジョブ」と判断した場合（S304でNoの場合）、S1901に処理を進める。
【０１１０】
S1901において、印刷制御部134は、印刷待ちテーブルを通信プロトコルの優先度が高い順にソートする。この時のソート手順は図４（Ｂ）のS409と同じである。
次にS1902において、印刷制御部134は、印刷待ちテーブルを通信プロトコルが同じグループで概算距離の昇順にソートする。この時のソート手順は図４（Ｂ）のS410と同じである。S1902の処理の後、印刷制御部134は、S305に処理を進める。S305以降の処理については、図３で説明した通りであるので説明を省略する。
【０１１１】
また、上記S304において、「留め置きジョブ」と判断した場合（S304でYesの場合）の処理は、図３のS306〜S311の処理と同一であるので説明を省略する。
【０１１２】
上述した第１実施形態では、図４（Ｂ）のフローチャートにおいて、先行処理待ちテーブルのソートの結果、先行処理中の印刷ジョブと先行処理待ちテーブルの先頭の印刷ジョブが異なっていた場合、先行処理のキャンセルを行っていた。しかし、第２実施形態では、印刷待ちテーブルのソートの結果、印刷処理中のジョブと印刷待ちテーブルの先頭の印刷ジョブが異なっていても、印刷ジョブの入れ替えは行わない。これにより、印刷を途中で止めてしまうことによって、印刷失敗となり用紙・インク等の資源が無駄になることを防止することができる。
【０１１３】
以上のように、第２実施形態によれば、留め置きジョブでない場合でも、画像形成装置101により近い位置にいるユーザ、すなわち、出力結果をすぐに取りに来るユーザの印刷ジョブから印刷を開始することで、ユーザの出力待ち時間を短くすることができる。
【０１１４】
〔第３実施形態〕
第３実施形態では、画像形成装置101がサーバ機能を有し、画像形成装置101がPC104又は無線接続端末141から印刷ジョブを受信した後、ユーザが画像形成装置102（又は103）で印刷実行を指示する実施形態について説明する。以下、第１実施形態と同一の構成については説明を省略し、第１実施形態と異なる点を中心に説明する。
【０１１５】
図１０は、第３実施形態の画像形成装置101〜103を有する印刷システムがPC104から印刷ジョブを受信して画像形成装置101で印刷する時のシーケンスの一例を示したものである。図中、各ステップには「S」を付してある。なお、図１０中の画像形成装置101、102又は103が実行する処理は、画像形成装置101、102又は103のCPU123がROM126又はHDD124に記憶されたプログラムを必要に応じてRAM125に読み出して実行することにより実現される。また、図１０中のPC104が実行する処理は、PC104の不図示のCPUがHDD等に記憶されたプログラムを必要に応じてRAMに読み出して実行することにより実現される。
【０１１６】
まず、S1001〜S1010の処理は、図２のS201〜S210の処理と同様であり、印刷ジョブを画像形成装置101に留め置く処理であるため、説明を省略する。
また、S1010以降の画像形成装置102，103の処理については、画像形成装置102を用いて説明するが、画像形成装置103を用いる場合でも同様である。
【０１１７】
ユーザが画像形成装置102にログインすると（S1011）、画像形成装置102は、該ユーザのユーザ情報の取得し（S1012）、サーバ機である画像形成装置101に対して該当ユーザの書誌情報リストの取得要求を行う（S1013）。画像形成装置101は、該書誌情報リストの取得要求を受けると、該当ユーザの書誌情報リストを画像形成装置102に送信する（S1014）。画像形成装置102は、画像形成装置101から書誌情報リストを受け取ると、該書誌情報リストに基づいて、該ユーザの印刷ジョブ一覧を操作パネル113に表示する（S1015）。
【０１１８】
さらに、画像形成装置102は、ユーザからの印刷指示を受けると（S1016）、該印刷指示に対応する印刷ジョブの取得要求を画像形成装置101に行う（S1017）。
画像形成装置101は、該取得要求に応じて、S1010で保存していた先行処理の結果を印刷ジョブに付加する（S1018）。さらに、画像形成装置101は、該先行処理結果が付加された加工済みの印刷ジョブを、画像形成装置102へ送信する（S1019）。
画像形成装置102は、先行処理結果が付加された印刷ジョブを受信すると、該印刷ジョブの先行処理結果を使って、仕上げのレンダリング処理を行い（S1020）、印刷を行う（S1021）。
【０１１９】
以下、図１１を参照して、第３実施形態の印刷実行処理について説明する。
図１１は、第３実施形態の画像形成装置102〜103が備えるコントローラ110がソフトウェア（131、132、133、138等）により実行する第３実施形態の印刷実行処理の一例を説明するフローチャートである。なお、図１１及び後述する図１５に示す処理は、画像形成装置102〜103のCPU123がROM126又はHDD124に記憶されたプログラムを必要に応じてRAM125に読み出して実行することにより実現される。
【０１２０】
まずS1101は、図５のS501と同様の処理であるので説明を省略する。
次にS1102において、書誌管理部133は、上記S1101で取得したユーザ情報に対応する書誌情報を、サーバ機能を有する画像形成装置（本実施形態では画像形成装置101）に要求を行って取得する。
【０１２１】
次にS1103において、設定部132は、上記S1102で取得した書誌情報を基に印刷ジョブリストを生成し、パネルI／F122を通じて操作パネル113へ表示する。操作パネル113に表示される情報は、例えば図１６の1601に示したものであり、印刷ジョブリストは一例として図１６の1602のように表示される。
【０１２２】
次にS1104において、設定部132は、図５のS503と同様に、ユーザから印刷ジョブリスト1602に表示している印刷ジョブに対して印刷実行指示があったか否かを判断する。そして、印刷実行指示がなかったと判断した場合（S1104でNoの場合）、設定部132は、本フローチャートの処理を終了する。一方、印刷実行指示があったと判断した場合（S1104でYesの場合）、設定部132は、S1105に処理を進める。
【０１２３】
S1105において、設定部132は印刷実行指示されたことを書誌管理部133に通知する。書誌管理部133は、上記S1104においてユーザから印刷指示があった対象の印刷ジョブを、サーバ機能を有する画像形成装置に要求して取得する。さらに、書誌管理部133は、該印刷ジョブの印刷指示を、印刷実行部138に行う。該指示に応じて、印刷実行部138は、S1106の処理を実行する。仕上げのレンダリング処理は、印刷ジョブに先行処理結果の情報が付加されていない場合は、図３のS305と同様の処理である。なお、印刷ジョブに先行処理結果の情報が付加されている場合の仕上げのレンダリング処理の詳細は後述する図１５で示す。
【０１２４】
なお、S1107は、図３のS306と同様の処理のため、説明を省略する。S1107の後、印刷実行部138は、本フローチャートの処理を終了する。
【０１２５】
以下、図１２を参照して、第３実施形態の印刷ジョブ送信処理について説明する。
図１２は、第３実施形態のサーバ機能を有する画像形成装置101が備えるコントローラ110がソフトフェア（133、137等）により実行する印刷ジョブ送信処理の一例を説明するフローチャートである。なお、図１２及び後述する図１３に示す処理は、サーバ機能を有する画像形成装置101のCPU123がROM126又はHDD124に記憶されたプログラムを必要に応じてRAM125に読み出して実行することにより実現される。
【０１２６】
S1201において、書誌管理部133は、ネットワークI／F120を通じて画像形成装置102又は103から印刷ジョブの取得要求を受信すると、該取得要求を留め置き制御部137に通知する。
【０１２７】
S1202において、留め置き制御部137は、取得要求された印刷ジョブが先行処理済みであるか否かを判断する。この判断は、書誌情報を参照し、図４のS404で付加された先行処理済みの情報を取得して判断する。印刷ジョブが先行処理済みであると判断した場合（S1202でYesの場合）、留め置き制御部137は、S1203に処理を進める。
【０１２８】
S1203において、留め置き制御部137は、先行処理結果の情報をPDLデータに付加する処理を行い、印刷ジョブの生成を行う。先行処理結果の付加処理の詳細は後述する（図１３）。さらに、留め置き制御部137は、先行処理結果付加後の加工済み印刷ジョブを書誌管理部133に渡す。S1204において。書誌管理部133は、先行処理結果付加後の加工済み印刷ジョブを、要求元の画像形成装置へ送信し、本フローチャートの処理を終了する。
【０１２９】
また上記S1202において、印刷ジョブが先行処理済みでないと判断した場合（S1202でNoの場合）、留め置き制御部137は、S1205に処理を進める。
S1205において、留め置き制御部137は、取得要求された印刷ジョブが先行処理中であるかを判断する。この判断は、上記S1202と同様に書誌情報を参照し、先行処理中であるか否かで判断してもよいし、図４のS404で書誌情報に関連付けされた先行レンダリング処理済みの画像データが存在するか否かで判断してもよい。
【０１３０】
そして、上記S1205において、取得要求された印刷ジョブが先行処理中であると判断した場合（S1205でYesの場合）、留め置き制御部137は、S1206に処理を進める。
S1206において、留め置き制御部137は、先行処理中の印刷ジョブに対して先行処理の中断を行う。先行処理の中断の情報は先行処理部136へ通知され、図４のS406で説明した印刷実行指示があるかどうかの判断に使用される。上記S1206の後、留め置き制御部137は、先行処理を中断した時点でHDD124に保存されている先行処理結果（図４のS404で対応する書誌情報に関連付けされた画像データ）を先行処理情報として取得し、S1203において、印刷ジョブに付加する。さらに、留め置き制御部137は、先行処理結果付加後の加工済み印刷ジョブを書誌管理部133に渡す。S1204において。書誌管理部133は、先行処理結果付加後の加工済み印刷ジョブを、要求元の画像形成装置へ送信し、本フローチャートの処理を終了する。
【０１３１】
一方、上記S1205において、取得要求された印刷ジョブが先行処理中でないと判断した場合（S1205でNoの場合）、留め置き制御部137は、元の印刷ジョブを書誌管理部133に渡す。S1207において。書誌管理部133は、元の印刷ジョブを、要求元の画像形成装置へ送信し、本フローチャートの処理を終了する。
【０１３２】
図１３は、第３実施形態のサーバ機能を有する画像形成装置101が備えるコントローラ110が備える留め置き制御部137が実行する先行処理結果の付加処理（図１２のS1203）の一例を説明するフローチャートである。
図１４は、第３実施形態の先行処理結果の付加処理によってPDLデータに付加される先行処理結果の一例を説明する図である。
【０１３３】
S1301において、留め置き制御部137は、PDLデータに先行処理結果を付与する処理の開始として、図１４の1401のような識別子情報を付加する。識別子の情報など基本的な処理内容は図６のS601と同様である。
次に、S1302において、留め置き制御部137は、上記S1301で付加された識別子情報に続いて、図１４の1402のような先行処理情報を付加する。先行処理情報など基本的な処理内容は図６のS602と同様である。
【０１３４】
次に、S1303において、留め置き制御部137は、対象の印刷ジョブの出力される場所がどの画像形成装置であるかを判断する。図１２で説明した例の場合、外部の画像形成装置からの印刷ジョブの取得要求を受けての処理であるため、他の画像形成装置だと判断できる。また、第１実施形態で説明した例の場合、印刷ジョブを留め置いた画像形成装置で出力される（すなわち他の画像形成装置ではない）と判断される。
【０１３５】
上記S1303において、印刷ジョブの出力される場所が他の画像形成装置であると判断した場合（S1303でYesの場合）、留め置き制御部137は、S1304に処理を進める。
S1304において、留め置き制御部137は、上記S1302で付加された先行処理情報に続いて、図１４の1403のような先行処理結果の情報を付加する。ここでは、先行処理結果のページ数を示すもの、フォーマットを示すもの、先行処理結果の情報を示すものを、1つのセットとして情報を付加していく。1403に示した例では、最初に1ページ目に対するセットの情報を付加しており、先行処理結果のフォーマットを「イメージ」としている。フォーマットを「イメージ」とした場合、留め置き制御部137は、先行処理結果が格納されているHDD124より画像データ（イメージデータ）を読み込み、先行処理結果の情報として付加する。
【０１３６】
次にS1305において、留め置き制御部137は、先行処理済みの全ページの情報を付加したかどうかを判断する。そして、まだ先行処理済みの全ページの情報を付加していないと判断した場合（S1305でNoの場合）、留め置き制御部137は、S1304に処理を戻し、次のページの処理に移行する。
一方、先行処理済みの全ページの情報を付加したと判断した場合（S1305でYesの場合）、留め置き制御部137は、S1308に処理を進める。
【０１３７】
また、上記S1303において、印刷ジョブの出力される場所が他の画像形成装置でないと判断した場合（S1303でNoの場合）、留め置き制御部137は、S1306に処理を進める。
なお、S1306、S1307は図６のS603、S604と同様の処理であり、画像形成装置内の印刷ジョブが格納されているファイルパスを先行処理結果の情報として付加し、S1308に処理を進める。
また、S1308、S1309は、図６のS605とS606と同様の処理であるので、説明を省略する。
【０１３８】
なお、上記図１３では、S1303で出力先を判断し、出力先に応じて、イメージデータ又はファイルパスを付加する構成について説明した。しかし、S1303の判断を行わず、常にS1304及びS1305において、イメージデータを付加するようにしてもよい。
【０１３９】
図１５は、第３実施形態の画像形成装置102〜103が備えるコントローラ110がソフトウェア（138〜140）により実行する仕上げのレンダリング処理（図１１のS1106）の一例を説明するフローチャートである。
まず、S1501、S1502は、図８のS801、S802と同様の処理であるので説明を省略する。また、S1503も、図８のS803と同様の処理であるので説明を省略する。
【０１４０】
S1504において、印刷実行部138は、図１４の1403のような解析対象ページの先行処理結果の情報を中間データ生成部140に通知する。
図１４に示す印刷ジョブの例では、印刷実行部138の解析対象ページがページ1の場合、印刷実行部138は、印刷ジョブに先行処理結果として付加されたイメージデータ（ページ1のRIP画像）を中間データ生成部140に通知する。
【０１４１】
また、S1505、S1506、S1507は、それぞれ図８のS805、S806、S807と同様の処理であるので説明を省略する。さらに、S1508、S1509、S1510も、それぞれ図８のS808、S809、S810と同様の処理であるので説明を省略する。
【０１４２】
以上のように、第３実施形態によれば、サーバ機能を有する画像形成装置101に留め置いた印刷ジョブの先行処理を実現することができる。そして、ユーザからの印刷指示後、画像形成装置101が印刷ジョブ取得要求を受信した場合、出力先が他の画像形成装置であるか画像形成装置101であるかを判断して、先行処理結果の情報の付加方法を切り替えることができる。他の画像形成装置には、先行処理結果にイメージの実体を含むことで情報を全て伝える。一方、画像形成装置101自身の印刷では、ファイルパスだけ伝えて仕上げのレンダリング処理時に参照することで、効率よく先行処理結果を参照できる。また、どちらのケースでも仕上げのレンダリング処理時に先行処理結果の情報を参照することができるので、印刷実行後のユーザの待ち時間を短くすることができる。
【０１４３】
以上のように、上記各実施形態では、画像形成装置が印刷ジョブの留め置き中に行う先行してレンダリング処理の順序を、ジョブ受信時の通信プロトコルや送信元との概算距離に基づき制御する。具体的には、画像形成装置が留め置き中に先行レンダリング処理の順序をジョブ受信時の通信プロトコルや送信元との概算距離に基づきソートし、該ソートされた順序で先行レンダリング処理を行う。そして、留め置き印刷ジョブに対してユーザからの印刷指示があった時に、レンダリング処理結果の情報を印刷ジョブに付加し、画像形成装置が印刷ジョブに付加されたレンダリング処理結果の情報を印刷実行時に使用する。このような構成により、印刷指示が早く行われる可能性が高い順に先行してレンダリング処理を行うことが可能となり、印刷実行時のレンダリング処理時間を短縮することが可能となる。このように、本実施形態の画像形成装置は、印刷指示が早く行われる可能性が高い順に先行してレンダリング処理を行った結果を印刷実行時に使用して印刷実行時のレンダリング処理を行うことを特徴とする。これにより、留め置き印刷においてユーザにより印刷指示されてからの印刷処理時間を短縮し、ユーザの出力待ちを少なくすることができる。特に、印刷結果を早く取りに来る可能性が高いユーザ、つまり画像形成装置との距離が近いユーザの出力待ちを短縮することができる。
【０１４４】
なお、上記第３実施形態では、サーバ機能を有する画像形成装置101が先行処理及び先行処理結果の付加を行う構成について説明したが、これらの画像形成装置101の機能を印刷サーバ（プリントサーバ）で実現する構成でもよい。
【０１４５】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
【０１４６】
（その他の実施形態）
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路（例えば、ASIC）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１４７】
101，102，103    画像形成装置
110    コントローラ
133    書誌管理部
134    印刷制御部
135    ジョブ解析部
136    先行処理部
137    留め置き制御部
【図１】
2019123214.tif 000003
【図２】
2019123214.tif 000004
【図３】
2019123214.tif 000005
【図４】
2019123214.tif 000006
【図５】
2019123214.tif 000007
【図６】
2019123214.tif 000008
【図７】
2019123214.tif 000009
【図８】
2019123214.tif 000010
【図９】
2019123214.tif 000011
【図１０】
2019123214.tif 000012
【図１１】
2019123214.tif 000013
【図１２】
2019123214.tif 000014
【図１３】
2019123214.tif 000015
【図１４】
2019123214.tif 000016
【図１５】
2019123214.tif 000017
【図１６】
2019123214.tif 000018
【図１７】
2019123214.tif 000019
【図１８】
2019123214.tif 000020
【図１９】
2019123214.tif 000021
【図２０】
2019123214.tif 000022