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

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);
    }
}