Aspose.Slides for .NET是一个PPT演示控件,使应用程序能够读取,编写,修改和转换PowerPoint演示文稿。作为独立的API,它提供了管理PowerPoint关键功能的功能,例如管理文本,形状,表格和动画,向幻灯片添加音频和视频,预览幻灯片等,而无需Microsoft PowerPoint。
Aspose.Slides for .NET更新至v19.7,新增支持在图表数据工作表中清除特定图表系列数据点数据,支持段落级编辑的动画效果API,修复多项Bug!>>免费下载Aspose.Slides for .NET最新试用版
新增与改善
key | 概述 | 类别 |
---|---|---|
SLIDESNET-41223 | 以常用方式获取形状的布局样式 | 新功能 |
SLIDESNET-40010 | 在图表中设置外部工作簿的外部工作簿路径 | 新功能 |
SLIDESNET-33910 | 在一个位置为图表实体设置字体相关属性 | 新功能 |
SLIDESNET-33742 | 为图表区域设置字体相关属性 | 新功能 |
SLIDESNET-34685 | linewithmarker图表的默认自动标记符号 | 新功能 |
SLIDESNET-35440 | 仅支持在图表数据工作表中清除特定图表系列数据点数据 | 新功能 |
SLIDESNET-36453 | 支持段落级编辑的动画效果API | 新功能 |
SLIDESNET-41185 | 将PPTX转换为PdfNotes时,质量很差 | 增强 |
SLIDESNET-41215 | OLE嵌入式对象支持OpenDocument | 增强 |
SLIDESNET-35712 | 启用和禁用图表系列值 | 增强 |
SLIDESNET-41166 | PowerPoint的页码会增加,即使它只是幻灯片注释的延续 | 增强 |
SLIDESNET-41132 | 导出的图像和PDF中缺少渐变填充颜色 | Bug修复 |
SLIDESNET-41202 | 转换后的数据系列和部分图例丢失 | Bug修复 |
SLIDESNET-41193 | 保存表示输出文件后损坏 | Bug修复 |
SLIDESNET-41234 | PDF注意BottomFull位置输出不正确 | Bug修复 |
· · · · · ·
更多更新细则请参考:【Aspose.Slides for .NET v19.7更新说明】
▲添加了另一个选项以设置外部工作簿路径
参数updateChartData定义是否加载excel工作簿。如果value为false,则仅更新工作簿路径。不会从目标工作簿加载和更新图表数据。当目标工作簿尚不存在或不可用时,它很有用。如果值为true,则将按照常规方法SetExternalWorkbook更新目标工作簿中的图表数据。
using (Presentation pres = new Presentation()) { IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Pie, 50, 50, 400, 600, true); IChartData chartData = chart.ChartData; (chartData as ChartData).SetExternalWorkbook("http://path/doesnt/exists", false); }
在某些情况下,用户必须自己实现工作簿数据的检索。例如,如果访问受密码保护的源。在这种情况下,用户可以使用IResourceLoadingCallback。
public void SetExternalWorkbookMethodNetwork() { string externalWbPath = @"http://606178d2.ngrok.io/webgrind/styles/2.xlsx"; LoadOptions opts = new LoadOptions(); opts.ResourceLoadingCallback = new WorkbookLoadingHandler(); using (Presentation pres = new Presentation(opts)) { IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Pie, 50, 50, 400, 600, false); IChartData chartData = chart.ChartData; (chartData as ChartData).SetExternalWorkbook(externalWbPath); } } private class WorkbookLoadingHandler : IResourceLoadingCallback { public ResourceLoadingAction ResourceLoading(IResourceLoadingArgs args) { string workbookPath = args.OriginalUri; if (workbookPath.IndexOf(':') > 1 && !workbookPath.StartsWith("file:///")) // schemed path { try { WebRequest request = WebRequest.Create(workbookPath); request.Credentials = new System.Net.NetworkCredential("testuser", "testuser"); using (WebResponse response = request.GetResponse()) using (Stream responseStream = response.GetResponseStream()) { byte[] buffer = BlobDownloadManager.Download(responseStream); args.SetData(buffer); return ResourceLoadingAction.UserProvided; } } catch (Exception ex) { throw new InvalidOperationException(ex.ToString()); } } else { return ResourceLoadingAction.Default; } } }
▲Sequence类和ISequence接口中添加了新的AddEffect方法
在ISequence 接口和Sequence 类中添加了AddEffect(IParagraph段落,EffectType effectType,EffectSubtype子类型,EffectTriggerType triggerType)方法。它允许为单个段落添加新的动画效果。
using (Presentation presentation = new Presentation(path + "input.pptx") { // select paragraph to add effect IAutoShape autoShape = (IAutoShape)presentation.Slides[0].Shapes[0]; IParagraph paragraph = autoShape.TextFrame.Paragraphs[0]; // add Fly animation effect to selected paragraph IEffect effect = presentation.Slides[0].Timeline.MainSequence.AddEffect(paragraph, EffectType.Fly, EffectSubtype.Left, EffectTriggerType.OnClick); }