我可以使用 iText 7 设置文本粗体,如下所示:
parExecSummHeader2.Add(new Text(subj).SetBold());
Run Code Online (Sandbox Code Playgroud)
...但是当我尝试将“正常”(非粗体)文本位与粗体部分结合起来时,它不起作用。我有这个,它打印所有“常规”行(无粗体):
parExecSummHeader2.Add("Average words per sentence (the general average is 15 - 20): " + Math.Round(WordsPerSentenceInDoc, 2).ToString());
Run Code Online (Sandbox Code Playgroud)
...但想让计算值加粗。我尝试了这两个:
parExecSummHeader2.Add("Average words per sentence (the general average is 15 - 20): ");
parExecSummHeader2.Add(new Text(Math.Round(WordsPerSentenceInDoc, 2).ToString().SetBold()));
Run Code Online (Sandbox Code Playgroud)
...和这个:
parExecSummHeader2.Add("Average words per sentence (the general average is 15 - 20): ");
string mathval = Math.Round(WordsPerSentenceInDoc, 2).ToString();
parExecSummHeader2.Add(new Text(mathval.SetBold()));
Run Code Online (Sandbox Code Playgroud)
...但它们都不会编译,抱怨“错误 CS1061 'string' 不包含 'SetBold' 的定义,并且找不到接受类型 'string' 的第一个参数的可访问扩展方法 'SetBold'”
较短的选项可能会导致文本渲染质量不完美,因为使用粗体模拟而不是适当的粗体字体:
Paragraph parExecSummHeader2 = new Paragraph();
parExecSummHeader2.Add("Average words per sentence (the general average is 15 - 20): ");
parExecSummHeader2.Add(new Text("123").SetBold());
Run Code Online (Sandbox Code Playgroud)
具有更多代码但输出质量更好的选项,因为使用了正确的粗体字体:
PdfFont boldFont = PdfFontFactory.CreateFont(StandardFonts.HELVETICA_BOLD);
Paragraph parExecSummHeader2 = new Paragraph();
parExecSummHeader2.Add("Average words per sentence (the general average is 15 - 20): ");
parExecSummHeader2.Add(new Text("123").SetFont(boldFont));
Run Code Online (Sandbox Code Playgroud)