धन्यवाद।
मैं अपने खुद के प्रश्न का उत्तर नहीं देना चाहता, लेकिन यह सिर्फ मेरे द्वारा उठाए गए कदमों को स्पष्ट करने के लिए है। Exploring Tables-of-Contents in Open XML WordprocessingML Documents -
रुचि किसी के लिए भी सलाह 5-भाग स्क्रीन के कलाकारों एरिक व्हाइट, देखने के लिए है। इसमें टीओसी जोड़ने और अपडेट करने के संबंध में सभी जानकारी है (बहुत अधिक)।
मेरे समाधान एक टेम्पलेट (: हैडर 1-5, टीओसी शैली, आदि सिर्फ एक नियमित रूप से खाली दस्तावेज़ था कि सब कुछ मैं जरूरत के लिए शैलियों) का इस्तेमाल किया गया। यह शैलियों के मुद्दे के लिए त्वरित समाधान के रूप में विशेष रूप से उपयोगी है (नया दस्तावेज़, जिसमें टीओसी है, की एक नई शैली होगी। Xml बनाया गया है; इस फ़ाइल में कुछ अतिरिक्त डेटा है; परिणामस्वरूप टीओसी में पदानुक्रम के रूप में नहीं है अपेक्षित - यानी, हेडर 2 हेडर 1 का बच्चा है, हेडर 3 हेडर 2 का एक बच्चा है, आदि)।
इसलिए
:
एक वर्ड दस्तावेज़ बनाएँ और सभी तत्वों है कि आप बाद में प्रोग्राम के रूप में जोड़े जाने के लिए उम्मीद जोड़ने (जैसे, हैडर 1-5, विषय-सूची, आदि)। सभी सामग्री हटाएं और दस्तावेज़ को सहेजें (इसका कारण सभी आवश्यक तत्वों के लिए शैली बनाना है)।
मैं व्यक्तिगत रूप से टेम्पलेट (फ़ाइल कदम # 1 पर बनाया गया) अपने प्रोजेक्ट में एक संसाधन के रूप में जोड़ा।
अपने कोड में, टेम्पलेट की एक नई प्रतिलिपि (यह वास्तविक फ़ाइल है कि आप पर काम करेंगे हो जाएगा) पैदा करते हैं। मैंने उपयोग किया:
byte[] stream = Properties.Resources.Template;
File.WriteAllBytes(@"D:\Template.docx", stream);
File.Copy(@"D:\Template.docx", @"D:\New.docx");
इस दस्तावेज़ में सभी डेटा फ़्लश करें।
स्क्रीन कास्ट 2, 3 या 4 से स्रोत फ़ाइलें अपनी परियोजना में जोड़े (के लिए इस कृपया देखें स्क्रीन कास्ट 3) - उन पदों के अंत में आप TocAdder.zip डाउनलोड करने के लिए एक लिंक मिलेगा । या बस TocAdder.dll पर एक संदर्भ जोड़ें।
टीओसी डालें। सिर्फ एक उदाहरण:
using (WordprocessingDocument wdoc = WordprocessingDocument.Open(@"D:\New.docx", true))
{
XElement firstPara = wdoc
.MainDocumentPart
.GetXDocument()
.Descendants(W.p)
.FirstOrDefault();
TocAdder.AddToc(wdoc, firstPara,
@"TOC \o '1-3' \h \z \u", null, null);
}
टेम्पलेट से लोगों के साथ नव निर्मित दस्तावेज़ में शैलियों बदलें। आप इस संसाधन का उपयोग एमएसडीएन से कर सकते हैं: Replacing the Styles Parts in Word 2010 Documents by Using the Open XML SDK 2.0। फिर, एक उदाहरण:
string fromDoc = @"D:\Template.docx";
string toDoc = @"D:\New.docx";
var node = WDExtractStyles(fromDoc, false);
if (node != null)
WDReplaceStyles(toDoc, node, false);
node = WDExtractStyles(fromDoc);
if (node != null)
WDReplaceStyles(toDoc, node);
वैकल्पिक रूप से आदेश मोडल संवाद बॉक्स वर्ड ऊपर डालता है साथ समस्या को हल प्राप्त करने के लिए स्क्रीन कास्ट 3, 4 या 5 में वर्णित विधियों में से एक का उपयोग करें।
आशा है कि यह किसी के लिए उपयोगी होगा।
धन्यवाद, लेकिन लिंक टूटा हुआ है। था [यह] (http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/22/exploring-tables-of-contents-in-openxml-wordprocessingml-documents-part-4.aspx) यह था ? – Yeseanul
मैंने लिंक तय किया है। और - हाँ - यह openxmldeveloper.org पर पोस्ट जैसा ही है ...कुछ शोध के बाद मैंने कुछ जवाबों के साथ अपना उत्तर समायोजित किया है –
उत्तर के लिए धन्यवाद। मैंने अधिकांश एमएसडीएन से संबंधित सामग्री भी पढ़ी है, लेकिन मुझे नहीं पता कि इस समाधान को कैसे कार्यान्वित किया जाए। इसके अलावा, किसी ने भी एक उदाहरण प्रदान नहीं किया है। आखिरकार, एक टीओसी दस्तावेज़ का एक महत्वपूर्ण हिस्सा है ... मैंने सोचा था कि इसे ओपनएक्सएमएल एसडीके द्वारा एक तरफ या किसी अन्य तरीके से कवर किया गया था (या कम से कम किसी ने समाधान के लिए एक व्यावहारिक आसान उपयोग किया था)। – Yeseanul