# Настройка подстановки шрифтов в презентациях с использованием JavaScript

> Обеспечьте оптимальную подстановку шрифтов в Aspose.Slides для Node.js при конвертации презентаций PowerPoint и OpenDocument в другие форматы файлов на JavaScript.

Source: https://docs.aspose.com/slides/ru/nodejs-java/font-substitution/
Updated: 2026-03-29

## **Задать правила подстановки шрифтов**

Aspose.Slides позволяет задать правила для шрифтов, определяющие, что необходимо сделать в определённых условиях (например, когда шрифт недоступен), следующим образом:

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

Этот код JavaScript демонстрирует процесс подстановки шрифтов:

```javascript
// Загружает презентацию
var pres = new aspose.slides.Presentation("Fonts.pptx");
try {
    // Загружает исходный шрифт, который будет заменён
    var sourceFont = new aspose.slides.FontData("SomeRareFont");
    // Загружает новый шрифт
    var destFont = new aspose.slides.FontData("Arial");
    // Добавляет правило шрифта для замены шрифта
    var fontSubstRule = new aspose.slides.FontSubstRule(sourceFont, destFont, aspose.slides.FontSubstCondition.WhenInaccessible);
    // Добавляет правило в коллекцию правил подстановки шрифтов
    var fontSubstRuleCollection = new aspose.slides.FontSubstRuleCollection();
    fontSubstRuleCollection.add(fontSubstRule);
    // Добавляет коллекцию правил шрифтов в список правил
    pres.getFontsManager().setFontSubstRuleList(fontSubstRuleCollection);
    // Шрифт Arial будет использоваться вместо SomeRareFont, когда последний недоступен
    var slideImage = pres.getSlides().get_Item(0).getImage(1.0, 1.0);
    // Сохраняет изображение на диск в формате JPEG
    try {
        slideImage.save("Thumbnail_out.jpg", aspose.slides.ImageFormat.Jpeg);
    } finally {
        if (slideImage != null) {
            slideImage.dispose();
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}
```

{{%  alert title="NOTE"  color="warning"   %}} 
Возможно, вы захотите увидеть [**Font Replacement**](/slides/ru/nodejs-java/font-replacement/).
{{% /alert %}}

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

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

Однако у уравнений Office Math есть важное ограничение. Если уравнение было создано с использованием **Cambria Math**, Aspose.Slides всё равно может потребовать оригинальный шрифт **Cambria Math** для расчёта и правильного рендеринга макета уравнения. По этой причине подмена **Cambria Math** другим математическим шрифтом, например **STIX Two Math**, не поддерживается при рендеринге уравнений и может всё ещё приводить к исключению, указывающему, что требуется **Cambria Math**.

Чтобы успешно конвертировать такие презентации, убедитесь, что **Cambria Math** доступен Aspose.Slides во время выполнения. Вы можете установить шрифт в операционной системе или предоставить его в виде [внешний шрифт](/slides/ru/nodejs-java/custom-font/), чтобы он мог участвовать в обычном процессе выбора шрифта при рендеринге и конвертации.

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

## **FAQ**

**В чём разница между заменой шрифта и подстановкой шрифта?**

[Replacement](/slides/ru/nodejs-java/font-replacement/) — это принудительное переопределение одного шрифта другим во всей презентации. Подстановка — это правило, которое срабатывает при определённом условии, например, когда оригинальный шрифт недоступен, и тогда используется заданный запасной шрифт.

**Когда именно применяются правила подстановки?**

Правила участвуют в стандартной последовательности [выбор шрифта](/slides/ru/nodejs-java/font-selection-sequence/), которая оценивается во время загрузки, рендеринга и конвертации; если выбранный шрифт недоступен, применяется замена или подстановка.

**Каково поведение по умолчанию, если ни замена, ни подстановка не настроены и шрифт отсутствует в системе?**

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

**Могу ли я прикрепить пользовательские внешние шрифты во время выполнения, чтобы избежать подстановки?**

Да. Вы можете [добавить внешние шрифты](/slides/ru/nodejs-java/custom-font/) во время выполнения, чтобы библиотека учитывала их при выборе и рендеринге, в том числе при последующих конвертациях.

**Поставляет ли Aspose какие-либо шрифты вместе с библиотекой?**

Нет. Aspose не распространяет ни платные, ни бесплатные шрифты; вы добавляете и используете шрифты по своему усмотрению и ответственности.

**Есть ли различия в поведении подстановки на Windows, Linux и macOS?**

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

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

Синхронизируйте набор шрифтов между машинами или контейнерами, [добавьте внешние шрифты](/slides/ru/nodejs-java/custom-font/) необходимые для выходных документов, и [встроите шрифты](/slides/ru/nodejs-java/embedded-font/) в презентации, когда это возможно, чтобы выбранные шрифты были доступны во время рендеринга.
