2012-03-22 2 views
1

Быстрый вопрос, надеюсь, кто-то может помочь здесь. Я пытаюсь скопировать и вставить слайды из одной презентации PowerPoint в другую. У меня есть это сейчас, так что он скопирует и вставляет все количество слайдов в правильное, но моя проблема заключается в том, что он снова и снова накладывается на последний слайд презентации. Я пробовал как для циклов foreach, так и для всего лишь дать мне один слайд, мне интересно, не это ли CommandBars. Но я вижу, что они используются для сброса слайдов в цикле for/foreach. Есть идеи?C# VSTO-PowerPoint Скопируйте/Вставьте слайды с форматированием исходного кода

public void AppendPPTX(string newContent) 
    { 
     int sourceSlideRange = 0; 
     int targetSlideRange = Application.ActiveWindow.Presentation.Slides.Count; 
     PowerPoint.Presentation target; 
     PowerPoint.Presentation source; 

     try 
     { 
      target = Application.ActivePresentation; 
      source = Application.Presentations.Open(newContent, Office.MsoTriState.msoFalse, Office.MsoTriState.msoFalse, Office.MsoTriState.msoFalse); 

      sourceSlideRange = source.Slides.Count + 1; //otherwise I was just getting the second to the last slide 

      for (int i = 1; i < sourceSlideRange; i++) 
      { 
       source.Slides[i].Copy(); 
       target.Slides[targetSlideRange].Select(); 
       target.Application.CommandBars.ExecuteMso("PasteSourceFormatting"); 
      } 
      source.Close(); 
     } 
     catch (Exception) 
     { 
      MessageBox.Show("Error opening PowerPoint, corruption found inside the powerpoint file. " + 
          Environment.NewLine + "The corrupted file has been deleted." + Environment.NewLine + 
          "Please attempt to redownload file.", 
          "Error Opening PowerPoint", 
          MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 

    } 

ответ

2

Попробуйте сохранить PPT после PasteSourceFormatting. У меня была такая же проблема.

+0

Спасибо, что исправил проблему. – KJones

1

Я использовал Application.DoEvents() после PasteSourceFormatting, и он отлично работал!

Смежные вопросы