uso do dompdf

1,503 views
Skip to first unread message

Paulo Balzi

unread,
Jan 16, 2008, 9:33:12 PM1/16/08
to LISTA PHP
Pessoal, estou querendo usar o dompdf junto com o CI.
Eu consegui fazer alguns testes, mas não estou conseguindo colocar
imagem no pdf, ele não pega a imagem que está no html q eu quero
gerar???
outra coisa q eu não entendi. Pra mudar o tamanho da pagina (letter,
A4, A3, etc), eu só posso fazer alterando a variável na mão, ou tem
algum método que faz isso?

se alguém tiver algum código simples que contemple essas dúvidas, eu
agradeceria.
só pra ter noção de como funciona a classe.

valeu

Paulo Balzi

Ney Estrabelli

unread,
Jan 17, 2008, 5:35:39 AM1/17/08
to list...@googlegroups.com
Fala Paulo, Blz.

Eu cheguei a sofrer um pouquinho para entender o dompdf, mas é relativamente simples.

Eu desenvolvi um sistema de controle de notas fiscais integrado com um sistema de turismo e uso o dompdf para gerar alguns relatórios.


Quem faz a jogada é um php que lê um html e adiciona o que eu preciso, nesse html eu adicionei:

<script type="text/php">
if(isset($pdf)){
  $footer = $pdf->open_object();

  $w = $pdf->get_width();
  $h = $pdf->get_height();

  // Draw a line along the bottom
  $y = $h - 2 * 8 -24;
  //$pdf->line(16, 50, $w - 16, 50, Array(0.1,0.1,0.1), 1);
  //$pdf->line(16, $y, $w - 16, $y, Array( 0.1,0.1,0.1), 1);
    $y1=50;
    $x1=10;
    $pdf->rectangle($x1, $y1, $w-20, $h-100, array(0,0,0), 1);
 
  $font = Font_Metrics::get_font("verdana", "bold");
  $pdf->page_text(200, 18, utf8_encode("Relatório de Notas Fiscais {STATUS}"), $font, 16, array(0,0,0));
  $pdf->page_text(465, 35, utf8_encode("Período de {DTINI} à {DTFIM}"), $font, 10, array(0,0,0));
  $font = Font_Metrics::get_font("Helvetica", "bold");
  $text = "Pagina {PAGE_NUM} of {PAGE_COUNT}"; 
  $pdf->page_text(16, $y, $text, $font, 8, array(0,0,0));
  $text = "apps informatica - www.apps.com.br";
  $pdf->page_text(450, $y, $text, $font, 8, array(0,0,0));
  $image = "/var/www/html/eclipse/imagens/gsa/img_dir{DIR}.gif";
  if(file_exists($image)) {
          $pdf->image($image,'gif', 10, 10, 85, 35);
  }
  $pdf->close_object();

  $pdf->add_object($footer, "all");


}
</script>

dentro do body, desta forma o dompdf vai fazer um retangulo na folha inteira (borda), vai adicionar cabeçalho em todas as paginas, o site no rodape, logo no canto esquerdo e numero de paginas.

No php :

       //cria a instancia
        $dompdf = new DOMPDF();
       //passa o html para ele
        $dompdf ->load_html(utf8_decode($pg_pdf->saida()));
      //renderiza
        $dompdf->render();
       //cria o pdf
        $pdf = $dompdf->output();

        $nomepdf = date("ymdHis")."CTRLNF.pdf";
        $arquivo = "pdf/relnf/".$nomepdf;
        //salva o arquivo
        file_put_contents($arquivo,$pdf);
      

Você pode jogar o pdf direto para o browser, da forma acima eu gero ele em um diretorio e mostro o link para baixar.
Quanto ao configurar pagina, vc pode montar um classe que extende da dompdf e montar do seu jeito.

Qualquer coisa só perguntar.

2008/1/17 Paulo Balzi <paulo...@gmail.com>:



--
Ney Estrabelli
http://www.neyestrabelli.com
meu blog sobre games...

Paulo Balzi

unread,
Jan 17, 2008, 7:32:25 AM1/17/08
to list...@googlegroups.com
Nei, valeu pela resposta, estou estudando o código aqui.
depois virão mais dúvidas....hehehe....

Mas tira uma agora, no caso do dompdf, ele consegue gerar um pdf a partir de um html q eu passo pra ele, isso eu fiz e funcionou, mas qdo esse html tem uma imagem (<img src=""/>), ele não renderiza ou renderiza apenas o html.
no caso da imagem, eu tenho q passar de outra maneira???

outra coisa, todos esse métodos, estão na classe.pdf.php, certo???

valeu de novo.


2008/1/17 Ney Estrabelli < neyest...@gmail.com>:



--
Paulo Balzi

Ney Estrabelli

unread,
Jan 17, 2008, 5:39:33 PM1/17/08
to list...@googlegroups.com
Não cheguei a fazer nada com img src mas pelo que vi no site deles era para funcionar.

Na documentação tem um exemplo com imagem da uma olhada.

Esses metodos sao da classe pdf



2008/1/17 Paulo Balzi <paulo...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages