JP4613975B2 - ページ記述言語処理装置 - Google Patents

ページ記述言語処理装置 Download PDF

Info

Publication number
JP4613975B2
JP4613975B2 JP2008089613A JP2008089613A JP4613975B2 JP 4613975 B2 JP4613975 B2 JP 4613975B2 JP 2008089613 A JP2008089613 A JP 2008089613A JP 2008089613 A JP2008089613 A JP 2008089613A JP 4613975 B2 JP4613975 B2 JP 4613975B2
Authority
JP
Japan
Prior art keywords
command
program
intermediate language
data
vector data
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.)
Active
Application number
JP2008089613A
Other languages
English (en)
Other versions
JP2009241363A (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.)
Brother Industries Ltd
Original Assignee
Brother Industries 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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2008089613A priority Critical patent/JP4613975B2/ja
Priority to EP09250416.6A priority patent/EP2093659B1/en
Priority to US12/388,812 priority patent/US8566715B2/en
Publication of JP2009241363A publication Critical patent/JP2009241363A/ja
Application granted granted Critical
Publication of JP4613975B2 publication Critical patent/JP4613975B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)
  • Image Generation (AREA)
  • Position Input By Displaying (AREA)

Description

本発明は、ページ記述言語で記述されたデータからビットマップデータを作成する技術に関する。本明細書で使用する「ページ記述言語」という用語は、ページという概念を利用してデータを記述するためのあらゆる言語を含む概念である。ページ記述言語の例として、例えば、PDF(Portable document Format)、PS(Post Script)等を挙げることができる。また、ワープロソフト、表計算ソフト、描画ソフト等で利用されている言語の中でページという概念を利用してデータを記述する言語も、ページ記述言語と呼ぶことができる。なお、以下では、ページ記述言語のことをPDL(Page Description Language)と呼ぶことがある。
例えば、多くのプリンタは、PDLで記述されたベクタデータを入力し、そのベクタデータから多階調(例えば256階調)のビットマップデータを作成する。この種のプリンタは、多階調ビットマップデータをページメモリ又はバンドメモリ(例えば2階調(ドットのON/OFF))に書き込み、ページメモリ又はバンドメモリの記憶内容に従って印刷媒体に印刷する。
近年、上述したように、PDFやPSのように複数種類のPDLが存在する。各PDLは独自のフォーマットに従ってベクタデータを記述することができるため、複数種類のPDLを処理することができる技術が求められている。即ち、複数種類のPDLのいずれで記述されたベクタデータでもビットマップデータを作成することができる技術が求められている。例えば、下記の特許文献1には、複数種類のPDLのそれぞれについて、当該PDLで記述されたベクタデータからビットマップデータを作成することができるプリンタが開示されている。
特開平4−128068号公報
上記の特許文献1の技術を利用すると、様々な種類のPDLで記述されたベクタデータからビットマップデータを作成することができる。しかしながら、この技術を実現するためには、複数種類のPDLのそれぞれについて、当該PDLの様々なフォーマットに従って記述されたベクタデータからビットマップデータを作成するためのプログラムが必要になる。例えば、第1PDLと第2PDLが存在し、どちらのPDLでも線型グラデーションとテキストを記述することができるものとする。この場合、第1PDLの第1フォーマットで記述された線型グラデーションからビットマップデータを作成するためのプログラムと、第1PDLの第2フォーマットで記述されたテキストからビットマップデータを作成するためのプログラムと、第2PDLの第3フォーマットで記述された線型グラデーションからビットマップデータを作成するためのプログラムと、第2PDLの第4フォーマットで記述されたテキストからビットマップデータを作成するためのプログラムとが必要になる。PDLの種類が増加したり、各PDLで利用されるフォーマット(表現機能と換言することもできる)の数が増加したりすると、膨大な量のプログラムが必要になる。
本明細書では、複数種類のPDLを処理することができるデバイスを少ないプログラム量で実現することができる技術を提供する。
本発明は、ページ記述言語で記述されたデータからビットマップデータを作成するページ記述言語処理装置である。本発明のページ記述言語処理装置は、複数種類のページ記述言語のそれぞれについて、当該ページ記述言語の所定のコマンドで記述されたベクタデータから中間言語で記述されたベクタデータを作成するためのプログラムを記憶している中間言語作成プログラム記憶手段と、前記中間言語で記述されたベクタデータからビットマップデータを作成するためのプログラムを記憶している第1ビットマップデータ作成プログラム記憶手段と、前記複数種類のページ記述言語のうちの特定のページ記述言語の前記所定のコマンド以外の第1の特定のコマンドで記述されたベクタデータから、前記中間言語を経由せずに、ビットマップデータを作成するためのプログラムを記憶している第2ビットマップデータ作成プログラム記憶手段と、ページ記述言語で記述された特定のベクタデータを入力するベクタデータ入力手段であって、前記特定のベクタデータは、少なくとも第1のコマンドを含む、前記ベクタデータ入力手段と、前記特定のベクタデータに含まれる前記第1のコマンドが、中間言語作成プログラム記憶手段に記憶されている前記プログラムに対応するものであるのか否かを判断する第1判断手段と、前記第1のコマンドについて第1判断手段によって肯定的に判断されたことを条件として、中間言語作成プログラム記憶手段に記憶されている前記プログラムに従って、前記第1のコマンドから前記中間言語で記述された第1のベクタデータを作成する中間言語ベクタデータ作成手段と、前記第1のコマンドについて第1判断手段によって肯定的に判断されたことを条件として、第1ビットマップデータ作成プログラム記憶手段に記憶されている前記プログラムに従って、中間言語ベクタデータ作成手段によって作成された第1のベクタデータから第1のビットマップデータを作成する第1ビットマップデータ作成手段と、前記第1のコマンドについて第1判断手段によって否定的に判断されたことを条件として、第2ビットマップデータ作成プログラム記憶手段に記憶されている前記プログラムに従って、前記第1のコマンドから、前記中間言語を経由せずに、第2のビットマップデータを作成する第2ビットマップデータ作成手段と、を備える。前記中間言語作成プログラム記憶手段は、前記第1の特定のコマンドで記述されたベクタデータから前記中間言語で記述されたベクタデータを作成するためのプログラムを記憶していない。
なお、以下の「グラデーション」や「テキスト」という具体例は、技術を理解し易いように記載するものであり、あくまで例示である。本明細書によって開示される技術は、この具体例によって限定的に解釈されることはない。多くのPDLは、同じタイプのデータを記述することができる。例えば、多くのPDLは、線型グラデーションやテキストを記述することができる。この知見に鑑みて、本明細書によって開示される技術では、PDLで記述されたベクタデータから中間言語で記述されたベクタデータを作成し、中間言語で記述されたベクタデータからビットマップデータを作成する技術を採用する。即ち、様々な種類のPDLで記述されたベクタデータを、ビットマップデータに変換する前に同じ中間言語で記述されたベクタデータに変換する技術を採用する。
例えば、上記の第1PDLと第2PDLのそれぞれによって同じ線型グラデーション(例えば左から右に向かって赤色から青色に変わっていくグラデーション)が記述されている場合、第1PDLのフォーマットで記述された線型グラデーションから中間言語で記述されたベクタデータが作成され、第2PDLのフォーマットで記述された線型グラデーションから同じ中間言語で記述されたベクタデータが作成される。この場合、中間言語で記述されたベクタデータは同じになる。そうすると、この中間言語のベクタデータをビットマップデータに変換するためのプログラムがあれば、第1PDLと第2PDLのどちらで記述された線型グラデーションであっても、ビットマップデータを作成することができる。この例の場合、第1PDLのフォーマットで記述された線型グラデーションから中間言語で記述されたベクタデータを作成するための第1プログラムと、第2PDLのフォーマットで記述された線型グラデーションから中間言語で記述されたベクタデータを作成するための第2プログラムと、中間言語で記述された線型グラデーションのベクタデータからビットマップデータを作成するための第3プログラムとが必要になる。即ち、第1PDLと第2PDLを処理するためのプログラムにおいて、線型グラデーションのベクタデータからビットマップデータを作成するための第3プログラムを共通化することができる。確かに、上記の第1プログラムと第2プログラムが新たに必要になる。しかしながら、ベクタデータ(PDL)をベクタデータ(中間言語)に変換するためのプログラムは、それほど大きなプログラム量を必要としない。ベクタデータをビットマップデータに変換するためのプログラムの方が大きなプログラム量を要する。上記の例の場合、第1プログラムと第2プログラムが新たに必要にはなるが、第3プログラムを共通化することができるために、全体のプログラム量は特許文献1の技術よりも少なくすることができる。
近年のPDLは、様々なフォーマット(表現機能)を利用してベクタデータを記述することができる。例えば、線型グラデーションのみならず、非線型グラデーションを記述することができるフォーマットを有するPDLが存在する。即ち、他のPDLでは記述することができず、1種類(もしくは少ない種類)のPDLのみが有する特殊なフォーマットが存在する。例えば、上記の第1PDLのみが非線型グラデーションを記述することができるフォーマットを有しており、他の種類のPDL(例えば上記の第2PDL)は非線型グラデーションを記述することができないことがある。この例の場合、複数種類のPDLが有する全てのフォーマットを中間言語に変換する手法を利用すると、第1PDLで記述された非線型グラデーションのベクタデータから中間言語で記述されたベクタデータを作成するためのプログラムと、そのベクタデータからビットマップデータを作成するためのプログラムとが必要になる。ここでの後者のプログラムは、他の種類のPDLと共通化することができない。他の種類のPDLは、非線型グラデーションを記述することができないからである。そうすると、非線型グラデーションに限って言うと、中間言語に変換する手法を採用しているにもかかわらず、必要なプログラム量を少なくすることができない。それどころか、非線型グラデーションのベクタデータから中間言語で記述されたベクタデータを作成するためのプログラムが必要であるために、プログラム量が増大するという事態を招いてしまう。本発明者は、1種類(もしくは少ない種類)のPDLのみが有する特殊なフォーマットは中間言語に変換しない方が必要なプログラム量を少なくすることができることを見出した。本明細書によって開示される一つの形態の技術は、このような知見に鑑みて創作されたものであり、以下の構成を備える。
本明細書によって開示される1つの形態の技術は、ページ記述言語で記述されたデータからビットマップデータを作成するページ記述言語処理装置である。なお、この技術は、印刷用にビットマップデータを作成するための技術に限定されることはなく、表示用にビットマップデータを作成するための技術にも利用することができる。また、上記の「ビットマップデータ」は、多諧調ビットマップデータであってもよいし、2階調のビットマップデータであってもよい。ページ記述言語処理装置は、中間言語作成プログラム記憶手段と、ベクタデータ入力手段と、第1判断手段と、中間言語ベクタデータ作成手段と、第1ビットマップデータ作成手段と、第2ビットマップデータ作成手段とを備える。
中間言語作成プログラム記憶手段は、複数種類のページ記述言語のそれぞれについて、当該ページ記述言語の所定のフォーマットで記述されたベクタデータから中間言語で記述されたベクタデータを作成するためのプログラムを記憶している。ベクタデータ入力手段は、ページ記述言語で記述されたベクタデータを入力する。例えば、ページ記述言語で記述されたベクタデータが他のデバイスから送信される場合、ベクタデータ入力手段は、他のデバイス(パーソナルコンピュータ、サーバ、ポータブルメモリ等)から送信されたベクタデータを入力してもよい。第1判断手段は、ベクタデータ入力手段に入力された入力ベクタデータを記述している記述フォーマットが、中間言語作成プログラム記憶手段に記憶されているプログラムに対応するものであるのか否かを判断する。
中間言語ベクタデータ作成手段は、第1判断手段によって肯定的に判断されたことを条件として、中間言語作成プログラム記憶手段に記憶されているプログラムに従って、上記の記述フォーマットで記述された入力ベクタデータから中間言語で記述されたベクタデータを作成する。第1ビットマップデータ作成手段は、中間言語ベクタデータ作成手段によって作成されたベクタデータからビットマップデータを作成する。第2ビットマップデータ作成手段は、第1判断手段によって否定的に判断されたことを条件として、上記の記述フォーマットで記述された入力ベクタデータからビットマップデータを作成する。なお、上記の「条件として」という用語は、他の条件(AND条件、OR条件)が加わることを排除するものではない。以下の記載でも、「条件として」という用語を使用する場合は同様である。
なお、以下で記載される「グラデーション」もあくまで例示であり、この具体例によって本明細書によって開示される技術が限定的に解釈されることはない。例えば、中間言語作成プログラム記憶手段は、複数種類のPDLのそれぞれについて、当該PDLのフォーマットで記述された線型グラデーションのベクタデータから中間言語で記述されたベクタデータを作成するためのプログラムを記憶している。一方において、中間言語作成プログラム記憶手段は、1種類(あるいは少ない種類)のPDLのみが記述することができる非線型グラデーションのベクタデータから中間言語で記述されたベクタデータを作成するためのプログラムを記憶していない。この場合、様々なPDLが独自のフォーマットに従って記述している線型グラデーションのベクタデータについては、第1判断手段で肯定的に判断され、中間言語で記述されたベクタデータが作成され、このベクタデータからビットマップデータが作成される。複数種類のPDLを処理するためのプログラムにおいて、線型グラデーションのベクタデータ(中間言語)からビットマップデータを作成するためのプログラムを共通化することができる。このために、必要なプログラム量を少なくすることができる。
一方において、非線型グラデーションのベクタデータについては、第1判断手段で否定的に判断され、中間言語で記述されたベクタデータが作成されない。非線型グラデーションのベクタデータは、中間言語に変換されることなく、ビットマップデータに変換される。非線型グラデーションのベクタデータから中間言語で記述されたベクタデータを作成するためのプログラムが必要ないために、必要なプログラム量を少なくすることができる。この技術によると、複数種類のPDLを処理することができるデバイスを少ないプログラム量で実現することができる。
ページ記述言語処理装置は、第1ビットマップデータ作成プログラム記憶手段と第2ビットマップデータ作成プログラム記憶手段とをさらに備えていてもよい。第1ビットマップデータ作成プログラム記憶手段は、中間言語で記述されたベクタデータからビットマップデータを作成するためのプログラムを記憶している。第2ビットマップデータ作成プログラム記憶手段は、複数種類のページ記述言語のそれぞれについて、当該ページ記述言語の上記の所定のフォーマット以外のフォーマットで記述されたベクタデータからビットマップデータを作成するためのプログラムを記憶している。なお、ここでの「複数種類のページ記述言語」は、中間言語作成プログラム記憶手段の「複数種類のページ記述言語」と同じであってもよいし、そうでなくてもよい。例えば、所定のPDLで利用される全てのフォーマットから中間言語を作成することができる場合、第2ビットマップデータ作成プログラム記憶手段は、その所定のPDLからビットマップデータを作成するためのプログラムを記憶していなくてもよい。
上記の構成の場合、第1ビットマップデータ作成手段は、第1ビットマップデータ作成プログラム記憶手段に記憶されているプログラムに従って、中間言語ベクタデータ作成手段によって作成されたベクタデータからビットマップデータを作成することができる。また、第2ビットマップデータ作成手段は、第2ビットマップデータ作成プログラム記憶手段に記憶されているプログラムに従って、上記の記述フォーマットで記述された入力ベクタデータからビットマップデータを作成することができる。
ページ記述言語処理装置は、入力ベクタデータを記述している上記の記述フォーマットが、第2ビットマップデータ作成プログラム記憶手段に記憶されているプログラムに対応するものであるのか否かを判断する第2判断手段をさらに備えていてもよい。この場合、第2ビットマップデータ作成手段は、第1判断手段によって否定的に判断され、かつ、第2判断手段によって肯定的に判断されたことを条件として、第2ビットマップデータ作成プログラム記憶手段に記憶されているプログラムに従って、上記の記述フォーマットで記述された入力ベクタデータの全部からビットマップデータを作成してもよい。一方において、第2ビットマップデータ作成手段は、第1判断手段によって否定的に判断され、かつ、第2判断手段によって否定的に判断されたことを条件として、上記の記述フォーマットで記述された入力ベクタデータの一部のみからビットマップデータを作成してもよい。なお、この構成を実現するために、入力ベクタデータの一部のみからビットマップデータを作成するための専用プログラムを用意しておいてもよい。
例えば、非常に特殊な非線型グラデーションを記述している入力ベクタデータの場合、その入力ベクタデータの全部を解釈することができないが、その入力ベクタデータの一部(例えば形状、色等)を解釈することができることがある。このような場合、その入力ベクタデータについては第2判断手段で否定的に判断され、その入力ベクタデータの一部のみ(即ち解釈可能な部分のみ)からビットマップデータが作成される。この結果、例えば、特殊な非線型グラデーションの全てをビットマップデータに変換することはできないが、例えば形状のような単純な部分のみについてはビットマップデータに変換することができる。
複数種類のページ記述言語の間で同じフォーマットが利用されることがある。例えば、PDFとPSは、同概念のフォーマットが利用されることがある。この場合、PDFの第1フォーマットで記述されたベクタデータからビットマップデータを作成するためにプログラムと、PSの同概念の第1フォーマットで記述されたベクタデータからビットマップデータを作成するためにプログラムとを共通化することができる。この技術思想をより一般的に表現すると、以下のようになる。即ち、第2ビットマップデータ作成プログラム記憶手段に記憶されているプログラムでは、少なくとも2種類のページ記述言語の間で同概念のフォーマットで記述されたベクタデータからビットマップデータを作成するためのプログラムが共通化されていることが好ましい。この構成によると、必要なプログラム量をより少なくすることができる。
ページ記述言語で記述されたベクタデータから中間言語で記述されたベクタデータを作成するプログラムについても、上記と同様に共通化してもよい。即ち、中間言語作成プログラム記憶手段に記憶されているプログラムでは、少なくとも2種類のページ記述言語の間で共通するフォーマットで記述されたベクタデータから中間言語で記述されたベクタデータを作成するためのプログラムが共通化されていてもよい。
例えば、第1PDLと第2PDLの両方が同じ特殊色を表現することができるものとする。ただし、第1PDLと第2PDLでは、上記の特殊色を記述するためのフォーマットは異なるものとする。さらに、このような特殊色は一般色に変換されてからビットマップデータに変換されることがある。この例の場合、第1PDLのフォーマットで記述された特殊色から一般色に変換するためのプログラムと、第2PDLのフォーマットで記述された特殊色から一般色に変換するためのプログラムとが必要になる。このようなプログラム量を圧縮するために、以下の構成を採用してもよい。
即ち、中間言語作成プログラム記憶手段は、少なくとも2種類のページ記述言語のそれぞれについて、当該ページ記述言語の第1の所定のフォーマットで記述されたベクタデータから中間言語と異なる中間言語で記述されたベクタデータを作成するための第1プログラムと、上記の異なる中間言語で記述されたベクタデータから中間言語で記述されたベクタデータを作成するための第2プログラムとをさらに記憶していてもよい。この場合、中間言語ベクタデータ作成手段は、入力ベクタデータを記述している上記の記述フォーマットが第1プログラムに対応することを条件として、第1プログラムに従って、上記の記述フォーマットで記述された入力ベクタデータから上記の異なる中間言語で記述されたベクタデータを作成してもよい。また、中間言語ベクタデータ作成手段は、第2プログラムに従って、上記の異なる中間言語で記述されたベクタデータから中間言語で記述されたベクタデータを作成してもよい。
上記の「第1の所定のフォーマット」は、例えば、上記の特殊色を記述するためのフォーマットである。中間言語ベクタデータ作成手段は、第1PDLのフォーマットで記述された特殊色のベクタデータから上記の異なる中間言語(特殊色のベクタデータ)に変換することができ、第2PDLのフォーマットで記述された特殊色のベクタデータから上記の異なる中間言語(特殊色のベクタデータ)に変換することができる。即ち、同じベクタデータが作成される。そうすると、上記の異なる中間言語(特殊色のベクタデータ)から中間言語に変換するための第2プログラムを共通化することができる。即ち、この例の場合、第1PDLと第2PDLを処理するためのプログラムにおいて、特殊色から一般色に変換するためのプログラムを共通化することができる。このために、プログラム量を少なくすることができる。なお、上記の「特殊色」や「一般色」も単なる例示であり、この具体例によって本明細書によって開示される技術が限定的に解釈されることはない。色以外のものを表現するためのフォーマットについても、上記の異なる中間言語に変換した後に中間言語に変換する手法を採用してもよい。
例えば、上記の第1PDLと第2PDLにおいて、それらのPDLで利用される全てのフォーマットを上記の異なる中間言語に変換しなくてもよい。即ち、一部のフォーマットのみを上記の異なる中間言語に変換し、他のフォーマットについては上記の異なる中間言語に変換せずに直接的に中間言語に変換してもよい(もしくは直接的にビットマップデータに変換してもよい)。上記の特殊色の例のように上記の異なる中間言語に変換した方がプログラム量を圧縮することができるフォーマットが存在する一方において、上記の異なる中間言語に変換する必要のないフォーマットが存在する。フォーマットに応じて処理を変えることが好ましい。これを実現するために、以下の構成を採用してもよい。
即ち、中間言語作成プログラム記憶手段は、上記の少なくとも2種類のページ記述言語のそれぞれについて、当該ページ記述言語の第2の所定のフォーマットで記述されたベクタデータから中間言語で記述されたベクタデータを作成するための第3プログラムを記憶していてもよい。この場合、中間言語ベクタデータ作成手段は、入力ベクタデータを記述している上記の記述フォーマットが第3プログラムに対応することを条件として、第3プログラムに従って、上記の記述フォーマットで記述された入力ベクタデータから中間言語で記述されたベクタデータを作成してもよい。
本明細書では、上記のページ記述言語処理装置を実現するためのコンピュータプログラムを開示する。このコンピュータプログラムは、複数種類のページ記述言語のそれぞれについて、当該ページ記述言語の所定のフォーマットで記述されたベクタデータから中間言語で記述されたベクタデータを作成するための中間言語作成プログラムを含んでいる。このコンピュータプログラムは、以下の各処理をコンピュータに実行させる。
(1)ページ記述言語で記述されたベクタデータを入力するベクタデータ入力処理。
(2)ベクタデータ入力処理で入力された入力ベクタデータを記述している記述フォーマットが、中間言語作成プログラムに対応するものであるのか否かを判断する判断処理。
(3)判断処理で肯定的に判断されたことを条件として、中間言語作成プログラムに従って、上記の記述フォーマットで記述された入力ベクタデータから中間言語で記述されたベクタデータを作成する中間言語ベクタデータ作成処理。
(4)中間言語ベクタデータ作成処理で作成されたベクタデータからビットマップデータを作成する第1ビットマップデータ作成処理。
(5)判断処理によって否定的に判断されたことを条件として、上記の記述フォーマットで記述された入力ベクタデータからビットマップデータを作成する第2ビットマップデータ作成処理。
このコンピュータプログラムによると、複数種類のPDLを処理することができるデバイスを少ないプログラム量で実現することができる。
ここでは、以下の実施例に記載の技術の特徴の一部をまとめておく。
(形態1)PDLで利用されるフォーマットは、コマンドと言い換えることができる。
(形態2)ページ記述言語処理装置は、中間言語に変換されるべき各コマンドのリスト(例えば以下の実施例のAllPDLコマンドテーブル)を記憶していてもよい。
(形態3)ページ記述言語処理装置は、上記の異なる中間言語に変換されるべき各コマンドのリスト(例えば以下の実施例のPDL1/2コマンドテーブル)を記憶していてもよい。
(形態4)PDLデータから、中間言語、上記の異なる中間言語、又は、ビットマップデータに変換し、変換後のデータを第1バッファに書き込む処理が実行される。
(形態5)第1バッファに記憶されている上記の異なる中間言語で記述されたデータから中間言語に変換し、変換後のデータを第2バッファに書き込む処理が実行される。第1バッファに記憶されている中間言語で記述されたデータ又はビットマップデータは、そのまま第2バッファに書き込まれる。
(形態6)第2バッファに記憶されている中間言語で記述されたデータからビットマップデータに変換し、変換後のデータを所定のメモリ(例えばページメモリ、バンドメモリ)に書き込む処理が実行される。第2バッファに記憶されているビットマップデータは、そのまま上記の所定のメモリに書き込まれる。
図面を参照して実施例を説明する。図1は、本実施例のプリンタネットワークシステム2を示す。プリンタネットワークシステム2は、プリンタ10とPC40とを備える。プリンタ10とPC40は、相互に通信可能に接続されている。PC40は、データファイル群(図示省略)を記憶している。PC40は、ユーザの操作に応じて、データファイルを印刷するようにプリンタ10に指示することができる。この場合、PC40は、ユーザの指示に応じてデータファイルをPDLに変換し、PDLで記述されたデータファイルをプリンタ10に送信する。
(プリンタの構成)
図1では、プリンタ10の構成を極めて簡単に示している。プリンタ10は、ネットワークインターフェイス12と制御部14と記憶部16と印刷機構28等を有する。ネットワークインターフェイス12には、LAN等の通信回線30が接続されている。通信回線30は、PC40に接続されている。プリンタ10は、ネットワークインターフェイス12と通信回線30とを介してPC40と通信することができる。制御部14は、記憶部16に記憶されているプログラムに従って様々な処理を実行する。制御部14が実行する処理の内容については、後で詳しく説明する。
記憶部16は、ROM、EEPROM、RAM等によって構成されている。記憶部16は、プログラム記憶領域18と第1バッファ20と第2バッファ22とページメモリ24とその他の記憶領域26を有する。プログラム記憶領域18は、様々なプログラムを記憶している。プログラム記憶領域18に記憶されているプログラムの内容については、後で詳しく説明する。第1バッファ20と第2バッファ22は、後述するPDL変換処理で利用されるバッファである。ページメモリ24は、1ページの印刷媒体に印刷されるべきビットマップデータを記憶するためのメモリである。記憶領域26は、上記の各記憶領域18〜24に記憶されるべき情報以外の情報を記憶することができる。印刷機構28は、印刷媒体を搬送する機構と、印刷媒体に画像を形成する機構(例えばインクジェットタイプやレーザータイプの画像形成機構)とを有する。印刷機構28は、ページメモリ24の印刷用BMPデータに従って印刷媒体に画像を形成する。
本実施例のプリンタ10は、PDLで記述されたベクタデータ(以下では「PDLデータ」と呼ぶことがある)を中間言語で記述されたベクタデータ(以下では「中間言語データ」と呼ぶことがある)に変換する。次いで、プリンタ10は、中間言語データを多諧調ビットマップデータ(以下では「BMPデータ」と呼ぶことがある)に変換し、多諧調BMPデータをページメモリ24に変換する。
(プログラムの内容)
続いて、プログラム記憶領域18に記憶されているプログラムの内容について説明する。図2は、プログラム記憶領域18の記憶内容の一例を示す。プログラム記憶領域18は、PDL1用プログラム50とPDL2用プログラム60とPDL3用プログラム70とを記憶している。PDL1用プログラム50は、第1種類のPDL(以下では「第1PDL」と呼ぶ)を処理するためのプログラムである。PDL2用プログラム60は、第2種類のPDL(以下では「第2PDL」と呼ぶ)を処理するためのプログラムである。PDL3用プログラム70は、第3種類のPDL(以下では「第3PDL」と呼ぶ)を処理するためのプログラムである。本実施例では、3つの種類のPDLに関するプログラムのみを図示しているが、実際には、より多くの種類のPDLに関するプログラムを記憶していてもよい。
PDL1用プログラム50は、PDL1で利用される各コマンドについて、そのコマンドから他のデータに変換するためのプログラム52,54,56を含んでいる。これらの各プログラム52,54,56について、以下に詳しく説明する。
プログラム52は、PDL1で利用されるコマンドを全種類のPDLに共通の中間言語(以下では「全PDL共通中間言語」と呼ぶ)に変換するためのプログラムである。図2では、このプログラム52の一例として、PDL1のコマンドCM11(PDL1−CM11)を全PDL共通中間言語のコマンドCM10(AllPDL−CM10)に変換するためのプログラムが示されている。
プログラム54は、PDL1で利用されるコマンドをPDL1とPDL2のみに共通の中間言語(以下では「PDL1/2共通中間言語」と呼ぶ)に変換するためのプログラムである。図2では、このプログラム54の一例として、PDL1のコマンドCM71(PDL1−CM71)をPDL1/2共通中間言語のコマンドCM70(PDL1/2−CM70)に変換するためのプログラムが示されている。
プログラム56は、PDL1で利用されるコマンドをBMPデータ(印刷用BMPデータ)に変換するためのプログラムである。図2では、このプログラム56の一例として、PDL1のコマンドCM91(PDL1−CM91)をBMPデータに変換するためのプログラムが示されている。
PDL2用プログラム60は、PDL2で利用される各コマンドについて、そのコマンドから他のデータに変換するためのプログラム62,64,66を含んでいる。プログラム62は、PDL2で利用されるコマンド(例えばPDL2−CM12)を全PDL共通中間言語(例えばAllPDL−CM10)に変換するためのプログラムである。プログラム64は、PDL2で利用されるコマンド(例えばPDL2−CM72)をPDL1/2共通中間言語(例えばPDL1/2−CM70)に変換するためのプログラムである。プログラム66は、PDL2で利用されるコマンド(例えばPDL2−CM92)をBMPデータに変換するためのプログラムである。
PDL3用プログラム70も、PDL3で利用される各コマンドについて、そのコマンドから他のデータに変換するためのプログラム72,74を有している。プログラム72は、PDL3で利用されるコマンド(例えばPDL3−CM13)を全PDL共通中間言語(例えばAllPDL−CM10)に変換するためのプログラムである。プログラム74は、PDL3で利用されるコマンド(例えばPDL3−CM92)をBMPデータに変換するためのプログラムである。なお、PDL3用プログラム70は、PDL1/2共通中間言語に変換するためのプログラムを含んでいない。
図2を見るとわかるように、PDL2とPDL3は、同概念のコマンドCM92を利用している。本実施例では、このように複数種類のPDLの間で同概念のコマンドが利用される場合、そのコマンドを他のデータに変換するためのプログラムを共通化している。即ち、PDL2−CM92をBMPデータに変換するためのプログラムと、PDL3−CM92をBMPデータに変換するためのプログラムとを共通化している。具体的には、PDL2用プログラム60のみが、コマンドCM92をBMPデータに変換するためのプログラムを含んでいる。なお、図示していないが、本実施例では、複数種類のPDLの間で利用される同概念のコマンドから全PDL共通中間言語に変換するためのプログラムも共通化している。また、PDL1とPDL2の間で利用される同概念のコマンドからPDL1/2共通中間言語に変換するためのプログラムも共通化している。
プログラム記憶領域18は、AllPDLコマンドリスト80を記憶している。AllPDLコマンドリスト80には、全PDL共通中間言語に変換されるべき各PDLのコマンドが書き込まれている。例えば、PDL1−CM11は、全PDL共通中間言語(AllPDL−CM10)に変換される。このために、AllPDLコマンドリスト80は、PDL1−CM11を含んでいる。また、AllPDLコマンドリスト80には、全PDL共通中間言語に変換されるべきPDL1/2共通中間言語のコマンドが書き込まれている。例えば、詳しくは後述するが、PDL1/2共通中間言語のコマンドCM70(PDL1/2−CM70)は、全PDL共通中間言語(AllPDL−CM70)に変換される。このために、AllPDLコマンドリスト80は、PDL1/2−CM70を含んでいる。
プログラム記憶領域18は、PDL1/2コマンドリスト82を記憶している。PDL1/2コマンドリスト82は、PDL1/2共通中間言語に変換されるべき各PDL(第1PDL及び第2PDL)のコマンドが書き込まれている。例えば、PDL1−CM71は、PDL1/2共通中間言語(PDL1/2−CM70)に変換される。このために、PDL1/2コマンドリスト82は、PDL1−CM71を含んでいる。
プログラム記憶領域18は、PDL1/2用プログラム90を記憶している。PDL1/2用プログラム90は、PDL1/2共通中間言語の各コマンドについて、そのコマンドから他のデータに変換するためのプログラム92,94を含んでいる。プログラム92は、PDL1/2共通中間言語のコマンドを全PDL共通中間言語に変換するためのプログラムである。図2では、このプログラム92の一例として、PDL1/2共通中間言語のCM70(PDL1/2−CM70)を全PDL共通中間言語(AllPDL−CM70)に変換するためのプログラムが示されている。また、プログラム94は、PDL1/2共通中間言語のコマンドをBMPデータに変換するためのプログラムである。図2では、このプログラム94の一例として、PDL1/2共通中間言語のコマンドCM80(PDL1/2−CM80)をBMPデータに変換するためのプログラムが示されている。
プログラム記憶領域18は、AllPDL用プログラム100を記憶している。AllPDL用プログラム100は、全PDL共通中間言語の各コマンドについて、そのコマンドからBMPデータに変換するためのプログラムを有している。図2では、このプログラム100の一例として、全PDL共通中間言語のコマンドCM10(AllPDL−CM10)をBMPデータに変換するためのプログラムが示されている。
さらに、プログラム記憶領域18は、代替プログラム110とその他のプログラム112を記憶している。代替プログラム110は、PDLデータのあるコマンドをBMPデータに変換することができない場合、そのコマンドの一部のみからBMPデータに変換するためのプログラムである。例えば、本実施例では、特殊なグラデーションを記述するためのコマンドから、そのグラデーションの全てが表現されたBMPデータを作成できない場合には、そのグラデーションの形状(輪郭)のみが表現されたBMPデータが作成される。このような処理を実行するために、代替プログラム110が用意されている。
図3は、PDLの各コマンドの一例を示す。図3(1)に示されるように、PDL1−CM11とPDL2−CM12とPDL3−CM13は、単純色を利用して単純なグラデーション(以下では「単純色単純グラデーション」と呼ぶ)を記述するためのコマンドである。これらのコマンドは、図2の各プログラム52,62,72に示されるように、全PDL共通中間言語のコマンドCM10(AllPDL−CM10)に変換される。次いで、AllPDL−CM10は、図2のプログラム100に示されるように、BMPデータに変換される。PDL1−CM11とPDL2−CM12とPDL3−CM13の間において、ベクタデータからBMPデータに変換するためのプログラム100を共通化することができるために、プログラム量を少なくすることができる。
また、図3(2)に示されるように、PDL1−CM91は、単純色を利用して複雑なグラデーション(以下では「単純色複雑グラデーション」と呼ぶ)を記述するためのコマンドである。PDL1−CM91で記述される単純色複雑グラデーションは、他のPDL(PDL2やPDL3等)では記述することができないものである。本実施例では、このような少ない種類のPDLのみ(本実施例ではPDL1のみ)で記述することができる単純色複雑グラデーションについては、中間言語に変換することなく、BMPデータに変換する。この場合、PDL1−CM91から直接的にBMPデータに変換するためのプログラムがあれば足りる。仮に、PDL1−CM91を中間言語に変換する手法を採用すると、PDL1−CM91から全PDL共通中間言語に変換するためのプログラムと、その全PDL共通中間言語からBMPデータに変換するためのプログラムが必要になる。しかしながら、PDL−CM91から変換された全PDL共通中間言語をBMPデータに変換するためのプログラムは、PDL2やPDL3等の他のコマンドを処理する際に使用されることはないため、共通利用されない。従って、この場合のプログラム量は、PDL1−CM91から直接的にBMPデータに変換するためのプログラムよりも多くなってしまう。本実施例では、PDL1−CM91から直接的にBMPデータに変換するために、必要なプログラム量を少なくすることができる。
図3(3)に示されるように、PDL1−CM71とPDL2−CM72は、特殊色を利用して単純なグラデーション(以下では「特殊色単純グラデーション」と呼ぶ)を記述するためのコマンドである。これらのコマンドは、図2の各プログラム54,64に示されるように、PDL1/2共通中間言語のコマンドCM70(PDL1/2−CM70)に変換される。次いで、PDL1/2−CM70は、図2のプログラム92に示されるように、全PDL共通中間言語のコマンドCM70(AllPDL−CM70)に変換される。この際に、特殊色が単純色に変換される。次いで、AllPDL−CM70は、図2のプログラム100に示されるように、BMPデータに変換される。PDL1−CM71とPDL2−CM72の間において、特殊色から単純色に変換するためのプログラム92を共通化することができるために、プログラム量を少なくすることができる。
図3(4)に示されるように、PDL1−CM81とPDL2−CM82は、特殊色を利用して複雑なグラデーション(以下では「特殊色複雑グラデーション」と呼ぶ)を記述するためのコマンドである。これらのコマンドは、図2の各プログラム54,64に示されるように、PDL1/2共通中間言語のコマンドCM80(PDL1/2−CM80)に変換される。PDL1/2−CM80は、中間言語に変換されることなく、BMPデータに変換される。
(PDLデータ変換処理)
続いて、制御部14(図1参照)が実行するPDLデータ変換処理の内容について説明する。図4と図5は、PDLデータ変換処理のフローチャートを示す。PDLデータ変換処理は、PC40からの印刷指示及びPDLデータがネットワークインターフェイス12に入力されたことをトリガとして開始される。
制御部14は、PC40からのPDLデータに含まれる先頭のコマンドを読み込む(S10)。2回目以降のS10の処理では、制御部14は、上記のPDLデータに含まれる次のコマンドを読み込む。このようなルーチンが繰り返される。制御部14は、S10で読み込まれたコマンドが印刷すべきコマンドであるのか否かを判断する(S12)。例えば、印刷に不要なしおり用のコマンドの場合、S12でNOと判断される。この場合、制御部14は、S10に戻って次のコマンドを読み込む。
S12でYESの場合、制御部14は、S10で読み込まれたコマンドがAllPDLコマンドリスト80(図2参照)に存在するのか否かを判断する(S14)。即ち、制御部14は、S10で読み込まれたコマンドが、全PDL共通中間言語に変換するためのプログラム52,62,72に対応しているのか否かを判断する。例えば、S10で読み込まれたコマンドがPDL1−CM11である場合、S14でYESと判断される。この場合、制御部14は、S10で読み込まれたコマンドに対応するプログラム52,62,72に従って、そのコマンドを全PDL共通中間言語に変換する(S16)。具体的には、S10で読み込まれたコマンドのベクタデータを全PDL共通中間言語のベクタデータに変換する。上記のPDL1−CM11の例の場合、AllPDL−CM10に変換される(図2のプログラム52及び図3(1)参照)。S16を終えると、図5のS30に進む。
S14でNOの場合、制御部14は、S10で読み込まれたコマンドがPDL1/2コマンドリスト82(図2参照)に存在するのか否かを判断する(S18)。即ち、制御部14は、S10で読み込まれたコマンドが、PDL1/2共通中間言語に変換するためのプログラム54,64に対応しているのか否かを判断する。例えば、S10で読み込まれたコマンドがPDL1−CM71である場合、S18でYESと判断される。この場合、制御部14は、S10で読み込まれたコマンドに対応するプログラム54,64に従って、そのコマンドをPDL1/2共通中間言語に変換する(S20)。上記のPDL1−CM71の例の場合、PDL1/2−CM70に変換される(図2のプログラム54及び図3(3)参照)。S20を終えると、図5のS30に進む。
S18でNOの場合、制御部14は、S10で読み込まれたコマンドからBMPデータを作成するためのプログラムが存在するのか否かを判断する(S22)。例えば、S10で読み込まれたコマンドがPDL1−CM91である場合、S22でYESと判断される。この場合、制御部14は、S10で読み込まれたコマンドに対応するプログラム56,66,74に従って、そのコマンドをBMPデータに変換する(S24)。例えば、図3(2)に示されるように、PDL1−CM91は、中間言語に変換されることなく、BMPデータに変換される。S24を終えると、図5のS30に進む。
S22でNOの場合、S10で読み込まれたコマンドは、いずれのプログラム50,60,70にも対応していないことになる。即ち、S10で読み込まれたコマンドは、そのコマンドで表現されるBMPデータを作成不能なコマンドである。この場合、制御部14は、代替プログラム110に従って、S10で読み込まれたコマンドの一部分のみをBMPデータに変換する(S26)。例えば、S10で読み込まれたコマンドの中に輪郭を示す座標データと、複雑なグラデーションで輪郭を塗りつぶす指示が存在する場合、制御部14は、複雑なグラデーションを単純な色に代替し、その座標データが正確に反映されたBMPデータを作成する。S26を終えると、図5のS30に進む。
図5のS30では、制御部14は、S16、S20、S24、又は、S26で作成されたデータ(全PDL共通中間言語、PDL1/2共通中間言語、BMPデータ)を第1バッファ20に書き込む。なお、詳しくは後述するが、このBMPデータについては、そのままのデータが後工程(図7のS74)でページメモリ24に書き込まれる。第1バッファ20にBMPデータを書き込む際には、そのBMPデータにページメモリ24上の位置を示すデータを付加しておく。このデータを参照することによって、BMPデータをページメモリ24に書き込むことが可能になる。なお、本実施例では採用していない手法ではあるが、S30の段階において、BMPデータをページメモリ24に書き込むようにしてもよい。
次いで、制御部14は、PDLデータの1ページ分の全てのコマンドを解析したのか否かを判断する(S32)。ここでNOの場合、制御部14は、S10に戻って次のコマンドを読み込む。一方において、S32でYESの場合、1ページ分の全てのコマンドのそれぞれが、他のデータ(全PDL共通中間言語、PDL1/2共通中間言語、BMPデータ)に変換され、第1バッファ20に記憶されている。この場合、制御部14は、第1バッファ記憶内容解析処理(S34)と第2バッファ記憶内容解析処理(S36)を順に実行する。なお、制御部14は、PDLデータの1ページ単位でPDLデータ変換処理を実行する。従って、PDLデータに2ページ目以降が存在する場合、1ページ目のPDLデータ変換処理を終えると、2ページ目以降のPDLデータ変換処理を実行する。なお、制御部14は、複数ページのPDLデータ変換処理を並列的に実行してもよい。
(第1バッファ記憶内容解析処理)
図6は、図5のS34で実行される第1バッファ記憶内容解析処理のフローチャートを示す。制御部14は、第1バッファ20の先頭部分の記憶内容を読み込む(S40)。2回目以降のS40の処理では、制御部14は、第1バッファ20の次の記憶内容を読み込む。このようなルーチンが繰り返される。制御部14は、S40で読み込まれたデータが、PDL1/2共通中間言語で記述されたコマンドであるのか否かを判断する(S42)。ここでNOの場合、S40で読み込まれたデータが、全PDL共通中間言語又はBMPデータであることを意味する。この場合、制御部14は、S40で読み込まれたデータをそのまま第2バッファ22に書き込む(S54)。
一方において、S42でYESの場合、制御部14は、S40で読み込まれたコマンド(PDL1/2共通中間言語)がAllPDLコマンドリスト80(図2参照)に存在するのか否かを判断する(S44)。即ち、制御部14は、S40で読み込まれたコマンドが、全PDL共通中間言語に変換するためのプログラム92に対応しているのか否かを判断する。例えば、S40で読み込まれたコマンドがPDL1/2−CM70である場合、S44でYESと判断される。この場合、制御部14は、S40で読み込まれたコマンドに対応するプログラム92に従って、そのコマンドを全PDL共通中間言語に変換する(S46)。上記のPDL1/2−CM70の例の場合、AllPDL−CM70に変換される(図2のプログラム92及び図3(3)参照)。この過程で特殊色が単純色に変換される。次いで、制御部14は、S46で作成されたデータ(全PDL共通中間言語)を第2バッファ22に書き込む(S54)。
例えば、S40で読み込まれたコマンドがPDL1/2−CM80である場合、S44でNOと判断される。この場合、制御部14は、S40で読み込まれたコマンドからBMPデータを作成するためのプログラムが存在するのか否かを判断する(S48)。例えば、S40で読み込まれたコマンドがPDL1/2−CM80である場合、S48でYESと判断される。この場合、制御部14は、S40で読み込まれたコマンドに対応するプログラム94に従って、そのコマンドをBMPデータに変換する(S50)。上記のPDL1/2−CM80の例の場合、BMPデータに変換される(図2のプログラム94及び図3(4)参照)。次いで、制御部14は、S50で作成されたBMPデータを第2バッファ22に書き込む(S54)。
S48でNOの場合、制御部14は、代替プログラム110に従って、S40で読み込まれたコマンド(PDL1/2共通中間言語)の一部分をBMPデータに変換する(S52)。この処理は、図4のS26と同様である。次いで、制御部14は、S52で作成されたBMPデータを第2バッファ22に書き込む(S54)。
S54を終えると、制御部14は、第1バッファ20に記憶されている1ページ分の全てのコマンドを解析したのか否かを判断する(S56)。ここでNOの場合、制御部14は、S40に戻って次のコマンドを読み込む。S56でYESの場合、第1バッファ記憶内容解析処理が終了する。次いで、制御部14は、第2バッファ記憶内容解析処理を実行する(図5のS36)。
(第2バッファ記憶内容解析処理)
図7は、図5のS36で実行される第2バッファ記憶内容解析処理のフローチャートを示す。制御部14は、第2バッファ22の先頭部分の記憶内容を読み込む(S70)。2回目以降のS70の処理では、制御部14は、第2バッファ22の次の記憶内容を読み込む。このようなルーチンが繰り返される。制御部14は、S70で読み込まれたデータがBMPデータであるのか否かを判断する(S72)。ここでYESの場合、制御部14は、S70で読み込まれたBMPデータをそのままページメモリ24に書き込む(S74)。
一方において、S70で読み込まれたデータが全PDL共通中間言語のコマンドである場合、S72でNOと判断される。この場合、制御部14は、S70で読み込まれた全PDL共通中間言語のコマンドに対応するプログラム100に従って、そのコマンドをBMPデータに変換する(S76)。例えば、AllPDL−CM10やAllPDL−CM70がBMPデータに変換される(図2のプログラム100及び図3(1)、(3)参照)。制御部14は、BMPデータをページメモリ24に書き込む。
S74又はS76を終えると、制御部14は、第2バッファ22に記憶されている1ページ分の全てのコマンドを解析したのか否かを判断する(S78)。ここでNOの場合、制御部14は、S70に戻って次のコマンドを読み込む。S78でYESの場合、第2バッファ記憶内容解析処理が終了する。これにより、1ページ分のページメモリ24が完成する。制御部14は、ページメモリ24の記憶内容(BMPデータ)に従って印刷するように、印刷機構28に指示する。これにより、印刷機構28は、印刷媒体の搬送を開始し、印刷媒体に印刷する。
本実施例のPDL変換処理について詳しく説明した。本実施例によると、PDL1〜PDL3が独自のフォーマットに従って記述している単純色単純グラデーション(図3(1)参照)のベクタデータについては、全PDL共通中間言語に変換される。次いで、全PDL共通中間言語で記述されたベクタデータからBMPデータが作成される。PDL1〜PDL3を処理するためのプログラムにおいて、全PDL共通中間言語のベクタデータからBMPデータを作成するためのプログラム100を共通化することができる。このために、必要なプログラム量を少なくすることができる。また、単純色複雑グラデーション(図3(2)参照)のベクタデータについては、中間言語に変換されることなく、BMPデータに変換される。単純色複雑グラデーションのベクタデータから全PDL共通中間言語に変換するためのプログラムが必要ないために、必要なプログラム量を少なくすることができる。
また、本実施例では、代替プログラム110を利用するために、コマンドから表現されるBMPデータを作成不可能であっても、そのコマンドの一部からBMPデータを作成することができる。また、本実施例では、複数種類のPDLの間で同じコマンド(例えばPDL2とPDL3のCM92)が利用される場合に、そのコマンドから別のデータ(全PDL共通中間言語、PDL1/2共通中間言語、BMPデータ)を作成するためにプログラムを共通化している。このために、必要なプログラム量が少ない。
また、本実施例では、PDLデータからPDL1/2共通中間言語に変換し、PDL1/2共通中間言語から全PDL共通中間言語に変換する手法を採用している。このために、例えば、特殊色を一般色に変換するためのプログラムを共通化することができる(図3(3)参照)。この手法を採用しているために、必要なプログラム量をより少なくすることができる。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(1)例えば、上記の実施例では、図4のS24又はS26(もしくは図6のS50又はS52)のタイミングでBMPデータに変換している。しかしながら、BMPデータに変換するタイミングは、図7のS72のタイミングであってもよい。例えば、図4のS10で読み込まれたコマンドがPDL1−CM91である場合、図4のS24においてPDL1−CM91を第1バッファ20に書き込み、図6のS54でもPDL1−CM91を第2バッファ22に書き込み、図7のS72においてPDL1−CM91をBMPデータに変換してもよい。このようにすると、比較的に大きいデータサイズのBMPデータをバッファ20,22に格納する必要がないために、必要なメモリサイズを少なくすることができる。この技術思想をより一般的に表現すると、以下のように記述することができる。
即ち、ページ記述言語で記述されたデータからビットマップデータを作成するページ記述言語処理装置であり、
複数種類のページ記述言語のそれぞれについて、当該ページ記述言語の所定のフォーマットで記述されたベクタデータから中間言語で記述されたベクタデータを作成するためのプログラムを記憶している中間言語作成プログラム記憶手段と、
ページ記述言語で記述されたベクタデータを入力するベクタデータ入力手段と、
ベクタデータ入力手段に入力された入力ベクタデータを記述している記述フォーマットが、中間言語作成プログラム記憶手段に記憶されている前記プログラムに対応するものであるのか否かを判断する第1判断手段と、
バッファメモリと、
第1判断手段によって肯定的に判断されたことを条件として、中間言語作成プログラム記憶手段に記憶されている前記プログラムに従って、前記記述フォーマットで記述された前記入力ベクタデータから前記中間言語で記述されたベクタデータを作成し、そのベクタデータを前記バッファメモリに書き込む第1メモリ書き込み作成手段と、
第1判断手段によって否定的に判断されたことを条件として、前記記述フォーマットで記述された前記入力ベクタデータを前記バッファメモリに書き込む第2メモリ書き込み手段と、
ビットマップデータを記憶するためのビットマップデータメモリと、
バッファメモリに記憶されているデータを読み込むデータ読み込み手段と、
データ読み込み手段によって読み込まれたデータが前記中間言語で記述されたベクタデータであることを条件として、そのベクタデータからビットマップデータを作成し、そのビットマップデータを前記ビットマップデータメモリに書き込む第3メモリ書き込み手段と、
データ読み込み手段によって読み込まれたデータが前記記述フォーマットで記述された前記入力ベクタデータであることを条件として、その入力ベクタデータからビットマップデータを作成し、そのビットマップデータを前記ビットマップデータメモリに書き込む第4メモリ書き込み手段と
を備えるページ記述言語処理装置。
(2)全てのコマンドが全PDL共通中間言語に変換されるPDL4が存在していてもよい。
(3)全てのコマンドが直接的にBMPデータに変換されるPDL5が存在していてもよい。
(4)PDL1又はPDL2は、全てのコマンドがPDL1/2共通中間言語に変換されてもよい。
(5)PDL1又はPDL2において、全PDL共通中間言語に変換されるコマンドが存在しなくてもよい(即ちプログラム52又は62が存在しなくてもよい)。
(6)PDL1、PDL2、又は、PDL3において、BMPデータに変換されるコマンドが存在しなくてもよい(即ちプログラム56、66、又は、74が存在しなくてもよい)。
(7)PDL1−CM81及び/又はPDL2−CM82は、PDL1/2共通中間言語(PDL1/2−CM80)に変換されないで、直接的にBMPデータに変換されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
プリンタネットワークシステムの構成の一例を示す。 プログラム記憶領域の記憶内容の一例を示す。 PDLの各コマンドが他のデータに変換される様子の一例を示す。 PDLデータ変換処理のフローチャートを示す。 図4の続きのフローチャートを示す。 第1バッファ記憶内容解析処理のフローチャートを示す。 第2バッファ記憶内容解析処理のフローチャートを示す。
符号の説明
10:プリンタ
12:ネットワークインターフェイス
14:制御部
16:記憶部
18:プログラム記憶領域
20,22:バッファ
24:ページメモリ
28:印刷機構
50:第1PDL用プログラム
52:第1PDLのコマンドから全PDL共通中間言語に変換するためのプログラム
54:第1PDLのコマンドからPDL1/2共通中間言語に変換するためのプログラム
56:第1PDLのコマンドからBMPデータに変換するためのプログラム
60:第2PDL用プログラム
62:第2PDLのコマンドから全PDL共通中間言語に変換するためのプログラム
64:第2PDLのコマンドからPDL1/2共通中間言語に変換するためのプログラム
66:第2PDLのコマンドからBMPデータに変換するためのプログラム
70:第3PDL用プログラム
72:第3PDLのコマンドから全PDL共通中間言語に変換するためのプログラム
74:第3PDLのコマンドからBMPデータに変換するためのプログラム
80:AllPDLコマンドリスト
82:PDL1/2コマンドリスト
90:PDL1/2用プログラム
92:PDL1/2共通中間言語から全PDL共通中間言語に変換するためのプログラム
94:PDL1/2共通中間言語からBMPデータに変換するためのプログラム
100:AllPDL用プログラム
110:代替プログラム

Claims (6)

  1. ページ記述言語で記述されたデータからビットマップデータを作成するページ記述言語処理装置であり、
    複数種類のページ記述言語のそれぞれについて、当該ページ記述言語の所定のコマンドで記述されたベクタデータから中間言語で記述されたベクタデータを作成するためのプログラムを記憶している中間言語作成プログラム記憶手段と、
    前記中間言語で記述されたベクタデータからビットマップデータを作成するためのプログラムを記憶している第1ビットマップデータ作成プログラム記憶手段と、
    前記複数種類のページ記述言語のうちの特定のページ記述言語の前記所定のコマンド以外の第1の特定のコマンドで記述されたベクタデータから、前記中間言語を経由せずに、ビットマップデータを作成するためのプログラムを記憶している第2ビットマップデータ作成プログラム記憶手段と、
    ページ記述言語で記述された特定のベクタデータを入力するベクタデータ入力手段であって、前記特定のベクタデータは、少なくとも第1のコマンドを含む、前記ベクタデータ入力手段と、
    前記特定のベクタデータに含まれる前記第1のコマンドが、中間言語作成プログラム記憶手段に記憶されている前記プログラムに対応するものであるのか否かを判断する第1判断手段と、
    前記第1のコマンドについて第1判断手段によって肯定的に判断されたことを条件として、中間言語作成プログラム記憶手段に記憶されている前記プログラムに従って、前記第1のコマンドから前記中間言語で記述された第1のベクタデータを作成する中間言語ベクタデータ作成手段と、
    前記第1のコマンドについて第1判断手段によって肯定的に判断されたことを条件として、第1ビットマップデータ作成プログラム記憶手段に記憶されている前記プログラムに従って、中間言語ベクタデータ作成手段によって作成された第1のベクタデータから第1のビットマップデータを作成する第1ビットマップデータ作成手段と、
    前記第1のコマンドについて第1判断手段によって否定的に判断されたことを条件として、第2ビットマップデータ作成プログラム記憶手段に記憶されている前記プログラムに従って、前記第1のコマンドから、前記中間言語を経由せずに、第2のビットマップデータを作成する第2ビットマップデータ作成手段と
    を備え
    前記中間言語作成プログラム記憶手段は、前記第1の特定のコマンドで記述されたベクタデータから前記中間言語で記述されたベクタデータを作成するためのプログラムを記憶していない
    ことを特徴とするページ記述言語処理装置。
  2. 前記特定のベクタデータは、さらに、第2のコマンドを含み、
    第1判断手段は、さらに、前記特定のベクタデータに含まれる前記第2のコマンドが、中間言語作成プログラム記憶手段に記憶されている前記プログラムに対応するものであるのか否かを判断し、
    中間言語ベクタデータ作成手段は、さらに、前記第2のコマンドについて第1判断手段によって肯定的に判断されたことを条件として、中間言語作成プログラム記憶手段に記憶されている前記プログラムに従って、前記第2のコマンドから前記中間言語で記述された第2のベクタデータを作成し、
    第1ビットマップデータ作成手段は、さらに、前記第2のコマンドについて第1判断手段によって肯定的に判断されたことを条件として、第1ビットマップデータ作成プログラム記憶手段に記憶されている前記プログラムに従って、中間言語ベクタデータ作成手段によって作成された第2のベクタデータから第3のビットマップデータを作成し、
    第2ビットマップデータ作成手段は、さらに、前記第2のコマンドについて第1判断手段によって否定的に判断されたことを条件として、第2ビットマップデータ作成プログラム記憶手段に記憶されている前記プログラムに従って、前記第2のコマンドから、前記中間言語を経由せずに、第4のビットマップデータを作成し、
    前記ページ記述言語処理装置は、さらに、
    1枚の印刷媒体の印刷に利用されるべき1ページ分のビットマップデータに従った印刷を実行するように、印刷機構に指示する指示部を備え、
    前記1ページ分のビットマップデータは、作成済みの第1のビットマップデータ又は第2のビットマップデータと、作成済みの第3のビットマップデータ又は第4のビットマップデータと、を含む
    ことを特徴とする請求項1に記載のページ記述言語処理装置。
  3. 前記特定のベクタデータに含まれる前記第1のコマンドが、第2ビットマップデータ作成プログラム記憶手段に記憶されている前記プログラムに対応するものであるのか否かを判断する第2判断手段をさらに備え、
    第2ビットマップデータ作成手段は、
    前記第1のコマンドについて第1判断手段によって否定的に判断され、かつ、前記第1のコマンドについて第2判断手段によって肯定的に判断されたことを条件として、第2ビットマップデータ作成プログラム記憶手段に記憶されている前記プログラムに従って、前記第1のコマンドの全部から、前記中間言語を経由せずに、前記第2のビットマップデータを作成するとともに、
    前記第1のコマンドについて第1判断手段によって否定的に判断され、かつ、前記第1のコマンドについて第2判断手段によって否定的に判断されたことを条件として、前記第1のコマンドの一部のみから、前記中間言語を経由せずに、第5のビットマップデータを作成する
    ことを特徴とする請求項に記載のページ記述言語処理装置。
  4. 第2ビットマップデータ作成プログラム記憶手段に記憶されている前記プログラムでは、少なくとも2種類のページ記述言語の間で共通するコマンドで記述されたベクタデータから、前記中間言語を経由せずに、ビットマップデータを作成するためのプログラムが共通化されている
    ことを特徴とする請求項1から3のいずれか一項に記載のページ記述言語処理装置。
  5. 中間言語作成プログラム記憶手段は、
    少なくとも2種類のページ記述言語のそれぞれについて、当該ページ記述言語の前記所定のコマンド以外の第2の特定のコマンドであって、前記第1の特定のコマンドと異なる前記第2の特定のコマンドで記述されたベクタデータから前記中間言語と異なる中間言語で記述されたベクタデータを作成するための第1プログラムと、前記異なる中間言語で記述されたベクタデータから前記中間言語で記述されたベクタデータを作成するための第2プログラムとをさらに記憶しており、
    中間言語ベクタデータ作成手段は、さらに、
    前記特定のベクタデータに含まれる前記第1のコマンドが前記第1プログラムに対応することを条件として、前記第1プログラムに従って、前記第1のコマンドから前記異なる中間言語で記述された第3のベクタデータを作成するとともに、
    前記第2プログラムに従って、前記異なる中間言語で記述された第3のベクタデータから前記中間言語で記述された第4のベクタデータを作成し、
    第1ビットマップデータ作成手段は、さらに、
    前記特定のベクタデータに含まれる前記第1のコマンドが前記第1プログラムに対応することを条件として、第1ビットマップデータ作成プログラム記憶手段に記憶されている前記プログラムに従って、中間言語ベクタデータ作成手段によって作成された第4のベクタデータから第6のビットマップデータを作成する
    ことを特徴とする請求項のいずれかに記載のページ記述言語処理装置。
  6. ページ記述言語で記述されたデータからビットマップデータを作成するためのコンピュータプログラムであり、
    前記コンピュータプログラムは、
    複数種類のページ記述言語のそれぞれについて、当該ページ記述言語の所定のコマンドで記述されたベクタデータから中間言語で記述されたベクタデータを作成するための中間言語作成プログラムと、
    前記中間言語で記述されたベクタデータからビットマップデータを作成するための第1種のプログラムと、
    前記複数種類のページ記述言語のうちの特定のページ記述言語の前記所定のコマンド以外の第1の特定のコマンドで記述されたベクタデータから、前記中間言語を経由せずに、ビットマップデータを作成するための第2種のプログラムと、を含んでおり、
    前記第1の特定のコマンドで記述されたベクタデータから前記中間言語で記述されたベクタデータを作成するためのプログラムを含んでおらず、
    前記コンピュータプログラムは、
    ページ記述言語で記述された特定のベクタデータを入力するベクタデータ入力処理であって、前記特定のベクタデータは、少なくとも第1のコマンドを含む、前記ベクタデータ入力処理と、
    前記特定のベクタデータに含まれる前記第1のコマンドが、前記中間言語作成プログラムに対応するものであるのか否かを判断する判断処理と、
    前記第1のコマンドについて判断処理で肯定的に判断されたことを条件として、前記中間言語作成プログラムに従って、前記第1のコマンドから前記中間言語で記述された第1のベクタデータを作成する中間言語ベクタデータ作成処理と、
    前記第1のコマンドについて判断処理で肯定的に判断されたことを条件として、前記第1種のプログラムに従って、中間言語ベクタデータ作成処理で作成された第1のベクタデータから第1のビットマップデータを作成する第1ビットマップデータ作成処理と、
    前記第1のコマンドについて判断処理によって否定的に判断されたことを条件として、前記第2種のプログラムに従って、前記第1のコマンドから、前記中間言語を経由せずに、第2のビットマップデータを作成する第2ビットマップデータ作成処理と
    をコンピュータに実行させるコンピュータプログラム。
