Манипулирование шрифтами и проблемы с производительностью

Все доступные механизмы манипулирования шрифтами содержатся в классе FontSettings. Этот класс отвечает за выборку шрифтов из определенных источников, а также за процесс замены шрифта, как описано ниже.

Разбор разрешенных шрифтов

Анализ шрифтов выполняется в несколько этапов:

  1. Получение информации о шрифте, выбор из всех доступных шрифтов.
  2. Разбор разрешенных шрифтов для получения доступных глифов и метрик (горизонтальных и вертикальных).
  3. Разбор разрешенных шрифтов для встраивания и подстановки.

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

Проблема с Производительностью При Замене Шрифтов

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

В случае, когда FontSettings не определено явно, Aspose.Words использует экземпляр по умолчанию FontSettings. Этот экземпляр также автоматически распределяется между документами и может быть извлечен следующим образом:

С++

System::SharedPtr<FontSettings> fontSettings = System::MakeObject<FontSettings>()->get_DefaultInstance();

Использование экземпляра по умолчанию FontSettings

Если вы уверены, что для всех обрабатываемых документов требуются одинаковые настройки шрифта, рекомендуется настроить и использовать экземпляр по умолчанию FontSettings. Предположим, что вам нужно использовать одинаковые источники шрифтов для всех ваших документов. В этом случае вы можете просто изменить экземпляр по умолчанию следующим образом: