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)讨论。