(57)【要約】      （修正有）【課題】装置内部に印刷データが保持された状態で画像形成装置のファームウエアをバージョンアップする場合に、プリンタドライバと前記ファームウエアの不整合による不具合の発生を回避する。【解決手段】画像形成装置が、情報処理装置から受信した印刷データを蓄積する印刷データ蓄積部と、蓄積された印刷データを印刷する印刷処理部と、印刷処理を行う更新可能なプログラムを記憶するプログラム記憶部と、新バージョンの印刷処理プログラムを外部から取得してプログラム記憶部の現バージョンを置き換えるプログラム更新部と、印刷データ蓄積部の各印刷データを新バージョンで正しく印刷できるかどうかをプログラム置換前に判定し、正しく印刷できない印刷データがある場合はプログラムを新バージョンに置換後も当該印刷データの印刷処理を旧バージョンで行えるよう、旧バージョンを当該印刷データと対応させて保持させるバージョン整合処理部とを備える。【選択図】図１
2006107251.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置から受信した印刷データを蓄積する印刷データ蓄積部と、
蓄積された印刷データを印刷する印刷処理部と、
印刷データを処理するための更新可能な印刷処理プログラムを記憶するプログラム記憶部と、
新バージョンのプログラムを外部から取得してプログラム記憶部に記憶された現バージョンのプログラムを置き換えるプログラム更新部と、
印刷データ蓄積部に蓄積された各印刷データを新バージョンのプログラムで印刷した場合に正しく印刷できるかどうかをプログラム置き換え前に判定し、新バージョンでは正しく印刷できない印刷データが蓄積部にある場合にプログラムが新バージョンに置き換わった後も当該印刷データの処理を置き換え前のバージョンで行えるように現バージョンのプログラムを当該印刷データと対応させて保持させるバージョン整合処理部とを備えることを特徴とする画像形成装置。
【請求項２】
プログラム更新部が、各バージョンのプログラムと共に提供される当該バージョンでサポート可能な機能情報をさらに取得し、
印刷データ蓄積部は、当該印刷データの印刷処理に用いられる機能の情報を印刷データとともに蓄積し、
バージョン整合処理部は、新バージョンがサポート可能な機能情報と各印刷データの処理に用いられる機能の情報とを比較することにより当該印刷データが正しく印刷できるかどうかを判定する請求項１記載の画像形成装置。
【請求項３】
印刷データ蓄積部は、保持された各印刷データの処理に用いられる機能を示す機能テーブルを有し、
バージョン整合処理部は、機能テーブルを参照して印刷データが正しく印刷できるかどうかを判定する請求項２記載の画像形成装置。
【請求項４】
バージョン整合処理部は、印刷データ蓄積部に蓄積された印刷データを削除するときに、当該印刷データに対応して保持されたバージョンのプログラムと対応する他の印刷データが無ければ、当該バージョンのプログラムを削除させる請求項１記載の画像形成装置。
【請求項５】
バージョン整合処理部は、印刷データ蓄積部に蓄積された印刷データがプログラム記憶部に記憶されたバージョンのプログラムでは正しく印刷できないと判断したときに、当該印刷データと対応して保持されたバージョンのプログラムで当該印刷データを処理させる請求項１記載の画像形成装置。
【請求項６】
印刷処理プログラムを実行するときに、当該プログラムを一時的に実行可能な状態に格納する一時記憶部と、
印刷データと対応して保持されたバージョンのプログラムで当該印刷データを処理する際に当該プログラムを一時記憶部に格納し、印刷データの処理が完了した後に一時記憶部から当該プログラムを削除する展開制御部とをさらに備える請求項５記載の画像形成装置。
【請求項７】
一時記憶部は、保持されたプログラム以外の他のプログラムも処理実行のために格納し、
展開制御部は、保持されたプログラムを一時記憶部に格納する際に必要な空き容量がない場合、すでに一時記憶部に格納された他のプログラムの実行終了後に他のプログラムを消去し、消去後の空き領域に保持されたプログラムを格納する請求項６記載の画像形成装置。
【請求項８】
プログラム更新部が、各バージョンのプログラムが正しく印刷処理できる印刷データを作成するプリンタドライバのバージョン情報をさらに取得し、
印刷データ蓄積部は、各印刷データとともに当該印刷データを作成したプリンタドライバのバージョン情報を蓄積し、
バージョン整合処理部は、現バージョンが正しく印刷処理できるプリンタドライバのバージョン情報と各印刷データを作成したプリンタドライバのバージョン情報とを比較して、保持された印刷データを正しく印刷できるかどうかを判定する請求項1記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ファームウエアのバージョンアップが可能な印刷処理装置に関する。
【背景技術】
【０００２】
従来、ホストコンピュータにあってプリンタに実行させる印字処理の機能設定やプリンタへ転送する印字データの生成をするプリンタドライバとプリンタにあって転送された印字データをプリンタに印字させるファームウエアとは、機能の追加や修正などにより度々バージョンアップされる。プリンタドライバとファームウエアとは対になって印刷処理を行うことから、プリンタドライバとファームウエアは同時にバージョンアップされることがあるが、複数台のプリンタと複数台のホストコンピュータがあるオフィス等の環境の下では全てのファームウエアとドライバを同時にバージョンアップできずに、ドライバとファームウエアのバージョンの対応関係が一致しないことがある。
【０００３】
このような事態によって生じる不具合を回避するために、ファームウエアとドライバのバージョンの対応関係が一致していない場合に、プリンタドライバでサポートしている機能であって、ファームウエアでサポートしていない機能があれば、プリンタドライバのUI上でその機能を非表示にする手法が知られている（例えば、特許文献１参照）。
【０００４】
また、プリンタドライバがユーザーに選択された機能で印刷するために適したエミュレーションを選択し、そのエミュレーションが現在プリンタ内で動作しているエミュレーションと異なる場合にそのエミュレーションのファームデータをプリンタドライバからプリンタにダウンロードして、ファームウエアを切り替える手法が知られている。
【特許文献１】特開２００３−２１６３７５号公報
【特許文献２】特開平８−１２３６３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述の特許文献１の方法では、ファームウエアとドライバのバージョンの対応関係が一致しない場合に印刷時に非表示とすることで誤動作を防止しているが、古いバージョンのファームウエアで印刷可能となるようにプリンタドライバで作成され、プリンタに接続されているハードディスク等のストレージ機器に保持されているデータに対して、新しいファームウエアでは印刷することができない問題がある。
また、特許文献２の方法では、ホストコンピュータから送られたデータの印刷時に必要なファームウエアをダウンロードしているが、プリンタに接続されているストレージ機器のプリントデータを印刷する場合について何ら開示されていないため、上記と同様の問題がある。
【０００６】
本発明は、古いバージョンのファームウエアに対応するプリンタドライバで作成され、ストレージ機器に保持されているデータがある状態でプリンタのファームウエアをバージョンアップする場合に、プリンタドライバと前記ファームウエアの不整合による不具合の発生を回避しようとするものである。
【課題を解決するための手段】
【０００７】
本発明は、情報処理装置から受信した印刷データを蓄積する印刷データ蓄積部と、蓄積された印刷データを印刷する印刷処理部と、印刷データを処理するための更新可能な印刷処理プログラムを記憶するプログラム記憶部と、新バージョンのプログラムを外部から取得してプログラム記憶部に記憶された現バージョンのプログラムを置き換えるプログラム更新部と、印刷データ蓄積部に蓄積された各印刷データを新バージョンのプログラムで印刷した場合に正しく印刷できるかどうかをプログラム置き換え前に判定し、新バージョンでは正しく印刷できない印刷データが蓄積部にある場合にプログラムが新バージョンに置き換わった後も当該印刷データの処理を置き換え前のバージョンで行えるように現バージョンのプログラムを当該印刷データと対応させて保持させるバージョン整合処理部とを備えることを特徴とする画像形成装置を提供する。
【発明の効果】
【０００８】
この発明の画像形成装置は、印刷データ蓄積部に蓄積された各印刷データを新バージョンのプログラムで印刷した場合に正しく印刷できるかどうかをプログラム置き換え前に判定し、新バージョンでは正しく印刷できない印刷データが蓄積部にある場合にプログラムが新バージョンに置き換わった後も当該印刷データの処理を置き換え前のバージョンで行えるように現バージョンのプログラムを当該印刷データと対応させて保持させるバージョン整合処理部を備えるので、印刷データ蓄積部に印刷データが蓄積された状態でプログラムを新バージョンに置き換えても蓄積されたすべての印刷データが適当なバージョンで正しく印刷することができる。
【発明を実施するための最良の形態】
【０００９】
この発明の画像形成装置は、情報処理装置から受信した印刷データを蓄積する印刷データ蓄積部と、蓄積された印刷データを印刷する印刷処理部と、印刷データを処理するための更新可能な印刷処理プログラムを記憶するプログラム記憶部と、新バージョンのプログラムを外部から取得してプログラム記憶部に記憶された現バージョンのプログラムを置き換えるプログラム更新部と、印刷データ蓄積部に蓄積された各印刷データを新バージョンのプログラムで印刷した場合に正しく印刷できるかどうかをプログラム置き換え前に判定し、新バージョンでは正しく印刷できない印刷データが蓄積部にある場合にプログラムが新バージョンに置き換わった後も当該印刷データの処理を置き換え前のバージョンで行えるように現バージョンのプログラムを当該印刷データと対応させて保持させるバージョン整合処理部とを備えることを特徴とする。
【００１０】
ここで、印刷データが正しく印刷できるかどうかとは、情報処理装置で印刷データを作成した時点のバージョンからファームウエアが更新されて処理に差異が生じたことによって、作成時点のバージョンが出力する印刷結果とは異なる印刷がされたり、処理エラーのために印刷がされなかったりすることがないかどうかをさす。
【００１１】
また、現バージョンのプログラムを保持するとは、バージョンを後で復元して印刷データを処理することができるように記憶しておくことであり、例えば、プログラム記憶部に更新前の現バージョンをそのまま削除せずに保持しておいてもよいが、それに限らず、他の記憶部に転送して退避して保持しておいてもよい。また、その際にデータ圧縮等の手法をもいてもよい。復元可能であれば、保持する場所や形態は特に限定されない。
【００１２】
さらにまた、印刷データと対応させてプログラムを保持するとは、印刷データと、それを処理するバージョンとの対応関係がわかるようにして保持することを意味する。複数の印刷データが、１つのバージョンのプログラムに対応する場合は、そのバージョンのプログラムを１箇所に保持し、それに対応するいずれかの印刷データを処理する場合には、当該プログラムを用いるようにすればよい。このようにすれば、同じバージョンのプログラムを重複して保存することなく複数の印刷データを印刷処理でき、プログラムの保存領域を有効に活用することができる。
【００１３】
さらに、プログラム更新部が、各バージョンのプログラムと共に提供される当該バージョンでサポート可能な機能情報をさらに取得し、印刷データ蓄積部は、当該印刷データの印刷処理に用いられる機能の情報を印刷データとともに蓄積し、バージョン整合処理部は、新バージョンがサポート可能な機能情報と各印刷データの処理に用いられる機能の情報とを比較することにより当該印刷データが正しく印刷できるかどうかを判定するようにしてもよい。このようにすれば、バージョン整合処理部は、印刷データが正しく印刷できるかどうかの判断をそのバージョンがサポート可能な機能の情報に基づいて判断できるので、印刷データ蓄積部に蓄積された印刷データが正しく印刷できるかどうかを各印刷データについて厳密に判断することができる。
【００１４】
またさらに、印刷データ蓄積部は、保持された各印刷データの処理に用いられる機能を示す機能テーブルを有し、バージョン整合処理部は、機能テーブルを参照して印刷データが正しく印刷できるかどうかを判定するようにしてもよい。このようにすれば、バージョン整合処理部は、前記テーブルを参照するだけで蓄積された印刷データのすべてについて機能を比較して印刷データが正しく印刷できるかどうかを判定するので、処理を単純化することができる。これによってプログラムの設計誤りを減らし、さらに処理時間を短くできることが期待される。
【００１５】
また、バージョン整合処理部は、印刷データ蓄積部に蓄積された印刷データを削除するときに、当該印刷データに対応して保持されたバージョンのプログラムと対応する他の印刷データが無ければ、当該バージョンのプログラムを削除させるようにしてもよい。このようにすれば、印刷データを削除するときに、以後の印刷処理に使用されることのなくなったプログラムを削除してプログラムの記憶領域が無駄に占有されることのないようにできる一方、当該バージョンを使用する他の印刷データがあるときには、プログラムを削除せずに残しておくことができる。
【００１６】
また、バージョン整合処理部は、印刷データ蓄積部に蓄積された印刷データがプログラム記憶部に記憶されたバージョンのプログラムでは正しく印刷できないと判断したときに、当該印刷データと対応して保持されたバージョンのプログラムで当該印刷データを処理させるようにしてもよい。このようにすれば、バージョン更新後も、印刷データ蓄積部に保持されている印刷データに対してバージョン更新前と同じ処理を行って正しい印刷をさせることができる。
【００１７】
さらにまた、前記画像形成装置は、印刷処理プログラムを実行するときに、当該プログラムを一時的に実行可能な状態に格納する一時記憶部と、印刷データと対応して保持されたバージョンのプログラムで当該印刷データを処理する際に当該プログラムを一時記憶部に格納し、印刷データの処理が完了した後に一時記憶部から当該プログラムを削除する展開制御部とをさらに備えていてもよい。このようにすれば、一時記憶部上に印刷データと対応して保存されたプログラムを格納して実行することができるので、例えばデータ圧縮などの手法を用いて保持するプログラムの容量を減らして記憶領域を節約することができる。さらに、展開制御部が、印刷データの処理が完了した後に、当該プログラムを一時記憶部から削除するので、複数バージョンのプログラムによる印刷処理に同じ記憶領域を使用することができ、一時記憶部の記憶領域を有効に利用することができる。
【００１８】
さらに、一時記憶部は、保持されたプログラム以外の他のプログラムも処理実行のために格納し、展開制御部は、保持されたプログラムを一時記憶部に格納する際に必要な空き容量がない場合、すでに一時記憶部に格納された他のプログラムの実行終了後に他のプログラムを消去し、消去後の空き領域に保持されたプログラムを格納してもよい。このようにすれば、一時記憶部が他のプログラムの実行のためにも使用されており、保持されたプログラムを格納する領域がない場合でも、他のプログラムの実行が終了した後に、他のプログラムを消去し、記憶領域を確保することができる。
【００１９】
また、プログラム更新部が、各バージョンのプログラムが正しく印刷処理できる印刷データを作成するプリンタドライバのバージョン情報をさらに取得し、印刷データ蓄積部は、各印刷データとともに当該印刷データを作成したプリンタドライバのバージョン情報を蓄積し、バージョン整合処理部は、現バージョンが正しく印刷処理できるプリンタドライバのバージョン情報と各印刷データを作成したプリンタドライバのバージョン情報とを比較して、保持された印刷データを正しく印刷できるかどうかを判定ようにしてもよい。
このようにすれば、バージョン整合処理部は、印字データが正しく印刷できるかどうかをプリンタドライバのバージョンに基づいて判定することができるので判定処理を単純化することができ、これによってプログラムの設計誤りを減らし、さらに処理時間を短くできることが期待される。また、設計当初に想定していなかったような機能拡張がプリンタドライバの新バージョンで行われても、画像形成装置の印刷処理プログラムを、当該バージョンのプリンタドライバをサポートするバージョンに更新すれば、画像形成装置は、印刷処理プログラムの更新が行われるまで印刷データ保持し、印刷処理プログラムの更新後に印刷データを正しく印刷処理することができる。
【００２０】
以下に、図面を用いて本発明をさらに詳述する。
（実施の形態１）
この実施の形態では、本発明に係る画像形成装置の構成について説明する。図１３は、本実施の形態に係る画像形成装置の機械的な構成の一例を示す説明図である。画像形成装置Ａは、外部から受信した印刷データを、所定のシート（記録用紙）上に多色および単色で印刷処理して出力する装置である。図１３に示すように、画像形成装置は、露光ユニット１、現像器２ａ、２ｂ、２ｃ、２ｄ、感光体ドラム３ａ、３ｂ、３ｃ、３ｄ、帯電器５ａ、５ｂ、５ｃ、５ｄ、クリーナユニット４ａ、４ｂ、４ｃ、４ｄ、中間転写ベルトユニット８、定着ユニット１２と、用紙搬送路Ｓ、給紙トレイ１０および排紙トレイ１５等より構成されている。
【００２１】
なお、本画像形成装置において扱われる画像データは、ブラック（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）の各色を用いたカラー画像に応じたものである。従って、現像器２ａ、２ｂ、２ｃ、２ｄ、感光体ドラム３ａ、３ｂ、３ｃ、３ｄ、帯電器５ａ、５ｂ、５ｃ、５ｄ、クリーナユニット４ａ、４ｂ、４ｃ、４ｄはそれぞれＫ、Ｃ、Ｍ、Ｙの各色に応じて４種類の潜像を形成するようにそれぞれ４個ずつ設けられ、それぞれ、符号の末尾のアルファベットａがブラック（Ｋ）に、ｂがシアン（Ｃ）に、ｃがマゼンタ（Ｍ）に、ｄがイエロー（Ｙ）に設定され４つの画像ステーションが構成されている。
【００２２】
感光体ドラム３ａ、３ｂ、３ｃ、３ｄは、本画像形成装置の上部に配置（装着）されている。帯電器５ａ、５ｂ、５ｃ、５ｄは、それぞれ感光体ドラム３ａ、３ｂ、３ｃ、３ｄの表面を所定の電位に均一に帯電させるための、帯電手段であり図１３に示すように接触型のローラ型やブラシ型の帯電器のほかチャージャー型の帯電器が用いられる事もある。露光ユニット１は、図１３に示すようにレーザ照射部および反射ミラーを備えた、レーザスキャニングユニット（ＬＳＵ）を用いる手法のほかに、発光素子をアレイ状に並べた例えばＥＬやＬＥＤ書込みヘッドをＫＣＭＹの色ごとに用いる手法もある。そして帯電された各感光体ドラム３ａ、３ｂ、３ｃ、３ｄを入力された画像データに応じて露光することにより、その表面に、画像データに応じた静電潜像を形成する機能を有するものである。
現像器２ａ、２ｂ、２ｃ、２ｄは、それぞれの感光体ドラム３上に形成された静電潜像をＫ、Ｃ、Ｍ、Ｙの各色のトナーにより顕像化するものである。クリーナユニット４ａ、４ｂ、４ｃ、４ｄは、現像・画像転写後における各感光体ドラム３ａ、３ｂ、３ｃ、３ｄ上の表面に残留したトナーを、除去・回収するものである。
【００２３】
感光体ドラム３ａ、３ｂ、３ｃ、３ｄの上方に配置されている中間転写ベルトユニット８は、中間転写ベルト７、中間転写ベルト駆動ローラ７１、中間転写ベルト従動ローラ７２、中間転写ローラ６ａ、６ｂ、６ｃ、６ｄ、および中間転写ベルトクリーニングユニット９を備えている。
【００２４】
中間転写ベルト駆動ローラ７１、中間転写ローラ６、中間転写ベルト従動ローラ７２等は、中間転写ベルト７を張架し、矢印Ｂ方向に回転駆動させるものである。
各中間転写ローラ６ａ、６ｂ、６ｃ、６ｄは、中間転写ベルトユニット８に回転可能に支持されている。
中間転写ベルト７は、各色の感光体ドラム３ａ、３ｂ、３ｃ、３ｄに接触するように設けられている。そして、各感光体ドラム３ａ、３ｂ、３ｃ、３ｄに形成された各色のトナー像を中間転写ベルト７に順次的に重ねて転写することによって、中間転写ベルト７上にカラーのトナー像（多色トナー像）を形成する機能を有している。この中間転写ベルト７は、厚さ１００μｍ〜１５０μｍ程度のフィルムを用いて無端状に形成されている。
【００２５】
各感光体ドラム３ａ、３ｂ、３ｃ、３ｄから中間転写ベルト７へのトナー像の転写は、それぞれが中間転写ベルト７の裏側に接触している中間転写ローラ６ａ、６ｂ、６ｃ、６ｄによって行われる。中間転写ローラ６ａ、６ｂ、６ｃ、６ｄには、トナー像を転写するために高電圧の転写バイアス（トナーの帯電極性（−）とは逆極性（＋）の高電圧）が印加されている。中間転写ローラ６は、直径８〜１０ｍｍの金属（例えばステンレス）軸をベースとし、その表面は、導電性の弾性材（例えばＥＰＤＭ，発泡ウレタン等）により覆われているローラである。この導電性の弾性材により、中間転写ベルトに対して均一に高電圧を印加することができる。この実施形態では転写電極としてローラ形状を使用しているが、それ以外にブラシなども用いる事が可能である。
【００２６】
前述の様に各感光体３ａ、３ｂ、３ｃ、３ｄ上で各色相に応じて顕像化された静電像は中間転写ベルト７で積層され、装置に入力された画像情報となる。このように、積層された画像情報は中間転写ベルト７の回転によって、後述の用紙と中間転写ベルト７の接触位置に配置される転写ローラ１１によって用紙上に転写される。
【００２７】
この時、中間転写ベルト７と転写ローラ１１は所定ニップで圧接されると共に、転写ローラ１１にはトナーを用紙に転写させるための電圧が印加される（トナーの帯電極性（−）とは逆極性（＋）の高電圧）。さらに、転写ローラ１１は上記ニップを定常的に得るために、転写ローラ１１もしくは前記中間転写ベルト駆動ローラ７１の何れか一方を硬質材料（金属等）とし、他方を弾性ローラ等の軟質材料（弾性ゴムローラ、または発泡性樹脂ローラ等々）が用いられる。
【００２８】
また、上記のように、各感光体ドラム３ａ、３ｂ、３ｃ、３ｄとの接触により中間転写ベルト７に付着したトナー、若しくは、転写ローラ１１によって用紙上に転写が行われず中間転写ベルト７上に残存したトナーは、次工程でトナーの混色を発生させる原因となるために、中間転写ベルトクリーニングユニット９によって除去・回収されるように設定されている。中間転写ベルトクリーニングユニット９には、中間転写ベルト７に接触する例えばクリーニング部材としてクリーニングブレードが備えられており、クリーニングブレードが接触する中間転写ベルト７は、裏側から中間転写ベルト従動ローラ７２で支持されている。
【００２９】
給紙トレイ１０は、画像形成に使用するシート（記録用紙）を蓄積しておくためのトレイであり、本画像形成装置Ａの画像形成部および露光ユニット１の下側に設けられている。また、本画像形成装置Ａの上部に設けられている排紙トレイ１５は、印刷済みのシートをフェイスダウンで載置するためのトレイである。
【００３０】
また、本画像形成装置Ａには、給紙トレイ１０のシートを転写部１１や定着ユニット１２を経由させて排紙トレイ１５に送るための、略垂直形状の用紙搬送路Ｓが設けられている。さらに、給紙トレイ１０から排紙トレイ１５までの用紙搬送路Ｓの近傍には、ピックアップローラ１６−１，１６−２，レジストローラ１４、転写部１１、定着部１２、シートを搬送する搬送ローラ２５等が配されている。
【００３１】
搬送ローラ２５−１〜２５−８は、シートの搬送を促進・補助するための、小型のローラであり、用紙搬送路Ｓに沿って複数設けられている。ピックアップローラ１６−１、１６−２は、給紙トレイ１０の端部に備えられ、給紙トレイ１０から、シートを１枚毎に用紙搬送路Ｓに供給する呼び込みローラである。
また、レジストローラ１４は、用紙搬送路Ｓを搬送されているシートをいったん保持するものである。そして、各感光体ドラム３ａ、３ｂ、３ｃ、３ｄ上のトナー像の先端とシートの先端を合わせるタイミングでシートを転写部に搬送する機能を有している。
【００３２】
定着ユニット１２は、ヒートローラ３１，加圧ローラ３２，等を備えており、ヒートローラ３１および加圧ローラ３２は、シートを挟んで回転するようになっている。
また、ヒートローラ３１は、図示しない温度検出器からの信号に基づいて制御部によって所定の定着温度となるように設定されており、加圧ローラ３２とともにシートを熱圧着することにより、シートに転写された多色トナー像を溶融・混合・圧接し、シートに対して熱定着させる機能を有している。
なお、多色トナー像の定着後のシートは、搬送ローラ２５−２，２５−３によって用紙搬送路Ｓの反転排紙経路に搬送され、反転された状態で（多色トナー像を下側に向けて）、排紙トレイ１５上に排出されるようになっている。
【００３３】
次に、シート搬送経路を詳細に説明する。本画像形成装置には予めシートを収納する給紙カセット１０が配置されると共に、ユーザーが少数枚の印字を行う時に前記給紙カセット１０の開閉動作を行わなくてもよい手差しトレイ２０が配置されている。
【００３４】
両給紙方法には、各々前記のピックアップローラ１６−１および１６−２がそれぞれ配置され、シートを1枚ずつ搬送路に導くようになっている。給紙カセット１０から搬送されるシートは搬送路中の搬送ローラ２５−１によってレジストローラ１４まで搬送され、シートの先端と中間転写ベルト７上の画像情報の先端を整合するタイミングで転写ローラ１１に搬送され、シートうえに画像情報が書き込まれる。その後、シートは定着部１２を通過する事によってシート上の未定着トナーが熱で溶融・固着され搬送ローラ２５−２を経て排紙ローラ２５−３から排紙トレイ１５上に排出される（片面印字要求の時）。
【００３５】
他方、手差し給紙トレイ２０に積載されるシートはピックアップローラ１６−２によって給紙され、複数の搬送ローラ（２５−６、２５−５、２５−４）を経てレジストローラ１４に到達し、それ以降は給紙カセットから給紙されるシートと同様の経過を経て排紙トレイ１５に排出される（片面印字要求の時）。
【００３６】
この時、印字要求内容が両面印字要求の時は、上記のように片面印字が終了し定着部１２を通過したシートの後端が前記排紙ローラ２５−３でチャックされ、排紙ローラが逆回転する事によって搬送ローラ（２５−７、２５−８）に導かれた後レジストローラ１４を経て裏面印字が行われた後に排紙トレイ１５に排出される。
【００３７】
図２は、本発明の画像形成装置のハードウェア構成の一例を示すブロック図である。画像形成装置１００１において、フラッシュＲＯＭ１００３は、書き換え可能なフラッシュＲＯＭであり、プログラムデータが格納されている。ＣＰＵ１００２は、前記のプログラムデータを実行することによって画像形成装置本体の制御を行う。ＲＡＭ１００４は、ＣＰＵ１００２がプログラムを高速で実行するめにフラッシュＲＯＭ１００３に格納してあるプログラムデータを展開したり、ワークエリアとして利用したりする記憶領域を提供する。
【００３８】
ホストＩ／Ｆ１００５は、ホストからのデータを受信するためのＩ／Ｆ部であり、印刷データ、保持されている印刷データ、プログラムデータの入力に利用する。ユーザインタフェイス（ＵＩ）１００６は、ユーザーからの操作を受け付けるキーや、ユーザーへの情報を表示する表示装置を含み、ユーザーに画像形成装置内に保持されている印刷データの印刷指定や、削除指定を行わせるために使用される。ハードディスク１００７は、一時的に大きなデータを格納したり、電源がオフになっても残しておきたいデータを格納する記憶装置であり、保持されている印刷データの格納やプログラムデータの格納に利用する。  エンジンＩ／Ｆ１００８は、エンジンにデータを送るためのＩ／Ｆ部であり、データの印刷に利用する。
【００３９】
図１は、本発明の画像形成装置の機能的構成の一例を示すブロック図である。図１で、プログラム記憶部１０１０は、印刷処理プログラム１０１１を記憶するブロックで、図２のフラッシュＲＯＭ１００３のハードウェア資源を用いて実現される。また、印刷データ記憶部１０１３は、印刷データ１０１４を記憶するブロックで、図２のハードディスク１００７のハードウェア資源を用いて実現される。一時記憶部１０１７は、処理プログラムを展開して高速で実行するためのブロックであり、この発明の必須の構成要素ではないことを示すために点線で示している。一時記憶部１０１７は、図２のＲＡＭ１００４のハードウェア資源を用いて実現される。プログラム更新部１０１２、バージョン整合処理部１０１５、展開制御部１０１９は、プログラム記憶部１０１０あるいは一時記憶部１０１７のプログラムを図２のＣＰＵ１００２が実行することにより実現されるブロックである。プログラム更新部は、新バージョンの印刷処理プログラムを外部から取得してプログラム記憶部１０１０に記憶させる。バージョン整合処理部１０１５は、主として印刷データ１０１４を処理すべき印刷処理プログラムのバージョンを判定する。展開制御部１０１９は、一時記憶部１０１７への印刷処理プログラムの展開、破棄を行い、一時記憶部１０１７と対になる構成要素であってこの発明の必須の構成要素ではないことを示すために点線で示している。印刷処理部１０１６は、印刷処理プログラムの内容に従って印刷データを処理する。
【００４０】
（実施の形態２）
この実施の形態では、前述した画像形成装置の処理プログラムを更新する際の処理手順について説明する。図３は、本発明に係る画像形成装置にいてプログラムを新バージョンに更新する際の処理手順の一例を示すフローチャートである。図１０のプログラムサポート機能テーブルが付加されているプログラムデータ書き換え時の、実行中プログラムのプログラムデータ保存手順に対応する。
【００４１】
図３に示すように、まず画像形成装置１００１用は、プログラムデータをホストＩ／Ｆ１００５を介して受信し、ＲＡＭ１００４に格納する（ステップＳ１０１）。
次に、バージョン整合処理部１０１５は、印刷データ蓄積部１０１３に蓄積された印刷データのうちの一つを判定の対象として選択する（ステップＳ１０２）。そして、選択した印刷データが正しく印刷できるかどうかを判定する（ステップＳ１０３）。この手法の具体的な例は、後述する。バージョン整合処理部１０１５が、選択した印刷データが正しく印刷できると判断した場合、ルーチンはステップＳ１０５へ進み、印刷データ蓄積部１０１３に蓄積された全ての印刷データについて判定を行ったかどうかを判断する。まだ、判定を行っていない印刷データがある場合には、ルーチンはステップＳ１０６へ進み、次の未判定の印刷データを選択した後にステップＳ１０３へ進み、新たに選択した印刷データについて正しく印刷できるかどうかの判定を繰り返す。一方、ステップＳ１０５で全ての印刷データについての判定が終了したと判断した場合、ルーチンはステップＳ１１１へ進み、新バージョンのプログラムで現バージョンを置換し、プログラムの置換による更新処理を終了する。
【００４２】
一方、ステップＳ１０４で、判断部が印刷データを正しく印刷できないと判断した場合、ルーチンはステップＳ１０７へ進み、現バージョンの保存処理を行う。まず、判定対象の印刷データを正しく印刷できる現バージョンあるいは以前のバージョンのプログラムが未保存か、すでに保存されているかどうかを判定する（ステップＳ１０７）。すでに、プログラムが保存されている場合、ルーチンはステップＳ１１０へ進み、判定対象の印刷データとすでに保存されているプログラムデータとを対応させる情報を保存する。この印刷データを後で印刷する場合に当該印刷データを処理するプログラムのバージョンを決定するために用いられる。
【００４３】
また、前記ステップＳ１０７で、プログラムが未保存の場合、ルーチンはステップＳ１０８へ進み、現バージョンのプログラムを保存するための空き容量があるかどうかを調べる。空き容量がない場合は、印刷データを後で正しく印刷することができないので、一旦新バージョンへの更新を中止し（ステップＳ１１２）、処理を終了する。
【００４４】
一方、ステップＳ１０８の判定で、現バージョンのプログラムを保存する空き容量がある場合は、現在のバージョンのプログラムを保存する（ステップＳ１０９）。プログラムを保存する記憶領域は、読み書き可能な媒体で電源を切っても保持可能であれば特に限定されない。また、この記憶領域は、専用の記憶装置を設けるのではなく、他の用途として使用される記憶装置を使用してもよい。例えば、図２のフラッシュＲＯＭ１００３の一部の領域や、ハードディスク１００７の一部の領域を使用してもよい。また、プログラム記憶部１０１０と同じ記憶領域を使用する場合、例えば新バージョンをプログラム記憶領域の一部に記憶し、現在のバージョンをプログラム記憶領域にそのまま保持し、単に実行対象とするプログラムの選択を現バージョンから新バージョンへ切り替えるだけでもよい。
プログラム記憶部１０１０の容量が十分大きい場合は、このようにすることによって保存処理を単純にすることができる。あるいは、プログラムをハードディスク１００７やフラッシュＲＯＭ１００３へ保存する処理を行う場合、記憶領域を節約するために公知のデータ圧縮などの手法を用いて保存するプログラムの容量を減らしてもよい。
前述したような手法で現バージョンのプログラムを保存した後、バージョン整合処理部は、判定対象の印刷データとすでに保存されているプログラムデータとを対応させる情報を保存する（ステップＳ１１０）。
【００４５】
前述の処理手順で、選択した印刷データについて正しく印刷できるかどうかを判定するステップＳ１０３の処理の詳細を以下に説明する。
この実施の形態では、新バージョンのプログラムで印刷データが正しく印刷できるかどうかを判定するために、前記プログラムがそのバージョンのプログラムでサポートされている機能を示す情報とともに提供される。図１０は、そのバージョンのプログラムデータにサポート機能を示す情報を付加する場合の付加情報の一態様を示す説明図である。図１０に示すように、プログラムの新バージョンはDuplex設定４００１として、「なし/Booklet/Tablet」のいずれかが、Punch設定４００２として、「なし/2穴/3穴/4穴」のいずれかが、Staple設定４００３として、「なし/Left/Top/Right」のいずれかが、カラー設定４００４として、「白黒/カラー」のいずれかが、スクリーン設定４００５として、「Ver1/Ver2」のいずれかが、タンデム印刷４００６は、「なし」のみ、暗号化設定４００７は、「なし/あり」のいずれかが指定可能である。また図１０は、その他の項目についてもそれぞれの指定可能な内容が付加されていることを示す。この態様において、サポート機能は、プログラムサポート機能テーブルとして設定項目についてのデータテーブルの形態で提供される。
【００４６】
また、この実施の形態では、印刷データ蓄積部１０１３に蓄積された各印刷データの処理に用いられる機能を各印刷データに対応させて蓄積する。図９は、各印刷データの処理に用いられる機能を印刷データに付加して蓄積する場合の付加情報の一例を示す説明図である。図９に示すように、蓄積された印刷データは、Duplex設定３００１として「Booklet」が、Punch設定３００２として「２穴」が、Staple設定３００３として、「なし」が、色設定３００４として「白黒」が、スクリーン設定３００５として「Ver1」が、タンデム印刷設定３００６として「なし」が、暗号化設定３００７として「なし」がそれぞれ設定され、他の項目についても設定がなされている。この例において、印刷データの処理に用いられる機能は、保持印刷データ必要機能テーブルとして設定項目についてのデータテーブルの形態で蓄積される。
【００４７】
そして印刷データ蓄積部１０１３には、複数の印刷データが蓄積できるように各印刷データにＩＤが付与され、各ＩＤについて前記の保持印刷データ必要機能テーブルを蓄積する。図１１は、複数の印刷データについて、各印刷データの保持印刷データ必要機能テーブルをＩＤと共に保持する保持印刷データ管理テーブルの一例を示す説明図である。
【００４８】
バージョン整合処理部１０１５は、これらの機能情報に基づいて、各ＩＤの印刷データが新バージョンのプログラムで正しく印刷できるかどうかを判定する。即ち、図１１の保持印刷データ管理機能テーブルの各ＩＤに対応する保持印刷データ必要機能テーブルの各項目が、図１０のプログラムサポート機能テーブルに含まれるかどうかを判断する。図１１に示す例で具体的に説明すると、ＩＤが１の印刷データはDuplex設定５００１が「Booklet」であるが、これは図１０に示すプログラムサポートテーブルのDuplex設定４００１の設定内容に含まれるので、Duplex設定については、ＩＤが１の印刷データを正しく印刷できると判断する。次に、Punch設定５００２の設定「２」と図１０のPunch設定４００２の内容とを比較し、「２」の設定がが「２穴」に対応するので、Punch設定についても、ＩＤが１の印刷データを正しく印刷できると判断する。以下、Staple設定５００３、色設定５００４、スクリーン設定５００５、タンデム印刷設定５００６、暗号化設定５００７など、他の機能についても図１０のプログラムサポート機能テーブルの設定内容に含まれているかどうかを判定する。その結果、ＩＤが１の印刷データのすべての設定項目がプログラムサポート機能テーブルの各設定項目に含まれるので、ＩＤが１の印刷データは、新バージョンのプログラムで正しく印刷できると判定する。
【００４９】
また、ＩＤが３の印刷データはDuplex設定５００１が「Tablet」であるが、これは図１０に示すプログラムサポートテーブルのDuplex設定４００１の設定内容に含まれるので、Duplex設定については、ＩＤが１の印刷データを正しく印刷できると判断する。次に、Punch設定５００２の設定「なし」と図１０のPunch設定４００２の内容とを比較し、「なし」の設定があるので、Punch設定についても、ＩＤが１の印刷データを正しく印刷できると判断する。以下、Staple設定５００３、色設定５００４についても正しく印刷できると判断する。しかし、スクリーン設定５００５については、設定が「Ver3」であるが、この設定は、プログラムサポートテーブルの設定「Ver1/Ver2」に含まれない。したがって、ＩＤが３の印刷データはプログラムサポート機能テーブルの設定項目に含まれない設定を含むので、新バージョンのプログラムでは正しく印刷できないと判定する。
【００５０】
図４は、前述したように新バージョンのプログラムで印刷データが正しく印刷できるかどうかを判定する処理手順の一例を示すフローチャートである。まず、バージョン整合処理部１０１５は、図１１の保持印刷データ管理テーブルのうち、選択したＩＤの印刷データの最初の設定項目、例えば設定項目５００１のDuplex設定の設定内容を、保持印刷データ管理テーブルから取得する。前述のＩＤが１の印刷データでは、「Booklet」である（ステップＳ１５０）。
【００５１】
次に、バージョン整合処理部１０１５は、プログラムサポート機能テーブルを参照して、対応する設定項目の内容を取得する。図１０の例では、「なし/Booklet/Tablet」である（ステップＳ１５１）。
【００５２】
そして、印刷データのDuplex設定「なし」が、プログラムサポート機能テーブルの設定内容「なし/Booklet/Tablet」に含まれるかどうかを判定する（ステップＳ１５２）。含まれている場合は、プログラムがその機能をサポートしているので、その機能については印刷データを正しく処理できると判定し、次の項目があるかどうかの判定に移る（ステップＳ１５３）。ステップＳ１５２で判定した項目が最後の項目であれば全ての設定項目がサポートされていると判断して、そのＩＤの印刷データが正しく印刷できると判定し（ステップＳ１５４）、判定処理を終了する。一方、未判定の項目がある場合は、次の項目を選択した後（ステップＳ１５６）、ルーチンはステップＳ１５１へ進んでステップＳ１５６で選択した設定項目についての判定を繰り返す。
【００５３】
また、ステップＳ１５２で、バージョン整合処理部１０１５が、設定内容がサポート機能に含まれていないと判定した場合は、その印刷データの設定機能をプログラムがサポートしていないために、印刷データを正しく印刷できないと判定し（ステップＳ１５５）判定処理を終了する。
【００５４】
なお、図３のステップＳ１１０で保存する対応情報、即ち、プログラムデータと印刷データとの対応情報は、例えば、図１１に示すように、保持印刷データ管理テーブルに当該対応情報の項目５０１０を設け、各ＩＤの印刷データに対応して保存されたプログラムデータが存在する場合は、そのプログラムデータの保存先を特定できる情報を登録するようにしてもよい。プログラムデータの保存先を特定できる情報とは、例えばデータを保存した先のアドレスであってもよいが、プログラムデータを保存する際に、保存プログラムのＩＤを付与し、保持印刷データ管理テーブルには保存プログラムのＩＤを登録し、各ＩＤに対する保存先アドレスを示すテーブル（図示せず）を設けてこのテーブルを参照して保存先を特定するようにしてもよい。図１１は、ＩＤを登録する例を示している。
【００５５】
（実施の形態３）
この実施の形態では、選択した印刷データについて正しく印刷できるかどうかを判定する処理の異なる実施形態について説明する。この実施の形態では、プログラムは、そのバージョンのプログラムで正しく印刷処理できるプリンタドライバのバージョンの情報とともに提供される。当然のことであるが、１以上のプリンタドライバのバージョンが前記情報に含まれる。
一方、印刷データ蓄積部１０１３は、蓄積された各印刷データを作成したプリンタドライバのバージョン情報を各印刷データに対応させて蓄積する。図１２は、複数の印刷データについて、各印刷データを作成したプリンタドライバのバージョン情報をＩＤと共に保持する保持印刷データ管理テーブルの一例を示す説明図である。図１２に示すように、各印刷データは、その印刷データを作成したプリンタドライバのバージョンと共に受信され、印刷データ蓄積部１０１３に蓄積される。
【００５６】
図５は、この実施の形態で、印刷データを正しく印刷できるかどうかを判定する処理の手順の異なる一例を示すフローチャートである。まず、バージョン整合処理部１０１５は図１２の保持印刷データ管理テーブルのうち、選択したＩＤの印刷データを作成したプリンタドライバのバージョンを取得する（ステップＳ１８０）。図１２のＩＤが１の印刷データでは、プリンタドライバのバージョンは２．０１である。そして、このバージョンが新バージョンのプログラムのサポート情報に含まれているかどうかを判定する（ステップＳ１８１）。印刷データを作成したプリンタドライバのバージョンがサポートされている場合、ルーチンはステップＳ１８２へ進み、印刷データを正しく印刷できると判定する（ステップＳ１８２）。一方、印刷データを作成したプリンタドライバのバージョンがサポートされていない場合、ルーチンはステップＳ１８３へ進み、印刷データを正しく印刷できないと判定する（ステップＳ１８３）。
【００５７】
（実施の形態４）
この実施の形態は、保存したプログラムデータを削除する処理に関する。
図６は、画像形成装置内に保持されている印刷データを削除するときの処理手順を示すフローチャートである。
【００５８】
バージョン整合処理部１０１５は、ＵＩ１００６から例えばハードディスク１００７等の記憶装置に保持されている印刷データの削除指示を待つ（ステップＳ３０１）。削除の指示を受けたら、ルーチンはステップ３０２へ進み、削除の指示を受けた印刷データを処理するプログラムのバージョンを取得する。プログラムのバージョン取得は、例えば、図１１の態様の保持印刷データ管理テーブル中の項目、保持プログラムＩＤ５０１０にプログラムが登録されていれば、その登録情報によって特定される。あるいは、図１２の態様の保持印刷データ管理テーブル中の項目、保持プログラムＩＤ２００２にプログラムが登録されていれば、その登録情報によって特定される。それらの項目に登録情報がなければ、現在のバージョンで正しく印刷することができる。
【００５９】
削除の指示を受けた印刷データを印刷するプログラムが前記項目に登録されており、保存されたプログラムならば、ルーチンはステップＳ３０４へ進み、保存されたプログラムで印刷すべき印刷データが他にあるか検索する。他に印刷データがないと判断すれば、ルーチンはステップＳ３０６へ進み、保存されたプログラムデータを削除する。一方、前記ステップＳ３０５で他のプログラムが存在しないと判断すれば、ルーチンはステップＳ３０７へ進み、保存されたプログラムデータを削除せずに保持する。
【００６０】
また、前述のステップＳ３０３で、削除の指示を受けた印刷データを印刷するプログラムが保存されたプログラムでなく、現在のバージョンであると判定された場合、ルーチンはステップＳ３０７へ進み、保存されたプログラムを現状のまま保持する。
これらの処理の後に、ルーチンは印刷データを削除し（ステップＳ３０７）、保持印刷データ管理テーブルから削除の指示を受けた印刷データに対応するＩＤの登録内容を削除する。
【００６１】
（実施の形態５）
この実施の形態では、印刷データを処理するプログラムを一時記憶部１０１７に展開して実行する手法について説明する。組み込み型のコントローラは、例えばフラッシュメモリなどにプログラムが格納され、ＣＰＵがフラッシュメモリから命令フェッチして実行する構成が多い。しかし、印刷データを処理するコントローラは、多量のデータを高速で処理する必要性からＲＩＳＣチップなどの高速処理可能なＣＰＵが用いられることが多いが、一般的にフラッシュメモリはＲＡＭに比べてアクセスが遅く、バースト転送に対応していないためにフラッシュメモリからの命令フェッチが処理高速化のボトルネックになりがちである。このため、処理プログラムを不揮発性メモリであるフラッシュメモリに格納し、電源オン時にＲＡＭに展開してＲＡＭ上に展開されたプログラムをフェッチし、印刷データを高速処理する手法がとられることがある。この実施の形態は、前述のような構成を持つコントローラに適用することが特に好ましい。
【００６２】
図７は、この実施の形態で印刷データ蓄積部１０１３に蓄積された印刷データを印刷する際の処理手順を示すフローチャートである。図７において、ルーチンは、ＵＩ１００６から印刷データ蓄積部１０１３に蓄積された印刷データの印刷指示を待ち（ステップＳ４０１）、印刷指示を受けたら、ステップＳ４０２へ進んで印刷指示された印刷データを印刷するプログラムのバージョンを取得する。プログラムのバージョンの取得方法については、実施の形態４で述べたとおりである。そして、取得したバージョンのプログラムが保存されているプログラムかどうかを判定する（ステップＳ４０３）。
【００６３】
取得したバージョンのプログラムが保存されたプログラムならば、ルーチンはステップＳ４０４へ進み、展開制御部１０１９が保存プログラムの展開処理を行う。そうでなければ、ルーチンはステップＳ４１３へ進み、現在のバージョンで印刷データの印刷処理を行う。
【００６４】
保存プログラムの展開処理では、まず、展開制御部１０１９が、一時記憶部であるＲＡＭ１００４にプログラム展開用のエリアを確保する（ステップＳ４０４）。その結果、プログラム展開用のエリアを確保できたかどうかを調べ（ステップＳ４０５）、確保できたならば、ルーチンはステップＳ４０６へ進み、印刷処理に関する保存プログラムを展開した後、戻り先アドレスを引数として保存プログラムの開始アドレスにジャンプして、展開した保存プログラムで印刷データを印刷する（ステップＳ４０７）。そして、印刷を終了した後に、プログラム開始時に指定されていた元のプログラムの戻り先アドレスにジャンプしてから、展開したプログラムを破棄し、展開エリアを開放する（ステップＳ４０８）。一方、展開エリアの確保に成功しなければ、ルーチンはステップＳ４０９へ進む。
【００６５】
ステップＳ４０９で、展開制御部１０１９は、現在、ＲＡＭ１００４に領域を確保して処理を実行し終えた印刷処理のプログラムを探し、なければ、そのプログラムの処理終了を待って、プログラムを破棄し、プログラムが展開されていた領域を開放する。そして、その後に対象とする印刷データの印刷処理プログラム用の展開エリアを確保して選択されたプログラムデータを展開する（ステップＳ４０９）。そして、確保した領域に展開した保存プログラムを実行させ、印刷データの印刷処理を行う（ステップＳ４１０）。
【００６６】
その後、展開制御部１０１９は、プログラム記憶部であるフラッシュＲＯＭ１００３に格納されている最新バージョンのプログラム（現バージョン）を選択する（ステップＳ４１１）。そして、展開制御部１０１９は、印刷データを印刷するために展開した前記のプログラムを破棄し、プログラム展開エリアを開放する。そして、その後に選択したフラッシュＲＯＭ１００３にあるプログラム用の展開エリアをＲＡＭ１００４に確保し、選択されたプログラムデータを展開する（ステップＳ４１２）。
【００６７】
図８は、図７のステップＳ４０９およびＳ４１２に示すプログラムの入れ替え手順の詳細を示すフローチャートである。
【００６８】
図８（ａ）は、図７のステップＳ４０９の詳細を示す。まず、展開制御部１０１９は、ＲＡＭ（１００４）に確保されたプログラムのうち、処理を終了したものを探してそのプログラムエリアを破棄する（ステップＳ５０１）。ただし、このプログラムは後で再び処理を実行する可能性があるので、復元するものとする。このようなプログラムは、例えば、この発明の画像形成装置を制御するプログラムが複数のモジュールから構成されている場合、印刷データを印刷処理するモジュールのプログラムの現バージョンに相当する。即ち、印刷指示の対象となった印刷データを保存された以前のバージョンで処理する場合、現バージョンのモジュールを破棄してもかまわない。現バージョンが他の印刷データを印刷処理している場合は、現バージョンによる印刷処理の終了を待って破棄する。次に、展開制御部１０１９は、前記の破棄によって開き領域の増加したＲＡＭ１００４に、保存されているプログラムデータを展開するための展開エリアを確保する（ステップＳ５０２）。そして、確保したエリアに選択された保存プログラムデータを展開し（ステップＳ５０３）、ＲＡＭ１００４に展開したプログラム処理に処理の実行を移す（ステップＳ５０４）。
【００６９】
図８（ｂ）は、図７のステップＳ４１２の詳細を示す。まず、展開制御部１０１９は、印刷処理を終了した後に展開するプログラムを選択する（ステップＳ６０１）。選択されるプログラムは、例えば、印刷データを印刷処理する現バージョンのモジュールであってもよい。印刷処理の終了後、印刷処理プログラムを破棄してその展開エリアを開放する（ステップＳ６０２）。次に、展開制御部１０１９は、前記の破棄によって開き領域の増加したＲＡＭ１００４に、前述のステップＳ６０１で選択したプログラムデータを展開するための展開エリアを確保する（ステップＳ６０３）。そして、確保したエリアに選択されたプログラムデータを展開し（ステップＳ６０４）、ＲＡＭ１００４に展開したプログラム処理に処理の実行を移す（ステップＳ６０５）。
【図面の簡単な説明】
【００７０】
【図１】本発明の画像形成装置の機能的構成の一例を示すブロック図である。（実施の形態１）
【図２】本発明の画像形成装置のハードウェア構成の一例を示すブロック図である。（実施の形態１）
【図３】本発明に係る画像形成装置にいてプログラムを新バージョンに更新する際の処理手順の一例を示すフローチャートである。（実施の形態２）
【図４】新バージョンのプログラムで印刷データが正しく印刷できるかどうかを判定する処理手順の一例を示すフローチャートである。（実施の形態２）
【図５】印刷データを正しく印刷できるかどうかを判定する処理の手順の異なる一例を示すフローチャートである。（実施の形態３）
【図６】画像形成装置内に保持されている印刷データを削除するときの処理手順を示すフローチャートである。（実施の形態４）
【図７】印刷データ蓄積部に蓄積された印刷データを印刷する際の処理手順を示すフローチャートである。（実施の形態５）
【図８】図７のステップＳ４０９、Ｓ４１２に示すプログラムの入れ替え手順の詳細を示すフローチャートである。（実施の形態５）
【図９】この発明の画像形成装置において、各印刷データの処理に用いられる機能を印刷データに付加して蓄積する場合の付加情報の一例を示す説明図である。
【図１０】この発明の画像形成装置において、そのバージョンのプログラムデータにサポート機能を示す情報を付加する場合の付加情報の一態様を示す説明図である。
【図１１】この発明の画像形成装置において、複数の印刷データについて、各印刷データの保持印刷データ必要機能テーブルをＩＤと共に保持する保持印刷データ管理テーブルの一例を示す説明図である。
【図１２】複数の印刷データについて、各印刷データを作成したプリンタドライバのバージョン情報をＩＤと共に保持する保持印刷データ管理テーブルの一例を示す説明図である。
【図１３】本発明の画像形成装置の機械的構成の一例を示す説明図である。（実施の形態１）
【符号の説明】
【００７１】
１    露光ユニット
２ａ、２ｂ、２ｃ、２ｄ    現像器
３ａ、３ｂ、３ｃ、３ｄ    感光体ドラム
４ａ、４ｂ、４ｃ、４ｄ    クリーナユニット
５ａ、５ｂ、５ｃ、５ｄ    帯電器
６ａ、６ｂ、６ｃ、６ｄ    中間転写ローラ
７    中間転写ベルト
８    中間転写ベルトユニット
９    中間転写ベルトクリーニングユニット
１０    給紙トレイ
１１    転写ローラ、転写部
１２    定着ユニット、定着部
１４    レジストローラ
１５    排紙トレイ
１６−１、１６−２    ピックアップローラ
２５−１〜２５−８    搬送ローラ
３１    ヒートローラ
３２    加圧ローラ
７１    中間転写ベルト駆動ローラ
７２    中間転写ベルト従動ローラ
Ｓ    用紙搬送路
１００１    画像形成装置
１００２    ＣＰＵ
１００３    フラッシュＲＯＭ
１００４    ＲＡＭ
１００５    ホストＩ／Ｆ
１００６    ＵＩ、ユーザインタフェイス
１００７    ハードディスク
１００８    エンジンＩ／Ｆ
１０１０    プログラム記憶部
１０１１、１０１８    印刷処理プログラム
１０１２    プログラム更新部
１０１３    印刷データ蓄積部
１０１４    印刷データ
１０１５    バージョン整合処理部
１０１６    印刷処理部
１０１７    一時記憶部
１０１９    展開制御部
２０００〜２００２、５０００〜５００７、５０１０    保持印刷データ管理テーブル項目
３００１〜３００７    保持印刷データ必要機能テーブル項目
４００１〜４００７    プログラムサポート機能テーブル項目
【図１】
2006107251.tif 000003
【図２】
2006107251.tif 000004
【図３】
2006107251.tif 000005
【図４】
2006107251.tif 000006
【図５】
2006107251.tif 000007
【図６】
2006107251.tif 000008
【図７】
2006107251.tif 000009
【図８】
2006107251.tif 000010
【図９】
2006107251.tif 000011
【図１０】
2006107251.tif 000012
【図１１】
2006107251.tif 000013
【図１２】
2006107251.tif 000014
【図１３】
2006107251.tif 000015