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.
[code]
/----------------------------------------------------------------------------------------
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();
}[/code]