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 に移動すると、完全に空白の画面が表示されます。