关于MathJax的具体问题,然后(自动?)保存到word或pdf

时间:2015-05-20 13:51:36

标签: javascript pdf asp-classic ms-word mathjax

看,这可能是一个愚蠢的问题,并且如果它是道歉......但老实说,我在这个主题上找到的所有内容似乎都来自2007年,或者为IE6等提出了特别的警告。

设置: 使用数学标记和MathJax的网页在网页中渲染数学(工作正常)。

用户需要能够将其导出到某种文档 - 单词,PDF等 - 以便分发给不允许/希望“在系统中”页面所在的校对者。提供服务。

问题: 到目前为止,我所尝试的所有内容都是将最终产品提供给某种文档 - 除了用户启动的浏览器打印之外 - 显示了未呈现的标记,而不是最终产品。

这显然是由于MathJax库在浏览器中完全可用时呈现页面的方式,因为它只是一个JS脚本包含。没有惊喜。

我可以通过对呈现的页面执行ajax调用来获取 close ,然后将整个hb blob发送到第三页以写出到光盘并使用mime和内容重新提供它msword的处理标题,将其保存到光盘等,但渲染不正确 - 可能是因为在POST调用中将其打包。无论如何,要采用一种不太正确的解决方案,还有很多步骤。

我猜测答案将是“你不能那样做”,至少不是没有使用TeX Live或MikTex等大量安装,而是在后端用shell进行电话......但我无论如何都无法在这些主机上安装。

我是否坚持使用打印到PDF解决方案的用户?有什么我想念的吗?

谢谢,很高兴在需要的地方充实,但我不能成为第一个尝试这样做的人。

2 个答案:

答案 0 :(得分:1)

对于PDF ,有几个选项,主要取决于您想要投入多少工作。

快速而肮脏的解决方案可能是wkhtmltopdf,但您必须specify a wait time才能完成JavaScript渲染 - 这并不理想。

PhantomJS需要稍多的工作,但允许您在页面上收听,例如,this discussion指向一个简单示例的链接。 (实际上有很多基于PhantomJS的工具。)

另一种方法是首先使用MathJax-node进行预处理,然后将结果传递给wkhtmltopdf(然后您不必等待MathJax)。

对于doc / docx 我不认为现在有任何办法。自然的方式是使用MathJax节点生成MathML,因为Word可以导入MathML。但是从HTML导入时,Word似乎不支持MathML。同样适用于使用MathJax节点生成SVG(但是使用SVG时,您将失去编辑方程的能力,因此无论如何都可能是禁止的。)

Pandoc可能最终会有所帮助。它显然可以将数学转换为MS Office格式,请参阅demo #30)。但是从快速测试来看,这似乎不适用于HTML输入。

答案 1 :(得分:0)

如果您正在考虑商业解决方案,请查看来自callas软件的pdfChip(警告:我非常依赖此解决方案)。

它将HTML格式化为PDF,并且实际上将使用MathJax将MathML转换为正确的PDF文件(如果您愿意,甚至可以是PDF / X或PDF / A文件)。我很乐意离线提供更多细节。