4

我在 PHP 中找到了一些可以完成这项工作的库或 Web 服务。问题是当页面完全加载时转换完成,我想在 onload 事件中通过 AJAX 动态添加一些内容后将页面转换为 PDF 。

非常感谢,奥马尔

4

6 回答 6

5

您可以发回document.getElementsByTagName('html')[0].innerHTML服务器(可能使用 AJAX)并从中生成 PDF。

于 2008-10-10T11:23:25.777 回答
4

当您使用 AJAX 添加内容时,这只发生在客户端机器上,因此服务器端 PHP 转换代码将无法使用它。如果您想在服务器上创建 PDF,您需要提供一种包含动态内容的服务器端方法。

于 2008-10-10T11:04:44.240 回答
2

在添加动态内容后,您可以实现一个 AJAX 调用,将页面内容/状态发送回服务器端,在那里它可以呈现为 pdf。您可能不需要所有页面,具体取决于此“动态内容”的去向。

看起来有点乱,但在不了解项目的情况下,很难说是否有更清洁的方法来做你想做的事情。

于 2008-10-10T11:20:38.793 回答
1

由于 Ajax 的情况,这是客户端的要求。如果他们使用的是 Mac,他们可以简单地保存为 PDF,否则您几乎无法控制他们可以做什么。

但是,对于服务器端实现,您可以做的是记录页面及其自加载该页面以来的所有 AJAX 请求,并在请求时根据该记录在服务器上构造 HTML 和 PDF。当然,这不是一项简单的任务,而且相当矫枉过正。您最好使用不同的机制来创建页面的服务器端 PDF 报告,而不是将 HTML 转换为 PDF。

于 2008-10-10T11:08:57.473 回答
1

如果您的页面可以仅在客户端上更新而无需访问服务器,则您必须重新发布到您的应用程序。这样,您将拥有所有内容并且不会进行重建,如果只有客户端交互,这是不可能的。

于 2008-10-10T11:26:38.860 回答
1

哇,谢谢大家,我不知道这是社区如此活跃。要回答有关该项目的 Beepcake:

当页面加载时,应用程序通过 AJAX 请求从 40 多个服务器检索生物信息,然后显示一个独特的视图,您可以在其中使用许多选项来操作图形。

因此,当用户制作自己的图形版本时,打印出来是一件很酷的事情。我认为最好的解决方案是使用document.getElementsByTagName('html')[0].innerHTML发布整个 HTML,正如 RoBorg 所说,然后使用 dompdf 等库生成PDF

于 2008-10-10T11:54:20.290 回答