使用CakePdf插件时,CakePHP找不到'wkhtmltopdf'

时间:2012-08-27 07:37:28

标签: cakephp wkhtmltopdf

我遇到了一个难以解决的问题。我按照自述文件中的说明安装了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

1 个答案:

答案 0 :(得分:2)

文档中似乎有错误。

当您在bootstrap.php文件中调用wkhtmltopdf时,而不是使用:

'engine' => 'WkHtmlToPdf'

您需要使用:

'engine' => 'CakePdf.WkHtmlToPdf'

代替。

然后解决了这个问题。