2008-03-15

ruby操作WORD文档生成HTML

关键字: ruby操作word文档生成html
通过ruby代码,将指定的WORD文档转换为HTML:
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
评论
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

rainlife
搜索本博客
我的相册
0b62aec5-97b6-35bb-8fce-a1dae18a8b4e-thumb
image008
共 11 张
存档
最新评论