Ir para conteúdo
Artur Mendonça

Problema com caracteres especiais em mPDF

Recommended Posts

Olá amigos,

no meu sistema estou gerando um PDF com mPDF, mas os caracteres especiais aparecem desconfigurados.

 

O código é o seguinte:

<head>
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
</head>
<?php

	include ('pdf/mpdf.php');
	include_once('conexao.php');
	    

Aqui está todo o código para passar os dados para o PDF e Formatação


$PDFContent = mb_convert_encoding($html, 'UTF-8', 'ISO-8859-1');
$mpdf = new mPDF();
$mpdf-> WriteHTML($PDFContent);
$mpdf-> Output($arquivo,'I');

// I - Abre o arquivo no navegador
// F - Salva o arquivo no servidor
// D - Salva o arquivo no computador do utilizador
?>

Na BD os caracteres aparecem corretamente, mas no documento em PDF aparecem desconfigurados.

 

Como posso resolver? Já pesquisei em vários sites e tentei várias soluções apresentadas mas nenhuma funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado.

 

Já baixei, descompactei e coloquei na pasta PDF do meu projeto, mas não está funcionando. A página abre em branco.
Coloquei assim.

<?php	require_once ('pdf/fpdf.php');
	include_once('conexao.php');

Código com os dados a passar para o PDF

$PDFContent = mb_convert_encoding($html, 'UTF-8', 'ISO-8859-1');
$fpdf = new fPDF("P","pt", "A4");
$fpdf-> WriteHTML($PDFContent);
$fpdf-> Output($arquivo,'I');

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já comecei a trabalhar com FPDF, mas os caracteres especiais (como por exemplo Esq.º) continuam a aparecer desconfgurados.
As palavras acentuadas (como por exemplo básico) aparecem corretamente. 

 

Coloquei o código assim:

<?php
ob_start ();

include('pdf/fpdf/fpdf.php');
include_once('conexao.php');

