Пример #1
0
        private static string HandleStr(string str)
        {
            string latexBegin = "\\documentclass{article} \\begin{document}";
            string latexEnd = "\\end{document}";
            string oxmlText = "<w:p><w:r><w:t>{0}</w:t></w:r></w:p>";
            StringBuilder result = new StringBuilder("<w:p>");
            if (str.IndexOf(@"\(") > 0 || str.IndexOf(@"\)") > 0)
            {
                var mathArray = str.Split(new string[] { @"\(" }, str.Length, StringSplitOptions.None);
                for (int i = 0; i < mathArray.Length; i++)
                {
                    var mstr = mathArray[i];
                    if (mstr.IndexOf(@"\)") > 0)
                    {
                        var mathArray1 = mstr.Split(new string[] { @"\)" }, mstr.Length, StringSplitOptions.None);
                        if (mathArray1.Length > 0)
                        {
                            var latexxml = latexBegin + "$" + mathArray1[0] + "$" + latexEnd;
                            var lmm = new LatexToMathMLConverter(latexxml);
                            var mathxml = lmm.ConvertToText();
                            var omml = OpenXmlWord.ConvertMathMl2OMML(mathxml);
                            result.Append(omml);
                        }
                        if (mathArray1.Length > 1)
                        {
                            result.AppendFormat("<w:r><w:t>{0}</w:t></w:r>", mathArray1[1]);
                        }

                    }
                    else
                    {
                        result.AppendFormat("<w:r><w:t>{0}</w:t></w:r>", mstr);
                    }
                }

            }
            else
            {
                result.AppendFormat("<w:r><w:t>{0}</w:t></w:r>", str);

            }
            result.Append("</w:p>");

            return result.ToString();
        }
Пример #2
0
        private bool HandleStr(string str, Paragraph p)
        {
            try
            {
                string latexBegin = "\\documentclass{article} \\begin{document}";
                string latexEnd = "\\end{document}";
                var run1 = new Run();
                if (!string.IsNullOrEmpty(str) && (str.IndexOf(@"\(") > 0 || str.IndexOf(@"\)") > 0))
                {
                    var mathArray = str.Split(new string[] { @"\(" }, str.Length, StringSplitOptions.None);
                    for (int i = 0; i < mathArray.Length; i++)
                    {
                        var mstr = mathArray[i];
                        if (mstr.IndexOf(@"\)") > 0)
                        {
                            var mathArray1 = mstr.Split(new string[] { @"\)" }, mstr.Length, StringSplitOptions.None);
                            if (mathArray1.Length > 0)
                            {
                                var latexxml = latexBegin + "$" + mathArray1[0] + "$" + latexEnd;
                                var lmm = new LatexToMathMLConverter(latexxml);
                                var mathxml = lmm.ConvertToText();
                                var omml = ConvertMathMl2OMML(mathxml);
                                run1 = new Run();
                                WritOfficeMathMLToWord(omml, run1);
                                p.Append(run1);

                            }
                            if (mathArray1.Length > 1)
                            {
                                run1 = new Run();
                                run1.Append(new Text(mathArray1[1]));
                                p.Append(run1);
                            }

                        }
                        else
                        {
                            run1 = new Run();
                            run1.Append(new Text(mstr));
                            p.Append(run1);
                        }
                    }

                }
                else
                {
                    run1 = new Run();
                    run1.Append(new Text(str));
                    p.Append(run1);

                }

            }

            catch (Exception ex)
            {
                throw ex;
            }
            return true;
        }