完整日历可以打印成PDF吗?



我尝试将FullCalendar.js渲染的日历打印为PDF,但是可用的生成器似乎都不起作用:

  • Aspose PDF不允许JavaScript,直接只是不支持绝对定位的元素
  • PrinceXML存在已知问题,即在处理在IE,Chrome或Firefox中不可重现的JavaScript时会抛出TypeError异常。

我关于PrinceXML失败的最小重现示例是Adam Shaw的FullCalendar站点上的示例。 即使我保存生成的 HTML(通过 $("body").html() )并将生成的 HTML 传递给 PrinceXML,从而绕过 PrinceXML 不正确的 JavaScript 处理,PrinceXML 也没有正确布局绝对定位的事件。

我有哪些选择?

最好的选择可能是wkhtmltopdf,它使用WebKit作为渲染引擎。这意味着你可以自由使用CSS/Javascript。您可能需要查看javascript-delay选项。

我已经在Ruby on Rails中成功使用了wkhtmltopdf,但看起来你使用的是.NET。快速搜索显示了一些可能的 .NET wkhtmltopdf 包装库:

  • 格曼尼/佩奇金
  • codaxy/wkhtmltopdf

您可能需要查看此答案以获取一些替代解决方案。

我的同事找到了一个更简单的解决方案。

事实证明,我们在测试环境中使用Pechkin和wkhtmltopdf时遇到了问题。 此外,它还要求我们设置一个额外的应用程序池来处理打印到 PDF。

使用 html2canvas.js 库

将画布转换为 base64。 我推荐弗雷德·帕尔默的base64.js

将 base64 编码值发送到服务器

创建调用 PDF 转换器库的 Web 服务。 我们使用Aspose,所以我们所做的只是将图像添加到Aspose PDF对象中。

利润!

这个解决方案非常流畅,因为它使用用户自己的渲染引擎来生成PDF。 这意味着所见即所得(所见即所得),因此,如果用户使用日历时看起来不错,则应以完全相同的方式打印! 钱。

相关内容

  • 没有找到相关文章

最新更新