使用RubyonRails生成模板文档



我目前正在使用RubyonRails 3.2开发一个管理套件。

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

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

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

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

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

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

我感觉我错过了一些显而易见的东西。我无法想象在使用RubyonRails时,像文档生成这样平凡的任务会如此复杂。

我正是为此目的创建了一个库:

它被称为Docxgen,可以在github上找到:https://github.com/edi9999/docxgenjs

下面是一个如何使用它的使用示例:

使用内容:Hello {first_name} {last_name}

var doc= new DocxGen(docData); //Create a new DocxGen document
doc.setTemplateVars(
    {"first_name":"Hipp",
    "last_name":"Edgar",
    }
) //set the templateVariables
doc.applyTemplateVars() //apply them (replace all occurences of {first_name} by Hipp, ...)
doc.output() //Output the document using Data-URI

下面是我的网站上的示例:http://javascript-ninja.fr/docxgenjs/examples/demo.html

好吧,这是javascript,但是:

当您在全局安装它时,它在node上运行,作为命令行:

docxgen <inputFileDocx> <inputFileJson>

有关在github repo上安装的更多信息:https://github.com/edi9999/docxgenjs#node-的安装和使用

希望这能帮助

看看ruby docx模板

我使用它的目的完全相同

在考虑了其他选择后,我决定走另一条路,我偶然发现了这一点:github.com/sandrods/odf-report

它是一个用于Rails的ODF(开放式办公室)宝石,可以让你做与ruby docx模板相同的事情,但它感觉更健壮,而且不像docx变体那样容易崩溃。。。甚至拼写检查也可以分解[名字]块的一部分,使其停止工作

也许这个宝石对你来说很有趣。

https://github.com/trade-informatics/caracal/

它喜欢对虾,但配了多肉。

相关内容

  • 没有找到相关文章

最新更新