Оптимизация замены шрифтов в презентациях на Android
Замена шрифтов
Если вы передумали использовать шрифт, вы можете заменить его другим шрифтом. Все вхождения старого шрифта будут заменены новым шрифтом.
Aspose.Slides позволяет заменить шрифт следующим образом:
- Загрузите соответствующую презентацию.
- Загрузите шрифт, который будет заменён.
- Загрузите новый шрифт.
- Замените шрифт.
- Запишите изменённую презентацию в виде файла PPTX.
Этот код Java демонстрирует замену шрифтов:
// Загружает презентацию
Presentation pres = new Presentation("Fonts.pptx");
try {
// Загружает исходный шрифт, который будет заменён
IFontData sourceFont = new FontData("Arial");
// Загружает новый шрифт
IFontData destFont = new FontData("Times New Roman");
// Заменяет шрифты
pres.getFontsManager().replaceFont(sourceFont, destFont);
// Сохраняет презентацию
pres.save("UpdatedFont_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Note
Чтобы задать правила, определяющие, что происходит в определённых условиях (например, если шрифт недоступен), см. Замена шрифтов.FAQ
В чём разница между «font replacement», «font substitution» и «fallback fonts»?
Замена — это преднамеренный переход от одного семейства к другому по всему документу. Substitution — это правило вида «если шрифт недоступен, использовать X». Fallback применяется избирательно для отдельных отсутствующих глифов, когда базовый шрифт установлен, но не содержит требуемых символов.
Применяется ли замена к главным слайдам, макетам, заметкам и комментариям?
Да. Замена затрагивает все объекты презентации, использующие исходный шрифт, включая главные слайды и заметки; комментарии также являются частью документа и учитываются шрифтовым движком.
Изменится ли шрифт внутри встроенных OLE‑объектов (например, Excel)?
Нет. OLE content контролируется своим собственным приложением. Замена в презентации не переоформляет внутренние данные OLE; они могут отображаться как изображение или как внешне редактируемый контент.
Могу ли я заменить шрифт только в части презентации (по слайдам или регионам)?
Целевую замену можно выполнить, если менять шрифт на уровне требуемых объектов/диапазонов, а не применять глобальную замену ко всему документу. Общая логика выбора шрифта при рендеринге остаётся той же.
Как заранее определить, какие шрифты использует презентация?
Используйте [font manager] презентации (https://reference.aspose.com/slides/androidjava/com.aspose.slides/fontsmanager/): он предоставляет список используемых семейств и информацию о заменах/«неизвестных» шрифтах, что помогает планировать замену.
Работает ли замена шрифтов при конвертации в PDF/изображения?
Да. При экспорте Aspose.Slides применяет тот же font selection/substitution sequence, поэтому выполненная заранее замена будет учитываться при конвертации.
Необходимо ли устанавливать целевой шрифт в системе, или можно прикрепить папку со шрифтами?
Установка не требуется: библиотека позволяет загрузка внешних шрифтов из пользовательских папок для использования при рендеринг и экспорт.
Исправит ли замена проблему с «тофу» (квадратами) вместо символов?
Только если целевой шрифт действительно содержит необходимые глифы. Если нет, configure fallback для покрытия отсутствующих символов.