html到pdf,包括MathJax转换

时间:2014-10-02 15:13:34

标签: pdf-generation pdfbox mathjax

如何使用html(DOM)内容核算html的css styles来创建pdf? HTML中包含MathJax个javascript呈现的公式。我想pdf显示公式,因为它们在浏览器中使用MathJax可见。 此外,HTML包含很少的图像 哪个开源java库有助于从html内容创建这样的pdf? 我调查了Apache PdfBox但没有找到解决方案。 解决方案必须是用于商业应用的开源库。

修改 DOM内容在服务器端动态生成,而不是推送到浏览器 FlyingSaucer接近我的需要。但是这不支持java脚本,即带有MathJax的html无法(正确)转换为pdf。

1 个答案:

答案 0 :(得分:1)

基于WebKit的各种PDF渲染器都支持JavaScript。我发现的最好的是PhantomJS的屏幕截图功能。

http://phantomjs.org/screen-capture.html

你必须编写一些代码,并确保在JS完成其工作之前不要抓住屏幕。


<强>更新
这是一个非常简单的示例,它从stdin读取HTML并将PDF文件保存到磁盘:

// render.js
var page = new WebPage();
page.content = require("system").stdin.read();

setTimeout( function(){
    page.render( 'export.pdf' );
    phantom.exit(0);
}, 100 ); // <- wait for JS

您可以从您正在使用的任何服务器端运行时执行此操作,只要它可以执行shell。要使用静态文件从命令行对其进行测试,您可以执行以下操作:

~/bin/phantomjs render.js < sample.html