TCPDF<\/a> herunter und entpackt es ins Verzeichnis \/vendors von cakephp, welches sich auf der gleichen Ebene wie \/app und \/cake befindet. Man sollte nun ein Verzeichnis \/vendors\/tcpdf finden.<\/p>\nAnpassungen am Controller<\/h2>\n
Einen Controller sollte man bereits erstellen k\u00f6nnen. Wir gehen hier lediglich auf die Methode ein, die man f\u00fcr die Darstellung hinzuf\u00fcgen sollte. Hier \u00e4ndert sich eigentlich nichts, als wenn man seine Daten auch auf der Webseite anzeigen lassen w\u00fcrde, nur dass man das layout entsprechend anpasst. In dem Beispiel gehen wir davon aus, dass es ein Model namens Bill gibt.<\/p>\n
function view($id = null) {\r\n\t$data = $this->Bill->find('first', array('conditions' => array('Bill.id' => $id)));\r\n\t$this->set('bill', $data);\r\n\t$this->layout = 'pdf';\r\n\t$this->render();\r\n}<\/code><\/pre>\nEin Laden der TCPDF – Komponente ist im Controller nicht notwendig. Somit muss man sich nicht um Geschwindigkeitseinbu\u00dfen sorgen oder einen extra Controller f\u00fcr die PDF-Anzeige erstellen.<\/p>\n
Layout<\/h2>\n
Damit CakePHP nicht das normale Layout rendered, ben\u00f6tigen wir also neben dem default.ctp noch ein weiteres Layout, welches wir pdf.ctp nennen und unter \/app\/views\/layouts\/pdf.ctp zu finden sein sollte. In dem Controller haben wir TCPDF bereits mittels $this->layout = 'pdf';<\/code> mitgeteilt, dass er diese Datei nutzen soll:<\/p>\n<?php\r\n\theader('Content-Type: application\/pdf');\r\n\techo $content_for_layout;\r\n?><\/code><\/pre>\nView<\/h2>\n
In der View wird nun endlich TCPDF geladen und mittels App::import('Vendor','tcpdf\/tcpdf');<\/code> eingebunden. That’s it! Nun kann man beliebige PDFs erstellen und mittels $bill wie in einer normalen CakePHP-View auf die Daten zugreifen.<\/p>\n<?php\r\nApp::import('Vendor','tcpdf\/tcpdf');\r\n\/\/ ganz viel Code zum Erstellen von PDFs\r\n\/\/ z.B. http:\/\/www.tecnick.com\/pagefiles\/tcpdf\/example_001.phps\r\n$pdf->Output('bill.pdf', 'I');\r\n?><\/code><\/pre>\nWieder einmal erkennt man das CakePHP eine gute L\u00f6sung zum Umgang mit externen Ressources gefunden hat. Die Code\u00e4nderungen bleiben \u00fcbersichtlich und man kommt schnell zum gew\u00fcnschten Resultat. <\/p>\n