用VB实现多文档打印

ZDNet软件频道 时间:2003-01-07 作者:盛放 |  我要评论()
本文关键词:shengfang vb
我们打印文档都是直接从应用程序中打印,例如WORD,这个方法对于单个文件打印比较方便,但是对于需要打印大批量文件的工作人员,如果仍然用WORD一个一个进行打印就比较麻烦了。
通常,一般情况下,我们打印文档都是直接从应用程序中打印,例如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
代码说明:

  1. 定义一个对象变量word
  2. 使用CreateObject创建一个WORD对象并赋值给word
  3. 以FileListBox 控件的列表部分项目的个数作为最大数进行循环打印
  4. 判断目录名的最后一个字母是否为“”,如果不是,则添加“”进行修正
  5. 通过目录名和文件名获得完整的文件名
  6. 使用word对象的fileopen方法打开文件
  7. 使用word对象的fileprint方法进行文件打印
  8. 使用word对象的fileclose方法关闭文件
  9. 最后调用word对象的appclose方法关闭word程序,以及释放对象资源Set word = Nothing。

这样,我们就很简单的实现了多文档的打印,希望对文秘人员有所帮助。



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134