Ruby on rails 在Ruby中打开.doc文件
我可以打开一个.doc文件并使用Ruby获取该文件的内容吗?是和否 在Ruby中,您可以执行以下操作:Ruby on rails 在Ruby中打开.doc文件,ruby-on-rails,ruby,ms-office,Ruby On Rails,Ruby,Ms Office,我可以打开一个.doc文件并使用Ruby获取该文件的内容吗?是和否 在Ruby中,您可以执行以下操作: thedoc = `externalProgram some_file` 所以你需要一个好的外部程序 你可以看看或(显然不是最近更新的)我想还有其他的。OpenOffice可以读取文档文件和导出文本文件,因此通过CLI驱动OO可能也会起作用。如果您在Windows上,这将起作用:如果您只需要纯文本内容,您可能需要查看一下。它是一个gem,充当Apache TIKA的包装器,支持多种文档格式,
thedoc = `externalProgram some_file`
所以你需要一个好的外部程序
你可以看看或(显然不是最近更新的)我想还有其他的。OpenOffice可以读取文档文件和导出文本文件,因此通过CLI驱动OO可能也会起作用。如果您在Windows上,这将起作用:如果您只需要纯文本内容,您可能需要查看一下。它是一个gem,充当Apache TIKA的包装器,支持多种文档格式,包括以下内容:
- Microsoft Office OLE 2和Office Open XML格式(.doc、.docx、.xls、.xlsx、.ppt、.pptx)
- OpenOffice.org OpenDocument格式(.odt、.ods、.odp)
- 苹果iWorks格式
- 富文本格式(.rtf)
- 可移植文档格式(.pdf)
- gem docx使用非常简单
require 'docx'
puts Docx::Document.open('test.docx')
或
您可以在找到它,并通过gem install docx安装它
但是docx不支持.doc文件(word 2007和更早版本),那么您可以像这样使用WIN32OLE:
require 'win32ole'
begin
word = WIN32OLE.connect('Word.Application')
doc = word.ActiveDocument
rescue
word = WIN32OLE.new('word.application')
path_open = 'C:\Users\...\test.doc' #yes: backslashes in windows
doc = word.Documents.Open(path_open)
end
word.visible = true
doc.Sentences.each { |x| puts x.text }
我最近在一个项目中处理了这个问题,发现我想要一个更轻量级的库来获取.doc、.docx和.pdf文件中的文本。使用Antiword、grep和Poppler/pdftotext命令行工具的组合从文件中获取文本内容,并将其作为utf-8字符串返回
dr = DocRipper::TextRipper.new('/path/to/file')
dr.text
=> "Document's text"
你能写出代码示例中使用的gem名称吗?你可以在上找到它,然后通过gem install docxThank安装它,我正在尝试!nokogiri解析有点问题:“nokogiri::XML::XPath::SyntaxError:未定义的命名空间前缀://w:document//w:body//w:p”但是解析“.doc”MS Word 2004文件怎么样?现在,我看到一个错误-未知的OLE服务器:`Word.Application':(你好,杰森,你的问题很长时间都没有答案了,你找到解决办法了吗?你愿意接受其中一个答案吗?
dr = DocRipper::TextRipper.new('/path/to/file')
dr.text
=> "Document's text"