VBS下将Word文档转成html
思路其实就是将word文档打开,然后另存为html文档就可以了,在VBS下直接运行就没有权限的问题,当然如果是用ASP等在服务器上面操作就需要用到上一章说到的配置dcomcnfg才可以解决权限等问题,后面为源码,要改成asp的也容易.只用Wordinterface这个function就可以了,前面的都是在windows界面下取参数的操作,在asp中直接把参数传进去就可以了.不过这个东西暴占内存.源码为网上所见,未见署名,原作者见谅.
'**********************************************************
' 文件名另存为:doc2html.vbs
' 调用方法:doc2html c:\doc2html c:\doc2html
' 调用方法:doc2html -s c:\doc2html\a.doc c:\doc2html
'
'**********************************************************
Dim Objword
Dim Objdoc
Dim Objfso
Dim Strsource
Dim Strtarget
Dim Bbatch
'得到命令行参数,有三种可能的格式:[-s] 要进行转换的源文件目录或文件 转换成Html文件后保存的目录
Function Getparams()
Dim Objarg
If Wscript.Arguments.Count >= 2 Then
If Wscript.Arguments.Item(0) = "-s" Or Wscript.Arguments.Item(0) = "-S" Then
Strsource = Wscript.Arguments.Item(1)
Strtarget = Wscript.Arguments.Item(2)
Bbatch = False
Else
Strsource = Wscript.Arguments.Item(0)
Strtarget = Wscript.Arguments.Item(1)
Bbatch = True
End If
Else
Wscript.Quit(1)
End If
End Function
Function Batchprocessing()
Dim Objfolder
Dim Objfile
Dim Lpos
Dim Strfilename
Lpos = 0
Set Objfolder = Objfso.Getfolder(Strsource)
For Each Objfile In Objfolder.Files
Lpos = Instr(1,Mid(Objfile.Path,Len(Objfile.Path) - 3,4),"Doc",1)
If Lpos > 0 Then
Strfilename = Objfso.Getbasename(Objfile.Path)
Wordinterface Objfile.Path,Strfilename
End If
Next
End Function
Function Singleprocessing()
Dim Objfile
Set Objfile = Objfso.Getfile(Strsource)
Strfilename = Objfso.Getbasename(Objfile.Path)
Wordinterface Objfile.Path,Strfilename
End Function
Function Wordinterface(Strfilename,Formattedfilename)
Objword.Documents.Open Strfilename
Set Objdoc = Objword.Activedocument
'Stop
'set The Title Of The Document To Match The Filename
Objdoc.Builtindocumentproperties(1) = Formattedfilename
'1 = Wdpropertytitle In Vba
Objdoc.Saveas Strtarget & "\" & Formattedfilename & ".htm",8
'objdoc.Saveas "C:\Doc2Html\" & Formattedfilename & ".htm",8
On Error Resume Next
Objdoc.Close
End Function
'stop
Set Objfso = Createobject("Scripting.FileSystemObject")
Set Objword = Createobject("Word.Application")
Objword.Visible = False
Call Getparams
If Bbatch Then
Call Batchprocessing
Else
Call Singleprocessing
End If
Objword.Quit
Set Objword = Nothing
'End
永久链接地址: 知识库 VBS下将Word文档转成html
|