Создать файл Wordperfect с помощью Corel SDK

Мы пытаемся создать файлы wordperfect, используя Corel SDK (WPOX7 SDK) с фреймом.net (C#).

Я ищу документ по этому вопросу и не могу получить какой-либо документ по этому вопросу.

Может кто-нибудь знать, пожалуйста, предоставьте мне образец.

1 ответ

Решение

Я не думаю, что вы хотите пойти по пути использования SDK для создания документа WordPerfect. Возможно, я ошибаюсь, но когда я просмотрел этот SDK, речь шла скорее о том, как изменить работу программы WordPerfect. Очень сложная кривая обучения.

Однако довольно просто создать документ WP с использованием.NET и API PerfectScript, который поставляется вместе с 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. Это должно быть в папке программ Corel/.../, где установлен WP. Использовать tlb проще, если он есть, но если нет, вы всегда можете создать tlb с помощью программы командной строки regasm.exe. Добавьте ссылку на ваш проект в 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 путем программного создания файла в правильном формате WP с использованием того, что Corel называет "Спецификация файла WordPerfect". Проблема с этим маршрутом состоит в том, что вам нужно будет создать модель спецификации, чтобы создать двоичный файл, который WordPerfect может правильно открыть. Это может быть сделано без особых проблем, если вас интересует только создание очень простых документов WP, но создание модели всей спецификации файла было бы настоящим проектом.

Люди из libwpd проделали нечто подобное, используя C++, чтобы перевести файлы.wpd в файлы.odf, но, насколько я знаю, они создали только WordPerfect для чтения, а не для записи.

Это действительно зависит от того, сколько "хруста" документов WP вам потребуется. Вложение команд PerfectScript в документ WordPerfect занимает заметное количество времени, даже для простого документа. Если вам нужно иметь возможность создавать документы по 5-20 страниц с использованием более стандартных инструментов форматирования, то я бы использовал PerfectScript API. Если вам нужно создать 200 страниц документов из дюжины, то ваше время может быть потрачено на моделирование спецификации файла (или использование libwpd в качестве основы для создания писателя).

Другие вопросы по тегам