Маніпулювання шрифтами та проблеми з продуктивністю
Усі доступні механізми маніпулювання шрифтами містяться в класі FontSettings. Цей клас відповідає за вибірку шрифтів з певних джерел, а також за процес заміни шрифту, як описано нижче.
Розбір дозволених шрифтів
Аналіз шрифтів виконується в кілька етапів:
- Отримання інформації про Шрифт, вибір з усіх доступних шрифтів.
- Аналіз дозволених шрифтів для отримання доступних гліфів і метрик (горизонтальних і вертикальних).
- Аналіз дозволених шрифтів для вбудовування і підгрупування.
Коли Aspose.Words вперше зустрічає шрифт у документі, він намагається отримати основну інформацію про Шрифт, таку як повна назва шрифту, прізвище, версія, стиль, із файлів шрифтів, розташованих у кожному джерелі шрифту. Після вилучення всіх шрифтів Aspose.Words використовує ці відомості для пошуку необхідних даних шрифту або відповідної заміни запитуваного шрифту.
Проблема продуктивності при заміні шрифтів
Оскільки описана вище процедура займає багато часу, це може негативно позначитися на продуктивності програми при його першому запуску. Однак кожен екземпляр FontSettings має власний кеш, що може скоротити час обробки наступних документів. Наприклад, ви можете спільно використовувати екземпляр класу FontSettings для різних документів, що дозволяє прискорити завантаження документів. Наступний приклад демонструє це:
У випадку, коли FontSettings Не визначено явно, Aspose.Words використовує екземпляр за замовчуванням FontSettings. Цей екземпляр також автоматично розподіляється між документами і може бути витягнутий наступним чином:
C++
System::SharedPtr<FontSettings> fontSettings = System::MakeObject<FontSettings>()->get_DefaultInstance();
Використання екземпляра за замовчуванням FontSettings
Якщо ви впевнені, що всі документи, які обробляються, вимагають однакових налаштувань шрифту, рекомендується налаштувати та використовувати екземпляр за замовчуванням FontSettings. Припустимо, вам потрібно використовувати однакові джерела шрифтів для всіх ваших документів. У цьому випадку ви можете просто змінити екземпляр за замовчуванням наступним чином: