(57)【要約】【課題】複数のページ記述言語に対応しつつ省メモリ化及び高速化を図る。【解決手段】ＰＤＬコードを順次解析し、共通コードまたは特殊コードに変換する。また、特殊コードについては、該コードに対応する特殊コード処理モジュールをメモリ上に書き込み、また、そのアドレスを該コードに対応づけて書き込む。また、変換された共通コード及び特殊コードを実行することにより、画像データを生成する。【選択図】図３
2009199130.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語で記述されたデータから画像データを生成するページ記述言語処理装置であって、
制御手段、中間コード記憶手段、解釈コード記憶手段、モジュール情報記憶手段、を有し、
前記中間コード記憶手段には、ページ記述言語のコードと共通コードとが対応付けられ、
前記制御手段は、コード書き込み処理と描画処理を実行し、
前記コード書き込み処理は、
ページ記述言語のコードを読み出し、
読み出したコードが中間コード記憶手段に記憶されている場合は、該コードに対応する共通コードを、前記解釈コード記憶手段に書き込み、
読み出したコードが中間コード記憶手段に記憶されていない場合は、
該コードを示す識別符号を、前記解釈コード記憶手段に書き込み、
該コードを示す識別符号及び該コードのモジュールのアドレスを、前記モジュール情報記憶手段に書き込み、
前記描画処理は、
前記解釈コード記憶手段のコードを読み出し、
読み出したコードが共通コードであれば、該共通コードに対応するモジュールを実行することにより、画像データを生成し、
読み出したコードが共通コードでなければ、該コードに対応するモジュールのアドレスを、前記モジュール情報記憶手段を参照して決定し、決定したアドレスに記憶されているモジュールを実行することにより、画像データを生成する、
ことを特徴とするページ記述言語処理装置。
【請求項２】
ページ記述言語で記述されたデータから画像データを生成するページ記述言語処理装置であって、
制御手段、メモリ、中間コード記憶手段、を有し、
前記中間コード記憶手段には、ページ記述言語のコードと共通コードとが対応付けられ、
前記制御手段は、解釈コード記憶領域確保処理、モジュール記憶領域確保処理、モジュール情報記憶領域確保処理、コード書き込み処理、描画処理、領域開放処理を実行し、
前記解釈コード記憶領域確保処理は、所定のタイミングで、前記メモリの所定領域上に、解釈コード記憶領域を確保し、
前記モジュール記憶領域確保処理は、所定のタイミングで、前記メモリの所定領域上に、モジュール記憶領域を確保し、
前記モジュール情報記憶領域確保処理は、所定のタイミングで、前記メモリの所定領域上に、モジュール情報記憶領域を確保し、
前記コード書き込み処理は、
ページ記述言語のコードを読み出し、
読み出したコードが中間コード記憶手段に記憶されている場合は、該コードに対応する共通コードを、前記解釈コード記憶領域に書き込み、
読み出したコードが中間コード記憶手段に記憶されていない場合は、
該コードを示す識別符号を、前記解釈コード記憶領域に書き込み、
該コードを示す識別符号及び該コードのモジュールを、前記モジュール記憶領域に書き込み、
該コードを示す識別符号及び該コードのモジュールのアドレスを、前記モジュール情報記憶領域に書き込み、
前記描画処理は、
前記解釈コード記憶領域のコードを読み出し、
読み出したコードが共通コードであれば、該共通コードに対応するモジュールを実行することにより、画像データを生成し、
読み出したコードが中間コードでなければ、該コードに対応するモジュールのアドレスを参照して決定し、決定したアドレスに記憶されているモジュールを実行することにより、画像データを生成し、
前記メモリ開放処理は、１ページ分のコードを前記解釈コード記憶領域から読み出した後に、前記解釈コード記憶領域、前記モジュール記憶領域、前記モジュール情報記憶領域、を開放する、
ことを特徴とするページ記述言語処理装置。
【請求項３】
ページ記述言語で記述されたデータから画像データを生成する処理をコンピュータに実行させるためのページ記述言語処理プログラムであって、
ページ記述言語のコードを読み出すステップ、
読み出したコードが中間コード記憶手段に記憶されている場合に、該コードに対応する共通コードを、前記解釈コード記憶手段に書き込むステップ、
読み出したコードが中間コード記憶手段に記憶されていない場合に、
該コードを示す識別符号を、前記解釈コード記憶手段に書き込むステップ、
該コードを示す識別符号及び該コードのモジュールのアドレスを、前記モジュール情報記憶手段に書き込むステップ、
前記解釈コード記憶手段のコードを読み出すステップ、
読み出したコードが共通コードであれば、該共通コードに対応するモジュールを実行することにより、画像データを生成するステップ、
読み出したコードが共通コードでなければ、該コードに対応するモジュールのアドレスを、前記モジュール情報記憶手段を参照して決定し、決定したアドレスに記憶されているモジュールを実行することにより、画像データを生成するステップ、
をコンピュータに実行させるためのページ記述言語処理プログラム。
【請求項４】
ページ記述言語で記述されたデータから画像データを生成する処理をコンピュータに実行させるためのページ記述言語処理プログラムであって、
所定のタイミングで、前記メモリの所定領域上に、解釈コード記憶領域を確保するステップ、
所定のタイミングで、前記メモリの所定領域上に、モジュール情報記憶領域を確保するステップ、
所定のタイミングで、前記メモリの所定領域上に、モジュール記憶領域を確保するステップ、
ページ記述言語のコードを読み出すステップ、
読み出したコードが中間コード記憶手段に記憶されている場合に、該コードに対応する共通コードを、前記解釈コード記憶領域に書き込むステップ、
読み出したコードが中間コード記憶手段に記憶されていない場合に、
該コードを示す識別符号を、前記解釈コード記憶領域に書き込むステップ、
該コードを示す識別符号及び該コードのモジュールを、前記モジュール記憶領域に書き込むステップ、
該コードを示す識別符号及び該コードのモジュールのアドレスを、前記モジュール情報記憶領域に書き込むステップ、
前記解釈コード記憶領域のコードを読み出すステップ、
読み出したコードが共通コードであれば、該共通コードに対応するモジュールを実行することにより、画像データを生成するステップ、
読み出したコードが共通コードでなければ、該コードに対応するモジュールのアドレスを参照して決定し、決定したアドレスに記憶されているモジュールを実行することにより、画像データを生成するステップ、
１ページ分のコードを前記解釈コード記憶領域から読み出した後に、前記解釈コード記憶領域、前記モジュール情報記憶領域、前記モジュール記憶領域を開放するステップ、
をコンピュータに実行させるためのページ記述言語処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のページ記述言語に対応した装置等に関する。
【背景技術】
【０００２】
従来、複数のページ記述言語（ＰＤＬ：Page Description Language）を処理する技術が種々提案されている。例えば、下記特許文献１には、複数のページ記述言語を処理するために、複数のページ記述言語解釈手段を複数用意し、入力されたページ記述言語の種類に応じてページ記述言語解釈手段を切り替える点が開示されている。
【０００３】
【特許文献１】特開平４−１２８０６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記特許文献１によれば、複数のページ記述言語に対応することができる。しかしながら、複数のページ記述言語解釈手段を実現するには、複数のページ記述言語処理プログラム（ＰＤＬプログラム）を搭載する必要があるため、それに伴い、大きな記憶装置が必要となる。この点、ＰＤＬプログラムを共通化し、プログラム全体の容量を削減することが考えられる。すなわち、複数のページ記述言語を共通の中間言語形式データに変換して、その共通化された中間言語を処理することが考えられる。
【０００５】
しかしながら、複数のページ記述言語は、それぞれ様々な仕様を有しており、また、表現能力も異なる（例えば、複雑なグラデーションが表現できる、透明処理に対応している等）。さらに、イメージフォーマットも種々存在する。そのため、各ページ記述言語の全てを共通の中間言語形式データに変換して処理するには、中間コードに変換するためのプログラムが高機能化し、また、プログラム容量が増大する。描写機能が少ないページ記述言語を処理する上では、高機能化したプログラムは処理の高速化、プログラム容量の観点からは好ましいものではない。
【０００６】
本発明は、上記問題点を解決するためになされたものであり、複数のページ記述言語に対応しつつ処理の省メモリ化及び高速化を図ることができるページ記述言語処理装置、プログラム等の提供を目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面である請求項１に係る発明は、ページ記述言語で記述されたデータから画像データを生成するページ記述言語処理装置であって、制御手段、中間コード記憶手段、解釈コード記憶手段、モジュール情報記憶手段、を有し、前記中間コード記憶手段には、ページ記述言語のコードと共通コードとが対応付けられ、前記制御手段は、コード書き込み処理と描画処理を実行し、前記コード書き込み処理は、ページ記述言語のコードを読み出し、読み出したコードが中間コード記憶手段に記憶されている場合は、該コードに対応する共通コードを、前記解釈コード記憶手段に書き込み、読み出したコードが中間コード記憶手段に記憶されていない場合は、該コードを示す識別符号を、前記解釈コード記憶手段に書き込み、該コードを示す識別符号及び該コードのモジュールのアドレスを、前記モジュール情報記憶手段に書き込み、前記描画処理は、前記解釈コード記憶手段のコードを読み出し、読み出したコードが共通コードであれば、該共通コードに対応するモジュールを実行することにより、画像データを生成し、読み出したコードが共通コードでなければ、該コードに対応するモジュールのアドレスを、前記モジュール情報記憶手段を参照して決定し、決定したアドレスに記憶されているモジュールを実行することにより、画像データを生成することを特徴とする。
【０００８】
上記ページ記述言語処理装置は、読み出したコードが共通コードであれば、該中間コードを解釈コード記憶手段に書き込み、共通コードでなければ、読み出したコードを示す識別符号を前記解釈コード記憶手段に書き込み、また、該識別符号及び該コードのモジュールのアドレスをモジュール情報記憶手段に書き込む。また、上記ページ記述言語処理装置は、前記解釈コード記憶手段のコードを読み出し、読み出したコードが共通コードであれば、該共通コードに対応するモジュールを実行し、共通コードでなければ、該コードに対応するモジュールのアドレスを、前記モジュール情報記憶手段を参照して決定し、決定したアドレスに記憶されているモジュールを実行する。これにより、共通コードはすべてのページ記述言語の機能に対応することはなく、所定の機能のみが共通コードに対応することになる。したがって、共通コードのみで構成されるページ記述言語を高速かつ省メモリで処理することができる。また、複雑な機能を有するページ記述言語を省メモリで処理することができる。また、プログラム容量を少なくすることができる。
【０００９】
本発明の一側面である請求項２に係る発明は、ページ記述言語で記述されたデータから画像データを生成するページ記述言語処理装置であって、制御手段、メモリ、中間コード記憶手段、を有し、前記中間コード記憶手段には、ページ記述言語のコードと共通コードとが対応付けられ、前記制御手段は、解釈コード記憶領域確保処理、モジュール記憶領域確保処理、モジュール情報記憶領域確保処理、コード書き込み処理、描画処理、領域開放処理を実行し、前記解釈コード記憶領域確保処理は、所定のタイミングで、前記メモリの所定領域上に、解釈コード記憶領域を確保し、前記モジュール記憶領域確保処理は、所定のタイミングで、前記メモリの所定領域上に、モジュール記憶領域を確保し、前記モジュール情報記憶領域確保処理は、所定のタイミングで、前記メモリの所定領域上に、モジュール情報記憶領域を確保し、前記コード書き込み処理は、ページ記述言語のコードを読み出し、読み出したコードが中間コード記憶手段に記憶されている場合は、該コードに対応する共通コードを、前記解釈コード記憶領域に書き込み、読み出したコードが共通コード記憶手段に記憶されていない場合は、該コードを示す識別符号を、前記解釈コード記憶領域に書き込み、該コードを示す識別符号及び該コードのモジュールを、前記モジュール記憶領域に書き込み、該コードを示す識別符号及び該コードのモジュールのアドレスを、前記モジュール情報記憶領域に書き込み、前記描画処理は、前記解釈コード記憶領域のコードを読み出し、読み出したコードが共通コードであれば、該共通コードに対応するモジュールを実行することにより、画像データを生成し、読み出したコードが共通コードでなければ、該コードに対応するモジュールのアドレスを参照して決定し、決定したアドレスに記憶されているモジュールを実行することにより、画像データを生成し、前記メモリ開放処理は、１ページ分のコードを前記解釈コード記憶領域から読み出した後に、前記解釈コード記憶領域、前記モジュール記憶領域、前記モジュール情報記憶領域を開放することを特徴とする。
【００１０】
上記ページ記述言語処理装置は、１ページ分のコードを前記解釈コード記憶領域から読み出した後に、前記解釈コード記憶領域、前記モジュール情報記憶領域、前記モジュール記憶領域を開放するので、メモリを有効に利用することができる。
【００１１】
本発明の一側面である請求項３に係る発明は、ページ記述言語で記述されたデータから画像データを生成する処理をコンピュータに実行させるためのページ記述言語処理プログラムであって、ページ記述言語のコードを読み出すステップ、読み出したコードが中間コード記憶手段に記憶されている場合に、該コードに対応する共通コードを、前記解釈コード記憶手段に書き込むステップ、読み出したコードが中間コード記憶手段に記憶されていない場合に、該コードを示す識別符号を、前記解釈コード記憶手段に書き込むステップ、該コードを示す識別符号及び該コードのモジュールのアドレスを、前記モジュール情報記憶手段に書き込むステップ、前記解釈コード記憶手段のコードを読み出すステップ、読み出したコードが共通コードであれば、該共通コードに対応するモジュールを実行することにより、画像データを生成するステップ、読み出したコードが共通コードでなければ、該コードに対応するモジュールのアドレスを、前記モジュール情報記憶手段を参照して決定し、決定したアドレスに記憶されているモジュールを実行することにより、画像データを生成するステップをコンピュータに実行させることを特徴とする。
【００１２】
上記ページ記述言語処理プログラムは、読み出したコードが共通コードであれば、該中間コードを解釈コード記憶手段に書き込み、共通コードでなければ、読み出したコードを示す識別符号を前記解釈コード記憶手段に書き込み、また、該識別符号及び該コードのモジュールのアドレスをモジュール情報記憶手段に書き込む。また、上記ページ記述言語処理装置は、前記解釈コード記憶手段のコードを読み出し、読み出したコードが共通コードであれば、該共通コードに対応するモジュールを実行し、共通コードでなければ、該コードに対応するモジュールのアドレスを、前記モジュール情報記憶手段を参照して決定し、決定したアドレスに記憶されているモジュールを実行する。これにより、共通コードはすべてのページ記述言語の機能に対応することはなく、所定の機能のみが共通コードに対応することになる。したがって、共通コードのみで構成されるページ記述言語を高速かつ省メモリで処理することができる。また、複雑な機能を有するページ記述言語を省メモリで処理することができる。また、プログラム容量を少なくすることができる。
【００１３】
本発明の一側面である請求項４に係る発明は、ページ記述言語で記述されたデータから画像データを生成する処理をコンピュータに実行させるためのページ記述言語処理プログラムであって、所定のタイミングで、前記メモリの所定領域上に、解釈コード記憶領域を確保するステップ、所定のタイミングで、前記メモリの所定領域上に、モジュール情報記憶領域を確保するステップ、  所定のタイミングで、前記メモリの所定領域上に、モジュール記憶領域を確保するステップ、ページ記述言語のコードを読み出すステップ、読み出したコードが中間コード記憶手段に記憶されている場合に、該コードに対応する共通コードを、前記解釈コード記憶領域に書き込むステップ、読み出したコードが中間コード記憶手段に記憶されていない場合に、該コードを示す識別符号を、前記解釈コード記憶領域に書き込むステップ、該コードを示す識別符号及び該コードのモジュールを、前記モジュール記憶領域に書き込むステップ、該コードを示す識別符号及び該コードのモジュールのアドレスを、前記モジュール情報記憶領域に書き込むステップ、前記解釈コード記憶領域のコードを読み出すステップ、読み出したコードが共通コードであれば、該共通コードに対応するモジュールを実行することにより、画像データを生成するステップ、読み出したコードが共通コードでなければ、該コードに対応するモジュールのアドレスを参照して決定し、決定したアドレスに記憶されているモジュールを実行することにより、画像データを生成するステップ、１ページ分のコードを前記解釈コード記憶領域から読み出した後に、前記解釈コード記憶領域、前記モジュール情報記憶領域、前記モジュール記憶領域を開放するステップをコンピュータに実行させることを特徴とする。
【００１４】
上記ページ記述言語処理プログラムは、１ページ分のコードを前記解釈コード記憶領域から読み出した後に、前記解釈コード記憶領域、前記モジュール情報記憶領域、前記モジュール記憶領域を開放するので、メモリを有効に利用することができる。
【発明の効果】
【００１５】
本発明によれば、複数のページ記述言語に対応しつつ処理の省メモリ化及び高速化を図ることができる。また、ページ記述言語を処理するためのプログラム容量を小さくすることができる。
【発明を実施するための最良の形態】
【００１６】
本発明の一実施形態であるページ記述言語処理装置について以下説明する。本実施形態における処理装置は、プロセッサ、第１記憶手段、第２記憶手段、から基本的に構成される。なお、必要に応じ、種々の要素を付加してもよいことはいうまでもない。
【００１７】
第１記憶手段は、例えば、不揮発性のメモリで構成される。また、第１記憶手段には、本発明の実現に必要なプログラムを含む種々のプログラムが記憶されている。また、本発明の実現に必要な種々のデータについても、第１記憶手段に記憶されている。
第２記憶手段は、例えば、揮発性のメモリで構成される。また、第２記憶手段には、第１の記憶手段に記憶されるプログラムやデータがロードされる。
プロセッサは、第１記憶手段及び第２記憶手段に記憶されるデータを用いて種々の処理を実行する。また、プロセッサに接続される種々の装置の動作や信号の流れを制御する。
【００１８】
上述したプロセッサ、第１記憶手段、第２記憶手段は、例えば、プリンタの構成要素として実現することが可能である。このとき、例えば、プリンタ内のＣＰＵが前記プロセッサとして機能し、プリンタ内のＲＯＭが前記第１記憶手段として機能し、プリンタ内のＲＡＭが第２記憶手段として機能する。また、画像処理に特化されたプロセッサ及び／またはメモリを用いて本発明を実現することも可能である。
また、プリンタの構成要素として前記プロセッサ、前記第１記憶手段、前記第２記憶手段を実現する場合、当該プリンタは、コンピュータと接続され、コンピュータより種々の情報が送信される。
【００１９】
以下、本発明の一実施形態を具体化したプリンタについて説明する。本実施形態においては、本発明のページ記述言語処理装置及びページ記述言語処理プログラムが、プリンタ内の構成要素として実現されている。
【００２０】
図１は、本実施形態のプリンタの内部構成を示すブロック図である。図１に示すように、プリンタ１００は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、通信Ｉ／Ｆ１４、印字機構１５を有している。ＣＰＵ１１は、後述するＰＤＬ処理プログラム、中間コード処理プログラムを実行する。ＰＤＬ処理プログラム、中間コード処理プログラムは、ＲＯＭ１２に記憶されている。プログラムの実行においては、ＲＡＭ１３に対し、種々のデータの読み込み／書き込みが行われる。通信Ｉ／Ｆ１４を介して、コンピュータからＰＤＬデータを受信する。中間コード処理プログラムの実行によって生成された画像データは、印字機構１５を用いて印刷される。また、上記それぞれの要素は、信号線によって互いに接続されている。図１に示した構成は、単なる一例であり、本発明が図１に示した構成に限定されないことはいうまでもない。
【００２１】
図２は、本実施形態のプリンタ及びその周辺装置を示している。図２に示すように、プリンタ１００とコンピュータ２００は、ルータ３００を介して接続されている。また、コンピュータ２００からプリンタ１００に対し、ＰＤＬで記述されたデータが送信される。なお、図２に示した構成は、単なる一例であり、本発明が図２に示した構成に限定されないことはいうまでもない。
【００２２】
以下、本実施形態のプリンタで実行されるプログラムについて説明する。本実施形態において実行されるプログラムは、ＰＤＬ処理プログラムと、中間コード処理プログラムに分けることができる。
【００２３】
ＰＤＬ処理プログラムは、取得したＰＤＬデータを解釈し、中間コード（共通コード、特殊コード）に変換する。また、中間コード処理プログラムは、ＰＤＬ処理プログラムが解釈した中間コードに基いて、画像データを生成する。
ＰＤＬ処理プログラムにおける処理と、中間コード処理プログラムにおける処理は、一連の処理として実行することができる。また、ＰＤＬ処理プログラムの実行中に、中間コード処理プログラムをコールすることができる。
また、中間コード処理プログラムによって生成された画像データが、プリンタ１００の印字機構１５を用いて印刷される。ここで、プリンタ１００がレーザプリンタとして実現される場合は、該レーザプリンタが有するレーザプリンタエンジンを、印字機構１５として機能させることができる。
【００２４】
［各プログラムとメモリ内容との関係］
図３は、ＰＤＬ処理プログラム、中間コード処理プログラムにおけるデータの流れを概略的に示したものである。ＰＤＬ処理プログラムによってＲＡＭ上に書き込まれた情報を、中間コード処理プログラムが読み出して処理する。
【００２５】
ＰＤＬ処理プログラムは、ＰＤＬデータを取得する（１）。また、ＰＤＬ処理プログラムは、複数種類のＰＤＬデータに対応している。
ＰＤＬ処理プログラムは、取得したＰＤＬデータに含まれるコード（コマンド）を順次解釈する。このとき、ＲＡＭに記憶されている共通中間コード表が参照される（２）。
【００２６】
図４は、共通中間コード表のデータ構造の一例を示している。図４に示すように、中間コード処理プログラムで処理可能なコードが、「共通コード」として記憶されている。また、それぞれの共通コードは、番号が付されている。なお、共通中間コード表は、所定のタイミングで、ＲＡＭに書き込まれているものとする。
【００２７】
ここで、共通コードとして定義されるコードとしては、文字を描画するコマンダが挙げられる。共通コードは、複数のＰＤＬにおいて利用される汎用性が高いコードである。
【００２８】
ＰＤＬ処理プログラムは、解釈対象のコードが共通中間コード表に存在すると判断すると、該解釈対象のコードに対応する「共通コード」を、中間コードバッファに書き込む（３）。なお、共通コードに対応する番号を中間コードバッファに書き込むよう構成してもよい。
【００２９】
また、解釈対象となるコードが共通中間コード表に存在しないと判断すると、該解釈対象のコードと該コードのモジュールアドレスを、中間コード登録表に書き込む（４、５、６）。なお、該コードのモジュールは、ＲＡＭ上に展開されている。また、該コードを、「特殊コード」として中間コードバッファに書き込む（３）。
【００３０】
図５は、中間コードバッファのデータ構造の一例を示している。図５に示すように、ＰＤＬ処理プログラムによって変換された中間コードが順に書き込まれている。図５は、上記（１）で取得したＰＤＬデータのコードが、「共通コードＢ」→「共通コードＥ」→「特殊コード１」→「特殊コード２」→…→「共通コードＤ」として解釈されたことを示している。
【００３１】
図６は、中間コード登録表のデータ構造の一例を示している。図６に示すように、取得したＰＤＬデータに含まれる特殊データが、そのモジュールアドレスとともに記憶されている。また、特殊コード処理モジュールは、所定のタイミングでＲＡＭに書き込まれる。
【００３２】
ここで、特殊コードとして定義されるものは、グラデーションを描画するコマンダが挙げられる。特殊コードは、特殊な用途に用いられるものであり、汎用性が高いものではない。
【００３３】
以上のとおり、ＰＤＬ処理プログラムは、取得したＰＤＬデータのコードを解析し、解析結果を、中間コードバッファに書き込む。また、特殊コードを解析した場合は、該特殊コードに対応する特殊コード処理モジュールをＲＡＭに書き込み、また、該モジュールのアドレスを特殊コードに対応づけて、中間コード登録表に書き込む。これらの情報は、中間コード処理プログラムにおいて用いられる。
【００３４】
一方、中間コード処理プログラムは、中間コードバッファをアクセスし、順次コードを読み出す。読み出したコードが共通コードであれば、該コードに対応する共通コード処理モジュールを実行する（８、９）。これにより、該コードに対応する画像データを生成（描画）することができる。
【００３５】
また、読み出したコードが特殊コードであれば、中間コード登録表を参照することにより該特殊コードのモジュールアドレスを決定する（１０）。そして、決定したモジュールアドレスのモジュール（特殊コード処理モジュール）を実行する（１１、１２）。これにより、該コードに対応する画像データを生成（描画）することができる。
【００３６】
［ＰＤＬ処理プログラム］
次に、ＰＤＬ処理プログラムの詳細について説明する。図７は、ＰＤＬ処理プログラムのフローチャートである。本実施形態では、プリンタ１００が有するＣＰＵ１１が、ＰＤＬ処理プログラムを実行する。ＰＤＬ処理プログラムは、取得したＰＤＬデータに含まれるＰＤＬコードを順次解析し、解析結果として、共通コードもしくは特殊コードを中間コードバッファに書き込む。
【００３７】
Ｓ１において、取得したＰＤＬデータからＰＤＬコードを読み出す。
Ｓ２において、共通中間コード表を参照し、読み出したＰＤＬコードが共通中間コード表に存在するか否かを判断する。すなわち、読み込んだＰＤＬコードが、「共通コード」（中間コード処理プログラムが有する共通コード処理モジュールを実行するためのコマンド）であるか、「特殊コード」（中間コードが予め有していないモジュールを実行するためのコマンド）であるかを判断する。
【００３８】
読み出したＰＤＬコードが、共通中間コード表に存在すると判断した場合は（Ｓ３：ＹＥＳ）、Ｓ４に移行する。Ｓ４において、対応する中間コードを中間コードバッファに書き込む。中間コードバッファは、例えば、ＲＡＭ上に確保される。また、ＲＡＭ上に中間コードバッファが確保されるタイミングは、Ｓ３の条件判断で「ＹＥＳ」と判断されるごとに所定容量確保するよう構成してもよく、また、ＰＤＬ処理プログラムの実行開始時において、想定される容量を予め確保するよう構成してもよい。
【００３９】
一方、Ｓ３において、読み込んだＰＤＬコードが、共通中間コード表に存在しないと判断した場合、すなわち、読み込んだＰＤＬコードは特殊コードであると判断した場合は（Ｓ３：ＮＯ）、Ｓ５に移行する。
Ｓ５において、中間コード登録表を参照し、読み込んだＰＤＬコードが中間登録コード表に含まれているか否かを判断する。
【００４０】
読み込んだＰＤＬコードが、中間コード登録表に存在しないと判断した場合は（Ｓ６：ＮＯ）、Ｓ７に移行する。Ｓ７において、読み込んだＰＤＬコードを特殊コードとして、中間コード登録表に書き込む。また、その特殊コードに対応するモジュールのアドレスを該特殊コードに対応づけて中間コード登録表に書き込む（図６参照）。中間コード登録表は、例えば、ＲＡＭ上に確保される。
【００４１】
なお、ＲＡＭ上に中間コード登録表が確保されるタイミングは、Ｓ６の条件判断で「ＮＯ」と判断されるごとに所定容量確保するよう構成してもよく、また、ＰＤＬ処理プログラムの実行開始時において、想定される容量を予め確保するよう構成してもよい。
また、ＰＤＬコードに対応するモジュールは、所定のタイミングでＲＡＭ上に書き込まれるものとする。例えば、所定のタイミングとしては、Ｓ７とすることができる。
【００４２】
一方、読み込んだＰＤＬコードが、中間コード登録表に存在すると判断した場合は（Ｓ６：ＹＥＳ）、Ｓ８に移行する。すなわち、読み込んだＰＤＬコードに対応する特殊コード及びモジュールアドレスが、既に中間コード登録表に記憶されている場合は、該ＰＤＬコードを中間コード登録表に新規登録する必要はない。
【００４３】
Ｓ８において、読み込んだＰＤＬコードを、「特殊コード」として中間コードバッファに書き込む。このとき、該特殊コードを示す識別番号を中間コードバッファに書き込むよう構成してもよい。
【００４４】
Ｓ９において、１ページ分のＰＤＬコードを解釈したか否かを判断する。１ページ分のＰＤＬコードを解釈したと判断した場合は（Ｓ９：ＹＥＳ）、Ｓ１０に移行する。一方、１ページ分のＰＤＬコードの解釈処理が終了していないと判断した場合は（Ｓ９：ＮＯ）、Ｓ１に戻り、次のＰＤＬコードを読み込む。
【００４５】
Ｓ１０において、中間コード処理を実行する。中間コード処理の詳細については後述する。
Ｓ１１において、中間コードバッファ、中間コード登録表、特殊モジュールに対して確保したメモリ領域を開放する。
【００４６】
以上のとおり、本実施形態におけるＰＤＬ処理は、１ページ分のＰＤＬデータの処理を単位としてメモリ（ＲＡＭ）上に、必要な領域の確保・開放を行うため、メモリを効率的に用いることができる。
【００４７】
［中間コード処理］
次に、中間コード処理プログラムの詳細について説明する。図８は、中間コード処理プログラムのフローチャートである。中間コード処理プログラムは、上述したＰＤＬ処理プログラムからコールされることで実行される。
中間コード処理は、中間コードバッファに記憶される中間コードを順次読み出し、読み出した中間コードを実行することで、画像データを生成する。
【００４８】
Ｓ２１において、中間コードバッファから中間コードを読み出す。
Ｓ２２において、読み出したコードが特殊コードであるか否かを判断する。この判断は、共通中間コード表（図４参照）を用いることで行うことができる。読み出した中間コードが特殊コードではない（すなわち、共通コードである）と判断した場合は（Ｓ２２：ＮＯ）、Ｓ２３に移行する。
【００４９】
Ｓ２３において、該共通コードに対応するモジュールを実行することにより、画像データを生成する。また、生成された画像データは、例えば、ＲＡＭ１３上の所定の領域に一時的に記憶される。
なお、共通コードに対応するモジュールは、ＲＡＭに展開されているものとする。
【００５０】
一方、Ｓ２２において、読み出したコードが特殊コードであると判断した場合は（Ｓ２２：ＹＥＳ）、Ｓ２４に移行する。
Ｓ２４において、中間コード登録表（図６参照）をアクセスし、該特殊コードのモジュールのアドレスを決定する。
Ｓ２５において、Ｓ２４で決定したアドレスのモジュールを実行することにより、画像データを生成する。また、生成された画像データは、例えば、ＲＡＭ１３上の所定の領域に一時的に記憶される。
【００５１】
Ｓ２６において、１ページ分のコードの実行を終了したか否かを判断する。
１ページ分のコードの実行を終了していないと判断した場合は（Ｓ２６：ＮＯ）、Ｓ２１に戻り、次のコードを読み出す。一方、１ページ分のコードの実行を終了したと判断した場合は（Ｓ２６：ＹＥＳ）、中間コード処理を終了する。
【００５２】
そして、生成された１ページ分の画像データは、印字機構１５（印刷エンジン）に渡され、用紙等へ印刷される。なお、印刷のための処理は公知であるので、説明を省略する。
【００５３】
以上のとおり、本実施形態における中間コード処理は、１ページ分のＰＤＬデータを単位として中間コード（共通コード、特殊コード）の実行を行うため、メモリを効率的に用いることができる。
【００５４】
上述したＰＤＬ処理及び中間コード処理によれば、１ページ分のＰＤＬデータの処理が終了した後、中間コードバッファ、中間コード登録表、特殊モジュールのメモリ領域が開放される。
【００５５】
図９は、１ページ分のＰＤＬデータの処理が終了した後、メモリ領域が開放された様子を示している。図９に示すように、ＲＡＭ上に確保されていた中間コードバッファ、中間コード登録表、特殊コード処理モジュール１、特殊コード処理モジュール２のメモリ領域（図３参照）が開放されている。
【００５６】
図１０は、新たにＲＡＭ上に、中間コードバッファ、中間コード登録表、特殊コード処理モジュール３、特殊コード処理モジュール４のメモリ領域が確保された様子を示している。図１０に示すように、上記図３で確保されていたメモリ領域上に、新たに、中間コードバッファ、中間コード登録表、特殊コード処理モジュール３、特殊コード処理モジュール４のメモリ領域が確保されている。中間コードバッファ及び中間コード登録表の内容は、上記図３の中間コードバッファ及び中間コード登録表とは異なる。
【００５７】
このように、１ページ分のＰＤＬデータの処理ごとに、メモリ領域の確保・開放を繰り返すことにより、省メモリ化を図ることができ、メモリ領域を有効に活用することができる。なお、上述した実施形態においては、１ページ分のＰＤＬデータの処理ごとにメモリ領域の確保・開放を行ったが、複数ページ分のＰＤＬデータの処理ごとに、上述したメモリ領域の確保・開放を行うよう構成してもよい。
【００５８】
さらに、処理対象となるＰＤＬデータが、共通コードのみから構成される場合は、中間コード登録表及び特殊コードモジュールのメモリ領域を確保する必要がない。図１１は、共通コードのみから構成されるＰＤＬデータを処理した場合におけるＲＡＭ上の内容を示している。図１１に示すように、中間コードバッファのメモリ領域は確保されているものの、中間コード登録表及び特殊コード処理モジュールのメモリ領域は確保されていない。
このように、共通コードのみから構成されるＰＤＬデータを処理する場合においては、確保されるメモリ量を削減することができる。
【００５９】
以上説明したとおり、本発明によれば、ＰＤＬコードを順次解析し、共通コードまたは特殊コードに変換する。また、特殊コードについては、該コードに対応する特殊コード処理モジュールをメモリ上に書き込み、また、そのアドレスを該コードに対応づけて書き込む。また、変換された共通コード及び特殊コードを実行することにより、画像データを生成する。これにより、複数のページ記述言語に対応しつつ、省メモリ化、高速化を図ることができる。また、プログラム容量を小さくすることができる。
【００６０】
さらに、共通コードのみから構成されるＰＤＬデータについては、メモリ上に確保すべき容量を小さくすることができる。また、特殊コードを含むＰＤＬデータについては、該特殊コードを実行するために必要な特殊コード処理モジュールのためのメモリ領域を、ページ単位で確保・開放することができるので、メモリを有効に利用することができる。
また、共通コードを追加する場合は、共通中間コードを変更し、該共通コードに対応する共通コード処理モジュールを追加すればよい。
【００６１】
本発明は上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変形が可能であることはいうまでもない。
また、上述したプログラムを記録された記録媒体、上述したプログラムに係る処理方法としても本発明は実現可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施形態におけるプリンタの内部構成を示すブロック図である。
【図２】本発明の一実施形態におけるプリンタ及びその周辺装置の概略図である。
【図３】プログラムとメモリ内容との関係を示す図である。
【図４】共通中間コード表のデータ構造の一例を示す図である。
【図５】中間コードバッファのデータ構造の一例を示す図である。
【図６】中間コード登録表のデータ構造の一例を示す図である。
【図７】ＰＤＬ処理のフローチャートである。
【図８】中間コード処理のフローチャートである。
【図９】メモリ領域が開放された様子を示す図である。
【図１０】メモリ領域が確保された様子を示す図である。
【図１１】メモリ領域が確保された様子を示す図である。
【符号の説明】
【００６３】
１００      プリンタ
１１      ＣＰＵ
１２      ＲＯＭ
１３      ＲＡＭ
１４      通信Ｉ／Ｆ
１５      印字機構
２００      コンピュータ
【図１】
2009199130.tif 000003
【図２】
2009199130.tif 000004
【図３】
2009199130.tif 000005
【図４】
2009199130.tif 000006
【図５】
2009199130.tif 000007
【図６】
2009199130.tif 000008
【図７】
2009199130.tif 000009
【図８】
2009199130.tif 000010
【図９】
2009199130.tif 000011
【図１０】
2009199130.tif 000012
【図１１】
2009199130.tif 000013