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(); }
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; }