VB.Net Автоматизация MS Word для проверки правописания - PullRequest
1 голос
/ 02 октября 2008

Приложение, находящееся в настоящее время в разработке, имеет требования для использования MS Word для проверки орфографии в определенных текстовых областях в приложении.

В настоящее время у меня есть Office 2007 (который является объектом Office 12 com).

У меня вопрос: если я добавлю в Office 12 объекты, что будет происходить на коробках с Office 2003? Это касается как других блоков разработки, так и конечных пользователей.

Правильно ли я считаю, что конечным результатом будет то, что возможности заклинаний не будут доступны для этих пользователей? И если бы я использовал объект Office 11, это означало бы, что пользователи не смогут выполнять проверки орфографии, если у них установлен Office 07?

Ответы [ 5 ]

1 голос
/ 02 октября 2008

Мы отказались от попыток использовать зависимость от Word, так как в обеих версиях установлены разные версии или вообще не установлена ​​Office! Вместо этого выберите NetSpell .

0 голосов
/ 25 марта 2009

Вы можете фактически упаковать взаимодействия office11 и office12, необходимые для работы в ОБА версии. Требуется небольшая работа, но мне удалось это сделать. Я делаю проверку в реестре, чтобы увидеть, какое взаимодействие вызывать, а затем выполняет проверку орфографии с правильной версией. Он даже заходит так далеко, что проверяет, установлен ли Word, и выдает предупреждение об ошибке, что вы не можете проверить орфографию без Word. Мы привязаны к использованию Word из-за медицинского словаря, который привязан к Office, который мы должны использовать.

Выполните поиск по interop или Com оболочкам, и я думаю, вы найдете, что вы можете использовать оба довольно легко.

0 голосов
/ 10 октября 2008

Моя внутренняя реакция на этот вопрос - просто предложить вам пойти другим путем. Попробуйте использовать сторонний контроль орфографии. Они относительно недорогие (и вы можете найти некоторые бесплатные элементы управления). По крайней мере, таким образом, вы можете контролировать версию элемента управления, включенную в ваше приложение, и иметь возможность полагаться на его функциональность. Честно говоря, я удивлен, что эта библиотека уже не встроена в Windows. Конечно, это сложно со всеми языками, которые поддерживает Windows, но в наши дни это похоже на копирование / вставку с точки зрения ожиданий пользователя.

0 голосов
/ 06 октября 2008

Более новые версии Office будут поддерживать большинство, если не всю совместимость со старыми версиями COM-объектов. Это означает, что если вы хотите программировать на Office 2003 и 2007, вам нужно будет использовать COM-объекты Office 11 в качестве зависимости, поскольку они были самыми новыми из доступных на момент выпуска 2003 года. Пока вы проверяете, что необходимые вам методы существуют в обеих версиях COM-объектов, у вас не должно быть проблем, если вы используете более старые COM-объекты.

К сожалению, хотя я использовал это решение для своей работы, я не тестировал его с проверкой орфографии. В конце убедитесь, что вы тестируете свой код со всеми версиями Office, с которыми вы хотите интегрироваться.

0 голосов
/ 02 октября 2008

Я предполагаю здесь, но если это так, как вы не можете использовать PIA 2007 (Primary Interop Assembly) с установкой 2003 года, вы можете попытаться получить доступ к PIA через отражение, как я предполагаю, что вызовы, которые вы хотите, не будут переключайтесь между ними, и тогда это не будет иметь значения - вы будете использовать то, что установлено. Если вы также устанавливаете PIA, вы можете либо заставить пользователя сказать вам, что у него есть, или быть немного более умным и просто попробовать 2007, а в случае неудачи - 2003.

Как я уже сказал, я предполагаю, что здесь стоит попробовать.

РЕДАКТИРОВАТЬ: Я нашел эту ссылку о Office PIA. Это относится к Excel, но на самом деле охватывает Office в целом. Я не завидую твоей задаче. Похоже, вам нужно обнаружить PIA (которая может быть или не быть установлена) и действовать соответственно. Похоже, работа для размышления для меня.

...