A dica a seguir é um roteiro simples para integrar a biblioteca de renderização de PDF's
mPDF no
CodeIgniter versão 4.
1. Instale com o composer:
Primeiro porque a própria documentação da mPDF recomenda usar o composer para instalar (veja:
Using mPDF without Composer – Installation & Setup – mPDF Manual). Lá, inclusive, é expressamente declarado que não há nenhuma garantia de funcionamento se você resolver instalar de outra maneira.
Depois porque, mais dia menos dia, você que trabalha com PHP precisará conhecer composer de um jeito ou de outro. Assim, sugiro que comece agora a ler
ao menos o básico. Se ainda não instalou,
leia a documentação e instale no seu sistema operacional. Recomendo, fortemente, que você use o padrão de instalação global (veja:
Introduction - Composer), pois aqui eu vou me referir aos comandos sem usar "php composer.phar".
Instalado o composer, é bom que se observe que o
CodeIgniter tem suporte nativo pra ele, e você deve instalar a mPDF na raiz da aplicação, ou seja, no
ROOTPATH, no local onde instalou o framework. No meu caso, o CodeIgniter está instalado em '/opt/codeigniter/ci4'. Esse, portanto, é o meu ROOTPATH. Então:
# cd /opt/codeigniter/ci4
Dentro do 'ROOTPATH', localize o arquivo 'composer.json' e altere a seção 'require':
"require": {
"php": ">=7.2",
"ext-curl": "*",
"ext-intl": "*",
"ext-json": "*",
"kint-php/kint": "^3.3",
"psr/log": "^1.1",
"laminas/laminas-escaper": "^2.6",
"mpdf/mpdf": "^8.0"
},
O meu está assim, o seu pode estar diferente. Mas o princípio é o mesmo. Se o seu 'ROOTPATH' não tem um 'composer.json', crie um e adicione minimamente o seguinte:
{
"name":"nome/seuprojeto",
"description":"Descrição do seu projeto",
"license": "GPL-3.0-or-later",
"authors": [{
"name": "Seu nome",
"email": "seu@email.com",
"homepage": "https://seulinkaqui"
}
],
"require": {
"php": ">=7.2",
"mpdf/mpdf": "^8.0"
}
}
A partir daqui, você já pode usar o comando update do composer pra baixar/atualizar as bibliotecas da sua instalação do CodeIgniter:
# composer update
Aguarde a instalação, corrija os erros que eventualmente surgirem (se surgirem) e verifique se foi criada a pasta 'vendor', que é onde são instaladas as bibliotecas. Dentro dela deve ter um arquivo chamado 'autoload.php', e nessa mesma pasta estará a pasta 'mpdf' (no meu caso, o path ficou '/opt/codeigniter/ci4/vendor/autoload.php').
O próximo passo é dar permissão de escrita ao diretório 'mpdf/mpdf/tmp', conforme
descrito na documentação. Dê permissão de acesso e escrita apenas a este diretório para o usuário que executa o servidor web (no caso do meu Apache, é o 'www-data', mas você pode descobrir qual é o usuário para o seu caso:
Linux: Find Out Apache User Name - nixCraft). No meu ambiente, o comando ficou assim (lembre-se de que estou dentro do meu 'ROOTPATH'):
# chown -R www-data:www-data vendor/mpdf/mpdf/tmp
A partir daqui a classe já está pronta pra uso no framework.
2. Crie o controller:
A seguir, um exemplo muito (muito) básico de como usar a classe num controller:
<?php
namespace App\Controllers;
use App\Models\NewsModel;
use CodeIgniter\Controller;
use \Mpdf\Mpdf; /*Aqui você está declarando a classe instalada com o composer*/
class Pdf extends Controller {
function index() {
$this->response->setHeader('Content-Type', 'application/pdf');
$filename = 'index.pdf';
$mpdf = new Mpdf;
$mpdf→WriteHTML('Esse é um teste básico');
$mpdf->Output($filename,'I');
}
}
Daqui em diante, todas as funcionalidades que podem ser adicionadas estão na
documentação da classe e você pode incrementar esse modelo básico com um monte de outros recursos.
Nenhum comentário foi encontrado.