我正在处理大量.frm
和.wpd
WordPerfect文件,我正在尝试将它们转换为.docx
,同时保留所有邮件合并逻辑。
将文件保存为WordPerfect X6中的.docx
或从Word 2016中打开.frm
/ .wpd
文件都会导致邮件合并代码完全丢失。
有没有办法转换WordPerfect文件,以便它们以.docx
格式保留类似的合并功能?
答案 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
应该很容易。