允许某人下载HTML页面的PDF副本的最简单方法是什么?

时间:2014-05-06 13:30:34

标签: php html pdf

我有一个HTML页面,其中包含一个表格,其中包含客户订单列表(通过PHP从数据库中提取)。

我希望页面上有一个按钮,允许用户下载不包含导航栏等的PDF副本。

我在网上看到和测试过的示例最初是以PDF格式加载页面,但我不想这样。我希望它按当前加载,但也有一个按钮,按下时下载PDF副本(即不在浏览器中显示)。

4 个答案:

答案 0 :(得分:1)

wkhtmltopdf会做到这一点:

http://wkhtmltopdf.org/

它应该允许你很多自定义选项。

答案 1 :(得分:0)

但是如果你想动态生成它,那么你必须使用一些pdf文件库。有许多图书馆,如tcpdf,dompdf等。 Dom pdf example

答案 2 :(得分:0)

因为您要求最简单的方法..只需打印HTML客户端。此按钮调用打印网页客户端:

<input type="button" 
  onClick="window.print()" 
  value="Print This Page"/>

然后用户必须选择PDF打印机驱动程序。 Chrome内置了这个功能。

在这里,您可以阅读如何排除HTML的部分内容(例如打印按钮本身): How do I hide an element when printing a web page?

答案 3 :(得分:0)

根据经验,我会推荐Phantom JS - see an example

我发现与wkhtmltopdf相比,Phantom JS提供了更好的HTML / CSS支持。

请记住,你很难在Phantom和Wkhtmltopdf中获得CSS3 columns之类的支持。

工作流:

  1. 登陆初始页面(稍后将转换为PDF格式)。
  2. 显示按钮 - “以PDF格式下载”
  3. 在此按钮上收听点击事件并调用自定义回调 一旦事件被触发就会起作用。
  4. 回调函数执行发送整页的Ajax调用 HTML作为服务器请求的一部分。
  5. 在服务器端,启动Phantom JS或Wkhtmltopdf以生成PDF。保存 服务器上的PDF。
  6. 为已保存的PDF生成URL并显示/加载客户端。
  7. PS;我不确定Phantom JS是否会从字符串生成PDF或者是否需要有效的URL。我知道Wkhtmltopdf可以从字符串生成PDF。

    希望这有帮助