- Como Criar Um Site, Blog – WebMaster.pt - http://www.webmaster.pt -

Criar PDF Através do PHP

Tweet [3]

Uma das perguntas mais procuradas na Internet (e uma das mais temidas) é sobre como criar ficheiros em PDF usando o PHP!

Na prática temos uma grande quantidade de tutoriais, mas até hoje não encontrei nenhum que disponibilizasse uma solução completa disponível para testes.

Hoje falaremos sobre 2 soluções que são as mais usadas e daremos 2 exemplos de seu uso. ok?

No final da matéria você poderá pegar estes ficheiros na íntegra e dar andamento aos seus serviços.

Falando Sobre O FPDF:

O FPDF é a base de vários sistemas existentes para a criação de Ficheiros em PDF.

Apesar de ser mais fácil de mexer, seu conteúdo é mais simples e antigo. Mesmo assim ele ainda é muito usado, pois se você quiser imprimir textos sem grandes formatações, ele poderá fazer!

Caso seja necessário criar algo em HTML ele lhe dará mais trabalho (por isso recomendamos o TCPDF para esta finalidadee).

OBS.: Esse Sistema não dá suporte a versões antigas do PHP (Ex.: Versão PHP 4).

Usando O FPDF:

Conforme falei acima, o uso deste ficheiro é super simples e não lhe exigirá muitos recursos.

Como padrão, você mexerá em 3 ficheiros, que são esses: “ex.php”, “WriteHTML.php” e “fpdf.php”.

Veja abaixo o código fonte do “ex.php”:


<?php

require('WriteHTML.php');

$pdf=new PDF_HTML();
$pdf->AddPage();
$pdf->SetFont('Arial');

$html1 = 'Default <font face="courier">Courier <font face="helvetica">Helvetica <font face="times">Times <font face="dejavusans">dejavusans </font>Times </font>Helvetica </font>Courier </font>Default';
$html2 = '<small>small text</small> normal <small>small text</small> normal <sub>subscript</sub> normal <sup>superscript</sup> normal';
$html3 = "<font size='10' color='#ff7f50'>The</font> <font size='10' color='#6495ed'>quick</font> <font size='14' color='#dc143c'>brown</font> <font size='18' color='#008000'>fox</font> <font size='22'><a href='http://www.tcpdf.org'>jumps</a></font> <font size='22' color='#a0522d'>over</font> <font size='18' color='#da70d6'>the</font> <font size='14' color='#9400d3'>lazy</font> <font size='10' color='#4169el'>dog</font>.";

$html = $html1.'<br>'.$html2.'<br>'.$html3.'<br>'.$html3.'<br>'.$html2;

// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output('materia-PDF.pdf','I');
?>

Obs.: Como padrão o Internet Explorer salva o conteúdo dentro do diretório. Já o Mozilla lhe permite salvar o PDF em seu próprio computador.

Partindo do padrão acima, você pode melhorar a função e criar algo que lhe seja útil.

Quer ver como ficou a impressão em PDF?

Visite na pasta FPDF o ficheiro com nome “materia-PDF.pdf”.

Falando Sobre O TCPDF:

Bem… se você gosta de apresentar qualidade a seu cliente e não se importa em investir tempo no Projeto, o “TCPDF” é para você!

Diferente do FPDF ele é um pouco mais difícil de se usar, mas após descobrir seus segredos, você só vai usar esta solução.

Assim como o FPDF ele também tem seu ficheiro chave (que é o “tcpdf.php”, assim como o tcpdf_config.php).

Configurando esses 2 ficheiros adequadamente, você terá como usá-lo em qualquer Projeto sem qualquer problema.

OBS.: Na Internet e no site oficial você encontra este pacote completo, mas está com erro!

Até para facilitar em sua utilização, efetuei as correções devidas e disponibilizei o pacote completo para download.

Usando O TCPDF:

Abaixo vamos expor o ficheiro “index.php” com as configurações solicitadas em um Projeto.

Até para facilitar, como o ficheiro é um pouco extenso, vou comentar o conteúdo. ok?


<?php
require_once('config/lang/eng.php');
require_once('tcpdf.php');

// cria um novo documento PDF
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// seta as informações do documento (ex. Autor, Título, Assunto e Palavras Chave)
// OBS.: Se você quiser colocar o nome do autor, por exemplo, pode preencher o campo abaixo - dentro da aspas
$pdf->SetCreator(PDF_CREATOR);
//$pdf->SetAuthor('');
//$pdf->SetTitle('');
//$pdf->SetSubject('');
//$pdf->SetKeywords('');

// seta o que entrará dentro de Header (em meu caso, disponibilizei uma imagem)
$pdf->SetHeaderData(PDF_HEADER_LOGO);

// seta as fontes usadas no Header e no Rodapé
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// seta as fontes que entraram como monospace
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//seta as margens
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//seta o break automático feito na página
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

//set some language-dependent strings
$pdf->setLanguageArray($l);

// ---------------------------------------------------------

// seta a fonte usada no documento (em meu caso, estou usando a Helvetica tamanho 10)
$pdf->SetFont('helvetica', '', 10);

// Adiciona uma página
$pdf->AddPage();

// Texto usado na página
$html = '<h1>WebMaster Criando PDF atraves do PHP</h1>
Alguns caracteres especiais: &lt; € &euro; &#8364; &amp; è &egrave; &copy; &gt; \\slash \\\\double-slash \\\\\\triple-slash

<h2>Dicas Interessantes</h2>

Alguns desenvolvedores tem dúvidas ao trabalhar com alguns caracteres. Por esse motivo, postamos abaixo alguns exemplos:

<ol>
  <li><b>Texto com Negrito</b></li>
  <li><i>Texto com Italico</i></li>
  <li><u>Texto com Underline</u></li>
  <li><b>b<i>Lorem<u>Lorem</u>bi</i>b</b></li>
  <li><a href="http://www.qsasolucoescorporativas.com.br" dir="ltr">link to http://www.qsasolucoescorporativas.com.br</a></li>
  <li>Lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor, lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum  dolor.</li>
  <li>SUBLIST
    <ol>
      <li>row one
        <ul>
          <li>sublist</li>
        </ul>
      </li>
      <li>row two</li>
    </ol>
  </li>
  <li><b>T</b>E<i>S</i><u>T</u> <del>line through</del></li>
  <li><font size="+3">font + 3</font></li>
  <li><small>small text</small> normal <small>small text</small> normal <sub>subscript</sub> normal <sup>superscript</sup> normal</li>
</ol>

<dl>
  <dt>Carro</dt>
  <dd>Black hot drink</dd>
  <dt>Leite</dt>
  <dd>Branco e Preto</dd>
</dl>

<div style="text-align:center">VISUALIZANDO UM MAPA<br />
<img src="imagens/mapa_peq.jpg" border="0" />
</div>';

$html2 = utf8_encode($html);

// Imprime o conteúdo do documeto
$pdf->writeHTML($html2, true, false, true, false, '');fpdf, PDF, PHP, tcpdf

// Reseta a partir deste ponto, para partir para a outra página
$pdf->lastPage();

// Fecha o documento e imprime o PDF
$pdf->Output('webmaster.pt.pdf', 'I');

?>

Quer ver como ficou a impressão em PDF?

Visite na pasta TCPDF o ficheiro com nome “webmaster.pt.pdf”.

E aí, gostou da matéria?

Espero que você se adapte bem a estes sistemas…

Na internet você encontra várias dicas específicas sobre sua utilização, mas partindo desses modelos, você conseguirá fazer qualquer impressão. Seja ela de um relatório ou documento.

Faça download do código usado neste tutorial: Criando PDF Através do PHP [4]

pdf

Tweet [3]
Be Sociable, Share!
  • [5]
  • [6]
  • [7]
  • [8]
  • [9]