Após a instalação do Cake 2.4.6, estamos então com esta página:
O TCPDF pode ser baixado em http://sourceforge.net/projects/tcpdf/files/, a versão que está sendo usada neste artigo é a 6.0.062.
Depois do download, descompactamos o arquivo e copiamos a pasta tcpdf para app/Vendor em nosso aplicativo.
Para que os navegadores reconheçam que o arquivo gerado deva ser tratado como um PDF, escolhendo o tipo de aplicação correto, vamos criar um layout em app/View/Layouts/pdf.ctp.
Para este teste vamos criar um arquivo em app/Controller chamado EtiquetasController.php e criar dois métodos:
Agora as views para os métodos em app/View/Etiquetas
Em index.ctp, só precisamos de um link para a página viewPdf.
Bom, agora vamos criar nosso PDF.
No método viewPdf() temos que indicar o layout e chamar a renderização da página.
public function viewPdf() {
$this->layout = 'pdf';
$this->render();
}
E na view, carregamos o TCPDF e montamos o arquivo:
<?php App::import('Vendor','tcpdf/tcpdf'); //carrega o construtor do pdf $Pdf = new TCPDF(); $Pdf->setPrintHeader(false); $Pdf->setPrintFooter(false); $Pdf->SetMargins(10, 20, 0); $Pdf->AddPage('P','A4'); $html = ' <h1> PDF gerado pelo TCPDF</h1> <p>As configurações para cabeçalho e rodapé foram zeradas</p>'; $Pdf->writeHTML($html); echo $Pdf->Output('etiqueta.pdf','I');
Neste exemplo, antes de adicionar uma nova página, desabilito o cabeçalho e rodapé padrão do TCPDF. E o resultado:
Na página do TCPDF há uma vasta documentação e exemplos de uso.
4 comentários:
Obrigado Francisco! Funcionou!
Error: Call to a member function setPrintHeader() on a non-object
File: C:\wamp\www\testtcpdf\app\View\Etiquetas\view_pdf.ctp
Line: 4
Notice: If you want to customize this error message, create app\View\Errors\fatal_error.ctp
Help me , please !!!
Tente rodar com os cabeçalhos e rodapeś padrão do TCPDF
Comente ou exclua as linhas:
$Pdf->setPrintHeader(false);
$Pdf->setPrintFooter(false);
Rode de novo e veja se agora funciona. Se não funcionar, a instalação do TCPDF deve ser revisada.
Até...
Obrigado mano pela dica, funciona.
Espero que ajude mais vezes sobre este brilhante framework (Cakephp).
Postar um comentário