(57)【要約】【課題】ある印刷装置において解析不可能な印刷コマンドを含むジョブが送られてきたときにも他のプリンタに出力することなく、描画抜けの無い印刷を可能にすることが可能な印刷システムを提供することである。【解決手段】ネットワークシステムにおいて第１の印刷装置は入力データを解析する第１の解析手段と、上記解析手段によって解析中に解析不可能な印刷コマンドを発見したときに受信した印刷ジョブをネットワーク上の第２の印刷装置に転送する転送手段と、第２の印刷装置によって解析された印刷データを第２の印刷装置から受け取り印刷処理を行う手段とを有し、第２の印刷装置は第１の印刷装置から転送されたデータを受け取り解析する第２の解析手段と、前記第２の解析手段によって解析されたデータを第１の印刷装置に返送する返送手段とを有する。【選択図】        なし【特許請求の範囲】
【請求項１】
互いにネットワーク接続されたパーソナルコンピュータやワークステーション等のホストコンピュータと、それらから送られてきた印刷開始から印刷終了までの一連のデータ群を受信し、そのデータを解析して印刷用紙に印刷する印字情報を作成する印刷装置とで構成された印刷システムうち２つの印刷装置について、
第１の印刷装置はホストコンピュータから送られてきた印刷ジョブをその全てのページの印刷が終了するまで記憶する記憶手段と、
印刷ジョブ中に解析不可能な印刷コマンドが発見されたときに前記記憶手段に記憶した印刷ジョブをネットワークを介して第２の印刷装置に転送する転送手段と備え、
第２の印刷装置は前記転送手段によって転送された印刷ジョブを受信し解析する転送データ解析手段と、
前記転送データ解析手段によって解析されたデータを第１の印刷装置に返送する返送手段とを備え、
さらに第１の印刷装置は前記返送手段により返送されたデータを解析し印刷処理を行う返送データ処理手段と、
を有することを特徴とする印刷システム。
【請求項２】
前記転送データ解析手段は転送された印刷ジョブを解析し、ビットマップデータもしくは前記第１の印刷装置に解析可能な中間データを作成することを特徴とした請求請１記載の印刷システム。
【請求項３】
前記転送データは前記第１の印刷装置が解析不可能な印刷コマンドが発見されるまでに印刷が終了したページを表す情報を含み、前記転送データ解析手段がすでに出力の終了したページを解析しないことを特徴とした請求項１、請求項２記載の印刷システム。
【請求項４】
互いにネットワーク接続されたパーソナルコンピュータやワークステーション等のホストコンピュータと、それらから送られてきた印刷開始から印刷終了までの一連のデータ群を受信し、そのデータを解析して印刷用紙に印刷する印字情報を作成する印刷装置とで構成された印刷システムにおいて、
ネットワークに接続された印刷装置群のそれぞれについて解析可能なプリンタ言語やその制御プログラムのバージョンなどを関連付けたテーブルを有することを特徴とした請求項１、請求項２記載の印刷システム。
【請求項５】
前記ネットワーク上に存在する第１の印刷装置が解析不可能な印刷コマンドを発見したとき、前記テーブルを参照し印刷ジョブを転送する転送先となる同じくネットワーク上に存在する第２の印刷装置を選択することを特徴とした請求項４記載の印刷システム。
【請求項６】
印刷ジョブのプリンタ言語を解析する言語解析手段を備え、
前記第１の印刷装置が解析不可能な印刷コマンドを発見したとき前記言語解析手段によって印刷ジョブのプリンタ言語を解析し、前記テーブルを利用してそのプリンタ言語を解析可能な第２の印刷装置を選択することを特徴とした請求項４、請求項５記載の印刷システム。
【請求項７】
前記ジョブのプリンタ言語を解析可能な印刷装置が複数存在する場合には、前記テーブルを参照し各印刷装置の制御プログラムのバージョンを調べて、前記第１の印刷装置よりも新しい制御プログラムを有する印刷装置を第２の印刷装置として選択することを特徴とした請求項６記載の印刷システム。
【請求項８】
選択された印刷装置が複数存在する場合には、各印刷装置の状態を調べて、印刷可能な状態にある印刷装置の一つを第２の印刷装置として選択することを特徴とした請求項６記載の印刷システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、たとえばローカルエリアネットワーク（ＬＡＮ）などのネットワークに接続して使用するプリンタなどの印刷装置とその制御方法および印刷システムに関する。
【０００２】
【従来の技術】
ホストコンピュータとそれにつながれた印刷装置からなる印刷システムにおいての印刷処理は通常ホストコンピュータのドライバプログラムによって生成された印刷データを印刷装置が受信し、印刷装置に内蔵された印刷制御プログラムに基づいて処理を行うことによってなされる。この印刷データは印刷装置メーカーそれぞれ特有の印刷コマンドからなる印刷言語体系を有する。たとえばレーザビームプリンタではこれら全体をページ記述言語（ＰＤＬ）と呼び、各印刷装置メーカーがその製品シリーズのために言語体系を築き上げている。
【０００３】
しかしこれらの言語体系間で互換性がないのは当然のこと、同一言語体系でも機種によっては解析不可能なコマンドが存在したり、印刷結果に描画不正が現れる場合がある。この原因として例えば、日々開発が進む言語体系および言語処理技術により製品が発売された後に新しい印刷コマンドが追加されその製品では解析が不可能となってしまう場合や、制御プログラムにバグが発見され、同じコマンドでも使われるパラメータなどを変更・修正した場合などがある。
【０００４】
そのため印刷装置に解析不可能な印刷コマンドを含む印刷ジョブが送られる場合があり、従来ではこれらを読み飛ばす処理が行われる（例えば、特許文献１）。これらのなかには印刷装置のハード的な制限（例えば解像度、対応する用紙サイズなど）により物理的に印字不可能なものも有るが、先ほど述べたような製品の作られた時期が古いなどの理由で印刷できないこともある。例えばある機種でイメージデータ圧縮使っていた圧縮形式が解析不可能であってもそのデータを伸長してしまってビットマップデータのイメージにした状態では解析が可能であるといった場合がある。
【０００５】
またこういった状況は単純にユーザーが印刷装置に適合したプリンタドライバを使用していない場合も同様で、頻繁に発生する状況と考えられる。
【０００６】
【特許文献１】
特開平０６−３４０１５２号公報
【０００７】
【発明が解決しようとする課題】
そこでこのような状況に応じて、ネットワーク上に存在する他の印刷装置に印刷ジョブを転送し、その印刷装置が転送されたデータを処理し印刷するといった発明が存在する。しかしこの発明ではユーザーが最初に印刷データを送信した印刷装置とは別の装置に印刷結果が出力されることになり、ユーザーに指定した印刷装置以外の印刷装置に出力したことを通知しなくてはならない。またユーザーはその通知を受けた後に指定した印刷装置とは別の印刷装置に印刷結果を取りに行かなくてはいけない。別の印刷装置がユーザーが指定した印刷装置と大きく離れた場所にある印刷装置である場合にはユーザーは大変な労力を要求されることになる。
【０００８】
本発明は、上記問題点を鑑みてなされたもので、
その発明の第１の目的は、
第１の印刷装置において解析不可能な印刷コマンドを含むジョブが送られてきたときにも他の印刷装置（第２の印刷装置）に転送しその第２の印刷装置で出力するのではなく、第１の印刷装置で描画抜けの無い印刷結果を得ることが可能な印刷システムを提供することである。
【０００９】
また本発明の第２の目的は、
印刷装置が単独では解析不可能なコマンドを含むジョブをも正常に印刷できるようにすることでユーザーが別の印刷装置に再度印刷命令を発行する手間を省くことが可能な印刷システムを提供することである。
【００１０】
また本発明の第３の目的は、
印刷装置が単独では解析不可能なコマンドを含むジョブをも正常に印刷できるようにすることでユーザーが印刷装置に応じてドライバプログラムを選択する手間を省くことが可能な印刷システムを提供することである。
【００１１】
【課題を解決するための手段】
上記目的を達成する本出力装置の１つは以下に示す構成を備える。
【００１２】
互いにネットワーク接続されたパーソナルコンピュータやワークステーション等のホストコンピュータと、それらから送られてきた印刷開始から印刷終了までの一連のデータ群を受信し、そのデータを解析して印刷用紙に印刷する印字情報を作成する印刷装置とで構成された印刷システムにおいて、
第１の印刷装置はホストコンピュータから送られてきた印刷ジョブをその全てのページの印刷が終了するまで記憶する記憶手段と、
印刷ジョブ中に解析不可能な印刷コマンドが発見されたときに前記記憶手段に記憶した印刷ジョブをネットワークを介して第２の印刷装置に転送する転送手段と備え、
第２の印刷装置は前記転送手段によって転送された印刷ジョブを受信し解析する転送データ解析手段と、
前記転送データ解析手段によって解析されたデータを第１の印刷装置に返送する返送手段とを備え、
さらに第１の印刷装置は前記返送手段により返送されたデータを解析し印刷処理を行う返送データ処理手段と、を備える。
【００１３】
かかる構成において、
第１の印刷装置は受信した印刷ジョブの全てを前記記憶手段に記憶しておき、前記記憶手段に記憶した印刷ジョブを解析処理中に解析不可能な印刷コマンドを発見したときには、前記転送手段によってネットワーク上の第２の印刷装置に印刷ジョブを転送する。第２の印刷装置は転送された印刷ジョブを前記解析手段によって第１の印刷装置で出力できるデータまで解析し、解析したデータを前記返送手段によって第１の印刷装置に返送する。その後第１の印刷装置は前記返送手段により返送されたデータを解析し印刷処理を行うことによって、第１の印刷装置において解析不可能な印刷コマンドを含むジョブが送られてきたときにも、第１の印刷装置で描画抜けの無い印刷結果を得ることが可能となる。
【００１４】
【発明の実施の形態】
（第１実施例）
本発明の印刷システムの実施例１を図１から図１２を使って説明する。
【００１５】
図１は実施例１における第１の印刷装置の構成を説明するブロック図、図２は実施例１における第２の印刷装置の構成を説明するブロック図、図３は本実施例におけるネットワーク構成を説明するブロック図、図４は実施例１におけるネットワーク上を流れるデータの構成を説明する図、図５から図１２は実施例１における印刷装置の処理動作を表すフローチャートである。
【００１６】
＜装置構成の説明＞
図１において１０１は本実施例における第１の印刷装置本体、１０２はローカルエリアネットワーク（ＬＡＮ）の通信媒体であるネットワークケーブル、１０３は印刷装置１０１をＬＡＮに接続するためのネットワークコネクタ、１０４はＬＡＮとのデータ送受信制御を行うネットワークデータ入出力部、１０５はネットワークデータ入出力部１０４が受信した入力データを蓄積する受信バッファ、１０６はＲＯＭ１０７の内容にしたがってプリンタ全体の制御を行う中央制御部（ＣＰＵ）、１０７はＣＰＵ１０６制御の制御プログラムを記憶しているＲＯＭである。ＲＯＭ１０７には、後述する制御手順を実現するためのプログラムが格納されている。１０８は受信バッファの入力データを解析して印刷用紙に印刷するための中間データを作成する入力データ解析プログラム、１１４はこの印刷装置１０１が解析不可能な印刷コマンドを含む印刷データを受信したときに前記ジョブ記憶部１１４に記憶した印刷ジョブを他の印刷装置に転送するための制御を行うための転送プログラム。１０９は入力データ解析プログラム１０８で解析された複数ページ分の中間データを蓄積する中間バッファ、１１０は実際に印刷用紙に描画する画像データを１ページ分蓄積するページバッファである。中間データはページバッファ１１０に蓄積されるようなインクあるいはトナーの各ドットに展開された画像データとは異なり、図形や文字などをドットに展開する前の座標位置や展開方法を記憶してあるデータであり、１ページ分のメモリ使用量は画像データと比べるときわめて少量ですむ。１１１は印刷用紙を蓄積している用紙カセット、１１２はページバッファ１１０に１ページ分の画像データが形成されると用紙カセット１１１から印刷印刷用紙を取り込み、画像データを転写する印刷部、１１３はある印刷ジョブの全てのページの印刷が終わるまでその印刷ジョブを記憶しておくジョブ記憶部、１１５は転送プログラム１１４が印刷ジョブのデータ転送を行う際に送信データの蓄積を行う送信バッファである。
【００１７】
図２において２０１は本実施例における第２の印刷装置本体、２０４はＬＡＮとのデータ送受信制御を行うネットワークデータ入出力部、２０５はネットワークデータ入出力部２０４が受信した入力データを蓄積する受信バッファ、２０６はＲＯＭ２０７の内容にしたがってプリンタ全体の制御を行う中央制御部（ＣＰＵ）、２０７はＣＰＵ２０６制御の制御プログラムを記憶しているＲＯＭである。２２０は第１の印刷装置１０１から転送されたデータを解析する転送データ解析プログラム、２２１は前記転送データ解析プログラム２２０によって作成され、印刷装置１０１に返送する中間データなどを蓄積する返送データ記憶部、２２２は前記返送データ記憶部に蓄積されたデータを印刷装置１０１に返送する返送プログラム。２１３は転送された印刷ジョブの全てのページの印刷が終わるまでその印刷ジョブを記憶しておくジョブ記憶部、２１４は印刷装置１０１にデータを返送する際に使用する送信バッファである。なおその他の構成は図１に示したものと同様の構成であり、同じ符号を付した。
【００１８】
本実施例において、ネットワークには図３に示すように複数のパーソナルコンピュータと複数の印刷装置が接続されおり、それぞれのパーソナルコンピュータや印刷装置（これらを端末と称する）はネットワークアドレスを有する。ネットワーク上である端末からある端末にデータ群を送信するときは、図４（ａ）に示すように、送信先端末の宛先ネットワークアドレスと自端末の送信元ネットワークアドレスを付加し、このデータ群を送信する。ネットワーク上の各端末はネットワーク上を流れるデータ群を全て参照し、宛先ネットワークアドレスが自端末のネットワークアドレスであるデータ群だけ取り込む。
【００１９】
＜印刷システムの動作＞
以下図を使って、印刷システムの動作を説明する。
【００２０】
まず、データ入力処理について図５を参照して説明する。パーソナルコンピュータＰＣ−Ａからネットワークに図４（ｂ）に示すような印刷ジョブのデータ群を送信する（Ｓ５０１）。プリンタ名ＰＲＴ−Ａの印刷装置１０１ではネットワークデータ入力部１０４がネットワーク上を流れるデータ群を全て参照し、宛先ネットワークアドレスが自端末宛のものであればそのデータを受信し（Ｓ５０２）。受信したデータを受信バッファ１０５に蓄積する（Ｓ５０３）。ＣＰＵ１０６は受信バッファ１０５のジョブ開始命令からジョブ終了命令までのデータ群（印刷ジョブ）をジョブ記憶部１１３にコピーする（Ｓ５０４）。コピーの終わったデータは受信バッファ１０５から削除し（Ｓ５０５）、空き領域を作る。この印刷ジョブの全ての印刷が終わるまでこの印刷ジョブをジョブ記憶部１１３に保持しておき、全てのページの印刷が終わるとこの印刷ジョブをジョブ記憶部１１３から削除する。
【００２１】
次に、解析処理について図８を参照して入力データ解析プログラム１０８の手順を説明する。
【００２２】
ジョブ記憶部１１３に印刷ジョブのデータがコピーされると（Ｓ５１１）、ジョブ記憶部１１３に記憶されている印刷ジョブをコマンド単位で解析する（Ｓ５１２）。解析したコマンドがジョブ開始命令ならば（Ｓ５１３−ＹＥＳ）、ページ番号を１に初期化し（Ｓ５１４）、ジョブ名が含まれていればそれを記憶する。ジョブ開始命令はジョブ名を含むことも有れば含まないこともある。そのコマンドが解析可能であって（Ｓ５１８−ＹＥＳ）、新しいページの最初のデータならば（Ｓ５２０−ＹＥＳ）、中間バッファ１０９に新しいページをオープンし（Ｓ５２１）、すでにオープンしてあるページの続きのデータならば（Ｓ５２０−ＮＯ）、オープンしない。そして排紙命令を検出するまで（Ｓ５１５−ＹＥＳ）印刷用紙に描画するための中間データを作成し、その中間データを中間バッファ１０９に蓄積していく（Ｓ５２２）。排紙命令を検出した場合（Ｓ５１５−ＹＥＳ）は中間バッファ１０９の現在のページをクローズし（Ｓ５１６）、ページ番号を１インクリメントする（Ｓ５１７）。そしてまた次のコマンドを解析すると新しいページをオープンし中間データを作成していく。この解析処理はジョブ記憶部１１３に印刷ジョブの未処理データが存在する限り行われ（Ｓ５２３−ＹＥＳ）、未処理データがなくなると新しいデータが入力されるまで待つ（Ｓ５２３−ＮＯ）。中間バッファ１０９はメモリ容量がある限り複数ページ分の中間データを蓄積することができる。
【００２３】
次に、ビットマップデータ変換処理について図６を参照して説明する。
【００２４】
ページバッファ１１０には印刷用紙に描画するためのビットマップデータを１ページ分蓄積することができる。中間バッファ１０９に１ページ分以上の中間データがあり、ページバッファ１１０が空きの状態ならば（Ｓ５３１）、ＣＰＵ１０６は中間バッファ１０９の１ページ分の中間データをビットマップデータに変換しながらページバッファ１１０に蓄積していく（Ｓ５３２）。変換処理の終わった中間データは中間バッファ１０９から削除し（Ｓ５３３）。空き容量を作る。そしてページバッファ１１０に１ページ分のビットマップデータが蓄積されると（Ｓ５３４）、ビットマップデータ変換処理を終了する。
【００２５】
次に、印刷描画処理について図７を参照して説明する。
【００２６】
ＣＰＵ１０６はページバッファ１１０に１ページ分のビットマップデータが蓄積されると（Ｓ５４１）、そのビットマップデータを印刷部１１２に送る。印刷部１１２はビットマップデータが送られてくると、用紙カセット１１１から印刷用紙を取り込み、そのビットマップデータを印刷し、排紙する（Ｓ５４２）。１ページ分の印刷が終わると（Ｓ５４３−ＹＥＳ）、ページバッファ１１０のビットマップデータを削除し、空き状態にする（Ｓ５４４）。
【００２７】
ここまで説明したデータ入力処理、解析処理、ビットマップデータ変換処理、印刷描画処理はＣＰＵ１０６内で割り込み処理およびマルチタスク処理により同時に進行する。以上のような処理により通常の印刷処理が完了する。
一方、本実施例ではＳ５１８において解析不可能と判断されたコマンドが出現した場合の処理を特に説明するものであり、以下にその処理動作を説明する。
【００２８】
＜解析不可能コマンドが出現したときの処理＞
上記した印刷処理中に入力データ解析プログラム１０８が解析不可能な印刷コマンドを発見した場合（Ｓ５１８−ＮＯ）の処理について図９を参照して説明する。ここでは全６ページの印刷ジョブであり、この印刷ジョブの３ページ目まで印刷、排紙した後、４ページ目の解析処理を行っているときに解析不可能コマンドが出現したとする。
【００２９】
この印刷装置１０１（プリンタ名ＰＲＴ−Ａ）で解析不可能コマンドを発見したときには（Ｓ５５１）、あらかじめプリンタ名がＰＲＴ−Ｂの印刷装置２０１（ネットワークアドレス１５０．ＸＸ．ＸＸ．２２０）に印刷ジョブが転送されるように設定されている。ＣＰＵ１０６はまず中間バッファ１０９およびページバッファ１１０にいたる印刷ジョブの（作成中のものも含む）全てのページの中間データおよびビットマップデータを削除する（Ｓ５５２）。それから、ページ指定プログラム１１６によってジョブ記憶部１１３に記憶されている印刷ジョブに１〜３ページ目の印刷を行わない指定を行うための非印刷ページ指定命令（図４（Ｃ）の符号４０１）を付加する（Ｓ５５３）。非印刷コマンドは印刷しないページの開始ページと終了ページを指定する（この例では開始ページが１、終了ページが３）。
【００３０】
それからＣＰＵ１０６は転送プログラム１１５を実行して転送先の印刷装置のネットワークアドレスを宛先ネットワークアドレスに指定し、送信元ネットワークアドレスに自端末のネットワークアドレスを指定し、送信バッファ１１４に転送用のデータを蓄積する（Ｓ５５４）。転送されるデータの内容を図４（ｃ）に示す。送信バッファ１１５に蓄積されたデータはネットワーク入出力部１０４がネットワークを介して印刷装置２０１（プリンタ名ＰＲＴ−Ｂ）に転送する（Ｓ５５５）。ネットワーク入出力部１０４は転送の終わったデータは送信バッファ１１５から削除し、空き領域を作成する。この印刷ジョブの転送が完全に終わるとＣＰＵ１０６はジョブ記憶装置１１３からこの印刷ジョブのデータを削除する（Ｓ５５６）。
【００３１】
つぎに印刷装置２０１（プリンタ名ＰＲＴ−Ｂ）はネットワーク上を流れるデータ群を全て参照し、印刷装置２０１のＣＰＵ２０６は図５に示した要領で先程転送された印刷ジョブを受信し、ジョブ記憶部２１３に蓄積する。次にＣＰＵ２０６は転送データ解析プログラム２２０によって先ほどジョブ記憶部２１３に蓄積された転送ジョブを解析する。この処理動作を図１０を参照して説明する。
【００３２】
ジョブ記憶部２１３に印刷ジョブのデータがコピーされると（Ｓ１００１）、ジョブ記憶部２１３に記憶されている印刷ジョブをコマンド単位で解析する（Ｓ１００２）。解析したコマンドがジョブ開始命令ならば（Ｓ１００３−ＹＥＳ）、ページ番号を１に初期化し（Ｓ１００４）、ジョブ名が含まれていればそれを記憶する。ジョブ開始命令はジョブ名を含むことも有れば含まないこともある。
【００３３】
解析したコマンドが非印刷ページ指定命令であれば（Ｓ１００５−ＹＥＳ）その非印刷ページ（１〜３ページ）を記憶し（Ｓ１００６）、その非印刷ページの解析処理を行っているときは（Ｓ１００７−ＹＥＳ）、データを読み飛ばし（Ｓ１０１０）、排紙命令を検出するたび（Ｓ１００８）、ページ番号を１づつ増やし（Ｓ１００９）、印刷を行うページ（ここでは４ページ目以降）になるまで読み飛ばしを続ける。
【００３４】
ページ番号が通常の印刷をするページのデータであって（Ｓ１００５−ＮＯ、Ｓ１００７−ＮＯ）、新しいページの最初のデータならば（Ｓ１０２０−ＹＥＳ）、返送データ記憶部２２１に新しいページをオープンし（Ｓ１０２１）、すでにオープンしてあるページの続きのデータならば（Ｓ１０２０−ＮＯ）、オープンしない。そして排紙命令を検出するまで（Ｓ１０２２−ＹＥＳ）印刷用紙に描画するための中間データを作成し、その中間データを返送データ記憶部２２１に蓄積していく（Ｓ１０２５）。排紙命令を検出した場合（Ｓ１０２２−ＹＥＳ）は返送データ記憶部２２１の現在のページをクローズし（Ｓ１０２３）、ページ番号を１インクリメントする（Ｓ１０２４）。そしてまた次のコマンドを解析すると新しいページをオープンし中間データを作成していく。この解析処理はジョブ記憶部に印刷ジョブの未処理データが存在する限り行われ（Ｓ１０１１−ＹＥＳ）、未処理データがなくなると新しいデータが入力されるまで待つ（Ｓ１０１１−ＮＯ）。
【００３５】
このようにしてＣＰＵ２０６が転送された印刷ジョブを全て解析し終えると、返送データ記憶部２２１に蓄積した中間データ（４〜６ページ分）を印刷装置１０１に返送する。
【００３６】
ＣＰＵ２０１が印刷装置２０１（プリンタ名ＰＲＴ−Ｂ）から印刷装置１０１（プリンタ名ＰＲＴ−Ａ）にデータを返送する処理を図１１を参照しながら説明する。
【００３７】
まずＣＰＵ２０６は返送データ記憶部２０３に記憶されている中間データに、それが返送データであることを示す情報を付加する（Ｓ１０３１）。これは図４の４０２に示すようなもので、送られてきたデータは中間データであることなどの情報を有する。それからＣＰＵ２０６は返送プログラム２２２を実行して印刷装置１０１（プリンタ名ＰＲＴ−Ａ）のネットワークアドレスを宛先ネットワークアドレスに指定し、送信元ネットワークアドレスに自端末のネットワークアドレスを指定し、送信バッファ２１４に返送用のデータを蓄積する（Ｓ１０３２）。返送されるデータの内容を図４（ｄ）に示す。送信バッファに蓄積されたデータはネットワーク入出力部がネットワークを介して印刷装置１０１（プリンタ名ＰＲＴ−Ａ）に転送する（Ｓ１０３３）。ネットワーク入出力部２０４は転送の終わったデータは送信バッファ２１４から削除し、空き領域を作成する（Ｓ１０３４）。この印刷ジョブの転送が完全に終わるとＣＰＵ２０６は送信データ記憶部２０３からこの返送データを削除する（Ｓ１０３５）。
【００３８】
つぎに印刷装置１０１（プリンタ名ＰＲＴ−Ａ）はネットワーク上を流れるデータ群を全て参照し、ＣＰＵ１０６は図５に示した要領で先程返送された返送データを受信し、ジョブ記憶部１１３に蓄積する。次にＣＰＵ１０６は返送データ解析プログラム１１７によって先ほど蓄積された返送ジョブを解析する。この処理動作を図１２を参照して説明する。
【００３９】
まずＣＰＵ１０６はジョブ記憶部１１３に返送データが蓄積されると（Ｓ５６１）、ジョブ記憶部に１１３に蓄積された１ページ分の中間データを中間バッファ１０９にコピーし（Ｓ５６２）、コピーし終わった中間データはジョブ記憶部１１３から削除する（Ｓ５６３）。次にＣＰＵ１０６は中間バッファ１０９の１ページ分の中間データをビットマップデータに変換しながらページバッファ１１０に蓄積していく（Ｓ５６４）。変換処理の終わった中間データは中間バッファ１０９から削除し（Ｓ５６５）、空き容量を作る。そしてページバッファ１１０に１ページ分のビットマップデータを蓄積するまで（Ｓ５６６−ＹＥＳ）この処理を続ける。その後、ジョブ記憶部１１３にまだビットマップデータに変換していない未処理のの中間データがあれば（Ｓ５６７−ＹＥＳ）、次の１ページ分の中間データを同様に処理し、ジョブ記憶部１１３にデータがなくなるまで続ける（Ｓ５６７−ＮＯ）。
【００４０】
以上のような処理を経ることによって本実施例における第１の印刷装置が解析不可能なコマンドを発見したときには、解析の済んでいない印刷ジョブをネットワーク上にある第２の印刷装置（第１の印刷装置よりも新しい制御プログラムを有する）に転送し、第２の印刷装置はそれを第１の印刷装置が解析できる中間データにまで解析し、第１の印刷装置に中間データを返送することで、第１の印刷装置は描画抜けの無い印刷結果を出力することができる。
【００４１】
（第２実施例）
本発明の印刷システムの実施例２を図１３から図１６を使って説明する。
【００４２】
第１実施例では印刷ジョブを転送する第２の印刷装置はあらかじめ決められていたが、第２実施例ではネットワーク上にあるすべての印刷装置からもっとも適当な印刷装置を選択しデータを転送する例について説明する。
【００４３】
図１３は実施例２における第１の印刷装置の構成を説明するブロック図、図１４は本実施例におけるネットワーク構成を説明するブロック図、図１５は実施例２における印刷装置の処理動作を表すフローチャート、図１６は印刷装置の情報を記憶したテーブルの構成を説明する図である。
【００４４】
＜装置構成の説明＞
図１３において１３０１は本実施例における第１の印刷装置本体の装置構成を表すブロック図である、印刷装置１３０１は多言語の解析可能な印刷装置であるものとする。なお実施例１における第１の印刷装置１０１と同じ構成の部分は同じ符号を付した。１３２０はジョブ記憶部１１３に蓄積された印刷ジョブがどのプリンタ言語であるかを解析する言語解析プログラム、１３２１〜１３２３はそれぞれこの印刷装置１３０１で解析可能な言語Ａ，言語Ｂ，言語Ｃの印刷ジョブを解析し中間バッファ１０９に中間データを蓄積するプログラムである。
【００４５】
本実施例におけるネットワーク構成は図１４に示すように複数のパーソナルコンピュータと複数の印刷装置が接続されおり、またプリンタサ−バも接続されている。プリンタサーバはネットワーク上にある全てのプリンタの情報を統括して管理しており、各プリンタがどの言語体系に対応するかやその制御プログラムのバージョン情報などを対応付けたテーブルを記憶する。図１６にこのテーブルのデータ構成を示す。
【００４６】
このような装置構成において図４（ｂ）に示すような印刷データが送られてきた場合のデータ入力処理は第１実施例のＳ５０１〜Ｓ５０５と同じである。解析処理の流れについてはＳ５１１〜Ｓ５２３と同じである。ビットマップデータ変換処理の流れについてはＳ５３１〜Ｓ５３４と同じである。印刷描画処理の流れについてはＳ５４１〜Ｓ５４４と同じである。
【００４７】
またここまで説明したデータ入力処理、解析処理、ビットマップデータ変換処理、印刷描画処理はＣＰＵ１０６内で割り込み処理およびマルチタスク処理により同時に進行する。以上のような処理により通常の印刷処理が完了する。
【００４８】
一方、本実施例ではＳ５１８において解析不可能と判断されたコマンドが出現した場合の処理を特に説明するものであり、以下にその処理動作を説明する。
【００４９】
＜解析不可能コマンドが出現したときの処理＞
上記した印刷処理中に入力データ解析プログラム１０８が解析不可能な印刷コマンドを発見した場合（Ｓ５１８−ＮＯ）のＣＰＵ２０６およびプリントサーバの処理動作について図１５を参照して説明する。ここでは全６ページの言語Ｂの印刷ジョブであり、この印刷ジョブを３ページ目まで印刷、排紙した後、４ページ目の解析処理を行っているときに解析不可能コマンドが出現したとする。
【００５０】
この印刷装置１３０１（プリンタ名ＰＲＴ−Ａ）で解析不可能コマンドを発見したときには（Ｓ１５０１）、イベント通知プログラムがプリントサーバに対し解析不可能なコマンドが発見されたことを通知する（Ｓ１５０２）。このときにＣＰＵ１３０６は現在解析中の言語（ここでは言語Ｂ）および印刷装置１３０１の機種名、ネットワークアドレスなどの情報も同時に通知する。次にプリンタサーバはテーブルおよび通知された情報を参照して、ネットワーク上にある印刷装置のうちジョブ記憶部１１３に記憶された印刷ジョブを転送する第２の印刷装置に適当な印刷装置を選択する（Ｓ１５０３）。（この場合は言語Ｂが印刷可能なカラー印刷装置で印刷装置１３０１よりもバージョンが新しいものを選択する。図１６からはＰＲＴ−Ｂ，ＰＲＴ−Ｅが選択される。
【００５１】
このとき複数の印刷装置が選択されたなら（Ｓ１５０４−ＹＥＳ）選択された印刷装置の現在の状態を取得し（Ｓ１５０５）、印刷可能な状態である印刷装置を１つ選択する（Ｓ１５０６）（この場合プリンタＰＲＴ−Ｂ）。次に先ほど１つに選択された印刷装置のネットワークアドレス（この場合１５０．ＸＸ．ＸＸ．２２０）を第１の印刷装置１３０１に通知する（Ｓ１５０７）。
【００５２】
次にＣＰＵ１３０６は転送プログラム１１５によって
先ほど通知された第２の印刷装置のネットワークアドレス（ここでは１５０．ＸＸ．ＸＸ．２２０）に印刷ジョブが転送されるように設定する。ＣＰＵ１０６はまず中間バッファ１０９およびページバッファ１１０にいたる印刷ジョブの（作成中のものも含む）全てのページの中間データおよびビットマップデータを削除する（Ｓ５５２）。それから、ページ指定プログラム１１６によってジョブ記憶部１１３に記憶されている印刷ジョブに１〜３ページ目の印刷を行わない指定を行うための非印刷ページ指定命令（図４（Ｃ）の符号４０１）を付加する（Ｓ５５３）。非印刷コマンドは印刷しないページの開始ページと終了ページを指定する（この例では開始ページが１、終了ページが３）。
【００５３】
それからＣＰＵ１３０６は転送プログラム１１５を実行して転送先の印刷装置のネットワークアドレスを宛先ネットワークアドレスに指定し、送信元ネットワークアドレスに自端末のネットワークアドレスを指定し、送信バッファ１１４に転送用のデータを蓄積する（Ｓ５５４）。転送されるデータの内容を図４（ｃ）に示す。送信バッファ１１５に蓄積されたデータはネットワーク入出力部１０４がネットワークを介して印刷装置２０１（プリンタ名ＰＲＴ−Ｂ）に転送する（Ｓ５５５）。ネットワーク入出力部１０４は転送の終わったデータは送信バッファ１１５から削除し、空き領域を作成する。この印刷ジョブの転送が完全に終わるとＣＰＵ１０６はジョブ記憶装置１１３からこの印刷ジョブのデータを削除する（Ｓ５５６）。
【００５４】
その後印刷装置２０１（プリンタ名ＰＲＴ−Ｂ）のＣＰＵ２０６が実行する転送データ解析プログラムおよび返送プログラムの流れは実施例１のＳ１００１〜Ｓ１０２５、Ｓ１０３１〜Ｓ１０３５と同様である。
【００５５】
また印刷装置２０１のＣＰＵ２０６が返送プログラムを終了した後、印刷装置１３０１が実行する返送データ処理プログラムの流れはＳ５６１〜Ｓ５６７と同様である。
【００５６】
以上のような処理を経ることによって本実施例における第１の印刷装置が解析不可能なコマンドを発見したときには、ネットワーク上にある印刷装置のうちからジョブを転送する最適な第２の印刷装置を選択し、解析の済んでいない印刷ジョブを第２の印刷装置に転送し、第２の印刷装置はそれを第１の印刷装置が解析できる中間データにまで解析し、第１の印刷装置に中間データを返送することで、第１の印刷装置は描画抜けの無い印刷結果を出力することができる。
【００５７】
（他の実施例）
上記の実施例では、入力データ解析手段、転送手段、返送手段、はプリンタ内に構成されており、その処理はプリンタ内のＣＰＵによって行っていたが、これらの処理はホストコンピュータやネットワークで接続された他のコンピュータ等のＣＰＵを用いるものであっても良い。
【００５８】
また、上記実施例では第２の印刷装置により中間データを作成し第１の印刷装置に返送していたがビットマップデータを作成し返送してよい。
【００５９】
【発明の効果】
以上述べたように本発明によれば、第１の印刷装置において解析不可能な印刷コマンドを含むジョブが送られてきたときにも他の印刷装置（第２の印刷装置）に転送しその第２の印刷装置で出力するのではなく、第１の印刷装置で描画抜けの無い印刷結果を得ることが可能となる。そのためユーザーが別の印刷装置に再度印刷命令を発行する手間を省くことが可能となり、またユーザーが印刷装置に応じてドライバプログラムを選択する手間を省くことも可能となる。
【図面の簡単な説明】
【図１】本発明の実施例１を示す第１のプリンタ制御システムの構成を説明するブロック図である。
【図２】本発明の実施例１を示す第２のプリンタ制御システムの構成を説明するブロック図である。
【図３】本発明の実施例１におけるネットワーク構成を説明するブロック図である。
【図４】本発明の実施例１におけるネットワーク上を流れるデータの構成を説明する図である。
【図５】実施例１の第１の印刷装置の印刷制御処理動作を表すフローチャート。
【図６】実施例１の第１の印刷装置の印刷制御処理動作を表すフローチャート。
【図７】実施例１の第１の印刷装置の印刷制御処理動作を表すフローチャート。
【図８】実施例１の第１の印刷装置の印刷制御処理動作を表すフローチャート。
【図９】実施例１の第１の印刷装置の印刷制御処理動作を表すフローチャート。
【図１０】実施例１の第２の印刷装置の印刷制御処理動作を表すフローチャート。
【図１１】実施例１の第２の印刷装置の印刷制御処理動作を表すフローチャート。
【図１２】実施例１の第１の印刷装置の印刷制御処理動作を表すフローチャート。
【図１３】本発明の実施例２を示す第１のプリンタ制御システムの構成を説明するブロック図である。
【図１４】本発明の実施例２におけるネットワーク構成を説明するブロック図である。
【図１５】実施例２の第１の印刷装置の印刷制御処理動作を表すフローチャート。
【図１６】実施例２のプリントサーバが保持するネットワーク印刷装置情報を記録したテーブル。
【符号の説明】
１０１  第１の印刷装
１０２  ネットワークケーブル
１０３  ネットワークコネクタ
１０４  ネットワーク入力部
１０５  受信バッファ
１０６  ＣＰＵ
１０７  ＲＯＭ
１０８  入力データ解析プログラム
１０９  中間バッファ
１１０  ページバッファ
１１１  用紙カセット
１１２  印刷部
１１３  ジョブ記憶部
１１４  送信バッファ
１１５  転送プログラム
１１６  ページ指定プログラム
１１７  返送データ処理プログラム
２０１  第２の印刷装置
２２０  転送データ解析プログラム
２２１  返送データ記憶部
２２２  返送プログラム
【図１】
2004358858.tif 000002
【図２】
2004358858.tif 000003
【図３】
2004358858.tif 000004
【図４】
2004358858.tif 000005
【図５】
2004358858.tif 000006
【図６】
2004358858.tif 000007
【図７】
2004358858.tif 000008
【図８】
2004358858.tif 000009
【図９】
2004358858.tif 000010
【図１０】
2004358858.tif 000011
【図１１】
2004358858.tif 000012
【図１２】
2004358858.tif 000013
【図１３】
2004358858.tif 000014
【図１４】
2004358858.tif 000015
【図１５】
2004358858.tif 000016
【図１６】
2004358858.tif 000017