如何用PHP将html转换为pdf?

时间:2011-03-04 06:50:58

标签: php mysql html pdf download

我在mysql表中有html并希望将其转换为可下载的pdf文件。

有一些工具可以将文件转换为pdf,但我还没有找到一个可以用于php的工具。

你能帮忙吗?有什么建议吗?

6 个答案:

答案 0 :(得分:3)

如果你的意思是从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的包装器),非常快速而且功能强大..似乎是最好的一个(atm)用于将飞行html页面转换为pdf,仅需2秒即可获得3页面带有CSS2的xHTML文档。无论如何,这是一个最近的项目,google.code页面经常更新。

htmldoc:这个是坦克,它真的永远不会停止/崩溃..这个项目在2007年似乎已经死了,但无论如何如果你不需要css兼容性,这对你来说很不错。

tcpdf - 这是fpdf的增强版和维护版。 Main Features of tcpdf并且它具有较少的执行时间和较高的输出。有关使用两个最流行的pdf生成类的详细教程:TCPDF和FPDF。请关注this link

也请看这篇文章。

  1. Convert HTML + CSS to PDF with PHP?
  2. Which one is the best PDF-API for PHP?
  3. Export a html into PDF in PHP?
  4. Writing HTML with PHP variables to PDF file?
  5. Tool for exporting html as pdf
  6. Converting HTML in PHP File to PDF File

答案 1 :(得分:2)

html2pdf图书馆可能对您有所帮助;我听说它通常做得很好 - 但可能需要你稍微调整你的HTML。

答案 2 :(得分:2)

DOMpdf是最好的免费版本。

如果钱不是问题,PrinceXML最好。

答案 3 :(得分:2)

您也可以尝试免费使用mPDF并提供大量文档。

示例:

<?php

include('mpdf/mpdf.php'); 

$mpdf=new mPDF(); 

$mpdf->WriteHTML('<img src="images/logo.png">'); //Write HTML

$mpdf->Output(); //Show the output

?>

答案 4 :(得分:0)

最简单的方法是http://www.tcpdf.org/

答案 5 :(得分:0)

我很惊讶没有人提及它,但是您也可以使用在线API为您完成这项工作。根据您的使用情况,它可以是免费的,您可以依靠它们的最新功能(例如CSS3和WebFonts),并且将处理外部化,从而减少了硬件工作(或为它提供了更多资源来处理其他请求)。

有许多专用于将HTML转换为PDF的API。 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或多或少具有相同的语法,并且在价格,性能,处理方式等方面有所不同。