我需要使用Open XML Format SDK 2.0从模板创建 PowerPoint 2007 演示文稿。模板必须由客户提供,用于单独的布局样式(字体、背景颜色或图像……)。它需要包含两个预定义的幻灯片:
- 文字幻灯片
- 图片幻灯片
应用程序现在应该创建模板文件的副本,创建文本和图像幻灯片的多个副本,并用一些内容替换内容占位符。
我已经从 Microsoft 找到了一些代码片段来编辑幻灯片的标题、删除它们或替换幻灯片上的图像。但我不知道如何创建现有幻灯片的副本。也许有人可以帮我解决这个问题。
我需要使用Open XML Format SDK 2.0从模板创建 PowerPoint 2007 演示文稿。模板必须由客户提供,用于单独的布局样式(字体、背景颜色或图像……)。它需要包含两个预定义的幻灯片:
应用程序现在应该创建模板文件的副本,创建文本和图像幻灯片的多个副本,并用一些内容替换内容占位符。
我已经从 Microsoft 找到了一些代码片段来编辑幻灯片的标题、删除它们或替换幻灯片上的图像。但我不知道如何创建现有幻灯片的副本。也许有人可以帮我解决这个问题。
我一直在寻找类似的答案,并找到了一些可以分享的资源:
http://msdn.microsoft.com/en-us/library/cc850834(office.14).aspx
或更多样品
http://msdn.microsoft.com/en-us/library/cc850828(office.14).aspx
或者这个网站
http://www.openxmldeveloper.com
还有这本免费的书记录了 OpenXML 标准,这有些帮助。
这是我正在寻找的东西的一个例子,但如果没有,请告诉我: http: //openxmldeveloper.org/articles/7429.aspx
对于 C#
File.Copy(SourceFile,ExportedFile);
您基本上保留原始文件。
现在您打开 ExportedFile
PowerPoint.Application ppApp = new PowerPoint.Application();
PowerPoint.Presentation presentation;
presentation = ppApp.Presentations.Open(ExportedFile, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
现在迭代所有幻灯片/形状
foreach (PowerPoint.Slide slide in presentation.Slides)
{
slide.Select();
foreach (PowerPoint.Shape shape in slide.Shapes)
{
if (shape.Type.ToString().Equals("<any type of shape>"))
{
if (shape.TextFrame.TextRange.Text.Equals("<contains a name"))
{
shape.TextFrame.TextRange.Text = <new value>;
shape.Delete(); // or delete
shape.AddPicture(<your new picture>, MsoTriState.msoTrue, MsoTriState.msoTrue, left, top, width, height);
}
}
}
}
希望这可以澄清您的要求。