0

我正在尝试通过使用块来加粗我的字体。但特别的是我的标签是写在数据读取器中的 addcell 下的。

这就是我尝试在数据阅读器中格式化标签的方式

table.AddCell(phrase.Add(new Chunk("test:", normalFont)) + dr[0].ToString());

这是短语和字体类型的声明:

var normalFont = FontFactory.GetFont(FontFactory.HELVETICA, 12);
var phrase = new Phrase();

这就是正在显示的内容:

在此处输入图像描述

然而,在我尝试格式化我的标签之前,这就是它的样子

在此处输入图像描述

这是我直接将标签添加到我的table.AddCell

table.AddCell(dr[0].ToString());
4

1 回答 1

2

你过关了

phrase.Add(new Chunk("test:", normalFont)) + dr[0].ToString()

table.AddCell. 此处 used的重载Phrase.Add声明为

public virtual new bool Add(IElement element)

(参见Phrase.cs

因此,phrase.Add(new Chunk("test:", normalFont))计算为布尔值true,你有

true + dr[0].ToString()

现在布尔值转换为string本身:

"True" + dr[0].ToString()

在您的情况下dr[0].ToString()似乎包含"admin". 所以:

"True" + "admin"

今后:

"Trueadmin"

当它string被传递给 时table.AddCell,你会得到你所看到的。

包含内容的表格单元格

相反,您可能想要按照以下方式做一些事情:

phrase.Add(new Chunk("test:", normalFont));
phrase.Add(dr[0].ToString());
table.AddCell(phrase);
于 2013-06-06T08:17:33.993 回答