Sie sind auf Seite 1von 3

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 ! utili"ei uma classe chamada fpdf #ue hoje
considero a mais popular para gerao de documentos pdf.
$amos l.
1 Baixando os arquivos necessrios
ara isso basta acessar%
http%&&'''.fpdf.org&en&do'nload.php
( escolher a verso mais atual (a verso indicada abai)o verm com a documentao e
um tutorial #ue no tem erro)
*o meu caso o ar#uivo + fpdf,-.."ip
()traia o ar#uivo fpdf,-.."ip para a pasta de prefer/ncia dentro de seu projeto, no meu
caso eu e)trai para a pasta fpdf.
2 Meu primeiro arquivo
ara criar seu primeiro ar#uivo voc/ ter%
require_once("fpdf/fpdf.php");
define('FPDF_FONTPATH','fpdf/font/');
$pdf ! ne" FPDF("P","c#",$rr$%(&'.',(());
$pdf)*Open();
$pdf)*AddP$+e();
$pdf)*,etFont('Ari$-','',&.);
$pdf)*,et/$r+in0(.,.,.);
$pdf)*0et1("(.(2");
$pdf)*0et3("&&.4");
$pdf)*5e--(., ., "node0i+n");
$pdf)*Output("$rqui6o","7");
Calma #ue + mais simples do #ue parece,
re#uire0once(1fpdf&fpdf.php2)3 4 5mporta a classe principal do fpdf
define(6787079*:A:!;,<fpdf&font&;)3 4 8efine #ual o diret=rio onde est centrado
os ar#uivos do fpdf #ue voc/ bai)ou.
ne' 787(12,2cm2,arra>(,?.?,@@))3 4 Cria o objeto da classe fpdf, passando como
argumentos, a orientao da pgina (A para aisagem ou para Betrato), unidade de
medida (cm 4 centimetro e assim vai), e as dimenes da pgina #ue voc/ tamb+m
poder passar as default da classe como AC, A. D ou utili"ar um vetor como eu fi".
Efa, at+ a#ui tudo certo, agora vamos comear a escrever%
Fet7ont(6Arial;,2,,G)3 4 Fetando a fonte #ue ser usada a partir de agora no documento.
()iste uma penca de fontes j implementadas no fpdf e tamb+m tem como adicionar
mais fontes (eu tive #ue fa"er isso e + chato demais), para isso basta consutlar o manual.
FetHargins(G,G,G)3 4 8efine as margens #ue a escrita do documento ser iniciado.
setI(1@.@-J)3 4 8efine em #ual posio de I ser iniciada a escrita em relao a
margem (lembrando #ue foi definido centKmetros como unidade de pgina)
setL(1,,.MJ)3 4 Hesma coisa do setI s= #ue em L () 4 hori"ontal, > 4 vertical)
Cell(G, G, 1nodesign2)3 4 A#ui finalmente agente escreve, no caso passando como
argumento o te)to 1nodesign2 #ue ser impresso no documento, o Cell, representa #ue o
te)to ser de , linha apenas, os argumentos G,G definem a label #ue ir abranger o te)to,
isso + bom mais no caso de alinhar a es#uerda um te)to e a direita o outro, imagina #ue
isso ser 1#uanto esse te)to vai ocupar na tela2 e como voces perceberam foi definido
onde esse te)to ser escrito na tela no setL e setI.
ronto, agora finali"ando.
9utput(1ar#.pdf2,252)3 4 (st + a funo #ue representa como ser a saKda do ar#uivo, se
ser apenas e)ibido na tela (use o default 9utput()) ou como no meu caso eu precisava
do ar#uivo gerado, passei os argumentos 152 #ue gera o ar#uivo e 1ar#.php2 como nome
de saKda do meu ar#uivo.
!nserindo !ma"em
$pdf)*7#$+e('i#+.8p+',&.,&.,9:,9:,8p+);
img.jpg;,,G,,G,.N,.N,jpg 4 *ome do ar#uivo, coordenadas, tamanho da imagem, e
formato, #uer mais fcil #ue isso O
# M$%&ip%as 'in(as
$pdf)*/u-tice--(2, ..2, "node0i+n");
-, G.-, 1nodesign2 4 :amanho da Aabel (fundamental para definir aonde o te)to ir
#uebrar e #uantas linhas ele ter) e te)to a ser e)ibido.
) *ovas Fon&es
Bealmente eu acho essa parte meio chata,
$pdf)*AddFont(';ucon','7','-ucon.php');
F= isso O *o, tem uma penca de coisas, primeiro al+m do ttf em mos + preciso gerar o
mapa de caracteres da fonte e logo em seguida utili"ar um ar#uivo #ue vem junto no
pacote do fpdf%
ttf(pt& )< ); -ucon/$p.#$p c=>font>-ucon.ttf -ucon
7eito isso basta utili"ar o Add7ont mencionado logo acima.
Pual#uer dQvida basta reclamar.
+ ,onver&er H-M' para PDF
5sso eu vi o script recentemente no pr=prio site do fpdf e ainda no testei mais mesmo
assim segue o linR pois parece bem tran#uilo%
http%&&'''.fpdf.org&en&script&inde).php
rocure por Srite !:HA
. Fina%i/ando
Como eu iniciei comentando neste post, a minha aplicao precisava gerar notas fiscais,
a impresso seria utili"ando 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 feli", segue abai)o dicas fundamentais.
Aeia a documentao #ue vem junto ao pacote, ela + F5HA(F 8(HA5F.
$eja os tutoriais #ue tamb+m vem junto ao pacote.