当前位置:  开发笔记 > 编程语言 > 正文

在Ruby中创建Microsoft Word(.docx)文档

如何解决《在Ruby中创建MicrosoftWord(.docx)文档》经验,为你挑选了5个好方法。

有没有一种简单的方法在Ruby应用程序中创建Word文档(.docx)?实际上,在我的情况下,它是从Linux服务器提供的Rails应用程序.

类似于Prawn的宝石,但对于DOCX而不是PDF将是伟大的!



1> Grant Wagner..:

如前所述,似乎没有任何库可以在Ruby中操作Open XML文档,但OpenXML Developer提供了有关Open XML文档格式的完整文档.

如果你想要的是发送为每个用户定制的标准文档(如格式信件)的副本,那么它应该相当简单,因为DOCX是包含目录层次结构中各个部分的ZIP文件.拥有一个DOCX"模板",其中包含您要发送给all用户的所有部分和树结构(没有真实内容),然后只需创建包含所需用户特定内容的新(或修改现有)部分并将其注入在将ZIP(DOCX文件)发送给用户之前进入ZIP(DOCX文件).

例如:您可以document-template.xml包含亲爱的[USER-PLACEHOLDER] : . 当用户请求文档时,[USER-PLACEHOLDER]使用用户名替换,然后将结果添加document.xmlyour-template.docxZIP文件(其中包含Word文档中所需的所有图像和其他部分),并将生成的文档发送给用户.

请注意,如果将.docx文件重命名为.zip它,则可以轻松地探索内部零件的结构和格式.您可以使用任何ZIP操作工具或使用代码以编程方式轻松删除或替换图像或其他部分.

如果不访问API以使工作更轻松,则使用原始XML生成具有完全自定义内容的全新Word文档将非常困难.如果您确实需要这样做,可以考虑安装Mono,然后使用VB.NET,C#或IronRuby使用Open XML Format SDK 1.0创建Open XML文档.由于您只是使用Microsoft.Office.DocumentFormat.OpenXml.Packaging命名空间来操作Open XML文档,因此它在Mono中可以正常工作,它似乎支持SDK所需的一切.



2> ykaganovich..:

您可以使用Apache POI.它是用Java编写的,但与Ruby集成作为扩展


感谢您的输入!您是否知道使用Apache POI实际创建word文档的任何实现(不仅解析它)?

3> Archonic..:

这是一个老问题,但有一个新的答案.如果您想将HTML文档转换为Word(docx)文档,只需使用'htmltoword'gem:

https://github.com/nickfrandsen/htmltoword

我不确定为什么有回答蠕变,每个人都开始发布模板解决方案,但这回答了OP的问题.就像Prawn一样,除了Word而不是PDF.

更新:

还有pandoc和pandoc的API包装器叫做docverter.由于pandoc是一个haskell库,因此两者的安装都稍微复杂一些.


我使用`htmltoword`并且不能推荐它.它只能处理段落和标题.如果你想在你的Ruby应用程序中进行强大的文档转换,我建议使用Pandoc,尽管像docverter或pandoc-ruby这样的ruby包装器.PDF转换需要LaTeX库 - 它有近2GB的库.公平警告:)

4> Théo Capdet..:

也许这个宝石对你很有意思.

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

它喜欢大虾,但有docx.



5> Daniel A. Wh..:

我知道如果你将HTML文档作为带有.doc扩展名的word文档提供,它将在Word中打开就好了.只是不要做任何花哨的事情.

编辑:以下是使用经典ASP的示例.http://www.aspdev.org/asp/asp-export-word/


RTF文件有什么问题?
推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有