在Word中绘图

可以直接在Word文档中绘图,WordCreator提供了以下绘图函数。

函数 说明:
DrawLine(pen, x1, y1, x2, y2)

DrawLine(pen, pt1, pt2)
绘制直线,参数:

pen:画笔
x1:直线起始水平位置
y1:直线起始垂直位置
x2:直线结束水平位置
y2:直线结束垂直位置
pt1:Point类型,直线起始位置
pt2:Point类型,直线结束位置

例如:

Dim wdc As New WordCreator()
For
r As Integer = 0 To 2
    wdc.DrawLine(pens.red, 0, r * 50, 100, r * 50)

Next
For
c As Integer = 0 To 2
    wdc.DrawLine(pens.red, c * 50, 0, c * 50, 100)

Next
Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果:

DrawRectangle(pen, rc)
DrawRectangle(pen, x, y, width, height)
DrawRectangle(pen, rc, corners)
 
绘制矩形,参数:

pen:画笔
rc:绘制区域,RectangleF类型
x:矩形水平位置
y:矩形垂直位置
width:矩形宽度
height:矩形高度
corners:矩形的圆角大小,SizeF类型

例如:

Dim wdc As New WordCreator()
wdc.DrawRectangle(pens.Red, 0, 0, 150, 100)
'绘制普通矩形
Dim
rc As New System.Drawing.RectangleF(180, 0, 170, 100) '定义矩形位置和大小
Dim
coners As New System.Drawing.Sizef(5, 5) '定义圆角尺寸
wdc.DrawRectangle(pens.Red, rc, coners)
'绘制圆角矩形
Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果

DrawEllipse(pen, rc)

DrawEllipse(pen, x, y, width, height)
绘制椭圆,参数:

pen:画笔
rc:绘制区域,RectangleF类型
x:椭圆水平位置
y:椭圆垂直位置
width:椭圆宽度
height:椭圆高度

例如:

Dim wdc As New WordCreator()
wdc.DrawEllipse(pens.Red, 0, 0, 150, 100)

Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)


绘制结果:

DrawArc(pen, rc, startAngle, sweepAngle) 绘制弧线,参数:

pen:画笔
rc:绘制区域,RectangleF类型,弧形来自于一个椭圆,rc指定椭圆的位置和大小
startAngle:起始角度
sweepAngle:弧线扫掠角度

例如:

Dim wdc As New WordCreator()
Dim
rc As New System.Drawing.RectangleF(0, 0, 200, 100)
wdc.DrawEllipse(pens.LightGray, rc)
wdc.DrawArc(pens.Red, rc, 0, - 90)

Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)


绘制结果:

DrawPie(pen, rc, startAngle, sweepAngle) 绘制扇形图(饼图),参数:

pen:画笔
rc:绘制区域,RectangleF类型,弧形来自于一个椭圆,rc指定椭圆的位置和大小
startAngle:起始角度
sweepAngle:扇形扫掠角度

例如:

Dim wdc As New WordCreator()
Dim
rc As New System.Drawing.RectangleF(0, 0, 200, 100)
wdc.DrawEllipse(pens.LightGray, rc)
wdc.DrawPie(pens.Red, rc, 0, - 90)

Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)


绘制结果:

DrawBeziers(pen, points) 绘制贝塞尔曲线,参数:

pen:画笔
points:Point数组,用于指定贝赛尔曲线的各转折点位置

例如:

Dim wdc As New WordCreator()
Dim
pts(3) As System.Drawing.PointF
pts(0) =
New PointF(172, 74)
pts(1) =
New PointF(125, 74)
pts(2) =
New PointF(125, 181)
pts(3) =
New PointF(69, 181)
wdc.DrawBeziers(pens.Red, pts)

Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果:

DrawImage(image, rc) 绘制图片,参数:

image:要绘制的图片,用GetImage函数从指定的图形文件中获得图形,如果文件已经事先复制到管理项目的Images子目录下,则只需指定文件名即可,否则需要包括路径
rc:绘制区域,RectangleF类型
 

例如:

Dim wdc As New WordCreator()
Dim
rc As New System.Drawing.RectangleF(0, 0, 150, 100)  '定义一个矩形,用于指定绘制位置和尺寸
wdc.DrawImage( getimage(
"Fujiyama.png"), rc)
Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果:

DrawPolygon(pen, points) 绘制多边形,参数:

pen:画笔
points:Point数组,用于指定多边形的各转折点位置

例如:

Dim
wdc As New WordCreator()
Dim
pts(3) As System.Drawing.PointF
pts(0) =
New System.Drawing.PointF(0, 0)
pts(1) =
New System.Drawing.PointF(0, 100)
pts(2) =
New System.Drawing.PointF(100, 70)
pts(3) =
New System.Drawing.PointF(100, 30)
wdc.DrawPolygon(pens.Red, pts)

Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果:

DrawPolyline(pen,  points) 绘制折线,参数:

pen:画笔
points:Point数组,用于指定折线的各转折点位置

例如:

Dim
wdc As New WordCreator()
Dim
pts(3) As System.Drawing.PointF
pts(0) =
New System.Drawing.PointF(0, 0)
pts(1) =
New System.Drawing.PointF(0, 100)
pts(2) =
New System.Drawing.PointF(100, 70)
pts(3) =
New System.Drawing.PointF(100, 30)
wdc.
DrawPolyline(pens.Red, pts)
Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果:

DrawString(text, rc)

DrawString(text, font, clr, rc)

