2012-05-04 14 views
6

में टेक्स्टबॉक्स में टेक्स्ट बदलें मेरे पास पावरपॉइंट प्रेजेंटेशन है जिसमें 3 स्लाइड्स हैं। प्रत्येक स्लाइड में एक टेक्स्टबॉक्स होता है जो एक प्लेसहोल्डर होता है। मैं एक स्लाइड पर टेक्स्टबॉक्स सामग्री को प्रतिस्थापित करना चाहता हूं।पावरपॉइंट स्लाइड

मुझे पता है कि यह कैसे सी # और OpenXML का उपयोग कर एक टन

+0

क्या आपको यह काम मिल गया? क्या आप समाधान पोस्ट करने में सक्षम हैं? –

उत्तर

1

प्रत्येक स्लाइड के लिए ऐसा करें क्या करना

धन्यवाद की जरूरत है, आप बदलना चाहते हैं:

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"); 
        } 
       } 
      } 
     } 

ध्यान रखें, कि यदि आपके टेम्पलेट के प्लेसहोल्डर्स में रिक्त स्थान हैं, तो यह दो अलग-अलग रन तत्व बना सकता है। तो रन के साथ एक रन तत्व के बजाय। "प्लेस धारक" के आगे, आपको "प्लेस" के run.text और रन के साथ दूसरा रन मिल सकता है। अगला "धारक"।

+1

मेरे पास एक परिदृश्य है, कि मेरे पास पैराग्राफ है, इसमें कोई बाल तत्व नहीं है। मैं इसके अंदर रन और टेक्स्ट तत्व जोड़ने की कोशिश कर रहा हूं, फिर भी काम नहीं कर रहा हूं। किसी भी मदद की सराहना की जाती है – Eldho

+0

जब मैं ऐसा करता हूं, और फ़ाइल को सहेजता हूं, तो परिवर्तित टेक्स्ट वहां नहीं होता है। अगर मैं डीबगर में 'run.Text' का निरीक्षण करता हूं तो यह अद्यतन टेक्स्ट दिखाता है। –

संबंधित मुद्दे