绘制简单文本

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类型,其可选值有:

Near 近端对齐,如果是水平方向,向左对齐,如果是垂直方向,向上对齐
Center 居中对齐
Far 靠远端对齐,如果是水平方向,向右对齐,如果是垂直方向,向下对齐

StringFormat的FormatFlags用于其他格式设置,例如文本方向等,StringFormatFlags类型,可选值有:

DirectionRightToLeft 从右到左显示文本
DirectionVertical 垂直显示文本
DisplayFormatControl 显示格式符号
LineLimit 只绘制整行的文本,当矩形不是行高整数倍的时候,设置此选项可以避免最后一行不完整
NoClip 禁止裁切文本,设置此选项会导致文本可能绘制在文本框之外(例如未换行的文本)
NoWrap 禁止自动换行

示例一

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文档为:


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