.NET でフォールバック フォントを使用したプレゼンテーションのレンダリング

Contents
[ ]

以下の例には次の手順が含まれています:

  1. フォールバック フォント ルール コレクションを作成
  2. フォールバック フォント ルールを Remove() し、別のルールに AddFallBackFonts() を追加します。
  3. ルール コレクションを FontsManager.FontFallBackRulesCollection プロパティに設定します。
  4. Presentation.Save() メソッドを使用して、プレゼンテーションを同じ形式で保存したり、別の形式で保存したりできます。フォールバック フォント ルール コレクションが FontsManager に設定された後、これらのルールはプレゼンテーションに対するすべての操作(保存、レンダリング、変換など)で適用されます。
// ルールコレクションの新しいインスタンスを作成
IFontFallBackRulesCollection rulesList = new FontFallBackRulesCollection();

// いくつかのルールを作成
rulesList.Add(new FontFallBackRule(0x400, 0x4FF, "Times New Roman"));
//rulesList.Add(new FontFallBackRule(...));

foreach (IFontFallBackRule fallBackRule in rulesList)
{
	// 読み込まれたルールからフォールバックフォント「Tahoma」を削除しようとしています
	fallBackRule.Remove("Tahoma");

	// 指定された範囲のルールを更新します
	if ((fallBackRule.RangeEndIndex >= 0x4000) && (fallBackRule.RangeStartIndex < 0x5000))
		fallBackRule.AddFallBackFonts("Verdana");
}

// また、リストから既存のルールを削除できます
if (rulesList.Count > 0)
	rulesList.Remove(rulesList[0]);

using (Presentation pres = new Presentation("input.pptx"))
{
    // 使用するために準備したルールリストを割り当てています
    pres.FontsManager.FontFallBackRulesCollection = rulesList;

    // 初期化されたルールコレクションを使用してサムネイルをレンダリングし、PNGで保存します
    using (IImage image = pres.Slides[0].GetImage(1f, 1f))
    {
        image.Save("Slide_0.png", ImageFormat.Png);
    }
}