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

How to print MathML in javascript window.print() function

本文关键字:函数 打印 MathML print javascript window      更新时间:2024-05-04

我意识到这个问题可能很难解决,但无论如何我都必须尝试。我正在WPFc#应用程序中做一个数学项目,在那里可以输入和求解数学方程。我在web浏览器控件中渲染(显示)方程(因为它是唯一可以处理MathML的东西),我安装了MathPlayer3.0,使InternetExplorer能够理解MathML。

直到现在,一切都很顺利。我想根据用户过去所做的公式生成一个报告,并希望此报告可以打印。由于我使用的是web浏览器控件,所以我想到了使用Javascript window.print()函数。唯一的问题是什么都不打印(可能是因为页面上的mathML)。

那么,有没有人可能对我有一些建议,关于如何在浏览器中打印MathPlayer渲染的mathML(我在http://www.dessci.com/en/products/mathplayer/tech/accessibility.htm使用MathPlayer-mathML打印页面确实是可能的,因为所述页面是可打印的(右键单击,打印预览))。

我们非常感谢您的任何意见和帮助!

您也可以使用MathJax来渲染MathML——打印应该可以正常工作。【免责声明:我是MathJax团队的一员】

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

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

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

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