文本颜色
如果同一段文本甚至同一行文本有多种颜色,用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)
生成的文档为: