我遇到了一个难以解决的问题。我按照自述文件中的说明安装了CakePdf plugin。但是,当我开始使用插件时,我收到CakePHP错误,说明如下:
未找到Pdf引擎“wkhtmltopdf”
错误:发生内部错误。堆栈跟踪
APP/Plugin/CakePdf/Pdf/CakePdf.php line 193 → CakePdf->engine(string) APP/Plugin/CakePdf/View/PdfView.php line 74 → CakePdf->__construct(array) APP/Plugin/CakePdf/View/PdfView.php line 64 → PdfView->renderer(array) CORE/Cake/Controller/Controller.php line 942 → PdfView->__construct(UsersController) CORE/Cake/Routing/Dispatcher.php line 193 → Controller->render() CORE/Cake/Routing/Dispatcher.php line 161 → Dispatcher->_invoke(UsersController, CakeRequest, CakeResponse) APP/webroot/index.php line 96 → Dispatcher->dispatch(CakeRequest, CakeResponse)
我已经检查了CakePdf使用的二进制路径,这是以下代码:
protected $binary = '/usr/bin/wkhtmltopdf';
我已导航到/ usr / bin /目录,而wkhtmltopdf二进制文件就在那里。我也使用了命令wkhtmltopdf http://bbc.co.uk bbc.pdf
并且它有效。所以我不知道为什么CakePHP / CakePdf找不到插件,即使它位于定义的二进制路径中?
更新
以下是wkhtmltopdf
二进制文件的权限等:
-rwxrwxrwx。 1 root root 8301444 Aug 27 08:14 wkhtmltopdf
答案 0 :(得分:2)
文档中似乎有错误。
当您在bootstrap.php文件中调用wkhtmltopdf
时,而不是使用:
'engine' => 'WkHtmlToPdf'
您需要使用:
'engine' => 'CakePdf.WkHtmlToPdf'
代替。
然后解决了这个问题。