(57)【特許請求の範囲】
【請求項１】
マークアップ言語で記述されたスプレッドシート文書中の少なくとも一のオブジェクトに関する色情報を生成するための、プロセッサによって実行される方法であって、
前記スプレッドシート文書を構文解析して前記少なくとも一のオブジェクトに関する少なくとも一のディスプレイリストを生成する工程と、
前記構文解析中に生成された前記色情報に係るマッピングを用いて前記ディスプレイリストを処理することにより前記少なくとも一のオブジェクトをラスター化してフレームバッファに格納する工程と、
を含み、
前記スプレッドシート文書を構文解析して前記少なくとも一のディスプレイリストを生成する工程は、
複数のスプレッドシート色表オブジェクトから個別の色値を取得する工程であって、前記複数のスプレッドシート色表オブジェクト中の色値が、複数のインデックスを用いることで前記少なくとも一のオブジェクトにより参照され、前記複数のインデックス中の各インデックスが、個別の色表オブジェクトに対応する、工程と、
前記個別の色値をカラーパレット表オブジェクト内に保存する工程であって、前記カラーパレット表オブジェクト中の色値が、それぞれカラーパレットインデックスを用いてアクセスされる、工程と、
個別の色表オブジェクトに応じたインデックスおよび複数の前記カラーパレットインデックスのうちの一が同一の色値を示す場合、前記インデックスと前記一のカラーパレットインデックスとの間の前記マッピングを生成する工程と、
を含む、方法。
【請求項２】
前記スプレッドシート文書はＯＯＸＭＬで記述される、請求項１に記載のプロセッサによって実行される方法。
【請求項３】
前記スプレッドシート文書はＳＭＬで記述される、請求項１に記載のプロセッサによって実行される方法。
【請求項４】
前記方法は構文解析ツールおよびラスター画像処理部によって行われる、請求項１に記載のプロセッサによって実行される方法。
【請求項５】
前記カラーパレット表オブジェクトおよび前記マッピングを保存した後、前記プロセッサに接続されたメモリから前記複数のスプレッドシート色表オブジェクトを削除する工程をさらに含む、請求項１に記載のプロセッサによって実行される方法。
【請求項６】
前記カラーパレット表オブジェクトは、前記プロセッサに接続されたメモリ中にキャッシュされる、請求項１に記載のプロセッサによって実行される方法。
【請求項７】
前記少なくとも一のオブジェクトは、境界オブジェクト、フォントオブジェクトまたは塗りつぶしオブジェクトのうち少なくとも一を含む、請求項１に記載のプロセッサによって実行される方法。
【請求項８】
前記方法が、
コンピュータ、
プリンタ、または
コンピュータに接続されたプリンタ
上で行われる、請求項１に記載のプロセッサによって実行される方法。
【請求項９】
前記複数の色表オブジェクトは、インデックス付き色表オブジェクト、テーマ色オブジェクトおよび色表オブジェクトのうち少なくとも一を含む、請求項１に記載のプロセッサによって実行される方法。
【請求項１０】
前記個別の色値をカラーパレット表オブジェクト内に保存する工程は、
前記個別の色値から出力色空間への色空間変換を行って、前記出力色空間中の色値を得る工程であって、前記出力色空間が、前記色値が指定された前記色空間と異なる、工程と、
前記出力色空間中の前記色値を前記カラーパレット表に保存する工程と、
をさらに含む、請求項１に記載のプロセッサによって実行される方法。
【請求項１１】
命令を保存するコンピュータ可読型媒体であって、前記命令は、プロセッサによって実行された場合、マークアップ言語で記述されたスプレッドシート文書中の少なくとも一のオブジェクトに対する色情報を前記プロセッサに生成させ、
前記色情報の生成は、
前記スプレッドシート文書を構文解析して前記少なくとも一のオブジェクトに関する少なくとも一のディスプレイリストを生成する工程と、
前記構文解析中に生成された前記色情報に係るマッピングを用いて前記ディスプレイリスト処理することにより前記少なくとも一のオブジェクトをラスター化してフレームバッファに格納する工程と、
を含み、
前記スプレッドシート文書を構文解析して前記少なくとも一のディスプレイリストを生成する工程は、
複数のスプレッドシート色表オブジェクトから個別の色値を取得する工程であって、前記複数のスプレッドシート色表オブジェクト中の色値が、複数のインデックスを用いることで前記少なくとも一のオブジェクトにより参照され、前記複数のインデックス中の各インデックスが、個別の色表オブジェクトに対応する、工程と、
前記個別の色値をカラーパレット表オブジェクト内に保存する工程であって、前記カラーパレット表オブジェクト中の色値が、それぞれカラーパレットインデックスを用いてアクセスされる、工程と、
個別の色表オブジェクトに応じたインデックスおよび複数の前記カラーパレットインデックスのうちの一が同一の色値を示す場合、前記インデックスと前記一のカラーパレットインデックスとの間の前記マッピングを生成する工程と、
を含む、コンピュータ可読型媒体。
【請求項１２】
前記スプレッドシート文書はＯＯＸＭＬで記述される、請求項１１に記載のコンピュータ可読型媒体。
【請求項１３】
前記スプレッドシート文書はＳＭＬで記述される、請求項１１に記載のコンピュータ可読型媒体。
【請求項１４】
前記命令は構文解析ツール及びラスター画像処理部によって行われる、請求項１１に記載のコンピュータ可読型媒体。
【請求項１５】
前記カラーパレット表オブジェクトおよび前記マッピングを保存した後、前記プロセッサに接続されたメモリから前記複数のスプレッドシート色表オブジェクトを削除する工程をさらに含む、請求項１１に記載のコンピュータ可読型媒体。
【請求項１６】
前記カラーパレット表オブジェクトは、メモリにキャッシュされる、請求項１１に記載のコンピュータ可読型媒体。
【請求項１７】
前記少なくとも一のオブジェクトは、境界オブジェクト、フォントオブジェクトまたは塗りつぶしオブジェクトのうち少なくとも一を含む、請求項１１に記載のコンピュータ可読型媒体。
【請求項１８】
前記命令が、
コンピュータ
プリンタ、または
コンピュータに接続されたプリンタ
上で行われる、請求項１１に記載のコンピュータ可読型媒体。
【請求項１９】
前記個別の色値をカラーパレット表オブジェクト内に保存する工程は、
前記個別の色値から出力色空間への色空間変換を行って、前記出力色空間中の色値を得る工程であって、前記出力色空間が、前記色値が指定された前記色空間と異なる、工程と、
前記出力色空間中の前記色値を前記カラーパレット表に保存する工程と、
をさらに含む、請求項１１に記載のコンピュータ可読型媒体。
【請求項２０】
命令を保存するコンピュータ可読型メモリと、
前記命令を実行するプロセッサと
を備えるコンピュータであって、
前記命令は、プロセッサによって実行されると、マークアップ言語で記述されたスプレッドシート文書中の少なくとも一のオブジェクトのための色情報の生成を前記プロセッサに実行させ、
前記色情報の生成は、
前記スプレッドシート文書を構文解析して前記少なくとも一のオブジェクトに関する少なくとも一つのディスプレイリストを生成する工程と、
構文解析中に生成された前記色情報に係るマッピングを用いて前記ディスプレイリストを処理することにより前記少なくとも一のオブジェクトをラスター化してフレームバッファに格納する工程と、
を含み、
前記スプレッドシート文書を構文解析して前記少なくとも一のディスプレイリストを生成する工程は、
複数のスプレッドシート色表オブジェクトから個別の色値を取得する工程であって、前記複数のスプレッドシート色表オブジェクト中の色値は、複数のインデックスを用いることで前記少なくとも一のオブジェクトにより参照され、前記複数のインデックス中の各インデックスが、個別の色表オブジェクトに対応する、工程と、
前記個別の色値をカラーパレット表オブジェクト内に保存する工程であって、前記色パレット表オブジェクト中の色値が、それぞれカラーパレットインデックスを用いてアクセスされる、工程と、
個別の色表オブジェクトに応じたインデックスおよび複数の前記複数のカラーパレットインデックスのうちの一が同一の色値を示す場合、前記インデックスと前記一のカラーパレットインデックスとの間のマッピングを生成する工程と、
を含む、コンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、印刷分野に関し、特に、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのシステムおよび方法に関する。
【背景技術】
【０００２】
文書処理ソフトウェアにより、ユーザは、多様な種類の文書を簡便に視認、編集、処理、保存および印刷することができる。印刷対象となる文書コンテンツは、多様な方式で記述することが可能であり、例えば、オフィスオープンエクステンシブルマークアップ言語（「ＯＯＸＭＬ」）や、ＸＭＬに基づき主としてスプレッドシートと共に用いられるスプレッドシートマークアップ言語（「ＳＭＬ」）等のマークアップ言語が用いられている。マークアップ言語により、文書にテキスト注釈を付すことが可能となる。記述的マークアップ言語を用いて、文書の部分間における構造的関係を指定することは可能であるが、記述的マークアップ言語からは、文書をどのようにレンダリングするかまたはエンドユーザに提示するかについての命令は何も得られない場合が多い。一方、手続きマークアップ言語および提示マークアップ言語中には、文書コンテンツをどのようにレンダリングすべきかについて詳述する命令が含まれる場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
記述的マークアップ言語を用いて記述された文書をレンダリングする場合、文書の部分間における構造的関係に起因して、印刷対象としての最終的なレンダリング可能コンテンツを決定するプロセスが複雑になる可能性がある。スプレッドシートなどの文書の場合、スプレッドシートセルの値は、非常に多数の他のセルに依存し得るため、その複雑性が多種多様に増大し得る。スプレッドシートの要素（例えば、セル、表およびそれらの関連付けられた属性）は、プログラムでオブジェクトとして表されることが多い。そのため、マークアップ言語（例えば、ＯＯＸＭＬまたはＳＭＬ）で指定されているスプレッドシートを印刷するために処理を行う場合、非常に多数のスプレッドシートオブジェクトがメモリ内にロードされる可能性があり、レンダリング後のオブジェクトの外観を決定するために、一以上のオブジェクト（これらは、文書の部分間における構造的関係を反映している）に対するポインタが何度もトラバースし得る。例えば、ＳＭＬの場合、ページネーション決定が行われてレンダリング開始可能となる前に、通常は全データがメモリにロードされる。
【０００４】
メモリ内に複数のオブジェクトをロードすることと、処理中にポインタのトラバースを繰り返し行うこととは、さらなるメモリリソースの使用と、他の処理における非効率性との一因になり得る。例えば、さらなるメモリが用いられると、プリンタのコストが上昇する可能性があり、処理時にポインタのトラバースが繰り返し行われると、スループット低下の一因になり得る。スプレッドシートとの関係において、スプレッドシートオブジェクトと関連付けられた色データを処理することは、メモリに常駐する複数のカラーテーブルの使用を伴う可能性があるとともに、メモリリソースの使用と、処理における非効率性との大きな一因となり得る。従って、メモリリソースをより最適な様態で用いつつ、スプレッドシートオブジェクトと関連付けられた色データの効率的な処理および印刷を可能にするシステムおよび方法が求められている。
【課題を解決するための手段】
【０００５】
開示の実施形態に基づいて、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのシステムおよび方法が提供される。いくつかの実施形態において、マークアップ言語で記述されたスプレッドシート文書中の少なくとも一のオブジェクトに関する色情報を生成する方法は、前記スプレッドシート文書を構文解析して前記少なくとも一のオブジェクトに関する少なくとも一のディスプレイリストを生成する工程と、前記構文解析中に生成された前記色情報に係るマッピングを用いて前記ディスプレイリスト処理することにより前記少なくとも一のオブジェクトをラスター化してフレームバッファに格納する工程と、を含む。前記スプレッドシート文書を構文解析して前記少なくとも一のディスプレイリストを生成する工程は、複数のスプレッドシート色表オブジェクトから個別の色値を取得する工程を含む。前記複数のスプレッドシート色表オブジェクト中の色値は、前記オブジェクトによって複数のインデックスを用いて参照され、前記複数のインデックス中の各インデックスが、個別の色表オブジェクトに対応する。前記個別の色値は、カラーパレット表オブジェクト内に保存され、前記カラーパレット表オブジェクト中の前記色値が、それぞれカラーパレットインデックスを用いてアクセスされ、前記色表オブジェクトに応じたインデックスおよび複数の前記カラーパレットインデックスのうちの一が同一の色値を示す場合、前記インデックスと、前記一のカラーパレットインデックスと、の間の前記マッピングが生成される。
【０００６】
開示の実施形態はまた、コンピュータ可読型媒体を用いてプロセッサによって生成、保存、アクセスまたは改良される方法及び当該方法が実行されるコンピュータにも関する。
【０００７】
以下、上記の実施形態および他の実施形態について、以下の図面を参照してさらに説明する。
【図面の簡単な説明】
【０００８】
【図１】マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのアプリケーションを実行可能な例示的プリンタに接続された例示的コンピュータの高レベルブロック図を示す。
【図２】例示的プロセスフローであり、マークアップ言語で指定された印刷可能データをレンダリングするアプリケーションの一部を実行する方法における工程を示す。
【図３】色情報オブジェクトを示すスプレッドシートセルに対する従来の例示的ＯＯＸＭＬセルフォーマット仕様およびオブジェクトマッピングを示す。
【図４】ＯＯＸＭＬを用いて記述されたスプレッドシート中の色情報を処理する方法から得られたＯＯＸＭＬスプレッドシートセルに対する例示的オブジェクトマッピングを、開示の実施形態と一貫した様態で示す。
【図５】ＯＯＸＭＬを用いて記述されたスプレッドシート中の色情報を処理する例示的方法のフローチャートを、開示の実施形態と一貫した様態で示す。
【発明を実施するための形態】
【０００９】
開示の実施形態の多様な特徴を反映した実施形態によれば、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのシステムおよび方法が提供される。いくつかの実施形態において、印刷可能なスプレッドシートデータは、マークアップ言語記述の形態をとり得る。例えば、スプレッドシートマークアップ言語データの処理に関する例は、ＯＯＸＭＬまたはＳＭＬの観点から説明する。しかし、記載のシステムおよび方法は、当業者にとって自明の適切な改良により、他のマークアップ言語を用いて記述されたスプレッドシートにも適用可能である。
【００１０】
図１は、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのアプリケーションを実行可能な例示的プリンタに接続された例示的コンピュータの高レベルブロック図を示す。いくつかの実施形態において、記載の技術は、キャッシュしたカラーパレットの使用を含み得る。このキャッシュしたカラーパレットは、多様なスプレッドシート色オブジェクト中に存在する情報を含む。一般的に、開示の実施形態に基づいたコンピュータソフトウェアアプリケーションは、コンピュータ、プリンタおよび他の周辺装置のネットワーク上において、展開され得る。これらのコンピュータ、プリンタおよび他の周辺装置は、通信リンクを通じて接続され、従来の通信プロトコルおよび／またはデータポートインターフェースを用いた情報のやり取りが可能になっている。
【００１１】
図１に示すように、例示的システム１００は、コンピュータデバイス１１０を含む。コンピュータデバイス１１０は、接続部１２０を用いてネットワーク１４０を介してプリンタ１７０と通信する。コンピュータデバイス１１０は、コンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、またはネットワーク環境において使用可能な他の任意のコンピュータデバイスであってもよい。コンピュータデバイス１１０は、例えば、ＯＯＸＭＬまたはＳＭＬ等のマークアップ言語を用いて記述された、スプレッドシートまたはワークシートなどの文書の印刷を、プリンタ１７０を用いて行うことを可能にするソフトウェア（図示せず）を実行し得る。
【００１２】
例示的プリンタ１７０は、電子データから物理的文書を生成する種々のデバイスを含む。このようなデバイスを非限定的に挙げると、レーザープリンタ、インクジェットプリンタ、ＬＥＤプリンタがある。例示的プリンタ１７０は、プロッター、ファクシミリ装置、多機能デバイス、デジタルコピー機などの形態をとり得る。いくつかの実施形態において、プリンタ１７０は、コンピュータデバイス１１０から受信した印刷文書を直接印刷することもできる。いくつかの実施形態において、このような配置構成により、コンピュータデバイス１１０によるさらなる処理が有っても（あるいは無くても）文書を直接印刷することが可能となり得る。
【００１３】
いくつかの実施形態において、文書は、マークアップ言語を用いて記述されてもよく、テキスト、グラフィック、画像および色情報のうち一以上を含み得る。いくつかの実施形態において、これらの文書は、ＯＯＸＭＬまたはＳＭＬを用いて記述されたスプレッドシートの形態をとり得る。いくつかの実施形態において、プリンタ１７０は、ＯＯＸＭＬまたはＳＭＬによる記述文書を印刷対象として受信し得る。文書印刷処理は分散させることができる点にも留意されたい。そのため、プリンタ１７０によって文書を物理的に印刷する前に、コンピュータデバイス１１０および／またはプリンタ１７０により、マークアップ言語の構文解析、色情報処理、事前処理、植字、ラスタライゼーション、ハーフトニング、カラーマッチング、および／または他の操作プロセスのような文書印刷処理の一部を行うことができる。
【００１４】
コンピュータデバイス１１０はまた、リムーバブルメディアドライブ（図示せず）も含み得る。リムーバブルメディアドライブの例を挙げると、例えば、３．５インチフロッピードライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤＲＯＭドライブ、ＣＤ±ＲＷまたはＤＶＤ±ＲＷドライブ、ＵＳＢフラッシュドライブ、および／または開示の実施形態に従った他の任意のリムーバブルメディアドライブがある。いくつかの実施形態において、マークアップ言語を用いて記述されたスプレッドシート内の色情報を処理するためのソフトウェアアプリケーションの一部をリムーバブルメディアに常駐させ、コンピュータデバイス１１０によって上記リムーバブルメディアドライブを用いて読み出しおよび実行を行ってもよい。
【００１５】
接続部１２０は、ネットワーク１４０を介してコンピュータデバイス１１０およびプリンタ１７０を接続しており、従来の通信プロトコルおよび／またはデータポートインターフェースを用いて有線接続または無線接続として実現され得る。一般的に、接続部１２０は、デバイス間のデータ送信を可能にする任意の通信チャンネルでよい。一実施形態において、例えば、適切な接続を介したデータ送信のためのパラレルポート、シリアルポート、イーサネット、ＵＳＢ、ＳＣＳＩ、ＦＩＲＥＷＩＲＥ、および／または同軸ケーブルポートのような従来のデータポートが設けられ得る。これらの通信リンクは、無線リンクまたは有線リンクであってもよいし、あるいは、上記の多様なデバイス間の通信を可能にする開示の実施形態に従った任意の組み合わせであってもよい。
【００１６】
ネットワーク１４０は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）またはインターネットを含み得る。プリンタ１７０は、接続部１２０を通じてネットワーク１４０に接続され得る。いくつかの実施形態において、プリンタ１７０は、コンピュータデバイス１１０に直接接続してもよい。いくつかの実施形態によれば、システム１００は他の周辺装置（図示せず）も含み得る。開示の実施形態に従った、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのコンピュータソフトウェアアプリケーションは、コンピュータ１１０および／またはプリンタ１７０上で展開され得る。例えば、コンピュータデバイス１１０は、マークアップ言語を用いて記述されたスプレッドシート中の色情報を処理するためのソフトウェアのうちいくつかの部分を実行してもよく、その場合、他の部分は、開示の実施形態に従ってプリンタ１７０によって実行され得る。
【００１７】
いくつかの実施形態において、プリンタ１７０は、ＣＰＵ１７６、ファームウェア１７１、メモリ１７２、入力／出力ポート１７５、印刷エンジン１７７、および二次記憶装置１７３を接続するバス１７４を含み得る。プリンタ１７０はまた、開示の実施形態に従って処理された色情報を用いてマークアップ言語において指定された印刷可能なスプレッドシートデータをレンダリングするためのアプリケーションの部分を実行することが可能な他の特定用途向け集積回路（ＡＳＩＣ）、および／またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）１７８も含み得る。いくつかの実施形態において、プリンタ１７０は、Ｉ／Ｏポート１７５および接続部１２０を用いて、コンピュータデバイス１１０内の二次記憶装置または他のメモリにアクセスすることもできる。いくつかの実施形態において、プリンタ１７０は、プリンタオペレーティングシステム、マークアップ言語構文解析ソフトウェア、ラスタライゼーションルーチン、および他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することもできる。
【００１８】
いくつかの実施形態において、ＣＰＵ１７６は、汎用プロセッサ、専用プロセッサ、または組み込みプロセッサであり得る。ＣＰＵ１７６は、制御情報および命令を含むデータを、メモリ１７２および／またはファームウェア１７１とやり取りすることができる。メモリ１７２は、任意の種類のダイナミックランダムアクセスメモリ（ＤＲＡＭ）であり得る。このようなダイナミックランダムアクセスメモリを非限定的に挙げると、ＳＤＲＡＭまたはＲＤＲＡＭがある。ファームウェア１７１は、命令およびデータを保持し得る。このような命令およびデータを非限定的に挙げると、マークアップ言語構文解析、言語処理、ラスタライゼーションおよびハーフトニングのためのブートアップシーケンスおよび事前規定されたルーチンならびに他のコードがある。いくつかの実施形態において、ファームウェア１７１内のコードおよびデータは、ＣＰＵ１７６によって機能させられる前に、メモリ１７２にコピーされ得る。
【００１９】
ファームウェア１７１内のルーチンは、ＯＯＸＭＬまたはＳＭＬなどのマークアップ言語を用いて記述されたスプレッドシートなどの文書を処理および印刷するためのコードを含み得る。このような文書は、コンピュータデバイス１１０から受信され得る。いくつかの実施形態において、このような処理は、マークアップ言語を用いて記述されたスプレッドシート中の色情報の処理を含み得る。ファームウェア１７１はまた、圧縮ルーチンおよびメモリ管理ルーチンを含み得る。いくつかの実施形態において、ファームウェア１７１内のデータおよび命令は、更新可能であってもよい。
【００２０】
いくつかの実施形態において、ＣＰＵ１７６は、命令およびデータに対して機能し、ＡＳＩＣ／ＦＰＧＡ１７８および印刷エンジン１７７に対して制御およびデータを提供して印刷文書を生成し得る。ＦＰＧＡ／ＡＳＩＣ１７８もまた、変換アルゴリズム、圧縮アルゴリズムおよびラスター化アルゴリズムのうち一以上を実行し得る。
【００２１】
一実施形態において、コンピュータデバイス１１０は、マークアップ言語を用いて指定されたスプレッドシートなどの文書中の印刷可能データをプリンタ１７０に送信し得る。その後、プリンタ１７０は、上記マークアップ言語による記述の構文解析および色情報の処理を行うためのルーチンを呼び出し得る。例えば、色情報オブジェクトは、記述された実装方法（implementation）に合致する様態で特定および処理され得る。
【００２２】
いくつかの実施形態において、このマークアップ言語記述の文書から最終的な印刷可能データへの変換プロセスは、ディスプレイリストを含む中間的な印刷可能データの生成を含み得る。このディスプレイリストにより、最終的な印刷可能データの生成が支援され得る。いくつかの実施形態において、ディスプレイリストは、メモリ１７２または二次記憶装置１７３内に保存され得る。例示的二次記憶装置１７３は、内部ハードディスクまたは外部ハードディスク、メモリスティック、またはプリンタ１７０において使用可能な他の任意のメモリ記憶デバイスであってもよい。いくつかの実施形態において、ディスプレイリストは、プリンタ１７０および／またはコンピュータデバイス１１０のうち一以上に常駐し得る。
【００２３】
図２は、例示的プロセスフロー２００を示し、マークアップ言語で規定された印刷可能データをレンダリングするアプリケーションの一部を実行する方法における工程を示す。このプロセスは、工程２１０において、印刷ジョブの開始と共に開始し得る。この印刷ジョブは、いくつかの場合において、ＯＯＸＭＬまたはＳＭＬなどのマークアップ言語で指定されたスプレッドシートであり得る。
【００２４】
工程２２０において、文書２１５に対し、言語およびオブジェクト処理を行うこともできる。例えば、文書中のデータをＯＯＸＭＬ構文解析ツールによって構文解析して、個々のオブジェクトを特定することができる。これらのオブジェクトは、テキストオブジェクト、画像オブジェクトおよびグラフィックオブジェクトに加え、スプレッドシート文書内の色情報オブジェクトを含み得る。いくつかの実施形態において、ＯＯＸＭＬ構文解析ツールなどのマークアップ言語構文解析ツールおよび他の関連付けられたルーチンにより、言語処理およびオブジェクト事前処理が行われ得る。スプレッドシートの場合、構文解析ツールを用いて、例えば、セル、表、形状、スタイルおよび色情報などの、当該スプレッドシート特有の多様なオブジェクトを特定および処理することも可能である。上記構文解析ツールは、スプレッドシートのフォント、セルおよび表と関連付けられたスプレッドシート色情報データオブジェクトを処理することもでき、これにより、本明細書中に記載される実施形態に従った様式での効率的な印刷が可能となる。
【００２５】
上記の操作により、ディスプレイリスト２２５中のエントリを記述する一以上のプリミティブが配置され得る。例示的ディスプレイリスト２２５は、実際に印刷する前のデータ処理における中間工程であってもよく、後続形態に変換する前にさらに構文解析され得る。ディスプレイリスト２２５は、色、不透明度、スタイル、境界情報および深さなどの情報を含み得る。
【００２６】
ディスプレイリスト表現から物理的媒体上の印刷に適した形態への変換プロセスを、データのラスター化またはラスタライゼーションと呼ぶ場合がある。いくつかの実施形態において、ラスタライゼーションは、工程２３０においてラスター画像プロセッサによって行われ得る。例えば、基本的ラスタライゼーションは、ポリゴンによって記述されることが多い三次元領域をとり、この三次元領域を二次元表面上にレンダリングすることにより、達成され得る。ポリゴンは、三角形の集合として表現することができる。三角形は、三次元空間内の３つの頂点により、表現することができる。１つの頂点は、１点、エッジの端点、またはポリゴンにおける２つのエッジが出会う角部を規定する。そのため、基本的ラスタライゼーションにより、頂点の軌跡（stream）を対応する二次元点に変換し、この変換された二次元三角形を塗りつぶすことができる。ラスタライゼーションの後、上記ラスター化データは、例示的フレームバッファ２５０などのフレームバッファ内に保存され得る。このフレームバッファは、メモリ１７２内に物理的に配置され得る。
【００２７】
工程２３０において、ラスター画像処理（ＲＩＰ）モジュールは、ディスプレイリスト２２５を処理し、ラスター化された同等物をフレームバッファ２５０内に生成し得る。いくつかの実施形態において、ラスター画像処理は、プリンタ１７０によって行われ得る。例えば、ラスター画像処理は、プリンタ１７０により、ＣＰＵ１７６、ＡＳＩＣ／ＦＰＧＡ１７８、メモリ１７２および／または二次記憶装置１７３のうちの一以上を用いて行われ得る。ラスター画像処理は、プリンタ１７０により、ソフトウェア、ファームウェアおよび／または専用ハードウェア（例えば、ＡＳＩＣ／ＦＰＧＡ１７８）の何らかの組み合わせを用いて行われ得る。フレームバッファ３５０は、印刷エンジン１７７による印刷媒体上への印刷に適した形態で、印刷オブジェクトの表現を保持し得る。
【００２８】
いくつかの実施形態において、フレームバッファ２５０中のデータは、工程２６０において後処理に供され得る。例えば、ハーフトニング、トラッピングなどの多様な操作を、フレームバッファ２５０中のデータに対して実行することができる。これらの操作の結果、フレームバッファ中のデータは改変され、その結果、後処理されたフレームバッファ２６５が得られる。その後、後処理されたフレームバッファ２６５は、工程２７０において任意のさらなる処理に供され得る。例えば、印刷エンジン１７７は、後処理されたフレームバッファ２６５中における、ラスター化されかつ後処理されたデータを処理し、紙などの印刷媒体上のページに対する印刷可能な画像を形成し得る。
【００２９】
図３は、色情報オブジェクトを示すスプレッドシートセルに対する従来の例示的ＯＯＸＭＬセルフォーマット仕様およびオブジェクトマッピングを示す。図３に示すように、例示的スプレッドシート３１０は、セル３１２を含む。セル３１２は、そのロケーション「Ｄ２」（スプレッドシートの列Ｄ／行２）と、ストリング「Ｑ１」で与えられるスプレッドシートセルデータ３１８とによって特定される。１つのセルは、行および列の交点におけるそのロケーションにより、指定することができる。セルは、データを保持することができ、例えば、数値またはテキスト書式設定、アライメント、フォント、色、塗りつぶしおよび境界などの、複数の特性を有し得る。図３に示すように、スプレッドシートセル３１２は、「Ｑ１」で与えられるデータ３１８を有する。
【００３０】
セル３１２そのものは、セル参照３２２が「Ｄ２」であることを示すワークシートＸＭＬ記述３２０内の「ｃ」集合によって表現され得る。例示的セル３１２はまた、値ｓ＝「７」のスタイル識別子３２５（属性「ｓ」）と、データタイプ（属性ｔ）とを示し得る。これは、セル３１２が、ｔ＝「ｓ」によって表される「ストリング」タイプのデータを保持していることを示している。セル値属性＜ｖ＞３２１がストリングに対する数であるのかまたはインデックスであるのかを決定するために、セルのデータタイプが調査され得る。セルデータタイプがストリングを示す場合、セルのデータタイプはインデックスであり、数値ではない。図３に示すように、セル値インデックス３２１は、ゼロベースのインデックス共有型ストリング表３３０のインデックスであり、セル３１２のコンテンツのロケーションを示す。セル値インデックス３２１の値は「０」であり、これは、セル値インデックス３２１が共有型ストリング表３３０における最初のエントリであることを示し、セル値インデックス３２１は、「Ｑ１」と示されているセルデータ３３８にマップされている。
【００３１】
スプレッドシート中のオブジェクトに対し、スタイルが適用され得る。スタイル、テーマおよび直接書式設定を用いて、セル、表、セル範囲、ピボットテーブル、チャートおよび形状がフォーマットされ得る。スタイルは、名前付き書式設定要素の集合として見られ得る。スタイルにより、色、フォント、および形状効果を直接指定することができ、あるいは、テーマ定義を参照することで、これらの要素を間接的に参照することもできる。テーマは、１組の色、フォント情報、および形状への効果を定義する。スタイルまたは書式設定要素が、その色、フォントまたは効果をテーマ参照によって定義している場合、新規テーマが取り上げられると、当該書式設定要素についての全ての色、フォントおよび効果が切り替えられ得る。
【００３２】
図３に示すように、スプレッドシート３１０中のセル３１２は、ワークシートＸＭＬ３２０において参照されている名前付きスタイル３２５を用いている。名前付きスタイル３２５の属性値であるｓ＝「７」がワークシートＸＭＬ３２０において参照されているが、これは、名前付きスタイル３２５からｃｅｌｌＸｆｓ中の８番目の＜ｘｆ＞定義３４５への破線によって示すように、ｃｅｌｌＸｆｓまたはセル固有フォーマット３４０の８番目（またはゼロベースで７番目）の＜ｘｆ＞定義３４５が、セル３１２についての直接的セル固有書式設定情報を保持していることを示す。セルスタイル記録（＜ｘｆ＞）は、セルの直接的書式設定について、全てのセル固有書式設定（例えば、数フォーマット、フォント情報、境界および塗りつぶし）を統括する。ｃｅｌｌＸｆｓまたはセル固有フォーマット３４０は、セル３１２についての直接的書式設定要素を指定する。ｃｅｌｌＸｆｓ３４０はまた、属性値ｆｏｎｔＩｄ３４７が４であることも示す。
【００３３】
図３に示すように、ｃｅｌｌＸｆｓオブジェクト４４０は、セル固有フォーマット属性の値を含むセル固有書式設定情報を保持する。ｃｅｌｌＸｆｓオブジェクト４４０は、ｆｏｎｔＩｄ４４７の値を保持する。ｆｏｎｔＩｄ４４７の値は、フォントプロパティを保持するフォント表オブジェクト４２０中の（ゼロベースの）記録数を示す。フォントプロパティは、ｆｏｎｔＩｄ４４７からフォント表オブジェクト４２０への実線によって示される。加えて、ｃｅｌｌＸｆｓオブジェクト４４０はまた、塗りつぶし（ｆｉｌｌＩｄ）および境界(ｂｏｒｄｅｒＩｄ)の属性値も保持する。これらの属性値はまた、それぞれ塗りつぶしおよび境界オブジェクト表（図示せず）の記録に対するインデックスでもある。
【００３４】
フォント表オブジェクト４２０は、ワークブックにおいて用いられる多様なフォントの特性に関する記録を保持する。ワークブックは、一以上のスプレッドシートの集合であり得る。属性ｆｏｎｔＩｄ４４７の値は、フォントＩｄの値に対応するフォント特性を羅列した記録を得るためのインデックス（ゼロベースの）として用いられ得る。フォント表オブジェクト４２０中の記録はまた、インデックスｃｏｌｏｒＩｄ４２６を用いてフォントの色を指定することもでき、このインデックスｃｏｌｏｒＩｄ４２６は、色表オブジェクト４７０中の記録に対するゼロベースのインデックスであり得る。
【００３５】
フォントＸＭＬスタイルシート３５０に示すように、フォント色は、多様な様式で指定することができる。例えば、カスタム色の赤（Ｒ）緑（Ｇ）青（Ｂ）（「ＲＧＢ」）値は、フォント集合３５１によって示すように、「color rgb=”FFFF0000"」で指定され得る。フォント集合３５２内に示すように色を自動で指定することもでき、この場合、フォント色は、背景色に基づいて自動的に適用される。
【００３６】
加えて、フォント色は、フォント集合３５３中に示される命令文「color indexed=”64"」によって示されるように、色についてのレガシーインデックス付与スキームに対するインデックス値として表現され得る。インデックス値が用いられる場合、ｉｄｘＣｏｌｏｒ４７８の属性を用いて、インデックス色表オブジェクト４８０中のｒｇｂ色値をルックアップする。インデックス色表オブジェクト４８０は、ＲＧＢ色値の配列を含む。このＲＧＢ色値の配列は、色インデックスｉｄｘ４８８を用いてルックアップされ得る。さらに、色もまた、テーマインデックスを用いて指定され得る。例えば、フォント集合３５４に示すように、色テーマは、「color theme=”1"」という命令文によって指定され得、ここで、「１」は、インデックスの値である。テーマインデックス値が用いられる場合、属性＿ｉｄＴｈｅｍｅ４７９を用いて、テーマ色表オブジェクト４９０中のｒｇｂ色値をルックアップする。テーマ色表オブジェクト４８０は、ＲＧＢ色値の配列を含む。このＲＧＢ色値の配列は、テーマインデックス＿ｉｄＴｈｅｍｅ４９９を用いてルックアップされ得る。テーマ色表オブジェクト記録は、インデックス色オブジェクト表４８０中の色をさらに参照し得る点に留意されたい。さらに、フォント集合３５５および３５６に示すように、テーマ色またはカスタム色にティントが適用され得る。ティントが色に適用されると、色値が変化し得る。
【００３７】
上記の記述から明らかなように、従来のスプレッドシートオブジェクトの処理方法においては、印刷時においてオブジェクト記述に対する多様な参照が複数回横断的に行われており、このことが効率の悪さの原因になっている。例えば、ＳＭＬ記述および多様な他のＯＯＸＭＬ記述の場合、ページネーション決定が行われてレンダリング開始可能となる前に、全データがメモリにロードされることが多い。そのため、これらの表全てをメモリ内に保持する必要がある。その上、印刷されている各セルについて、当該セルのレンダリングに用いられる最終的な印刷属性を決定するために、非常に多数の表中の色属性値がルックアップされ分解される。例えば、従来の処理において、レンダリングのために１つのセルを処理する際には、色表オブジェクト４７０、インデックス色オブジェクト４８０およびテーマ色オブジェクト４９０を用いて、塗りつぶし、フォントおよび境界のための色属性値がルックアップされる。このようなルックアップは、スプレッドシート中の各セルおよびセルオブジェクトの処理が進むにつれて継続的に行われるため、印刷時において複数の表がメモリ内に保存され、これらの表は複数回ルックアップされる。そのため、メモリ使用量増加および処理非効率の原因となっている。
【００３８】
図４は、開示の実施形態による、ＯＯＸＭＬを用いて記述されたスプレッドシート中の色情報を処理する方法から得られたＯＯＸＭＬスプレッドシートセルに対する例示的オブジェクトマッピング４００を示す。いくつかの実施形態において、インデックス色表オブジェクト４８０およびテーマ色４９０中の色値は、カラーパレット表オブジェクト４５０内の記録に配置され得る。加えて、カスタム色値およびティントが適用されている色値も、色パレット表オブジェクト４５０に保存され得る。
【００３９】
いくつかの実施形態において、マッピングを確立することで、（色表オブジェクト４７０のための）ｉｄＣｏｌｏｒインデックス４７６、（インデックス色表オブジェクト４８０のための）ｉｄｘインデックス４８８、および（テーマ色表オブジェクト４９０のための）ｉｄＴｈｅｍｅインデックス４９９のうちのいずれかから、（カラーパレット表オブジェクト４５０のための）ｉｄＣｏｌｏｒインデックス４５６を決定することが可能である。その結果、例えば、フォント、境界、塗りつぶしなどのスプレッドシートオブジェクトと関連付けられた色インデックスを用いて、ＣｏｌｏｒＩｄインデックス４５６を決定することができる。ＣｏｌｏｒＩｄインデックス４５６は、当該色値を保持しているカラーパレット表オブジェクト４５０中の記録を特定する。
【００４０】
いくつかの実施形態において、カラーパレット表オブジェクト４５０中の記録は、ＲＧＢおよび／またはシアン（Ｃ）、マゼンタ（Ｍ）、黄色（Ｙ）および黒色（Ｋ）（「ＣＭＹＫ」）で色値を保持し得る。いくつかの実施形態において、色空間変換ルーチンを用いて、ＲＧＢからＣＭＹＫへの色値変換または逆方向の色値変換を行うことができる。いくつかの実施形態において、カラーパレット表オブジェクト４５０は、メモリ中にキャッシュされ、キャッシュ済みアレイまたはキャッシュ済みのカラーパレットの形態をとり得る。
【００４１】
いくつかの実施形態において、例示的オブジェクトマッピング４００は、ＯＯＸＭＬスプレッドシート文書２１５に対する言語およびオブジェクト処理工程２２０の間に生成され得る。例えば、例示的オブジェクトマッピング４００は、ＯＯＸＭＬまたはＳＭＬを用いて記述されたスプレッドシート中におけるスプレッドシートオブジェクトの色属性を処理する際に、構文解析ツールによって生成され得る。いくつかの実施形態において、例示的オブジェクトマッピング４００は、スタイルを用いたスプレッドシートオブジェクトをレンダリングするためのラスター画像処理工程２３０の間に用いられ得る。
【００４２】
図５は、開示の実施形態による、ＯＯＸＭＬを用いて記述されたスプレッドシート中の色情報を処理するための例示的方法５００のフローチャートを示す。いくつかの実施形態において、方法５００は、ＯＯＸＭＬ構文解析ツールによって行われ得る。いくつかの実施形態において、方法５００は、ＯＯＸＭＬまたはＳＭＬなどのマークアップ言語で記述されたスプレッドシートに対して行われ得る。この方法は、工程５１０において開始する。次に、工程５１２において、事前規定されたインデックス色が、カラーパレット表オブジェクト４５０に付加され得る。いくつかの実施形態において、これらの色は、インデックス色表オブジェクト４８０から付加され得る。
【００４３】
工程５１４において、第１の色または次の色がテーマ色表オブジェクト４９０から読み出され、ＲＧＢに変換され得る。工程５１６において、上記テーマ色のＲＧＢ値と、カラーパレット表オブジェクト４５０中に記録されている色値とが比較され得る。上記テーマ色のＲＧＢ値が既にカラーパレット表オブジェクト４５０内にある場合（工程５１６；Ｙ）、アルゴリズムは工程５１４に戻り、別の反復を開始する。上記テーマ色のＲＧＢ値がカラーパレット表オブジェクト４５０内に無い場合（工程５１６；Ｎ）、工程５１８において、上記テーマ色が上記キャッシュ済みのカラーパレット中の記録に付加され得る。テーマ色表オブジェクト４９０内にこれ以上記録が無い場合（工程５２０；Ｙ）、アルゴリズムは工程５２２に進む。そうではない場合、（工程５２０；Ｎ）、アルゴリズムは工程５１４に戻り、別の反復を開始する。
【００４４】
工程５２２において、色表オブジェクト４７０内の第１の記録または次の記録が読み出され得る。色タイプが「自動」（工程５２４；Ｙ）である場合、工程５３４において、背景塗りつぶし色がチェックされ得る。背景塗りつぶし色が濃い色である場合（工程５３４；Ｙ）、工程５３８において、カラーパレット表オブジェクト４５０内における記録の色値が、事前規定された白色用インデックスに設定され、アルゴリズムは工程５５２に進み得る。背景塗りつぶし色が濃い色ではない場合（工程５３４；Ｎ）、工程５３６において、カラーパレット表オブジェクト４５０内における記録の色値が、事前規定された黒色用インデックスに設定され、アルゴリズムは工程５５２に進み得る。
【００４５】
色タイプが「自動」ではない場合（工程５２４；Ｎ）、工程５２６において、色タイプをチェックして、色タイプがＲＧＢであるかを決定する。色タイプがＲＧＢである場合（工程５２６；Ｙ）、工程５４０において、提供された任意のティントがＲＧＢ値に適用され、アルゴリズムは工程５４８に進み得る。
【００４６】
色タイプがＲＧＢではない場合（工程５２６；Ｎ）、工程５２８において、色タイプをチェックして、色タイプがティントと共にテーマ付けされているかを決定する。色タイプがティントと共に「テーマ付け」されている場合（工程５２８；Ｙ）、工程５４４において、テーマ色がルックアップされ、提供されているティント全てが上記色値に適用され得る。その後、アルゴリズムは工程５４８に進み得る。
【００４７】
工程５４８において、ＲＧＢ値へのティント適用から得られた色（工程５４０において得られる）またはテーマ付き色値（工程５４４において得られる）と、カラーパレット表オブジェクト４５０内に既にある色とが比較され得る。ティント適用から得られた色がカラーパレット表オブジェクト４５０中に無い場合（工程５４８；Ｎ）、工程５５０において、この新規のティント適用色がカラーパレット表オブジェクト４５０に追加され、アルゴリズムは工程５５２に進む。
【００４８】
色タイプがティント付きテーマではない場合（工程５２８；Ｎ）、工程５３０において、色タイプをチェックして、色タイプがインデックス付きであるかを決定する。色タイプがインデックス付きではない場合（工程５３０；Ｎ）、工程５３２において、マークアップ言語仕様にエラーがあることがアルゴリズムによって示され得る。色タイプがインデックス付きである場合（工程５２８；Ｙ）、アルゴリズムは工程５５２に進む。
【００４９】
工程５５２において、パレットインデックスによって表現される色と、インデックス付き色、テーマ付き色および色表のインデックスとの間でマッピングが確立され得る。このマッピングを用いて、インデックス付き色、テーマ付き色または色表中の色のインデックスに対応するカラーパレット表オブジェクト記録のインデックスを決定することができる。そのため、このようなパレットインデックスのマッピングを用いて、カラーパレット表オブジェクト中の記録について、インデックス付き色インデックス４８８、テーマ色インデックス４９９または色表インデックスｉｄＣｏｌｏｒ４７６が提供された場合のインデックスｉｄＣｏｌｏｒ４５６を決定することができる。その後、アルゴリズムは工程５５４に進む。
【００５０】
工程５５４において、色表オブジェクト４７０中にこれ以上記録が無い場合（工程５５４；Ｙ）、アルゴリズムは工程５５６において終了し得る。色表オブジェクト４７０内にさらなる記録が有る場合（工程５５４；Ｎ）、アルゴリズムは工程５２２に進んで、別の反復を開始する。
【００５１】
色値を示すための例示的方法５００においてＲＧＢ値を用いてきたが、これらの色値は、多様な他の色空間（例えば、ＣＭＹＫ）を用いて表され得る。従って、いくつかの実施形態において、例示的アルゴリズム５００は、入力色空間（例えば、ＲＧＢ）から出力色空間（例えば、ＣＭＹＫ）への色値の色空間変換を行い、上記色値を上記出力色空間内に保存し得る。いくつかの実施形態において、方法５００は、入力色空間および出力色空間どちらの色値も保存し得る。いくつかの実施形態において、カラーパレット表オブジェクト４５０の生成およびポピュレートの後、色表オブジェクト４７０、インデックス色表オブジェクト４８０およびテーマ色表オブジェクト４９０が消去可能となり、これにより、メモリリソースが解放され得る。
【００５２】
本明細書および開示の実施形態の実施を鑑みれば、当業者にとって他の実施方法が明らかである。本明細書および例はひとえに例示的なものとしてみなされるべきであり、その真なる範囲および精神は以下の特許請求の範囲によって示されることが企図される。
【図１】
0005639492.tif 000002
【図２】
0005639492.tif 000003
【図３】
0005639492.tif 000004
【図４】
0005639492.tif 000005
【図５】
0005639492.tif 000006