我正在寻找一种将HTML文本转换为RTF字符串的方法。是否有任何图书馆可以完成这项工作。我在项目中动态获取html内容,需要以RTF格式呈现。我正在使用HTML解析器将HTML文本转换为普通字符串,然后尝试使用PyRTF转换为RTF格式。有没有更好的方法可以做到这一点。谢谢你提前。
答案 0 :(得分:3)
RTF似乎是一种从/到转换的危险格式。我曾尝试在Mac OS X上的应用程序之间剪切和粘贴,例如,RTF是通用语言。其中一些应用程序是Microsoft应用程序(与RTF相关的是Microsoft开发的格式),其他应用程序则不是。当从一个表面上使用RTF的应用程序复制到另一个应用程序时,甚至基本格式化信息(如字体大小,字体,行间距和列表样式(有序或无序))都会混乱。简单地说,这是一团糟。
我已经搜索了以编程方式读取,编写和转换RTF的方法,最好是从Python中搜索。我在PyPI上找到了一些软件包,试用它们一直是一个令人失望的经历。例如,当前版本为1.9.1时,它们将支持RTF 1.5。 RTF已经存在了很长时间,但2005年的规格并不是很近。有很多陷阱和不兼容性。手。
现在,我并不是说这是不可能的,或者没有其他库可以解决这个问题。例如,我不尝试了其他人提到的zopyx.convert
。也许这很棒。但是看看它的依赖关系--Java,FOP等 - 它看起来像一个非常复杂(因而可能很脆弱)的工具链。我读了its code on github,而Python实际上只是作为协调单板。它组织外部工具XFC,XINC,FOP和PrinceXML--其中四个是商业软件。这包括处理RTF的关键XFC部分。让我持怀疑态度。
我发现有两个转换器值得一看:如果您使用的是Mac,那么textutil命令行程序实际上是我见过的更好,更简单的工具之一。
textutil -convert html filename.rtf -output filename.html
值得考虑的其他格式化引擎是LibreOffice。它是免费的,开源的,合理的自动化,以及作为互操作性中心的良好基础。这不仅仅是猜测;我围绕它构建了复杂的多格式文档工作流程。
我会问你为什么要尝试进入RTF。这似乎是您试图逃避的文档格式。但是如果你需要去那里,textutil和LibreOffice是我发现的最差机制。
答案 1 :(得分:0)
有一个很棒的python库,它是一个tarball。
祝你好运!答案 2 :(得分:0)
我看到这个问题已经超过一年了,但我认为无论如何我都会做出贡献。我最近有类似的要求,转向PyRTF,这是一个小而强大的Python模块,可以从文本文件构建RTF文档。您可以使用Beautiful Soup来抓取HTML,按标记向下遍历解析树标记,并使用PyRTF API构造适当的对象(表格,单元格,段落,部分或文档)。
API本身非常精细,允许一大堆自定义格式(字体文本,对齐方式,颜色,页眉,页脚等)。
希望这有帮助。