C# 实现对PPT编辑

C# Presentation 文本替换

我们可以通过插入占位符的方式,使用新的字词替换已有幻灯片里的文字。 本文将详细描述如何使用Spire.Presentation 来替换Prsentation 里面的文本。

首先请看示例文档,我们接下来会使用 Spire.PPT 替换示例文档里面的“Spire.Presentation for .NET”.

C# Presentation 文本替换

public ReplaceText()
{
   {
        //创建一个Dictionary 实例并添加一个item
        Dictionary TagValues = new Dictionary();
        TagValues.Add("Spire.Presentation for .NET", "Spire.PPT");
        //加载PowerPoint示例文档
        Presentation presentation = new Presentation();
        presentation.LoadFromFile("Sample.pptx", FileFormat.Pptx2010);

        //调用ReplaceTags事件来替换第一个幻灯片里的文本
        ReplaceTags(presentation.Slides[0], TagValues);

        //保存文档
        presentation.SaveToFile("Result.pptx", FileFormat.Pptx2010);
        System.Diagnostics.Process.Start("Result.pptx");
    }
}
public void ReplaceTags(Spire.Presentation.ISlide pSlide, Dictionary TagValues)
{
    foreach (IShape curShape in pSlide.Shapes)
    {
        if (curShape is IAutoShape)
        {
            foreach (TextParagraph tp in (curShape as IAutoShape).TextFrame.Paragraphs)
            {
                foreach (var curKey in TagValues.Keys)
                {
                    if (tp.Text.Contains(curKey))
                    {
                        tp.Text = tp.Text.Replace(curKey, TagValues[curKey]);
                    }
                }
            }
        }
    }
}

替换文本后的效果图:

C# Presentation 文本替换

 

下载免费版的spire.presentation, 在项目中添加spire.presentation.dll为引用

using Spire.Presentation;
using System.Drawing;
 
namespace FontColorInPpt
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Presentation对象
            Presentation presentation = new Presentation();
 
            //添加图形
            IAutoShape shape = presentation.Slides[0].Shapes.AppendShape(ShapeType.Rectangle,
                new RectangleF(50, 50, 200, 50));
 
            //设置图形边框色
            shape.ShapeStyle.LineColor.Color = Color.Black;
 
            //设置图形填充为不填充
            shape.Fill.FillType = Spire.Presentation.Drawing.FillFormatType.None;
 
            //添加文字
            shape.TextFrame.Text = "这是红色的字";
 
            //设置文字颜色
            TextRange textRange = shape.TextFrame.TextRange;
            textRange.Fill.FillType = Spire.Presentation.Drawing.FillFormatType.Solid;
            textRange.Fill.SolidColor.Color = Color.Red;
 
            //设置字体及大小
            textRange.FontHeight = 21;
            textRange.LatinFont = new TextFont("黑体");
 
            //保存文档
            presentation.SaveToFile("output.pptx", FileFormat.Pptx2007);
        }
    }
}

posted @ 2018-11-27 17:35  (john_zhang)  阅读(4034)  评论(0编辑  收藏  举报