我使用 composer 安装了 CakePdf 的插件。所以在我的供应商文件夹中,我有 CakePdf 插件和其他依赖项。
我下载了 wkhtmltopdf 并将其安装在一个目录中。目录是C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe
接下来通过运行./bin/cake plugin load CakePdf -b
我添加插件的命令src/application.php
$this->addPlugin('CakePdf', ['bootstrap' => true]);
然后我在config/routes.php
之前写了下面的行Router::scope
Router::extensions(['pdf']);
而在config/bootstrap.php
Configure::write('CakePdf', [
'engine' => [
'className' => 'CakePdf.WkHtmlToPdf',
'binary' => 'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe',
'options' => [
'print-media-type' => false,
'outline' => true,
'dpi' => 96
],
],
]);
现在在我的abc
控制器view
动作中我写了
$this->viewBuilder()->options([
'pdfConfig' => [
'orientation' => 'portrait',
'filename' => 'Invoice_' . $id.'.pdf'
]
]);
我还创建了view.ctp
insidesrc/Templates/abc/pdf/view.ctp
和里面的default.pdf
布局src/Templates/Layout/pdf/default.ctp
。
现在当我去的时候localhost/abc/view/1.pdf
,我得到一个错误说Failed to load PDF document
!
我真的很想知道可能出了什么问题以及如何修复它以使其正常工作?