(57)【要約】【課題】情報処理装置と印刷中において通信不能に陥った後に当該通信が回復した場合に、既に印刷済みのページが重複して印刷されることを回避する。【解決手段】本印刷装置は、情報処理装置から印刷ジョブを識別するための印刷ジョブ識別情報と、印刷ジョブを実行するための印刷データとを受信する受信手段と、受信手段によって受信した印刷データに従って印刷を実行する印刷手段とを備える。さらに、印刷装置は、印刷ジョブ識別情報と、印刷ジョブにおける印刷済みのページ数とを含む印刷ジョブ情報を管理し、印刷手段において印刷を実行する際に印刷対象のページ番号が管理されている印刷ジョブの印刷済みのページ数の値以下の場合には印刷対象ページのデータを破棄させ、印刷対象のページ番号が印刷済みのページ数の値を超える場合には印刷手段に印刷を実行させる。【選択図】図１２
2013116613.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と通信可能な印刷装置であって、
前記情報処理装置から印刷ジョブを識別するための印刷ジョブ識別情報と、印刷ジョブを実行するための印刷データとを受信する受信手段と、
前記受信手段によって受信した印刷データに従って印刷を実行する印刷手段と、
前記印刷ジョブ識別情報と、印刷ジョブにおける印刷済みのページ数とを含む印刷ジョブ情報を管理する管理手段と、
前記印刷手段において印刷を実行する際に印刷対象のページ番号が前記管理手段によって管理されている印刷ジョブの前記印刷済みのページ数の値以下の場合には印刷対象ページのデータを破棄させ、該印刷対象のページ番号が該印刷済みのページ数の値を超える場合には前記印刷手段に印刷を実行させる印刷制御手段と
を備えることを特徴とする印刷装置。
【請求項２】
前記管理手段は、
前記印刷制御手段が前記印刷手段に印刷対象のページの印刷を実行させた後に、前記印刷手段から印刷の正常終了を示す通知を受けると、前記管理手段によって管理されている前記印刷済みのページ数を更新する更新手段を備えることを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記管理手段は、
印刷ジョブの実行が終了すると、対応する前記印刷ジョブ情報を削除する削除手段を備えることを特徴とする請求項１又は２に記載の印刷装置。
【請求項４】
前記印刷ジョブ情報は、さらに、当該印刷ジョブに関する情報を受信したポートの名称を示すポート名を含み、
前記管理手段は、
受信した前記印刷ジョブ識別情報と、該印刷ジョブ識別情報を受信した前記ポート名が既に管理している情報と一致すると、該印刷ジョブ識別情報を破棄することを特徴とする請求項１乃至３の何れか１項に記載の印刷装置。
【請求項５】
前記印刷ジョブ識別情報は、印刷ジョブを識別するためのジョブＩＤ、印刷ジョブの名称を示す印刷ジョブ名、印刷ジョブの実行を指示するユーザの名称を示すユーザ名、印刷ジョブが登録された時刻を示すジョブ登録時刻、及び、印刷ジョブを送信する情報処理装置の名称を示すコンピュータ名を含み、
前記管理手段は、
受信した前記印刷ジョブ識別情報のうち前記ジョブＩＤ、及び前記コンピュータ名のみが既に管理している情報と一致し、かつ、前記ポート名が既に管理している情報と一致すると、一致した既に管理している前記印刷ジョブ情報を削除し、受信した前記印刷ジョブ識別情報を含む印刷ジョブ情報を作成して新たに管理することを特徴とする請求項４に記載の印刷装置。
【請求項６】
前記管理手段は、さらに、
前記印刷ジョブ情報を新たに作成して管理する際に、印刷ジョブ情報を管理できる規定の数を超える場合には、最も古い印刷ジョブ情報を削除することを特徴とする請求項１乃至５の何れか１項に記載の印刷装置。
【請求項７】
情報処理装置から印刷ジョブを識別するための印刷ジョブ識別情報と、印刷ジョブを実行するための印刷データとを受信する受信手段と、前記受信手段によって受信した印刷データに従って印刷を実行する印刷手段と、を備える印刷装置の制御方法であって、
管理手段が、前記印刷ジョブ識別情報と、印刷ジョブにおける印刷済みのページ数とを含む印刷ジョブ情報を管理する管理ステップと、
印刷制御手段が、前記印刷手段において印刷を実行する際に印刷対象のページ番号が前記管理ステップにおいて管理されている印刷ジョブの前記印刷済みのページ数の値以下の場合には印刷対象ページのデータを破棄させ、該印刷対象のページ番号が該印刷済みのページ数の値を超える場合には前記印刷手段に印刷を実行させる印刷制御ステップと
を実行することを特徴とする印刷装置の制御方法。
【請求項８】
請求項７に記載の印刷装置の制御方法における各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来の印刷システムにおいて、情報処理装置は、印刷ジョブを作成して印刷ジョブのデータをジョブ先頭から順次印刷装置へと送信し、全データの送信が終わると、情報処理装置内の印刷ジョブを削除する。そして印刷装置は、印刷制御、即ち、受信したデータを解析してページやジョブに分けて管理することや、ページを順次印刷することや、紙詰まりなどのエラー発生時の制御や、その他印刷に関わる処理全般の制御を行うことで、印刷物を出力する。
【０００３】
なお、従来では、情報処理装置から印刷装置へ印刷ジョブのデータを送信している途中で、何らかのエラーによって送信が失敗した場合、情報処理装置はエラーが回復した後、印刷ジョブのデータ送信を先頭からやり直していた。これは、情報処理装置が送信したデータのうち、どこまでが正しく印刷装置で処理されたかを、情報処理装置側では把握できていないためである。そして印刷装置は、エラーにより送信が中断した印刷ジョブと、エラー回復後に送信されてきた印刷ジョブが同一であることを判断する情報を有していないため、エラー回復後に送信されてきた印刷ジョブを先頭から印刷していた。その結果、従来の印刷システムでは、エラーにより印刷ジョブのデータ送信が失敗し、エラー回復後に印刷を再開すると、データ送信失敗前に印刷装置が出力していた印刷済みページが重複して印刷されるという問題が発生していた。
【０００４】
これを解決するための１つの手法として、例えば、特許文献１には、情報処理装置が印刷済みページ数を印刷ジョブの情報と合わせて管理し、印刷再開時に印刷済みページ数を印刷装置に通知する手法が提案されている。具体的には、印刷装置は印刷済みページ数を記憶して、エラー発生時に情報処理装置へ記憶した値を送信し、情報処理装置は印刷再開時に上記値を印刷装置に送信してから、印刷ジョブのデータ送信を再開する。この手法によれば、印刷装置は、受信した印刷ジョブの先頭から上記値が示すページ数までは印刷出力せずに破棄して、未印刷のページから印刷出力を行うため、ページの重複印刷を回避できることが知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０５−２３３１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術には以下に記載する問題がある。例えば、情報処理装置が印刷ジョブと合わせて印刷済みページ数を管理する手法は、情報処理装置が印刷装置から情報を取得する必要がある。よって、送信が失敗するエラーの原因が情報処理装置と印刷装置を繋ぐケーブルが抜けたことにある場合や、情報処理装置から印刷装置への一方向に通信方向が限定された環境下にある場合は、情報の取得が行えないため上記手法を用いることはできない。そのため、ケーブル抜けなどにより情報処理装置が印刷装置から情報を取得できない場合に、送信失敗後の印刷再開によって重複印刷が発生し、その結果、無駄にトナーや用紙を消費してしまうという問題が発生してしまう。
【０００７】
本発明は、上述の問題に鑑みて成されたものである。本発明は、情報処理装置と印刷中において通信不能に陥った後に当該通信が回復した場合に、既に印刷済みのページが重複して印刷されることを回避する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、例えば、情報処理装置と通信可能な印刷装置であって、前記情報処理装置から印刷ジョブを識別するための印刷ジョブ識別情報と、印刷ジョブを実行するための印刷データとを受信する受信手段と、前記受信手段によって受信した印刷データに従って印刷を実行する印刷手段と、前記印刷ジョブ識別情報と、印刷ジョブにおける印刷済みのページ数とを含む印刷ジョブ情報を管理する管理手段と、前記印刷手段において印刷を実行する際に印刷対象のページ番号が前記管理手段によって管理されている印刷ジョブの前記印刷済みのページ数の値以下の場合には印刷対象ページのデータを破棄させ、該印刷対象のページ番号が該印刷済みのページ数の値を超える場合には前記印刷手段に印刷を実行させる印刷制御手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明は、情報処理装置と印刷中において通信不能に陥った後に当該通信が回復した場合に、既に印刷済みのページが重複して印刷されることを回避することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態における画像形成システムを示す概略図。
【図２】一実施形態における情報処理装置１０１のハードウェア構成を示すブロック図。
【図３】一実施形態における画像形成装置１０２のハードウェア構成を示すブロック図。
【図４】一実施形態における画像形成システムのソフトウェア構成を示すブロック図。
【図５】一実施形態における印刷ジョブ情報管理部４６０が管理する印刷ジョブ情報の構成を示す概念図。
【図６】一実施形態における情報処理装置１０１が行う印刷実行処理を示すフローチャート。
【図７】一実施形態における印刷ジョブ開始通知部４４１による印刷ジョブ開始通知処理を示すフローチャート。
【図８】一実施形態における制御部４５０が受信を行った際の処理を示すフローチャート。
【図９】一実施形態における印刷ジョブ情報管理部４６０の印刷ジョブ情報保持処理を示すフローチャート。
【図１０】一実施形態における印刷ジョブ情報管理部４６０の印刷ジョブ情報削除処理を示すフローチャート。
【図１１】一実施形態における印刷ジョブ情報管理部４６０の印刷済みページ数加算処理を示すフローチャート。
【図１２】一実施形態におけるページ印刷制御部４７０による印刷制御処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１２】
＜画像形成システムの構成＞
まず、図１を参照して、本実施形態における画像形成システムについて説明する。図中の１０１は情報処理装置であり、１０２は画像形成装置である。情報処理装置１０１はＵＳＢやネットワークなどを経由して画像形成装置１０２と通信可能に接続されている。本画像形成システムにおいて、情報処理装置１０１から画像形成の指示とともに画像データを受信すると、画像形成装置１０２は、受信した画像データを用いて順次記録材に画像を形成する。なお、以下では、印刷装置の例として画像形成装置１０２を例に説明するが、本発明はこれに限定されず印刷機能を有する装置であれば適用することができる。
【００１３】
＜情報処理装置の構成＞
次に、図２を参照して、本実施形態における情報処理装置１０１のハードウェア構成について説明する。情報処理装置１０１は、システム制御部２０１、ＲＯＭ２０２、ＲＡＭ２０３、外部記憶装置制御部２０４、キーボード／マウス制御部２０５、ディスプレイ制御部２０６、通信制御部２０７、及び外部記憶装置２２０を備える。また、入出力機器としてキーボード／マウス２３０とディスプレイ２４０とを備える。
【００１４】
システム制御部２０１は、ＣＰＵなどの処理装置であって、情報処理装置１０１が行う各種処理を統括的に制御している。ＲＯＭ２０２は、不揮発性記憶装置であり、情報処理装置１０１の各種制御プログラムや初期設定値を格納する。ＲＡＭ２０３は、揮発性記憶装置であり、情報処理装置１０１が行う各種処理のワークエリアとして使用される。本実施形態によれば、情報処理装置１０１が有するソフトウェアは、ＲＯＭ２０２や後述する外部記憶装置２２０等からＲＡＭ２０３に読み出されて実行される。外部記憶装置制御部２０４は、ハードディスクやＣＤ、ＤＶＤなどの外部記憶装置２２０に対する入出力などの制御を行っている。
【００１５】
キーボード／マウス制御部２０５は、情報処理装置１０１に接続されたキーボード／マウス２３０からの入力を監視して、入力情報をシステム制御部２０１に通知する。ディスプレイ制御部２０６は、システム制御部２０１からの制御に従ってディスプレイ２４０の出力を制御する。通信制御部２０７は、ＵＳＢやネットワークなどのコネクタとその制御装置であり、システム制御部２０１からの制御に従って外部との入出力を制御する。システムバス２０８は、前述のシステム制御部２０１、ＲＯＭ２０２、ＲＡＭ２０３、外部記憶装置制御部２０４、キーボード／マウス制御部２０５、ディスプレイ制御部２０６、及び通信制御部２０７が配置された情報処理装置１０１内のバスである。
【００１６】
＜画像形成装置の構成＞
次に、図３を参照して、本実施形態における画像形成装置１０２のハードウェア構成について説明する。画像形成装置１０２は、システム制御部３０１、ＲＯＭ３０２、ＲＡＭ３０３、画像処理部３０４、操作部３０５、表示部３０６、通信制御部３０７、及び、エンジン部３０８を備える。
【００１７】
システム制御部３０１は、ＣＰＵなどの処理装置であって、画像形成装置１０２が行う各種処理を統括的に実行する。また、エンジン部３０８とのシリアル通信装置を有する。ＲＯＭ３０２は、不揮発性記憶装置であり、画像形成装置１０２の各種制御プログラムや初期設定値を格納する。本実施形態においては、画像形成装置１０２が有するソフトウェアは、このＲＯＭ３０２に記録され必要に応じてＲＡＭ３０３に格納され実行される。ＲＡＭ３０３は揮発性記憶装置であって、画像形成装置１０２が行う各種処理のワークエリアとして使用される。本実施形態においては、画像形成装置１０２が有するソフトウェアは、ＲＯＭ３０２等に格納された制御プログラムをＲＡＭ３０３に読み出して実行することによって実現される。
【００１８】
画像処理部３０４は、ＡＳＩＣなどの集積回路であって、システム制御部３０１の制御に従って各種画像処理を行う。操作部３０５はボタン等の入力装置であり、システム制御部３０１は常に入力の状態を監視している。表示部３０６はＬＣＤ等の表示装置であり、システム制御部３０１の制御に従い表示を行っている。通信制御部３０７はＵＳＢやネットワークなどのコネクタとその制御装置であり、システム制御部３０１からの制御に従い、外部との入出力の制御を行っている。
【００１９】
エンジン部３０８は、紙搬送系やレーザビーム制御系、定着器系などの実際に用紙に画像を印字するための装置や、印刷の成功やエラー発生等を検知する検知装置、システム制御部３０１と通信するためのシリアル通信装置などを有する。システムバス３０９は、前述のシステム制御部３０１、ＲＯＭ３０２、ＲＡＭ３０３、画像処理部３０４、操作部３０５、表示部３０６、通信制御部３０７、及びエンジン部３０８が配置された画像形成装置１０２内のバスである。
【００２０】
＜画像形成システムにおけるソフトウェア構成＞
次に、図４を参照して、本実施形態の画像形成システムにおけるソフトウェア構成例について説明する。なお、ここではソフトウェアとして各コンポーネントについて説明するが、本発明はこれに限定されず、例えば各コンポーネントがハードウェア又はハードウェアとソフトウェアの組み合わせとして実現されてもよい。情報処理装置１０１は、アプリケーション４１０、プリンタドライバ４２０、印刷ジョブ制御部４３０、及びランゲージモニタ４４０を含む。また、印刷ジョブ制御部４３０は、印刷実行制御部４３１及び印刷ジョブ管理部４３２を含む。また、ランゲージモニタ４４０は、印刷ジョブ開始通知部４４１、印刷ジョブ識別情報送信部４４２、印刷データ送信部４４３、及び印刷ジョブ終了通知部４４４を含む。
【００２１】
これらのソフトウェアは、いずれも外部記憶装置２２０に記録され、必要に応じてＲＡＭ２０３に読み出されてシステム制御部２０１によって実行される。アプリケーション４１０は、ユーザが使用するアプリケーションである。例えば、ユーザはアプリケーション４１０を介して印刷の開始指示を行うことができる。
【００２２】
プリンタドライバ４２０は、ユーザがアプリケーション４１０から印刷を指示しようとする際に各種印刷設定を行うためのＵＩを提供する。またプリンタドライバ４２０は、アプリケーション４１０からの印刷指示に従って印刷ジョブを作成し、作成した印刷ジョブを後述の印刷ジョブ管理部４３２に登録する。印刷ジョブ制御部４３０は印刷ジョブの管理と印刷の実行制御を行う。詳細は後述の印刷実行制御部４３１と印刷ジョブ管理部４３２で説明する。
【００２３】
印刷実行制御部４３１は印刷ジョブ管理部４３２から印刷指示を受けた印刷ジョブについて、ランゲージモニタ４４０を経由して印刷ジョブの開始通知、印刷データ、印刷ジョブの終了通知を制御部４５０に送信することで印刷を行う。また印刷実行制御部４３１は印刷が終了すると、印刷対象となっていた印刷ジョブを削除する。印刷ジョブ管理部４３２はプリンタドライバ４２０から登録された印刷ジョブを保持し、保持している印刷ジョブの中から印刷すべきジョブを決定し印刷実行制御部４３１に通知している。また印刷ジョブ管理部４３２は印刷ジョブを管理するための番号（以下、ジョブＩＤと称する。）や、印刷ジョブ名や、印刷ジョブを実行したユーザ名や、印刷ジョブの登録時刻など、印刷ジョブに関わる情報も管理している。なお、ジョブＩＤは印刷ジョブが登録された際に印刷ジョブ管理部４３２が発行する固有の値であり、印刷ジョブを識別するため重複した番号が発行されることはないものとする。さらに、印刷ジョブ名とユーザ名は印刷ジョブが登録された際にプリンタドライバ４２０から受け取り、登録時刻は印刷ジョブが登録された際に不図示の情報機器のオペレーティングシステム（以下、ＯＳと称する。）に問い合わせて取得している。
【００２４】
ランゲージモニタ４４０は、通信制御部２０７を利用して画像形成装置１０２の制御部４５０との各種通信を行う。印刷ジョブ開始通知部４４１は、印刷実行制御部４３１からの印刷ジョブの開始通知を受けて、制御部４５０に対して印刷ジョブの開始通知を送信する。印刷ジョブ識別情報送信部４４２は、印刷ジョブ管理部４３２やＯＳに問い合わせて印刷ジョブを一意に識別するための情報である印刷ジョブ識別情報を取得し、上記印刷ジョブ識別情報を制御部４５０に対して送信する。なお、本実施形態では、印刷ジョブ識別情報とは、印刷ジョブ管理部４３２が有する上記ジョブＩＤと、印刷ジョブ名と、印刷ジョブを実行したユーザ名と、印刷ジョブの登録時刻と、ＯＳが有する情報処理装置のコンピュータ名とを含むものとする。詳細については図５を用いて後述する。
【００２５】
印刷データ送信部４４３は、印刷実行制御部４３１からの印刷ジョブのデータ送信を受けて、制御部４５０に対して受信した印刷ジョブのデータを送信する。印刷ジョブ終了通知部４４４は、印刷実行制御部４３１からの印刷ジョブの終了通知を受けて、制御部４５０に対して印刷ジョブの終了通知を送信する。
【００２６】
画像形成装置１０２は、制御部４５０、印刷ジョブ情報管理部４６０、ページ印刷制御部４７０、及び画像出力部４８０備える。また、印刷ジョブ情報管理部４６０は、印刷ジョブ情報保持部４６１、重複保持回避部４６２、印刷ジョブ情報削除部４６３、及び印刷済みページ数加算部４６４を備える。また、ページ印刷制御部４７０は、ページ印刷部４７１、及びページ破棄部４７２を備える。
【００２７】
制御部４５０は、通信制御部３０７を利用したランゲージモニタ４４０との通信制御と、通信内容に応じた処理を行っている。具体的には、受信した印刷データの解析、解析して得られたページ情報のＲＡＭ３０３への保持、印刷ジョブ識別情報の印刷ジョブ情報保持部４６１への送信、印刷ジョブ終了通知を受信したことの印刷ジョブ情報削除部４６３への通知などを行う。また、制御部４５０は、ケーブル抜けによる通信エラーの発生など、通信に関わる情報を通信制御部３０７を通して検知し、必要に応じて検知した内容をページ印刷制御部４７０などに通知している。
【００２８】
なお、本実施形態では印刷ジョブ情報保持部４６１に印刷ジョブ識別情報を送信する際、印刷ジョブ識別情報を受信したポート名も合わせて送信する。ポート名とは、例えばＵＳＢやＮｅｔｗｏｒｋなどである。制御部４５０は、通信制御部３０７から受信が行われたポート名を取得している。印刷ジョブ情報管理部４６０は、受信した印刷ジョブ識別情報と、当該印刷ジョブ識別情報が指し示す印刷ジョブの印刷済みページ数とを合わせて印刷ジョブ情報５００として管理する。
【００２９】
印刷ジョブ情報保持部４６１は、制御部４５０から受信した印刷ジョブ識別情報と、印刷済みページ数と、ポート名を合わせて印刷ジョブ情報５００を作成しＲＡＭ３０３に保持する。詳細は後述の図５で説明する。なお、印刷ジョブ情報５００は複数の情報を含むことができるものとする。保持できる最大数は予め設定されており、最大数を超えそうになった場合は古いものから削除する。また上記最大数はユーザが操作部３０５などを用いて任意に変更できるものであってもよい。
【００３０】
重複保持回避部４６２は、印刷ジョブ情報保持部４６１が印刷ジョブ識別情報を受信した際に、印刷ジョブ情報保持部４６１で保持されている印刷ジョブ情報５００内に受信した印刷ジョブ識別情報と同じ印刷ジョブ識別情報を有するものが存在するか確認する。そして重複保持回避部４６２は、同じ印刷ジョブ識別情報を有するものが存在すると判断した場合、上記印刷ジョブ情報保持部４６１による印刷ジョブ情報５００の作成と保持を行わず、受信した印刷ジョブ識別情報を破棄する。これは、重複した情報を保持することにより重複して印刷出力することを防止するためである。
【００３１】
印刷ジョブ情報削除部４６３は、制御部４５０から印刷ジョブ終了通知を受信したことを通知された際に、当該印刷ジョブに対応する印刷ジョブ識別情報を有する印刷ジョブ情報をＲＡＭ３０３から削除する。印刷済みページ数加算部４６４は、更新手段として機能し、ページ印刷部４７１からページの印刷が正常に終了したことを示す通知を受けた際に、上記ページが属する印刷ジョブに対応する印刷ジョブ情報５００が有する印刷済みページ数５２０の値を１加算する。
【００３２】
ページ印刷制御部４７０は、制御部４５０がＲＡＭ３０３に保持したページを順次印刷する。ページ印刷部４７１は、ＲＡＭ３０３内に保持されたページを、ページ番号順に、１ページずつ画像出力部４８０へ送信する。また、ページ印刷部４７１は、画像出力部４８０から送信したページの印刷が正常に終了したことが通知された場合、ＲＡＭ３０３から上記ページの情報を削除する。そしてページが正常に印刷終了したことを印刷済みページ数加算部４６４に通知する。ページ破棄部４７２は、ページ印刷部４７１がページを画像出力部４８０へ送信する直前に動き、ページが属する印刷ジョブに対応する印刷ジョブ情報５００が有する印刷済みページ数５２０の値を取得する。そしてページ破棄部４７２は、取得した値と、印刷対象ページのページ番号を比較し、ページ番号が取得した値以下の場合は、画像出力部４８０への送信を差し止めて、ＲＡＭ３０３から上記ページの情報を削除する。画像出力部４８０は、エンジン部３０８における印刷の制御を行っており、受信した印刷ジョブのページ及び各種命令に従って画像の形成を行う。また、ページの画像形成が正常終了したか否かを検知し、検知結果をページ印刷制御部４７０に通知する。
【００３３】
＜印刷ジョブ＞
次に、図５を参照して、本実施形態における印刷ジョブ情報管理部４６０が管理する印刷ジョブ情報の一例について説明する。印刷ジョブ情報５００は、印刷ジョブ情報保持部４６１によって作成される情報であり、印刷ジョブ識別情報５１０、印刷済みページ数５２０、及びポート名５３０を含む。印刷ジョブ識別情報５１０は、ジョブＩＤ５１１、印刷ジョブ名５１２、ユーザ名５１３、ジョブ登録時刻５１４、及びコンピュータ名５１５を含む。なお、これらの情報は、一例であり、画像形成システムの仕様等に従って他の情報を含むようにしてもよい。
【００３４】
印刷ジョブ識別情報５１０は、印刷ジョブ識別情報送信部４４２から送信された情報であり、印刷ジョブを一意に識別することができる。ジョブＩＤ５１１、印刷ジョブ名５１２、ユーザ名５１３、ジョブ登録時刻５１４、及びコンピュータ名５１５は、上記印刷ジョブ管理部４３２の説明で記載した通り、印刷ジョブ管理部４３２とＯＳが有する印刷ジョブに関する情報である。
【００３５】
印刷済みページ数５２０は、印刷ジョブ識別情報５１０が指し示す印刷ジョブにおいて、何ページ目までが正常に印刷されたかを記録する値である。印刷済みページ数５２０は、印刷ジョブ情報５００作成時に０がセットされ、上記印刷済みページ数加算部４６４により１ずつ加算される。ポート名５３０は、例えば情報処理装置１０１から、制御部４５０が印刷ジョブ識別情報を受信したポートの名称である。
【００３６】
＜印刷実行処理＞
次に、図６を参照して、本実施形態における情報処理装置１０１が行う印刷実行処理について説明する。以下で説明する処理は、システム制御部２０１がＲＯＭ２０２や外部記憶装置２２０等に記憶された制御プログラムをＲＡＭ２０３に読み出して実行することにより実現される。以下の処理は、印刷実行制御部４３１が印刷ジョブ管理部４３２より印刷ジョブの印刷実行を指示されたことをトリガに開始される。
【００３７】
まず、以下の各ステップを説明する前に、本実施形態における情報処理装置１０１の印刷ジョブのデータ送信に関して概要を説明する。本実施形態において、情報処理装置１０１は、印刷ジョブのデータを画像形成装置１０２に対して送信する際、ページ単位で送信するのではなく、印刷ジョブを構成する全データを後述する既定の送信サイズごとに区切って順次送信するものとする。より詳細には、情報処理装置１０１は、印刷ジョブのデータ送信を開始する際、印刷ジョブを構成する全データの先頭を送信開始位置として、送信開始位置から送信サイズ分だけのデータを送信する。送信が成功すると、情報処理装置１０１は、送信開始位置を送信サイズ分ずらして、再び送信開始位置からデータを送信する。これを繰り返して印刷ジョブの全データを送信する。送信が失敗すると送信開始位置を印刷ジョブの全データの先頭に戻して処理をやり直す。また、上記送信サイズは基本的に一定の値であるものとし、印刷ジョブの未送信データのサイズが一定の値に満たない場合のみ、未送信データのサイズを送信サイズとする。もちろん、送信サイズの定義が上記の定義以外のものであっても、本実施形態で提案する手法は有効である。
【００３８】
Ｓ６０１において、印刷実行制御部４３１は、印刷ジョブ開始通知部４４１に対して印刷ジョブの開始を通知し、Ｓ６０２に進む。通知を受けた印刷ジョブ開始通知部４４１の処理は図７を用いて後述する。Ｓ６０２において、印刷実行制御部４３１は、印刷ジョブ開始通知部４４１が行った通知の結果が失敗か否かを判定する。通知が失敗していればＳ６０１へ戻り、成功していればＳ６０３へ進む。
【００３９】
Ｓ６０３において、印刷実行制御部４３１は、印刷データの送信開始位置を印刷ジョブの全データの先頭に合わせ、Ｓ６０４で送信開始位置から印刷データを送信サイズ分だけ印刷データ送信部４４３に対して送信する。印刷データ送信部４４３は、受信した印刷データを制御部４５０へ送信し、Ｓ６０５へ進む。
【００４０】
Ｓ６０５において、印刷データ送信部４４３は、Ｓ６０４における送信が失敗したか否かを判定する。送信が失敗したならＳ６０１へ戻り、成功したならＳ６０６へ進む。Ｓ６０６において、印刷実行制御部４３１は、送信開始位置を更新、即ち、送信開始位置を送信サイズ分だけ後ろにずらし、Ｓ６０７へ進む。Ｓ６０７において、印刷実行制御部４３１は、印刷ジョブに属する全データを送信したか否かを判定する。送信したならＳ６０８へ進み、未送信のデータが残っているならＳ６０４へ戻る。
【００４１】
Ｓ６０８において、印刷実行制御部４３１は、印刷ジョブ終了通知部４４４に対して印刷ジョブの終了を通知する。通知を受けた印刷ジョブ終了通知部４４４は、印刷ジョブ終了通知を制御部４５０へ送信し、Ｓ６０９へ進む。Ｓ６０９において、印刷ジョブ終了通知部４４４は、Ｓ６０８における送信が失敗したか否かを判定する。送信が失敗したならＳ６０１へ戻り、成功したならＳ６１０へ進む。Ｓ６１０において、印刷実行制御部４３１は、印刷対象となった印刷ジョブを削除して、本処理を終了する。
【００４２】
＜印刷ジョブ開始通知処理＞
次に、図７を参照して、本実施形態における印刷ジョブ開始通知部４４１による印刷ジョブ開始通知処理について説明する。以下で説明する処理は、システム制御部２０１がＲＯＭ２０２や外部記憶装置２２０等に記憶された制御プログラムをＲＡＭ２０３に読み出して実行することにより実現される。上記Ｓ６０１において、印刷実行制御部４３１から印刷ジョブ開始通知部４４１へ印刷ジョブの開始が通知されたことをトリガに開始される。
【００４３】
Ｓ７０１において、印刷ジョブ開始通知部４４１は、印刷実行制御部４３１から受信した印刷ジョブの開始通知を画像形成装置１０２の制御部４５０へ送信し、Ｓ７０２へ進む。Ｓ７０２において、印刷ジョブ開始通知部４４１は、Ｓ７０１における送信が失敗したか否かを判定する。失敗していればＳ７０６へ進み、成功していればＳ７０３へ進む。Ｓ７０３において、印刷ジョブ開始通知部４４１は、印刷ジョブ識別情報送信部４４２に印刷ジョブ識別情報の送信を指示する。印刷ジョブ識別情報送信部４４２は、印刷ジョブ識別情報を取得する。具体的には、印刷ジョブ識別情報送信部４４２は、印刷ジョブ管理部４３２とＯＳに問い合わせて、ジョブＩＤ、印刷ジョブ名、ユーザ名、印刷ジョブ登録時刻、及びコンピュータ名を取得し、Ｓ７０４へ進む。
【００４４】
Ｓ７０４において、印刷ジョブ識別情報送信部４４２は、Ｓ７０３で取得した印刷ジョブ識別情報を制御部４５０へ送信し、Ｓ７０５へ進む。Ｓ７０５において、印刷ジョブ識別情報送信部４４２は、Ｓ７０４における印刷ジョブ識別情報の送信が失敗したか否かを判定する。失敗していればＳ７０７へ進み、成功していればＳ７０６へ進む。
【００４５】
Ｓ７０６において、印刷ジョブ開始通知部４４１は、印刷実行制御部４３１に通知成功の結果を返して、本処理を終了する。一方、Ｓ７０７において、印刷ジョブ開始通知部４４１は、印刷実行制御部４３１に通知失敗の結果を返して、本処理を終了する。
【００４６】
＜データ受信処理＞
次に、図８を参照して、本実施形態における制御部４５０がデータ受信を行った際の処理について説明する。以下で説明する処理は、システム制御部３０１がＲＯＭ３０２等に記憶された制御プログラムをＲＡＭ３０３に読み出して実行することにより実現される。なお、以下で説明する処理は、制御部４５０が何らかのデータを受信したことをトリガに開始される。
【００４７】
Ｓ８０１において、制御部４５０は、受信データが印刷ジョブ開始通知であるか否か判定する。印刷ジョブ開始通知であればＳ８０２へ進み、そうでないならＳ８０３へ進む。Ｓ８０２において、制御部４５０は、後述する印刷中フラグをＯＮにする。そして印刷が開始されたことをページ印刷制御部４７０に通知してから本処理を終了する。なお、印刷中フラグは、印刷ジョブが開始され印刷中となったことを示すフラグであり、画像形成装置１０２の電源がＯＮになりシステムが起動した際に作成されＲＡＭ３０３に格納される。初期値はＯＦＦである。
【００４８】
Ｓ８０３において、制御部４５０は、受信データが印刷ジョブ識別情報であるか否かを判定する。印刷ジョブ識別情報ならＳ８０４へ進み、そうでないならＳ８０６へ進む。Ｓ８０４において、制御部４５０は、印刷中フラグがＯＮであるか否かを判定する。ＯＮであればＳ８０５へ進み、ＯＦＦならＳ８１４へ進む。Ｓ８０５において、制御部４５０は、受信した印刷ジョブ識別情報と、データを受信したポートのポート名とを、印刷ジョブ情報管理部４６０へ送信し、本処理を終了する。
【００４９】
Ｓ８０６において、制御部４５０は、受信データが印刷データであるか否かを判定する。印刷データあればＳ８０７へ進み、そうでないならＳ８０９へ進む。Ｓ８０７において、制御部４５０は、印刷中フラグがＯＮであるか否かを判定する。ＯＮあればＳ８０８へ進み、ＯＦＦならＳ８１４へ進む。Ｓ８０８において、制御部４５０は、印刷データを解析してページ単位で情報をＲＡＭ３０３内に保持し、本処理を終了する。なお、受信した印刷データが１ページ分に満たない場合は、一時データとしてＲＡＭ３０３に記憶しておき、次に印刷データを受信したとき、受信した印刷データを記憶しておいた一時データの続きとして扱う。
【００５０】
Ｓ８０９において、制御部４５０は、受信データが印刷ジョブ終了通知であるか否かを判定する。印刷ジョブ終了通知であればＳ８１０へ進み、そうでないならＳ８１３へ進む。Ｓ８１０において、制御部４５０は、印刷中フラグがＯＮであるか否かを判定する。ＯＮであればＳ８１１へ進み、ＯＦＦならＳ８１４へ進む。Ｓ８１１において、制御部４５０は、印刷ジョブ情報削除部４６３に印刷ジョブ終了通知を送信し、Ｓ８１２へ進む。Ｓ８１２において、制御部４５０は、印刷中フラグをＯＦＦに設定し、本処理を終了する。
【００５１】
Ｓ８１３において、制御部４５０は、受信データの内容に基づいた従来の受信処理を行い、本処理を終了する。この処理は本発明の本質とは関係のない、従来から行われている一般的な処理であるため詳細な説明については省略する。Ｓ８１４において、制御部４５０は、印刷が開始されていないにも関わらず印刷データの受信等の印刷開始後に受信するデータを受信したため、本来ありえない事態が起きたと判断して従来のエラー処理を実行し、処理を終了する。この処理は本発明の本質とは関係のない、従来から行われているエラーに対する処理であるため詳細な説明については省略する。
【００５２】
＜印刷ジョブ情報保持処理＞
次に、図９を参照して、本実施形態における印刷ジョブ情報管理部４６０の印刷ジョブ情報保持処理について説明する。以下で説明する処理は、システム制御部３０１がＲＯＭ３０２等に記憶された制御プログラムをＲＡＭ３０３に読み出して実行することにより実現される。以下の処理はＳ８０５において印刷ジョブ情報管理部４６０が制御部４５０から印刷ジョブ識別情報とポート名を受信したことをトリガに開始される。
【００５３】
Ｓ９０１において、重複保持回避部４６２は、受信した印刷ジョブ識別情報及びポート名と、既に保持している印刷ジョブ識別情報及びポート名とが一致するか否かを判定する。一致していればＳ９０２へ進み、一致していなければＳ９０３へ進む。Ｓ９０２において、重複保持回避部４６２は、受信した印刷ジョブ情報とポート名を破棄して、本処理を終了する。
【００５４】
Ｓ９０３において、重複保持回避部４６２は、受信したポート名と印刷ジョブ識別情報のジョブＩＤ及びコンピュータ名と一致する情報を有し、かつユーザ名や登録事項等の他の情報が異なる印刷ジョブ情報５００を保持していないか判定する。保持していればＳ９０４へ進み、保持していなければＳ９０５へ進む。
【００５５】
Ｓ９０４において、重複保持回避部４６２は、Ｓ９０３で保持していると判定した印刷ジョブ情報５００を削除し、Ｓ９０７へ進む。一方、Ｓ９０５において、印刷ジョブ情報保持部４６１は、現在保持している印刷ジョブ情報５００の数が、規定の数を超えているか否かを判定する。超えていればＳ９０６へ進み、超えていなければＳ９０７へ進む。
【００５６】
なお、図４を用いて上述したように、本実施形態では印刷ジョブ情報５００は、複数の情報を含むことができるものとする。保持できる最大数は上記既定の値として予め設定されており、最大数を超えそうになった場合は古いものから削除する。Ｓ９０６において、印刷ジョブ情報保持部４６１は、保持している中で最も古い印刷ジョブ情報５００を削除する。具体的には、印刷ジョブ情報保持部４６１は、印刷ジョブ情報５００をキュー構造として複数の情報を保持しておき、キューの先頭要素を削除し、Ｓ９０７へ進む。
【００５７】
Ｓ９０７において、印刷ジョブ情報保持部４６１は、印刷ジョブ情報５００を作成して保持する。具体的には、受信した印刷ジョブ識別情報５１０とポート名５３０と、上記印刷ジョブ識別情報５００に対応する印刷ジョブの印刷済みページ数５２０をまとめて、１つの印刷ジョブ情報５００とする。そして、印刷ジョブ情報保持部４６１は、印刷ジョブ情報５００をキュー構造で管理し、新しく作成した印刷ジョブ情報５００をキューの最後尾に追加し、本処理を終了する。
【００５８】
＜印刷ジョブ情報削除処理＞
次に、図１０を参照して、本実施形態における印刷ジョブ情報管理部４６０の印刷ジョブ情報削除処理について説明する。以下で説明する処理は、システム制御部３０１がＲＯＭ３０２等に記憶された制御プログラムをＲＡＭ３０３に読み出して実行することにより実現される。以下の処理は、Ｓ８１１において印刷ジョブ情報削除部４６３に印刷ジョブ終了が通知されたことをトリガに開始される。
【００５９】
Ｓ１００１において、印刷ジョブ情報削除部４６３は、印刷終了が通知された印刷ジョブに対応する印刷ジョブ情報５００を保持しているか否かを判定する。保持していればＳ１００２へ進み、保持していなければ本処理を終了する。Ｓ１００２において、印刷ジョブ情報削除部４６３は、保持している印刷ジョブ情報５００を削除して、本処理を終了する。
【００６０】
＜印刷済み数加算処理＞
次に、図１１を参照して、本実施形態における印刷ジョブ情報管理部４６０の印刷済みページ数加算処理について説明する。以下で説明する処理は、システム制御部３０１がＲＯＭ３０２等に記憶された制御プログラムをＲＡＭ３０３に読み出して実行することにより実現される。以下の処理は後述の図１２のＳ１２１１においてページ印刷部４７１からページの正常終了が印刷済みページ数加算部４６４に通知されたことをトリガに開始される。
【００６１】
Ｓ１１０１において、印刷済みページ数加算部４６４は、ページの正常終了が通知された印刷ジョブに対応する印刷ジョブ情報５００を保持しているか否かを判定する。保持していればＳ１１０２へ進み、保持していなければ本処理を終了する。Ｓ１１０２において、印刷済みページ数加算部４６４は、Ｓ１１０１で保持していると判定した印刷ジョブ情報５００が有する印刷済みページ数５２０の値を１加算し、本処理を終了する。
【００６２】
＜印刷制御処理＞
次に、図１２を参照して、本実施形態におけるページ印刷制御部４７０による印刷制御処理について説明する。以下で説明する処理は、システム制御部３０１がＲＯＭ３０２等に記憶された制御プログラムをＲＡＭ３０３に読み出して実行することにより実現される。以下の処理は、Ｓ８０２において印刷が開始されたことをページ印刷部４７１が受けたことをトリガに開始される。
【００６３】
Ｓ１２０１において、ページ印刷部４７１は、制御部４５０に対して情報処理装置１０１と通信できないようなエラー、例えばケーブル抜け等が発生しているか否かを問い合わせる。発生していればＳ１２０２へ進み、発生していなければＳ１２０３へ進む。Ｓ１２０２において、ページ印刷部４７１は、印刷中フラグをＯＦＦにして、本処理を終了する。
【００６４】
Ｓ１２０３において、ページ印刷部４７１は、印刷ジョブの全ページが印刷済みであるか否かを判定する。印刷済みであれば本処理を終了し、印刷済みでないならＳ１２０４へ進む。Ｓ１２０４において、ページ印刷部４７１は、印刷ジョブに属するページが制御部４５０によってＲＡＭ３０３上に保持されているか否かを確認する。保持されていなければＳ１２０１へ進み、保持されていればＳ１２０５へ進む。
【００６５】
Ｓ１２０５において、ページ印刷部４７１は、保持されているページの中で一番先頭のページを印刷対象として選択し、Ｓ１２０６へ進む。Ｓ１２０６において、ページ破棄部４７２は、印刷ジョブ情報管理部４６０が管理している印刷ジョブ情報５００の中から、印刷ジョブに対応する印刷ジョブ情報５００を探して、その中の印刷済みページ数５２０の値を取得し、Ｓ１２０７へ進む。Ｓ１２０７において、ページ破棄部４７２は、Ｓ１２０６で取得した値と、印刷対象となっているページのページ番号とを比較する。ページ番号が取得した値以下ならＳ１２１２へ進み、そうでないならＳ１２０８へ進む。
【００６６】
Ｓ１２０８において、ページ印刷部４７１は、印刷対象のページを画像出力部４８０に送信して印刷を実行させ、Ｓ１２０９へ進む。Ｓ１２０９において、ページ印刷部４７１は、画像出力部４８０から印刷結果が返るのを待つ。結果が返っていなければＳ１２０９の判定を定期的に繰り返し、結果が返っていればＳ１２１０へ進む。Ｓ１２１０において、ページ印刷部４７１は、Ｓ１２０９で得られた結果がエラーか否かを判定する。エラーであればＳ１２１３へ進み、正常終了ならＳ１２１１へ進む。
【００６７】
Ｓ１２１１において、ページ印刷部４７１は、印刷済みページ数加算部４６４にページの正常終了を通知し、Ｓ１２１２へ進む。Ｓ１２１２において、ページ印刷部４７１は、印刷対象ページをＲＡＭ３０３上から破棄し、Ｓ１２０４へ戻る。一方、Ｓ１２１３において、ページ印刷部４７１は、従来のエラー処理を行い、Ｓ１２０４へ戻る。この処理は本発明の本質とは関係のない、従来から行われている一般的な処理であるため詳細な説明については省略する。
【００６８】
以上説明したように、情報処理装置が画像形成装置から情報を取得できない場合であっても、印刷ジョブのデータ送信が失敗した後に印刷を再開した際に、印刷済みのページが重複して印刷することを回避できる。それによって、無駄な用紙やトナーの消費を防ぐことができる。
【００６９】
＜その他の実施形態＞
なお、本発明は上記実施形態に限らず様々な変形が可能である。例えば、上記実施形態で提案した機能を利用したくない場合が存在する可能性も考慮して、当該機能のＯＮ／ＯＦＦ制御を行うようにしてもよい。具体的には、プリンタドライバ４２０が提供するＵＩの中に当該機能のＯＮ／ＯＦＦを入力するチェックボックスを用意する。上記チェックボックスがＯＦＦにされた状態で印刷が実行された場合、印刷ジョブ識別情報送信部４４２は動作しないものとする。すると、画像形成装置１０２が印刷ジョブ識別情報を受信することがなくなるため、印刷ジョブ情報管理部４６０が動作せず、ページ破棄部４７２も動作しなくなる。その結果、本発明が提案する重複印刷回避の機能が動かなくなるため、従来の画像形成システムと同様の動作をすることとなる。
【００７０】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013116613.tif 000003
【図２】
2013116613.tif 000004
【図３】
2013116613.tif 000005
【図４】
2013116613.tif 000006
【図５】
2013116613.tif 000007
【図６】
2013116613.tif 000008
【図７】
2013116613.tif 000009
【図８】
2013116613.tif 000010
【図９】
2013116613.tif 000011
【図１０】
2013116613.tif 000012
【図１１】
2013116613.tif 000013
【図１２】
2013116613.tif 000014