Настройка шрифтов для визуализации электронных таблиц
Возможные сценарии использования
API-интерфейсы Aspose.Cells позволяют отображать электронные таблицы в форматах изображений, а также преобразовывать их в форматы PDF и XPS. Чтобы максимизировать точность преобразования, необходимо, чтобы шрифты, используемые в электронной таблице, были доступны в каталоге шрифтов операционной системы по умолчанию. Если необходимые шрифты отсутствуют, API-интерфейсы Aspose.Cells попытаются заменить требуемые шрифты доступными.
Выбор шрифтов
Ниже показан процесс, которому Aspose.Cells API следуют за сценой.
- API пытается найти шрифты в файловой системе, соответствующие точному имени шрифта, используемому в электронной таблице.
- Если API не может найти шрифты с точно такими же именами, он пытается использовать шрифт по умолчанию, указанный в рабочей книге.DefaultStyle.Font имущество.
- Если API не может найти шрифт, определенный в рабочей книгеDefaultStyle.Font свойство, он пытается использовать шрифт, указанный вPdfSaveOptions.DefaultFont или жеImageOrPrintOptions.DefaultFont имущество.
- Если API не может найти шрифт, определенный вPdfSaveOptions.DefaultFont или жеImageOrPrintOptions.DefaultFont свойство, он пытается использовать шрифт, указанный вFontConfigs.DefaultFontName имущество.
- Если API не может найти шрифт, определенный вFontConfigs.DefaultFontName свойство, он пытается выбрать наиболее подходящие шрифты из всех доступных шрифтов.
- Наконец, если API не может найти шрифты в файловой системе, он отображает электронную таблицу с использованием Arial.
Установить папки пользовательских шрифтов
Aspose.Cells API-интерфейсы выполняют поиск требуемых шрифтов в каталоге шрифтов операционной системы по умолчанию. Если требуемые шрифты недоступны в системном каталоге шрифтов, API-интерфейсы выполняют поиск в пользовательских (определяемых пользователем) каталогах.Конфигурации шрифтовclass предоставил несколько способов установки пользовательских каталогов шрифтов, как описано ниже.
- FontConfigs.setFontFolder: Этот метод удобен, если необходимо установить только одну папку.
- FontConfigs.setFontFolders: этот метод удобен, когда шрифты находятся в нескольких папках, и пользователь хочет установить все папки по отдельности, а не объединять все шрифты в одной папке.
- FontConfigs.setFontSources: этот механизм полезен, когда пользователь хочет загрузить шрифты из нескольких папок или одного файла шрифта или данных шрифта из массива байтов.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(SetCustomFontFolders.class); | |
// Defining string variables to store paths to font folders & font file | |
String fontFolder1 = dataDir + "/Arial"; | |
String fontFolder2 = dataDir + "/Calibri"; | |
String fontFile = dataDir + "/Arial/arial.ttf"; | |
// Setting first font folder with setFontFolder method | |
// Second parameter directs the API to search the sub folders for font files | |
FontConfigs.setFontFolder(fontFolder1, true); | |
// Setting both font folders with setFontFolders method | |
// Second parameter prohibits the API to search the sub folders for font files | |
FontConfigs.setFontFolders(new String[] { fontFolder1, fontFolder2 }, false); | |
// Defining FolderFontSource | |
FolderFontSource sourceFolder = new FolderFontSource(fontFolder1, false); | |
// Defining FileFontSource | |
FileFontSource sourceFile = new FileFontSource(fontFile); | |
// Defining MemoryFontSource | |
byte[] bytes = Files.readAllBytes(new File(fontFile).toPath()); | |
MemoryFontSource sourceMemory = new MemoryFontSource(bytes); | |
// Setting font sources | |
FontConfigs.setFontSources(new FontSourceBase[] { sourceFolder, sourceFile, sourceMemory }); |
Механизм замены шрифта
Aspose.Cells API-интерфейсы также предоставляют возможность указать замещающий шрифт для целей рендеринга. Этот механизм удобен, когда требуемый шрифт недоступен на машине, на которой должно выполняться преобразование. Пользователи могут предоставить список имен шрифтов в качестве альтернативы первоначально необходимому шрифту. Для этого API-интерфейсы Aspose.Cells предоставили метод FontConfigs.setFontSubstitutes, который принимает 2 параметра. Первый параметр имеет типНить , которое должно быть названием шрифта, который необходимо заменить. Второй параметр представляет собой массив типаНить. Пользователи могут предоставить список имен шрифтов в качестве заменителей исходного шрифта (указанного в первом параметре).
Вот простой сценарий использования.
//Substituting the Arial font with Times New Roman & Calibri
FontConfigs.setFontSubstitutes("Arial", new String[]{ "Times New Roman", "Calibri" });
Сбор информации
В дополнение к вышеупомянутым методам API-интерфейсы Aspose.Cells также предоставляют средства для сбора информации о том, какие источники и замены были установлены.
- FontConfigs.getFontSources: Этот метод возвращает массив типаFontSourceBaseсодержащий список указанных источников шрифтов. В случае, если источники не были установлены,FontConfigs.getFontSources вернет пустой массив.
- FontConfigs.getFontSubstitutes: этот метод принимает параметр типаНить позволяет указать имя шрифта, для которого установлена замена. В случае, если для указанного имени шрифта не была установлена замена, тоFontConfigs.getFontSubstitutes метод вернет null.