説明

スプレッドシート中の色情報を処理するためのシステムおよび方法

【課題】マークアップ言語を用いて記述されたスプレッドシート中の色情報の処理を促進する方法の提供。
【解決手段】マークアップ言語で記述されたスプレッドシート文書中のオブジェクトについての色情報を保存する方法は、複数のスプレッドシート色表オブジェクトから個別の色値を取得する工程を含む。複数のスプレッドシート色表オブジェクト中の色値は、複数のインデックスを通じてスプレッドシートオブジェクトにより参照され、各インデックスは個別の色表オブジェクトに対応する。個別の色値はカラーパレット表オブジェクトに保存され、カラーパレットインデックスを用いてアクセスされる。インデックス値およびカラーパレットインデックス値が同一の色値を示す場合、複数の色表それぞれの中のインデックス値はカラーパレットインデックスにマップされる。マッピングにより、オブジェクトはカラーパレットオブジェクト表中の色値を参照することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、印刷分野に関し、特に、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのシステムおよび方法に関する。
【背景技術】
【0002】
文書処理ソフトウェアにより、ユーザは、多様な種類の文書を簡便に視認、編集、処理、保存および印刷することができる。印刷対象となる文書コンテンツは、多様な方式で記述することが可能であり、例えば、オフィスオープンエクステンシブルマークアップ言語(「OOXML」)や、XMLに基づき主としてスプレッドシートと共に用いられるスプレッドシートマークアップ言語(「SML」)等のマークアップ言語が用いられている。マークアップ言語により、文書にテキスト注釈を付すことが可能となる。記述的マークアップ言語を用いて、文書の部分間における構造的関係を指定することは可能であるが、記述的マークアップ言語からは、文書をどのようにレンダリングするかまたはエンドユーザに提示するかについての命令は何も得られない場合が多い。一方、手続きマークアップ言語および提示マークアップ言語中には、文書コンテンツをどのようにレンダリングすべきかについて詳述する命令が含まれる場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
記述的マークアップ言語を用いて記述された文書をレンダリングする場合、文書の部分間における構造的関係に起因して、印刷対象としての最終的なレンダリング可能コンテンツを決定するプロセスが複雑になる可能性がある。スプレッドシートなどの文書の場合、スプレッドシートセルの値は、非常に多数の他のセルに依存し得るため、その複雑性が多種多様に増大し得る。スプレッドシートの要素(例えば、セル、表およびそれらの関連付けられた属性)は、プログラムでオブジェクトとして表されることが多い。そのため、マークアップ言語(例えば、OOXMLまたはSML)で指定されているスプレッドシートを印刷するために処理を行う場合、非常に多数のスプレッドシートオブジェクトがメモリ内にロードされる可能性があり、レンダリング後のオブジェクトの外観を決定するために、一以上のオブジェクト(これらは、文書の部分間における構造的関係を反映している)に対するポインタが何度もトラバースし得る。例えば、SMLの場合、ページネーション決定が行われてレンダリング開始可能となる前に、通常は全データがメモリにロードされる。
【0004】
メモリ内に複数のオブジェクトをロードすることと、処理中にポインタのトラバースを繰り返し行うこととは、さらなるメモリリソースの使用と、他の処理における非効率性との一因になり得る。例えば、さらなるメモリが用いられると、プリンタのコストが上昇する可能性があり、処理時にポインタのトラバースが繰り返し行われると、スループット低下の一因になり得る。スプレッドシートとの関係において、スプレッドシートオブジェクトと関連付けられた色データを処理することは、メモリに常駐する複数のカラーテーブルの使用を伴う可能性があるとともに、メモリリソースの使用と、処理における非効率性との大きな一因となり得る。従って、メモリリソースをより最適な様態で用いつつ、スプレッドシートオブジェクトと関連付けられた色データの効率的な処理および印刷を可能にするシステムおよび方法が求められている。
【課題を解決するための手段】
【0005】
開示の実施形態に基づいて、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのシステムおよび方法が提供される。いくつかの実施形態において、マークアップ言語で記述されたスプレッドシート文書中の少なくとも一のオブジェクトに関する色情報を保存する方法は、複数のスプレッドシート色表オブジェクトから個別の色値を取得する工程を含む。前記複数のスプレッドシート色表オブジェクト中の色値は、前記オブジェクトによって複数のインデックスを用いて参照され、前記複数のインデックス中の各インデックスが、個別の色表オブジェクトに対応する。前記個別の色値は、カラーパレット表オブジェクト内に保存され、前記カラーパレット表オブジェクト中の前記色値が、カラーパレットインデックスを用いてアクセスされ、前記インデックス値および前記カラーパレットインデックス値が同一の色値を示す場合、前記複数の色表それぞれの中のインデックス値は、カラーパレットインデックス値にマップされる。
【0006】
開示の実施形態はまた、コンピュータ可読型媒体またはコンピュータ可読型メモリを用いてプロセッサによって生成、保存、アクセスまたは改良された方法にも関する。
【0007】
以下、上記の実施形態および他の実施形態について、以下の図面を参照してさらに説明する。
【図面の簡単な説明】
【0008】
【図1】マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのアプリケーションを実行可能な例示的プリンタに接続された例示的コンピュータの高レベルブロック図を示す。
【図2】例示的プロセスフローであり、マークアップ言語で指定された印刷可能データをレンダリングするアプリケーションの一部を実行する方法における工程を示す。
【図3】色情報オブジェクトを示すスプレッドシートセルに対する従来の例示的OOXMLセルフォーマット仕様およびオブジェクトマッピングを示す。
【図4】OOXMLを用いて記述されたスプレッドシート中の色情報を処理する方法から得られたOOXMLスプレッドシートセルに対する例示的オブジェクトマッピングを、開示の実施形態と一貫した様態で示す。
【図5】OOXMLを用いて記述されたスプレッドシート中の色情報を処理する例示的方法のフローチャートを、開示の実施形態と一貫した様態で示す。
【発明を実施するための形態】
【0009】
開示の実施形態の多様な特徴を反映した実施形態によれば、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのシステムおよび方法が提供される。いくつかの実施形態において、印刷可能なスプレッドシートデータは、マークアップ言語記述の形態をとり得る。例えば、スプレッドシートマークアップ言語データの処理に関する例は、OOXMLまたはSMLの観点から説明する。しかし、記載のシステムおよび方法は、当業者にとって自明の適切な改良により、他のマークアップ言語を用いて記述されたスプレッドシートにも適用可能である。
【0010】
図1は、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのアプリケーションを実行可能な例示的プリンタに接続された例示的コンピュータの高レベルブロック図を示す。いくつかの実施形態において、記載の技術は、キャッシュしたカラーパレットの使用を含み得る。このキャッシュしたカラーパレットは、多様なスプレッドシート色オブジェクト中に存在する情報を含む。一般的に、開示の実施形態に基づいたコンピュータソフトウェアアプリケーションは、コンピュータ、プリンタおよび他の周辺装置のネットワーク上において、展開され得る。これらのコンピュータ、プリンタおよび他の周辺装置は、通信リンクを通じて接続され、従来の通信プロトコルおよび/またはデータポートインターフェースを用いた情報のやり取りが可能になっている。
【0011】
図1に示すように、例示的システム100は、コンピュータデバイス110を含む。コンピュータデバイス110は、接続部120を用いてネットワーク140を介してプリンタ170と通信する。コンピュータデバイス110は、コンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、またはネットワーク環境において使用可能な他の任意のコンピュータデバイスであってもよい。コンピュータデバイス110は、例えば、OOXMLまたはSML等のマークアップ言語を用いて記述された、スプレッドシートまたはワークシートなどの文書の印刷を、プリンタ170を用いて行うことを可能にするソフトウェア(図示せず)を実行し得る。
【0012】
例示的プリンタ170は、電子データから物理的文書を生成する種々のデバイスを含む。このようなデバイスを非限定的に挙げると、レーザープリンタ、インクジェットプリンタ、LEDプリンタがある。例示的プリンタ170は、プロッター、ファクシミリ装置、多機能デバイス、デジタルコピー機などの形態をとり得る。いくつかの実施形態において、プリンタ170は、コンピュータデバイス110から受信した印刷文書を直接印刷することもできる。いくつかの実施形態において、このような配置構成により、コンピュータデバイス110によるさらなる処理が有っても(あるいは無くても)文書を直接印刷することが可能となり得る。
【0013】
いくつかの実施形態において、文書は、マークアップ言語を用いて記述されてもよく、テキスト、グラフィック、画像および色情報のうち一以上を含み得る。いくつかの実施形態において、これらの文書は、OOXMLまたはSMLを用いて記述されたスプレッドシートの形態をとり得る。いくつかの実施形態において、プリンタ170は、OOXMLまたはSMLによる記述文書を印刷対象として受信し得る。文書印刷処理は分散させることができる点にも留意されたい。そのため、プリンタ170によって文書を物理的に印刷する前に、コンピュータデバイス110および/またはプリンタ170により、マークアップ言語の構文解析、色情報処理、事前処理、植字、ラスタライゼーション、ハーフトニング、カラーマッチング、および/または他の操作プロセスのような文書印刷処理の一部を行うことができる。
【0014】
コンピュータデバイス110はまた、リムーバブルメディアドライブ(図示せず)も含み得る。リムーバブルメディアドライブの例を挙げると、例えば、3.5インチフロッピードライブ、CD−ROMドライブ、DVDROMドライブ、CD±RWまたはDVD±RWドライブ、USBフラッシュドライブ、および/または開示の実施形態に従った他の任意のリムーバブルメディアドライブがある。いくつかの実施形態において、マークアップ言語を用いて記述されたスプレッドシート内の色情報を処理するためのソフトウェアアプリケーションの一部をリムーバブルメディアに常駐させ、コンピュータデバイス110によって上記リムーバブルメディアドライブを用いて読み出しおよび実行を行ってもよい。
【0015】
接続部120は、ネットワーク140を介してコンピュータデバイス110およびプリンタ170を接続しており、従来の通信プロトコルおよび/またはデータポートインターフェースを用いて有線接続または無線接続として実現され得る。一般的に、接続部120は、デバイス間のデータ送信を可能にする任意の通信チャンネルでよい。一実施形態において、例えば、適切な接続を介したデータ送信のためのパラレルポート、シリアルポート、イーサネット、USB、SCSI、FIREWIRE、および/または同軸ケーブルポートのような従来のデータポートが設けられ得る。これらの通信リンクは、無線リンクまたは有線リンクであってもよいし、あるいは、上記の多様なデバイス間の通信を可能にする開示の実施形態に従った任意の組み合わせであってもよい。
【0016】
ネットワーク140は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)またはインターネットを含み得る。プリンタ170は、接続部120を通じてネットワーク140に接続され得る。いくつかの実施形態において、プリンタ170は、コンピュータデバイス110に直接接続してもよい。いくつかの実施形態によれば、システム100は他の周辺装置(図示せず)も含み得る。開示の実施形態に従った、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのコンピュータソフトウェアアプリケーションは、コンピュータ110および/またはプリンタ170上で展開され得る。例えば、コンピュータデバイス110は、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのソフトウェアのうちいくつかの部分を実行してもよく、その場合、他の部分は、開示の実施形態に従ってプリンタ170によって実行され得る。
【0017】
いくつかの実施形態において、プリンタ170は、CPU176、ファームウェア171、メモリ172、入力/出力ポート175、印刷エンジン177、および二次記憶装置173を接続するバス174を含み得る。プリンタ170はまた、開示の実施形態に従って処理された色情報を用いてマークアップ言語において指定された印刷可能なスプレッドシートデータをレンダリングするためのアプリケーションの部分を実行することが可能な他の特定用途向け集積回路(ASIC)、および/またはフィールドプログラマブルゲートアレイ(FPGA)178も含み得る。いくつかの実施形態において、プリンタ170は、I/Oポート175および接続部120を用いて、コンピュータデバイス110内の二次記憶装置または他のメモリにアクセスすることもできる。いくつかの実施形態において、プリンタ170は、プリンタオペレーティングシステム、マークアップ言語構文解析ソフトウェア、ラスタライゼーションルーチン、および他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することもできる。
【0018】
いくつかの実施形態において、CPU176は、汎用プロセッサ、専用プロセッサ、または組み込みプロセッサであり得る。CPU176は、制御情報および命令を含むデータを、メモリ172および/またはファームウェア171とやり取りすることができる。メモリ172は、任意の種類のダイナミックランダムアクセスメモリ(DRAM)であり得る。このようなダイナミックランダムアクセスメモリを非限定的に挙げると、SDRAMまたはRDRAMがある。ファームウェア171は、命令およびデータを保持し得る。このような命令およびデータを非限定的に挙げると、マークアップ言語構文解析、言語処理、ラスタライゼーションおよびハーフトニングのためのブートアップシーケンスおよび事前規定されたルーチンならびに他のコードがある。いくつかの実施形態において、ファームウェア171内のコードおよびデータは、CPU176によって機能させられる前に、メモリ172にコピーされ得る。
【0019】
ファームウェア171内のルーチンは、OOXMLまたはSMLなどのマークアップ言語を用いて記述されたスプレッドシートなどの文書を処理および印刷するためのコードを含み得る。このような文書は、コンピュータデバイス110から受信され得る。いくつかの実施形態において、このような処理は、マークアップ言語を用いて記述されたスプレッドシート中の色情報の処理を含み得る。ファームウェア171はまた、圧縮ルーチンおよびメモリ管理ルーチンを含み得る。いくつかの実施形態において、ファームウェア171内のデータおよび命令は、更新可能であってもよい。
【0020】
いくつかの実施形態において、CPU176は、命令およびデータに対して機能し、ASIC/FPGA178および印刷エンジン177に対して制御およびデータを提供して印刷文書を生成し得る。FPGA/ASIC178もまた、変換アルゴリズム、圧縮アルゴリズムおよびラスター化アルゴリズムのうち一以上を実行し得る。
【0021】
一実施形態において、コンピュータデバイス110は、マークアップ言語を用いて指定されたスプレッドシートなどの文書中の印刷可能データをプリンタ170に送信し得る。その後、プリンタ170は、上記マークアップ言語による記述の構文解析および色情報の処理を行うためのルーチンを呼び出し得る。例えば、色情報オブジェクトは、記述された実装方法(implementation)に合致する様態で特定および処理され得る。
【0022】
いくつかの実施形態において、このマークアップ言語記述の文書から最終的な印刷可能データへの変換プロセスは、ディスプレイリストを含む中間的な印刷可能データの生成を含み得る。このディスプレイリストにより、最終的な印刷可能データの生成が支援され得る。いくつかの実施形態において、ディスプレイリストは、メモリ172または二次記憶装置173内に保存され得る。例示的二次記憶装置173は、内部ハードディスクまたは外部ハードディスク、メモリスティック、またはプリンタ170において使用可能な他の任意のメモリ記憶デバイスであってもよい。いくつかの実施形態において、ディスプレイリストは、プリンタ170および/またはコンピュータデバイス110のうち一以上に常駐し得る。
【0023】
図2は、例示的プロセスフロー200を示し、マークアップ言語で規定された印刷可能データをレンダリングするアプリケーションの一部を実行する方法における工程を示す。このプロセスは、工程210において、印刷ジョブの開始と共に開始し得る。この印刷ジョブは、いくつかの場合において、OOXMLまたはSMLなどのマークアップ言語で指定されたスプレッドシートであり得る。
【0024】
工程220において、文書215に対し、言語およびオブジェクト処理を行うこともできる。例えば、文書中のデータをOOXML構文解析ツールによって構文解析して、個々のオブジェクトを特定することができる。これらのオブジェクトは、テキストオブジェクト、画像オブジェクトおよびグラフィックオブジェクトに加え、スプレッドシート文書内の色情報オブジェクトを含み得る。いくつかの実施形態において、OOXML構文解析ツールなどのマークアップ言語構文解析ツールおよび他の関連付けられたルーチンにより、言語処理およびオブジェクト事前処理が行われ得る。スプレッドシートの場合、構文解析ツールを用いて、例えば、セル、表、形状、スタイルおよび色情報などの、当該スプレッドシート特有の多様なオブジェクトを特定および処理することも可能である。上記構文解析ツールは、スプレッドシートのフォント、セルおよび表と関連付けられたスプレッドシート色情報データオブジェクトを処理することもでき、これにより、本明細書中に記載される実施形態に従った様式での効率的な印刷が可能となる。
【0025】
上記の操作により、ディスプレイリスト225中のエントリを記述する一以上のプリミティブが配置され得る。例示的ディスプレイリスト225は、実際に印刷する前のデータ処理における中間工程であってもよく、後続形態に変換する前にさらに構文解析され得る。ディスプレイリスト225は、色、不透明度、スタイル、境界情報および深さなどの情報を含み得る。
【0026】
ディスプレイリスト表現から物理的媒体上の印刷に適した形態への変換プロセスを、データのラスター化またはラスタライゼーションと呼ぶ場合がある。いくつかの実施形態において、ラスタライゼーションは、工程230においてラスター画像プロセッサによって行われ得る。例えば、基本的ラスタライゼーションは、ポリゴンによって記述されることが多い三次元領域をとり、この三次元領域を二次元表面上にレンダリングすることにより、達成され得る。ポリゴンは、三角形の集合として表現することができる。三角形は、三次元空間内の3つの頂点により、表現することができる。1つの頂点は、1点、エッジの端点、またはポリゴンにおける2つのエッジが出会う角部を規定する。そのため、基本的ラスタライゼーションにより、頂点の軌跡(stream)を対応する二次元点に変換し、この変換された二次元三角形を塗りつぶすことができる。ラスタライゼーションの後、上記ラスター化データは、例示的フレームバッファ250などのフレームバッファ内に保存され得る。このフレームバッファは、メモリ172内に物理的に配置され得る。
【0027】
工程230において、ラスター画像処理(RIP)モジュールは、ディスプレイリスト225を処理し、ラスター化された同等物をフレームバッファ250内に生成し得る。いくつかの実施形態において、ラスター画像処理は、プリンタ170によって行われ得る。例えば、ラスター画像処理は、プリンタ170により、CPU176、ASIC/FPGA178、メモリ172および/または二次記憶装置173のうちの一以上を用いて行われ得る。ラスター画像処理は、プリンタ170により、ソフトウェア、ファームウェアおよび/または専用ハードウェア(例えば、ASIC/FPGA178)の何らかの組み合わせを用いて行われ得る。フレームバッファ350は、印刷エンジン177による印刷媒体上への印刷に適した形態で、印刷オブジェクトの表現を保持し得る。
【0028】
いくつかの実施形態において、フレームバッファ250中のデータは、工程260において後処理に供され得る。例えば、ハーフトニング、トラッピングなどの多様な操作を、フレームバッファ250中のデータに対して実行することができる。これらの操作の結果、フレームバッファ中のデータは改変され、その結果、後処理されたフレームバッファ265が得られる。その後、後処理されたフレームバッファ265は、工程270において任意のさらなる処理に供され得る。例えば、印刷エンジン177は、後処理されたフレームバッファ265中における、ラスター化されかつ後処理されたデータを処理し、紙などの印刷媒体上のページに対する印刷可能な画像を形成し得る。
【0029】
図3は、色情報オブジェクトを示すスプレッドシートセルに対する従来の例示的OOXMLセルフォーマット仕様およびオブジェクトマッピングを示す。図3に示すように、例示的スプレッドシート310は、セル312を含む。セル312は、そのロケーション「D2」(スプレッドシートの列D/行2)と、ストリング「Q1」で与えられるスプレッドシートセルデータ318とによって特定される。1つのセルは、行および列の交点におけるそのロケーションにより、指定することができる。セルは、データを保持することができ、例えば、数値またはテキスト書式設定、アライメント、フォント、色、塗りつぶしおよび境界などの、複数の特性を有し得る。図3に示すように、スプレッドシートセル312は、「Q1」で与えられるデータ318を有する。
【0030】
セル312そのものは、セル参照322が「D2」であることを示すワークシートXML記述320内の「c」集合によって表現され得る。例示的セル312はまた、値s=「7」のスタイル識別子325(属性「s」)と、データタイプ(属性t)とを示し得る。これは、セル312が、t=「s」によって表される「ストリング」タイプのデータを保持していることを示している。セル値属性<v>321がストリングに対する数であるのかまたはインデックスであるのかを決定するために、セルのデータタイプが調査され得る。セルデータタイプがストリングを示す場合、セルのデータタイプはインデックスであり、数値ではない。図3に示すように、セル値インデックス321は、ゼロベースのインデックス共有型ストリング表330のインデックスであり、セル312のコンテンツのロケーションを示す。セル値インデックス321の値は「0」であり、これは、セル値インデックス321が共有型ストリング表330における最初のエントリであることを示し、セル値インデックス321は、「Q1」と示されているセルデータ338にマップされている。
【0031】
スプレッドシート中のオブジェクトに対し、スタイルが適用され得る。スタイル、テーマおよび直接書式設定を用いて、セル、表、セル範囲、ピボットテーブル、チャートおよび形状がフォーマットされ得る。スタイルは、名前付き書式設定要素の集合として見られ得る。スタイルにより、色、フォント、および形状効果を直接指定することができ、あるいは、テーマ定義を参照することで、これらの要素を間接的に参照することもできる。テーマは、1組の色、フォント情報、および形状への効果を定義する。スタイルまたは書式設定要素が、その色、フォントまたは効果をテーマ参照によって定義している場合、新規テーマが取り上げられると、当該書式設定要素についての全ての色、フォントおよび効果が切り替えられ得る。
【0032】
図3に示すように、スプレッドシート310中のセル312は、ワークシートXML320において参照されている名前付きスタイル325を用いている。名前付きスタイル325の属性値であるs=「7」がワークシートXML320において参照されているが、これは、名前付きスタイル325からcellXfs中の8番目の<xf>定義345への破線によって示すように、cellXfsまたはセル固有フォーマット340の8番目(またはゼロベースで7番目)の<xf>定義345が、セル312についての直接的セル固有書式設定情報を保持していることを示す。セルスタイル記録(<xf>)は、セルの直接的書式設定について、全てのセル固有書式設定(例えば、数フォーマット、フォント情報、境界および塗りつぶし)を統括する。cellXfsまたはセル固有フォーマット340は、セル312についての直接的書式設定要素を指定する。cellXfs340はまた、属性値fontId347が4であることも示す。
【0033】
図3に示すように、cellXfsオブジェクト440は、セル固有フォーマット属性の値を含むセル固有書式設定情報を保持する。cellXfsオブジェクト440は、fontId447の値を保持する。fontId447の値は、フォントプロパティを保持するフォント表オブジェクト420中の(ゼロベースの)記録数を示す。フォントプロパティは、fontId447からフォント表オブジェクト420への実線によって示される。加えて、cellXfsオブジェクト440はまた、塗りつぶし(fillId)および境界(borderId)の属性値も保持する。これらの属性値はまた、それぞれ塗りつぶしおよび境界オブジェクト表(図示せず)の記録に対するインデックスでもある。
【0034】
フォント表オブジェクト420は、ワークブックにおいて用いられる多様なフォントの特性に関する記録を保持する。ワークブックは、一以上のスプレッドシートの集合であり得る。属性fontId447の値は、フォントIdの値に対応するフォント特性を羅列した記録を得るためのインデックス(ゼロベースの)として用いられ得る。フォント表オブジェクト420中の記録はまた、インデックスcolorId426を用いてフォントの色を指定することもでき、このインデックスcolorId426は、色表オブジェクト470中の記録に対するゼロベースのインデックスであり得る。
【0035】
フォントXMLスタイルシート350に示すように、フォント色は、多様な様式で指定することができる。例えば、カスタム色の赤(R)緑(G)青(B)(「RGB」)値は、フォント集合351によって示すように、「color rgb=”FFFF0000"」で指定され得る。フォント集合352内に示すように色を自動で指定することもでき、この場合、フォント色は、背景色に基づいて自動的に適用される。
【0036】
加えて、フォント色は、フォント集合353中に示される命令文「color indexed=”64"」によって示されるように、色についてのレガシーインデックス付与スキームに対するインデックス値として表現され得る。インデックス値が用いられる場合、idxColor478の属性を用いて、インデックス色表オブジェクト480中のrgb色値をルックアップする。インデックス色表オブジェクト480は、RGB色値の配列を含む。このRGB色値の配列は、色インデックスidx488を用いてルックアップされ得る。さらに、色もまた、テーマインデックスを用いて指定され得る。例えば、フォント集合354に示すように、色テーマは、「color theme=”1"」という命令文によって指定され得、ここで、「1」は、インデックスの値である。テーマインデックス値が用いられる場合、属性_idTheme479を用いて、テーマ色表オブジェクト490中のrgb色値をルックアップする。テーマ色表オブジェクト480は、RGB色値の配列を含む。このRGB色値の配列は、テーマインデックス_idTheme499を用いてルックアップされ得る。テーマ色表オブジェクト記録は、インデックス色オブジェクト表480中の色をさらに参照し得る点に留意されたい。さらに、フォント集合355および356に示すように、テーマ色またはカスタム色にティントが適用され得る。ティントが色に適用されると、色値が変化し得る。
【0037】
上記の記述から明らかなように、従来のスプレッドシートオブジェクトの処理方法においては、印刷時においてオブジェクト記述に対する多様な参照が複数回横断的に行われており、このことが効率の悪さの原因になっている。例えば、SML記述および多様な他のOOXML記述の場合、ページネーション決定が行われてレンダリング開始可能となる前に、全データがメモリにロードされることが多い。そのため、これらの表全てをメモリ内に保持する必要がある。その上、印刷されている各セルについて、当該セルのレンダリングに用いられる最終的な印刷属性を決定するために、非常に多数の表中の色属性値がルックアップされ分解される。例えば、従来の処理において、レンダリングのために1つのセルを処理する際には、色表オブジェクト470、インデックス色オブジェクト480およびテーマ色オブジェクト490を用いて、塗りつぶし、フォントおよび境界のための色属性値がルックアップされる。このようなルックアップは、スプレッドシート中の各セルおよびセルオブジェクトの処理が進むにつれて継続的に行われるため、印刷時において複数の表がメモリ内に保存され、これらの表は複数回ルックアップされる。そのため、メモリ使用量増加および処理非効率の原因となっている。
【0038】
図4は、開示の実施形態による、OOXMLを用いて記述されたスプレッドシート中の色情報を処理する方法から得られたOOXMLスプレッドシートセルに対する例示的オブジェクトマッピング400を示す。いくつかの実施形態において、インデックス色表オブジェクト480およびテーマ色490中の色値は、カラーパレット表オブジェクト450内の記録に配置され得る。加えて、カスタム色値およびティントが適用されている色値も、色パレット表オブジェクト450に保存され得る。
【0039】
いくつかの実施形態において、マッピングを確立することで、(色表オブジェクト470のための)idColorインデックス476、(インデックス色表オブジェクト480のための)idxインデックス488、および(テーマ色表オブジェクト490のための)idThemeインデックス499のうちのいずれかから、(カラーパレット表オブジェクト450のための)idColorインデックス456を決定することが可能である。その結果、例えば、フォント、境界、塗りつぶしなどのスプレッドシートオブジェクトと関連付けられた色インデックスを用いて、ColorIdインデックス456を決定することができる。ColorIdインデックス456は、当該色値を保持しているカラーパレット表オブジェクト450中の記録を特定する。
【0040】
いくつかの実施形態において、カラーパレット表オブジェクト450中の記録は、RGBおよび/またはシアン(C)、マゼンタ(M)、黄色(Y)および黒色(K)(「CMYK」)で色値を保持し得る。いくつかの実施形態において、色空間変換ルーチンを用いて、RGBからCMYKへの色値変換または逆方向の色値変換を行うことができる。いくつかの実施形態において、カラーパレット表オブジェクト450は、メモリ中にキャッシュされ、キャッシュ済みアレイまたはキャッシュ済みのカラーパレットの形態をとり得る。
【0041】
いくつかの実施形態において、例示的オブジェクトマッピング400は、OOXMLスプレッドシート文書215に対する言語およびオブジェクト処理工程220の間に生成され得る。例えば、例示的オブジェクトマッピング400は、OOXMLまたはSMLを用いて記述されたスプレッドシート中におけるスプレッドシートオブジェクトの色属性を処理する際に、構文解析ツールによって生成され得る。いくつかの実施形態において、例示的オブジェクトマッピング400は、スタイルを用いたスプレッドシートオブジェクトをレンダリングするためのラスター画像処理工程230の間に用いられ得る。
【0042】
図5は、開示の実施形態による、OOXMLを用いて記述されたスプレッドシート中の色情報を処理するための例示的方法500のフローチャートを示す。いくつかの実施形態において、方法500は、OOXML構文解析ツールによって行われ得る。いくつかの実施形態において、方法500は、OOXMLまたはSMLなどのマークアップ言語で記述されたスプレッドシートに対して行われ得る。この方法は、工程510において開始する。次に、工程512において、事前規定されたインデックス色が、カラーパレット表オブジェクト450に付加され得る。いくつかの実施形態において、これらの色は、インデックス色表オブジェクト480から付加され得る。
【0043】
工程514において、第1の色または次の色がテーマ色表オブジェクト490から読み出され、RGBに変換され得る。工程516において、上記テーマ色のRGB値と、カラーパレット表オブジェクト450中に記録されている色値とが比較され得る。上記テーマ色のRGB値が既にカラーパレット表オブジェクト450内にある場合(工程516;Y)、アルゴリズムは工程514に戻り、別の反復を開始する。上記テーマ色のRGB値がカラーパレット表オブジェクト450内に無い場合(工程516;N)、工程518において、上記テーマ色が上記キャッシュ済みのカラーパレット中の記録に付加され得る。テーマ色表オブジェクト490内にこれ以上記録が無い場合(工程520;Y)、アルゴリズムは工程522に進む。そうではない場合、(工程520;N)、アルゴリズムは工程514に戻り、別の反復を開始する。
【0044】
工程522において、色表オブジェクト470内の第1の記録または次の記録が読み出され得る。色タイプが「自動」(工程524;Y)である場合、工程534において、背景塗りつぶし色がチェックされ得る。背景塗りつぶし色が濃い色である場合(工程534;Y)、工程538において、カラーパレット表オブジェクト450内における記録の色値が、事前規定された白色用インデックスに設定され、アルゴリズムは工程552に進み得る。背景塗りつぶし色が濃い色ではない場合(工程534;N)、工程536において、カラーパレット表オブジェクト450内における記録の色値が、事前規定された黒色用インデックスに設定され、アルゴリズムは工程552に進み得る。
【0045】
色タイプが「自動」ではない場合(工程524;N)、工程526において、色タイプをチェックして、色タイプがRGBであるかを決定する。色タイプがRGBである場合(工程526;Y)、工程540において、提供された任意のティントがRGB値に適用され、アルゴリズムは工程548に進み得る。
【0046】
色タイプがRGBではない場合(工程526;N)、工程528において、色タイプをチェックして、色タイプがティントと共にテーマ付けされているかを決定する。色タイプがティントと共に「テーマ付け」されている場合(工程528;Y)、工程544において、テーマ色がルックアップされ、提供されているティント全てが上記色値に適用され得る。その後、アルゴリズムは工程548に進み得る。
【0047】
工程548において、RGB値へのティント適用から得られた色(工程540において得られる)またはテーマ付き色値(工程544において得られる)と、カラーパレット表オブジェクト450内に既にある色とが比較され得る。ティント適用から得られた色がカラーパレット表オブジェクト450中に無い場合(工程548;N)、工程550において、この新規のティント適用色がカラーパレット表オブジェクト450に追加され、アルゴリズムは工程552に進む。
【0048】
色タイプがティント付きテーマではない場合(工程528;N)、工程530において、色タイプをチェックして、色タイプがインデックス付きであるかを決定する。色タイプがインデックス付きではない場合(工程530;N)、工程532において、マークアップ言語仕様にエラーがあることがアルゴリズムによって示され得る。色タイプがインデックス付きである場合(工程528;Y)、アルゴリズムは工程552に進む。
【0049】
工程552において、パレットインデックスによって表現される色と、インデックス付き色、テーマ付き色および色表のインデックスとの間でマッピングが確立され得る。このマッピングを用いて、インデックス付き色、テーマ付き色または色表中の色のインデックスに対応するカラーパレット表オブジェクト記録のインデックスを決定することができる。そのため、このようなパレットインデックスのマッピングを用いて、カラーパレット表オブジェクト中の記録について、インデックス付き色インデックス488、テーマ色インデックス499または色表インデックスidColor476が提供された場合のインデックスidColor456を決定することができる。その後、アルゴリズムは工程554に進む。
【0050】
工程554において、色表オブジェクト470中にこれ以上記録が無い場合(工程554;Y)、アルゴリズムは工程556において終了し得る。色表オブジェクト470内にさらなる記録が有る場合(工程554;N)、アルゴリズムは工程522に進んで、別の反復を開始する。
【0051】
色値を示すための例示的方法500においてRGB値を用いてきたが、これらの色値は、多様な他の色空間(例えば、CMYK)を用いて表され得る。従って、いくつかの実施形態において、例示的アルゴリズム500は、入力色空間(例えば、RGB)から出力色空間(例えば、CMYK)への色値の色空間変換を行い、上記色値を上記出力色空間内に保存し得る。いくつかの実施形態において、方法500は、入力色空間および出力色空間どちらの色値も保存し得る。いくつかの実施形態において、カラーパレット表オブジェクト450の生成およびポピュレートの後、色表オブジェクト470、インデックス色表オブジェクト480およびテーマ色表オブジェクト490が消去可能となり、これにより、メモリリソースが解放され得る。
【0052】
本明細書および開示の実施形態の実施を鑑みれば、当業者にとって他の実施方法が明らかである。本明細書および例はひとえに例示的なものとしてみなされるべきであり、その真なる範囲および精神は以下の特許請求の範囲によって示されることが企図される。

【特許請求の範囲】
【請求項1】
マークアップ言語で記述されたスプレッドシート文書中の少なくとも一のオブジェクトに関する色情報を保存するための、プロセッサによって実行される方法であって、
複数のスプレッドシート色表オブジェクトから個別の色値を取得する工程であって、前記複数のスプレッドシート色表オブジェクト中の色値が、複数のインデックスを用いることで前記少なくとも一のオブジェクトにより参照され、前記複数のインデックス中の各インデックスが、個別の色表オブジェクトに対応する、工程と、
前記個別の色値をカラーパレット表オブジェクト内に保存する工程であって、前記カラーパレット表オブジェクト中の色値が、カラーパレットインデックスを用いてアクセスされる、工程と、
前記インデックス値および前記カラーパレットインデックス値が同一の色値を示す場合、前記複数の色表それぞれの中のインデックス値をカラーパレットインデックス値にマッピングする工程と、
を含む、方法。
【請求項2】
前記スプレッドシート文書はOOXMLで記述される、請求項1に記載のプロセッサによって実行される方法。
【請求項3】
前記スプレッドシート文書はSMLで記述される、請求項1に記載のプロセッサによって実行される方法。
【請求項4】
前記方法は構文解析ツールによって行われる、請求項1に記載のプロセッサによって実行される方法。
【請求項5】
前記カラーパレット表オブジェクトおよび前記インデックスマッピングを保存した後、前記プロセッサに接続されたメモリから前記複数の色表オブジェクトを削除する工程をさらに含む、請求項1に記載のプロセッサによって実行される方法。
【請求項6】
前記色パレット表オブジェクトは、前記プロセッサに接続されたメモリ中にキャッシュされる、請求項1に記載のプロセッサによって実行される方法。
【請求項7】
前記少なくとも一のオブジェクトは、境界オブジェクト、フォントオブジェクトまたは塗りつぶしオブジェクトのうち少なくとも一を含む、請求項1に記載のプロセッサによって実行される方法。
【請求項8】
前記方法が、
コンピュータ、
プリンタ、または
コンピュータに接続されたプリンタ
上で行われる、請求項1に記載のプロセッサによって実行される方法。
【請求項9】
前記複数の色表オブジェクトは、インデックス付き色表オブジェクト、テーマ色オブジェクトおよび色表オブジェクトのうち少なくとも一を含む、請求項1に記載のプロセッサによって実行される方法。
【請求項10】
前記個別の色値をカラーパレット表オブジェクト内に保存する工程は、
前記個別の色値から出力色空間への色空間変換を行って、前記出力色空間中の色値を得る工程であって、前記出力色空間が、前記色値が指定された前記色空間と異なる、工程と、
前記出力色空間中の前記色値を前記カラーパレット表に保存する工程と、
をさらに含む、請求項1に記載のプロセッサによって実行される方法。
【請求項11】
命令を保存するコンピュータ可読型媒体であって、前記命令は、プロセッサによって実行された場合、マークアップ言語で記述されたスプレッドシート文書中の少なくとも一のオブジェクトに対する方法を行い、前記方法は、
複数のスプレッドシート色表オブジェクトから個別の色値を取得する工程であって、前記複数のスプレッドシート色表オブジェクト中の色値が、複数のインデックスを用いることで前記少なくとも一のオブジェクトにより参照され、前記複数のインデックス中の各インデックスが、個別の色表オブジェクトに対応する、工程と、
前記個別の色値をカラーパレット表オブジェクト内に保存する工程であって、前記カラーパレット表オブジェクト中の色値が、カラーパレットインデックスを用いてアクセスされる、工程と、
前記インデックス値および前記カラーパレットインデックス値が同一の色値を示す場合前記複数の色表それぞれの中のインデックス値をカラーパレットインデックス値にマッピングする工程と、
を含む、コンピュータ可読型媒体。
【請求項12】
前記スプレッドシート文書はOOXMLで記述される、請求項11に記載のコンピュータ可読型媒体。
【請求項13】
前記スプレッドシート文書はSMLで記述される、請求項11に記載のコンピュータ可読型媒体。
【請求項14】
前記方法は構文解析ツールによって行われる、請求項11に記載のコンピュータ可読型媒体。
【請求項15】
前記カラーパレット表オブジェクトおよび前記インデックスマッピングを保存した後、前記プロセッサに接続されたメモリから前記複数の色表オブジェクトを削除する工程をさらに含む、請求項11に記載のコンピュータ可読型媒体。
【請求項16】
前記色パレット表オブジェクトは、メモリにキャッシュされる、請求項11に記載のコンピュータ可読型媒体。
【請求項17】
前記少なくとも一のオブジェクトは、境界オブジェクト、フォントオブジェクトまたは塗りつぶしオブジェクトのうち少なくとも一を含む、請求項11に記載のコンピュータ可読型媒体。
【請求項18】
前記方法が、
コンピュータ
プリンタ、または
コンピュータに接続されたプリンタ
上で行われる、請求項11に記載のコンピュータ可読型媒体。
【請求項19】
前記個別の色値をカラーパレット表オブジェクト内に保存する工程は、
前記個別の色値から出力色空間への色空間変換を行って、前記出力色空間中の色値を得る工程であって、前記出力色空間が、前記色値が指定された前記色空間と異なる、工程と、
前記出力色空間中の前記色値を前記カラーパレット表に保存する工程と、
をさらに含む、請求項11に記載のコンピュータ可読型媒体。
【請求項20】
命令を保存するコンピュータ可読型メモリであって、前記命令は、プロセッサによって実行されると、マークアップ言語で記述されたスプレッドシート文書中の少なくとも一のオブジェクトのための方法を行い、前記方法は、
複数のスプレッドシート色表オブジェクトから個別の色値を取得する工程であって、前記複数のスプレッドシート色表オブジェクト中の色値は、複数のインデックスを用いることで前記少なくとも一のオブジェクトにより参照され、前記複数のインデックス中の各インデックスが、個別の色表オブジェクトに対応する、工程と、
前記個別の色値をカラーパレット表オブジェクト内に保存する工程であって、前記色パレット表オブジェクト中の色値が、カラーパレットインデックスを用いてアクセスされる、工程と、
前記インデックス値および前記カラーパレットインデックス値が同一の色値を示す場合、前記複数の色表それぞれの中のインデックス値をカラーパレットインデックス値にマッピングする工程と、
を含む、コンピュータ可読型メモリ。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−175637(P2011−175637A)
【公開日】平成23年9月8日(2011.9.8)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−24716(P2011−24716)
【出願日】平成23年2月8日(2011.2.8)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
2.イーサネット
【出願人】(507031918)コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド (157)
【Fターム(参考)】