Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Radubrêdo

Configurar Documento para FPDF

Recommended Posts

Amigos,

 

Tenho o seguinte código abaixo de impressão de relatório. Porém gostaria de configurá-lo para imprimir o relatório em arquivo PDF. Já fiz o dowsnload dos arquivos do FPDF para o servidor. Só falta configurar o arquivo abaixo com os parâmetro do FPDF. Alguem pode me ajudar??

 

Segue o script do relatório:

<?php
/*
* classe RelatorioForm
* relatório de vendas por período
*/

class RelatorioForm extends TPage
{

   private $form;   // formulário de entrada

   /*
    * método construtor
    * cria a página e o formulário de parâmetros
    */
   public function __construct()
   {
       parent::__construct();

       // instancia um formulário
       $this->form = new TForm('form_relat_vendas');

       // instancia uma tabela
       $table = new TTable;

       // adiciona a tabela ao formulário
       $this->form->add($table);

       // cria os campos do formulário
       $data_ini = new TEntry('data_ini');
       $data_fim = new TEntry('data_fim');

       // define os tamanhos
       $data_ini->setSize(100);
       $data_fim->setSize(100);

       // adiciona uma linha para o campo data inicial
       $row=$table->addRow();
       $row->addCell(new TLabel('Data Inicial:'));
       $row->addCell($data_ini);

       // adiciona uma linha para o campo data final
       $row=$table->addRow();
       $row->addCell(new TLabel('Data Final:'));
       $row->addCell($data_fim);

       // cria um botão de ação
       $gera_button=new TButton('gera');

       // define a ação do boão
       $gera_button->setAction(new TAction(array($this, 'onGera')), 'Gerar Relatório');

       // adiciona uma linha para a ação do formulário
       $row=$table->addRow();
       $row->addCell($gera_button);

       // define quais são os campos do formulário
       $this->form->setFields(array($data_ini, $data_fim, $gera_button));

       // adiciona o formulário à página
       parent::add($this->form);
   }

   /*
    * método onGera
    * gera o relatório, baseado nos parâmetros do formulário
    */
   function onGera()
   {


       // obtém os dados do formulário
       $dados = $this->form->getData();

       // joga os dados de volta ao formulário
       $this->form->setData($dados);

       // lê os campos do formulário, converte para o padrão americano
       $data_ini = $this->conv_data_to_us($dados->data_ini);
       $data_fim = $this->conv_data_to_us($dados->data_fim);

       // instancia uma nova tabela
       $table = new TTable;
       $table->border = 1;
       $table->width = '80%';
       $table->style = 'border-collapse:collapse';

       // adiciona uma linha para o cabeçalho do relatório
       $row = $table->addRow();
       $row->bgcolor = '#a0a0a0';

       // adiciona as células ao cabeçalho
       $cell = $row->addCell('Discriminação');
       $cell = $row->addCell('Qtd');
       //$cell = $row->addCell('Destino');
       $cell = $row->addCell('Valor Unitário');
       $cell = $row->addCell('Sub Total');
       $cell->align = 'right';


       try
       {
           // inicia transação com o banco 'sq_livro'
           TTransaction::open('sq_livro');

           // instancia um repositório da classe Venda
           $repositorio = new TRepository('Venda');

           // cria um critério de seleção por intervalo de datas
           $criterio = new TCriteria;
           $criterio->add(new TFilter('data_venda', '>=', $data_ini));
           $criterio->add(new TFilter('data_venda', '<=', $data_fim));
           $criterio->setProperty('order', 'id_cliente');

           // lê todas vendas que satisfazem ao critério
           $vendas = $repositorio->load($criterio);

           // verifica se retornou algum objeto
           if ($vendas)
           {
                   $sub_total =0;
                   $total_qtde=0;

               // percorre as vendas
               foreach ($vendas as $venda)
               {
                   // adiciona uma linha à tabela e define suas propriedades
                   $row = $table->addRow();
                   $row->bgcolor = "#e0e0e0";

                   // adiciona células para data da venda e dados do cliente
                   //$cell = $row->addCell($this->conv_data_to_br($venda->data_venda));
                   //$cell = $row->addCell($venda->id_cliente . ' : ' . $venda->cliente->nome);
                   $cell->colspan=3;


                       // percorre os itens da venda

                       foreach ($venda->itens as $item)
                        {
                       // adiciona uma linha para cada item da venda
                          $row = $table->addRow();

                          // adiciona as células com os dados do item

                          $cell = $row->addCell($item->descricao);
                          $cell = $row->addCell($item->quantidade);
                          $cell = $row->addCell(number_format($item->preco_venda,2,',','.'));
                          $cell->align = 'right';
                          $cell = $row->addCell(number_format(($item->quantidade) * ($item->preco_venda),2,',','.'));
                          $cell->align = 'right';

                          // acumula totais de valor e quantidade
                          $sub_total += $item->quantidade * $item->preco_venda;

                        }
                      // adiciona uma linha para os totais da venda
                         $row = $table->addRow();


             }
              $cell = $row->addCell('<b>Total</b>');
              $cell = $row->addCell('');
              $cell = $row->addCell('');
              $cell = $row->addCell('<b>'.number_format($sub_total,2,',','.').'</b>');
              $cell->align = 'right';
           }

           // finaliza a transação
           TTransaction::close();
       }
       catch (Exception $e)		     // em caso de exceção
       {
           // exibe a mensagem gerada pela exceção
           new TMessage('error', $e->getMessage());
           // desfaz todas alterações no banco de dados
           TTransaction::rollback();
       }
       // adiciona a tabela à página
       parent::add($table);
   }

