No post anterior, falei sobre a biblioteca mPDF, para geração de arquivos PDF.
Hoje, apresento uma forma de integrar essa biblioteca no framework CodeIgniter.
Download mPDF: http://mpdf.bpm1.com/
Download CodeIgniter: http://codeigniter.com/
Dê um nome qualquer a pasta do mPDF, vou considerar daqui pra frente como “mpdf_lib“.
Coloque a pasta mpdf_lib dentro do CodeIgniter, na pasta “system/plugins”
Ficaremos então com a seguinte estrutura:
Feito isso, vamos criar o plugin que será invocado para gerar os pdfs:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); function pdf($html, $filename=null) { require_once("mpdf_lib/mpdf.php"); $mpdf = new mPDF(); //$mpdf->allow_charset_conversion=true; //$mpdf->charset_in='iso-8859-1'; //Exibir a pagina inteira no browser //$mpdf->SetDisplayMode('fullpage'); //Cabeçalho: Seta a data/hora completa de quando o PDF foi gerado + um texto no lado direito //$mpdf->SetHeader('{DATE j/m/Y H:i}|{PAGENO}/{nb}|Texto no cabeçalho'); //Rodapé: Seta a data/hora completa de quando o PDF foi gerado + um texto no lado direito //$mpdf->SetFooter('{DATE j/m/Y H:i}|{PAGENO}/{nb}|Texto no rodapé'); $mpdf->WriteHTML($html); // define um nome para o arquivo PDF if($filename == null){ $filename = date("Y-m-d_his").'_impressao.pdf'; } $mpdf->Output($filename, 'I'); } /* End of file mpdf_pdf_pi.php */ /* Location: ./system/plugins/mpdf_pi.php */ |
Salve esse código na pasta “system/plugins” como o nome “mpdf_pi.php“.
PS: As linhas comentadas não são obrigatórias, mas são apenas um exemplo de coisas que já podem ser setadas por default, quando gerar o PDF, para mais opções, recomendo consultar a documentaçao do mPDF.
Para utilizar o plugin nos controllers/views… basta chamar dessa maneira:
$this->load->plugin('mpdf'); $html = "<html>"; $html .= "<head></head>"; $html .= "<body>Meu arquivo de teste</body>"; $html .= "</html>"; // Opcional: Também é possivel carregar uma view inteira... //$html = $this->load->view('uma_view_qualquer', null, true); pdf($html); |
Para que não seja necessário fazer “load” do plugin toda vez que precisar utilizá-lo, basta configurar para que ele seja carregado automaticamente pelo codeigniter. Para isso, abra o arquivo “/system/application/config/autoload.php“, e troque a linha…
$autoload['plugin'] = array(); |
…Por…
$autoload['plugin'] = array("mpdf"); |
Espero ter ajudado.
Qualquer dúvida, podem perguntar nos comentários que respondo assim que possível.
Abraço!