从Web应用程序生成PDF

ale*_*mav 6 javascript pdf jquery angularjs gridster

我需要在我的webapp中从当前屏幕生成PDF.某种截图,但我面临严重的困难.

主要问题是视图包含一个用jQuery Gridster制作的网格; 一些"小部件"包含复杂的元素,如表格,高级图表等.

因此,像jsPDFhtml2canvas这样的插件无法在prorper PDF中呈现我的页面.他们总是将它生成空白.

这就是页面的样子.您可以/移动调整每个元素的大小:(对不起CIA风格,但那里有业务数据)

IMG

我遇到但不起作用的一些想法是:

  • 以编程方式使用浏览器print-to-pdf功能.(不能)
  • 使用phantomjs.(但页面状态很重要,所以...)

我相信这个poroblem的解决方案可以由任何人试图生成一个Web应用程序从当前屏幕的img的PDF被广泛采用.相当未解决的问题.

如果仅适用于Google Chrome,则可以.

非常感谢.

编辑:

一个可行的解决方案可能是找到一种方法来表示对象的当前布局状态,并使用和id保存它.

然后通过带有id的url param检索该对象,并将存储的布局应用于初始页面.

这样我可以用phatomjs截取屏幕截图,但对我来说这似乎很复杂.还有其他选择

edi*_*ode 3

基于您正在努力捕获动态内容的事实,我认为此时您需要退后一步,看看您可能需要改变您的方法。这些插件失败的原因是它们只能在交互之前处理 HTML,对吗?

.pdf为什么不从服务器端将 HTML 转换为格式呢?但这里的关键部分是,将当前的HTML 发送回来。通过将其发回,您是否会将更新后的静态 HTML 发送回服务器以呈现为 PDF?我之前使用过从服务器端将 HTML 转换为 PDF,效果很好,所以我不明白为什么它在这里不合适。

有关 HTML 到 PDF 服务器端的详细信息,请参阅此答案。