2

总结问题:

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

我有一个在嵌入式 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 附带的写字板版本进行编辑。

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

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

  1. 找到一个应用程序(最好比 Word 2000 更轻量级),它将以 RTF 版本 1.6 格式保存文件,我们可以使用它来编辑帮助文件。
  2. 想办法让 NT 机器正确读取更高版本的 RTF。

在第一方面,我试过AbiWord,它有一个“旧应用程序的富文本格式”选项,但我不知道这个选项输出的是什么版本的 RTF。你知道这是什么版本吗?不幸的是,根据所有版本的RTF 规范的这段可爱的段落,文件中的元数据并不明显,它只是说“rtf1” 。有没有办法分析 RTF 文件并确定它编码的 RTF 版本?

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

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

4

3 回答 3

1

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

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

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

您可以尝试从 NT 系统复制写字板版本,看看是否可以作为替代方案。

于 2009-03-18T16:21:41.343 回答
0

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

于 2009-03-19T17:58:22.763 回答
-1

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

于 2009-03-18T16:20:53.827 回答