C++でフォールバックフォントコレクションを構成する

フォールバック ルールを適用する

FontFallBackRule クラスのインスタンスは、FontFallBackRulesCollection に編成でき、IFontFallBackRulesCollection インターフェイスを実装します。コレクションからルールを追加または削除することが可能です。

このコレクションは、set_FontFallBackRulesCollection() メソッドにFontsManager クラスへ渡すことができます。FontsManager はプレゼンテーション全体のフォントを制御します。

Presentation には、FontsManager クラスの独自インスタンスを取得する get_FontsManager() メソッドがあります。

以下は、フォールバックフォントルールコレクションを作成し、特定のプレゼンテーションの FontsManager に割り当てる例です:

auto presentation = MakeObject<Presentation>();
auto userRulesList = MakeObject<FontFallBackRulesCollection>();

userRulesList->Add(MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x0B80), static_cast<uint32_t>(0x0BFF), u"Vijaya"));
userRulesList->Add(MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x3040), static_cast<uint32_t>(0x309F), u"MS Mincho, MS Gothic"));

presentation->get_FontsManager()->set_FontFallBackRulesCollection(userRulesList);

FontsManager がフォールバックフォントコレクションで初期化されると、プレゼンテーションのレンダリング中にフォールバックフォントが適用されます。

よくある質問

フォールバックルールは PPTX ファイルに埋め込まれ、保存後に PowerPoint で表示されますか?

いいえ。フォールバックルールは実行時のレンダリング設定であり、PPTX にシリアライズされないため、PowerPoint の UI には表示されません。

フォールバックは SmartArt、WordArt、チャート、テーブル内のテキストにも適用されますか?

はい。これらのオブジェクト内のすべてのテキストに対して、同じグリフ置換メカニズムが使用されます。

Aspose はライブラリとともにフォントを配布していますか?

いいえ。フォントはご自身で追加・使用していただき、自己の責任で管理してください。

欠落したフォントの置換/サブスティテューションと、欠落したグリフに対するフォールバックは同時に使用できますか?

はい。これらは同じフォント解決パイプラインの独立したステージです。最初にエンジンがフォントの有無を解決し(replacement/substitution)、その後、フォールバックが利用可能なフォント内の欠落したグリフのギャップを埋めます。