2008-7-16 18:03:44
 
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
 
类别:知识库|浏览(16)