説明

正しいZオーダーでのデータのレンダリング

【課題】マークアップ言語で符号化された、画像とテキストを含むページを含む文書を受け取りコンピュータで処理する方法の提供。
【解決手段】画像に対応する第1のハイレベルグラフィックス(HLG)オブジェクトと、第1のHLGオブジェクトの0より小さい第1のz−indexを指定する第1のHLGオブジェクトを作成し、入力ファイル内に、第1のHLGオブジェクトを指すポインターを含む第1のエントリーを生成して、入力ファイル内に、テキストに対応する第2のエントリーを生成し、植字プログラムと入力ファイルとを用いて出力ファイルを生成、第1のz−indexが0でないとき、出力ファイルを構文解析してページを識別し、ページのアイテムハンドルリスト(IL)を作成し、第1のエントリーに対応するとともにポインターを含む第1のアイテムハンドルをILに追加し、出力ファイルおよびILを用いてページのディスプレイリストを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は植字プログラムをマークアップ言語とともに用いることに関する。
【背景技術】
【0002】
文書処理ソフトウェアは、ユーザが文書を都合よく閲覧し、編集し、処理し、記憶し、印刷することを可能にする。文書は通常、マークアップ言語形式で記述される。マークアップ言語形式は、文書内のコンテンツ(テキストおよび画像を含む)、コンテンツの位置、ならびにコンテンツの書式(色およびフォントを含む)を記述する。マークアップ言語は通常、文書がどのようにしてディスプレイ上にレンダリングされ、または印刷されるべきかに関して十分な情報を提供しない。
【0003】
マークアップ言語を用いて記述された文書がレンダリングされる際には、その文書の表示または印刷のために文書内のコンテンツをどのように配置すべきか決定するのに、植字プログラムが用いられ得る。例えば、文書を表示または印刷する前に文書を活字に組み、特に、印刷可能なデータの画面またはページ上での書式および位置を指定するのに、TeX等の植字プログラムが用いられ得る。より具体的には、植字プログラムは、入力として書式なしのテキストおよびコマンドを取り込み、出力として書式付きの(レイアウトされた)テキストを生じさせる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の植字プログラムは、Office Open eXtensible Markup Language(「OOXML」)等のマークアップ言語を用いて定義されたすべてのアイテムを処理できるわけではない。例えば植字プログラムは、ベクトルグラフィックスおよび/または画像データを処理する機能を含まない場合がある。
【課題を解決するための手段】
【0005】
概括すると、一形態において、本発明は、プロセッサーに方法を実行させるためのコンピューター可読プログラムコードが含まれているコンピューター可読媒体に関する。前記方法は、マークアップ言語で符号化された文書を受け取る工程と、前記文書を構文解析して画像およびテキストを識別する工程と、前記画像に対応する第1のハイレベルグラフィックス(HLG)オブジェクトであり、前記第1のHLGオブジェクトの0より小さい第1のz−indexを指定する前記第1のHLGオブジェクトを作成する工程と、植字プログラム入力ファイル内に、前記第1のHLGオブジェクトを指し示すポインターを含む第1のエントリーを生成する工程と、前記植字プログラム入力ファイル内に、前記テキストに対応する第2のエントリーを生成する工程と、植字プログラムおよび前記植字プログラム入力ファイルを用いて植字プログラム出力ファイルを生成する工程と、前記第1のHLGオブジェクトの前記z−indexが0ではないと判定する工程と、前記判定に基づき、前記植字プログラム出力ファイルを構文解析して、前記文書の、前記テキストおよび前記第1のHLGオブジェクトが位置するページを識別し、前記ページについてのアイテムハンドル(ItemHandle)リストを作成し、前記第1のエントリーに対応するとともに、前記第1のHLGオブジェクトを指し示す前記ポインターを含む第1のアイテムハンドルを、前記アイテムハンドルリストに追加し、前記植字プログラム出力ファイルおよび前記アイテムハンドルリストを用いて前記ページについてのディスプレイリストを生成する工程と、を含む。
【0006】
概括すると、一形態において、本発明は、プリンターに関する。前記プリンターは、プロセッサーと、前記プロセッサーによって実行されるとプリンターに方法を実行させるコンピューター可読プログラムコードを含むメモリーであり、前記方法が、マークアップ言語で符号化された文書についての印刷ジョブを受け取る工程と、前記文書を構文解析して画像およびテキストを識別する工程と、前記画像に対応する第1のハイレベルグラフィックス(HLG)オブジェクトであり、前記第1のHLGオブジェクトの0より小さい第1のz−indexを指定する前記第1のHLGオブジェクトを作成する工程と、植字プログラム入力ファイル内に、前記第1のHLGオブジェクトを指し示すポインターを含む第1のエントリーを生成する工程と、前記植字プログラム入力ファイル内に、前記テキストに対応する第2のエントリーを生成する工程と、植字プログラムおよび前記植字プログラム入力ファイルを用いて植字プログラム出力ファイルを生成する工程と、前記第1のHLGオブジェクトの前記z−indexが0ではないと判定する工程と、前記判定に基づき、前記植字プログラム出力ファイルを構文解析して、前記印刷ジョブ中の、前記テキストおよび前記第1のHLGオブジェクトが位置するページを識別し、前記ページについてのアイテムハンドルリストを作成し、前記第1のエントリーに対応するとともに、前記第1のHLGオブジェクトを指し示す前記ポインターを含む第1のアイテムハンドルを、前記アイテムハンドルリストに追加し、前記植字プログラム出力ファイルおよび前記アイテムハンドルリストを用いて前記ページについてのディスプレイリストを生成する工程と、
を含む前記メモリーと、前記印刷可能な書式の文書を用いて前記文書を印刷するように構成された印刷エンジンと、を備える。
【0007】
概括すると、一形態において、本発明は、プロセッサーに方法を実行させるためのコンピューター可読プログラムコードが含まれているコンピューター可読媒体に関する。前記方法は、マークアップ言語で符号化された文書を受け取る工程と、前記文書を構文解析して画像およびテキストを識別する工程と、前記画像に対応する第1のハイレベルグラフィックス(HLG)オブジェクトであり、前記第1のHLGオブジェクトの0より小さい第1のz−indexを指定する前記第1のHLGオブジェクトを作成する工程と、植字プログラム入力ファイル内に、前記第1のHLGオブジェクトを指し示すポインターを含む第1のエントリーを生成する工程と、前記植字プログラム入力ファイル内に、前記テキストに対応する第2のエントリーを生成する工程と、植字プログラムおよび前記植字プログラム入力ファイルを用いて第1の植字プログラム出力ファイルを生成する工程と、前記第1の植字プログラム出力ファイルを構文解析して第1の構文解析されたデータを生成する工程と、前記第1の構文解析されたデータを用いて、前記文書内のページについてのアイテムハンドルリストを作成し、前記第1のエントリーに対応するとともに、前記第1のHLGオブジェクトを指し示す前記ポインターを含む第1のアイテムハンドルを、前記アイテムハンドルリストに追加する工程と、植字プログラムおよび前記植字プログラム入力ファイルを用いて第2の植字プログラム出力ファイルを生成する工程と、前記第2の植字プログラム出力ファイルを構文解析して第2の構文解析されたデータを生成する工程と、前記第2の構文解析されたデータおよび前記アイテムハンドルリストを用いて前記第1のエントリーについての第1のディスプレイリストエントリーを生成する工程と、前記第1のディスプレイリストエントリーを生成した後で、前記第2の構文解析されたデータを用いて前記第2のエントリーについての第2のディスプレイリストエントリーを生成する工程と、
を含む。
【0008】
本発明の他の形態は、以下の説明および添付の特許請求の範囲から明らかであろう。
【図面の簡単な説明】
【0009】
【図1】本発明の実施形態によるコンピューターシステムを示す図である。
【図2】本発明の実施形態によるプリンターを示す図である。
【図3】本発明の実施形態による方法を示す図である。
【図4A】本発明の実施形態による方法を示す図である。
【図4B】本発明の実施形態による方法を示す図である。
【図4C】本発明の実施形態による方法を示す図である。
【図4D】本発明の実施形態による方法を示す図である。
【図4E】本発明の実施形態による方法を示す図である。
【図5】本発明の実施形態による例を示す図である。
【図6】本発明の実施形態による例を示す図である。
【発明を実施するための形態】
【0010】
次に、本発明の具体的実施形態を、添付の図を参照して詳細に説明する。それぞれの図における類似の要素は、一貫性を保つために類似の参照番号で表す。
【0011】
以下の本発明の実施形態の詳細な説明においては、本発明がより完全に理解されるように、多くの具体的詳細が示される。しかし、本発明はこれらの具体的詳細なしでも実施され得ることが当業者には明らかであろう。場合によっては、説明を不必要に複雑にすることのないように、周知の特徴を詳細に説明しないこともある。
【0012】
概括すると、本発明の実施形態は、マークアップ言語によって指定されるすべてのアイテムをネイティブにサポートする機能をもたない植字プログラムをマークアップ言語とともに用いることに関する。より具体的には、本発明の実施形態は正しいZオーダーでディスプレイリストを生成することに関する。本発明の実施形態では、植字プログラムがZオーダーの処理をネイティブにサポートするのではなく、マークアップ言語が、文書処理プログラムが文書内のアイテムのz−indexを設定することを可能にする。
【0013】
本発明の一実施形態において、限定はしないがMicrosoft(登録商標)Word等の文書処理プログラムによって生成される文書は、テキスト、画像、ベクトルグラフィックス等のアイテムを含む。Microsoftは、米国ワシントン州シアトル所在のMicrosoft Corporationの登録商標である。本発明の一実施形態において、文書処理プログラムは文書をOOXML等のマークアップ言語形式で表現する。さらに、本発明の一実施形態では、マークアップ言語形式の文書を処理すると、結果として文書内の画像またはベクトルグラフィックスに対応する一または複数のハイレベルグラフィックス(HLG:High−Level Graphics)オブジェクトが作成される。
【0014】
本発明の一実施形態において、文書上の各アイテム(すなわち、テキスト、画像、またはベクトルグラフィックス)は、x座標およびy座標を用いて位置決めされ得る。さらに、(文書内の画像またはベクトルグラフィックスに対応する)各HLGオブジェクトは、さらに別の座標であるz−indexを用いて位置決めされ得る。z−indexは、HLGオブジェクトが本文の背面にあるか、本文と揃っているか、それとも本文の前面にあるか指定する。言い換えると、文書内の本文(例えば、テキストボックスに含まれないテキスト等)は、文書のインライン面(in−line plane)上に位置する。さらに、HLGオブジェクトは、(i)例えば背景画像としてインライン面の背面に位置していてもよく、(ii)例えばテキストと並んで配置されるテキストとしてインライン面上に位置していてもよく、(iii)例えば重ね合わせ画像としてインライン面の前面に位置していてもよい。
【0015】
本発明の一実施形態では、z−index<0はHLGオブジェクトがインライン面の背面に位置することを示し、z−index=0はHLGオブジェクトがインライン面に位置することを示し、z−index>0はHLGオブジェクトがインライン面の前面に位置することを示す。本発明の一または複数の実施形態では、z−indexは、整数または実数として指定され得る。所与のHLGオブジェクトがインライン面の背面にあるか、インライン面にあるか、それともインライン面の前面にあるか指示するのに他の規則が用いられてもよいことを当業者は理解するであろう。図5に、前述の様々な面にHLGオブジェクトを有するページの一例を示す。
【0016】
図1に本発明の実施形態によるコンピューターシステムを示す。図1に示すように、コンピューターシステム(100)は、一または複数のコンピューティングプロセッサー(102)と、関連付けられたメモリー(104)(ランダム・アクセス・メモリー(RAM)、キャッシュメモリー、フラッシュメモリー等)と、内部および/または外部記憶装置(106)(ハードディスク、コンパクト・ディスク・ドライブやデジタル・ビデオ・ディスク(DVD)ドライブ等の光ドライブ、フラッシュ・メモリー・スティック、ユニバーサル・シリアル・バス(USB)ドライブ、スマートカード等)と、今日のコンピューターに典型的な他の多数の要素および機能(不図示)と、を含む。またシステム(100)は、キーボード(108)、(モニター(112)において実行され得る)タッチスクリーン、マウス(110)、またはマイクロフォン(不図示)等の入力手段も含み得る。さらに、コンピューターシステム(100)は、モニター(112)(液晶ディスプレイ(LCD)、プラズマディスプレイ、陰極線管(CRT)モニター等)や、プリンター(116)等の出力手段も含み得る。コンピューターシステム(100)は、有線または無線のネットワークインターフェース接続(不図示)を介してネットワーク(114)(ローカル・エリア・ネットワーク(LAN)、インターネット等の広域ネットワーク(WAN)、他の任意の種類のネットワーク等)に接続され得る。図1に示すように、コンピューターシステムは、ネットワーク(114)を用いてプリンター(116)に接続するように構成される。これに加えて、または代替として、コンピューターシステムは、限定はしないが、Bluetooth(登録商標)、有線接続、ピア・ツー・ピア・ネットワーク等の直接の有線または無線の通信機構を用いて、プリンターと直接通信する機能を含んでいてもよい。Bluetoothは米国ワシントン州ベルビュー所在のBluetooth SIG,Inc.の登録商標である。
【0017】
多種多様なコンピューターシステムが存在し、前述の入力および出力の手段は他の形も取り得ることを当業者は理解するであろう。一般には、コンピューターシステム(100)は、本発明の実施形態を実施するのに必要な少なくとも最小限の処理、入力、および/または出力の手段を含む。
【0018】
図2に本発明の実施形態によるプリンターを示す。プリンター(200)は、ファームウェア(202)と、メモリー(204)と、(一または複数の)特定用途向け集積回路/フィールド・プログラマブル・ゲート・アレイ(FPGA)(206)と、2次記憶装置(208)と、(一または複数の)入力/出力インターフェース(210)と、(一または複数の)プロセッサー(212)と、印刷エンジン(214)とを含む。以下で、これらの各構成要素について説明する。
【0019】
本発明の一実施形態では、ファームウェア(202)は、プロセッサー(212)および/またはASIC/FPGA(206)が実行するためのコンピューター可読プログラムコードを含み得る。本発明の一実施形態では、コンピューター可読プログラムコードは、図3および図4A〜4Dに示すステップのうちの一または複数を実行するための命令を含む。加えて、コンピューター可読プログラムコードは、プリンターを起動し、シャットダウンするための命令、ならびにプリンター(200)の外部の装置との間でデータを送受信するための命令も含み得る。
【0020】
本発明の一実施形態では、メモリー(204)は、揮発性メモリー(ランダム・アクセス・メモリー(RAM)、キャッシュメモリー等)および/または不揮発性メモリー(フラッシュメモリー等)を含み得る。メモリーは、図3および図4A〜4Dに示す一または複数の方法ステップの実行時に生成されるデータを記憶するように構成され得る。
【0021】
本発明の一実施形態では、2次記憶装置(208)は、不揮発性メモリー(フラッシュメモリー等)および/または外部記憶装置(ハードディスク等)に対応する。2次記憶装置(208)は、図3および図4A〜4Dに示す一または複数の方法ステップの実行時に生成されるデータを含み得る。
【0022】
本発明の一実施形態では、(一または複数の)入力/出力インターフェース(210)は、プリンターの外部の装置にデータを送信し、かつ/またはプリンターの外部の装置からデータを受信するように構成される。入力/出力インターフェースの例には、限定はしないが、無線ネットワークインターフェース、有線ネットワークインターフェース、シリアルインターフェース、ユニバーサル・シリアル・バス(USB)インターフェース、Bluetooth(登録商標)インターフェース、パラレルインターフェース等が含まれる。
【0023】
本発明の一実施形態では、(一または複数の)プロセッサー(212)は、ファームウェア(202)と、2次記憶装置があれば2次記憶装置とに記憶されたコンピューター可読プログラムコードを実行するように構成される。
【0024】
任意選択で、プリンターはASICおよび/またはFPGA(206)を含んでいてもよい。ASICおよび/またはFPGAは、コンピューター可読プログラムコードの実行を円滑に行わせる専用ハードウェアを含み得る。代替として、またはこれに加えて、ASICおよび/またはFPGAは、図3および図4A〜4Dに示す方法ステップのうちの一または複数を実行するように構成されてもよい。これらの実施形態では、コンピューター可読プログラムコードは、ASICおよび/またはFPGAの構成が対象とする図3および図4A〜4Dに示す方法ステップのうちの一または複数を、ASICおよび/またはFPGAに実行させるための適切なメソッド呼出しを含み得る。
【0025】
本発明の一実施形態では、印刷エンジン(214)は、印刷文書を生成するように構成される。したがって印刷エンジンは、トナーおよび/またはインクを紙やプラスチック等の印刷媒体に付着させる機能を含み得る。プリンター(200)は、レーザープリンター、インクジェットプリンター、またはコピー機として実施され得る。
【0026】
図3および図4A〜4Eに、本発明の一または複数の実施形態によるフローチャートを示す。これらのフローチャートにおける様々なステップは順次に提示され、記述されているが、これらステップのうちの一部または全部が異なる順序で実行されたり、組み合わされたり、もしくは省略されたりしてもよく、これらのステップの一部または全部が並列に実行されてもよいことを当業者は理解するであろう。
【0027】
図3を参照すると、ステップ300では、プリンターにより印刷ジョブが受け取られる。この印刷ジョブはマークアップ言語(OOXML等)で符号化された文書についてのものである。ステップ302では、文書に対応するマークアップ言語データが処理されてディスプレイリストが生成される。本発明の一実施形態では、ディスプレイリストは、文書内のページ上のコンテンツをラスタ化するのに必要とされるすべての情報を含む。前述の情報の例には、限定はしないが、ベクトルグラフィックスの形状を記述する情報、画像データを記述する情報、色や不透明度等の、テキスト、画像、およびベクトルグラフィックスの属性を記述する情報等が含まれ得る。ステップ302の実施形態については、以下で図4A〜4Eを参照して説明する。
【0028】
ステップ304では、文書についてのラスタ化データがディスプレイリストを用いて生成される。ラスタ化データの非限定的例には、空間的にマップされた画素の配列であるピックスマップと、空間的にマップされたビットの配列であるビットマップとが含まれる。本発明の一実施形態では、ラスタ化データの生成は、典型的にはポリゴンを用いて記述される3次元画面を取得し、その3次元画面を2次元表面上にレンダリングすることによって実現され得る。そのような場合、ポリゴンは、三角形の集合体として表現され得る。三角形は、3次元空間おいて3つの頂点により表現され得る。1つの頂点は、1点、1辺の終点、またはポリゴンの2辺が交わる角を規定する。このように、ラスタ化により、頂点の軌跡(Stream)を、対応する2次元の点に変換し、変換された2次元の三角形を塗りつぶすことができる。ラスタ化時に、ラスタ化されたデータはプリンター上のメモリーに記憶され得る。ステップ306では、任意選択で後処理が行われ得る。例えば、ラスタ化データに対して、ハーフトーニング、トラッピング等の様々な操作が行われ得る。ステップ308では、ラスタ化データは、印刷エンジンにより、文書の画像が付着された印刷媒体(すなわちハードコピー文書)を生成するのに用いられる。
【0029】
図4A〜4Eには、図3のステップ302の様々な実施形態が説明されている。図4Aを参照すると、ステップ400では、マークアップ言語データが構文解析されて、テキスト、ベクトルグラフィックス、画像等の文書内のアイテムが識別される。
【0030】
ステップ402では、処理すべきアイテムが選択される。ステップ404では、そのアイテムがベクトルグラフィックスまたは画像に対応するか否かについての判定が行われる。アイテムがベクトルグラフィックスまたは画像に対応する場合、プロセスはステップ406に進み、そうでない場合、プロセスはステップ410に進む。ステップ406では、ベクトルグラフィックスまたは画像に対応するHLGオブジェクトが作成される。ステップ408では、ステップ400のマークアップ言語データの構文解析から得られた情報を用いて、HLGオブジェクトのz−indexが設定される。次いでプロセスはステップ410に進む。
【0031】
ステップ410では、植字プログラム入力ファイル内に、ステップ402で識別されたアイテムについてのエントリーが生成される。本発明の一実施形態では、植字プログラムはTeXである。本発明は他の植字プログラムをカバーするようにも拡張され得ることを当業者は理解するであろう。ベクトルグラフィックスまたは画像に対応するアイテムについて、生成されるエントリーは、(ステップ406で生成された)HLGオブジェクトを指し示すポインターを含む。本発明の一実施形態では、HLGオブジェクトに対応するアイテムは、植字プログラム・レイアウト・エンジンにより無視されるコマンドにカプセル化される。例えば、植字プログラムがTeXである場合には、HLGオブジェクトに対応するアイテムは、「\special」コマンドを用いてカプセル化され得る。この実施形態では、TeXレイアウトエンジンは「\special」コマンドを用いてカプセル化されたすべてのアイテムを無視する。図4Aを続けると、ステップ412では、処理すべき別のアイテムがあるか否かについての判定が行われる。処理すべき別のアイテムがある場合、プロセスはステップ402に進み、そうでない場合、プロセスは図4Bのステップ413に進む。
【0032】
この段階では、植字プログラム入力ファイルが生成されている。植字プログラム入力ファイルは、図4B〜4Eに示すように、対応するディスプレイリストを生成するために引き続き処理される。
【0033】
図4Bを参照すると、ステップ413では、植字プログラム入力ファイルは植字プログラム・レイアウト・エンジン(TeXレイアウトエンジン等)に送られる。ステップ414で、植字プログラム・レイアウト・エンジンは、植字プログラム入力ファイルを用いて植字プログラム出力ファイルを生成する。植字プログラム出力ファイルは、限定はしないが、HLGオブジェクトを指し示すポインター、(対応するバウンディングボックス情報を用いて決定される)HLGオブジェクトのレイアウト、文書のインライン面上のテキスト、テキストのフォント、テキストの色、ならびに先頭ページおよび末尾ページの標識を含む。本発明の一実施形態では、植字プログラム出力ファイルは、デバイス非依存ファイル形式(DVI)である。
【0034】
ステップ416では、植字プログラム入力ファイル内のすべてのHLGオブジェクトがz−index=0であるz−indexを有するか否かについての判定が行われる。植字プログラム入力ファイル内のすべてのHLGオブジェクトがz−index=0であるz−indexを有する場合、プロセスはステップ418に進み、そうでない場合、プロセスはステップ428に進む。
【0035】
ステップ418では、植字プログラム出力ファイルの処理が開始され、植字プログラム出力ファイルが構文解析されて植字プログラム出力ファイル内のエントリーが取得され、続いてそのうちの1つのエントリーが選択される。ステップ420では、エントリーがHLGオブジェクトに対応するか否かについての判定が行われる。エントリーがHLGオブジェクトに対応しない場合には、プロセスはステップ422に進み、そうでない場合には、プロセスはステップ424に進む。
【0036】
ステップ422では、エントリーが処理されて、対応するエントリーがディスプレイリスト内に生成される。次いでプロセスはステップ426に進む。ステップ424では、エントリーが処理されて、対応するエントリーがディスプレイリスト内に生成される。次いでプロセスはステップ426に進む。本発明の一実施形態では、処理ステップ424は、(i)HLGオブジェクトが(ベクトルグラフィックスではなく)画像についてのものである場合には、HLGオブジェクト内のネイティブ画像データへの参照を用い、(ii)グラフィックスライブラリーを呼び出して、ディスプレイリスト上に配置するための適切なグラフィックスプリミティブを生成することを含み得る。
【0037】
ステップ426では、処理すべき別のエントリーが植字プログラム出力ファイル内にあるか否かについての判定が行われる。処理すべき別のエントリーが植字プログラム出力ファイル内にある場合には、プロセスはステップ418に進み、そこで別のエントリーが選択され、そうでない場合には、プロセスは終了する。ステップ428では、ページごとにHLGオブジェクト記録が行われて、印刷ジョブ内のページごとのアイテムハンドル(ItemHandle)リストが生成される。ステップ428については図4Cに詳細に説明されている。ステップ430では、植字プログラム出力ファイルと、ステップ428で生成されたアイテムハンドルリストとを用いてディスプレイリストが生成される。ステップ430については図4Dおよび図4Eに詳細に説明されている。
【0038】
図4Cを参照すると、ステップ432の前に、植字プログラム出力ファイルの構文解析が開始されて一連のエントリーが生成される。ステップ432では、ページの先頭に対応する(植字プログラム出力ファイルの構文解析であるプロセスから出力された)エントリーが受け取られる。ステップ434では、そのページについてのアイテムハンドルリストが作成される。ステップ436では、そのページからの(植字プログラム出力ファイルの構文解析であるプロセスから出力された)エントリーが受け取られる。ステップ438では、そのエントリーがページの末尾に対応するか否かについての判定が行われる。エントリーがページの末尾に対応する場合、プロセスはステップ444に進み、そうでない場合、プロセスはステップ440に進む。
【0039】
ステップ440では、エントリーがHLGオブジェクトに対応するか否かについての判定が行われる。アイテムがHLGオブジェクトに対応する場合、プロセスはステップ442に進み、そうでない場合、プロセスはステップ436に進む。
【0040】
ステップ442では、HLGオブジェクトのアイテムハンドルが、ステップ434で作成されたページについてのアイテムハンドルリストに追加される。HLGオブジェクトのアイテムハンドルは、HLGオブジェクトを指し示すポインターとページ上でのHLGの位置とを含む。ステップ444では、植字プログラム出力ファイル内に別の未処理のエントリーが残っているか否かについての判定が行われる。植字プログラム出力ファイル内に別の未処理のエントリーが残っている場合、プロセスはステップ432に進み、そうでない場合、プロセスは終了する。
【0041】
図4Dを参照すると、ステップ446の前に、植字プログラム出力ファイルの構文解析が開始されて一連のエントリーが生成される。植字プログラム出力ファイルはステップ414で生成される植字プログラム出力ファイルに対応していてもよく、植字プログラムが植字プログラム入力ファイルを再処理して新しい植字プログラム出力ファイルを生成することにより生成される植字プログラム出力ファイルに対応していてもよい。
【0042】
ステップ446を参照すると、ページの先頭に対応する(植字プログラム出力ファイルの構文解析であるプロセスから出力された)エントリーが受け取られる。ステップ448では、ステップ446で識別されたページについてのアイテムハンドルリストが取得される。ステップ450では、ステップ448で取得されたアイテムハンドルリスト内の、z−index<0であるz−indexを有するすべてのアイテムハンドルが識別される。
【0043】
ステップ452では、ステップ450で識別されたすべてのアイテムハンドルが処理されて、ディスプレイリスト上に適切なエントリーが生成される。本発明の一実施形態では、アイテムハンドルの処理は、アイテムハンドルで指定されたポインターを用いてHLGオブジェクトを取得すること、および適切なグラフィックス・ライブラリー・ルーチンを呼び出して対応するエントリーをディスプレイリスト上に生成することを含む。ステップ452が完了した後には、インライン面の背面にあるすべてのHLGオブジェクトが処理され、ディスプレイリストに追加されている。次いでプロセスは引き続き図4Eの各ステップを実行する。
【0044】
図4Eを参照すると、図4Eには、植字プログラム出力ファイル内のインライン面上のテキストおよびHLGオブジェクトの処理が詳述されている。ステップ470を見ると、ステップ470では、ページからの(植字プログラム出力ファイルの構文解析であるプロセスから出力された)エントリーが受け取られる。ステップ472では、そのエントリーがページの末尾に対応するか否かについての判定が行われる。エントリーがページの末尾に対応する場合、プロセスは終了に進み、そうでない場合、プロセスはステップ474に進む。
【0045】
ステップ474では、エントリーがHLGオブジェクトに対応するか否かについての判定が行われる。アイテムがHLGオブジェクトに対応する場合、プロセスはステップ476に進み、そうでない場合、プロセスはステップ480に進む。ステップ476では、HLGオブジェクトのz−indexが0であるか否かについての判定が行われる。HLGオブジェクトのz−indexが0である場合、プロセスはステップ478に進み、そうでない場合、プロセスはステップ470に進む。ステップ478では、HLGオブジェクトが処理されてディスプレイリスト上に適切なエントリーが生成される。本発明の一実施形態では、HLGオブジェクトの処理は、アイテムハンドルで指定されたHLGオブジェクトを指し示すポインターを用いること、および適切なグラフィックス・ライブラリー・ルーチンを呼び出して対応するエントリーをディスプレイリスト上に生成することを含む。次いでプロセスはステップ470に進む。ステップ480では、エントリーが処理されて、対応するエントリーがディスプレイリスト内に生成される。ステップ480は本質的に、図4Bを参照して前述したステップ422と同じである。次いでプロセスはステップ470に進む。
【0046】
図4Dに戻って、ステップ456では、ステップ448で取得されたアイテムハンドルリスト内の、z−index>0であるz−indexを有するすべてのアイテムハンドルが識別される。ステップ458では、ステップ456で識別されたすべてのアイテムハンドルが処理されて、ディスプレイリスト上に適切なエントリーが生成される。本発明の一実施形態では、アイテムハンドルの処理は、アイテムハンドルで指定されたポインターを用いてHLGオブジェクトを取得すること、および適切なグラフィックス・ライブラリー・ルーチンを呼び出して対応するエントリーをディスプレイリスト上に生成することを含む。ステップ458が完了した後には、インライン面の前面にあるすべてのHLGオブジェクトが処理され、ディスプレイリストに追加されている。次いでプロセスはステップ460に進む。
【0047】
ステップ460では、ページの処理が完了する。本発明の一実施形態では、ページの処理の完了は、ページの処理を完了するのに必要とされる他の任意のグラフィックス・ライブラリー・ルーチンまたは他のプロセスを呼び出すことを含み得る。ステップ462では、植字プログラム出力ファイル内に未処理のエントリーがあるか否かについての判定が行われる。植字プログラム出力ファイル内に未処理のエントリーがある場合、プロセスはステップ446に進み、そうでない場合、プロセスは終了する。
【0048】
以下の例は、本発明の様々な実施形態を例示するものであり、本発明の範囲を限定するためのものではない。
【0049】
図5に、3つのHLGオブジェクトおよびテキストを含むページ例(599)を示す。図5に示すように、HLG A(502)はインライン面の背面にあり、HLG B(504)およびテキスト(505)はインライン面上にあり、HLG C(506)はインライン面の前面にある。本発明の一または複数の実施形態によれば、HLG A(502)のz−indexは0より小さく、HLG B(504)のz−indexは0であり、HLG C(506)のz−indexは0より大きい。
【0050】
図6に、本発明の一または複数の実施形態によるソフトウェアアーキテクチャーの例を示す。このソフトウェアアーキテクチャーは、コンピュータ・プログラム・コードとして実施される以下のモジュールを含む。すなわち、OOXMLパーサー(600)、OOXMLフロントエンド(OFE)(602)、TeXレイアウトエンジン(604)、OOXMLバックエンド(OBE)(606)、およびTeX出力ファイルパーサー(608)、およびグラフィックスライブラリー(610)を含む。以下で、これらの各構成要素について説明する。
【0051】
OOXMLパーサー(600)は、OOXMLで符号化された文書を受け取り、続いてその文書を構文解析して構文解析されたOOXMLデータを取得するように構成される。次いで、構文解析されたOOXMLデータはOFE(602)に転送される。OFE(602)は、上記図4Aに示す各ステップを行ってTeX入力ファイルを生成するように構成される。OFE(602)はさらに、TeX入力ファイルが、z−index≠0であるz−indexを有するHLGオブジェクトを含むか否か判定する(図4Bのステップ416)ように構成される。
【0052】
TeX入力ファイルはTeXレイアウトエンジン(604)に転送されて、TeX出力ファイルが生成される。続いてTeX出力ファイルは、TeX出力ファイルパーサー(608)、OBE(606)およびグラフィックスライブラリー(610)によって(あるいは、より具体的には、グラフィックスライブラリー(610)内のルーチンを用いて)処理される。
【0053】
TeX出力ファイルパーサー(608)は、TeX出力ファイルを構文解析し、構文解析の結果をOBE(606)に転送するように構成される。OBE(606)は、ステップ428を実行することによりTeX出力ファイルの構文解析の結果の第1のパスを実行し、アイテムハンドルリストを維持するように構成される。OBE(606)はさらに、ステップ430を実行することによりTeX出力ファイルの構文解析の結果の第2のパスを実行するように構成される。
【0054】
グラフィックスライブラリー(610)は、文書内のテキスト、画像、およびベクトルグラフィックスのためにディスプレイリスト上に適切なエントリーを生成するのに必要なルーチンを含む。OBE(606)は、グラフィックスライブラリーを呼び出して、対応するエントリーをディスプレイリスト上に生成するためのルーチンの実行を開始するように構成される。
【0055】
本発明の実施形態は印刷文書の生成に用いるためのディスプレイリストを生成することを対象としているが、本発明の実施形態は、モニター等のディスプレイ上に画像を出力するためのディスプレイリストの生成にも用いられ得ることを当業者は理解するであろう。
【0056】
本発明の実施形態を実行するためのコンピューター可読プログラムコードは、コンパクトディスク(CD)、ディスケット、テープ、物理メモリー、あるいは、本発明の実施形態を実行するためのコンピューター可読プログラムコードを記憶する機能を含む他の任意の物理的なコンピューター可読記憶媒体等のコンピューター可読媒体上に記憶され得る。本発明の一実施形態では、コンピューター可読プログラムコードは、(一または複数の)プロセッサーによって実行されると、本発明の実施形態を実行するように構成される。
【0057】
本発明は限られた数の実施形態について説明されているが、本開示の利益を有する当業者は、ここで開示する本発明の範囲を逸脱しない、他の実施形態を考案することもできることを理解するであろう。したがって、本発明の範囲は、添付の特許請求の範囲によってのみ限定されるべきものである。

