2017-06-05 4 views
0

Je dois ajouter un style à un paragraphe en utilisant OpenXML. J'ai le code suivant et il fonctionne, mais le style n'est pas celui que j'essaye d'ajouter.Ajouter un style existant à un paragraphe dans 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(); 

Y at-il quelque chose que je fais mal ??? Comment ajouter certains des styles existants à un paragraphe en utilisant OpenXML.

+0

Comment définissez-vous ' "Texte Continu"' modèle? – FortyTwo

+0

Je n'ai pas de définition pour Body Text, je pensais que les styles étaient comme la police que vous venez de mettre le nom de la police dont vous avez besoin. J'ai un design dans Word et j'ai besoin de créer le code qui a le même format, donc j'essayais d'utiliser dans un paragraphe le style que le paragraphe a dans le document original. –

+0

Cochez cette [post] (https://stackoverflow.com/a/20197959/3110695) – FortyTwo

Répondre

0

Comme le montre 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); 
}