引入控制FontFallBack功能的新API!PPT管理控件Aspose.Slides v19.10重磅来袭!

2021-05-17 17:30

阅读:668

Aspose.Slides for .NET是一个独特的演示处理API,它允许应用程序读取、写入、修改和转换PowerPoint演示文稿。作为一个独立的API,它提供了管理PowerPoint关键功能的功能,如管理文本、形状、表格和动画、向幻灯片添加音频和视频、预览幻灯片等,而不需要Microsoft PowerPoint。

Aspose.Slides for .NET更新至v19.10,支持从幻灯片形状占位符访问提示文本,支持转换为PDF/A后,图像呈现模糊效果,修复在PPT中添加SVG在Ubuntu上引发错误等问题。Aspose.Slides for Java将同步.Net版功能。

具体更新内容

key 概述 类别
SLIDESNET-40805 Aspose.Slides中的字体后备 功能
SLIDESNET-40689 支持从幻灯片形状占位符访问提示文本 功能
SLIDESNET-41393 转换为PDF / A后,图像呈现模糊效果 功能
SLIDESNET-41099 保存文档时消耗大量内存 增强功能
SLIDESNET-41426 使用Aspose.Slides读取动画 增强功能
SLIDESNET-39722 Aspose Slides使用大量内存来生成小型PPTX 增强功能

Aspose.Slides for .NET v19.10的API更改

▲引入了用于控制FontFallBack功能的新API

引入了用于初始化和管理FontFallBack功能的新API。当存在为文本指定的字体但该字体不包含必要的字形时,将使用FontFallBack。在这种情况下,新功能允许使用指定的后备字体之一来替换字形。

以前,“字体替换”可用于动态替换整个文档的字体。如果找不到用于文本的指定字体,则将首先使用字体替换,然后,如果在此新的替换字体中找不到某些字形,则将使用FontFallBack(如果为相应范围定义了任何字体)。在其他情况下,FontFallBack会先使用,然后FontSubstitution。可以为多个Unicode范围指定必需的后备字体,作为FontFallBackRule对象的集合。

这里是一个例子:

long startUnicodeIndex = 0x0B80;
long endUnicodeIndex = 0x0BFF;
 
IFontFallBackRule firstRule = new FontFallBackRule (startUnicodeIndex, endUnicodeIndex, "Vijaya");
IFontFallBackRule secondRule = new FontFallBackRule (0x3040, 0x309F, "MS Mincho, MS Gothic");
 
//Also the fonts list can be added in several ways:
String[] fontNames = new String[] { "Segoe UI Emoji, Segoe UI Symbol", "Arial"};
 
IFontFallBackRule thirdRule = new FontFallBackRule (0x1F300, 0x1F64F, fontNames);复制代码

当然,必须将规则添加到列表(FontFallBackRulesCollection)中,可以将其分配给FontManager以便在渲染中使用:

Presentation presentation = new Presentation();
try {
    IFontFallBackRulesCollection userRulesList = new FontFallBackRulesCollection();
 
    userRulesList.add(new FontFallBackRule(0x0B80, 0x0BFF, "Vijaya"));
    userRulesList.add(new FontFallBackRule(0x3040, 0x309F, "MS Mincho, MS Gothic"));
 
    presentation.getFontsManager().setFontFallBackRulesCollection(userRulesList);
} finally {
    if (presentation != null) presentation.dispose();
}复制代码

几个规则的范围可以重叠。在这种情况下,重叠规则中的字体将按照规则被添加到列表的顺序进行合并和排列。只需在管理器中分配所需的列表,即可快速使用具有不同规则集的多个集合。如果不想使用多个列表,则不必创建新集合,可以直接从FontManager自动检索新的链接实例:

IFontFallBackRulesCollection userRulesList = presentation.getFontsManager().getFontFallBackRulesCollection();复制代码

以下是如何使用新功能进行渲染的代码段:

Presentation presentation = new Presentation(path + "MyPresentation.pptx");
try {
    IFontFallBackRulesCollection userRulesList = presentation.getFontsManager().getFontFallBackRulesCollection();
 
    userRulesList.add(new FontFallBackRule(0x400, 0x4FF, "Times New Roman"));
 
    ImageIO.write(presentation.getSlides().get_Item(0).getThumbnail (1f,1f), "PNG", new java.io.File(path + "Slide0.png"));
} finally {
    if (presentation != null) presentation.dispose();
}复制代码

如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183)讨论。


评论


亲,登录后才可以留言!