2012-02-07 101 views
1

我希望能够将HTML转换为docxRTF。有很多用于创建docx和RTF文档的Ruby gems,但它们只是用于创建一个空文档,然后您可以通过编程添加内容。如何将HTML转换为文档格式?

这些宝石的问题是没有办法准确地将网页的格式转换为可打印页面上的相同/相似。 HTML标签有很多复杂性,并且由于它们的CSS属性而导致这些标签的位置。

以我目前的宝石在那里为RTFWord创造的知识,我不得不写一个HTML解析器和所有的HTML标记转换为类似的OpenXML的标签,如粗体和斜体,但后来事情的位置基于CSS,但是由于position: relative/absolute渲染文档页面会非常困难。

我想知道是否有任何最新的发展,或者如果有一些即将发布的宝石或服务或工具能够处理这种转换。

有一个应该将Word转换为HTML的gem,但它没有文档,只能在https://www.ruby-toolbox.com/gems/word_parsing和rubygems上找到。而且,由于依赖性问题,我没有成功将其安装在本地计算机上。由于没有文档,因此没有提及如何解决依赖关系。

有些服务将PDF转换为“word”,并将HTML转换为PDF已被多人或宝石解决。此服务:http://www.pdftoword.com/将PDF转换为RTF,甚至将结果文档中的图像分开。他们的问题是它运行在Windows服务器上 - 我需要跨平台的东西,因为我正在开发的应用程序是在基于Unix的服务器上运行的Ruby on Rails。

+0

您是否考虑过查看OpenOffice/LibreOffice的'--headless --convert-to'功能?不会发布这个答案,因为我只听说过它的作品,从来没有用过它。 – Charles 2012-02-07 20:40:32

+0

我还没有,是否有可能拥有/放入宝石形式? – NullVoxPopuli 2012-02-07 20:43:20

+0

我想在概念上可以创建一个可能包含所有OOo/LO的巨大二进制可怕性的宝石,但这将是相当愚蠢的。如果您可以控制环境,那么您可以简单地确保安装正确的软件包,并且二进制文件是您期望它们在推出期间的位置。如果你不*控制环境,那么这可能是一个非起动器。当系统管理员要求他们在他们的机器上安装OOo/LO时,我不会期待系统管理员的积极反应。 – Charles 2012-02-07 21:01:50

回答

1

我已经出版了一本小宝石,从html模板生成docx文件。

https://github.com/docxtor/docxtor

它可以插入给出<div>的包含页码,页脚/头,翻译<h1>标题,文档标题。

问题在于所有的文字处理器都以不同的方式解析docx格式。因此,Mac上的Libre Office可以很好地读取生成的文件,但不会在Google文档中打开。

任何对宝石的帮助和/或反馈非常感谢!