Vérification orthographique en C # à l’aide de Word Interop

word.dll une application de vérification orthographique en C # en utilisant word.dll (l’API Word Interop).

Je veux vérifier quelles orthographes sont incorrectes et obtenir en conséquence des suggestions pour les mots incorrects.

J’ai reçu un exemple de code sur le réseau et je ne comprends pas les parameters de la commande suivante:

 Microsoft.Office.Interop.Word._Application.GetSpellingSuggestions (ssortingng, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object, ref object) 

Je voudrais juste savoir ce que tous les ref object impliquent? Je veux connaître leur signification.

Mise à jour : Il semble donc que vous ayez besoin de la première suggestion orthographique du mot. J’ai vérifié cet article et j’en déduis que vous auriez besoin de faire quelque chose comme ceci:

 Word.SpellingSuggestions listOfSuggestions = app.GetSpellingSuggestions(searchStr); listOfSuggestions.Items[0].Name;//should contain the first suggestion 

Donc, à partir des documents msdn :

Syntaxe 1

 expression.GetSpellingSuggestions(CustomDictionary, IgnoreUppercase, MainDictionary, SuggestionMode, CustomDictionary2 CustomDictionary10) 

Résultat : Retourne une collection SpellingSuggestions qui représente les mots suggérés comme remplacements orthographiques du premier mot de la plage spécifiée.

Syntaxe 2

 expression.GetSpellingSuggestions(Word, CustomDictionary, IgnoreUppercase, MainDictionary, SuggestionMode, CustomDictionary2 CustomDictionary10) 

Résultat : Retourne une collection SpellingSuggestions qui représente les mots suggérés comme substituts d’orthographe pour un mot donné.

Remarque : Si vous utilisez une version antérieure à .NET4, vous devrez utiliser Missing.Value pour les parameters que vous voulez empty/null . A partir de .NET4 nous avons des parameters facultatifs et lorsque vous ajoutez une référence à la bibliothèque Office, le wrapper interop subit des surcharges basées sur les parameters facultatifs.

J’ai travaillé avec cela l’autre jour et j’ai pensé que j’aimerais partager mes découvertes et append un peu aux réponses déjà données.

Tu demandes:

Je veux vérifier quelles orthographes sont incorrectes et obtenir en conséquence des suggestions pour les mots incorrects.

(…)

Je voudrais juste savoir ce que tous les “objects de référence” impliquent? Je veux connaître leur signification.

La réponse courte à cette question est – regardez dans la documentation .

Pour vous montrer comment la méthode GetSpellingSuggestions peut être utilisée dans un contexte plus complet, j’ai inclus un exemple de programme dans ce qui suit. Veuillez noter que vous pouvez changer la langue de vérification souhaitée à l’aide de la variable de language . Le code va comme suit:

 using System; using Microsoft.Office.Interop.Word; namespace WordStack { public class Program { private static void Main() { // Create a new Word application instance (and keep it invisible) var wordApplication = new Application() { Visible = false }; // A document must be loaded var myDocument = wordApplication.Documents.Open(@"C:\...\myDoc.docx"); // Set the language var language = wordApplication.Languages[WdLanguageID.wdEnglishUS]; // Set the filename of the custom dictionary // -- Based on: // http://support.microsoft.com/kb/292108 // http://www.delphigroups.info/2/c2/261707.html const ssortingng custDict = "custom.dic"; // Get the spelling suggestions var suggestions = wordApplication.GetSpellingSuggestions("overfloww", custDict, MainDictionary: language.Name); // Print each suggestion to the console foreach (SpellingSuggestion spellingSuggestion in suggestions) Console.WriteLine("Suggested replacement: {0}", spellingSuggestion.Name); Console.ReadLine(); wordApplication.Quit(); } } } 

… qui me donnent les trois suggestions suivantes: débordement , débordement et débordement .

L’exemple donné a été mis en œuvre à l’aide de .NET 4.5 et de la version 15 de l’API Word Interop (Office 2013).

Veuillez noter que l’échantillon donné résout également votre commentaire à l’une des réponses déjà données, en disant:

(…) Ça fonctionne. Mais l’application Microsoft Word apparaît pour chaque mot. Est-il possible d’obtenir une suggestion orthographique sans laisser la fenêtre de l’application Microsoft apparaître?

Personnellement, je n’ai pas rencontré ce comportement (ni avec les GetSpellingSuggestions ni avec CheckSpelling disponibles sur l’instance de l’ Application ).

Toutefois, si vous CheckSpelling sur une instance de document , la boîte de dialog Orthographe s’affichera, comme CheckSpelling dans la documentation , si un ou plusieurs mots mal orthographiés sont trouvés (étant donné que lors de la construction de l’instance de l’ Application Word, la propriété Visible true – sinon, il attendra une entrée en arrière-plan provoquant le “blocage” de l’application).

  SpellingSuggestions GetSpellingSuggestions( ssortingng Word, ref Object CustomDictionary, ref Object IgnoreUppercase, ref Object MainDictionary, ref Object SuggestionMode, ref Object CustomDictionary2, ref Object CustomDictionary3, ref Object CustomDictionary4, ref Object CustomDictionary5, ref Object CustomDictionary6, ref Object CustomDictionary7, ref Object CustomDictionary8, ref Object CustomDictionary9, ref Object CustomDictionary10 )