Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com geração de PDF com FPDF


Adampt

Pergunta

Olá amigos.

Estou tentando criar um ficheiro PDF a partir de uma tabela da BD. Para isto estou usando FPDF.
Já consegui criar a tabela, mas precisava que após 25 linhas, fosse gerada uma nova página que continuasse com a impressão dos dados que vêm da tabela.
Com o código que tenho neste momento a tabela é criada, mas após a linha 25 fica uma linha por página.
Segue o meu código:

 

<?php
// Require composer autoload
require '../pdf/fpdf.php';


$db = new PDO('XXXXXXXXXXXXXXXXXXXXXXXXX);



class myPDF extends FPDF
{
    public function header()
    {
        
        $db = new PDO(XXXXXXXXXXXXXXXXXXXXXX);
        $group = $db->query('select * from tbl_a WHERE ida=' . $_GET['idg']) ;
        $g2 = $group->fetch(PDO::FETCH_OBJ);
        $this->Image('../fimg/img.png', 10, 6, 50);
        $this->SetFont('arial', 'B', 16);
        $this->Cell(200, 25, 'TEXT', 0, 0, 'C');
        $this->Ln(10);
        $this->Cell(200, 25, mb_convert_case(base64_decode($g2->gnome), MB_CASE_TITLE, 'UTF-8'), 0, 0, 'C');
        $this->Ln(30);
    }
    public function footer()
    {
        $this->SetY(-10);
        $this->Image('../fimg/img2.png', 128, 265, 70);
        $this->SetFont('arial', '', 8);
        $this->Cell(0, 10, 'Page ' . $this->PageNo() . '/{nb}', 0, 0, 'C');
    }
    public function headerTable()
    {
        $this->SetFont('arial', 'B', 11);
        $this->Cell(10, 10, 'No.', 1, 0, 'C');
        $this->Cell(90, 10, 'Name', 1, 0, 'C');
        $this->Cell(40, 10, 'PID', 1, 0, 'C');
        $this->Cell(25, 10, 'Valid', 1, 0, 'C');
        $this->Cell(25, 10, 'Birthday', 1, 0, 'C');
        $this->Ln();
    }
    public function viewtable($db)
    {
        $this->SetFont('arial', '', 10);
        $stmt = $db->query('select * from tbl2 WHERE id2=' . $_GET['idg']);
        $i = 1;
        while ($data = $stmt->fetch(PDO::FETCH_OBJ)) {
            $this->Cell(10, 8, $i, 1, 0, 'C');
            $this->Cell(90, 8, mb_convert_case(base64_decode($data->nomegel), MB_CASE_TITLE, 'UTF-8'), 1, 0, 'L');
            $this->Cell(40, 8, base64_decode($data->idcardgel), 1, 0, 'C');
            $this->Cell(25, 8, $data->datavalidadegel, 1, 0, 'C');
            $this->Cell(25, 8, $data->dnascimentogel, 1, 0, 'C');
            $this->Ln();
if ($i>24){
$this->AddPage('P', 'A4', 0);
};
            $i++;
        }
    }
}

$pdf = new myPDF();
$pdf->AliasNbPages();
$pdf->AddPage('P', 'A4', 0);
$pdf->headerTable();
$pdf->viewtable($db);

$pdf->Output("List.pdf","I");

Desde já o meu obrigado.
NOTA:  Os dados do PDO foram ocultados e os nomes das tabelas e dos campos foram alterados, por razões de segurança.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
10 horas atrás, Adampt disse:

Resolvido com o seguinte código.

        $i = 1;
        $a = 1;
        while ($data = $stmt->fetch(PDO::FETCH_OBJ)) {
            ....
			....
			....
            $this->Ln();
if ($a>24){
  $a = 1;
  $this->AddPage('P', 'A4', 0);
};
            
            $i++;
            $a++;
        }

 

Acho que o maior problema aqui no fórum (pelo menos é o meu caso) é como usar o fpdf.php. Eu baixei aqui no meu micro, mas na hora de usar eu recebi várias mensagens de erro que não soube como resolver. Você conhece um tutorial para um leigo como eu fazer o pdf funcionar no PHP? De preferência em português.

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...