Olá gostaria da ajuda no caso para o report TCPDF na seguinte questão:
Identificar o fim de página, quebrar o texto e continuar na pagina seguinte.
Tem um exemplo da biblioteca TCPDF mas não consegui reproduzir comigo usando o ReportPDF do SC.
o Exemplo é o 20: http://www.tcpdf.org/examples/example_020.pdf.
Obrigado pela ajuda.
Tem que ser pelo ReportPDF? Podes conseguir fazer isso usando uma blank e gerar o relatório como está no exemplo citado.
Kleyber,
Não consegui também pelo Blank.
O que fiz ?
Copiei todo o código do ex.20 e tentei executar, mas dá os erros iniciais:
“<”, então retirei o código <?php;
executei e deu o erro:
Fatal error: Class declarations may not be nested in C:\Program Files (x86)\NetMake\v8\wwwroot\scriptcase\app\Resumo\blank\index.php on line 1065
Imagino que deve ser em razão da class : MultiRow
Tem como me ajudar neste caso ?
Se for a class… como colocar ela no blank.
Obrigado pela ajuda.
Isaias
Experimente fazer o contrário, tipo:
- Colocar o ?> na primeira linha da tua blank;
- Colocar <?php ao final
E me diga se funciona.
Para comandos PHP, numa blank não deve fechar ou abrir tags php (<?, ?>).
Você pode usar normalmente e livremente ReportPDF e todos seus comandos pertencentes a classe.
sc_pdf_add_page para adicionar uma página.
Kleyber, não funciona não.
Queria somente rodar este exemplo no blank.
o Exemplo é o 20:
código
http://www.tcpdf.org/examples/example_020.phps
PDF
http://www.tcpdf.org/examples/example_020.pdf
Se alguém conseguir por favor passar o caminho das pedras
Obrigado!!
Crie com metodo essa função e a utilize no seu código.
public function MultiRow($left, $right) {
// MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0)
$page_start = $this->getPage();
$y_start = $this->GetY();
// write the left cell
$this->MultiCell(40, 0, $left, 1, 'R', 1, 2, '', '', true, 0);
$page_end_1 = $this->getPage();
$y_end_1 = $this->GetY();
$this->setPage($page_start);
// write the right cell
$this->MultiCell(0, 0, $right, 1, 'J', 0, 1, $this->GetX() ,$y_start, true, 0);
$page_end_2 = $this->getPage();
$y_end_2 = $this->GetY();
// set the new row position by case
if (max($page_end_1,$page_end_2) == $page_start) {
$ynew = max($y_end_1, $y_end_2);
} elseif ($page_end_1 == $page_end_2) {
$ynew = max($y_end_1, $y_end_2);
} elseif ($page_end_1 > $page_end_2) {
$ynew = $y_end_1;
} else {
$ynew = $y_end_2;
}
$this->setPage(max($page_end_1,$page_end_2));
$this->SetXY($this->GetX(),$ynew);
}
veja que ele utiliza
$page_end_2 = $this->getPage();
$y_end_2 = $this->GetY();
para o controle do salto.
TAGS: Report Pdf, Quebra, Texto, Mult, Linhas, Pagina, iwh
Resolvi essa questão de quebra de página utilizando a função SetAutoPageBreak.
$this->Pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// exibe o campo texto dentro do retangulo delimitador do texto
sc_pdf_multi_cell(130,15,{texto},1,'J');
// desativa a quebra automatica para imprimir os outros campos na página atual
$this->Pdf->SetAutoPageBreak(FALSE, PDF_MARGIN_BOTTOM);
Eu setei ela pra falso depois, pois estava imprimindo os campos restantes em outra página, usando assim funcionou certinho.
Segue o exemplo
Tem que ser pelo ReportPDF? Podes conseguir fazer isso usando uma blank e gerar o relatório como está no exemplo citado.