我正在使用以下技术:
- JRuby 1.7.4
- Rails 3.2.13
- Ubuntu 13.04
- DB2 C-Express
- Torquebox 服务器 2.3.0
我的目标是制作一个简单的 Controller ,实现以下功能:
- 上传文本文件(MS Word 格式、Open Office 或 Libre Office 格式)
- 对上传的文件执行全文搜索
- 在浏览器中将文本文件显示为 PDF
我已经搜索了可以帮助我实现这一目标的 gem ,并有以下问题:
- 存储文本文件的字段的列类型应该是什么。一般来说,我认为它应该是二进制类型。
- 是否可以使用 Sunspot 执行全文搜索?正如我所读到的,它似乎适用于文本类型的字段,而不是二进制类型的字段。
- 我读到了两个可以让我生成 PDF 的 gem。 Prawn gem,它增加了更多的灵活性和 PDFkit它可以从 HTML 页面生成 PDF。这些都可以用来显示文本文件吗?我想我应该首先以某种方式在 HTML 中显示,然后使用 PDF gem。
有人做过这样的事情吗?你能给我指出正确的方向吗?
最佳答案
我还没有完成您要求中的大部分事情,但我大量使用将 MS Word 文档转换为 XML 文档的文本解析器。也许我至少可以让您朝着正确的方向开始。
我们使用一个名为 POI, by Apache 的 Java 库这使得 DOC -> XML 转换成为一个简单的过程。由于您使用的是 JRuby,我想您将它集成到您的项目中会更容易,因为我们使用的是 MRI Ruby。这是一个 PITA,因为我们必须包含大量桥接器和其他垃圾才能使用 .jar 文件。
就我个人而言,我使用过 Carrierwave gem处理文件上传。上传文件并将其附加到模型非常简单。您只需使用 Carrierwave 生成器生成一个附加到模型中字段的 Uploader
类,将其配置为根据您的规范存储和处理文件,然后就可以获利!这些文档很棒,但如果您需要的话,我很乐意为您提供帮助。如果需要多文件上传,I explained in detail about how I accomplished it在另一个 SO 帖子中。
希望有帮助!
关于ruby - 如何上传文本文档以及是否可以对其启用全文搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17643386/