2014-10-02 73 views
2

如何用html(DOM)內容佔用html的css styles來創建pdf? HTML有MathJax javascript呈現的公式。我希望pdf能夠使用MathJax在瀏覽器中顯示公式。 此外,HTML包含幾個圖像。
哪個開源java庫有助於從html內容創建這樣的pdf? 我看着Apache PdfBox,但沒有找到解決方案。 解決方案必須是用於商業應用的開源庫。html to pdf including MathJax transformation

編輯 DOM內容是在服務器端動態生成的,不會被推送到瀏覽器。
FlyingSaucer接近我所需要的。但是,這不支持Java腳本,即與MathJax的HTML不能(正確)轉換爲PDF。

回答

1

有基於WebKit支持JavaScript的各種PDF呈現器。我發現的最好的是PhantomJS的屏幕截圖功能。

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

你必須寫一些代碼,雖然,確保直到JS處理完後事,你不採取屏幕抓取。


更新
這裏是一個非常簡單的例子,從標準輸入讀取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 
+0

Thnx。 DOM內容是在服務器端動態生成的,不會推送到瀏覽器。 – 2014-10-02 15:21:57

+0

它不需要瀏覽器。這是重點。你只需將HTML加入它,它就會給你一個PDF返回 – Tim 2014-10-02 15:24:09

+0

很酷。我將探討它的Java等價物。我的應用程序運行時是JVM。 (部署到Tomcat的Web應用程序) – 2014-10-02 15:39:46