我正在寻找一种将HTML文本转换为RTF字符串的方法,是否有可以完成此任务的库。在我的项目中,我动态获取HTML内容,并需要将其呈现为RTF格式。我正在使用HTML解析器将HTML文本转换为普通字符串,然后尝试使用PyRTF将其转换为RTF格式。是否有更好的方法可以完成此任务。提前感谢。
我正在寻找一种将HTML文本转换为RTF字符串的方法,是否有可以完成此任务的库。在我的项目中,我动态获取HTML内容,并需要将其呈现为RTF格式。我正在使用HTML解析器将HTML文本转换为普通字符串,然后尝试使用PyRTF将其转换为RTF格式。是否有更好的方法可以完成此任务。提前感谢。
RTF似乎是一个不稳定的格式,难以进行转换。例如,在Mac OS X上,我尝试在应用程序之间剪切和粘贴,其中RTF是一种“通用语言”。这些应用程序中有一些是Microsoft应用程序(因为RTF是由Microsoft开发的格式),而其他应用程序则不是。即使是基本的格式信息,如字体大小、字体类型、行距和列表样式(有序或无序),在从一个RTF应用程序复制到另一个应用程序时也会混乱。简而言之,这是一团糟。
我已经搜索了一些方法来编程读取、写入和转换RTF,最好是使用Python。我在PyPI上找到了许多软件包,但试用它们的过程是令人失望的。它们可能支持RTF 1.5,但当前版本是1.9.1。虽然RTF已经存在很长时间,但2005年的规范并不是非常新的版本。有很多需要注意的地方和不兼容性问题。很多很多。
现在,我并不是说这是不可能的,或者没有其他库可以实现这个功能。例如,我没有尝试过其他人提到的zopyx.convert。也许它很好用。但是看着它的依赖项——Java、FOP等——它看起来是一个相当复杂(因此可能很脆弱)的工具链。我在github上阅读了它的代码,发现Python只是一个协调外部工具XFC、XINC、FOP和PrinceXML的包装器。其中三个是商业软件,包括处理RTF的关键部分XFC。我对此持怀疑态度。textutil -convert html filename.rtf -output filename.html
soffice --headless --invisible --convert-to rtf test.html
。我认为--invisible
不是必需的,只是一个“更少可见”的选项。因此,问题似乎要么是您需要双破折号选项前缀(很可能),要么是您对rtf格式规范的附加说明:“Rich Text Format”。尝试:"soffice.exe" --headless --convert-to rtf C:\Hello_world.html
。 - Jonathan Eunice我知道这个问题已经超过一年了,但我还是想做出贡献。最近我也有一个类似的需求,于是找到了 PyRTF,它是一个小而强大的 Python 模块,可以从文本文件构建 RTF 文档。您可以使用 Beautiful Soup 来爬取 HTML,逐级解析标签,并使用 PyRTF API 构建适当的对象(表格、单元格、段落、节或文档)。
API 本身非常精细,允许进行各种自定义格式设置(字体文本、对齐、颜色、页眉、页脚等)
希望这能帮到您。