JP2008089613A 2008-02-19 2008-03-31 ページ記述言語処理装置 Active JP4613975B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008089613A JP4613975B2 (ja) 2008-03-31 2008-03-31 ページ記述言語処理装置
EP09250416.6A EP2093659B1 (en) 2008-02-19 2009-02-18 Device, method and computer readable medium for page description language processing
US12/388,812 US8566715B2 (en) 2008-02-19 2009-02-19 Device, method and computer readable medium for processing commands in data described using a page description language

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008089613A JP4613975B2 (ja) 2008-03-31 2008-03-31 ページ記述言語処理装置

Publications (2)

Publication Number Publication Date
JP2009241363A JP2009241363A (ja) 2009-10-22
JP4613975B2 true JP4613975B2 (ja) 2011-01-19

Family

ID=41303856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008089613A Active JP4613975B2 (ja) 2008-02-19 2008-03-31 ページ記述言語処理装置

Country Status (1)

Country Link
JP (1) JP4613975B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04128068A (ja) * 1990-09-19 1992-04-28 Fuji Xerox Co Ltd ページ記述言語処理装置およびページ記述言語処理印刷装置
JPH05318829A (ja) * 1992-05-18 1993-12-03 Canon Inc 画像形成装置及びその方法
JPH05324930A (ja) * 1992-05-18 1993-12-10 Canon Inc 画像形成装置及びその制御方法
JPH06131133A (ja) * 1992-10-16 1994-05-13 Hokuriku Nippon Denki Software Kk プリンタの言語切換え装置
JPH1124866A (ja) * 1997-07-02 1999-01-29 Canon Inc 出力装置および出力方法
JP2001222396A (ja) * 2000-02-10 2001-08-17 Matsushita Graphic Communication Systems Inc プリンタコントローラ及びプリンタ言語切替方法
JP2005161756A (ja) * 2003-12-04 2005-06-23 Canon Inc 画像処理装置及び画像処理装置の制御方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04128068A (ja) * 1990-09-19 1992-04-28 Fuji Xerox Co Ltd ページ記述言語処理装置およびページ記述言語処理印刷装置
JPH05318829A (ja) * 1992-05-18 1993-12-03 Canon Inc 画像形成装置及びその方法
JPH05324930A (ja) * 1992-05-18 1993-12-10 Canon Inc 画像形成装置及びその制御方法
JPH06131133A (ja) * 1992-10-16 1994-05-13 Hokuriku Nippon Denki Software Kk プリンタの言語切換え装置
JPH1124866A (ja) * 1997-07-02 1999-01-29 Canon Inc 出力装置および出力方法
JP2001222396A (ja) * 2000-02-10 2001-08-17 Matsushita Graphic Communication Systems Inc プリンタコントローラ及びプリンタ言語切替方法
JP2005161756A (ja) * 2003-12-04 2005-06-23 Canon Inc 画像処理装置及び画像処理装置の制御方法

