使用tcpdf扩展从yii中的数据库表生成pdf文件

时间:2016-04-16 11:42:38

标签: php pdf yii

我想使用tcpdf扩展从Yii框架中的数据库表生成pdf文件,扩展名在protected / extensions文件中,使用此代码(我不使用作曲家)

public function actionCreatepdf() {
    $path = Yii::$app->basePath;
    require_once($path . '/extensions/tcpdf/tcpdf.php');
    $pdf = new TCPDF();
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor('Nicola Asuni');
    $pdf->SetTitle('TCPDF Example 001');
    $pdf->SetSubject('TCPDF Tutorial');
    $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
    $pdf->SetHeaderData('', 0, PDF_HEADER_TITLE, '');
    $pdf->setHeaderFont(Array('helvetica', '', 8));
    $pdf->setFooterFont(Array('helvetica', '', 6));
    $pdf->SetMargins(15, 18, 15);
    $pdf->SetHeaderMargin(5);
    $pdf->SetFooterMargin(10);
    $pdf->SetAutoPageBreak(TRUE, 0);
    $pdf->SetFont('dejavusans', '', 7);
    $pdf->AddPage();
    $pdf->SetFillColor(255, 0, 0);
    $pdf->SetTextColor(0);
    $pdf->SetDrawColor(128, 0, 0);
    $pdf->SetLineWidth(0.1);
    $pdf->SetFont('');
    // Header
    $tbl_header = '<table border="1">';
    $tbl_footer = '</table>';
    // Data        
    $tbl = '';

    $sql = "select * from personal";
    $data = Yii::app()->db->createCommand($sql)->queryAll(); 

    for ($i = 0; $i < count($data); $i++) {
        $tbl .= '<tr>' .
                '<td>' . $data[$i]['first_name'] . '</td>' .
                '<td>' . $data[$i]['surname'] . '</td>' .
                '<td>' . $data[$i]['age'] . '</td>' .
                '</tr>';
    }

    $pdf->writeHTML($tbl_header . $tbl . $tbl_footer, true, false, false, false, '');
    $pdf->Output("Student_Details.pdf", "D");
    Yii::app()->end();

返回$ this-&gt; render('createPdf');     }

我有这个错误

PHP Compile Error – yii\base\ErrorException

frontend\controllers\CvController::actionCreatepdf(): Failed opening required 'C:\xampp\htdocs\advanced1\frontend/extensions/tcpdf/tcpdf.php' (include_path='.;C:\xampp\php\PEAR')

在声明中

  require_once($path . '/extensions/tcpdf/tcpdf.php');

路径有什么问题以及如何使其正确?请帮忙。

1 个答案:

答案 0 :(得分:1)

如您所见,在系统生成的路径中,有反斜杠,您使用了正斜杠。这是系统特定的。您的代码可能适用于Unix,它在文件路径中使用反斜杠而不是在Windows中使用正斜杠。

您应该更改此行:

  require_once($path . '/extensions/tcpdf/tcpdf.php');

  require_once($path . '\extensions\tcpdf\tcpdf.php');