(57)【要約】【課題】留め置き印刷において、ユーザにより印刷指示されてからの印刷処理時間を短縮するとともに、印刷ジョブの任意のページが削除された場合であっても先行レンダリング画像のページ番号を正しく管理可能な仕組みを提供する。【解決手段】本画像形成装置は、画像形成のジョブを記憶し（留め置き）、記憶されたジョブについて、画像形成を行う際の画像処理を先行して実行し、先行処理情報である処理結果を、記憶されたジョブに対応付けて記憶させる。また、本画像形成装置は、記憶されたジョブの画像形成に関わる設定情報を受け付け、当該設定情報にページの削除指示が含まれていれば、記憶されたジョブのうち、対応するページの画像形成データを削除する。さらに、本画像形成装置は、削除したページに従って、記憶された先行処理情報を更新する。【選択図】  図２
2019086987.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置であって、
画像形成のジョブを記憶する記憶手段と、
前記記憶手段に記憶されたジョブについて、画像形成を行う際の画像処理を先行して実行し、先行処理情報である処理結果を、前記記憶手段に記憶されたジョブに対応付けて記憶させる先行処理手段と、
前記記憶手段に記憶されたジョブの画像形成に関わる設定情報を受け付ける受付手段と、
前記受付手段によって受け付けた前記画像形成に関わる設定情報にページの削除指示が含まれていれば、前記記憶手段に記憶されたジョブのうち、対応するページの画像形成データを削除する削除手段と、
前記削除手段によって削除したページに従って、前記記憶手段に記憶された前記先行処理情報を更新する更新手段と
を備えることを特徴とする画像形成装置。
【請求項２】
前記更新手段は、前記削除手段によって削除したページに対応するページの先行処理情報を削除することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記更新手段は、前記削除手段によって削除されたページに従って、先行処理情報に対応付けたページの順序を示す情報を変更することを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記受付手段によって前記画像形成に関わる設定情報を受け付けた際に、前記先行処理手段による画像処理が実行されている途中であれば、該先行処理手段による画像処理の実行を中断させる中断手段をさらに備えることを特徴とする請求項１乃至３の何れか１項に記載の画像形成装置。
【請求項５】
前記記憶手段に記憶されたジョブは、ページ番号で管理されていることを特徴とする請求項１乃至４の何れか１項に記載の画像形成装置。
【請求項６】
前記記憶手段に記憶されたジョブは、ページ番号に関連付けられる、ページのＩＤで管理されていることを特徴とする請求項１乃至４の何れか１項に記載の画像形成装置。
【請求項７】
前記先行処理手段によって先行して実行される画像処理は、レンダリングデータを生成する処理であることを特徴とする請求項１乃至６の何れか１項に記載の画像形成装置。
【請求項８】
前記先行処理手段は、ページごとのレンダリングの処理時間を予測し、予測した予測時間に応じて、先行してレンダリングデータを生成するか否かを判断することを特徴とする請求項７に記載の画像形成装置。
【請求項９】
前記受付手段は、
前記画像形成装置にログインしたユーザのユーザ情報に紐づいている、前記記憶手段に記憶されたジョブのリストを表示部に選択可能に表示し、前記リストを介して選択されたジョブのプレビュー画像をページごとに表示し、選択されたプレビュー画像の削除指示を受け付けることを特徴とする請求項１乃至８の何れか１項に記載の画像形成装置。
【請求項１０】
前記受付手段は、前記先行処理手段によって既に画像処理が実行されているページについては、対応するプレビュー画像を選択不可に制御することを特徴とする請求項９に記載の画像形成装置。
【請求項１１】
前記削除手段は、画像形成データを削除する際に、他のページに関連する情報は削除しないことを特徴とする請求項１乃至１０の何れか１項に記載の画像形成装置。
【請求項１２】
画像形成のジョブを記憶する記憶手段を備える画像形成装置の制御方法であって、
先行処理手段が、前記記憶手段に記憶されたジョブについて、画像形成を行う際の画像処理を先行して実行し、先行処理情報である処理結果を、前記記憶手段に記憶されたジョブに対応付けて記憶させる先行処理工程と、
受付手段が、前記記憶手段に記憶されたジョブの画像形成に関わる設定情報を受け付ける受付工程と、
削除手段が、前記受付手段によって受け付けた前記画像形成に関わる設定情報にページの削除指示が含まれていれば、前記記憶手段に記憶されたジョブのうち、対応するページの画像形成データを削除する削除工程と、
更新手段が、前記削除工程で削除したページに従って、前記記憶手段に記憶された前記先行処理情報を更新する更新工程と
を含むことを特徴とする画像形成装置の制御方法。
【請求項１３】
画像形成のジョブを記憶する記憶手段を備える画像形成装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
先行処理手段が、前記記憶手段に記憶されたジョブについて、画像形成を行う際の画像処理を先行して実行し、先行処理情報である処理結果を、前記記憶手段に記憶されたジョブに対応付けて記憶させる先行処理工程と、
受付手段が、前記記憶手段に記憶されたジョブの画像形成に関わる設定情報を受け付ける受付工程と、
削除手段が、前記受付手段によって受け付けた前記画像形成に関わる設定情報にページの削除指示が含まれていれば、前記記憶手段に記憶されたジョブのうち、対応するページの画像形成データを削除する削除工程と、
更新手段が、前記削除工程で削除したページに従って、前記記憶手段に記憶された前記先行処理情報を更新する更新工程と
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ネットワーク環境の普及に伴い、複数のユーザで複数の画像形成装置を共有して利用することが一般的になっている。それに伴い、機密性の高い印刷物を出力する際に他ユーザに見られないように、画像形成装置でユーザ認証を実行してから印刷実行を行う「留め置き印刷」の要望が高まっている。
【０００３】
特許文献１には、サーバ機能を有する画像形成装置内にホストコンピュータから送信された印刷ジョブを一時的に蓄積し、蓄積された印刷ジョブについて他の画像形成装置上でユーザ認証して印刷指示を行うことにより、印刷実行される技術が提案されている。このような「留め置き印刷」の場合、ユーザ認証後に印刷が実行されるため、ユーザは印刷ジョブのレンダリング処理を他の画像形成装置の位置で待つ必要がある。そのため、「留め置き印刷」においては、印刷ジョブのレンダリング処理時間を短くする要望が高まっている。
【０００４】
特許文献２では、レンダリング処理可能な印刷ジョブ送信装置を用いて印刷時間を短縮する技術が提案されている。具体的には、印刷ジョブ送信装置でレンダリング処理を行って処理後の画像データを画像形成装置に送信する時間と、印刷ジョブを画像形成装置に送信して画像形成装置でレンダリング処理を行う時間とを比較し、短い方の装置上で処理するものである。なお、これらの２つの異なる処理は、同時に実行され、早く完了した方の結果を用いるものである。
【０００５】
一方、近年の画像形成装置に対する更なる操作性の向上を目指した要望に応え、印刷前に出力結果のサムネイル画像（プレビュー画像）を、画像形成装置の操作画面上に表示する機能が知られている。「留め置き印刷」においても、ユーザによって指定された画像形成装置上に留め置かれた文書のサムネイル画像を表示し、任意のページを削除できる機能等が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４０３３８５７号公報
【特許文献２】特開２０１３−２２５２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術には以下に記載する課題がある。上記従来技術から、例えば、上記留め置き印刷を利用する際に、ユーザからの印刷指示が入力された後に印刷ジョブの異なる２つのレンダリング処理を実行し、早く処理が完了した方のレンダリングデータを用いる構成が考えられる。このようにユーザによる印刷指示の入力後に初めてレンダリング処理を実行する場合、２つのレンダリング処理時間の短い方法で処理したとしても、印刷ジョブによってはユーザが出力を待たされる結果となる。また、このような構成では、２つの異なるレンダリング処理を同時に実行し、早く完了した方のデータを選択するため、片方のレンダリング処理が無駄になってしまう。
【０００８】
そこで、サーバ側の画像形成装置において、留め置いている印刷ジョブの一部のページを先行してレンダリング処理し、先行レンダリング画像を生成することにより印刷時間を短縮することが考えられる。通常、先行レンダリング画像は対象となるページのページ番号を管理番号と紐づけて保存されうる。一方、任意のページを削除可能な機能を持つ画像形成装置では、印刷指示を行う際に印刷ジョブの一部のページを削除することが可能である。このように一部のページが削除された場合、印刷ジョブのページ番号と先行レンダリング画像のページ番号がずれてしまい、ユーザの意図しない出力結果となってしまう。
【０００９】
本発明は、上述の問題の少なくとも一つに鑑みて成されたものであり、留め置き印刷において、ユーザにより印刷指示されてからの印刷処理時間を短縮するとともに、印刷ジョブの任意のページが削除された場合であっても先行レンダリング画像のページ番号を正しく管理可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、例えば、画像形成装置であって、画像形成のジョブを記憶する記憶手段と、前記記憶手段に記憶されたジョブについて、画像形成を行う際の画像処理を先行して実行し、先行処理情報である処理結果を、前記記憶手段に記憶されたジョブに対応付けて記憶させる先行処理手段と、前記記憶手段に記憶されたジョブの画像形成に関わる設定情報を受け付ける受付手段と、前記受付手段によって受け付けた前記画像形成に関わる設定情報にページの削除指示が含まれていれば、前記記憶手段に記憶されたジョブのうち、対応するページの画像形成データを削除する削除手段と、前記削除手段によって削除したページに従って、前記記憶手段に記憶された前記先行処理情報を更新する更新手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、留め置き印刷において、ユーザにより印刷指示されてからの印刷処理時間を短縮するとともに、印刷ジョブの任意のページが削除された場合であっても先行レンダリング画像のページ番号を正しく管理することができる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に係るシステム構成の一例を示す図。
【図２】一実施形態に係る印刷処理フローを示すシーケンス。
【図３】一実施形態に係る印刷ジョブ留め置き処理を説明する図。
【図４】一実施形態に係る先行処理を説明するフローチャート。
【図５】一実施形態に係る印刷実行処理を説明するフローチャート。
【図６】一実施形態に係る印刷実行処理のＵＩ画面を説明する図。
【図７】一実施形態に係るページ削除処理を説明するフローチャート。
【図８】一実施形態に係るページ削除処理を説明する図。
【図９】一実施形態に係る先行処理結果の付加処理を説明するフローチャート。
【図１０】一実施形態に係る先行処理結果付加後の印刷ジョブを説明する図。
【図１１】一実施形態に係る印刷ジョブ留め置き処理を説明する図。
【図１２】一実施形態に係る先行処理を説明するフローチャート。
【図１３】一実施形態に係るページ削除処理を説明するフローチャート。
【図１４】一実施形態に係るページ管理情報を説明するフローチャート。
【図１５】一実施形態に係る先行処理結果の付加処理を説明するフローチャート。
【図１６】一実施形態に係る先行処理結果付加後の印刷ジョブを説明する図。
【発明を実施するための形態】
【００１３】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１４】
＜第１の実施形態＞
＜システムのハードウェア構成＞
以下では、添付図面を参照して、本発明の第１の実施形態について説明する。図１（Ａ）は、本実施形態の画像形成装置を有する印刷システムのハードウェア構成例を示す。画像形成装置１０１〜１０３は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ  ）、ＬＢＰ（Ｌａｓｅｒ  Ｂｅａｍ  Ｐｒｉｎｔｅｒ）のうち、いずれのプリンタであってもよい。画像形成装置１０１〜１０３は、留め置き印刷可能な印刷装置であればよい。また、画像形成装置１０１〜１０３のプリント方式はどのようなものであってもよい。また、図１（Ａ）のシステムは、３台の画像形成装置を例として示しているが、１台以上の任意の画像形成装置を有する構成であればよい。
【００１５】
画像形成装置１０１〜１０３は、イーサネット（登録商標）等のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０５を介し、各種指示を行うホストコンピュータ（ＰＣ）１０４と接続される。画像形成装置１０１〜１０３は、ＰＣ１０４からの印刷指示内容に応じて処理を実行する。なお、図１（Ａ）に示した構成のように複数の画像形成装置がＬＡＮ１０５を介して接続される場合は、画像形成装置は他の画像形成装置から印刷ジョブを受け取り印刷処理を実行することができる。なお、画像形成装置１０１〜１０３は、同様の構成であるため、画像形成装置１０１の構成を代表して以下で説明し、他の画像形成装置１０２、１０３の構成については記載を省略する。以下、画像形成装置１０１を用いて説明する構成は、画像形成装置１０２、１０３についても同様である。
【００１６】
画像形成装置１０１は、コントローラ１１０、プリントエンジン１１１、カードリーダ１１２、及び操作パネル１１３を備える。また、コントローラ１１０は、ネットワークＩ／Ｆ１２０、リーダＩ／Ｆ１２１、パネルＩ／Ｆ１２２、ＣＰＵ１２３、ＨＤＤ１２４、ＲＡＭ１２５、ＲＯＭ１２６、デバイスＩ／Ｆ１２７、ＲＩＰ１２８、及び画像処理回路１２９のハードウェアを備える。これらのコンポーネントは、システムバス１３０を相互に信号を送受することができる。
【００１７】
コントローラ１１０は、ＲＯＭ１２６又はＨＤＤ１２４に記憶されたプログラムによって画像形成装置１０１全体を統括的に制御する。ネットワークＩ／Ｆ１２０は、例えばＬＡＮカード等で実現され、ＬＡＮ１０５に接続して外部装置との間で情報の入出力を行う。リーダＩ／Ｆ１２１は、外部からの認証情報を受け取るカードリーダ１１２に対するインタフェース部であり、外部から入力された認証情報を受け取りＣＰＵ１２３に伝える役割を担う。パネルＩ／Ｆ１２２は、各種メニューや印刷ジョブ情報等を表示可能な表示画面を有する操作パネル（表示部）１１３に対するインタフェース部である。パネルＩ／Ｆ１２２は、操作パネル１１３に対して操作画面データを出力する。また、パネルＩ／Ｆ１２２は、操作パネル１１３から操作者が入力した情報をＣＰＵ１２３に伝える役割を担う。
【００１８】
ＣＰＵ１２３は、画像形成装置１０１全体を制御するための中央処理装置である。ＨＤＤ１２４は、ハードディスクドライブなどの記憶装置であり、各種処理のためのシステムソフトウェア及び入力された印刷ジョブや画像データ等を格納する。ＲＡＭ１２５は、ＣＰＵ１２３が動作するためのシステムワークメモリであり、入力された印刷ジョブや画像データを一時記憶するための画像メモリでもある。ＲＯＭ１２６は、ブートＲＯＭであり、システムのブートプログラムが格納されている。ＣＰＵ１２３は、ＲＯＭ１２６又はＨＤＤ１２４に記憶されたプログラムを必要に応じてＲＡＭ１２５に読み出して実行することにより後述する各種制御を実現する。
【００１９】
デバイスＩ／Ｆ１２７は、プリントエンジン１１１とコントローラ１１０とを接続し、画像データの同期系／非同期系の変換を行う。ＲＩＰ１２８は、ラスターイメージプロセッサであり、中間データ（ディスプレイリスト）を解析してイメージに展開する。画像処理回路１２９は、印刷ジョブを解析して生成されたイメージデータに対してプリントエンジン１１１に応じた補正、解像度変換等の処理を行う。
【００２０】
プリントエンジン１１１は、コントローラ１１０の指示に従って、印刷を実行する。即ち、プリントエンジン１１１は、印刷データに基づきシート（記録紙等）に画像を形成する。カードリーダ１１２は、ユーザが持つＩＤカード等の情報を読み取り可能な機能を有し、ＩＤカードから読み取ったユーザ情報（認証情報）をコントローラ１１０へ通知する。操作パネル１１３は、コントローラ１１０から操作画面データを受け取り、受け取ったデータに基づく画面を表示し、ユーザからの操作指示を受け付けてコントローラ１１０へ通知する。
【００２１】
＜ソフトウェア構成＞
次に、図１（Ｂ）を参照して、本実施形態に係る画像形成装置１０１〜１０３の動作を制御するコントローラ１１０のソフトウェア構成を説明する。コントローラ１１０は、認証部１３１、設定部１３２、書誌管理部１３３、印刷制御部１３４、ジョブ解析部１３５、先行処理部１３６、留め置き制御部１３７、印刷実行部１３８、ＰＤＬ解析部１３９、中間データ生成部１４０、及びページ削除制御部１４１を備える。また、各部１３１〜１４１はＣＰＵ１２３がＲＯＭ１２６又はＨＤＤ１２４に記憶されたプログラムを必要に応じてＲＡＭ１２５に読み出して実行することにより実現される機能部である。
【００２２】
認証部１３１は、リーダＩ／Ｆ１２１からシステムバス１３０を通じて認証情報を受け取り、留め置き制御部１３７へ通知する。設定部１３２は、パネルＩ／Ｆ１２２からシステムバス１３０を通じて、操作パネル１１３への入出力の制御を行う。書誌管理部１３３は、留め置き制御部１３７が受信した印刷ジョブや印刷ジョブに関する情報を制御する。印刷制御部１３４はネットワークＩ／Ｆ１２０を通じて入力された印刷指示や印刷ジョブの情報を取得し、留め置き制御部１３７や印刷実行部１３８に対して印刷ジョブの処理を指示する。ジョブ解析部１３５は留め置き制御部１３７が受信した印刷ジョブの解析を行う。
【００２３】
先行処理部１３６は留め置き制御部１３７が受信した印刷ジョブのジョブ解析部１３５の解析結果に応じて、印刷ジョブのレンダリング処理を先行して実行する。ここで、印刷ジョブのレンダリング処理を先行して実行するとは、当該印刷ジョブに対する実際の印刷指示を受け付ける前に先行して印刷ジョブを実行することを示す。
【００２４】
留め置き制御部１３７は、印刷制御部１３４から受け取った印刷ジョブに対して印刷ジョブの解析、管理、先行処理の制御や印刷実行部１３８への印刷指示、ページ削除制御部１４１へのページ削除指示を行う。印刷実行部１３８は印刷制御部１３４や留め置き制御部１３７より受け取った印刷ジョブに対して、ＰＤＬ解析部１３９、中間データ生成部１４０、ＲＩＰ１２８、及び画像処理回路１２９の制御を行い画像の生成を行う。さらに、印刷実行部１３８は、生成した画像をデバイスＩ／Ｆ１２７を通じてプリントエンジン１１１に通知し、印刷処理を実行させる。
【００２５】
ＰＤＬ解析部１３９は、印刷実行部１３８から指示を受けた印刷ジョブのＰＤＬ解析を行う。なお、ＰＤＬは、Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅの略語であり、ページ記述言語を示す。中間データ生成部１４０は、ＰＤＬ解析部１３９が解析した情報を元に中間データを生成する。ページ削除制御部１４１は、留め置き制御部１３７から指示を受けた印刷ジョブの該当ページを削除するページ削除処理を実行する。
【００２６】
＜シーケンス＞
次に、図２を参照して、本実施形態に係る画像形成装置１０１〜１０３を有する印刷システムがＰＣ１０４から印刷ジョブを受信して画像形成装置１０１で印刷する際のシーケンスを説明する。
【００２７】
Ｓ２０１で、ＰＣ１０４は、ユーザからの入力に従ってユーザのログイン処理を実行し、Ｓ２０２でユーザ入力に従った任意のアプリケーションからのデータの印刷要求を受け付ける。続いて、Ｓ２０３で、ＰＣ１０４は、ユーザ情報を取得し、Ｓ２０４で、取得したユーザ情報を印刷ジョブに付与して印刷ジョブを生成し、Ｓ２０５で、生成した印刷ジョブを画像形成装置１０１に送信する。
【００２８】
Ｓ２０６で、画像形成装置１０１は、印刷ジョブを受信すると、受信した印刷ジョブをＨＤＤ１２４に保存する。そして、Ｓ２０７で、画像形成装置１０１は、印刷ジョブに付与されたユーザ情報を抽出し、書誌情報を作成し、Ｓ２０８で、生成した書誌情報をＨＤＤ１２４に保存する。続いて、Ｓ２０９で、画像形成装置１０１は、書誌情報の保存（留め置き）を終えると先行処理を開始し、Ｓ２１０で、先行処理の結果を逐次ＨＤＤ１２４に保存する。ここで、先行処理とは、印刷ジョブに含まれる、少なくとも一部の画像データに対する先行レンダリング処理であり、その結果は先行レンダリングデータを示す。
【００２９】
次に、Ｓ２１１で、画像形成装置１０１は、ユーザからの入力に従ってユーザのログイン処理を実行する。なお、Ｓ２１１以降の画像形成装置１０１の処理は、ユーザのログイン先が他の画像形成装置１０２、１０３であれば当該画像形成装置で実行されうる。ここでのユーザ入力はカードリーダ１１２でユーザが有するＩＤカードを読み取って得た情報でもよい。続いて、Ｓ２１２で、画像形成装置１０１は、Ｓ２１１のユーザ入力からユーザ情報の取得を行い、Ｓ２１３で、該当ユーザの印刷ジョブ一覧を操作パネル１１３に表示する。具体的には、画像形成装置１０１は、取得したユーザ情報に紐づいて留め置きされている印刷ジョブのリスト情報を操作パネルに表示する。なお、画像形成装置１０１は、表示されている印刷ジョブ一覧の何れかがユーザ入力に従って選択されると、選択された印刷ジョブのページごとのプレビュー画像を操作パネル１１３に表示してもよい。
【００３０】
次に、Ｓ２１４で、画像形成装置１０１は、ユーザから操作パネル１１３を介して、当該操作パネル１１３上で表示されている印刷ジョブのプレビュー画像から、何れかのページの削除指示を受け付ける。ユーザからのページ削除指示を受け付けると、Ｓ２１５で、画像形成装置１０１は、選択されている印刷ジョブの該当ページの削除処理を実行し、該当ページ削除後の印刷ジョブを再度ＨＤＤ１２４に保存する。続いて、Ｓ２１６で、画像形成装置１０１は、Ｓ２１０で保存された先行処理結果（例えば、先行レンダリングデータ）をＳ２１５のページ削除結果に合わせて、更新、削除を行う。
【００３１】
次に、Ｓ２１７で、画像形成装置１０１は、ユーザからの印刷指示を受けると、Ｓ２１８で、保存していた先行処理の結果を印刷ジョブに付加する。その後、Ｓ２１９で、画像形成装置１０１は、先行処理結果が付加された印刷ジョブの先行処理結果を使って仕上げのレンダリング処理を実行し、Ｓ２２０で印刷を行い、処理を終了する。
【００３２】
＜留め置き処理＞
次に、図３を参照して、本実施形態の画像形成装置１０１〜１０３の各コントローラ１１０が備えるソフトフェア（１３３〜１４０）が実行する印刷ジョブの留め置き処理の処理手順を説明する。図３（Ａ）は、コントローラ１１０が実行する印刷ジョブ留め置き処理の処理手順を示す。図３（Ｂ）は、画像形成装置が受信する印刷ジョブの構成例を示す。図３（Ｃ）は、コントローラ１１０がＨＤＤ１２４に記憶するユーザの印刷ジョブリストを示す。以下で説明する処理は、例えばＣＰＵ１２３がＲＯＭ１２６やＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００３３】
Ｓ３０１で、印刷制御部１３４は、ネットワークＩ／Ｆ１２０を通じてＰＣ１０４などから送信された印刷ジョブの受信を行う。印刷ジョブは、例えば図３（Ｂ）のようになっており、データの最初に各種設定情報を含むヘッダー情報を有し、その後に各ページのデータ（ＰＤＬデータ）が含まれる構成となっている。各ページの情報内のＰ１、Ｌｉｎｅ１、Ｔｅｘｔ１などはページを構成するための描画コマンドの例である。
【００３４】
Ｓ３０２で、印刷制御部１３４は、Ｓ３０１で受信した印刷ジョブを留め置くかそのまま印刷を行うかを判断する。留め置くかの判断方法は、画像形成装置内で記憶しているパラメータが留め置きを指し示すものであるか、又は、印刷ジョブのヘッダーに埋め込まれた情報を解析するなどの方法で行われてよい。そのまま印刷する場合はＳ３０３へ進み、留め置く場合はＳ３０５へ進む。
【００３５】
Ｓ３０３で、印刷実行部１３８は、ＰＤＬ解析部１３９や中間データ生成部１４０を制御して印刷ジョブの解析を行い、生成された中間データに対して、ＲＩＰ１２８によってレンダリング処理を実行させ画像データを生成する。続いて、Ｓ３０４で、印刷実行部１３８は、Ｓ３０３で生成した画像データを画像処理回路１２９で補正した後、デバイスＩ／Ｆ１２７を通じてプリントエンジン１１１へ転送を行い、印刷を実行させ、処理を終了する。
【００３６】
一方、Ｓ３０５で、留め置き制御部１３７は、印刷ジョブ内に含まれるユーザ情報を取得する。図３（Ｂ）の例では、ユーザ情報は「ユーザ名：ユーザＡ」で示されるものであるが、このユーザ情報は印刷ジョブのヘッダー情報内に含まれていなくても、送信元のＰＣ１０４からユーザ情報を別途送る構成でも構わない。ユーザ情報とは、ユーザ名やユーザＩＤなど印刷実行を行ったユーザを識別できる情報であれば何でもよい。
【００３７】
Ｓ３０６で、ジョブ解析部１３５は、受信した印刷ジョブに含まれる印刷設定情報と文書名とを取得する。この印刷設定情報には、例えば片面印刷か両面印刷かを示す情報、カラーで印刷するかモノクロ（白黒）で印刷するかの情報、出力する用紙サイズに関する情報などが含まれる。図３（Ｂ）は一例であり、印刷設定情報の一部が無い印刷データであってもよく、その時はＨＤＤ１２４やＲＯＭ１２６が持つ初期設定値とするか、印刷実行時にユーザから設定してもらう構成であってもよい。
【００３８】
Ｓ３０７において、留め置き制御部１３７は、Ｓ３０５で取得したユーザ情報と、Ｓ３０６で取得した印刷設定情報及び文書名とを関連付ける。そして、留め置き制御部１３７は、これら関連付けた情報を、一レコードとして、そのユーザ情報に対応する書誌情報に追加する。図３（Ｃ）は、ユーザＡの書誌情報の一例を示す。ここでは、ユーザＡの書誌情報を例示する。本実施形態の書誌情報は、例えば、ジョブＩＤ、ファイル情報、印刷設定情報、ページ数、レンダリング予測時間、及び先行処理情報等を有する。なお、ジョブＩＤには、ジョブ毎に固有の値が設定される。ファイル情報には、ファイル名と保存先とが含まれる。印刷設定情報には、カラーモードが含まれ、白黒とカラーのいずれで印刷するかの情報を含む。ページ数には、当該印刷ジョブの総ページ数が含まれる。レンダリング予測時間には、レンダリングに要する予測時間が含まれる。先行処理情報には、先行処理、例えば、先行レンダリング処理が処理済みであるか否かの情報と、処理済みであれば処理結果の保存先とが含まれる。
【００３９】
Ｓ３０８で、書誌管理部１３３は、Ｓ３０７で一レコードが追加された書誌情報をＨＤＤ１２４に保存し、処理を終了する。また、留め置き制御部１３７は、上記印刷ジョブを、今回追加された１レコードに対応する印刷ジョブとしてＨＤＤ１２４に保存する。なお、Ｓ３０８の書誌情報の登録時点では、レンダリング予測時間は未設定、先行処理情報については、先行処理は「未」、先行処理結果は未設定の状態で登録される。
【００４０】
＜先行レンダリング処理＞
次に、図４を参照して、本実施形態に係る画像形成装置１０１〜１０３のコントローラ１１０が備えるソフトフェア（１３５、１３６等）が実行する先行レンダリング処理の処理手順を説明する。本先行処理は、図３の印刷ジョブの留め置き処理により印刷ジョブがＨＤＤ１２４に留め置かれた後に実行される処理である。なお、ここでは、先行処理の一例としてレンダリング処理を実行する例について説明するが、本発明を限定する意図はなく、印刷に際して実行される他の先行処理を実行してもよい。以下で説明する処理は、例えばＣＰＵ１２３がＲＯＭ１２６やＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００４１】
Ｓ４０１で、ジョブ解析部１３５は、ＨＤＤ１２４内に留め置かれた印刷ジョブに対して印刷ジョブに含まれる各ページのレンダリング処理に掛かる時間を予測する。予測方法は、印刷ジョブのサイズや印刷ジョブ内に含まれるＰＤＬコマンドの内容などレンダリング処理時間を推測できる方法であればよい。なお、ジョブ解析部１３５は、書誌管理部１３３に指示し、当該予測結果を、当該先行処理している印刷ジョブに関連付けられた書誌情報に登録する。この予測結果は、上記Ｓ３０８では未登録であった情報である。
【００４２】
Ｓ４０２で、先行処理部１３６は、Ｓ４０１の予測の結果、印刷ジョブに含まれるページのうちレンダリング処理に比較的時間が掛かるページを先行してレンダリング処理を実行する必要があるページとして判断する。例えば、「ジョブＩＤ：１」の文書のレンダリング予測時間は図３（Ｃ）のようになっているとする。この場合、先行処理部１３６は、時間が掛かるページを１ｐａｇｅ、９ｐａｇｅと判断する。当該時間が掛かるページの判断の基準については、印刷を行う画像形成装置の印刷スピードに応じて判断してもよい。また、先行処理部が保持している閾値（例えば、「１０秒」等）としてもよいし、全ページをレンダリングが必要と判断してもよい。即ち、先行処理部１３６は、印刷ジョブに含まれるＰＤＬデータからレンダリングに必要な時間をページ単位で予測し、当該予測の結果に基づいて先行処理を行うページを決定する。なお、レンダリング予測時間は、例えば予測するページのＰＤＬデータのサイズに基づき予測してもよいし、該ページに含まれるＰＤＬコマンド数や種類に基づき予測してもよいし、他の方法を用いて予測してもよい。
【００４３】
Ｓ４０３で、先行処理部１３６は、Ｓ４０２の判断の結果、先行してレンダリング処理が必要なページが存在しているか否かを判断する。存在していればＳ４０４へ進み、存在しなければ本処理を終了する。
【００４４】
Ｓ４０４で、先行処理部１３６は、Ｓ４０２で先行してレンダリング処理が必要だと判断したページのレンダリング処理（先行レンダリング処理）を実行し、画像データの生成を行う。Ｓ４０２で先行してレンダリング処理が必要だと判断されたページが複数ある場合は、印刷ジョブのページ順に実行してもよいし、レンダリング処理に時間が掛かるページから実行してもよいし、レンダリング処理に時間が掛からないページから実行してもよい。
【００４５】
次に、Ｓ４０５で、先行処理部１３６は、Ｓ４０４で生成した画像データ（先行レンダリングデータ）をＨＤＤ１２４に保存する。保存したページ単位の画像データを、先行処理している印刷ジョブに関連付けられている書誌情報に関連付けておき、印刷ジョブの各ページと対応可能に管理する。Ｓ４０６で、先行処理部１３６は、Ｓ４０２で先行してレンダリング処理が必要だと判断されたページ全ての先行レンダリング処理が終了したかを判断する。全ページのレンダリング処理が終了していればＳ４０７へ進み、そうでなければＳ４０８へ進む。
【００４６】
Ｓ４０７で、先行処理部１３６は、書誌管理部１３３に指示し、上記Ｓ４０５で先行レンダリング処理を実行した結果を保存したことを示す先行処理情報を、対応する書誌情報に付加する。例えば図３（Ｃ）の書誌情報中の先行処理情報のように、先行処理が済んでいるかどうかの情報「済」と、先行処理した結果がどこに記憶されているかの情報「／ｘｘｘ／ｙｙｙ／ｉｍａｇｅ１」及び「／ｘｘｘ／ｙｙｙ／ｉｍａｇｅ９」等を付加する。「ジョブＩＤ：１」の文書の例では１ｐａｇｅ目と９ｐａｇｅ目の先行処理画像が生成されるので、画像データのファイル名も対応するページ番号に紐づいたものとなっている。ここで、ページ番号とは、印刷ジョブにおけるページの順序を示す情報である。
【００４７】
一方、Ｓ４０８で、先行処理部１３６は、レンダリング処理を実行している印刷ジョブに対して先行処理のキャンセル要求があるかを判断する。キャンセル要求は該当する印刷ジョブに対する印刷実行指示、又はページ削除指示などの指示を受け付けることにより発生する。キャンセル要求が無ければＳ４０４へ進んで次のページの先行レンダリング処理に移行し、キャンセル要求があれば本処理を終了する。なお、その後の印刷実行やページ削除などの処理は後述する。
【００４８】
＜印刷実行処理＞
次に、図５を参照して、本実施形態の画像形成装置１０１〜１０３のコントローラ１１０が備えるソフトフェア（１３１、１３２、１３７、１３８、１４１）が実行する印刷実行処理の処理手順を説明する。図６は、ユーザ認証後に操作パネル１１３に表示されるＵＩの一例を示す。以下で説明する処理は、例えばＣＰＵ１２３がＲＯＭ１２６やＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００４９】
Ｓ５０１で、認証部１３１は、ユーザが持つＩＤカードがカードリーダ１１２に翳された場合に、カードリーダ１１２がＩＤカードから読み取ったユーザ情報をリーダＩ／Ｆ１２１を通じて受け取り、認証処理を実行する。ユーザが持つＩＤカードからユーザ情報を読み取る例を記載したが、操作パネル１１３等からユーザ情報とパスワードを入力してユーザ認証を行う方式など公知の認証方法を用いてもよい。認証処理に成功した場合は、認証部１３１はユーザ情報を設定部１３２に通知する。
【００５０】
Ｓ５０２で、設定部１３２は、Ｓ５０１で取得したユーザ情報と同じユーザ情報に対応する書誌情報を書誌管理部１３３から受け取り、当該書誌情報に基づいて、留め置きしている印刷ジョブのリストを生成する。さらに、設定部１３２は、パネルＩ／Ｆ１２２を通じて操作パネル１１３への表示を行う。操作パネル１１３に表示される情報は例えば図６の６０１に示したものであり、印刷ジョブリストは一例として６０２のように表示される。例えば、印刷ジョブリスト６０２に示すように、各印刷ジョブごとに、文書名、入稿時刻、ページ数、及び予測処理時間の情報が表示される。ユーザは、これらの情報に基づき、印刷ジョブリスト６０２から所望の印刷ジョブを選択し、プリント開始ボタン６０３を押下して、選択した印刷ジョブの印刷指示を行うことが可能である。また、ユーザは、印刷ジョブリスト６０２から所望の印刷ジョブを選択し、印刷設定ボタン６０４を押下することにより、選択した印刷ジョブの印刷設定を変更することが可能である。さらに、ユーザは、印刷ジョブリスト６０２から所望の印刷ジョブを選択し、プレビュー表示ボタン６０５を押下することにより、選択した印刷ジョブのプレビュー画像を表示することが可能である。プレビュー画像については６１１を用いて後述する。なお、ログアウトボタン６０６は、ログインしているユーザがログアウトするためのものである。
【００５１】
Ｓ５０３で、設定部１３２は、ユーザから印刷ジョブリスト６０２に表示している印刷ジョブに対してプレビュー表示指示があったかを判断する。即ち、プレビュー表示ボタン６０５が押下されたか否かを判断する。プレビュー表示指示があれば操作パネル１１３にプレビュー画面を表示してＳ５０４へ進み、そうでなければＳ５０８に進む。操作パネル１１３に表示されるプレビュー画面は例えば図６の６１１に示したものであり、該当する印刷ジョブのプレビュー表示画面は６１２のように選択可能に表示される。ユーザは、６１２の画面内を操作することにより文書のプレビュー画像を確認することができ、ページ削除ボタン６１３を押下することにより表示中のページを削除指示することができる。従って、ここでのパネルＩ／Ｆ１２２は、受付手段の一例である。この削除指示を行うと、印刷ジョブ中の画像データが削除されるため、その後にプリント指示を行った場合には、当該ページが印刷されないこととなる。また、プリント開始ボタン６１４を押下することでプレビュー表示中の印刷ジョブの印刷指示を行うことができ、戻るボタン６１５を押下することで印刷ジョブリストの画面６０１に戻ることが可能である。
【００５２】
なお、本発明は上記制御に限定されず様々な変形が可能である。例えば、上記６１１では全てのページのプレビュー画面が表示されているが、既に先行処理が実行されているページについてはグレーアウトして選択不可に制御して表示してもよい。これにより、ページの順番がずれることを防ぐこともできる。また、全てのページを選択可能にプレビュー画面を表示する場合であっても、既に先行処理が実行されているページが選択された場合には、ポップアップ等を表示してユーザに対して既に先行レンダリングデータが保持されている旨を警告してもよい。
【００５３】
Ｓ５０４で、設定部１３２は、ユーザからプレビュー表示中の印刷ジョブに対してページ削除指示があったかを判断する。ページ削除指示があればＳ５０５へ進み、プレビュー表示をユーザが解除（戻るボタン６１５を押下）したらＳ５０８へ進む。ページ削除指示とは、例えばユーザがページ削除ボタン６１３を操作した場合である。
【００５４】
Ｓ５０５で、留め置き制御部１３７は、ページ削除指示された印刷ジョブが先行処理中であるか否かを判断する。この判断は、図３（Ｃ）に示すような、登録された書誌情報を参照し、先行処理中であるか否かで判断してもよいし、図４のＳ４０５で書誌情報に関連付けされた先行レンダリング処理済みの画像データが存在するか否かで判断してもよい。印刷ジョブが先行処理中であればＳ５０６へ進み、そうでなければＳ５０７へ進む。
【００５５】
Ｓ５０６において、留め置き制御部１３７は、先行処理中の印刷ジョブに対して先行処理の中断を行う。先行処理の中断の情報は先行処理部１３６へ通知され、図４のＳ４０８で説明したキャンセル要求があるかどうかの判断に使用される。先行処理部１３６は、先行処理を中断した時点でＨＤＤ１２４に保存されている先行処理結果を先行処理情報として保存して、対応する書誌情報に付加する。
【００５６】
Ｓ５０７で、ページ削除制御部１４１は、ページ削除指示された印刷ジョブのページ削除処理を実行する。ここで、ページ削除制御部１４１は、印刷ジョブの該当ページのデータを削除するとともに、先行処理情報として保存されている先行処理結果の情報更新も行う。ページ削除処理の詳細については図７を用いて後述する。
【００５７】
Ｓ５０８で、設定部１３２は、ユーザから印刷ジョブリスト６０２に表示している印刷ジョブに対して印刷実行指示があったかを判断する。印刷実行指示があればＳ５０９へ進み、印刷実行指示が無く、ユーザが認証状態を解除したら本処理を終了する。印刷指示とは、例えばユーザがプリント開始ボタン６０３を操作した（押下した）場合である。認証状態を解除とは、例えばユーザがログアウトボタン６０６を操作した場合である。
【００５８】
Ｓ５０９で、設定部１３２は、印刷実行指示されたことを留め置き制御部１３７に通知する。留め置き制御部１３７は、印刷実行指示された印刷ジョブが先行処理済みであるか否かを判断する。この判断は、書誌情報を参照し、図４のＳ４０７で付加された先行処理済みの情報を取得して判断する。印刷ジョブが先行処理済みであればＳ５１０へ、そうでなければＳ５１１へ進む。
【００５９】
Ｓ５１０で、留め置き制御部１３７は、先行処理結果の情報をＰＤＬデータに付加する処理を行い印刷ジョブの生成を行う。先行処理結果の付加処理の詳細については図９を用いて後述する。Ｓ５１１で、留め置き制御部１３７は、印刷実行指示された印刷ジョブが先行処理中であるか否かを判断する。この判断は、上記Ｓ５０９と同様に書誌情報を参照し、先行処理中であるか否かで判断してもよいし、図４のＳ４０５で書誌情報に関連付けされた先行レンダリング処理済みの画像データが存在するか否かで判断してもよい。印刷ジョブが先行処理中であればＳ５１２へ進み、そうでなければＳ５１３へ進む。
【００６０】
Ｓ５１２で、留め置き制御部１３７は、先行処理中の印刷ジョブに対して先行処理の中断を行う。先行処理の中断の情報は先行処理部１３６へ通知され、Ｓ４０８で説明したキャンセル要求があるかどうかの判断に使用される。留め置き制御部１３７は、先行処理を中断した時点でＨＤＤ１２４に保存されている先行処理結果を先行処理情報として取得し、Ｓ５１０で説明したように印刷ジョブに付加を行う。
【００６１】
Ｓ５１３で、印刷実行部１３８は、仕上げのレンダリング処理を実行する。ここでの処理は、先行処理結果の情報が付加されていない場合はＳ３０３と同様の処理である。一方、先行処理結果の情報が付加されている場合は、印刷実行部１３８は、当該先行処理結果が示す先行処理情報を利用して、残りのレンダリング処理を実行する。なお、全てのページのレンダリング処理が先行して実行されている場合には、Ｓ５１３でレンダリング処理は実行されない。続いて、Ｓ５１４で、印刷実行部１３８は、Ｓ３０４と同様に印刷を実行し、本処理を終了する。
【００６２】
＜ページ削除処理＞
次に、図７を参照して、本実施形態に係る画像形成装置１０１〜１０３のコントローラ１１０が備えるソフトフェア（１３７、１４１）が実行するページ削除処理の処理手順を説明する。図８はＰＤＬデータのページが削除されたときのコマンドの削除例を説明する図である。以下で説明する処理は、例えばＣＰＵ１２３がＲＯＭ１２６やＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００６３】
Ｓ７０１で、ページ削除制御部１４１は、留め置き制御部１３７から削除対象ページ情報を取得する。本実施形態の例ではページ情報として「１」を取得しものとして説明を行う。続いて、Ｓ７０２で、ページ削除制御部１４１は、留め置き制御部１３７が記憶しているＰＤＬデータ（例として、図８の８２０）をファイルとしてアクセスできるようオープンする。さらに、Ｓ７０３で、ページ削除制御部１４１は、処理ページ情報を「Ｐ」として処理ページ情報を初期化する（Ｐ＝０）。
【００６４】
その後、Ｓ７０４以降の処理で、ＰＤＬデータに含まれる各ページに対して、削除対象ページ情報を参照しながら、ページ構造の削除処理を行う。ページ構造の削除処理の詳細は図８を用いて後述する。図８（Ａ）は削除前のＰＤＬデータ８２０であり、図８（Ｂ）は１ページ目を削除した後のＰＤＬデータ８３０である。
【００６５】
まず、Ｓ７０４で、ページ削除制御部１４１は、ＰＤＬデータを解析し、ページ開始コマンドである「ＢｅｇｉｎＰａｇｅ」コマンドを検知するまでの全コマンドをそのまま出力する。本実施形態ではＰＤＬデータのジョブ情報を含む「ＢｅｇｉｎＪｏｂ」コマンド８０１がそのまま出力される。続いて、Ｓ７０５で、ページ削除制御部１４１は、Ｓ７０４で「ＢｅｇｉｎＰａｇｅ」コマンドを検知した後に処理ページ情報をカウントする。１回目の検知「ＢｅｇｉｎＰａｇｅ」コマンド８０２であれば、ページ削除制御部１４１は、「Ｐ＝０＋１＝１」とし、１ページ目であると判断する。
【００６６】
Ｓ７０６で、ページ削除制御部１４１は、検知した「ＢｅｇｉｎＰａｇｅ」コマンドが削除対象ページかを判断する。本実施形態では「ＢｅｇｉｎＰａｇｅ」コマンド８０２がＳ７０５で１ページ目であると判断され、削除対象ページは「１」でありページ番号と一致するため、「ＢｅｇｉｎＰａｇｅ」コマンド８０２が読み飛ばされることになり、Ｓ７０７へ進む。処理を進めて検知されたコマンドが「ＢｅｇｉｎＰａｇｅ」コマンド８０９である場合は同様にＳ７０５でページカウント（Ｐ＝１＋１＝２）されて２ページ目と判断し、Ｄ７０９では削除対象ページではないと判断されるためＳ７０９へ進む。
【００６７】
Ｓ７０７で、ページ削除制御部１４１は、削除対象ページの読み飛ばし処理を実行する。描画コマンド（図８の例であれば、文字描画を示す「ＤｒａｗＣｈａｒ」コマンド８０６、矩形描画を示す「ＤｒａｗＲｅｃｔ」コマンド８０７）は読み飛ばされて、出力もされない。ただし、リソース制御コマンド（図８の例であれば、フォント登録を示す「ＤｏｗｎｌｏａｄＦｏｎｔ」コマンド８０３、文字登録を示す「ＤｏｗｎｌｏａｄＣｈａｒ」コマンド８０４、８０５）は一時的にＨＤＤ１２４やＲＡＭ１２５領域に記憶される。記憶したリソース制御コマンドは、次のページがあればＳ７０９で出力される。リソース制御コマンドを読み飛ばさない理由は、リソース制御コマンドは一度画像形成装置内にリソース情報を登録し、後続のページで登録済みの情報をＩＤなどに紐づけて使い回すことがあるためである。そのため、該当ページを削除しても後続ページで使用する可能性を考慮している。つまり、リソース制御コマンドは、他のページに関連する情報を含むものであり、削除してしまうと他のページの印刷にも影響を与えてしまうため、これらの情報は残しておく必要がある。
【００６８】
Ｓ７０８で、ページ削除制御部１４１は、ページ終了コマンド（図８の例だと「ＥｎｄＰａｇｅ」コマンド８０８）であるか判断する。ここで、ページ終了コマンドであれば、ページ終了コマンドまで読み飛ばしが完了したと判断してＳ７１２へ進み、そうでなければＳ７０７へ処理を戻す。
【００６９】
一方、Ｓ７０９で、ページ削除制御部１４１は、削除対象ページではないと判断したページ開始コマンド「ＢｅｇｉｎＰａｇｅ」コマンド８０９の出力を行う。続いて、Ｓ７１０で、ページ削除制御部１４１は、Ｓ７０７で退避されているリソース制御コマンドがあるかを確認し、退避されているものがあれば出力を行う。図８の例であれば、「ＤｏｗｎｌｏａｄＦｏｎｔ」コマンド８０３と「ＤｏｗｎｌｏａｄＣｈａｒ」コマンド８０４、８０５である。さらに、Ｓ７１１で、ページ削除制御部１４１は、ページ終了コマンドまでの全コマンドの出力を行い、Ｓ７１２に進む。図８の例であれば、「ＤｒａｗＣｈａｒ」コマンド８１２、「ＤｒａｗＲｅｃｔ」コマンド８１３、及び「ＥｎｄＰａｇｅ」コマンド８１４である。
【００７０】
Ｓ７１２で、ページ削除制御部１４１は、ジョブ終了コマンド（図８の例であれば、「ＥｎｄＪｏｂ」コマンド８１７）であるか判断し、ジョブ終了コマンドだと判断するとＳ７１３に進み、そうでなければＳ７０４に処理を戻す。Ｓ７１３で、ページ削除制御部１４１は、ジョブ終了コマンド（「ＥｎｄＪｏｂ」コマンド８１７）を出力する。このＳ７０１乃至７１３の処理により図８（Ａ）のＰＤＬデータ８２０は図８（Ｂ）のＰＤＬデータ８３０のように変更されることとなる。即ち、ＰＤＬデータ８２０から、ページ１に対応するデータのうち８０２、８０６〜８０８が削除されることになる。
【００７１】
続いて、Ｓ７１４で、ページ削除制御部１４１は、Ｓ７０７で退避されているリソース制御コマンドが残っていれば削除を行う。本実施形態の説明では該当しないが、削除対象ページが最終ページである場合などにリソース制御コマンドが残っている場合があるためである。
【００７２】
次に、Ｓ７１５で、ページ削除制御部１４１は、留め置き制御部１３７からページ削除した印刷ジョブの先行処理情報を取得する。先行処理情報があればＳ７１６へ進み、なければ本処理を終了する。Ｓ７１６で、ページ削除制御部１４１は、Ｓ７１５で取得した先行処理情報に本フローの削除対象ページに対応する先行処理結果があるかどうかを判断する。対応する先行処理結果があればＳ７１７へ進み、なければＳ７１８へ進む。本実施形態の場合、削除対象ページは「１」であり、ページ削除対象の印刷ジョブが図３（Ｃ）で示したＩＤ１のジョブである場合、削除対象ページに対応する先行処理結果「／ｘｘｘ／ｙｙｙ／ｉｍａｇｅ１」があるため、対応するものがあると判断できる。
【００７３】
Ｓ７１７で、ページ削除制御部１４１は、削除対象ページに対応する先行処理結果を削除する。本実施形態の場合は「／ｘｘｘ／ｙｙｙ／ｉｍａｇｅ１」であり、先行処理結果から削除される。Ｓ７１８で、ページ削除制御部１４１は、削除対象ページ以降の先行処理結果があれば情報の更新を行う。本実施形態の場合は、図３（Ｃ）で示すＩＤ１のジョブの「／ｘｘｘ／ｙｙｙ／ｉｍａｇｅ９」が該当し、１ページ分ＰＤＬデータが削除されたことに合わせて「／ｘｘｘ／ｙｙｙ／ｉｍａｇｅ８」のように、対応するページ情報の更新を行う。これにより、先行処理データのページずれを防ぐことができる。先行処理結果の情報更新を終えると本処理を終了する。
【００７４】
＜付加処理＞
次に、図９を参照して、本実施形態の画像形成装置１０１〜１０３のコントローラ１１０が備える留め置き制御部１３７が実行する先行処理結果の付加処理（図５のＳ５１０）の処理手順を説明する。図１０（Ａ）は先行処理結果の付加処理によってＰＤＬデータに付加される先行処理結果の一例を説明する図である。以下で説明する処理は、例えばＣＰＵ１２３がＲＯＭ１２６やＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００７５】
Ｓ９０１で、留め置き制御部１３７は、ＰＤＬデータに先行処理結果を付与する処理の開始として、識別子情報１００１を付加する。識別子の情報は、先行処理結果が付与されている情報を示すものであり、文字列であったり数値であったりコントローラ内部で識別可能なものであればよい。
【００７６】
次に、Ｓ９０２で、留め置き制御部１３７は、Ｓ９０１で付加した識別子情報に続いて先行処理情報１００２を付加する。先行処理情報は先行処理結果全体のデータサイズや対象の印刷ジョブの総ページ数や先行処理されているページ情報などを含むものである。データサイズや先行処理結果の情報を指し示すインデックス情報など後述の処理を行った後で無いと分からないものに関しては情報を格納する領域だけ確保しておき、後述の処理後に情報の更新を行う。１００２に示した構成は一例であり、先行処理結果の情報を解析するのに必要な情報が揃っていればどのような構成でもよい。１００２に示す例では、図３（Ｃ）の書誌情報内のジョブＩＤ１の印刷ジョブの例であり、先行処理結果としてページＩＤ「１」とページＩＤ「９」の情報があるため、先行処理ページ情報に「１」と「９」の情報が格納されている。
【００７７】
次に、Ｓ９０３で、留め置き制御部１３７は、Ｓ９０２で付加した先行処理情報に続いて、先行処理結果の情報１００３を付加する。具体的には、留め置き制御部１３７は、先行処理結果のページ数を示すもの、フォーマットを示すもの、先行処理結果の情報を示すものを１つのセットとして情報を付加していく。１００３で示す例であれば、最初に１ページ目に対する先行処理結果の情報を付加しており、先行処理結果が格納されているファイルパス情報を付加している。なお、フォーマットを「ファイルパス」とした場合、留め置き制御部１３７は、先行処理結果が格納されているＨＤＤ１２４のファイルパス情報（先行処理結果の記憶場所を特定する情報）を、先行処理結果の情報として付加する。
【００７８】
次に、Ｓ９０４で、留め置き制御部１３７は、先行処理済みの全ページの情報を付加したかどうかを判断する。全ページ処理するまでＳ９０３の処理を繰り返し、処理終了後にＳ９０５へ進む。Ｓ９０５で、留め置き制御部１３７は、Ｓ９０２で作成した先行処理情報の更新を行う。留め置き制御部１３７は、先行処理結果全体のデータサイズや先行処理結果の情報を指し示すインデックス情報などについて、予め確保しておいた領域に処理終了後の情報を上書きする。
【００７９】
次に、Ｓ６０６で、留め置き制御部１３７は、Ｓ９０５までに作成した先行処理結果１００１、１００２、１００３に続いて、ＰＤＬデータ１００４を付加する。１００４に示すように、ＰＤＬデータは加工することなく元の状態で付加している。Ｓ９０６の終了後に先行処理結果とＰＤＬデータが組み合わさった印刷ジョブの生成が終了し、本処理が終了する。
【００８０】
＜ページ削除後の先行処理結果＞
ここで、本実施形態の効果を説明するため、図７のページ削除処理で１ページ目が削除された場合のＰＤＬデータに付加される先行処理結果について図１０（Ｂ）及び図１０（Ｃ）を用いて説明する。図１０（Ｂ）は、本実施形態の特徴である図７のＳ７１３〜Ｓ７１６を実施しない場合のＰＤＬデータに付加される先行処理結果の一例を示したものである。図７の処理により１ページ目が削除された場合、総ページ数は元々の１０から１減った９となり（１０１２内の総ページ数）、ＰＤＬデータ１０１４は１ページ目が削除されているため、２ページ目以降は１減ったページ番号となる。先行処理結果１０１３はＳ７１３〜Ｓ７１６の処理が実施されない場合は変更、削除されないため図１０（Ａ）と同様の構造のままである。上述の説明を踏まえて、図１０（Ｂ）のデータ構造を見ると、先行処理結果のページ番号１が削除前のＰＤＬ（ページ２）に対応され、ページ番号９が削除前のＰＤＬ（ページ１０）に対応付けられてしまう。このため、参照関係が不正となり正しい出力結果を得ることができなくなる。
【００８１】
図１０（Ｃ）は図１０（Ｂ）に対してＳ７１３〜Ｓ７１６を実施した場合のＰＤＬデータに付加される先行処理結果の一例を示したものである。図１０（Ｂ）と同様に１ページ目が削除された場合に総ページ数（１０２２内の総ページ数）とＰＤＬデータ１０２４の１ページ目が削除される。加えて、Ｓ７１３〜Ｓ７１６の処理によって、１ページ目に対応する先行処理結果が削除され、ページ番号９に対応した先行処理結果はページ番号８に対応するように先行処理結果１０２３が構成される。このため、ページ番号がずれることなく、参照関係が正しいものとなり正しい出力結果を得ることが可能となる。
【００８２】
上述の例では一部のページを削除した時の先行処理結果の一例を示したが、ページ削除ではなく、ページの途中に白紙ページを挿入するなどページ数が増える場合のＰＤＬデータに付加される先行処理結果の一例を図１０（Ｄ）を用いて説明する。図１０（Ｄ）は図１０（Ａ）のＰＤＬデータに対して１ページ目と２ページ目の間に白紙ページとして新規に１ページ追加した例を示している。ＰＤＬデータが１ページ増えたことで１０３２内の総ページ数が１増え、先行処理ページや対応するインデックス情報のうち、追加されたページ以降のページ情報がある場合はそのページ情報に１を加える。即ち、図１０（Ｄ）の例であれば、９ページ目が１０ページ目に変更される。さらに、先行処理ページのページ情報の変化に合わせて１０３３内のページ番号やファイルパスの情報も変更される（１０３３内のページ番号９が１０に変更され、ファイルパスがｉｍａｇｅ９からｉｍａｇｅ１０へ変更される。）。図１０（Ｄ）のように、白紙ページの挿入などによってページ数が増えた場合であっても、増えたページに合わせてページ番号を調整することで、参照関係が正しいものとなり正しい出力結果を得ることが可能となる。
【００８３】
以上説明したように、本実施形態に係る画像形成装置は、画像形成のジョブを記憶し（留め置き）、記憶されたジョブについて、画像形成を行う際の画像処理を先行して実行し、先行処理情報である処理結果を、記憶されたジョブに対応付けて記憶させる。また、本画像形成装置は、記憶されたジョブの画像形成に関わる設定情報を受け付け、当該設定情報にページの削除指示が含まれていれば、記憶されたジョブのうち、対応するページの画像形成データを削除する。さらに、本画像形成装置は、削除したページに従って、記憶された先行処理情報を更新する。このように、本画像形成装置は、留め置き中の印刷ジョブに対してページ削除指示があった場合には、ＰＤＬデータ（画像形成データ）に対するページ削除と同時に先行処理結果の更新、削除を行う。本実施形態では先行処理結果をページに対応付けて管理しているため、ページ削除指示に合わせて先行処理結果の更新を行うことで、ページずれの発生を防ぎ、正しい出力結果を得ることができる。
【００８４】
＜第２の実施形態＞
以下では、本発明の第２の実施形態について説明する。本実施形態では、上記第１の実施形態で書誌情報内に先行処理結果をページに対応付けて管理していたのをＩＤで管理する方法について説明する。以下では、上記第１の実施形態と同一構成については説明を省略し、上記第１の実施形態と異なる点を中心に説明する。
【００８５】
＜留め置き処理＞
次に、図１１を参照して、本実施形態に係る画像形成装置１０１〜１０３のコントローラ１１０が備えるソフトフェア（１３３〜１４０等）が実行する印刷ジョブの留め置き処理の処理手順を説明する。本実施形態に係る留め置き処理の処理内容を示すフローチャートと、印刷ジョブの構成例はそれぞれ図３（Ａ）及び図３（Ｂ）と同様であるため図示及び説明を省略する。
【００８６】
図３（Ａ）のフローチャートについては、本実施形態も同様の処理手順であるが、Ｓ３０７の書誌情報作成時にページ管理情報１１０１を追加で作成している点で異なる。具体的には、Ｓ３０７で、留め置き制御部１３７は、Ｓ３０５で取得したユーザ情報と、Ｓ３０６で取得した印刷設定情報及び文書名とを関連付ける。そして、留め置き制御部１３７は、これら関連付けられた情報を、一レコードとして、そのユーザ情報に対応する書誌情報に追加する。
【００８７】
図１１（Ａ）は、ユーザＡの書誌情報の一例を示す図である。図１１（Ａ）は図３（Ｃ）とは異なり、ページ管理情報１１０１として印刷ジョブのページ番号をＩＤで管理するテーブル（例えば、図１１（Ｂ））を示す情報を有する。ここでは、ユーザＡの書誌情報を例示する。本実施形態の書誌情報は、例えば、ジョブＩＤ、ファイル情報、印刷設定情報、ページ数、レンダリング予測時間、先行処理情報、及びページ管理情報等を有する。なお、ジョブＩＤには、ジョブ毎に固有の値が設定される。また、ページ管理情報１１０１は図１１（Ｂ）に示すように、印刷ジョブに含まれる各ページ番号に対してＡやＢなどといったＩＤを付け、テーブルでＩＤ管理するものであり、書誌情報作成時に作成されるものである。
【００８８】
例えば、図１１（Ｂ）に示すように、１ｐａｇｅ目にＩＤとして「Ａ」を対応付け、２ｐａｇｅ目にＩＤとしてＢを対応付けて管理されている。さらに、ページ管理情報１１０１に基づいて、先行処理情報の先行処理結果もＩＤベースで管理されている。例えば、先行処理結果の保存先を示す情報として、「／ｘｘｘ／ｙｙｙ／ｉｍａｇｅＡ」、「／ｘｘｘ／ｙｙｙ／ｉｍａｇｅＩ」等に示すように、管理しているＩＤを含むファイル名が付与されている。この場合、ｉｍａｇｅＡは１ｐａｇｅ目であることを示し、ｉｍａｇｅＩは９ｐａｇｅ目であることを示す。
【００８９】
＜先行処理＞
次に、図１２を参照して、本実施形態に係る画像形成装置１０１〜１０３のコントローラ１１０が備えるソフトフェア（１３５、１３６等）が実行する先行処理の処理手順を説明する。図１２の先行処理は、図１１の印刷ジョブ留め置き処理により印刷ジョブがＨＤＤ１２４に留め置かれた後に実行される処理である。以下で説明する処理は、例えばＣＰＵ１２３がＲＯＭ１２６やＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。Ｓ１２０１〜Ｓ１２０６、Ｓ１２０８はＳ４０１〜Ｓ４０６、Ｓ４０８と同様の処理であるため説明を省略する。
【００９０】
Ｓ１２０７で、先行処理部１３６は、書誌管理部１３３に指示し、Ｓ１２０５（処理内容はＳ４０５と同様）で実行した先行処理結果の保存情報を、対応する書誌情報に付加する。例えば図１１（Ａ）の書誌情報中の先行処理情報のように、先行処理が済んでいるかどうかの情報「済」と、先行処理した結果がどこに記憶されているかの情報「／ｘｘｘ／ｙｙｙ／ｉｍａｇｅＡ」及び「／ｘｘｘ／ｙｙｙ／ｉｍａｇｅＩ」等を付加する。本実施形態では１ｐａｇｅ目と９ｐａｇｅ目の先行処理画像が生成されるので、ページ管理情報１１０１のテーブルから各ページに紐づくＩＤ情報（Ａ及びＩ）を付加したファイル名で先行処理結果が保存される。
【００９１】
＜ページ削除処理＞
次に、図１３を参照して、本実施形態に係る画像形成装置１０１〜１０３のコントローラ１１０が備えるソフトフェア（１３７、１４１）が実行するページ削除処理の処理手順を説明する。ＰＤＬデータがページ削除されたときのコマンドの削除例を説明する図は図８と同様である。以下で説明する処理は、例えばＣＰＵ１２３がＲＯＭ１２６やＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。Ｓ１３０１〜Ｓ１３１４はＳ７０１〜Ｓ７１４と同様の処理であるため説明を省略する。
【００９２】
Ｓ１３１５で、ページ削除制御部１４１は、削除されたページに合わせてページ管理情報１１０１の更新を行う。削除対象ページが「１」の時のページ管理情報１１０１の更新について図１４を用いて説明する。図１４（Ａ）に示すように１０ページ分のページ管理情報１１０１があったとき、１ｐａｇｅ目が削除された場合、１ｐａｇｅ目に対応する「ＩＤ：Ａ」の情報は削除される。さらに、「ＩＤ：Ｂ」に対応していた２ｐａｇｅ目は削除に合わせて１ｐａｇｅ目となる。その結果、各ページのＩＤ管理情報は１つずつずれることとなり最終的には図１４（Ｂ）のようになる。図１４（Ｃ）については後述する。
【００９３】
＜付加処理＞
次に、図１５を参照して、本実施形態に係る画像形成装置１０１〜１０３のコントローラ１１０が備える留め置き制御部１３７が実行する先行処理結果の付加処理における処理手順を説明する。図１６（Ａ）は先行処理結果の付加処理によってＰＤＬデータに付加される先行処理結果の一例を説明する。以下で説明する処理は、例えばＣＰＵ１２３がＲＯＭ１２６やＨＤＤ１２４に格納された制御プログラムをＲＡＭ１２５に読み出して実行することにより実現される。
【００９４】
Ｓ１５０１はＳ９０１と同様の処理であるため、説明を省略する。Ｓ１５０２で、留め置き制御部１３７は、Ｓ１５０１で付加された識別子情報に続いて先行処理情報１６０２を付加する。先行処理情報１６０２は、先行処理結果全体のデータサイズ、対象の印刷ジョブの総ページ数、及び先行処理されているページ情報などを含むものである。データサイズや先行処理結果の情報を指し示すインデックス情報など後述の処理を行った後でないと分からないものに関しては情報を格納する領域だけ確保しておき、後述の処理後に情報の更新を行う。１６０２に示した構成は一例であり、先行処理結果の情報を解析するのに必要な情報が揃っていればどのような構成でもよい。１６０２に示した例では、図１１（Ａ）の書誌情報内のジョブＩＤ１の印刷ジョブの例であり、先行処理結果としてページＩＤ「Ａ」とページＩＤ「Ｉ」の情報があるため、先行処理ページ情報に「Ａ」と「Ｉ」の情報が格納される。
【００９５】
Ｓ１５０３で、留め置き制御部１３７は、Ｓ１５０２で付加された先行処理情報に続いて先行処理結果の情報１６０３を付加する。先行処理結果のページＩＤを示すもの、フォーマットを示すもの、先行処理結果の情報を示すものを１つのセットとして情報を付加していく。１６０３で示した例だと、最初にページＩＤ「Ａ」に対する先行処理結果の情報を付加していて、先行処理結果が格納されているファイルパス情報を付加している。なお、フォーマットを「ファイルパス」とした場合、留め置き制御部１３７は、先行処理結果が格納されているＨＤＤ１２４のファイルパス情報（先行処理結果の記憶場所を特定する情報）を、先行処理結果の情報として付加する。
【００９６】
Ｓ１５０４で、留め置き制御部１３７は、先行処理済みの全ページの情報を付加したかどうかを判断する。全ページ処理するまでＳ１５０３の処理を繰り返し、処理終了後にＳ１５０５へ進む。Ｓ１５０５で、留め置き制御部１３７は、Ｓ１５０２で作成した先行処理情報の更新を行う。先行処理結果全体のデータサイズや先行処理結果の情報を指し示すインデックス情報など予め確保しておいた領域に処理終了後の情報を上書きする。
【００９７】
次に、Ｓ１５０６で、留め置き制御部１３７は、Ｓ１５０５までに作成した先行処理結果（１６０１、１６０２、１６０３）に続いてＰＤＬデータ（１６０４）を付加する。１６０４に示すように、ＰＤＬデータは加工することなく元の状態で付加している。１６０４に示す例ではページ番号をＩＤ「Ａ」「Ｂ」といった表記にしているが、これは図１１（Ｂ）のページ管理情報１１０１のテーブルを用いてマッピングされるものである。Ｓ１５０６の終了後に先行処理結果とＰＤＬデータが組み合わさった印刷ジョブの生成が終了して、本処理が終了する。
【００９８】
＜ページ削除後の先行処理結果＞
ここで、本実施形態の効果を説明するため、図１３のページ削除処理で１ページ目が削除された場合のＰＤＬデータに付加される先行処理結果について図１６を用いて説明する。
【００９９】
図１６（Ｂ）は、本実施形態における図１３のページ削除処理で１ページ目が削除された場合の先行処理結果を表したものである。１ページ目が削除されたことにより１６１４内の１ページ目に対応するページＩＤ「Ａ」のページが削除されている。また、先行処理結果１６１２内の総ページ数も減るため「１０」から「９」に変更されている。この結果、先行処理ページとして先行処理結果が格納されているページＩＤ「Ａ」、「Ｉ」に対して、ページＩＤ「Ａ」の情報は不要となり、ページＩＤ「Ｉ」の情報は対応関係が変わることなく正しく参照可能なことが分かる。上記第１の実施形態では、ページ削除後に削除されたページに合わせて先行処理結果も変更する必要があった。しかし、本実施形態のように、印刷ジョブのページ情報・先行処理結果をページＩＤで管理することで、ページが削除されたタイミングで先行処理結果を意識する必要がなくなる。
【０１００】
＜ページの挿入＞
上述の例では一部のページを削除した際の先行処理結果の一例を示したが、ページ削除ではなく、ページの途中に白紙ページを挿入するなどページ数が増える場合も想定されうる。このようなケースにおいて、ＰＤＬデータに付加される先行処理結果の一例を図１４（Ｃ）、図１６（Ｃ）を用いて説明する。図１６（Ｃ）は図１６（Ａ）のＰＤＬデータに対して１ページ目（ページＩＤ「Ａ」）と２ページ目（ページＩＤ「Ｂ」）の間に白紙ページとして新規に１ページ追加した例を示している。追加されたページは、図１６（Ｃ）中のページＩＤ「Ｋ」に対応する。
【０１０１】
ＰＤＬデータに１ページ追加されたことでページ管理情報１１０１は図１４（Ｃ）のようになる。即ち、２ｐａｇｅ目に対応するＩＤは「Ｋ」となり、それ以降のページ情報が１増える。これによって、ＰＤＬデータが１ページ増えるため１６２２内の総ページ数が１増えるが、印刷ジョブのページ情報・先行処理結果をページＩＤで管理することでその他の参照関係を修正する必要はない。
【０１０２】
以上説明したように、本実施形態に係る画像形成装置は、上記第１の実施形態とは異なり、印刷ジョブのページ情報をページ管理情報１１０１としてページＩＤで管理し、先行処理結果もページＩＤで管理する。このため、ページ削除が実行された時に削除されたページに合わせてページ管理情報１１０１の更新を行っておけば、先行処理結果の情報を変更することなく対応が可能となる。
【０１０３】
＜変形例＞
本発明は上記実施形態に限らず様々な変形が可能である。例えば、上記第１及び第２の実施形態では、削除指示に従って、ＰＤＬデータとともに、先行処理データを削除する構成について説明した。しかし、これらの削除したデータを再度先行処理する場合も想定される。例えば、それらの削除指示が誤ったものであり、ユーザが削除指示したページを復活させたい場合等もありうる。このような場合において、上記第１及び第２の実施形態のように、削除指示の対象データを完全に削除した場合には、そのようなデータを復活させることができない。そこで、このような場合に対応するため、これらの削除するデータを別の領域に保存しておくことが望ましい。或いは、先行処理データのみ削除し、印刷データについては別の領域に保存しておいて、再度の先行処理を行うケースで利用するようにしてもよい。つまり、別の領域に一時的に退避しておき、再び追加するような指示を受け付けた場合には、退避しておいたデータを用いて追加することができる。なお、別の領域に退避する場合には、メモリ資源の枯渇が懸念されるため、退避した後に所定時間が経過すると完全に削除するように制御してもよい。
【０１０４】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０５】
１０１、１０２、１０３：画像形成装置、１０４：ＰＣ、１０５：ＬＡＮ、１１０：コントローラ、１１１、プリントエンジン、１１２：カードリーダ、１１３：操作パネル、１２０：ネットワークＩ／Ｆ、１２１：リーダＩ／Ｆ、１２２：パネルＩ／Ｆ、１２３：ＣＰＵ、１２４：ＨＤＤ、１２５：ＲＡＭ、１２６：ＲＯＭ、１２７：デバイスＩ／Ｆ、１２８：ＲＩＰ、１２９：画像処理回路、１３０：システムバス、１３１：認証部、１３２：設定部、１３３：書誌管理部、１３４：印刷制御部、１３５：ジョブ解析部、１３６：先行処理部、１３７：留め置き制御部、１３８：印刷実行部、１３９：ＰＤＬ解析部、１４０：中間データ生成部、１４１：ページ削除制御部
【図１】
2019086987.tif 000003
【図２】
2019086987.tif 000004
【図３】
2019086987.tif 000005
【図４】
2019086987.tif 000006
【図５】
2019086987.tif 000007
【図６】
2019086987.tif 000008
【図７】
2019086987.tif 000009
【図８】
2019086987.tif 000010
【図９】
2019086987.tif 000011
【図１０】
2019086987.tif 000012
【図１１】
2019086987.tif 000013
【図１２】
2019086987.tif 000014
【図１３】
2019086987.tif 000015
【図１４】
2019086987.tif 000016
【図１５】
2019086987.tif 000017
【図１６】
2019086987.tif 000018