# Встраивание шрифтов в презентации в .NET

> Встраивание шрифтов TrueType в презентации PowerPoint и OpenDocument с помощью Aspose.Slides для .NET, обеспечивая точный рендеринг на всех платформах.

Source: https://docs.aspose.com/slides/ru/net/embedded-font/
Updated: 2025-12-10


**Встраивание шрифтов в PowerPoint** гарантирует, что ваша презентация сохраняет задуманное внешнее оформление на разных системах. Будь то уникальные шрифты для креатива или стандартные, встраивание шрифтов предотвращает искажение текста и макета.

Если вы использовали сторонний или нестандартный шрифт, потому что проявляли креативность в работе, у вас есть ещё больше причин встраивать шрифт. В противном случае (без встроенных шрифтов) текст или цифры на слайдах, макет, стили и т.д. могут измениться или превратиться в непонятные прямоугольники.

Используйте классы [FontsManager](https://reference.aspose.com/slides/net/aspose.slides/fontsmanager/), [FontData](https://reference.aspose.com/slides/net/aspose.slides/fontdata/) и [Compress](https://reference.aspose.com/slides/net/aspose.slides.lowcode/compress/) для управления встроенными шрифтами.

## **Получить и удалить встроенные шрифты**

Легко получайте или удаляйте встроенные шрифты из презентации с помощью методов [GetEmbeddedFonts](https://reference.aspose.com/slides/net/aspose.slides/fontsmanager/getembeddedfonts) и [RemoveEmbeddedFont](https://reference.aspose.com/slides/net/aspose.slides/fontsmanager/removeembeddedfont).

Этот код C# показывает, как получить и удалить встроенные шрифты из презентации:
```c#
using (Presentation presentation = new Presentation("EmbeddedFonts.pptx"))
{
    ISlide slide = presentation.Slides[0];

    // Отрисовывает слайд, содержащий текстовый кадр, использующий встраиваемый "FunSized"
    using (IImage image = slide.GetImage(new Size(960, 720)))
    {
        image.Save("picture1_out.png", ImageFormat.Png);
    }

    IFontsManager fontsManager = presentation.FontsManager;

    IFontData[] embeddedFonts = fontsManager.GetEmbeddedFonts();

    // Находит шрифт "Calibri"
    IFontData funSizedEmbeddedFont = Array.Find(embeddedFonts, delegate (IFontData data)
    {
        return data.FontName == "Calibri";
    });

    // Удаляет шрифт "Calibri"
    fontsManager.RemoveEmbeddedFont(funSizedEmbeddedFont);

    // Отрисовывает презентацию; шрифт "Calibri" заменяется существующим
    using (IImage image = slide.GetImage(new Size(960, 720)))
    {
        image.Save("picture2_out.png", ImageFormat.Png);
    }

    // Сохраняет презентацию без встраиваемого шрифта "Calibri" на диск
    presentation.Save("WithoutManageEmbeddedFonts_out.ppt", SaveFormat.Ppt);
}
```


## **Добавить встроенные шрифты**

С помощью перечисления [EmbedFontCharacters](https://reference.aspose.com/slides/net/aspose.slides.export/embedfontcharacters/) и двух перегрузок метода [AddEmbeddedFont](https://reference.aspose.com/slides/net/aspose.slides/fontsmanager/addembeddedfont/) вы можете выбрать предпочтительное (встраиваемое) правило для включения шрифтов в презентацию. Этот код C# показывает, как встраивать и добавлять шрифты в презентацию:
```c#
// Загружает презентацию
Presentation presentation = new Presentation("Fonts.pptx");

IFontData[] allFonts = presentation.FontsManager.GetFonts();
IFontData[] embeddedFonts = presentation.FontsManager.GetEmbeddedFonts();
foreach (IFontData font in allFonts)
{
    if (!embeddedFonts.Contains(font))
    {
        presentation.FontsManager.AddEmbeddedFont(font, EmbedFontCharacters.All);
    }
}

// Сохраняет презентацию на диск
presentation.Save("AddEmbeddedFont_out.pptx", SaveFormat.Pptx);
```


## **Сжать встроенные шрифты**

Оптимизируйте размер файла, сжимая встроенные шрифты с помощью [CompressEmbeddedFonts](https://reference.aspose.com/slides/net/aspose.slides.lowcode/compress/compressembeddedfonts/).

Пример кода для сжатия:
```c#
using (Presentation pres = new Presentation("pres.pptx"))
{
    Aspose.Slides.LowCode.Compress.CompressEmbeddedFonts(pres);
    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}
```


## **FAQ**

**Как понять, что конкретный шрифт в презентации всё равно будет заменён при рендеринге, несмотря на встраивание?**

Проверьте [информацию о замене](/slides/ru/net/font-substitution/) в менеджере шрифтов и [правила замены/резервных шрифтов](/slides/ru/net/fallback-font/): если шрифт недоступен или ограничен, будет использован резервный.

**Стоит ли встраивать «системные» шрифты, такие как Arial/Calibri?**

Обычно нет — они почти всегда доступны. Но для полной переносимости в «тонких» средах (Docker, Linux‑сервер без предустановленных шрифтов) встраивание системных шрифтов может устранить риск неожиданной замены.
