2013-10-23 37 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

这工作完美。惊人。 –