绘制简单文本
PDFCreater的DrawString方法用于绘制文本,其基础语法为:
DrawString(text, font, brush, rect)
DrawString(text, font, color, rect)
DrawString(text, font, brush, rect, sf)
DrawString(text, font, color, rect, sf)
参数 | 说明 | ||||||||||||||||||
text | 文本内容 | ||||||||||||||||||
font | 文本字体 | ||||||||||||||||||
brush | 用于绘制文本的画刷 | ||||||||||||||||||
color | 文本颜色 | ||||||||||||||||||
rect | 指定绘制文本位置的矩形,Rectangle类型,单位为磅,换算规则:72磅等于1英寸,也就是2,54厘米 | ||||||||||||||||||
sf |
指定文本格式,StringFormat类型。 StringFormat的Alignment和LineAlignment属性,分别分解用于指定水平和垂直对齐方式,二者均为StringAlignment类型,其可选值有:
StringFormat的FormatFlags用于其他格式设置,例如文本方向等,StringFormatFlags类型,可选值有:
|
示例一
Dim
file
As
String
=
"c:\temp\test.pdf"
Dim
pdc
As
New
PDFCreator()
Dim
fnt
As
New
Font("微软雅黑",
12)
Dim
sf
As
New
StringFormat()
'定义一个StringFormat变量,用于设置文本对齐
Dim
rect1
As
New
RectangleF(100, 100, 150, 48)
'文本框位置和大小
Dim
rect2
As
RectangleF = rect1
'文本绘制区域
rect2.Inflate( - 2, - 2)
'文本绘制区域内缩两磅,也就是边距为两磅
pdc.DrawRectangle(pens.Black, rect1)
'绘制文本框
pdc.DrawString("Hello
Foxtable",
fnt, Brushes.Green, rect2)
'绘制文本,默认对齐左上角
rect1.Offset(0, rect1.Height + 10)
'新的文本框下移距离为:文本框高度+10,也就是各文本框之间间隔10磅
rect2.Offset(0, rect1.Height + 10)
sf.Alignment = StringAlignment.Center
'水平居中
sf.LineAlignment = StringAlignment.Center
'垂直居中
pdc.DrawRectangle(pens.Black, rect1)
'绘制文本框
pdc.DrawString("Hello
Foxtable",
fnt, color.Red, rect2, sf)
'绘制文本
rect1.Offset(0, rect1.Height + 10)
'同上
rect2.Offset(0, rect1.Height + 10)
sf.Alignment = StringAlignment.Far
'向右对齐
sf.LineAlignment = StringAlignment.Far
'向下对齐
pdc.DrawRectangle(pens.Black, rect1)
'绘制边框
pdc.DrawString("Hello
Foxtable",
fnt, Brushes.Blue, rect2, sf)
'绘制文本
pdc.Save(file)
'保存文件
pdc.Show()
'显示生成的内容
在命令窗口执行上述代码,生成的PDF文档为:
示例二
下面的代码演示了如何垂直绘制文本:
Dim
file
As
String
=
"c:\temp\test.pdf"
Dim
pdc
As
New
PDFCreator()
Dim
fnt
As
New
Font("微软雅黑",
16)
Dim
sf
As
New
StringFormat()
'定义一个StringFormat变量,用于设置文本对齐
Dim
rect
As
New
RectangleF(100, 100, 50, 150)
'文本框位置和大小
sf.Alignment = StringAlignment.Center
'水平居中
sf.LineAlignment = StringAlignment.Center
'垂直居中
sf.FormatFlags = StringFormatFlags.DirectionVertical
Or
sf.FormatFlags
'垂直绘制文本,从下往上
pdc.DrawRectangle(pens.Black, rect)
'绘制文本框
pdc.DrawString("Hello
Foxtable",
fnt, Color.Green, rect, sf)
'绘制文
本
rect.Offset(rect.Width + 20, 0)
'右移文本框
'垂直绘制文本,从上往下:
sf.FormatFlags = StringFormatFlags.DirectionVertical
Or
StringFormatFlags.DirectionRightToLeft
Or
sf.FormatFlags
pdc.DrawRectangle(pens.Black, rect)
'绘制文本框
pdc.DrawString("Hello
Foxtable",
fnt, Color.Red, rect, sf)
'绘制文
pdc.Save(file)
'保存文件
pdc.Show()
'显示生成的内容
在命令窗口执行上述代码,生成的PDF文档为: