CSharp Word: Dodawanie równań matematycznych.

Przykładowy program dodający równanie w Word 2016 napisany w języku C#.

Ten program jest częścią wtyczki VSTO (Visual Studio Tools for Office) dla programu Microsoft Word 2016. Został napisany w języku C# i służy do dodawania równań matematycznych do dokumentu.

Po rozpoczęciu funkcji, program tworzy nowy paragraf i dodaje do niego równanie matematyczne o treści $\sqrt\frac{a^2}{b^3}$.

            oDoc.Paragraphs.Add();
            Word.Range equationRange = oDoc.Paragraphs[1].Range;

            equationRange.Text = @"\sqrt((a^2)/(b^3))";

Następnie program sprawdza, czy w tekście znajdują się symbole, które powinny być zastąpione symbolami z automatycznego korektora Office. Jeśli tak, to program zamienia je na odpowiednie symbole.

foreach (Word.OMathAutoCorrectEntry AC in oWord.OMathAutoCorrect.Entries)
            {
                if (equationRange.Text.Contains(AC.Name))
                {
                    equationRange.Text = equationRange.Text.Replace(AC.Name, AC.Value);
                }
            }

Na koniec, program dodaje równanie do zakresu paragrafu i buduje je za pomocą funkcji „BuildUp” w obiekcie „OMaths”.

Ten program jest przykładem prostej aplikacji, która pozwala na łatwe dodawanie równań matematycznych do dokumentów w Wordzie. Wtyczka VSTO umożliwia programistom tworzenie rozszerzeń dla aplikacji Microsoft Office i jest często używana w branży.

private void buttonCalculate_Click(object sender, EventArgs e)
        {
            Word.Application oWord = Globals.ThisAddIn.Application;
            Word.Document oDoc = Globals.ThisAddIn.Application.ActiveDocument;

            oDoc.Paragraphs.Add();
            Word.Range equationRange = oDoc.Paragraphs[1].Range;

            equationRange.Text = @"\sqrt((a^2)/(b^3))";

            //Replace symbol from Office autocorect
            foreach (Word.OMathAutoCorrectEntry AC in oWord.OMathAutoCorrect.Entries)
            {
                if (equationRange.Text.Contains(AC.Name))
                {
                    equationRange.Text = equationRange.Text.Replace(AC.Name, AC.Value);
                }
            }
            equationRange.OMaths.Add(equationRange);
            oDoc.OMaths.BuildUp();
        }

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *