Укажите истинное Тип расположения шрифтов

Эта тема описывает поведение по умолчанию Aspose.Words когда он ищет шрифты TrueType, включая специфические отличия операционной системы, и демонстрирует, как указать источники шрифтов пользователя.

The FontSourceBase Класс используется для указания различных источников шрифтов. Существует несколько реализаций FontSourceBase класс:

Подробная информация о реализации некоторых классов объясняется ниже.

Загрузка шрифтов из системы

Есть особая SystemFontSource Класс, который всегда используется по умолчанию. Он представляет все шрифты TrueType, установленные в системе. Таким образом, можно создать список источников с SystemFontSource и любые другие необходимые источники:

Один экземпляр из SystemFontSource Класс определяется по умолчанию в FontSettings. На разных операционных системах шрифты могут располагаться в разных местах. Однако, используя a FontSettings Пример для каждого документа не является оптимальным решением. В большинстве случаев, используя default_instance Должно быть достаточно.

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

Где? Aspose.Words Ищите шрифты TrueType Windows

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

На <p notrans="<p notrans=" Windows"="">

"> Aspose.Words Сначала берет все доступные шрифты из %windir% Папка шрифтов. Эта настройка будет работать для вас большую часть времени. Вы указываете только свои собственные папки шрифтов, если это необходимо. Aspose.Words для .NET Также ищите дополнительные шрифты, зарегистрированные в *HKEY_LOCAL MACHINE\SOFTWAREMicrosoft\Windows NT\CurrentVersion\Fonts* Регистрационный ключ. Кроме того, Windows 10 позволяет устанавливать шрифты для текущего пользователя. Шрифты помещаются в *%userprofile%\ AppData\LocalMicrosoft\Windows\Fonts* folder and also specified in the *HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\ Реестр шрифтов*, где Aspose.Words Будем искать эти шрифты.

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

  • Пользователи могут создавать новые источники шрифтов через FontSettings класс
  • Aspose.Words можно попытаться заменить пропущенный шрифт на аналогичный

Фонты на Non-Windows Системы

Aspose.Words будет искать шрифты в системных папках шрифтов. Список этих папок можно увидеть по SystemFontSource.get_system_font_folders метод. Если не найдено поддерживаемых шрифтов, Aspose.Words Используется встроенный по умолчанию шрифт Fanwood.ttf.

Поскольку метрики шрифтов Windows и не-Windows OS отличается, Aspose.Words делает все возможное, чтобы найти похожий шрифт и построить макет, похожий на оригинал. Однако это не всегда возможно. В этих случаях, FontSettings Класс должен использоваться для добавления пользовательских шрифтов или правил замены.

Где? Aspose.Words Ищите шрифты TrueType Linux

Различный Linux Дистрибутивы могут хранить шрифты в разных папках. Aspose.Words Ищите шрифты в нескольких местах. По умолчанию, Aspose.Words /usr/share/fonts*/usr/local/share/fonts**/usr/X11R6/lib/X11/fonts*. Это поведение по умолчанию будет работать для большинства Linux дистрибутивы, но это не гарантируется работать все время, в этом случае вам может потребоваться указать местоположение true шрифтов явно. Для этого вам нужно знать, где на вашем устройстве установлены шрифты TrueType. Linux распределения.

Где? Aspose.Words Поиск шрифтов TrueType на Mac OS X

Aspose.Words Ищите шрифты в папке /Library/Fonts, которая является стандартным местом для шрифтов TrueType на Mac OS X. Хотя этот параметр будет работать для вас большую часть времени, вам может потребоваться указать свои собственные папки шрифтов в случае, когда вам нужно.

Загрузка шрифтов из папки

Если обрабатываемый документ содержит ссылки на шрифты, которых нет в системе, или вы не хотите добавлять их в системную папку, или вам не хватает разрешений, то лучшим решением будет добавить папку со своими собственными шрифтами с помощью системы. FontSettings.set_fonts_sources метод. Это позволит заменить системный источник на пользовательский. Aspose.Words больше не будет искать шрифты в реестре или Windows\ Папка шрифта и вместо этого только сканирование шрифтов в указанной папке (ах). The FontSettings.get_font_sources Метод возвращает соответствующие значения.

Определение одной или нескольких папок шрифта

The FontSettings.set_fonts_folder и FontSettings.set_fonts_folders Методы являются короткими для FontSettings.set_font_sources Способ с одним или несколькими FolderFontSource Примеры. Эти методы используются для определения того, где Aspose.Words Нужно искать шрифты. Если папка отсутствует или недоступна, Aspose.Words Просто игнорирует эту папку. Если все папки, включая источники для замены шрифта, были проигнорированы, Aspose.Words По умолчанию будет использоваться шрифт Fanwood.

Следующий пример показывает, как установить папку или источник, который Aspose.Words Впоследствии будет использоваться для поиска шрифтов TrueType при рендеринге или встраивании шрифтов:

Вы можете скачать файл шаблона этого примера из Aspose.Words GitHub.

Дополнительный булевой параметр контролирует, сканируются ли шрифты рекурсивно через все папки, следовательно, сканируют все детские папки указанной папки. Следующий пример показывает, как установить Aspose.Words искать в нескольких папках шрифты TrueType при рендеринге или встраивании шрифтов:

Обратите внимание на приоритеты. Если есть шрифты с одинаковым фамилией и стилем в разных источниках шрифтов, то Aspose.Words Выберите шрифт из источника с более высоким приоритетом. См. описание поля “приоритет” ниже.

Если вы не хотите использовать системные шрифты, Aspose.Words Позволяет игнорировать их и использовать только собственные шрифты:

Приоритетное имущество

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

Получить список доступных шрифтов

Если вы хотите получить список доступных шрифтов, которые, например, могут быть использованы для рендеринга PDF-документа, вы можете использовать get_available_fonts Способ, как показано в следующем примере кода. The PhysicalFontInfo класс указывает информацию о физическом шрифте, доступном для Aspose.Words Двигатель шрифта: