如何使用php将html转换为pdf?
Posted
技术标签:
【中文标题】如何使用php将html转换为pdf?【英文标题】:How to convert html into pdf with php? 【发布时间】:2011-07-08 14:50:46 【问题描述】:我在一个 mysql 表中有 html,想把它变成可下载的 pdf 文件。
有工具可以将文件转换为pdf,但我还没有找到与php兼容的工具。
你能帮忙吗?有什么建议吗?
【问题讨论】:
你试过了吗? :phpclasses.org/package/… 看到这个link 【参考方案1】:我很惊讶没有人提到它,但您也可以使用在线 API 为您完成这项工作。根据您的使用情况,它可以是免费的,您可以依赖它们的最新功能(如 CSS3 和 WebFonts)并将处理外部化,从而减少硬件工作(或为其提供更多资源来处理其他请求)。
有很多 API 专门用于将 HTML 转换为 PDF。 PDFShift 是其中之一(我工作),语法非常简单(当然它与 API 不同)。
例如,将 URL 转换为 PDF 就像执行 curl_
POST 请求一样简单:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.pdfshift.io/v2/convert/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode('source': 'https://pdfshift.io/documentation'),
CURLOPT_HTTPHEADER => array('Content-Type:application/json'),
CURLOPT_USERPWD => 'YOUR_API_KEY:'
));
$response = curl_exec($curl);
file_put_content('pdfhsift-documentation.pdf', $response);
大多数在线 API 语法相同,或多或少,但在价格、性能、处理等方面有所不同。
【讨论】:
【参考方案2】:如果你的意思是从 php 创建一个 pdf,pdflib 会帮助你。
另外,如果您想通过 PHP转换 pdf 格式的 HTML 页面,我知道的选项是:
DOMPDF :包装 html 并构建 pdf 的 php 类。效果很好,可定制(如果你知道 php),基于 pdflib,如果我没记错的话,它甚至需要一些 CSS。坏消息:当 html 很大或很复杂时速度很慢。
HTML2PS: 与 DOMPDF 相同,但此文件首先转换为 .ps(ghostscript),然后转换为您需要的任何格式(pdf、jpg、png)。对我来说,这比 dompdf 好一点,但有同样的速度问题..哦,与 css 的兼容性更好。
这两个是php类,但是如果你可以在服务器上安装一些软件,并通过passthru()或system()访问它,也可以看看这些:
wkhtmltopdf: 基于 webkit(safari 的包装器),非常快速和强大.. 似乎是将 html 页面动态转换为 pdf 的最佳工具(atm),3 页 xHTML 仅需 2 秒使用 CSS2 的文档。是最近的项目,反正google.code页面经常更新。
htmldoc : 这是一辆坦克,它真的永远不会停止/崩溃.. 这个项目似乎在 2007 年就死了,但无论如何,如果你不需要 css 兼容性,这对你来说会很好。
tcpdf - 这是 fpdf 的增强和维护版本。 Main Features of tcpdf,它的执行时间也更短,输出也很好。有关使用两个最流行的 pdf 生成类的详细教程:TCPDF 和 FPDF。请关注this link。
另请参阅此帖子。
-
Convert HTML + CSS to PDF with PHP?
Which one is the best PDF-API for PHP?
Export a html into PDF in PHP?
Writing HTML with PHP variables to PDF file?
Tool for exporting html as pdf
Converting HTML in PHP File to PDF File
【讨论】:
【参考方案3】:您也可以尝试使用mPDF,它是免费的,并且有大量文档。
例子:
<?php
include('mpdf/mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('<img src="images/logo.png">'); //Write HTML
$mpdf->Output(); //Show the output
?>
【讨论】:
【参考方案4】:DOMpdf 是最好的免费版。
如果钱不是问题,PrinceXML 是最好的。
【讨论】:
同意 - PrinceXML 是最好的。如果您买不起许可证,DocRaptor.com 与 Prince 建立了合作关系。您可以获得相同的高质量,但您无需下载任何内容,而且价格便宜得多。【参考方案5】:最简单的方法是http://www.tcpdf.org/
【讨论】:
【参考方案6】:html2pdf 库可能会对您有所帮助;我听说它通常做得很好——但可能需要你稍微调整一下你的 HTML。
【讨论】:
以上是关于如何使用php将html转换为pdf?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 php mpdf 库将多个 PDF 文件合并为一个 PDF