Настройка коллекций резервных шрифтов в C++

Применить правила резервного шрифта

Экземпляры класса FontFallBackRule могут быть организованы в FontFallBackRulesCollection, который реализует интерфейс IFontFallBackRulesCollection. Можно добавлять или удалять правила из коллекции.

Затем эту коллекцию можно передать методу set_FontFallBackRulesCollection() класса FontsManager. FontsManager управляет шрифтами во всей презентации.

У каждого Presentation есть метод get_FontsManager(), который возвращает собственный экземпляр класса FontsManager.

Ниже приведён пример того, как создать коллекцию правил резервных шрифтов и назначить её FontsManager определённой презентации:

auto presentation = MakeObject<Presentation>();
auto userRulesList = MakeObject<FontFallBackRulesCollection>();

userRulesList->Add(MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x0B80), static_cast<uint32_t>(0x0BFF), u"Vijaya"));
userRulesList->Add(MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x3040), static_cast<uint32_t>(0x309F), u"MS Mincho, MS Gothic"));

presentation->get_FontsManager()->set_FontFallBackRulesCollection(userRulesList);

После инициализации FontsManager коллекцией резервных шрифтов, резервные шрифты применяются во время рендеринга презентации.

Часто задаваемые вопросы

Будут ли мои правила резервного шрифта встроены в файл PPTX и видимы в PowerPoint после сохранения?

Нет. Правила резервного шрифта являются настройками рендеринга во время выполнения; они не сериализуются в PPTX и не будут отображаться в пользовательском интерфейсе PowerPoint.

Применяется ли резервный шрифт к тексту внутри SmartArt, WordArt, диаграмм и таблиц?

Да. Для любого текста в этих объектах используется тот же механизм подстановки глифов.

Поставляет ли Aspose какие-либо шрифты вместе с библиотекой?

Нет. Вы добавляете и используете шрифты самостоятельно и несёте за это ответственность.

Можно ли одновременно использовать замену/подстановку отсутствующих шрифтов и резервный шрифт для отсутствующих глифов?

Да. Это независимые этапы одного и того же конвейера разрешения шрифтов: сначала движок определяет доступность шрифтов (replacement/substitution), затем резервный шрифт заполняет пробелы для отсутствующих глифов в доступных шрифтах.