2012-07-16 3 views
1

파워 포인트 프리젠 테이션 (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 –

답변

1

그것은 당신이 문제 진술 경우 문제를 해결하는 데 도움이 쉽게 아니다. "원하는 결과가 아닙니다."라고 말하면됩니다. 이는 "아무 일도 일어나지 않는 것"에서 "내 컴퓨터가 폭발"까지 많은 것을 의미 할 수 있습니다. ;-)

내가 추측했다 (그리고 내가 할) 경우에, 나는 당신이 아마 슬라이드보다는 모든 모양에서 삭제마다 다른 모양을보고있는 것을 말할 것입니다. 대신 foreach 루프의이 같은 것을 사용 (필요에 따라 VB/VBA를 번역) : 슬라이드에 도형을 모두 삭제합니다

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

.

아니면 그냥이 대신 루프 :

s.Shapes.ShapeRange.Delete

+0

좋아, 당신은 아마 더 명확하게 문제 : 을 게시해야하지만 내 코드에서 볼 수있는 슬라이드에서하지만 어떤 알 수없는 이유로 그것을 위해 모든 모양을 삭제해야 foreach 루프가 맞다 하지 않습니다. 나를위한 트릭을 만든 최종 솔루션은 모양을 삭제하는 2 개의 동일한 foreach 루프를 연속적으로 사용하는 것이 었습니다. 나는 왜 내가 가지고있는 파일에 어떤 어리 석음 때문에 아마, 아마 모른다. 그럼에도 불구하고 당신의 노력에 감사드립니다. – Miran