Render Presentations with Fallback Fonts in .NET

Contents
[ ]

L’exemple suivant comprend ces étapes :

  1. Nous créons une collection de règles de police de secours.
  2. Supprimez une règle de police de secours avec Remove() et ajoutez‑la à une autre règle avec AddFallBackFonts().
  3. Définissez la collection de règles sur la propriété FontsManager.FontFallBackRulesCollection.
  4. Avec la méthode Presentation.Save() nous pouvons enregistrer la présentation dans le même format ou dans un autre. Après avoir défini la collection de règles de police de secours sur FontsManager, ces règles sont appliquées lors de toute opération sur la présentation : enregistrement, rendu, conversion, etc.
 // Créer une nouvelle instance d'une collection de règles
 IFontFallBackRulesCollection rulesList = new FontFallBackRulesCollection();

 // créer un certain nombre de règles
 rulesList.Add(new FontFallBackRule(0x400, 0x4FF, "Times New Roman"));
 //rulesList.Add(new FontFallBackRule(...));

 foreach (IFontFallBackRule fallBackRule in rulesList)
 {
	 //Essayer de supprimer la police de secours "Tahoma" des règles chargées
	 fallBackRule.Remove("Tahoma");

	 //Et mettre à jour les règles pour la plage spécifiée
	 if ((fallBackRule.RangeEndIndex >= 0x4000) && (fallBackRule.RangeStartIndex < 0x5000))
		 fallBackRule.AddFallBackFonts("Verdana");
 }

 //Nous pouvons également supprimer toutes les règles existantes de la liste
 if (rulesList.Count > 0)
	 rulesList.Remove(rulesList[0]);

 using (Presentation pres = new Presentation("input.pptx"))
 {
     //Attribuer une liste de règles préparée pour l'utilisation
     pres.FontsManager.FontFallBackRulesCollection = rulesList;

     // Rendu de la miniature en utilisant la collection de règles initialisée et en enregistrant en PNG
     using (IImage image = pres.Slides[0].GetImage(1f, 1f))
     {
         image.Save("Slide_0.png", ImageFormat.Png);
     }
 }