使用 Ruby on Rails 生成模板文档

Chr*_*ker 5 pdf ruby-on-rails docx documentation-generation

我目前正在使用 Ruby on Rails 3.2 开发管理套件。

它需要执行的任务之一是生成合同和发票

因为应用程序需要容纳多个客户,我希望每个客户都能够上传某种模板来决定他们的个人风格和布局。(即:标志、公司名称、地址等)。

我正在考虑让客户使用变量和占位符创建他们自己的 .docx 合同模板,当生成特定的合同/发票时,我的应用程序应该替换这些模板。请注意,创建模板的人不会精通技术

我应该如何才能做到这一点?请注意,将存在可以直接替换的占位符以及应包含在表格中的重复元素。这些元素的数量可能因合同而异。

在考虑了许多可用的解决方案、宝石和示例之后,我无法找到适合我情况的解决方案。这是我迄今为止尝试过的:

  • 通过提取 document.xml 和替换占位符来操作 Docx。由于拼写检查或换行符会拆分包含占位符的 XML 节点,因此这不是非常健壮和可靠。
  • wicked_pdf 和其他 html > pdf 生成器:不可行,因为我不能指望我的客户提供自定义 css 来设计他们的文档。
  • Prawn:更适合从头开始创建文档。模板功能根本无法满足我的需求,并且不支持替换占位符数据和重复元素
  • Google Drive:将模板交给 Google 并使用 Drive API 修改文档并在完成后提取 PDF:为外部服务增加额外的可靠性。更多的是最后的手段。真的希望找出一个我可以在本地运行的解决方案。

我觉得我错过了一些明显的东西。我无法想象在使用 Ruby on Rails 时,像文档生成这样的普通任务会如此复杂。

Chr*_*ker 2

在考虑了替代方案之后,我决定采取不同的路线,我偶然发现了这一点:github.com/sandrods/odf-report

它是 Rails 的 ODF(开放式办公室)gem,可以让你做与 ruby​​-docx-templater 相同的事情,但它感觉更健壮,并且不像 docx 变体那样容易损坏......甚至拼写检查也可能会损坏[名字] 块的一部分并使其停止工作