库Mpdf(php):设置utf-8并在utf-8中使用WriteHTML

时间:2019-03-07 04:25:24

标签: php jquery pdf-generation mpdf

我需要有关php Mpdf库的帮助。我正在为pdf生成内容,它位于div标签中,并通过jquery发送到php服务器,在该服务器中,Mpdf用于生成最终文件。

在生成的pdf文件中,utf-8字符出错,例如“generación”而不是“generación”。

我详细介绍了它们的实现方式

HTML

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

发送pdf(jquery)内容

$('#pdf').click(function() {       
    $.post( 
            base_url,
            { 
                contenido_pdf:      $("#div").html(),
            },
            function(datos) {
            }       
    );
});

接收内容(PHP)

$this->pdf = new mPDF();
$this->pdf->allow_charset_conversion = true;                                
$this->pdf->charset_in = 'iso-8859-1';
$contenido_pdf  = this->input->post('contenido_pdf');

$contenido_pdf_formateado = mb_convert_encoding($contenido_pdf, 'UTF-8', 'windows-1252');
$this->m_pdf->pdf->WriteHTML($contenido_pdf_formateado);

其他经过测试的选项:

1。 $ this-> pdf-> charset_in ='UTF-8';

获取错误:

Severity: Notice  --> iconv(): Detected an illegal character in input string

2。

$contenido_pdf_formateado = mb_convert_encoding($contenido_pdf, 'UTF-8', 'UTF-8');

3。

$contenido_pdf_formateado = utf8_encode($contenido_pdf);

获取不正确的字符,如原始情况一样。

什么是错的或缺少什么才能很好地看到文本?谢谢

2 个答案:

答案 0 :(得分:0)

解决方案

$contenido_pdf_formateado = utf8_decode($contenido_pdf);
$this->m_pdf->pdf->WriteHTML($contenido_pdf_formateado);

答案 1 :(得分:0)

我在对象创建时使用了模式

$mpdf = new Mpdf(['mode' => 'UTF-8']);

如果您确定您的html是utf-8,请使用此