我正在处理大量的.frm
WordPerfect.wpd
文件,我正在尝试将它们转换为.docx
同时保留所有邮件合并逻辑。
将文件保存为.docx
WordPerfect X6 中或从 Word 2016 中打开.frm
/.wpd
文件都会导致邮件合并代码完全丢失。
有什么方法可以转换 WordPerfect 文件,以便它们在.docx
格式中保留类似的合并功能?
我正在处理大量的.frm
WordPerfect.wpd
文件,我正在尝试将它们转换为.docx
同时保留所有邮件合并逻辑。
将文件保存为.docx
WordPerfect X6 中或从 Word 2016 中打开.frm
/.wpd
文件都会导致邮件合并代码完全丢失。
有什么方法可以转换 WordPerfect 文件,以便它们在.docx
格式中保留类似的合并功能?
这是一个有点疯狂的方法:
使用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 年左右开始运行,他们可能已经包含了这个功能。从.odt
to转换.docx
应该很容易做到。