Quebra de Linha Automatica TCPDF

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]
1 Curtida

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.

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.

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.

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.

1 Curtida

Boa tarde, família!
Embora este tópico seja de 2016, implementei e funcionou. Só há um problema:
Se quisermos imprimir 5 registros, o código só permite imprimir 4.
Alguém consegui fazer com que o código funcione perfeitamente?
Grato,
Belmiro Constantino