我使用下面的代码将两种不同的字符样式应用于一个段落的两次运行:
Paragraph heading = new Paragraph();
ParagraphProperties heading_pPr = new ParagraphProperties();
heading.Append(heading_pPr);
Run Run1 = new Run() { RsidRunProperties = "009531B2" };
Text Text_Run1 = new Text("THIS IS TEST RUN 1");
Run1.Append(Text_Run1);
RunProperties rpr_Run1 = new RunProperties();
rpr_Run1.RunStyle = new RunStyle() { Val = "CharacterStyle1" };
Run Run2 = new Run();
RunProperties rpr_Run2 = new RunProperties();
rpr_Run2.RunStyle = new RunStyle() { Val = "CharacterStyle2" };
Text text_Run2 = new Text("THIS IS TEST RUN 2");
Run2.Append(text_Run2);
heading.Append(Run1);
heading.Append(Run2);
body.Append(heading);
但是在运行代码之后,在word文件中,这些运行获得 Normal 样式。 我可以将段落样式应用于段落,但我不能应用字符样式来运行,我的代码在哪里错了?
结论:
如何将字符样式应用于运行以及如何使用不同样式的段落运行?
答案 0 :(得分:1)
您需要在其属性部分中指定段落的格式,否则它将回退到文档的默认值,在本例中为Normal
。如果您的自定义样式未保存到文档的样式部分,也可能发生这种情况。
将您的代码更改为:
Paragraph heading = new Paragraph();
ParagraphProperties heading_pPr = new ParagraphProperties();
heading.Append(heading_pPr);
ParagraphMarkRunProperties headingParagraphMarkRunProperties = new ParagraphMarkRunProperties();
RunStyle runStyle1 = new RunStyle(){ Val = "CharacterStyle1" };
headingParagraphMarkRunProperties.Append(runStyle1);
heading_pPr.Append(headingParagraphMarkRunProperties);
这将使您的段落采用自定义格式。您仍然需要将单个样式应用于run
元素,以便像在其余代码中正确执行的那样更改其格式。