将粗体设置为 GemBox 文档中的段落 ASP.Net c#

Set Bold to a Paragraph in GemBox Document ASP.Net c#

我在 ASP.Net 页面中使用 GemBox.Document 库。我有一个包含换行符的段落,我还需要将该段落设置为粗体。 我在下面的代码中变量 str 包含换行符。

尝试 1 换行符在下面的代码中运行良好 var p3 = new Paragraph(wDoc, str); 如何为这一段设置粗体

尝试 2 大胆地在下面的代码中工作得很好

    var p3 = new Paragraph(wDoc, 
        new Run(wDoc, str) { CharacterFormat = { Bold = true } }
   );

这不允许换行

请帮忙解决

最简单的方法可能是这样的:

var paragraph = new Paragraph(wDoc);
paragraph.Content.LoadText(str, new CharacterFormat() { Bold = true });

或者这样:

var paragraph = new Paragraph(wDoc);
paragraph.CharacterFormatForParagraphMark.Bold = true;
paragraph.Content.LoadText(str);

但以防万一您感兴趣,这里要注意的是换行符是用 SpecialCharacter 个对象表示的,而不是用 Run 个对象表示的。

因此,以下是您需要自己处理这些中断的“手动”方式,您需要将正确的元素添加到 Paragraph.Inlines 集合中:

string str = "Sample 1\nSample 2\nSample 3";
string[] strLines = str.Split('\n');

var paragraph = new Paragraph(wDoc);

for (int i = 0; i < strLines.Length; i++)
{
    paragraph.Inlines.Add(
        new Run(wDoc, strLines[i]) { CharacterFormat = { Bold = true } });

    if (i != strLines.Length - 1)
        paragraph.Inlines.Add(
            new SpecialCharacter(wDoc, SpecialCharacterType.LineBreak));
}

这与您使用此 Paragraph 构造函数相同:

var paragraph = new Paragraph(wDoc,
    new Run(wDoc, "Sample 1") { CharacterFormat = { Bold = true } },
    new SpecialCharacter(wDoc, SpecialCharacterType.LineBreak),
    new Run(wDoc, "Sample 2") { CharacterFormat = { Bold = true } },
    new SpecialCharacter(wDoc, SpecialCharacterType.LineBreak),
    new Run(wDoc, "Sample 3") { CharacterFormat = { Bold = true } });