説明

画像形成装置

【課題】 上位装置がPDF及びEPS形式のファイルをPJL言語でラッピングするという無駄な処理を無くするとともに、上位装置から送信されてきたPDF及びEPS形式のファイルの印刷開始時間を短縮するようにする。
【解決手段】 受信制御部110は、終端コードとなり得るコード列候補を検出すると、この終端コード列候補と、終端コード列比較テーブル105に記憶されている終端コード列とを比較し、コード列候補と一致する終端コード列が終端コード列比較テーブル105に登録されている場合に、先に検出した終端コード列を終端コード列と決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、上位装置から受信した印刷データを用いて印刷媒体に印刷を行う画像形成装置に関する。
【背景技術】
【0002】
従来の画像形成装置は、印刷ジョブの受信を開始し始めると、受信したデータ中に終端コードが現れるか、又は、データの受信が予め決められた時間以上途切れた段階で、受信したデータ列を1つの印刷ジョブとして取り扱っている(例えば、特許文献1参照)。
【0003】
前述の終端コードには、PJL(Printer Job Language)言語のUEL(Universal Exit Language)コードや、任意のPDL(Page Description Language)言語における終端コード(例えば、PostScript言語の場合にはCTRL−Dコード)等が挙げられる。
【0004】
ところで、近年、画像形成装置は、PDF(Portable Document Format)ファイルのダイレクト印刷機能や、DTP(DeskTop Publishing)分野で一般的な画像フォーマット形式であるEPS(Encapsulated Post Script)ファイルのダイレクト印刷機能を使用することが一般化するようになってきた。
【特許文献1】特開2004−272765号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述したように従来の画像形成装置では、上位装置からダイレクト印刷機能でPDFやEPSのファイルを受信すると、PDFやEPSのファイルに認識可能な終端コードがないので、印刷ジョブの終端を見つけることができず、PDFファイルやEPSファイルを受信し終えた後、データ受信が予め決められた時間以上途切れたことを認識した時点で印刷ジョブの終端を見つけたと判断していたため、印刷を開始するのに時間を要するという問題点があった。
【0006】
そこで、本発明は上述した問題点に鑑み、上位装置からダイレクト印刷機能でPDFやEPSのファイルを受信しても、このファイルの印刷開始時間を短縮することが可能な画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために第一の発明では、印刷媒体に印刷するために必要となるデータを上位装置から受信する画像形成装置において、上記上位装置から受信したデータから終端コード列を検出するための検出用終端コード列を記憶する検出用終端コード列記憶部と、上記上位装置から受信したデータから、上記終端コード列の候補となり得る終端コード列候補を検出するコード列候補検出部と、上記コード列候補検出部により検出された上記終端コード列候補と、上記検出用終端コード列記憶部に記憶されている上記検出用終端コード列とを比較し、該終端コード列候補と一致する上記検出用終端コード列が該検出用終端コード列記憶部に登録されているか否かを判定する登録判定部と、上記登録判定部により、上記終端コード列候補と一致する上記検出用終端コード列が上記検出用終端コード列記憶部に登録されていると判定された場合には、該終端コード列候補を前記終端コード列であると決定する終端コード列決定部とを備える。
【0008】
また、第二の発明では、印刷媒体に印刷するために必要となるデータを上位装置から受信する画像形成装置において、複数のコードからなるデータを受信する受信部と、上記データを解析する解析部と、上記解析部の解析結果から終端コードとみなせるコード列を検出する終端コード検出部と、入力部により入力された終端コード列を記憶する終端コード列記憶部と、上記終端コード検出部の検出結果と上記終端コード列記憶部から読み出した終端コード列を比較する比較部と、上記比較部の比較結果により上記データが終端コードを有すると判断する判断部とを有する。
【0009】
また、第三の発明では、印刷媒体に印刷するために必要となるデータを上位装置から受信する画像形成装置において、複数のコードからなるデータを受信する受信部と、上記データの受信タイムアウトの発生回数をカウントするカウント部と、上記データを解析する解析部と、上記解析部の解析結果から終端コードとみなせるコード列を検出する終端コード検出部と、上記終端コード検出部の検出した上記コード列を記憶する履歴記憶部と、上記終端コード検出部の検出結果と上記履歴記憶部に記憶されている上記コード列を比較する比較部と、上記カウント部が所定カウント数以上カウントすると、上記比較部の比較結果により、上記データが終端コードを有すると判断する判断部とを有する。
【発明の効果】
【0010】
以上、本発明によれば、上位装置から受信したデータのコード列から、終端コード列候補と一致する検出用終端コード列が検出用終端コード列記憶部に登録されていると登録判定部により判定された場合には、終端コード列決定部がこの終端コード列候補を終端コード列であると決定するため、受信タイムアウトを待つことなく印刷開始できるようになるため、上位装置からダイレクト印刷機能でPDFやEPSのファイルを受信しても、このファイルの印刷開始時間を短縮することができる。
【発明を実施するための最良の形態】
【0011】
次に、本発明を実施するための最良の形態を説明する。
【実施例1】
【0012】
図1は、本発明に係る実施例1の画像形成装置の構成を示すブロック図である。図1に示すように、実施例1の画像形成装置10は、上位装置としてのPCから受信したPJL言語若しくはPDL言語で記述された印刷ジョブ、又は、図2(a)に示すフォーマット形式のPDFファイル、若しく、図2(b)に示すフォーマット形式のEPSファイルを用いて印刷媒体に印刷を行う装置である。
【0013】
ここで、PDFファイル及びEPSファイルを説明する。PDFファイルは、図2(a)に示すように、ファイル名、ファイルの作成日時、宛先情報等からなるヘッダデータが記述されたヘッダ(Header)領域と、印刷データが記述されたBody領域と、印刷データに含まれる個々のオブジェクト情報にアクセスするための目次情報が記述されたCross−reference table領域と、最初のcross−reference tableの格納された位置情報(ファイル先端からのオフセット値)が記述されたTrailer領域から構成されており、Trailer領域の最後には、ファイル終端を示す一行「%%EOF」が含まれている。なお、図2(a)中の終端コード列「%%EOF」は、改行文字<CR><LF>が省略されており、実際には、「<CR><LF>%%EOF<CR><LF>」である。
【0014】
EPSファイルは、図2(b)に示すように、ファイルの内容をヘッダデータ(図2(b)中の「%!PS−Adobe−3.0 EPSF−3.0〜%%EndCommentまでの情報」と、印刷データ(図2(b)中の「PostScript Code for illustrationの箇所」と、ファイルの終端を示す「%%EOF」で示された終端コード列とを有している。なお、図2(b)中の終端コード列「%%EOF」は、改行文字<CR><LF>が省略されており、実際には、「<CR><LF>%%EOF<CR><LF>」である。以下、PDFファイル及びEPSファイルを単にファイルという。
【0015】
この画像形成装置10は、受信バッファ101と、受信状況記憶部102と、内部処理情報記憶部103と、モード指定情報記憶部104と、終端コード列比較テーブル105と、ポインタ記憶部106と、カウント数記憶部107と、受信タイムアウト検出カウンタ108と、オペレーションパネル部109と、受信制御部110と、デコード処理部111と、編集/展開処理部112と、印刷処理部113とを備える。
【0016】
受信制御部110、デコード処理部111、編集/展開処理部112、及び、印刷処理部113は、図示しないCPUが図示しないROMに記憶されている制御プログラムを実行することにより生成され、後述する機能を有する。
【0017】
受信バッファ101は、RAM(図示せず)に形成され、PCから送信されてきた印刷ジョブに記述された印刷データ、制御コード、及び終端コード、PDFファイルに記述されたヘッダデータ、印刷データ、制御コード、及び終端コード列、並びに、EPSファイルに記述されたヘッダデータ、印刷データ、及び終端コード列を記憶する。以下、上述した印刷データ、制御コード、及び、ヘッダデータを単にデータという。なお、構成及び動作において、必要が有れば、データを特定して説明する。
【0018】
受信状況記憶部102は、RAMに形成され、PCからのデータの受信状況を示す情報(以下、受信状況情報という)を記憶する。受信状況情報には、データの受信待ちであることを示す「データ受信待ち中」、及び、データを受信中であることを示す「データ受信中」がある。
【0019】
内部処理情報記憶部103は、RAMに形成され、内部処理状態を示す内部処理情報を記憶している。この内部処理情報には、デコード処理部111がデータを解析中であることを示す「モード解析中」、及び、印刷ジョブに連続して記述されている印刷データを受信していることを示す「連続受信中」がある。
【0020】
モード指定情報記憶部104は、RAMに形成され、上位装置から受信したデータを、通常モードで処理するか、又は、終端コード列検出モードで処理するかを指定するモード指定情報を記憶する。
【0021】
通常モードとは、次のデータを受信するまでに予め決められた時間が経過したときに、予め決められた時間内にデータを受信しなかった状態にあることを示すモードである。終端コード列検出モードとは、印刷ジョブの終端に記述されているの終端コード、又は、ファイルの終端コード列を検出させる状態にあることを示すモードである。
【0022】
終端コード列比較テーブル105は、フラッシュメモリ(図示せず)に形成され、図3に示すように、第1終端コード列、第2終端コード列、及び第3終端コード列を記憶する。第1終端コード列は、PJL言語に記述された終端コード(UELコード)の終端コード列である。第2終端コード列は、PDL言語に記述された印刷ジョブの終端コード(CTRL−Dコード)の終端コード列である。第3終端コード列は、PDF及びEPSファイルの終端コード列である。PDFファイル及びEPSファイルの第3終端コード列には、「<CR><LF>%%EOF<CR><LF>」という終端コード列を有している。
【0023】
PDFファイル及びEPSファイルの第3終端コード列「<CR><LF>%%EOF<CR><LF>」は、図4に示すように、終端コード列として「0x0d」、「0x0a」、「0x25」、「0x25」、「0x45」、「0x4f」、「0x46」、「0x0d」、「0x0a」として表されている。ここで、「0x0d」及び「0x0a」は改行文字「<CR><LF>を示し、「0x25」は「%」を示し、「0x45」は「E」を示し、「0x4f」は「O」を示し、「0x46」は「F」を示している。これら各文字は1バイトで形成されている。
【0024】
ポインタ記憶部106は、RAMに形成され、終端コード列比較テーブル105中の第1終端コード列及び第2終端コード列のうちのいずれかと、受信バッファ101に記憶された最後に受信したデータとを比較するために使用される参照ポインタ、比較先ポインタ、及び、比較元ポインタを記憶する。
【0025】
参照ポインタは、終端コード列比較テーブル105に記憶されている第1終端コード列、第2終端コード列、又は第3終端コード列を形成する先頭文字のアドレスが設定される。例えば、前述の例では、図4に示すように、参照ポインタには、改行文字「<CR>」の「0x0d」に割り当てられたアドレスとして「0x0d*」(この表記は「0x0d」に割り当てられたアドレスを示す)が設定される。
【0026】
比較先ポインタは、第1終端コード列、第2終端コード列、又は第3終端コード列を形成する文字列のうち最終文字に割り当てられたアドレスが設定される。例えば、前述の例では、図4に示すように、比較先ポインタには、改行文字「<LF>」の「0x0a」に割り当てられたアドレスとして「0x0a*」が設定される。
【0027】
比較元ポインタは、受信バッファ101に最後に記憶されたデータを形成する文字列のうち最終文字に割り当てられたアドレスが設定される。例えば、前述の例では、図4に示すように、比較元ポインタには、最終文字としての改行文字「<LF>」を示す「0x0a」に割り当てられたアドレスとして「0x0a**」(この表記は「0x0a」に割り当てられたアドレスを示す)が設定される。
【0028】
カウント数記憶部107は、受信タイムアウト検出カウンタ108がタイムアウトを検出する基準となるタイムアウト値を記憶する。
【0029】
受信タイムアウト検出カウンタ108は、受信制御部110からの起動要求に従い、所定時間毎にカウントし、カウント数記憶部107に記憶されているタイムアウト値になると、タイムアウトになったことを示す通知を受信制御部110に出力する。
【0030】
オペレーションパネル部109は、装置自体の稼働状況や操作内容を表示する液晶装置からなる表示部と、操作内容を入力するキーボード、マウス等のポインティングデバイスからなる入力部とを備える。表示部及び入力部は、ユーザの操作により、「通常モード」又は「終端コード列検出モード」をモード指定情報記憶部104に登録する。
【0031】
受信制御部110は、PCからデータを受信し始めると、受信タイムアウト検出カウンタ108のカウント値を「0」に設定し、その後、受信したデータを受信バッファ101に記憶したのち、デコード処理部111にデータを受信した旨の通知を出力する。以後、受信制御部110は、PCからデータを受信するごとに、受信したデータを受信バッファ101に記憶したのち、デコード処理部111にデータを受信した旨の通知を出力する。
【0032】
また、受信制御部110は、先にデータを受信したのち、次のデータが受信しない場合には、受信状況記憶部102に記憶されている受信状況情報が「データ受信中」であるか否かを判定し、受信状況情報が「データ受信中」でないと判定した場合には、次の印刷ジョブ又はファイルのデータを受信するまで待機する。一方、受信制御部110は、受信状況記憶部102に記憶されている受信状況情報が「データ受信中」であると判定した場合には、モード指定情報記憶部104に記憶されているモード指定情報が「終端コード列検出モード」であるか、又は、「通常モード」であるかを判定する。
【0033】
また、受信制御部110は、モード指定情報記憶部104に記憶されているモード指定情報が「終端コード列検出モード」であると判定した場合には、後述する終端コード列検出処理を実行し、一方、モード指定情報が「通常モード」であると判定した場合には、後述する通常モード処理を実行する。受信制御部110が行う終端コード列検出処理機能、及び、通常モード処理機能は、本発明に係る実施例1の画像形成装置の動作を説明する箇所に記載されている。
【0034】
なお、PCが終端コード列を画像形成装置10の終端コード列比較テーブル105に登録・変更・追加し、また、画像形成装置10の終端コード列比較テーブル105に登録されている終端コード列を読み出すときに用いる表示画面は、図5に示す終端コード列比較テーブル編集ツール画面が使用される。終端コード列比較テーブル編集ツール画面は、「OK」ボタン、「キャンセル」ボタン、「取得」ボタン、及び「設定」ボタンを有している。「取得」ボタンがクリックされると、画像形成装置10の終端コード列比較テーブル105に登録されている終端コード列が表示画面上に表示される。終端コード列を登録したり、変更したり、新たに追加したい場合には、表示画面に登録・変更・追加する終端コード列を表示し、その後、「設定」ボタンがクリックされると、画像形成装置10の終端コード列比較テーブル105に、表示画面に表示した終端コード列が登録・変更・追加が追加される。
【0035】
デコード処理部111は、PCからデータを受信し始めた旨の通知が受信制御部110から入力されると、内部処理情報として「コマンド解析中」を内部処理情報記憶部103に設定する。また、デコード処理部111は、受信制御部110からデータを受信した旨の通知が入力されるごとに、受信制御部110により受信バッファ101に書き込まれたデータを読み出し、このデータを解析する。そして、デコード処理部111は、解析したデータが、送信されてくる印刷データ量を指定する制御コード(印刷ジョブに記述されている制御コード)であった場合には、内部処理情報として「連続送信中」を内部処理情報記憶部103に設定する。
【0036】
編集/展開処理部112は、デコード処理部111から解析結果が入力されると、この解析結果に基づき、受信バッファ101からデータを読み出し、この読み出したデータが印刷データの場合には、この印刷データをラスタデータに変換し、このラスタデータを図示しないラスタデータ記憶部に記憶する。また、編集/展開処理部112は、このラスタデータをラスタデータ記憶部に記憶したのち、印刷処理部113に制御の主体を移行する。
【0037】
印刷処理部113は、ラスタデータ記憶部に記憶されているラスタデータを順次読み出し、このラスタデータを用いて印刷媒体に印刷を行う。
【0038】
次に、本発明に係る実施例1の画像形成装置の動作を説明する。
【0039】
図6は、本発明に係る実施例1の画像形成装置の動作を示すフローチャートである。
【0040】
まず、画像形成装置の受信制御部110は、PJL若しくはPDL言語で記述された印刷ジョブのデータ、又は、PDFファイル若しくはEPSファイルのデータを受信したのち、次のデータを受信したか否かを判定する(ステップS1)。受信制御部110は、次のデータを受信したと判定した場合には(ステップS1;Y)、受信状況記憶部102に記憶されている受信状況情報を読み出す。次に、受信制御部110は、読み出した受信状況情報が「データ受信中」であるか否かを判定する(ステップS2)。
【0041】
受信制御部110は、読み出した受信状況情報が「データ受信中」でないと判定した場合には(ステップS2;N)、受信状況記憶部102に受信状況情報を「データ受信中」に設定したのち(ステップS3)、データを受信した旨の通知をデコード処理部111に出力する。
【0042】
デコード処理部111は、前述の通知が受信制御部110から入力されると、内部処理情報記憶部103に記憶されている内部処理情報を「コマンド解析中」に設定し(ステップS4)、ステップS5に処理を移行させる。
【0043】
ステップS2において、受信制御部110は、受信状況記憶部102から読み出した受信状況情報が「データ受信中」であると判定した場合には(ステップS2;Y)、受信タイムアウト検出カウンタ108を0に設定する(ステップS5)。その後、受信制御部110は、PCから受信したデータを受信バッファ101に書き込む(ステップS6)。次に、受信制御部110は、受信したデータがあった旨の通知をデコード処理部111に出力する(ステップS7)。
【0044】
デコード処理部111は、前述の通知が受信制御部110から入力されると、受信バッファ101に最後に書き込まれたデータを読み出し、この読み出したデータが以後送信されてくる印刷データ量を指定する制御コードであるか否かを判定する(ステップS8)。
【0045】
デコード処理部111は、受信バッファ101から読み出したデータが前述の制御コードでないと判定した場合には(ステップS8;N)、ステップS1に処理を移行させ、上述したと同様な処理を続行させる。一方、デコード処理部111は、前述の制御コードであると判定した場合には(ステップS8;Y)、内部処理情報記憶部103に記憶されている「コマンド解析中」を「連続受信中」に設定し(ステップS9)、ステップS1に処理を移行させ、上述したと同様な処理を続行させる。
【0046】
ステップS1において、受信制御部110は、次のデータを受信しないと判定した場合(ステップS1;N)、受信状況記憶部102に記憶されている受信状況情報が「データ受信中」であるか否かを判定する(ステップS10)。受信制御部110は、受信状況記憶部102に記憶されている受信状況情報が「データ受信中」でないと判定した場合(ステップS10;N)、すなわち、PCから印刷ジョブ又はファイルのデータが送信されてきていないと判定した場合には、ステップS1に処理を移行させ、上述した動作と同様な処理を続行させる。
【0047】
一方、受信制御部110は、受信状況記憶部102に記憶されている受信状況情報が「データ受信中」であると判定した場合(ステップS10;Y)、モード指定情報記憶部104からモード指定情報を読み出す。次に、受信制御部110は、読み出したモード指定情報が「終端コード列検出モード」であるか、又は「通常モード」であるかを判定する(ステップS11)。
【0048】
PCから受信したデータがPDFファイル又はEPSファイルを形成するデータであって、次のデータが受信せず、かつ、受信状況記憶部102に記憶されている受信状況情報が「データ受信中」であると受信制御部110により判定された場合、最後に受信したデータは、終端コード列を検出するための候補となるデータである。
【0049】
受信制御部110は、読み出したモード指定情報が「終端コード列検出モード」であると判定した場合には(ステップS11;「終端コード列検出モード」)、内部処理情報記憶部103に内部処理情報として「コマンド解析中」が記憶されているか否かを判定する(ステップS12)。受信制御部110は、内部処理情報記憶部103に「コマンド解析中」が記憶されていないと判定した場合(ステップS12;N)、すなわち、内部処理情報記憶部103に「連続受信中」が記憶されている場合には、ステップS19に処理を移行させる。
【0050】
受信制御部110により、内部処理情報記憶部103に「コマンド解析中」が記憶されていないと判定された場合、すなわち、内部処理情報記憶部103に「連続受信中」が記憶されている場合には、PCから受信したデータは印刷ジョブのデータであり、しかも、このデータは印刷データである。
【0051】
一方、受信制御部110は、内部処理情報記憶部103に内部処理情報として「コマンド解析中」が記憶されていると判定した場合には(ステップS12;Y)、後述する図7のフローチャートに示す動作を行う終端コード列検出処理を行う(ステップS13)。
【0052】
ここで、受信制御部110により、内部処理情報記憶部103に「コマンド解析中」が記憶されていると判定された場合、PCから受信したデータがPDFファイル又はEPSファイルを形成するデータのときには、この受信したデータは最後のデータであり、終端コード列を検出するための候補となるデータである。また、PCから受信したデータがPJL又はPDL言語で記述された印刷ジョブのデータであるときには、このデータは終端コードである。
【0053】
受信制御部110は、終端コード列検出処理を行ったのち、終端コード列を検出したか否かを判定する(ステップS14)。受信制御部110は、終端コード列を検出しないと判定した場合には(ステップS14;N)、ステップS19に処理を移行させる。一方、受信制御部110は、終端コード列を検出したと判定した場合には(ステップS14;Y)、受信状況記憶部102に記憶されている受信状況情報を「データ受信待ち中」に設定する(ステップS15)。次に、受信制御部110は、終端コード列を検出した旨の通知をデコード処理部111に出力する(ステップS16)。
【0054】
デコード処理部111は、前述の通知が受信制御部110から入力されると、編集/展開処理部112に解析結果を出力する。
【0055】
編集/展開処理部112は、デコード処理部111から解析結果が入力されると、この解析結果に基づき、受信バッファ101からデータを読み出し、この読み出したデータが印刷データの場合には、この印刷データをラスタデータに変換し(ステップS17)、このラスタデータを図示しないラスタデータ記憶部に記憶したのち、制御の主体を印刷処理部113に移行する。
【0056】
印刷処理部113は、制御部の主体が自己に移行されると、ラスタデータ記憶部に記憶されているラスタデータを順次読み出し、このラスタデータを用いて印刷媒体に印刷を行い(ステップS18)、処理を終了させる。
【0057】
ステップS11において、受信制御部110は、モード指定情報記憶部104に記憶されているモード指定情報が「通常モード」あると判定した場合には(ステップS11;「通常モード」)、受信タイムアウト検出カウンタ108にカウントされているカウント値に1を加算する(ステップS19)。
【0058】
その後、受信制御部110は、受信タイムアウト検出カウンタ108にカウントされているカウント値がカウント数記憶部107に記憶されているタイムアウト値以下であるか否かを判定する(ステップS20)。受信制御部110は、カウント値がタイムアウト値以下であると判定した場合には(ステップS20;Y)、1秒間待機し(ステップS21)、ステップS1に処理を移行させ、上述したと同様な処理を続行させる。
【0059】
一方、受信制御部110は、カウント値がタイムアウト値より大きいと判定した場合には(ステップS20;N)、受信状況記憶部102に記憶されている受信状況情報を「データ受信待ち中」に設定したのち(ステップS22)、タイムアウトした旨の通知をデコード処理部111に出力し(ステップS23)、処理を終了させる。
【0060】
ステップS13における終端コード列検出処理の動作を説明する。
【0061】
図7は、図6中のステップS13における終端コード列検出処理の動作を示すフローチャートである。ステップS12において、受信制御部110は、内部処理情報記憶部103に記憶されている内部処理情報が「コマンド解析中」に設定されていると判定した場合には(ステップS12;Y)、RAM(図示せず)に記憶されている数値Iに0をセットする(ステップS131)。次に、受信制御部110は、数値Iが3より大きいか否かを判定する(ステップS132)。
【0062】
受信制御部110は、数値Iが3未満であると判定した場合には(ステップS132;N)、ポインタ記憶部106中の参照ポインタに、終端コード列比較テーブル105に記憶されている第I(I=1、2)終端コード列の先頭文字に割り当てられたアドレスを設定する(ステップS133)。
【0063】
例えば、第I(I=3)終端コード列が図4に示すように、「0x0d、0x0a、0x25、0x25、0x45、0x4f、0x46、0x0d、0x0a」である場合、第I終端コード列の先頭文字「0x0d」に割り当てられたアドレス「0x0d*」がポインタ記憶部106の参照ポインタに設定される。
【0064】
次に、受信制御部110は、ポインタ記憶部106中の比較先ポインタに第I終端コード列の最終文字に割り当てられたアドレスを設定する(ステップS134)。
【0065】
前述の例では、第I終端コード列の最終文字に割り当てられたアドレス「0x0a*」がポインタ記憶部106の比較先ポインタに設定される。
【0066】
その後、受信制御部110は、ポインタ記憶部106中の比較元ポインタに受信バッファ101中の最後に記憶されたデータを形成する最終文字に割り当てられたアドレスを設定する(ステップS135)。
【0067】
前述の例では、受信バッファ101中の最後に記憶されたデータを形成する最終文字に割り当てられた「0x0a**」が比較元ポインタに設定される。
【0068】
その後、受信制御部110は、ポインタ記憶部106の比較先ポインタにより指定されたアドレスの箇所に記述された文字と、比較元ポインタにより指定されたアドレスの箇所に記述された文字が等しいか否かを判定する(ステップS136)。受信制御部110は、ポインタ記憶部106の比較先ポインタにより指定されたアドレスの箇所に記述された文字と、比較元ポインタにより指定されたアドレスの箇所に記述された文字が等しくないと判定した場合には(ステップS136;N)、RAMに記憶されている数値Iに1を加算し(ステップS137)、ステップS132に処理を移行させ、上述したと同様な処理を続行させる。
【0069】
一方、受信制御部110は、ポインタ記憶部106の比較先ポインタにより指定されたアドレスの箇所に記述された文字と、比較元ポインタにより指定されたアドレスの箇所に記述された文字が等しいと判定した場合には(ステップS136;Y)、先に書き込んだアドレスの1つ前のアドレスをポインタ記憶部106の比較先ポインタに書き込む(ステップS138)。
【0070】
前述の例では、第I終端コード列のアドレス「0x0d」がポインタ記憶部106の比較先に設定される。
【0071】
その後、受信制御部110は、先に書き込んだアドレスの1つ前のアドレスを比較元ポインタに書き込む(ステップS139)。
【0072】
前述の例では、受信バッファ101のアドレス「0x0d」がポインタ記憶部106の比較元に設定される。
【0073】
次に、受信制御部110は、ポインタ記憶部106の参照ポインタに記憶されている先頭アドレスと、比較先ポインタに記憶されているアドレスが等しいか否かを判定する(ステップS140)。受信制御部110は、参照ポインタに記憶されている先頭アドレスと、比較先ポインタに記憶されているアドレスが異なると判定した場合には(ステップS140;N)、ステップS136に処理を移行し、上述したと同様な処理を続行する。一方、受信制御部110は、参照ポインタに記憶されている先頭アドレスと、比較先ポインタに記憶されているアドレスが等しいと判定した場合には(ステップS140;Y)、終端コード列を検出し(ステップS141)、終端コード列を検出した旨の通知をデコード処理部111に出力し、処理を終了させる。
【0074】
ステップS132において、受信制御部110は、数値Iが3より大きいと判定した場合(ステップS132;Y)、すなわち、次の終端コード列がないと判定した場合には、終端コード列が検出できなかったことを認識し(ステップS142)、この旨の通知をデコード処理部111に出力し、終端コード列検出処理を終了させる。
【0075】
実施例1によれば、受信制御部110が、PCからのデータを受信しなくなり、受信状況記憶部102に記憶されている受信状況情報が「データ受信中」で、かつ、モード指定情報記憶部104のモード指定情報が「終端コード列検出モード」である場合には、受信したデータを終端コード列の候補として認識し、この終端コード列の候補と、終端コード列比較テーブル105に登録されている終端コード列とを比較し、その結果、終端コード列の候補と一致する終端コード列が終端コード列比較テーブル105に登録されているとき、検出した終端コード列の候補を終端コードであると決定するため、受信タイムアウトを待つことなく印刷開始できるようになるため、上位装置からダイレクト印刷機能でPDFやEPSのファイルを受信しても、このファイルの印刷開始時間を短縮することができる。
【0076】
また、実施例1によれば、従来、上位装置から送信されてくるPDFやEPS形式のファイルには、ファイル送信用のユーティリティを用いて、PJL言語でラッピング(先頭部分に@PJL ENTER LANGUAGEを追加し、かつ、終端部分に終端コードとしてUELコードを追加)することで、画像形成装置側で、PJL言語として終端コードを認識可能とする方法を用いていたが、受信制御部110が、上述したようにして終端コード列の候補を終端コード列と決定するので、PJL言語でラッピングする処理をなくすことができる。
【実施例2】
【0077】
図8は、本発明に係る実施例2の画像形成装置の構成を示すブロック図である。図8に示すように、実施例2の画像形成装置20は、実施例1の画像形成装置10と同様に、上位装置としてのPCから受信したPJL言語若しくはPDL言語で記述された印刷ジョブ、又は、PDFファイル若しくはEPSファイルに記述された印刷データを用いて印刷媒体に印刷を行う装置である。
【0078】
この画像形成装置20は、受信バッファ201と、受信状況記憶部202と、内部処理情報記憶部203と、モード指定情報記憶部204と、履歴バッファ205と、終端コード列みなし回数記憶部206と、終端コード列みなしバイト数記憶部207と、未使用履歴領域番号記憶部208と、一致履歴領域番号記憶部209と、最大一致バイト数記憶部210と、最小一致回数記憶部211と、最小一致バイト数記憶部212と、最大履歴領域番号記憶部213と、カウント数記憶部214と、受信タイムアウト検出カウンタ215と、オペレーションパネル部216と、受信制御部217と、デコード処理部218と、編集/展開処理部219と、印刷処理部220とを備える。
【0079】
受信制御部217、デコード処理部218、編集/展開処理部219、及び、印刷処理部220は、図示しないCPUが図示しないROMに記憶されている制御プログラムを実行することにより生成され、後述する機能を有する。
【0080】
受信バッファ201、受信状況記憶部202、内部処理情報記憶部203、モード指定情報記憶部204、カウント数記憶部214と、受信タイムアウト検出カウンタ215、オペレーションパネル部216、デコード処理部218、編集/展開処理部219、及び、印刷処理部220のそれぞれは、実施例1のものと同一である。
【0081】
履歴バッファ205は、履歴領域0から履歴領域nの履歴領域を有しており、更に、各履歴領域i(i=0、1、・・・、n)は、図9に示すように、一致回数を記憶する一致回数記憶領域と、一致バイト数を記憶する一致バイト数記憶領域と、終端コード列を記憶する終端コード列記憶領域とを有している。一致回数記憶領域に記憶されている一致回数、一致バイト数記憶領域に記憶されている一致バイト数、及び、終端コード列記憶領域に記憶されている終端コード列は、終端コード列検出モード状態で、かつ、タイムアウトが発生したときに、最後に受信したデータの履歴を示している。なお、終端コード列記憶領域に記憶することが可能な終端コード列のバイト数は、終端コード列みなしバイト数記憶部207に登録されているバイト数である。
【0082】
一致回数は、受信制御部217が受信バッファ201に記憶された最後のデータと、履歴バッファ205の履歴領域iに記憶されている終端コード列とを比較するか否かを判定するための判定条件である。すなわち、受信制御部217は、この一致回数が終端コード列みなし回数記憶部206に記憶されている回数(以下、終端コード列みなし回数という)以上の場合には、履歴領域iに記憶されている終端コード列と、受信バッファ201に記憶された最後のデータとを比較し、それ以外の場合には比較しない。
【0083】
一致バイト数は、受信バッファ201に記憶された最後のデータと、履歴バッファ205の履歴領域iに記憶されている終端コード列とを、受信制御部217が比較するか否かを判定するための条件を示す。すなわち、受信制御部217は、この一致バイト数が終端コード列みなしバイト数記憶部207に記憶されているバイト数(以下、終端コード列みなしバイト数という)以上の場合には、履歴領域iに記憶されている終端コード列と、受信バッファ201に記憶された最後のデータとを比較し、それ以外の場合には比較しない。
【0084】
図8に示す終端コード列みなし回数記憶部206は、前述の終端コード列みなし回数を記憶する。
【0085】
終端コード列みなしバイト数記憶部207は、前述の終端コード列みなしバイト数を記憶する。
【0086】
未使用履歴領域番号記憶部208は、履歴バッファ205の中で、未だ使用されていない履歴領域iを指定する番号(以下、履歴領域指定番号という)を記憶する。なお、履歴領域指定番号としての「−1」は、履歴領域0から履歴領域nのすべてが使用されていることを示している。
【0087】
一致履歴領域番号記憶部209は、履歴バッファ205の中で、これから登録しようとしている終端コード列と、部分的に一致した終端コード列を記憶する履歴領域iを指定する番号を記憶する。なお、これから登録しようとしている終端コード列と、部分的に一致した終端コード列を記憶する履歴領域iがない場合には、「−1」が一致履歴領域番号記憶部209記憶される。
【0088】
最大一致バイト数記憶部210は、履歴バッファ205に記憶されている一致バイト数に記憶させるバイト数(以下、最大一致バイト数という)を記憶する。この最大一致バイト数は、受信バッファ201に最後に書き込まれたデータと、該当する終端コード列との間で一致したバイト数である。
【0089】
最小一致回数記憶部211は、履歴バッファ205中の履歴領域iに空きがない場合、履歴領域0〜履歴領域nの中から、受信バッファ201に最後に記憶されたデータを終端コード列として記憶させる履歴領域iを受信制御部217が決定するための情報としての最小一致回数を記憶する。すなわち、受信制御部217は、最小一致回数記憶部211に記憶されている最小一致回数以下の一致回数を記憶する履歴バッファ205の履歴領域iを、受信バッファ201に最後に記憶されたデータを終端コード列として記憶させる履歴領域iの候補として決定する。
【0090】
最小一致バイト数記憶部212は、履歴バッファ205中の履歴領域iに空きがない場合、履歴領域0〜履歴領域nの中から、受信バッファ201に最後に記憶されたデータを終端コード列として記憶させる履歴領域iを受信制御部217が決定するための情報としての最小一致バイト数を記憶する。すなわち、受信制御部217は、最小一致バイト数記憶部212に記憶されている最小一致バイト数以下の一致バイト数を記憶する履歴バッファ205の履歴領域iを、受信バッファ201に最後に記憶されたデータを終端コード列として記憶させる履歴領域iとして決定する。
【0091】
最大履歴領域番号記憶部213は、RAMに形成され、履歴バッファ205に取り得る履歴領域の中で最も大きい番号(以下、最大履歴領域番号という)を記憶する。図8に示す履歴バッファ205においては、この最大履歴領域番号は、「n」である。
【0092】
受信制御部217は、図12のフローチャートに示す終端コード列検出処理、及び、図13、図14、及び図15のフローチャートに示す終端コード列登録処理以外、実施例1の受信制御部110と同一な処理を行う。受信制御部217が行う終端コード列検出処理機能、及び、終端コード列登録処理機能は、本発明に係る実施例2の画像形成装置の動作を説明する箇所に記載されている。
【0093】
次に、本発明に係る実施例2の画像形成装置の動作を説明する。
【0094】
ステップS31において、受信制御部217が、PJL若しくはPDL言語で記述された印刷ジョブのデータ、又は、PDFファイル若しくはEPSファイルのデータを受信したのち、次のデータを受信したか否かを判定する処理から、ステップS42において、内部処理情報記憶部203に記憶されている内部処理情報が「コマンド解析中」であるか否かを判定する処理までの動作は、実施例1におけるステップS1の処理からステップS12の処理までの動作と同一である。
【0095】
受信制御部217は、内部処理情報記憶部203に記憶されている内部処理情報が「コマンド解析中」でないと判定した場合には(ステップS42;N)、ステップS49に処理を移行させる。一方、受信制御部217は、内部処理情報が「コマンド解析中」であると判定した場合には(ステップS42;Y)、後述する図12のフローチャートに示す終端コード列検出処理を実行する。その後、ステップS44において、受信制御部217は、終端コード列を検出したか否かを判定する処理から、ステップS48において、印刷処理部220が印刷ジョブの印刷データ、又は、ファイルの印刷データを用いて印刷媒体に印刷を行う処理までの動作は、実施例1におけるステップS14における処理からステップS48における処理までの動作と同一である。
【0096】
ステップS41において、受信制御部217が、モード指定情報記憶部204に記憶されているモード指定情報が「通常モード」であると判定したのち、ステップS52において、受信状況記憶部202に記憶されている受信状況情報を「データ受信待ち」に設定する処理間までの動作は、実施例1のステップ11の処理からステップS22の処理までの動作と同一である。
【0097】
受信制御部217は、受信状況記憶部202に記憶されている受信状況情報を「データ受信待ち」に設定すると、モード指定情報記憶部204に記憶されているモード指定情報が「終端コード列検出モード」であるか否かを判定する(ステップS53)。受信制御部217は、モード指定情報記憶部204に記憶されているモード指定情報が「終端コード列検出モード」であると判定した場合には(ステップS53;Y)、受信状況記憶部202に記憶されている受信状況情報が「コマンド解析中」であるか否かを判定する(ステップS54)。
【0098】
受信制御部217は、受信状況記憶部202に記憶されている受信状況情報が「コマンド解析中」でないと判定した場合(ステップS54;N)、すなわち、「連続受信中」であると判定した場合には、ステップS56に処理を移行させる。一方、受信制御部217は、受信状況情報が「コマンド解析中」であると判定した場合(ステップS54;Y)、後述する図13、図14、及び図15のフローチャートに示す終端コード列登録処理を実行し、ステップS56に処理を移行させる。
【0099】
受信制御部217は、モード指定情報記憶部204に記憶されているモード指定情報が「終端コード列検出モード」でないと判定した場合(ステップS53;Y)、すなわち、「通常モード」の場合には、タイムアウトした旨の通知をデコード処理部111に出力し(ステップS56)、処理を終了させる。
【0100】
図12は、図10中のステップS43における終端コード列検出処理を示すフローチャートである。ステップS12において、受信制御部217は、内部処理情報記憶部203に記憶されている内部処理情報が「コマンド解析中」に設定されていると判定した場合には(ステップS42;Y)、受信制御部217は、RAMに記憶されている数値iに0を設定する(ステップS431)。
【0101】
ステップS43における終端コード列検出処理の動作を説明する。
【0102】
図12は、図10中のステップS43における終端コード列検出処理の動作を示すフローチャートである。受信制御部217は、内部処理情報記憶部203に記憶されている内部処理情報が「コマンド解析中」であると判定した場合には(ステップS42;Y)RAMに記憶されている数値iに「0」を設定する(ステップS431)。
【0103】
次に、受信制御部217は、終端コード列みなし回数記憶部206に記憶されている終端コード列みなし回数を読み出し、その後、履歴領域iの一致回数記憶領域に記憶されている一致回数が読み出した終端コード列みなし回数以上であるか否かを判定する(ステップS432)。受信制御部217は、一致回数記憶領域に記憶されている一致回数が読み出した終端コード列みなし回数未満であると判定した場合には(ステップS432;N)、ステップS437に処理を移行させる。
【0104】
受信制御部217は、一致回数記憶領域に記憶されている一致回数が読み出した終端コード列みなし回数以上であると判定した場合には(ステップS432;Y)、終端コード列みなしバイト数記憶部207に記憶されている終端コード列みなしバイト数を読み出し、その後、履歴領域iの一致バイト数記憶領域に記憶されている一致バイト数が先に読み出したみなしバイト数以上であるか否かを判定する(ステップS433)。受信制御部217は、一致バイト数記憶領域に記憶されている一致バイト数が先に読み出した終端コード列みなしバイト数未満であると判定した場合には(ステップS433;N)、ステップS436に処理を移行させる。
【0105】
受信制御部217は、一致バイト数記憶領域に記憶されている一致バイト数が先に読み出した終端コード列みなしバイト数以上であると判定した場合には(ステップS433;Y)、履歴領域i中の終端コード列記憶領域に記憶されている終端コード列と、受信バッファ201に記憶されている最後に受信したデータを互いに、最後のバイトから比較し、不一致するまで順次前のバイトにさかのぼって比較する(ステップS434)。
【0106】
受信制御部217は、履歴領域i中の終端コード列記憶領域に記憶されている終端コード列と、受信バッファ201に記憶されている最後に受信したデータを互いに比較した結果、一致したバイト数が終端コード列みなしバイト数記憶部207に記憶されている終端コード列みなしバイト数以上であるか否かを判定する(ステップS435)。
【0107】
受信制御部217は、一致したバイト数が前述のみなしバイト数以上であると判定した場合には(ステップS435;Y)、終端コード列を検出したと認識し(ステップS436)、終端コード列検出処理を終了する。一方、受信制御部217は、一致したバイト数が前述のみなしバイト数未満であると判定した場合には(ステップS435;N)、RAMに記憶されている数値iに1を加算する(ステップS437)。
【0108】
次に、受信制御部217は、最大履歴領域番号記憶部213に記憶されている最大履歴領域番号nを読み出し、その後、RAMに記憶されている数値iが先に読み出した最大履歴領域番号未満であるか否かを判定する(ステップS438)。受信制御部217は、RAMに記憶されている数値iが先に読み出した最大履歴領域番号n未満であると判定した場合には(ステップS438;Y)、ステップS432に処理を移行し、上述したと同様な処理を続行させる。
【0109】
受信制御部217は、RAMに記憶されている数値iが先に読み出した最大履歴領域番号n以上であると判定した場合には(ステップS438;N)、終端コード列を検出できなかったと認識し(ステップS439)、終端コード列検出処理を終了する。
【0110】
ステップS55における終端コード列登録処理の動作を説明する。
【0111】
図13、図14、及び図15は、図11中のステップS55における終端コード登録処理の動作を示すフローチャートである。ステップS54において、受信制御部217は、内部処理情報記憶部203に記憶されている内部処理情報が「コマンド解析中」であると判定した場合には、未使用履歴領域番号記憶部208及び一致履歴領域番号記憶部209に「−1」を設定する(ステップS551)。
【0112】
次に、受信制御部217は、受信バッファ201に最後に記憶されたデータが履歴バッファ205の履歴領域iに記憶されている終端コード列と比較される条件として、最低3バイトを有する必要があることを示す「3」を最大一致バイト数として最大一致バイト数記憶部210に設定する(ステップS552)。その後、受信制御部217は、図示しないRAMに記憶されている数値iを0に設定する(ステップS553)。
【0113】
その後、受信制御部217は、RAMに記憶されている数値iを0に設定したのち、履歴バッファ205中の履歴領域iが使用されているか否かを判定する(ステップS554)。受信制御部217は、履歴領域iが使用されていないと判定した場合には(ステップS554;N)、未使用履歴履歴番号記憶部208に履歴領域番号iを設定し(ステップS555)、ステップS560に処理を移行させる。
【0114】
一方、受信制御部217は、履歴領域iが使用されていると判定した場合には(ステップS554;Y)、履歴領域i中の終端コード列記憶領域に記憶されている終端コード列と、受信バッファ201に記憶されている最後に受信したデータを互いに、最後のバイトから比較し、不一致するまで順次前のバイトにさかのぼって比較する(ステップS556)。
【0115】
受信制御部217は、履歴領域i中の終端コード列記憶領域に記憶されている終端コード列と、受信バッファ201に記憶されている最後に受信したデータを互いに比較した結果、一致したバイト数が最大一致バイト数記憶部210に記憶されている最大一致バイト数以上であるか否かを判定する(ステップS557)。
【0116】
受信制御部217は、一致したバイト数が最大一致バイト数記憶部210に記憶されている「3」以上であると判定した場合には(ステップS557;Y)、一致履歴領域番号記憶部209に履歴領域番号iを設定する(ステップS558)。次に、受信制御部217は、最大一致バイト数記憶部210に記憶されている「3」を、受信バッファ201に最後に記憶したデータと、履歴領域i中の終端コード列記憶領域に記憶されている終端コード列との間で一致したバイト数に上書きし(ステップS559)、ステップS560に処理を移行させる。
【0117】
ステップS557において、受信制御部217は、一致したバイト数が最大一致バイト数記憶部210に記憶されている「3」未満であると判定した場合には(ステップS557;N)、RAMに記憶されている数値iに1を加算する(ステップS560)。次に、受信制御部217は、RAMに記憶されている数値iが最大履歴領域番号記憶部213に記憶されている最大履歴領域番号n未満であるか否かを判定する(ステップS561)。
【0118】
受信制御部217は、RAMに記憶されている数値iが最大履歴領域番号記憶部213に記憶されている最大履歴領域番号n未満であると判定した場合には(ステップS561;Y)、ステップ554に処理を移行させ、上述したと同様な処理を続行させる。一方、受信制御部217は、数値iが最大履歴領域番号記憶部213に記憶されている最大履歴領域番号以上であると判定した場合には(ステップS561;N)、一致履歴領域番号記憶部209に記憶されている一致履歴番号が「−1」であるか否かを判定する(ステップS562)。
【0119】
受信制御部217は、一致履歴領域番号記憶部209に記憶されている一致履歴番号が「−1」であると判定した場合には(ステップS562;Y)、履歴領域iの一致回数記憶領域に記憶されている一致回数に1を加算する(ステップS563)。次に、受信制御部217は、最大一致バイト数記憶部210から最大一致バイト数を読み出し、この最大一致バイト数を履歴領域iの一致バイト数記憶領域に上書きし(ステップS564)、終端コード列登録処理を終了する。これにより、既に履歴バッファ205に登録されていた終端コード列に対し、一致回数及び一致バイト数が更新されたことになる。
【0120】
ステップS562において、受信制御部217は、一致履歴領域番号記憶部209に記憶されている一致履歴番号が「−1」でないと判定した場合には(ステップS562;N)、未使用履歴履歴番号記憶部208から未使用履歴番号を読み出し、この未使用履歴番号が「−1」であるか否かを判定する(ステップS565)。
【0121】
受信制御部217は、この未使用履歴番号が「−1」でないと判定した場合(ステップS565;N)、すなわち、履歴バッファ205の全ての履歴領域が使用済みでない場合には、ステップS574に処理を移行させる。一方、受信制御部217は、この未使用履歴番号が「−1」であると判定した場合(ステップS565;Y)、すなわち、履歴バッファ205の全ての履歴領域が使用済みである場合には、最も終端コード列としての可能性が低い履歴領域を再利用するために、次のような処理を行う。
【0122】
すなわち、受信制御部217は、最小一致回数記憶部211及び最小一致バイト数記憶部212に「255」を書き込む(ステップS566)。次に、受信制御部217は、RAMに記憶されている数値iに0を設定する(ステップS567)。その後、受信制御部217は、最小一致回数記憶部211に記憶されている最小一致回数を読み出したのち、履歴領域iの一致回数記憶領域に記憶されている一致回数が先に読み出した最小一致回数以下であるか否かを判定する(ステップS568)。
【0123】
受信制御部217は、履歴領域iの一致回数記憶領域に記憶されている一致回数が先に読み出した最小一致回数より大きいと判定した場合には(ステップS568;N)、ステップS572に処理を移行する。一方、受信制御部217は、履歴領域iの一致回数記憶領域に記憶されている一致回数が先に読み出した最小一致回数以下であると判定した場合には(ステップS568;Y)、最小一致バイト数記憶部212に記憶されている最小一致バイト数を読み出したのち、履歴領域iの一致バイト数記憶領域に記憶されている一致バイト数が先に読み出した最小一致バイト数以下であるか否かを判定する(ステップS569)。
【0124】
受信制御部217は、履歴領域iの一致バイト数記憶領域に記憶されている一致バイト数が先に読み出した最小一致バイト数より大きいと判定した場合には(ステップS569;N)、ステップS572に処理を移行する。一方、受信制御部217は、履歴領域iの一致バイト数記憶領域に記憶されている一致バイト数が先に読み出した最小一致バイト数以下であると判定した場合には(ステップS569;Y)、未使用履歴領域番号記憶部208にRAMに記憶されている数値iを設定する(ステップS570)。
【0125】
次に、受信制御部217は、最小一致回数記憶部211に記憶されている最小一致回数を読み出し、履歴領域iの一致回数記憶領域に先に読み出した最小一致回数を上書きし、更に、最小一致バイト数記憶部212に記憶されている最小一致バイト数を読み出し、履歴領域iの一致バイト数記憶領域に先に読み出した最小一致バイト数を上書きする(ステップS571)。
【0126】
その後、受信制御部217は、RAMに記憶されている数値iに1を加算したのち(ステップS572)、最大履歴領域番号記憶部213から最大履歴領域番号nを読み出す。そして、受信制御部217は、数値iが最大履歴領域番号n未満であるか否かを判定する(ステップS573)。受信制御部217は、数値iが最大履歴領域番号n未満であると判定した場合には(ステップS573;Y)、ステップ568に処理を移行させ、上述したと同様な処理を続行する。
【0127】
一方、受信制御部217は、数値iが最大履歴領域番号n以上であると判定した場合には(ステップS573;N)、受信制御部217は、終端コード列みなしバイト数記憶部207から終端コード列みなしバイト数を読み出す。次に、受信制御部217は、未使用履歴領域番号記憶部208に記憶されている未使用履歴領域番号を読み出す。その後、受信制御部217は、受信バッファ201に最後に書き込まれたデータのうち、最後の文字を含むようにして、先に読み出した終端コード列みなしバイト数分のデータを読み出す。そして、受信制御部217は、先に読み出した未使用履歴領域番号に該当する履歴領域iの終端コード列記憶領域に、先に読み出した終端コード列みなしバイト数分のデータを終端コード列として書き込む(ステップS574)。
【0128】
その後、受信制御部217は、先に読み出した未使用履歴領域番号に該当する履歴領域iの一致回数記憶領域に一致回数として「1」に設定する(ステップS575)。更に、受信制御部217は、先に読み出した未使用履歴領域番号に該当する履歴領域iの一致バイト数記憶領域に、先に読み出した終端コード列みなしバイト数に設定し(ステップS576)、終端コード列登録処理を終了する。
【0129】
実施例2によれば、受信制御部217は、PCからのデータを受信しなくなり、受信状況記憶部202に記憶されている受信状況情報が「データ受信中」で、かつ、モード指定情報記憶部204のモード指定情報が「終端コード列検出モード」である場合には、受信したデータ列を終端コード列の候補として認識し、この終端コード列の候補と、履歴バッファ205の履歴領域iに登録されている終端コード列とを比較し、その結果、終端コード列の候補と一致する終端コード列が履歴バッファ205の履歴領域iに登録されているとき、検出した終端コード列の候補を終端コードであると決定するため、受信タイムアウトを待つことなく印刷開始できるようになるため、上位装置からダイレクト印刷機能でPDFやEPSのファイルを受信しても、このファイルの印刷開始時間を短縮することができる。
【0130】
また、実施例2によれば、従来、上位装置からの送信されてくるPDFやEPS形式のファイルには、ファイル送信用のユーティリティを用いて、PJL言語でラッピング(先頭部分に@PJL ENTER LANGUAGE、終端部分に、終端コードとしてのUELコードを追加)することで、画像形成装置側で、PJL言語として終端コードを認識可能とする方法を用いていたが、受信制御部110が、上述したようにして終端コード列の候補を終端コード列と決定するので、PJL言語でラッピングする処理をなくすことができる。
【0131】
また、実施例2によれば、受信制御部217が、受信バッファ201に最後に記憶したデータを終端コード列として履歴バッファ205の履歴領域iに自動的に登録するので、PDFファイルやEPSファイルなどの一般に既知である終端コード列だけでなく、社内システムなどの任意な終端コード列を有するファイルについても、印刷の開始時間を短縮することができる。また、新たに終端コード列を登録する毎に、制御プログラムを変更する作業をなくすことができる。
【0132】
実施例1の発明では、上位装置としてのPCが、終端コード列比較テーブル編集ツール画面を表示し、この画面を利用して終端コード列を画像形成装置10の終端コード列比較テーブル105に登録・変更・追加し、また、画像形成装置10の終端コード列比較テーブル105に登録されている終端コード列を読み出しているが、オペレーションパネル部109に終端コード列比較テーブル編集ツール画面を表示させ、この画面を利用して終端コード列を画像形成装置10の終端コード列比較テーブル105に登録・変更・追加し、また、画像形成装置10の終端コード列比較テーブル105に登録されている終端コード列を読み出し、この読み出した終端コード列をPCに送信するようにしてもよい。
【0133】
実施例1の発明において、更に、外部記憶装置(例えばHDD)、十分な容量を有するEEPROM、又はフラッシュメモリ等を備えれば、電源がオン及びオフのタイミングで、終端コード列比較テーブル105の内容を読み出し、また、書き込むことで、テーブル値を継続して利用することが可能である。
【0134】
実施例2の発明において、更に、外部記憶装置(例えばHDD)、十分な容量を有するEEPROM、又はフラッシュメモリ等を備えれば、電源がオン及びオフのタイミングで、履歴バッファ205の内容を読み出し、また、書き込むことで、始めに終端コード列を学習させえたのち、電源オン直後より、常にその終端コード列を認識可能な状態にすることが可能である。
【図面の簡単な説明】
【0135】
【図1】本発明に係る実施例1の画像形成装置の構成を示すブロック図である。
【図2】(a)PDFファイルの構成を示すブロック図であり、(b)ESPファイルの構成を示すブロック図である。
【図3】終端コード列比較テーブルの構成を示すブロック図である。
【図4】終端コード列検出処理を説明する図である。
【図5】終端コード列比較テーブル編集ツール画面の一例を示す図である。
【図6】本発明に係る実施例1の画像形成装置の動作を示すフローチャートである。
【図7】図6中のステップS13における終端コード列検出処理の動作を示すフローチャートである。
【図8】本発明に係る実施例2の画像形成装置の構成を示すブロック図である。
【図9】図8中の履歴領域を説明する図である。
【図10】本発明に係る実施例2の画像形成装置の動作を示すフローチャート(その1)である。
【図11】本発明に係る実施例2の画像形成装置の動作を示すフローチャート(その2)である。
【図12】図10中のステップS43における終端コード列検出処理の動作を示すフローチャートである。
【図13】図11中のステップS55における終端コード列登録処理の動作を示すフローチャート(その1)である。
【図14】図11中のステップS55における終端コード列登録処理の動作を示すフローチャート(その2)である。
【図15】図11中のステップS55における終端コード列登録処理の動作を示すフローチャート(その3)である。
【符号の説明】
【0136】
10、20 画像形成装置
101、201 受信バッファ
102、202 受信状況記憶部
103、203 内部処理情報記憶部
104、204 モード指定情報記憶部
105 終端コード列比較テーブル
106 ポインタ記憶部
107、213 カウント数記憶部
108、214 受信タイムアウト検出カウンタ
109、215 オペレーションパネル部
110、216 受信制御部
111、217 デコード処理部
112、218 編集/展開処理部
113、219 印刷処理部
205 履歴バッファ
206 終端コード列みなし回数記憶部
207 終端コード列みなしバイト数記憶部
208 未使用履歴領域番号記憶部
209 一致履歴領域番号記憶部
210 最大一致バイト記憶部
211 最小一致回数記憶部
212 最小一致バイト数記憶部
213 最大履歴領域番号記憶部

【特許請求の範囲】
【請求項1】
印刷媒体に印刷するために必要となるデータを上位装置から受信する画像形成装置において、
前記上位装置から受信したデータから終端コード列を検出するための検出用終端コード列を記憶する検出用終端コード列記憶部と、
前記上位装置から受信したデータから、前記終端コード列の候補となり得る終端コード列候補を検出するコード列候補検出部と、
前記コード列候補検出部により検出された前記終端コード列候補と、前記検出用終端コード列記憶部に記憶されている前記検出用終端コード列とを比較し、該終端コード列候補と一致する前記検出用終端コード列が該検出用終端コード列記憶部に登録されているか否かを判定する登録判定部と、
前記登録判定部により、前記終端コード列候補と一致する前記検出用終端コード列が前記検出用終端コード列記憶部に登録されていると判定された場合には、該終端コード列候補を前記終端コード列であると決定する終端コード列決定部と
を備えることを特徴とする画像形成装置。
【請求項2】
前記上位装置から送信されてくるデータの受信状況を示す受信状況情報を記憶する受信状況情報記憶部と、
前記上位装置からデータを受信すると、前記受信状況情報記憶部に記憶されている受信状況情報を受信中に設定する受信状況情報設定部と
を更に備え、
前記コード列候補検出部は、前記受信状況情報記憶部に記憶されている受信状況情報が前記受信状況情報設定部により受信中に設定されたのち、所定時間の間、前記上位装置から次のデータ列を受信しない場合、前記上位装置から最後に受信したデータの最後のコード列を終端コード列候補とすることを特徴とする請求項1記載の画像形成装置。
【請求項3】
前記登録判定部により、前記終端コード列候補と一致する前記検出用終端コード列が前記検出用終端コード列記憶部に登録されていないと判定された場合には、該終端コード列候補を新たに追加する検出用終端コード列として、前記検出用終端コード列記憶部に登録する終端コード列登録部を更に備えることを特徴とする請求項1又は2記載の画像形成装置。
【請求項4】
前記検出用終端コード列記憶部は、前記検出用終端コード列以外に、更に、前記終端コード列候補と前記検出用終端コード列とを比較するか否かを判定するための判定条件を有しており、
前記コード列候補検出部により検出された前記終端コード列候補が、前記検出用終端コード記憶部に記憶されている判定条件を満たしているか否かを判定する条件判定部
を更に備え、
前記終端コード列決定部は、前記終端コード列候補が、前記検出用終端コード記憶部に記憶されている判定条件を満たしていると前記条件判定部により判定された場合で、かつ、前記終端コード列候補と一致する前記検出用終端コード列が前記検出用終端コード列記憶部に登録されていると前記登録判定部により判定された場合には、該終端コード列候補を前記終端コード列であると決定することを特徴とする請求項1乃至3のいずれかに記載の画像形成装置。
【請求項5】
前記検出用終端コード列記憶部は、前記検出用終端コード列を記憶する複数の記憶領域を有しており、
前記検出用終端コード列記憶部に有する前記記憶領域のうち、前記検出用終端コード列を記憶していない未使用の記憶領域を示す未使用領域情報を記憶する未使用領域情報記憶部を
更に備え、
前記終端コード列登録部は、前記終端コード列候補と一致する前記検出用終端コード列が前記検出用終端コード列記憶部に登録されていないと前記登録判定部により判定された場合には、前記未使用領域情報記憶部に記憶されている前記未使用領域情報に示された記憶領域に、該終端コード列候補を新たに追加する検出用終端コード列として登録することを特徴とする請求項3記載の画像形成装置。
【請求項6】
前記検出用終端コード列記憶部に有する前記記憶領域のうち、前記未使用の記憶領域を検出する未使用領域検出部と、
前記未使用領域検出部により検出された未使用の記憶領域を示す未使用領域情報を、前記未使用領域情報記憶部に登録する未使用領域情報登録部と
を更に備える請求項6記載の画像形成装置。
【請求項7】
複数のコードからなるデータを受信する受信部と、
前記データを解析する解析部と、
前記解析部の解析結果から終端コードとみなせるコード列を検出する終端コード検出部と、
入力部により入力された終端コード列を記憶する終端コード列記憶部と、
前記終端コード検出部の検出結果と前記終端コード列記憶部から読み出した終端コード列を比較する比較部と、
前記比較部の比較結果により前記データが終端コードを有すると判断する判断部と
を有することを特徴とする画像形成装置。
【請求項8】
複数のコードからなるデータを受信する受信部と、
前記データの受信タイムアウトの発生回数をカウントするカウント部と、
前記データを解析する解析部と、
前記解析部の解析結果から終端コードとみなせるコード列を検出する終端コード検出部と、
前記終端コード検出部の検出した前記コード列を記憶する履歴記憶部と、
前記終端コード検出部の検出結果と前記履歴記憶部に記憶されている前記コード列を比較する比較部と、
前記カウント部が所定カウント数以上カウントすると、前記比較部の比較結果により、前記データが終端コードを有すると判断する判断部と
を有することを特徴とする画像形成装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2009−202488(P2009−202488A)
【公開日】平成21年9月10日(2009.9.10)
【国際特許分類】
【出願番号】特願2008−48518(P2008−48518)
【出願日】平成20年2月28日(2008.2.28)
【出願人】(591044164)株式会社沖データ (2,444)
【出願人】(594202361)株式会社沖データシステムズ (259)
【Fターム(参考)】