C#在一个单元格中使用多种字体

C#在一个单元格中使用多种字体,c#,itextsharp,C#,Itextsharp,首先,我对C#不是很在行,而且我已经有一段时间没有用过它了 我正在为一位朋友制作一个windows窗体,该窗体提供软件包。所以我想把他现在的纸质表格转换成一个.pdf格式的文件。他仍然需要打印表单以获得客户签名等等 我需要什么: 我希望表格有一个小标题,“公司名称”例如,文本应该比从windows窗体(richTextBox1)输入的文本小一点 目前我正在使用单元格,我想知道是否可以在同一单元格中使用两种不同的字体大小 我所拥有的: table.AddCell("Static headline"

首先,我对C#不是很在行,而且我已经有一段时间没有用过它了

我正在为一位朋友制作一个windows窗体,该窗体提供软件包。所以我想把他现在的纸质表格转换成一个.pdf格式的文件。他仍然需要打印表单以获得客户签名等等

我需要什么: 我希望表格有一个小标题,“公司名称”例如,文本应该比从windows窗体(richTextBox1)输入的文本小一点

目前我正在使用单元格,我想知道是否可以在同一单元格中使用两种不同的字体大小

我所拥有的:

table.AddCell("Static headline" + Chunk.NEWLINE + richTextBox1.Text);
var normalFont = FontFactory.GetFont(FontFactory.HELVETICA, 9);

var boldFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 12);

table.AddCell("Static headline", boldFont + Chunk.NEWLINE + richTextBox1.Text, normalFont);
我“想要的”:

table.AddCell("Static headline" + Chunk.NEWLINE + richTextBox1.Text);
var normalFont = FontFactory.GetFont(FontFactory.HELVETICA, 9);

var boldFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 12);

table.AddCell("Static headline", boldFont + Chunk.NEWLINE + richTextBox1.Text, normalFont);

您正在向
AddCell()
方法传递
String
Font
。那是行不通的。您需要
AddCell()
方法,该方法将
短语
对象或
PdfPCell
对象作为参数

短语是由不同的
块组成的对象,不同的
块可以有不同的字体大小。有关此对象的详细信息,请阅读

Phrase phrase = new Phrase();
phrase.Add(
    new Chunk("Some BOLD text",  new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD))
);
phrase.Add(new Chunk(", some normal text", new Font()));
table.AddCell(phrase);
PdfPCell
是一个可以添加不同对象的对象,例如
短语
s、
段落
s、
图像
s、

PdfPCell cell = new PdfPCell();
cell.AddElement(new Paragraph("Hello"));
cell.AddElement(list);
cell.AddElement(image);
在此代码段中,列表的类型为列表,图像的类型为图像

第一个代码段使用文本模式;第二个代码段使用复合模式。根据使用的模式,单元格的行为非常不同

这一切都在本手册中解释;你可以找到数百个C#示例