以下操作都要用到【Microsoft.Office.Interop.PowerPoint】,确保安装并引用。
- // 打开PPT
- Microsoft.Office.Interop.PowerPoint.Application pptApp = new Microsoft.Office.Interop.PowerPoint.Application();
-
- Presentation ppt = pptApp.Presentations.Open(pptPath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
- // 要添加的幻灯片的页码
- int index = 4;
- //添加幻灯片
- Slide slide2 = ppt.Slides.Add(index, PpSlideLayout.ppLayoutBlank);
- // index为页码,从1开始,和PPT上显示的页码一致
- Slide initSlide = ppt.Slides[index];
- // 遍历所有幻灯片
- foreach (Slide slide in ppt.Slides)
- {
- // 遍历所有元素
- foreach (Shape shape in slide.Shapes)
- {
- // TODO
- }
- }
- // 获取文字
- List<string> stringList = new List<string>();
- // 遍历所有幻灯片
- foreach (Slide slide in ppt.Slides)
- {
- // 遍历所有元素
- foreach (Shape shape in slide.Shapes)
- {
- if (shape.HasTextFrame == MsoTriState.msoTrue && shape.TextFrame.HasText == MsoTriState.msoTrue)
- {
- // 获取文字
- stringList.Add(shape.TextFrame.TextRange.Text.ToString());
- }
- }
- }
- foreach (Shape shape in initSlide.Shapes)
- {
- if (shape.Type == MsoShapeType.msoPicture)
- {
- // 复制到剪贴板
- shape.Copy();
- // 获取图片数据
- Image img = (Image)System.Windows.Forms.Clipboard.GetData(System.Windows.Forms.DataFormats.Bitmap);
- // 保存图片
- img.Save(@"C:\Users\Administrator\Desktop\new.png");
- }
- }
- //添加Shape
- float x = 100;
- float y = 100;
- float width = 500;
- float height = 300;
- string text = "这是一个新插入的文本!!!!!!!!!";
-
- Shape shape = slide.Shapes.AddShape(MsoAutoShapeType.msoShapeRectangle, x, y, width, height);
-
- //保存
- ppt.Save();
- //控制填充色为透明
- shape.Fill.Transparency = 1;
- //控制边框颜色为黑色
- shape.Line.ForeColor.RGB = System.Drawing.ColorTranslator.ToWin32(System.Drawing.Color.FromArgb(0, 0, 0));
- //文字加粗
- shape.TextFrame.TextRange.Font.Bold = MsoTriState.msoTrue;
- //字体为黑色
- shape.TextFrame.TextRange.Font.Color.RGB = System.Drawing.ColorTranslator.ToWin32(System.Drawing.Color.FromArgb(0, 0, 0));
- //字体
- shape.TextFrame.TextRange.Font.NameFarEast = "微软雅黑";
- //水平对齐
- shape.TextFrame.TextRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.PowerPoint.PpParagraphAlignment.ppAlignLeft;
- //插入的文本
- shape.TextFrame.TextRange.Text = text;
- //字体大小
- shape.TextFrame.TextRange.Font.Size=40;
- //字体居中
- shape.TextFrame.TextRange.ParagraphFormat.Alignment = PpParagraphAligrument.ppAlignCenter;
- //文本框内容垂直居中
- shape.TextFrame.VerticalAnchor = MsoVerticalAnchor.msoAnchorMiddle;
- // 获取当前工程中的所有Layouts
- IEnumerable
layouts = Project.Current.GetItems(); - // 按名称获取
- LayoutProjectItem layoutItem = Project.Current.GetItems
().FirstOrDefault(item => item.Name.Equals("MyLayout"));
- // 获取当前工程中的所有Layouts
- IEnumerable
layouts = Project.Current.GetItems(); - // 按名称获取
- LayoutProjectItem layoutItem = Project.Current.GetItems
().FirstOrDefault(item => item.Name.Equals("MyLayout"));