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

Contents
[ ]

以下の例は、これらの手順を含みます:

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

// いくつかのルールを作成
rulesList->Add(MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x400), static_cast<uint32_t>(0x4FF), u"Times New Roman"));
//rulesList.Add(new FontFallBackRule(...));

for (const auto& fallBackRule : rulesList)
{
	// 読み込まれたルールからフォールバックフォント「Tahoma」を削除しようとしています
	fallBackRule->Remove(u"Tahoma");

	// 指定された範囲のルールを更新します
	if ((fallBackRule->get_RangeEndIndex() >= static_cast<uint32_t>(0x4000)) && 
		(fallBackRule->get_RangeStartIndex() < static_cast<uint32_t>(0x5000)))
	{
		fallBackRule->AddFallBackFonts(u"Verdana");
	}
}

// リストから既存のルールを削除することも可能です
if (rulesList->get_Count() > 0)
{
	rulesList->Remove(rulesList->idx_get(0));
}

auto pres = System::MakeObject<Presentation>(u"input.pptx");
// 使用するために準備したルールリストを割り当て
pres->get_FontsManager()->set_FontFallBackRulesCollection(rulesList);

// 初期化されたルールコレクションを使用してサムネイルをレンダリングし、PNGに保存
auto image = pres->get_Slide(0)->GetImage(1.f, 1.f);
image->Save(u"Slide_0.png", ImageFormat::Png);
image->Dispose();

pres->Dispose();