我使用以下技术:
我的目标是创建一个实现以下功能的简单控制器:
我搜索过可以帮助我实现这一目标的宝石,并提出以下问题:
答案 0 :(得分:1)
我从未在你的要求中完成大部分工作,但我在文本解析器上工作非常重要,它将MS Word文档转换为XML文档。也许我至少能让你开始朝着正确的方向前进。
我们使用名为POI, by Apache的Java库来制作DOC - > XML转换是一个简单的过程。既然你正在使用JRuby,我想你可以更容易地将它集成到你的项目中,因为我们使用的是MRI Ruby。这是一个PITA,因为我们必须包含许多桥接器和其他垃圾才能使用.jar文件。
就个人而言,我已经使用Carrierwave gem来处理文件上传。上传文件非常容易。将它们附加到模型上。您只需使用Carrierwave生成器生成Uploader
类,该类附加到模型中的字段,将其配置为存储&根据您的规格和PROFIT处理文件!文档很棒,但如果您需要,我很乐意为您提供帮助。如果您需要在不同的SO帖子中进行多文件上传,I explained in detail about how I accomplished it。
希望有所帮助!
答案 1 :(得分:1)
回答你的问题:
最后,Libreoffice文本是简单的压缩档案,其中文本存储在XML文件中。提取它:
content = `unzip -cq \"#{file_path}\" content.xml`
require 'nokogiri'
@nokogiri = Nokogiri::XML(content)
paragraphs = []
@nokogiri.xpath('//text:p').each do |t|
paragraphs << t.content
end
text = paragraphs.join ' '