Posts TaggedPDF

Gerando documentos PDF com FPDF – Parte 02

Antes tarde do que nunca. Hoje iremos falar do método AddFont(). Este método serve para importar uma nova font TrueType ou Type1 ao documento PDF.

Ingredientes:

  • Conversor de fonts TrueType/Type1
  • Fonts TrueType/Type1
  • FPDF

>> ttf2pt1

Se você é usuário *nix, baixe a última versão aqui: http://ttf2pt1.sourceforge.net/download.html se for usuário windows, tente aqui: http://gnuwin32.sourceforge.net/packages/ttf2pt1.htm ou aqui: http://public.box.net/ischool

Após concluir o download, descompacte o arquivo em um diretório de sua preferência. Vá até a console ( bash, ksh, etc ou prompt de comando para os usuários do windows )  e execute o comando:

Windows
C:\Downloads\ttf2pt1>ttf2pt1 -a C:\WINDOWS\Fonts\Verdana.ttf Verdana
Linux
$./ttf2pt1 -a /mnt/WINDOWS/Fonts/Verdana.ttf Verdana

O comando acima irá produzir dois arquivos. Um com a extensão .AFM e o outro T1A. Agora vamos retornar ao PHP. Pegue os balai de gato gerados anteriormente e a fonte ttf ( em nosso caso Verdana.ttf ) e leve para o diretório font do FPDF. Agora estamos prontos pra criar o arquivo que irá gerar as fonts que serão usadas de fato em nosso script PHP. Crie um script PHP com o código abaixo.

<?php
require_once ‘makefont/makefont.php’;
MakeFont( ‘Verdana.ttf’, ‘Verdana.afm’, ‘ISO-8859-1′ );
?>

Tá pronta a bagaça. Agora basta executar o arquivo via CLI ( linha de comando ) ou por HTTP mesmo.

Pronto, agora você tem dois arquivos novos: Verdana.php e Verdana.z. Agora você já pode usar sua font Verdana em suas relatórios em PDF usando o método AddFont() como no exemplo abaixo.

<?phpdefine(“FPDF_FONTPATH”,”font/”);

require_once “fpdf_dir/fpdf.php”;

$pdf = &new FPDF(”L”,”mm”,”A4″);
$pdf->Open();
$pdf->AddPage();
$pdf->AddFont(“Verdana”);
$pdf->SetFont(“Verdana”,”B”, 14);
$pdf->Text(40,20,”Título do Relatório”);
$pdf->SetLineWidth(0.7);
$pdf->Line(40,22,200,22);
$pdf->SetXY(40,26);
$pdf->SetFont(,,12);
$pdf->Cell(30,5,”Modelo”,0,0,”C”,0);
$pdf->Cell(30,5,”Fabricante”,0,0,”C”,0);
$pdf->Output();

?>

É isso ai, mangaba não é não? Se ainda tiverem dúvidas, olhem este artigo feito pela iSchool http://ischool.000webhost.info/php/curso-fpdf-recursos-2 que é muito bom.

Abraços e até a próxima!

4 comments Abril 28, 2008

Gerando documentos PDF com FPDF – Parte 01

Olá pessoal!

Hoje vou iniciar uma série de postagens sobre como gerar documentos em PDF usando a classe FPDF.
Por agora vou mostrar como fazer a configuração básica e criar um exemplo funcional. Go, Go, Go!!

Você pode baixar o FPDF no site oficial do projeto: http://www.fpdf.org/. Para começar a criar seus arquivos em PDF, basta copiar os arquivos para seu servidor web. Certifique-se de que os arquivos estão no seu include path.

Vamos então à um exemplo prático:

<?php

define(‘FPDF_FONTPATH’,'font/’);

require(‘fpdf_dir/fpdf.php’);

$pdf = &new FPDF(“L”,”mm”,”A4″);
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont(‘Arial’,'B’, 14);
$pdf->Text(40,20,’Título do Relatório’);
$pdf->SetLineWidth(0.7);
$pdf->Line(40,22,200,22);
$pdf->SetXY(40,26);
$pdf->SetFont(”,”,12);
$pdf->Cell(30,5,’Modelo’,0,0,’C',0);
$pdf->Cell(30,5,’Fabricante’,0,0,’C',0);
$pdf->Output();
?>

Explicando o código:

Define o caminho para as fonts usadas pelo FPDF. Em outro post irei explicar como criar suas próprias fonts.
define(‘FPDF_FONTPATH’,'font/’);

Inclui as definições da classe FPDF no script PHP.
require(‘fpdf_dir/fpdf.php’);

Cria uma nova instância da classe FPDF para um documento com orientação paisagem (Landscape), com medidas em milímetros e no formato A4. Feito isso, o documento é iniciado.
$pdf = &new FPDF(“L”,”mm”,”A4″);

$pdf->Open();

Adiciona uma nova página ao documento.
$pdf->AddPage();

Define a font do documento como Arial, tamanho 14 em negrito. Essa configuração será válida até que SetFont() seja chamado novamente.
$pdf->SetFont(‘Arial’,'B’, 14);

Escreve o texto “Título do Relatório” na linha 40 (eixo x) e coluna 20 (eixo y)
$pdf->Text(40,20,’Título do Relatório’);

Cria uma linha horizontal logo abaixo do texto definido anteriormente.
$pdf->SetLineWidth(0.7);
$pdf->Line(40,22,200,22);

Aponta o cursor para a posição (x,y) definida em SetXY(). Retira o negrito da font e altera o tamanho para 12.
$pdf->SetXY(40,26);
$pdf->SetFont(”,”,12);

Cria duas células com as mesmas dimensões ( 30mm de largura e 5mm de altura ), sem borda, apontando o cursor para o final da linha, após a célula criada, com o texto alinhado no centro e com prenchimento transparente.
$pdf->Cell(30,5,’Modelo’,0,0,’C',0);
$pdf->Cell(30,5,’Fabricante’,0,0,’C',0);

Finalmente, renderiza o seu documento \o/.
$pdf->Output();

Encoding

Caso você tenha problemas com acentuação na saída do documento, use a função iconv do PHP. Nela você irá converter um texto de um charset de origem para outro de destino. Use desta forma:
$pdf->Text(40,20,iconv(‘utf-8′,’iso-8859-1′,’Título do Relatório’));

É isso ai, espero que tenham gostado. Um abraço e até o próximo post.

7 comments Abril 21, 2008


 

Dezembro 2009
S T Q Q S S D
« Out    
 123456
78910111213
14151617181920
21222324252627
28293031  

Arquivos

Tópicos recentes

Tags

Addfont apache Aplicações audio bash Carreira desabilitado desativado Desktop diminuir Documento emprego Encoding Firefox FPDF Gerenciador Google GTK+ HDA iconv iReport Jasper jasperserver Java Linux MakeFont mudo mysql Partição PDF Perl PHP postgres procedure redimensionar Relatorio script shell shrink SLACKWARE som ttf2pt1 vaga Vista Windows

Categorias

Blogroll