Конфигурирование замены шрифтов в презентациях на .NET
Получить замену шрифтов
Чтобы вы могли узнать, какие шрифты презентации заменяются во время процесса рендеринга презентации, Aspose.Slides предоставляет метод GetSubstitution из интерфейса IFontsManager.
В коде C# показано, как получить все замены шрифтов, которые выполняются при рендеринге презентации:
using (Presentation pres = new Presentation(@"Presentation.pptx"))
{
foreach (var fontSubstitution in pres.FontsManager.GetSubstitutions())
{
Console.WriteLine("{0} -> {1}", fontSubstitution.OriginalFontName, fontSubstitution.SubstitutedFontName);
}
}
Установить правила замены шрифтов
Aspose.Slides позволяет задавать правила для шрифтов, определяющие, что необходимо делать в определённых условиях (например, когда шрифт недоступен) следующим образом:
- Загрузите соответствующую презентацию.
- Загрузите шрифт, который будет заменён.
- Загрузите новый шрифт.
- Добавьте правило для замены.
- Добавьте правило в коллекцию правил замены шрифтов презентации.
- Сгенерируйте изображение слайда, чтобы увидеть эффект.
В этом коде C# демонстрируется процесс замены шрифтов:
// Загружает презентацию
Presentation presentation = new Presentation("Fonts.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);
// Добавляет коллекцию правил замены шрифтов в список правил
presentation.FontsManager.FontSubstRuleList = fontSubstRuleCollection;
using (IImage image = presentation.Slides[0].GetImage(1f, 1f))
{
// Сохраняет изображение на диск в формате JPEG
image.Save("Thumbnail_out.jpg", ImageFormat.Jpeg);
}
NOTE
Возможно, вам будет интересно посмотреть Замена шрифтов.FAQ
В чем разница между заменой шрифтов и их субституцией?
Замена — принудительное переопределение одного шрифта другим во всей презентации. Субституция — правило, которое срабатывает при определённом условии, например когда исходный шрифт недоступен, и тогда используется указанный резервный шрифт.
Когда именно применяются правила субституции?
Правила участвуют в стандартной последовательности выбора шрифта, которая оценивается во время загрузки, рендеринга и конвертации; если выбранный шрифт недоступен, применяется замена или субституция.
Каково поведение по умолчанию, если ни замена, ни субституция не настроены и шрифт отсутствует в системе?
Библиотека попытается выбрать ближайший доступный системный шрифт, аналогично тому, как это делает PowerPoint.
Можно ли подключать пользовательские внешние шрифты во время выполнения, чтобы избежать субституции?
Да. Вы можете добавить внешние шрифты во время выполнения, чтобы библиотека учитывала их при выборе и рендеринге, включая последующие конвертации.
Поставляет ли Aspose какие-либо шрифты вместе с библиотекой?
Нет. Aspose не распространяет платные или бесплатные шрифты; вы добавляете и используете шрифты по своему усмотрению и ответственности.
Есть ли различия в поведении субституции на Windows, Linux и macOS?
Да. Поиск шрифтов начинается с каталогов шрифтов операционной системы. Набор доступных шрифтов по умолчанию и пути поиска различаются между платформами, что влияет на их доступность и необходимость субституции.
Как подготовить окружение, чтобы минимизировать неожиданную субституцию при пакетных конверсиях?
Синхронизируйте набор шрифтов между машинами или контейнерами, добавьте внешние шрифты необходимые для создаваемых документов, и по возможности встраивайте шрифты в презентации, чтобы выбранные шрифты были доступны во время рендеринга.