0

CakePdf を使用して、CakePHP 内で PDF ファイルを生成しようとしています。私はviewReportと呼ばれるCourseGradesControllerに関数を持っています。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 に移動すると、完全に空白の画面が表示されます。

4

1 に答える 1

0

この種の作業には、このプラグインの使用を強くお勧めします。

https://github.com/ceeram/CakePdf

于 2013-06-10T09:44:21.147 に答える