https://wkhtmltopdf.org
https://github.com/FriendsOfCake/CakePdf
Pobrać plik instalacyjny silnika ze strony i zainstalować
# dpkg -i wkhtmltox_0.12.5-1.stretch_amd64.deb
Podlinkować do domyślnej lokalizacji
# ln -s /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
Zainstalować plugin
# composer require friendsofcake/cakepdf
Jako opcjonalny silnik można zainstalować mPdf
# composer require mpdf/mpdf
Zarejestrowanie rozszerzenia PDF w config/routes.php
$routes->extensions(['json', 'pdf']);
Załadowanie pluginu z konsoli
# bin/cake plugin load CakePdf -b
bootstrap.php – załadowanie i konfiguracja bezp.
Plugin::load('CakePdf', ['bootstrap' => true]);
bootstrap.php
Configure::write('CakePdf', [ 'engine' => 'CakePdf.WkHtmlToPdf', // 'engine' => 'CakePdf.Mpdf', 'binary' => '/usr/local/bin/wkhtmltopdf', 'margin' => [ 'bottom' => 15, 'left' => 15, 'right' => 15, 'top' => 15 ], 'orientation' => 'portrait' ]);
W kontrolerze SlidesController.php
$this->viewBuilder()->setOptions([ 'pdfConfig' => [ 'orientation' => 'portrait', 'title' => "Slajd nr ". $slide->nr, //'download' => true, //'filename' => 'Slajd nr '.$slide->nr ] ]);
Layout PDF
src/Template/Layout/pdf/default.ctp
Widok dla poszczególnych pozycji
src/Template/Slides/pdf/view.ctp