Präsentationen mit Fallback-Schriftarten in .NET rendern

Contents
[ ]

Das folgende Beispiel enthält diese Schritte:

  1. Wir erstellen die Fallback-Schriftart-Regelsammlung.
  2. Remove() eine Fallback-Schriftart-Regel und AddFallBackFonts() zu einer anderen Regel.
  3. Setzen Sie die Regelsammlung auf die FontsManager.FontFallBackRulesCollection Eigenschaft.
  4. Mit der Presentation.Save() Methode können wir die Präsentation im selben Format speichern oder in ein anderes Format konvertieren. Nachdem die Fallback-Schriftart-Regelsammlung dem FontsManager zugewiesen wurde, werden diese Regeln bei allen Vorgängen mit der Präsentation angewendet: Speichern, Rendern, Konvertieren usw.
// Neue Instanz einer Regelsammlung 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)
{
	// Versuchen, 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;

    // Rendern einer Miniatur mit der initialisierten Regelsammlung und Speichern als PNG
    using (IImage image = pres.Slides[0].GetImage(1f, 1f))
    {
        image.Save("Slide_0.png", ImageFormat.Png);
    }
}