【问题标题】:HTML to RTF string using Python使用 Python 将 HTML 转为 RTF 字符串
【发布时间】:2013-01-27 13:46:13
【问题描述】:

我正在寻找一种将 HTML 文本转换为 RTF 字符串的方法。有没有做这项工作的图书馆。我在我的项目中动态获取 html 内容并需要以 RTF 格式呈现。我正在使用 HTML 解析器将 HTML 文本转换为普通字符串,然后尝试使用 PyRTF 转换为 RTF 格式。有没有更好的方法可以做到这一点。在此先感谢。

【问题讨论】:

标签: python html-parsing rtf


【解决方案1】:

有一个很棒的 python 库,它是一个 tarball。

您可以在https://pypi.python.org/pypi/zopyx.convert2/2.4.5下载。

祝你好运!

【讨论】:

  • 只有在您已经或愿意安装 XFC、XINC、FOP 和 PrinceXML 时才有用——其中三个是商业软件。
【解决方案2】:

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 是我发现的最糟糕的机制。

【讨论】:

  • 嗨 Jonathon,你还记得你是如何使用 LibreOffice 进行格式化的吗?例如,在 Windows 7 命令行上,我尝试以下命令:“soffice.exe”-headless -convert-to rtf:"Rich Text Format" C:\Hello_world.html 但没有任何反应...
  • 我使用的调用(在 MacOS X 上)是 soffice --headless --invisible --convert-to rtf test.html。我不认为--invisible 是必需的,只是一个“不那么明显”的选项。因此,问题似乎不是您需要双连字符选项前缀(可能),和/或您的:"Rich Text Format" 附录到rtf 格式规范。试试:` "soffice.exe" --headless --convert-to rtf C:\Hello_world.html`
  • 对于 Windows,显然您应该只使用一个连字符。我实际上也没有使用根驱动器,只是在这个例子中想要一个简单的路径。我最终解决这个问题的方法是使用 Visual Basic 和这里给出的答案stackoverflow.com/questions/150208/…
【解决方案3】:

我看到这个问题已经有一年多了,但我想我还是会做出贡献的。我最近有类似的需求,并求助于PyRTF,这是一个小而强大的 Python 模块,可以从文本文件构造 RTF 文档。您可以使用Beautiful Soup 来抓取 HTML,逐个标记向下解析树标记,并使用 PyRTF API 构造适当的对象(表格、单元格、段落、部分或文档)。

API 本身非常精细,允许大量自定义格式(字体文本、对齐方式、颜色、页眉、页脚等)

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-16
    • 2022-01-19
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多