1

我一直在使用服务器端 Java 将 HTML + CSS 转换为 PDF,例如 Flying Saucer ( http://code.google.com/p/flying-saucer/ )

现在我需要看看随着 RaphaelJS 等客户端可视化 API 的增长而出现的替代方法,这些 API 也应该包含在 PDF 导出中。

理想情况下,我只需要一个打印友好的布局和 CSS(有点像 Google 地图),并且会有一些神奇的方式让 Javascript 调用可以静默地将窗口“打印”到 PDF 文件,而不是拥有单独的 PDF生成管道。

有没有这样的事情?

如果没有,您会推荐哪些其他方法?

例如

  • 使用 node.js 或 Rhino 运行 Raphael 服务器端,使用 Batik 将 SVG 输出转换为图像,在服务器端渲染 PDF
  • 同样的事情,但要从 Raphael 已经在客户端完成的工作中获取 SVG
  • 在服务器上做一个无头浏览器,如 wkhtmltopdf 或 phantomjs,以捕获并执行生成的 HTML/JS 服务器端。

这些方法或其他建议中的任何一个是否成功?

4

2 回答 2

1

这两个选项对我有用:

请询问您是否需要有关如何使用这些解决方案的更多详细信息。

于 2013-01-29T21:54:57.947 回答
1

我为 PhantomJS 和 CasperJS 设置了一个(非常)简单的测试,以便能够使用无头浏览器打印 PDF 服务器端。它确实需要额外的非 Java 工具,但我认为这种方法更具前瞻性。在这些示例中,我能够动态加载网页,让 Angular 初始化,然后与 Javascript 代码交互,以便像用户在真实浏览器中修改页面一样打印页面。

这是我的例子:https ://github.com/fmarot/miscPOC/tree/master/angularAppOutputPDF

于 2013-02-28T16:57:42.383 回答