首页 > 解决方案 > CakePdf 在 php5.6 服务器上

问题描述

该站点位于 php5.6 服务器 - 共享主机上,因此使用 github 和 php-download.com 手动完成安装。

我们选择使用 mpdf,我可以通过直接调用它来创建测试文件。

我们的蛋糕网站是 v3.x。

我已将 pdf 扩展名添加到 routes.php 我已将其添加到 bootstrap.php

Plugin::load('CakePdf',['bootstrap' => true]);

Configure::write('CakePdf', [
    'engine' => 'CakePdf.MpdfEngine',
    'margin' => [
        'bottom' => 15,
        'left' => 50,
        'right' => 30,
        'top' => 45
    ],
    'orientation' => 'portrait',
    'download' => true
]);

在我的“表单”控制器中,我有 2 个功能——它们都在主页上抛出错误。

//before the class
use CakePdf\Pdf\CakePdf;

//in the class
    function test(){
        $this->viewBuilder()->setClassName('CakePdf.Pdf');
        $this->viewBuilder()->setLayout('default');
        
        $this->viewBuilder()->options([
            'pdfConfig' => [
                'engine' => 'CakePdf.MpdfEngine',
                'download' => true,
                'title' => 'My Form',
                'filename' => 'Form1.pdf'
            ]
        ]);       
    }
    
    function test1(){
        
        $pdf_path = WWW_ROOT . 'tmp/tests/'.date('Y-m-d') . DS . 'test1.pdf';
        
        //$CakePdf = new CakePdf();
        $CakePdf = new \CakePdf\Pdf\CakePdf\CakePdf();
        debug($CakePdf);
        exit;
    $CakePdf->template('test', 'pdf/default');
    $pdf = $CakePdf->output();
    $pdf = $CakePdf->write($pdf_path);
    }

我的 /forms/test1 错误日志可能是最有用的 - 特别是第一行中有额外的“CakePdf”的那一点

2020-10-12 16:30:12 Error: [Cake\Error\FatalErrorException] Class 'CakePdf\Pdf\CakePdf\CakePdf' not found in /var/www/www.mysite.com/public_html/src/Controller/FormsController.php on line 343
Request URL: /forms/test1.pdf
Stack Trace:
#0 /var/www/www.mysite.com/public_html/vendor/cakephp/cakephp/src/Error/BaseErrorHandler.php(105): Cake\Error\BaseErrorHandler->handleFatalError(1, 'Class 'CakePdf\\...', '/var/www/www.my...', 343)
#1 [internal function]: Cake\Error\BaseErrorHandler->Cake\Error\{closure}()
#2 {main}

标签: cakephp

解决方案


推荐阅读