【问题标题】:CakePdf plugin wkhtmltopdf binary is not found找不到 CakePdf 插件 wkhtmltopdf 二进制文件
【发布时间】:2014-06-01 09:15:39
【问题描述】:

我正在尝试实现这个插件https://github.com/ceeram/CakePdf

在我的视图方法中,我添加了这段代码

   public function view($id = null) {
       $this->User->id = $id;
        $this->autoRander="false";
        if (!$this->User->exists()) {
            throw new NotFoundException(__('Invalid user'));
        }
          $this->pdfConfig = array(
                'orientation' => 'portrait',
                'filename' => 'User_' . $id
            );

        $this->set('user', $this->User->read(null, $id));
    }

我也加了

 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
        ),
        'orientation' => 'landscape',
        'download' => true
    ));

现在的问题是,当我尝试执行给我这个错误的代码时 wkhtmltopdf binary is not found or not executable: /usr/bin/wkhtmltopdf 我已经安装了 wkhtmltopdf。在他们使用的 CakePdf 插件代码中

protected $binary = '/usr/bin/wkhtmltopdf';

如何使用这个引擎来解决?如何确定这条路径?

【问题讨论】:

    标签: cakephp wkhtmltopdf


    【解决方案1】:

    我遇到了同样的问题。在我的 Mac 上,正确的路径是 /usr/local/bin/wkhtmltopdf。 为了覆盖默认路径,我在Configure::write 块中添加了一行:

    Configure::write('CakePdf', array(
        'binary' => '/usr/local/bin/wkhtmltopdf', // set the correct path here
        'engine' => 'CakePdf.WkHtmlToPdf',
        'options' => array(
            'print-media-type' => false,
            'outline' => true,
            'dpi' => 96
        ),
        'margin' => array(
            'bottom' => 15,
            'left' => 50,
            'right' => 30,
            'top' => 45
        ),
        'orientation' => 'landscape',
        'download' => true
    ));
    

    【讨论】:

      【解决方案2】:

      如果您使用的是 MAMP 更改

      // app/Plugin/CakePdf/Pdf/Engine/WkHtmlToPdfEngine.php
      protected $binary = '/usr/bin/wkhtmltopdf';
      

      // app/Plugin/CakePdf/Pdf/Engine/WkHtmlToPdfEngine.php 
      protected $binary = '/usr/local/bin/wkhtmltopdf';
      

      【讨论】:

        【解决方案3】:

        whereis wkhtmltopdf 在命令行中。

        【讨论】:

        • "我已经安装了 wkhtmltopdf。", "我如何确定这个路径"。这告诉我他已经安装了 wkhtmltopdf,但它不在代码预期的位置,他想确定二进制文件的路径。如果是这样,我的回答是正确的。如果我误解了,我会让作者告诉我其他的。
        • @Alimon Karim Btw 这个声明$this->autoRander="false"; 不会做任何事情。属性名称是autoRender,它的值需要是布尔值而不是字符串。
        • 我的引擎有问题。我需要 WkHtmlToPdf 的帮助。我已经安装了它,但它不工作。它在实时服务器中工作吗?
        猜你喜欢
        • 2012-08-21
        • 1970-01-01
        • 2017-10-04
        • 2014-10-18
        • 2013-10-05
        • 1970-01-01
        • 2013-03-24
        • 2013-08-25
        • 2021-10-07
        相关资源
        最近更新 更多