Настройка подстановки шрифтов в презентациях в .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
Возможно, вам будет интересно посмотреть Замена шрифтов.Ограничения для шрифтов математических уравнений
Правила замены шрифтов участвуют в стандартном процессе выбора шрифтов, используемом во время рендеринга и конвертации. Они подходят для обычных текстовых сценариев, где Aspose.Slides может заменить недоступный шрифт другим доступным шрифтом в соответствии с настроенным правилом.
Однако у уравнений Office Math есть важное ограничение. Если уравнение было создано с использованием Cambria Math, Aspose.Slides всё равно может потребовать оригинальный шрифт Cambria Math для правильного расчёта и рендеринга макета уравнения. По этой причине замена Cambria Math другим математическим шрифтом, например STIX Two Math, не поддерживается при рендеринге уравнений и может привести к исключению, указывающему, что требуется Cambria Math.
Чтобы успешно конвертировать такие презентации, убедитесь, что Cambria Math доступен Aspose.Slides во время выполнения. Вы можете установить шрифт в операционной системе или предоставить его как внешний шрифт, чтобы он мог участвовать в обычном процессе выбора шрифтов во время рендеринга и конвертации.
Это ограничение относится только к рендерингу уравнений. Описанные выше стандартные правила замены шрифтов по‑прежнему применяются к обычному тексту презентации, когда оригинальный шрифт недоступен.
FAQ
В чем разница между заменой шрифтов и подстановкой шрифтов?
Replacement – это принудительная замена одного шрифта другим по всей презентации. Подстановка — это правило, которое срабатывает при определённом условии, например когда оригинальный шрифт недоступен, и тогда используется назначенный запасный шрифт.
Когда именно применяются правила подстановки?
Правила участвуют в стандартной последовательности выбора шрифтов, которая оценивается во время загрузки, рендеринга и конвертации; если выбранный шрифт недоступен, применяется замена или подстановка.
Каково поведение по умолчанию, если ни замена, ни подстановка не настроены и шрифт отсутствует в системе?
Библиотека попытается выбрать наиболее похожий доступный системный шрифт, аналогично тому, как это делает PowerPoint.
Могу ли я подключать пользовательские внешние шрифты во время выполнения, чтобы избежать подстановки?
Да. Вы можете добавлять внешние шрифты во время выполнения, и библиотека будет учитывать их при выборе и рендеринге, включая последующие конвертации.
Распространяет ли Aspose какие‑либо шрифты вместе с библиотекой?
Нет. Aspose не распространяет платные или бесплатные шрифты; вы добавляете и используете шрифты по своему усмотрению и ответственности.
Есть ли различия в поведении подстановки на Windows, Linux и macOS?
Да. Поиск шрифтов начинается с каталогов шрифтов операционной системы. Набор доступных шрифтов по умолчанию и пути поиска различаются между платформами, что влияет на доступность и необходимость подстановки.
Как подготовить окружение, чтобы минимизировать непредвиденную подстановку при пакетных конверсиях?
Синхронезируйте набор шрифтов между машинами или контейнерами, добавьте внешние шрифты, необходимые для выходных документов, и внедрите шрифты в презентации, когда это возможно, чтобы выбранные шрифты были доступны во время рендеринга.