"文書の1つまたは複数の文書フォントに自動フォントマッピングを実行し、前記1つまたは複数の文書フォントを少なくとも1つの置換フォントにマッピングすることと、前記文書を、前記少なくとも1つの置換フォントを用いてレンダリングすることを含み、前記フォントマッピングは少なくとも1つの文書固有フォントマッピング制限によって制限される方法。前記自動フォントマッピングを実行することは、前記文書のM個の異なる文書フォントについて、前記M個の異なる文書フォントをM個の異なる置換フォントにマッピングするために自動フォントマッピングを実行することを含み、Mは2以上であり、前記少なくとも1つの文書固有フォントマッピング制限は、M個の異なる置換フォントを要求する、請求項1に記載の方法。前記自動フォントマッピングを実行することは、前記1つまたは複数の文書フォントと、対応するマッピングされた少なくとも1つの置換フォントとの類似性を測定する目的関数の制約付き最適化を実行することを含み、前記制約付き最適化は、少なくとも1つの文書固有フォントマッピング制限を具現する少なくとも1つの制約によって制約される、請求項1及び請求項2のいずれか1項に記載の方法。システムであって、文書のM個の異なるフォントを少なくともM個の置換フォントに、少なくとも1つの文書固有フォントマッピング制限によって制限されるマッピングでマッピングするように構成されるデジタル処理デバイスを備える自動フォントマッピングサブシステムであって、前記デジタル処理デバイスは、前記1つまたは複数の文書フォントと、対応するマッピングされた少なくともM個の置換フォントとの類似性を測定する目的関数の制約付き最適化を実行するように構成され、前記制約付き最適化は、少なくとも1つの文書固有フォントマッピング制限を具現する少なくとも1つの上限または下限によって制約され、前記少なくとも1つの上限または下限は置換フォントの数について下限Mを含む自動フォントマッピングサブシステムと、前記文書を、前記少なくとも1つの置換フォントを用いてレンダリングするように構成されるレンダリングサブシステムとを備えるシステム。以下、フォントの改良されたマッピング方法及び装置を開示する。本明細書において例示的な例として開示されている幾つかの例示的実施形態において、ある方法は、文書の1つまたは複数の文書フォントに自動フォントマッピングを実行し、この1つまたは複数の文書フォントを少なくとも1つの置換フォントにマッピングすることと、この少なくとも1つの置換フォントを用いて文書をレンダリングすることを含み、上記フォントマッピングは、少なくとも1つの文書固有フォントマッピング制限によって制限される。本明細書において例示的な例として開示されている幾つかの例示的実施形態において、直前の段落における方法では、自動フォントマッピングは、上記1つまたは複数の文書フォントと、対応する少なくとも1つのマッピングされた置換フォントとの類似性を測定する目的関数の制約付き最適化を実行することを含み、上記制約付き最適化は、少なくとも1つの文書固有フォントマッピング制限を具現する少なくとも1つの制約によって制約される。本明細書において例示的な例として開示されている幾つかの例示的実施形態において、直前の段落における方法では、自動フォントマッピングは、レンダリングに利用可能なフォント集合の部分集合を少なくとも1つの文書固有フォントマッピング制限を基礎として選択することと、上記1つまたは複数の文書フォントと、対応する少なくとも1つのマッピングされた置換フォントとの類似性を測定する目的関数の最適化を実行することを含み、上記最適化は、レンダリングに利用可能なフォント集合の選択された部分集合毎に行われる。本明細書において例示的な例として開示されている幾つかの例示的実施形態において、あるシステムは、デジタル処理デバイスによって具現されかつ文書の1つまたは複数の文書フォントを少なくとも1つの置換フォントへ少なくとも1つの文書固有フォントマッピング制限によって制限されるマッピングによってマップするように構成される自動フォントマッピングサブシステムと、上記少なくとも1つの置換フォントを用いて上記文書をレンダリングするように構成されるレンダリングサブシステムとを備える。本明細書において、フォント類似度を基礎として置換フォントを選択する既存のフォントマッピングアプローチの欠点は、これらのマッピングアプローチが、レンダリングされている特定の文書を参照することなく概して包括的に動作する点にあることが認識されている。即ち、文書固有の考慮事項は考慮されない。これは、概して問題とされてきていないが、その理由は、適切なフォント類似性メトリックによって測定される最もよく類似するフォントの選択は最適結果を与えるものと予期されていることにある。しかしながら、本明細書においては、文書固有インスタンスによっては、これが事実でないことが認識されている。例えば、文書によっては、異なるタイプのテキストコンテンツを表現するために異なるフォントが意図的に使用される。単なる例示的な一例として、演劇の台本では、異なる役者に帰属するせりふコンテンツが異なるフォントを用いて区別される場合がある。フォントマッピングがこれらの異なる文書フォントを1つの最も類似する置換フォントにマッピングすれば、異なる文書フォントを用いて符号化された関連情報は失われる。別の文書固有の考慮事項は、レンダリングコストである可能性がある。フォントの中には、版権が取得されている、または別途で独占所有権が取得されている可能性のあるものがあり、よって文書内でこのようなフォントを使用すれば、例えばプリントアウト当たり、文書のダウンロード当たり、ページ当たりまたは他の基準で課金されるライセンス料金が生じる場合がある。よって、ライセンスコストは、文書のページ数、文書のコピー印刷数、文書のダウンロード見込み回数または他の文書固有情報に依存する。他の文書固有の考慮事項は、所定の文書に対する所定のフォントの使用に不利に働く場合がある。例えば、独占所有権のあるフォント集合は、特定のクラスのアプリケーションまたはユーザに対してのみ使用を許諾される場合があり、よってそのクラスに属さない文書に使用されるべきではない。所定のフォントもまた、そのサイズに起因して望ましくない場合がある。例えば、レンダリングされるテキストユニットを例えば行または行数、ページまたはページ数、等々で測定されるような割り付けられた空間に適合できないほど大きくするフォントは、望ましくない場合がある。図1を参照すると、改良されたフォント置換を有する文書処理システムが開示されている。文書処理システムは、ディスプレイ12または他のユーザインタフェース出力デバイスとキーボード14、マウス不図示または他のユーザインタフェース入力デバイスとを有する例示的なコンピュータ10等の1つまたは複数のコンピュータによって適切に実装される。1つまたは複数のコンピュータには、1つまたは複数のデスクトップコンピュータ、1つまたは複数のノートブックコンピュータ、1つまたは複数のネットワークサーバ、1つまたは複数のインターネットサーバまたはこれらの様々な組合せが含まれてもよい。また、文書処理システムの一部または全てを、マーキングエンジン例えば、デジタル処理ケイパビリティを有する多機能印刷デバイス等の1つまたは複数の他のデジタル処理デバイス上に実装することも企図される。引き続き図1を参照すると、コンピュータ10または別のデジタル処理デバイスまたは協働するデジタル処理デバイスグループ上に適切に実装される文書生成及び/または処理アプリケーション20は、テキストコンテンツを含む文書22を生成または処理する。文書22の生成/処理の一部として、アプリケーション20は、合計ページ数、合計段落数、等々のような文書の特徴24を定量化する。またアプリケーション20は、文書22内に使用されている文書フォント26の集合も追跡する。文書フォント26は、置換されることが許容されるフォント、または埋め込まれたフォントをレンダリングのために常に利用可能であるように、フォントが内部に文書と共に格納される、または文書と共に送信される埋め込みフォントを含んでもよい。またアプリケーション20は、ユーザインタフェース28も実装し、それを介して人間であるユーザが、文書22を作成し、修正し、印刷し、または別途操作するためにアプリケーション20と相互に作用する。実施形態によっては、ユーザインタフェース28は、文書フォント26を用いてコンピュータ10のディスプレイ12上へ文書22のレンダリングを表示するグラフィカルな見たものが、手に入るものまたはWYSIWYGインタフェースである。他の実施形態では、ユーザインタフェースはテキストベースの、または他のインタフェースである。何らかの時点で、文書22はレンダリングされるべきものである。本明細書で使用しているように、レンダリングという用語は文書の物理的印刷を包含し、かつポータブルドキュメントフォーマットPDFファイル、ポストスクリプトPSファイル、等々のような印刷対応フォーマットへの文書22のレンダリングも包含する。このような目的で、レンダリングサブシステム30が設けられる。レンダリングサブシステム30は、文書22の物理的印刷を生成するマーキングエンジンを含んでもよく、または、レンダリングサブシステム30はPDFファイル生成器等のソフトウェア専用コンポーネントであってもよい。何れの場合も、レンダリングサブシステム30は、文書22を印刷対応フォーマットに変換するレンダリングエンジン32を含む。レンダリングエンジン32は、コンピュータ10によって、または別のデジタル処理デバイスによって具現されてもよい。例えば、多機能印刷デバイスの場合、レンダリングエンジン32は、全体的または部分的に、多機能印刷デバイスの専用プロセッサによって具現されてもよく、かつ/または全体的または部分的に、印刷対応ファイルを生成するサーバコンピュータ、等々によって具現されてもよい。またレンダリングシステム30は、レンダリングに利用可能なフォント集合34へのアクセスも含み、またはこれを有する。フォント集合34の幾つかの、または全てのフォントは、レンダリングシステム30に例えば、多機能印刷デバイスのメモリに格納されてもよい。フォント集合34の幾つかの、または全てのフォントは、レンダリングシステム30から遠隔的に、例えばデジタルネットワークまたはインターネットを介してアクセス可能なサーバにおいて格納されてもよい。レンダリングに利用可能なフォント集合34は、概して文書生成/処理アプリケーション20に利用可能なフォント集合とは異なってもよく、よって文書フォント26は、レンダリングに利用可能なフォント集合34に含まれない1つまたは複数のフォントを含んでもよい。典型的には、このような利用できないフォントはレンダリングされ得ない。事例によっては、文書フォントは文書22と共に埋め込まれる埋め込みフォントであってもよく、文書と共にレンダリングサブシステム30へ伝達される。レンダリングサブシステム30に埋め込みフォントを処理する能力があれば、埋め込みフォントは、フォント集合34に含まれていなくてもレンダリングされることが可能である。しかしながら、埋め込みフォントはレンダリングサブシステム30によって判読できないフォーマットで埋め込まれる場合があることに起因して、これは必ずしも作動するとは限らない。レンダリングサブシステム30が埋め込みフォントを処理することができなければかつ埋め込みフォントがフォント集合34に含まれていなければ、文書22と共に埋め込まれているにも関わらず、埋め込みフォントはレンダリングサブシステム30によってレンダリングされ得ない。従って、文書フォントがレンダリングのために置換されてもよい理由の1つは、文書フォントがレンダリング用に利用できない場合があることにある。しかしながら、文書フォント26のフォントがフォント集合34において利用可能であるとしても、またはレンダリングサブシステム30によって読取り可能なフォーマットで埋め込まれているとしても、なお、文書を個人化する、視力が限られている人用に可読性を上げる、フォントのライセンスコストを下げる、所定の文書タイプ用に使用されるべきフォントを指定する組織的一律基準との適合性を保証する、等々のような何らかの他の理由で、文書フォントを置換フォントにマッピングすることが望ましい場合がある。上記に鑑みて、マッピングされるべきフォント集合の個々についてフォントマッピングを実行するフォントマッピングサブシステム40が設けられる。マッピングされるべきフォント集合は、文書フォント26のうちの1つ、2つ、3つ以上または全てを含んでもよい。マッピングは、レンダリングに利用可能なフォント集合34から選択される置換フォントに対して行われる。またフォントマッピングサブシステム40は、任意選択として、1つまたは複数の文書固有フォントマッピング制限44も受信する。例示として、これらの制限44は、各フォントが異なる置換フォントにマッピングされるという要件、印刷コストに対する制約例えば、これはフォントのライセンス料金により影響される場合がある、レンダリングされるフォントサイズに対する制限例えば、単行のタイトルはレンダリングされたテキストでも単行のままであると求めることによって定量化される、等々を含んでもよい。フォントマッピングサブシステム40の出力は、マッピングされるべき文書フォントの各々についてレンダリングに利用可能なフォント集合34から最適に選択される置換フォントを指示する最適化されたフォントマッピング48である。最適化されたフォントマッピング48は、任意選択として、人間であるユーザによりアプリケーション20のユーザインタフェース28を介して調査されかつ認証され、または修正される。任意選択である認証の後、最適化されたフォントマッピング48は、アプリケーション20においてフォント置換サブモジュール50により処理される。アプリケーション20において置換フォントが利用可能であれば、フォント置換サブモジュール50は、置換フォントをフォントマッピング48が指定する通りに使用するためにアプリケーション20における任意のWYSIWYGレンダリングを更新する。アプリケーション20において置換フォントが利用できなければ、フォント置換サブモジュール50は、任意選択として、欠けている置換フォントをフォントデータベースまたは他のソースからダウンロードして入手することを試行し、次いでWYSIWYGレンダリングを更新する。アプリケーション20において置換フォントが利用できず、かつ入手不可であれば置換は実行されないが、好適には、任意のWYSIWYGレンダリングは、置換フォントの不在に起因してWYSIWYGレンダリングはプリントアウト、PDFファイルまたは他のレンダリングを精確には示さない場合があることを示す注釈によってフラグされる。何れの場合も、文書22がレンダリング即ち、印刷、PDFファイル生成、PSファイル生成、等々用にレンダリングサブシステム30へ送信される場合、適切には、レンダリングにおいて使用するための任意の1つまたは複数の置換フォントを指定するためにフォントマッピング48が包含される。次に、引き続き図1を参照して、フォントマッピングサブシステム40について詳述する。フォントマッピングサブシステム40は、文書22の1つまたは複数の文書フォント26が少なくとも1つの置換フォントにマッピングされる文書固有フォントマッピングを実行し、フォントマッピングは、少なくとも1つの文書固有フォントマッピング制限44によって制限される。フォントマッピングは、文書フォント26とフォント対類似性メトリック60によって測定されるその置換物との間の視覚的類似性を考慮し、かつ1つまたは複数の文書指定フォントマッピング制限44も考慮する。フォント対類似性メトリック60は、適切にはsi,πi形式の類似性メトリックによって具現される。但し、iは文書フォントを示し、かつπiは置換フォントへのマッピング候補を示し、よってπiは考慮中の置換フォント候補を示す。類似性メトリックs-,-は、様々な方法で具現されることが可能である。実施形態によっては、各フォントi,πiで書かれた基準サンプルテキストは、そのエレメントが基準サンプルテキストの選択された定量的特性を表す特徴例えば、特徴ベクトルの集合を抽出するために処理され、かつ関数s-,-は、フォントi及びフォントπiの特徴集合を受信しかつこれらの特徴ベクトル間の類似性または距離例えば、コサイン類似度、ユークリッド距離、等々または他の比較測度を計算する。他の実施形態では、関数s-,-は、フォント対の類似値を表にするルックアップテーブルとして具現される。このようなルックアップテーブルは、距離メトリックまたはこれに類似するものを用いて計算されることが可能であり、或いは手動で、例えばフォント対の類似性または相違に関する人間の主観的判断に基づいて生成されることが可能である。さらに、類似性関数s-,-は、例えば、コサイン類似度を用いて取得されるような連続関数である可能性もあれば、不連続または離散関数である可能性もあることは留意される。ある例示的な実施形態では、あるフォントに関する特徴ベクトルは下記のように計算される。ある文字集合例えば、文字集合{A-Z,a-z,0-9}の各記号は、レンダリング文字のビットマップを生成することによって電子的にレンダリングされ、各ビットマップについて特徴集合が計算される。あるアプローチでは、これらの特徴は、傾斜方位の128次元のヒストグラムである。次に、フォントを表す特徴ベクトルを取得するために、文字毎の特徴集合が連結される。関数si,πiは、フォントi,πiを表す特徴ベクトルの類似度例えば、コサイン類似度を測定する。文書固有フォントマッピング制限44のうちの幾つかは、適切には、最適化制約62として表現されてもよい。例えば、文書を印刷するためのライセンス料金の上限を含む制限は、フォントマッピング最適化に対する上限制約として表現されてもよい。例示的な別の例として、異なる2つの文書フォントを同一の置換フォントにマッピングすることを禁じる制限は、異なる置換フォントの合計数に対する下限として表現されることが可能である。文書固有フォントマッピング制限44のうちの幾つかは、考慮中の置換フォント集合をフィルタリングすることによってより良く表現されてもよい。このような目的で、フォントマッピングサブシステム40は、フォントマッピングにおいて使用するためのレンダリングに利用可能なフォント集合34の部分集合を選択する利用可能フォント部分集合セレクタ64を含む。例えば、利用可能フォント部分集合セレクタ64は、選択される利用可能置換フォントの部分集合から、文書22が属する文書タイプの文書の印刷において使用を認められない所定のフォントを除外してもよい。ある適切な実施形態では、フォントマッピングサブシステム40は、マッピングされるべき文書フォントと、対応するマッピングされた少なくとも1つの置換フォントとの類似性を測定する目的関数68の制約付き最適化を実行することによってフォントマッピングを実行する最適化エンジン66を含み、上記制約付き最適化は、文書固有フォントマッピング制限44のうちの1つまたはそれ以上を具現する1つまたは複数の最適化制約62によって制約される。制約付き最適化は、レンダリングに利用可能なフォント集合34の個々の部分集合に対応し、上記部分集合は、セレクタ64により、文書固有フォントマッピング制限44のうちの1つまたはそれ以上を基礎として選択される。フォントマッピングサブシステム40により適切に実行されるフォントマッピングの例示的な実施形態は、下記の通りである。fはマッピングされるべき文書フォント26の集合を示すものとし、かつFは利用可能フォント部分集合セレクタ64により選択されるレンダリングに利用可能なフォント集合34の部分集合を示すものとする。従って、Fは、レンダリングに利用可能なフォント集合34と同延であるか、レンダリングに利用可能なフォント集合34の選択された部分集合の何れかである。fとFとの共通部分は、空集合である場合も、空集合でない場合もある。π:f→Fは、フォントマッピング候補を示すものとする。πopt:f→Fは、フォントマッピングサブシステム40により決定されるべき最適化されたフォントマッピング48を示すものとする。目的関数68は、マッピングされるべき文書フォントの集合fと、置換フォントの集合候補Fとの間の類似性を測定する。s:f×F→Rを、マッピングされるべき文書フォントと置換フォントの集合Fの置換フォントとの間の類似性を測定する関数であるものとする。si,πiは、文書フォントiとそのマッピングされる置換フォント候補πiとの間の類似性を示すものとする。目的関数68の適切な実施形態は、である。よって、最適化されたフォントマッピング48を下記の制約付き最適化として書き表すことができる。但し、{gf,π}は最適化制約62の集合を示す。方程式1及び2は、類似度si,πiが増加していること、即ち、より大きい値のsi,πiは、文書フォントiとその置換フォント候補πiとの間のより大きい類似性を示すことを想定している。反対に、si,πiが低減していて、より小さい値のsi,πiがフォントiとπiとの間のより大きい類似性を示していれば、方程式1及び2のmax項及びargmax項は、適切にはmin項及びargmin項によって置換される。本明細書で使用しているように、最適及び最大及び最小等の用語は、自動最適化アルゴリズムまたは自動最大化アルゴリズムまたは自動最小化アルゴリズムによって生成される出力を包含するものとして理解されるべきであり、これらの出力は、必ずしも大域的な最適値、最大値または最小値でなくてもよい。例えば、方程式1を解くと、目的関数の局所的最大値が発生する場合がある。技術上知られるように、このような局所的極値は容認できるものである場合があり、或いは、局所的極値が容認できないものであれば、より良い結果を得るために、異なる開始値を用いて最適化または最大化または最小化が再度実行されてもよい。制約の集合{gf,π}に適切に包含される幾つかの例示的な制約は、下記の通りである。任意選択として含まれる1つの制約は、フォントマッピングの前後で文書22内に同数のフォントが存在することを保証する。即ち、2つの文書フォントは、同じ置換フォントにマッピングされ得ない。この制約は、次のように表すことができる。方程式3は、文書フォント26の集合の全文書フォントがマッピングされることを想定し、即ち、fは文書フォント26の集合の全ての文書フォントを含むことを想定している。これが当てはまらない場合には、¬fが、文書フォント26の集合のうちのマッピングされていない文書フォント、即ちfに含まれていない文書フォントの集合を示すものとする。従って、文書フォント26の集合はfと¬fとの和集合であり、かつfと¬fとの共通部分は空である。これらの定義を用いれば、方程式3は、へと一般化されることが可能である。第2の項を実装する1つの方法は、利用可能フォント部分集合セレクタ64を使用して可能な置換フォントの集合Fから集合¬f内の任意のフォントを除外することであり、方程式3の制約は、この後に使用されることが可能である。言い替えれば、方程式3は、フォントの集合¬fが可能な置換フォントとして利用不可にされることによって使用可能である。任意選択として包含される別の制約は、ライセンスコストに関連している。フォントの中にはライセンス料金を伴うものがあることから、新規文書については合計ライセンス料金をキャッピングすることが望ましい場合がある。cπiを所定の置換フォント候補πiに関連づけられるコストであるものとし、かつCをコストの上限であるものとする。但し、コストはU.S.ドル、EUユーロまたは他の適切な通貨単位または通貨換算で測定される。合計ライセンスコストの制約は、と書き表すことができる。文書フォント26の集合の全文書フォントがマッピングされるわけではないとすれば即ち、集合¬fが空でなければ、上記制約は、のように書き表すことができる。但し、C’は、によって与えられる。ここで、方程式5の引き算項はマッピングπに依存せず、よってC’は最適化の実行に先立って予め計算されることが可能である。フォントmのコストcmは、所定の文書に関して固定されてもよい即ち、文書当たりのライセンス料金。一方で、コストcmは、文書のレンダリングにおけるフォントmの使用量を定量化する文書パラメータに機能的に依存している場合もある。例えば、文書のレンダリングにおけるフォントmの使用量を定量化する上記文書パラメータは、文書のレンダリングにおける文書ページ数、文書のレンダリングにおける文書コピー数、文書のレンダリングにおける文書ページ数と文書コピー数との積、等々であってもよい。既に述べたように、幾つかの文書固有フォントマッピング制限は、利用可能フォント部分集合セレクタ64に可能な置換フォントの集合Fをレンダリングに利用可能なフォント集合34の部分集合として選択させることによってより良く実装される。方程式3’に関連して既に述べたように、これが有益である1つの状況は、文書フォントの中にマッピングされないものがある場合にはマッピングによってフォント数を変えてはならない、という制限を実装することにある。この場合、セレクタ64は、マッピングされない文書フォントの集合¬fの構成要素である任意のフォントをFから除外する。利用可能フォント部分集合セレクタ64によって適切に実装される他の文書固有フォントマッピング制限は、置換フォントに対するサイズ制限である。例えば、文書固有制限は、テキストの所定の部分は割り当てられた空間内に嵌らなければならない、ということであってもよい。例示的な例として、タイトルは単行に嵌らなければならない、または、段落は指定された行数任意選択として、さらにプラスマイナス数行の指定された余白内に嵌らなければならない、という制限を実施することが望まれる場合もある。実装に際して、セレクタ64は、適切には、レンダリングに利用可能なフォント集合34の各フォントを用いて例示としてタイトルを電子的にレンダリングし、レンダリングされるタイトルが長すぎれば、そのフォントを可能な置換フォントの集合Fから除外する。実施形態によっては、最適化エンジン66によって実行される制約付き最適化は、線形プログラミングLPアルゴリズムによって実行される。本明細書において示しているように、実施形態によっては、制約付き最適化は整数線形プログラミングILPアルゴリズムによって実行されることが可能である。例示的な例として、0-1線形プログラミング0-1LPアルゴリズムによって実行される制約付き最適化について述べる。この場合、目的関数68は方程式2において述べた通りであり、制約の集合{gf,π}は、方程式3の制約先に述べたように、マッピングされないフォントは、セレクタ64の使用によってFからマッピングされないフォント¬fを除外するように対処される及び方程式4または4’の制約を含む。0-1LPアルゴリズムは、変数が2進値をとるタイプのILPである。0-1LPの説明に際して、Mをマッピングされるべき文書フォントの集合fの濃度であるものとし即ち、Mは文書フォントの集合fにおけるフォント数である、かつNを可能な置換フォントの集合Fの濃度であるものとする。所定の文書フォントi∈fの置換フォント候補πi∈Fへのマッピングi→πiは、N次元二値ベクトルviを用いて適切に符号化される。このベクトルviは、指数πiに対応する単一の非ゼロ値を有する。従って、マッピングされるべき全ての文書フォントfの大域的なマッピングは、全てのi∈fのベクトルviを連結することによってM×N次元二値ベクトルVとして符号化されることが可能である。連結されたこのベクトルVは、正確にM個の非ゼロ値を有する。さらに、siは、文書フォントi∈fとFにおける全フォントとの間の類似性のN次元ベクトルを示すものとする。Sは、M個のベクトルsi,i=1,...,Mを連結して得られるM×N次元ベクトルを示すものとする。これらの定義を用いれば、方程式1の目的関数は、として書き直すことができる。但し、上付き文字Tは転置演算を示す。方程式3の制約は、以下のように0-1LP形式で符号化されることが可能である。ekは、指数kに単一の非ゼロ値を有するN次元二値ベクトルを示すものとする。Ekは、ベクトルekのM個のインスタンスを連結して得られるM×N次元ベクトルを示すものとする。fにおける2フォントがFにおける同一フォントにマッピングされないことこれは、方程式3の制約の意向であるを保証するために、下記の0-1LP制約、が実施される。故に、方程式3の制約の実施は、0-1LP形式でのN個の制約の実施に変わる。方程式4の制約は、以下のように0-1LP形式で符号化されることが可能である。γは、可能な置換フォントの集合Fの各フォントに関連づけられるコストを含むN次元ベクトルを示すものとする。Γは、ベクトルγのM個のインスタンスを連結して得られるM×N次元ベクトルを示すものとする。方程式4の制約を実施するために、即ち、ライセンス料金の合計コストがC以下であることを保証するために、下記の0-1LP制約、が実施される。同様に、マッピングされないフォントの集合¬fが空でない事例、即ち方程式4’の事例では、0-1LP制約が実施される。方程式6の目的関数を制約及び/またはの下で最大化することは、0-1LP問題である。これは、問題を多項時間で解くことができる一般的アルゴリズムが存在しないNP困難問題である。しかしながら、緩和アルゴリズム及び分枝限定アルゴリズムを基礎とする方法は、この目的関数を正確に、または近似的に最適化するために適切に使用される。例えば、線形プログラミング緩和法http://en.wikipedia.org/wiki/Linear_programming_relaxation最終アクセス、2010年2月17日を参照されたい。文書固有フォントマッピング制限の中には、利用可能フォント部分集合セレクタ64によって適切に実装されるものがある。例示的な例として、ある特定の制約について、即ち、全てのタイトルは単行に嵌らなければならない、という制約について考察されたい。文書フォントiで書かれている文書22内のタイトルに対するこの制限を実装するために、タイトルは、レンダリングに利用可能なフォント集合34の各フォントを用いて電子的にレンダリングされる。電子的にレンダリングされるタイトルが2行以上を占有するフォントは何れも、セレクタ64によって可能な置換フォントの集合Fから除外される。これは、探索空間のサイズを短縮する即ち、可能な置換フォントの集合Fの濃度Nを下げること。これにより0-1LP実装の計算コストが下がる以外には0-1LP実装に影響しない。図2を参照すると、アプリケーションプログラムプラグインを使用する例示的な実装が線図で示されている。図2のシステムは、ユーザのウェブブラウザまたは他の文書エディタ例えば、MicrosoftWordまたはAdobeAcrobatにインストールされるプラグイン80と、計算を実行しかつフォント置換要求に応答できるウェブサービスを管理するセントラルサーバ82と、図示されているようにサーバ82に位置決めされる、またはサーバ82によってアクセス可能なフォントのデータベース84とを含む。フォントのデータベース84は事前に計算された特徴で指数づけされ、かつテキストタグで注釈を付けられる。プラグイン80は、文書22について、図1の文書生成/処理アプリケーション20の文書及びフォント分析機能を実行する。文書22内で使用されている全てのフォントまたは埋め込みフォントの参照が抽出される。また、合計ページ数、段落数、等々のような文書レベルの特徴も計算される。プラグイン80は、クエリ定式化も実行する。フォント置換要求は、文書内で検出されるフォントのリストが存在しなければ、またはユーザが置換セッションを開始する意向であれば定式化される。後者の場合、ユーザは任意選択として、フォント置換セッションを明示的に、例えば最大ライセンス料金を指定することによってパラメータ化する選択肢を与えられる。サーバ82では、リスナ機能が提供される。図示されているサーバ82は、ウェブサーバである。サーバ82によって実行されるウェブアプリケーションは、予め画定されたポート上での接続を待機する。このアプリケーションは、フォントのデータベース84に問合せを行って、最適化手順を開始することができる。サーバ82は、図1のフォントマッピングサブシステム40のフォント対類似性メトリック60に類似するフォント類似性評価機能も提供する。2つのフォントを所与として、フォント間の視覚的類似性を示す数値が視覚的特徴及び単純な距離測度を用いて計算される。プラグイン80またはサーバ82もしくはこれらの双方は、文書固有制限の構成機能を提供する。制限の集合は図1の最適化制約62に類似する制約として、かつ/または図1の利用可能フォント部分集合セレクタ64によって実装されるタイプのフォント選択基準として構成される。制約または選択基準は、制約のタイプに依存して手動で、または自動的に構成される。典型的な制約は、文書を刊行するためにユーザにより準備される文書当たりの最大コストを表すライセンス料金限度を含む。他の制約は、適切には、フォント置換動作後に維持されなければならない合計ページ数等が自動的に表される。サーバ82は、フォントマッピング即ち、置換フォント選択機能を提供する。置換フォントは、制約62の下で目的関数68を最大化する図1のフォントマッピングサブシステム40を参照して本明細書に記述したような最適化を用いて計算される。本明細書に記述している例示的実施形態では、最適化は、0-1線形プログラミング0-1LP問題として適切に定式化される。選択されたフォントは、サーバ82から、要求を定式化したプラグイン80へ伝達される。プラグイン80では、フォント置換機能が提供される。置換されるべきフォントは、サーバ82により提案される置換フォントで置換される。置換フォントがユーザのマシン内で入手できなければ、プラグインは不在のフォントをダウンロードする許可を求める。図3を参照すると、文書固有フォントマッピング制限を規定するユーザ提供情報を獲得するために、適切には図1のユーザインタフェース28によって使用されるユーザインタフェースダイアログウィンドウ90が示されている。ダイアログウィンドウ90の上部には、文書名、文書クラス及びレンダリングエンジンが明示されている。文書クラスは、任意選択として、利用可能フォント部分集合セレクタ64によって適用される置換フォントフィルタリングのための文書固有基準を提供する。例示的な例として、商用/ウィジェット部門の例示的な文書クラスは、可能な置換フォントの集合Fから商業目的での使用を認可されていない所定のフォントを除外する基準を提供する場合がある。レンダリングエンジンは、典型的には、レンダリングに利用可能なフォント集合34を決定する。また、ダイアログウィンドウ90は、文書フォントをそのステータス利用可能、利用不可または非許諾及び、適用可能であれば、ページ当たりのライセンスコスト図3及び図4では、非ゼロのフォントライセンスコストが定量的値ではなく塗りつぶされたボックスで図示されていることに留意されたいと共に記載している。このリストの最左欄は、各フォントがマッピングされるべきかどうかをユーザが選択できる選択ボックスも提供している。従って、この例示的な例において、マッピングされるべきフォント集合fは3つのフォント、OpenSanSerif、OpenFancyBold及びOldEtruscanを含み、一方でマッピングされないフォント集合¬fは単一のフォント、即ちArialを含む。文書フォントのリストの下に示されているオプションでは、ユーザは、2つの文書フォントを同一のレンダリングフォントで置換することを認可されるべきかどうかを選択することができる。このオプションはいいえであるように選択されて示されているが、これは、方程式3の制約が実装されるべきものであることを示す¬fに属するマッピングされないArialフォントは、セレクタ64の行動によって可能な置換フォントの集合Fから除外されている。次のオプションである、タイトルを一行に保持するかは、現時点ではいとして選択されている。従って、この場合も、セレクタ64は、そのフォントがタイトルを2行またはそれ以上のテキストとしてレンダリングする文書NewWidgetPressRelease.odtの任意の一行タイトルについては、そのフォントを全て可能な置換フォントの集合Fから除外するために使用される。最後のユーザオプションは最大ライセンス料金を指定することであるが、これは現時点で文書コピー当たり0.20に設定されて示されている。図4を参照すると、適切には図3のダイアログウィンドウ90の入力に従って実行されるフォントマッピングの結果を表示するユーザインタフェースダイアログウィンドウ92の例示的な例が示されている。マッピングされないArialフォントは、Arialで置換される従って、Arialフォントをマッピングしない、を実装するものとして示されている。OpenSanSerifフォントはマッピングに利用可能であったが、最適化されたフォントマッピングによってこのOpenSanSerifフォントは変わらずに保たれた。残りの2フォントは、新しいフォントにマッピングされる。ダイアログウィンドウ92の下側では、ユーザに、認可して印刷、認可フォントマッピングを格納するが、文書を即座には印刷しない、プレビューユーザレビュー用に、置換フォントによるレンダリングをディスプレイ12上に表示する、再マッピング図3のダイアログウィンドウ90へ戻る及びキャンセルを含む幾つかの選択可能なオプションが提供される。図5は、可能なフォントマッピングの別の結果を示す。この場合、ダイアログウィンドウ94はユーザに、要求されたマッピングは、文書コピー当たり0.20の許容される最大ライセンス料金を達成できなかったために実行できませんでした。Arialフォントをライセンス料金がより低いフォントに置換することを提案しますと通知する。このダイアログウィンドウ94は、本明細書に開示されている制約付き最適化アプローチの優位点を示し、即ち、制約付き最適化が失敗すると、通常、どの制約が充足され得なかったかを決定することができる。この場合、方程式4’の制約は、マッピングされないArialフォントのライセンス料金方程式5に従って方程式4’におけるC ́に影響するが高すぎたという理由で充足され得なかった。本例において、達成不可能な制約の検出は、C’がArialフォントのライセンス料金に起因して負であったならば自明であった可能性がある。ダイアログウィンドウ94の下部において、ユーザには、再マッピング図3のダイアログウィンドウ90へ戻るまたはキャンセルの選択肢が与えられる。"