Also Published As

Publication number Publication date
JP2009241363A (ja) 2009-10-22

Similar Documents

Publication Publication Date Title
JP5531531B2 (ja) 画像処理システム及び画像処理プログラム
JP4618324B2 (ja) 画像処理装置及びプログラム
JP2009241524A (ja) 画像出力装置
US8566715B2 (en) Device, method and computer readable medium for processing commands in data described using a page description language
JP6447564B2 (ja) 画像形成装置、プログラム及び情報処理システム
JP2008077160A (ja) 画像処理装置、画像処理方法、画像形成装置、コンピュータが実行するためのプログラム、およびそのプログラムを格納した記録媒体
JP2007331390A (ja) 画像形成装置およびその制御方法
JP4613975B2 (ja) ページ記述言語処理装置
KR100529330B1 (ko) 에러 복구 가능한 인쇄 방법 및 장치와 컴퓨터 프로그램을저장하는 컴퓨터로 읽을 수 있는 기록 매체
US20220011990A1 (en) Information Processing Apparatus, Printing Method, and Non-Transitory Computer-Readable Medium Storing Support Program Therefor
JP6330790B2 (ja) 印刷制御システム、印刷制御装置およびプログラム
JP2019098580A (ja) 画像形成装置
JP6507809B2 (ja) 印刷指示装置、印刷システム及びプログラム
JP2011025539A (ja) プリンタ装置、画像出力システム、レンダリング方法、及びプログラム
US10152657B2 (en) Image processing apparatus and image processing method of color image
JP2009269179A (ja) 印刷装置、プログラム及び記録媒体
JPH0755572B2 (ja) 印字装置
CN105808174B (zh) 打印指令设备、打印系统和打印指令方法
US20080007741A1 (en) Image processing setting device, image processing device, image forming system, image processing setting method, image processing method, and image forming method
JP5966805B2 (ja) 印刷のための制御装置
JP4470453B2 (ja) 画像処理装置、画像形成装置及びプログラム
JP4968417B1 (ja) 印刷データ変換装置及びプログラム
JP4581854B2 (ja) 画像処理装置、画像処理プログラムおよび画像処理方法
US20110060982A1 (en) Pdl data processing device
JP2017189968A (ja) 画像処理装置及び画像処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100921

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101004

R150 Certificate of patent or registration of utility model

Ref document number: 4613975

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131029

Year of fee payment: 3