Быстрый вопрос, надеюсь, кто-то может помочь здесь. Я пытаюсь скопировать и вставить слайды из одной презентации 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);
}
}
Спасибо, что исправил проблему. – KJones