我正在尝试实现 Ceeram 设计的 CakePDF 插件。
我正在使用 CakePHP 2,我在 windows vista 上使用 wamp 在本地工作。我按照自述文件中的所有内容进行操作,但在某些时候遇到了困难。
我首先想做的是使用 WkHtmlToPdf 引擎将 HTML 链接转换为 PDF。我看到很多人在让它工作时遇到问题,所以我将在以下不同的步骤中详细介绍。
第 1 步:Ceeram 的 CakePdf 插件
我在https://github.com/ceeram/CakePdf下载了插件 我将包含的文件夹提取到 app/Plugin/CakePdf
第 2 步:引导程序
我添加了以下几行 - app/Config/bootstrap.php :
CakePlugin::load('CakePdf', array('bootstrap' => true, 'routes' => true));
Configure::write('CakePdf', array(
'engine' => 'CakePdf.WkHtmlToPdf'
),
'orientation' => 'portrait',
'download' => true
));
第 3 步:控制器
我创建了我的控制器“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));
}
}
第 4 步:查看
我在我的视图文件夹中创建了一个 pdf 文件夹,并在 app/View/Invoices/pdf/view.ctp 中创建了 view.ctp。
第 5 步:布局
我在布局文件夹中创建了一个 pdf 文件夹并创建了 app/View/Layouts/pdf/default.ctp
就是这样。在我看来,我无法从 URL 制作 PDF 文件。虽然我不得不提到我是 OOP 和 CakePHP 的新手,所以如果你能告诉我如何完成这项工作,我将非常感激。我相信它会对其他人有所帮助,因为有很多像我这样的新手想要这样做,但因为这都是为高级程序员准备的,我们无法弄清楚如何将这些部分组合在一起。
非常感谢您的理解和帮助!
[每当有一个新的答案可以改进它时,这个帖子都会被修改]