使用CakePHP和CakePdf生成PDF时出现问题

时间:2013-06-04 20:07:20

标签: cakephp dompdf

我正在尝试使用CakePdf在CakePHP中生成pdf文件。我在CourseGradesController中有一个名为viewReport的函数。我希望viewReport允许您从选择字段中选择一个学生,然后在提交表单时,它将生成一个包含相应数据的PDF。如果我将数据放入表中并且不尝试制作PDF,则页面将正确显示,因此我认为这不是问题所在。在bootstrap.php中,我有

CakePlugin::load('CakePdf', array('bootstrap' => true, 'routes' => true));
Configure::write('CakePdf', array(
    'engine' => 'CakePdf.WkHtmlToPdf',
    'options' => array(
        'print-media-type' => false,
        'outline' => true,
        'dpi' => 96
    ),
    'margin' => array(
        'bottom' => 15,
        'left' => 50,
        'right' => 30,
        'top' => 45
    ),
    'binary' => '/var/www/cakephp/app/Plugin/CakePdf/Vendor/WkHtmlToPdf',
    'orientation' => 'landscape',
    'download' => false
));

我将WkHtmlToPdf文件夹移入/ var / www / cakephp / app / Plugin / CakePdf / Vendor / WkHtmlToPdf,因此lib和include文件夹位于该目录中。

在CourseGradesController的viewReport函数中,我有

    function viewReport($id = null)
    {
        $this->CourseGrade->id = $id;
            if (!$this->CourseGrade->exists()) 
            {
                throw new NotFoundException(__('Invalid invoice'));
            }
            $this->pdfConfig = array(
                'orientation' => 'portrait',
                'filename' => 'Invoice_' . $id
            );
            $this->set('invoice', $this->CourseGrade->read(null, $id));
        ...

    }

如果我导航到/ courseGrades / viewReport,我收到错误“错误:在此服务器上找不到请求的地址'/ cakephp / courseGrades / viewReport'。”

如果我导航到/courseGrades/viewReport/1.pdf,那么我只看到一个完全空白的屏幕。

1 个答案:

答案 0 :(得分:0)

我强烈建议您使用此插件进行此类工作。

https://github.com/ceeram/CakePdf