zoukankan      html  css  js  c++  java
  • C#操作PPT 文本、图片、动画

    参考:https://blog.csdn.net/badaaasss/article/details/89188807    C#生成PPT

          https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.animationsettings   msdn 动画处理

    C#操作PPT 文本、图片、动画,代码如下:(使用Microsoft.Office.Interop.PowerPoint库)

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Text;
    using Microsoft.Office.Core;
    using Microsoft.Office;
    using Microsoft.Office.Interop.PowerPoint;
    namespace PPTConApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                //创建PPT应用
                Microsoft.Office.Interop.PowerPoint.Application PPT = new Microsoft.Office.Interop.PowerPoint.Application();
                Microsoft.Office.Interop.PowerPoint.Presentation MyPres = null;//PPT应用的实例
                Microsoft.Office.Interop.PowerPoint.Slide MySlide = null;//PPT中的幻灯片
                //此处将一个PPT实例给了MyPres
                MyPres = PPT.Presentations.Open("D:\Download\2.pptx", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoTrue);
                //像PPT实例中,添加一个空白页,位置是“第一页”
                MySlide = MyPres.Slides.Add(1, Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutBlank);
                
                //1、添加图形(矩形)
                MySlide.Shapes.AddShape(MsoAutoShapeType.msoShapeRectangle, 8.5F, 6.5F, 705F, 525F);
                MySlide.Shapes[1].Line.ForeColor.RGB = 150 + 20 * 256 + 30 * 256 * 256;//改变线条颜色
                MySlide.Shapes[1].Fill.Transparency = 1;//控制填充色为透明
                MySlide.Shapes[1].Line.Style = MsoLineStyle.msoLineSingle;//改变线型里的复合类型
                MySlide.Shapes[1].Line.Weight = 1F;//改变线粗细
                MySlide.Shapes[1].Shadow.Style = MsoShadowStyle.msoShadowStyleOuterShadow;//控制阴影类型
                MySlide.Shapes[1].Shadow.ForeColor.RGB = 0;//控制阴影颜色
                MySlide.Shapes[1].Shadow.Transparency = 0.6F;//控制透明度
                MySlide.Shapes[1].Shadow.Size = 100F;//控制大小
                MySlide.Shapes[1].Shadow.Blur = 4F;//控制虚化
                MySlide.Shapes[1].Shadow.OffsetX = 2.1F;//控制距离;
                MySlide.Shapes[1].Shadow.OffsetY = 2.1F;//与offsetX共同决定角度
                //2、添加图片
                MySlide.Shapes.AddPicture(@"D:workspaceworkdotnet2020TechSearch
    eveal-pptimageszsylogo.png", MsoTriState.msoFalse, MsoTriState.msoTrue, 27F, 24F, 665F, 333F);
                //3、添加文本框
                Microsoft.Office.Interop.PowerPoint.TextRange MyTextRng = null;
                MySlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 721.5F, 365F, 670F, 270F);
                MyTextRng = MySlide.Shapes[3].TextFrame.TextRange;//请注意此处Shapes的索引,由于文本框是第一个添加的Shapes,所以此处索引是1。
                MyTextRng.Font.NameFarEast = "微软雅黑";//文本框中,中文的字体                   
                MyTextRng.Font.NameAscii = "Calibri";//文本框中,英文和数字的字体      
                MyTextRng.Text = "C#生成PPT";//显示的内容
                MyTextRng.Font.Bold = MsoTriState.msoTrue;//是否加粗
                MyTextRng.Font.Color.RGB = 1 + 2 * 256 + 3 * 256 * 256;//字体颜色,其中ABC直接用自定义颜色中的数字代替即可。
                MyTextRng.Characters(1, 10).Font.Size = 24;//个性化设计。第1个字符开始,长度为10的字符,字体大小是24.
                MyTextRng.ParagraphFormat.Alignment = Microsoft.Office.Interop.PowerPoint.PpParagraphAlignment.ppAlignLeft;//文本对齐方式(水平方向)
                MySlide.Shapes[3].TextFrame.VerticalAnchor = MsoVerticalAnchor.msoAnchorMiddle; //文本对齐方式(垂直方向)
    
                //4、文本框动画处理:设置该文本由第一级段落从左边时进行动画处理,正在进行动画处理后为指定的颜色变暗,并按相反的顺序动画显示其项飞入动画显示。
                MySlide.Shapes[3].AnimationSettings.TextLevelEffect = PpTextLevelEffect.ppAnimateByFirstLevel;
                MySlide.Shapes[3].AnimationSettings.EntryEffect = PpEntryEffect.ppEffectFlyFromLeft;
                MySlide.Shapes[3].AnimationSettings.AfterEffect = PpAfterEffect.ppAfterEffectDim;
                MySlide.Shapes[3].AnimationSettings.DimColor.RGB = 100 + 120 * 256 + 100 * 256 * 256; 
                MySlide.Shapes[3].AnimationSettings.AnimateTextInReverse = MsoTriState.msoTrue ;
                //5、读取动画信息 
                Console.WriteLine("text animation info:" + MySlide.Shapes[3].AnimationSettings.TextLevelEffect + "
    " +
                    MySlide.Shapes[3].AnimationSettings.EntryEffect + "
    " +
                    MySlide.Shapes[3].AnimationSettings.AfterEffect + "
    " +
                    MySlide.Shapes[3].AnimationSettings.DimColor.RGB + "
    " +
                    MySlide.Shapes[3].AnimationSettings.AnimateTextInReverse);
            }
        }
    }
  • 相关阅读:
    云产品-容器镜像服务(CR)
    mysql中写sql的好习惯
    关于Redis的一些问题
    解决zookeeper在windows下启动闪退的问题
    SQL-基于派生表的查询
    exec()内置方法
    CentOS 7使用yum无法安装htop等工具的解决办法
    CentOS7更换yum源为阿里云yum源
    坑(二十)——正则分组返回结果
    坑(十九)—— Git clone 时遇到fatal: protocol 'https' is not supported问题解决方案
  • 原文地址:https://www.cnblogs.com/wangle1001986/p/12512678.html
Copyright © 2011-2022 走看看