提问者:小点点

CakePHP 2:通过Ceeram实现CakePDF插件


我正在尝试实现Ceeram设计的CakePDF插件。

我正在使用CakePHP 2,我在本地使用wamp在windows vista上工作。我跟踪了自述文件中的所有内容,但在某个时候我被卡住了。

我首先要做的是使用WkHtmlToPdf引擎将HTML链接转换为PDF。我看到很多人都有问题,所以我将在下面的不同步骤中详细介绍。

我在下载了插件https://github.com/ceeram/CakePdf我将包含的文件夹解压缩到app/Plugin/CakePdf中

我添加了以下行-app/Config/bootstrap.php:

CakePlugin::load('CakePdf', array('bootstrap' => true, 'routes' => true));

Configure::write('CakePdf', array(
    'engine' => 'CakePdf.WkHtmlToPdf'
    ),
    'orientation' => 'portrait',
    'download' => true
));

我已经创建了我的控制器“InvoicesController.php”-app/controller/InvoicesController。php:

类InvoicesController扩展了AppController{

    public $components = array('RequestHandler');

    public function view($id = null) {

        $this->Invoice->id = $id;

        if (!$this->Invoice->exists()) {
            throw new NotFoundException(__('Invalid invoice'));
        }

        $this->pdfConfig = array(
            'orientation' => 'portrait',
            'filename' => 'Invoice_' . $id
            );

        $this->set('invoice', $this->Invoice->read(null, $id));
    }
}

我已经在我的视图文件夹中创建了一个pdf文件夹,并创建了视图。应用程序中的ctp/View/Invoices/pdf/View。ctp。

我在布局文件夹中创建了一个pdf文件夹,并创建了app/View/Layouts/pdf/default。ctp

就这样。在我看来,我无法从URL生成PDF文件。虽然我必须提到我是OOP和CakePHP新手,所以如果您能告诉我如何完成这项工作,我将非常感激。我相信这会帮助其他人,因为有很多像我这样的新手想做这件事,但因为这一切都是为高级程序员准备的,我们不知道如何把这些部分组合起来。

非常感谢您的理解和帮助!

[每次有新答案时,本帖子都会修改]


共2个答案

匿名用户

您需要添加请求处理程序组件,并浏览到localhost/invoices/view/1.pdf

看起来我忘记在自述文件中添加RequestHandler组件了。

同样对于WkHtmlToPdf,您需要告诉它在哪里可以找到它,而且由于您在windows上,默认位置肯定不适合您。在windows上安装后,可以使用Configure::write('CakePdf.binary','C:\Program Files\wkhtmltopf\wkhtmltopf.exe')设置位置

匿名用户

您在app/config/routers中缺少此代码。php

路由器::解析扩展();路由器::setExtensions(数组('json','xml','rss','pdf');

详情如下:http://www.dereuromark.de/2014/04/08/generating-pdfs-with-cakephp/