Alguém saberia me dizer como eu chamo a biblioteca FontMetrics que fica na DomPDF que importei para dentro do SC
$fontMetrics = new FontMetrics\FontMetrics($canvas, $options);
//Diz que a class FontMetrics não existe.
A ideia é semelhante a que está nesse link:
Mostre-nos o seu código para que possamos lhe ajudar. Aparentemente você está tentando usar uma classe que não foi instanciada.
Olá Camila.
Obrigado por responder.
O PDF está sendo gerado normalmente.
Como disse estou utilizando DomPDF.
Estou tentando fazer uma marca dágua com um texto e fazer a paginação bem como criar um bloco que não pode sofrer quebras de página desse bloco.
Portanto o bloco pode aparecer na mesma página hora um bloco hora dois blocos hora três bloco isso depende do tamanho do bloco.
A partir disso estou tentando fazer uso do seguinte código:
// Load HTML content
$dompdf->loadHtml($corpoHtml);
//TAMANHO DA PÁGINA JÁ ESTÁ DEFINIDO NO INICIO DO CÓDIGO
// Render the HTML as PDF
$dompdf->render();
//marca dagua
/*
$canvas = $dompdf->getCanvas();
//$dompdf
$fontMetrics = new FontMetrics\FontMetrics($canvas, $options);
$w = $canvas->get_width();
$h = $canvas->get_height();
//$font = $fontMetrics->getFont(‘times’);
//$font = Font_Metrics::get_font( “verdana” , “bold” );
$font = $dompdf->getFontMetrics()->get_font(“helvetica”, “bold”);
$text = “NOME DO ALUNO”;
$txtHeight = $fontMetrics->getFontHeight($font, 75);
$textWidth = $fontMetrics->getTextWidth($text, $font, 75);
$canvas->set_opacity(.2);
$x = (($w-$textWidth)/2);
$y = (($h-$txtHeight)/2);
$canvas->text($x, $y, $text, $font, 75);
/
//fim marca dagua
$font = $dompdf->getFontMetrics()->get_font(“helvetica”, “bold”);
$dompdf->getCanvas()->page_text(72, 18, “Página: $i of 10”, $font, 10, array(0,0,0));
//$canvas = $dompdf->get_canvas();
//$font = Font_Metrics::get_font(“helvetica”, “bold”);
//$canvas->page_text(72, 18, “Header: {PAGE_NUM} of {PAGE_COUNT}”, $font, 6, array(0,0,0));
/
$canvas = $dompdf->get_canvas();
$canvas->page_script(’
if(isset($pdf)){
$y = $pdf->get_height() - 34;
$pageText = “{PAGE_NUM} of {PAGE_COUNT}”;
$font = $fontMetrics->get_font(‘helvetica’);
$size = 8;
$x = $pdf->get_width() - $fontMetrics->get_text_width(‘0 of 0’, $font, $size) - 31;
$pdf->page_text($x, $y, $pageText, $font, $size, array(0, 0, 0)); // Grey
}
');
*/
//$a .= $a+1;
// Output the generated PDF to Browser
//$canvas = $dompdf->get_canvas();
//$font = Font_Metrics::get_font(“helvetica”, “bold”);
//$canvas->page_text(510, 810, “Pág. {PAGE_NUM}/{PAGE_COUNT}”, $font, 9, array(0,0,0)); //fooder
$dompdf->stream(‘nome_doc_pdf.pdf’, [‘Attachment’ => false]);
Está comentado porque vou testando em partes e sem sucesso.
Celso, como conversamos, o DomPdf em sua última versão requer o PHP 7.3.
Outro problema é que o Scriptcase não se da bem com NameSpace e Use (aliáses para NameSpace). Não descobri por que ainda.
Entendi que pelo seu layout , o DomPdf, que é específico para gerar HTML no Pdf controlando bem as quebras de páginas por blocos, mas devido as questões acima impossibilita seu uso.
Baseado em seu layout, e usando html, segue um exemplo que montei com ReportPdf (TCPDF) respeitando as quebras de página conforme altura do bloco html.
http://dev.infinitusweb.net.br/scriptcase/reportpdf_dgrid_quebra_pagina
Gostaria de agradecer o @InfinitusWeb Haroldo que mais uma vez e com maestria conseguiu resolver essa questão.
E indo além me mostrando que poderia ter algo melhor com reportPdf nativo do SC, codificando o relatório que necessitava.
Se dedicou sou precioso tempo para me ajudar.
Só tenho que agradecer.
Agora posso avançar para novos desafios.
Recomendo fortemente que leiam e estudem o conteúdo abaixo:
Muito obrigado!