Excel管理控件Aspose.Cells开发者指南(十一):配置电子表格的字体
Aspose.Cells for .NET是Excel电子表格编程API,可加快电子表格管理和处理任务,支持构建具有生成,修改,转换,呈现和打印电子表格功能的跨平台应用程序。
在接下来的系列教程中,将为开发者带来Aspose.Cells for .NET的一系列使用教程,例如关于加载保存转换、字体、渲染、绘图、智能标记等等。
【下载体验Aspose.Cells for .NET最新版】
*正版优惠进行时,想要购买Aspose正版授权的朋友可以哦~
第二章:字体管理
▲第一节:配置电子表格的字体
Aspose.Cells API提供了以图像格式呈现电子表格并将其转换为PDF和XPS格式的功能。为了最大程度地提高转换保真度,必须在操作系统的默认字体目录中提供电子表格中使用的字体。如果没有所需的字体,则Aspose.Cells API将尝试用可用的字体替换所需的字体。
字体选择
以下是Aspose.Cells API在后台执行的过程。
- API会尝试在文件系统上找到与电子表格中使用的确切字体名称匹配的字体。
- 如果API找不到名称完全相同的字体,它将尝试使用在工作簿的DefaultStyle.Font 属性下指定的默认字体。
- 如果API无法找到工作簿的DefaultStyle.Font 属性下定义的字体,它将尝试从所有可用字体中选择最合适的字体。
- 如果API在文件系统上找不到任何字体,它将使用Arial呈现电子表格。
设置自定义字体文件夹
Aspose.Cells API在操作系统的默认字体目录中搜索所需的字体。如果所需字体在系统的字体目录中不可用,则API会搜索自定义(用户定义)目录。该FontConfigs类呈现了许多方法详述如下设置自定义的字体目录。
- FontConfigs.SetFontFolder:如果仅要设置一个文件夹,则此方法很有用。
- FontConfigs.SetFontFolders:当字体位于多个文件夹中并且用户希望分别设置所有文件夹而不是将所有字体组合在一个文件夹中时,此方法很有用。
- FontConfigs.SetFontSources:当用户希望从多个文件夹或单个字体文件中加载字体或从字节数组中加载字体数据时,此机制很有用。
//文档目录的路径。 string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); // 定义字符串变量以存储字体文件夹和字体文件的路径 string fontFolder1 = dataDir + "Arial"; string fontFolder2 = dataDir + "Calibri"; string fontFile = dataDir + "arial.ttf"; // 使用SetFontFolder方法设置第一个字体文件夹 //第二个参数指示API在子文件夹中搜索字体文件 FontConfigs.SetFontFolder(fontFolder1, true); //使用SetFontFolders方法设置两个字体文件夹 //第二个参数禁止API在子文件夹中搜索字体文件 FontConfigs.SetFontFolders(new string[] { fontFolder1, fontFolder2 }, false); //定义FolderFontSource FolderFontSource sourceFolder = new FolderFontSource(fontFolder1, false); //定义FileFontSource FileFontSource sourceFile = new FileFontSource(fontFile); //定义MemoryFontSource MemoryFontSource sourceMemory = new MemoryFontSource(System.IO.File.ReadAllBytes(fontFile)); //设置字体来源 FontConfigs.SetFontSources(new FontSourceBase[] { sourceFolder, sourceFile, sourceMemory });
字体替换机制
用户可以提供字体名称列表,以替代最初所需的字体。为了实现此目的,Aspose.Cells API公开了FontConfigs.SetFontSubstitutes方法,该方法接受2个参数。第一个参数的类型为string,它应该是需要替换的字体的名称。第二个参数是string类型的数组。用户可以提供字体名称列表,以替换原始字体名称(在第一个参数中指定)。
// 用Times New Roman&Calibri替换Arial字体 FontConfigs.SetFontSubstitutes("Arial", new string[] { "Times New Roman", "Calibri" });
信息收集
除上述方法外,Aspose.Cells API还提供了收集有关已设置哪些来源和替代信息的方法。
- FontConfigs.GetFontSources 方法返回一个FontSourceBase类型的数组,其中 包含指定字体来源的列表。如果未设置任何源,则FontConfigs.GetFontSources 方法将返回一个空数组。
- FontConfigs.GetFontSubstitutes 方法接受字符串类型的参数,该参数允许指定已设置替换的字体名称。如果没有为指定的字体名称设置替代,则FontConfigs.GetFontSubstitutes 方法将返回null。
ASPOSE技术交流QQ群(642018183)已开通,各类资源及时分享,欢迎交流讨论!
如果您对Aspose有任何需求和疑难,记得扫描下方二维码告诉我们哦~