Sie sind auf Seite 1von 5

INTRODUO:

Para quem no conhece o FPDF uma classe desenvolvida para PHP por Olivier PLATHEY,
para a criao de arquivos PDF, veja mais detalhes aqui.
Essa classe muito fcil de ser utilizada, e possui toda a documenta traduzida para o
portugus e vrios outros idiomas no site citado acima, sem falar que por ter sido
feito em PHP da para ler a classe se voc abrir o cdigo fonte para edio.
INSTALAO:
1- Baixe o pacote no site http://www.fpdf.org/ (no menu lateral clique em DOWNLO
AD), no existe diferenas no pacote ZIP ou no TGZ, s o formato de compactao mesmo. At
dia que escrevi este post, a ltima verso disponvel er a 1.7 (2011-06-18).
2- Descompacte o arquivo dentro da pasta do seu servidor, vou colocar como exemp
lo a pasta padro do Apache:
LINUX: $ tar -xvf fpdf17.tgz /srv/http/fpdf
Windows: Descompactar na pasta C:\Apache\htdocs\
Pronto instalao concluida. Agora abra o seu arquivo PHP e mos na massa.
fpdf/fpdf.php
Dentro desse arquivo esto todas as classe que poderemos utilizar para a criao do PD
F, sugiro que leia o cdigo desse arquivo, exitem algumas variveis interessantes e
d para entender o escopo das funes.
MO NA MASSA
geraPdf.php
Como o FPDF uma classe, ele deve ser requerido no arquivo PHP que criar o arquivo
PDF, voc precisar saber o local correto onde o FPDF est instalado.
Caso o seu arquivo PHP esteja no mesmo nvel de pasta utilize o comando assim:
1
<?php require('fpdf/fpdf.php'); ?>
Caso esteja em um nvel acima, utilize assim:
1
<?php require('../fpdf/fpdf.php'); ?>
Sem esse require , ou se o local estiver errado, o FPDF no ir existir para o nosso ar
quivo PHP.
<?php
require('../fpdf/fpdf.php');
// Aqui criamos o objeto $pdf que ter as funes da nossa classe pai.
// Aqui j podemos passar algumas variveis.
// O primeiro a orientao da pgina:
// ("P" ou "portrait" = retrato) ("L" ou "landscape" = paisagem)
// O segundo a unidade metrica que voc ir utilizar:
// ("pt" = pontos) ("mm" = milimetros) ("cm" = centimetros) ("in" = polegadas)
// O terceiro o tamanho da pgina/papel
// "A3", "A4", "A5", "letter" e "legal" so os tamanho j pr-definidos, mas
// tambm pode ser passado o tamanho por meio de um array array('largura','altur
a')
// onde os valores largura e altura podem ser qualquer nmero real maior que '0'
.
// caso algum ou nenhum valor for passado, ir assumir o
// Escopo: FPDF($orientation='P', $unit='mm', $size='A4')
$pdf=new PDF("P","mm","A4");

// Define o autor do documento


