用Word对象实现图文混合排版打印

在多媒体信息处理应用软件开发过程中,经常会遇到图文混合排版打印输出(即将文字、表格、图片等信息放在一起的打印)。若通过报表或程序直接实现,打印样式往往缺乏灵活性,从而难于满足不同用户的需要。本文通过word应用程序对象实现图文混合排版打印,其方法是:在程序中先将要打印的信息按一定格式输出到一个word文档中,再自动调入word文字处理系统,供用户对打印内容作进一步的编辑排版,最后,将被处理信息从word文字处理系统打印输出。鉴于word文字处理系统是大家所熟悉的通用办公自动化系统,因此,这种方法具有一定的实用性。

一、word应用程序对象

word应用程序对象(word.application)是随Office软件的安装而安装的。该对象在Office 97软件的Office目录的Msword8.olb文件中,在Office 2000的Office目录的Msword9.olb文件中。Word.application在Visual Basic、Visual FoxPro等编程语言中都可以调用。本文给出的示例程序是在Office 97环境下,用Visual Basic 6.0实现的。

二、示例程序

①进入Visual Basic 6.0,新建一个"标准 EXE"工程;

②点击VB菜单条上的"工程",在下拉的"工程"菜单中点击"引用",在弹出的"引用"窗口中选中"Microsoft Word 8.0 Object Library";

③在表单Form1中添加一个按钮Command1,将其Caption属性设置为"Word输出",

④在Command1.click事件中添加以下程序代码;

Private Sub Command1_Click()
'建立一个word.application对象
Set wrdobj = CreateObject("Word.Application")
'显示word.application,即word文字处理系统界面
wrdobj.Visible = True
'在word文字处理系统中添加一个文档
Set vardoc = wrdobj.Documents.Add()
' 插入3段文字
wrdobj.Selection.TypeText Text:="首先,在当前光标位置插入一段文字," + _
"插入完后光标在第二段文字的起始位置。 " + vbCrLf
wrdobj.Selection.TypeText Text:=" 接着,在第二段文字后插入一幅图片," + _
"这是Windows98目录下的一幅图片。 " + vbCrLf
wrdobj.Selection.TypeText Text:=" 最后,在第三段文字后插入一张表格。" + _ vbCrLf
'现在光标位置在第四段的起始位置,为了插入图片,先将光标位置上移一段。
wrdobj.Selection.MoveUp unit:=wdParagraph, Count:=1
'在当前光标位置插入图片
Set varshape = vardoc.Shapes.AddPicture
("c:\windows\cloud.gif", False, True, , , , , _
wrdobj.Selection.Range)
'再将光标下移到第四段文字的起始位置
wrdobj.Selection.MoveDown unit:=wdParagraph, Count:=1
'在当前光标位置插入34的表格
Set vartable = vardoc.Tables
.Add(wrdobj.Selection.Range, 3, 4)
'在表格的每个单元格中插入数据。
With vartable
For x = 1 To 3
For y = 1 To 4
.Cell(x, y).Range.
InsertAfter "表格单元" & x & "," & y
Next y
Next x
.Columns.AutoFit
End With
vardoc.SaveAs FileName:="d:\wordvbtest.doc"
End Sub


⑤运行此VB工程,点击"Word输出"按钮,程序运行结果产生一个word文档,并 保存在文件"d:\wordvbtest.doc" 中,内容如图二。

加支付宝好友偷能量挖...


评论(0)网络
阅读(126)喜欢(0)Asp/VBScript