Настройка подстановки шрифтов в презентациях в .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 позволяет установить правила для шрифтов, определяющие, что необходимо сделать в определённых условиях (например, когда шрифт недоступен), следующим образом:

  1. Загрузите соответствующую презентацию.
  2. Загрузите шрифт, который будет заменён.
  3. Загрузите новый шрифт.
  4. Добавьте правило для замены.
  5. Добавьте правило в коллекцию правил замены шрифтов презентации.
  6. Сгенерируйте изображение слайда, чтобы увидеть результат.

Следующий код 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);
 }

Ограничения для шрифтов математических уравнений

Правила замены шрифтов участвуют в стандартном процессе выбора шрифтов, используемом во время рендеринга и конвертации. Они подходят для обычных текстовых сценариев, где 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?

Да. Поиск шрифтов начинается с каталогов шрифтов операционной системы. Набор доступных шрифтов по умолчанию и пути поиска различаются между платформами, что влияет на доступность и необходимость подстановки.

Как подготовить окружение, чтобы минимизировать непредвиденную подстановку при пакетных конверсиях?

Синхронезируйте набор шрифтов между машинами или контейнерами, добавьте внешние шрифты, необходимые для выходных документов, и внедрите шрифты в презентации, когда это возможно, чтобы выбранные шрифты были доступны во время рендеринга.