wiki:WF/Relatoriospdf

Relatórios Pdf

Classe: wf_fpdf

Esta classe tem como finalidade gerar relatórios em PDF (é uma modificação da classe  FPDF).

Métodos

Alguns métodos abaixo foram criados e outros apenas sobrescreveram métodos originais da classe. Para uma lista completa métodos oferecidos por esta classe, consulte:

Observação: em alguns tutoriais, a classe FPDF é estendida. No entanto, a classe wf_fpdf não pode ser estendida e, portanto foram criados outros artifícios (como os métodos abaixo) para que a classe não perca suas funcionalidades.

setHeaderFunction

Descrição: Define a função que irá gerar o cabeçalho do relatório.

Parâmetros:

$funcaoHeader: o nome da função (em string) que irá gerar o cabeçalho do relatório.

Retorno: <nenhum>

Observação: a função que irá gerar o cabeçalho deve ser declarada para receber um único parâmetro, que é uma instância da classe wf_fpdf.

Exemplo de utilização:

function meuCabecalho($fpdf)

{

	$fpdf->SetFont('Arial','B',15);

	$fpdf->Cell(80);

	$fpdf->Cell(80,10,'Meu cabeçalho',1,0,'C');

	$fpdf->Ln(20);

}

$pdf = $this->factory->getInstance("wf_fpdf");

$pdf->setHeaderFunction("meuCabecalho");

setFooterFunction

Descrição: Define a função que irá gerar o rodapé do relatório.

Parâmetros:

:$funcaoHeader: o nome da função (em string) que irá gerar o rodapé do relatório.

Retorno: <nenhum>

Observação: a função que irá gerar o rodapé deve ser declarada para receber um único parâmetro, que é uma instância da classe wf_fpdf.

Exemplo de utilização:

function meuRodape($fpdf)

{

	$fpdf->SetFont('Arial','B',15);

	$fpdf->Cell(80);

	$fpdf->Cell(80,10,'Meu rodapé',1,0,'C');

	$fpdf->Ln(20);

}

$pdf = $this->factory->getInstance("wf_fpdf");

$pdf->setFooterFunction("meuRodape");

Output

Descrição: Retorna o código do arquivo PDF gerado.

Parâmetros: <nenhum>

Retorno: o código (em string) do arquivo PDF gerado.

Exemplo de utilização:

$pdf = $this->factory->getInstance("wf_fpdf");

//codigo que irá gerar o relatório

$codigoPDF = $pdf->Output();

Exemplo utilizando atividades e Mvc:

No template da Atividade:

{wf_download_link getParams="action=pdf" text="gerar pdf"}

No controller da Atividade:

function pdf()
{
   $this->model->pdfAction();
}

Na Model da Atividade:

function pdfAction()
{
   function enviarArquivo($params)
   {
       $pdf = $this->factory->getInstance('wf_fpdf');

       $pdf->AddPage();
       $pdf->SetFont('Arial','B',16);
       $pdf->Cell(40,10,'Hello World!');
       return array(
           'filename' => 'meu_pdf.pdf',
           'content' => $pdf->Output());
   }
   wf_handle_download($_GET, "enviarArquivo");
}