关于MathJax的特定问题,然后(自动?)保存为word或pdf
Specific issue regarding MathJax, then (auto?) save to word or pdf
看,这可能是一个欺骗的问题,如果它是…但老实说,我找到的所有关于这个主题的东西似乎都是从2007年开始的,或者是对IE6之类的东西提出了特别的警告。
设置:使用数学标记和MathJax在网页中呈现数学的网页(工作良好)。
用户需要能够将其导出为某种文档- word, PDF等-以便分发给不允许/不希望在提供页面的"系统"中的校对员。
问题:到目前为止,我所做的一切都是为了将渲染的最终产品输出到某种文档中——除了用户发起的浏览器打印之外——显示的是未渲染的标记,而不是最终产品。
这显然是由于MathJax库在浏览器中完全可用时呈现页面的方式,因为它只是一个JS脚本包含。没什么好惊讶的。
我可以得到关闭通过做一个ajax调用的页面渲染,并发送整个blob的html到第三个页面写出来的光盘,并重新服务它与mime和内容处置头为msword,保存到光盘等,但渲染是不正确的-大概是由于包装它在一个POST调用。无论如何,这是很多步骤,最终会得到一个不太正确的解决方案。
我猜答案是"你不能这样做",至少不使用TeX Live或MikTex等的巨大安装,并在后端通过shell调用来完成它。但我没有能力在这些主机上安装。
我是否被用户的"打印到pdf"解决方案所困扰?我是不是漏掉了什么?
谢谢,很高兴在需要的地方充实,但我不能是第一个尝试这样做的人。对于PDF,有几个选项,这主要取决于您想要投入多少工作。
快速而肮脏的解决方案可能是wkhtmltopdf,但是您必须指定JavaScript呈现完成的等待时间——这并不理想。
PhantomJS需要更多的工作,但允许你在页面上收听,例如,这个讨论链接到一个简单的例子。(实际上有很多基于phantomjs的工具。)
另一种方法是首先使用MathJax-node进行预处理,然后将结果传递给wkhtmltopdf(这样您就不必等待MathJax)。
对于doc/docx我认为现在没有任何方法。自然的方法是使用MathJax-node生成MathML,因为Word可以导入MathML。但是当从HTML导入时,Word似乎不支持MathML。使用MathJax-node生成SVG也是如此(但是使用SVG时,您将失去编辑公式的能力,因此这可能是禁止的)。
Pandoc最终可能会有所帮助。它显然可以将数学转换为MS Office格式(参见演示#30)。但是从一个快速测试来看,这似乎不适用于HTML输入。
如果您正在考虑商业解决方案,请查看callas软件的pdfChip(警告:我与该解决方案密切相关)。
它将HTML转换为PDF,并实际使用MathJax将MathML转换为适当的PDF文件(如果您愿意,甚至可以是PDF/X或PDF/a文件)。我很乐意在线下提供更多细节
- 如何将getJson的响应保存在全局变量中
- 按下按钮时保存cookie
- 如何使用 Angular JS 将数据保存在数据库中
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- HTML5在画布中加载较小的图像并保存实际大小的图像
- 是否可以在浏览器中使用纯JavaScript保存音频流
- 如何将多个画布保存为一个图像
- PHP:显示sqlite数据库中的html格式数据,使用tinymce保存
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- 保存数组javascript
- 保存串行端口列表与流星
- 将JavaScript变量保存到Rails模型
- Java脚本将URL转换为已保存的URL时出错
- 如何自动保存动态生成的HTML SVG元素
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 将JQuery Handontable保存到服务器上的excel文件中
- 如何使用word JavaScript API在给定路径中保存word文档
- 使用Office.js API将Word文档(.docx)保存到后端服务器
- 自动将Html页面转换为MS Word文档,保存,然后加载到客户端机器上
- 关于MathJax的特定问题,然后(自动?)保存为word或pdf