Office.Interop.Word - Insertar Corrector Ortografico


A fin de mejorar nuestras aplicaciones, en las que se utiliza texto, y sobre todo si esta aplicación se va utilizar por terceras personas, es interesante darles la posibilidad de utilizar un corrector ortográfico.
Vamos a implementar el corrector que viene con Microsoft Word.

Podemos crear un proyecto de Windows Forms o insertarlo sobre un procesador de texto que hayamos creado previamente. Es indistinto que nuestra aplicación utilice un Textbox o un RichTextbox. Crearemos sobre la aplicación un button o una opción en el menú.

Yo he optado por esta segunda opción:



A continuación agregaremos a nuestro proyecto la referencia:

microsoft.Office.interop.Word, yo he utilizado la versión 15.0.0.0, tampoco sabría decir si una versión es mejor que otra.







Al proyecto le agregamos: using System.Reflection

y el siguiente método:

        private static string RevisarOrtografia(string texto)
        {
            var app = new Microsoft.Office.Interop.Word.Application();
            string corregido = string.Empty;
            if (!String.IsNullOrEmpty(texto))
            {
                app.Visible = false;
                object template = Missing.Value;
                object newTemplate = Missing.Value;
                object documentType = Missing.Value;
                object visible = false;
                Microsoft.Office.Interop.Word._Document doc1 = app.Documents.Add(ref template, ref newTemplate, ref documentType, ref visible);
                doc1.Words.First.InsertBefore(texto);
                object optional = Missing.Value;
                doc1.CheckSpelling(
                    ref optional, ref optional, ref optional, ref optional, ref optional, ref optional,
                    ref optional, ref optional, ref optional, ref optional, ref optional, ref optional);
                object first = 0;
                object last = doc1.Characters.Count - 1;
                corregido = doc1.Range(ref first, ref last).Text;
            }
            object saveChanges = false;
            object originalFormat = Missing.Value;
            object routeDocument = Missing.Value;
            app.Application.Quit(ref saveChanges, ref originalFormat, ref routeDocument);
            return corregido;

        }


// Este código ha sido desarrollado por Nicoloco Partner de MVP


Y lo podemos ejecutar con el siguiente evento:


private void correctorToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.Text = RevisarOrtografia(textBox1.Text);
        }








No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.