如何使用tcpdf在Symfony 2和3中使用php创建pdf文件

TCPDF现在是世界上最活跃的开源项目之一, 每天都有数百万的用户使用, 并且包含在成千上万的CMS和Web应用程序中, 以使用php生成pdf文件。
要在symfony 2中使用tcpdf, 我们将添加一个包, 使我们的实现更容易。在symfony 2中, 一种好的做法是使用捆绑软件, 而不是在控制器中使用require一次来包含我们的库。该捆绑包(不是PHPExcel库)的创建者是WhiteOctober, 可以在github的官方存储库中查看源代码。
【如何使用tcpdf在Symfony 2和3中使用php创建pdf文件】要安装我们的捆绑包, 我们将在require区域中添加composer.json文件。

"whiteoctober/tcpdf-bundle": "dev-master",

如果直接在控制台中使用composer, 则执行:
$ composer require whiteoctober/tcpdf-bundle

下载了必需的组件后, 只需将捆绑包添加到你的内核(位于/app/AppKernel.php中的AppKernel.php文件), 即可:
$bundles = array(// ...new WhiteOctober\TCPDFBundle\WhiteOctoberTCPDFBundle(), // register bundle);

TCPDF允许你从html标记创建pdf(很棒吗?)。要在响应中返回PDF, 请使用以下代码:
public function returnPDFResponseFromHTML($html){        //set_time_limit(30); uncomment this line according to your needs        // If you are not in a controller, retrieve of some way the service container and then retrieve it                //$pdf = $this-> container-> get("white_october.tcpdf")-> create('vertical', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); //if you are in a controlller use :                $pdf = $this-> get("white_october.tcpdf")-> create('vertical', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);         $pdf-> SetAuthor('Our Code World');         $pdf-> SetTitle(('Our Code World Title'));         $pdf-> SetSubject('Our Code World Subject');         $pdf-> setFontSubsetting(true);         $pdf-> SetFont('helvetica', '', 11, '', true);         //$pdf-> SetMargins(20, 20, 40, true);         $pdf-> AddPage();                   $filename = 'ourcodeworld_pdf_demo';                   $pdf-> writeHTMLCell($w = 0, $h = 0, $x = '', $y = '', $html, $border = 0, $ln = 1, $fill = 0, $reseth = true, $align = '', $autopadding = true);         $pdf-> Output($filename.".pdf", 'I'); // This will output the PDF as a response directly}

前面的示例直接在浏览器中返回PDF响应, 现在, 如果我们想在symfony控制器中使用此函数, 我们可以简单地在任何行中调用该函数。是的, 将Output用作在线PDF时, 不需要特殊的symfony响应, 这由TCPDF库处理。然后在我们的控制器中可以使用:
public function indexAction(){        // You can send the html as you want      //$html = '< h1> Plain HTML< /h1> ';         // but in this case we will render a symfony view !// We are in a controller and we can use renderView function which retrieves the html from a view// then we send that html to the user.        $html = $this-> renderView(          'Templates/template.html.twig',           array(            'someDataToView' => 'Something'          )    );         $this-> returnPDFResponseFromHTML($html); }

TCPDF使开发人员的工作变得非常简单。你可以在此处阅读官方的TCPDF文档以及此处的所有示例。

    推荐阅读