1

我正在使用 flash 或 Flex 将 Word doc 标准方程 (OMML) 转换为 MathML,请通过提供简单的算法或代码片段来帮助我。

在此先感谢,玛尼

4

2 回答 2

2

有一个 XSLT 1 样式表可以执行 Microsoft 提供的转换,作为 Word 分发的一部分,它负责将 MathML 放置在 Word 中的剪贴板上。通常安装为类似

c:/Program Files (x86)/Microsoft Office/Office14/OMML2MML.XSL

对此的早期版本有一些讨论

http://dpcarlisle.blogspot.co.uk/2007/04/xhtml-and-mathml-from-office-20007.html

于 2013-01-02T09:52:29.817 回答
0

这是我几天前正在学习的 C# 类的片段……我知道为时已晚……但为了减少未来的痛苦。

我认为在动作脚本中并没有太大的不同

该文件OMML2MML.xsl位于%ProgramFiles%\Microsoft Office\Office12\ @David 提到的 xsl 文件用于将 MathML 放在 Word 中的剪贴板上并将 OMML 转换为 MML。

public static string OMML(string omml)
{
    XslCompiledTransform xslTransform = new XslCompiledTransform();
    xslTransform.Load("OMML2MML.xsl");

    using (XmlReader reader = XmlReader.Create(new StringReader(omml)))
    {
        using (MemoryStream ms = new MemoryStream())
        {
            XmlWriterSettings settings = xslTransform.OutputSettings.Clone();

            // Configure xml writer to omit xml declaration.
            settings.ConformanceLevel = ConformanceLevel.Fragment;
            settings.OmitXmlDeclaration = true;

            XmlWriter xw = XmlWriter.Create(ms, settings);

            // Transform our OfficeMathML to MathML
            xslTransform.Transform(reader, xw);
            ms.Seek(0, SeekOrigin.Begin);

            StreamReader sr = new StreamReader(ms, Encoding.UTF8);
            string MathML = sr.ReadToEnd();
            return MathML;
        }
    }
}
于 2015-09-30T16:05:04.143 回答