Autor Tópico: Quebra de Linha Automatica TCPDF  (Lida 588 vezes)

Cleidson dos Santos

  • Intermediário
  • ***
  • Mensagens: 175
    • Sistema para controle e Gerenciamento de Manutenção
    • Email
Quebra de Linha Automatica TCPDF
« Online: Maio 29, 2016, 06:17:21 pm »
Senhores já compartilhei sobre isso em outro tópico, mas aqui estou detalhando melhor como implementar em seus relatórios utilizando a classe TCPDF.

Caso tenham alguma duvida, estou a disposição.

Código: [Selecionar]
/*----------------------------------------------------------------------------------------
ARRAY COM A LARGURAS DAS COLUNAS DO RELATORIO
----------------------------------------------------------------------------------------*/
$widths = array(8.4,22,26,44,24,24,41,19,11,11,23,23,23);
/*----------------------------------------------------------------------------------------
LACO DE REPETICAO DO COMANDO SELECT
----------------------------------------------------------------------------------------*/
for($i = 0; $i < count({rs}); $i++){

/*----------------------------------------------------------------------------------------
CRIACAO DO ARRAY ($ArrayCol) E LACO DE REPETICAO DA ALTURA DE CADA COLUNA DE CADA LINHA DO SELECT
AQUI É USADO A FUNCAO GetStringHeight(LARGURA, TEXTO) QUE RETORNA A ALTUTA DA LINHA QUE VAI SER IMPRESSA
----------------------------------------------------------------------------------------*/
$ArrayCol = array();
for($col = 0; $col < count($widths); $col++){

$ArrayCol[] = $pdf->GetStringHeight($widths[$col], {rs[$i][$col]});
}

/*----------------------------------------------------------------------------------------
VARIAVEL ($h) COM A MAIOR ALTURA DE LINHA DO ARRAY ($ArrayCol)
DESTA FORMA É PASSADO A MESMA ALTURA PARA TODAS AS COLUNAS DA LINHA QUE ESTA SENDO IMPRESSA
**** A MULTIPLICACAO DA VARIAVEL POR 1.046 É PARA FAZER UM AJUSTE REFERENTE AO TAMANHO DA FONTE QUE ESTA SENDO USADA
DEPENDENDO DA FONTE DA UMA DIFERENCA ENTRE A ALTURA DAS COLUNAS, E ESTE VALOR FAZ O AJUSTE. ****
----------------------------------------------------------------------------------------*/
$h = max($ArrayCol) * 1.046;

/*----------------------------------------------------------------------------------------
VERIFICA SE A ALTURA DA MAIOR LINHA É MENOR QUE 6, CASO SEJA MUDO O VALOR DA VARIAVEL $h PARA 6
**** 6 É A ALTURA MINIMA PARA AS LINHAS
----------------------------------------------------------------------------------------*/
if($h < 6) $h=6;

/*----------------------------------------------------------------------------------------
VERIFICA SE A ALTURA USADA NO RELATORIO (FUNCAO GetY()) MAIS O VALOR DA VARIAVEL $h É MAIOR QUE 205 QUE E O VALOR DA ALTURA DA PAGINA MENOS A ALTURA DO RODAPE.
SE O VERDADEIRO ADICIONA UMA PAGINA (FUNCAO AddPage()) PARA FAZER A IMPRESSAO DOS VALORES
----------------------------------------------------------------------------------------*/
if($pdf->GetY() + $h > 205){

$pdf->AddPage();
}

/*----------------------------------------------------------------------------------------
FAZ A IMPRESSAO DA LINHA (FUNCAO MultiCell())
----------------------------------------------------------------------------------------*/
for($c = 1; $c < count($widths); $c++){

$pdf->MultiCell($widths[$c-1], $h, {rs[$i][$c]}, 1, 'C', 0, 0, '', '', true, '','','',$h, 'M');
}
/*----------------------------------------------------------------------------------------
EXECUTA UMA QUEBRA DE LINHA (FUNCAO Ln())
----------------------------------------------------------------------------------------*/
$pdf->Ln();
}
Cleidson dos Santos
cleidsoncarneirodossantos@gmail.com
Skype: cleidson_santos1
WhatsApp: (15) 99635-4862

Jailton

  • Expert
  • *****
  • Mensagens: 2041
Re:Quebra de Linha Automatica TCPDF
« Responder #1 Online: Maio 30, 2016, 11:31:58 am »
A Netmake tem que melhorar esse gerador PDF urgente, para quem compra a ferramenta ele é muito difícil de ser usado, teria que por uma coisa mais simples, tipo:


Estamos em 2016, ficar no X e Y, é fora de mão pra produtividade.
« Última modificação: Maio 30, 2016, 11:33:47 am por Jailton »
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

Nilson Eugenio

  • Novato
  • *
  • Mensagens: 16
Re:Quebra de Linha Automatica TCPDF
« Responder #2 Online: Julho 07, 2016, 02:19:29 pm »
Boa tarde,

Jailton,

Concordo com você plenamente, se é uma ferramenta para acelerar a criação de códigos, a parte de relatórios deveria ser mais fácil, estou sofrendo aqui para criar um layout no PDF.
Estou quase desistindo da ferramenta.

Cleidson dos Santos

  • Intermediário
  • ***
  • Mensagens: 175
    • Sistema para controle e Gerenciamento de Manutenção
    • Email
Re:Quebra de Linha Automatica TCPDF
« Responder #3 Online: Julho 07, 2016, 02:25:05 pm »
Veja esse post que fiz.
http://www.scriptcase.com.br/forum/index.php/topic,13301.msg69172.html#msg69172

Nele mostro como fazer um relatório pdf com a classe FPDF.

Espero que te ajude.
Cleidson dos Santos
cleidsoncarneirodossantos@gmail.com
Skype: cleidson_santos1
WhatsApp: (15) 99635-4862

Jailton

  • Expert
  • *****
  • Mensagens: 2041
Re:Quebra de Linha Automatica TCPDF
« Responder #4 Online: Julho 07, 2016, 09:56:06 pm »
Boa tarde,

Jailton,

Concordo com você plenamente, se é uma ferramenta para acelerar a criação de códigos, a parte de relatórios deveria ser mais fácil, estou sofrendo aqui para criar um layout no PDF.
Estou quase desistindo da ferramenta.

A Tendência é melhorar parece que já estão testando para a Versão do 9 do SC que deve sair até final do ano, um protótipo de Report PDF drag & drop, Super Easy de se usar.
« Última modificação: Julho 07, 2016, 09:58:01 pm por Jailton »
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.