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

使用CakePHP和CakePdf生成PDF时出现问题,cakephp,dompdf,Cakephp,Dompdf,我正在尝试使用CakePdf在CakePHP中生成pdf文件。我在CourseGradesController中有一个名为viewReport的函数。我希望viewReport允许您从选择字段中选择学生,然后在提交表单时,它将生成包含适当数据的PDF。如果我将数据放入一个表中,而不尝试制作PDF,页面将正确显示,因此我认为这不是问题所在。在bootstrap.php中,我有 CakePlugin::load('CakePdf', array('bootstrap' => true, 'ro

我正在尝试使用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,我会收到错误“error:在此服务器上找不到请求的地址'/cakephp/courseGrades/viewReport'


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

我强烈建议在这类工作中使用此插件


一些注意事项:1)如果可能,您应该使用相关信息更新您的问题,而不是开始新的问题(虽然这确实涉及新问题,但可能需要解决原始问题);2) 不要
require_once
dompdf.php,这是一个使用dompdf类的附加脚本,而不是类本身的一部分;3) 您不需要
spl_autoload_寄存器('dompd_autoload')由于这是通过dompdf_config.inc.php.As来解决CakePHP问题的。。。显示getStudentReport\u pdf操作的代码,是否与getStudentReport相同。另外,您确定
$this->Post->read()
正在返回任何内容吗?尝试
$post=$this->post->read()
然后
调试($post)
,查看是否正在检索数据。仅供参考,您不需要为read()方法指定任何参数,因为您在代码前面已经设置了模型ID。我提出了一个新问题,因为我决定尝试此方法,因为似乎有更多的人使用过它。虽然我做了你建议的更改,并且在帖子中更新了我的代码,但是我遇到了同样的问题。首先,尝试解决错误。关于“间接修改”错误,请参阅迁移指南中的以下注释:我正在尝试使用此插件,但仍然遇到问题。我想做的是,在CourseGradesController的viewReport函数中选择一个学生。提交该学生后,它会将该页面重新生成为PDF,并添加学生报告信息。现在,当我尝试重新加载页面时,我收到一个错误消息,表示找不到该页面。