1

我们正在尝试使用带有 .net (C#) 框架的 Corel sdk(WPOX7 SDK) 创建一个 wordperfect 文件。

我正在谷歌搜索文件,但无法获得任何文件。

有没有人知道的,请给我一份样品。

4

1 回答 1

5

我认为您不想走使用 SDK 创建 WordPerfect 文档的路线。我可能错了,但是当我查看那个 SDK 时,更多的是关于修改 WordPerfect 程序的功能。非常复杂的学习曲线。

然而,使用 .NET 和 WP 附带的 PerfectScript API 创建 WP 文档相当简单。

我会先花几个小时看这个网站,尤其是使用 VB.NET 控制 WordPerfect 的部分。

http://www.wpuniverse.com/vb/

该站点上的大多数示例都使用 Visual Basic,这有点像骑马去办公室,但是将这些想法转换为 C#(或 IronPython)非常简单。

您还需要熟悉 PerfectScript 命令集(有数百种可能的命令)。这与宏编写者在 WordPerfect 中用于自动化 WordPerfect 的语言相同,只是在使用 .NET 中的语言时使用的语法略有不同。

创建 WP 文档需要采取的步骤是:

1) 找到 wpwin17.tlb 或 wpwin17.dll——假设您使用的是 WP x7。这应该在安装 WP 的 Corel/.../programs 文件夹中。使用 tlb 会更容易,如果有的话,但如果没有,您总是可以使用命令行程序 regasm.exe 创建一个 tlb。将对您的项目的引用添加到 tlb。

2)添加“使用WordPerfect;” 和“使用 System.Runtime.InteropServices”;引用将使用 PerfectScript 命令的任何文件。

3) 启动 PerfectScript 并创建您的文档!

这是一个非常简单的示例,说明您可以做什么。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


using WordPerfect;
using System.Runtime.InteropServices;

namespace WordPerfectBasic
{
class Program
{
    static void Main(string[] args)
    {

        PerfectScript wp = new PerfectScript();
        wp.WPActivate();
        wp.AppMaximize();
        wp.KeyType("Hello World!"); // note that the PS macro command is "Type", but that is a reserved keyword
                                    // in C#, so Visual Studio modified the name to "KeyType"
        wp.KeyType("\n\t");
        wp.KeyType("Blah");
        wp.Justification(_Justification_Justification_enum.
            Center_Justification_Justification);    // Instead of using the PS argument, which is 
                                                    // usually a string or integer, VS provides enums.
        wp.AttributeAppearanceOn(14); // Underline.  Somebody forgot to provide enums for this command,
                                      //so you have to figure out on your own 
                                      // what integer equivalent WP uses.
        wp.KeyType("Blum");

        Marshal.ReleaseComObject(wp);   //need to release PerfectScript in order to re-gain 
                                        //access to the WordPerfect document
        wp = null;


    }
}
}

您还可以选择创建 WP 文档,而无需打开 WordPerfect,方法是使用 Corel 所谓的“WordPerfect 文件规范”以编程方式创建正确的 WP 格式的文件。这条路线的问题在于,您需要创建规范模型才能创建 WordPerfect 可以正确打开的二进制文件。如果您只关心创建非常简单的 WP 文档,这可以轻松完成,但创建整个文件规范的模型将是一个相当大的项目。

libwpd 的人们使用 C++ 进行了类似的操作,以便将 .wpd 文件转换为 .odf 文件,但据我所知,他们只为 WordPerfect 创建了一个阅读器,而不是一个编写器。

这实际上取决于您需要对 WP 文档进行多少“处理”。将 PerfectScript 命令导入 WordPerfect 文档需要相当长的时间,即使是简单的文档也是如此。如果您需要能够使用更标准的格式化工具创建 5-20 页的文档,那么我会使用 PerfectScript API。如果您需要按打创建 200 页文档,那么您的时间可能会花在对文件规范进行建模(或使用 libwpd 作为创建编写器的基础)上。

于 2015-02-02T00:41:28.393 回答