HTML no TCPDF [RESOLVIDO]

Pois eh, mas o que estaria faltando?

Deu entender que seria a geração do PDF o problema.

Com certeza vc tem problema de charset, entre aplicação, conexão e banco de dados.

Não sei e vou te explicar porque.

Na aplicação em que faço manutenção do texto, eu tenho um botão imprimir que chama o meu blank que gera o pdf.

Se eu der um echo na variável {texto}, ele me aparece o conteúdo correto. Sem interrogações.

Porém, ao chegar na blank, ele gera aquele monte de interrogações.

Na blank eu reparei que o erro ocorre por causa dessa linha:

$texto = utf8_decode($texto);

Só que se eu tirar essa linha não me traz o conteúdo que estou tentando trazer assim:

$pdf->writeHTMLCell(200, 100, 5, 50, $texto, 0, 1, 0, false, ‘’, true);

Thyago,

Fiz um exemplo rápido aqui, saiu funcionando 100% sem problemas.
V9.
Layout PDF / Código:

/*------------------ Page 1 -----------------*/
           sc_pdf_print($cell_id);
           $this->Pdf->writeHTMLCell(100, 50, 40, 50, {texto_html}, 0, 1, 0, false, '', true);
/*-------------------------------------------*/

Na prática:
https://v9.infinitusweb.com.br/scriptcase/app/Forum9/form_modelos_html

Tags: Report Pdf, Editor Html, TCPDF, V9

Te agradeço pelo exemplo. Mas ainda não foi.

Como disse, estou fazendo em um blank e o problema está quando eu uso a função utf8_decode. Só que sem ela, eu não consigo fazer com que apareça o conteúdo na tela. Fica em branco

Thyago, o exemplo que te passei faz o que deseja fazer?

Se teu banco esta em latin1 não use utf8

$pdf = new MYTCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, ‘UTF-8’, false);

Acerte o chartset da app para ISO-8859-1 e faça o mesmo para conexão.

Sugestão melhor ainda, vai ara Report Pdf, converta o banco para UTF-8, e usa tudo UTF-8.

Daqui para frente não sei mais oque fazer para ajudar.

Comenta a função $pdf->output

Vê o código fonte da página, qual charset ele tá colocando no html?

Ronyan, fiz isso mas fica em branco a tela toda. Não gera nada

O problema Haroldo é que eu já tenho todo o esquema montado na blank. Remontar tudo no pdfReport não vai rolar.

Você modifica a classe TCPDF?

Se não modifica o mesmo código usado na blank pode ser usado na report pdf.

Ele usa uma classe própria/alterada, no construtor ele chama a classe “MYTCPDF”.

Eu usei assim, e funcionou tranquilo na blank:

sc_include_lib('tcpdf');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->AddPage();

$texto = '<h1 style="text-align: center;"><em><strong>ATESTADO DE SAÚDE</strong></em></h1><br /><p> </p><br /><p>Atesto para fins que, THYAGO BRASIL, goza, no momento de boa saúde física e mental, não sendo portador de moléstia infecto-contagiosa, constatável ao Exame Clínico, estando apto para exercer atividades compatíveis com a idade?</p><br /><p> </p><br /><p> </p><br /><p style="text-align: right;">BRASILIA, 19 de Abril de 2017</p><br /><p> </p><br /><p style="text-align: right;"> </p><br /><p> </p><br /><p style="text-align: right;">_____________________________________<br />nomemedico</p>';

$pdf->writeHTMLCell(100, 500, 40, 50, $texto, 0, 1, 0, false, '', true);

$pdf->output('pantilla.pdf','I');

Sim, modifiquei

Então pode ser como o Ronyan disse, o charset do HTML pode estar diferente do charset do pdf que pode estar diferente do charset do banco.

Eu paro por aqui, pois não sei mais como ajudar.

Pra mim, o mesmo código não funcionou

Mesmo utilizando a TCPDF e não a sua classe customizada?

Update: Eu alterei o charset do idioma do meu projeto para Western ISO-8859-1 , alterei o charset da classe para o mesmo ( ISO-8859-1 ) e o conteúdo HTML não foi exibido. Vou fazer alguns testes aqui,

https://v9.infinitusweb.com.br/scriptcase/app/Forum9/blank_test

pois para mim funcionou:

sc_include_lib('tcpdf');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->AddPage();

$texto = '<h1 style="text-align: center;"><em><strong>ATESTADO DE SAÚDE</strong></em></h1><br /><p> </p><br /><p>Atesto para fins que, THYAGO BRASIL, goza, no momento de boa saúde física e mental, não sendo portador de moléstia infecto-contagiosa, constatável ao Exame Clínico, estando apto para exercer atividades compatíveis com a idade?</p><br /><p> </p><br /><p> </p><br /><p style="text-align: right;">BRASILIA, 19 de Abril de 2017</p><br /><p> </p><br /><p style="text-align: right;"> </p><br /><p> </p><br /><p style="text-align: right;">_____________________________________<br />nomemedico</p>';

$pdf->writeHTMLCell(100, 500, 40, 50, $texto, 0, 1, 0, false, '', true);

$pdf->output('pantilla.pdf','I');

Eu usei assim, e funcionou tranquilo na blank:
depois fui em aplicação/configuração e tentei usar charset ISO-8859-1 e saiu em branco.

Haroldo,Thyago ,

Eu copiei e colei o exemplo 19, e funcionou. Vê:

sc_include_lib('tcpdf');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);
$pdf->SetDocInfoUnicode(true);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->SetFont('helvetica', '', 12);
$pdf->AddPage();
$texto = '<h1 style="text-align: center;"><em><strong>ATESTADO DE SAÚDE</strong></em></h1><br /><p> </p><br /><p>Atesto para fins que, THYAGO BRASIL, goza, no momento de boa saúde física e mental, não sendo portador de moléstia infecto-contagiosa, constatável ao Exame Clínico, estando apto para exercer atividades compatíveis com a idade?</p><br /><p> </p><br /><p> </p><br /><p style="text-align: right;">BRASILIA, 19 de Abril de 2017</p><br /><p> </p><br /><p style="text-align: right;"> </p><br /><p> </p><br /><p style="text-align: right;">_____________________________________<br />nomemedico</p>';
$pdf->writeHTMLCell(100, 500, 40, 50, $texto, 0, 1, 0, false, '', true);
$pdf->Output('example_019.pdf', 'I');

Link: https://tcpdf.org/examples/example_019/

Só não parei para ver qual a configuração que faz isso.

Edit: Diminuí o código.

Edit 2:
O processo que fiz foi:
Apagar todo o conteúdo da blank.
Executar ( em branco mesmo , apenas com o include da tcpdf - sc_include_lib ).

Copiei o código do exemplo, coloquei na blank e execute.

Isso mesmo Ronyan

os códigos são:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);

e

// set some language dependent data:
$lg = Array();
$lg['a_meta_charset'] = 'ISO-8859-1';
$lg['a_meta_dir'] = 'ltr';
$lg['a_meta_language'] = 'en';
$lg['w_page'] = 'page';

// set some language-dependent strings (optional)
$pdf->setLanguageArray($lg);

é um simples problema de charset.

Essa função: $pdf->SetDocInfoUnicode(true);
Também influencia nos caracteres especiais.

Pelo que entendi, sim afeta diretamente:

SetDocInfoUnicode(true):
Ativar / desativar o modo Unicode para o dicionário de informações do documento (meta tags). Isso só ocorre quando o modo unicode é definido como falso.