2017-02-24 46 views
0

我有一個PPT幻燈片與多個圖像。我遍歷每個幻燈片和每個形狀。我想類型msoPicture各自的形狀保存爲圖片:C#保存PPT形狀(msoPicture)作爲圖像w/Office.Interop

  foreach (PPT.Slide slide in pptDoc.Slides) 
      { 
       foreach (PPT.Shape shape in slide.Shapes) 
       { 
        if (shape.Type == Microsoft.Office.Core.MsoShapeType.msoPicture) 
        { 

         Image img; 
         //???? Save shape as image 
         img.Save(filename); 
        } 
       } 
      } 

回答

1

可以使用Shape.Export() method從一個單獨的形狀形成圖像。

例如像這樣:

foreach (PPT.Slide slide in pptDoc.Slides) 
{ 
    foreach (PPT.Shape shape in slide.Shapes) 
    { 
     if (shape.Type == Microsoft.Office.Core.MsoShapeType.msoPicture) 
     { 
      shape.Export(filename, Microsoft.Office.Interop.PowerPoint.PpShapeFormat.ppShapeFormatPNG); 
     } 
    } 
} 
+0

不知是否可以被保存到一個流,而不是文件系統? – JDR

+0

@JDR AFAIK這是不可能使用COM自動化(即使用'Microsoft.Interop')。但是應該可以直接使用庫來處理文件,例如像'OpenXML'(儘管這可能比使用COM Automation更復雜一點,因爲辦公文件格式非常複雜) – bassfader

+0

謝謝,我可能會只是堅持文件系統,因爲在進一步研究這個之後,看起來比在IO上節省一點點更麻煩。 – JDR