gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:22:01 24 4
gpt4 key购买 nike

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

它需要执行的任务之一是生成契约(Contract)和发票 .

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

我正在考虑让客户使用变量和占位符创建自己的 .docx 契约(Contract)模板,当生成特定契约(Contract)/发票时,我的应用程序应替换这些模板。请注意,创建模板的人将 不懂技术 .

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

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

  • 通过提取 document.xml 并替换占位符来操作 Docx。这不是非常健壮和可靠的,因为拼写检查或换行会拆分包含占位符的 XML 节点。
  • wicked_pdf 和其他 html > pdf 生成器:不可行,因为我不能期望我的客户提供自定义 css 来设置文档样式。
  • Prawn:更适合从头开始创建文档。模板功能根本无法满足我的需求,也不支持替换占位符数据和重复元素
  • Google Drive:将模板移交给 Google,并使用 Drive 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

    希望这可以帮助

    关于ruby-on-rails - 使用 Ruby on Rails 生成模板文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18284135/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com