2010-05-20 15 views
43

का उपयोग कर वर्ड में न्यूलाइन डालने का उपयोग मैं वर्ड टेम्पलेट खोलने के लिए ओपनएक्सएमएल वर्डप्रोसेसिंग डॉक्यूमेंट का उपयोग कर रहा हूं और स्ट्रिंग के साथ प्लेसहोल्डर x1 को प्रतिस्थापित कर रहा हूं। यह ठीक काम करता है जब तक कि मुझे एक नई लाइन रखने के लिए स्ट्रिंग की आवश्यकता न हो। मैं x1 को टेक्स्ट के साथ कैसे बदल सकता हूं जिसमें न्यूलाइन हो सकती है जो शब्द पहचान लेगा? मैंने कोशिश की है \ n \ r लेकिन ये काम नहीं करतेओपनएक्सएमएल

शब्द टेम्पलेट खोले जाने पर बस आगे की व्याख्या करने के लिए मैंने इसे स्ट्रीमरिएडर में पढ़ा और फिर x1 को बदलने के लिए बदलें।

+1

यह भयानक नहीं है, लेकिन: '.Replace (Environment.NewLine," ")' आप के लिए काम कर सकते हैं। – BrainSlugs83

+0

@ ब्रेनस्लग्स 83: इस बारे में कोई विचार? http://stackoverflow.com/questions/26307691 – slayernoah

उत्तर

68

न्यूलाइन डालने के लिए, आपको Break उदाहरण Run पर जोड़ना होगा।

उदाहरण:

run.AppendChild(new Text("Hello")); 
run.AppendChild(new Break()); 
run.AppendChild(new Text("world")); 

एक्सएमएल उत्पादन की तरह कुछ हो जाएगा:

<w:r> 
    <w:t>Hello</w:t> 
    <w:br/> 
    <w:t>world</w:t> 
</w:r> 
+0

मुझे नहीं लगता कि मैं अपनी स्थिति में आपके उत्तर का उपयोग कर सकता हूं। मैं अपने सवाल अद्यतन आगे – Danny

+0

समझाने के लिए तो तुम एक्सएमएल सीधे के साथ काम कर रहे हैं? उस स्थिति में, एक्सएमएल को उदाहरण की तरह डालने का प्रयास करें। – codeape

+2

क्या आप इसे काम करने में सक्षम थे? – codeape

17

यहाँ एक सी # समारोह है कि एक स्ट्रिंग ले जाएगा, पंक्ति विराम पर विभाजित है और OpenXML में यह प्रस्तुत करना है। उपयोग करने के लिए, एक रन को तुरंत चालू करें और इसे स्ट्रिंग के साथ फ़ंक्शन में पास करें।

void parseTextForOpenXML(Run run, string textualData) 
{ 
    string[ ] newLineArray = { Environment.NewLine }; 
    string[ ] textArray = textualData.Split(newLineArray, StringSplitOptions.None); 

    bool first = true; 

    foreach (string line in textArray) 
    { 
     if (! first) 
     { 
      run.Append(new Break()); 
     } 

     first = false; 

     Text txt = new Text(); 
     txt.Text = line; 
     run.Append(txt); 
    } 
+1

niceeeee समाधान के नहीं बच्चे के बच्चे हो गया है आर – jiji2663

7

मैं एक ही मुद्दा है और मेरे मामले में <w:br /> टैग काम किया।

+0

एक आकर्षण की तरह काम किया! बहुत - बहुत धन्यवाद! – BertuPG

7

इस सवाल का हालांकि पहले से ही उत्तर है मैं जैसे प्रश्नों को हल करने के लिए एक और दृष्टिकोण है:

मैं कैसे XXX OpenXML साथ कर सकते हैं ??

इस मामलों आप शक्तिशाली माइक्रोसॉफ्ट OpenXML उत्पादकता उपकरण (भी रूप में जाना जाता OpenXmlSdkTool) का उपयोग कर सकता में

Download here.

  1. एक नया कार्यालय दस्तावेज़
  2. बनाएं दस्तावेज है जो आप OpenXML SDK के साथ पुन: पेश करना चाहते हैं के लिए भागों जोड़ें।
  3. ओपन माइक्रोसॉफ्ट OpenXML उत्पादकता उपकरण
  4. क्लिक के साथ कार्यालय दस्तावेज़ "प्रतिबिंबित कोड"
  5. दाईं ओर पर आप अब आप सी # कोड में परिलक्षित दस्तावेज़ देखे होंगे पर।
+0

यह एक बढ़िया जवाब है! मैं कुछ मुश्किल खुला एक्सएमएल बिट्स बाहर काम करने के बाद था और लगभग हर तत्व की अंदरूनी कामकाज गूगल करना पड़ा।एक उपकरण होने से जो चाल बिट्स को आउटपुट कर सकता है और उन्हें पेस्ट कर सकता है, धन्यवाद, धन्यवाद। – dougajmcdonald

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