Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf ·...

17
Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos PDF DOMPDF (https://github.com/barryvdh/laravel-dompdf )

Transcript of Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf ·...

Page 1: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

Desenvolvimento Web II

Gil Eduardo de Andrade

Framework Laravel 5Gerando Documentos PDF – DOMPDF

(https://github.com/barryvdh/laravel-dompdf)

Page 2: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF

Introdução:

• Durante o desenvolvimento de diversos tipos deaplicações web torna-se necessário gerardocumentos (relatórios, certificados, recibos) emformato PDF;

• Nesse contexto, podemos utilizar, quandoestamos desenvolvendo aplicações Laravel, opacote DOMPDF ;

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Page 3: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF

Introdução:

• O pacote DOMPDF possui como vantagem apossibilidade de criarmos um documento PDF apartir de uma View Laravel;

• Essa característica permite ao desenvolvedormodelar/construir o formato do documento PDFvia código HTML, Blade, etc.;

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Page 4: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDFInstalação (via composer):$ composer require barryvdh/laravel-dompdf

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Page 5: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF

Configuração – Provider:(Arquivo: config/app.php)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Após a instalação doDOMPF é preciso definirum provedor de serviçopara o novo pacoteinstalado. Os provedoresde serviço Laravel sãoresponsáveis porinicializar/carregar todosos principais serviços daaplicação quando ela éexecutada.

Page 6: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF

Configuração – Alias:(Arquivo: config/app.php)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Após configurar o provedor de serviço para o DOMPDF, vamos definirum Alias (apelido) para que possamos invocar os métodos dos pacoteDOM de modo transparente, permitindo simplificar a codificaçãonecessária para gerar os documentos PDF.

Page 7: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDFAplicação Exemplo

http://www.gileduardo.com.br/ifpr/dwii/downloads/dwii_exdoc13.zip

Page 8: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDFAplicação Adaptada

SETA – Menu e Rotas Principais:(Adaptação: Exemplo Primeira Aula Laravel - DOMPDF)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Page 9: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF Aplicação Adaptada

SETA – Models / Migrations – Aluno:(Arquivos: create_aluno_models_table.php)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Uma classe de modelo e uma migration foram criadas para armazenar as informações dosalunos, que serão utilizadas para geração de relatório e certificado. Para o exemplo propostoconsideramos que os alunos possuem um identificador, um nome, um curso e uma turma.

Page 10: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF Aplicação Adaptada

SETA – View Aluno:(Arquivos: aluno.blade.php)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Relatório e Certificado Coletivo

Relatório e Certificado Individual

Page 11: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF Aplicação Adaptada

SETA – View Relatório PDF:(Arquivos: alunoRelatorio.blade.php)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Uma nova View foi criada para gerar orelatório dos alunos em formato PDF.Por se tratar de uma View, a linguagemHTML é utilizada para definir o formatoou estrutura desse relatório.

Assim como visto nas primeiras aulas épossível enviar dados para uma View emanipulá-los e exibí-los via Blade.

Page 12: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF Aplicação Adaptada

SETA – View Relatório PDF:(Arquivo: alunoRelatorio.blade.php)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Relatório PDF Gerado a partir da ViewalunoRelatório.blade.php

Page 13: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF Aplicação Adaptada

SETA – View Certificado PDF:(Arquivos: alunoCertificado.blade.php)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Para geração dos certificados, é necessáriogerar uma nova página dentro dodocumento PDF para cada um doscertificados dos alunos. Como oscertificados são modelados por uma View,foi definida uma <div> contendo um page-break-before.

A <div> “page_break” é invocada sempreque um novo certificado vai ser gerado.

Foi definida, também, uma linha sólidapara sempre que um novo parágrafo (tag<p>) é criado.

Page 14: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF Aplicação Adaptada

SETA – View Certificado PDF:(Arquivos: alunoCertificado.blade.php)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Para obter o caminho dasimagens, de modo que elaspossam ser carregadas pelopacote DOM, é necessárioutilizar o método public_path()via abertura da tag “<?php”.

Para adicionar as imagens para o certificado também utilizamosa tag “<?php”, passando para tag <img> as variáveis php criadasanteriormente com os caminhos previamente definidos.

PS. o restante do código não é detalhado porque trata-se de HTML puro, que não faz partedo escopo da disciplina.

Page 15: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF Aplicação Adaptada

SETA – View Certificado PDF:(Arquivo: alunoCertificado.blade.php)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Certificado PDF Gerado a partir da View

alunoCertificado.blade.php

Page 16: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF Aplicação Adaptada

SETA – Controller Aluno:(Arquivos: AlunoController.php – Gerar PDF)

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Os parâmetros complementares: “setPaper(‘A4’ , ‘portrait’)” e “stream(‘..’)” permitemconfigurar, respectivamente, o tamanho / orientação das páginas do documento e a formacomo o documento deve ser apresentado (stream indica que deve ser aberto no navegador, jádownload indica que deve ser baixado para máquina local).

Método loadView() éinvocado, ele recebe comoparâmetros principais: onome da View(alunoRelatorio) queservirá de referência parageração do documento PDFe os dados(compact(‘alunos’)) queserão utilizados pela View.

Page 17: Desenvolvimento Web II - gileduardo.com.brgileduardo.com.br/ifpr/dwii/downloads/dwii_aula13.pdf · Desenvolvimento Web II Gil Eduardo de Andrade Framework Laravel 5 Gerando Documentos

DOMPDF

Exemplos Utilizados no Documentohttp://www.gileduardo.com.br/ifpr/dwii/downloads/dwii_exdoc13zip

Aula 13: Gerando Documento PDF - Pacote DOMPDF

Exercício sobre o Conteúdo

http://www.gileduardo.com.br/ifpr/dwii/downloads/dwii_pratica13.pdf