Präsentationen mit Fallback-Schriftarten in .NET rendern

Contents
[ ]

Das folgende Beispiel enthält diese Schritte:

  1. Wir erstellen eine Sammlung von Fallback‑Schriftartenregeln.
  2. Remove() einer Fallback‑Schriftartregel und AddFallBackFonts() zu einer anderen Regel.
  3. Setzen Sie die Regelsammlung auf die Eigenschaft FontsManager.FontFallBackRulesCollection.
  4. Mit Presentation.Save() können wir die Präsentation im selben Format speichern oder in einem anderen Format. Nachdem die Fallback‑Schriftartenregelsammlung auf FontsManager gesetzt 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();

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

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

	// Und die Regeln für den angegebenen Bereich zu 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 eines Thumbnails unter Verwendung der initialisierten Regelsammlung und Speicherung als PNG
    using (IImage image = pres.Slides[0].GetImage(1f, 1f))
    {
        image.Save("Slide_0.png", ImageFormat.Png);
    }
}