`
rainlife
  • 浏览: 230002 次
  • 性别: Icon_minigender_1
  • 来自: 我也来自火星?
社区版块
存档分类
最新评论

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

分享到:
评论
1 楼 vosv 2008-03-30  
不错~非常好~~~

相关推荐

    WordXML-to-HTML:XSL将MS Word生成的XML转换为HTML

    这些核心转换将Word XML转换为符合HTMLBook规范HTML,并由少数其他ruby和XSL转换建立,以创建可插入较大的Macmillan工作流程HTML文件。 具体来说,这些XSL转换是bookmaker_htmlmaker流程的一部分-。 对于格式良好...

    程序员为什么还要刷题-caracal:Caracal是一个ruby​​库,用于动态创建专业品质的MicrosoftWord文档(.docx)

    ruby​​ 库,用于使用 HTML 样式的语法动态创建专业质量的 Microsoft Word 文档。 Caracal 不是一个神奇的 HTML 到 Word 翻译器。 相反,它是一种用于生成 Office Open XML (OOXML) 的标记语言。 程序员通过针对...

    perfect-word:生成词典

    它也是独一无二的,因为它是用三种不同的编程语言(Ruby、C 和 Python)编写的,您可能会讨厌它们。 我们想通过遗传算法找到一个好名字。 如今,很难为公司找到一个好的新名称(特别是如果免费的 .com 域在您的...

    swordfish:文档解析器

    Swordfish 是一个简单的 Ruby 文档处理库。...转换文档将 Word 文档转换为 HTML 只需要两次调用:一次解析文档,一次生成标记: require 'swordfish'Swordfish . open ( '~/Documents/my_word_doc.docx' ) . to_html

    javaeye热点阅读

    1.3 Java、PHPRPC、Hessian、Burlap、AMF3、XML 序列化的效率对比1.4 Effective Java Second Edition中文版已出版1.5 国内开源工作流 Fire Workflow 出炉了 1.6 Word/Excel/PDF文件转换成HTML整理 1.7 Java5 ...

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    markov.rb:生成逼真名称的简单马尔可夫生成器

    马尔科夫文件 简单的生成逼真的名称。 用法 $ ruby main.rb --help Usage: main.rb [options] -n, --ngram-length=N Number of characters to scan when building n-grams -c, --count=COUNT Number of names to ...

    JAVA上百实例源码以及开源项目源代码

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    rbngram:Ruby绑定为ngram查询

    生成二进制语言模型 $ binlm.rb <dst> 查询语言模型 require 'rbngram' model = Ngram::Ngram.new "path_to_file" model.prob ["word1","word2"] model.bow ["word1", "word2"] 贡献 分叉( ) 创建功能分支( ...

    confmake:一个简单的命令行工具,用于加载配置文件模板并用环境变量填充占位符

    它是一个命令行工具,可以从模板程序生成配置文件。 到目前为止,您可以使用外壳环境变量属性列表用法``要求需要 ruby​​ 版本 >= 2.0发展请随意分叉等等...... 获取依赖bundle install 运行测试rake spec rake ...

    word源码java-cspell-dicts:各种cspell词典

    word源码java cspell-dicts 各种词典。 每个字典都是它自己的包。 请参阅每个目录中的README.md 。 语言词典 (默认包含在 cspell 和 中) (默认包含在 cspell 和 VS Code Spell Checker 中) (小的) (大) 编程...

    java开源包1

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包11

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包2

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包3

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包6

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包5

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包10

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包4

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

Global site tag (gtag.js) - Google Analytics