Crie relatórios em pdf a partir da biblioteca PHP e FPDF

Índice
Começamos baixando a biblioteca de www.fpdf.org, uma vez baixado, descompactamos e copiamos o diretório fpdf para o diretório de nosso aplicativo.
Um exemplo simples:
 Adicionar Página (); $ pdf-> SetFont ('Arial', 'B', 16); $ pdf-> Cell (80, 10, 'Esta é uma célula 40 x 10', 1); $ pdf-> Cell (50, 10, '50x10 Cell', 1); $ pdf-> Ln (10); $ pdf-> SetFont ('Arial', 'I', 12); $ pdf-> Cell (80, 10, 'Esta é uma célula 40 x 10', 0); $ pdf-> Cell (50, 10, '50x10 Cell', 0); $ pdf-> Output (); ?> var13 -> 

Chamamos a biblioteca do diretório fpdf, criamos um objeto e adicionamos uma página com AddPage (), definimos a fonte, o estilo e o tamanho. Em seguida, criamos uma célula para conter dados com a seguinte estrutura

$ pdf-> Célula (largura, altura, conteúdo, borda, alinhamento); // Alinhamento L à esquerda, C centrado, R à direita

O resultado do código anterior em pdf será:
A função Output é aquela que mostra o pdf se colocarmos o parâmetro vou enviar o arquivo para o navegador, se colocarmos o parâmetro D mostrar a janela de download, portanto, se no código anterior escrevermos
$ pdf-> Saída ('mipdf.pdf', 'd');

Como resultado, a janela de download aparecerá para salvar o pdf.
Também podemos fazer documentos mais complexos como faturas, orçamentos ou relatórios comerciais, usar bases de dados como o mysql.
No exemplo a seguir, veremos como criar um orçamento com uma imagem de cabeçalho

 Adicionar Página (); $ pdf-> SetFont ('Arial', 'B', 16); // Insiro o cabeçalho colocando uma imagem dentro de uma célula $ pdf-> Cell (700,85, $ pdf-> Image ('./ images / logo-invoice.jpg.webp', 30,12,160), 0,0, ' C '); $ pdf-> Cell (100,12, "Orçamento:". $ fielddb ['nrobudget']); $ pdf-> Cell (100,12, "Date:". date ('d / m / Y')); $ pdf-> Linha (35,40,190,40); $ pdf-> Ln (7); $ pdf-> Cell (100,12, "Nome:". $ dbfield ['nome'])); $ pdf-> Cell (90,12, "Nif:". $ rowcli ['nif']); $ pdf-> Linha (35,48,190,48); $ pdf-> Ln (7); $ pdf-> Cell (100,12, "Endereço:". $ dbfield ['endereço']); $ pdf-> Linha (35,56,190,56); $ pdf-> Ln (7); $ pdf-> Cell (90,12, accents ("Phone:". $ fielddb ['phone'])); $ pdf-> Line (35,62,190,62); $ pdf-> Ln (7); $ pdf-> Cell (100,12, "Computer:". $ fielddb ['computer']); $ pdf-> Line (35,68,190,68); $ pdf-> Ln (9); $ pdf-> SetFont ('Arial', 'B', 10); $ pdf-> Cell (60.12, 'BUDGET'); $ pdf-> Ln (2); $ pdf-> SetFont ('Arial', '', 8); ?> var13 -> 

Então, por meio de uma consulta ao banco de dados mais um loop while, eu gero as outras células e calculo os valores.
 Cell(139,7,acentos($campodb['concepto']),1,0,'1'); [/indent] [indent=1]$pdf->Cell(15,7,chr(128)." ".number_format($campodb['precio'],2,'.',''),1,0,'R'); [/indent] [indent=1]//calculo el total[/indent] $precio=$precio+$campodb['precio']; } ?> 

Em seguida, criamos as células restantes para os totais, IVA e impostos, conforme apropriado
 Ln (7); $ pdf-> Cell (110,7); $ pdf-> Célula (29,8, "TOTAL", 1,0, 'R'); $ pdf-> Cell (15,8, chr (128). "" .number_format ($ priceconiva, 2, '.', ''), 1,0, 'R'); $ pdf-> Ln (20); $ pdf-> Multicell (400,4, "Nota:". $ rowrepar ['notapresu']); ?> var13 -> 

Também adicionamos um Multicell, que cumpre a função de várias células em uma, serve para grandes blocos de texto, como uma nota de rodapé
Finalmente damos um nome ao nosso arquivo, ao qual podemos colocar um id que os enumera de acordo com uma base de dados e definimos a opção de download.
 Saída ($ arquivo, "D"); ?> var13 -> 

Outra aplicação interessante é combinar fpdf com classes para gerar códigos de barras com I25, EAN 39, 128, etc. No site do fpdf, existem alguns exemplos e outros scripts fornecidos pela comunidade para teste. Aqui está um exemplo de um esboço de pagamento que os clientes baixam de um site.

Um problema muito comum que essa biblioteca costuma dar é não respeitar os acentos, podemos resolver isso com uma função e depois revisar cada texto do conteúdo.
 

Desta forma, vamos salvar o problema do FPDF e acentos.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave