JP3230916B2 - 符号化タイプ認識方法及び符号化タイプ認識装置 - Google Patents
符号化タイプ認識方法及び符号化タイプ認識装置Info
- Publication number
- JP3230916B2 JP3230916B2 JP31886093A JP31886093A JP3230916B2 JP 3230916 B2 JP3230916 B2 JP 3230916B2 JP 31886093 A JP31886093 A JP 31886093A JP 31886093 A JP31886093 A JP 31886093A JP 3230916 B2 JP3230916 B2 JP 3230916B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- spdl
- printer
- document
- file
- 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
Links
Landscapes
- Record Information Processing For Printing (AREA)
Description
【0001】
【産業上の利用分野】本発明は、最終形文書に関し、最
終形文書を標準ページ記述言語に符号化するために用い
られた符号化タイプの自動認識に係る。
終形文書を標準ページ記述言語に符号化するために用い
られた符号化タイプの自動認識に係る。
【0002】ここで、最終形文書とは、コンピュータ・
プリンタに対するコマンドのみならず、リモートファク
シミリプリンタやその他のディスプレイもしくはプレゼ
ンテーション装置に対するコマンドをも意味するもので
ある。
プリンタに対するコマンドのみならず、リモートファク
シミリプリンタやその他のディスプレイもしくはプレゼ
ンテーション装置に対するコマンドをも意味するもので
ある。
【0003】本発明は特に、文書が標準ページ記述言語
(SPDL)に符号化されているか、ページ記述言語に
標準化されているならばバイナリフォーマットとクリア
テキストフォーマットのいずれに符号化されているか、
を効率的に自動判定する方法及び装置に関する。
(SPDL)に符号化されているか、ページ記述言語に
標準化されているならばバイナリフォーマットとクリア
テキストフォーマットのいずれに符号化されているか、
を効率的に自動判定する方法及び装置に関する。
【0004】
【従来の技術】Adobe Systems社のポスト
スクリプト(PostScript,登録商標)はペー
ジ記述言語(”PDL”)であるが、これは元々はクリ
アテキスト符号化言語だけであった。クリアテキスト符
号化言語は人が読解できるタイプのコンピュータ言語で
ある。非クリアテキスト符号化言語は、例えば文書のバ
イナリ符号化である。その文書の2進または16進表現
を見ても、人は内容を容易には理解できないからであ
る。ポストスクリプト・レベル2システム及びディスプ
レイ・ポストスクリプトシステムでは、バイナリトーク
ン符号化及びバイナリオブジェクト符号化を追加され
た。
スクリプト(PostScript,登録商標)はペー
ジ記述言語(”PDL”)であるが、これは元々はクリ
アテキスト符号化言語だけであった。クリアテキスト符
号化言語は人が読解できるタイプのコンピュータ言語で
ある。非クリアテキスト符号化言語は、例えば文書のバ
イナリ符号化である。その文書の2進または16進表現
を見ても、人は内容を容易には理解できないからであ
る。ポストスクリプト・レベル2システム及びディスプ
レイ・ポストスクリプトシステムでは、バイナリトーク
ン符号化及びバイナリオブジェクト符号化を追加され
た。
【0005】ファイルがクリアテキスト符号化されたポ
ストスクリプトファイルであるかバイナリ符号化された
ポストスクリプトファイルであるか判定するために、フ
ァイルの最初のキャラクタが調べられ、そのキャラクタ
が128から159の範囲内であればバイナリのポスト
スクリプトファイルであると見做される。ポストスクリ
プトのクリアテキストファイル用推奨シンタックスによ
れば、プログラムの最初の行を”%!PS−Adobe
−3.0”で始めることが推奨されている。このファイ
ル先頭のコメント行は、コメントの前及びコメント中に
スペースが存在しないものとされる。このコメントは、
文書マネージャに対し、ファイルが、ポストスクリプト
の文書構造規約バージョン3.0に適合したプログラム
を内容としたポストスクリプトファイルであることを知
らせる。文書がポストスクリプトファイルであるか判定
するのに、ファイルの先頭に”%!PS−Adobe−
3.0”のパターンがあることを調べるだけでよい。し
かし、この言語自体は、ポストスクリプトであることを
自己識別するものではない。したがって、この最初の行
を省略しても、ポストスクリプトインタープリタは入力
を拒否しない。
ストスクリプトファイルであるかバイナリ符号化された
ポストスクリプトファイルであるか判定するために、フ
ァイルの最初のキャラクタが調べられ、そのキャラクタ
が128から159の範囲内であればバイナリのポスト
スクリプトファイルであると見做される。ポストスクリ
プトのクリアテキストファイル用推奨シンタックスによ
れば、プログラムの最初の行を”%!PS−Adobe
−3.0”で始めることが推奨されている。このファイ
ル先頭のコメント行は、コメントの前及びコメント中に
スペースが存在しないものとされる。このコメントは、
文書マネージャに対し、ファイルが、ポストスクリプト
の文書構造規約バージョン3.0に適合したプログラム
を内容としたポストスクリプトファイルであることを知
らせる。文書がポストスクリプトファイルであるか判定
するのに、ファイルの先頭に”%!PS−Adobe−
3.0”のパターンがあることを調べるだけでよい。し
かし、この言語自体は、ポストスクリプトであることを
自己識別するものではない。したがって、この最初の行
を省略しても、ポストスクリプトインタープリタは入力
を拒否しない。
【0006】標準ページ記述言語(SPDL)は、本発
明者を含む数人により開発中の国際標準として提案され
ているPDLであり、現在、国際標準化機構(”IS
O”)の一セクションへ、ISO/IEC DIS 1
0180として草案が出されており、これはニューヨー
クにある米国規格協会(”ANSI”)を通じて入手で
きる。バイナリSPDL文書もクリアテキストSPDL
文書も、入力がSPDLであることを識別するためのヘ
ッダを含んでいる。
明者を含む数人により開発中の国際標準として提案され
ているPDLであり、現在、国際標準化機構(”IS
O”)の一セクションへ、ISO/IEC DIS 1
0180として草案が出されており、これはニューヨー
クにある米国規格協会(”ANSI”)を通じて入手で
きる。バイナリSPDL文書もクリアテキストSPDL
文書も、入力がSPDLであることを識別するためのヘ
ッダを含んでいる。
【0007】
【発明が解決しようとする課題】本発明の一つの目的
は、入力データが標準ページ記述言語(SPDL)のバ
イナリ表現とクリアテキスト表現のいずれに符号化され
ているかを認識するための方法及び装置を提供すること
である。
は、入力データが標準ページ記述言語(SPDL)のバ
イナリ表現とクリアテキスト表現のいずれに符号化され
ているかを認識するための方法及び装置を提供すること
である。
【0008】本発明のもう一つの目的は、入力データが
標準ページ記述言語(SPDL)のデータであるか判定
するための方法及び装置を提供することである。
標準ページ記述言語(SPDL)のデータであるか判定
するための方法及び装置を提供することである。
【0009】
【課題を解決するための手段】これらの目的及び他の目
的を達成するため、本発明は、ファイルがSPDLファ
イルであるか、SPDLファイルであればバイナリフォ
ーマットまたはクリアテキストフォーマットのいずれに
符号化されているか、を判定するための効率的な方法及
び装置を提供する。
的を達成するため、本発明は、ファイルがSPDLファ
イルであるか、SPDLファイルであればバイナリフォ
ーマットまたはクリアテキストフォーマットのいずれに
符号化されているか、を判定するための効率的な方法及
び装置を提供する。
【0010】本発明による方法の骨子は、(a)ISO
/IEC8825の符号化ルールの下でページ記述言語
コマンドを処理するステップと、(b)該コマンドの先
頭のタグが、該コマンドがバイナリSPDL標準の下で
符号化されていることを示すオブジェクト識別子を含む
か判定し、該コマンドがバイナリSPDL標準の下で符
号化されていると判定したときに当該方法の処理を終了
するステップと、(c)該コマンドの先頭に戻って、テ
キスト符号化フォーマットの下で該コマンドを処理し、
該コマンドの最初のバイト及び後続のバイトの読み込み
を、読み込んだバイトがスペース、CR(キャリッジリ
ターン)、LF(ラインフィード)またはTab(タ
ブ)のグループより選ばれたバイトを含まなくなるまで
行なうステップと、(c)該コマンドの後続のバイト
が、該コマンドがクリアテキストSPDLフォーマット
で符号化されていることを示す文字列を含むか判定する
ステップと、該コマンドがクリアテキストSPDLフォ
ーマット、バイナリSPDLフォーマットのいずれにも
符号化されていないと判定されたときに、該コマンドが
非SPDLファイルのものである旨を指示するステップ
とからなるというものである。
/IEC8825の符号化ルールの下でページ記述言語
コマンドを処理するステップと、(b)該コマンドの先
頭のタグが、該コマンドがバイナリSPDL標準の下で
符号化されていることを示すオブジェクト識別子を含む
か判定し、該コマンドがバイナリSPDL標準の下で符
号化されていると判定したときに当該方法の処理を終了
するステップと、(c)該コマンドの先頭に戻って、テ
キスト符号化フォーマットの下で該コマンドを処理し、
該コマンドの最初のバイト及び後続のバイトの読み込み
を、読み込んだバイトがスペース、CR(キャリッジリ
ターン)、LF(ラインフィード)またはTab(タ
ブ)のグループより選ばれたバイトを含まなくなるまで
行なうステップと、(c)該コマンドの後続のバイト
が、該コマンドがクリアテキストSPDLフォーマット
で符号化されていることを示す文字列を含むか判定する
ステップと、該コマンドがクリアテキストSPDLフォ
ーマット、バイナリSPDLフォーマットのいずれにも
符号化されていないと判定されたときに、該コマンドが
非SPDLファイルのものである旨を指示するステップ
とからなるというものである。
【0011】また、本発明による装置の骨子は、(a)
ページ記述言語コマンドの先頭の3つのタグのいずれか
が、該コマンドがバイナリSPDLフォーマットに符号
化されていることを示すオブジェクト識別子を含むか判
定するためのバイナリ判定手段と、(b)該バイナリ判
定手段で該コマンドの初めの3つのタグが、該コマンド
がバイナリSPDLフォーマットで符号化されているこ
とを示すオブジェクト識別子を含んであると判定したと
きに、該文書をバイナリで解析するための手段と、
(c)ファイル開始コマンドのバイトが、0個または1
個以上のスペース、CR、LFまたはTabを表わし、
その後に該コマンドがクリアテキストSPDLフォーマ
ットであることを示すパターンが続いているかを判定す
るためのクリアテキスト判定手段と、(d)該クリアテ
キスト判定手段で、該ファイルがクリアテキストSPD
Lフォーマットに符号化されていると判定したときに該
コマンドをクリアテキストで解析するための手段とから
なるというものである。
ページ記述言語コマンドの先頭の3つのタグのいずれか
が、該コマンドがバイナリSPDLフォーマットに符号
化されていることを示すオブジェクト識別子を含むか判
定するためのバイナリ判定手段と、(b)該バイナリ判
定手段で該コマンドの初めの3つのタグが、該コマンド
がバイナリSPDLフォーマットで符号化されているこ
とを示すオブジェクト識別子を含んであると判定したと
きに、該文書をバイナリで解析するための手段と、
(c)ファイル開始コマンドのバイトが、0個または1
個以上のスペース、CR、LFまたはTabを表わし、
その後に該コマンドがクリアテキストSPDLフォーマ
ットであることを示すパターンが続いているかを判定す
るためのクリアテキスト判定手段と、(d)該クリアテ
キスト判定手段で、該ファイルがクリアテキストSPD
Lフォーマットに符号化されていると判定したときに該
コマンドをクリアテキストで解析するための手段とから
なるというものである。
【0012】
【作用】本発明の方法及び装置は、ファイルをバイナリ
ファイルとみなして処理し、その初めの3つのタグに関
して、オブジェクト識別子”28 CF 44 00H”を含むか
調べる。このオブジェクト識別子が初めの3つのタグ中
に存在するときは、そのファイルをバイナリフォーマッ
トのSPDLファイルであると判定して符号化フラグを
バイナリに設定する。
ファイルとみなして処理し、その初めの3つのタグに関
して、オブジェクト識別子”28 CF 44 00H”を含むか
調べる。このオブジェクト識別子が初めの3つのタグ中
に存在するときは、そのファイルをバイナリフォーマッ
トのSPDLファイルであると判定して符号化フラグを
バイナリに設定する。
【0013】初めの3つのタグにオブジェクト識別子”
28 CF 44 00H”が含まれていないときは、このファイ
ルを再度調べてクリアテキストフォーマットに符号化さ
れているか判定する。次に処理はファイルの最初のバイ
トに戻り、このバイトがオプションの”Sセパレータ”
であるか判定する。Sセパレータはスペース,CR,L
FまたはTabであるものと定義されている。最初のバ
イトがSセパレータであるときは、セパレータがなくな
るまで後続のバイトを読む。
28 CF 44 00H”が含まれていないときは、このファイ
ルを再度調べてクリアテキストフォーマットに符号化さ
れているか判定する。次に処理はファイルの最初のバイ
トに戻り、このバイトがオプションの”Sセパレータ”
であるか判定する。Sセパレータはスペース,CR,L
FまたはTabであるものと定義されている。最初のバ
イトがSセパレータであるときは、セパレータがなくな
るまで後続のバイトを読む。
【0014】次に、文字列”<!DOCTYPE”に出
会うはずである。その大文字、小文字は問わない。文字
列”<!DOCTYPE”に出会わない場合、その文書
をバイナリSPDLファイルでもクリアテキストSPD
Lファイルでもないと判定する。SPDL言語条件を満
たすためには、次のキャラクタはSセパレータで、その
後に1個以上のSセパレータが来なければならない。こ
のパターンを検出できなければ、その文書はSPDL文
書ではない。次のキャラクタ列は”SPDL”のはずで
あるが、大文字、小文字のいずれでもよい。”SPD
L”を検出したならば、その文書はクリアテキストSP
DLファイルである。理由の如以に関係なく、文書がバ
イナリSPDLファイルでもクリアテキストSPDLフ
ァイルでもないと判定された場合には、あるルーチンが
コールされて当該ファイルがSPDLファイルでないこ
とを表示し、エラーフラグにエラーコードが設定され
る。
会うはずである。その大文字、小文字は問わない。文字
列”<!DOCTYPE”に出会わない場合、その文書
をバイナリSPDLファイルでもクリアテキストSPD
Lファイルでもないと判定する。SPDL言語条件を満
たすためには、次のキャラクタはSセパレータで、その
後に1個以上のSセパレータが来なければならない。こ
のパターンを検出できなければ、その文書はSPDL文
書ではない。次のキャラクタ列は”SPDL”のはずで
あるが、大文字、小文字のいずれでもよい。”SPD
L”を検出したならば、その文書はクリアテキストSP
DLファイルである。理由の如以に関係なく、文書がバ
イナリSPDLファイルでもクリアテキストSPDLフ
ァイルでもないと判定された場合には、あるルーチンが
コールされて当該ファイルがSPDLファイルでないこ
とを表示し、エラーフラグにエラーコードが設定され
る。
【0015】
【実施例】添付図面を参照するが、各図において同一の
参照番号は同一部または対応部を示す。
参照番号は同一部または対応部を示す。
【0016】図1にバイナリSPDLファイルのヘッダ
すなわち開始部の構造に関するルールを示すが、これは
SPDL ISO委員会の1992年9月30日会合で
修正された文書”ISO/IEC JTC 1/SC
18/WG 8 N 1453”に示されたものであ
る。
すなわち開始部の構造に関するルールを示すが、これは
SPDL ISO委員会の1992年9月30日会合で
修正された文書”ISO/IEC JTC 1/SC
18/WG 8 N 1453”に示されたものであ
る。
【0017】図1は、バイナリSPDLファイルのヘッ
ダが外部タイプのクラスタグであって、SPDL−ID
を含むオブジェクト識別子への直接参照を含むことを示
している。バイナリSPDL文書は、ISO/IEC
8824:1990に定義された”Abstract
Syntax Notation One”(ASN.
1)によって符号化され、ISO/IEC 8825:
1990に定義された”Basic Encoding
Rules”に準拠する。
ダが外部タイプのクラスタグであって、SPDL−ID
を含むオブジェクト識別子への直接参照を含むことを示
している。バイナリSPDL文書は、ISO/IEC
8824:1990に定義された”Abstract
Syntax Notation One”(ASN.
1)によって符号化され、ISO/IEC 8825:
1990に定義された”Basic Encoding
Rules”に準拠する。
【0018】図2はISO/EIC 8825に定義さ
れたSPDL文書のバイナリ符号化の構造を示す。各構
造エレメントの符号化は、0個または1個以上の識別子
オクテットより始まり、その後に0個または1個以上の
長さオクテットが続き、次に0個または1個以上のコン
テント・オクテットが続く。
れたSPDL文書のバイナリ符号化の構造を示す。各構
造エレメントの符号化は、0個または1個以上の識別子
オクテットより始まり、その後に0個または1個以上の
長さオクテットが続き、次に0個または1個以上のコン
テント・オクテットが続く。
【0019】図3はISO/IEC 8825に定義さ
れた識別子オクテットの構造を示す。識別子オクテット
のビット8及びビット7は構造のクラスを示し、ビット
6は構造がプリミティブ構造であるか組み立て(CONSTR
UCTED)構造であるかを示す。ここで”プリミティブ”
とは、符号化しようとする構造が付加的な構造エレメン
トを持たないこと、したがってプリミティブのコンテン
ト・オクテットはデータのみからなることを意味する。
識別子オクテットのビット6が0のときは、プリミティ
ブ構造であることを示す。識別子オクテットのビット6
が1のときは、構造エレメントが組み立てエレメントで
あることを示す。組み立てエレメントであるということ
は、コンテント・オクテット中にさらに構造エレメント
が存在することを意味する。識別子オクテットのビット
1からビット5までは、タグの識別番号が入る。
れた識別子オクテットの構造を示す。識別子オクテット
のビット8及びビット7は構造のクラスを示し、ビット
6は構造がプリミティブ構造であるか組み立て(CONSTR
UCTED)構造であるかを示す。ここで”プリミティブ”
とは、符号化しようとする構造が付加的な構造エレメン
トを持たないこと、したがってプリミティブのコンテン
ト・オクテットはデータのみからなることを意味する。
識別子オクテットのビット6が0のときは、プリミティ
ブ構造であることを示す。識別子オクテットのビット6
が1のときは、構造エレメントが組み立てエレメントで
あることを示す。組み立てエレメントであるということ
は、コンテント・オクテット中にさらに構造エレメント
が存在することを意味する。識別子オクテットのビット
1からビット5までは、タグの識別番号が入る。
【0020】図4はクラスのタイプと、それらの識別子
オクテットにおける符号化を示す。例えば、識別子オク
テットのビット8及びビット7がともに0のときは、タ
グのクラスはユニバーサルである。
オクテットにおける符号化を示す。例えば、識別子オク
テットのビット8及びビット7がともに0のときは、タ
グのクラスはユニバーサルである。
【0021】図5はISO/IEC 8824に定義さ
れたユニバーサル・タイプのタグ割り当てを示す。例え
ば、ユニバーサル8は外部(external)クラス、ユニバ
ーサル16はシーケンス(sequence)クラス、ユニバー
サル6はオブジェクト識別子(object idendifier)ク
ラスである。
れたユニバーサル・タイプのタグ割り当てを示す。例え
ば、ユニバーサル8は外部(external)クラス、ユニバ
ーサル16はシーケンス(sequence)クラス、ユニバー
サル6はオブジェクト識別子(object idendifier)ク
ラスである。
【0022】図6はバイナリSPDL文書の初めの3つ
のタグを示す。1番目のタグはユニバーサル外部であ
る。例えば、1番目のバイトの最も左側の2ビットは0
0でクラスがユニバーサルであることを示しており、次
の1ビットは1で構造が組み立て構造であること、つま
り追加の構造エレメントを含んでいることを示してお
り、また右側の5ビットは2進の8で、外部タイプ・タ
グを示している。外部タイプ・タグは指定された集合か
ら任意のデータ値を挿入することができる(詳細につい
てはISO/IEC 8824を参照)。2番目のバイ
トは1番目のタグの長さバイトである。各種タグのため
のオプション・エレメントがあるので、1番目のタグの
長さオクテットは、そのタグのオプション・エレメント
が存在するか否かが分かるまで判定できない。
のタグを示す。1番目のタグはユニバーサル外部であ
る。例えば、1番目のバイトの最も左側の2ビットは0
0でクラスがユニバーサルであることを示しており、次
の1ビットは1で構造が組み立て構造であること、つま
り追加の構造エレメントを含んでいることを示してお
り、また右側の5ビットは2進の8で、外部タイプ・タ
グを示している。外部タイプ・タグは指定された集合か
ら任意のデータ値を挿入することができる(詳細につい
てはISO/IEC 8824を参照)。2番目のバイ
トは1番目のタグの長さバイトである。各種タグのため
のオプション・エレメントがあるので、1番目のタグの
長さオクテットは、そのタグのオプション・エレメント
が存在するか否かが分かるまで判定できない。
【0023】バイナリSPDL文書の先頭の2番目のタ
グは、オプション・シーケンスである。図6に示される
ように、このオプション・シーケンスはクラスタグ割り
当てが16のユニバーサル組み立てタグである。シーケ
ンス・オクテットの次は長さオクテットである。しか
し、オプション・アイテムがあるので、オプション・ア
イテムの有無が分からないとタグの長さを判定できな
い。
グは、オプション・シーケンスである。図6に示される
ように、このオプション・シーケンスはクラスタグ割り
当てが16のユニバーサル組み立てタグである。シーケ
ンス・オクテットの次は長さオクテットである。しか
し、オプション・アイテムがあるので、オプション・ア
イテムの有無が分からないとタグの長さを判定できな
い。
【0024】次のタグはオブジェクト識別子タグであ
る。なお、2番目のタグとしてオプション・シーケンス
が存在しなければ、オブジェクト識別子は3番目のタグ
ではなく2番目のタグになる。オブジェクト識別子タグ
は、識別子オクテット、長さオクテット及びコンテント
・オクテットからなる。識別子オクテットの初めの2ビ
ットは00で、ユニバーサル・クラスのタグであること
を示す。3番目のビットは0で、クラスタグがプリミテ
ィブであって他の構造エレメントを含まないことを示し
ている。最後の5ビットの内容は2進の6であり、4バ
イトのコンテント・オクテットがあることを示してい
る。このコンテント・オクテットは”28CF 44
00 H”で、これはファイルがバイナリSPDLファ
イルであることを示している。
る。なお、2番目のタグとしてオプション・シーケンス
が存在しなければ、オブジェクト識別子は3番目のタグ
ではなく2番目のタグになる。オブジェクト識別子タグ
は、識別子オクテット、長さオクテット及びコンテント
・オクテットからなる。識別子オクテットの初めの2ビ
ットは00で、ユニバーサル・クラスのタグであること
を示す。3番目のビットは0で、クラスタグがプリミテ
ィブであって他の構造エレメントを含まないことを示し
ている。最後の5ビットの内容は2進の6であり、4バ
イトのコンテント・オクテットがあることを示してい
る。このコンテント・オクテットは”28CF 44
00 H”で、これはファイルがバイナリSPDLファ
イルであることを示している。
【0025】クリアテキストSPDLファイルの場合、
SPDLは、ISO 8879:1986に定義された
Standard Generalized Mark
upLanguageに従ってファイルを符号化する。
図7は、この定義の下でクリアテキストSPDLファイ
ルの開始部つまりヘッダがどのように符号化されなけれ
ばならないかを示している。ファイルは0個または1個
以上のSセパレータで始まる。Sセパレータは、スペー
ス、CR(キャリッジリターン)、LF(ラインフィー
ド)またはタブのASCIIキャラクタである。0個ま
たは1個以上のSセパレータの次に文字列”<!DOC
TYPE”が来る。その次は少なくとも1個のSセパレ
ータで、その後に文字列”SPDL”が続く。クリアテ
キストSPDLファイルのヘッダの文字は大文字でなく
ともかまわない。
SPDLは、ISO 8879:1986に定義された
Standard Generalized Mark
upLanguageに従ってファイルを符号化する。
図7は、この定義の下でクリアテキストSPDLファイ
ルの開始部つまりヘッダがどのように符号化されなけれ
ばならないかを示している。ファイルは0個または1個
以上のSセパレータで始まる。Sセパレータは、スペー
ス、CR(キャリッジリターン)、LF(ラインフィー
ド)またはタブのASCIIキャラクタである。0個ま
たは1個以上のSセパレータの次に文字列”<!DOC
TYPE”が来る。その次は少なくとも1個のSセパレ
ータで、その後に文字列”SPDL”が続く。クリアテ
キストSPDLファイルのヘッダの文字は大文字でなく
ともかまわない。
【0026】図8はネットワークとそれに接続された装
置を示しており、そのいずれの装置も本発明を採用可能
である。ネットワーク14には、プリンタコントローラ
6と印刷エンジン4を持つプリンタ2が接続されてい
る。また、ワークステーション8も、プリンタ12と接
続した印刷サーバ10とともにネットワークに接続され
ている。
置を示しており、そのいずれの装置も本発明を採用可能
である。ネットワーク14には、プリンタコントローラ
6と印刷エンジン4を持つプリンタ2が接続されてい
る。また、ワークステーション8も、プリンタ12と接
続した印刷サーバ10とともにネットワークに接続され
ている。
【0027】図9はプリンタ2のプリンタコントローラ
6の詳細を示す。プリンタコントコントローラ6は、ホ
ストインターフェイス26を介してホスト28と接続さ
れる。ホスト28は、どのようなコンピュータでもよ
く、また、例えばワークステーション8とすることもで
きる。ワークステーション8は、例えばネットワーク1
4、シリアルプリンタケーブル、またはパラレルプリン
タケーブルを介してホスト28と接続できる。このプリ
ンタコントローラは6、CPU20、RAM22、本発
明プロセスを実現するROM24、印刷エンジンインタ
ーフェイス32、及び、それら要素を接続するためのシ
ステムバス30も有する。印刷エンジンインターフェイ
ス32は、ラスターイメージデータをビデオ信号または
他の信号の形で印刷エンジン4へ出力する。
6の詳細を示す。プリンタコントコントローラ6は、ホ
ストインターフェイス26を介してホスト28と接続さ
れる。ホスト28は、どのようなコンピュータでもよ
く、また、例えばワークステーション8とすることもで
きる。ワークステーション8は、例えばネットワーク1
4、シリアルプリンタケーブル、またはパラレルプリン
タケーブルを介してホスト28と接続できる。このプリ
ンタコントローラは6、CPU20、RAM22、本発
明プロセスを実現するROM24、印刷エンジンインタ
ーフェイス32、及び、それら要素を接続するためのシ
ステムバス30も有する。印刷エンジンインターフェイ
ス32は、ラスターイメージデータをビデオ信号または
他の信号の形で印刷エンジン4へ出力する。
【0028】図10はワークステーション8の構成を示
す。ワークステーション8はCPU50、RAM52、
ROM54、キーボード58及びマウス60と接続され
た入力コントローラ56を有する。印刷エンジンインタ
ーフェイス64は、それから送られるラスターイメージ
データのビデオ信号及び制御信号を受信する印刷エンジ
ン62と直接接続される。ワークステーション8はさら
に、ハードディスク68及びフロッピードライブ70に
接続されたディスクコントローラ72、例えばイーサネ
ット(Ethernet,登録商標)等のネットワーク14との
接続のための通信コントローラ74、例えばSCSIバ
スにより外部のハードディスク80と接続され、かつ例
えばRS232Cケーブルによりプリンタ78と接続さ
れるI/Oコントローラ76を有する。ワークステーシ
ョン8はCRT84と接続されるディスプレイコントロ
ーラ82も有する。システムバス66は、ワークステー
ション内の上記各要素を接続する。
す。ワークステーション8はCPU50、RAM52、
ROM54、キーボード58及びマウス60と接続され
た入力コントローラ56を有する。印刷エンジンインタ
ーフェイス64は、それから送られるラスターイメージ
データのビデオ信号及び制御信号を受信する印刷エンジ
ン62と直接接続される。ワークステーション8はさら
に、ハードディスク68及びフロッピードライブ70に
接続されたディスクコントローラ72、例えばイーサネ
ット(Ethernet,登録商標)等のネットワーク14との
接続のための通信コントローラ74、例えばSCSIバ
スにより外部のハードディスク80と接続され、かつ例
えばRS232Cケーブルによりプリンタ78と接続さ
れるI/Oコントローラ76を有する。ワークステーシ
ョン8はCRT84と接続されるディスプレイコントロ
ーラ82も有する。システムバス66は、ワークステー
ション内の上記各要素を接続する。
【0029】処理し印刷すべきSPDLファイルは、ワ
ークステーション8によって直接生成されるか、あるい
は、まずワークステーション8によって生成されてから
例えばハードディスク68もしくは同80、フロッピー
ドライブ70、またはRAM52に格納される。つぎ
に、このSPDLファイルをCPU50によって印刷処
理することができるが、当該SPDLファイルがクリア
テキストフォーマットまたはバイナリフォーマットのい
ずれに符号化されているかを、まず判定する必要があ
る。SPDLファイルの符号化フォーマットを判定する
ためのプロセスは、例えばROM54、ハードディスク
68または80、あるいはRAM52に格納しておくこ
とができる。SPDLファイルの符号化フォーマットを
判定したならば、CPU50はSPDLファイルをラス
ターイメージデータへ処理する。このラスターイメージ
データは、バス66、印刷エンジンインターフェイス6
4を介してビデオ信号及び制御信号の形で印刷エンジン
62へ送られることにより、印刷エンジン62で印刷す
ることができる。
ークステーション8によって直接生成されるか、あるい
は、まずワークステーション8によって生成されてから
例えばハードディスク68もしくは同80、フロッピー
ドライブ70、またはRAM52に格納される。つぎ
に、このSPDLファイルをCPU50によって印刷処
理することができるが、当該SPDLファイルがクリア
テキストフォーマットまたはバイナリフォーマットのい
ずれに符号化されているかを、まず判定する必要があ
る。SPDLファイルの符号化フォーマットを判定する
ためのプロセスは、例えばROM54、ハードディスク
68または80、あるいはRAM52に格納しておくこ
とができる。SPDLファイルの符号化フォーマットを
判定したならば、CPU50はSPDLファイルをラス
ターイメージデータへ処理する。このラスターイメージ
データは、バス66、印刷エンジンインターフェイス6
4を介してビデオ信号及び制御信号の形で印刷エンジン
62へ送られることにより、印刷エンジン62で印刷す
ることができる。
【0030】ワークステーション8または他のSPDL
処理システムで記憶装置に格納されているSPDL符号
化ピクチャーを現在処理しようとしている文書に取り込
む必要がある場合、ワークステーション8または他のS
PDL処理システムは、その符号化フォーマットを確認
しなければならない。出力SPDLファイルの生成時
に、取り込んだピクチャーの符号化フォーマットの変更
を要することがある。
処理システムで記憶装置に格納されているSPDL符号
化ピクチャーを現在処理しようとしている文書に取り込
む必要がある場合、ワークステーション8または他のS
PDL処理システムは、その符号化フォーマットを確認
しなければならない。出力SPDLファイルの生成時
に、取り込んだピクチャーの符号化フォーマットの変更
を要することがある。
【0031】図11に示した印刷サーバ10は、ワーク
ステーション8と非常に似た基本構成である。印刷サー
バ10はネットワーク14に送られて来たSPDLファ
イルを通信コントローラ118によって受信する。CP
U100は、受信したファイルがバイナリSPDLフォ
ーマットであるか、クリアテキストSPDLフォーマッ
トであるか、あるいは他の符号化フォーマットであるか
を、本発明のプロセスによって判定する。次に、ファイ
ルはCPUによって処理され、システムバス114を介
してプリンタインターフェイス116へ、そしてプリン
タ12へ送られる。CPU100は、文書を様々なフォ
ーマットに加工できる。例えば、プリンタ12がポスト
スクリプト互換ならば、SPDL文書をポストスクリプ
ト表現に処理してプリンタ12へ送ることができる。ま
た、CPU100はエスケープシーケンス型言語のどれ
かにSPDLファイルを処理でき、例えばHewlet
tPackard(HP)社レーザジェット(Lase
rjet,登録商標)シリーズプリンタのネイティブ言
語(例えばPCL)にSPDLファイルを処理すること
ができる(プリンタ12がHPレーザジェット互換であ
るならば)。また、CPU100はSPDLファイル
を、ドットマトリクスプリンタ、インクジェットプリン
タ、サーマルプリンタ、その他のラスター可能プリンタ
に使用されるフォーマットに処理することも可能であ
る。CPU100はSPDLファイルをラスターイメー
ジに処理してプリンタ12内の印刷エンジンへ送ること
も可能である。
ステーション8と非常に似た基本構成である。印刷サー
バ10はネットワーク14に送られて来たSPDLファ
イルを通信コントローラ118によって受信する。CP
U100は、受信したファイルがバイナリSPDLフォ
ーマットであるか、クリアテキストSPDLフォーマッ
トであるか、あるいは他の符号化フォーマットであるか
を、本発明のプロセスによって判定する。次に、ファイ
ルはCPUによって処理され、システムバス114を介
してプリンタインターフェイス116へ、そしてプリン
タ12へ送られる。CPU100は、文書を様々なフォ
ーマットに加工できる。例えば、プリンタ12がポスト
スクリプト互換ならば、SPDL文書をポストスクリプ
ト表現に処理してプリンタ12へ送ることができる。ま
た、CPU100はエスケープシーケンス型言語のどれ
かにSPDLファイルを処理でき、例えばHewlet
tPackard(HP)社レーザジェット(Lase
rjet,登録商標)シリーズプリンタのネイティブ言
語(例えばPCL)にSPDLファイルを処理すること
ができる(プリンタ12がHPレーザジェット互換であ
るならば)。また、CPU100はSPDLファイル
を、ドットマトリクスプリンタ、インクジェットプリン
タ、サーマルプリンタ、その他のラスター可能プリンタ
に使用されるフォーマットに処理することも可能であ
る。CPU100はSPDLファイルをラスターイメー
ジに処理してプリンタ12内の印刷エンジンへ送ること
も可能である。
【0032】入力データがバイナリ、クリアテキストい
ずれのフォーマットであるかをSPDL処理装置が知る
必要があることを認識することも本発明の一部である。
予め処理されて格納されているSPDLピクチャーを目
下処理中の文書に取り込むことが必要になる場合がある
ので、格納されているピクチャーがSPDLに符号化さ
れているか、そうであれば、そのSPDLはバイナリフ
ォーマットかクリアテキストであるかをSPDL装置が
判断できないと問題があることに、本発明者は気付い
た。したがって、例えば符号化済みSPDLファイルを
入力するSPDLファイルの処理中に、その符号化済み
SPDLファイルの符号化フォーマットを処理中ファイ
ルの符号化フォーマットへ変換することが必要になるこ
とがある。結局、本発明は、ファイルがSPDLファイ
ルであるか否かの判定方法、及び、SPDLファイルが
バイナリフォーマットとクリアテキストフォーマットの
いずれであるかの判定方法の両方を包含する。
ずれのフォーマットであるかをSPDL処理装置が知る
必要があることを認識することも本発明の一部である。
予め処理されて格納されているSPDLピクチャーを目
下処理中の文書に取り込むことが必要になる場合がある
ので、格納されているピクチャーがSPDLに符号化さ
れているか、そうであれば、そのSPDLはバイナリフ
ォーマットかクリアテキストであるかをSPDL装置が
判断できないと問題があることに、本発明者は気付い
た。したがって、例えば符号化済みSPDLファイルを
入力するSPDLファイルの処理中に、その符号化済み
SPDLファイルの符号化フォーマットを処理中ファイ
ルの符号化フォーマットへ変換することが必要になるこ
とがある。結局、本発明は、ファイルがSPDLファイ
ルであるか否かの判定方法、及び、SPDLファイルが
バイナリフォーマットとクリアテキストフォーマットの
いずれであるかの判定方法の両方を包含する。
【0033】SPDLファイルの符号化フォーマットを
判定し、そのSPDLファイルの処理を開始するための
プロセスが図12乃至図16に示されている。このプロ
セスは、いかなる種類の印刷サーバやワークステーショ
ン、プリンタコントローラ、その他のコンピュータ機器
でも実施できる。このプロセスはまず、図12のステッ
プ200で入力ファイルをオープンする。入力ファイル
のオープン後、ステップ202は図13乃至図15に図
示のプロセスに示す自動符号化認識プロセスをコールす
る。
判定し、そのSPDLファイルの処理を開始するための
プロセスが図12乃至図16に示されている。このプロ
セスは、いかなる種類の印刷サーバやワークステーショ
ン、プリンタコントローラ、その他のコンピュータ機器
でも実施できる。このプロセスはまず、図12のステッ
プ200で入力ファイルをオープンする。入力ファイル
のオープン後、ステップ202は図13乃至図15に図
示のプロセスに示す自動符号化認識プロセスをコールす
る。
【0034】図13において、入力ファイルは最初に、
その文書がISO/IEC8824:1990に定義の
Abstract Syntax NotationO
ne(”ASN.1”)に従った、ISO/IEC88
25:1990に定義されたASN.1用Basic
Encoding Rules(”BER”)によるバ
イナリフォーマットに符号化されていると看做して処理
される。処理の流れはステップ302に進み、ファイル
の最初の3個のタグが調べられ、オブジェクト識別子が
28 CF 44 00 Hなる値を含んでいるか判定
する。このオブジェクト識別子は通常、2番目か3番目
のタグ中に見出される。28 CF 44 00 Hな
る値を持つオブジェクト識別子が最初の3個のタグの一
つに見つかったときは、バイナリ符号化SPDL文書で
あるので処理の流れはステップ304へ進み、符号化フ
ラグはバイナリに設定される。そして、処理は流れは図
12に示したプロセスへ戻る。ステップ302内で遂行
可能なステップ例は次の通りである。
その文書がISO/IEC8824:1990に定義の
Abstract Syntax NotationO
ne(”ASN.1”)に従った、ISO/IEC88
25:1990に定義されたASN.1用Basic
Encoding Rules(”BER”)によるバ
イナリフォーマットに符号化されていると看做して処理
される。処理の流れはステップ302に進み、ファイル
の最初の3個のタグが調べられ、オブジェクト識別子が
28 CF 44 00 Hなる値を含んでいるか判定
する。このオブジェクト識別子は通常、2番目か3番目
のタグ中に見出される。28 CF 44 00 Hな
る値を持つオブジェクト識別子が最初の3個のタグの一
つに見つかったときは、バイナリ符号化SPDL文書で
あるので処理の流れはステップ304へ進み、符号化フ
ラグはバイナリに設定される。そして、処理は流れは図
12に示したプロセスへ戻る。ステップ302内で遂行
可能なステップ例は次の通りである。
【0035】1. 第1バイトは28Hであるか。違う
ときはNを返す。
ときはNを返す。
【0036】2. 次の長さバイトをISO/IEC8
825符号化法により処理する。
825符号化法により処理する。
【0037】3. 次のバイトは30Hであるか。違う
ときは下のステップ5へ進む。
ときは下のステップ5へ進む。
【0038】4. 次の長さバイトをISO/IEC8
825符号化法により処理する。
825符号化法により処理する。
【0039】5. 次の2バイトは06H 04Hであ
るか。違うときはNを返す。
るか。違うときはNを返す。
【0040】6. 次の4バイトは28 CF 44
00H であるか。違うときはNを返す。
00H であるか。違うときはNを返す。
【0041】7. ステップ304へ進む。
【0042】ステップ302で、文書がオブジェクト識
別子28 CF 44 08Hを持つタグを含まないと
判定すれば、そのファイルはバイナリフォーマットに符
号化されてはおらず、クリアテキストフォーマットに符
号化されている可能性がある。したがって、文書の開始
部を調べて、適当なクリアテキストSPDL識別子を含
んでいるか判定する。ステップ308は、ファイルの最
初のバイトを変数”CHAR”に読み込む。ステップ3
10は、CHARがSセパレータであるか判定する。S
セパレータは文字スペース、CR(キャリッジリター
ン)、LF(ラインフィード)及びTabからなる。C
HAR中の値がSセパレータでなくなるまで、キャラク
タを読み込まねばならない。したがって、CHAR中の
値がSセパレータでなくなるまで、処理の流れはステッ
プ310,312を循環する。CHARがSセパレータ
でない時に、処理の流れはステップ314へ進み、CH
ARがシンボル’<’であるか判定する。このシンボル
でなければ、処理中の文書はクリアテキストSPDLフ
ァイルではなく、しかもステップ302でバイナリSP
DLファイルではないと判定済みであるので、非SPD
L文書であるということであるから、図16に示すプロ
セスBがコールされる。
別子28 CF 44 08Hを持つタグを含まないと
判定すれば、そのファイルはバイナリフォーマットに符
号化されてはおらず、クリアテキストフォーマットに符
号化されている可能性がある。したがって、文書の開始
部を調べて、適当なクリアテキストSPDL識別子を含
んでいるか判定する。ステップ308は、ファイルの最
初のバイトを変数”CHAR”に読み込む。ステップ3
10は、CHARがSセパレータであるか判定する。S
セパレータは文字スペース、CR(キャリッジリター
ン)、LF(ラインフィード)及びTabからなる。C
HAR中の値がSセパレータでなくなるまで、キャラク
タを読み込まねばならない。したがって、CHAR中の
値がSセパレータでなくなるまで、処理の流れはステッ
プ310,312を循環する。CHARがSセパレータ
でない時に、処理の流れはステップ314へ進み、CH
ARがシンボル’<’であるか判定する。このシンボル
でなければ、処理中の文書はクリアテキストSPDLフ
ァイルではなく、しかもステップ302でバイナリSP
DLファイルではないと判定済みであるので、非SPD
L文書であるということであるから、図16に示すプロ
セスBがコールされる。
【0043】ステップ314からステップ346まで
は、SPDL文書の開始部におけるSセパレータ後のバ
イトを調べ、文字列”<!DOCTYPE ”(大文
字,小文字を問わない)を検出しないときは、文書はS
PDLファイルではないので、処理の流れは図16に示
すプロセスBへ進む。ファイルの開始部に文字列”<!
DOCTYPE ”が含まれているときは、処理の流れ
はステップ348へ進むが、この場合、オープンしたフ
ァイルの後続バイトに1個以上のSセパレータが含まれ
ている筈である。文字列(パターン)”<!DOCTY
PE ”の直後にSセパレータが1個もない場合、非S
PDLファイルであるので処理の流れはステップ350
から図16のプロセスBへ進む。ステップ352及びス
テップ354は、Sセパレータがなくなるまでバイトを
変数CHARへ読み込む。ステップ356〜368はバ
イト列中に文字列”SPDL”(大文字、小文字を問わ
ない)が含まれるか判定する。文字列(パターン)”S
PDL”が見つかったときは、処理の流れはステップ3
70へ進んで符号化フラグをクリアテキストに設定し、
処理の流れは図12のプロセスへ戻る。文字列”SPD
L”が見つからない場合には、図14に示すプロセスB
がコールされる。
は、SPDL文書の開始部におけるSセパレータ後のバ
イトを調べ、文字列”<!DOCTYPE ”(大文
字,小文字を問わない)を検出しないときは、文書はS
PDLファイルではないので、処理の流れは図16に示
すプロセスBへ進む。ファイルの開始部に文字列”<!
DOCTYPE ”が含まれているときは、処理の流れ
はステップ348へ進むが、この場合、オープンしたフ
ァイルの後続バイトに1個以上のSセパレータが含まれ
ている筈である。文字列(パターン)”<!DOCTY
PE ”の直後にSセパレータが1個もない場合、非S
PDLファイルであるので処理の流れはステップ350
から図16のプロセスBへ進む。ステップ352及びス
テップ354は、Sセパレータがなくなるまでバイトを
変数CHARへ読み込む。ステップ356〜368はバ
イト列中に文字列”SPDL”(大文字、小文字を問わ
ない)が含まれるか判定する。文字列(パターン)”S
PDL”が見つかったときは、処理の流れはステップ3
70へ進んで符号化フラグをクリアテキストに設定し、
処理の流れは図12のプロセスへ戻る。文字列”SPD
L”が見つからない場合には、図14に示すプロセスB
がコールされる。
【0044】図16のプロセスBは、ファイルが非SP
DLファイルであると判定された場合にコールされる。
ステップ400はメッセージ”非SPDL入力”を表示
させ、バイナリSPDL符号化ファイルでもクリアSP
DL符号化ファイルでもない旨を指示する。ステップ4
02で、エラーフラグにファイルが非SPDL文書であ
ること示す適当なエラーコードが設定され、処理の流れ
は図12のステップ202へ戻る。
DLファイルであると判定された場合にコールされる。
ステップ400はメッセージ”非SPDL入力”を表示
させ、バイナリSPDL符号化ファイルでもクリアSP
DL符号化ファイルでもない旨を指示する。ステップ4
02で、エラーフラグにファイルが非SPDL文書であ
ること示す適当なエラーコードが設定され、処理の流れ
は図12のステップ202へ戻る。
【0045】図12に示すプロセスに戻ると、ステップ
204はエラーフラグを調べてエラーが生じたか判定す
る。エラーが生じている場合、オープンしたファイル中
に適切に符号化されたSPDL文書がないので、図12
に示すSPDL処理プログラムが起動される。そのファ
イルは、ポストスクリプト符号化ファイルや、その他の
ワードプロセッシングファイル、例えばWordPer
fect(登録商標)フォーマット、HPGL(登録商
標)フォーマットまたは他の専用ファイルフォーマット
のものである可能性がある。したがって、非SPDL文
書を印刷するための他の処理が、例えばステップ204
でエラーを検出した後で生じる可能性がある。ステップ
204でエラーが検出されない場合、処理の流れはステ
ップ206へ進み、符号化フラグを調べて文書がバイナ
リSPDLフォーマットであるか判定する。バイナリS
PDLフォーマットのときは、処理の流れはステップ2
10へ進み、ステップ212でバイナリ構造パーサー
(parser)を用いて構造をバイナリ符号化ルールに従い
処理する。
204はエラーフラグを調べてエラーが生じたか判定す
る。エラーが生じている場合、オープンしたファイル中
に適切に符号化されたSPDL文書がないので、図12
に示すSPDL処理プログラムが起動される。そのファ
イルは、ポストスクリプト符号化ファイルや、その他の
ワードプロセッシングファイル、例えばWordPer
fect(登録商標)フォーマット、HPGL(登録商
標)フォーマットまたは他の専用ファイルフォーマット
のものである可能性がある。したがって、非SPDL文
書を印刷するための他の処理が、例えばステップ204
でエラーを検出した後で生じる可能性がある。ステップ
204でエラーが検出されない場合、処理の流れはステ
ップ206へ進み、符号化フラグを調べて文書がバイナ
リSPDLフォーマットであるか判定する。バイナリS
PDLフォーマットのときは、処理の流れはステップ2
10へ進み、ステップ212でバイナリ構造パーサー
(parser)を用いて構造をバイナリ符号化ルールに従い
処理する。
【0046】ステップ206でファイルがクリアテキス
トフォーマットに符号化されていると判定した場合、処
理の流れはステップ208へ進み、クリアテキスト・パ
ーサーを用い、オープンしたファイルをクリアテキスト
ファイルとして解析する。そして、処理の流れはステッ
プ212へ進み、構造をクリアテキスト構造と見做して
解析する。これらの解析ステップは一般的な文法解析技
法でよく知られているものであるので、ここでは簡略化
のため説明しない。
トフォーマットに符号化されていると判定した場合、処
理の流れはステップ208へ進み、クリアテキスト・パ
ーサーを用い、オープンしたファイルをクリアテキスト
ファイルとして解析する。そして、処理の流れはステッ
プ212へ進み、構造をクリアテキスト構造と見做して
解析する。これらの解析ステップは一般的な文法解析技
法でよく知られているものであるので、ここでは簡略化
のため説明しない。
【0047】ステップ212で構造が解析される時に、
ファイルとその中の文書の全体が処理されるが、この処
理には全ての構造及びコンテントの処理が含まれる。
ファイルとその中の文書の全体が処理されるが、この処
理には全ての構造及びコンテントの処理が含まれる。
【0048】図17はSPDL文書の処理及び印刷のた
めの装置の概念的構成の説明図である。図17の各要素
は独立したプロセッサ、パーサー(parser)、ドライバ
ー、エンコーダとして図示されているが、これらの概念
的なプロセス全部を1個のCPUを持つ1台のハードウ
エア装置内に収容可能である。図17において、円形は
プロセス及びプロセッサを意味し、矩形はデータを意味
する。
めの装置の概念的構成の説明図である。図17の各要素
は独立したプロセッサ、パーサー(parser)、ドライバ
ー、エンコーダとして図示されているが、これらの概念
的なプロセス全部を1個のCPUを持つ1台のハードウ
エア装置内に収容可能である。図17において、円形は
プロセス及びプロセッサを意味し、矩形はデータを意味
する。
【0049】図17に示すように、SPDL文書500
を、自動符号化認識プロセッサ502、クリアテキスト
構造パーサー504、バイナリ構造パーサー506、ク
リアテキスト・コンテント・パーサー516、及びバイ
ナリ・コンテント・パーサー518で利用できる。ま
ず、SPDL文書は自動符号化認識プロセッサ502へ
送られ、同プロセッサは本発明のプロセスに従ってファ
イルがバイナリSPDLフォーマットであるか、または
クリアテキストSPDLフォーマットであるか判定す
る。クリアテキストSPDLフォーマットであるとき
は、クリアテキスト構造パーサー504がクリアテキス
ト構造を解析してトークンにし、このトークンは構造プ
ロセッサ510へ送られる。SPDL文書がバイナリ符
号化SPDL文書であれば、バイナリ構造パーサー50
6がトークンを解析して構造プロセッサ510へ送る。
この構造プロセッサ510は、自動符号化認識プロセッ
サ502より符号化フラグ508を受け取ることによ
り、バイナリ解析後のトークンの処理であるか、または
クリアテキスト解析後のトークンの処理であるかを知
る。
を、自動符号化認識プロセッサ502、クリアテキスト
構造パーサー504、バイナリ構造パーサー506、ク
リアテキスト・コンテント・パーサー516、及びバイ
ナリ・コンテント・パーサー518で利用できる。ま
ず、SPDL文書は自動符号化認識プロセッサ502へ
送られ、同プロセッサは本発明のプロセスに従ってファ
イルがバイナリSPDLフォーマットであるか、または
クリアテキストSPDLフォーマットであるか判定す
る。クリアテキストSPDLフォーマットであるとき
は、クリアテキスト構造パーサー504がクリアテキス
ト構造を解析してトークンにし、このトークンは構造プ
ロセッサ510へ送られる。SPDL文書がバイナリ符
号化SPDL文書であれば、バイナリ構造パーサー50
6がトークンを解析して構造プロセッサ510へ送る。
この構造プロセッサ510は、自動符号化認識プロセッ
サ502より符号化フラグ508を受け取ることによ
り、バイナリ解析後のトークンの処理であるか、または
クリアテキスト解析後のトークンの処理であるかを知
る。
【0050】SPDL文書は構造エレメントとコンテン
ト・エレメントを含む。文書の構造は、テキストデータ
やイメージデータ等のコンテントの処理方法を定義す
る。コンテントプロセッサ520は、符号化フラグの設
定がどうなっているかに応じてクリアテキスト・コンテ
ント・パーサー516またはバイナリ・コンテント・パ
ーサー518より解析後のコンテントを受け取り、処理
する。
ト・エレメントを含む。文書の構造は、テキストデータ
やイメージデータ等のコンテントの処理方法を定義す
る。コンテントプロセッサ520は、符号化フラグの設
定がどうなっているかに応じてクリアテキスト・コンテ
ント・パーサー516またはバイナリ・コンテント・パ
ーサー518より解析後のコンテントを受け取り、処理
する。
【0051】構造プロセッサとコンテントプロセッサは
現解釈環境512を通して通信する。現解釈環境512
は、処理装置の状態を定義するもので、例えばオペラン
ドスタック、辞書の集合、状態変数テーブル、処理装置
で利用可能なリソース、及び仮想マシンの状態を含む。
構造プロセッサ510及びコンテントプロセッサ520
より得られる処理後の構造及びコンテントは、イメージ
データ及び制御情報514をプリンタドライバ522及
び/またはラスタージェネレータ及びエンジンコントロ
ーラ524へ送る。プリンタドライバ522は処理後の
SPDL文書をプリンタA522またはプリンタB53
4の理解可能な言語へ変換する。例えば、プリンタAが
普通のポストスクリプト(登録商標)プリンタとすれ
ば、プリンタドライバ522は処理後のSPDL文書を
プリンタAのデータすなわちポストスクリプトファイル
に変換する。また、プリンタドライバ522は、処理後
のSPDLファイルを、HP Laserjet(登録
商標)シリーズのプリンタに適合したエスケープコマン
ドを含むエスケープシーケンス印刷言語へ変換できる。
これらのプリンタBコマンド528は、例えばHP L
aserjet(登録商標)互換プリンタ等のプリンタ
Bへ送られる。しかし、どのようなプリンタであって
も、プリンタドライバ522が処理後のSPDL文書を
そのプリンタに適合するプリンタ言語へ変換できれば、
図17の処理装置でサポートできる。イメージデータ及
び制御情報514はラスタージェネレータ及びエンジン
コントローラ524へも送ることができ、このラスター
ジェネレータ及びエンジンコントローラ524は、プリ
ンタコマンドまたはポストスクリプトデータを含むプリ
ンタファイルを生成するのではなく、SPDLファイル
をラスターデータ530に変換する。このラスターデー
タ530はプリンタエンジン536へ直接送られる。当
然のことながら、本発明は以上説明したところに照ら
し、様々な修正及び変形が可能である。例えば、ファイ
ルまたはコマンドについて、まずクリアテキストコマン
ドであるかを判定し、次にバイナリコマンドであるかを
判定することもできる。(一部省略)
現解釈環境512を通して通信する。現解釈環境512
は、処理装置の状態を定義するもので、例えばオペラン
ドスタック、辞書の集合、状態変数テーブル、処理装置
で利用可能なリソース、及び仮想マシンの状態を含む。
構造プロセッサ510及びコンテントプロセッサ520
より得られる処理後の構造及びコンテントは、イメージ
データ及び制御情報514をプリンタドライバ522及
び/またはラスタージェネレータ及びエンジンコントロ
ーラ524へ送る。プリンタドライバ522は処理後の
SPDL文書をプリンタA522またはプリンタB53
4の理解可能な言語へ変換する。例えば、プリンタAが
普通のポストスクリプト(登録商標)プリンタとすれ
ば、プリンタドライバ522は処理後のSPDL文書を
プリンタAのデータすなわちポストスクリプトファイル
に変換する。また、プリンタドライバ522は、処理後
のSPDLファイルを、HP Laserjet(登録
商標)シリーズのプリンタに適合したエスケープコマン
ドを含むエスケープシーケンス印刷言語へ変換できる。
これらのプリンタBコマンド528は、例えばHP L
aserjet(登録商標)互換プリンタ等のプリンタ
Bへ送られる。しかし、どのようなプリンタであって
も、プリンタドライバ522が処理後のSPDL文書を
そのプリンタに適合するプリンタ言語へ変換できれば、
図17の処理装置でサポートできる。イメージデータ及
び制御情報514はラスタージェネレータ及びエンジン
コントローラ524へも送ることができ、このラスター
ジェネレータ及びエンジンコントローラ524は、プリ
ンタコマンドまたはポストスクリプトデータを含むプリ
ンタファイルを生成するのではなく、SPDLファイル
をラスターデータ530に変換する。このラスターデー
タ530はプリンタエンジン536へ直接送られる。当
然のことながら、本発明は以上説明したところに照ら
し、様々な修正及び変形が可能である。例えば、ファイ
ルまたはコマンドについて、まずクリアテキストコマン
ドであるかを判定し、次にバイナリコマンドであるかを
判定することもできる。(一部省略)
【0052】
【発明の効果】以上の説明から理解されるように、本発
明によれば、入力データが標準ページ記述言語(SPD
L)のデータであるか否かの判定、標準ページ記述言語
のバイナリ表現またはクリアテキスト表現のいずれに符
号化されているかの判定を、効率的かつ自動的に行なう
ための手段、並びに、文書の符号化タイプに応じ印刷処
理を適切に制御するための手段を提供することができる
という効果を得られるものである。
明によれば、入力データが標準ページ記述言語(SPD
L)のデータであるか否かの判定、標準ページ記述言語
のバイナリ表現またはクリアテキスト表現のいずれに符
号化されているかの判定を、効率的かつ自動的に行なう
ための手段、並びに、文書の符号化タイプに応じ印刷処
理を適切に制御するための手段を提供することができる
という効果を得られるものである。
【図1】バイナリSPDLファイルのバイナリ符号化の
開始部に関する要件の説明図である。
開始部に関する要件の説明図である。
【図2】ISO/IEC8825に定義されたバイナリ
符号化の構造説明図である。
符号化の構造説明図である。
【図3】ISO/IEC8825に定義された識別子オ
クテットの構成説明図である。
クテットの構成説明図である。
【図4】ISO/IEC8825に定義された各種クラ
スタグと識別子オクテットのビット7,8の説明図であ
る。
スタグと識別子オクテットのビット7,8の説明図であ
る。
【図5】ISO/IEC8824に定義されたユニバー
サルクラスタグに関するクラスタグ割り付けを示す図で
ある。
サルクラスタグに関するクラスタグ割り付けを示す図で
ある。
【図6】バイナリ符号化SPDL文書の初めの3個のタ
グの説明図である。
グの説明図である。
【図7】クリアテキストSPDLファイルの開始部の符
号化の説明図である。
号化の説明図である。
【図8】本発明を実施するためのコンピュータネットワ
ークの例を示すブロック図である。
ークの例を示すブロック図である。
【図9】本発明を実施するためのプリンタコントローラ
の例を示すブロック図である。
の例を示すブロック図である。
【図10】本発明を実施するためのワークステーション
の例を示すブロック図である。
の例を示すブロック図である。
【図11】本発明を実施するための印刷サーバの例を示
すブロック図である。
すブロック図である。
【図12】SPDLファイルを最初に処理する時に用い
られるプロセスを示すフローチャートである。
られるプロセスを示すフローチャートである。
【図13】ファイルの符号化タイプを判定するためのプ
ロセスの一部を示すフローチャートである。
ロセスの一部を示すフローチャートである。
【図14】ファイルの符号化タイプを判定するためのプ
ロセスの一部を示すフローチャートである。
ロセスの一部を示すフローチャートである。
【図15】ファイルの符号化タイプを判定するためのプ
ロセスの一部を示すフローチャートである。
ロセスの一部を示すフローチャートである。
【図16】非SPDLファイルであると判定された時に
用いられるプロセスを示すフローチャートである。
用いられるプロセスを示すフローチャートである。
【図17】SPDLファイルの処理及び印刷のために用
いられる装置の概念的構成の例を示すブロック図であ
る。
いられる装置の概念的構成の例を示すブロック図であ
る。
2,12 プリンタ 4 印刷エンジン 6 プリンタコントローラ 8 ワークステーション 10 印刷サーバー 14 ネットワーク 20,50,100 CPU 22,52,102 RAM 24,54,104 ROM 26 ホストインターフェイス 28 ホスト 30,66,114 システムバス 32 印刷エンジンインターフェイス 56,106 入力コントローラ 58,108 キーボード 60 マウス 62 印刷エンジン 64 印刷エンジンインターフェイス 66 システムバス 68,80,112 ハードディスク 70 フロッピードライブ 72,110 ディスクコントローラ 74,118 通信コントローラ 76,120 I/Oコントローラ 78 プリンタ 82,124 ディスプレイコントローラ 84,126 CRT 126 SCSI装置 500 SPDL文書 502 自動符号化認識プロセッサ 504 クリアテキスト構造パーサー 506 バイナリ構造パーサー 508 符号化フラグ 510 構造プロセッサ 512 現解釈環境 514 イメージデータ及び制御情報 516 クリアテキスト・コンテント・パーサー 518 バイナリ・コンテント・パーサー 520 コンテント・プロセッサ 522 プリンタドライバ 524 ラスタージェネレータ及びエンジンコントロー
ラ 526 プリンタAデータ 528 プリンタBデータ 530 ラスターデータ 532 プリンタA 534 プリンタB 536 印刷エンジン
ラ 526 プリンタAデータ 528 プリンタBデータ 530 ラスターデータ 532 プリンタA 534 プリンタB 536 印刷エンジン
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 3/12 B41J 5/30
Claims (10)
- 【請求項1】 ページ記述言語コマンドがバイナリフォ
ーマットまたはテキストフォーマットのいずれに符号化
されているかを判定し、文書の符号化タイプを認識する
方法であって、 ISO/IEC8825の符号化ルールの下で該コマン
ドを処理するステップと、 該コマンドの先頭の3個のタグのいずれかがオブジェク
ト識別子”28 CF44 00H”を含むか判定
し、”28 CF 44 00H”なる値を含むオブジ
ェクト識別子が見つかったときに該コマンドがバイナリ
フォーマットであると判定して当該方法の処理を終了す
るステップと、 該コマンドの先頭に戻って、テキスト符号化フォーマッ
トの下で該コマンドを処理し、該コマンドの最初のバイ
ト及び後続のバイトの読み込みを、読み込んだバイトが
スペース、CR、LFまたはTabタブのグループより
選ばれたバイトを含まなくなるまで行なうステップと、 後続のバイトが大文字、小文字の別を問わない”<!D
OCTYPE”なる文字列を含むか判定し、大文字、小
文字の別を問わない”<!DOCTYPE”が存在しな
いときには該文書を非SPDL文書であると判定して当
該方法の処理を終了するステップと、 該コマンドの次のバイトがスペース、CR、LFまたは
Tabを表わす文字のいずれかであるか調べ、該次バイ
トがスペース、CR、LFまたはTabのどの文字も表
わさないときに、該文書を非SPDL文書である旨を指
示して当該方法の処理を終了するステップと、 該コマンドの後続バイトの読み込みを、読み込んだバイ
トがスペース、CR、LFまたはTabのどの文字を表
わすバイトも含まなくなるまで行なうステップと、 スペース、CR、LFまたはTabの文字を含まない該
後続バイトが、大文字、小文字の別を問わない”SPD
L”なる文字列であるか調べ、大文字、小文字の別を問
わない”SPDL”なる文字列が見つかったときに、該
コマンドがテキストフォーマットに符号化されている旨
を指示するステップとからなる符号化タイプ認識方法。 - 【請求項2】 請求項1の符号化タイプ認識方法であっ
て、該コマンドがバイナリフォーマットまたはテキスト
フォーマットであると判定された後に遂行される、 複数のプリンタ言語中の一つを選択するステップと、 該コマンドを該選択されたプリンタ言語に処理するステ
ップと、 該処理されたコマンドを、該選択されたプリンタ言語に
適合したプリンタへ送るステップと、 をさらに有することを特徴とする符号化タイプ認識方
法。 - 【請求項3】 文書が印刷エンジンに接続したプリンタ
コントローラにおいて処理されることを特徴とする請求
項1,2記載の符号化タイプ認識方法。 - 【請求項4】 文書が、少なくとも1つのプリンタと接
続された印刷サーバーにおいて処理されることを特徴と
する請求項1,2記載の符号化タイプ認識方法。 - 【請求項5】 文書はワークステーションにおいて処理
されることを特徴とする請求項1,2記載の符号化タイ
プ認識方法。 - 【請求項6】 ページ記述コマンドがバイナリフォーマ
ットまたはテキストフォーマットのいずれに符号化され
ているかを判定し、文書の符号化タイプを認識する装置
であって、 ISO/IEC8825の符号化ルールの下で該コマン
ドを解析するための手段と、 該コマンドの先頭の3個のタグのどれかがオブジェクト
識別子”28 CF44 00 H”を含むか判定する
ためのバイナリ判定手段と、 該バイナリ判定手段で該コマンドの先頭の3個のタグの
どれかがオブジェクト識別子”28 CF 44 00
H”を含むと判定したときに、該文書をバイナリで解
析するための手段と、 該コマンドの先頭が、0個または1個以上のスペース、
CR、LFまたはTabを表わすバイトを含み、その後
に大文字、小文字の別を問わないパターン”!DOCT
YPE”、0個または1個以上のスペース、CR、LF
またはTa bを表わすバイト、大文字、小文字の別を問
わないパターン”SPDL”が順に続くか判定するため
のクリアテキスト手段と、 該クリアテキスト手段で該ファイルがクリアテキストに
符号化されていると判定したときに該コマンドをクリア
テキストで解析するための手段とを具備する符号化タイ
プ認識装置。 - 【請求項7】 請求項6記載の符号化タイプ認識装置で
あって、複数のプリンタ言語中より1つのプリンタ言語
を選択するための手段と、該コマンドを該選択されたプ
リンタ言語に処理するための手段とをさらに具備するこ
とを特徴とする符号化タイプ認識装置。 - 【請求項8】 請求項6,7記載の符号化タイプ認識装
置において、該装置は印刷エンジンに接続したプリンタ
コントローラからなることを特徴とする符号化タイプ認
識装置。 - 【請求項9】 請求項6,7記載の符号化タイプ認識装
置において、該装置は少なくとも1つのプリンタに接続
されたプリンタサーバーからなることを特徴とする符号
化タイプ認識装置。 - 【請求項10】 請求項6,7記載の符号化タイプ認識
装置において、該装置はワークステーションからなるこ
とを特徴とする符号化タイプ認識装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/006416 | 1993-01-19 | ||
US08/006,416 US5438650A (en) | 1992-04-30 | 1993-01-19 | Method and system to recognize encoding type in document processing language |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06259205A JPH06259205A (ja) | 1994-09-16 |
JP3230916B2 true JP3230916B2 (ja) | 2001-11-19 |
Family
ID=21720772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31886093A Expired - Fee Related JP3230916B2 (ja) | 1993-01-19 | 1993-12-20 | 符号化タイプ認識方法及び符号化タイプ認識装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3230916B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19717948C2 (de) * | 1997-04-29 | 2003-07-31 | Deutsche Telekom Ag | Verfahren zur Übertragung von Informationen |
-
1993
- 1993-12-20 JP JP31886093A patent/JP3230916B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06259205A (ja) | 1994-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5438650A (en) | Method and system to recognize encoding type in document processing language | |
US5353388A (en) | System and method for document processing | |
US5526477A (en) | System and method for generating glyphs of unknown characters | |
JP3274517B2 (ja) | データ・ストリーム言語を自動的に判定するプリンタ | |
US6817791B2 (en) | Idiom recognizing document splitter | |
US7505172B2 (en) | Method and systems for processing print jobs | |
US5506985A (en) | Method and apparatus for format conversion of a hierarchically structured page description language document | |
US8514446B2 (en) | Information processing apparatus, color/monochrome determination method therefor, and program for implementing the method | |
US5960113A (en) | Method of automatically recognizing a language in which digital data is received | |
US7586628B2 (en) | Method and system for rendering Unicode complex text data in a printer | |
US6476938B1 (en) | Print control system and method | |
JPH0696072A (ja) | プレゼンテーション制御方法及び装置 | |
JP3209102B2 (ja) | プリントシステム、プリンタドライバ及びプリンタ | |
JPH08147446A (ja) | 電子ファイリング装置 | |
US5446837A (en) | Method and system to process resources in a document processing language | |
US20030046314A1 (en) | Text processing device, text processing method and program therefor | |
JP3230916B2 (ja) | 符号化タイプ認識方法及び符号化タイプ認識装置 | |
US5765006A (en) | Method and system to process external entities in a document processing language | |
US7002581B2 (en) | Character information processing apparatus, character information processing method and storage medium | |
US5436627A (en) | Method and system for processing mixed binary length encodings containing definite and indefinite length formats | |
JP3689441B2 (ja) | 電子ファイリング装置および電子ファイリング方法 | |
JP3250337B2 (ja) | 印刷制御装置および印刷制御方法 | |
JP3061562B2 (ja) | 印刷システム、情報処理装置、情報処理方法、印字装置および印字方法 | |
JPH09312574A (ja) | 情報処理装置 | |
JP2000305738A (ja) | 印刷システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080914 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080914 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090914 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090914 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100914 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |