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。
下面的代码片段生成了这些对象:
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; }
结果:
还想要更多吗可以点击阅读【2019 · Aspose最新资源整合】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询。
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!