Präsentation mit Fallback-Schriftart rendern

Contents
[ ]

Das folgende Beispiel umfasst diese Schritte:

  1. Wir erstellen eine Sammlung von Fallback-Schriftartregeln.
  2. Remove() eine Fallback-Schriftartregel und AddFallBackFonts() zu einer anderen Regel hinzufügen.
  3. Die Regel-Sammlung der FontsManager.FontFallBackRulesCollection Eigenschaft zuweisen.
  4. Mit der Methode Presentation.Save() können wir die Präsentation im selben Format speichern oder in einem anderen speichern. Nachdem die Fallback-Schriftartregeln-Sammlung dem FontsManager zugewiesen wurde, werden diese Regeln während aller Operationen über die Präsentation angewendet: speichern, rendern, konvertieren usw.
// Neue Instanz einer Regel-Sammlung erstellen
IFontFallBackRulesCollection rulesList = new FontFallBackRulesCollection();

// Eine Anzahl von Regeln erstellen
rulesList.Add(new FontFallBackRule(0x400, 0x4FF, "Times New Roman"));
//rulesList.Add(new FontFallBackRule(...));

foreach (IFontFallBackRule fallBackRule in rulesList)
{
	// Versuch, die Fallback-Schriftart "Tahoma" aus den geladenen Regeln zu entfernen
	fallBackRule.Remove("Tahoma");

	// Und die Regeln für den angegebenen Bereich aktualisieren
	if ((fallBackRule.RangeEndIndex >= 0x4000) && (fallBackRule.RangeStartIndex < 0x5000))
		fallBackRule.AddFallBackFonts("Verdana");
}

// Wir können auch vorhandene Regeln aus der Liste entfernen
if (rulesList.Count > 0)
	rulesList.Remove(rulesList[0]);

using (Presentation pres = new Presentation("input.pptx"))
{
    // Zuweisen einer vorbereiteten Regelliste zur Verwendung
    pres.FontsManager.FontFallBackRulesCollection = rulesList;

    // Rendering des Thumbnails mit Verwendung der initialisierten Regelsammlung und speichern als PNG
    using (IImage image = pres.Slides[0].GetImage(1f, 1f))
    {
        image.Save("Slide_0.png", ImageFormat.Png);
    }
}