C++でプレゼンテーション用フォールバックフォントを指定

フォールバック ルール

Aspose.Slides は、フォールバックフォントを適用するルールを指定するために、IFontFallBackRule インターフェイスと FontFallBackRule クラスをサポートします。FontFallBackRule クラスは、検索対象となる欠損グリフ用の指定された Unicode 範囲と、適切なグリフを含む可能性のあるフォントの一覧との関連付けを表します:

uint32_t startUnicodeIndex = 0x0B80;
uint32_t endUnicodeIndex = 0x0BFF;

auto firstRule = MakeObject<FontFallBackRule>(startUnicodeIndex, endUnicodeIndex, u"Vijaya");
auto secondRule = MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x3040), static_cast<uint32_t>(0x309F), u"MS Mincho, MS Gothic");

// Using multiple ways you can add fonts list:
auto fontNames = MakeArray<String>({ u"Segoe UI Emoji, Segoe UI Symbol", u"Arial" });

auto thirdRule = MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x1F300), static_cast<uint32_t>(0x1F64F), fontNames);

既存の FontFallBackRule オブジェクトに対して、フォールバックフォントを Remove() したり、AddFallBackFonts() を追加したりすることも可能です。

FontFallBackRulesCollection は、複数の Unicode 範囲に対してフォールバックフォント置換ルールを指定する必要がある場合に、FontFallBackRule オブジェクトのリストを整理するために使用できます。

よくある質問

フォールバック フォント、フォント置換、およびフォント埋め込みの違いは何ですか?

フォールバックフォントは、プライマリフォントに存在しない文字に対してのみ使用されます。フォント置換 は、指定されたフォント全体を別のフォントに置き換えます。フォント埋め込み は、フォントを出力ファイルにパッケージ化し、受信者が意図した通りにテキストを表示できるようにします。

エクスポート(PDF、PNG、SVG など)時にフォールバックフォントが適用されますか、それとも画面上のレンダリング時のみですか?

はい。フォールバックは、文字を描画する必要があるがソースフォントに存在しない場合のすべてのレンダリングおよびエクスポート操作に影響します。

フォールバックの設定はプレゼンテーションファイル自体を変更し、将来の開く際に設定が保持されますか?

いいえ。フォールバックルールはコード内の実行時レンダリング設定であり、.pptx に保存されず、PowerPoint には表示されません。

オペレーティングシステム(Windows/Linux/macOS)やフォントディレクトリのセットは、フォールバックの選択に影響しますか?

はい。エンジンは利用可能なシステムフォルダーや、提供した任意の追加パスからフォントを解決します。フォントが実際に存在しない場合、そのフォントを参照するルールは効果を発揮できません。

フォールバックは WordArt、SmartArt、チャートでも機能しますか?

はい。これらのオブジェクトにテキストが含まれる場合、同じグリフ置換メカニズムが適用され、欠損文字がレンダリングされます。