   /*
    * método conv_data_to_us()
    * Converte uma data para o formato yyyy-mm-dd
    * @param $data = data no formato dd/mm/yyyy
    */
   function conv_data_to_us($data)
   {
       $dia = substr($data,0,2);
       $mes = substr($data,3,2);
       $ano = substr($data,6,4);
       return "{$ano}-{$mes}-{$dia}";
   }

   /*
    * método conv_data_to_br()
    * Converte uma data para o formato dd/mm/yyyy
    * @param $data = data no formato yyyy-mm-dd
    */
   function conv_data_to_br($data)
   {
       // captura as partes da data
       $ano = substr($data,0,4);
       $mes = substr($data,5,2);
       $dia = substr($data,8,4);

       // retorna a data resultante
       return "{$dia}/{$mes}/{$ano}";
   }


}
?>

 

Ainda não consegui!

Alguem me ajuda??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha cara eu tive esse mesmo problema fiz o seguinte e consegui:

 

//inclusão da biblioteca

 

 

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

require('fpdf/fpdf.php');

 

// bd.php deve conter as funções para se conectar no banco de dados

include("funcoes.php");

$conexao = conectaBD();

conectaBD();

// busca os dados no banco de dados

 

$sql = "SELECT * from Cliente ORDER BY data DESC ";

$busca = mysql_query($sql);

 

 

$pdf = new FPDF(); .....

 

ve se da certo pois você tem que incluir a blibioteca.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara FPDF é fogo.. mta coisinha para configurar .. existe algo mais simples.. chama-se MPDF .. você baixa a lib e usa assim:

 

<?php  

ob_start();  //inicia o buffer  

?>  


<b>aqui você insere o html que quiser, com css e td que tem direito</b>  


<?php  

$html = ob_get_clean();  
// pega o conteudo do buffer, insere na variavel e limpa a memória  

$html = utf8_encode($html);  

// converte o conteudo para uft-8  

define('MPDF_PATH', 'classes/mpdf411/');  

include(MPDF_PATH.'mpdf.php');  

// inclui a classe  

$mpdf = new mPDF();  

// cria o objeto  

$mpdf->allow_charset_conversion=true;  

// permite a conversao (opcional)  

$mpdf->charset_in='UTF-8';  

// converte todo o PDF para utf-8  

$mpdf->WriteHTML($html);  

$mpdf->Output();  

exit();  

?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá FBrandt!

 

Tentei mas nao consegui. Poderia me dizer como ficaria meu código postado acima, utilizando o MPDF??

 

 

cara FPDF é fogo.. mta coisinha para configurar .. existe algo mais simples.. chama-se MPDF .. você baixa a lib e usa assim:

 

<?php  

ob_start();  //inicia o buffer  

?>  


<b>aqui você insere o html que quiser, com css e td que tem direito</b>  


<?php  

$html = ob_get_clean();  
// pega o conteudo do buffer, insere na variavel e limpa a memória  

$html = utf8_encode($html);  

// converte o conteudo para uft-8  

define('MPDF_PATH', 'classes/mpdf411/');  

include(MPDF_PATH.'mpdf.php');  

// inclui a classe  

$mpdf = new mPDF();  

// cria o objeto  

$mpdf->allow_charset_conversion=true;  

// permite a conversao (opcional)  

$mpdf->charset_in='UTF-8';  

// converte todo o PDF para utf-8  

$mpdf->WriteHTML($html);  

$mpdf->Output();  

exit();  

?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.