$mpdf = new FPDF("P","pt","A4");
$mpdf->AddPage();
$mpdf->SetFont('Arial', '', 11);
$mpdf->Image("../web/imagens/". $row_clube['DClube'].'.jpg');
$mpdf->cell(130,15,base64_decode($row_usuario['Nome']),1,1);
$mpdf->cell(130,15,$row_genero['DescGenero'],1,1);
$mpdf->cell(200,15,base64_decode($row_usuario['Morada']),1,1);
$mpdf->Output($arquivo,'I');
ob_end_flush(); 
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por fabiodaros
      Pessoal , queria carregar um arquivo tpl direto para o Mpdf, mas ele não leva as varíaveis que vem do MySql nem do forech.
       
      Alguem poderia me ajudar.
      $msg = $smarty->fetch(Rotas::get_SiteRaiz().'/view/carrinho.tpl'); $mpdf = new \Mpdf\Mpdf(); //$mpdf->SetDocTemplate($msg); $mpdf->allow_charset_conversion= true; $mpdf->charset_in = 'UTF-8'; $mpdf->WriteHTML($msg,0); $mpdf->Output();  
    • Por ammazzo
      Olá galera, 
       
      Eu tenho uma tabela com 2000 registros e gero um relatório através desta tabela e left join de mais outras 3 que complementam a informação da mesma. 
       
      Gostaria de saber se é razoável o tempo de 3m20s para a geração da mesma em um sistema. Lembrando que tenho índices criados e a query leva 0.034 segundos executada no banco de dados. 
       
      Não sei se o fato do mpdf ter sua estrutura baseada em HTML e css afeta o tempo de montagem da mesma (com o foreach essa estrutura aumenta). 
       
      Se alguém já utiliza mpdf e puder me dar uma dica, ou se é normal esse tempo tendo em vista que melhores soluções para php ainda não existam ou se outras bibliotecas reduzem o tempo, eu agradeço. 
       
      Um abraço.
       
    • Por Vitor G. Delgallo
      Bom dia,

      Estou desenvolvendo um projeto que necessita da implementação do mPDF para gerar relatórios, no entanto, não consegui de nenhuma maneira, implementa-lo em meu projeto.
      Gostaria de implementar a seguinte versão do mPDF por ser a mais recente:
       - https://github.com/mpdf/mpdf

      Se alguém pudesse me ajudar eu agradeceria muito!! (Gostaria de implementar-lo manualmente no meu projeto, não via composer, pois nunca utilizei composer e também não sei como ativar os comandos via CMD para a instalação).

      Segue a lista de como tentei implementar o mPDF:
       - Copiei os arquivos do mPDF para a pasta "application/third_party/mpdf" do Codeigniter;
       - Criei uma library dentro da pasta "application/libraries" do Codeigniter com o nome de "m_pdf_lib.php";
       - Dentro dessa biblioteca, coloquei o seguinte código:
      <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); include_once APPPATH . '/third_party/mpdf/src/Mpdf.php'; class m_pdf_lib { private $paramsLibrary = '"en-GB-x","A4","","",10,10,10,10,6,3'; private $pdfLibrary; public function __construct() { } public function getParamsLibrary(){ return $this->paramsLibrary; } public function setParamsLibrary($newParamsLibrary){ $this->paramsLibrary = $newParamsLibrary; return true; } public function getPdfLibrary(){ return $this->pdfLibrary; } public function setPdfLibrary(){ $this->pdfLibrary = new \Mpdf\Mpdf($this->paramsLibrary); return true; } }  
       - E então, dentro da minha controller Default de teste, eu coloquei o seguinte código:
      <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Teste extends CI_Controller { public function __construct() { parent::__construct(); $this->load->library('m_pdf_lib'); } public function testePDF(){ $this->m_pdf_lib->setPdfLibrary(); $mpdf = $this->m_pdf_lib->getPdfLibrary(); $html = '<br><br><br>teste<br><br><br>'; $file = "Relatorio.pdf"; $mpdf->WriteHTML($html); $mpdf->Output($file, 'D'); } }
      PS: Já tentei ver vídeos e artigos tutoriais sobre isso, mas todos, apenas ensinam à implementar as versões antigas do mesmo (que também não funcionam no meu projeto), ou ensinam a versão mais recente via composer, algo com o qual nunca tive contato e não sei como usar.

      Desculpem qualquer incomodo e obrigado desde já!!!
    • Por ammazzo
      Olá galera, 
       
      Estou com problemas pra gerar Carteirinha de membros em PDF. 
      Eu utilizo o Phpjasperxml em todos os relatórios e consigo um resultado quase excelente, a não ser por algumas limitações como o não funcionamento de subrelatórios e gráficos mas não me fez falta. 
       
      O meu problema na geração de carteiras é que a imagem dinâmica das fotos dos membros , vindo do BD,  faz com que o pdf não seja gerado.
       
      Gostaria de saber se alguém tem uma solução pra este problema do Phpjasperxml ou se tem uma maneira mais prática pra fazer carteirinha em PDF usando mPdf, Tcpdf e etc... Pois já tenho o layout das carteira e tá bem complexo ajustar os campos que serão preenchidos na mão. Obrigado. 
    • Por Tonimar Rodrigues da Silva
      Boa tarde Galera,
       
      Alguém que trabalhe com MPDF para gerar relatório sabe como me dizer como faço um while dentro do $html?
       
      Segue parte do código:
       
       
      $html = "
      <fieldset>
          <h1>RELATÓRIO DE ARTIGOS</h1>
          
          <p class='center sub-titulo'>
              ARTIGOS CADASTRADOS
          </p>
          
          <div class='titulos'>CÓDIGO</div>
          <div class='titulos'>DESCRIÇÃO</div>
      </fieldset>
      "$sql = 'SELECT id, nome_artigo FROM artigo WHERE (`ativo` = 1) ORDER BY nome_artigo' or die(mysql_error());
      $resultado = mysql_query($sql) or die ("Problema na Consulta");
      while($linha = mysql_fetch_array($resultado)){"        
      <div class='creditos'>
      <p>"<?= $linha['id'];?>"</p>
      </div>
      ";
      $mpdf=new mPDF(); 
      $mpdf->SetDisplayMode('fullpage');
      $css = file_get_contents("relatorios/css/estilo.css");
      $mpdf->WriteHTML($css,1);
      $mpdf->WriteHTML($html);
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.