我希望能够将HTML转换为docx或RTF。有很多Ruby宝石用于创建docx和RTF文档,但它们只是用于创建一个空文档,然后可以通过编程向其中添加内容。
这些宝石的问题是,无法准确地将网页的格式转换为可打印页面上的相同/相似格式。HTML标签有很多复杂性,这些标签的位置由于其CSS属性而不同。
根据我目前对RTF和Word创建的知识,我必须编写一个HTML解析器,并将所有HTML标记转换为类似的openXML标记,如粗体和斜体,然后根据CSS定位,但由于position: relative/absolute
,呈现文档页面将非常困难。
我想知道是否有任何最新的发展,或者是否有一些即将发布的gem、服务或工具能够处理这种转换。
有一个gem应该可以将Word转换为HTML或从HTML转换为HTML,但它没有文档,只能在https://www.ruby-toolbox.com/gems/word_parsing以及在rubygems上。而且,由于依赖性问题,我在本地机器上安装它失败了。由于没有文档,因此没有提及如何修复依赖关系。
有一些服务可以将PDF转换为"word",而将HTML转换为PDF已经由多个人或宝石解决了。此服务:http://www.pdftoword.com/将PDF转换为RTF,甚至将生成的文档中的图像分离出来。他们的问题是它在Windows服务器上运行——我需要一些跨平台的东西,因为我正在开发的应用程序是在基于Unix的服务器上运行的RubyonRails。
我发布了一个小gem,它从html
模板生成docx
文件。
https://github.com/docxtor/docxtor
它可以插入给定<div>
的页码、页脚/页眉,并将<h1>
的标题转换为文档标题。
问题在于,所有的字处理器对docx
格式的解析方式不同。因此,Mac上的Libre Office可以很好地读取生成的文件,但不会在谷歌文档中打开。
非常感谢您对宝石的任何帮助和/或反馈!
我也在寻找这种解决方案,我认为最好看看https://github.com/bagilevi/docx_builder.不过我还没试过。同时阅读这篇文章http://rubythings.blogspot.com/2011/05/creating-word-documents-in-rails.html
如果有人能想出更好的解决方案,我们都会很感激:)