【问题标题】:How to convert html into pdf with php?如何使用php将html转换为pdf?
【发布时间】:2011-07-08 14:50:46
【问题描述】:

我在一个 mysql 表中有 html,想把它变成可下载的 pdf 文件。

有工具可以将文件转换为pdf,但我还没有找到与php兼容的工具。

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

【问题讨论】:

标签: php mysql html pdf download


【解决方案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

    另请参阅此帖子。

    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

    【讨论】:

      【解决方案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。

          【讨论】:

            猜你喜欢
            • 2010-12-29
            • 1970-01-01
            • 1970-01-01
            • 2012-12-05
            • 2010-10-18
            • 2018-12-11
            • 2012-05-05
            • 2014-05-05
            相关资源
            最近更新 更多