// A primeira informao passada o nome do autor.
// A segunda informando, se ela codificada em UTF8 (1 = sim) (0 = no)
// Para o caso de se ter problemas com acentuao
// Valor default somente no campo UTF8, $author obrigatrio:
// Escopo: SetAuthor($author, $isUTF8=false)
$pdf->SetAuthor("Carlos Fagiani Junior",0);
// Define o ttulo do documento
// A primeira informao passada o ttulo.
// A segunda informando, se ela codificada em UTF-8 (1 = sim) (0 = no)
// Valor default somente no campo UTF8, $title obrigatrio:
// Escopo: SetTitle($title, $isUTF8=false)
$pdf->SetTitle("Criando PDF com FPDF e PHP",0);
// O FPDF tem uma contagem interna de pginas, e o nmero total pode ser usado
// passado a 'alias' padro '{nb}', caso queira trocar essa alias utilize o
// comando abaixo, no caso troquei para '{np}', pode ser qualquer coisa, {tota
lPag}
// Escopo com valor default: AliasNbPages($alias='{nb}')
$pdf->AliasNbPages('{np}');
// Aqui so definidas as margens da pgina, lembrando que a unidade mtrica
// foi definida em milmetros.
// Essa funo pode ser redefinida para cada pgina, bastando reescrevela
// margem direita, margem superior, margem esquerdo
// 10mm = 1cm dmmmmm
// Valor default 10,30,10 para a pgina A4
// Escopo: SetMargins($left, $top, $right=null)
$pdf->SetMargins(10,30,10);
//Adiciona uma pgina
// O primeiro a orientao da pgina:
// ("P" ou "portrait" = retrato) ("L" ou "landscape" = paisagem)
// O segundo o tamanho da pgina/papel
// "A3", "A4", "A5", "letter" e "legal", tambm pode ser passado por um array
// array('largura','altura')
// Default, pega o valor do documento:
// Escopo: AddPage($orientation='', $size='')
$pdf->AddPage();
// Apartir daqui comeamos a escrever no documento
// Define a fonte, o estilo e o tamanho da fonte.
// ver a pasta "/fpdf/font/" para verificar as fontes suportadas
// Escopo: SetFont($family, $style='', $size=0)
$pdf->SetFont('Arial','B',12);
// S se consegue escrever no PDF dentro de uma cell ou multicell
// cell s escreve uma linha
// O primeiro a largura
// O segundo a altura
// O terceiro o texto em s
// O quarto se vai ter borda ou no (1=sim) (0=no)
// O quinto eu realmente no sei para que serve, mas tem alguma coisa a ver com
// a margem
// O sexto o alinhamento do texto na pgina
// O sete e o oito tambm no sei<img width="16" height="16" class="wp-smiley emoj
i" draggable="false" alt=":/" src="https://s1.wp.com/wp-content/mu-plugins/wpcom
-smileys/uneasy.svg" style="height: 1em; max-height: 1em;">

// ("L" = Esquerda) ("R" = Direita) ("C" = Centralizado)