DrawString(text, font, clr, rc, sf)
在指定位置绘制文本,参数:

text:要绘制的文本
rc:绘制区域,RectangleF类型
font:字体
clr:颜色
sf:StringFormat类型,用于设置文本格式

例如:

Dim
wdc As New WordCreator()
Dim
rc As New System.Drawing.RectangleF(100, 50, 150, 100) '定义一个矩形,用于指定绘制位置和尺寸
wdc.DrawString(
"Foxtable 2025快来了", New Font("宋体", 12), color.Red, rc)
Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果:

 

DrawParagraph(rc, paragraph, overlapping) 绘制段落,参数:

rc:绘制区域,RectangleF类型
paragraph:要绘制的段落,RtfParagraph类型
overlapping:是否重叠,可选参数,逻辑型

例如:

Dim
wdc As New WordCreator()
Dim
rc As New System.Drawing.RectangleF(100, 50, 150, 100) '定义一个矩形,用于指定绘制位置和尺寸
Dim
pgf As New Word.Objects.RtfParagraph()
Dim
fnt As New Font("宋体", 12)
pgf.Add(
New Word.Objects.RtfString("Foxtable 2025会提供高效率的WordPDF生成功能,并会提供PDF查看功能!", fnt))
wdc.DrawParagraph(rc, pgf)

Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)


绘制结果:

FillBeziers(clr, points) 填充贝塞尔曲线,参数:

clr:颜色
points:Point数组,用于指定贝赛尔曲线的各转折点位置

FillEllipse(clr, x, y, width, height)
FillEllipse(clr, rc)
用于绘制实心椭圆,参数:

clr:颜色
rc:绘制区域,RectangleF类型
x:椭圆水平位置
y:椭圆垂直位置
width:椭圆宽度
height:椭圆高度

例如:

Dim wdc As New WordCreator()
wdc.FillEllipse(Color.PowderBlue, 0, 0, 150, 100)

Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)


绘制结果:

FillPie(clr, rc, startAngle, sweepAngle) 绘制实心扇形图(饼图),参数:

clr:颜色
rc:绘制区域,RectangleF类型,弧形来自于一个椭圆,rc指定椭圆的位置和大小
startAngle:起始角度
sweepAngle:弧线扫掠角度

例如:

Dim wdc As New WordCreator()
Dim
rc As New System.Drawing.RectangleF(0, 0, 200, 100)
wdc.DrawEllipse(pens.LightGray, rc)
wdc.FillPie(Color.Red, rc, 0, - 90)

Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)


绘制结果:

FillPolygon(clr, points) 绘制实心多边形,参数:

clr:颜色
points:Point数组,用于指定多边形的各转折点位置

例如:

Dim
wdc As New WordCreator()
Dim
pts(3) As System.Drawing.PointF
pts(0) =
New System.Drawing.PointF(0, 0)
pts(1) =
New System.Drawing.PointF(0, 100)
pts(2) =
New System.Drawing.PointF(100, 70)
pts(3) =
New System.Drawing.PointF(100, 30)
wdc.FillPolygon(Color.PowderBlue, pts)

Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果:

FillRectangle(clr, rc)
FillRectangle(clr, x, y, width, height)
FillRectangle(clr, rc, corners)
 
绘制实心矩形,参数:

clr:颜色
rc:绘制区域,RectangleF类型
x:矩形水平位置
y:矩形垂直位置
width:矩形宽度
height:矩形高度
corners:矩形四个角的弧度大小,SizeF类型

例如:

Dim wdc As New WordCreator()
wdc.FillRectangle(Color.PowderBlue, 0, 0, 150, 100)
'绘制普通矩形
Dim
rc As New System.Drawing.RectangleF(180, 0, 170, 100) '定义矩形位置和大小
Dim
coners As New System.Drawing.Sizef(5, 5) '定义圆角尺寸
wdc.FillRectangle(Color.PowderBlue, rc, coners)
'绘制圆角矩形
Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果:

ShapeRotation(rotation) 旋转当前形状,参数:

rotation:旋转角度

例如:

Dim wdc As New WordCreator()
wdc.FillRectangle(Color.PowderBlue, 100, 100, 150, 100)
'绘制普通矩形
wdc.ShapeRotation(45)
'将刚刚绘制图形旋转45
Dim
rc As New System.Drawing.RectangleF(280, 100, 170, 100) '定义矩形位置和大小
Dim
coners As New System.Drawing.Sizef(5, 5) '定义圆角尺寸
wdc.FillRectangle(Color.PowderBlue, rc, coners)
'绘制圆角矩形
wdc.ShapeRotation( - 45)
'将刚刚绘制图形旋转-45
Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果:

 

ShapeFillOpacity(opacity) 设置当前形状的透明度,参数:

opacity:透明度

例如:

Dim wdc As New WordCreator()
wdc.FillRectangle(Color.red, 100, 100, 150, 100)
'绘制普通矩形
Dim
rc As New System.Drawing.RectangleF(00, 100, 150, 100) '定义矩形位置和大小
Dim
coners As New System.Drawing.Sizef(5, 5) '定义圆角尺寸
wdc.FillRectangle(Color.PowderBlue, rc, coners)
'绘制圆角矩形
wdc.ShapeRotation( - 45)
'将刚刚绘制图形旋转-45
wdc.ShapeFillOpacity(50)
'将刚刚绘制的图形的透明度设置为50
Dim
fl As String = "c:\temp\test.docx"
wdc.Save(fl)
Process.Start(fl)

绘制结果:


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