Fpdf - Tutorial
-
Upload
flaviano-silva -
Category
Documents
-
view
25 -
download
9
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.