2017-06-05 172 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); 
}