2017-06-05 49 views
0

我需要使用OpenXML爲段落添加樣式。我有下面的代碼,它正在運行,但風格不是我想要添加的那個。將現有樣式添加到OpenXML中的段落中

var file = WordprocessingDocument.Open(fileName, true); 

var text = new Text("Hello world"); 
var run = new Run(text); 
var paragraph = new Paragraph(run); 
paragraph.ParagraphProperties = new ParagraphProperties(
new ParagraphStyleId() { Val = "Body Text" });    

file.MainDocumentPart.Document.Body.AppendChild(paragraph); 
file.MainDocumentPart.Document.Save(); 

有沒有什麼,我做錯了??? 如何使用OpenXML將某些現有樣式添加到段落中。

+0

你如何定義' 「正文文本」'模板? – FortyTwo

+0

我沒有Body Text的定義,我在想這些樣式就像是你剛纔放入你需要的字體名稱的字體。我在Word中有一個設計,我需要創建具有相同格式的代碼,所以我試圖在段落中使用段落在原始文檔中的樣式。 –

+0

檢查此[post](https://stackoverflow.com/a/20197959/3110695) – FortyTwo

回答

0

如圖所示here

private static void AddNewStyle(StyleDefinitionsPart styleDefinitionsPart, 
    string styleid, string stylename) 
{ 
    // Get access to the root element of the styles part. 
    Styles styles = styleDefinitionsPart.Styles; 

    // Create a new paragraph style and specify some of the properties. 
    Style style = new Style() { Type = StyleValues.Paragraph, 
     StyleId = styleid, 
     CustomStyle = true }; 
    StyleName styleName1 = new StyleName() { Val = stylename }; 
    BasedOn basedOn1 = new BasedOn() { Val = "Normal" }; 
    NextParagraphStyle nextParagraphStyle1 = new NextParagraphStyle() { Val = "Normal" }; 
    style.Append(styleName1); 
    style.Append(basedOn1); 
    style.Append(nextParagraphStyle1); 

    // Create the StyleRunProperties object and specify some of the run properties. 
    StyleRunProperties styleRunProperties1 = new StyleRunProperties(); 
    Bold bold1 = new Bold(); 
    Color color1 = new Color() { ThemeColor = ThemeColorValues.Accent2 }; 
    RunFonts font1 = new RunFonts() { Ascii = "Lucida Console" }; 
    Italic italic1 = new Italic(); 
    // Specify a 12 point size. 
    FontSize fontSize1 = new FontSize() { Val = "24" }; 
    styleRunProperties1.Append(bold1); 
    styleRunProperties1.Append(color1); 
    styleRunProperties1.Append(font1); 
    styleRunProperties1.Append(fontSize1); 
    styleRunProperties1.Append(italic1); 

    // Add the run properties to the style. 
    style.Append(styleRunProperties1); 

    // Add the style to the styles part. 
    styles.Append(style); 
} 
相關問題