2012-07-16 228 views
1

有誰知道如何保存幻燈片的背景圖片在PowerPoint演示文稿(2010年)。這裏是我的代碼的一部分在那裏我試圖清除幻燈片獲得背景圖像,但它不是很理想的結果保存幻燈片的背景圖片

PowerPoint.Presentation p = app.Presentations.Open(slidesContainerPath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse); 

     string imagename; 
     foreach (PowerPoint.Slide s in p.Slides) { 
      imagename = s.SlideIndex.ToString() + ".jpg"; 
      s.BackgroundStyle = Microsoft.Office.Core.MsoBackgroundStyleIndex.msoBackgroundStyleNotAPreset; 
      foreach(Microsoft.Office.Interop.PowerPoint.Shape shape in s.Shapes) 
      { 
       shape.Delete(); 
      }     
      s.Export(imagesContainerPath + "\\" + imagename, "JPG"); 
     } 
     if (p != null) { 
      p.Close(); 
     } 
+0

檢查此鏈接:http://www.add-in-express.com/forum/read.php? FID = 5&TID = 9327 – 2012-07-16 14:01:06

回答

1

它更容易幫助,如果你狀態的問題,你解決問題。 你說「這不是理想的結果」。這可能意味着很多事情,從「沒有任何反應」到「我的電腦爆炸」。 ;-)

如果我不得不猜測(和我這樣做),我會說你可能看到從幻燈片中刪除了所有其他形狀而不是每個形狀。相反,foreach循環的,使用這樣的(VB/VBA,翻譯需要):

For x = s.Shapes.Count to 1 Step -1 
    sShapes(x).Delete 
Next 

這將刪除所有形狀的幻燈片上。

或者只是這不是一個循環:

s.Shapes.ShapeRange.Delete

+0

好吧,你是對的我可能應該發佈一個更清晰的問題:) 但是,你可以在我的代碼中看到有一個foreach循環,應該刪除幻燈片中的所有形狀,但由於某些未知的原因纔不是。對我來說最終的解決方案是有兩個連續的相同的foreach循環刪除形狀。我不知道爲什麼,可能是由於我的文件中有些愚蠢。儘管如此,謝謝你的努力。 – Miran 2012-07-16 18:51:50