(57)【要約】      （修正有）【課題】既存の植字アプリケーションでサポートされていないオブジェクトを含み得るマークアップ言語で書かれた文書を既存の植字アプリケーションを用いてレンダリングする方法の提供。【解決手段】文書を構文解析し、植字アプリケーションによってネイティブにサポートされていないオブジェクトを特定し、特定されたオブジェクトに関するバウンディングボックス情報を含む情報を抽出する工程を含む。植字アプリケーションは呼び出され、植字アプリケーションには特定されたオブジェクトに関するバウンディングボックス情報と特定されたオブジェクトを無視せよとの命令が付与される。植字アプリケーションの出力が構文解析され、特定されたオブジェクトに対応するレイアウト情報が決定され、特定されたオブジェクトは対応するレイアウト情報を用いて処理される。開示の方法によりＴｅＸ植字アプリケーションをＯＯＸＭＬ中で指定される文書と共に使用できる。【選択図】図３
2011175629.tif 000002
【特許請求の範囲】
【請求項１】
文書中の少なくとも一のページを植字アプリケーションを用いてレンダリングするための、プロセッサによって実行される方法であって、前記文書はマークアップ言語を用いて記述され、前記マークアップ言語は、前記植字アプリケーションによってネイティブにサポートされていないオブジェクトを含み、前記方法は、
前記文書を構文解析して、前記植字アプリケーションによってネイティブにサポートされていない少なくとも一のオブジェクトを特定し、前記特定されたオブジェクトに関するバウンディングボックス情報を含む情報を抽出する工程と、
前記植字アプリケーションを呼び出す工程であって、前記植字アプリケーションには、前記特定されたオブジェクトに関するバウンディングボックス情報と、前記特定されたオブジェクトを無視せよとの命令とが付与される工程と、
前記植字アプリケーションの出力を構文解析して、前記特定されたオブジェクトに対応するレイアウト情報を決定する工程と、
前記特定されたオブジェクトに対応する前記レイアウト情報を用いて、前記特定されたオブジェクトを処理する工程と、を含む。
【請求項２】
前記文書はＯＯＸＭＬで記述される、請求項１に記載の、プロセッサによって実行される方法。
【請求項３】
前記植字アプリケーションはＴｅＸである、請求項１に記載の、プロセッサによって実行される方法。
【請求項４】
前記植字アプリケーションは、入力された前記特定されたオブジェクトと関連付けられたテキストを前記植字アプリケーションによって生成された前記出力内に複製することにより、前記特定されたオブジェクトを無視せよとの前記命令に応答する、請求項１に記載のプロセッサによって実行される方法。
【請求項５】
前記植字アプリケーションは、前記特定されたオブジェクトに関する前記バウンディングボックス情報に基づいて、前記特定されたオブジェクトについてのレイアウト情報を計算する、請求項１に記載の、プロセッサによって実行される方法。
【請求項６】
前記少なくとも一の特定されたオブジェクトは、グラフィックスオブジェクトまたは画像オブジェクトであり得る、請求項１に記載のプロセッサによって実行される方法。
【請求項７】
前記方法は、
コンピュータ、
プリンタ、または
コンピュータに接続されたプリンタ、
において行われる、請求項１に記載の、プロセッサによって実行される方法。
【請求項８】
前記特定されたオブジェクトに対応するレイアウト情報を用いて前記少なくとも一の特定されたオブジェクトを処理する工程は、
前記ページ上の前記少なくとも一の特定されたオブジェクトの位置を設定する工程と、
前記特定されたオブジェクトが画像オブジェクトである場合、前記少なくとも一の特定されたオブジェクトと関連付けられたファイルからネイティブ画像データを読み出す工程と、
前記特定されたオブジェクトがグラフィックオブジェクトである場合、前記少なくとも一の特定されたオブジェクトを処理するための適切なグラフィックスライブラリルーチンを呼び出す工程と、
前記オブジェクトが再利用される場合、前記少なくとも一の特定されたオブジェクトをマーク付けする工程と、
前記オブジェクトがマーク付けされていない場合、前記少なくとも一の特定されたオブジェクトを削除する工程と、
をさらに含む、請求項１に記載の、プロセッサによって実行される方法。
【請求項９】
前記植字アプリケーションによって提供されるレイアウト情報に基づいて、前記少なくとも一のページを前記少なくとも一の特定されたオブジェクトと共にレンダリングする工程をさらに含む、請求項１に記載の、プロセッサによって実行される方法。
【請求項１０】
命令を保存するコンピュータ可読媒体であって、前記命令は、プロセッサによって実行されると、文書中の少なくとも一のページを植字アプリケーションを用いてレンダリングする方法を行い、前記文書はマークアップ言語を用いて記述され、前記マークアップ言語は、前記植字アプリケーションによってネイティブにサポートされていないオブジェクトを含み、前記方法は、
前記文書を構文解析して、前記植字アプリケーションによってネイティブにサポートされていない少なくとも一のオブジェクトを特定し、前記特定されたオブジェクトに関するバウンディングボックス情報を含む情報を抽出する工程と、
前記植字アプリケーションを呼び出す工程であって、前記植字アプリケーションには、前記特定されたオブジェクトに関するバウンディングボックス情報および前記特定されたオブジェクトを無視せよとの命令が付与される工程と、
前記植字アプリケーションの出力を構文解析して、前記特定されたオブジェクトに対応するレイアウト情報を決定する工程と、
前記特定されたオブジェクトに対応する前記レイアウト情報を用いて、前記特定されたオブジェクトを処理する工程と、
を含む、コンピュータ可読媒体。
【請求項１１】
前記文書はＯＯＸＭＬで記述される、請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記植字アプリケーションはＴｅＸである、請求項１０に記載のコンピュータ可読媒体。
【請求項１３】
前記植字アプリケーションは、入力された前記特定されたオブジェクトと関連付けられたテキストを前記植字アプリケーションによって生成された前記出力内に複製することにより、前記特定されたオブジェクトを無視せよとの前記命令に応答する、請求項１０に記載のコンピュータ可読媒体。
【請求項１４】
前記植字アプリケーションは、前記特定されたオブジェクトに関する前記バウンディングボックス情報に基づいて、前記特定されたオブジェクトについてのレイアウト情報を計算する、請求項１０に記載のコンピュータ可読媒体。
【請求項１５】
前記少なくとも一の特定されたオブジェクトは、グラフィックスオブジェクトまたは画像オブジェクトであり得る、請求項１０に記載のコンピュータ可読媒体。
【請求項１６】
前記方法は、
コンピュータ、
プリンタ、または
コンピュータに接続されたプリンタ、
において行われる、請求項１０に記載のコンピュータ可読媒体。
【請求項１７】
前記特定されたオブジェクトに対応するレイアウト情報を用いて前記少なくとも一の特定されたオブジェクトを処理する工程は、
前記ページ上の前記少なくとも一の特定されたオブジェクトの位置を設定する工程と、
前記特定されたオブジェクトが画像オブジェクトである場合、前記少なくとも一の特定されたオブジェクトと関連付けられたファイルからネイティブ画像データを読み出す工程と、
前記特定されたオブジェクトがグラフィックオブジェクトである場合、前記少なくとも一の特定されたオブジェクトを処理するための適切なグラフィックスライブラリルーチンを呼び出す工程と、
前記オブジェクトが再利用される場合、前記少なくとも一の特定されたオブジェクトをマーク付けする工程と、
前記オブジェクトがマーク付けされていない場合、前記少なくとも一の特定されたオブジェクトを削除する工程と、
をさらに含む、請求項１０に記載のコンピュータ可読媒体。
【請求項１８】
命令を保存するコンピュータ可読メモリであって、前記命令は、プロセッサによって実行されると、文書中の少なくとも一のページを植字アプリケーションを用いてレンダリングする方法を行い、前記文書はマークアップ言語を用いて記述され、前記マークアップ言語は、前記植字アプリケーションによってネイティブにサポートされていないオブジェクトを含み、前記方法は、
前記文書を構文解析して、前記植字アプリケーションによってネイティブにサポートされていない少なくとも一のオブジェクトを特定し、前記特定されたオブジェクトに関するバウンディングボックス情報を含む情報を抽出する工程と、
前記植字アプリケーションを呼び出す工程であって、前記植字アプリケーションには、前記特定されたオブジェクトに関するバウンディングボックス情報および前記特定されたオブジェクトを無視せよとの命令が付与される工程と、
前記植字アプリケーションの出力を構文解析して、前記特定されたオブジェクトに対応するレイアウト情報を決定する工程と、
前記特定されたオブジェクトに対応する前記レイアウト情報を用いて前記特定されたオブジェクトを処理する工程と、
を含む、コンピュータ可読メモリ。
【請求項１９】
前記文書はＯＯＸＭＬで記述される、請求項１８に記載のコンピュータ可読メモリ。
【請求項２０】
前記植字アプリケーションはＴｅＸである、請求項１８に記載のコンピュータ可読メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、印刷分野に関し、特に、マークアップ言語によって記述された印刷可能データのレンダリングに関するシステムおよび方法に関する。
【背景技術】
【０００２】
文書処理ソフトウェアにより、ユーザは、文書の視認、編集、処理、保存および印刷を簡便に行うことができる。しかし、文書が印刷可能な状態になる前の段階での文書コンテンツは、マークアップ言語で記述されていることが多い。マークアップ言語により、文書のテキスト注釈が得られる。文書の部分間の構造的関係を指定するために記述的マークアップ言語を用いることができるものの、当該文書をどのようにレンダリングしてエンドユーザに提示するかについての命令は全く得られないことが多い。一方、手続きマークアップ言語および提示マークアップ言語中には、文書コンテンツをどのようにレンダリングすべきかについて詳述する命令が含まれる場合がある。
【０００３】
記述的マークアップ言語を用いて記述された文書をレンダリングする場合、植字プログラムを用いて、当該文書をどのようにしてユーザに提示するかを決定することができる。例えば、ＴｅＸなどの植字システムを用いて、最終提示前に文書を植字し、印刷可能なデータの、１ページ上におけるフォーマットおよび位置を指定することができる。植字システムは、未フォーマットのテキストおよびコマンドを入力として受け取り、フォーマットされた（レイアウトされた）テキストを出力として生成することができる。しかし、オフィスオープンエクステンシブルマークアップ言語（「ＯＯＸＭＬ」）などの現在におけるマークアップ言語には、植字システムによって処理できない印刷可能データの記述が含まれる可能性があるため、現在の状況では、文書のレンダリング用途のために植字システムを用いると問題が発生する可能性がある。例えば、植字システムによるベクトルグラフィックおよび画像データの処理が不可能な場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＯＯＸＭＬなどのマークアップ言語によって記述できる多様な印刷可能オブジェクトを既存の植字システムで処理できない場合、現実面では既存の植字システムの使用が制限され得る。加えて、植字に関連する複雑性に起因して、マークアップ言語中の新規オブジェクトに対応する新しい植字ソフトウェアを開発するのは高コストでありかつ非現実的かもしれない。そのため、マークアップ言語内に存在する、既存の植字システムでは通常処理しないであろう非テキストオブジェクトおよび他のオブジェクトのレンダリングを、当該植字システムによって処理可能にするためのシステムおよび方法が必要とされている。
【課題を解決するための手段】
【０００５】
開示される実施形態に基づいて、マークアップ言語内に規定されている印刷可能データを既存の植字システムを用いてレンダリングするためのシステムおよび方法が提示される。いくつかの実施形態において、文書中の少なくとも１つのページを植字アプリケーションを用いてレンダリングする方法であって、前記文書はマークアップ言語を用いて記述され、前記マークアップ言語は、前記植字アプリケーションによってネイティブにサポートされていないオブジェクトを含み、前記方法は、前記文書を構文解析して、前記植字アプリケーションによってネイティブにサポートされていない少なくとも１つのオブジェクトを特定し、前記特定されたオブジェクトに関するバウンディングボックス情報を含む情報を抽出する工程と、前記植字アプリケーションを呼び出す工程であって、前記植字アプリケーションには、前記特定されたオブジェクトに関するバウンディングボックス情報と、前記特定されたオブジェクトを無視せよとの命令とが付与される、工程と、前記植字アプリケーションの出力を構文解析して、前記特定されたオブジェクトに関するレイアウト情報と、前記特定されたオブジェクトとを相関付ける工程と、前記特定されたオブジェクトに対応するレイアウト情報を用いて前記特定されたオブジェクトを処理する工程とを含み得る。
【０００６】
開示される実施形態は、コンピュータ可読媒体またはコンピュータ可読メモリを用いてプロセッサによって生成、保存、アクセスまたは改変された方法にも関する。
【０００７】
上記および他の実施形態について、以下の図面を参照してさらに説明する。
【図面の簡単な説明】
【０００８】
【図１】図１は、マークアップ言語中に規定された印刷可能データを既存の植字システムを用いてレンダリングするためのシステム中の例示的構成要素を示すブロック図である。
【図２】図２は、マークアップ言語中に規定された印刷可能データを既存の植字システムを用いてレンダリングするためのアプリケーションを実行することが可能な例示的プリンタの高レベルブロック図を示す。
【図３】図３は、マークアップ言語中に規定された印刷可能データを既存の植字システムを用いてレンダリングするためのアプリケーションの一部を実行する方法における工程を示す例示的プロセスフローを示す。
【図４】図４は、ＯＯＸＭＬ文書をＴｅＸ植字アプリケーションを用いて処理する例示的方法を示すフローチャートを示す。
【図５】図５は、例示的方法４００において用いられる非ＴｅＸオブジェクトを処理する工程４５０の詳細を示すフローチャートを示す。
【発明を実施するための形態】
【０００９】
開示される実施形態の多様な特徴を反映する実施態様に従って、マークアップ言語中に規定された印刷可能データを既存の植字システムを用いてレンダリングするためのシステムおよび方法が提示される。いくつかの実施形態において、上記印刷可能データは、文書におけるマークアップ言語記述の形態をとり得る。例えば、文書はＯＯＸＭＬを用いて記述されてもよく、上記技術を用いた文書をＴｅＸなどの植字ソフトウェアを用いてレンダリングし得る。これらの技術は、当業者にとって自明の多様な様態で拡張することができる。従来のシステムにおいて、植字ソフトウェアは、マークアップ言語によってサポートされた一以上のオブジェクトをサポートしない場合がある点に留意されたい。例えば、ＴｅＸは、ＯＯＸＭＬを用いて記述され得るベクトルグラフィックスオブジェクトおよび画像オブジェクトの植字を単独ではサポートしない。
【００１０】
図１は、マークアップ言語中に規定された印刷可能データを既存の植字システムを用いてレンダリングするためのシステム中の構成要素を示すブロック図を示す。開示の実施形態に基づいたコンピュータソフトウェアアプリケーションは、図１に示すように、コンピュータのネットワーク上で展開され得る。これらのコンピュータは、従来の通信プロトコルおよび／またはデータポートインターフェースを介した情報のやりとりを可能にする通信リンクを通じて接続される。
【００１１】
図１に示すように、例示的システム１００は、計算装置１１０およびサーバ１３０を含むコンピュータを含む。さらに、計算装置１１０およびサーバ１３０は、ネットワーク１４０を通過し得る接続１２０を介して通信し得る。ネットワーク１４０は、一例においてインターネットであってもよい。計算装置１１０は、コンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、またはネットワーク環境において使用することが可能な他の任意の計算装置であってもよい。サーバ１３０は、計算装置１１０および他のデバイス（図示せず）へ接続することが可能なプラットフォームであってもよい。計算装置１１０およびサーバ１３０は、プリンタ１７０を用いた文書の印刷を可能にするソフトウェア（図示せず）を実行し得る。
【００１２】
例示的プリンタ１７０は、電子データから物理的文書を生成する種々のデバイスを含む。このようなデバイスを非限定的に挙げると、レーザプリンタ、インクジェットプリンタ、ＬＥＤプリンタがある。例示的プリンタ１７０は、プロッター、ファクシミリ装置、多機能デバイス、デジタルコピー機などの形態をとり得る。いくつかの実施形態において、プリンタ１７０は、接続１２０を介して計算装置１１０またはサーバ１３０から受信された文書を直接印刷することもできる。いくつかの実施形態において、このような配置構成により、計算装置１１０またはサーバ１３０によるさらなる処理が有っても（あるいは無くても）文書を直接印刷することが可能になり得る。いくつかの実施形態において、文書は、ＯＯＸＭＬなどのマークアップ言語を用いて記述されてもよく、テキスト、グラフィックおよび画像の一以上を含み得る。いくつかの実施形態において、プリンタ１７０は、文書のＯＯＸＭＬ記述を印刷対象として受信し得る。文書印刷処理は分散させることが可能である点にも留意されたい。よって、プリンタ１７０によって文書を物理的に印刷する前に、計算装置１１０、サーバ１３０および／またはプリンタにより、マークアップ言語の構文解析、事前処理、植字、ラスタライゼーション、ハーフトーニング、カラーマッチングおよび／または他の操作プロセスのような文書印刷処理の一部を行うことができる。
【００１３】
計算装置１１０は、リムーバブルメディアドライブ１５０も含む。リムーバブルメディアドライブ１５０は、例えば、３．５インチフロッピードライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤＲＯＭドライブ、ＣＤ±ＲＷまたはＤＶＤ±ＲＷドライブ、ＵＳＢフラッシュドライブおよび／または開示の実施形態に従った他の任意のリムーバブルメディアドライブを含み得る。いくつかの実施形態において、ソフトウェアアプリケーションの一部をリムーバブルメディアに内在させ、計算装置１１０によってリムーバブルメディアドライブ１５０を用いて上記ソフトウェアアプリケーションの読み出しおよび実行を行ってもよい。
【００１４】
接続１２０は、計算装置１１０、サーバ１３０およびプリンタ１７０を接続し、従来の通信プロトコルおよび／またはデータポートインターフェースを用いて有線または無線接続として実行され得る。一般的に、接続１２０は、デバイス間のデータ送信を可能にするものであれば任意の通信チャンネルでよい。一実施形態において、例えば、上記デバイスに、適切な接続を介したデータ送信のためのパラレルポート、シリアルポート、イーサネット、ＵＳＢ、ＳＣＳＩ、ＦＩＲＥＷＩＲＥおよび／または同軸ケーブルポートのような従来のデータポートが設けられ得る。これらの通信リンクは、無線リンクまたは有線リンクであってもよいし、あるいは、上記の多様なデバイス間の通信を可能にする開示の実施形態に従った任意の組み合わせであってもよい。
【００１５】
ネットワーク１４０は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）またはインターネットを含み得る。プリンタ１７０は、接続１２０を通じてネットワーク１４０に接続され得る。いくつかの実施形態において、プリンタ１７０は、計算装置１１０および／またはサーバ１３０に直接接続してもよい。システム１００は、いくつかの実施形態に従って、他の周辺デバイス（図示せず）も含み得る。開示の実施形態に従ったコンピュータソフトウェアアプリケーションが、図１に示すように、例示的コンピュータのうち何れかにおいて展開され得る。例えば、計算装置１１０は、サーバ１３０から直接ダウンロード可能なソフトウェアを実行し得る。開示の実施形態に従って、上記アプリケーションの一部をプリンタ１７０によって実行してもよい。
【００１６】
図２は、マークアップ言語中に規定された印刷可能なデータを既存の植字システムを用いてレンダリングするためのアプリケーションを実行することが可能な例示的プリンタ１７０の高レベルブロック図を示す。いくつかの実施形態において、プリンタ１７０は、ＣＰＵ１７６、ファームウェア１７１、メモリ１７２、入力／出力ポート１７５、印刷エンジン１７７および二次記憶装置１７３を接続するバス１７４を含み得る。プリンタ１７０はまた、マークアップ言語中に規定された印刷可能データを既存の植字システムを用いてレンダリングするためのアプリケーションの一部を開示の実施形態に従った様態で実行することが可能な他の特定用途向け集積回路（ＡＳＩＣ）および／またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）１７８も含み得る。いくつかの実施形態において、プリンタ１７０はまた、Ｉ／Ｏポート１７５および接続１２０を用いて計算装置１１０中の二次記憶装置または他のメモリにアクセスし得る。いくつかの実施形態において、プリンタ１７０は、プリンタオペレーティングシステム、文書構文解析ソフトウェア、ラスタライゼーションおよび植字ソフトウェアおよび他の適切なアプリケーションソフトウェアを含むソフトウェアも実行し得る。いくつかの実施形態において、プリンタ１７０は、選択肢のうち、用紙サイズ、出力トレイ、色選択および印字解像度をユーザが構成できるようにし得る。
【００１７】
いくつかの実施形態において、ＣＰＵ１７６は、汎用プロセッサ、専用プロセッサまたは組み込みプロセッサであり得る。ＣＰＵ１７６は、制御情報および命令などのデータをメモリ１７２および／またはファームウェア１７１とやりとりすることができる。メモリ１７２は、任意の種類のダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）であり得る。このようなダイナミックランダムアクセスメモリを非限定的に挙げると、ＳＤＲＡＭまたはＲＤＲＡＭがある。ファームウェア１７１は、命令およびデータを保持し得る。このような命令およびデータを非限定的に挙げると、文書構文解析、言語処理、ラスタライゼーション、植字およびハーフトーニング、ルーチンならびに他のコードのためのブートアップシーケンスおよび事前規定されたルーチンがある。いくつかの実施形態において、ファームウェア１７１中のコードおよびデータは、ＣＰＵ１７６によって機能させられる前にメモリ１７２にコピーされ得る。ファームウェア１７１中のルーチンは、ＯＯＸＭＬなどのマークアップ言語を用いて記述された文書を処理および印刷するためのコードを含み得る。上記文書は、計算装置１１０から受信され得る。いくつかの実施形態において、ファームウェア１７１は、ＴｅＸなどの既存の植字プログラムを呼び出すルーチンと、ディスプレイリストを適切なピックスマップに生成およびラスター化し、該ピックスマップをメモリ１７２内に保存するルーチンとを含み得る。ファームウェア１７１はまた、圧縮ルーチンおよびメモリ管理ルーチンも含み得る。いくつかの実施形態において、ファームウェア１７１中のデータおよび命令は更新可能である。
【００１８】
いくつかの実施形態において、ＣＰＵ１７６は、命令およびデータに対して機能し、ＡＳＩＣ／ＦＰＧＡ１７８および印刷エンジン１７７に対して制御およびデータを提供して印刷文書を生成し得る。いくつかの実施形態において、ＡＳＩＣ／ＦＰＧＡ１７８もまた、印刷エンジン１７７に対して制御およびデータを提供し得る。ＦＰＧＡ／ＡＳＩＣ１７８はまた、変換アルゴリズム、圧縮アルゴリズムおよびラスター化アルゴリズムのうち一以上を実行し得る。
【００１９】
いくつかの実施形態において、計算装置１１０は、マークアップ言語を用いて指定された文書中の印刷可能データをプリンタ１７０に送信し得る。その後、プリンタ１７０は、マークアップされた前記文書を構文解析してテキストオブジェクトおよび他の非テキストオブジェクトを抽出するルーチンを呼び出し得る。非テキストオブジェクトは、ベクトルグラフィックおよび画像オブジェクトを含み得る。その後、プリンタ１７０は、上記印刷可能データを印刷可能データの最終形態にレンダリングし、この最終形態に従って印刷するための植字ルーチンおよび他のグラフィックスライブラリルーチンを呼び出すことにより、上記テキストおよび非テキストオブジェクトを処理し得る。この最終形態は、ピックスマップの形態をとり得る。いくつかの実施形態において、このマークアップ言語記述の文書から最終的な印刷可能データへの変換プロセスは、オブジェクトのディスプレイリストを含む中間的な印刷可能データの生成を含み得る。
【００２０】
いくつかの実施形態において、ディスプレイリストは、一以上のグラフィックスオブジェクトおよび画像データオブジェクトを保持し得る。いくつかの実施形態において、ディスプレイリスト中のオブジェクトは、ユーザ文書中の類似するオブジェクトに対応し得る。いくつかの実施形態において、ディスプレイリストは、中間的なまたは最終的な印刷可能データの生成を支援し得る。いくつかの実施形態において、ディスプレイリストおよび／またはピックスマップは、メモリ１７２または二次記憶装置１７３内に保存され得る。例示的な二次記憶装置１７３は、内部または外部ハードディスク、メモリスティック、またはプリンタ１７０内において使用することが可能な他の任意のメモリ保存デバイスであり得る。いくつかの実施形態において、上記ディスプレイリストは、プリンタ１７０、計算装置１１０およびサーバ１３０のうち一以上に内在し得る。ディスプレイリストおよび／またはピックスマップを保存するためのメモリは、専用メモリを含んでいてもよいし、あるいは、汎用メモリの一部またはいくつかの実施形態によるその組み合わせを形成してもよい。いくつかの実施形態において、メモリは、必要に応じてディスプレイリストおよび／またはピックスマップを保持するように、動的に割り当てられ得る。いくつかの実施形態において、ディスプレイリストおよび／またはピックスマップの保存のために割り当てられたメモリは、処理後に動的にリリースされ得る。
【００２１】
図３は、マークアップ言語中に規定された印刷可能データを既存の植字システムを用いてレンダリングするためのアプリケーションの一部を実行する方法における工程を示す例示的プロセスフロー３００を示す。このプロセスでは、先ず工程３１０において印刷ジョブが開始され得る。この印刷ジョブは、いくつかの場合において、ＯＯＸＭＬなどのマークアップ言語で指定された文書であり得る。
【００２２】
工程３２０において、文書３１５に対し、言語およびオブジェクト処理も行われ得る。例えば、上記文書中のデータは、ＯＯＸＭＬ構文解析ツールによって構文解析され、これにより、個々のオブジェクト（例えば、テキスト、画像およびグラフィック）が特定され得る。ＯＯＸＭＬ構文解析は、オブジェクトの位置決めおよび範囲に関する何らかの予備情報を得るためにも用いられ得る。例えば、上記文書中の印刷可能データは、テキストデータ、画像データおよびグラフィックデータとしてカテゴリー分けされ得る。
【００２３】
一実施形態において、上記グラフィックまたは画像データを表現するために、内部オブジェクトが生成され得る。このオブジェクトは、ＯＯＸＭＬによって提供されかつ上記構文解析ツールによって抽出されたグラフィックまたは画像に関する情報を含み得る。例えば、ＯＯＸＭＬは、幾何学的変換を提供し、グラフィックオブジェクトに関する色情報に対し塗りつぶしおよびストロークを行い、ネイティブ画像データを保持しているファイルを特定するためのファイル名を提供し得る。既存の植字アプリケーションが構文解析ツールによって特定された一以上のオブジェクトを独立して処理することができないかまたはこのようなオブジェクトをネイティブに        サポートしていない場合、これらのオブジェクトに関する情報を上記植字アプリケーションから隠蔽してもよいし、あるいは、上記オブジェクトを無視するよう上記植字アプリケーションに命令してもよい。この場合、上記植字アプリケーションに対し、上記オブジェクトのバウンディングボックスをレイアウト計算のために付与すればよい。いくつかの実施形態において、上記植字アプリケーションは、隠蔽された上記オブジェクトに関する情報を上記入力文書からコピーし、出力中にその情報をコピーするだけである。
【００２４】
例えば、文書がＯＯＸＭＬで記述され、かつ、植字アプリケーションとしてＴｅＸが用いられる場合、ＴｅＸが独立して処理することが不可能なＯＯＸＭＬオブジェクトが特定され、「■ｓｐｅｃｉａｌ」コマンド内にカプセル化され得る。「非ＴｅＸ」オブジェクトという用語は、ＴｅＸが独立して処理することが不可能なオブジェクトまたはＴｅＸがネイティブにサポートしていないオブジェクトを指す。ＴｅＸが呼び出された際に、カプセル化された上記非ＴｅＸオブジェクトに関するバウンディングボックス情報をＴｅＸに提供してもよい。このバウンディングボックス情報は、ＴｅＸによって行われるレイアウト計算において用いられ得る。その結果、ＴｅＸは、上記の多様な非ＴｅＸオブジェクトの位置を決定することができるが、上記オブジェクトそのものは直接処理しない。当業者であれば、利用可能な特徴および言語構成概念を用いて、上記した方法を他の植字言語に容易に適用することができる。ＴｅＸが上記「■ｓｐｅｃｉａｌ」コマンドと遭遇した場合、ＴｅＸは、上記カプセル化部分を自身が生成した出力へと転送するだけであり、さらなる処理は行わない。
【００２５】
上記植字アプリケーションによって生成された出力にさらなる構文解析を行って、上記植字アプリケーションによって処理されないオブジェクトに関するレイアウト情報と、上記オブジェクトそのものとを相関付けることができる。この「■ｓｐｅｃｉａｌ」コマンドは、ＴｅＸに対し、そのカプセル化部分内の情報を無視または軽視するよう命令する。かかる「■ｓｐｅｃｉａｌ」コマンドのカプセル化部分は、上記オブジェクトに対するポインタなどの参照情報を含み得る。このポインタを用いて、ＴｅＸによって提供されたレイアウト情報と、オブジェクトそのものとを相関付けることができる。
【００２６】
これらの動作の結果、ディスプレイリスト３２５中のグラフィックスオブジェクトを記述するグラフィックプリミティブが配置され得る。いくつかの実施形態において、言語処理およびオブジェクト事前処理は、ＯＯＸＭＬ構文解析ツールなどのマークアップ言語構文解析ツールと、他の関連付けられたルーチンとにより、行われ得る。例示的ディスプレイリスト３２５は、データ処理において実際の印刷の前の中間工程であってもよく、後続形態にさらに変換される前に構文解析にかけられ得る。ディスプレイリスト３２５は、ディスプレイリストオブジェクトに対する色、不透明度、境界情報、および深さなどの情報を含み得る。
【００２７】
ディスプレイリスト表現から物理的媒体上への印刷に適した形態への変換プロセスを、データのラスター化またはラスタライゼーションと呼ぶ場合がある。いくつかの実施形態において、ラスタライゼーションは、工程３３０においてラスター画像プロセッサによって行われ得る。例えば、基本的なラスタライゼーションは、典型的にはポリゴンによって記述されている三次元領域をとり、この三次元領域を二次元表面上にレンダリングすることにより、達成され得る。ポリゴンは、三角形の集合として表すことができる。三角形は、三次元空間中の３つの頂点により表され得る。１つの頂点は、１点、エッジの端点、またはポリゴンにおける２つのエッジが出会う角部を規定する。そのため、基本的ラスタライゼーションにより、頂点の軌跡（stream）を対応する二次元点に変換し、この変換された二次元三角形を塗りつぶすことができる。ラスタライゼーションの後、上記ラスター化データは、例示的フレームバッファ３５０などのフレームバッファ内に保存され得る。このフレームバッファは、メモリ１７２内に物理的に配置され得る。
【００２８】
工程３３０において、ラスター画像処理（ＲＩＰ）モジュールは、ディスプレイリスト３２５中のオブジェクトを処理し、ラスター化された同等物をフレームバッファ３５０内に生成し得る。いくつかの実施形態において、ラスター画像処理は、プリンタ１７０によって行われ得る。例えば、ラスター画像処理は、プリンタ１７０により、ＣＰＵ１７６、ＡＳＩＣ／ＦＰＧＡ１７８、メモリ１７２および／または二次記憶装置１７３のうち一以上を用いて行われ得る。ラスター画像処理は、プリンタ１７０により、ソフトウェア、ファームウェア、および／または専用ハードウェア（例えば、ＡＳＩＣ／ＦＰＧＡ１７８）の何らかの組み合わせにより、行われ得る。フレームバッファ３５０は、印刷エンジン１７７による印刷媒体上への印刷に適した形態で印刷オブジェクトの表現を保持し得る。
【００２９】
いくつかの実施形態において、フレームバッファ３５０中のデータは、工程３６０において後処理に供され得る。例えば、ハーフトーニング、トラッピングなどの多様な操作を、フレームバッファ３５０中のデータに対して行うことができる。これらの操作の結果、フレームバッファ中のデータが改変され、その結果、後処理されたフレームバッファ３６５が得られる。その後、後処理されたフレームバッファ３６５は、工程３７０において任意のさらなる処理に供され得る。例えば、印刷エンジン１７７は、フレームバッファ３６５内のラスター化されかつ後処理されたデータを処理し、紙などの印刷媒体上のページの印刷可能な画像を形成し得る。
【００３０】
図４は、ＴｅＸ植字アプリケーションを用いてＯＯＸＭＬ文書を処理するための例示的方法４００を示すフローチャートを示す。当業者にとって明らかであるように、方法４００はひとえに説明目的のために示すものであり、他のマークアップ言語および／または他の植字アプリケーションを用いて記述された文書にもこの方法が適用可能である点に留意されたい。一実施形態において、例示的方法４００は、言語およびオブジェクト処理工程３２０の一部として行われ得る。いくつかの実施形態において、例示的方法４００の一部は、ラスター画像処理工程３３０の間に行われ得る。一般的に、方法４００は、印刷システムパラメータおよび実行詳細、ならびに用いられるマークアップ言語および植字アプリケーションに応じて、多様な様態で実行され得る。
【００３１】
ＯＯＸＭＬを用いて記述され得る文書がプリンタ１７０に送信されると、例示的方法４００が呼び出され得る。いくつかの実施形態において、文書中のＯＯＸＭＬデータは、工程４１０において構文解析され得る。例えば、構文解析ルーチンは、構文解析されたＯＯＸＭＬデータ４１５を生成する際に、ＴｅＸによる処理が可能なデータを特定するとともに、他の非ＴｅＸデータも特定し得る。例えば、文書中の印刷可能データは、テキスト、画像およびグラフィックデータとしてカテゴリー分けされ得る。ＴｅＸデータは、ＴｅＸによる処理が可能なテキストなどのデータを含み得る。一方、非ＴｅＸデータは、ＴｅＸによる独立的処理が不可能である可能性のあるグラフィックスオブジェクトおよび画像オブジェクトなどのデータを指す。グラフィックスデータは、高レベルグラフィック（「ＨＬＧ」）データを含み得る。このような高レベルグラフィックは、基礎となるグラフィックスプリミティブから構築され得る。
【００３２】
上記ＯＯＸＭＬ記述により、グラフィックオブジェクトに対する幾何学的変換、塗りつぶしおよびストローク色情報を得ることもでき、ネイティブ画像データを保持するファイルを特定するファイル名が得られ得る。構文解析ルーチンにより、上記ＯＯＸＭＬ記述からこの情報が抽出され、オブジェクトの位置決めおよび上記非ＴｅＸオブジェクトの範囲に関する何らかの予備情報が得られ得る。
【００３３】
構文解析されたＯＯＸＭＬデータ４１５が工程４２０において処理されて、ＴｅＸ植字アプリケーションに対するＴｅＸ入力４２５が生成され得る。一実施形態において、ＴｅＸ入力４２５は、グラフィックまたは画像データを表すように生成された内部オブジェクトを含み得る。このオブジェクトは、工程４１０において上記構文解析ツールによって抽出されたグラフィックスまたは画像データに関する情報を含み得る。例えば、グラフィック、画像および他の非ＴｅＸオブジェクトに対するポインタが、ＴｅＸ入力４２５中の「■ｓｐｅｃｉａｌ」コマンドを用いてカプセル化され得る。この「■ｓｐｅｃｉａｌ」コマンドは、カプセル化部分内の情報を無視するようＴｅＸに命令する。すなわち、オブジェクトに対するポインタは、「■ｓｐｅｃｉａｌ｛ｔｅｘｔ｝」などのＴｅＸコマンドを用いてカプセル化され得る。ここで、「｛ｔｅｘｔ｝」は、任意の文字列（すなわち、プレーンテキスト中のもの）であり得る。従って、「｛ｔｅｘｔ｝」を用いて、文字列として書かれたポインタを指すことができる。加えて、上記カプセル化オブジェクトそれぞれに対するバウンディングボックスに関する情報は、ＴｅＸへ送ることができるよう、カプセル化部分の外部のＴｅＸ入力４２５内において生成され得る。
【００３４】
工程４３０において、上記ＴｅＸ入力が処理され得る。例えば、上記ＴｅＸ植字アプリケーションが呼び出され、ＴｅＸ入力４２５上で動作して、ＴｅＸ出力４３５を生成するよう命令され得る。Ｔｅｘは、ＴｅＸ入力４２５中のテキストオブジェクトを処理および植字し得る。加えて、ＴｅＸは、上記カプセル化オブジェクトそれぞれのバウンディングボックスに関する情報をレイアウト計算において利用し得る。その結果、ＴｅＸは、多様な非ＴｅＸオブジェクトの位置を決定し得るが、オブジェクトそのものは直接処理しない。ＴｅＸは、上述したように、ＴｅＸおよび非ＴｅＸオブジェクトの処理後、ＴｅＸ出力４３５を生成し得る。
【００３５】
工程４４０において、ＴｅＸ出力４３５が構文解析され得る。ＴｅＸ出力構文解析ツールは、上記「／ｓｐｅｃｉａｌ」コマンド内に埋め込まれたポインタまたは他のオブジェクト参照情報を用いて、ＴｅＸによって生成されたレイアウト情報と、対応する非ＴｅＸオブジェクトとを関連づけ得る。工程４５０において、任意のＨＬＧオブジェクトを含む非ＴｅＸオブジェクトが、関連付けられたレイアウト情報４４５と共に個々に処理され得る。例えば、画像オブジェクトの場合、該画像オブジェクト内に埋め込まれたファイル名を用いて、ネイティブ画像データが読み出され得る。グラフィックスオブジェクトおよびＨＬＧオブジェクトは、グラフィックスライブラリを呼び出すことによっても処理され得る。例えば、グラフィックスオブジェクトは、上記オブジェクトに対して「塗りつぶし」操作および「ストローク」操作を行うことにより、処理され得る。これらの操作の結果、ディスプレイリスト３２５内に配置されているグラフィックスオブジェクトを記述するグラフィックプリミティブが得られ得る。
【００３６】
図５は、例示的方法４００において用いられる非ＴｅＸオブジェクトを処理するための工程４５０の詳細を示すフローチャートである。いくつかの実施形態において、ＨＬＧオブジェクト４４５を含む非ＴｅＸオブジェクトと関連付けられたレイアウト情報を用いて、任意のＨＬＧオブジェクトを含む非ＴｅＸオブジェクトの位置を工程４５１において設定することができる。工程４５３において、画像オブジェクト、グラフィックスオブジェクトおよびＨＬＧオブジェクトが処理され得る。例えば、画像オブジェクトについて、該画像オブジェクト中に埋め込まれているファイル名を用いてネイティブ画像データが読み出され得る。適切なグラフィックスライブラリを読み出すことにより、グラフィックスオブジェクトおよびＨＬＧオブジェクトも処理され得る。その結果、ディスプレイリスト３２５内に配置されているオブジェクトを記述するグラフィックプリミティブが得られ得る。次に、工程４５４において、後で削除するものとしてマーク付けされていないオブジェクトが削除され得る。例えば、色オブジェクト、塗りつぶしパターンなどの特定の属性を処理時に再利用し、後で削除するものとしてマーク付けすることができ、これにより、レンダリングプロセスを高速化することができる。他のオブジェクトを迅速に削除することで、メモリの空き容量を増やすことができる。
【００３７】
当業者にとって、本明細書および開示の実施形態の実施を鑑みれば、他の実施様態が明らかである。本明細書および例はひとえに例示的なものであり、その真なる範囲および精神は以下の特許請求の範囲によって示されることが意図される。
【図１】
2011175629.tif 000003
【図２】
2011175629.tif 000004
【図３】
2011175629.tif 000005
【図４】
2011175629.tif 000006
【図５】
2011175629.tif 000007
【外国語明細書】
2011175629000001.pdf
2011175629000002.pdf
2011175629000003.pdf
2011175629000004.pdf