处理过时版本的RTF

时间:2009-03-18 15:41:58

标签: mfc rtf

摘要问题:

  1. 您是否知道可以使用RTF版本1.6格式保存文件的轻量级应用程序?
  2. 您知道什么版本的RTF Abiword的“旧版应用程序的富文本格式”对应吗?
  3. 您是否知道检查RTF文件并确定其编码的RTF版本的方法?
  4. 您知道哪个DLL描述了Windows NT 4.0计算机上的RTF格式以及它是否可以升级吗?

  5. 我有一个在嵌入式Windows NT 4.0计算机上运行的传统MS Visual C ++ 6.0 MFC应用程序。该应用程序使用MFC的CRichEditView类提供应用内帮助,以便从名为help.rtf的RTF文件中提取文本。帮助文件保存为RTF版本1.6。它始终使用MS Word 2000或Windows NT 4.0附带的WordPad版本进行编辑。

    问题是我们的开发人员工作站倾向于使用Windows XP(及其版本的写字板)和Office 2003或更高版本,这两者都使用比1.6更新的RTF版本,并且找到一台机器变得越来越麻烦可以使用该过时格式编辑和重新保存文件。如果使用较新版本的Word或写字板来保存文件,则会将其保存为较新版本的RTF。然后,当应用程序在NT计算机上运行时,帮助文本无法正确显示。 (虽然在XP机器上运行相同的应用程序时,帮助文本会正确显示。)

    所以,我想做两件事之一:

    1. 查找将以RTF版本1.6格式保存文件的应用程序(最好比Word 2000更轻),我们可以将其用于将来编辑帮助文件。
    2. 找出一种方法让NT机器正确读取更高版本的RTF。
    3. 在第一个方面,我尝试了AbiWord,它有一个"Rich Text Format for old apps"选项,但我不知道这个选项输出的RTF版本。你知道这是什么版本吗?不幸的是,根据RTF spec的所有版本的这段可爱段落,文件中的元数据(仅仅是“rtf1”)并不是很明显。有没有办法分析RTF文件并确定它编码的RTF版本?

        

      此RTF规范中描述的RTF标准虽然标题为版本1.6,但在语法上仍然与RTF规范版本1相对应。因此,\ rtf控制字的数字参数N仍应作为1发出。

      在第二个方面,我想知道是否有一些我可以更新的DLL,以便Windows NT能够识别更新版本的格式。你知道哪个DLL描述了RTF格式以及它是否可以升级吗?

3 个答案:

答案 0 :(得分:1)

我相信丰富的编辑格式由丰富的编辑控件本身决定。我不会尝试升级DLL,因为有很多可能会破坏。

有关使用更高版本的富编辑控件的提示,请参阅此MSDN说明。版本2.0应该在NT 4.0中可用。

http://msdn.microsoft.com/en-us/library/tt1cfb9f(VS.80).aspx

您可以尝试从NT系统复制WordPad版本,看看它是否可以替代。

答案 1 :(得分:0)

在Mark Ransom的answer开始提供一系列提示之后,我最终将我的XP机器上的C:\ Windows \ System32 \中的riched20.dll和riched32.dll复制到C:\ WinNT \ System32 \在NT机器上。在我这样做之后,在XP机器上使用写字板或Word编辑的RTF文件在写字板和我在NT机器上的应用程序上正确呈现。

答案 2 :(得分:-1)

首先想到的是写字板。它出现在每台机器上,并且在RTF中非常轻巧。在许多简单的RTF任务中,我发现它比Word好得多。