2012-05-04 5 views
6

3 개의 슬라이드가 들어있는 파워 포인트 프리젠 테이션이 있습니다. 각 슬라이드에는 자리 표시자인 텍스트 상자가 있습니다. 하나의 슬라이드에서 텍스트 상자 내용을 바꾸고 싶습니다.파워 포인트 슬라이드의 텍스트 상자에서 텍스트 변경

ODP.ShapeTree tree = slide.Slide.CommonSlideData.ShapeTree; 
     foreach (ODP.Shape shape in tree.Elements<ODP.Shape>()) 
     { 
      // Run through all the paragraphs in the document 
      foreach (ODD.Paragraph paragraph in shape.Descendants().OfType<ODD.Paragraph>()) 
      { 
       foreach (ODD.Run run in paragraph.Elements<ODD.Run>()) 
       { 
        if (run.Text.InnerText.Contains("PLACEHOLDER")) 
        { 
         run.Text = new ODD.Text("Your new text"); 
        } 
       } 
      } 
     } 

명심하는 것이 :

나는 변경할

감사에게

+0

이 작업을 수행 했습니까? 해결책을 게시 할 수 있습니까? –

답변

1

각 슬라이드에 대해이 작업을 수행 톤이 사용하는 C# 및 OpenXML을 수행하는 방법을 알 필요가 템플릿의 자리 표시자가 공백을 포함하면 두 개의 개별 실행 요소가 만들어 질 수 있습니다. 따라서 "Place holder"의 run.Text가있는 하나의 run 요소 대신 run.text가 "Place"이고 다른 하나가 run.Text "holder"가있는 하나의 run을 얻을 수 있습니다.

+1

나는 단락이 있고 그 안에 자식 요소가 없다는 시나리오가 있습니다. 실행 및 텍스트 요소를 추가하려고하는데 여전히 작동하지 않습니다. 어떤 도움을 감사합니다 – Eldho

+0

내가이 일을하고 파일을 저장, 변경된 텍스트가 없습니다. 디버거에서'run.Text'를 검사하면 업데이트 된 텍스트가 표시됩니다. –

관련 문제