Встраиваемые шрифты - PowerPoint C# API
Встроенные шрифты в PowerPoint полезны, когда вы хотите, чтобы ваша презентация отображалась корректно на любой системе или устройстве. Если вы использовали сторонний или нестандартный шрифт, потому что проявили креативность в своей работе, у вас есть еще больше причин для встраивания шрифта. В противном случае (без встроенных шрифтов) текст или числа на ваших слайдах, компоновка, стилизация и т. д. могут измениться или превратиться в запутанные прямоугольники.
Класс FontsManager, класс FontData и класс Compress и их интерфейсы содержат большинство свойств и методов, необходимых для работы с встроенными шрифтами в PowerPoint-презентациях.
Получение или удаление встроенных шрифтов из презентации
Aspose.Slides предоставляет метод GetEmbeddedFonts (предоставляемый классом FontsManager), который позволяет получить (или узнать) шрифты, встроенные в презентацию. Для удаления шрифтов используется метод RemoveEmbeddedFont (предоставляемый тем же классом).
Этот код C# демонстрирует, как получить и удалить встроенные шрифты из презентации:
// Создает объект Presentation, представляющий файл презентации
using (Presentation presentation = new Presentation("EmbeddedFonts.pptx"))
{
// Отображает слайд, содержащий текстовый блок, использующий встроенный шрифт "FunSized"
presentation.Slides[0].GetThumbnail(new Size(960, 720)).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" заменяется существующим
presentation.Slides[0].GetThumbnail(new Size(960, 720)).Save("picture2_out.png", ImageFormat.Png);
// Сохраняет презентацию без встроенного шрифта "Calibri" на диск
presentation.Save("WithoutManageEmbeddedFonts_out.ppt", SaveFormat.Ppt);
}
Добавление встроенных шрифтов в презентацию
Используя перечисление EmbedFontCharacters и два перегруженных метода AddEmbeddedFont, вы можете выбрать предпочитаемое правило (встраивания) для встраивания шрифтов в презентацию. Этот код C# демонстрирует, как встроить и добавить шрифты в презентацию:
// Загружает презентацию
Presentation presentation = new Presentation("Fonts.pptx");
// Загружает исходный шрифт для замены
IFontData sourceFont = new FontData("Arial");
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);
Сжатие встроенных шрифтов
Чтобы сжать встроенные шрифты в презентации и уменьшить ее размер, Aspose.Slides предоставляет метод CompressEmbeddedFonts (предоставляемый классом Compress).
Этот код C# показывает, как сжать встроенные шрифты PowerPoint:
using (Presentation pres = new Presentation("pres.pptx"))
{
Aspose.Slides.LowCode.Compress.CompressEmbeddedFonts(pres);
pres.Save("pres-out.pptx", SaveFormat.Pptx);
}