// Escopo: Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $
link='')
$pdf->cell(0,0,"texto alinhado ao centro",0,0,"C");
// Quebra de linha, pode ser definido o tamanho da altura
// Escopo: Ln($h=null);
$pdf->Ln(10);
$pdf->cell(0,0,"Texto alinhado a esquerda",0,0,"L");
$pdf->Ln(10);
$pdf->cell(0,0,"Texto alinhado a direita",0,0,"R");
// multicell escreve vrias linhas, aceita o comando "\n" para quebra de linha
// O primeiro a largura
// O segundo a altura
// O terceiro o texto em s
// O quarto se vai ter borda ou no (1=sim) (0=no)
// O quinto o alinhamento do texto na pgina
// O setimo preenchimento, mas no sei como se aplica<img width="16" height="16"
class="wp-smiley emoji" draggable="false" alt=":/" src="https://s1.wp.com/wp-co
ntent/mu-plugins/wpcom-smileys/uneasy.svg" style="height: 1em; max-height: 1em;"
>
// Escopo: MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false)
$pdf->MultiCell(0,0,"Aqui vai um texto longo,para que possa ser feito a quebra
de linha, como voc pode ver isso acontecendo aqui, essa forma boa para textos lo
ngo, para textos curtos prefervel a utilizao da funo 'cell'. a quebra de linha\n pode
ser feito com o \\n \n OK",0,"J");
// Gera o arquivo PDF
// Caso no passe nunhum parmetro, o pdf ser enviado para o browser.
// O primeiro o nome do arquivo "arquivo.pdf"
// O segundo o destino ("I" = Saida padro) ("D" = Download)
// ("F" = Salva para arquivo local) ("S" = retorna como string)
// Escopo: Output($name='', $dest='')
$pdf->Output();

?>
Pronto seu PDF est gerado, agora s brincar com a organizao das celulas, e demais opes
Existem vrias funes para se aprender. Em um prximo post, vou mostrar como fazer cab
ealho e rodap, somente nas pginas desejadas.
Aqui uma lista de variveis e funes que voc pode chamar para aperfeioar o seu PDF.
Ex: $pdf->author //retorna o nome do autor do documento, caso ele tenha sido def
inido
Ento por hoje s, fiquem com a lista abaixo, caso queiram perguntar algo sobre elas
var
var
var
var
var
var
var
var
var
var
var

$page; // current page number


$n; // current object number
$offsets; // array of object offsets
$buffer; // buffer holding in-memory PDF
$pages; // array containing pages
$state; // current document state
$compress; // compression flag
$k; // scale factor (number of points in user unit)
$DefOrientation; // default orientation
$CurOrientation; // current orientation
$StdPageSizes; // standard page sizes

var $DefPageSize; // default page size


var $CurPageSize; // current page size
var $PageSizes; // used for pages with non default sizes or orientations
var $wPt, $hPt; // dimensions of current page in points
var $w, $h; // dimensions of current page in user unit
var $lMargin; // left margin
var $tMargin; // top margin
var $rMargin; // right margin
var $bMargin; // page break margin
var $cMargin; // cell margin
var $x, $y; // current position in user unit
var $lasth; // height of last printed cell
var $LineWidth; // line width in user unit
var $fontpath; // path containing fonts
var $CoreFonts; // array of core font names
var $fonts; // array of used fonts
var $FontFiles; // array of font files
var $diffs; // array of encoding differences
var $FontFamily; // current font family
var $FontStyle; // current font style
var $underline; // underlining flag
var $CurrentFont; // current font info
var $FontSizePt; // current font size in points
var $FontSize; // current font size in user unit
var $DrawColor; // commands for drawing color
var $FillColor; // commands for filling color
var $TextColor; // commands for text color
var $ColorFlag; // indicates whether fill and text colors are different
var $ws; // word spacing
var $images; // array of used images
var $PageLinks; // array of links in pages
var $links; // array of internal links
var $AutoPageBreak; // automatic page breaking
var $PageBreakTrigger; // threshold used to trigger page breaks
var $InHeader; // flag set when processing header
var $InFooter; // flag set when processing footer
var $ZoomMode; // zoom display mode
var $LayoutMode; // layout display mode
var $title; // title
var $subject; // subject
var $author; // author
var $keywords; // keywords
var $creator; // creator
var $AliasNbPages; // alias for total number of pages
var $PDFVersion; // PDF version number
function FPDF($orientation= P , $unit= mm , $size= A4')
function SetMargins($left, $top, $right=null)
function SetLeftMargin($margin)
function SetTopMargin($margin)
function SetRightMargin($margin)
function SetAutoPageBreak($auto, $margin=0)
function SetDisplayMode($zoom, $layout= default )
function SetCompression($compress)
function SetTitle($title, $isUTF8=false)
function SetSubject($subject, $isUTF8=false)
function SetAuthor($author, $isUTF8=false)
function SetKeywords($keywords, $isUTF8=false)
function SetCreator($creator, $isUTF8=false)
function AliasNbPages($alias='{nb} )
function Error($msg)

function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function
function

Open()
Close()
AddPage($orientation= , $size= )
Header()
Footer()
PageNo()
SetDrawColor($r, $g=null, $b=null)
SetFillColor($r, $g=null, $b=null)
SetTextColor($r, $g=null, $b=null)
GetStringWidth($s)
SetLineWidth($width)
Line($x1, $y1, $x2, $y2)
Rect($x, $y, $w, $h, $style= )
AddFont($family, $style= , $file= )
SetFont($family, $style= , $size=0)
SetFontSize($size)
AddLink()
SetLink($link, $y=0, $page=-1)
Link($x, $y, $w, $h, $link)
Text($x, $y, $txt)
AcceptPageBreak()
Cell($w, $h=0, $txt= , $border=0, $ln=0, $align= , $fill=false, $link= )
MultiCell($w, $h, $txt, $border=0, $align= J , $fill=false)
Write($h, $txt, $link= )
Ln($h=null)
Image($file, $x=null, $y=null, $w=0, $h=0, $type= , $link= )
GetX()
SetX($x)
GetY()
SetY($y)
SetXY($x, $y)
Output($name= , $dest= )

Das könnte Ihnen auch gefallen