private void btn_WordList_Click(object sender, RibbonControlEventArgs e) { Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument; HashSet <string> wordlist = new HashSet <string>(); foreach (Word.Range rng in TextHelpers.GetText(doc)) { string txt = rng.Text; //strip punctuation txt = TextHelpers.StripPunctuation(txt); //get word list HashSet <string> newwords = TextHelpers.ToWords(txt); wordlist.UnionWith(newwords); } //strip words that are all numbers wordlist = TextHelpers.RemoveNumbers(wordlist); //Create new document Word.Document newdoc = Globals.ThisAddIn.Application.Documents.Add(); Word.Paragraph pgraph; //Intro text pgraph = newdoc.Content.Paragraphs.Add(); pgraph.set_Style(newdoc.Styles["Heading 1"]); pgraph.Range.Text = "Word List\n"; pgraph = newdoc.Content.Paragraphs.Add(); pgraph.set_Style(newdoc.Styles["Normal"]); pgraph.Range.Text = "This is a proofreading tool. It takes every word in the document, strips the punctuation, removes words that consist only of numbers, and then presents them all in alphabetical order. This is a great way to find typos and inconsistencies.\n"; pgraph = newdoc.Content.Paragraphs.Add(); pgraph.Range.Text = "Capitalization is retained as is. That means that words that appear at the beginning of a sentence will appear capitalized.\n"; pgraph = newdoc.Content.Paragraphs.Add(); pgraph.Range.InsertBreak(Word.WdBreakType.wdSectionBreakContinuous); Word.Section sec = newdoc.Sections[2]; sec.PageSetup.TextColumns.SetCount(3); string[] words = wordlist.ToArray(); Array.Sort(words); pgraph = newdoc.Content.Paragraphs.Add(); pgraph.Range.Text = string.Join("\n", words) + "\n"; pgraph = newdoc.Content.Paragraphs.Add(); pgraph.Range.InsertBreak(Word.WdBreakType.wdSectionBreakContinuous); newdoc.GrammarChecked = true; }
static public HashSet <string> GetWordList() { Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument; HashSet <string> wordlist = new HashSet <string>(); foreach (Word.Range rng in TextHelpers.GetText(doc)) { string txt = rng.Text; //strip punctuation txt = TextHelpers.StripPunctuation(txt); //get word list HashSet <string> newwords = TextHelpers.ToWords(txt); wordlist.UnionWith(newwords); } //strip words that are all numbers wordlist = TextHelpers.RemoveNumbers(wordlist); return(wordlist); }