2013-07-29 7 views
5

पर पैराग्राफ स्टाइल (हेडिंग 1, हेडिंग 2, हेड 3 आदि) जोड़ें, क्या कोई मुझे ओपन एक्सएमएल वर्ड प्रोसेसिंग का उपयोग करके पैराग्राफ पर पूर्वनिर्धारित शैलियों को जोड़ने का मार्गदर्शन कर सकता है? मैंने मंचों पर उपलब्ध विभिन्न समाधानों की कोशिश की है लेकिन मेरे लिए कुछ भी काम नहीं करता है। यहां मैं यह पूरा करना चाहता हूं:ओपनएक्सएमएल एक वर्ड प्रोसेसिंग दस्तावेज़

   // Create a document by supplying the filepath. 
       WordprocessingDocument wordDocument = WordprocessingDocument.Create("E:/Test/Executive.Docx", WordprocessingDocumentType.Document); 

       // Add a main document part. 
       MainDocumentPart mainPart = wordDocument.AddMainDocumentPart(); 

       // Create the document structure and add some text. 
       mainPart.Document = new Document(); 
       Body body = mainPart.Document.AppendChild(new Body()); 
       Paragraph para = body.AppendChild(new Paragraph()); 

       Run run = para.AppendChild(new Run()); 
       run.AppendChild(new Text("Executive Summary")); 
       if (para.Elements<ParagraphProperties>().Count() == 0) 
        para.PrependChild<ParagraphProperties>(new ParagraphProperties()); 

       // Get the ParagraphProperties element of the paragraph. 
       ParagraphProperties pPr = para.Elements<ParagraphProperties>().First(); 

       // Set the value of ParagraphStyleId to "Heading3". 
       pPr.ParagraphStyleId = new ParagraphStyleId() { Val = "Heading1" }; 

उत्तर

7

यदि आप किसी मौजूदा दस्तावेज़ को संपादित कर रहे थे तो आपकी तकनीक पूरी तरह से काम करेगी। समस्या यह है कि एक नए दस्तावेज़ में "शीर्षक 1" पूर्वनिर्धारित नहीं होता है। आपको इसे जोड़ना होगा।

1. मौजूदा टेम्पलेट दस्तावेज़

एक टेम्पलेट दस्तावेज़ (TemplatePath) एक आधार के रूप में उपयोग करने के लिए बनाने के साथ काम करें: तो आपके पास दो विकल्प। कोड में, इसे अंतिम गंतव्य (फ़ाइनलपाथ) पर कॉपी करें और शैलियों को लागू करने के लिए टेक्स्ट/जो भी हो, उसे जोड़ें। शीर्षक 1 पहले से ही टेम्पलेट में होगा।

if (File.Exists(FinalPath)) 
    File.Delete(FinalPath); 
File.Copy(TemplatePath, FinalPath); 
WordprocessingDocument wordDocument = WordprocessingDocument.Open(FinalPath, true); 
Paragraph para = body.AppendChild(new Paragraph()); 
Run run = para.AppendChild(new Run()); 
run.AppendChild(new Text("Executive Summary")); 
para.ParagraphProperties = new ParagraphProperties(new ParagraphStyleId() { Val="Heading1" }); 

2. खरोंच

से अपना नया दस्तावेज़ बनाएँ यदि आप ऐसा करते हैं, तो यह कोई बिल्ट-इन शैलियों होगा। तो एक शैली बनाएं, इसे "शीर्षक 1" पर कॉल करें और इसे अपने अनुच्छेद पर लागू करें।

WordprocessingDocument wordDocument = WordprocessingDocument.Create(FinalPath, WordprocessingDocumentType.Document); 
MainDocumentPart mainPart = wordDocument.AddMainDocumentPart(); 
mainPart.Document = new Document(); 
Body body = mainPart.Document.AppendChild(new Body()); 
Paragraph para = body.AppendChild(new Paragraph()); 
Run run = para.AppendChild(new Run()); 
run.AppendChild(new Text("Executive Summary")); 
StyleDefinitionPart styleDefinitionsPart = wordDocument.AddStylesDefinitionPart(); 
Styles styles = styleDefinitionsPart.Styles; 
Style style = new Style() { 
    Type = StyleValues.Paragraph, 
    StyleId = styleid, 
    CustomStyle = true 
}; 
StyleName styleName1 = new StyleName() { Val = "Heading1" }; 
style.Append(styleName1); 
StyleRunProperties styleRunProperties1 = new StyleRunProperties(); 
styleRunProperties1.Append(new Bold); 
styleRunProperties1.Append(new Italic()); 
styleRunProperties1.Append(new RunFonts() { Ascii = "Lucida Console" };); 
styleRunProperties1.Append(new FontSize() { Val = "24" }); // Sizes are in half-points. Oy! 
style.Append(styleRunProperties1); 
styles.Append(style); 
pPr.ParagraphStyleId = new ParagraphStyleId(){ Val = "Heading1" }; 
para.PrependChild<ParagraphProperties>(new ParagraphProperties()); 

< व्यंग्य > देखते हैं? ओपनएक्सएमएल केक का एक टुकड़ा है! </कटाक्ष > मैं कसम खाता हूँ, मेरी आंखें इतनी मेहनत कर रही हैं कि मुझे सिरदर्द हो रहा है।

+1

StyleDefinitionPart StyleDefinitionsPart होना चाहिए –

0

(Sry, मेरी अंग्रेजी)

मुझे लगता है कि शैली के नाम है अपनी भाषा, जो आपके शब्द का उपयोग निर्भर करता है।

अंग्रेज़ी शैली आईडी में शीर्षक 1: Hungarien में "शीर्षक 1": "Címsor 1" -> stlye आईडी: "Cmsor1"

मुझे लगता है कि, docx एक्सएमएल फ़ाइल शैली को देखा।

मैं यह कैसे Solove:

  1. "sample.docx" का नाम बदलने "sample.rar"
  2. खोलें "sample.rar" WinRAR के साथ।
  3. "शब्द" फ़ोल्डर खोलें।
  4. "style.xml" फ़ाइल खोलें।
  5. और स्टाइल नाम या गुणों की खोज करें, आपको क्या चाहिए।

शैली पदानुक्रम बहुत महत्वपूर्ण है!

यह मेरे लिए टेबल शैली भी काम करता है।

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