ES
Cabeçalho de Relatório usando TTableWriterPDF
Fechado
Olá pessoal!
Estou precisando criar um cabeçalho fixo, que apareça em todas as páginas do relatório e como são relatórios tabulares optei por utilizar a classe nativa do framework TTableWriterPDF para essas atividades, porém ela não contempla a geração de cabeçalho.
Será que alguém tem alguma luz para esse problema sem utilizar o fpdf direto?
Estou precisando criar um cabeçalho fixo, que apareça em todas as páginas do relatório e como são relatórios tabulares optei por utilizar a classe nativa do framework TTableWriterPDF para essas atividades, porém ela não contempla a geração de cabeçalho.
Será que alguém tem alguma luz para esse problema sem utilizar o fpdf direto?
Eliezer
Tive uma necessidade parecida fiz o seguinte, criei um relatório em excel e exportei tem uma classe muito boa PHPExcel, vc cria o modelo e depois escreve os dados foi uma opção. somente estou tentando ajudar... abraços..
Oi Eliezer,
Vou lhe adiantar uma solução vinda do futuro (próxima versão):
1) Passo 1:
Acrescente um método chamado getNativeWriter() na TTableWriterPdf:
public function getNativeWriter()
{
return $this->pdf;
}
2) Passo 2:
Crie 2 métodos novos na FPDF:
function setHeaderCallback($cb)
{
$this->headerCallback = $cb;
}
function setFooterCallback($cb)
{
$this->footerCallback = $cb;
}
3) Passo 3:
Altere os métodos Header() e Footer() da FPDF:
function Header()
{
if (is_callable($this->headerCallback))
{
call_user_func( $this->headerCallback, $this );
}
//To be implemented in your own inherited class
}
function Footer()
{
if (is_callable($this->footerCallback))
{
call_user_func( $this->footerCallback, $this );
}
//To be implemented in your own inherited class
}
4) Passo 4:
Use o código criado para definir o cabeçalho. Basta definir o método de escrita de cabeçalho.
$writer->getNativeWriter()->setHeaderCallback( array($this, 'header') );
Dentro do método, você recebe o objeto $pdf, que é um objeto FPDF. Ali, basta usar qualquer método da própria FPDF.
function header($pdf)
{
$pdf->SetFont('Arial','B',15);
// Move to the right
$pdf->Cell(80);
// Title
$pdf->Cell(30,10,'Title',1,0,'C');
// Line break
$pdf->Ln(20);
}
5) Passo 5: Correr pro abraco.
Att,
Pablo
Estava com o mesmo problema e segui as instruções. O footer está ok. Mas o Header aparece em todas as páginas menos na primeira. Alguém sabe o que pode ser?
Arthur,
Na primeira vez, você terá de chamar o método header() na mão...
Att,
Pablo
Isso ja funciona na versão 2.0, se sim não entendi direito como chamar o footer.
Estou usando o relatório tabular, então meu código ficou assim: