Оптимизировать замену шрифтов в презентациях с помощью Python
Replace Fonts
Если вы передумали использовать определённый шрифт, вы можете заменить его другим шрифтом. Все вхождения старого шрифта будут заменены новым шрифтом.
Aspose.Slides позволяет заменить шрифт следующим образом:
- Загрузите нужную презентацию.
- Загрузите шрифт, который будет заменён.
- Загрузите новый шрифт.
- Выполните замену шрифта.
- Сохраните изменённую презентацию в файл PPTX.
Этот код на Python демонстрирует замену шрифта:
import aspose.pydrawing as draw
import aspose.slides as slides
# Загружает презентацию
with slides.Presentation(path + "Fonts.pptx") as presentation:
# Загружает исходный шрифт, который будет заменён
sourceFont = slides.FontData("Arial")
# Загружает новый шрифт
destFont = slides.FontData("Times New Roman")
# Заменяет шрифты
presentation.fonts_manager.replace_font(sourceFont, destFont)
# Сохраняет презентацию
presentation.save("UpdatedFont_out.pptx", slides.export.SaveFormat.PPTX)
Примечание
Чтобы задать правила, определяющие, что происходит в определённых условиях (например, если шрифт недоступен), см. Подстановка шрифтов.FAQ
В чём разница между «заменой шрифта», «подстановкой шрифта» и «резервными шрифтами»?
Замена — это преднамеренный переход от одной гарнитуры к другой во всём документе. Подстановка — это правило типа «если шрифт недоступен, использовать X». Резервный шрифт — применяется выборочно для отдельных недостающих глифов, когда базовый шрифт установлен, но не содержит требуемых символов.
Применяется ли замена к шаблонам слайдов, макетам, заметкам и комментариям?
Да. Замена влияет на все объекты презентации, использующие исходный шрифт, включая шаблоны слайдов и заметки; комментарии также являются частью документа и учитываются шрифтовым движком.
Изменится ли шрифт внутри встроенных OLE‑объектов (например, Excel)?
Нет. OLE‑контент управляется своим приложением. Замена в презентации не переоформляет внутренние данные OLE; они могут отображаться как изображение или как внешний редактируемый контент.
Могу ли я заменить шрифт только в части презентации (по слайдам или регионам)?
Целевая замена возможна, если менять шрифт на уровне нужных объектов/диапазонов, а не применять глобальную замену ко всему документу. Общая логика выбора шрифта при рендеринге остаётся прежней.
Как заранее определить, какие шрифты использует презентация?
Используйте [font manager] презентации (https://reference.aspose.com/slides/python-net/aspose.slides/fontsmanager/): он предоставляет список [используемых гарнитур] (https://reference.aspose.com/slides/python-net/aspose.slides/fontsmanager/get_fonts/) и информацию о [подстановках/«неизвестных» шрифтах] (https://reference.aspose.com/slides/python-net/aspose.slides/fontsmanager/get_substitutions/), что помогает планировать замену.
Работает ли замена шрифта при конвертации в PDF/изображения?
Да. При экспорте Aspose.Slides применяет ту же последовательность выбора/подстановки шрифтов, поэтому выполненная заранее замена будет учтена при конвертации.
Нужно ли устанавливать целевой шрифт в системе, или можно подключить папку со шрифтами?
Установка не требуется: библиотека позволяет загружать внешние шрифты из пользовательских папок для использования при рендеринге и экспорте.
Исправит ли замена проблему «тофу» (квадратов вместо символов)?
Только если целевой шрифт действительно содержит требуемые глифы. В противном случае настройте резервный шрифт для покрытия недостающих символов.