将具有邮件合并逻辑的 WordPerfect 文件转换为 .docx

Converting WordPerfect files with mail-merge logic to .docx

我正在处理大量 .frm.wpd WordPerfect 文件,我试图将它们转换为 .docx,同时保留所有邮件合并逻辑。

在 WordPerfect X6 中将文件另存为 .docx 或在 Word 2016 中打开 .frm/.wpd 文件都会导致邮件合并代码完全丢失。

有什么方法可以转换 WordPerfect 文件,以便它们在 .docx 格式中保留类似的合并功能?

这里有一个有点疯狂的方法:

使用WP_Reader解析文档。

收集所有相关的合并功能(有一堆合并命令,您必须弄清楚哪些需要转换为 Word 合并字段)。

创建一个字典,将每个需要的合并函数翻译成它的 WP 字符串 "code"(用于搜索目的)。

编写一个简单的 WordPerfect 宏,使用传入的变量来搜索每个合并 "code" 并将其替换为唯一的文本标记。

使用 WordPerfect.PerfectScript 界面打开文档。

使用PerfectFit.PerfectScript接口调用WP宏并传入每个你想用其唯一标记替换的合并函数。您无法通过 .NET 调用 WordPerfect 文档来搜索任何非 ASCII 文本的内容,因此您不得不使用宏和 PerfectFit 来执行此操作(感谢 Corel!)。

将 wpd 文档另存为 Word 文档(或者可能更安全,使用 Office Interop 来执行此操作)。

使用 Office 互操作命令查找每个唯一标记并将其替换为新的合并字段(我对这部分的工作原理有点模糊)。

这种方法有一些注意事项:

当前形式的

WP_Reader 不对任何合并函数建模。这将需要一些编码,但方法非常简单。我是唯一一个从事这个项目的人,还没有需要这些功能。所有合并函数要么没有参数,要么有 1 个或多个字符串。这些功能应该很容易建模,我可以帮你入门。

.frm.dat 文件实际上是 WordPerfect 文件,它们被设置为合并文档和合并文档的数据源(也许它们也用于其他目的)。您可以使用 WP_Reader 为这些文件建模,就像 .wpd 文件一样。

只有当您的合并文档非常简单时,此方法才有效。 WordPerfect merge arena 包括它自己的语言,独立于 WP 命令集。有 If 语句、For 循环等,它们不会转化为 Word 文档中的任何有用内容。

在尝试这个耗时的项目之前,先看看 LibreOffice 是否将带有合并代码的 wpd 文件直接转换为 .odt 格式。 lib-wpd 项目是 LibreOffice 中的内置程序,自 2003 年左右以来一直是 运行,他们可能已经包含了此功能。从 .odt 转换为 .docx 应该很容易。