使用邮件合并逻辑将WordPerfect文件转换为.docx

时间:2018-01-24 20:09:12

标签: ms-word mailmerge wordperfect docx-mailmerge

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

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

有没有办法转换WordPerfect文件,以便它们以.docx格式保留类似的合并功能?

1 个答案:

答案 0 :(得分:1)

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

使用WP_Reader解析文档。

收集所有相关的合并函数(有一堆合并命令,你必须找出你需要翻译成Word合并字段的那些)。

创建一个字典,将每个所需的合并函数转换为其WP字符串" code" (用于搜索目的)。

编写一个简单的WordPerfect宏,它使用传入的变量来搜索和替换每个合并"代码"带有独特的文字标记。

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

使用PerfectFit.PerfectScript接口调用WP宏并传入要用其唯一标记替换的每个合并函数。您无法对WordPerfect文档进行.NET调用以搜索非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年左右开始运行,它们可能已经合并了此功能。从.odt转换为.docx应该很容易。