用VB实现多文档打印

发表于:2007-06-17来源:作者:点击数: 标签:
用 VB 实现多文档打印 作者: 盛放 通常,一般情况下,我们打印文档都是直接从应用程序中打印,例如WORD,这个方法对于单个文件打印比较方便,但是对于文秘等经常需要打印大批量文件的工作人员,如果仍然用WORD一个一个进行打印就比较麻烦了。 应我公司文管

   
  用VB实现多文档打印

作者: 盛放

通常,一般情况下,我们打印文档都是直接从应用程序中打印,例如WORD,这个方法对于单个文件打印比较方便,但是对于文秘等经常需要打印大批量文件的工作人员,如果仍然用WORD一个一个进行打印就比较麻烦了。

  
应我公司文管中心的要求,我制作了一个多文档打印程序,方便了文秘人员,现介绍如下:

运行VB,新建一个应用程序工程,在Form中添加一个DriveListBox 控件、DirListBox 控件和FileListBox 控件,分别取名为:Drive1、Dir1和File1。设置File1的Pattern 属性为*.doc,设置FileListBox 控件中显示的文件名为DOC文档。

在Form_Load()事件中添加一行代码:Drive1.Drive = "c:",用来设置运行时所选择的驱动器。

在Drive1_Change()事件中添加一行代码:Dir1.Path = Drive1.Drive,这样当驱动器改变时,使目录路径随之改变。

同样在Dir1_Change()事件中添加一行代码:File1.Path = Dir1.Path,当目录改变时,使文件列表同时改变。

因为一般来说,文档都会保存在统一的目录下,所以没有使用CommonDialog 控件进行文件名选择,使操作更为简单方便。

在Form中添加一个CommandButton 控件取名为Print,用来进行打印操作。

在Command1_Click()中添加如下代码:

Dim i As Integer
Dim strfile As String
Dim word As Object

Set word = CreateObject("word.Basic")

word.appshow

For i = 0 To File1.ListCount - 1

If Right(Dir1.Path, 1) <> "" Then

    strfile = Dir1.Path + "" + File1.List(i)

Else

    strfile = Dir1.Path + File1.List(i)

End If

word.fileopen strfile

word.fileprint

word.fileclose

Next

word.appclose

Set word = Nothing
代码说明:

定义一个对象变量word
使用CreateObject创建一个WORD对象并赋值给word
以FileListBox 控件的列表部分项目的个数作为最大数进行循环打印
判断目录名的最后一个字母是否为“”,如果不是,则添加“”进行修正
通过目录名和文件名获得完整的文件名
使用word对象的fileopen方法打开文件
使用word对象的fileprint方法进行文件打印
使用word对象的fileclose方法关闭文件
最后调用word对象的appclose方法关闭word程序,以及释放对象资源Set word = Nothing。
这样,我们就很简单的实现了多文档的打印,希望对文秘人员有所帮助。

原文转自:http://www.ltesting.net