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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章