Создать презентацию PowerPoint 2007 из шаблона - PullRequest
5 голосов
/ 01 апреля 2009

Мне нужно создать презентацию PowerPoint 2007 из шаблона с Open XML Format SDK 2.0 . Шаблон должен быть предоставлен клиентом и используется для индивидуального стиля макета (шрифт, цвет фона или изображения, ...). Он должен содержать два предопределенных слайда:

  • Текстовый слайд
  • Слайд изображения

Приложение теперь должно создать копию файла шаблона, создать несколько копий текстовых и графических слайдов и заменить заполнители содержимого некоторым содержимым.

Я уже нашел несколько фрагментов кода от Microsoft для редактирования заголовка слайда, их удаления или замены изображения на слайде. Но я не узнал, как я могу создать копию существующего слайда. Может быть, кто-нибудь может помочь мне с этим.

Ответы [ 3 ]

1 голос
/ 21 июля 2009

Я искал похожий ответ и нашел несколько ресурсов для обмена:

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 , что было несколько полезно.

0 голосов
/ 05 апреля 2013

для 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);

                            }
                        }
                    }

}

Надеюсь, это прояснит ваш запрос.

0 голосов
/ 24 февраля 2010

Это пример того, что я ищу, но если нет, дайте мне знать: http://openxmldeveloper.org/articles/7429.aspx

...