(57)【要約】【課題】  表示データ・ストリーム内の複合テキストを識別するシステム及び方法を提供すること。【解決手段】  複合テキストを識別し、処理するシステム及び方法が提供される。表示データ・ストリームが複合テキスト・ストリングを含む場合に、複合テキスト・ストリングの前に表示データ・ストリーム内の予め選択された制御が挿入される。第１のパラメータは、複合テキスト処理を制御するための制御タイプを示す値を有し、第２のパラメータは、複合テキスト処理をイネーブルにし又はディスエーブルにするための１つ又はそれ以上の値をとる。複合テキスト処理においては、表示データ・ストリームにおける第１の所定のタイプの制御に応答して、第１のタイプの複合テキスト処理がイネーブルにされた場合に、この処理が、表示データ・ストリームにおける第１の所定のタイプの制御に続く複合テキスト・ストリングに適用される。第１の所定のタイプの制御は、第１のタイプの複合テキスト処理を制御するための対応する値によって表される第１のパラメータを含む。【選択図】      図２
2007527810.tif 000002
【特許請求の範囲】
【請求項１】
複合テキストを識別する方法であって、表示データ・ストリームが複合テキスト・ストリングを含む場合に、前記複合テキスト・ストリングの前に前記表示データ・ストリーム内の予め選択された制御を挿入するステップを含み、前記予め選択された制御が複合テキスト処理を制御するための複数のパラメータに対応するものであり、前記パラメータの各々が、前記予め選択された制御内の対応する値によって表され、第１のパラメータが複合テキスト処理を制御するための制御タイプを示す値を有し、第２のパラメータが複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値をとることを特徴とする方法。
【請求項２】
前記複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値が、第１のタイプの複合テキスト処理をイネーブルにし、ディスエーブルにするための値の組を含む、請求項１に記載の方法。
【請求項３】
前記第１のタイプの複合テキスト処理が双方向（ｂｉｄｉ）処理を含む、請求項２に記載の方法。
【請求項４】
前記複数のパラメータがさらに第３のパラメータを含み、前記第３のパラメータが、第２のタイプの複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値をとる、請求項２に記載の方法。
【請求項５】
前記第２のタイプの複合テキスト処理がグリフ処理を含む、請求項４に記載の方法。
【請求項６】
前記複数のパラメータがさらに第３のパラメータを含み、前記第３のパラメータが、代替テキスト位置を含む値をとる、請求項１に記載の方法。
【請求項７】
複合テキストを処理する方法であって、
第１のタイプの複合テキスト処理を制御するための、第１の所定のタイプの制御内の対応する値によって表される第１のパラメータを含む、表示データ・ストリーム内の第１の所定のタイプの制御に応答するステップと、
第１のタイプの複合テキスト処理がイネーブルにされているかどうかを判定するステップと、
前記第１のタイプの複合テキスト処理がイネーブルにされている場合に、前記表示データ・ストリーム内の前記第１の所定のタイプの制御に続く複合テキスト・ストリングに、前記第１のタイプの複合テキスト処理を適用するステップと、
を含む方法。
【請求項８】
前記第１のタイプの複合テキスト処理が双方向（ｂｉｄｉ）処理を含む、請求項７に記載の方法。
【請求項９】
前記第１のパラメータが、前記複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値をとり、前記複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値が、前記複合テキストの双方向処理のパラグラフ方向を決定するための１つまたはそれ以上の値を含む、請求項８に記載の方法。
【請求項１０】
前記第１の所定のタイプの制御が、第２のタイプの複合テキスト処理を制御するための前記所定のタイプの制御内の対応する値によって表される第２のパラメータを含み、前記方法がさらに、第２のタイプの複合テキスト処理がイネーブルにされているかどうかを判定するステップと、前記第２のタイプの複合テキスト処理がイネーブルにされている場合に、前記表示データ・ストリーム内の前記第１の所定のタイプの制御に続く複合テキスト・ストリングに、前記第２のタイプの複合テキスト処理を適用するステップとを含む、請求項７に記載の方法。
【請求項１１】
前記第２のタイプの複合テキスト処理がグリフ処理を含む、請求項１０に記載の方法。
【請求項１２】
前記第１のタイプの複合テキスト処理をディスエーブルにするように動作可能な、第２の所定のタイプの制御内の対応する値によって表されるパラメータを含む、表示データ・ストリーム内の第２の所定のタイプの制御に応答するステップと、前記第１のタイプの複合テキスト処理がディスエーブルにされているかどうかを判定するステップと、前記第１のタイプの複合テキスト処理がディスエーブルにされている場合に、複合テキスト・ストリングに第１のタイプの複合テキスト処理を適用する前記ステップをオーバーライドするステップと、をさらに含む、請求項７に記載の方法。
【請求項１３】
前記第１の所定のタイプの制御が、代替テキスト位置を決定するための前記第１の所定のタイプの制御内の対応する値によって表される第２のパラメータを含み、前記方法が、前記第１のタイプの複合テキスト処理がイネーブルにされた場合に前記代替テキスト位置を用いてテキスト位置を設定するステップを含む、請求項７に記載の方法。
【請求項１４】
表示データ・ストリームが複合テキスト・ストリングを含む場合に、前記複合テキスト・ストリングの前に前記表示データ・ストリーム内の予め選択された制御を挿入するためのプログラム命令を有する、複合テキストを識別するためのプログラムを含む機械可読のコンピュータ・プログラムであって、前記予め選択された制御が複合テキスト処理を制御するための複数のパラメータに対応するものであり、前記パラメータの各々が、前記予め選択された制御内の対応する値によって表され、第１のパラメータが複合テキスト処理を制御するための制御タイプを示す値を有し、第２のパラメータが複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値をとることを特徴とするコンピュータ・プログラム。
【請求項１５】
前記複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値が、第１のタイプの複合テキスト処理をイネーブルにし、ディスエーブルにするための値の組を含む、請求項１４に記載のコンピュータ・プログラム。
【請求項１６】
前記第１のタイプの複合テキスト処理が双方向（ｂｉｄｉ）処理を含む、請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記複数のパラメータがさらに第３のパラメータを含み、前記第３のパラメータが、第２のタイプの複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値をとる、請求項１５に記載のコンピュータ・プログラム。
【請求項１８】
前記第２のタイプの複合テキスト処理がグリフ処理を含む、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記複数のパラメータがさらに第３のパラメータを含み、前記第３のパラメータが、代替テキスト位置を含む値をとる、請求項１４に記載のコンピュータ・プログラム。
【請求項２０】
複合テキストを処理するためのプログラムを含む機械可読のコンピュータ・プログラムであって、
第１のタイプの複合テキスト処理を制御するための、第１の所定のタイプの制御内の対応する値によって表される第１のパラメータを含む、表示データ・ストリーム内の第１の所定のタイプの制御に応答するステップと、
前記第１のタイプの複合テキスト処理がイネーブルにされているかどうかを判定するステップと、
前記第１のタイプの複合テキスト処理がイネーブルにされている場合に、前記表示データ・ストリームにおける前記第１の所定のタイプの制御に続く複合テキスト・ストリングに前記第１のタイプの複合テキスト処理を適用するステップと、を含むプログラム命令を有するコンピュータ・プログラム。
【請求項２１】
前記第１のタイプの複合テキスト処理が双方向（ｂｉｄｉ）処理を含む、請求項２０に記載のコンピュータ・プログラム。
【請求項２２】
前記第１のパラメータが、前記複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値をとり、前記複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値が、前記複合テキストの双方向処理のパラグラフ方向を決定するための１つ又はそれ以上の値を含む、請求項２１に記載のコンピュータ・プログラム。
【請求項２３】
前記第１の所定のタイプの制御が、第２のタイプの複合テキスト処理を制御するための前記所定のタイプの制御内の対応する値によって表される第２のパラメータを含み、前記方法がさらに、第２のタイプの複合テキスト処理がイネーブルにされているかどうかを判定するステップと、前記第２のタイプの複合テキスト処理がイネーブルにされている場合に、前記表示データ・ストリームにおける前記第１の所定のタイプの制御に続く複合テキスト・ストリングに前記第２のタイプの複合テキスト処理を適用するステップとを含む、請求項２０に記載のコンピュータ・プログラム。
【請求項２４】
前記第２のタイプの複合テキスト処理がグリフ処理を含む、請求項２３に記載のコンピュータ・プログラム。
【請求項２５】
前記第１のタイプの複合テキスト処理をディスエーブルにするように動作可能な、第２の所定のタイプの制御内の対応する値によって表されるパラメータを含む、表示データ・ストリーム内の第２の所定のタイプの制御に応答するステップと、前記第１のタイプの複合テキスト処理がディスエーブルにされているかどうかを判定するステップと、前記第１のタイプの複合テキスト処理がディスエーブルにされている場合に、複合テキスト・ストリングに第１のタイプの複合テキスト処理を適用する前記ステップをオーバーライドするステップと、をさらに含む、請求項２０に記載のコンピュータ・プログラム。
【請求項２６】
前記第１の所定のタイプの制御が、代替テキスト位置を決定するための前記第１の所定のタイプの制御内の対応する値によって表される第２のパラメータを含み、前記方法が、前記第１のタイプの複合テキスト処理がイネーブルにされた場合に前記代替テキスト位置を用いてテキスト位置を設定するステップを含む、請求項２０に記載のコンピュータ・プログラム。
【請求項２７】
表示データ・ストリームが複合テキスト・ストリングを含む場合に、前記複合テキスト・ストリングの前に前記表示データ・ストリームにおける予め選択された制御を挿入するように動作可能な回路を含む、複合テキストを識別するためのデータ処理システムであって、前記予め選択された制御が、複合テキスト処理を制御するための複数のパラメータに対応し、前記パラメータの各々が、前記予め選択された制御内の対応する値によって表され、第１のパラメータが、複合テキスト処理を制御するための制御タイプを示す値を有し、第２のパラメータが、複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値をとることを特徴とするシステム。
【請求項２８】
前記複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値が、第１のタイプの複合テキスト処理をイネーブルにし、ディスエーブルにするための値の組を含む、請求項２７に記載のデータ処理システム。
【請求項２９】
前記第１のタイプの複合テキスト処理が双方向（ｂｉｄｉ）処理を含む、請求項２８に記載のデータ処理システム。
【請求項３０】
前記複数のパラメータがさらに第３のパラメータを含み、前記第３のパラメータが、第２のタイプの複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値をとる、請求項２８に記載のデータ処理システム。
【請求項３１】
前記第２のタイプの複合テキスト処理がグリフ処理を含む、請求項３０に記載のデータ処理システム。
【請求項３２】
前記複数のパラメータがさらに第３のパラメータを含み、前記第３のパラメータが、代替テキスト位置を含む値をとる、請求項２７に記載のデータ処理システム。
【請求項３３】
複合テキストを処理するためのデータ処理システムであって、
表示データ・ストリーム内の第１の所定のタイプの制御に応答するように動作可能であり、前記第１の所定のタイプの制御が第１のタイプの複合テキスト処理を制御するための前記第１の所定のタイプの制御内の対応する値によって表される第１のパラメータを含む回路と、
第１のタイプの複合テキスト処理がイネーブルにされているかどうかを判定するように動作可能な回路と、
前記第１のタイプの複合テキスト処理がイネーブルにされている場合に、前記表示データ・ストリームにおける前記第１の所定のタイプの制御に続く複合テキスト・ストリングに前記第１のタイプの複合テキスト処理を適用するように動作可能な回路と、
を備えるデータ処理システム。
【請求項３４】
前記第１のタイプの複合テキスト処理が双方向（ｂｉｄｉ）処理を含む、請求項３３に記載のデータ処理システム。
【請求項３５】
前記第１のパラメータが、前記複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値をとり、前記複合テキスト処理をイネーブルにし、ディスエーブルにするための１つ又はそれ以上の値が、前記複合テキストの双方向処理のパラグラフ方向を決定するための１つまたはそれ以上の値を含む、請求項３４に記載のデータ処理システム。
【請求項３６】
前記第１の所定のタイプの制御が、第２のタイプの複合テキスト処理を制御するための前記所定のタイプの制御内の対応する値によって表される第２のパラメータを含み、前記システムがさらに、第２のタイプの複合テキスト処理がイネーブルにされているかどうかを判定するように動作可能な回路と、前記第２のタイプの複合テキスト処理がイネーブルにされている場合に、前記表示データ・ストリームにおける前記第１の所定のタイプの制御に続く複合テキスト・ストリングに前記第２のタイプの複合テキスト処理を適用するように動作可能な回路とを備えた、請求項３３に記載のデータ処理システム。
【請求項３７】
前記第２のタイプの複合テキスト処理がグリフ処理を含む、請求項３６に記載のデータ処理システム。
【請求項３８】
前記第１のタイプの複合テキスト処理をディスエーブルにするように動作可能な、第２の所定のタイプの制御内の対応する値によって表されるパラメータを含む、前記表示データ・ストリーム内の第２の所定のタイプの制御に応答するステップと、前記第１のタイプの複合テキスト処理がディスエーブルにされているかどうかを判定するステップと、前記第１のタイプの複合テキスト処理がディスエーブルにされている場合に、前記複合テキスト・ストリングに第１のタイプの複合テキスト処理を適用する前記ステップをオーバーライドするステップと、を実行するように動作可能な回路をさらに備えた、請求項３３に記載のデータ処理システム。
【請求項３９】
前記第１の所定のタイプの制御が、代替テキスト位置を決定するための前記第１の所定のタイプの制御内の対応する値によって表される第２のパラメータを含み、前記データ処理システムが、前記第１のタイプの複合テキスト処理がイネーブルにされている場合に前記代替テキスト位置を用いてテキスト位置を設定するように動作可能な回路を含む、請求項３３に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷システムの分野に関し、より詳細には、コード・ポイントとグリフとの間で１対１マッピングでレンダリングすることを必要としない文字ストリングを含む複合テキストを処理する印刷システムに関する。
本発明は、２００３年６月２０日付けの「ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＦＯＲ  ＲＥＮＤＥＲＩＮＧ  ＵＮＩＣＯＤＥ  ＣＯＭＰＬＥＸ  ＴＥＸＴ  ＤＡＴＡ  ＩＮ  Ａ  ＰＲＩＮＴＥＲ」と題する特許文献１（代理人整理番号ＢＬＤ９２００３０００６ＵＳ１）に関連している。
【背景技術】
【０００２】
コンピュータ・システムは、ビデオ出力と「ハード・コピー」又は印刷出力とを含む幾つかの方法で出力情報を生成することができる。出力は、ビデオ・スクリーンで一時的に生成されることが多くなっているが、依然として、大量のデータが紙その他の永続的媒体に印刷されている。したがって、印刷データを効率よく記述し、次いで印刷記述からハード・コピー・ページを印刷する必要がある。印刷は、エンコードされた印刷データ・ストリームを受け取り、命令及びデータを格納することができる、「高機能」プリンタを使用する高速大容量印刷システムによって行われることが多い。こうしたエンコードされたプリント・ストリームは、多数の印刷ページのためのデータを含むことが多い。例えば、電話会社は、単一の印刷ストリームで、指定された週の電話料金明細書の全てを印刷することがあるかもしれない。プリント・ストリームにおける各ページは、特定の顧客の電話料金明細書であるかもしれない。
【０００３】
現代企業のデータ処理環境におけるこうした印刷及び表示システムは、典型的には、複数の言語での文書レンダリングをサポートする。ユニコードと呼ばれるエンコード規格は、中国語、日本語及びヒンディー語のような非ローマ字言語を含む世界中の言語を表すことができる包括的文字表現を定義している（ユニコード規格は、カリフォルニア州マウンテンビュー所在のユニコード・コンソーシアムによって公開されている）。ユニコード規格は、１００万文字より多くの文字をエンコードすることができる。しかしながら、世界中の言語をレンダリングする機能は、印刷及び表示システムに付加的な課題を与える。特定の言語群、例えば、アラビア語、インド語、及びタイ語は、従来の１コード・ポイント対１グリフのレンダリングを適用できない、いわゆる複合テキストを含むことがある。複合テキストは、幾つかの理由で文字ストリングにおいて生じることがある。言語が双方向性となる、すなわち、ストリングの途中で印刷方向が切り替わることがある。例えば、アラビア語及びヘブライ語においては、アルファベット文字は右から左に書かれ、数字は左から右に書かれる。複合テキストを生み出す他の言語文字には、コンテキストに依存する文字形状又は位置、合字、ユニコード・コード・ポイントが存在しない（しかしフォントにグリフが存在することがある）特別形、及び分割、又はコンテキストに依存する文字の組み合わせがある。したがって、複合テキストの処理は、言語に依存するものであり、テキストを解析し、レンダリングのための適正なグリフ指印及びグリフ位置を生成するために、通常はレイアウト・エンジンを使用する。
【０００４】
特に、ユニコード複合テキストの処理は、プリンタのレイアウト・エンジンによって行われることがある（前述の特許文献１参照）。これは、ユニコード・テキストがプリント・ストリームに保存され、その結果として、プリント・ストリームにおけるユニコード・テキストが、ソートされ、検索され、索引付けされること等が可能となるという利点を有する。しかしながら、プリンタのレイアウト・エンジンを呼び出すことは、処理が煩雑となり、プリンタ性能に悪影響を及ぼすことがある。
【０００５】
【特許文献１】米国特許出願公開第２００４  ０２５７５９１Ａ１（シリアルナンバー第１０／６０１，０２５号）
【非特許文献１】Ｉ．Ｂ．Ｍ．Ｍｉｘｅｄ  Ｏｂｊｅｃｔ  Ｄｏｃｕｍｅｎｔ  Ｃｏｎｔｅｎｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｒｅｆｅｒｅｎｃｅ  Ｎｕｍｂｅｒ  ＳＣ３１−６８０２。
【非特許文献２】Ｉ．Ｂ．Ｍ．Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｔｅｘｔ  Ｏｂｊｅｃｔ  Ｃｏｎｔｅｎｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｒｅｆｅｒｅｎｃｅ、ＳＣ３１−６３０８。
【非特許文献３】Ｉ．Ｂ．Ｍ．Ｉｎｔｅｌｌｉｇｅｎｔ  Ｐｒｉｎｔｅｒ  Ｄａｔａ  Ｓｔｒｅａｍ  Ｒｅｆｅｒｅｎｃｅ、Ｓ５４４−３４１７。
【非特許文献４】Ｕｎｉｃｏｄｅ  Ｃｏｎｓｏｒｔｉｕｍ、Ｕｎｉｃｏｄｅ  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ＵＡＸ−１５「Ｕｎｉｃｏｄｅ  Ｎｏｒｍａｌｉｚａｔｉｏｎ  Ｆｏｒｍｓ」
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、当該技術分野では、ユニコード複合テキストの印刷を制御するための機構と、非複合テキストと一体化した複合テキストの印刷の統合が必要とされる。特に、当該技術分野では、ユニコード複合テキストを処理するためにレイアウト・エンジンを選択的に呼び出すシステム及び方法が必要とされる。さらに、ジョブ要件が複合テキストの適正なレンダリングを要求しない場合に、そうしたテキストのレンダリング・コストを減らすために、ジョブ・サブミッション・レベルで複合テキストのレンダリングを選択的にディスエーブルにする機構が必要とされている。
【課題を解決するための手段】
【０００７】
本発明の一実施形態によれば、複合テキストを識別する方法が提供される。表示データ・ストリームが複合テキスト・ストリングを含む場合に、複合テキスト・ストリングの前に表示データ・ストリーム内の予め選択された制御が挿入される。予め選択された制御は、複合テキスト処理を制御するための複数のパラメータに対応する。各パラメータは、予め選択された制御内の対応する値によって表される。第１のパラメータは、複合テキスト処理を制御するための制御タイプを示す値を有し、第２のパラメータは、複合テキスト処理をイネーブルにし又はディスエーブルにするための１つ又はそれ以上の値をとる。
【０００８】
別の実施形態においては、複合テキストを処理する方法も提供される。この方法は、表示データ・ストリームにおける第１の所定のタイプの制御に応答して、第１のタイプの複合テキスト処理がイネーブルにされているかどうかを判定する。第１のタイプの複合テキスト処理がイネーブルにされている場合には、第１のタイプの複合テキスト処理は、表示データ・ストリームにおける第１の所定のタイプの制御に続く複合テキスト・ストリングに適用される。第１の所定のタイプの制御は、第１のタイプの複合テキスト処理を制御するための第１の所定のタイプの制御内の対応する値によって表される第１のパラメータを含む。
【０００９】
上記のことは、以下の本発明の詳細な説明を良く理解するために、本発明の１つ又はそれ以上の実施形態の特徴及び技術的利点を概説しているにすぎない。本発明の請求項の主題をなす本発明の付加的な特徴及び利点が以下に説明される。
本発明の実施形態が、単なる例として、付属の図面を参照しながら以下により詳細に説明される。
【発明を実施するための最良の形態】
【００１０】
以下の説明においては、本発明の十分な理解を与えるために多くの特定の詳細が記載される。例えば、特定の構造化フィールド・フォーマットが、本発明の原理を説明するために言及されている。しかしながら、本発明はこうした特定の詳細なしに実施することもできることが当業者には明らかであろう。他の例では、本発明を不必要に細かく説明して不明瞭にすることのないように、周知の回路はブロック図形式で示されている。大部分は、タイミングの考察事項等を考察する詳細は、こうした詳細が必ずしも本発明の十分な理解を得るのに必要でない限り、かつ当業者に周知である限り省かれている。
【００１１】
図１は、クライアント・コンピュータ１０２上のアプリケーション・プログラム１０１（すなわち「印刷文書」）によって生成された文書を印刷するための印刷システム１００の本発明の実施形態を示す。クライアント・コンピュータ１０２のより詳細な説明が、図２に関連して以下にさらに説明される。クライアント・コンピュータ１０２上で動作するアプリケーション・プログラム１０１は、フォーマット化されたプラットフォームであるデータ・ストリームと、印刷文書の装置独立論理記述とを生成する。印刷に用いられるデータ・ストリームのこうした論理記述の１つの公知の仕様は、非特許文献１に詳細に記載されている、ＭＯ：ＤＣＡ（Ｍｉｘｅｄ  Ｏｂｊｅｃｔ  Ｄｏｃｕｍｅｎｔ  Ｃｏｎｔｅｎｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ）として知られている。
【００１２】
特に、ＭＯ：ＤＣＡは、アプリケーションによって用いられるデータ・ストリームを、他のアプリケーション及びアプリケーション・サービスと交換するための文書及びオブジェクト・エンベロープを記述するように定める。ＭＯ：ＤＣＡアーキテクチャにおいては、文書は、最高レベルの文書コンポーネント階層を表す。頁は、表示文書、すなわち、フォーマット化され、例えばプリンタ又はディスプレイ上に表示されることを意図された文書を構成するデータ・オブジェクトを含む。データ・オブジェクトは、表示されるデータと、データを表示するのに要求されるディレクティブとを含む。例示的なデータ・オブジェクトは、コンピュータによって生成されたピクチャーを表すグラフィック・オブジェクトと、走査されたピクチャーのようなイメージ情報を表すイメージ・オブジェクトと、テキスト情報を表す表示テキスト・オブジェクトとを含む。これらのオブジェクト表現の各々は、対応するオブジェクト・コンテンツ・アーキテクチャに従ってＭＯ：ＤＣＡデータ・ストリームに組み入れられる。特に、表示テキスト・オブジェクト・コンテンツ・アーキテクチャ（ＰＴＯＣＡ）は、以下にさらに説明される（ＰＴＯＣＡは、非特許文献２に詳細に記載される）。データ・オブジェクトに加えて、文書は、フォーマット、レイアウト、及び物理的媒体上に文書頁を与えるのに用いられるリソース・マッピング情報を有する印刷制御オブジェクトを含んでもよい。この情報は、「書式マップ」又は「ｆｏｒｍｄｅｆ」と呼ばれるＭＯ：ＤＣＡデータ・ストリームにおける構造化フィールド・セットに含められてもよい（書式マップは、宛先プリンタの設定、紙タイプの記述などのような印刷ジョブに関する情報のための入れ物であるデータ構造体の「ジョブ・チケット」に似ている。データは、「トリプレット」と呼ばれる構造化フィールドのバイト順に運ばれてもよい。ＭＯ：ＤＣＡトリプレットは、１バイト長フィールド、１バイトの固有識別子、データ・バイトのシーケンス（長さフィールドから求められた数）を含む自己識別パラメータである。本発明の原理に従って特定されたユニコード複合テキストの印刷を制御するためのＭＯ：ＤＣＡトリプレットが以下にさらに説明される。
【００１３】
印刷システム１００はさらに、アプリケーション・プログラム１０１から印刷文書を表すデータ・ストリームを受け取り、スプールするためのスプール１０３を備える。スプール１０３によって受け取られると、データ・ストリームは、プリンタ・ドライバ１０５を用いてデータ・ストリームを装置特有のデータ・ストリームに変換する印刷サーバ１０４と、フォント及びデータ・ストリームを印刷するのに要求される印刷制御オブジェクトのようなリソースを含むリソース・ライブラリ１０６に伝送される。アプリケーション・プログラム１０１は、リソース・ライブラリ１０６にアクセスし、それを使用して文書をフォーマットするように構成することができる。ＭＯ：ＤＣＡフォーマットが用いられる場合には、結果として印刷サーバ１０４によって生成されたデータ・ストリームは、インテリジェント・プリンタ・データ・ストリーム（ＩＰＤＳ）と呼ばれる（ＩＰＤＳは、非特許文献３に記載されている）。データ・ストリームがフォーマットされると、データ・ストリームは、印刷文書を生成するためにプリンタ１０７に向けられる。
【００１４】
プリンタ１０７は、印刷サーバ１０４と通信することができる制御ユニット１０８と、内部メモリ１０９とを有することができる。ＩＰＤＳが用いられるときには、印刷サーバ１０４とプリンタ１０７との間の通信は双方向性である。例えば、印刷サーバ１０４は、フォントのような特定のリソースがプリンタ・メモリ１０９に常駐しているかどうかをプリンタ１０７に問い合わせることができる。リソースが存在しない場合には、印刷サーバ１０４は、リソース・データベース１０６からフォントを検索し、ＩＰＤＳデータ・ストリームを用いてそのフォントをプリンタ・メモリ１０９にダウンロードする。リソースは、将来の使用のために利用可能である。その後、ダウンロード・リソースと呼ばれる印刷データがプリンタ１０７によって受け取られたときには、プリンタ１０７は、リソースをデータと組み合わせて、その組み合わせを、従来のＲａｓｔｅｒｉｚｉｎｇ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ（「ＲＩＰ」と呼ばれ、図１には示されていない）に与え、それがデータを印刷可能なラスタ・イメージに変換する。メモリ１０９に結合された制御ユニット１０８は、ラスタライザ・プログラムの命令を実行するように構成することができる。
【００１５】
ここで図２を参照すると、表示データ・ストリーム内の複合テキストを識別するためのプロセス２００がフローチャート形式で示されている。ここで提供されたフローチャートは、必ずしも本発明の実施形態において実行される動作の順序を示すものではないことに注意されたい。これらのフローチャート内で実行されるステップの多くは、並行して行われてもよい。フローチャートは、本発明の原理に従って複合テキストを識別し、処理するために実施されるこれらの検討事項を示すことを意図されている。さらに、提示された順序は、単なる例であり、必ずしもステップを示された順序で実行しなければならないという意味ではないことに注意されたい。
【００１６】
ステップ２０２において、複合テキストが表示データ・ストリーム内に現れるかどうかが判定される。これは、表示データにおいて現れるユニコード・コード・ポイントの解析によって実行することができる。例えば、データ・ストリームにおける複合テキストの存在は、ユニコード・コード・ポイントを試験することによって判定することができる。ヒンディー語及びアラビア語のような複合テキストを含むスクリプトには、ユニコード規格内の明確なコード・ポイント範囲が割当てられる。したがって、コード・ポイント値の試験は、コード・ポイントが複合スクリプトの範囲内に含まれるかを判定することができる。これは、本発明と同じ譲受人に譲渡された出願継続中の前述の特許文献１において付加的に説明されている。
【００１７】
複合テキストの存在を判定するための別の方法は、データの優先順位の知識によるものである。例えば、文書を生成する印刷アプリケーションは、英語のみを含む、例えば請求書発行ステートメントを取り込むための英語名を含む文書を生成するためにデータが引き出されるデータベースを認識する「インテリジェンス」を組み入れることができる。
【００１８】
逆に、複合スクリプトにおいて指定される、印刷ファイルにおかれることになる情報をデータベースが含む場合には、データは、複合テキストとしてタグ付けされ、プリンタは、それに応じて複合スクリプトと非複合スクリプトとの両方を処理する。表示ストリームに複合テキストが存在しない場合には、プロセス２００がステップ２０４で終了する。そうでなければ、ステップ２０６において、所定の制御シーケンスが表示ストリームに挿入される。ステップ２０６と組み合わせて用いられる制御シーケンスが、表１に示されている。
【００１９】
【表１】
2007527810.tif 000003
【００２０】
制御シーケンスは、前述の表示テキスト・オブジェクト・コンテンツ・アーキテクチャ（ＰＴＯＣＡ）に従って表示テキスト・オブジェクトに組み入れられてもよい。前述のように、表示テキスト・オブジェクトは、表示のために用意されたテキストを表すためのデータ・オブジェクトである。それは、コヒーレント情報を表すのに適したグラフィック・シンボル、数字、及び字のような文字の順序付けされたストリングを含んでもよい。表示のために用意されたテキストは、文字の書式スルー明示指定及び表示スペース内のそれらの位置まで減少される。
【００２１】
さらに、特定の制御機能を指定する制御シーケンスをテキスト内に埋め込むことができる。これらの機能は、与えられたときにテキストに特定の特性を与える。図形文字及び制御コードのコレクションは表示テキストと呼ばれることもあり、表示テキストを含むオブジェクトは表示テキスト・オブジェクトと呼ばれることもある。表１に示され以下にさらに説明される制御シーケンスのような制御シーケンスは、複合テキストとして後続テキスト・ストリングを識別するために、及び、複合テキストの処理を既存の表示環境に統合するために、プロセス２００のステップ２０６において挿入されてもよい。特に、図３−図６と組み合わせて以下に説明される複合テキスト処理をイネーブルにし、ディスエーブルにするために、ユニコード複合テキスト（ＵＣＴ）制御シーケンスと呼ばれることもある制御シーケンスを用いてもよい。さらに、同様に図３−図６と組み合わせて以下に説明される、双方向（ｂｉｄｉ）レイアウト処理及び／又はグリフ処理を選択的にイネーブルにするために、ＵＣＴ制御シーケンスを用いてもよい。
【００２２】
ここで、本発明の実施形態に係るユニコード複合テキストを処理するためのプロセス３００をフローチャート形式で示す図３を参照する。
【００２３】
ステップ３０２において、アクティブ・フォントがオープン・タイプ・フォントではない場合、又はデータがユニコード・ベースの文字セットにエンコードされない場合、或いは書き込みモードが水平方向ではない場合のいずれも、制御シーケンスに従うコード・ポイントは、複合テキストとして処理されない（オープン・タイプ・フォントは、クロス・プラットフォーム・フォント・ファイル・フォーマット、すなわち、Ｔｒｕｅ  Ｔｙｐｅスケーラブル・フォント技術の拡張である。）（ステップ３０２は、ユニコード・ベースの文字セット及びオープン・タイプ・フォントと組み合わせて説明されるが、本発明の原理は、いずれかの所定のフォント・タイプ及び文字エンコーディングと組み合わせて適用されてもよい）。したがって、ステップ３０４において、コード・ポイントは、通常のテキスト処理と同様に、１コード・ポイント対１グリフ方式にレンダリングされる。プロセス３００はステップ３０５において終了する。そうでなければ、複合テキストは、以降のステップ３０６−３１４と組み合わせて説明されるデータ・ストリーム制御シーケンスのパラメータ・セットに従って処理される。
【００２４】
前述のように、特定のタスクは、データ・ストリーム内の複合テキストの適正なレンダリングを要求しない。例えば、サブミッタは、校正刷りのためにジョブが印刷される場合に、複合テキスト処理を止めることを望んでもよい。したがって、本発明によれば、サブミット時に表示データ・ストリーム内の複合テキストのレンダリングをディスエーブルにするために、ＭＯ：ＤＣＡ書式マップを用いてもよい。複合テキストのレンダリングをディスエーブルにするためにＭＯ：ＤＣＡデータ・ストリームの書式マップに組み入れることができるＭＯ：ＤＣＡトリプレット（ＵＣＴ処理制御トリプレットと呼ばれることもある）が表ＩＩに定義される。ＵＣＴ処理制御トリプレットの構文は、前述のＭＯ：ＤＣＡトリプレットの構造に準拠する。
【００２５】
【表２】
2007527810.tif 000004
【００２６】
表ＩＩに示されるように、表ＩＩに定義されたＵＣＴ処理制御トリプレットは、５バイトの長さである。ＢｉＤｉＣｔｌ及びＧｌｙｐｈＣｔｌパラメータ（バイト・オフセット２及び３）の値は、それぞれ、文書のためのユニコードｂｉｄｉレイアウト処理及びユニコード・グリフ処理を制御する。いずれかのバイトの値がＸ’０１’で示された１６進法の１である場合には、対応するｂｉｄｉ処理又はグリフ処理の１つがディスエーブルにされる。いずれか又は両方の値がＸ’００’で示された１６進法の０である場合には、図３におけるさらなるステップと組み合わせて後述するように、ＰＴＯＣＡ  ＵＣＴ制御シーケンスによって、複合テキストのレイアウト処理が制御される。
【００２７】
図３のステップ３０６に戻り、ＵＣＴ処理制御トリプレットのようなユニコード表示制御が書式マップに含まれている場合には、ステップ３０８において複合テキストのｂｉｄｉ処理及びグリフ処理の両方がディスエーブルにされるかどうかが判定される。その場合、処理３００はステップ３０４に戻り、ＵＣＴ制御シーケンスに従うコード・ポイントが通常テキスト、すなわち、１対１のコード・ポイント対グリフ・マッピングとして処理される。ステップ３１０においてｂｉｄｉ処理がディスエーブルにされない場合には、ＵＣＴ表示制御は、ＰＴＯＣＡ制御シーケンスに従い、ｂｉｄｉ処理はステップ３１２のＰＴＯＣＡ  ＵＣＴ制御シーケンスに従って進む。ステップ３０８と組み合わせて用いられるＰＴＯＣＡ  ＵＣＴ制御シーケンスを用いてｂｉｄｉ処理するための方法が、図４に示されており、後述される。
【００２８】
次いで、ステップ３１４において、グリフ処理がＭＯ：ＤＣＡ表示制御においてディスエーブルにされない場合には、グリフ処理はまた、ステップ３１６においてＰＴＯＣＡ  ＵＣＴ制御シーケンスに従って進む。ステップ３１４と組み合わせて用いられるＰＴＯＣＡ  ＵＣＴ制御シーケンスを用いるグリフ処理方法が、図５に示されており、後述される。そうではなく、グリフ処理がディスエーブルにされる場合には、ステップ３１６がバイパスされ、プロセス３００がステップ３０５において終了する。
【００２９】
ステップ３１０に戻り、ＭＯ：ＤＣＡ表示制御においてｂｉｄｉ処理がディスエーブルにされる場合には、ステップ３０８においてｂｉｄｉ処理とグリフ処理との両方がディスエーブルにされなかった（ステップ３０８は「Ｎｏ」ブランチで通り抜けられた）ので、ステップ３１６においてグリフ処理プロセスがＰＴＯＣＡ  ＵＣＴ制御シーケンスに従って進む（これは、左から右に書かれる言語の例であり、したがって、ｂｉｄｉ処理を要求しないが、グリフ処理を必要とする）。次いで、プロセス３００はステップ３０５において終了する。
【００３０】
ここで図４を参照すると、本発明の実施形態に係るＰＴＯＣＡ  ＵＣＴ制御シーケンスの制御の下でのｂｉｄｉ処理のためのプロセス４００が、フローチャート形式で示されている。
【００３１】
前述のように、ユニコード文字エンコーディングは、全ての公知の書記言語をデジタル形式で表す能力を与える。適合性のために、規格は、複合文字のような文字をエンコードするための異なる方法を与えてもよい。等価なテキストが同じバイナリ表現を有することを保証するために、ユニコード規格は、いずれかの所定ストリングのための固有の正規化書式を生成するように設計された正規化書式を与える。したがって、ステップ４０２において、処理されるべき複合テキストにおけるコード・ポイントが正規化されるかどうかが判定される。表１のＵＣＴ制御シーケンスを用いる本発明の実施形態においては、これは、ＣＴＦＬＧＳパラメータを試験することによって判定される。このパラメータは、ユニコード複合テキストを処理するための特定の制御を指定するビット・エンコードされたパラメータである。特に、ステップ４０２のために、ビット０は、ＵＣＴ制御シーケンスに従うコード・ポイントが正規化されるかどうかを示す。本発明のこうした実施形態においては、バイナリ値「０」（Ｂ’０’で示される）は、コード・ポイントが正規化されていないことを示す。逆に、Ｂ’１’（バイナリ「１」）は、処理されるべきコード・ポイントがテキスト・オブジェクト生成部によって正規化されていることを示す。コード・ポイントが正規化されていない場合には、ステップ４０４においてユニコード正規化が適用される。非特許文献４に記載されたユニコード正規化書式のいずれかを、本発明と組み合わせて用いることができる。
【００３２】
ステップ４０６において、ｂｉｄｉ処理がＵＣＴ制御シーケンスに従うコード・ポイントに適用されるかどうかが判定される。表１のＵＣＴ制御シーケンスを用いる本発明の実施形態においては、これは、ＢＩＤＩＣＴパラメータを試験することによって判定される。こうした実施形態においては、複合テキスト・コード・ポイントの処理における幾つかの代替法が指定されてもよく、これらの代替法は、ｂｉｄｉ処理がイネーブルにされているかどうかに応じて、マルチウェイ決定ブロック４０８及び４１０によって表される。マルチウェイ決定ブロック４０８及び４１０の各々は、ＵＣＴ制御シーケンスにおけるＢＩＤＩＣＴパラメータの値に対応する。（プログラミング技術の当業者には理解されるように、Ｃ又はＣ＋＋のような多くの高レベル・プログラミング言語は、ＳＷＩＴＣＨステートメントの形式のマルチウェイ決定ブロックを与える。さらに、こうした実装においては、決定ブロック４０６は、ブロック４０８及び４１０と共に実行されるが、図４においては、これらは明確にするために別々に示されている。）
【００３３】
前述のようなユニコード文字の双方向特性とテキスト・パラグラフの固有の方向特性のために、複合ユニコード・テキスト処理と非複合テキスト処理との統合を容易にするべく、ユニコード処理環境内で方向性制御を提供することが望ましい。したがって、マルチウェイ決定ブロック４０８において、ｂｉｄｉ処理がイネーブルにされ（１６進法の値Ｘ’０２’、Ｘ’０４’、Ｘ’０５’、Ｘ’１２’及びＸ’１３’の１つによって表される）、パラグラフ方向がＢＩＤＩＣＴパラメータの値に応答して設定される。ステップ４０８ａにおいて、パラグラフ方向は、コード・ポイント・ストリームにおいて出会った最初の方向性の強い文字に基づいているセットである（ユニコード規格は、ユニコード文字を方向性の強いクラスを含む幾つかのクラスの１つに分類する。）。ステップ４０８ａは、ＢＩＤＩＣＴパラメータ値がＸ’０２であることに対応する。ステップ４０８ｂにおいて、パラグラフ方向は、左から右に設定される（Ｌ−＞Ｒ）。ステップ４０８ｂは、Ｘ’０４’のＢＩＤＩＣＴパラメータ値に対応する。ステップ４０８ｃにおいて、パラグラフ方向は右から左（Ｒ−＞Ｌ）に設定される。ステップ４０８ｃは、Ｘ’０５’のＢＩＤＩＣＴパラメータ値に対応する。ステップ４０８ｄにおいて、パラグラフ方向は、現在のテキスト・オブジェクトにおける最後に処理された複合テキスト・ストリングを用いて設定され、そうではなく、現在のストリングがテキスト・オブジェクトにおいて出会う最初の複合テキスト・ストリングである場合には、方向は、出会った最初の方向性の強い文字に基づいている。ステップ４０８ｄは、Ｘ’１２’及びＸ’１３’のＢＩＤＩＣＴパラメータ値に対応している。パラグラフ方向が判定できない場合には、デフォルトがＬ−＞Ｒ（Ｘ’１２’）及びＲ−＞Ｌ（Ｘ’１３’）の１つに設定される。ステップ４１２において、複合テキスト・ストリングの終点のテキスト位置が判定される。ステップ４１２と組み合わせて用いられるテキスト位置を判定するプロセスは、後述する図６に示されている。プロセス４００はステップ４１４において終了する。
【００３４】
ｂｉｄｉ処理がディスエーブルにされる場合には（６進法の値Ｘ’２０’、Ｘ’２２’、及びＸ’２３’の１つによって表される）、パラグラフ方向情報は用いられず、マルチウェイ決定ブロック４１０において、テキスト方向は、ＢＩＤＩＣＴパラメータの３つの値の１つに従って設定される。ステップ４１０ａにおいて、テキスト方向は、現在のインライン方向に設定される。（インライン方向は図形文字をおくのに用いられる２つの座標方向の１つに対応し、連続する文字がテキストのラインに現れる方向を表す。）ベースライン方向と呼ばれる他の方向は、論理頁上にテキストの連続するラインが現れる方向を表す。コード・ポイントは、それらがＴＲＮ制御シーケンスに含まれたかのように処理される。ステップ４１０ａは、Ｘ’２０’のＢＩＤＩＣＴパラメータ値に対応する。ステップ４１０ｂにおいて、コード・ポイントは、左から右への一方向実行において処理され、ステップ４１０ｃにおいて、コード・ポイントは、右から左への一方向実行において処理される。ステップ４１０ｂ及び４１０ｃは、それぞれ、Ｘ’２２’及びＸ’２３’のＢＩＤＩＣＴパラメータ値に対応する。プロセス４００はステップ４１４において終了する。
【００３５】
ここで図５を参照すると、本発明の実施形態に係るグリフ処理方法５００がフローチャート形式で示されている。図４のステップ４０２及び４０４と組み合わせて既に説明されたように、フォーマッターによって既に正規化されていない場合には、ステップ５０２及びステップ５０４において、処理されるユニコード複合テキストが正規化される。
【００３６】
ステップ５０６において、ＵＣＴ制御シーケンスに従うコード・ポイントにグリフ処理が適用されるかどうかが決定される。表１のＵＣＴ制御シーケンスを用いる本発明の実施形態においては、これは、ＧＬＹＰＨＣＴパラメータを試験することによって判定される。このパラメータのＸ’０１’の値は、グリフ処理がイネーブルにされたことを示し、プロセス５００がステップ５０８に進む。Ｘ’２０’の値は、グリフ処理をディスエーブルにし、プロセス５００がステップ５０５で終了する。例えば、ヘブライ語は、一般に、母音マークなしに書かれる。こうした場合には、テキストは、ｂｉｄｉプロセスに従って文字を再順序付けすることによって正確にレンダリングすることができる。
【００３７】
ステップ５０８において、レイアウト・エンジンを呼び出すことによってグリフがレイアウトされる。レイアウト・エンジンは、ユニコード文字ストリングにスクリプト特有のルールを適用する。一般にフォント内で与えられる付加的なテーブルを用いるこれらのルールは、適切なグリフを選択し、位置決めするのに用いられる。グリフのレイアウトは、エンドユーザのコミュニティのロケールに依存する。これは、データ・ストリーム内のＰＴＯＣＡテキスト・オブジェクトに結び付けられるＭＯ：ＤＣＡ構造化フィールドにおいて指定され、ロケールは、文書作成者の意図を反映し、作成ロケールと呼ばれることもある。作成ロケールが指定されない場合には、書式マップのＭＯ：ＤＣＡ構造化フィールドにおいてジョブがサブミットされたときにロケールを指定することが望ましい。サブミット・ロケールは、作成ロケールの存在とは無関係に含めることができることに注意されたい。従って、ロケールは、作成ロケール及びサブミッション・ロケールによって２つの方法で指定することができる。この２つの方法の間に競合が存在する場合には、作成ロケールはサブミッション・ロケールをオーバーライドしてもよい。したがって、本発明の原理に係るＭＯ：ＤＣＡ制御シーケンス・トリプレットは、データ・ストリーム又は書式マップに含めることができ、従ってロケールは、ステップ５０８で呼び出されたレイアウト・エンジンに渡される。使用可能なＭＯ：ＤＣＡトリプレット（ロケール・セレクタ・トリプレット）は、表ＩＩＩにおいて定義される。ロケール・セレクタ・トリプレットの構文は、前述のＭＯ：ＤＣＡトリプレットの構造に適合する。
【００３８】
【表３】
2007527810.tif 000005
【００３９】
ロケール情報は、３つのパラメータ、すなわちＬａｎｇＣｄｅ、ＳｃｒｉｐｔＣｄｅ及びＲｅｇＣｄｅに含まれる。パラメータＬａｎｇＣｄｅは、ＩＳＯ−６３９規格における定義に従って言語コードを指定する。パラメータＳｃｒｉｐｔＣｄｅは、ＩＳＯ−１５９２４ベースのスクリプト・コードを指定し、パラメータＲｅｇＣｄｅは、ＩＳＯ−３１６６規格に従って地域コードを指定する。さらに、ＬｏｃＦｌｇｓパラメータは、言語、スクリプト及び地域コード・パラメータのための構文情報を提供するのに用いられる。これは、ビット・エンコードされたパラメータであり、ビット０−３の値は、言語コード構文を指定する。これらのビットが値Ｂ’０００’を有する場合には、言語コードは指定されず、パラメータ言語コードのパラメータは無視される。Ｂ’０１０’の値は、ＩＳＯ−６３９−１において定義された２文字言語識別子を用いて言語コードが指定されることを示し、Ｂ’０１１’の値は、ＩＳＯ−６３９−２において定義された３文字言語識別子を用いて言語コードが指定されることを示す。同様に、ビット４は、スクリプト・コード構文を識別し、Ｂ’０’の値は、スクリプト・コードが指定されず、スクリプト・コード・パラメータが無視されることを示す。Ｂ’１’の値は、ＩＳＯ１５９２４において定義された４文字スクリプト識別子を用いてスクリプト・コードが指定されることを示す。ビット５−７は、地域コード構文を指定し、Ｂ’０００’の値は、地域コードが指定されず、地域コード・パラメータが無視されることを再び示す。Ｂ’０１０’の値は、ＩＳＯ−３１６６−１において定義された２文字地域識別子を用いて地域コードが指定されることを示し、Ｂ’０１１’の値は、ＩＳＯ−３１６６−１において定義された３文字地域識別子を用いて地域コードが指定されることを示す。
【００４０】
図５を参照すると、複合テキストの終点のテキスト位置がステップ５１０において判定される。
【００４１】
ここで図６を参照すると、本発明の原理に係るユニコード複合テキスト・ストリングの終点のテキスト位置を判定するためのプロセス６００がフローチャート形式で示されている。プロセス６００は、図４のステップ４１２及び図５のステップ５１０の実施形態を提供するのに用いることができる。プロセス６００は、ＵＣＴ制御シーケンスと組み合わせて動作し、それは、上記の表１の構文を用いて実現することができる。
【００４２】
特に、ＣＴＦＬＧＳパラメータのビット３値を用いて、ユニコード複合テキストの完了時のテキスト位置を制御することができる。ステップ６０２においては、ＣＴＦＬＧＳパラメータのビット３が試験され、値がＢ’１’である場合には、ステップ６０４において複合テキストが処理されたときに現在のインライン位置は前進させられない。プロセス６００は、ステップ６０６において終了する。逆に、ＣＴＦＬＧＳパラメータのビット３がＢ’０’の値を有する場合には、ブロック６０８において２方向スイッチが実行される。
【００４３】
ステップ６０８ａにおいて、ユニコード複合テキストを位置決めするために複合テキストＩｃの処理開始時の現在位置が用いられた場合には、ステップ６１０において、複合テキストＩｃの処理開始時の現在位置の和と、ユニコード複合テキストを構成する書記素のための全てにわたる増分の和として新たな位置Ｉｃｎｅｗが決定される。ステップ６０８ａにおける決定は、ＣＴＦＬＧＳパラメータのビット１を試験することによってもたらされる。このビットは、代替位置値（ＡＬＴＩＰＯＳパラメータ）が有効であるかを示す。Ｂ’０’の値はＡＬＴＩＰＯＳパラメータが無効であることを示し、それにより複合テキストを位置決めするためにＩｃが用いられる。
【００４４】
ステップ６０８ｂにおいて、複合テキスト処理開始時にテキストを位置決めするために代替位置Ｉａが用いられた場合には（ＣＴＦＬＧＳパラメータ・ビット１に対するＢ’１’の値）、ステップ６１２において、新たな位置ＩｃｎｅｗがＩａに設定される。パラグラフ方向が現在の書き込みモードとは反対方向であるときには、代替インライン位置を用いてもよい。書き込みモードは、書き込みシステムにおけるテキストの設定のためのモードを定義し、普通は、連続する図形文字が、例えば左から右に、右から左に、上から下に形成される公称の方向に対応する。書き込みモードは、例えば、表示データ・ストリーム内のテキスト・オブジェクトのフォント・オブジェクト・アーキテクチャによって、ＵＣＴ制御シーケンスの前に決定される。例えば、左から右へのパラグラフ方向を有する英語又はそれに類似のラテン・アルファベット言語を主としたテキスト・ストリームのレンダリングを考察する。書き込みモードは左から右である。テキスト・パラグラフは通常は左寄せである。テキスト・ストリームにおいて、例えば、アラビア語又はヘブライ語といった、右から左のパラグラフ方向を用いる言語に出会った場合には、そうしたテキストを右寄せに適正にレンダリングするために代替インライン位置パラメータが用いられてもよい。
【００４５】
図７は、本発明に係るデータ処理システム７００の例示的なハードウェア構成を示す。図３−図６に示された方法と組み合わせたシステムを、ユニコード複合テキスト・プロセスを制御し、処理するのに用いることができる。データ処理システム７００は、従来のマイクロプロセッサのような中央演算処理装置（ＣＰＵ）７１０と、システム・バス７１２を介して相互接続された多くの他のユニットとを含む。データ処理システム７００はまた、ランダム・アクセス・メモリ（ＲＡＭ）７１４と、読み出し専用メモリ（ＲＯＭ）７１６と、不揮発性記憶装置７２０のような周辺機器をバス７１２に接続するための入力／出力（Ｉ／Ｏ）アダプタ７１８とを含む。システム７００はまた、データ処理システム７００をデータ処理ネットワークに接続して、システムが他のシステムと通信することを可能にする、通信アダプタ７３４を含む。ＣＰＵ７１０は、例えば、演算実行ユニット、バス・インターフェース・ユニット、演算論理ユニットなどのマイクロプロセッサ内に一般に見出される回路を含む、ここでは示されていない他の回路を含んでもよい。ＣＰＵ７１０はまた、単一の集積回路上に存在してもよい。
【００４６】
本発明の好ましい実装は、ここで説明される１つ又はそれ以上の方法を実行するようにプログラムされたコンピュータ・システムとしての実装と、コンピュータ・プログラム製品としての実装を含む。コンピュータ・システムの実装によれば、１つ又はそれ以上の方法を実行するための命令の組は、前述のように全体として構成された１つ又はそれ以上のコンピュータ・システムのランダム・アクセス・メモリ７１４に存在する。システム・コンポーネントと組み合わされたこれらの命令の組は、前述のようにユニコード複合テキスト処理の制御を実行する。コンピュータ・システムによって要求されるまで、命令の組は、別のコンピュータ・メモリに、例えば、不揮発性記憶装置７２０に（不揮発性記憶装置７２０において最終的に使用するための光ディスク、ディスケット、ＣＤ−ＲＯＭ、又はフラッシュ・メモリのような取り外し可能メモリを含む）コンピュータ・プログラム製品として保存される。さらに、コンピュータ・プログラム製品はまた、ネットワークによって、又はインターネットのような外部ネットワークによって、別のコンピュータに保存し、ユーザのワークステーションに送信することができる。命令の組の物理的記憶は、保存される媒体を物理的に変化させて、媒体がコンピュータ可読情報をもつようにすることを当業者であれば認識するであろう。変化は、電気的変化、磁気的変化、化学的変化、生物学的変化、又はその他の物理的変化とすることができる。本発明を、命令、記号、文字などの点で都合よく説明したが、読者は、これらの全ての類似語は、適切な物理的要素と関連付けられるべきであることに留意されたい。
【００４７】
本発明は、比較、評価、選択、識別といった用語、又は人間のオペレータと関連付けられる他の用語で説明されていることに注意されたい。しかしながら、少なくとも１つの実施形態の一部を形成する、ここで説明された少なくとも幾つかの動作は、人間のオペレータによる動作が望ましいというわけではない。説明された動作は、大部分は、他の電気信号を生成するために電気信号を処理する機械動作である。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態に係る印刷システムを示す図である。
【図２】本発明の実施形態に係るユニコード・データ・ストリームにおける複合テキストを識別する方法をフローチャート形式で示す図である。
【図３】本発明の実施形態に係るユニコード複合テキストを処理する方法をフローチャート形式で示す図である。
【図４】本発明の実施形態に係る双方向の（ｂｉｄｉ）ユニコード・テキスト処理方法をフローチャート形式で示す図である。
【図５】本発明の実施形態に係るユニコード・グリフ処理方法をフローチャート形式で示す図である。
【図６】本発明の実施形態に係るテキスト位置を判定する方法をフローチャート形式で示す図である。
【図７】図３−図６のプロセスを実行するのに用いられるデータ処理システムをブロック図形式で示す図である。
【符号の説明】
【００４９】
１０１：アプリケーション
１０２：クライアント・コンピュータ
１０３：スプール
１０４：印刷サーバ
１０５：プリンタ・ドライバ
１０６：リソース・ライブラリ
１０７：プリンタ
１０８：制御ユニット
１０９：メモリ
【図１】
2007527810.tif 000006
【図２】
2007527810.tif 000007
【図３】
2007527810.tif 000008
【図４】
2007527810.tif 000009
【図５】
2007527810.tif 000010
【図６】
2007527810.tif 000011
【図７】
2007527810.tif 000012
【国際調査報告】
2007527810.tif 000013
2007527810.tif 000014
2007527810.tif 000015