文本颜色

如果同一段文本甚至同一行文本有多种颜色,用PDFCreator绘制将很繁琐。

用RTF格式实现会相对简单一些(其实用HTML格式更方便,后面会讲),步骤为:

1、定义颜色表:在RTF头部用 {\colortbl;...} 声明颜色

2、标记文本颜色:用 \cfN 控制字指定颜色(N 对应颜色表中的索引)

颜色表用"{\colortbl;"开头,中间包括多个颜色,颜色之间用分号隔开,每个颜色包括red、green和blue三部分,分别表示颜色的R、G、B份量。

例如:

\red255\green0\blue0

表示这个颜色的R份量为255,G和B份量为0,所以这是红色。

例如下面的代码:

Dim myColors = "{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}"

表示定义了两个颜色,1号颜色为红色,2号颜色为蓝色。

用\cfN来应用定义好的颜色,N表示颜色编号,例如

{\cf1 红色文本}

表示使用1号颜色,也就是红色。

示例

下面是完整的测试代码,请在命令窗口执行:

Dim myColors = "{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}"
Dim
txt As String = "{\ql这是一个{\cf1关键红色单词},后面是{\cf2蓝色强调文本},其他文字保持默认颜色。 \par}"
txt = myColors & txt

Dim
file As String = "c:\temp\test.pdf"
Dim
pdc As New PDFCreator()
Dim
sf As New StringFormat()
Dim
rect As RectangleF = pdc.PageRectangle()
rect.Inflate( - 72, - 72)

Dim
fnt As New Font("微软雅黑", 12)
pdc.DrawStringrtf(txt , fnt, Brushes.Black, rect)
pdc.Save(file)
Process.Start(file)

生成的文档为:


本页地址:http://www.foxtable.com/webhelp/topics/6074.htm