【特許請求の範囲】
【請求項1】
プロセッサーに方法を実行させるためのコンピューター可読プログラムコードが含まれているコンピューター可読媒体であって、前記方法が、
マークアップ言語で符号化された文書を受け取る工程と、
前記文書を構文解析して画像およびテキストを識別する工程と、
前記画像に対応する第1のハイレベルグラフィックス(HLG)オブジェクトであり、前記第1のHLGオブジェクトの0より小さい第1のz−indexを指定する前記第1のHLGオブジェクトを作成する工程と、
植字プログラム入力ファイル内に、前記第1のHLGオブジェクトを指し示すポインターを含む第1のエントリーを生成する工程と、
前記植字プログラム入力ファイル内に、前記テキストに対応する第2のエントリーを生成する工程と、
植字プログラムおよび前記植字プログラム入力ファイルを用いて植字プログラム出力ファイルを生成する工程と、
前記第1のHLGオブジェクトの前記z−indexが0ではないと判定する工程と、
前記判定に基づき、
前記植字プログラム出力ファイルを構文解析して、前記文書の、前記テキストおよび前記第1のHLGオブジェクトが位置するページを識別し、
前記ページについてのアイテムハンドル(ItemHandle)リストを作成し、
前記第1のエントリーに対応するとともに、前記第1のHLGオブジェクトを指し示す前記ポインターを含む第1のアイテムハンドルを、前記アイテムハンドルリストに追加し、
前記植字プログラム出力ファイルおよび前記アイテムハンドルリストを用いて前記ページについてのディスプレイリストを生成する工程と、
を含むコンピューター可読媒体。
【請求項2】
前記文書を構文解析してベクトルグラフィックスを識別する工程と、
前記ベクトルグラフィックスに対応する第2のハイレベルグラフィックス(HLG)オブジェクトであり、前記第2のHLGオブジェクトの第2のz−indexを指定する前記第2のHLGオブジェクトを作成する工程と、
前記植字プログラム出力ファイル内に、前記第2のHLGオブジェクトに対応するとともに、前記第2のHLGオブジェクトを指し示すポインターを含む第3のエントリーを生成する工程と、
をさらに含む請求項1に記載のコンピューター可読媒体。
【請求項3】
前記第2のz−indexが0より大きい請求項2に記載のコンピューター可読媒体。
【請求項4】
前記ディスプレイリストを生成する工程が、
(a)前記アイテムハンドルリスト内の、z−index<0であるz−indexを有するすべてのアイテムハンドルを識別して第1のアイテムハンドルの集合を取得する工程と、
(b)(a)の後、前記ディスプレイリスト内に、前記第1のアイテムハンドルの集合に対応する第1のディスプレイリストエントリーの集合を生成する工程と、
(c)(b)の後、前記ディスプレイリスト内に、前記第2のエントリーに対応する第2のディスプレイリストエントリーの集合を生成する工程と、
(d)(c)の後、前記アイテムハンドルリスト内の、z−index>0であるz−indexを有するすべてのアイテムハンドルを識別して第3のアイテムハンドルの集合を取得する工程と、
(e)(d)の後、前記ディスプレイリスト内に、前記第3のアイテムハンドルの集合に対応する第3のディスプレイリストエントリーの集合を生成する工程と、
を含む請求項2に記載のコンピューター可読媒体。
【請求項5】
前記植字プログラムがTeXレイアウトエンジンである請求項1に記載のコンピューター可読媒体。
【請求項6】
前記植字プログラム入力ファイルがTeX入力ファイルである請求項1に記載のコンピューター可読媒体。
【請求項7】
前記マークアップ言語がOOXML(Open Office Extensible Markup Language)である請求項1に記載のコンピューター可読媒体。
【請求項8】
前記文書がOOXMLパーサーを用いて構文解析される請求項7に記載のコンピューター可読媒体。
【請求項9】
前記第1のHLGオブジェクトが前記画像のネイティブ画像データへの参照を含む請求項1に記載のコンピューター可読媒体。
【請求項10】
前記ディスプレイリストが、前記文書を表示画面上に表示することおよび前記文書を印刷することからなる群より選択される少なくとも1つを行うのに用いられる請求項1に記載のコンピューター可読媒体。
【請求項11】
プロセッサーと、
前記プロセッサーによって実行されるとプリンターに方法を実行させるコンピューター可読プログラムコードを含むメモリーであり、前記方法が、
マークアップ言語で符号化された文書についての印刷ジョブを受け取る工程と、
前記文書を構文解析して画像およびテキストを識別する工程と、
前記画像に対応する第1のハイレベルグラフィックス(HLG)オブジェクトであり、前記第1のHLGオブジェクトの0より小さい第1のz−indexを指定する前記第1のHLGオブジェクトを作成する工程と、
植字プログラム入力ファイル内に、前記第1のHLGオブジェクトを指し示すポインターを含む第1のエントリーを生成する工程と、
前記植字プログラム入力ファイル内に、前記テキストに対応する第2のエントリーを生成する工程と、
植字プログラムおよび前記植字プログラム入力ファイルを用いて植字プログラム出力ファイルを生成する工程と、
前記第1のHLGオブジェクトの前記z−indexが0ではないと判定する工程と、
前記判定に基づき、
前記植字プログラム出力ファイルを構文解析して、前記印刷ジョブ中の、前記テキストおよび前記第1のHLGオブジェクトが位置するページを識別し、
前記ページについてのアイテムハンドルリストを作成し、
前記第1のエントリーに対応するとともに、前記第1のHLGオブジェクトを指し示す前記ポインターを含む第1のアイテムハンドルを、前記アイテムハンドルリストに追加し、
前記植字プログラム出力ファイルおよび前記アイテムハンドルリストを用いて前記ページについてのディスプレイリストを生成する工程と、
を含む前記メモリーと、
前記印刷可能な書式の文書を用いて前記文書を印刷するように構成された印刷エンジンと、
を備えるプリンター。
【請求項12】
前記方法が、
前記文書を構文解析してベクトルグラフィックスを識別する工程と、
前記ベクトルグラフィックスに対応する第2のハイレベルグラフィックス(HLG)オブジェクトであり、前記第2のHLGオブジェクトの第2のz−indexを指定する前記第2のHLGオブジェクトを作成する工程と、
前記植字プログラム出力ファイル内に、前記第2のHLGオブジェクトに対応するとともに、前記第2のHLGオブジェクトを指し示すポインターを含む第3のエントリーを生成する工程と、
をさらに含む請求項11に記載のプリンター。
【請求項13】
前記第2のz−indexが0より大きい請求項12に記載のプリンター。
【請求項14】
前記ディスプレイリストを生成する工程が、
(a)前記アイテムハンドルリスト内の、z−index<0であるz−indexを有するすべてのアイテムハンドルを識別して第1のアイテムハンドルの集合を取得する工程と、
(b)(a)の後、前記ディスプレイリスト内に、前記第1のアイテムハンドルの集合に対応する第1のディスプレイリストエントリーの集合を生成する工程と、
(c)(b)の後、前記ディスプレイリスト内に、前記第2のエントリーに対応する第2のディスプレイリストエントリーの集合を生成する工程と、
(d)(c)の後、前記アイテムハンドルリスト内の、z−index>0であるz−indexを有するすべてのアイテムハンドルを識別して第3のアイテムハンドルの集合を取得する工程と、
(e)(d)の後、前記ディスプレイリスト内に、前記第3のアイテムハンドルの集合に対応する第3のディスプレイリストエントリーの集合を生成する工程と、
を含む請求項12に記載のプリンター。
【請求項15】
前記植字プログラムがTeXレイアウトエンジンである請求項11に記載のプリンター。
【請求項16】
前記植字プログラム入力ファイルがTeX入力ファイルである請求項11に記載のプリンター。
【請求項17】
前記マークアップ言語がOOXML(Open Office Extensible Markup Language)である請求項11に記載のプリンター。
【請求項18】
前記文書がOOXMLパーサーを用いて構文解析される請求項17に記載のプリンター。
【請求項19】
レーザープリンター、インクジェットプリンター、およびコピー機からなる群より選択される1つである請求項11に記載のプリンター。
【請求項20】
プロセッサーに方法を実行させるためのコンピューター可読プログラムコードが含まれているコンピューター可読媒体であって、前記方法が、
マークアップ言語で符号化された文書を受け取る工程と、
前記文書を構文解析して画像およびテキストを識別する工程と、
前記画像に対応する第1のハイレベルグラフィックス(HLG)オブジェクトであり、前記第1のHLGオブジェクトの0より小さい第1のz−indexを指定する前記第1のHLGオブジェクトを作成する工程と、
植字プログラム入力ファイル内に、前記第1のHLGオブジェクトを指し示すポインターを含む第1のエントリーを生成する工程と、
前記植字プログラム入力ファイル内に、前記テキストに対応する第2のエントリーを生成する工程と、
植字プログラムおよび前記植字プログラム入力ファイルを用いて第1の植字プログラム出力ファイルを生成する工程と、
前記第1の植字プログラム出力ファイルを構文解析して第1の構文解析されたデータを生成する工程と、
前記第1の構文解析されたデータを用いて、
前記文書内のページについてのアイテムハンドルリストを作成し、
前記第1のエントリーに対応するとともに、前記第1のHLGオブジェクトを指し示す前記ポインターを含む第1のアイテムハンドルを、前記アイテムハンドルリストに追加する工程と、
植字プログラムおよび前記植字プログラム入力ファイルを用いて第2の植字プログラム出力ファイルを生成する工程と、
前記第2の植字プログラム出力ファイルを構文解析して第2の構文解析されたデータを生成する工程と、
前記第2の構文解析されたデータおよび前記アイテムハンドルリストを用いて前記第1のエントリーについての第1のディスプレイリストエントリーを生成する工程と、
前記第1のディスプレイリストエントリーを生成した後で、前記第2の構文解析されたデータを用いて前記第2のエントリーについての第2のディスプレイリストエントリーを生成する工程と、
を含むコンピューター可読媒体。
【請求項21】
前記第1の植字プログラム出力ファイルがデバイス非依存ファイル形式である請求項20に記載のコンピューター可読媒体。
【請求項22】
前記アイテムハンドルリストがOOXMLバックエンドによって維持される請求項21に記載のコンピューター可読媒体。
【請求項23】
前記マークアップ言語がOOXML(Open Office Extensible Markup Language)であり、前記文書がOOXMLパーサーを用いて構文解析される請求項20に記載のコンピューター可読媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図4D】
image rotate

【図4E】
image rotate

【図5】
image rotate

【図6】
image rotate