0

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

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

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

4

1 回答 1

1

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

使用WP_Reader解析文档。

收集所有相关的合并函数(有一堆合并命令,你必须弄清楚你需要将哪些命令翻译成 Word 合并字段)。

制作一个字典,将每个需要的合并函数翻译成它的 WP 字符串“代码”(用于搜索目的)。

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

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

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

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

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

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

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

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

这种方法只有在您有非常简单的合并文档时才有效。WordPerfect 合并领域包括自己的语言,独立于 WP 命令集。有些If语句、For循环等在 Word 文档中不会转化为任何有用的东西。

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

于 2018-02-11T19:23:36.010 回答