Fpdf - Tutorial

4
PHP, Gerando Arquivos PDF (FPDF) A pouco tempo atrás, em uma de minhas aplicações, precisei recorrer ao pdf para gerar notas fiscais (sim notas fiscais) portando precisei rala um pouco para configurar fontes ajustar margens e tudo mais, sendo assim resolvi escrever sobre. Como minha aplicação foi feita em PHP utilizei uma classe chamada fpdf que hoje considero a mais popular para geração de documentos pdf. Vamos lá. 1 – Baixando os arquivos necessários Para isso basta acessar: http://www.fpdf.org/en/download.php E escolher a versão mais atual (a versão indicada abaixo verm com a documentação e um tutorial que não tem erro) No meu caso o arquivo é fpdf153.zip Extraia o arquivo fpdf153.zip para a pasta de preferência dentro de seu projeto, no meu caso eu extrai para a pasta fpdf. 2 – Meu primeiro arquivo Para criar seu primeiro arquivo você terá: require_once("fpdf/fpdf.php"); define('FPDF_FONTPATH','fpdf/font/'); $pdf = new FPDF("P","cm",array(17.7,22)); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('Arial','',10); $pdf->SetMargins(0,0,0); $pdf->setY("2.25"); $pdf->setX("11.6");

Transcript of Fpdf - Tutorial

PHP, Gerando Arquivos PDF (FPDF)

PHP, Gerando Arquivos PDF(FPDF)

A pouco tempo atrs, em uma de minhas aplicaes, precisei recorrer ao pdf para gerar notas fiscais (sim notas fiscais) portando precisei rala um pouco para configurar fontes ajustar margens e tudo mais, sendo assim resolvi escrever sobre.

Como minha aplicao foi feita em PHP utilizei uma classe chamada fpdf que hoje considero a mais popular para gerao de documentos pdf.

Vamos l.

1 Baixando os arquivos necessrios Para isso basta acessar:

http://www.fpdf.org/en/download.php E escolher a verso mais atual (a verso indicada abaixo verm com a documentao e um tutorial que no tem erro)

No meu caso o arquivo fpdf153.zip

Extraia o arquivo fpdf153.zip para a pasta de preferncia dentro de seu projeto, no meu caso eu extrai para a pasta fpdf.

2 Meu primeiro arquivoPara criar seu primeiro arquivo voc ter:

require_once("fpdf/fpdf.php");define('FPDF_FONTPATH','fpdf/font/');$pdf = new FPDF("P","cm",array(17.7,22));$pdf->Open();$pdf->AddPage();$pdf->SetFont('Arial','',10);$pdf->SetMargins(0,0,0);$pdf->setY("2.25");$pdf->setX("11.6");$pdf->Cell(0, 0, "nodesign");$pdf->Output("arquivo","I");Calma que mais simples do que parece,

require_once(fpdf/fpdf.php); = Importa a classe principal do fpdf

define(FPDF_FONTPATH,'fpdf/font/); = Define qual o diretrio onde est centrado os arquivos do fpdf que voc baixou.

new FPDF(P,cm,array(17.7,22)); = Cria o objeto da classe fpdf, passando como argumentos, a orientao da pgina (L para Paisagem ou P para Retrato), unidade de medida (cm = centimetro e assim vai), e as dimenes da pgina que voc tambm poder passar as default da classe como A4, A3 ou utilizar um vetor como eu fiz.

Ufa, at aqui tudo certo, agora vamos comear a escrever:

SetFont(Arial,,10); = Setando a fonte que ser usada a partir de agora no documento. Existe uma penca de fontes j implementadas no fpdf e tambm tem como adicionar mais fontes (eu tive que fazer isso e chato demais), para isso basta consutlar o manual.

SetMargins(0,0,0); = Define as margens que a escrita do documento ser iniciado.

setY(2.25); = Define em qual posio de Y ser iniciada a escrita em relao a margem (lembrando que foi definido centmetros como unidade de pgina)

setX(11.6); = Mesma coisa do setY s que em X (x = horizontal, y = vertical)

Cell(0, 0, nodesign); = Aqui finalmente agente escreve, no caso passando como argumento o texto nodesign que ser impresso no documento, o Cell, representa que o texto ser de 1 linha apenas, os argumentos 0,0 definem a label que ir abranger o texto, isso bom mais no caso de alinhar a esquerda um texto e a direita o outro, imagina que isso ser quanto esse texto vai ocupar na tela e como voces perceberam foi definido onde esse texto ser escrito na tela no setX e setY.

Pronto, agora finalizando.

Output(arq.pdf,I); = Est a funo que representa como ser a sada do arquivo, se ser apenas exibido na tela (use o default Output()) ou como no meu caso eu precisava do arquivo gerado, passei os argumentos I que gera o arquivo e arq.php como nome de sada do meu arquivo.

3 Inserindo Imagem$pdf->Image('img.jpg',10,10,38,38,jpg);img.jpg,10,10,38,38,jpg = Nome do arquivo, coordenadas, tamanho da imagem, e formato, quer mais fcil que isso ?

4 Mltiplas Linhas$pdf->Multicell(5, 0.5, "nodesign");5, 0.5, nodesign = Tamanho da Label (fundamental para definir aonde o texto ir quebrar e quantas linhas ele ter) e texto a ser exibido.

5 Novas FontesRealmente eu acho essa parte meio chata,

$pdf->AddFont('Lucon','I','lucon.php');S isso ? No, tem uma penca de coisas, primeiro alm do ttf em mos preciso gerar o mapa de caracteres da fonte e logo em seguida utilizar um arquivo que vem junto no pacote do fpdf:

ttf2pt1 -b -L luconMap.map c:\font\lucon.ttf luconFeito isso basta utilizar o AddFont mencionado logo acima.

Qualquer dvida basta reclamar.

6 Converter HTML para PDFIsso eu vi o script recentemente no prprio site do fpdf e ainda no testei mais mesmo assim segue o link pois parece bem tranquilo:

http://www.fpdf.org/en/script/index.phpProcure por Write HTML7 FinalizandoComo eu iniciei comentando neste post, a minha aplicao precisava gerar notas fiscais, a impresso seria utilizando impressora matricial foi muito complicada (pdf e matricial no combinam), na base da muita porrada eu consegui resolver o problema das fontes no fpdf e acabo todo mundo feliz, segue abaixo dicas fundamentais.

Leia a documentao que vem junto ao pacote, ela SIMPLES DEMAIS.

Veja os tutoriais que tambm vem junto ao pacote.