如何使用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

使用 JavaScript 将 HTML 转换为 PDF

如何使用 php 将 .docx、xslx、img、txt 等任何文件转换为 PDF 预览?

如何在php中将页面保存为pdf

如何使用 PHP 替换 PDF 文件中的内容?

使用 PHP 将 HTML 转换为 PDF(不是 PDF 到 HTML)[关闭]