加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用Ruby on Rails生成模板化文档

发布时间:2020-12-17 02:46:02 所属栏目:百科 来源:网络整理
导读:我目前正在使用 Ruby on Rails 3.2开发一个管理套件. 它需要执行的任务之一是生成合同和发票. 因为应用程序需要容纳多个客户端,所以我希望每个客户端能够上传某种模板,这些模板决定了他们的个人风格和布局. (即:徽标,公司名称,地址等). 我想让客户使用变量
我目前正在使用 Ruby on Rails 3.2开发一个管理套件.

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

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

我想让客户使用变量和占位符创建自己的.docx合约模板,我的应用程序应该替换生成特定合同/发票.请注意,创建模板的人不会精通技术.

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

在考虑了许多可用的解决方案,宝石和示例后,我无法找到适用于我的情况的解决方案.这是我到目前为止所尝试的:

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

我觉得我错过了一些明显的东西.我无法想象当使用Ruby on Rails时,像文档生成这样的平凡任务是如此复杂.

解决方法

我已经为此目的创建了一个库:

它叫做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,但是:

它作为命令行在全局安装时在节点上运行:

docxgen <inputFileDocx> <inputFileJson>

有关github repo上的安装的更多信息:https://github.com/edi9999/docxgenjs#node-installation-and-usage

希望这可以帮助

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读