浏览 5336 次
锁定老帖子 主题:ruby操作WORD文档生成HTML
精华帖 (1) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-15
require 'win32ole' module WordToHtml class WordToHtml def initialize(path) @path = path end def convertToHtml(outputPath) word = WIN32OLE.new('word.application') word.Visible = true word.Documents.Count # 打开指定的WORD文档 word.Documents.Open(@path) #选择所有文本 word.Selection.WholeStory #所以可以保存为的文档格式 # wdFormatDocument = 0 (no conversion) # wdFormatTemplate = 1 # wdFormatText = 2 # wdFormatTextLineBreaks = 3 # wdFormatDOSText = 4 # wdFormatDOSTextLineBreaks = 5 # wdFormatRTF = 6 # wdFormatUnicodeText = 7 # it repeats! # wdFormatEncodedText = 7 # wdFormatHTML = 8 # wdFormatWebArchive = 9 # wdFormatFilteredHTML = 10 # wdFormatXML = 11 word.ActiveDocument.SaveAs outputPath, 10 # 关闭文档 word.ActiveDocument.Close # 关闭WORD word.Quit end end end 测试代码: require 'WordToHtml' word = WordToHtml::WordToHtml.new("d:/test/5.doc") word.convertToHtml("d:/test/5.html") 只有一句,就将WORD转换成为HTML,转换后的HTML与原WORD拥有同样的格式,包括图片(其实这部操作与在WORD中另存为HTML的效果一致)。 Ruby操作WORD主要是应用WIN32OLE,下面是一些常用的操作: # 写入文本 word.Selection.TypeText("Hello World!\n") # 查找文本 word.Selection.Find.Text = 'search' # 如果找到,则result为 true result = word.Selection.Find.Execute # 删除选择的文本 word.selection.delete # 读取选择的文本 puts word.Selection.Text # 可以通过word.Selection.Start 和 word.Selection.End 来查找选择的区域,上面则是 #通过word.Selection.WholeStory选中整个文档 puts word.Selection.Start puts word.Selection.End #也可以给 word.Selection.Start 和 word.Selection.End设值,指定选择的区域 #如: word.Selection.Start = 100 word.Selection.End = 200 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |