CRIANDO E GERANDO PDF NO PHP COM A BIBLIOTECA PDML

quinta-feira, 5 de junho de 2008 | Marcadores: , , | |

A PDML é uma biblioteca que permite a criação e geração de PDFs no PHP de uma maneira super fácil para quem já é familiarizado com o HTML, se tornando tão fácil a criação e geração de PDFs por ela quanto se criar uma página em HTML.

Ela utiliza como base a linguagem de marcação de mesmo nome, que é totalmente escrita em PHP, e a classe FPDF.

Uma vez tendo baixado a biblioteca, descompacte ela em um diretório de sua preferência e ela já estará pronta para uso.

Um exemplo básico de PDF gerado usando ela:

<?
require_once("pdml.php");
?>
<pdml>
<body>
<i><u>Testando a biblioteca PDML</u></i><br />
<br />
A criação de PDF pela <b>PDML</b> é tão simples quanto criar um documento <b>HTML</b>.<br />
<br />
<a href="http://www.htmlstaff.org">http://www.htmlstaff.org</a>
</body>
</pdml>

Agora vamos para a parte mais avançada

Conhecendo as principais funções

Abaixo estão relacionadas as principais funções que serão utilizadas para a criação do arquivo, com a respectiva descrição.

SetFont - Define a fonte que será usada para imprimir o texto. É obrigatório setar ao menos uma vez a fonte que será utilizada no documento.

SetTitle - Define o título do documento.

SetSubject - Define o assunto do documento.

SetX - Define a abscissa da posição corrente. A grosso modo podemos dizer que informa a posição a partir da margem esquerda do documento.

SetY - Explicando de uma forma simples, indica a linha (posição vertical).

Cell - Imprime uma célula (área retangular) com bordas opcionais, cor de fundo e texto. O canto superior-esquerdo da célula corresponde à posição atual. O texto pode ser alinhado ou centralizado. Depois de chamada, a posição atual se move para a direita ou para a linha seguinte. É possível pôr um link no texto. Se a quebra de página automática está habilitada e a pilha for além do limite, uma quebra de página é feita antes da impressão.

Ln - Faz uma quebra de linha. A abscissa corrente volta para a margem esquerda e a ordenada é somada ao valor passado como parâmetro.

MultiCell - Este método permite imprimir um texto com quebras de linha. Podem ser automática (assim que o texto alcança a margem direita da célula) ou explícita (através do caracter n). Serão geradas tantas células quantas forem necessárias, uma abaixo da outra.

Image - Permite inserir uma imagem no documento. Os tipos permitidos são JPG e PNG.

AddPage - Acrescenta uma página ao documento.

PageNo - Informa a página atual.

AliasNbPages - Define um apelido para a impressão do número total de páginas.

Header e Footer - Estes métodos inserem automaticamente o cabeçalho e rodapé das páginas do documento. Porém, para utilizá-las, é necessário criar uma subclasse para sobrepor os métodos originais.

Output - Envia o documento para o destino informado. Pode-se abrir o arquivo no navegador, fazer o download ou mesmo salvar o arquivo no disco.

OBSERVAÇÃO:

Sempre que for necessário setar a posição X e Y, sete primeiro o Y e depois o X.

Criando nosso primeiro documento

<?

require_once("pdf/fpdf.php");

$texto = "Os arquivos PDF se transformaram ao longo do tempo em um padrão para troca de documentos. Desde relatórios até contratos, este formato
tem sido usado em larga escala devido a sua portabilidade - é possível abrir arquivos deste tipo em qualquer sistema operacional - além de, geralmente, ser um arquivo pequeno.
Isso sem falar que um arquivo PDF não pode ser modificado, garantindo, desta forma, que o arquivo irá sempre manter o mesmo conteúdo. Eu arriscaria dizer, ainda, que passa uma
aparência mais profissional enviar um arquivo em formato PDF, ao invés de outros formatos, como DOC, por exemplo.";

//defininfo a fonte !
define("FPDF_FONTPATH","pdf/font/");

//instancia a classe
//uso: FPDF(orientacao - retrato ou paisagem), unidade de medida, tamanho do papel)
$pdf = new FPDF("P","mm","A4");

//define a fonte a ser usada
//uso: SetFont(nome da fonte, estilo (branco = normal, b = negrito, i = italico, u = sublinhado), tamanho da fonte)
$pdf->SetFont("arial","",10);

//define o titulo
$pdf->SetTitle("Criando nosso primeiro arquivo PDF !");

// seta a posicao vertical e horizontal
$pdf->SetY("-1");

//assunto
$pdf->SetSubject("Criação de arquivos PDF com PHP!");

//escreve o texto
//uso: Cell(largura, altura, conteudo, borda, quebra de linha, alinhamento (L = esquerdo, R = direito, C = centralizado)
$pdf->Cell(0,5,"Criando arquivos PDF com PHP",0,0,'L');
$pdf->Cell(0,5,"http://fdweb.com.br",0,1,'R');
$pdf->Cell(0,0,"",1,1,'L');
$pdf->Ln(8);

//Seta a fonte do texto do documento
$pdf->SetFont("arial",'',8);

// insere a imagem
//uso: Image(caminho, posicao X,posicao Y,altura, largura)
//$pdf->Image(”http://fdweb.com.br/downloads/logo.jpg”, $pdf->GetX(), $pdf->GetY(), 20, 20);
$pdf->Image("imgs/curriculum/1.jpg",10,30,40,60);

//posiciona horizontalmente
$pdf->SetY("30");
$pdf->SetX("50");

//Insere o texto do documento
//uso: MultiCell(largura, altura, conteudo, borda, quebra de linha, alinhamento (L = esquerdo, R = direito, C = centralizado, J = justificado)
$pdf->MultiCell(0,5,$texto,0,'L',0);

$pdf->Output("imgs/curriculum/teste.pdf");
?>

Prontinho Fácil, fácil!

DOWNLOAD A CLASSE AQUI

Site Oficial: http://pdml.sourceforge.net/

0 comentários: