Автозамена текста C # Word - PullRequest
       24

Автозамена текста C # Word

1 голос
/ 16 февраля 2012

Я пытаюсь использовать слово для автоматического исправления некоторого текста, который не на английском языке, проблема в том, что когда я использую функцию SpellCheck, всплывающее диалоговое окно «Spell and Grammar» и ждет ввода пользователя, и я хочутекст будет исправлен автоматически.Итак, мой вопрос: как мне решить эту проблему?

using System.Collections.Generic;
using Microsoft.Office.Interop.Word;
using Word = Microsoft.Office.Interop.Word;
using TobyCL.ro.toby.StringOperations;
namespace namespace.ro.toby
{
    class WordProofing:IProof
    {
        private readonly Word.Application _wordApp;
        private readonly Word.Document _wordDoc;
        private static object _oEndOfDoc = "\\endofdoc";
        public WordProofing()
        {

            _wordApp = new Word.Application {Visible = false};
            _wordDoc = _wordApp.Documents.Add();
        }
        public void Close()
        {
            object obj = Word.WdSaveOptions.wdDoNotSaveChanges;
            _wordDoc.Close(ref obj);
            _wordApp.Quit(ref obj);
        }
        #region Implementation of IProof

        public string Proof(string proofText)
        {
            Range wRng = _wordDoc.Bookmarks.get_Item(ref _oEndOfDoc).Range;
            wRng.Text = proofText;
            _wordDoc.CheckSpelling(IgnoreUppercase: true,AlwaysSuggest:false);
            string str = wRng.Text;
            wRng.Text = "";
            return str;
        }
        #endregion
    }
}

Я написал этот код несколько дней назад, и он работал.Проблема в том, что я удаляю средства проверки правописания для запуска некоторых тестов, и теперь я продолжаю получать это диалоговое окно, поэтому я думаю, что, возможно, мне придется установить некоторые настройки Word или я что-то изменил в своем коде, не зная.Любая помощь будет принята с благодарностью.

Я использую Microsoft Office Word 2010

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

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

using Microsoft.Office.Interop.Word;
    class WordProofing
    {
        private Application _wordApp;
        private readonly Document _wordDoc;
        private static object _oEndOfDoc = "\\endofdoc";
        public WordProofing()
        {

            _wordApp = new Application { Visible = false };
            _wordDoc = _wordApp.Documents.Add();
        }
        public void Close()
        {
            _wordDoc.Close(WdSaveOptions.wdDoNotSaveChanges);
            _wordApp.Quit();
        }

        public string Proof(string proofText)
        {
            Range wRng = _wordDoc.Bookmarks.get_Item(ref _oEndOfDoc).Range;
            wRng.Text = proofText;
            ProofreadingErrors spellingErros = wRng.SpellingErrors;
            foreach (Range spellingError in spellingErros)
            {
                SpellingSuggestions spellingSuggestions =
                    _wordApp.GetSpellingSuggestions(spellingError.Text,IgnoreUppercase:true);

                foreach (SpellingSuggestion spellingSuggestion in spellingSuggestions)
                {
                    spellingError.Text = spellingSuggestion.Name;
                    break;
                }
            }

            string str = wRng.Text;
            wRng.Text = "";
            return str;
        }
    }
0 голосов
/ 16 февраля 2012

Какую версию MS Word вы используете?

По умолчанию проверка орфографии покажет вам диалоговое окно. Чтобы отключить диалоговое окно, я знаю два способа.

1) Используя код, автоматически выберите первый вариант из автокоррекции.

Это что-то вроде этого

AutoCorrect.Entries.Add Name:="AdSAD", Value:="Assad"

2) Или используйте опцию меню. Пожалуйста, обратитесь по этой ссылке.

Тема : Автоматически исправлять орфографию со словами из основного словаря

Ссылка : http://office.microsoft.com/en-us/word-help/automatically-correct-spelling-with-words-from-the-main-dictionary-HA010174790.aspx

Дайте мне знать, если это не то, что вы хотите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...