【问题标题】:PHP/HTML table to PDF ConversionPHP/HTML 表格转 PDF
【发布时间】:2015-08-11 20:01:36
【问题描述】:

所以我正在尝试获取带有动态 php 回显的 HTML 表以打印到 PDF。但是,我有两个不同的 div,我想在同一个 PDF 中打印。

我尝试了多个关于堆栈溢出的类似问题的答案,包括:

  • jspdf
  • tcpdf
  • Zend_pdf
  • 多台 PDF 打印机
  • FPDF

我也尝试过这里列出的答案:

目前为止效果最好的解决方案是这里给出的解决方案:

我面临的问题是,如果我只想要一个通用的 HTML 表,我可以生成一个 PDF,但是它不允许我添加 php 信息,这是我需要的 PDF。此外,如果我尝试添加两个 div,即使没有任何 PHP,也不会生成报告。

任何关于我可以尝试从哪里开始的建议将不胜感激。 如果您想查看代码,我可以在明天提供一个经过编辑的版本,但是对于一般性建议,我不明白为什么需要它。

【问题讨论】:

  • 从 html 生成 pdf 非常容易出错。没有人真正有好的解决方案。
  • Http://www.cloudformatter.com/css2pdf 是远程基于云的格式化服务器的 jQuery 插件。由于它会刮掉 dom,因此它会拥有所有信息,但它意味着在浏览器内部执行。它可以做多个 div 和表格。

标签: php html pdf


【解决方案1】:

如果您不介意将 PDF 的生成处理为子流程,我建议您使用 webkit 无头浏览器进行调查。

Phantom.jswkthmltopdf 都可以满足您的需求,几乎没有任何问题,并且与 webkit 一样支持 css。如果有任何帮助,他们还支持 javascript。

两者都有 PHP 包装器来与您的应用程序对话。对于 Phantom h++p://github.com/kriansa/h2p 和对于 WK:h++p://github.com/mikehaertl/phpwkhtmltopdf 是两个示例,但还有许多其他示例。

我已经成功地使用了这两种方法。

所有 PDF 生成器都需要您提供某种平面 HTML 结构来呈现,但您可以通过使用输出控制函数 h++p://php.net/manual/en/ref.outcontrol.php 来克服这个问题,主要是 ob_start();和 ob_get_clean();将所有 PHP/HTML 混合输出到一个可用的 html 变量中。

对不起,奇怪的链接,编辑不允许我超过 2 个实时链接。

【讨论】:

  • +1 wkhtmltopdf 是我使用的。它给出了很好的结果。我将它安装在服务器上并简单地使用 PHP 发送 bash 命令。创造了奇迹。 fedir.github.io/web/blog/2013/09/25/…
【解决方案2】:

只是让您知道,我遇到了一个非常相似的问题,即使用 PHP 创建的任何动态内容都不会转换为 PDF。有一个非常简单的解决方案。在您的 PHP 内容加载后动态创建一个 HTML 页面。

例如使用file_get_contents将页面内容报废,然后写入html文件file_put_contents($content, "page-to-convert.html");

完成后,只需使用此 HTML 页面上的 PDF 转换器即可。

转换后,您可以删除该 HTML 页面。这是一个“hacky”过程,但对我来说效果很好。

至于 HTML 到 PDF 库,我使用了 WKHTMLTOPDF。以下是在 Ubuntu 上安装它的一些说明。

http://fedir.github.io/web/blog/2013/09/25/install-wkhtmltopdf-on-ubuntu/

祝你好运!

【讨论】:

    猜你喜欢
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    相关资源
    最近更新 更多