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