解读:Aspose.Slides for .NET v19.8全新发布!什么是获取有效值的最佳方法?

原创|行业资讯|编辑:李显亮|2019-09-02 14:43:36.397|阅读 26 次

概述:Aspose.Slides for .NET是独特的演示处理API,使应用程序能够读取,编写,修改和转换PowerPoint演示文稿。Aspose.Slides for .NET更新至最新版v19.8,引入了用于获得有效值的新API,从而获取“本地”值和“有效”值。

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

Aspose.Slides for .NET更新至最新版v19.8,引入了用于获得有效值的新API,从而获取“本地”值和“有效”值。下面我们一起来了解一下具体内容吧!>>欢迎下载Aspose.Slides for .NET v19.8体验

什么是“本地”和“有效”值?

新的功能支持通过IPortion.PortionFormat在不同级别的表示结构层次结构中设置文本部分的属性。以下是其中一些:

  1. 在部分幻灯片的部分属性中
  2. 在布局或主幻灯片上的原型形状文本样式
  3. 在演示文稿全局文本设置中

对于任何这些级别,直接在此级别设置的值称为“本地”。在任何级别,可以定义或省略“本地”值。但最后,当应用程序(使用Aspose.Slides甚至PowerPoint本身构建)需要知道该部分应该是什么样的时候(在图像导出或在屏幕上绘图时),它使用“有效”值 - 完全使用层次结构构建的已定义值集,可能的值覆盖最低层的每个级别以及硬编码到PowerPoint中的默认值。

“有效数据”对象本质上是不可变的-它们仅用于获取最终的组合信息。“本地数据“”对象是可变的-它们用于设置属性。

获得有效值的最佳方法是什么?

启动Aspose.Slides v19.8所需要的只是从您希望获得有效值的本地格式调用GetEffective()方法。下面列举个例子说明:

using (Presentation pres = new Presentation("MyPresentation.pptx"))
{
    IAutoShape shape = pres.Slides[0].Shapes[0] as IAutoShape;
 
    ITextFrameFormat localTextFrameFormat = shape.TextFrame.TextFrameFormat;
    ITextFrameFormatEffectiveData effectiveTextFrameFormat = localTextFrameFormat.GetEffective();
 
    IPortionFormat localPortionFormat = shape.TextFrame.Paragraphs[0].Portions[0].PortionFormat;
    IPortionFormatEffectiveData effectivePortionFormat = localPortionFormat.GetEffective();
}

注意:

GetEffective()方法已添加到ITextFrameFormat、ITextStyle、IParagraphFormat、IPortionFormat、IFillFormat、ILineFormat、IEffectFormat、IThreeDFormat、ITableFormat、IRowFormat、IColumnFormat、ICellFormat、IBackground 和ITheme接口。

AccessibleEffectiveData和BaseEffectiveData类

这两个类都是抽象的,并在内部用于维护系统的统一有效值。AccessibleEffectiveData类是具有自己的继承层次结构的格式的有效数据类的基类。BaseEffectiveData类是AccessibleEffectiveData的基类,也是所有有效数据类的基类,它们没有自己的继承层次结构,并且作为更复杂的有效数据类的一部分。

以下是在不同的表示结构级别上设置本地字体高度值后,演示部分的有效字体高度值的代码。

using (Presentation pres = new Presentation())
{
    IAutoShape newShape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 400, 75, false);
    newShape.AddTextFrame("");
    newShape.TextFrame.Paragraphs[0].Portions.Clear();
 
    IPortion portion0 = new Portion("Sample text with first portion");
    IPortion portion1 = new Portion(" and second portion.");
 
    newShape.TextFrame.Paragraphs[0].Portions.Add(portion0);
    newShape.TextFrame.Paragraphs[0].Portions.Add(portion1);
 
    Console.WriteLine("Effective font height just after creation:");
    Console.WriteLine("Portion #0: " + portion0.PortionFormat.GetEffective().FontHeight);
    Console.WriteLine("Portion #1: " + portion1.PortionFormat.GetEffective().FontHeight);
 
    pres.DefaultTextStyle.GetLevel(0).DefaultPortionFormat.FontHeight = 24;
    Console.WriteLine("Effective font height after setting entire presentation default font height:");
    Console.WriteLine("Portion #0: " + portion0.PortionFormat.GetEffective().FontHeight);
    Console.WriteLine("Portion #1: " + portion1.PortionFormat.GetEffective().FontHeight);
 
    newShape.TextFrame.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontHeight = 40;
    Console.WriteLine("Effective font height after setting paragraph default font height:");
    Console.WriteLine("Portion #0: " + portion0.PortionFormat.GetEffective().FontHeight);
    Console.WriteLine("Portion #1: " + portion1.PortionFormat.GetEffective().FontHeight);
 
    newShape.TextFrame.Paragraphs[0].Portions[0].PortionFormat.FontHeight = 55;
    Console.WriteLine("Effective font height after setting portion #0 font height:");
    Console.WriteLine("Portion #0: " + portion0.PortionFormat.GetEffective().FontHeight);
    Console.WriteLine("Portion #1: " + portion1.PortionFormat.GetEffective().FontHeight);
 
    newShape.TextFrame.Paragraphs[0].Portions[1].PortionFormat.FontHeight = 18;
    Console.WriteLine("Effective font height after setting portion #1 font height:");
    Console.WriteLine("Portion #0: " + portion0.PortionFormat.GetEffective().FontHeight);
    Console.WriteLine("Portion #1: " + portion1.PortionFormat.GetEffective().FontHeight);
}
 
// Output:
// Effective font height just after creation:
// Portion #0: 18
// Portion #1: 18
// Effective font height after setting entire presentation default font height:
// Portion #0: 24
// Portion #1: 24
// Effective font height after setting paragraph default font height:
// Portion #0: 40
// Portion #1: 40
// Effective font height after setting portion #0 font height:
// Portion #0: 55
// Portion #1: 40
// Effective font height after setting portion #1 font height:
// Portion #0: 55
// Portion #1: 18

*想要购买Aspose正版授权的朋友可以联系慧都客服哦~


ASPOSE技术交流QQ群(642018183)已开通,各类资源及时分享,欢迎交流讨论!

扫描关注“慧聚IT”微信公众号,及时获取更多产品最新动态及最新资讯

慧聚IT公众号二维码




标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Aspose.Slides

Aspose.Slides是第一个能在用户的应用程序中对PowerPoint文档进行管理的组件。

在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat