JP2785742B2 - プリンタ装置 - Google Patents

プリンタ装置

Info

Publication number
JP2785742B2
JP2785742B2 JP7098954A JP9895495A JP2785742B2 JP 2785742 B2 JP2785742 B2 JP 2785742B2 JP 7098954 A JP7098954 A JP 7098954A JP 9895495 A JP9895495 A JP 9895495A JP 2785742 B2 JP2785742 B2 JP 2785742B2
Authority
JP
Japan
Prior art keywords
language
determination
command
data
discrimination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP7098954A
Other languages
English (en)
Other versions
JPH08290636A (ja
Inventor
克久 新原
康一 宮崎
芳則 郡司
一郎 今野
雄仁 塩見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP7098954A priority Critical patent/JP2785742B2/ja
Priority to TW085104843A priority patent/TW307846B/zh
Priority to US08/636,438 priority patent/US5854940A/en
Priority to KR1019960012411A priority patent/KR100199430B1/ko
Publication of JPH08290636A publication Critical patent/JPH08290636A/ja
Application granted granted Critical
Publication of JP2785742B2 publication Critical patent/JP2785742B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Record Information Processing For Printing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プリンタ装置に係り、
特にホストコンピュータなどの上位装置から受信したデ
ータを記述する制御言語を解釈し、当該制御言語の解釈
に基づいて印字出力を行うプリンタ装置に関する。
【0002】
【従来の技術】従来、プリンタ装置において、ホストコ
ンピュータ等から受信した制御言語の種類を判別する手
段として、以下に述べる特開平5−282109号公
報、特開104825号公報、特開平4−323069
号公報、特開平96823号公報及び特開平5−888
22号公報等に開示された技術があった。
【0003】特開平5−282109号公報によれば、
制御言語の種類を各モード固有の特徴コードに基づいて
識別する技術が開示されている。この技術は、前述した
方法でも識別できない場合は、当該装置の内蔵モードの
特徴コードにて識別し、さらにその方法でも識別できな
い場合にはカードモードの特徴コードにて識別し、それ
でも識別できなかった場合に識別不能とする方法を採用
している。
【0004】特開平5−104825号公報によれば、
入力データ内の制御コード、例えばエスケープシーケン
ス等を判断し、所定部分がすべてキャラクタで構成され
ている場合には、文字列でプリンタを制御する言語(Po
st Script)のエミュレーションを解析の対象とする技術
が開示されている。
【0005】特開平4−323069号公報によれば、
制御言語の種類毎に出現頻度の高い命令コードのテーブ
ルを用意し、比較して一致する命令コードの多い方で制
御言語の種類を決める方法が開示されている。
【0006】特開平5−96823号公報によれば、各
エミュレーション別に比較用のテーブルを持ち、ホスト
コンピュータから送られてきたデータ内の細かなデータ
列単位を各テーブルから検索し、一致する毎にそれらに
設定された重みを加算して、最終的に最も大きい加算値
を示したエミュレーションを選択するという判別方法が
開示されている。この判別方法では、判別結果を決定す
る判断基準時として、いずれかのエミュレーションが所
定値以上の加算値に達した時、或いは2番目に大きい加
算値との差が所定値以上になった時等が採用される。
【0007】特開平5−88822号公報によれば、次
のような判別方法が開示されている。即ち、入力データ
に含まれる制御文字が、優先順位の低いコマンド体系か
ら順にその体系に存在するか否かを判断していき、存在
しなければそのコマンド体系を選択対象から外してい
く。そして、残ったコマンド体系が1つになった時、そ
れを判別結果として選択し、2つ以上ある時は、他の制
御文字を残っているコマンド体系から検索し、当該制御
文字の有無により判別を行う。また、所要量のデータを
検索していった結果、2つ以上のコマンド体系が残った
場合には、優先順位の高いコマンド体系を選択する。な
お、上記所要量とは、受信バッファ容量分又は全頁分の
データ量をいい、全頁分とは、データ受信間隔が基準時
間以上となった時までの受信データ分をいう。
【0008】
【発明が解決しようとする課題】しかしながら、上記従
来技術には、次のような問題点があった。
【0009】特開平5−282109号公報に開示され
た技術では、使用頻度の高いと予想される内蔵モードを
先にチェックしているが、どのモードの使用頻度が高い
かは使用しているユーザによって異なり、判別処理のス
ピードが考慮されていないという問題点がある。
【0010】また、特開平5−104825号公報に開
示された技術では、制御コードを判別する段階と、所定
部分がすべてキャラクタで構成されていることを判別す
る段階との2段階で判別が行われており、判別処理に時
間がかかるという問題がある。
【0011】また、特開平4−323069号公報に開
示された技術では、1つの制御言語に特有のユニークな
命令コードに基づいた判別処理を行っているため、当該
命令コードを単なるデータとして有している他の制御言
語との区別ができず、誤判定が非常に大きくなるという
問題がある。
【0012】さらに、特開平5−96823号公報及び
特開平5−88822号公報に開示された技術では、上
記技術と同様に、各制御言語とも制御文字やデータ列等
の加算値等に基づいて制御言語を判別するという方法で
あり、各制御言語毎に判別方法が最適化されておらず、
処理時間がかかるという問題点を必然的に孕んでいる。
【0013】本発明は上記事実を考慮し、制御言語毎に
最適な判別ルールを設定することによって、制御言語を
決定するための処理時間を短縮させると共に、誤判定の
可能性を大幅に減じたプリンタ装置を提供することを目
的とする。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、請求項1の発明は、入力データが入力される入力手
段と、 前記入力データを記述する可能性のある制御言
語群を複数のグループに分類する分類手段と、前記分類
手段により分類されたグループ毎に互いに異なる判別ル
ールを前記入力データに対して適用することにより、前
記入力データを記述する制御言語の種類を決定する決定
手段と、前記決定手段により決定された制御言語の種類
に基づいて前記入力データを解釈して出力する出力手段
と、を含んで構成されている。
【0015】請求項2の発明は、請求項1の前記決定手
段を、前記グループ毎の判別ルールを、判別処理速度の
速い順番に適用することにより、前記入力データを記述
する制御言語の種類を決定するようにしたものである。
【0016】請求項3の発明は、請求項1の前記決定手
段が、前記入力データを構成するコードを読み取るコー
ド読取手段を備え、前記コード別の出現順序に基づいて
制御言語の種類を決定する判別ルールを少なくとも1つ
有するようにしたものである。
【0017】請求項4の発明は、請求項1の前記決定手
段が、前記入力データを構成するコードを読み取るコー
ド読取手段を備え、前記コード別の出現数に基づいて制
御言語の種類を決定する判別ルールを少なくとも1つ有
するようにしたものである。
【0018】
【作用】請求項1の発明によれば、分類手段は、入力デ
ータを記述する可能性のある制御言語群を複数のグルー
プに分類する。そして、入力手段により入力された入力
データに対して、決定手段は、分類手段により分類され
たグループ毎に互いに異なる判別ルールを適用すること
により、入力データを記述する制御言語の種類を決定す
る。そして、出力手段は、決定手段により決定された制
御言語の種類に基づいて入力データを解釈して出力す
る。これにより、従来のように一律に同様の判別ルール
を適用する判別方法と比べて、それぞれの制御言語に最
適な判別ルールを各々設定することができるので、判別
に要する処理時間の短縮化と判別精度の向上が同時に達
成できる。
【0019】請求項2の発明によれば、決定手段は、グ
ループ毎の判別ルールを、判別処理速度の速い順番に適
用することにより、入力データを記述する制御言語の種
類を決定する。これにより、直列に判別ルールを適用し
ていく場合には、判別に要する処理時間を短縮できる。
【0020】請求項3の発明によれば、決定手段は、入
力データに対して、コード読取手段により読み取られた
コード別の出現順序に基づいて制御言語の種類を決定す
る判別ルールを少なくとも1回適用する。これにより、
単純にユニークなコマンドの有無による判別よりも大幅
に判別精度を向上させることができる。
【0021】請求項4の発明によれば、決定手段は、入
力データに対して、コード読取手段により読み取られた
コード別の出現数に基づいて制御言語の種類を決定する
判別ルールを少なくとも1回適用する。これにより、単
にユニークなコマンドの有無に基づく判別ルールよりも
誤判定の可能性を少なくさせることができる。
【0022】
【実施例】
(第1実施例)以下、図面を参照して本発明の実施例を
詳細に説明する。図1に示すように、本発明の出力装置
としての画像記録装置11は、画像の記録を行う記録部
12、記録部12に画像情報を供給する画像供給装置1
3、電源部14、及び外部からの指示を入力するための
操作パネル15を備えている。
【0023】記録部12は、例えばレーザプリンタ等か
ら構成され、画像供給装置13からの動作指令信号26
に基づき、画像供給装置13から供給された画像情報2
7を記録用紙23に印字出力(画像記録)する。この画
像記録を正常に実行させるために、記録部12は、図示
しないカセットトレイに収容された記録用紙23の種類
や図示しない定着部が定着温度に達したか否か等を示す
状態信号24を画像供給装置に13に送出する。また、
記録部12は、画像情報の転送について記録部12と同
期をとるための同期パルス25を画像供給装置13に送
出する。
【0024】画像供給装置13には、ホストインターフ
ェイス端子17及び入力端子18が接続されている。ホ
ストインターフェイス端子17は、図示しないホストイ
ンターフェイスから印字データを入力させるための端子
であり、入力端子18は、図示しないネットワークから
印字データを入力させるための端子である。このホスト
インターフェイス端子17又は入力端子18を介して印
字データを2系統で入力することができる。なお、入力
端子18には、ネットワーク上の複数の装置が印字デー
タの供給源として接続される場合もある。
【0025】画像供給装置13は、記録部12から送ら
れてきた状態信号24及び同期パルス25に基づいて、
動作指令信号26を送出して記録部12を動作させると
共に、ホストインターフェイス端子17又は入力端子1
8から入力された印字データを画像情報27として記録
部12に送出して、画像記録を制御する。
【0026】操作パネル15は、キーやスイッチ等の入
力部と、液晶ディスプレイ(LCD)や発行ダイオード
(LED)等で構成された表示部とから構成され、オペ
レータの操作により画像供給装置13に記録に関する必
要な指示情報19を送出する。また、指示情報19を受
けた画像供給装置13から返送された応答情報21を表
示する。
【0027】電源部14は、商用電源(AC)を所定の
直流又は交流に変換して、記録部12及び画像供給装置
13に電力を供給する。
【0028】画像供給装置13は、図2に示すように、
各種制御の中枢的役割を果たすと共にシステムバス32
に接続されたCPU(中央処理装置)31を備えてい
る。システムバス32には、パネルI/F(インターフ
ェイス)回路33、ホストI/F回路34が接続されて
いる。
【0029】パネルI/F回路33は、操作パネル15
とのインターフェイスをとるための回路であり、オペレ
ータが操作パネル15のキーを操作すると、これに対応
した信号が操作パネル15から出力され、パネルI/F
回路33を介してシステムバス32上を転送される。ま
た、システムバス32の表示情報は、パネルI/F回路
33を介して操作パネル15に転送され、表示が行われ
る。
【0030】ホストI/F回路34は、ホストコンピュ
ータ等の上位装置とのインターフェイスをとるための回
路であり、例えば、ホストコンピュータから入力する印
字データをRS232C規格やセントロニクス準拠に基
づいて受信する回路で構成されている。
【0031】さらに、この画像供給装置13は、複数の
ホストインターフェイス端子を持つことが可能であり、
必要とするホストインターフェイスに合わせてホストI
/F回路35を増設できる。増設可能なインターフェイ
スとしては、例えば、セントロニクスインターフェイス
やイーサネット等がある。これにより、複数のホストイ
ンターフェイスから印字データを入力できる。
【0032】また、システムバス32には、不揮発性メ
モリ(NVM)37、RAM38、プログラムメモリ3
9、文字パターンメモリ41、記録部I/F回路43及
びビットマップコントローラ44が接続されている。
【0033】NVM37は、図示しない電池によってバ
ックアップされたメモリであり、画像記録装置11自体
の電源がオフになった状態でも必要なデータを保持する
ことができる。
【0034】RAM38は、CPU31の作業用のメモ
リであり、画像記録装置11の各種の制御を行う上で必
要となるデータを保持する。また、RAM38は、ホス
トI/F回路34やホストI/F回路35から入力され
た印字データを一時的に保持する受信バッファとしても
機能する。なお、このRAM38には、発生した文字パ
ターン、イメージ等を記録用紙1ページに対応させて張
りつけて電子的な編集を行うためのビットデータを格納
するビットマップメモリ42が含まれている。
【0035】プログラムメモリ39は、CPU31によ
る画像記録装置11の制御を行うためのプログラムを格
納したメモリである。なお、このプログラムメモリ39
に格納されているプログラムは、画像記録装置11の電
源がオンされた際に、CPU31により読み取られる。
【0036】文字パターンメモリ41は、プリントアウ
トを行う時の文字パターンを格納したメモリであり、い
わゆるフォントメモリと呼ばれるメモリである。
【0037】記録部I/F回路43は、記録部12との
インターフェイスをとるための回路であり、例えば、ビ
ットマップメモリ42に展開されたビットデータを、画
像情報27として記録部12に供給したり、また、状態
信号24、同期パルス25及び動作指令信号26を送受
するインターフェイスとしての役割を有する。
【0038】ビットマップコントローラ44は、ビット
マップメモリ42と記録部I/F回路43との間の画像
情報の転送に関する制御を行うための回路である。
【0039】プログラムメモリ46及び文字パターンメ
モリ47は、それぞれプログラムメモリ39及び文字パ
ターンメモリ41と同様にプログラム及び文字パターン
を格納しておくためのメモリであるが、ユーザの要求に
合わせて選択的に画像記録装置11に接続できるように
なっている。プログラムメモリ46及び文字パターンメ
モリ47としては、着脱自在のICカード形式又はSI
MM形式のROM等を用いることができる。これによ
り、各種のホストコンピュータから送られてくる印字デ
ータや制御データに対応したプログラムや文字パターン
に幅広く対応可能となる。
【0040】ハードディスク48は、大量のデータを記
憶しておくための磁気記録装置であり、文字パターンの
追加、フォームデータ及びロゴデータの保存、ホストコ
ンピュータからの入力データの保存等に使用される。こ
のハードディスク48もユーザが必要に応じて接続する
ことが可能である。
【0041】次に、プロブラムメモリ39に記憶されて
いるプログラム、すなわちソフトウエアの構造を図3に
示す。図3に示すように、最下層には、ハードディスク
48等の各周辺機器を個別に制御するためのソフトウェ
ア群であるデバイス・ドライバーが位置している。
【0042】次の階層には、OS(operating system)
が位置し、画像記録装置11を制御するソフトウェアの
中核的役割を果たしている。このOSは、タスク管理、
記憶管理、入出力管理等を行うことにより、CPU3
1、RAM38、各周辺機器等のハードウェアを管理す
る。また、ハードウェア資源の管理を土台として、ファ
イル管理、プログラム管理、通信制御等を行うことによ
り、ファイル、上位のプログラム等の論理資源を管理す
る。このような構成をとることによって、ハードウェア
の変更による上位の階層のソフトウェアの修正を最小化
できる。
【0043】OSの上位には、制御用ライブラリー、ア
プリケーション・プログラム(application program )
が位置している。制御用ライブラリには、最上層にある
アプリケーション・プログラムに使用される制御用のプ
ログラム群が格納されている。
【0044】アプリケーション・プログラムは、画像記
録装置11がユーザ所望の動作を実行するように作成さ
れた応用的なプログラムである。制御言語としてのプリ
ンタ言語を解釈し、画像に展開するデコンポーザは、こ
のアプリケーション・プログラムに属する。
【0045】図4に、アプリケーション・プログラムを
基本的な機能ブロックで示す。コントロール60はシス
テム全体の制御を行うもので、イン62及びアザーズ6
8からのジョブ開始の要求に基づいて、データプロセス
64及びアザーズ68を制御する。
【0046】このコントロール60は、以下の(1)〜
(4)のモジュールから構成されている。なお、本実施
例では、コントロール60をシステム制御部と呼称す
る。 (1)システム・コントローラ 設定情報をチェック
し、各タスクを起動する。 (2)ジョブ・コントローラ ジョブを実行制御す
る。 (3)ページ・コントローラ ビットマップメモリを
管理する。 (4)タイマー・コントローラ メッセージによるタイ
マーを管理する。
【0047】イン62は、ホストコンピュータとのデー
タの入出力を管理するものである。このような入出力を
行うため、イン62は、データプロセス64にデータを
受渡し、又はデータプロセス64からデータを受け取
る。さらに、データを受け渡したり、受け取ったりする
と、コントロール60にジョブの開始を要求する。
【0048】また、イン62は、例えば、以下のような
モジュールから構成されている。 (1)インターフェイスA ローカル・インターフェ
イスA (2)インターフェイスB ローカル・インターフェ
イスB (3)インターフェイスC ネットワーク・インター
フェイスC (4)インターフェイスD ネットワーク・インター
フェイスD (5)インターフェイスE ネットワーク・インター
フェイスE なお、ローカル・インターフェイスとしては、セントロ
ニクス、RS−232C等、ネットワーク・インターフ
ェイスとしては、イーサネット、ローカルトーク等が使
用できる。
【0049】データプロセス64は、データを処理する
ものである。この処理すべきデータはイン62から受け
取ったデータであり、処理結果は、イン62又はアウト
66に受け渡す。
【0050】また、データプロセス64は、本実施例で
規定する制御言語解釈部と同意語であり、本実施例で
は、デコンポーザと呼称する。
【0051】デコンポーザは、データプロセス64とし
て実装され、下記の種類がある。これらは、それぞれ1
つ以上のタスクとして動作する。 (1)自動判別パーサ プリンタ言語(制御言
語)を判別するタスクである。 (2)言語Aデコンポーザ プリンタ言語A(製品ネ
イティブなページ記述言語)を解釈し実行するタスク群
である。 (3)言語Bデコンポーザ プリンタ言語B(業界標
準のページ記述言語)を解釈し実行するタスク群であ
る。 (4)言語Cデコンポーザ プリンタ言語C(X社開
発プロッタ制御言語)を解釈し実行するタスク群であ
る。 (5)言語Dデコンポーザ プリンタ言語D(Y社開
発ワイヤドットプリンタ制御言語)を解釈し実行するタ
スク群である。 (6)言語Eデコンポーザ プリンタ言語E(Z社開
発ワイヤドットプリンタ制御言語)を解釈し実行するタ
スク群である。 (7)ダンプ 16進ダンプの画像を形
成するタスクである。 (8)プリント・ユーテイ リテイ ・フォーマッタタスク 各種プリント・ユーティリティの画像を形成するタスク
である。
【0052】アウト66は、データプロセス64の処理
結果のデータを出力するものである。このアウト66
は、以下のモジュールから構成されている。 (1)エンジン・コントローラ プリンタエンジン
(記録部)を制御する。
【0053】アザーズ68は、上述以外の他の各種機能
や複合的な機能を実行するものである。このアザーズ6
8は、以下のモジュールから構成されている。 (1)UI パネル15の制御を
行う。 (2)プリンタ管理エージェント ネットワークでのプ
リンタ管理システムを実現するための機能を有する。例
えば、クライアントに対して、プリンタ・リソース、状
態の設定、提供等の機能である。
【0054】以上のように、アプリケーションプログラ
ムは、いくつかの構成要素からなり、各構成要素は、さ
らにいくつかの機能モジュールから構成されている。こ
れらの機能モジュールは実際には1つ又は複数のタスク
から構成されている。デコンポーザもいくつかのタスク
群を構成している。
【0055】これらのタスク群は、制御用ライブラリと
して用意されている様々な関数を使ってタスク間の同期
を取っている。デコンポーザも、制御用ライブラリを使
ってコントロール60、イン62及びアウト66を構成
するタスク群との同期を取りながらプリント機能を実現
している。
【0056】次に、画像記録装置11の作用について説
明する。各種のホストコンピュータやワークステーショ
ン等の情報処理装置から出力された印字データ及びその
印字データを如何に出力するかを定めた制御言語から構
成される制御データは、ホストインターフェイス端子1
7又は入力端子18を介して画像供給装置13に入力さ
れる。情報処理装置には多くの種類があるため、入力さ
れた制御データは、必ずしも統一されていない。例え
ば、ある情報処理装置が送出する制御データは、記録用
紙のサイズや文字の大きさ等を細かく指定できても、他
の装置の制御データはこのような指定を行うことができ
ない場合がある。
【0057】後者のように制御データに指定が無かった
場合、パネル15の表示部には、その旨が表示される。
そこで、オペレータがパネル15により当該記録に関す
る必要なデータをキー入力すると、当該指示情報19
が、画像供給装置13に伝達され、指示情報19に基づ
く記録制御が可能となる。
【0058】なお、情報処理装置側で記録を行う用紙の
サイズや文字の大きさ等を制御データとして指定してき
た場合においても、パネル15からキー操作等により指
示情報19を入力することも可能である。このような場
合には、情報処理装置側の指示を常に優先させることも
できるし、パネル15側の入力を優先させることもでき
る。また、時間的に後で指示を与えた方を優先させるこ
とも可能である。
【0059】次に、画像供給装置13は、指示情報19
と記録部12からの状態信号とに基づいて印字可能か否
か等の判断を行い、その旨を応答情報21としてパネル
15に表示させる。例えば、指示情報19によって指示
されたサイズの用紙が記録部12にセットされていない
場合には、そのサイズの用紙をセットするように促す応
答をパネル15に表示させる。
【0060】以上のようにして記録準備が整うと、画像
供給装置13は、動作指令信号26を記録部12に送出
し、記録部12を制御データに基づいて動作させると共
に、記録部12からの同期パルス25により出力のタイ
ミングをとりながら入力された印字データを画像情報2
7として記録部12に転送する。
【0061】次に、アプリケーションプログラムの全体
動作、特にジョブ開始にあたって起動されるデコンポー
ザの作用について説明する。ジョブ開始にあたって起動
されるデコンポーザは、入力ポート毎に設定されている
プリンタ言語(制御言語)のデコンポーザである。ジョ
ブの入力ポートに対して設定されている制御言語が自動
判別を指定するものであれば、自動判別パーサが起動さ
れ(自動判別モード)、自動判別が指定されていなけれ
ば、設定されている制御言語のデコンポーザが起動され
る(プリンタ言語固定モード)。以下、この2つの場合
におけるデコンポーザの処理について各々説明する。な
お、対象となるデコンポーザは、上記の言語A、言語
B、言語C、言語D、言語Eについてのデコンポーザ及
びダンプである。
【0062】まず、プリンタ言語固定モードの処理を図
5のフローチャート及び図6のブロック図を参照して説
明する。なお、図6において、インタスク74はイン6
2によるタスク、アウトタスク76はアウト66による
タスク、ジョブコントローラ72は前述したコントロー
ル60の1つの機能モジュール、デコンポーザ70は、
当該ジョブを実行する1つのデコンポーザである。
【0063】インタスク74がジョブを検出したか否か
を判定し(ステップ300)、否定判定の場合はジョブ
が検出されるまで、デコンポーザ70の待ち状態が保た
れる。ジョブが検出されると、インタスク74は、該当
入力ポートのプリンタ言語設定を参照して、対応するデ
コンポーザのジョブとしてジョブコントローラ72にジ
ョブを要求する(ステップ302)。なお、ジョブが検
出されたとは、あるインターフェイスに一連のデータが
入力されたことを意味する。
【0064】ジョブコントローラ(システム制御部)7
2は、インタスク74からのジョブ要求を受けて、その
デコンポーザ70にジョブ実行指示を出力する(ステッ
プ304)。
【0065】非同期イベントとしてジョブ実行指示を受
けたデコンポーザ70は、デコンポーザ処理を開始する
(ステップ306)。このデコンポーザ70によるデコ
ンポーザ処理によって、インタスク74により受信され
た受信バッファ(RAM38)内のプリンタ言語は、設
定されたプリンタ言語に解釈されていく。
【0066】デコンポーザ70が、受信バッファ内のプ
リンタ言語を読み取っている際にデータの終わりを示す
EOJが検出されたか否かが判定される(ステップ30
8)。EOJが検出されない場合は、デコンポーザ処理
(ステップ306)が続行され、EOJが検出される
と、デコンポーザ70はジョブの終了処理を行う。な
お、EOJは、ジョブの終了を示すデータの入力、デー
タ入力待ち時間のタイムアウト、パネル15からの強制
排出指示の入力、ファイルの終了、ネットワークコネク
ションの終了等を検出することで判断できる。
【0067】ジョブの終了処理として、デコンポーザ7
0は、先ずアウトタスク76にジョブ終了通知を出す
(ステップ310)。これにより、エンジンコントロー
ラは、当該処理データ以降の該当ジョブの出力依頼のな
いことを検出でき(ステップ312)、出力終了の準備
が可能となる。
【0068】そして、デコンポーザ70は、ジョブコン
トローラ72に対してジョブ終了報告を行う(ステップ
314)。
【0069】以上のようにデコンポーザ処理の終了で、
デコンポーザ70は非同期イベント待ち状態に移行し
(ステップ316)、新たなデコンポーザ処理の実行指
示を待つ(ステップ304)。
【0070】次に、自動判別モードにおける処理を図7
のフローチャート、このフローチャートに現れる機能ブ
ロックと制御の流れとを示す図8及び図9を参照して説
明する。なお、図8は自動判別ができた場合、図9は自
動判別ができなかった場合を示し、新たに付加された自
動判別パーサ78は、前述したデータプロセス64とし
て実装されるプリンタ言語判別タスクである。
【0071】先ず、インタスク74がジョブを検出した
か否かが判定され(ステップ318)、否定判定の場合
は、ジョブが検出されるまで、デコンポーザ70の待ち
状態が保たれる。ジョブが検出されると、インタスク7
4は、ジョブコントローラ72に対して自動判別パーサ
78のジョブとしてジョブ要求を行う(ステップ32
0)。
【0072】ジョブ要求を受けたジョブコントローラ7
2は、自動判別パーサ78にジョブ実行指示を出す(ス
テップ322)。
【0073】ジョブ実行指示を受けた自動判別パーサ7
8は、下記の、のいずれかの条件が満たされた時
に、受信した所定数のデータ又はEOJ検出までのデー
タを対象として自動判別処理を実行する(ステップ32
4)。
【0074】 所定数のデータを受信した場合 EOJを検出した場合 この自動判別処理の詳細については後述する。
【0075】自動判別パーサ78が自動判別処理を終了
すると、入力されたプリンタ言語がどの言語であるかが
判別できたか否かが判定される(ステップ326)。入
力されたプリンタ言語がどの言語であるかが判別できた
場合は、自動判別パーサ78は、ジョブコントローラ7
2に対して判別結果のプリンタ言語に対応するデコンポ
ーザ70への切替え要求を出し(ステップ334)、ジ
ョブコントローラ72は当該デコンポーザ70を起動さ
せるべくジョブ実行指示を出す(ステップ304)。こ
れ以降は、制御が当該デコンポーザ70に移行し、ステ
ップ304を含めた以後のステップは、図5のプリンタ
固定モードと同じであるので、図5と対応する部分には
同一符号を付して説明を省略する。
【0076】なお、自動判別パーサ78が判別したプリ
ンタ言語のデコンポーザがオプション・ソフトで装着さ
れているか否かの判断と処置は、自動判別パーサ78で
はなく、ジョブコントローラ72が行う。
【0077】一方、ステップ326で、入力されたプリ
ンタ言語がどの言語であるか判別できなかった場合は、
自動判別パーサ78がジョブコントローラ72に対して
アボート(ABORT)要求を出す(ステップ32
8)。なお、この際、プリントログにプリント言語判別
不可である旨を登録する。
【0078】アボート要求を受け取ったジョブコントロ
ーラ72は、自動判別パーサ78にアボート指示を出す
(ステップ330)。これにより、自動判別パーサ78
の処理が終了となる(ステップ332)。即ち、デコン
ポーザ71が非同期イベント待ち状態に移行する(図9
参照)。なお、この時、解放されたデコンポーザは特定
のものを指さず複数あるため、図9ではデコンポーザ7
1として単一のデコンポーザ70と区別している。
【0079】そして、処理を終えた自動判別パーサ78
は、ジョブコントローラ72にアボート終了報告を行い
(ステップ333)、これにより自動判別処理は終了
し、最初のステップ318に戻る。なお、この時点では
まだアウトタスク76に対し出力依頼を行っていないた
め、判別ができた時とは異なり、アウトタスク76に対
してはジョブ終了を通知しない(図9参照)。
【0080】以上の自動判別モードを使用すれば、ホス
トコンピュータより受信されたデータがどのプリンタ言
語で記述されているか自動的に識別されるので、ユーザ
がプリンタ言語を指定しなくても、画像記録装置11は
受信されたデータに合わせて適切なプリンタ言語処理系
を選択し、プリント処理を行うことができる。
【0081】次に、上記自動判別パーサ78内部の構成
と詳細な制御の流れについて説明する。図10に示すよ
うに、自動判別パーサ78は、ジョブコントローラ72
とのインターフェイスをとるためのジョブコントローラ
インターフェイス80を備えている。
【0082】また、ジョブコントローラインターフェイ
ス80は、判別器コントローラ82にジョブ実行指示に
基づく判別開始指示を与えると共に、判別器コントロー
ラ82から送出された判別結果を受信する。また、ジョ
ブコントローラインターフェイス80は、ジョブコント
ローラ72からのジョブ実行指示を受信すると共に、デ
コンポーザ切替え要求やアボート要求をジョブコントロ
ーラ72に送出する。
【0083】判別器コントローラ82は、ジョブコント
ローラインターフェイス80からの判別開始指示に基づ
いて、受信データが特定のプリンタ言語であるか否かを
判別する判別器の各々に起動指示を与えると共に、各判
別器からの判別結果(成功、失敗及び不定のいずれか)
を受け取る。
【0084】本実施例では、言語A判別器84、言語B
判別器86、言語C判別器88、言語D判別器90及び
言語E判別器92の5つの判別器が設けられ、受信デー
タが言語A、言語B、言語C、言語D及び言語Eで記述
されているか否かを各々判別する。
【0085】言語A判別器84、言語B判別器86及び
言語C判別器88は、各々直接判別器コントローラ82
と接続されており、判別器コントローラ82からの起動
指示により、各々対象とするプリンタ言語の判別を行
い、判別結果を判別器コントローラ82に送出する。
【0086】言語D判別器90及び言語E判別器92
は、グループ判別制御部94を介して判別器コントロー
ラ82と接続されており、グループ判別制御部94を介
して入力される起動指示により、各々対象とするプリン
タ言語の判別を行い、その判別結果をグループ判別制御
部94を介して判別器コントローラ82に送出する。
【0087】なお、判別器同士を1つのグループで構成
するか否かは、例えば、対象とするプリンタ言語が互い
に共通のコマンドを持つことが1つの基準となり、共通
のコマンドを持つ場合には1つのグループで構成する。
【0088】また、これらの判別器は、バッファ96と
接続されており、バッファに格納されている受信データ
を読み取ってその判別対象としている。このバッファ9
6はローカルなメモリであって、ここに格納されている
受信データは、受信バッファ(図2でいうRAM38)
から転送されてきたものである。
【0089】各判別器は、受信データを所定のバイト数
だけ順次読み取り、各判別器が対象とする言語で用いら
れるコマンドがあるか否かを検索する。また、各判別器
は受信データを各判別器が対象とする言語であると仮定
して文法エラーがあるか否かも検索する。そして、「コ
マンドがあるか」「文法エラーがあるか」の2種類の検
索結果の組み合わせに基づいて以下の「成功」、「不
定」、「失敗」のいずれかの判別結果を出力する。
【0090】 「成功」 : 「文法エラーなし」かつ「コマンドあ
り」 「不定」 : 「文法エラーなし」かつ「コマンドな
し」 「失敗」 : 「文法エラーあり」 「成功」の場合には、受信データのプリンタ言語は、当
該判別器の対象とする言語であり、「不定」の場合に
は、当該言語であるか否かが分からない状態、「失敗」
の場合には、受信データのプリンタ言語は当該言語では
ないということを示している。
【0091】以上のように判別結果を定義することによ
り、「失敗」の場合には、「文法エラー」を検出した時
点で判別器による判別処理を打ち切ることが可能とな
る。これにより、該当しない制御言語のための判別処理
を最小限に抑えることができ、判別処理を高速化でき
る。
【0092】また、「文法エラー」を検出することによ
り、たまたま文字列として他の制御言語のコマンドを含
んでいる場合でも、誤判定を防止できるので、判別精度
を向上させることができる。
【0093】なお、この「文法エラー」は、制御言語と
しての矛盾が検出されたことを意味し、次のようにして
検出される。すなわち、各判別器は、受信データを記述
する制御言語の中から、その判別器が対象とする制御言
語にありえないような命令コードを検出した場合、又
は、その制御言語ではありえないような命令コードの組
み合わせを検出した場合に、「文法エラー」の判別結果
を出力する。また、ある特定の命令コードがデータ列の
特定の位置にあったり、命令コードの順番が定まってい
る制御言語の場合で当該位置にその命令コードがなかっ
た時も「文法エラー」に相当する。
【0094】次に、自動判別パーサ78の処理の流れに
ついて図11のフローチャートに沿って説明する。
【0095】受信バッファ(RAM38)に一定量以上
受信データが格納されると、ローカルなメモリであるバ
ッファ96に所定数分の当該受信データ、例えば256
バイトや1024バイト分の受信データが転送される
(ステップ340)。但し、当該所定数未満で受信デー
タの終わりを示すEOJが検出された場合には、EOJ
までの受信データが転送される(ステップ340)。
【0096】そして、ジョブコントローラインターフェ
イス80にジョブコントローラ72からジョブ実行指示
があると、ジョブコントローラインターフェイス80
は、判別器コントローラ82に判別開始指示を与える。
そして、判別開始指示を受けた判別器コントローラ80
は、各判別器に起動指示を与え、順番に起動させる。
【0097】先ず、言語A判別器84が起動され(ステ
ップ342)、バッファ96内の受信データが言語Aで
あるか否かの判別処理が行われる。判別処理が終了する
と、その結果が判別器コントローラ82に伝達され、判
別結果の判定が行われる(ステップ344)。
【0098】ステップ344の判定が「成功」の場合
は、言語Aが受信データのプリンタ言語であると判断さ
れる(ステップ372)。そして、その判別結果が言語
Aであるという情報がジョブコントローラインターフェ
イス80に伝達され、そこからその判別結果がシステム
に通知される(ステップ374)。又は、ジョブコント
ローラインターフェイス80よりジョブコントローラ7
2に言語Aを解釈するデコンポーザへの切替え要求が送
出される。
【0099】ステップ344の判定が「失敗」または
「不定」の場合は、次の言語B判別器86が起動され
(ステップ346)、バッファ96内の受信データが言
語Bであるか否かの判別が行われる。
【0100】その判別結果の判定(ステップ348)が
成功の場合は、言語Bが受信データのプリンタ言語であ
ると判断され、上記と同様の処理が実行される。
【0101】ステップ348の判定が「失敗」又は「不
定」の場合には、次の言語C判別器88が起動され(ス
テップ350)、バッファ96内の受信データが言語C
であるか否かの判別が行われる。
【0102】その判別結果の判定(ステップ352)が
成功の場合は、言語Cが受信データのプリンタ言語であ
ると判断され、上記と同様の処理が実行される。
【0103】このように、1つの判別器が「成功」と判
断した時点で自動判別処理を完了させることにより、該
当しない制御言語のための判別処理を行わなくて済み、
判別処理を高速化できる。
【0104】ところが、ステップ352の判定が「失
敗」又は「不定」の場合には、判別器コントローラ82
は、グループ判別制御部94に起動指示を与え、言語D
・言語E判別処理を実行させる(ステップ354)。こ
の言語D・言語E判別処理は、次のようなステップから
構成される。先ず、言語D判別器90により、受信デー
タが言語Dであるか否かの判別処理(ステップ356)
が行われ、その判別結果がグループ判別制御部94に送
出され、そこで一旦保持される。次に、言語E判別器9
2により、受信データが言語Eであるか否かの判別処理
(ステップ358)が行われ、その判別結果がグループ
判別制御部94に送出される。グループ判別制御部94
は、言語D判別器90と言語E判別器92による判別結
果とをルールに照らして比較して、どちらに合致する
か、又はいずれでもないかを判別する(ステップ36
0)。例えば、一方の言語のみの判別が成功し、他方が
「失敗」又は「不定」の場合には、前者の言語を判別結
果とする。また、両者共に「成功」の場合は言語Dを判
別結果とし、両者共に「不定」の場合は、言語Eを判別
結果とする。そして、両者共に「失敗」の場合には判別
結果を「失敗」とし、一方が「不定」で他方が「失敗」
の場合には、判別結果を「不定」とする。
【0105】判別結果が出ると、グループ判別制御部9
4は、その判別結果と「成功」の場合にはその言語の別
を判別器コントローラ82に通知する。そして、その判
別結果が判定され(ステップ362)、「成功」の場合
には、言語Dと言語Eのいずれかの言語がプリンタ言語
と判断され(ステップ372)、システムに通知される
(ステップ374)。一方、ステップ362の判定で、
「失敗」又は「不定」の場合には、「全て失敗」かそれ
とも「不定あり」かが判定される(ステップ366)。
全て失敗の場合には、判別結果が「エラー」とされ(ス
テップ370)、「不定あり」の場合には、判別結果が
言語Eとされて(ステップ368)、システムに通知さ
れる(ステップ374)。この言語Eは、前述したよう
にワイヤドットプリンタ制御言語の1つで、単純なテキ
スト出力(文字列と復帰・改行等のコマンドの組み合わ
せ)が可能な言語であるため、かかる処理が可能とな
る。
【0106】このように、相互に共通のコマンドがある
制御言語は1つのグループとして扱い、同じグループ内
の制御言語の判別については、これらの判別器による判
別が全て終了した時に、判別結果を出力するようにした
ので、同じグループ内の制御言語との誤判定が防止され
る。また、当該グループに属さない他の制御言語との誤
判定も避けられる。
【0107】さらに、ステップ360やステップ368
において扱ったように、プリンタ言語を特徴づけるコマ
ンドを含まずデータのみの「不定」の場合でも、ルール
として定めた適切な制御言語を当てはめることにより、
印字可能となる。
【0108】なお、ステップ360において、同じグル
ープ内の複数の判別器が「成功」を出力した場合には、
グループ判別制御部94は、次のような方法によって判
別結果を出力するようにしてもよい。
【0109】先ず、個々の制御言語における命令コード
をユニークコマンドと共通コマンドとに分類し、この共
通コマンドについては各判別器毎に重み付テーブルを用
意し、入力された制御言語の命令コードと一致する毎に
各判別器毎にそれらに設定された重みを加算していく。
そして、最終的な加算結果を判別結果「成功」の補助情
報として利用する。即ち、グループ内のすべての判別器
の加算結果が出た後、「成功」を検出した判別器が複数
あった場合、それら判別器毎の加算結果の大小でグルー
プのどの制御言語であるかを決定するという方法であ
る。共通コマンドは、制御上の意味、重要度が各制御言
語毎に異なるため、この方法によって、グループ内の識
別ができ、判別精度を向上させることができる。
【0110】さらにグループ内の制御言語群において、
予め優先順序を付けておき、グループ内でのすべての判
別器の結果が出た後、矛盾する命令コードを含んでいる
ことを検出した判別器を除き、この優先順序に従ってグ
ループのどの制御言語であるかを決定する方法も有効で
ある。この方法は、特にある制御言語にとって共通コマ
ンド(群)の制御上の意味が他の制御言語より重要であ
る場合に適用できる。即ち、グループ内で「成功」を検
出した判別器が複数あった場合、このことは入力データ
として共通のコマンドを含んでいることを意味する。よ
って、共通コマンド(群)の制御上の意味が他の制御言
語より重要である場合には、優先順序を確からしさの尺
度とみなすことができる。
【0111】この方法によれば、前述した方法と比べ
て、ユニークコマンドと共通コマンドの分類、重み検
索、加算処理が省略でき、処理時間が短縮されるという
利点がある。
【0112】また、上記の例では、各制御言語を判別す
るための判別ルールは、すべてコマンドの有無と命令コ
ードの矛盾の有無の検索であったが、制御言語毎に各々
定められた判別ルールを適用するようにしてもよい。即
ち、各判別器において実行される判別ルールをその対象
とする制御言語の判別にとって最適な判別ルールとする
ものであり、制御言語の種類によって判別ルールは異な
ったり同じものであったりする。これにより、無用な検
索の必要性などが少なくなり、処理時間の短縮化が図れ
ると共に、当該制御言語に最適な判別ルールによって判
別精度が向上するという更なる効果が得られる。
【0113】このような制御言語毎に異なる判別ルール
の例について、図12と図13に示す。
【0114】図12のフローチャートは、言語A判別器
84における判別ルールを示したものであり、この判別
ルールは、コマンドの出現順序によって言語Aを特定す
るというものである。言語Aでは、コマンドをセグメン
トと呼ばれる階層でレベル受信しているので1番目と2
番目に受信されるコマンドが決まっており、そのため、
コマンドの出現順序により言語が特定できる。
【0115】図12によれば、先ず、入力データを構成
するコードが読み取られ、コマンド区切りチェックが行
われることにより、1番目のコマンドが取得される(ス
テップ376前段)。この時、コメント文は読み捨て処
理される(ステップ376後段)。
【0116】次に、判別すべきデータが終了したか否か
がチェックされる(ステップ378)。データが終了し
た場合には、判別結果は不定とされ(ステップ40
4)、言語A判別器84の処理が終了される。
【0117】終了していない場合は、1番目のコマンド
チェックが行われ(ステップ380)、言語Aのデータ
において1番目に出現すべきコマンドとして正しいか否
かが判定される(ステップ382)。
【0118】1番目のコマンドチェックの結果がエラー
であった場合には、判別結果は失敗とされ(ステップ4
02)、言語A判別器84の処理が終了される。
【0119】1番目のコマンドチェックの結果が正しか
った場合には、読み取られたコードに対してパラメータ
区切りチェックが行われることにより、パラメータが取
得される(ステップ384前段)。この時もコメント文
は読み捨て処理される(ステップ384後段)。
【0120】次に、判別すべきデータが終了したか否か
がチェックされる(ステップ386)。データが終了し
た場合には、判別結果は不定とされ(ステップ40
4)、言語A判別器84の処理が終了される。
【0121】終了していない場合は、1番目のコマンド
のパラメータチェックが行われ(ステップ388)、言
語Aのデータにおいて1番目に出現すべきコマンドのパ
ラメータとして正しいか否かが判定される(ステップ3
90)。
【0122】パラメータチェックの結果がエラーであっ
た場合には、判別結果は失敗とされ(ステップ40
2)、言語A判別器84の処理が終了される。
【0123】パラメータチェックの結果が正しかった場
合には、2番目のコマンドが取得される(ステップ39
2)。この2番目のコマンドの取得方法も1番目のコマ
ンドと同様である。
【0124】次に、判別すべきデータが終了したか否か
がチェックされる(ステップ394)。データが終了し
た場合には、判別結果は不定とされ(ステップ40
4)、言語A判別器84の処理が終了される。
【0125】終了していない場合は、2番目のコマンド
チェックが行われ(ステップ396)、言語Aのデータ
において2番目に出現すべきコマンドとして正しいか否
かが判定される(ステップ398)。
【0126】2番目のコマンドチェックの結果がエラー
であった場合には、判別結果は失敗とされ(ステップ4
02)、言語A判別器84の処理が終了される。
【0127】2番目に来るべきコマンドが正しければ、
判別結果は「成功」とされ、制御言語は言語Aとみなさ
れる(ステップ400)。
【0128】以上のように、コマンドの出現順序によっ
て言語を判別する場合には、単に当該言語に特有なコマ
ンドのみを検索する場合と比べて、たまたまデータ列と
して当該コマンドと同じコードを持っている場合との混
同が避けられるので、判別精度が大幅に向上する。しか
も、図12に示したように、コマンドの出現する順序や
位置が異なれば、その時点で直ちに判別結果を「失敗」
として当該判別器の処理を終了できるので、処理時間の
短縮化も可能となる。
【0129】次に、図13のフローチャートは、言語C
判別器88における判別ルールを示したものであり、こ
の判別ルールは、言語Cのコマンドの出現数が所定数以
上になったことによって言語Cを特定するというもので
ある。
【0130】図13によれば、先ず、コマンドの取得が
行われる(ステップ406前段)。コマンドの取得方法
は、アルファベットの検索を行い、検出できたら次の1
バイトまでを取り出す。即ち、2バイト毎のデータを判
別すべきデータより取得する。また、検出したものがア
ルファベットではなく、ESC(1Bh)コードである
場合は、次の1バイトが(2Eh)であることを確認
し、さらに次の1バイトを取り出す。従って、判別デー
タより3バイトを取得する。
【0131】次に、判別データが終了したか否かがチェ
ックされる(ステップ408)。データが終了した場合
には、判別結果は不定とされ(ステップ428)、言語
C判別器88の処理が終了される。
【0132】終了していない場合は、コマンドチェック
が行われ(ステップ410)、言語Cのコマンドとして
正しいか否かが判定される(ステップ412)。
【0133】コマンドチェックの結果がエラーであった
場合、即ち、コマンド取得がエラー終了又は取得された
コマンドが言語Cのものではないと判定された場合に
は、判別結果は失敗とされ(ステップ414)、言語C
判別器88の処理が終了される。
【0134】コマンドチェックの結果が正しかった場合
には、コマンド数のカウントアップ(ステップ416)
が行われる。なお、このコマンド数は、言語C判別器8
8の起動時にゼロクリアーされている。
【0135】次に、コマンド数のカウント値が5に達し
たか否かが判定される(ステップ418)。肯定判定、
即ち、コマンド数のカウント値が5に達した場合は、判
別結果は「成功」とされ、制御言語は言語Cとして扱わ
れる(ステップ420)。
【0136】否定判定の場合は、コマンドチェックを行
ったコマンドが文字をパラメータとするコマンドか否か
が判定される(ステップ422)。文字パラメータのコ
マンドではない場合には、ステップ406に戻って判別
データから次のコマンド取得が行われ、いずれかの判別
結果が出るまで同様の処理が繰り返される。
【0137】文字パラメータのコマンドの場合には、ス
テップ406のコマンド取得でパラメータをコマンドと
して解釈しないようにするため、文字パラメータの読み
捨て処理が行われる(ステップ424)。
【0138】このパラメータの読み捨て処理で、判別デ
ータが終了したか否かの判定が行われ(ステップ42
6)、終了した場合には、判別結果を「不定」として言
語C判別器88の処理を終了させる。終了していない場
合には、ステップ406に戻って判別データから次のコ
マンド取得が行われ、いずれかの判別結果が出るまで同
様の処理が繰り返される。
【0139】以上のように、コマンドの出現数によって
言語を判別する場合には、単に当該言語に特有なコマン
ドの有無のみを検出する場合と比べて、判別精度が向上
するという利点がある。このような判別ルールを採用す
る場合において、図13で示したようにパラメータの読
み捨て処理を行えば、たまたまデータ列として当該コマ
ンドと同じコードを持っている場合との混同が避けられ
るので、判別精度が低下するおそれはなくなる。
【0140】また、上記のようにコマンドの出現数によ
って判別される制御言語同士がグループを形成する場
合、例えば上記言語Dと言語Eのような場合には、前述
したように、2つの判別を別々に行うと誤判別の可能性
が高くなる。例えば、言語Dのコマンドには、言語E判
別器92でエラーを発生しないものが存在するため、言
語Eは言語Dの判別を行わないと、最終的に言語Eであ
ると判別することができない。
【0141】かかるグループ判別の場合の最終的な判定
処理の流れを具体的に図14のフローチャートに示す。
なお、言語D判別器90と言語E判別器92の処理は、
コマンドのエラーチェックとコマンド数のカウントのみ
である。
【0142】図14によれば、先ず、言語D判別器90
によって、入力データが言語Dで記述されているか否か
の判別処理が行われる(ステップ430)。処理が終わ
ると、言語D判別器90がエラー終了したか否かが判定
され(ステップ432)、エラー終了の場合は、次の言
語E判別器92による判別処理に移行し(ステップ43
8)、エラー終了ではない場合は、言語D特有のコマン
ドの有無がチェックされる(ステップ434)。
【0143】言語D特有のコマンドがある場合には、判
別結果は「成功」とされ、制御言語は言語Dとして扱わ
れる。一方、言語D特有のコマンドがない場合には、次
の言語E判別器92による判別処理に移行する(ステッ
プ438)。
【0144】言語E判別器92によって、入力データが
言語Dで記述されているか否かの判別処理が行われ(ス
テップ438)、当該処理が終わると、言語E判別器9
2がエラー終了したか否かが判定される(ステップ44
0)。エラー終了の場合は、判別結果は「失敗」とされ
(ステップ446)、エラー終了ではない場合は、言語
E特有のコマンドの有無がチェックされる(ステップ4
42)。
【0145】言語E特有のコマンドがある場合には、判
別結果は「成功」とされ、制御言語は言語Eとして扱わ
れる。一方、言語E特有のコマンドがない場合には、判
別結果は「不定」とされる(ステップ448)。
【0146】このように、グループに属する制御言語群
の最終的な判定を行うことにより、グループ内の誤判別
を避けることができ、判定精度を向上させることができ
る。
【0147】なお、上記のように各判別器毎に判別ルー
ルを有し、かつ、「成功」を出力した時点で判別処理を
終了させるような場合には、処理時間の速い判別器の順
に処理を進めていくようにすると、処理時間の短縮化に
資することとなる。例えば、コマンドの出現順序をチェ
ックする方法が最も処理が速く、以下にコマンド数によ
るチェック、ユニークコマンドの有無のチェックとなる
ので、各判別器による判別ルールの起動をこの順にすれ
ば、最も処理の繰り返される回数の多い先頭付近の判別
器の処理時間が短いので、平均的な判別処理時間は短縮
される。
【0148】また、各判別器を起動させる順番は不変と
してもよいが、可変にすることも可能である。例えば、
直前に判別したものを先に判別する方法、どの制御言語
かの判別結果をカウントしておき、カウント値の大きい
順に判別する方法、ユーザがコマンド又は操作パネルに
よって判別する順番を指定する方法等がある。このよう
に順番を可変にすることにより、より処理時間を短縮化
させることができる。
【0149】(第2実施例)第1実施例では、各判別器
毎、即ち制御言語毎に、1つの判別ルールを有する場合
の例について詳述したが、各判別器毎に複数の判別ルー
ルを適用するようにしてもよい。これを第2実施例とし
て以下に開示する。なお、プリンタ装置の構成、ソフト
ウェアの構成については、第1実施例と同様であるの
で、同一の番号を付して説明を省略する。
【0150】第2実施例では、各判別器毎に複数の判別
ルールを有している。例えば言語A判別器84では、デ
ータの1番目及び2番目のコマンド順序が正しい時、又
は、言語Aに特定のコマンド群が検出された時に言語A
を確定する判別ルールを持っている。従って、判別ルー
ルが適用されるコマンド群が判別ルール毎に異なり、そ
れぞれに対応するグループを構成している。例えば、言
語A判別器84の場合には、コマンド群は表1のように
分類される。
【0151】なお、各判別器は、各判別器毎に与えられ
た判別ルールに従って、読み取られたコマンドを各グル
ープに分類する機能を持っている。
【表1】 表1のグループ分類に基づく言語A判別器84の動作に
ついて、図15のフローチャートで説明する。
【0152】コマンドの出現順序を検知するため、判別
開始時にコマンド数カウンターが初期化される(ステッ
プ450)。
【0153】次に、入力データから文字列が取得される
(ステップ452)。文字列とは、言語Aが定義するデ
リミターが検出されるまでの一続きのデータ列をいう。
【0154】文字列が取得されている間にデータが終了
したか否かが判定され(ステップ454)、データが終
了した場合には、判別結果が「不定」とされ(ステップ
472)、判別が終了する。
【0155】データが終了しない場合には、取得された
コマンドが正常であるか否かがチェックされ(ステップ
456)、正常なコマンドが検出できなければ、判別結
果が「失敗」とされ(ステップ474)、判別が終了す
る。
【0156】正常なコマンドが検出できたら、コマンド
数カウンターに1が加算される(ステップ458)。
【0157】次に、検出されたコマンドがグループに
属するか否かがチェックされる(ステップ460)。グ
ループに属するコマンド、即ち即座に言語を確定すべ
きコマンドであれば、判別結果が「成功」とされ(ステ
ップ476)、判別が終了する。
【0158】グループに属さないコマンドであれば、
取得されたコマンドの出現順序が1番目か2番目かによ
って分岐する(ステップ462)。
【0159】検出されたコマンドの出現順序が1番目で
あり、かつ、当該コマンドがグループに属するコマン
ド、即ちデータの1番目にあるべきコマンドであれば
(ステップ464肯定判定)、次のコマンドを取得する
ために文字列取得処理(ステップ452)に戻る。ま
た、検出されたコマンドがデータの1番目にあるにもか
かわらず、グループに属さないコマンド、即ちデータ
の1番目にあるべきではないコマンドであれば(ステッ
プ464否定判定)、判別結果が「失敗」とされ、判別
処理が終了する。
【0160】検出されたコマンドの出現順序が2番目で
あり、かつ、当該コマンドがグループに属するコマン
ド、即ちデータの2番目にあるべきコマンドであれば
(ステップ466肯定判定)、判別結果が「成功」とさ
れ、言語Aが制御言語として扱われる。また、検出され
たコマンドがデータの2番目にあるにもかかわらず、グ
ループに属さないコマンド、即ちデータの2番目にあ
るべきではないコマンドであれば(ステップ466否定
判定)、判別結果が「失敗」とされ、判別処理が終了す
る。
【0161】以上が第2実施例に係る言語A判別器84
の動作であるが、このような処理を行うことによって、
判別に要する平均時間を短縮化できるという効果があ
る。即ち、第1実施例では、言語Aを出現順序のみによ
って判別し、少なくとも2データを検出しなければなら
なかったところ、第2実施例では、例えば、データ列中
の1番目に言語Aにのみ特有のコマンドがあった場合、
この時点で判別結果を出すことができ、1データの検出
で済む。また、検知すべきデータが少なくなるというこ
とは、データが途中で終了して判別結果が不定となるお
それも少なくなり、判別精度が向上するという利点もあ
る。
【0162】次に言語Cの判別例について説明する。言
語C判別器88の判別ルールは、第1実施例では、コマ
ンドの出現数が基準であったが、第2実施例では、これ
に加えて、言語Cにのみ特有のコマンドによる判別も実
行できるようになっている。従って、言語Cのコマンド
群は表2のように分類される。
【0163】
【表2】 表2のグループ分類に基づく言語C判別器88の動作に
ついて、図16のフローチャートで説明する。
【0164】コマンドの出現順序を検知するため、判別
開始時にコマンド数カウンターが初期化される(ステッ
プ478)。
【0165】次に、入力データから文字列が取得される
(ステップ480)。なお、文字列とは、言語Cが定義
するデリミターが検出されるまでの一続きのデータ列を
いう。
【0166】文字列が取得されている間にデータが終了
したか否かが判定され(ステップ482)、データが終
了した場合には、判別結果が「不定」とされ(ステップ
494)、判別が終了する。
【0167】データが終了しない場合には、取得された
コマンドが正常であるか否かがチェックされ(ステップ
484)、正常なコマンドが検出できなければ、判別結
果が「失敗」とされ(ステップ496)、判別が終了す
る。
【0168】正常なコマンドが検出できたら、当該コマ
ンドがグループに属するか否かがチェックされる(ス
テップ486)。グループに属するコマンド、即ち即
座に言語を確定すべきコマンドであれば、判別結果が
「成功」とされ(ステップ498)、判別が終了する。
この場合、制御言語は言語Cとして扱われる。
【0169】グループに属するコマンド、即ち出現数
をカウントすべきコマンドの場合、コマンド数カウンタ
ーに1が加えられる(ステップ488)。
【0170】次に、コマンド数カウンターのコマンド数
が5に達したか否かが判定され(ステップ490)、5
にに達していない場合には、文字列取得処理(ステップ
480)に戻って同様の処理が繰り返される。
【0171】コマンド数が5に達した場合には、判別結
果が「成功」とされ(ステップ492)、制御言語が言
語Cとして扱われる。
【0172】以上が第2実施例に係る言語C判別器88
の動作であるが、このような処理を行うことによって、
判別に要する平均時間を短縮化できるという効果があ
る。即ち、第1実施例では、言語Cを出現数のみによっ
て判別し、5つのコマンドを検出しなければならなかっ
たところ、第2実施例では、例えば、5つのコマンドを
検出する前に言語Cにのみ特有のコマンドがあった場
合、この時点で判別結果を出すことができる。また、検
知すべきデータが少なくなるということは、データが途
中で終了して判別結果が不定となるおそれも少なくな
り、判別精度が向上するという利点もある。
【0173】以上が、本発明に係る実施例であるが、上
記の例に限定されるわけではない。例えば、上記実施例
で示した制御言語を判別する判別器は、上記の制御言語
の種類や数に限定されない。また、判別ルールも、出現
順序やコマンド数のチェックに限られず、例えば、各コ
マンドについての重み付け加算結果や優先順序を利用す
るようにしてもよい。
【0174】さらに、回路構成、機能ブロック、ソフト
ウェアの構成、制御や入出力の流れ等も任意好適に変更
可能である。例えば、自動判別処理等をゲートアレイで
実現することによって、より高速化を達成することもで
きる。
【0175】
【発明の効果】以上詳細に説明したように、請求項1の
発明では、グループ毎に互いに異なる判別ルールを適用
することにより、入力データを記述する制御言語の種類
を決定するようにしたので、それぞれの制御言語に最適
な判別ルールを各々設定でき、判別に要する処理時間の
短縮化と判別精度の向上が同時に達成できる、という効
果が得られる。
【0176】請求項2の発明では、グループ毎の判別ル
ールを、判別処理速度の速い順番に適用するようにした
ので、判別に要する処理時間を短縮できる、という効果
が得られる。
【0177】請求項3の発明では、コード別の出現順序
に基づいて制御言語の種類を決定する判別ルールを少な
くとも1回適用するようにしたので、単純にユニークな
コマンドの有無による判別よりも大幅に判別精度を向上
させることができる、という効果が得られる。
【0178】請求項4の発明では、コード別の出現数に
基づいて制御言語の種類を決定する判別ルールを少なく
とも1回適用するようにしたので、単にユニークなコマ
ンドの有無に基づく判別ルールよりも誤判定の可能性を
少なくさせることができる、という効果が得られる。
【図面の簡単な説明】
【図1】第1実施例に係る画像記録装置の概略の構成を
示すブロック図である。
【図2】第1実施例に係る画像記録装置の回路構成図で
ある。
【図3】第1実施例に係る画像記録装置のソフトウェア
の構造を示す図である。
【図4】アプリケーション・プログラムにおける基本的
な機能ブロック図である。
【図5】プリンタ言語固定モードにおける画像記録装置
の処理の流れを示すフローチャートである。
【図6】プリンタ言語固定モードにおける画像記録装置
の機能ブロック図である。
【図7】自動判別モードにおける画像記録装置の処理の
流れを示すフローチャートである。
【図8】自動判別モードで正常動作した場合における画
像記録装置の機能ブロック図である。
【図9】自動判別モードでアボート要求が出された場合
における画像記録装置の機能ブロック図である。
【図10】自動判別パーサの構成を示したブロック図で
ある。
【図11】自動判別パーサの処理の流れを示したフロー
チャート図である。
【図12】言語A判別器84における判別ルールの流れ
を示したフローチャートである。
【図13】言語C判別器88における判別ルールの流れ
を示したフローチャートである。
【図14】グループを形成する言語Dと言語Eの最終的
な判別ルールの流れを示したフローチャートである。
【図15】第2実施例に係る言語A判別器84における
判別ルールの流れを示したフローチャートである。
【図16】第2実施例に係る言語C判別器88における
判別ルールの流れを示したフローチャートである。
【符号の説明】
70 デコンポーザ 78 自動判別パーサ 82 判別器コントローラ 84 言語A判別器 86 言語B判別器 88 言語C判別器 90 言語D判別器 92 言語E判別器 94 グループ判別制御部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 今野 一郎 埼玉県岩槻市府内3丁目7番1号 富士 ゼロックス株式会社岩槻事業所内 (72)発明者 塩見 雄仁 埼玉県岩槻市府内3丁目7番1号 富士 ゼロックス株式会社岩槻事業所内 (56)参考文献 特開 平6−71978(JP,A) 特開 平7−84738(JP,A) 特開 平8−2067(JP,A) (58)調査した分野(Int.Cl.6,DB名) B41J 29/38 B41J 5/30 G06F 3/12

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力データが入力される入力手段と、 前記入力データを記述する可能性のある制御言語群を複
    数のグループに分類する分類手段と、 前記分類手段により分類されたグループ毎に互いに異な
    る判別ルールを前記入力データに対して適用することに
    より、前記入力データを記述する制御言語の種類を決定
    する決定手段と、 前記決定手段により決定された制御言語の種類に基づい
    て前記入力データを解釈して出力する出力手段と、 を含むプリンタ装置。
  2. 【請求項2】 前記決定手段は、前記グループ毎の判別
    ルールを、判別処理速度の速い順番に適用することによ
    り、前記入力データを記述する制御言語の種類を決定す
    る請求項1に記載のプリンタ装置。
  3. 【請求項3】 前記決定手段は、前記入力データを構成
    するコードを読み取るコード読取手段を備え、前記コー
    ド別の出現順序に基づいて制御言語の種類を決定する判
    別ルールを少なくとも1つ有する請求項1に記載のプリ
    ンタ装置。
  4. 【請求項4】 前記決定手段は、前記入力データを構成
    するコードを読み取るコード読取手段を備え、前記コー
    ド別の出現数に基づいて制御言語の種類を決定する判別
    ルールを少なくとも1つ有する請求項1に記載のプリン
    タ装置。
JP7098954A 1995-04-24 1995-04-24 プリンタ装置 Expired - Fee Related JP2785742B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP7098954A JP2785742B2 (ja) 1995-04-24 1995-04-24 プリンタ装置
TW085104843A TW307846B (ja) 1995-04-24 1996-04-23
US08/636,438 US5854940A (en) 1995-04-24 1996-04-23 Output control system for interpreting input data according to a specific control language based upon outputs from a plurality of control language determining devices
KR1019960012411A KR100199430B1 (ko) 1995-04-24 1996-04-23 출력제어장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7098954A JP2785742B2 (ja) 1995-04-24 1995-04-24 プリンタ装置

Publications (2)

Publication Number Publication Date
JPH08290636A JPH08290636A (ja) 1996-11-05
JP2785742B2 true JP2785742B2 (ja) 1998-08-13

Family

ID=14233493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7098954A Expired - Fee Related JP2785742B2 (ja) 1995-04-24 1995-04-24 プリンタ装置

Country Status (1)

Country Link
JP (1) JP2785742B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7973954B2 (en) 2006-08-28 2011-07-05 Sharp Laboratories Of America, Inc. Method and apparatus for automatic language switching for an imaging device

Also Published As

Publication number Publication date
JPH08290636A (ja) 1996-11-05

Similar Documents

Publication Publication Date Title
EP0834800B1 (en) Method and apparatus for controlling output of a printer
US7310164B2 (en) Printer, printing control apparatus and printing system using unique job identifiers, and control method therefor
US7199890B2 (en) Print control method and apparatus
US5165014A (en) Method and system for matching the software command language of a computer with the printer language of a printer
KR100199430B1 (ko) 출력제어장치
JP3287787B2 (ja) 出力制御方法及び装置
JP4401662B2 (ja) 印刷制御装置および印刷制御方法
JPH05177884A (ja) 印字装置の制御装置
JP2785742B2 (ja) プリンタ装置
EP0608115B1 (en) Output control method and apparatus
US6496279B2 (en) Image processing apparatus, method and memory medium therefor
US7764394B2 (en) Data processing apparatus, data processing method, and data processing program
EP0545648B1 (en) Automatic language determination control for printer
JP2785743B2 (ja) データ処理装置
JP2861859B2 (ja) 出力制御装置
JP2853606B2 (ja) プリンタ装置
US5975775A (en) Information recording apparatus and program storage device readable by the apparatus having emulation processing with error recovery
JP3610194B2 (ja) 印刷制御装置および印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
KR100334102B1 (ko) 프린터의 이력 관리방법
JPH07121318A (ja) リモートプリンティングシステム
JPH08267878A (ja) プリンタ装置及びその制御方法
JPH09118049A (ja) 印字装置
JPH08221228A (ja) 印字情報識別装置
JPH0995026A (ja) 印刷装置および印刷装置のデータ処理方法
JPH04263965A (ja) 印字装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090529

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100529

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110529

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110529

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees