PPT处理控件Aspose.Slides 2月最新版上线!示例演示新功能—获取表格单元格中文本位置

Aspose.Slides For .Net更新至v20.2,支持获取表格单元格文本框架内的文字和部分的大小,允许直接在源文档上更新自定义文档属性,修复转换为PDF的时间过长等问题,欢迎下载体验。

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

Aspose.Slides for .NET迎来2020年2月更新 v20.2,支持获取表格单元格文本框架内的文字和部分的大小,允许直接在源文档上更新自定义文档属性,修复转换为PDF的时间过长等问题。

具体更新内容

key 概述 类别
SLIDESNET-41674 从PPT到PDF的转换速度极慢 功能
SLIDESNET-40977 支持获取表格单元格文本框架内的文字和部分的大小 功能
SLIDESNET-36546 支持直接在源文档上更新自定义文档属性 功能

更多更新修复请参考:【Aspose.Slides for .NET v20.2更新说明】

新功能演示——获取表格单元格中的文本位置

添加的方法:

  • IPortion.GetRect():此方法扩展并实际上替换了现在标记为过时的方法IPortion.GetCoordinates()。
  • IPortion.GetRect()IParagraph.GetRect():可以应用于表单元格中的文本。以下示例显示了属性如何工作。

假设我们有一个表格,里面有一些文本,附近有一个简单的AutoShape。

PPT处理控件Aspose.Slides 2月最新版上线!示例演示新功能—获取表格单元格中文本位置

下面的代码片段生成了这些对象:

using (Presentation pres = new Presentation()){ ITable tbl = pres.Slides[0].Shapes.AddTable(50, 50, new double[] { 50, 70 }, new double[] { 50, 50, 50 });IParagraph paragraph0 = new Paragraph();             paragraph0.Portions.Add(new Portion("Text ")); IParagraph paragraph1 = new Paragraph();paragraph0.Portions.Add(new Portion("in0"));             paragraph0.Portions.Add(new Portion(" Cell"));             paragraph1.Text = "On0"; paragraph2.Portions.Add(new Portion("col0"));IParagraph paragraph2 = new Paragraph();             paragraph2.Portions.Add(new Portion("Hi there "));             ICell cell = tbl.Rows[1][1];             cell.TextFrame.Paragraphs.Clear(); IAutoShape autoShape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 400, 100, 60, 120);cell.TextFrame.Paragraphs.Add(paragraph0);             cell.TextFrame.Paragraphs.Add(paragraph1);             cell.TextFrame.Paragraphs.Add(paragraph2);             autoShape.TextFrame.Text = "Text in shape"; }

下面的源代码片段将在所有段落中添加一个黄色框,并在包含子字符串“ 0”的所有部分中添加一个蓝框。

1)首先,我们获得表格单元格左上角的坐标:

double x = tbl.X + cell.OffsetX;double y = tbl.Y + cell.OffsetY;

2)然后,我们使用IParagrap.GetRect()和IPortion.GetRect()方法向部分和段落添加框架:

foreach (IParagraph para in cell.TextFrame.Paragraphs){      if (para.Text == "")          continue; IAutoShape shape =RectangleF rect = para.GetRect(); rect.X + (float)x, rect.Y + (float)y, rect.Width, rect.Height);pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, shape.LineFormat.FillFormat.SolidFillColor.Color = Color.Yellow;shape.FillFormat.FillType = FillType.NoFill;      shape.LineFormat.FillFormat.FillType = FillType.Solid; rect = portion.GetRect();foreach (IPortion portion in para.Portions)       {          if (portion.Text.Contains("0"))           {              shape = shape.FillFormat.FillType = FillType.NoFill;pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle,                      rect.X + (float)x, rect.Y + (float)y, rect.Width, rect.Height);           }       } }

3)现在,我们应该在AutoShape段落中添加一个框架:

foreach (IParagraph para in autoShape.TextFrame.Paragraphs){ IAutoShape shape =RectangleF rect = para.GetRect(); pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle,rect.X + autoShape.X, rect.Y + autoShape.Y, rect.Width, rect.Height); shape.LineFormat.FillFormat.SolidFillColor.Color = Color.Yellow;shape.FillFormat.FillType = FillType.NoFill;               shape.LineFormat.FillFormat.FillType = FillType.Solid; }

结果:

PPT处理控件Aspose.Slides 2月最新版上线!示例演示新功能—获取表格单元格中文本位置

还想要更多吗可以点击阅读【2019 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月16日
下一篇 2020年1月16日

相关推荐

发表回复

登录后才能评论