我目前正在使用Ruby on Rails 3.2开发一个管理套件。
需要执行的任务之一是生成合同和发票。
因为应用程序需要容纳多个客户端,所以我希望每个客户端能够上传某种模板,这些模板决定了他们的个人风格和布局。 (即:徽标,公司名称,地址等)。
我正在考虑让客户使用变量和占位符创建自己的.docx合约模板,我的应用程序应该替换生成特定合同/发票。请注意,创建模板的人不精通技术。
我应该如何做到这一点?请注意,可以直接替换占位符以及应包含在表中的重复元素。这些要素的数量因合同而异。
在考虑了许多解决方案,宝石和示例后,我无法找到适用于我的情况的解决方案。这是我到目前为止所尝试的:
我感觉我错过了一些明显的东西。我无法想象当使用Ruby on Rails时,像文档生成这样的平凡任务是如此复杂。
答案 0 :(得分:2)
我已经为此目的创建了一个库:
它叫做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
它在节点上运行全局,作为命令行:
docxgen <inputFileDocx> <inputFileJson>
有关github repo上安装的更多信息:https://github.com/edi9999/docxgenjs#node-installation-and-usage
希望这有帮助
答案 1 :(得分:2)
我将它用于完全相同的目的
答案 2 :(得分:2)
在考虑了替代方案之后,我决定走另一条路,我偶然发现了这个: github.com/sandrods/odf-report
它是Rails的ODF(开放式办公室)宝石,它可以让你做与ruby-docx-templater相同的东西,但它感觉更强大,并且不像docx变体那样容易破坏......甚至拼写检查可以分解[名字]块的部分并使其停止工作
答案 3 :(得分:1)
Maybe this gem is interesting for you.
https://github.com/trade-informatics/caracal/
It like prawn but with docx.