Настройка подстановки шрифтов в презентациях с использованием С++

Установить правила замены шрифтов

Aspose.Slides позволяет задать правила для шрифтов, определяющие, что необходимо сделать в определённых условиях (например, когда шрифт недоступен) следующим образом:

  1. Загрузить соответствующую презентацию.
  2. Загрузить шрифт, который будет заменён.
  3. Загрузить новый шрифт.
  4. Добавить правило замены.
  5. Добавить правило в коллекцию правил замены шрифтов презентации.
  6. Сгенерировать изображение слайда, чтобы увидеть эффект.

Этот C++ код демонстрирует процесс замены шрифтов:

// Путь к каталогу документов.
const String outPath = u"../out/RuleBasedFontsReplacement_out.pptx";
const String templatePath = u"../templates/DefaultFonts.pptx";


// Загружает презентацию
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

// Определяет шрифт, который будет заменён, и новый шрифт
SharedPtr<IFontData> sourceFont = MakeObject<FontData>(u"SomeRareFont");
SharedPtr<IFontData> destFont = MakeObject<FontData>(u"Arial");
	
// Добавляет правило шрифта для замены шрифта
SharedPtr<FontSubstRule> fontSubstRule = MakeObject<FontSubstRule>(sourceFont, destFont, FontSubstCondition::WhenInaccessible);

// Добавляет правило в коллекцию правил подстановки шрифтов
SharedPtr<FontSubstRuleCollection> fontSubstRuleCollection = MakeObject<FontSubstRuleCollection>();
fontSubstRuleCollection->Add(fontSubstRule);

// Добавляет коллекцию правил шрифтов в список правил
pres->get_FontsManager()->set_FontSubstRuleList ( fontSubstRuleCollection);


// Сохраняет PPTX на диск
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

FAQ

В чём разница между заменой шрифта и его подстановкой?

Replacement — принудительное переопределение одного шрифта другим во всей презентации. Подстановка — правило, срабатывающее при конкретном условии, например когда оригинальный шрифт недоступен, и тогда используется назначенный запасной шрифт.

Когда именно применяются правила подстановки?

Правила участвуют в стандартной последовательности font selection, оцениваемой при загрузке, рендеринге и конвертации; если выбранный шрифт недоступен, применяется замена или подстановка.

Каково поведение по умолчанию, если ни замена, ни подстановка не настроены и шрифт отсутствует в системе?

Библиотека попробует подобрать ближайший доступный системный шрифт, аналогично тому, как ведёт себя PowerPoint.

Могу ли я прикрепить пользовательские внешние шрифты во время выполнения, чтобы избежать подстановки?

Да. Вы можете add external fonts во время выполнения, чтобы библиотека учитывала их при выборе и рендеринге, включая последующие конвертации.

Распространяет ли Aspose какие‑то шрифты вместе с библиотекой?

Нет. Aspose не распространяет платные или бесплатные шрифты; вы добавляете и используете шрифты по своей инициативе и ответственности.

Есть ли различия в поведении подстановки на Windows, Linux и macOS?

Да. Поиск шрифтов начинается из каталогов шрифтов операционной системы. Набор доступных шрифтов по умолчанию и пути поиска различаются между платформами, что влияет на доступность и необходимость подстановки.

Как подготовить окружение, чтобы минимизировать неожиданную подстановку при пакетных конверсиях?

Синхронизируйте набор шрифтов между машинами или контейнерами, add the external fonts необходимые для выходных документов, и embed fonts в презентациях, когда это возможно, чтобы выбранные шрифты были доступны во время рендеринга.