2013-10-23 41 views
3

呈現日曆以PDF我已經嘗試了印刷FullCalendar.js,但是,沒有提供發電機的似乎工作:FullCalendar可以打印到PDF嗎?

  • 的Aspose PDF不允許JavaScript和直線上升只是不支持絕對定位元素
  • PrinceXML在處理不能在IE,Chrome或Firefox中重現的JavaScript時遇到了拋出TypeError exceptions的已知問題。

對於PrinceXML失敗我最小的repro例子是Adam Shaw的FullCalendar站點上的例子。即使我保存生成的HTML(通過$("body").html())並將生成的HTML傳遞給PrinceXML,從而繞過了PrinceXML不正確的JavaScript處理,PrinceXML並未正確佈置絕對定位的事件。

我有什麼選擇?

回答

3

我的同事發現了一個更簡單的解決方案。

事實證明,我們遇到了在測試環境中使用Pechkin和wkhtmltopdf的問題。另外,它要求我們設置一個額外的應用程序池來處理PDF打印。

使用html2canvas.js

轉換畫布爲base64。我建議弗雷德·帕爾默的base64.js

發送base64編碼值服務器

創建調用您的PDF轉換庫Web服務。我們使用Aspose,因此我們所做的只是將圖像添加到Aspose PDF對象。

利潤!

該解決方案令人難以置信的光滑,因爲它使用用戶自己的渲染引擎來生成PDF。這意味着所見即所得(What You See Is What You Get),所以如果日曆看起來不錯,當用戶使用它時,它應該以完全相同的方式打印!錢。

4

您最好的選擇可能是wkhtmltopdf,它使用WebKit作爲渲染引擎。這意味着你可以自由使用CSS/Javascript。您可能需要查看javascript-delay選項。

我已經在Ruby on Rails中成功地使用了wkhtmltopdf,但是看起來您使用的是.NET。快速搜索發現一些可能wkhtmltopdf包裝庫.NET:

你可能想看看this answer一些替代解決方案。

+0

這工作完美。驚人。 –