首页 > 解决方案 > 库 Mpdf (php):设置 utf-8 并将 WriteHTML 与 utf-8 一起使用

问题描述

我需要有关 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);

获取不正确的字符,例如原始大小写。

有什么问题或缺少什么才能很好地看到文本?谢谢

标签: phpjquerypdf-generationmpdf

解决方案


解决方案

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

推荐阅读