如何在javascript window.print()函数中打印MathML

时间:2012-07-29 15:15:55

标签: c# javascript wpf mathml

我意识到这个问题可能是一个很长的问题,但我不得不尝试。 我正在WPF c#app中做一个数学项目,可以输入和解决数学方程式。我在Web浏览器控件中渲染(显示)方程式(因为它是唯一可以处理MathML的东西),并且我安装了MathPlayer 3.0以使Internet Explorer能够理解mathML。

到目前为止,一切都在游动。我想根据用户过去所做的方程生成报告,并希望此报告可打印。由于我使用的是Web浏览器控件,我想到了使用Javascript window.print()函数。唯一的问题是打印NOTHING(可能是因为页面上的mathML)。

那里有任何人可能对我提出一些建议,关于如何在broswer中打印由MathPlayer呈现的mathML(我在http://www.dessci.com/en/products/mathplayer/tech/accessibility.htm上看到确实可以使用MathPlayer mathML打印页面,因为所述页面是可打印的(右键单击,打印预览))。

非常感谢任何其他评论和帮助!

2 个答案:

答案 0 :(得分:0)

您也可以使用MathJax来渲染MathML - 打印应该可以正常工作。 [免责声明:我是MathJax团队的成员}

答案 1 :(得分:0)

好的,所以这不是我想要的,但我找到了一个非常“脏”的解决方法来做我需要的。

由于Firefox是唯一一款在没有插件的情况下本机支持MathML的浏览器,因此我将Firefox包含在项目安装中。因此,当我尝试从我的WPF应用程序打印文档时,我将所有HTML写入文件并包含javascript以在正文加载时调用document.print()函数。然后,我创建了一个启动我刚刚使用Firefox创建的HTML文件的流程,当浏览器打开时,javascript将调用打印对话框。

正如我所说,这远非完美,但这是我打印mathML的一种方式,这是在browserControl中呈现的。

注意:Peter Krautzberger的建议可行,但我希望我的应用程序独立于互联网连接运行。