Публичный API и обратимо несовместимые изменения в Aspose.Slides для .NET 15.1.0

Изменения публичного API

Добавлена функциональность замены шрифтов

Добавлена возможность глобально заменять шрифты по всей презентации и временно для рендеринга.

Введено новое свойство “FontsManager” класса Presentation. Класс FontsManager имеет следующие члены:

IFontSubstRuleCollection FontSubstRuleList Свойство

Эта коллекция экземпляров IFontSubstRule используется для замены шрифтов во время рендеринга. IFontSubstRule имеет свойства SourceFont и DestFont, реализующие интерфейс IFontData, и свойство ReplaceFontCondition, позволяющее выбрать условие замены (“WhenInaccessible” или “Always”).

IFontData[] GetFonts() Метод

Используется для получения всех шрифтов, используемых в текущей презентации.

ReplaceFont Методы

Используется для постоянной замены шрифта в презентации.

Следующий пример показывает, как заменить шрифт в презентации:


             Presentation pres = new Presentation("PresContainsArialFont.pptx");

            IFontData sourceFont = new FontData("Arial");

            IFontData destFont = new FontData("Times New Roman");

            pres.FontsManager.ReplaceFont(sourceFont, destFont);

            pres.Save("PresContainsTimesNewRomanFont.pptx", SaveFormat.Pptx);


Другой пример демонстрирует замену шрифта для рендеринга, когда он недоступен:


             Presentation pres = new Presentation("PresContainsSomeRareFontFont.pptx");

            IFontData sourceFont = new FontData("SomeRareFont");

            IFontData destFont = new FontData("Arial");

            IFontSubstRule fontSubstRule = new FontSubstRule(

                sourceFont, destFont, FontSubstCondition.WhenInaccessible);

            IFontSubstRuleCollection fontSubstRuleCollection = new FontSubstRuleCollection();

            fontSubstRuleCollection.Add(fontSubstRule);

            pres.FontsManager.FontSubstRuleList = fontSubstRuleCollection;

            // Шрифт Arial будет использован вместо SomeRareFont, когда он недоступен

            pres.Slides[0].GetThumbnail();