Встроенные шрифты

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

Класс FontsManager, класс FontData, класс Compress и их интерфейсы содержат большинство свойств и методов, необходимых для работы с встроенными шрифтами в презентациях PowerPoint.

Получить или удалить встроенные шрифты из презентации

Aspose.Slides предоставляет метод get_embedded_fonts() (предоставляемый классом FontsManager), который позволяет получить (или определить) шрифты, встроенные в презентацию. Для удаления шрифтов используется метод remove_embedded_font(font_data) (предоставляемый тем же классом).

Этот код на Python показывает, как получить и удалить встроенные шрифты из презентации:

import aspose.slides as slides
import aspose.pydrawing as draw

# Создает объект Presentation, представляющий файл презентации
with slides.Presentation(path + "EmbeddedFonts.pptx") as presentation:
    # Отрисовывает слайд, содержащий текстовый фрейм, который использует встроенный "FunSized"
    with presentation.slides[0].get_image(draw.Size(960, 720)) as img:
        img.save("picture1_out.png", slides.ImageFormat.PNG)

    fontsManager = presentation.fonts_manager

    # Получает все встроенные шрифты
    embeddedFonts = fontsManager.get_embedded_fonts()

    # Ищет шрифт "Calibri"
    
    funSizedEmbeddedFont = list(filter(lambda data : data.font_name == "Calibri", embeddedFonts))[0]

    # Удаляет шрифт "Calibri"
    fontsManager.remove_embedded_font(funSizedEmbeddedFont)

    # Отрисовывает презентацию; шрифт "Calibri" заменяется на существующий
    with presentation.slides[0].get_image(draw.Size(960, 720)) as img:
        img.save("picture2_out.png", slides.ImageFormat.PNG)

    # Сохраняет презентацию без встроенного шрифта "Calibri" на диск
    presentation.save("WithoutManageEmbeddedFonts_out.ppt", slides.export.SaveFormat.PPT)

Добавить встроенные шрифты в презентацию

Используя перечисление EmbedFontCharacters и две перегрузки метода add_embedded_font(font_data, embed_font_rule), вы можете выбрать желаемое (встраиваемое) правило для встраивания шрифтов в презентацию. Этот код на Python показывает, как встроить и добавить шрифты в презентацию:

import aspose.slides as slides

# Загружает презентацию
with slides.Presentation(path + "Fonts.pptx") as presentation:
    # Загружает исходный шрифт для замены
    sourceFont = slides.FontData("Arial")


    allFonts = presentation.fonts_manager.get_fonts()
    embeddedFonts = presentation.fonts_manager.get_embedded_fonts()
    for font in allFonts:
        if font not in embeddedFonts:
            presentation.fonts_manager.add_embedded_font(font, slides.export.EmbedFontCharacters.ALL)

    # Сохраняет презентацию на диск
    presentation.save("AddEmbeddedFont_out.pptx", slides.export.SaveFormat.PPTX)

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

Чтобы позволить вам сжать шрифты, встроенные в презентацию, и уменьшить её размер файла, Aspose.Slides предоставляет метод compress_embedded_fonts (предоставляемый классом Compress).

Этот код на Python показывает, как сжать встроенные шрифты PowerPoint:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres:

    slides.lowcode.Compress.compress_embedded_fonts(pres)
    pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)