【问题标题】:Delphi: best way to convert rtf to textDelphi:将 rtf 转换为文本的最佳方法
【发布时间】:2011-03-13 23:00:41
【问题描述】:

我需要将 rtf 转换为纯文本。我曾经写过一个去除 rtf 标头的函数,但它从来都不是完美的。

所以一个选项可以使用在运行时创建的 TRichEdit(类似于 here 中描述的内容,但当然是在运行时完成的)。但是还有其他方法吗?是否有为此或更好的方法的 rtl 函数?

更新:

this question 中,我编写了我的 rtf 到文本程序的最终版本。

【问题讨论】:

  • TRichEdit 出了什么问题?谁生成您要转换的 RTF?如果希望转换从 Microsoft Word 生成的 RTF,Microsoft 出品的 TRichEdit 可能是最好的选择。
  • @Cosmin Prund:创建一个 GUI 控件(即使它从未显示在屏幕上)只是为了在后台进行文件转换似乎有点过头了。但当然,它有效。
  • 没错,这是我关心的问题。当然可以。无论如何,似乎是这样。

标签: delphi rtf


【解决方案1】:

如果你真的想找到一种方法来进行这种转换,你应该看看类 TConversion 是如何在类 TRichEditStrings 中实现的。这些类在 ComCtrls.pas 中。通过了解如何在 RichEdit 控件中完成转换,您可以自己编写。

但是,查看实现此功能的实际方面并且不知道您的问题的性能要求是什么,我会选择链接中概述的 TRichEdit 转换方法。

【讨论】:

  • TRichEditStrings 不实现任何转换,所有工作都由 RichEdit 控件完成(TRichEdit 只不过是微软 RichEdit 控件的包装)。编写自己的 RTF 到 TEXT 实现对于简单的情况很简单,而对于复杂的情况则非常复杂。 Microsoft Word 可以将任何文档保存为 RTF,保留所有格式。想想你见过的最奇怪的 Word 文档,使用最扭曲的表格结构;想象一下,有人将其保存为 RTF,并要求您将其转换为 TEXT!
  • 好的,我会去的。有两个问题应该以其他方式解决:我需要在 DB rtf 字段中搜索(因为我使用的技巧是在 rtf 文本中搜索字符串,这不是完美的技巧,但如果搜索单个单词),我需要在网格中返回许多 rtf 字段的内容“作为文本”(这里的解决方法是返回 rtf 格式的文本)。当然,另一种方法也可以保存一个文本字段,因此对于我保存的每个 rtf,我也保存纯文本版本,这可能是新应用程序中的一个好方法。
【解决方案2】:

页面

  • http://www.delphipraxis.net/152766-rtf-nach-html.html 获取一些指向组件、库和其他 RTF 转换器源的指针,其中一些包括 RTF 到文本的转换选项。

  • ScroogeXHTML,一个 RTF 到 HTML / XHTML 转换的库,可能有用。它支持 RTF 标准的子集,并且易于定制。它有一个纯文本导出格式选项。注意:我是 Delphi 的 ScroogeXHTML / Java 平台的 ScroogeXHTML 的作者。它是一种商业产品。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2015-05-10
    相关资源
    最近更新 更多