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.