从Tomcat服务的网页生成PDF

问题描述:

我在试图弄清楚如何在服务器端生成一个来自Tomcat(应用程序是Pentaho CE)的javascript-heavy网页的PDF时出现问题。内容是一个响应用户交互的仪表板。 Pentaho(应用程序)通过AJAX调用以各种内容动态替换div。我想导出为pdf,无论用户拥有仪表板的状态如何。我可以放在服务器上没有任何限制,但我需要避免让客户端安装任何东西。从Tomcat服务的网页生成PDF

我已经采取了看看这个,连同一帮其他的谷歌夫: JSP/HTML Page to PDF conversion

wkhtmltopdf似乎是一个普遍的选择;在我开始猛撞头部之前,我有几个问题:我有几个问题:

  • wkhtmltopdf是否可以通过密码保护jsps来处理应用程序处理身份验证?动态加载的div会破坏它吗?
  • 有没有办法可能返回客户端视图到服务器进行处理?我读了关于屏幕截图...
  • 另一个可以解决的方法是通过服务器托管的Web浏览器自动对服务器上的仪表板进行本地访问,然后生成PDF ......这是可能的,考虑到由应用程序处理的Tomcat和密码保护的限制? Pentaho生成的JavaScript组件不能在应用程序之外访问。

谢谢!

编辑:

好消息! wkhtmltopdf的作品!有点。我通过通过查询字符串输入登录信息来取得密码认证,现在我得到了正确页面的pdf。问题是没有JavaScript组件显示出来......(它们适用于像yahoo.com这样的页面,所以也许我在这里错过了一些东西)。

如果你有很多的AJAX调用,你应该等待它们。使用--javascript-delay x参数,其中x是等待的时间。

+0

这有助于解决部分渲染图的问题,但我已经放弃了整个问题。 wkhtmltopdf的webkit中的某些内容在JavaScript加载期间窒息,我无法弄清楚。 – don 2011-03-03 13:08:21