Настройка шрифтов для визуализации электронных таблиц
Возможные сценарии использования
API Aspose.Cells для Python via .NET обеспечивает возможность отображения таблиц в графических форматах, а также их преобразование в PDF и XPS. Для максимального качества преобразования необходимо, чтобы шрифты, используемые в таблице, были доступны в стандартной директории шрифтов операционной системы. В случае отсутствия необходимых шрифтов, API Aspose.Cells для Python via .NET попытается заменить их доступными шрифтами.
Выбор шрифтов
Ниже приведён процесс, который API Aspose.Cells для Python via .NET выполняет за кулисами.
- API пытается найти шрифты на файловой системе, соответствующие точному имени шрифта, используемому в электронной таблице.
- Если API не может найти шрифты с точно таким же именем, он пытается использовать шрифт по умолчанию, указанный в свойстве DefaultStyle.font книги.
- Если API не может найти шрифт, определенный в свойстве DefaultStyle.font книги, он пытается использовать шрифт, указанный в свойствах PdfSaveOptions.default_font или ImageOrPrintOptions.default_font.
- Если API не может найти шрифт, определенный в свойствах PdfSaveOptions.default_font или ImageOrPrintOptions.default_font, он пытается использовать шрифт, указанный в свойстве FontConfigs.default_font_name.
- Если API не может найти шрифт, определенный в свойстве FontConfigs.default_font_name, он пытается выбрать наиболее подходящие шрифты из всех доступных шрифтов.
- Наконец, если API не может найти шрифты на файловой системе, он визуализирует электронную таблицу с использованием шрифта Arial.
Установка пользовательских каталогов шрифтов
API Aspose.Cells для Python via .NET ищет необходимые шрифты в стандартной директории шрифтов операционной системы. Если нужных шрифтов нет, они ищутся по пользовательским папкам. Класс FontConfigs предоставляет различные способы настройки пользовательских директорий шрифтов, подробно описанные ниже.
- FontConfigs.set_font_folder: Этот метод полезен, если нужно установить только одну папку.
- FontConfigs.set_font_folders: Этот метод полезен, когда шрифты находятся в нескольких папках, и пользователь хочет установить каждую папку отдельно, а не объединить все шрифты в одну папку.
- FontConfigs.set_font_sources: Этот механизм полезен, когда пользователь хочет загружать шрифты из нескольких папок или одного файла шрифта или данных шрифта из массива байтов.
from aspose.cells import FileFontSource, FolderFontSource, FontConfigs, MemoryFontSource | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Defining string variables to store paths to font folders & font file | |
fontFolder1 = dataDir + "Arial" | |
fontFolder2 = dataDir + "Calibri" | |
fontFile = dataDir + "arial.ttf" | |
# Setting first font folder with SetFontFolder method | |
# Second parameter directs the API to search the subfolders for font files | |
FontConfigs.set_font_folder(fontFolder1, True) | |
# Setting both font folders with SetFontFolders method | |
# Second parameter prohibits the API to search the subfolders for font files | |
FontConfigs.set_font_folders([fontFolder1, fontFolder2], False) | |
# Defining FolderFontSource | |
sourceFolder = FolderFontSource(fontFolder1, False) | |
# Defining FileFontSource | |
sourceFile = FileFontSource(fontFile) | |
# Defining MemoryFontSource | |
sourceMemory = MemoryFontSource(open(fontFile, "rb").read()) | |
# Setting font sources | |
FontConfigs.set_font_sources([sourceFolder, sourceFile, sourceMemory]) |
Механизм подстановки шрифтов
API Aspose.Cells for Python via .NET также предоставляет возможность указать заменяющий шрифт для целей отображения. Этот механизм полезен, когда необходимый шрифт недоступен на машине, на которой происходит преобразование. Пользователи могут предоставить список имен шрифтов в качестве альтернативы исходному шрифту. Для этого API Aspose.Cells for Python via .NET предоставляет метод FontConfigs.set_font_substitutes, который принимает 2 параметра. Первый параметр — это строка string, которая должна содержать название шрифта, который нужно заменить. Второй параметр — массив строк string. Пользователи могут указать список имен шрифтов в качестве замены исходному шрифту (указанному в первом параметре).
Вот простой сценарий использования.
from aspose.cells import FontConfigs | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# Substituting the Arial font with Times New Roman & Calibri | |
FontConfigs.set_font_substitutes("Arial", ["Times New Roman", "Calibri" ]) |
Сбор информации
В дополнение к вышеупомянутым методам, API Aspose.Cells for Python via .NET также предоставляет средства для сбора информации о том, какие источники и замены были установлены.
- Метод FontConfigs.get_font_sources возвращает массив типа FontSourceBase, содержащий список указанных источников шрифтов. Если источники не установлены, то метод FontConfigs.get_font_sources вернет пустой массив.
- Метод FontConfigs.get_font_substitutes принимает параметр типа string, позволяющий указать имя шрифта, для которого установлена замена. Если для указанного имени шрифта не установлена замена, то метод FontConfigs.get_font_substitutes вернет null.