c# - 在 GemBox Document ASP.Net c# 中将粗体设置为段落

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

尝试 1 换行符在以下代码中效果很好 var p3 = new Paragraph(wDoc, str); 如何将 BOLD 设置为该段落

TRY 2 Bold 在下面的代码中效果很好

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

这不允许换行

请帮忙解决

回答1

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

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 } });

相似文章