在Delphi中显示富文本(RTF文件)并提取纯文本(Windows平台)

时间:2014-10-02 11:47:24

标签: delphi rtf richtext

我使用Delphi XE5(仅限Windows平台)。我需要显示RTF文档并能够提取纯文本(用于搜索操作)。我创建了小型测试应用程序,它只有很少的组件:

RichEdit1: TRichEdit;
cxRichEdit1: TcxRichEdit;
WPRichText1: TWPRichText;
Button2: TButton;
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;

和这样的代码(将相同的RTF文件加载到TRichEdit / TcxRichEdit / TWPRichText并将纯文本提取到相应的备忘录):

  RichEdit1.Lines.LoadFromFile('c:\d\1.rtf');
  cxRichEdit1.Lines.LoadFromFile('c:\d\1.rtf');
  WPRichText1.LoadFromFile('c:\d\1.rtf', True, 'RTF');
  memo1.Text := RichEdit1.Text;
  memo2.Text := cxRichEdit1.Text;
  memo3.Text := WPRichText1.SaveToString('UNICODE');

我有这样的结果。

TRichEdit:
???????? <http://news.tut.by/politics/> ...

无法提取unicode字符(系统区域设置为挪威语),包含URL。

TcxRichEdit:
HYPERLINK "http://news.tut.by/politics/"ПОЛИТИКА ...

Unicode字符可以,但是将URL显示为纯文本的一部分。

TWPRichText:
ПОЛИТИКА

正确完成工作的唯一组件。但我想避免使用TWPRichText,因为它很重且很慢。有谁知道,是否有可能用标准的TRichEdit解决问题? 可以下载RTF样本here

0 个答案:

没有答案